{"version":3,"file":"main.47628b18b53450970e34.js","mappings":"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S,GAEX,CACEx1C,IAAK,aACLye,YAAa,mCAEf,CACEze,IAAK,YACLye,YAAa,wDAEf,CACEze,IAAK,YACLye,YAAa,qDAEf,CACEze,IAAK,YACLye,YAAa,wDAEf,CACEze,IAAK,WACLye,YACE,yGAEJ,CACEze,IAAK,eACLye,YAAa,6BAEf,CACEze,IAAK,WACLye,YACE,8FAEJ,CACEze,IAAK,iBACLye,YACE,uFAEJ,CACEze,IAAK,gBACLye,YACE,mHAEJ,CACEze,IAAK,YACLye,YACE,4EAEJ,CACEze,IAAK,eACLye,YACE,mGAEJ,CACEze,IAAK,YACLye,YAAa,+CAEf,CACEze,IAAK,SACLye,YAAa,4CAEf,CACEze,IAAK,kBACLye,YACE,wFAEJ,CACEze,IAAK,kBACLye,YAAa,0DAEf,CACEze,IAAK,gBACLye,YAAa,qDAEf,CACEze,IAAK,WACLye,YAAa,4DAEf,CACEze,IAAK,YACLye,YACE,oEAEJ,CACEze,IAAK,aACLye,YAAa,8CAEf,CACEze,IAAK,WACLye,YACE,sFAEJ,CACEze,IAAK,QACLye,YAAa,uDAEf,CACEze,IAAK,aACLye,YAAa,mDAEf,CACEze,IAAK,gBACLye,YAAa,mDAImByoB,MAAK,SAACrzB,EAAGf,GAAC,OAAMe,EAAE7T,IAAM8S,EAAE9S,KAAO,EAAI,CAAC,miECjLnE,SAASggI,GAAex6H,GAM5B,IALD+P,EAAM/P,EAAN+P,OACAgI,EAAQ/X,EAAR+X,SAKA,OACEzD,EAAAA,EAAAA,KAACo7C,GAAAA,EAAW,CAAC/pC,MAAM,yBAAwB2I,UACzCha,EAAAA,EAAAA,KAAA,OAAKmhB,UAAU,yCAAwCnH,SACpDisG,GAAavhI,KAAI,SAACyhI,GAAG,OACpBnmH,EAAAA,EAAAA,KAAA,OAAmBmhB,UAAU,oBAAmBnH,UAC9Cha,EAAAA,EAAAA,KAACq6B,GAAAA,EAAW,CACVC,WAAW,WACX1U,QAASugG,EAAIxhH,YACbuhB,QAASzqB,EAAOpQ,SAAS86H,EAAIjgI,KAC7Bwe,MAAOyhH,EAAIjgI,IACXiE,KAAI,GAAAO,OAA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","sources":["webpack://portainer/./app/ sync ^(.*\\.(js$))[^.]*$/i","webpack://portainer/./app/assets/ico/git.svg","webpack://portainer/./app/assets/ico/icon_up-to-date.svg","webpack://portainer/./app/assets/ico/icon_updates-available.svg","webpack://portainer/./app/assets/ico/icon_updates-unknown.svg","webpack://portainer/./app/assets/ico/kube.svg","webpack://portainer/./app/assets/ico/laptop-code.svg","webpack://portainer/./app/assets/ico/ldap.svg","webpack://portainer/./app/assets/ico/linux.svg","webpack://portainer/./app/assets/ico/memory.svg","webpack://portainer/./app/assets/ico/route.svg","webpack://portainer/./app/assets/ico/subscription.svg","webpack://portainer/./app/assets/ico/vendor/azure.svg","webpack://portainer/./app/assets/ico/vendor/docker-compose.svg","webpack://portainer/./app/assets/ico/vendor/docker-icon.svg","webpack://portainer/./app/assets/ico/vendor/docker.svg","webpack://portainer/./app/assets/ico/vendor/ecr.svg","webpack://portainer/./app/assets/ico/vendor/github.svg","webpack://portainer/./app/assets/ico/vendor/gitlab.svg","webpack://portainer/./app/assets/ico/vendor/google.svg","webpack://portainer/./app/assets/ico/vendor/helm.svg","webpack://portainer/./app/assets/ico/vendor/kubernetes.svg","webpack://portainer/./app/assets/ico/vendor/microsoft-icon.svg","webpack://portainer/./app/assets/ico/vendor/microsoft.svg","webpack://portainer/./app/assets/ico/vendor/openldap.svg","webpack://portainer/./app/assets/ico/vendor/proget.svg","webpack://portainer/./app/assets/ico/vendor/quay.svg","webpack://portainer/./app/angulartics.matomo/analytics-services.ts","webpack://portainer/./app/constants.ts","webpack://portainer/./app/docker/filters/utils.ts","webpack://portainer/./app/docker/helpers/containers.ts","webpack://portainer/./app/docker/helpers/splitargs.ts","webpack://portainer/./app/docker/helpers/logHelper/colors/colors.ts","webpack://portainer/./app/docker/helpers/logHelper/types.ts","webpack://portainer/./app/docker/helpers/logHelper/formatters.ts","webpack://portainer/./app/docker/helpers/logHelper/formatZerologLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/formatLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/formatJSONLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/constants.ts","webpack://portainer/./app/docker/helpers/logHelper/concatLogsToString.ts","webpack://portainer/./app/docker/services/ping.ts","webpack://portainer/./app/kubernetes/components/helm/helm-templates/HelmIcon.tsx","webpack://portainer/./app/kubernetes/filters/application.ts","webpack://portainer/./app/kubernetes/models/application/models/appConstants.ts","webpack://portainer/./app/portainer/authorization-guard.ts","webpack://portainer/./app/portainer/components/BoxSelector/BoxSelectorAngular.ts","webpack://portainer/./app/portainer/components/BoxSelector/utils.ts","webpack://portainer/./app/portainer/components/BoxSelector/index.ts","webpack://portainer/./app/portainer/error.ts","webpack://portainer/./app/portainer/helpers/array.ts","webpack://portainer/./app/portainer/helpers/promise-utils.ts","webpack://portainer/./app/portainer/helpers/strings.ts","webpack://portainer/./app/portainer/helpers/webhookHelper.ts","webpack://portainer/./app/portainer/hostmanagement/fdo/fdo.service.ts","webpack://portainer/./app/portainer/hostmanagement/open-amt/open-amt.service.ts","webpack://portainer/./app/portainer/services/axios.ts","webpack://portainer/./app/portainer/services/http-request.helper.ts","webpack://portainer/./app/portainer/services/notifications.ts","webpack://portainer/./app/portainer/tags/tags.service.ts","webpack://portainer/./app/portainer/tags/queries.ts","webpack://portainer/./app/portainer/users/queries.ts","webpack://portainer/./app/portainer/users/queries/queryKeys.ts","webpack://portainer/./app/portainer/users/queries/useLoadCurrentUser.ts","webpack://portainer/./app/portainer/users/queries/useUser.ts","webpack://portainer/./app/portainer/users/types.ts","webpack://portainer/./app/portainer/users/user.helpers.ts","webpack://portainer/./app/portainer/users/user.service.ts","webpack://portainer/./app/react-tools/apply-set-state-action.ts","webpack://portainer/./app/react-tools/react-query.ts","webpack://portainer/./app/react-tools/react2angular.tsx","webpack://portainer/./app/react-tools/withControlledInput.tsx","webpack://portainer/./app/react-tools/withCurrentUser.tsx","webpack://portainer/./app/react-tools/withFormValidation.ts","webpack://portainer/./app/react-tools/withReactQuery.tsx","webpack://portainer/./app/react-tools/withUIRouter.tsx","webpack://portainer/./app/react-tools/yup-schemas.ts","webpack://portainer/./app/react/common/network-utils.ts","webpack://portainer/./app/react/common/processItemsInBatches.ts","webpack://portainer/./app/react/common/semver-utils.ts","webpack://portainer/./app/react/common/stacks/common/confirm-stack-update.ts","webpack://portainer/./app/react/common/stacks/types.ts","webpack://portainer/./app/react/components/Alert/Alert.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/BEFeatureIndicator.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/utils.ts","webpack://portainer/./app/react/components/BETeaserButton.tsx","webpack://portainer/./app/react/components/Badge/Badge.tsx","webpack://portainer/./app/react/components/BadgeIcon/BadgeIcon.tsx","webpack://portainer/./app/react/components/Blocklist/BlocklistItem.tsx","webpack://portainer/./app/assets/ico/helm.svg","webpack://portainer/./app/react/components/BoxSelector/common-options/build-methods.tsx","webpack://portainer/./app/react/components/BoxSelector/common-options/deployment-methods.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelector.module.css?5efb","webpack://portainer/./app/react/components/BoxSelector/BoxSelectorItem.module.css?460b","webpack://portainer/./app/react/components/BoxSelector/LimitedToBeBoxSelectorIndicator.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxOption.module.css?13c4","webpack://portainer/./app/react/components/BoxSelector/BoxOption.tsx","webpack://portainer/./app/react/components/BoxSelector/LogoIcon.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelectorItem.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelector.tsx","webpack://portainer/./app/react/components/Code/Code.module.css?c26c","webpack://portainer/./app/react/components/Code/Code.tsx","webpack://portainer/./app/react/components/CodeEditor.module.css?af7a","webpack://portainer/./app/react/components/CodeEditor.tsx","webpack://portainer/./app/react/components/DashboardItem/DashboardGrid.tsx","webpack://portainer/./app/react/components/DashboardItem/DashboardItem.tsx","webpack://portainer/./app/react/components/DetailsTable/index.tsx","webpack://portainer/./app/react/components/DetailsTable/DetailsTable.tsx","webpack://portainer/./app/react/components/DetailsTable/DetailsRow.tsx","webpack://portainer/./app/react/components/FallbackImage.tsx","webpack://portainer/./app/react/components/HelpLink/HelpLink.tsx","webpack://portainer/./app/assets/ico/dataflow-1.svg","webpack://portainer/./app/assets/ico/restore-window.svg","webpack://portainer/./app/assets/ico/sort.svg","webpack://portainer/./app/assets/ico/placeholder.svg","webpack://portainer/./app/assets/ico/vendor/aws.svg","webpack://portainer/./app/assets/ico/vendor/civo.svg","webpack://portainer/./app/assets/ico/vendor/digitalocean.svg","webpack://portainer/./app/assets/ico/vendor/googlecloud.svg","webpack://portainer/./app/assets/ico/vendor/akamai.svg","webpack://portainer/./app/react/components/Svg.tsx","webpack://portainer/./app/react/components/Icon.tsx","webpack://portainer/./app/react/components/InformationPanel.tsx","webpack://portainer/./app/react/components/InlineLoader/InlineLoader.tsx","webpack://portainer/./app/react/components/InsightsBox/insights-store.ts","webpack://portainer/./app/react/components/InsightsBox/InsightsBox.tsx","webpack://portainer/./app/react/components/Link.tsx","webpack://portainer/./app/react/components/NavTabs/NavContainer.tsx","webpack://portainer/./app/react/components/NavTabs/NavTabs.module.css?76f4","webpack://portainer/./app/react/components/NavTabs/NavTabs.tsx","webpack://portainer/./app/react/components/PageHeader/ContextHelp/ContextHelp.tsx","webpack://portainer/./app/react/components/PageHeader/Breadcrumbs/Breadcrumbs.tsx","webpack://portainer/./app/react/components/PageHeader/HeaderContainer.module.css?63f1","webpack://portainer/./app/react/components/PageHeader/HeaderContainer.tsx","webpack://portainer/./app/react/components/PageHeader/NotificationsMenu.module.css?bd28","webpack://portainer/./app/react/components/PageHeader/NotificationsMenu.tsx","webpack://portainer/./app/react/components/PageHeader/UserMenu.tsx","webpack://portainer/./app/react/components/PageHeader/HeaderTitle.tsx","webpack://portainer/./app/react/components/PageHeader/PageHeader.tsx","webpack://portainer/./app/react/components/PaginationControls/ItemsPerPageSelector.tsx","webpack://portainer/./app/react/components/PaginationControls/calculatePageNumber.ts","webpack://portainer/./app/react/components/PaginationControls/PageButton.tsx","webpack://portainer/./app/react/components/PaginationControls/PageInput.tsx","webpack://portainer/./app/react/components/PaginationControls/PageSelector.tsx","webpack://portainer/./app/react/components/PaginationControls/generatePagesArray.ts","webpack://portainer/./app/react/components/PaginationControls/PaginationControls.tsx","webpack://portainer/./app/react/components/TLSFieldset/TLSFieldset.tsx","webpack://portainer/./app/react/components/TagButton/TagButton.module.css?d24c","webpack://portainer/./app/react/components/TagButton/TagButton.tsx","webpack://portainer/./app/react/components/TagSelector/TagSelector.tsx","webpack://portainer/./app/react/components/TeamsSelector/TeamsSelector.tsx","webpack://portainer/./app/react/components/TerminalTooltip/TerminalTooltip.tsx","webpack://portainer/./app/react/components/Tip/SliderTooltip/SliderTooltip.module.css?eb3b","webpack://portainer/./app/react/components/Tip/SliderTooltip/SliderTooltip.tsx","webpack://portainer/./app/react/components/Tip/TextTip/TextTip.tsx","webpack://portainer/./app/react/components/Tip/Tooltip/Tooltip.tsx","webpack://portainer/./app/react/components/Tip/TooltipWithChildren/TooltipWithChildren.module.css?cdcd","webpack://portainer/./app/react/components/Tip/TooltipWithChildren/TooltipWithChildren.tsx","webpack://portainer/./app/react/components/UsersSelector/UsersSelector.tsx","webpack://portainer/./app/react/components/WebEditorForm.tsx","webpack://portainer/./app/react/components/Widget/Loading.tsx","webpack://portainer/./app/react/components/Widget/Widget.tsx","webpack://portainer/./app/react/components/Widget/WidgetBody.tsx","webpack://portainer/./app/react/components/Widget/WidgetTitle.tsx","webpack://portainer/./app/react/components/Widget/index.ts","webpack://portainer/./app/react/components/Widget/WidgetFooter.tsx","webpack://portainer/./app/react/components/Widget/WidgetTaskbar.tsx","webpack://portainer/./app/react/components/buttons/Button.tsx","webpack://portainer/./app/react/components/buttons/ButtonGroup.tsx","webpack://portainer/./app/react/components/buttons/CopyButton/CopyButton.module.css?9c40","webpack://portainer/./app/react/components/buttons/CopyButton/CopyButton.tsx","webpack://portainer/./app/react/components/buttons/CopyButton/useCopy.ts","webpack://portainer/./app/react/components/buttons/LoadingButton.tsx","webpack://portainer/./app/react/components/buttons/AddButton.tsx","webpack://portainer/./app/react/components/datatables/ColumnVisibilityMenu.tsx","webpack://portainer/./app/react/components/datatables/Datatable.tsx","webpack://portainer/./app/react/components/datatables/select-column.tsx","webpack://portainer/./app/react/components/datatables/useGoToHighlightedRow.ts","webpack://portainer/./app/react/components/datatables/DatatableContent.tsx","webpack://portainer/./app/react/components/datatables/SelectedRowsCount.tsx","webpack://portainer/./app/react/components/datatables/DatatableFooter.tsx","webpack://portainer/./app/react/components/datatables/DatatableHeader.tsx","webpack://portainer/./app/react/components/datatables/ExpandableDatatableRow.tsx","webpack://portainer/./app/react/components/datatables/ExpandableDatatable.tsx","webpack://portainer/./app/react/components/datatables/Filter.tsx","webpack://portainer/./app/react/components/datatables/RowContext.tsx","webpack://portainer/./app/react/components/datatables/SearchBar.tsx","webpack://portainer/./app/react/components/datatables/Table.tsx","webpack://portainer/./app/react/components/datatables/TableActions.tsx","webpack://portainer/./app/react/components/datatables/TableContainer.tsx","webpack://portainer/./app/react/components/datatables/TableContent.tsx","webpack://portainer/./app/react/components/datatables/TableFooter.tsx","webpack://portainer/./app/react/components/datatables/TableHeaderCell.tsx","webpack://portainer/./app/react/components/datatables/TableHeaderRow.tsx","webpack://portainer/./app/react/components/datatables/sort-arrow-down.svg","webpack://portainer/./app/react/components/datatables/sort-arrow-up.svg","webpack://portainer/./app/react/components/datatables/TableHeaderSortIcons.module.css?aefe","webpack://portainer/./app/react/components/datatables/TableHeaderSortIcons.tsx","webpack://portainer/./app/react/components/datatables/TableRow.tsx","webpack://portainer/./app/react/components/datatables/TableSettingsMenu.tsx","webpack://portainer/./app/react/components/datatables/TableSettingsMenuAutoRefresh.module.css?1e3f","webpack://portainer/./app/react/components/datatables/TableSettingsMenuAutoRefresh.tsx","webpack://portainer/./app/react/components/datatables/TableTitle.tsx","webpack://portainer/./app/react/components/datatables/TableTitleActions.tsx","webpack://portainer/./app/react/components/datatables/buildNameColumn.tsx","webpack://portainer/./app/react/components/datatables/defaultGetRowId.ts","webpack://portainer/./app/react/components/datatables/expand-column.tsx","webpack://portainer/./app/react/components/datatables/types.ts","webpack://portainer/./app/react/components/datatables/useRepeater.ts","webpack://portainer/./app/react/components/datatables/useTableState.ts","webpack://portainer/./app/react/components/form-components/AutocompleteSelect/AutocompleteSelect.module.css?b43d","webpack://portainer/./app/react/components/form-components/AutocompleteSelect/AutocompleteSelect.tsx","webpack://portainer/./app/react/components/form-components/ButtonSelector/ButtonSelector.module.css?de7d","webpack://portainer/./app/react/components/form-components/ButtonSelector/ButtonSelector.tsx","webpack://portainer/./app/react/components/form-components/Checkbox.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/AdvancedMode.tsx","webpack://portainer/./app/portainer/services/fileUploadReact.ts","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariableItem.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/SimpleMode.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariablesFieldset.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariablesPanel.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/StackEnvironmentVariablesPanel.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/utils.ts","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadField.module.css?3d41","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadField.tsx","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadForm.tsx","webpack://portainer/./app/react/components/form-components/FormActions.tsx","webpack://portainer/./app/react/components/form-components/FormControl/FormControl.tsx","webpack://portainer/./app/react/components/form-components/FormError.tsx","webpack://portainer/./app/react/components/form-components/FormSection/FormSection.tsx","webpack://portainer/./app/react/components/form-components/FormSectionTitle/FormSectionTitle.tsx","webpack://portainer/./app/react/components/form-components/Input/InputLabeled.tsx","webpack://portainer/./app/react/components/form-components/Input/Input.tsx","webpack://portainer/./app/react/components/form-components/Input/Select.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroup.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/index.ts","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroupAddon.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroupButtonWrapper.tsx","webpack://portainer/./app/react/components/form-components/InputList/utils.ts","webpack://portainer/./app/react/components/form-components/InputList/InputList.tsx","webpack://portainer/./app/react/components/form-components/PortainerSelect.tsx","webpack://portainer/./app/react/components/form-components/ReactSelect.tsx","webpack://portainer/./app/react/components/form-components/Slider/Slider.module.css?fdaa","webpack://portainer/./app/react/components/form-components/Slider/Slider.tsx","webpack://portainer/./app/react/components/form-components/Slider/SliderWithInput.tsx","webpack://portainer/./app/react/components/form-components/SwitchField/Switch.module.css?3a17","webpack://portainer/./app/react/components/form-components/SwitchField/Switch.tsx","webpack://portainer/./app/react/components/form-components/SwitchField/SwitchField.module.css?fb34","webpack://portainer/./app/react/components/form-components/SwitchField/SwitchField.tsx","webpack://portainer/./app/react/components/form-components/useCachedTest.ts","webpack://portainer/./app/react/components/form-components/validate-form.ts","webpack://portainer/./app/react/components/form-components/validate-unique.ts","webpack://portainer/./app/react/components/form-components/yup-file-validation.ts","webpack://portainer/./app/react/components/modals/Dialog.tsx","webpack://portainer/./app/react/components/modals/Modal/CloseButton.module.css?9c19","webpack://portainer/./app/react/components/modals/Modal/CloseButton.tsx","webpack://portainer/./app/react/components/modals/Modal/Modal.module.css?18cf","webpack://portainer/./app/react/components/modals/Modal/Modal.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalBody.module.css?1704","webpack://portainer/./app/react/components/modals/Modal/index.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalHeader.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalHeader.module.css?9399","webpack://portainer/./app/react/components/modals/Modal/ModalBody.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalFooter.tsx","webpack://portainer/./app/react/components/modals/Modal/types.ts","webpack://portainer/./app/react/components/modals/SwitchPrompt.tsx","webpack://portainer/./app/react/components/modals/confirm.ts","webpack://portainer/./app/react/components/modals/types.ts","webpack://portainer/./app/react/components/modals/open-modal.tsx","webpack://portainer/./app/react/components/modals/utils.ts","webpack://portainer/./app/react/constants.ts","webpack://portainer/./app/react/docker/components/ImageStatus/helpers.ts","webpack://portainer/./app/react/docker/components/ImageStatus/types.ts","webpack://portainer/./app/react/docker/components/datatable/createOwnershipColumn.tsx","webpack://portainer/./app/react/docker/containers/common/confirm-container-delete-modal.ts","webpack://portainer/./app/react/docker/containers/containers.service.ts","webpack://portainer/./app/react/docker/containers/types.ts","webpack://portainer/./app/react/docker/images/common/ConfirmExportModal.tsx","webpack://portainer/./app/react/docker/images/utils.ts","webpack://portainer/./app/react/docker/proxy/queries/build-url.ts","webpack://portainer/./app/react/docker/proxy/queries/useInfo.ts","webpack://portainer/./app/react/docker/proxy/queries/useVersion.ts","webpack://portainer/./app/react/docker/services/common/convertServiceToConfig.ts","webpack://portainer/./app/react/docker/services/common/update-service-modal.ts","webpack://portainer/./app/react/edge/components/EdgeAsyncIntervalsForm.tsx","webpack://portainer/./app/react/edge/components/EdgeCheckInIntervalField.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/OsSelector.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/ScriptTabs.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptSettingsFieldset.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptForm.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptForm.validation.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/scripts.ts","webpack://portainer/./app/react/edge/components/useIntervalOptions.ts","webpack://portainer/./app/react/edge/edge-groups/queries/build-url.ts","webpack://portainer/./app/react/edge/edge-groups/queries/query-keys.ts","webpack://portainer/./app/react/edge/edge-groups/queries/useEdgeGroups.ts","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/EnvVarsFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateNote.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/CustomTemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/AppTemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/EdgeGroupsSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/types.ts","webpack://portainer/./app/react/hooks/useAnalytics.ts","webpack://portainer/./app/react/hooks/useCurrentEnvironment.ts","webpack://portainer/./app/react/hooks/useDebounce.ts","webpack://portainer/./app/react/hooks/useEnvironmentId.ts","webpack://portainer/./app/react/hooks/useLimitToBE.tsx","webpack://portainer/./app/react/hooks/useLocalStorage.ts","webpack://portainer/./app/react/hooks/useStateWrapper.ts","webpack://portainer/./app/react/hooks/useUser.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/constants.ts","webpack://portainer/./app/react/kubernetes/annotations/AnnotationsBeTeaser.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/utils.ts","webpack://portainer/./app/react/kubernetes/applications/constants.ts","webpack://portainer/./app/react/kubernetes/axiosError.ts","webpack://portainer/./app/react/kubernetes/cluster/getIsRBACEnabled.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/useIngressControllerClassMap.ts","webpack://portainer/./app/react/kubernetes/configs/CreateView/options.tsx","webpack://portainer/./app/react/kubernetes/ingresses/service.ts","webpack://portainer/./app/react/kubernetes/namespaces/getSelfSubjectAccessReview.ts","webpack://portainer/./app/react/kubernetes/networks/services/service.ts","webpack://portainer/./app/react/kubernetes/services/service.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/HomepageFilter.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlForm/AccessControlForm.validation.ts","webpack://portainer/./app/react/portainer/access-control/AccessControlForm/AccessControlForm.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelDetails.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelForm.module.css?dfbc","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelForm.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanel.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/useOptions.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/AccessTypeSelector.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/UsersField.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/TeamsField.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/EditDetails.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/useLoadState.ts","webpack://portainer/./app/react/portainer/access-control/access-control.service.ts","webpack://portainer/./app/react/portainer/access-control/models/ResourceControlViewModel.ts","webpack://portainer/./app/react/portainer/access-control/types.ts","webpack://portainer/./app/react/portainer/access-control/utils.ts","webpack://portainer/./app/react/portainer/account/git-credentials/git-credentials.service.ts","webpack://portainer/./app/react/portainer/custom-templates/components/CommonFields.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/VariableFieldItem.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/CustomTemplatesVariablesField.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/getDefaultValues.ts","webpack://portainer/./app/react/portainer/custom-templates/components/PlatformSelector.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/TemplateTypeSelector.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/utils.ts","webpack://portainer/./app/react/portainer/environments/ListView/useDeleteEnvironmentsMutation.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/environment-groups.service.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/build-url.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/environment.service/index.ts","webpack://portainer/./app/react/portainer/environments/environment.service/utils.ts","webpack://portainer/./app/react/portainer/environments/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/queries/useAgentDetails.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironment.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironmentList.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironmentRegistries.ts","webpack://portainer/./app/react/portainer/environments/queries/useUpdateEnvironmentMutation.ts","webpack://portainer/./app/react/portainer/environments/types.ts","webpack://portainer/./app/assets/ico/beta.svg","webpack://portainer/./app/react/portainer/environments/update-schedules/common/BetaAlert.tsx","webpack://portainer/./app/react/portainer/environments/utils/index.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/GroupsField.tsx","webpack://portainer/./app/react/portainer/feature-flags/enums.ts","webpack://portainer/./app/react/portainer/feature-flags/feature-flags.service.ts","webpack://portainer/./app/react/portainer/feature-flags/withEdition.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/CredentialSelector.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/NewCredentialForm.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/AuthFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/IntervalField.tsx","webpack://portainer/./app/react/components/form-components/useCaretPosition.ts","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/WebhookSettings.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/ForceDeploymentSwitch.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/AutoUpdateSettings.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/AutoUpdateFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/validation.ts","webpack://portainer/./app/react/portainer/gitops/queries/useSearch.ts","webpack://portainer/./app/react/portainer/gitops/ComposePathField/PathSelector.tsx","webpack://portainer/./app/react/portainer/gitops/ComposePathField/ComposePathField.tsx","webpack://portainer/./app/react/portainer/gitops/queries/useCheckRepo.ts","webpack://portainer/./app/react/portainer/gitops/GitFormUrlField.tsx","webpack://portainer/./app/react/portainer/gitops/AdditionalFilesField.tsx","webpack://portainer/./app/react/portainer/gitops/GitForm.tsx","webpack://portainer/./app/react/portainer/gitops/InfoPanel.tsx","webpack://portainer/./app/react/portainer/gitops/queries/useGitRefs.ts","webpack://portainer/./app/react/portainer/gitops/RefField/RefSelector.tsx","webpack://portainer/./app/react/portainer/gitops/RefField/RefField.tsx","webpack://portainer/./app/react/portainer/gitops/TimeWindowDisplay.tsx","webpack://portainer/./app/react/portainer/gitops/types.ts","webpack://portainer/./app/react/portainer/gitops/utils.ts","webpack://portainer/./app/react/portainer/licenses/types.ts","webpack://portainer/./app/react/portainer/licenses/license.service.ts","webpack://portainer/./app/react/portainer/licenses/use-license.service.ts","webpack://portainer/./app/react/portainer/notifications/notifications-store.ts","webpack://portainer/./app/react/portainer/registries/queries/build-url.ts","webpack://portainer/./app/react/portainer/registries/queries/query-keys.ts","webpack://portainer/./app/react/portainer/registries/queries/useRegistries.ts","webpack://portainer/./app/react/portainer/registries/types/registry.ts","webpack://portainer/./app/react/portainer/settings/queries/useSettings.ts","webpack://portainer/./app/react/portainer/settings/queries/useExperimentalSettings.ts","webpack://portainer/./app/react/portainer/settings/queries/useExperimentalSettingsMutation.ts","webpack://portainer/./app/react/portainer/settings/queries/queryKeys.ts","webpack://portainer/./app/react/portainer/settings/queries/usePublicSettings.ts","webpack://portainer/./app/react/portainer/settings/settings.service.ts","webpack://portainer/./app/react/portainer/settings/types.ts","webpack://portainer/./app/react/portainer/system/build-url.ts","webpack://portainer/./app/react/portainer/system/query-keys.ts","webpack://portainer/./app/react/portainer/system/useNodesCount.ts","webpack://portainer/./app/react/portainer/system/useSystemStatus.ts","webpack://portainer/./app/react/portainer/system/useSystemVersion.ts","webpack://portainer/./app/react/portainer/templates/app-templates/AppTemplatesListItem.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/useSortAndFilter.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/TemplateListSort/TemplateListSort.module.css?aa64","webpack://portainer/./app/react/portainer/templates/app-templates/TemplateListSort/TemplateListSort.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/Filters.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/AppTemplatesList.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/queries/build-url.ts","webpack://portainer/./app/react/portainer/templates/app-templates/queries/useAppTemplates.ts","webpack://portainer/./app/react/portainer/templates/app-templates/queries/useFetchTemplateFile.ts","webpack://portainer/./app/react/portainer/templates/app-templates/types.ts","webpack://portainer/./app/react/portainer/templates/app-templates/view-model.ts","webpack://portainer/./app/react/portainer/templates/components/TemplateItem.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/ListView/CustomTemplatesListItem.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/ListView/CustomTemplatesList.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/build-url.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/query-keys.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplate.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplateFile.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplates.ts","webpack://portainer/./app/react/portainer/templates/types.ts","webpack://portainer/./app/react/portainer/users/teams/queries.ts","webpack://portainer/./app/react/portainer/users/teams/team-membership.service.ts","webpack://portainer/./app/react/portainer/users/teams/teams.service.ts","webpack://portainer/./app/react/portainer/users/teams/types.ts","webpack://portainer/./app/__mocks__/fileMock.js","webpack://portainer/./app/__mocks__/styleMock.js","webpack://portainer/./app/agent/components/host-browser/hostBrowserController.js","webpack://portainer/./app/agent/components/host-browser/index.js","webpack://portainer/./app/agent/components/node-selector/index.js","webpack://portainer/./app/agent/components/node-selector/nodeSelectorController.js","webpack://portainer/./app/agent/components/volume-browser/index.js","webpack://portainer/./app/agent/components/volume-browser/volumeBrowserController.js","webpack://portainer/./app/agent/index.js","webpack://portainer/./app/agent/models/agent.js","webpack://portainer/./app/agent/rest/agent.js","webpack://portainer/./app/agent/rest/browse.js","webpack://portainer/./app/agent/rest/dockerhub.js","webpack://portainer/./app/agent/rest/host.js","webpack://portainer/./app/agent/rest/ping.js","webpack://portainer/./app/agent/rest/response/browse.js","webpack://portainer/./app/agent/rest/v1/agent.js","webpack://portainer/./app/agent/rest/v1/browse.js","webpack://portainer/./app/agent/services/agentService.js","webpack://portainer/./app/agent/services/hostBrowserService.js","webpack://portainer/./app/agent/services/pingService.js","webpack://portainer/./app/agent/services/volumeBrowserService.js","webpack://portainer/./app/angulartics.matomo/index.js","webpack://portainer/./app/app.js","webpack://portainer/./app/assets/css/colors.ts","webpack://portainer/./app/portainer/services/csrf.ts","webpack://portainer/./app/config.js","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/datatable-store.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/created.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/host.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/image.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/ip.tsx","webpack://portainer/./app/react/components/datatables/useTableSettings.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/components/ImageStatus/PublishedPortLink.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/RowContext.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/ports.tsx","webpack://portainer/./app/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions.module.css?9085","webpack://portainer/./app/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/quick-actions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/stack.tsx","webpack://portainer/./app/react/components/datatables/filter-types.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/state.tsx","webpack://portainer/./app/react/docker/queries/utils/root.ts","webpack://portainer/./app/react/docker/queries/utils/container.ts","webpack://portainer/./app/react/docker/queries/utils/index.ts","webpack://portainer/./app/react/docker/containers/queries/query-keys.ts","webpack://portainer/./app/react/docker/containers/queries/gpus.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/gpus.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/index.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableActions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableSettings.tsx","webpack://portainer/./app/react/docker/containers/utils.ts","webpack://portainer/./app/react/components/datatables/QuickActionsSettings.tsx","webpack://portainer/./app/react/docker/containers/queries/containers.ts","webpack://portainer/./app/react/common/stacks/ItemView/StackContainersDatatable.tsx","webpack://portainer/./app/react/docker/containers/ItemView/HealthStatus.tsx","webpack://portainer/./app/react/docker/host/SetupView/GpusList.tsx","webpack://portainer/./app/react/docker/images/queries/build-url.ts","webpack://portainer/./app/react/docker/queries/utils/build-url.ts","webpack://portainer/./app/react/docker/images/queries/queryKeys.ts","webpack://portainer/./app/react/docker/images/queries/useImages.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/created.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/id.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/size.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/index.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/tags.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/host.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/ImagesDatatable.tsx","webpack://portainer/./app/react/docker/events/EventsDatatables.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/columns.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/ConfigsDatatable.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/store.ts","webpack://portainer/./app/react/components/datatables/extend-options/withMeta.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/helper.ts","webpack://portainer/./app/react/docker/components/FilesTable/types.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/NameCell.tsx","webpack://portainer/./app/react/docker/components/FilesTable/columns/index.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/ActionsCell.tsx","webpack://portainer/./app/react/docker/components/FilesTable/FilesTable.tsx","webpack://portainer/./app/react/docker/host/BrowseView/AgentHostBrowser.tsx","webpack://portainer/./app/react/docker/volumes/BrowseView/AgentVolumeBrowser.tsx","webpack://portainer/./app/react/docker/containers/StatsView/ProcessesDatatable.tsx","webpack://portainer/./app/react/docker/secrets/ListView/SecretsDatatable.tsx","webpack://portainer/./app/react/components/datatables/extend-options/withGlobalFilter.ts","webpack://portainer/./app/react/docker/stacks/view-models/utils.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/TableSettingsMenus.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/components/datatable/TableColumnHeaderImageUpToDate.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/getStackImagesStatus.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/StackImageStatus.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/image-notification.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/control.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/StacksDatatable.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/store.ts","webpack://portainer/./app/react/docker/networks/ListView/columns/helper.ts","webpack://portainer/./app/react/docker/networks/ListView/columns/name.tsx","webpack://portainer/./app/react/docker/networks/ListView/columns/index.ts","webpack://portainer/./app/react/components/datatables/NestedTable.tsx","webpack://portainer/./app/react/components/datatables/NestedDatatable.tsx","webpack://portainer/./app/react/docker/networks/ListView/NestedNetwordsTable.tsx","webpack://portainer/./app/react/docker/networks/ListView/NetworksDatatable.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/helper.ts","webpack://portainer/./app/react/docker/networks/network.service.ts","webpack://portainer/./app/react/docker/networks/queries.ts","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/actions.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/types.ts","webpack://portainer/./app/react/docker/networks/queries/buildUrl.ts","webpack://portainer/./app/react/docker/networks/queries/useConnectContainer.ts","webpack://portainer/./app/react/docker/networks/queries/queryKeys.ts","webpack://portainer/./app/react/docker/networks/queries/useNetworks.ts","webpack://portainer/./app/react/docker/containers/components/NetworkSelector.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/ConnectNetworkForm.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/ContainerNetworksDatatable.tsx","webpack://portainer/./app/docker/react/components/containers.ts","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/columns.tsx","webpack://portainer/./app/react/components/datatables/extend-options/mergeOptions.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/image.tsx","webpack://portainer/./app/react/docker/proxy/queries/nodes/build-url.ts","webpack://portainer/./app/react/docker/proxy/queries/query-keys.ts","webpack://portainer/./app/react/docker/proxy/queries/nodes/query-keys.ts","webpack://portainer/./app/react/docker/proxy/queries/nodes/useNodes.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/constraint-helper.ts","webpack://portainer/./app/react/docker/images/queries/encodeRegistryCredentials.ts","webpack://portainer/./app/react/docker/services/axios/urlBuilder.ts","webpack://portainer/./app/react/docker/services/queries/query-keys.ts","webpack://portainer/./app/react/docker/services/queries/useUpdateServiceMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/ScaleForm.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/ScaleServiceButton.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/schedulingMode.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/ports.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/status.tsx","webpack://portainer/./app/react/docker/services/common/TaskTableQuickActions.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/actions.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/slot.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/node.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/updated.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TasksDatatable/task-column.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TasksDatatable/TasksDatatable.tsx","webpack://portainer/./app/react/docker/services/webhooks/build-url.ts","webpack://portainer/./app/react/docker/services/webhooks/getWebhooks.ts","webpack://portainer/./app/react/docker/services/webhooks/removeWebhook.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/useRemoveServicesMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/useForceUpdateServicesMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TableSettings.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/ServicesDatatable.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/task.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/meta.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/TasksDatatable.tsx","webpack://portainer/./app/docker/react/components/services.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/index.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/index.ts","webpack://portainer/./app/react/components/datatables/extend-options/withControlledSelected.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/column-helper.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/types.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/status.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/availability.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/index.ts","webpack://portainer/./app/react/docker/networks/CreateView/MacvlanNodesSelector/MacvlanNodesSelector.tsx","webpack://portainer/./app/docker/react/components/networks.ts","webpack://portainer/./app/react/docker/networks/CreateView/MacvlanNodesSelector/useColumns.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/NodesDatatable.tsx","webpack://portainer/./app/docker/react/components/swarm.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/tableMeta.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/VolumesDatatable.tsx","webpack://portainer/./app/docker/react/components/volumes.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/index.ts","webpack://portainer/./app/docker/react/components/index.ts","webpack://portainer/./app/react/docker/images/ItemView/DockerfileDetails.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/index.ts","webpack://portainer/./app/react/docker/networks/network.helper.ts","webpack://portainer/./app/react/docker/networks/ItemView/NetworkDetailsTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/NetworkOptionsTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/NetworkContainersTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/ItemView.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatable.tsx","webpack://portainer/./app/react/docker/containers/queries/container.ts","webpack://portainer/./app/react/docker/containers/LogView/LogView.tsx","webpack://portainer/./app/react/portainer/webhooks/build-url.ts","webpack://portainer/./app/react/portainer/webhooks/createWebhook.ts","webpack://portainer/./app/react/portainer/webhooks/types.ts","webpack://portainer/./app/react/docker/images/queries/usePullImageMutation.ts","webpack://portainer/./app/react/docker/containers/CreateView/useCreateMutation.tsx","webpack://portainer/./app/react/portainer/registries/utils/getUrl.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.viewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.requestModel.ts","webpack://portainer/./app/react/docker/proxy/queries/images/queryKeys.ts","webpack://portainer/./app/react/docker/proxy/queries/images/useImages.ts","webpack://portainer/./app/react/portainer/registries/queries/useRegistry.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/InputSearch.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/utils.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/SimpleForm.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/AdvancedForm.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/RateLimits.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/ImageConfigFieldset.tsx","webpack://portainer/./app/react/docker/agent/queries/useApiVersion.ts","webpack://portainer/./app/react/docker/agent/queries/build-url.ts","webpack://portainer/./app/react/docker/agent/queries/useAgentNodes.ts","webpack://portainer/./app/react/docker/agent/NodeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/BaseForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.validation.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/validation.ts","webpack://portainer/./app/react/portainer/registries/utils/getImageConfig.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/CapabilitiesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/ConsoleSettings.tsx","webpack://portainer/./app/react/docker/proxy/queries/useServicePlugins.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/LoggerConfig.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/toViewModel.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/OverridableInput.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/CommandsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/Item.tsx","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/LabelsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/ContainerSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/NetworkTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/DevicesField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/GpuFieldset.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/memory-utils.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/ResourcesFieldset.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/RuntimeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/RuntimeSection.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/SysctlsField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/ResourcesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/RestartPolicyTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/context.ts","webpack://portainer/./app/react/docker/volumes/queries/query-keys.ts","webpack://portainer/./app/react/docker/volumes/queries/useVolumes.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/VolumeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/Item.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/VolumesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/EnvVarsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/toViewModel.ts","webpack://portainer/./app/react/portainer/webhooks/query-keys.ts","webpack://portainer/./app/react/portainer/webhooks/useWebhooks.ts","webpack://portainer/./app/react/docker/containers/CreateView/useInitialValues.ts","webpack://portainer/./app/react/docker/containers/queries/useUpdateContainer.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/EditResourceForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/InnerForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/registries/utils/findRegistryMatch.ts","webpack://portainer/./app/react/hooks/useDebouncedValue.ts","webpack://portainer/./app/react/docker/containers/CreateView/validation.ts","webpack://portainer/./app/docker/react/views/containers.ts","webpack://portainer/./app/react/docker/containers/ListView/ListView.tsx","webpack://portainer/./app/docker/react/views/index.ts","webpack://portainer/./app/docker/react/index.ts","webpack://portainer/./app/docker/__module.js","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy-controller.js","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy.js","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboard-cluster-agent-info.js","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfoController.js","webpack://portainer/./app/docker/components/host-overview/host-overview.js","webpack://portainer/./app/docker/components/host-view-panels/devices-panel/devices-panel.js","webpack://portainer/./app/docker/components/host-view-panels/disks-panel/disks-panel.js","webpack://portainer/./app/docker/components/host-view-panels/engine-details-panel/engine-details-panel.js","webpack://portainer/./app/docker/components/host-view-panels/host-details-panel/host-details-panel.js","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select-controller.js","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select.js","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table-controller.js","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table.js","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel-controller.js","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.controller.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.controller.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.js","webpack://portainer/./app/docker/components/log-viewer/log-viewer.js","webpack://portainer/./app/docker/components/log-viewer/logViewerController.js","webpack://portainer/./app/docker/components/network-macvlan-form/network-macvlan-form.js","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanFormController.js","webpack://portainer/./app/react/docker/networks/CreateView/macvlanOptions.tsx","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanFormModel.js","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsForm.js","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsFormModel.js","webpack://portainer/./app/docker/components/volumesNFSForm/volumes-nfs-form.js","webpack://portainer/./app/docker/components/volumesNFSForm/volumesNFSFormModel.js","webpack://portainer/./app/docker/filters/filters.js","webpack://portainer/./app/docker/helpers/configHelper.js","webpack://portainer/./app/docker/helpers/containerHelper.js","webpack://portainer/./app/docker/helpers/imageHelper.js","webpack://portainer/./app/docker/helpers/infoHelper.js","webpack://portainer/./app/docker/helpers/labelHelper.js","webpack://portainer/./app/docker/helpers/networkHelper.js","webpack://portainer/./app/docker/helpers/nodeHelper.js","webpack://portainer/./app/docker/helpers/secretHelper.js","webpack://portainer/./app/docker/helpers/serviceHelper.js","webpack://portainer/./app/docker/helpers/taskHelper.js","webpack://portainer/./app/docker/helpers/volumeHelper.js","webpack://portainer/./app/docker/models/config.js","webpack://portainer/./app/docker/models/container.js","webpack://portainer/./app/docker/models/event.js","webpack://portainer/./app/docker/models/image.js","webpack://portainer/./app/docker/models/imageDetails.js","webpack://portainer/./app/docker/models/imageLayer.js","webpack://portainer/./app/docker/models/plugin.js","webpack://portainer/./app/docker/models/porImageRegistry.js","webpack://portainer/./app/docker/models/swarm.js","webpack://portainer/./app/docker/rest/build.js","webpack://portainer/./app/docker/rest/commit.js","webpack://portainer/./app/docker/rest/config.js","webpack://portainer/./app/docker/rest/container.js","webpack://portainer/./app/docker/rest/exec.js","webpack://portainer/./app/docker/rest/image.js","webpack://portainer/./app/docker/rest/network.js","webpack://portainer/./app/docker/rest/node.js","webpack://portainer/./app/docker/rest/plugin.js","webpack://portainer/./app/docker/rest/response/handlers.js","webpack://portainer/./app/docker/rest/response/image.js","webpack://portainer/./app/docker/rest/secret.js","webpack://portainer/./app/docker/rest/service.js","webpack://portainer/./app/docker/rest/swarm.js","webpack://portainer/./app/docker/rest/system.js","webpack://portainer/./app/docker/rest/task.js","webpack://portainer/./app/docker/rest/volume.js","webpack://portainer/./app/docker/services/buildService.js","webpack://portainer/./app/docker/services/configService.js","webpack://portainer/./app/docker/services/containerService.js","webpack://portainer/./app/docker/services/execService.js","webpack://portainer/./app/docker/services/imageService.js","webpack://portainer/./app/docker/models/network.ts","webpack://portainer/./app/docker/services/networkService.js","webpack://portainer/./app/docker/models/node.ts","webpack://portainer/./app/docker/services/nodeService.js","webpack://portainer/./app/docker/services/pluginService.js","webpack://portainer/./app/docker/models/secret.ts","webpack://portainer/./app/docker/services/secretService.js","webpack://portainer/./app/docker/models/service.ts","webpack://portainer/./app/docker/services/serviceService.js","webpack://portainer/./app/docker/services/swarmService.js","webpack://portainer/./app/docker/services/systemService.js","webpack://portainer/./app/docker/models/task.ts","webpack://portainer/./app/docker/services/taskService.js","webpack://portainer/./app/docker/models/volume.ts","webpack://portainer/./app/docker/services/volumeService.js","webpack://portainer/./app/docker/views/configs/configsController.js","webpack://portainer/./app/docker/views/configs/create/createConfigController.js","webpack://portainer/./app/docker/views/configs/edit/configController.js","webpack://portainer/./app/docker/views/containers/console/containerConsoleController.js","webpack://portainer/./app/react/docker/containers/ItemView/ConfirmRecreationModal.tsx","webpack://portainer/./app/docker/views/containers/edit/containerController.js","webpack://portainer/./app/docker/views/containers/inspect/containerInspectController.js","webpack://portainer/./app/docker/views/containers/logs/containerLogsController.js","webpack://portainer/./app/docker/views/containers/stats/containerStatsController.js","webpack://portainer/./app/react/docker/DashboardView/ContainerStatus.tsx","webpack://portainer/./app/react/docker/DashboardView/ImagesTotalSize.tsx","webpack://portainer/./app/docker/views/dashboard/dashboardController.js","webpack://portainer/./app/docker/views/docker-features-configuration/docker-features-configuration.controller.js","webpack://portainer/./app/docker/views/docker-features-configuration/index.js","webpack://portainer/./app/docker/views/events/eventsController.js","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view-controller.js","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view.js","webpack://portainer/./app/docker/views/host/host-view-controller.js","webpack://portainer/./app/docker/views/host/host-view.js","webpack://portainer/./app/docker/views/images/build/buildImageController.js","webpack://portainer/./app/docker/views/images/edit/imageController.js","webpack://portainer/./app/docker/views/images/imagesController.js","webpack://portainer/./app/docker/views/images/import/importImageController.js","webpack://portainer/./app/docker/views/networks/create/createNetworkController.js","webpack://portainer/./app/docker/views/networks/networksController.js","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser-controller.js","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser.js","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view-controller.js","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view.js","webpack://portainer/./app/docker/views/registries/access/registryAccess.js","webpack://portainer/./app/docker/views/registries/access/registryAccessController.js","webpack://portainer/./app/docker/views/secrets/create/createSecretController.js","webpack://portainer/./app/docker/views/secrets/edit/secretController.js","webpack://portainer/./app/docker/views/secrets/secretsController.js","webpack://portainer/./app/docker/views/services/create/createServiceController.js","webpack://portainer/./app/docker/views/services/edit/serviceController.js","webpack://portainer/./app/docker/views/services/logs/serviceLogsController.js","webpack://portainer/./app/docker/views/services/servicesController.js","webpack://portainer/./app/docker/views/swarm/swarmController.js","webpack://portainer/./app/docker/views/swarm/visualizer/swarmVisualizerController.js","webpack://portainer/./app/docker/views/tasks/edit/taskController.js","webpack://portainer/./app/docker/views/tasks/logs/taskLogsController.js","webpack://portainer/./app/docker/views/volumes/browse/browseVolumeController.js","webpack://portainer/./app/docker/views/volumes/create/createVolumeController.js","webpack://portainer/./app/docker/views/volumes/edit/volumeController.js","webpack://portainer/./app/docker/views/volumes/volumesController.js","webpack://portainer/./app/react/edge/edge-stacks/components/EdgeStackDeploymentTypeSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/PrePullToggle.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/RetryDeployToggle.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/PrivateRegistryFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/buildUrl.ts","webpack://portainer/./app/react/edge/edge-stacks/queries/useParseRegistries.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/PrivateRegistryFieldsetWrapper.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/validation.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/useValidation.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/types.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/RelativePathFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/useEnableFsPath.ts","webpack://portainer/./app/react/portainer/account/git-credentials/queries/useCreateGitCredentialsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/useEdgeGroupHasType.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/GitForm/useUpdateEdgeStackGitMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/GitForm/GitForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/EditEdgeStackForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/ComposeForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/KubernetesForm.tsx","webpack://portainer/./app/react/edge/components/EdgeGroupAssociationTable.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/query-keys.ts","webpack://portainer/./app/react/edge/edge-stacks/queries/useEdgeStack.ts","webpack://portainer/./app/react/portainer/gitops/GitCommitLink.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useLogsStatus.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useCollectLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useDeleteLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useDownloadLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/LogsActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/EnvironmentActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/ActionStatus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/columns.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/EnvironmentsDatatable.tsx","webpack://portainer/./app/edge/react/components/index.ts","webpack://portainer/./app/react/hooks/useParamState.ts","webpack://portainer/./app/react/edge/components/AssociatedEdgeEnvironmentsSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/columns.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/filter-store.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/Filter.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/queries.ts","webpack://portainer/./app/react/portainer/environments/queries/useUpdateEnvironmentsRelationsMutation.ts","webpack://portainer/./app/react/edge/edge-groups/queries/useCreateEdgeGroupMutation.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/CreatableSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/EdgeGroupSelector.tsx","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/useCreateGroupMutation.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/GroupSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/TagSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/utils.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/AssignmentDialog.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/createPayload.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/TableActions.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/Datatable.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/useEnvironments.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/WaitingRoomView.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/useEdgeStacks.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/EdgeStacksStatus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/DeploymentCounter.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/columns.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/TableSettingsMenus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/useDeleteEdgeStacksMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/TableActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/EdgeStacksDatatable.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/store.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/helper.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/index.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/name.tsx","webpack://portainer/./app/react/components/buttons/DeleteButton.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/useDeleteEdgeGroupMutation.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/TableActions.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/EdgeGroupsDatatable.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useDeleteTemplateMutation.ts","webpack://portainer/./app/react/edge/templates/custom-templates/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/useViewType.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCreateTemplateMutation.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/types.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/types.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.validation.ts","webpack://portainer/./app/react/common/stacks/common/form-texts.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/useParseTemplateOnFileChange.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/InnerForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/CreateForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/useValidation.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/useInitialValues.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useUpdateTemplateMutation.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/InnerForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/EditForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/useValidation.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/useInitialValues.ts","webpack://portainer/./app/edge/react/views/templates.ts","webpack://portainer/./app/react/edge/templates/AppTemplatesView/AppTemplatesView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/EditView.tsx","webpack://portainer/./app/edge/react/views/index.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/ListView.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/ListView.tsx","webpack://portainer/./app/edge/react/index.ts","webpack://portainer/./app/edge/__module.js","webpack://portainer/./app/react/edge/edge-jobs/CreateView/cron-method-options.tsx","webpack://portainer/./app/edge/components/edge-job-form/edgeJobFormController.js","webpack://portainer/./app/edge/components/edge-job-form/index.js","webpack://portainer/./app/edge/components/edge-job-results-datatable/edgeJobResultsDatatableController.js","webpack://portainer/./app/edge/components/edge-job-results-datatable/index.js","webpack://portainer/./app/edge/components/edge-jobs-datatable/index.js","webpack://portainer/./app/edge/components/edge-stack-status/edgeStackStatusController.js","webpack://portainer/./app/edge/components/edge-stack-status/index.js","webpack://portainer/./app/react/edge/edge-groups/CreateView/tag-options.tsx","webpack://portainer/./app/react/edge/edge-groups/CreateView/group-type-options.tsx","webpack://portainer/./app/edge/components/group-form/groupFormController.js","webpack://portainer/./app/edge/components/group-form/index.js","webpack://portainer/./app/edge/rest/edge-groups.js","webpack://portainer/./app/edge/rest/edge-job-results.js","webpack://portainer/./app/edge/rest/edge-jobs.js","webpack://portainer/./app/edge/rest/edge-stacks.js","webpack://portainer/./app/edge/services/edge-group.js","webpack://portainer/./app/edge/services/edge-job.js","webpack://portainer/./app/edge/services/edge-stack.js","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/createEdgeGroupViewController.js","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/index.js","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/editEdgeGroupViewController.js","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/index.js","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/index.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/edgeJobController.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/index.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/edgeJobsViewController.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.controller.js","webpack://portainer/./app/react/edge/edge-stacks/utils.ts","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.controller.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.controller.js","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/index.js","webpack://portainer/./app/edge/views/edge-stacks/index.js","webpack://portainer/./app/i18n.ts","webpack://portainer/./app/azure/react/components/index.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.module.css?a1c2","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.tsx","webpack://portainer/./app/react/azure/services/utils.ts","webpack://portainer/./app/react/azure/queries/query-keys.ts","webpack://portainer/./app/react/azure/queries/useProvider.ts","webpack://portainer/./app/react/azure/queries/utils.ts","webpack://portainer/./app/react/azure/queries/useResourceGroups.ts","webpack://portainer/./app/react/azure/queries/useSubscriptions.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/utils.ts","webpack://portainer/./app/react/azure/services/container-groups.service.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/useCreateInstanceMutation.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateContainerInstanceForm.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/useLoadFormState.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateContainerInstanceForm.validation.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.validation.ts","webpack://portainer/./app/react/azure/queries/useContainerGroup.ts","webpack://portainer/./app/react/azure/queries/useResourceGroup.ts","webpack://portainer/./app/react/azure/queries/useSubscription.ts","webpack://portainer/./app/react/azure/queries/useContainerGroups.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/helper.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/name.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/columns/location.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/ports.tsx","webpack://portainer/./app/react/azure/utils.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/index.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/ownership.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/ContainersDatatable.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/ListView.tsx","webpack://portainer/./app/azure/react/views/index.ts","webpack://portainer/./app/react/azure/container-instances/ItemView/ItemView.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateView.tsx","webpack://portainer/./app/react/azure/DashboardView/DashboardView.tsx","webpack://portainer/./app/azure/react/index.ts","webpack://portainer/./app/azure/index.ts","webpack://portainer/./app/ng-constants.ts","webpack://portainer/./app/index.js","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/availability.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatableAngular.tsx","webpack://portainer/./app/react/kubernetes/namespaces/AccessView/NamespaceAccessUsersSelector.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesSelector.tsx","webpack://portainer/./app/react/kubernetes/ingresses/queries.ts","webpack://portainer/./app/react/components/Card/Card.tsx","webpack://portainer/./app/react/components/form-components/formikUtils.ts","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ContainerPortInput.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServicePortInput.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/ingress/AppIngressPathForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/ingress/AppIngressPathsForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/cluster-ip/ClusterIpServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/cluster-ip/ClusterIpServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServiceTabs.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/node-port/NodePortServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/node-port/NodePortServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/load-balancer/LoadBalancerServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/load-balancer/LoadBalancerServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServiceTabLabel.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/PublishingExplaination.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/kubeServicesValidation.ts","webpack://portainer/./app/react/components/Note/Note.tsx","webpack://portainer/./app/react/kubernetes/applications/utils.ts","webpack://portainer/./app/react/kubernetes/applications/pod.service.ts","webpack://portainer/./app/react/kubernetes/applications/application.service.ts","webpack://portainer/./app/react/kubernetes/applications/autoscaling.service.ts","webpack://portainer/./app/react/kubernetes/applications/application.queries.ts","webpack://portainer/./app/react/kubernetes/namespaces/queries/useNamespaceQuery.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationSummaryWidget.tsx","webpack://portainer/./app/react/common/stacks/stack.service.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RestartApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RedeployApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RollbackApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationServicesTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationIngressesTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationAutoScalingTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationEnvVarsTable.tsx","webpack://portainer/./app/react/kubernetes/configs/secret.service.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationVolumeConfigsTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationPersistentDataTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationDetailsWidget.tsx","webpack://portainer/./app/react/kubernetes/datatables/SystemResourcesSettings.tsx","webpack://portainer/./app/react/kubernetes/datatables/default-kube-datatable-store.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/eventType.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/message.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/date.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/kind.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/EventsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/useNamespaceEventsQuery.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationEventsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/pod.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/image.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/imagePullPolicy.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/node.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/podIp.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/creationDate.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/actions.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/ApplicationContainersDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/nodes.service.ts","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementTypeBoxSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ApplicationSummarySection/ApplicationSummarySection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ApplicationSummarySection/utils.ts","webpack://portainer/./app/react/kubernetes/components/YAMLInspector.tsx","webpack://portainer/./app/react/kubernetes/datatables/SystemResourceDescription.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/columns.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/SubRows.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/StacksSettingsMenu.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/NamespaceFilter.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/TableActions.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/ApplicationsStacksDatatable.tsx","webpack://portainer/./app/react/kubernetes/cluster/kubernetesEndpoint.service.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/role.tsx","webpack://portainer/./app/react/components/StatusBadge.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/cpu.tsx","webpack://portainer/./app/react/kubernetes/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/memory.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/version.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/ip.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/actions.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/NodesDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigurationKey.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigurationItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/configurationValidationSchema.ts","webpack://portainer/./app/react/kubernetes/configs/configmap.service.ts","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/PersistedFolderItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/PersistedFoldersFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/persistedFoldersValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/ResourceReservationFormSection/resourceReservationValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AutoScalingFormSection/AutoScalingFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/queries/useNamespacesQuery.ts","webpack://portainer/./app/react/kubernetes/applications/components/NamespaceSelector/namespaceSelectorValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/EditYamlFormSection.tsx","webpack://portainer/./app/kubernetes/react/components/applications.ts","webpack://portainer/./app/kubernetes/react/components/index.ts","webpack://portainer/./app/react/kubernetes/cluster/RegistryAccessView/NamespacesSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsDatatable/HelmInsightsBox.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/DataAccessPolicyFormSection.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/StackName.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/StackNameLabelInsight.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/KubeServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigMapsFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/SecretsFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ResourceReservationFormSection/ResourceReservationFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ReplicationFormSection/ReplicationFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ReplicationFormSection/replicationValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AutoScalingFormSection/autoScalingValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/placementValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/NamespaceSelector/NamespaceSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/components/NameFormSection/NameFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/NameFormSection/nameValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AppDeploymentTypeFormSection/AppDeploymentTypeFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/AppDeploymentTypeFormSection/deploymentTypeValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/EnvironmentVariablesFormSection/EnvironmentVariablesFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/EnvironmentVariablesFormSection/kubeEnvVarValidationSchema.ts","webpack://portainer/./app/react/kubernetes/datatables/DefaultDatatableSettings.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/className.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/ingressRules.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/IngressDatatable.tsx","webpack://portainer/./app/react/kubernetes/annotations/AnnotationsForm.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/IngressForm.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/utils.ts","webpack://portainer/./app/react/kubernetes/volumes/usePVCsQuery.ts","webpack://portainer/./app/react/kubernetes/dashboard/EnvironmentInfo.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/ports.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/clusterIP.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/ExternalIPLink.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/externalIP.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/targetPorts.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/index.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/application.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/ServicesDatatable.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/datatable-store.ts","webpack://portainer/./app/react/components/Widget/WidgetTabs.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/configs/constants.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/ConfigMapsDatatable.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/SecretsDatatable.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigmapsAndSecretsView.tsx","webpack://portainer/./app/react/hooks/useUnauthorizedRedirect.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatable.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/LoadBalancerFormSection/LoadBalancerFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/NamespaceSummary.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/StorageQuotaFormSection/StorageQuotaItem.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/StorageQuotaFormSection/StorageQuotaFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/queries/useResourceLimitsQuery.ts","webpack://portainer/./app/react/kubernetes/namespaces/components/ResourceQuotaFormSection/ResourceQuotaFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/NamespaceInnerForm.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/registriesValidationSchema.ts","webpack://portainer/./app/react/kubernetes/namespaces/components/ResourceQuotaFormSection/getResourceQuotaValidationSchema.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/registries.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/queries/useCreateNamespaceMutation.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceForm.tsx","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/utils.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/PlacementsDatatableSubRow.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/index.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/PlacementsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/usePlacementTableData.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/useApplicationEventsTableData.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/AppYAMLEditor/useApplicationYAML.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/AppYAMLEditor/ApplicationYAMLEditor.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/useStorageClasses.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/validation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/RBACAlert.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/EnableMetricsInput.tsx","webpack://portainer/./app/react/kubernetes/queries/useGetMetricsMutation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/StorageAccessModeSelector.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/StorageClassDatatable.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/useConfigureClusterMutation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/handleSubmitConfigureCluster.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/ConfigureForm.tsx","webpack://portainer/./app/kubernetes/react/views/index.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceView.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesView.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/index.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/CreateIngressView.tsx","webpack://portainer/./app/react/kubernetes/networks/services/queries.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsView.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureView.tsx","webpack://portainer/./app/react/kubernetes/dashboard/DashboardView.tsx","webpack://portainer/./app/react/kubernetes/applications/ConsoleView/ConsoleView.tsx","webpack://portainer/./app/kubernetes/react/index.ts","webpack://portainer/./app/kubernetes/__module.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.controller.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/configurations-datatable/configurationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/events-datatable/eventsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatableController.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.controller.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.controller.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.js","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.js","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservation.js","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservationController.js","webpack://portainer/./app/kubernetes/components/view-loading/viewLoading.js","webpack://portainer/./app/kubernetes/converters/application.js","webpack://portainer/./app/kubernetes/converters/configMap.js","webpack://portainer/./app/kubernetes/converters/configuration.js","webpack://portainer/./app/kubernetes/converters/daemonSet.js","webpack://portainer/./app/kubernetes/converters/deployment.js","webpack://portainer/./app/kubernetes/converters/event.js","webpack://portainer/./app/kubernetes/converters/namespace.js","webpack://portainer/./app/kubernetes/converters/persistentVolumeClaim.js","webpack://portainer/./app/kubernetes/converters/resourcePool.js","webpack://portainer/./app/kubernetes/converters/resourceQuota.js","webpack://portainer/./app/kubernetes/converters/secret.js","webpack://portainer/./app/kubernetes/converters/service.js","webpack://portainer/./app/kubernetes/converters/statefulSet.js","webpack://portainer/./app/kubernetes/converters/storageClass.js","webpack://portainer/./app/kubernetes/converters/volume.js","webpack://portainer/./app/kubernetes/custom-templates/index.js","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/index.js","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.controller.js","webpack://portainer/./app/kubernetes/endpoint/converter.js","webpack://portainer/./app/kubernetes/endpoint/models.js","webpack://portainer/./app/kubernetes/endpoint/rest.js","webpack://portainer/./app/kubernetes/endpoint/service.js","webpack://portainer/./app/kubernetes/filters/applicationFilters.js","webpack://portainer/./app/kubernetes/filters/configurationFilters.js","webpack://portainer/./app/kubernetes/filters/eventFilters.js","webpack://portainer/./app/kubernetes/filters/filters.js","webpack://portainer/./app/kubernetes/helm/rest.js","webpack://portainer/./app/kubernetes/helm/service.js","webpack://portainer/./app/kubernetes/helpers/application/index.js","webpack://portainer/./app/kubernetes/helpers/commonHelper.js","webpack://portainer/./app/kubernetes/helpers/configMapHelper.js","webpack://portainer/./app/kubernetes/helpers/configurationHelper.js","webpack://portainer/./app/kubernetes/helpers/eventHelper.js","webpack://portainer/./app/kubernetes/helpers/formValidationHelper.js","webpack://portainer/./app/kubernetes/helpers/namespaceHelper.js","webpack://portainer/./app/kubernetes/helpers/resourceQuotaHelper.js","webpack://portainer/./app/kubernetes/helpers/resourceReservationHelper.js","webpack://portainer/./app/kubernetes/helpers/serviceHelper.js","webpack://portainer/./app/kubernetes/helpers/stackHelper.js","webpack://portainer/./app/kubernetes/helpers/stackHelper.test.js","webpack://portainer/./app/kubernetes/helpers/volumeHelper.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/converter.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/helper.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/models.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/payload.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/rest.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/service.js","webpack://portainer/./app/kubernetes/ingress/constants.js","webpack://portainer/./app/kubernetes/ingress/converter.js","webpack://portainer/./app/kubernetes/ingress/helper.js","webpack://portainer/./app/kubernetes/ingress/models.js","webpack://portainer/./app/kubernetes/ingress/payloads.js","webpack://portainer/./app/kubernetes/ingress/rest.js","webpack://portainer/./app/kubernetes/ingress/service.js","webpack://portainer/./app/kubernetes/models/application/formValues.js","webpack://portainer/./app/kubernetes/models/application/models/constants.js","webpack://portainer/./app/kubernetes/models/application/models/index.js","webpack://portainer/./app/kubernetes/models/application/payloads.js","webpack://portainer/./app/kubernetes/models/common/params.js","webpack://portainer/./app/kubernetes/models/common/payloads.js","webpack://portainer/./app/kubernetes/models/config-map/models.js","webpack://portainer/./app/kubernetes/models/config-map/payloads.js","webpack://portainer/./app/kubernetes/models/configuration/formvalues.js","webpack://portainer/./app/kubernetes/models/configuration/models.js","webpack://portainer/./app/kubernetes/models/daemon-set/models.js","webpack://portainer/./app/kubernetes/models/daemon-set/payloads.js","webpack://portainer/./app/kubernetes/models/deploy.js","webpack://portainer/./app/kubernetes/models/deployment/models.js","webpack://portainer/./app/kubernetes/models/deployment/payloads.js","webpack://portainer/./app/kubernetes/models/event/models.js","webpack://portainer/./app/kubernetes/models/history/models.js","webpack://portainer/./app/kubernetes/models/namespace/models.js","webpack://portainer/./app/kubernetes/models/namespace/payloads.js","webpack://portainer/./app/kubernetes/models/nodes-limits/models.js","webpack://portainer/./app/kubernetes/models/port/models.js","webpack://portainer/./app/kubernetes/models/resource-pool/formValues.js","webpack://portainer/./app/kubernetes/models/resource-pool/models.js","webpack://portainer/./app/kubernetes/models/resource-quota/models.js","webpack://portainer/./app/kubernetes/models/resource-quota/payloads.js","webpack://portainer/./app/kubernetes/models/resource-reservation/models.js","webpack://portainer/./app/kubernetes/models/resource-types/models.js","webpack://portainer/./app/kubernetes/models/secret/models.js","webpack://portainer/./app/kubernetes/models/secret/payloads.js","webpack://portainer/./app/kubernetes/models/service/models.js","webpack://portainer/./app/kubernetes/models/service/payloads.js","webpack://portainer/./app/kubernetes/models/stack/models.js","webpack://portainer/./app/kubernetes/models/stateful-set/models.js","webpack://portainer/./app/kubernetes/models/stateful-set/payloads.js","webpack://portainer/./app/kubernetes/models/storage-class/models.js","webpack://portainer/./app/kubernetes/models/storage-class/payload.js","webpack://portainer/./app/kubernetes/models/volume/models.js","webpack://portainer/./app/kubernetes/models/volume/payloads.js","webpack://portainer/./app/kubernetes/node/converter.js","webpack://portainer/./app/kubernetes/node/filters.js","webpack://portainer/./app/kubernetes/node/formValues.js","webpack://portainer/./app/kubernetes/node/helper.js","webpack://portainer/./app/kubernetes/node/models.js","webpack://portainer/./app/kubernetes/node/payload.js","webpack://portainer/./app/kubernetes/node/rest.js","webpack://portainer/./app/kubernetes/node/service.js","webpack://portainer/./app/kubernetes/pod/converter.js","webpack://portainer/./app/kubernetes/pod/models/affinities.ts","webpack://portainer/./app/kubernetes/pod/models/index.js","webpack://portainer/./app/kubernetes/pod/payloads/affinities.js","webpack://portainer/./app/kubernetes/pod/payloads/create.js","webpack://portainer/./app/kubernetes/pod/service.js","webpack://portainer/./app/kubernetes/registries/index.js","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/index.js","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/kube-registry-access-view.controller.js","webpack://portainer/./app/react/kubernetes/cluster/RegistryAccessView/ConfirmDeleteAccess.tsx","webpack://portainer/./app/kubernetes/rest/configMap.js","webpack://portainer/./app/kubernetes/rest/controllerRevision.js","webpack://portainer/./app/kubernetes/rest/daemonSet.js","webpack://portainer/./app/kubernetes/rest/deployment.js","webpack://portainer/./app/kubernetes/rest/endpoint.js","webpack://portainer/./app/kubernetes/rest/event.js","webpack://portainer/./app/kubernetes/rest/health.js","webpack://portainer/./app/kubernetes/rest/namespace.js","webpack://portainer/./app/kubernetes/rest/nodesLimits.js","webpack://portainer/./app/kubernetes/rest/persistentVolumeClaim.js","webpack://portainer/./app/kubernetes/rest/pod.js","webpack://portainer/./app/kubernetes/rest/portainer-namespace.js","webpack://portainer/./app/kubernetes/rest/replicaSet.js","webpack://portainer/./app/kubernetes/rest/resourceQuota.js","webpack://portainer/./app/kubernetes/rest/response/transform.js","webpack://portainer/./app/kubernetes/rest/secret.js","webpack://portainer/./app/kubernetes/rest/service.js","webpack://portainer/./app/kubernetes/rest/serviceAccount.js","webpack://portainer/./app/kubernetes/rest/statefulSet.js","webpack://portainer/./app/kubernetes/rest/storage.js","webpack://portainer/./app/kubernetes/services/applicationService.js","webpack://portainer/./app/kubernetes/services/configMapService.js","webpack://portainer/./app/kubernetes/services/configurationService.js","webpack://portainer/./app/kubernetes/services/controllerRevisionService.js","webpack://portainer/./app/kubernetes/services/daemonSetService.js","webpack://portainer/./app/kubernetes/services/deploymentService.js","webpack://portainer/./app/kubernetes/services/eventService.js","webpack://portainer/./app/kubernetes/services/healthService.js","webpack://portainer/./app/kubernetes/services/namespaceService.js","webpack://portainer/./app/kubernetes/services/nodesLimitsService.js","webpack://portainer/./app/kubernetes/services/persistentVolumeClaimService.js","webpack://portainer/./app/kubernetes/services/resourcePoolService.js","webpack://portainer/./app/kubernetes/services/resourceQuotaService.js","webpack://portainer/./app/kubernetes/services/secretService.js","webpack://portainer/./app/kubernetes/services/serviceService.js","webpack://portainer/./app/kubernetes/services/stackService.js","webpack://portainer/./app/kubernetes/services/statefulSetService.js","webpack://portainer/./app/kubernetes/services/storageService.js","webpack://portainer/./app/kubernetes/services/volumeService.js","webpack://portainer/./app/kubernetes/store/namespace.js","webpack://portainer/./app/kubernetes/views/applications/applications.js","webpack://portainer/./app/kubernetes/views/applications/applicationsController.js","webpack://portainer/./app/kubernetes/views/applications/create/createApplication.js","webpack://portainer/./app/react/kubernetes/applications/CreateView/UpdateIngressPrompt.tsx","webpack://portainer/./app/kubernetes/views/applications/create/createApplicationController.js","webpack://portainer/./app/kubernetes/views/applications/helm/helm.controller.js","webpack://portainer/./app/kubernetes/views/applications/helm/index.js","webpack://portainer/./app/kubernetes/views/applications/logs/logs.js","webpack://portainer/./app/kubernetes/views/applications/logs/logsController.js","webpack://portainer/./app/kubernetes/views/applications/stats/stats.js","webpack://portainer/./app/kubernetes/views/applications/stats/statsController.js","webpack://portainer/./app/kubernetes/views/cluster/cluster.js","webpack://portainer/./app/kubernetes/views/cluster/clusterController.js","webpack://portainer/./app/kubernetes/views/cluster/node/node.js","webpack://portainer/./app/kubernetes/views/cluster/node/nodeController.js","webpack://portainer/./app/react/kubernetes/cluster/NodeView/ConfirmUpdateNode.tsx","webpack://portainer/./app/kubernetes/views/cluster/node/stats/stats.js","webpack://portainer/./app/kubernetes/views/cluster/node/stats/statsController.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMap.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMapController.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMap.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMapController.js","webpack://portainer/./app/kubernetes/views/configurations/configurationsController.js","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecret.js","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecretController.js","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secret.js","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secretController.js","webpack://portainer/./app/kubernetes/views/configurations/validation.js","webpack://portainer/./app/kubernetes/views/deploy/deploy.js","webpack://portainer/./app/kubernetes/views/deploy/deployController.js","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccess.js","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccessController.js","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/index.js","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.controller.js","webpack://portainer/./app/kubernetes/views/resource-pools/create/createResourcePoolController.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/controller.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/index.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePool.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePoolController.js","webpack://portainer/./app/react/kubernetes/namespaces/ItemView/ConfirmUpdateNamespace.tsx","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePools.js","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePoolsController.js","webpack://portainer/./app/kubernetes/views/security-constraint/constraintController.js","webpack://portainer/./app/kubernetes/views/stacks/logs/logs.js","webpack://portainer/./app/kubernetes/views/stacks/logs/logsController.js","webpack://portainer/./app/kubernetes/views/summary/resources/applicationResources.js","webpack://portainer/./app/kubernetes/views/summary/resources/configurationResources.js","webpack://portainer/./app/kubernetes/views/summary/resources/helpers.js","webpack://portainer/./app/kubernetes/views/summary/resources/namespaceResources.js","webpack://portainer/./app/kubernetes/views/summary/summary.js","webpack://portainer/./app/kubernetes/views/summary/summaryController.js","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/controller.js","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/index.js","webpack://portainer/./app/kubernetes/views/volumes/edit/volume.js","webpack://portainer/./app/kubernetes/views/volumes/edit/volumeController.js","webpack://portainer/./app/react/kubernetes/volumes/ItemView/ConfirmRedeployModal.tsx","webpack://portainer/./app/kubernetes/views/volumes/volumes.js","webpack://portainer/./app/kubernetes/views/volumes/volumesController.js","webpack://portainer/./app/matomo-setup.js","webpack://portainer/./app/react/portainer/feature-flags/limited-feature.directive.ts","webpack://portainer/./app/react/portainer/feature-flags/index.ts","webpack://portainer/./app/portainer/services/api/index.ts","webpack://portainer/./app/react/hooks/current-environment-store.ts","webpack://portainer/./app/portainer/services/endpointProvider.ts","webpack://portainer/./app/portainer/services/index.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/components/GroupAssociationTable.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/index.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/helper.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/url.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/helm-repositories.service.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/HelmRepositoryDatatableActions.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/HelmRepositoryDatatable.tsx","webpack://portainer/./app/portainer/react/components/file-upload-field.ts","webpack://portainer/./app/portainer/react/components/switch-field.ts","webpack://portainer/./app/portainer/react/components/custom-templates/variables-field.ts","webpack://portainer/./app/portainer/react/components/custom-templates/index.ts","webpack://portainer/./app/portainer/react/components/git-form.ts","webpack://portainer/./app/react/portainer/feature-flags/useFeatureFlag.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/created.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/helper.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/index.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/FDOProfilesDatatableActions.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/FDOProfilesDatatable.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/useFDOProfiles.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.module.css?f2a1","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.validation.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsOpenAMT/SettingsOpenAMT.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/Badge.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/PasswordLengthSlider/PasswordLengthSlider.module.css?000c","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/PasswordLengthSlider/PasswordLengthSlider.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/SaveAuthSettingsButton.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/InternalAuth.tsx","webpack://portainer/./app/react/components/form-components/validate-url.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/useToggledValue.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/DemoAlert.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/LogoFieldset.tsx","webpack://portainer/./app/react/components/form-components/Input/Textarea.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/ScreenBannerFieldset.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/TemplatesUrlSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/EnableTelemetryField.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/ApplicationSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/HelmSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeConfigSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeNoteMinimumCharacters.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/DeploymentOptionsSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeSettingsPanel.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/BEOverlay.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/useUpdateSSLConfigMutation.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HelmCertPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/AddLabelForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/HiddenContainersTable.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/HiddenContainersPanel.tsx","webpack://portainer/./app/react/hooks/withHideOnExtension.tsx","webpack://portainer/./app/react/portainer/settings/queries/useSSLSettings.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/SSLSettingsPanel/SSLSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/OAuth/AuthStyleField.tsx","webpack://portainer/./app/portainer/react/components/settings.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsOpenAMT/SettingsOpenAMT.validation.ts","webpack://portainer/./app/react/portainer/access-control/AccessManagement/PorAccessManagementUsersSelector.tsx","webpack://portainer/./app/portainer/react/components/access-control.ts","webpack://portainer/./app/react/portainer/access-control/PorAccessControlForm/TeamsSelector.tsx","webpack://portainer/./app/react/portainer/access-control/PorAccessControlForm/UsersSelector.tsx","webpack://portainer/./app/react/portainer/environments/ItemView/EdgeKeyDisplay.tsx","webpack://portainer/./app/portainer/react/components/environments.ts","webpack://portainer/./app/react/portainer/environments/KvmView/KVMControl/KVMControl.tsx","webpack://portainer/./app/react/portainer/registries/repositories/ListView/useRepositoryTags.ts","webpack://portainer/./app/react/portainer/registries/repositories/ListView/columns.tsx","webpack://portainer/./app/portainer/react/components/registries.ts","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryName.tsx","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryAction.tsx","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryDomain.tsx","webpack://portainer/./app/react/portainer/registries/repositories/ListView/RepositoriesDatatable.tsx","webpack://portainer/./app/react/portainer/account/useUpdateUserMutation.tsx","webpack://portainer/./app/react/portainer/account/AccountView/ApplicationSettings/ApplicationSettingsForm.tsx","webpack://portainer/./app/portainer/react/components/account.ts","webpack://portainer/./app/react/portainer/account/AccountView/ApplicationSettings/ApplicationSettingsWidget.tsx","webpack://portainer/./app/portainer/react/components/index.ts","webpack://portainer/./app/react/components/PasswordCheckHint.tsx","webpack://portainer/./app/react/components/ReactQueryDevtoolsWrapper.tsx","webpack://portainer/./app/react/portainer/environments/environment-groups/components/AssociatedEnvironmentsSelector.tsx","webpack://portainer/./app/react/hooks/usePaginationLimitState.ts","webpack://portainer/./app/assets/ico/heartbeat-up.svg","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/types.ts","webpack://portainer/./app/assets/ico/heartbeat-down.svg","webpack://portainer/./app/react/components/EnvironmentStatusBadgeItem.tsx","webpack://portainer/./app/react/components/EdgeIndicator.tsx","webpack://portainer/./app/react/components/EnvironmentStatusBadge.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentIcon.tsx","webpack://portainer/./app/react/components/StatsItem.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStatsDocker.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStatsKubernetes.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStats.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EngineVersion.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentTypeTag.tsx","webpack://portainer/./app/react/components/LinkButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentBrowseButtons.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EditButtons.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/AgentDetails.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/kubeconfig.service.ts","webpack://portainer/./app/react/hooks/useListSelection.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigPrompt.module.css?e1e9","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigPrompt.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/NoEnvironmentsInfoPanel.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/urls.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useSupportedAgentVersions.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/UpdateBadge.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/SortbySelector.module.css?a959","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/SortbySelector.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentList.module.css?ca38","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentListFilters.tsx","webpack://portainer/./app/react/portainer/environments/queries/useAgentVersionsList.ts","webpack://portainer/./app/react/edge/edge-devices/open-amt/useActivateDevicesMutation.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/AMTButton/AssociateAMTDialog.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/AMTButton/AMTButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentList.tsx","webpack://portainer/./app/react/portainer/HomeView/EdgeLoadingSpinner.module.css?deac","webpack://portainer/./app/react/portainer/HomeView/EdgeLoadingSpinner.tsx","webpack://portainer/./app/react/hooks/useUIState.tsx","webpack://portainer/./app/react/portainer/HomeView/home.service.ts","webpack://portainer/./app/react/portainer/HomeView/MotdPanel.tsx","webpack://portainer/./app/react/portainer/HomeView/HomeView.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAcccessToken.validation.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/useCreateUserAccessTokenMutation.ts","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAccessTokenInnerForm.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/DisplayUserAccessToken.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAccessToken.tsx","webpack://portainer/./app/react/portainer/common/PortainerUrlField.tsx","webpack://portainer/./app/react/portainer/common/PortainerTunnelAddrField.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettings/EdgeComputeSettings.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettings/EdgeComputeSettings.validation.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/DeploymentSyncOptions/DeploymentSyncOptions.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/EnableWaitingRoomSwitch.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/AutoEnvCreationSettingsForm.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/AutomaticEdgeEnvCreation.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/edge.ts","webpack://portainer/./app/react/edge/components/edge-agent-standard.svg","webpack://portainer/./app/react/edge/components/edge-agent-async.svg","webpack://portainer/./app/react/portainer/environments/EdgeAutoCreateScriptView/AutomaticEdgeEnvCreation/AutomaticEdgeEnvCreation.tsx","webpack://portainer/./app/react/portainer/environments/EdgeAutoCreateScriptView/EdgeAutoCreateScriptView.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/helper.ts","webpack://portainer/./app/react/portainer/environments/ListView/columns/actions.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/name.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/type.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/index.ts","webpack://portainer/./app/react/portainer/environments/ListView/columns/url.tsx","webpack://portainer/./app/react/portainer/environments/ListView/ImportFdoDeviceButton.tsx","webpack://portainer/./app/react/portainer/environments/ListView/EnvironmentsDatatable.tsx","webpack://portainer/./app/react/portainer/environments/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/backup-options.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/backupSettings.service.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/queryKeys.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useBackupS3Settings.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useUpdateBackupS3SettingsMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useDownloadBackupMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useExportS3BackupMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupFileForm.validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/SecurityFieldset.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupFileForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupS3Form.validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupS3Form.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/EnableOpenAIIntegrationSwitch.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/ExperimentalFeaturesForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/ExperimentalFeatures.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/SettingsView.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/components/CreateHelmRepositoryForm.validation.ts","webpack://portainer/./app/react/portainer/account/helm-repositories/components/HelmRepositoryForm.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/CreateHelmRepositoryView/CreateHelmRespositoriesForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/components/Option/Option.module.css?6843","webpack://portainer/./app/react/portainer/environments/wizard/components/Option/Option.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/create.ts","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/useFetchOrCreateLocalEnvironment.ts","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/HomeView.module.css?3029","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/HomeView.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/EnvironmentSelector.tsx","webpack://portainer/./app/assets/ico/vendor/kaas-icon.svg","webpack://portainer/./app/assets/ico/vendor/install-kubernetes.svg","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/environment-types.ts","webpack://portainer/./app/react/components/Stepper/Stepper.module.css?ee23","webpack://portainer/./app/react/components/Stepper/Stepper.tsx","webpack://portainer/./app/react/portainer/environments/queries/useCreateEnvironmentMutation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/MetadataFieldset.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MoreSettingsSection.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/NameField.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentFieldset.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/validation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentForm.validation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/EnvironmentUrlField.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/AgentForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/AgentForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/AgentTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APIForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APIForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APITab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/WizardDocker.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardAzure/WizardAzure.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/AgentPanel.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/KubeConfigTeaserForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/WizardKubernetes.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/EnvironmentsCreationView.module.css?2094","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardEndpointsList/WizardEndpointsList.module.css?db60","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardEndpointsList/WizardEndpointsList.tsx","webpack://portainer/./app/portainer/react/views/wizard.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/EnvironmentsCreationView.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/EndpointTypeView.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/Details.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/RowContext.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/name-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/UsersList.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/RowContext.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/helper.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/name-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/team-role-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/index.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/TeamMembersList.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamAssociationSelector.tsx","webpack://portainer/./app/react/portainer/users/teams/ListView/CreateTeamForm/CreateTeamForm.tsx","webpack://portainer/./app/react/portainer/users/teams/ListView/CreateTeamForm/CreateTeamForm.validation.ts","webpack://portainer/./app/react/portainer/users/teams/ListView/TeamsDatatable/TeamsDatatable.tsx","webpack://portainer/./app/portainer/react/views/teams.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/ItemView.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/useTeamIdParam.ts","webpack://portainer/./app/react/portainer/users/teams/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/list.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/types.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useRemoveMutation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/helper.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/created.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/groups.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/schedule-status.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/ScheduledTimeField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/scheduled-time.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/type.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/index.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/datatable-store.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/create.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/NameField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/useEdgeGroupsEnvironmentIds.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/VersionSelect.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/UpdateScheduleDetailsFieldset.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/usePreviousVersions.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/RollbackOptions.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/RollbackScheduleDetailsFieldset.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/ScheduleTypeSelector.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/useEnvironments.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/validation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/EdgeGroupsField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useItem.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useUpdateMutation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ItemView/ItemView.tsx","webpack://portainer/./app/portainer/react/views/update-schedules.ts","webpack://portainer/./app/portainer/react/views/index.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettingsView.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/CreateHelmRepositoryView/CreateHelmRepositoriesView.tsx","webpack://portainer/./app/portainer/react/index.ts","webpack://portainer/./app/react/sidebar/useSidebarState.tsx","webpack://portainer/./app/react/sidebar/Sidebar.module.css?f14d","webpack://portainer/./app/react/sidebar/SidebarItem/Wrapper.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarTooltip.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/useSidebarSrefActive.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarItem.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/index.ts","webpack://portainer/./app/react/sidebar/SidebarSection.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarParent.tsx","webpack://portainer/./app/react/sidebar/EdgeComputeSidebar.tsx","webpack://portainer/./app/react/portainer/environments/utils/docker.svg","webpack://portainer/./app/react/portainer/environments/utils/azure.svg","webpack://portainer/./app/react/portainer/environments/utils/kubernetes.svg","webpack://portainer/./app/react/portainer/environments/utils/get-platform-icon.ts","webpack://portainer/./app/react/sidebar/EnvironmentSidebar.module.css?43f4","webpack://portainer/./app/react/sidebar/items/DashboardLink.tsx","webpack://portainer/./app/react/sidebar/AzureSidebar/AzureSidebar.tsx","webpack://portainer/./app/react/sidebar/items/VolumesLink.tsx","webpack://portainer/./app/react/sidebar/DockerSidebar.tsx","webpack://portainer/./app/portainer/services/terminal-window.ts","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShell.module.css?3135","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShell.tsx","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShellButton.tsx","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubernetesSidebar.tsx","webpack://portainer/./app/react/sidebar/EnvironmentSidebar.tsx","webpack://portainer/./app/react/sidebar/SettingsSidebar.tsx","webpack://portainer/./app/react/sidebar/Footer/UpdateNotifications.module.css?f05e","webpack://portainer/./app/react/sidebar/Footer/UpdateNotifications.tsx","webpack://portainer/./app/react/sidebar/Footer/portainer_logo.svg","webpack://portainer/./app/react/sidebar/Footer/Footer.module.css?214d","webpack://portainer/./app/react/sidebar/Footer/BuildInfoModal.tsx","webpack://portainer/./app/react/sidebar/Footer/Footer.tsx","webpack://portainer/./app/react/sidebar/Header.module.css?1fea","webpack://portainer/./app/react/sidebar/Header.tsx","webpack://portainer/./app/react/portainer/system/useSystemInfo.ts","webpack://portainer/./app/react/portainer/system/useUpgradeEditionMutation.ts","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UploadLicenseDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/LoadingDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/NonAdminUpgradeDialog.tsx","webpack://portainer/./app/react/components/HubspotForm.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/GetLicenseDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UpgradeDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UpgradeBEBanner.tsx","webpack://portainer/./app/react/sidebar/Sidebar.tsx","webpack://portainer/./app/portainer/react/views/sidebar.ts","webpack://portainer/./app/portainer/environments/index.ts","webpack://portainer/./app/portainer/helpers/index.ts","webpack://portainer/./app/portainer/__module.js","webpack://portainer/./app/portainer/components/InformationPanel/InformationPanelAngular.js","webpack://portainer/./app/portainer/components/access-datatable/accessDatatable.js","webpack://portainer/./app/portainer/components/access-datatable/accessDatatableController.js","webpack://portainer/./app/portainer/components/accessControlForm/por-access-control-form.js","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlFormController.js","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlFormModel.js","webpack://portainer/./app/portainer/components/accessManagement/index.js","webpack://portainer/./app/portainer/components/accessManagement/por-access-management.js","webpack://portainer/./app/portainer/components/accessManagement/porAccessManagementController.js","webpack://portainer/./app/portainer/components/autofocus.js","webpack://portainer/./app/portainer/components/buttonSpinner.js","webpack://portainer/./app/portainer/components/code-editor/code-editor.controller.js","webpack://portainer/./app/portainer/components/code-editor/code-editor.js","webpack://portainer/./app/portainer/components/code-editor/codeEditorController.js","webpack://portainer/./app/portainer/components/copy-button/copy-button.controller.js","webpack://portainer/./app/portainer/components/copy-button/copy-button.js","webpack://portainer/./app/portainer/components/custom-template-selector/custom-template-selector.controller.js","webpack://portainer/./app/portainer/components/custom-template-selector/index.js","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.controller.js","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/index.js","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.controller.js","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/index.js","webpack://portainer/./app/portainer/components/datatables/filter/datatable-filter.controller.js","webpack://portainer/./app/portainer/components/datatables/filter/index.js","webpack://portainer/./app/portainer/components/datatables/genericDatatableController.js","webpack://portainer/./app/portainer/components/datatables/groups-datatable/groupsDatatable.js","webpack://portainer/./app/portainer/components/datatables/index.js","webpack://portainer/./app/portainer/components/datatables/pagination/index.js","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatable.js","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatableController.js","webpack://portainer/./app/portainer/components/datatables/strings-datatable/index.js","webpack://portainer/./app/portainer/components/datatables/tags-datatable/tagsDatatable.js","webpack://portainer/./app/portainer/components/datatables/titlebar/index.js","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatable.js","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatableController.js","webpack://portainer/./app/portainer/components/demo-feature-indicator/demo-feature-indicator.controller.js","webpack://portainer/./app/portainer/components/demo-feature-indicator/index.js","webpack://portainer/./app/portainer/components/endpointSecurity/por-endpoint-security.js","webpack://portainer/./app/react/portainer/environments/ItemView/tls-options.tsx","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurityController.js","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurityModel.js","webpack://portainer/./app/portainer/components/focusIf.js","webpack://portainer/./app/portainer/components/form-components/file-upload-form/index.js","webpack://portainer/./app/portainer/components/form-components/index.js","webpack://portainer/./app/portainer/components/form-components/web-editor-form/index.js","webpack://portainer/./app/portainer/components/form-components/web-editor-form/web-editor-form.controller.js","webpack://portainer/./app/portainer/components/forms/group-form/group-form.js","webpack://portainer/./app/portainer/components/forms/group-form/groupFormController.js","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.controller.js","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.js","webpack://portainer/./app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.js","webpack://portainer/./app/portainer/components/forms/registry-form-azure/registry-form-azure.js","webpack://portainer/./app/portainer/components/forms/registry-form-custom/registry-form-custom.js","webpack://portainer/./app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatableController.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.js","webpack://portainer/./app/portainer/components/forms/registry-form-proget/registry-form-proget.js","webpack://portainer/./app/portainer/components/forms/registry-form-quay/registry-form-quay.js","webpack://portainer/./app/portainer/components/forms/stack-from-template-form/index.js","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/index.js","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.controller.js","webpack://portainer/./app/portainer/components/widget/index.ts","webpack://portainer/./app/portainer/components/widget/rd-widget.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-body.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-custom-header.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-footer.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-title.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-taskbar.ts","webpack://portainer/./app/portainer/components/BEFeatureIndicator/BEFeatureIndicator.controller.ts","webpack://portainer/./app/portainer/components/BEFeatureIndicator/index.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auth-fieldset.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auth-fieldset.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auto-update-fieldset.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auto-update-fieldset.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-ref-field.ts","webpack://portainer/./app/portainer/components/forms/git-form/index.ts","webpack://portainer/./app/portainer/components/tls-fieldset/index.ts","webpack://portainer/./app/portainer/components/index.js","webpack://portainer/./app/portainer/components/intervalFormat.js","webpack://portainer/./app/portainer/components/onEnterKey.js","webpack://portainer/./app/portainer/components/option-panel/index.js","webpack://portainer/./app/portainer/components/option-panel/option-panel.controller.js","webpack://portainer/./app/portainer/components/product-list/product-item/product-item.js","webpack://portainer/./app/portainer/components/product-list/product-list.js","webpack://portainer/./app/portainer/components/registry-details/index.js","webpack://portainer/./app/portainer/components/sensitive-details/sensitive-details.js","webpack://portainer/./app/portainer/components/show-hide/show-hide.js","webpack://portainer/./app/portainer/components/slider/slider.js","webpack://portainer/./app/portainer/components/slider/sliderController.js","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form-controller.js","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form.js","webpack://portainer/./app/portainer/components/status-indicator/index.js","webpack://portainer/./app/portainer/components/template-widget.js","webpack://portainer/./app/react/portainer/account/AccountView/theme-options.tsx","webpack://portainer/./app/portainer/components/theme/theme-settings.controller.js","webpack://portainer/./app/portainer/components/theme/theme-settings.js","webpack://portainer/./app/portainer/environments/azure-endpoint-config/azure-endpoint-config.js","webpack://portainer/./app/portainer/filters/filters.js","webpack://portainer/./app/portainer/filters/index.js","webpack://portainer/./app/portainer/helpers/endpointHelper.js","webpack://portainer/./app/portainer/helpers/formHelper.js","webpack://portainer/./app/portainer/helpers/genericHelper.js","webpack://portainer/./app/portainer/helpers/networkHelper.js","webpack://portainer/./app/portainer/helpers/pathHelper.js","webpack://portainer/./app/portainer/helpers/resourceControlHelper.js","webpack://portainer/./app/react/docker/stacks/view-models/external-stack.ts","webpack://portainer/./app/portainer/helpers/stackHelper.js","webpack://portainer/./app/portainer/helpers/tagHelper.js","webpack://portainer/./app/portainer/helpers/templateHelper.js","webpack://portainer/./app/portainer/helpers/urlHelper.js","webpack://portainer/./app/portainer/models/access.js","webpack://portainer/./app/portainer/models/dockerhub.js","webpack://portainer/./app/portainer/models/endpoint/formValues.js","webpack://portainer/./app/portainer/models/endpoint/models.js","webpack://portainer/./app/portainer/models/gitlabRegistry.js","webpack://portainer/./app/portainer/models/group.js","webpack://portainer/./app/portainer/models/registry.js","webpack://portainer/./app/portainer/models/registryRepository.js","webpack://portainer/./app/portainer/models/registryTypes.js","webpack://portainer/./app/portainer/models/resourceControl/resourceControlCreatePayload.js","webpack://portainer/./app/portainer/models/resourceControl/resourceControlOwnershipParameters.js","webpack://portainer/./app/portainer/models/schedule.js","webpack://portainer/./app/portainer/models/settings.js","webpack://portainer/./app/portainer/models/status.js","webpack://portainer/./app/portainer/models/tag.js","webpack://portainer/./app/portainer/models/team.js","webpack://portainer/./app/portainer/models/teamMembership.js","webpack://portainer/./app/portainer/models/user.js","webpack://portainer/./app/portainer/models/webhook.js","webpack://portainer/./app/portainer/oauth/__module.js","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/index.js","webpack://portainer/./app/react/portainer/settings/AuthenticationView/oauth-options.tsx","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/oauth-provider-selector.controller.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/index.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/oauth-settings.controller.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/providers.js","webpack://portainer/./app/portainer/oauth/services/rest/oauth.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer-datatable/index.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer.controller.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/index.js","webpack://portainer/./app/portainer/rbac/components/roles-datatable/index.js","webpack://portainer/./app/portainer/rbac/components/roles-datatable/roles-datatable.controller.js","webpack://portainer/./app/portainer/rbac/index.js","webpack://portainer/./app/portainer/rbac/models/access.js","webpack://portainer/./app/portainer/rbac/models/role.js","webpack://portainer/./app/portainer/rbac/services/role.rest.js","webpack://portainer/./app/portainer/rbac/services/role.service.js","webpack://portainer/./app/portainer/rbac/views/roles/index.js","webpack://portainer/./app/portainer/rbac/views/roles/roles.controller.js","webpack://portainer/./app/portainer/registry-management/index.js","webpack://portainer/./app/portainer/registry-management/views/create/createRegistry.js","webpack://portainer/./app/react/portainer/registries/CreateView/options.tsx","webpack://portainer/./app/portainer/registry-management/views/create/createRegistryController.js","webpack://portainer/./app/portainer/registry-management/views/edit/registry.js","webpack://portainer/./app/portainer/registry-management/views/edit/registryController.js","webpack://portainer/./app/portainer/registry-management/views/list/registriesController.js","webpack://portainer/./app/portainer/rest/auth.js","webpack://portainer/./app/portainer/rest/backup.js","webpack://portainer/./app/portainer/rest/customTemplate.js","webpack://portainer/./app/portainer/rest/endpoint.js","webpack://portainer/./app/portainer/rest/gitlab.js","webpack://portainer/./app/portainer/rest/group.js","webpack://portainer/./app/portainer/rest/registry.js","webpack://portainer/./app/portainer/rest/resourceControl.js","webpack://portainer/./app/portainer/rest/settings.js","webpack://portainer/./app/portainer/rest/ssl.js","webpack://portainer/./app/portainer/rest/stack.js","webpack://portainer/./app/portainer/rest/support.js","webpack://portainer/./app/portainer/rest/tag.js","webpack://portainer/./app/portainer/rest/team.js","webpack://portainer/./app/portainer/rest/teamMembership.js","webpack://portainer/./app/portainer/rest/template.js","webpack://portainer/./app/portainer/rest/transform/getEndpointsTotalCount.js","webpack://portainer/./app/portainer/rest/transform/gitlabResponseGetLink.js","webpack://portainer/./app/portainer/rest/user.js","webpack://portainer/./app/portainer/rest/webhooks.js","webpack://portainer/./app/portainer/services/allSettled.js","webpack://portainer/./app/portainer/services/api/accessService.js","webpack://portainer/./app/portainer/services/api/backupService.js","webpack://portainer/./app/portainer/services/api/customTemplate.js","webpack://portainer/./app/portainer/services/api/dockerhubService.js","webpack://portainer/./app/portainer/services/api/endpointService.js","webpack://portainer/./app/portainer/services/api/groupService.js","webpack://portainer/./app/portainer/services/api/registryService.js","webpack://portainer/./app/portainer/services/api/resourceControlService.js","webpack://portainer/./app/portainer/services/api/settingsService.js","webpack://portainer/./app/portainer/services/api/sslService.js","webpack://portainer/./app/react/docker/stacks/view-models/stack.ts","webpack://portainer/./app/portainer/services/api/stackService.js","webpack://portainer/./app/portainer/services/api/statusService.js","webpack://portainer/./app/portainer/services/api/supportService.js","webpack://portainer/./app/portainer/services/api/tagService.js","webpack://portainer/./app/portainer/services/api/teamMembershipService.js","webpack://portainer/./app/portainer/services/api/teamService.js","webpack://portainer/./app/portainer/services/api/templateService.js","webpack://portainer/./app/portainer/services/api/userService.js","webpack://portainer/./app/portainer/services/api/webhookService.js","webpack://portainer/./app/portainer/services/async.js","webpack://portainer/./app/portainer/services/authentication.js","webpack://portainer/./app/portainer/services/chartService.js","webpack://portainer/./app/portainer/services/datatableService.js","webpack://portainer/./app/portainer/services/fileUpload.js","webpack://portainer/./app/portainer/services/formValidator.js","webpack://portainer/./app/portainer/services/localStorage.js","webpack://portainer/./app/portainer/services/nameValidator.js","webpack://portainer/./app/portainer/services/pagination.js","webpack://portainer/./app/portainer/services/registryGitlabService.js","webpack://portainer/./app/react/docker/images/ItemView/RegistrySelectPrompt.tsx","webpack://portainer/./app/portainer/services/registryModalService.js","webpack://portainer/./app/portainer/services/session-storage.js","webpack://portainer/./app/portainer/services/stateManager.js","webpack://portainer/./app/portainer/services/themeManager.js","webpack://portainer/./app/portainer/settings/authentication/auth-method-constants.js","webpack://portainer/./app/portainer/settings/authentication/auth-type-constants.js","webpack://portainer/./app/portainer/settings/authentication/auto-user-provision-toggle/index.js","webpack://portainer/./app/portainer/settings/authentication/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/ad-settings.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-connectivity-check/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-groups-datatable/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-security/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings.model.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/index.js","webpack://portainer/./app/react/portainer/settings/AuthenticationView/ldap-options.tsx","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-users-datatable/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap.rest.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap.service.js","webpack://portainer/./app/portainer/settings/authentication/save-auth-settings-button/index.js","webpack://portainer/./app/portainer/settings/general/index.js","webpack://portainer/./app/portainer/settings/index.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.controller.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/index.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.controller.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/index.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.controller.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/index.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.controller.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/index.js","webpack://portainer/./app/react/portainer/notifications/columns/helper.ts","webpack://portainer/./app/react/portainer/notifications/columns/type.tsx","webpack://portainer/./app/react/portainer/notifications/columns/title.tsx","webpack://portainer/./app/react/portainer/notifications/columns/details.tsx","webpack://portainer/./app/react/portainer/notifications/columns/index.tsx","webpack://portainer/./app/react/portainer/notifications/columns/time.tsx","webpack://portainer/./app/react/portainer/notifications/NotificationsView.tsx","webpack://portainer/./app/portainer/user-activity/index.js","webpack://portainer/./app/portainer/views/account/accountController.js","webpack://portainer/./app/portainer/views/auth/authController.js","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/index.js","webpack://portainer/./app/portainer/views/devices/import/importDeviceController.js","webpack://portainer/./app/portainer/views/devices/profiles/add/addProfileController.js","webpack://portainer/./app/portainer/views/devices/profiles/add/index.js","webpack://portainer/./app/portainer/views/devices/profiles/edit/editProfileController.js","webpack://portainer/./app/portainer/views/devices/profiles/edit/index.js","webpack://portainer/./app/portainer/views/endpoint-registries/registries.js","webpack://portainer/./app/portainer/views/endpoint-registries/registriesController.js","webpack://portainer/./app/portainer/views/endpoints/access/endpointAccessController.js","webpack://portainer/./app/portainer/views/endpoints/edit/endpointController.js","webpack://portainer/./app/react/portainer/environments/ItemView/ConfirmDisassociateModel.tsx","webpack://portainer/./app/portainer/views/endpoints/helpers.js","webpack://portainer/./app/portainer/views/endpoints/kvm/endpointKVMController.js","webpack://portainer/./app/portainer/views/groups/access/groupAccessController.js","webpack://portainer/./app/portainer/views/groups/create/createGroupController.js","webpack://portainer/./app/portainer/views/groups/edit/groupController.js","webpack://portainer/./app/portainer/views/groups/groupsController.js","webpack://portainer/./app/react/portainer/init/InitAdminView/restore-options.tsx","webpack://portainer/./app/portainer/views/init/admin/initAdminController.js","webpack://portainer/./app/portainer/views/logout/logoutController.js","webpack://portainer/./app/portainer/views/main/mainController.js","webpack://portainer/./app/assets/ico/oauth.svg","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/options.tsx","webpack://portainer/./app/portainer/views/settings/authentication/settingsAuthenticationController.js","webpack://portainer/./app/portainer/views/settings/edge-compute/index.js","webpack://portainer/./app/portainer/views/settings/edge-compute/settingsEdgeComputeController.js","webpack://portainer/./app/portainer/views/stacks/create/createStackController.js","webpack://portainer/./app/portainer/views/stacks/edit/stackController.js","webpack://portainer/./app/portainer/views/stacks/stacksController.js","webpack://portainer/./app/portainer/views/tags/tagsController.js","webpack://portainer/./app/portainer/views/templates/templatesController.js","webpack://portainer/./app/portainer/views/users/edit/userController.js","webpack://portainer/./app/portainer/views/users/usersController.js","webpack://portainer/./app/react/docker/components/ImageStatus/useImageNotification.ts","webpack://portainer/./app/react/docker/components/ImageStatus/ImageStatus.tsx","webpack://portainer/./app/vendors.js","webpack://portainer/./app/react/components/PageHeader/HeaderTitle.module.css?dde6","webpack://portainer/./app/agent/components/host-browser/hostBrowser.html","webpack://portainer/./app/agent/components/node-selector/nodeSelector.html","webpack://portainer/./app/agent/components/volume-browser/volumeBrowser.html","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy.html","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfo.html","webpack://portainer/./app/docker/components/host-overview/host-overview.html","webpack://portainer/./app/docker/components/host-view-panels/devices-panel/devices-panel.html","webpack://portainer/./app/docker/components/host-view-panels/disks-panel/disks-panel.html","webpack://portainer/./app/docker/components/host-view-panels/engine-details-panel/engine-details-panel.html","webpack://portainer/./app/docker/components/host-view-panels/host-details-panel/host-details-panel.html","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select.html","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table.html","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.html","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.html","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.html","webpack://portainer/./app/docker/components/log-viewer/logViewer.html","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanForm.html","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsForm.html","webpack://portainer/./app/docker/components/volumesNFSForm/volumesnfsForm.html","webpack://portainer/./app/docker/views/configs/configs.html","webpack://portainer/./app/docker/views/configs/create/createconfig.html","webpack://portainer/./app/docker/views/configs/edit/config.html","webpack://portainer/./app/docker/views/containers/console/attach.html","webpack://portainer/./app/docker/views/containers/console/exec.html","webpack://portainer/./app/docker/views/containers/edit/container.html","webpack://portainer/./app/docker/views/containers/inspect/containerinspect.html","webpack://portainer/./app/docker/views/containers/logs/containerlogs.html","webpack://portainer/./app/docker/views/containers/stats/containerstats.html","webpack://portainer/./app/docker/views/dashboard/dashboard.html","webpack://portainer/./app/docker/views/docker-features-configuration/docker-features-configuration.html","webpack://portainer/./app/docker/views/events/events.html","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view.html","webpack://portainer/./app/docker/views/host/host-view.html","webpack://portainer/./app/docker/views/images/build/buildimage.html","webpack://portainer/./app/docker/views/images/edit/image.html","webpack://portainer/./app/docker/views/images/images.html","webpack://portainer/./app/docker/views/images/import/importimage.html","webpack://portainer/./app/docker/views/networks/create/createnetwork.html","webpack://portainer/./app/docker/views/networks/networks.html","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser.html","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view.html","webpack://portainer/./app/docker/views/registries/access/registryAccess.html","webpack://portainer/./app/docker/views/secrets/create/createsecret.html","webpack://portainer/./app/docker/views/secrets/edit/secret.html","webpack://portainer/./app/docker/views/secrets/secrets.html","webpack://portainer/./app/docker/views/services/create/createservice.html","webpack://portainer/./app/docker/views/services/create/includes/config.html","webpack://portainer/./app/docker/views/services/create/includes/resources-placement.html","webpack://portainer/./app/docker/views/services/create/includes/secret.html","webpack://portainer/./app/docker/views/services/create/includes/update-restart.html","webpack://portainer/./app/docker/views/services/edit/includes/configs.html","webpack://portainer/./app/docker/views/services/edit/includes/constraints.html","webpack://portainer/./app/docker/views/services/edit/includes/container-specs.html","webpack://portainer/./app/docker/views/services/edit/includes/containerlabels.html","webpack://portainer/./app/docker/views/services/edit/includes/environmentvariables.html","webpack://portainer/./app/docker/views/services/edit/includes/hosts.html","webpack://portainer/./app/docker/views/services/edit/includes/image.html","webpack://portainer/./app/docker/views/services/edit/includes/logging.html","webpack://portainer/./app/docker/views/services/edit/includes/mounts.html","webpack://portainer/./app/docker/views/services/edit/includes/networks.html","webpack://portainer/./app/docker/views/services/edit/includes/placementPreferences.html","webpack://portainer/./app/docker/views/services/edit/includes/ports.html","webpack://portainer/./app/docker/views/services/edit/includes/resources.html","webpack://portainer/./app/docker/views/services/edit/includes/restart.html","webpack://portainer/./app/docker/views/services/edit/includes/secrets.html","webpack://portainer/./app/docker/views/services/edit/includes/servicelabels.html","webpack://portainer/./app/docker/views/services/edit/includes/tasks.html","webpack://portainer/./app/docker/views/services/edit/includes/updateconfig.html","webpack://portainer/./app/docker/views/services/edit/service.html","webpack://portainer/./app/docker/views/services/logs/servicelogs.html","webpack://portainer/./app/docker/views/services/services.html","webpack://portainer/./app/docker/views/swarm/swarm.html","webpack://portainer/./app/docker/views/swarm/visualizer/swarmvisualizer.html","webpack://portainer/./app/docker/views/tasks/edit/task.html","webpack://portainer/./app/docker/views/tasks/logs/tasklogs.html","webpack://portainer/./app/docker/views/volumes/browse/browsevolume.html","webpack://portainer/./app/docker/views/volumes/create/createvolume.html","webpack://portainer/./app/docker/views/volumes/edit/volume.html","webpack://portainer/./app/docker/views/volumes/volumes.html","webpack://portainer/./app/edge/components/edge-job-form/edgeJobForm.html","webpack://portainer/./app/edge/components/edge-job-results-datatable/edgeJobResultsDatatable.html","webpack://portainer/./app/edge/components/edge-jobs-datatable/edgeJobsDatatable.html","webpack://portainer/./app/edge/components/edge-stack-status/edgeStackStatus.html","webpack://portainer/./app/edge/components/group-form/groupForm.html","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/createEdgeGroupView.html","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/editEdgeGroupView.html","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobView.html","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/edgeJob.html","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/edgeJobsView.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/kube-deploy-description.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.html","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackView.html","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.html","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/events-datatable/eventsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatable.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.html","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservation.html","webpack://portainer/./app/kubernetes/components/view-loading/viewLoading.html","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.html","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/kube-registry-access-view.html","webpack://portainer/./app/kubernetes/views/applications/applications.html","webpack://portainer/./app/kubernetes/views/applications/create/createApplication.html","webpack://portainer/./app/kubernetes/views/applications/helm/helm.html","webpack://portainer/./app/kubernetes/views/applications/logs/logs.html","webpack://portainer/./app/kubernetes/views/applications/stats/stats.html","webpack://portainer/./app/kubernetes/views/cluster/cluster.html","webpack://portainer/./app/kubernetes/views/cluster/node/node.html","webpack://portainer/./app/kubernetes/views/cluster/node/stats/stats.html","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMap.html","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMap.html","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecret.html","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secret.html","webpack://portainer/./app/kubernetes/views/deploy/deploy.html","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccess.html","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.html","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/template.html","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePool.html","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePools.html","webpack://portainer/./app/kubernetes/views/security-constraint/constraint.html","webpack://portainer/./app/kubernetes/views/stacks/logs/logs.html","webpack://portainer/./app/kubernetes/views/summary/summary.html","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/template.html","webpack://portainer/./app/kubernetes/views/volumes/edit/volume.html","webpack://portainer/./app/kubernetes/views/volumes/volumes.html","webpack://portainer/./app/portainer/components/BEFeatureIndicator/BEFeatureIndicator.html","webpack://portainer/./app/portainer/components/InformationPanel/InformationPanelAngular.html","webpack://portainer/./app/portainer/components/access-datatable/accessDatatable.html","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlForm.html","webpack://portainer/./app/portainer/components/accessManagement/porAccessManagement.html","webpack://portainer/./app/portainer/components/code-editor/code-editor.html","webpack://portainer/./app/portainer/components/copy-button/copy-button.html","webpack://portainer/./app/portainer/components/custom-template-selector/custom-template-selector.html","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.html","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.html","webpack://portainer/./app/portainer/components/datatables/filter/datatable-filter.html","webpack://portainer/./app/portainer/components/datatables/groups-datatable/groupsDatatable.html","webpack://portainer/./app/portainer/components/datatables/pagination/pagination.html","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatable.html","webpack://portainer/./app/portainer/components/datatables/strings-datatable/strings-datatable.html","webpack://portainer/./app/portainer/components/datatables/tags-datatable/tagsDatatable.html","webpack://portainer/./app/portainer/components/datatables/titlebar/datatable-titlebar.html","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatable.html","webpack://portainer/./app/portainer/components/demo-feature-indicator/demo-feature-indicator.html","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurity.html","webpack://portainer/./app/portainer/components/form-components/file-upload-form/file-upload-form.html","webpack://portainer/./app/portainer/components/form-components/web-editor-form/web-editor-form.html","webpack://portainer/./app/portainer/components/forms/group-form/groupForm.html","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.html","webpack://portainer/./app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.html","webpack://portainer/./app/portainer/components/forms/registry-form-azure/registry-form-azure.html","webpack://portainer/./app/portainer/components/forms/registry-form-custom/registry-form-custom.html","webpack://portainer/./app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.html","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.html","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.html","webpack://portainer/./app/portainer/components/forms/registry-form-proget/registry-form-proget.html","webpack://portainer/./app/portainer/components/forms/registry-form-quay/registry-form-quay.html","webpack://portainer/./app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html","webpack://portainer/./app/portainer/components/option-panel/option-panel.html","webpack://portainer/./app/portainer/components/product-list/product-item/productItem.html","webpack://portainer/./app/portainer/components/product-list/productList.html","webpack://portainer/./app/portainer/components/registry-details/registry-details.html","webpack://portainer/./app/portainer/components/sensitive-details/sensitive-details.html","webpack://portainer/./app/portainer/components/show-hide/show-hide.html","webpack://portainer/./app/portainer/components/slider/slider.html","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form.html","webpack://portainer/./app/portainer/components/status-indicator/status-indicator.html","webpack://portainer/./app/portainer/components/theme/theme-settings.html","webpack://portainer/./app/portainer/environments/azure-endpoint-config/azureEndpointConfig.html","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/oauth-providers-selector.html","webpack://portainer/./app/portainer/oauth/components/oauth-settings/oauth-settings.html","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer-datatable/access-viewer-datatable.html","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer.html","webpack://portainer/./app/portainer/rbac/components/roles-datatable/roles-datatable.html","webpack://portainer/./app/portainer/rbac/views/roles/roles.html","webpack://portainer/./app/portainer/registry-management/views/create/createRegistry.html","webpack://portainer/./app/portainer/registry-management/views/edit/registry.html","webpack://portainer/./app/portainer/registry-management/views/list/registries.html","webpack://portainer/./app/portainer/settings/authentication/auto-user-provision-toggle/auto-user-provision-toggle.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/ad-settings.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-connectivity-check/ldap-connectivity-check.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-groups-datatable/ldap-groups-datatable.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-security/ldap-settings-security.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-users-datatable/ldap-users-datatable.html","webpack://portainer/./app/portainer/settings/authentication/save-auth-settings-button/save-auth-settings-button.html","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.html","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.html","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.html","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.html","webpack://portainer/./app/portainer/views/account/account.html","webpack://portainer/./app/portainer/views/auth/auth.html","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/customTemplatesView.html","webpack://portainer/./app/portainer/views/devices/import/importDevice.html","webpack://portainer/./app/portainer/views/devices/profiles/add/addProfile.html","webpack://portainer/./app/portainer/views/devices/profiles/edit/editProfile.html","webpack://portainer/./app/portainer/views/endpoint-registries/registries.html","webpack://portainer/./app/portainer/views/endpoints/access/endpointAccess.html","webpack://portainer/./app/portainer/views/endpoints/edit/endpoint.html","webpack://portainer/./app/portainer/views/endpoints/kvm/endpointKVM.html","webpack://portainer/./app/portainer/views/groups/access/groupAccess.html","webpack://portainer/./app/portainer/views/groups/create/creategroup.html","webpack://portainer/./app/portainer/views/groups/edit/group.html","webpack://portainer/./app/portainer/views/groups/groups.html","webpack://portainer/./app/portainer/views/init/admin/initAdmin.html","webpack://portainer/./app/portainer/views/logout/logout.html","webpack://portainer/./app/portainer/views/settings/authentication/settingsAuthentication.html","webpack://portainer/./app/portainer/views/settings/edge-compute/settingsEdgeCompute.html","webpack://portainer/./app/portainer/views/stacks/create/createstack.html","webpack://portainer/./app/portainer/views/stacks/edit/stack.html","webpack://portainer/./app/portainer/views/stacks/stacks.html","webpack://portainer/./app/portainer/views/tags/tags.html","webpack://portainer/./app/portainer/views/templates/templates.html","webpack://portainer/./app/portainer/views/users/edit/user.html","webpack://portainer/./app/portainer/views/users/users.html"],"sourcesContent":["var map = {\n\t\"./__mocks__/fileMock.js\": 8770,\n\t\"./__mocks__/styleMock.js\": 77569,\n\t\"./agent/components/host-browser/hostBrowserController.js\": 46553,\n\t\"./agent/components/host-browser/index.js\": 22635,\n\t\"./agent/components/node-selector/index.js\": 46977,\n\t\"./agent/components/node-selector/nodeSelectorController.js\": 10604,\n\t\"./agent/components/volume-browser/index.js\": 92560,\n\t\"./agent/components/volume-browser/volumeBrowserController.js\": 15231,\n\t\"./agent/index.js\": 43719,\n\t\"./agent/models/agent.js\": 69554,\n\t\"./agent/rest/agent.js\": 49727,\n\t\"./agent/rest/browse.js\": 10823,\n\t\"./agent/rest/dockerhub.js\": 65745,\n\t\"./agent/rest/host.js\": 22305,\n\t\"./agent/rest/ping.js\": 73444,\n\t\"./agent/rest/response/browse.js\": 96914,\n\t\"./agent/rest/v1/agent.js\": 26284,\n\t\"./agent/rest/v1/browse.js\": 25778,\n\t\"./agent/services/agentService.js\": 4849,\n\t\"./agent/services/hostBrowserService.js\": 43242,\n\t\"./agent/services/pingService.js\": 14161,\n\t\"./agent/services/volumeBrowserService.js\": 90427,\n\t\"./angulartics.matomo/index.js\": 27014,\n\t\"./app.js\": 41935,\n\t\"./assets/css/index.js\": 78110,\n\t\"./config.js\": 63369,\n\t\"./docker/__module.js\": 30857,\n\t\"./docker/components/container-restart-policy/container-restart-policy-controller.js\": 47318,\n\t\"./docker/components/container-restart-policy/container-restart-policy.js\": 44585,\n\t\"./docker/components/dashboard-cluster-agent-info/dashboard-cluster-agent-info.js\": 58421,\n\t\"./docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfoController.js\": 83995,\n\t\"./docker/components/host-overview/host-overview.js\": 83015,\n\t\"./docker/components/host-view-panels/devices-panel/devices-panel.js\": 1596,\n\t\"./docker/components/host-view-panels/disks-panel/disks-panel.js\": 76878,\n\t\"./docker/components/host-view-panels/engine-details-panel/engine-details-panel.js\": 44300,\n\t\"./docker/components/host-view-panels/host-details-panel/host-details-panel.js\": 42009,\n\t\"./docker/components/host-view-panels/node-availability-select/node-availability-select-controller.js\": 98209,\n\t\"./docker/components/host-view-panels/node-availability-select/node-availability-select.js\": 78218,\n\t\"./docker/components/host-view-panels/node-labels-table/node-labels-table-controller.js\": 29119,\n\t\"./docker/components/host-view-panels/node-labels-table/node-labels-table.js\": 90820,\n\t\"./docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel-controller.js\": 65553,\n\t\"./docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.js\": 74092,\n\t\"./docker/components/imageRegistry/por-image-registry-rate-limits.controller.js\": 25760,\n\t\"./docker/components/imageRegistry/por-image-registry-rate-limits.js\": 70698,\n\t\"./docker/components/imageRegistry/por-image-registry.controller.js\": 81199,\n\t\"./docker/components/imageRegistry/por-image-registry.js\": 25898,\n\t\"./docker/components/log-viewer/log-viewer.js\": 74961,\n\t\"./docker/components/log-viewer/logViewerController.js\": 40433,\n\t\"./docker/components/network-macvlan-form/network-macvlan-form.js\": 69020,\n\t\"./docker/components/network-macvlan-form/networkMacvlanFormController.js\": 78160,\n\t\"./docker/components/network-macvlan-form/networkMacvlanFormModel.js\": 93262,\n\t\"./docker/components/volumesCIFSForm/volumesCifsForm.js\": 42365,\n\t\"./docker/components/volumesCIFSForm/volumesCifsFormModel.js\": 53333,\n\t\"./docker/components/volumesNFSForm/volumes-nfs-form.js\": 23295,\n\t\"./docker/components/volumesNFSForm/volumesNFSFormModel.js\": 3744,\n\t\"./docker/filters/filters.js\": 79688,\n\t\"./docker/helpers/configHelper.js\": 88307,\n\t\"./docker/helpers/containerHelper.js\": 69389,\n\t\"./docker/helpers/imageHelper.js\": 29447,\n\t\"./docker/helpers/infoHelper.js\": 60259,\n\t\"./docker/helpers/labelHelper.js\": 93269,\n\t\"./docker/helpers/networkHelper.js\": 78830,\n\t\"./docker/helpers/nodeHelper.js\": 16772,\n\t\"./docker/helpers/secretHelper.js\": 20802,\n\t\"./docker/helpers/serviceHelper.js\": 91889,\n\t\"./docker/helpers/taskHelper.js\": 60775,\n\t\"./docker/helpers/volumeHelper.js\": 58706,\n\t\"./docker/models/config.js\": 56765,\n\t\"./docker/models/container.js\": 48442,\n\t\"./docker/models/event.js\": 58129,\n\t\"./docker/models/image.js\": 51088,\n\t\"./docker/models/imageDetails.js\": 22350,\n\t\"./docker/models/imageLayer.js\": 64263,\n\t\"./docker/models/plugin.js\": 35791,\n\t\"./docker/models/porImageRegistry.js\": 73801,\n\t\"./docker/models/swarm.js\": 54047,\n\t\"./docker/rest/build.js\": 4280,\n\t\"./docker/rest/commit.js\": 65955,\n\t\"./docker/rest/config.js\": 14875,\n\t\"./docker/rest/container.js\": 75871,\n\t\"./docker/rest/exec.js\": 61221,\n\t\"./docker/rest/image.js\": 15978,\n\t\"./docker/rest/network.js\": 1741,\n\t\"./docker/rest/node.js\": 73981,\n\t\"./docker/rest/plugin.js\": 27690,\n\t\"./docker/rest/response/handlers.js\": 40455,\n\t\"./docker/rest/response/image.js\": 16008,\n\t\"./docker/rest/secret.js\": 40186,\n\t\"./docker/rest/service.js\": 58109,\n\t\"./docker/rest/swarm.js\": 35445,\n\t\"./docker/rest/system.js\": 86045,\n\t\"./docker/rest/task.js\": 96929,\n\t\"./docker/rest/volume.js\": 82726,\n\t\"./docker/services/buildService.js\": 62678,\n\t\"./docker/services/configService.js\": 91218,\n\t\"./docker/services/containerService.js\": 8361,\n\t\"./docker/services/execService.js\": 10710,\n\t\"./docker/services/imageService.js\": 20793,\n\t\"./docker/services/networkService.js\": 55314,\n\t\"./docker/services/nodeService.js\": 62559,\n\t\"./docker/services/pluginService.js\": 34347,\n\t\"./docker/services/secretService.js\": 47488,\n\t\"./docker/services/serviceService.js\": 79289,\n\t\"./docker/services/swarmService.js\": 3304,\n\t\"./docker/services/systemService.js\": 92882,\n\t\"./docker/services/taskService.js\": 52933,\n\t\"./docker/services/volumeService.js\": 20089,\n\t\"./docker/views/configs/configsController.js\": 18914,\n\t\"./docker/views/configs/create/createConfigController.js\": 33695,\n\t\"./docker/views/configs/edit/configController.js\": 56530,\n\t\"./docker/views/containers/console/containerConsoleController.js\": 42077,\n\t\"./docker/views/containers/edit/containerController.js\": 31061,\n\t\"./docker/views/containers/inspect/containerInspectController.js\": 24127,\n\t\"./docker/views/containers/logs/containerLogsController.js\": 6983,\n\t\"./docker/views/containers/stats/containerStatsController.js\": 97076,\n\t\"./docker/views/dashboard/dashboardController.js\": 93961,\n\t\"./docker/views/docker-features-configuration/docker-features-configuration.controller.js\": 3482,\n\t\"./docker/views/docker-features-configuration/index.js\": 68369,\n\t\"./docker/views/events/eventsController.js\": 4278,\n\t\"./docker/views/host/host-browser-view/host-browser-view-controller.js\": 37531,\n\t\"./docker/views/host/host-browser-view/host-browser-view.js\": 11431,\n\t\"./docker/views/host/host-view-controller.js\": 28499,\n\t\"./docker/views/host/host-view.js\": 52042,\n\t\"./docker/views/images/build/buildImageController.js\": 98239,\n\t\"./docker/views/images/edit/imageController.js\": 64896,\n\t\"./docker/views/images/imagesController.js\": 96425,\n\t\"./docker/views/images/import/importImageController.js\": 12828,\n\t\"./docker/views/networks/create/createNetworkController.js\": 85253,\n\t\"./docker/views/networks/networksController.js\": 11820,\n\t\"./docker/views/nodes/node-browser/node-browser-controller.js\": 38979,\n\t\"./docker/views/nodes/node-browser/node-browser.js\": 98442,\n\t\"./docker/views/nodes/node-details/node-details-view-controller.js\": 81776,\n\t\"./docker/views/nodes/node-details/node-details-view.js\": 26480,\n\t\"./docker/views/registries/access/registryAccess.js\": 42407,\n\t\"./docker/views/registries/access/registryAccessController.js\": 78669,\n\t\"./docker/views/secrets/create/createSecretController.js\": 62994,\n\t\"./docker/views/secrets/edit/secretController.js\": 70683,\n\t\"./docker/views/secrets/secretsController.js\": 57672,\n\t\"./docker/views/services/create/createServiceController.js\": 53723,\n\t\"./docker/views/services/edit/serviceController.js\": 38745,\n\t\"./docker/views/services/logs/serviceLogsController.js\": 10094,\n\t\"./docker/views/services/servicesController.js\": 757,\n\t\"./docker/views/swarm/swarmController.js\": 58931,\n\t\"./docker/views/swarm/visualizer/swarmVisualizerController.js\": 58652,\n\t\"./docker/views/tasks/edit/taskController.js\": 80555,\n\t\"./docker/views/tasks/logs/taskLogsController.js\": 49572,\n\t\"./docker/views/volumes/browse/browseVolumeController.js\": 47335,\n\t\"./docker/views/volumes/create/createVolumeController.js\": 58716,\n\t\"./docker/views/volumes/edit/volumeController.js\": 82974,\n\t\"./docker/views/volumes/volumesController.js\": 99313,\n\t\"./edge/__module.js\": 35402,\n\t\"./edge/components/edge-job-form/edgeJobFormController.js\": 73760,\n\t\"./edge/components/edge-job-form/index.js\": 34678,\n\t\"./edge/components/edge-job-results-datatable/edgeJobResultsDatatableController.js\": 23702,\n\t\"./edge/components/edge-job-results-datatable/index.js\": 49076,\n\t\"./edge/components/edge-jobs-datatable/index.js\": 35885,\n\t\"./edge/components/edge-stack-status/edgeStackStatusController.js\": 56122,\n\t\"./edge/components/edge-stack-status/index.js\": 60559,\n\t\"./edge/components/group-form/groupFormController.js\": 482,\n\t\"./edge/components/group-form/index.js\": 42796,\n\t\"./edge/rest/edge-groups.js\": 15850,\n\t\"./edge/rest/edge-job-results.js\": 31413,\n\t\"./edge/rest/edge-jobs.js\": 98715,\n\t\"./edge/rest/edge-stacks.js\": 34264,\n\t\"./edge/services/edge-group.js\": 61629,\n\t\"./edge/services/edge-job.js\": 68817,\n\t\"./edge/services/edge-stack.js\": 59571,\n\t\"./edge/views/edge-groups/createEdgeGroupView/createEdgeGroupViewController.js\": 53138,\n\t\"./edge/views/edge-groups/createEdgeGroupView/index.js\": 31089,\n\t\"./edge/views/edge-groups/editEdgeGroupView/editEdgeGroupViewController.js\": 49542,\n\t\"./edge/views/edge-groups/editEdgeGroupView/index.js\": 77505,\n\t\"./edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js\": 11922,\n\t\"./edge/views/edge-jobs/createEdgeJobView/index.js\": 86642,\n\t\"./edge/views/edge-jobs/edgeJob/edgeJobController.js\": 13385,\n\t\"./edge/views/edge-jobs/edgeJob/index.js\": 94650,\n\t\"./edge/views/edge-jobs/edgeJobsView/edgeJobsViewController.js\": 82106,\n\t\"./edge/views/edge-jobs/edgeJobsView/index.js\": 51751,\n\t\"./edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.controller.js\": 58094,\n\t\"./edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.js\": 53675,\n\t\"./edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.controller.js\": 94244,\n\t\"./edge/views/edge-stacks/createEdgeStackView/docker-compose-form/index.js\": 6346,\n\t\"./edge/views/edge-stacks/createEdgeStackView/index.js\": 63701,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/index.js\": 73448,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/index.js\": 27055,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.controller.js\": 64324,\n\t\"./edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js\": 50649,\n\t\"./edge/views/edge-stacks/editEdgeStackView/index.js\": 40755,\n\t\"./edge/views/edge-stacks/index.js\": 24810,\n\t\"./index.js\": 68826,\n\t\"./kubernetes/__module.js\": 39077,\n\t\"./kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.controller.js\": 91277,\n\t\"./kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.js\": 5149,\n\t\"./kubernetes/components/datatables/applications-datatable/applicationsDatatable.js\": 30021,\n\t\"./kubernetes/components/datatables/applications-datatable/applicationsDatatableController.js\": 36915,\n\t\"./kubernetes/components/datatables/configurations-datatable/configurationsDatatableController.js\": 54709,\n\t\"./kubernetes/components/datatables/events-datatable/eventsDatatable.js\": 32068,\n\t\"./kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.js\": 73118,\n\t\"./kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.js\": 46190,\n\t\"./kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatableController.js\": 51383,\n\t\"./kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.js\": 8265,\n\t\"./kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatableController.js\": 17687,\n\t\"./kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.js\": 58881,\n\t\"./kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatableController.js\": 14542,\n\t\"./kubernetes/components/datatables/volumes-datatable/volumesDatatable.js\": 7387,\n\t\"./kubernetes/components/datatables/volumes-datatable/volumesDatatableController.js\": 66454,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.js\": 99213,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.controller.js\": 98117,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.js\": 93578,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates.controller.js\": 38761,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates.js\": 41377,\n\t\"./kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.js\": 77349,\n\t\"./kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js\": 57232,\n\t\"./kubernetes/components/resource-reservation/resourceReservation.js\": 63047,\n\t\"./kubernetes/components/resource-reservation/resourceReservationController.js\": 81879,\n\t\"./kubernetes/components/view-loading/viewLoading.js\": 59834,\n\t\"./kubernetes/converters/application.js\": 64570,\n\t\"./kubernetes/converters/configMap.js\": 96171,\n\t\"./kubernetes/converters/configuration.js\": 21835,\n\t\"./kubernetes/converters/daemonSet.js\": 34489,\n\t\"./kubernetes/converters/deployment.js\": 80552,\n\t\"./kubernetes/converters/event.js\": 67922,\n\t\"./kubernetes/converters/namespace.js\": 20949,\n\t\"./kubernetes/converters/persistentVolumeClaim.js\": 83204,\n\t\"./kubernetes/converters/resourcePool.js\": 22374,\n\t\"./kubernetes/converters/resourceQuota.js\": 94055,\n\t\"./kubernetes/converters/secret.js\": 87641,\n\t\"./kubernetes/converters/service.js\": 55774,\n\t\"./kubernetes/converters/statefulSet.js\": 60746,\n\t\"./kubernetes/converters/storageClass.js\": 42553,\n\t\"./kubernetes/converters/volume.js\": 26212,\n\t\"./kubernetes/custom-templates/index.js\": 98487,\n\t\"./kubernetes/custom-templates/kube-custom-templates-view/index.js\": 87277,\n\t\"./kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.controller.js\": 26960,\n\t\"./kubernetes/endpoint/converter.js\": 84352,\n\t\"./kubernetes/endpoint/models.js\": 92100,\n\t\"./kubernetes/endpoint/rest.js\": 89152,\n\t\"./kubernetes/endpoint/service.js\": 53405,\n\t\"./kubernetes/filters/applicationFilters.js\": 91951,\n\t\"./kubernetes/filters/configurationFilters.js\": 3662,\n\t\"./kubernetes/filters/eventFilters.js\": 59514,\n\t\"./kubernetes/filters/filters.js\": 69698,\n\t\"./kubernetes/helm/rest.js\": 53067,\n\t\"./kubernetes/helm/service.js\": 99193,\n\t\"./kubernetes/helpers/application/index.js\": 18724,\n\t\"./kubernetes/helpers/commonHelper.js\": 55302,\n\t\"./kubernetes/helpers/configMapHelper.js\": 3781,\n\t\"./kubernetes/helpers/configurationHelper.js\": 13195,\n\t\"./kubernetes/helpers/eventHelper.js\": 66965,\n\t\"./kubernetes/helpers/formValidationHelper.js\": 92530,\n\t\"./kubernetes/helpers/namespaceHelper.js\": 88454,\n\t\"./kubernetes/helpers/resourceQuotaHelper.js\": 28832,\n\t\"./kubernetes/helpers/resourceReservationHelper.js\": 46717,\n\t\"./kubernetes/helpers/serviceHelper.js\": 63094,\n\t\"./kubernetes/helpers/stackHelper.js\": 75511,\n\t\"./kubernetes/helpers/stackHelper.test.js\": 55561,\n\t\"./kubernetes/helpers/volumeHelper.js\": 24038,\n\t\"./kubernetes/horizontal-pod-auto-scaler/converter.js\": 67635,\n\t\"./kubernetes/horizontal-pod-auto-scaler/helper.js\": 5229,\n\t\"./kubernetes/horizontal-pod-auto-scaler/models.js\": 88400,\n\t\"./kubernetes/horizontal-pod-auto-scaler/payload.js\": 73242,\n\t\"./kubernetes/horizontal-pod-auto-scaler/rest.js\": 94711,\n\t\"./kubernetes/horizontal-pod-auto-scaler/service.js\": 30862,\n\t\"./kubernetes/ingress/constants.js\": 9273,\n\t\"./kubernetes/ingress/converter.js\": 90497,\n\t\"./kubernetes/ingress/helper.js\": 14854,\n\t\"./kubernetes/ingress/models.js\": 75914,\n\t\"./kubernetes/ingress/payloads.js\": 7971,\n\t\"./kubernetes/ingress/rest.js\": 51121,\n\t\"./kubernetes/ingress/service.js\": 85357,\n\t\"./kubernetes/models/application/formValues.js\": 13258,\n\t\"./kubernetes/models/application/models/constants.js\": 61360,\n\t\"./kubernetes/models/application/models/index.js\": 59182,\n\t\"./kubernetes/models/application/payloads.js\": 58962,\n\t\"./kubernetes/models/common/params.js\": 50963,\n\t\"./kubernetes/models/common/payloads.js\": 22255,\n\t\"./kubernetes/models/config-map/models.js\": 76970,\n\t\"./kubernetes/models/config-map/payloads.js\": 15481,\n\t\"./kubernetes/models/configuration/formvalues.js\": 53716,\n\t\"./kubernetes/models/configuration/models.js\": 96506,\n\t\"./kubernetes/models/daemon-set/models.js\": 67733,\n\t\"./kubernetes/models/daemon-set/payloads.js\": 70306,\n\t\"./kubernetes/models/deploy.js\": 26000,\n\t\"./kubernetes/models/deployment/models.js\": 78710,\n\t\"./kubernetes/models/deployment/payloads.js\": 46811,\n\t\"./kubernetes/models/event/models.js\": 7799,\n\t\"./kubernetes/models/history/models.js\": 60557,\n\t\"./kubernetes/models/namespace/models.js\": 7462,\n\t\"./kubernetes/models/namespace/payloads.js\": 48651,\n\t\"./kubernetes/models/nodes-limits/models.js\": 2150,\n\t\"./kubernetes/models/port/models.js\": 5846,\n\t\"./kubernetes/models/resource-pool/formValues.js\": 87160,\n\t\"./kubernetes/models/resource-pool/models.js\": 49706,\n\t\"./kubernetes/models/resource-quota/models.js\": 50042,\n\t\"./kubernetes/models/resource-quota/payloads.js\": 53986,\n\t\"./kubernetes/models/resource-reservation/models.js\": 18199,\n\t\"./kubernetes/models/resource-types/models.js\": 30151,\n\t\"./kubernetes/models/secret/models.js\": 60134,\n\t\"./kubernetes/models/secret/payloads.js\": 44602,\n\t\"./kubernetes/models/service/models.js\": 3586,\n\t\"./kubernetes/models/service/payloads.js\": 89836,\n\t\"./kubernetes/models/stack/models.js\": 52814,\n\t\"./kubernetes/models/stateful-set/models.js\": 51041,\n\t\"./kubernetes/models/stateful-set/payloads.js\": 68196,\n\t\"./kubernetes/models/storage-class/models.js\": 60943,\n\t\"./kubernetes/models/storage-class/payload.js\": 15886,\n\t\"./kubernetes/models/volume/models.js\": 15145,\n\t\"./kubernetes/models/volume/payloads.js\": 1003,\n\t\"./kubernetes/node/converter.js\": 48013,\n\t\"./kubernetes/node/filters.js\": 19577,\n\t\"./kubernetes/node/formValues.js\": 40900,\n\t\"./kubernetes/node/helper.js\": 4993,\n\t\"./kubernetes/node/models.js\": 83561,\n\t\"./kubernetes/node/payload.js\": 29296,\n\t\"./kubernetes/node/rest.js\": 60198,\n\t\"./kubernetes/node/service.js\": 73707,\n\t\"./kubernetes/pod/converter.js\": 88090,\n\t\"./kubernetes/pod/models/index.js\": 16426,\n\t\"./kubernetes/pod/payloads/affinities.js\": 28882,\n\t\"./kubernetes/pod/payloads/create.js\": 56254,\n\t\"./kubernetes/pod/service.js\": 383,\n\t\"./kubernetes/registries/index.js\": 21246,\n\t\"./kubernetes/registries/kube-registry-access-view/index.js\": 81652,\n\t\"./kubernetes/registries/kube-registry-access-view/kube-registry-access-view.controller.js\": 34517,\n\t\"./kubernetes/rest/configMap.js\": 98737,\n\t\"./kubernetes/rest/controllerRevision.js\": 59985,\n\t\"./kubernetes/rest/daemonSet.js\": 6706,\n\t\"./kubernetes/rest/deployment.js\": 39356,\n\t\"./kubernetes/rest/endpoint.js\": 45198,\n\t\"./kubernetes/rest/event.js\": 34232,\n\t\"./kubernetes/rest/health.js\": 77772,\n\t\"./kubernetes/rest/namespace.js\": 82527,\n\t\"./kubernetes/rest/nodesLimits.js\": 22602,\n\t\"./kubernetes/rest/persistentVolumeClaim.js\": 97550,\n\t\"./kubernetes/rest/pod.js\": 23359,\n\t\"./kubernetes/rest/portainer-namespace.js\": 18866,\n\t\"./kubernetes/rest/replicaSet.js\": 80562,\n\t\"./kubernetes/rest/resourceQuota.js\": 35381,\n\t\"./kubernetes/rest/response/transform.js\": 76549,\n\t\"./kubernetes/rest/secret.js\": 47870,\n\t\"./kubernetes/rest/service.js\": 5132,\n\t\"./kubernetes/rest/serviceAccount.js\": 63675,\n\t\"./kubernetes/rest/statefulSet.js\": 1700,\n\t\"./kubernetes/rest/storage.js\": 6642,\n\t\"./kubernetes/services/applicationService.js\": 72686,\n\t\"./kubernetes/services/configMapService.js\": 89776,\n\t\"./kubernetes/services/configurationService.js\": 97128,\n\t\"./kubernetes/services/controllerRevisionService.js\": 44073,\n\t\"./kubernetes/services/daemonSetService.js\": 30703,\n\t\"./kubernetes/services/deploymentService.js\": 41968,\n\t\"./kubernetes/services/eventService.js\": 55654,\n\t\"./kubernetes/services/healthService.js\": 10931,\n\t\"./kubernetes/services/namespaceService.js\": 31894,\n\t\"./kubernetes/services/nodesLimitsService.js\": 97437,\n\t\"./kubernetes/services/persistentVolumeClaimService.js\": 33560,\n\t\"./kubernetes/services/resourcePoolService.js\": 41401,\n\t\"./kubernetes/services/resourceQuotaService.js\": 85419,\n\t\"./kubernetes/services/secretService.js\": 64507,\n\t\"./kubernetes/services/serviceService.js\": 95225,\n\t\"./kubernetes/services/stackService.js\": 24640,\n\t\"./kubernetes/services/statefulSetService.js\": 44050,\n\t\"./kubernetes/services/storageService.js\": 1777,\n\t\"./kubernetes/services/volumeService.js\": 72804,\n\t\"./kubernetes/store/namespace.js\": 44238,\n\t\"./kubernetes/views/applications/applications.js\": 58886,\n\t\"./kubernetes/views/applications/applicationsController.js\": 47191,\n\t\"./kubernetes/views/applications/create/createApplication.js\": 44522,\n\t\"./kubernetes/views/applications/create/createApplicationController.js\": 56506,\n\t\"./kubernetes/views/applications/helm/helm.controller.js\": 96398,\n\t\"./kubernetes/views/applications/helm/index.js\": 23051,\n\t\"./kubernetes/views/applications/logs/logs.js\": 7029,\n\t\"./kubernetes/views/applications/logs/logsController.js\": 72888,\n\t\"./kubernetes/views/applications/stats/stats.js\": 70483,\n\t\"./kubernetes/views/applications/stats/statsController.js\": 62581,\n\t\"./kubernetes/views/cluster/cluster.js\": 37553,\n\t\"./kubernetes/views/cluster/clusterController.js\": 30227,\n\t\"./kubernetes/views/cluster/node/node.js\": 78297,\n\t\"./kubernetes/views/cluster/node/nodeController.js\": 94455,\n\t\"./kubernetes/views/cluster/node/stats/stats.js\": 69780,\n\t\"./kubernetes/views/cluster/node/stats/statsController.js\": 26162,\n\t\"./kubernetes/views/configurations/configmap/create/createConfigMap.js\": 32116,\n\t\"./kubernetes/views/configurations/configmap/create/createConfigMapController.js\": 6444,\n\t\"./kubernetes/views/configurations/configmap/edit/configMap.js\": 19888,\n\t\"./kubernetes/views/configurations/configmap/edit/configMapController.js\": 70738,\n\t\"./kubernetes/views/configurations/configurationsController.js\": 42408,\n\t\"./kubernetes/views/configurations/secret/create/createSecret.js\": 40948,\n\t\"./kubernetes/views/configurations/secret/create/createSecretController.js\": 72225,\n\t\"./kubernetes/views/configurations/secret/edit/secret.js\": 23645,\n\t\"./kubernetes/views/configurations/secret/edit/secretController.js\": 14132,\n\t\"./kubernetes/views/configurations/validation.js\": 56167,\n\t\"./kubernetes/views/deploy/deploy.js\": 78076,\n\t\"./kubernetes/views/deploy/deployController.js\": 8155,\n\t\"./kubernetes/views/resource-pools/access/resourcePoolAccess.js\": 3625,\n\t\"./kubernetes/views/resource-pools/access/resourcePoolAccessController.js\": 65291,\n\t\"./kubernetes/views/resource-pools/components/storage-class-switch/index.js\": 38444,\n\t\"./kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.controller.js\": 57451,\n\t\"./kubernetes/views/resource-pools/create/createResourcePoolController.js\": 59553,\n\t\"./kubernetes/views/resource-pools/edit/components/ingresses-datatable/controller.js\": 19046,\n\t\"./kubernetes/views/resource-pools/edit/components/ingresses-datatable/index.js\": 96653,\n\t\"./kubernetes/views/resource-pools/edit/resourcePool.js\": 25851,\n\t\"./kubernetes/views/resource-pools/edit/resourcePoolController.js\": 98772,\n\t\"./kubernetes/views/resource-pools/resourcePools.js\": 86414,\n\t\"./kubernetes/views/resource-pools/resourcePoolsController.js\": 16699,\n\t\"./kubernetes/views/security-constraint/constraintController.js\": 68524,\n\t\"./kubernetes/views/stacks/logs/logs.js\": 60946,\n\t\"./kubernetes/views/stacks/logs/logsController.js\": 66000,\n\t\"./kubernetes/views/summary/resources/applicationResources.js\": 55208,\n\t\"./kubernetes/views/summary/resources/configurationResources.js\": 63476,\n\t\"./kubernetes/views/summary/resources/helpers.js\": 13919,\n\t\"./kubernetes/views/summary/resources/namespaceResources.js\": 15754,\n\t\"./kubernetes/views/summary/summary.js\": 28812,\n\t\"./kubernetes/views/summary/summaryController.js\": 56936,\n\t\"./kubernetes/views/volumes/components/volumes-storages-datatable/controller.js\": 7845,\n\t\"./kubernetes/views/volumes/components/volumes-storages-datatable/index.js\": 88453,\n\t\"./kubernetes/views/volumes/edit/volume.js\": 66730,\n\t\"./kubernetes/views/volumes/edit/volumeController.js\": 527,\n\t\"./kubernetes/views/volumes/volumes.js\": 56094,\n\t\"./kubernetes/views/volumes/volumesController.js\": 20451,\n\t\"./matomo-setup.js\": 77113,\n\t\"./portainer/__module.js\": 72221,\n\t\"./portainer/components/InformationPanel/InformationPanelAngular.js\": 96475,\n\t\"./portainer/components/access-datatable/accessDatatable.js\": 73623,\n\t\"./portainer/components/access-datatable/accessDatatableController.js\": 14984,\n\t\"./portainer/components/accessControlForm/por-access-control-form.js\": 56996,\n\t\"./portainer/components/accessControlForm/porAccessControlFormController.js\": 29761,\n\t\"./portainer/components/accessControlForm/porAccessControlFormModel.js\": 48228,\n\t\"./portainer/components/accessManagement/index.js\": 60251,\n\t\"./portainer/components/accessManagement/por-access-management.js\": 43697,\n\t\"./portainer/components/accessManagement/porAccessManagementController.js\": 91660,\n\t\"./portainer/components/autofocus.js\": 35882,\n\t\"./portainer/components/buttonSpinner.js\": 77830,\n\t\"./portainer/components/code-editor/code-editor.controller.js\": 11505,\n\t\"./portainer/components/code-editor/code-editor.js\": 47076,\n\t\"./portainer/components/code-editor/codeEditorController.js\": 42276,\n\t\"./portainer/components/copy-button/copy-button.controller.js\": 31145,\n\t\"./portainer/components/copy-button/copy-button.js\": 40931,\n\t\"./portainer/components/custom-template-selector/custom-template-selector.controller.js\": 15793,\n\t\"./portainer/components/custom-template-selector/index.js\": 3992,\n\t\"./portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.controller.js\": 40991,\n\t\"./portainer/components/datatables/access-tokens-datatable/index.js\": 7602,\n\t\"./portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.controller.js\": 65372,\n\t\"./portainer/components/datatables/datatable-columns-visibility/index.js\": 83812,\n\t\"./portainer/components/datatables/filter/datatable-filter.controller.js\": 14979,\n\t\"./portainer/components/datatables/filter/index.js\": 4955,\n\t\"./portainer/components/datatables/genericDatatableController.js\": 65307,\n\t\"./portainer/components/datatables/groups-datatable/groupsDatatable.js\": 54933,\n\t\"./portainer/components/datatables/index.js\": 4691,\n\t\"./portainer/components/datatables/pagination/index.js\": 75936,\n\t\"./portainer/components/datatables/registries-datatable/registriesDatatable.js\": 56988,\n\t\"./portainer/components/datatables/registries-datatable/registriesDatatableController.js\": 41069,\n\t\"./portainer/components/datatables/strings-datatable/index.js\": 52540,\n\t\"./portainer/components/datatables/tags-datatable/tagsDatatable.js\": 434,\n\t\"./portainer/components/datatables/titlebar/index.js\": 92754,\n\t\"./portainer/components/datatables/users-datatable/usersDatatable.js\": 25416,\n\t\"./portainer/components/datatables/users-datatable/usersDatatableController.js\": 36636,\n\t\"./portainer/components/demo-feature-indicator/demo-feature-indicator.controller.js\": 31032,\n\t\"./portainer/components/demo-feature-indicator/index.js\": 49345,\n\t\"./portainer/components/endpointSecurity/por-endpoint-security.js\": 73593,\n\t\"./portainer/components/endpointSecurity/porEndpointSecurityController.js\": 33165,\n\t\"./portainer/components/endpointSecurity/porEndpointSecurityModel.js\": 41104,\n\t\"./portainer/components/focusIf.js\": 10726,\n\t\"./portainer/components/form-components/file-upload-form/index.js\": 36507,\n\t\"./portainer/components/form-components/index.js\": 35879,\n\t\"./portainer/components/form-components/web-editor-form/index.js\": 90518,\n\t\"./portainer/components/form-components/web-editor-form/web-editor-form.controller.js\": 55821,\n\t\"./portainer/components/forms/group-form/group-form.js\": 31579,\n\t\"./portainer/components/forms/group-form/groupFormController.js\": 77593,\n\t\"./portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.controller.js\": 18136,\n\t\"./portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.js\": 49982,\n\t\"./portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.js\": 71694,\n\t\"./portainer/components/forms/registry-form-azure/registry-form-azure.js\": 29407,\n\t\"./portainer/components/forms/registry-form-custom/registry-form-custom.js\": 39860,\n\t\"./portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.js\": 31814,\n\t\"./portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.js\": 28940,\n\t\"./portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatableController.js\": 23316,\n\t\"./portainer/components/forms/registry-form-gitlab/registry-form-gitlab.js\": 96583,\n\t\"./portainer/components/forms/registry-form-proget/registry-form-proget.js\": 94563,\n\t\"./portainer/components/forms/registry-form-quay/registry-form-quay.js\": 77445,\n\t\"./portainer/components/forms/stack-from-template-form/index.js\": 83262,\n\t\"./portainer/components/forms/stack-redeploy-git-form/index.js\": 13804,\n\t\"./portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.controller.js\": 99674,\n\t\"./portainer/components/index.js\": 67636,\n\t\"./portainer/components/intervalFormat.js\": 80762,\n\t\"./portainer/components/onEnterKey.js\": 11887,\n\t\"./portainer/components/option-panel/index.js\": 25899,\n\t\"./portainer/components/option-panel/option-panel.controller.js\": 11145,\n\t\"./portainer/components/product-list/product-item/product-item.js\": 36229,\n\t\"./portainer/components/product-list/product-list.js\": 6508,\n\t\"./portainer/components/registry-details/index.js\": 63786,\n\t\"./portainer/components/sensitive-details/sensitive-details.js\": 90586,\n\t\"./portainer/components/show-hide/show-hide.js\": 93960,\n\t\"./portainer/components/slider/slider.js\": 89732,\n\t\"./portainer/components/slider/sliderController.js\": 89463,\n\t\"./portainer/components/stack-duplication-form/stack-duplication-form-controller.js\": 23686,\n\t\"./portainer/components/stack-duplication-form/stack-duplication-form.js\": 45781,\n\t\"./portainer/components/status-indicator/index.js\": 6963,\n\t\"./portainer/components/template-widget.js\": 12556,\n\t\"./portainer/components/theme/theme-settings.controller.js\": 91181,\n\t\"./portainer/components/theme/theme-settings.js\": 59087,\n\t\"./portainer/environments/azure-endpoint-config/azure-endpoint-config.js\": 65088,\n\t\"./portainer/filters/filters.js\": 54958,\n\t\"./portainer/filters/index.js\": 50968,\n\t\"./portainer/helpers/endpointHelper.js\": 36954,\n\t\"./portainer/helpers/formHelper.js\": 70782,\n\t\"./portainer/helpers/genericHelper.js\": 90331,\n\t\"./portainer/helpers/networkHelper.js\": 53586,\n\t\"./portainer/helpers/pathHelper.js\": 24000,\n\t\"./portainer/helpers/resourceControlHelper.js\": 61018,\n\t\"./portainer/helpers/stackHelper.js\": 66891,\n\t\"./portainer/helpers/tagHelper.js\": 89170,\n\t\"./portainer/helpers/templateHelper.js\": 87913,\n\t\"./portainer/helpers/urlHelper.js\": 14103,\n\t\"./portainer/models/access.js\": 35489,\n\t\"./portainer/models/dockerhub.js\": 82337,\n\t\"./portainer/models/endpoint/formValues.js\": 62642,\n\t\"./portainer/models/endpoint/models.js\": 50975,\n\t\"./portainer/models/gitlabRegistry.js\": 73274,\n\t\"./portainer/models/group.js\": 3788,\n\t\"./portainer/models/registry.js\": 11337,\n\t\"./portainer/models/registryRepository.js\": 49938,\n\t\"./portainer/models/registryTypes.js\": 16887,\n\t\"./portainer/models/resourceControl/resourceControlCreatePayload.js\": 31060,\n\t\"./portainer/models/resourceControl/resourceControlOwnershipParameters.js\": 75679,\n\t\"./portainer/models/schedule.js\": 9167,\n\t\"./portainer/models/settings.js\": 95111,\n\t\"./portainer/models/status.js\": 44257,\n\t\"./portainer/models/tag.js\": 9557,\n\t\"./portainer/models/team.js\": 18486,\n\t\"./portainer/models/teamMembership.js\": 84236,\n\t\"./portainer/models/user.js\": 69617,\n\t\"./portainer/models/webhook.js\": 29843,\n\t\"./portainer/oauth/__module.js\": 70847,\n\t\"./portainer/oauth/components/oauth-providers-selector/index.js\": 99387,\n\t\"./portainer/oauth/components/oauth-providers-selector/oauth-provider-selector.controller.js\": 25148,\n\t\"./portainer/oauth/components/oauth-settings/index.js\": 85122,\n\t\"./portainer/oauth/components/oauth-settings/oauth-settings.controller.js\": 51362,\n\t\"./portainer/oauth/components/oauth-settings/providers.js\": 28121,\n\t\"./portainer/oauth/services/rest/oauth.js\": 19870,\n\t\"./portainer/rbac/components/access-viewer/access-viewer-datatable/index.js\": 40912,\n\t\"./portainer/rbac/components/access-viewer/access-viewer.controller.js\": 10992,\n\t\"./portainer/rbac/components/access-viewer/index.js\": 71450,\n\t\"./portainer/rbac/components/roles-datatable/index.js\": 22839,\n\t\"./portainer/rbac/components/roles-datatable/roles-datatable.controller.js\": 76033,\n\t\"./portainer/rbac/index.js\": 12966,\n\t\"./portainer/rbac/models/access.js\": 5681,\n\t\"./portainer/rbac/models/role.js\": 48315,\n\t\"./portainer/rbac/services/role.rest.js\": 94881,\n\t\"./portainer/rbac/services/role.service.js\": 4220,\n\t\"./portainer/rbac/views/roles/index.js\": 17093,\n\t\"./portainer/rbac/views/roles/roles.controller.js\": 87146,\n\t\"./portainer/registry-management/index.js\": 88339,\n\t\"./portainer/registry-management/views/create/createRegistry.js\": 93976,\n\t\"./portainer/registry-management/views/create/createRegistryController.js\": 97992,\n\t\"./portainer/registry-management/views/edit/registry.js\": 25500,\n\t\"./portainer/registry-management/views/edit/registryController.js\": 49324,\n\t\"./portainer/registry-management/views/list/registriesController.js\": 25705,\n\t\"./portainer/rest/auth.js\": 71170,\n\t\"./portainer/rest/backup.js\": 86194,\n\t\"./portainer/rest/customTemplate.js\": 94953,\n\t\"./portainer/rest/endpoint.js\": 93934,\n\t\"./portainer/rest/gitlab.js\": 28435,\n\t\"./portainer/rest/group.js\": 14394,\n\t\"./portainer/rest/registry.js\": 37573,\n\t\"./portainer/rest/resourceControl.js\": 62779,\n\t\"./portainer/rest/settings.js\": 63662,\n\t\"./portainer/rest/ssl.js\": 11196,\n\t\"./portainer/rest/stack.js\": 57296,\n\t\"./portainer/rest/support.js\": 56040,\n\t\"./portainer/rest/tag.js\": 28055,\n\t\"./portainer/rest/team.js\": 66488,\n\t\"./portainer/rest/teamMembership.js\": 75931,\n\t\"./portainer/rest/template.js\": 25543,\n\t\"./portainer/rest/transform/getEndpointsTotalCount.js\": 21837,\n\t\"./portainer/rest/transform/gitlabResponseGetLink.js\": 94180,\n\t\"./portainer/rest/user.js\": 14363,\n\t\"./portainer/rest/webhooks.js\": 81515,\n\t\"./portainer/services/allSettled.js\": 39435,\n\t\"./portainer/services/api/accessService.js\": 91261,\n\t\"./portainer/services/api/backupService.js\": 2646,\n\t\"./portainer/services/api/customTemplate.js\": 36570,\n\t\"./portainer/services/api/dockerhubService.js\": 34431,\n\t\"./portainer/services/api/endpointService.js\": 96133,\n\t\"./portainer/services/api/groupService.js\": 9959,\n\t\"./portainer/services/api/registryService.js\": 71247,\n\t\"./portainer/services/api/resourceControlService.js\": 19355,\n\t\"./portainer/services/api/settingsService.js\": 40630,\n\t\"./portainer/services/api/sslService.js\": 69704,\n\t\"./portainer/services/api/stackService.js\": 36958,\n\t\"./portainer/services/api/statusService.js\": 1265,\n\t\"./portainer/services/api/supportService.js\": 45989,\n\t\"./portainer/services/api/tagService.js\": 82679,\n\t\"./portainer/services/api/teamMembershipService.js\": 5872,\n\t\"./portainer/services/api/teamService.js\": 92915,\n\t\"./portainer/services/api/templateService.js\": 9511,\n\t\"./portainer/services/api/userService.js\": 84672,\n\t\"./portainer/services/api/webhookService.js\": 23846,\n\t\"./portainer/services/async.js\": 40677,\n\t\"./portainer/services/authentication.js\": 1848,\n\t\"./portainer/services/chartService.js\": 93408,\n\t\"./portainer/services/datatableService.js\": 41507,\n\t\"./portainer/services/fileUpload.js\": 99670,\n\t\"./portainer/services/formValidator.js\": 25128,\n\t\"./portainer/services/localStorage.js\": 76793,\n\t\"./portainer/services/nameValidator.js\": 53058,\n\t\"./portainer/services/pagination.js\": 29686,\n\t\"./portainer/services/registryGitlabService.js\": 29128,\n\t\"./portainer/services/registryModalService.js\": 5513,\n\t\"./portainer/services/session-storage.js\": 53125,\n\t\"./portainer/services/stateManager.js\": 53518,\n\t\"./portainer/services/themeManager.js\": 60997,\n\t\"./portainer/settings/authentication/auth-method-constants.js\": 81960,\n\t\"./portainer/settings/authentication/auth-type-constants.js\": 64501,\n\t\"./portainer/settings/authentication/auto-user-provision-toggle/index.js\": 92367,\n\t\"./portainer/settings/authentication/index.js\": 98108,\n\t\"./portainer/settings/authentication/ldap/ad-settings/ad-settings.controller.js\": 34821,\n\t\"./portainer/settings/authentication/ldap/ad-settings/index.js\": 83460,\n\t\"./portainer/settings/authentication/ldap/index.js\": 64057,\n\t\"./portainer/settings/authentication/ldap/ldap-connectivity-check/index.js\": 7729,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-admin-group/index.js\": 75022,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.controller.js\": 70629,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-group-search/index.js\": 5760,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.controller.js\": 3709,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-user-search/index.js\": 33606,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.controller.js\": 85870,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search-item/index.js\": 58735,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.controller.js\": 52265,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search/index.js\": 56050,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.controller.js\": 34244,\n\t\"./portainer/settings/authentication/ldap/ldap-groups-datatable/index.js\": 37844,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-custom/index.js\": 89554,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.controller.js\": 87592,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-dn-builder/index.js\": 93492,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.controller.js\": 20819,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/index.js\": 2797,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.controller.js\": 95086,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-openldap/index.js\": 66076,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.controller.js\": 12900,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-security/index.js\": 69183,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-test-login/index.js\": 47807,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.controller.js\": 5376,\n\t\"./portainer/settings/authentication/ldap/ldap-settings.model.js\": 68006,\n\t\"./portainer/settings/authentication/ldap/ldap-settings/index.js\": 14454,\n\t\"./portainer/settings/authentication/ldap/ldap-settings/ldap-settings.controller.js\": 42970,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search-item/index.js\": 71465,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.controller.js\": 97943,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search/index.js\": 96596,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.controller.js\": 56478,\n\t\"./portainer/settings/authentication/ldap/ldap-users-datatable/index.js\": 66199,\n\t\"./portainer/settings/authentication/ldap/ldap.rest.js\": 40818,\n\t\"./portainer/settings/authentication/ldap/ldap.service.js\": 58677,\n\t\"./portainer/settings/authentication/save-auth-settings-button/index.js\": 97069,\n\t\"./portainer/settings/general/index.js\": 86697,\n\t\"./portainer/settings/index.js\": 54875,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.controller.js\": 36759,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-datatable/index.js\": 18919,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-view.controller.js\": 45949,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-view.js\": 65147,\n\t\"./portainer/user-activity/activity-logs-view/index.js\": 92020,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.controller.js\": 45727,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-datatable/index.js\": 90370,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-view.controller.js\": 63963,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-view.js\": 51936,\n\t\"./portainer/user-activity/auth-logs-view/index.js\": 42384,\n\t\"./portainer/user-activity/index.js\": 10381,\n\t\"./portainer/views/account/accountController.js\": 42523,\n\t\"./portainer/views/auth/authController.js\": 6049,\n\t\"./portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js\": 44243,\n\t\"./portainer/views/custom-templates/custom-templates-view/index.js\": 94439,\n\t\"./portainer/views/devices/import/importDeviceController.js\": 23893,\n\t\"./portainer/views/devices/profiles/add/addProfileController.js\": 61483,\n\t\"./portainer/views/devices/profiles/add/index.js\": 30518,\n\t\"./portainer/views/devices/profiles/edit/editProfileController.js\": 75238,\n\t\"./portainer/views/devices/profiles/edit/index.js\": 50100,\n\t\"./portainer/views/endpoint-registries/registries.js\": 27921,\n\t\"./portainer/views/endpoint-registries/registriesController.js\": 3587,\n\t\"./portainer/views/endpoints/access/endpointAccessController.js\": 88740,\n\t\"./portainer/views/endpoints/edit/endpointController.js\": 54141,\n\t\"./portainer/views/endpoints/helpers.js\": 71329,\n\t\"./portainer/views/endpoints/kvm/endpointKVMController.js\": 31995,\n\t\"./portainer/views/groups/access/groupAccessController.js\": 23172,\n\t\"./portainer/views/groups/create/createGroupController.js\": 86770,\n\t\"./portainer/views/groups/edit/groupController.js\": 2226,\n\t\"./portainer/views/groups/groupsController.js\": 6347,\n\t\"./portainer/views/init/admin/initAdminController.js\": 15430,\n\t\"./portainer/views/logout/logoutController.js\": 47263,\n\t\"./portainer/views/main/mainController.js\": 21026,\n\t\"./portainer/views/settings/authentication/settingsAuthenticationController.js\": 41295,\n\t\"./portainer/views/settings/edge-compute/index.js\": 45711,\n\t\"./portainer/views/settings/edge-compute/settingsEdgeComputeController.js\": 27110,\n\t\"./portainer/views/stacks/create/createStackController.js\": 30322,\n\t\"./portainer/views/stacks/edit/stackController.js\": 60582,\n\t\"./portainer/views/stacks/stacksController.js\": 95637,\n\t\"./portainer/views/tags/tagsController.js\": 86378,\n\t\"./portainer/views/templates/templatesController.js\": 51750,\n\t\"./portainer/views/users/edit/userController.js\": 56899,\n\t\"./portainer/views/users/usersController.js\": 49531,\n\t\"./react/docker/components/ImageStatus/index.js\": 60355,\n\t\"./vendors.js\": 4185\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 19338;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGit = function SvgGit(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#E15B39\",\n    d: \"M27.363 17.908 15.537 5.66a2.121 2.121 0 0 0-3.075 0l-2.364 2.45 3.212 3.326c.255-.109.535-.17.829-.17 1.202 0 2.177 1.01 2.177 2.255 0 .304-.058.594-.164.859l3.075 3.185c.256-.11.535-.17.83-.17 1.202 0 2.176 1.01 2.176 2.255 0 1.245-.974 2.255-2.177 2.255-1.202 0-2.177-1.01-2.177-2.255 0-.304.058-.594.164-.859l-3.067-3.177v8.025a2.258 2.258 0 0 1 1.34 2.082c0 1.246-.975 2.255-2.178 2.255-1.202 0-2.177-1.01-2.177-2.255 0-.938.553-1.742 1.34-2.082v-8.035a2.258 2.258 0 0 1-1.34-2.083c0-.304.059-.594.164-.858L8.913 9.336.637 17.908c-.85.88-.85 2.304 0 3.184L12.463 33.34c.85.88 2.225.88 3.074 0l11.826-12.248c.85-.88.85-2.305 0-3.184Z\"\n  })));\n};\nexport default SvgGit;","var _rect, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpToDate = function SvgIconUpToDate(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 15 14\"\n  }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n    width: 14,\n    height: 14,\n    x: 0.5,\n    fill: \"#039855\",\n    rx: 7\n  })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0BA5EC\",\n    fillRule: \"evenodd\",\n    d: \"M10.473 4.31 6.296 8.343 5.188 7.158a.606.606 0 0 0-.758-.041.535.535 0 0 0-.152.706L5.59 9.958c.129.198.35.32.601.32.24 0 .467-.122.595-.32.21-.275 4.218-5.052 4.218-5.052.525-.537-.111-1.01-.531-.601v.006Z\",\n    clipRule: \"evenodd\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    fillRule: \"evenodd\",\n    d: \"M11.14 4.305c-.128-.18-.432-.229-.667 0v.006l-.083.08-4.094 3.95-1.108-1.183a.606.606 0 0 0-.758-.041.535.535 0 0 0-.152.706L5.59 9.958a.701.701 0 0 0 .601.32.716.716 0 0 0 .608-.337c.059-.074.233-.285.48-.582.791-.952 2.327-2.786 3.158-3.777l.567-.676a1.215 1.215 0 0 0 .026-.028c.202-.222.207-.43.114-.567l-.004-.006Z\",\n    clipRule: \"evenodd\"\n  })));\n};\nexport default SvgIconUpToDate;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpdatesAvailable = function SvgIconUpdatesAvailable(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 15 14\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#icon_updates-available_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"rect\", {\n    width: 14,\n    height: 14,\n    x: 0.5,\n    fill: \"#F79009\",\n    rx: 7\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    fillRule: \"evenodd\",\n    d: \"M4.817 4.559a.75.75 0 0 1 1.06 0l1.681 1.68 1.68-1.68a.75.75 0 1 1 1.06 1.06L8.619 7.3l1.68 1.68a.75.75 0 1 1-1.06 1.061l-1.68-1.68-1.68 1.68a.75.75 0 1 1-1.06-1.06l1.68-1.68-1.68-1.68a.75.75 0 0 1 0-1.061Z\",\n    clipRule: \"evenodd\"\n  }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"icon_updates-available_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"rect\", {\n    width: 14,\n    height: 14,\n    x: 0.5,\n    fill: \"#fff\",\n    rx: 7\n  })))));\n};\nexport default SvgIconUpdatesAvailable;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpdatesUnknown = function SvgIconUpdatesUnknown(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 15 14\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#98A2B3\",\n    fillRule: \"evenodd\",\n    d: \"M2.895 7a1 1 0 0 1 1-1h7.21a1 1 0 1 1 0 2h-7.21a1 1 0 0 1-1-1Z\",\n    clipRule: \"evenodd\"\n  })));\n};\nexport default SvgIconUpdatesUnknown;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKube = function SvgKube(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"M12 2v10m0 0v10m0-10 7.071-7.071M12 12l-7.071 7.071M12 12h10m-10 0H2m10 0 7.071 7.071M12 12 4.929 4.929m15.404 7.07a8.333 8.333 0 1 1-16.666 0 8.333 8.333 0 0 1 16.666 0Z\"\n  })));\n};\nexport default SvgKube;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLaptopCode = function SvgLaptopCode(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 25 25\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"M21.089 16.592v-8.8c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874c-.428-.218-.988-.218-2.108-.218h-11.6c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874c-.218.428-.218.988-.218 2.108v8.8m1.666 4h14.667c.62 0 .93 0 1.184-.068a2 2 0 0 0 1.414-1.415c.069-.254.069-.564.069-1.184 0-.31 0-.465-.034-.592a1 1 0 0 0-.708-.707c-.127-.034-.282-.034-.592-.034H3.422c-.31 0-.465 0-.592.034a1 1 0 0 0-.707.707c-.034.127-.034.282-.034.592 0 .62 0 .93.068 1.184a2 2 0 0 0 1.414 1.415c.254.068.564.068 1.184.068Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"m14.089 13.582 2.5-2.5-2.5-2.5m-4 0-2.5 2.5 2.5 2.5\"\n  })));\n};\nexport default SvgLaptopCode;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLdap = function SvgLdap(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 79 44\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#CB2026\",\n    d: \"m45.322 11.32 9.313 15.984 9.317 15.982H26.693l9.313-15.982 9.316-15.985ZM64.157 38.703H79l-9.316-15.985L60.37 6.737 52.95 19.473l6.213 10.666 4.994 8.564ZM31.93 29.558l-3.985-6.84L18.63 6.737 9.316 22.718 0 38.703H26.6l2.615-4.487 2.716-4.659ZM33.295 27.224l.468-.801L40.421 15 31.78.175l-7.123 12.223 5.869 10.07 2.77 4.756Z\"\n  })));\n};\nexport default SvgLdap;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLinux = function SvgLinux(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 0 24 24\"\n  }, props), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M21.613 19.27c-.703-.29-1.004-.672-.976-1.243.031-.664-.348-1.152-.528-1.347.11-.414.426-1.844 0-3.09-.457-1.332-1.851-3.367-3.289-5.367-.59-.82-.617-1.715-.648-2.746-.031-.989-.067-2.106-.617-3.348C14.957.777 13.758 0 12.265 0c-.89 0-1.804.277-2.503.762-1.438.992-1.25 3.156-1.121 4.586.015.195.03.382.039.539.086 1.402.008 2.14-.09 2.367-.067.144-.383.562-.719 1.008-.348.457-.738.972-1.062 1.457-.387.582-.696 1.469-.997 2.328-.218.629-.43 1.223-.628 1.578a2.143 2.143 0 0 0-.211 1.613c-.145.102-.356.301-.532.676-.214.453-.648.7-1.55.875-.414.082-.7.258-.848.516-.219.379-.102.851.008 1.175.16.477.058.778-.121 1.325-.043.125-.09.27-.137.425-.074.25-.047.477.082.672.34.524 1.336.707 2.36.828.609.07 1.277.317 1.925.551.633.235 1.29.473 1.887.547.09.008.18.016.265.016.899 0 1.305-.598 1.434-.844a15.825 15.825 0 0 1 2.59-.305c1.144-.03 2.254.196 2.57.266.098.187.36.621.774.844.226.125.547.195.87.195.348 0 1.009-.082 1.532-.633.523-.555 1.828-1.258 2.777-1.773.215-.117.414-.223.586-.32.535-.297.828-.72.801-1.165-.02-.367-.266-.687-.633-.84Zm-11.84-.106c-.066-.469-.671-.934-1.37-1.473-.571-.441-1.22-.941-1.395-1.363-.371-.871-.078-2.406.426-3.195.253-.395.457-.992.656-1.574.21-.625.433-1.274.68-1.555.39-.445.753-1.305.816-1.984.367.351.934.793 1.46.793a.806.806 0 0 0 .235-.032c.36-.101.887-.406 1.399-.703.437-.254.98-.566 1.187-.598.348.504 2.387 5.012 2.594 6.457a6.878 6.878 0 0 1-.098 2.461 2.163 2.163 0 0 0-.242-.015c-.566 0-.719.308-.758.492-.097.48-.11 2.016-.11 2.363-.206.262-1.241 1.489-2.73 1.707-.609.09-1.175.133-1.683.133-.438 0-.715-.035-.832-.05l-.746-.856c.293-.145.59-.453.511-1.008Zm.95-14.117-.07.035c0-.05-.008-.105-.016-.156-.082-.469-.395-.813-.742-.813-.024 0-.051.004-.079.008-.207.035-.37.191-.457.41.079-.484.352-.84.676-.84.383 0 .703.512.703 1.122 0 .078-.004.152-.015.234Zm2.964.363c.036-.11.055-.23.055-.355 0-.555-.351-.985-.797-.985-.437 0-.793.442-.793.985 0 .035 0 .074.004.11a1.269 1.269 0 0 1-.066-.024 1.504 1.504 0 0 1-.078-.477c0-.66.422-1.195.941-1.195.52 0 .942.535.942 1.195 0 .277-.079.54-.207.746Zm-.382 1.285c-.008.032-.024.047-.2.14-.09.044-.199.103-.335.188l-.094.055c-.371.227-1.242.754-1.477.785-.16.02-.258-.043-.48-.195-.051-.031-.106-.07-.164-.106-.403-.265-.66-.554-.688-.667.13-.102.457-.356.621-.504.336-.317.676-.528.844-.528.012 0 .02.004.027.004.196.035.684.23 1.04.371.164.067.308.121.406.16.316.106.48.247.5.297Zm2.828 14.664c.18-.8.383-1.89.351-2.53-.007-.15-.023-.306-.035-.462-.023-.285-.058-.715-.023-.84.008-.004.015-.007.023-.007.004.367.082 1.097.668 1.355.176.074.375.113.594.113.586 0 1.238-.285 1.504-.554.16-.157.289-.348.383-.5.02.058.03.136.027.234-.035.543.227 1.262.727 1.527l.074.04c.18.093.652.34.66.46 0 0-.004.012-.031.035-.117.11-.535.325-.938.532-.719.363-1.531.781-1.894 1.164-.516.539-1.098.902-1.45.902a.361.361 0 0 1-.113-.015c-.383-.118-.695-.668-.527-1.454ZM3.14 19.316c-.04-.183-.07-.324-.036-.464.024-.102.532-.215.75-.262.305-.067.622-.133.829-.258.277-.172.43-.484.562-.758.098-.199.2-.406.316-.472a.066.066 0 0 1 .036-.008c.222 0 .691.465.96.886.067.106.192.317.34.56.438.733 1.036 1.733 1.348 2.07.281.304.738.882.625 1.382-.082.383-.52.7-.621.77a.728.728 0 0 1-.14.011c-.598 0-1.782-.5-2.419-.765l-.093-.04c-.356-.148-.938-.241-1.496-.335-.45-.07-1.059-.168-1.16-.258-.083-.094.011-.395.097-.656.059-.192.121-.387.156-.594a2.162 2.162 0 0 0-.054-.809Zm0 0\",\n    style: {\n      stroke: \"none\",\n      fillRule: \"nonzero\",\n      fill: \"currentColor\",\n      fillOpacity: 1\n    }\n  }));\n};\nexport default SvgLinux;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMemory = function SvgMemory(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"M14.5 18.3v2.58m2.5-9.84v-3M5.5 18.3v2.58M10 18.3v2.58m0-2.58h5.2c1.68 0 4.658 0 5.3-.327a3 3 0 0 0 1.311-1.311c.243-.477.305-1.183.322-2.142M10 18.3H8.8c-1.68 0-4.52 0-5.162-.327a3 3 0 0 1-1.311-1.311c-.243-.477-.305-1.183-.321-2.142M19 18.3v2.58m-6.88-9.84v-3m-5.04 3v-3m-5.074 6.48C2 14.188 2 13.932 2 13.5V8.8c0-1.68 0-2.52.327-3.162a3 3 0 0 1 1.311-1.311C4.28 4 7.12 4 8.8 4h6.4c1.68 0 4.658 0 5.3.327a3 3 0 0 1 1.311 1.311c.327.642.327 1.482.327 3.162v4.7c0 .432 0 .688-.006 1.02m-20.126 0h20.127\"\n  })));\n};\nexport default SvgMemory;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgRoute = function SvgRoute(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"M11.5 5h.434c3.048 0 4.571 0 5.15.547a2 2 0 0 1 .586 1.845c-.156.781-1.4 1.66-3.888 3.42l-4.064 2.876c-2.488 1.76-3.732 2.639-3.888 3.42a2 2 0 0 0 .586 1.845c.579.547 2.102.547 5.15.547h.934M8 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm14 14a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n  })));\n};\nexport default SvgRoute;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSubscription = function SvgSubscription(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 22 20\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 1.8,\n    d: \"M20.864 8.083H1.697m8.625 8.625h7.475c1.074 0 1.61 0 2.02-.209.361-.183.654-.476.838-.837.21-.41.21-.947.21-2.02V6.358c0-1.073 0-1.61-.21-2.02a1.917 1.917 0 0 0-.837-.837c-.41-.21-.947-.21-2.02-.21h-1.726m-5.75 13.417 1.917 1.917m-1.917-1.917 1.917-1.916m-5.75 1.916H4.764c-1.073 0-1.61 0-2.02-.209a1.916 1.916 0 0 1-.838-.837c-.209-.41-.209-.947-.209-2.02V6.358c0-1.073 0-1.61.21-2.02.183-.36.476-.654.837-.837.41-.21.947-.21 2.02-.21h7.475m0 0-1.917 1.917m1.917-1.916-1.917-1.917\"\n  })));\n};\nexport default SvgSubscription;","var _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAzure = function SvgAzure(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#azure_svg__a)\",\n    d: \"M8.34 7.955h7.401L8.058 31.222a1.2 1.2 0 0 1-.43.595c-.2.147-.442.226-.689.226H1.18a1.16 1.16 0 0 1-.538-.133 1.191 1.191 0 0 1-.628-.893 1.233 1.233 0 0 1 .049-.564l7.16-21.677c.078-.24.228-.447.43-.594.2-.147.441-.226.688-.226v-.001Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0078D4\",\n    d: \"M19.096 23.562H7.358a.536.536 0 0 0-.506.35.565.565 0 0 0 .135.61l7.543 7.194c.22.21.508.326.809.326h6.646l-2.89-8.482v.002Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#azure_svg__b)\",\n    d: \"M8.34 7.955c-.25 0-.493.08-.695.23-.202.15-.351.363-.426.606L.07 30.435a1.224 1.224 0 0 0 .146 1.1c.11.157.254.287.422.375.168.089.354.135.543.134h5.91c.22-.04.425-.139.595-.287.17-.148.3-.34.373-.555l1.426-4.293 5.091 4.854c.213.18.481.28.758.282h6.622l-2.905-8.482-8.465.002 5.181-15.61H8.34Z\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#azure_svg__c)\",\n    d: \"M17.794 8.775a1.205 1.205 0 0 0-.43-.594c-.2-.147-.44-.226-.687-.226h-8.25c.248 0 .487.08.688.226.2.147.35.355.43.594l7.159 21.68a1.222 1.222 0 0 1-.58 1.456c-.166.087-.35.133-.537.133h8.249a1.159 1.159 0 0 0 .957-.502 1.231 1.231 0 0 0 .16-1.088l-7.16-21.68Z\"\n  })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"azure_svg__a\",\n    x1: 11.038,\n    x2: 3.044,\n    y1: 9.741,\n    y2: 32.844,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#114A8B\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#0669BC\"\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"azure_svg__b\",\n    x1: 13.438,\n    x2: 11.652,\n    y1: 20.556,\n    y2: 21.147,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopOpacity: 0.3\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.07,\n    stopOpacity: 0.2\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.32,\n    stopOpacity: 0.1\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.62,\n    stopOpacity: 0.05\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopOpacity: 0\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"azure_svg__c\",\n    x1: 12.516,\n    x2: 21.281,\n    y1: 9.042,\n    y2: 31.892,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#3CCBF4\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#2892DF\"\n  })))));\n};\nexport default SvgAzure;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDockerCompose = function SvgDockerCompose(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#docker-compose_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#B8C9DA\",\n    d: \"M26.923 21.727c-2.571 0-2.82 2.047-2.82 2.047l1.671-.474s1.248-.65 2.347.574c1.198 1.248.55 3.37 0 4.17-.774 1.247-3.843 1.397-4.044 1.347-1.348-2.87-4.469-2.996-4.469-2.996l3.37-3.095s3.52-3.42 3.52-6.615c0-3.195-3.695-6.64-3.695-6.64s-1.523-1.198-1.523-2.22c0-1.723 3.47-2.197 5.417-3.22 1.947-1.023.45-3.844-.324-4.294-1.522-.649-2.371.525-2.371.525L22.354 4.98l-1.198.474s-.95-.05-1.723.924c-.774.973-.15 3.12-.15 3.12s-1.298-.673-3.494-.673c-7.189 0-7.838 5.99-7.838 7.04 0 1.047.574 3.144 1.398 4.143.823.998 2.645 3.095 2.645 4.417 0 2.097-3.295 3.37-4.992 3.37-2.321 0-3.22-1.423-3.22-2.396 0-1.398.924-2.921 1.473-3.944.549-1.023-.35-2.322-.35-2.322l-1.198.55-2.421-1.374s.03-2.178-.068-2.228c-.45.1-.98.78-.98 1.88 0 1.5 1.596 1.739 2.436 2.061 1.136.438 1.132 1.508.384 2.53-.748 1.024-1.298 3.246-1.298 4.344 0 2.196 2.846 3.22 4.767 3.22 2.97 0 4.992-1.548 4.992-1.548s.274 1.723.274 2.571c0 .849-.773 1.648-2.096 1.648s-2.371-.598-2.371-.598-2.696-1.748-3.82-1.748c-1.971 0-2.67 2.022-2.67 2.472 0 .45.324 1.472.598 1.847.275.375 1.698.95 2.073.849.374-.1.524-.924.45-1.198-.076-.275-1.323-1.048-1.323-1.423s.216-.7.89-.7c.673 0 1.46.593 2.682 1.742.89.837 3.164 1.844 4.59 1.778.948-.043 2.758-.477 3.145-1.971.221-.857-.1-3.37.124-2.72.225.648.765 1.809 2.357 2.873.548.365 3.103 1.067 4.706.472 1.998-.375 3.096-3.145 3.12-3.17 2.123 0 3.546-.8 5.018-1.573 1.473-.774 1.448-3.42 1.448-4.843 0-1.847-2.72-3.144-3.794-3.144l.003-.004Zm-13.18 8.488s-.499-.749-.499-1.548c0-.8.175-1.522 1.473-2.022-.026.026-1.182 1.133-.974 3.57Zm5.318 2.47c-1.947 0-3.02-1.922-3.02-3.17 0-1.247.649-2.096.649-2.096s.03.632.03.757c0 .124.341 1.24 1.115 2.039.774.799 3.896.973 3.822 1.048-.5.998-1.923 1.423-2.596 1.423Zm2.597-3.862a4.908 4.908 0 0 1-2.13-1.292c1.498-.093 2.228 1.33 2.13 1.292Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#99B3D1\",\n    d: \"M11.512 13.05c.876-.953 1.107-2.166.516-2.71-.298-.274-.75-.323-1.237-.184-1.135.804-1.831 1.85-2.257 2.835.01.322.11.605.323.8.59.543 1.78.212 2.656-.74l-.001-.002ZM14.802 11.476c.67-.386 1.015-1.043.77-1.466-.244-.424-.986-.454-1.656-.067-.67.386-1.014 1.043-.77 1.467.244.423.986.453 1.656.066ZM8.914 34.851c.24-.44-.133-1.103-.831-1.48s-1.455-.324-1.694.116c-.095.174-.09.383-.012.595.427.412 1.206.806 2.012 1.11.235-.047.426-.158.524-.34h.001ZM15.145 27.415c-.326-.193-.763-.036-1.102.348a6.483 6.483 0 0 0-.353 1.824c.06.103.136.19.233.247.424.251 1.04-.088 1.377-.755.337-.668.268-1.413-.155-1.665ZM15.311 30.244c-.234.463-.185.978.108 1.152.286.17.698-.05.935-.492a3.355 3.355 0 0 1-.37-1.232c-.244.034-.507.244-.673.572Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#8597A9\",\n    d: \"M21.593 28.782A4.824 4.824 0 0 1 20 27.968c.153.592.424 1.969-.003 2.975.857.171 1.634.239 1.594.28-.034.067-.082.126-.124.189.16-.135.67-.62.649-1.338-.015-.508-.237-.978-.527-1.345.015.038.016.058.003.053h.001ZM23.6 19.116c-.587.849-1.834 2.122-1.834 2.122s-2.572 1.498-3.545 3.47c0 0 1.29-.788 3.543-.392l1.15-1.055s3.52-3.42 3.52-6.615c0-1.597-.924-3.258-1.848-4.518-.024.666-.101 1.497-.324 2.047.026.45.4 3.294-.662 4.942ZM4.61 22.497c.204-.396.423-.695.6-1.01.738-1.304-.367-2.396-.367-2.396l-1.198.549-1.51-.856c-.099.242-.203.516-.237.683-.01.05.005.119.039.196.38.12.552.322.815.414.596.21.992.829.77 1.562.285.323.724.616 1.088.857v.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#101111\",\n    d: \"M17.942 25.473s.078-1.054.988-2.101c.91-1.048 1.385-1.329 2.32-2.144.937-.814 2.434-2.041 2.774-4.21.23-1.299.127-2.813-.548-3.895-.674-1.082-2.31-3.108-5.443-3.832-3.132-.725-5.566.287-5.566.287s-4.063 1.464-4.372 6.117c-.07 1.34.264 2.144.264 2.144s.435 1.37 1.043 2.124c.607.753 1.318 1.631 1.318 1.631s1.303 1.327 1.303 2.878c0 .618-.242 1.199-.64 1.61-.395.41-1.551 1.977-4.547 1.977-1.82 0-3.29-1.158-3.29-2.47 0-1.076.342-1.996.756-2.7.415-.705 1.118-1.562 1.118-2.384 0-.553-.562-1.334-.562-1.334l.11-.103s.568.652.568 1.425c0 .478-.088.772-.203 1.01-.115.237-1.439 2.269-1.439 3.708 0 .804.512 2.38 2.94 2.38 1.8 0 2.754-.547 3.87-1.375.635-.49 1.112-1.157 1.112-1.769 0-.61-.2-1.123-.633-1.728a17.442 17.442 0 0 0-1.303-1.642c-.575-.65-2.287-2.183-2.287-5.547 0-1.593 1.398-7.001 8.43-7.001 1.547 0 8.667 1.316 8.667 7.437 0 1.78-.983 4.029-2.497 5.277-1.515 1.248-3.727 2.691-4.254 4.23h.003Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#121313\",\n    d: \"M19.585 26.438s-.559.158-.42.098c.212-.092.843-.539 1.204-.905.716-.728 5.784-4.99 5.784-8.49 0-3.252-2.208-5.332-2.208-5.332s-.326-.278-1.286-1.41c-.96-1.13-1.232-1.487-1.341-1.87-.207-.355-.2-1.491.513-1.988.712-.498.853-.449.853-.449l.018.17s-.994.426-1.286 1.332c-.06.298-.12.91.592 1.619l1.937 1.928s2.728 2.261 2.728 6.002c0 1.152-.669 2.998-1.752 4.228-1.083 1.229-3.566 3.887-5.335 5.067ZM19.082 9.328s-.616-1.32-.277-2.542c.336-1.03 1.29-1.346 2.423-1.474.177.036.198.12.198.12s-1.675.142-2.282 1.742c-.191.58.047 1.788.256 2.237.04.067-.318-.083-.318-.083ZM14.625 19.985c-.67-.52-1.672-.315-2.158.3-.54.686-.485 1.682.182 2.17.504.368 1.698.287 2.158-.3.605-.774.471-1.664-.182-2.17Zm-.01 2.018c-.409.522-1.463.58-1.92.266-.492-.338-.65-1.325-.165-1.933a1.43 1.43 0 0 1 1.016-.537c-.06.073-.096.126-.096.225 0 .238.201.432.452.432.25 0 .452-.157.452-.396 0-.02-.004-.04-.007-.058.036.023.072.04.106.068.575.46.702 1.243.164 1.933h-.002Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M14.452 20.07c-.034-.027-.07-.045-.106-.068.003.02.007.038.007.058a.442.442 0 0 1-.452.432.442.442 0 0 1-.452-.432c0-.1.037-.19.097-.262a1.431 1.431 0 0 0-1.016.537c-.486.607-.328 1.594.163 1.933.458.315 1.512.256 1.921-.267.54-.688.412-1.472-.163-1.932Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#121313\",\n    d: \"M17.796 20.463c-.67-.519-1.672-.315-2.158.3-.54.686-.486 1.682.182 2.17.504.368 1.698.287 2.158-.3.605-.773.471-1.664-.182-2.17Zm-.01 2.018c-.409.523-1.463.581-1.92.267-.492-.338-.65-1.325-.165-1.933.263-.33.638-.51 1.016-.538-.06.073-.096.126-.096.225 0 .24.201.433.452.433.25 0 .452-.157.452-.397a.31.31 0 0 0-.007-.058c.035.024.072.04.106.069.575.46.702 1.243.164 1.932h-.002Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M17.623 20.549c-.034-.027-.07-.046-.106-.069.003.02.007.038.007.058a.442.442 0 0 1-.452.433.442.442 0 0 1-.453-.433c0-.099.037-.189.097-.262a1.43 1.43 0 0 0-1.016.538c-.485.606-.327 1.593.164 1.933.458.314 1.512.256 1.921-.267.54-.688.412-1.473-.163-1.933v.002Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#151516\",\n    d: \"m1.188 18.105-.14-2.05s-.063-.258.24-.357l2.954-.97s.508-.108.92.031c.412.14 1.716.688 1.716.688s.318.106.318.45c0 .343-.023 1.655-.023 1.655s.002.517-.208.634c-.21.116-3.046 1.558-3.046 1.558s-.47.11-.761-.081c-.292-.192-1.683-1.01-1.683-1.01s-.286-.165-.286-.548h-.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0F5983\",\n    d: \"m1.29 16.3.095 1.761s.007.265.424.52 1.557.9 1.557.9.122.067.122-.237V17.58s.077-.36-.122-.437c-.2-.076-1.909-.93-1.909-.93s-.167-.15-.167.087v.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#29B4FA\",\n    d: \"M3.679 19.122v-1.586s-.043-.308.268-.42c.312-.113 2.653-1.103 2.653-1.103s.278-.13.278.188v1.348s-.005.26-.23.393-2.68 1.413-2.68 1.413-.288.091-.288-.234l-.001.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#72CCFA\",\n    d: \"m1.632 16.003 1.824.935s.193.119.544-.028l2.548-1.062s.243-.135.019-.209c-.224-.073-1.699-.663-1.699-.663s-.363-.085-.646 0c-.282.086-2.452.788-2.452.788s-.409.097-.139.239h.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#05446D\",\n    d: \"M3.252 19.219a.093.093 0 0 1-.035-.007l-.043-.017c-.056-.022-.1-.1-.103-.181l-.048-1.647c-.002-.054.016-.098.048-.121a.085.085 0 0 1 .083-.01l.044.018c.056.022.1.1.102.18l.049 1.648c.001.054-.016.098-.049.12a.088.088 0 0 1-.05.017h.002Zm.002-.098-.018.046.018-.046Zm-.131-1.79v.035l.048 1.646c.001.048.027.087.04.093l.041.016v-.035l-.048-1.646c-.002-.048-.027-.087-.04-.093l-.041-.016ZM2.874 18.996a.091.091 0 0 1-.035-.007l-.043-.017c-.057-.022-.1-.099-.103-.18l-.048-1.648c-.002-.054.016-.098.048-.12a.087.087 0 0 1 .084-.01l.044.017c.057.022.1.1.103.181l.048 1.647c.001.054-.016.098-.048.121a.085.085 0 0 1-.05.016Zm.002-.098-.018.047.018-.047Zm-.131-1.79v.035l.048 1.647c.002.048.027.086.04.092l.041.016v-.034l-.048-1.647c-.002-.047-.027-.086-.04-.092l-.041-.016ZM2.479 18.791a.093.093 0 0 1-.035-.007l-.044-.017c-.056-.022-.1-.1-.102-.181l-.049-1.647c-.001-.054.016-.098.049-.121a.088.088 0 0 1 .084-.01l.044.018c.056.022.1.1.102.181l.049 1.647c0 .054-.017.098-.049.121a.088.088 0 0 1-.05.016Zm0-.098-.017.046.019-.046H2.48Zm-.13-1.79s-.002.015 0 .034l.048 1.646c0 .048.026.087.04.093l.04.016s.002-.015 0-.035l-.048-1.646c-.001-.049-.027-.087-.04-.093l-.04-.016v.001ZM2.083 18.528a.083.083 0 0 1-.034-.007l-.044-.017c-.056-.022-.1-.098-.102-.178l-.047-1.615c-.002-.053.016-.096.048-.119a.09.09 0 0 1 .084-.01l.044.018c.056.022.1.098.103.179l.047 1.615c.001.053-.016.096-.047.12a.087.087 0 0 1-.05.015h-.002Zm0-.098-.016.046.018-.046h-.001Zm-.13-1.755v.032l.048 1.616c.001.046.026.084.039.089l.042.016v-.032l-.048-1.616c0-.046-.026-.084-.04-.089l-.04-.016ZM1.689 18.308a.112.112 0 0 1-.033-.006l-.044-.016c-.057-.02-.1-.097-.103-.175l-.046-1.592c-.001-.052.016-.094.047-.117a.09.09 0 0 1 .084-.01l.044.017c.057.02.1.097.103.176l.046 1.59c.001.052-.016.095-.047.118a.088.088 0 0 1-.051.016v-.001Zm.001-.098-.017.046.017-.046Zm-.128-1.726s-.002.013-.001.03l.046 1.592c.001.045.027.082.04.087l.04.016s.002-.014 0-.031l-.045-1.59c-.001-.046-.027-.082-.04-.088l-.041-.015.001-.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#101111\",\n    d: \"M27.797 23.567c-.609-.427-.915-.528-1.476-.528-.562 0-.783.43-.783.43s.655-.257 1.057-.257c.403 0 1.997.824 1.997 2.519 0 2.537-2.072 3.484-3.76 3.484-.318 0-.62-.012-.906-.032l.138.384c.25.028.493.044.715.044 2.015 0 3.077-1.054 3.51-1.6.432-.546.627-1.53.627-2.26 0-.73-.511-1.755-1.119-2.182v-.002ZM21.721 29.055l-.14-.308c-.953-.318-1.617-.754-2.077-1.172.01.031.031.078.082.14a.7.7 0 0 1 .126.303c.202.194.395.356.545.446.383.205.898.41 1.464.59v.002ZM18.556 26.265c-.054.097.007.281.134.503l.088-.057c-.163-.267-.222-.446-.222-.446Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#101111\",\n    d: \"M14.745 26.62s-1.283 1.112-1.283 2.863c0 1.752.746 2.79.944 3.006.199.215 1.856 2.289 5.3 2.289 1.246 0 4.606-1.044 4.606-4.302 0-1.91-1.685-4.07-4.915-4.07-.889.041-1.468.728-1.468 1.233 0 .758.448 1.236 1.01 1.236.502 0 .832-.223.832-.817 0-.3-.243-.47-.305-.51-.06-.041.244.324.174.657-.07.332-.225.575-.684.575-.314 0-.946-.424-.824-1.117.084-.423.468-.928 1.242-1.02 1.36-.161 4.58.842 4.58 3.807 0 2.085-1.918 4.2-4.249 4.2-2.33 0-3.637-1.044-3.637-1.044s-2.234-1.82-2.234-4.1c0-1.07.141-1.893.9-2.872\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#101111\",\n    d: \"M16.676 27.48s-.603.685-.603 1.879c0 1.193.87 3.106 2.775 3.106 1.257 0 2.966-.943 2.966-2.306 0-1.244-1.009-2.608-2.348-2.608-.03-.031.039-.07.123-.07.084 0 .914.007 1.677.666.762.658.972 1.305.972 1.984 0 .68-.16 1.305-.966 1.91-.804.606-1.34.862-2.424.862-1.082 0-2.037-.968-2.037-.968s-.926-.861-.926-2.396c0-.556.445-2.015.792-2.059h-.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#101111\",\n    d: \"M18.415 30.296c-.693-.39-1.641-1.062-1.765-3.53 0 0-.51 2.51 1.336 3.827.705.527 1.494.8 3.409.908l.232-.325c-1.15-.157-2.377-.428-3.21-.88h-.002ZM30.925 26.408c0-1.16.041-4.812-4.253-4.812-1.461 0-2.69 1.295-2.69 2.25.075 0 .168-.087.168-.087s.101-.787.742-1.279c.644-.495.95-.643 1.78-.643.829 0 3.821.469 3.821 4.191 0 1.987-.957 3.526-2.393 4.219-1.176.567-2.323.96-4.002 1.026l-.082.285c3.882-.018 6.91-2.177 6.91-5.15h-.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#090D0F\",\n    d: \"M1.154 16.142s-.531-.054-.834.496c-.302.55-.438 1.272-.196 1.943.243.671.742.9 1.254 1.08.512.18 2.163.665 2.163 1.57 0 .461-.7 1.583-1.057 2.134-.358.55-.969 2.015-.969 3.688 0 1.494 1.623 3.405 4.815 3.405 1.6 0 3.144-.46 5.008-1.509.225-.159.075-.561.075-.561s-2.11 1.577-5.094 1.577c-2.077 0-4.392-1.162-4.392-2.97 0-1.808.341-2.886.753-3.606.412-.72.977-1.48.977-2.172 0-.691-.672-1.34-1.172-1.544-.5-.204-1.33-.403-1.711-.665-.38-.262-.456-.932-.456-1.17 0-.24-.017-1.04.521-1.507.126-.083.315-.19.315-.19v.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#101111\",\n    d: \"M14.986 25.233s-.326-.15-.865-.15c-.76 0-2.956 1.023-2.956 2.494 0 1.472 1.408 4.966-1.54 4.966-1.795 0-3.427-1.22-3.427-1.22s-1.388-1.07-2.743-1.07S.6 31.415.6 33.023c0 1.61 1.425 2.857 2.37 2.857.946 0 1.098-.688 1.098-.688s.236-.587-.122-.896c-.357-.31-1.204-.736-1.204-1.365 0-.628.714-.596.714-.596s.653-.04 1.387.596c.735.637 3.005 3.15 5.795 3.15 1.956 0 2.72-.841 3.055-1.329.334-.488.962-1.395.385-3.087-.64-1.877-1.737-3.677.66-5.03 0 .013-1.07.232-1.583 1.461-.305.774.042 1.925.259 2.784.216.859.678 2.42-.065 3.4-.566.747-1.373 1.312-2.689 1.312s-2.54-.564-2.54-.564-1.031-.377-1.876-1.088c-.844-.71-1.514-1.266-1.514-1.266s-.603-.485-1.345-.485c-.743 0-.924.505-.924.717 0 .212.11.672.429.9.32.229.588.435.712.585.125.15.244.443.081.7-.162.255-.27.41-.68.41-.41 0-.789-.244-1.062-.462-.274-.218-.75-.785-.87-1.259-.122-.474-.102-.756-.102-.756s.042-.642.33-1.116c.287-.474.957-1.278 2.157-1.278.489 0 1.017.175 1.798.645.78.47 1.788 1.112 1.788 1.112s.946.637 2.525.637c1.03 0 1.716-.38 2.127-.953.412-.573.314-1.603.064-3.066-.25-1.464-.414-1.933.436-2.837.792-.843 1.904-1.108 2.793-.935h-.002Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0E1011\",\n    d: \"m15.683 34.62.07 1.566s-.056.399.416.697c.473.299 3.518 2.317 3.518 2.317s.356.238.857-.061c.5-.299 2.348-1.413 2.348-1.413s.226-.142.251-.517c.026-.376.088-1.567.088-1.567s.031-.156-.247-.344c-.278-.188-4.065-1.85-4.065-1.85s-.375-.164-.782-.028c-.407.136-2.065.719-2.065.719s-.404.187-.391.48h.002Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#72CCFA\",\n    d: \"m16.254 34.515 3.683 1.967s.223.154.568 0 1.9-.988 1.9-.988.255-.083-.11-.253c-.366-.168-3.474-1.648-3.474-1.648s-.168-.137-.493-.044c-.326.094-2.037.673-2.037.673s-.412.092-.037.293Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#29B4FA\",\n    d: \"m15.889 34.73.107 1.43s-.02.263.403.49c.424.225 3.472 2.299 3.472 2.299s.23.107.23-.282c0-.388-.025-1.511-.025-1.511s.034-.266-.186-.392l-3.766-2.121s-.235-.132-.235.086Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0F5983\",\n    d: \"m20.334 38.667-.019-1.618s-.047-.23.196-.351c.245-.123 2.247-1.104 2.247-1.104s.18-.11.178.173c0 .284-.043 1.444-.043 1.444s-.03.177-.187.276l-2.143 1.323s-.23.154-.23-.142Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#05446D\",\n    d: \"M20.662 38.552a.099.099 0 0 1-.059-.019c-.031-.021-.048-.06-.048-.106l.002-1.5c0-.077.048-.152.113-.174l.05-.018a.11.11 0 0 1 .098.011c.03.022.048.061.048.106l-.002 1.5c0 .078-.049.153-.113.175l-.052.018a.11.11 0 0 1-.038.007Zm.1-1.725-.06.018c-.022.007-.047.045-.047.082l-.002 1.5c0 .015.004.025.007.027l.058-.019c.022-.008.048-.043.048-.081l.002-1.5c0-.016-.005-.025-.007-.027ZM21.152 38.196a.105.105 0 0 1-.061-.02.122.122 0 0 1-.046-.1l.007-1.37c0-.07.05-.142.114-.163l.052-.016a.109.109 0 0 1 .098.014.12.12 0 0 1 .046.098l-.007 1.37c0 .071-.05.143-.114.164l-.052.016a.139.139 0 0 1-.037.005v.002Zm.106-1.576-.062.018c-.022.007-.046.038-.046.07l-.007 1.37c0 .012.003.017.006.018l.062-.017c.022-.007.046-.038.046-.07l.007-1.37c0-.012-.003-.017-.006-.019ZM21.617 37.867a.102.102 0 0 1-.064-.02.11.11 0 0 1-.042-.094l.01-1.277c0-.068.052-.136.116-.155l.051-.017a.11.11 0 0 1 .1.015c.028.021.043.055.043.093l-.01 1.276a.172.172 0 0 1-.115.156l-.052.015a.127.127 0 0 1-.036.006l-.001.002Zm.107-1.468-.008.001-.05.016a.073.073 0 0 0-.047.063l-.01 1.276c0 .008.002.013.003.014h.013l.052-.015a.071.071 0 0 0 .046-.062l.01-1.277c0-.007 0-.011-.003-.014h-.005V36.4ZM22.079 37.606a.104.104 0 0 1-.064-.02.11.11 0 0 1-.042-.094l.01-1.276c0-.068.052-.136.115-.156l.052-.015a.114.114 0 0 1 .1.015.11.11 0 0 1 .042.093l-.01 1.277a.172.172 0 0 1-.116.156l-.051.015a.128.128 0 0 1-.036.005Zm.107-1.468s-.005 0-.008.002l-.052.015a.071.071 0 0 0-.046.062l-.01 1.276c0 .008.002.013.003.014h.013l.052-.016c.024-.007.045-.037.046-.062l.01-1.277c0-.008-.002-.012-.003-.014h-.005ZM22.517 37.368a.105.105 0 0 1-.064-.021.112.112 0 0 1-.042-.09l.012-1.235a.17.17 0 0 1 .116-.152l.052-.015a.113.113 0 0 1 .1.016c.027.02.043.053.042.09l-.012 1.236c0 .068-.05.133-.116.152l-.052.015a.126.126 0 0 1-.036.005v-.001Zm.106-1.421h-.004l-.052.015c-.023.007-.045.035-.045.059l-.012 1.235c.005.013.01.013.016.01l.052-.015a.072.072 0 0 0 .047-.059l.011-1.235c-.003-.009-.007-.011-.011-.011l-.002.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0E1011\",\n    d: \"m26.434 23.134-2.906.688s-.415.01-.399.573c.016.563.084 1.738.084 1.738s.09.523.594.703c.506.18 2.19.925 2.19.925s.216.177.535.062c.321-.117 2.06-.803 2.06-.803s.4-.866.058-1.936c-.344-1.069-1.198-1.951-2.216-1.951v.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#29B4FA\",\n    d: \"M26.393 27.334V25.5s-.029-.267.182-.338c.211-.07 1.497-.52 1.497-.52s.17-.117.286.091c.115.208.233.612.233 1.03 0 .416-.107.86-.107.86s-.049.163-.19.216c-.143.053-1.706.662-1.706.662s-.194.126-.194-.167h-.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0F5983\",\n    d: \"M26.213 25.537v1.701s.038.283-.093.232a316.13 316.13 0 0 1-2.387-1.063s-.222-.145-.24-.518c-.019-.374-.097-1.472-.097-1.472s-.016-.218.149-.133c.165.083 2.261.865 2.384.906.124.042.284.17.284.348Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#72CCFA\",\n    d: \"m23.634 24.12 2.262.8s.217.204.71.023a61.772 61.772 0 0 1 1.404-.483s.205-.046.086-.196c-.118-.15-.403-.57-1.246-.963-.199-.083-.474-.004-.67.049-.196.053-2.496.598-2.496.598s-.232.108-.05.172Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#121313\",\n    d: \"M18.993 3.577s.26-2.1.302-2.34c.043-.238.22-.387.647-.439.393-.048 2.573-.333 2.573-.333s.498-.127 1.034.16c.535.287 3.027 1.632 3.216 1.76.19.13.361.16.285.777a62.834 62.834 0 0 1-.296 1.984s.052.321-.344.433c-.395.112-3.171.827-3.171.827s-.354.135-.877-.164c-.522-.298-3.059-1.903-3.187-1.99-.128-.086-.25-.25-.18-.675h-.002Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#090D0F\",\n    d: \"M26.793 4.271s.674-.355.674-1.293c0-.787-.564-2.747-2.032-2.747-1.216 0-1.55.75-1.55.75l-.179-.152S24.18 0 25.436 0c1.257 0 2.342 1.678 2.342 3.042 0 1.054-1.057 1.739-1.057 1.739l.074-.51-.002.001Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#29B4FA\",\n    d: \"m19.237 3.717.255-2.254s-.013-.27.174-.15c.186.118 3.172 1.948 3.172 1.948s.216.163.14.59c-.074.425-.223 1.98-.223 1.98s.018.224-.23.088c-.249-.136-3.19-1.876-3.19-1.876s-.127-.078-.098-.326Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0F5983\",\n    d: \"m22.999 5.98.24-2.374s.048-.2.24-.227c.19-.028 3.228-.571 3.228-.571s.204-.014.15.314l-.338 1.98s-.075.219-.275.305c-.2.087-2.962.723-2.962.723s-.297.109-.286-.15H23Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#72CCFA\",\n    d: \"m19.976 1.162 3.052 1.894s.145.156.623.076c.477-.08 2.809-.497 2.809-.497s.148 0 .084-.066C26.479 2.504 23.39.857 23.39.857s-.26-.19-.8-.14c-.54.048-2.58.287-2.58.287s-.22.045-.035.16l.001-.002Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#05446D\",\n    d: \"M25.869 27.127a.108.108 0 0 1-.033-.004l-.048-.015c-.061-.02-.11-.092-.114-.17l-.075-1.52c-.003-.048.014-.09.044-.113a.1.1 0 0 1 .09-.015l.048.015c.061.02.11.093.114.17l.075 1.521c.003.047-.014.089-.044.112a.097.097 0 0 1-.058.02Zm-.003-.099h.003s.004-.009.004-.029l-.075-1.52c-.002-.041-.028-.076-.046-.081l-.048-.015s-.007.008-.007.027l.075 1.521c.002.042.029.075.046.081l.048.015v.001ZM25.372 26.87a.099.099 0 0 1-.031-.004l-.049-.014c-.062-.019-.112-.088-.115-.162l-.07-1.42a.126.126 0 0 1 .043-.106.102.102 0 0 1 .091-.017l.049.014c.062.019.112.088.115.162l.07 1.42a.126.126 0 0 1-.043.107.095.095 0 0 1-.06.02Zm-.158-1.628s-.008.007-.008.023l.069 1.42c.001.034.025.067.045.072l.048.015h.004s.004-.008.004-.023l-.069-1.42c-.001-.034-.025-.066-.045-.072l-.048-.014v-.001ZM24.886 26.68a.096.096 0 0 1-.03-.005l-.05-.015c-.062-.018-.111-.087-.114-.161l-.07-1.42a.125.125 0 0 1 .043-.107.102.102 0 0 1 .091-.016l.049.015c.062.018.111.088.115.161l.069 1.421a.123.123 0 0 1-.043.106.095.095 0 0 1-.06.021Zm-.003-.1h.003s.006 0 .005-.022l-.07-1.42c0-.034-.025-.067-.044-.072l-.049-.015s-.008.007-.008.023l.07 1.42c0 .034.025.066.044.072l.049.014ZM24.404 26.475a.096.096 0 0 1-.031-.005l-.049-.014c-.062-.018-.112-.087-.115-.161l-.07-1.42a.125.125 0 0 1 .044-.107.102.102 0 0 1 .09-.016l.05.014c.061.018.11.087.114.161l.07 1.42a.126.126 0 0 1-.043.107.095.095 0 0 1-.06.02Zm-.158-1.629s-.008.007-.008.023l.07 1.421c0 .034.024.066.044.072l.049.014h.003s.005-.007.003-.024l-.069-1.42c0-.034-.025-.066-.045-.072l-.048-.014h.001ZM23.913 26.265a.085.085 0 0 1-.03-.005l-.048-.014c-.062-.017-.112-.085-.115-.158l-.068-1.381a.122.122 0 0 1 .041-.104.105.105 0 0 1 .092-.017l.049.014c.062.017.112.085.115.158l.068 1.381a.121.121 0 0 1-.041.104.098.098 0 0 1-.061.02l-.002.002Zm-.155-1.584s-.01.008-.008.021l.068 1.382c0 .032.025.063.043.068l.049.014h.005s.004-.007.003-.021l-.068-1.382c-.001-.032-.024-.063-.044-.068l-.048-.014ZM23.496 5.818h-.083a.162.162 0 0 1-.116-.056.17.17 0 0 1-.037-.132l.265-1.933a.198.198 0 0 1 .189-.168h.078a.162.162 0 0 1 .115.055.17.17 0 0 1 .037.134L23.68 5.65a.194.194 0 0 1-.185.168v-.001Zm.215-2.191c-.041 0-.081.038-.087.083l-.264 1.933a.073.073 0 0 0 .014.056c.01.013.025.019.042.02h.08c.043 0 .083-.036.089-.082l.264-1.933a.073.073 0 0 0-.014-.056.057.057 0 0 0-.043-.02h-.08v-.001ZM24.158 5.691h-.004l-.078-.002a.15.15 0 0 1-.116-.055.17.17 0 0 1-.036-.132l.264-1.933a.193.193 0 0 1 .185-.168h.004l.078.002c.045 0 .086.02.114.054a.17.17 0 0 1 .037.133l-.264 1.933a.193.193 0 0 1-.185.168Zm-.001-.098c.042 0 .083-.038.088-.083l.264-1.933a.069.069 0 0 0-.013-.055.058.058 0 0 0-.043-.02l-.078-.002h-.002c-.041 0-.082.038-.087.083l-.264 1.933a.069.069 0 0 0 .014.055c.01.013.025.018.042.02l.079.002ZM24.821 5.554h-.083a.162.162 0 0 1-.115-.056.171.171 0 0 1-.037-.133l.264-1.933a.193.193 0 0 1 .185-.169h.084a.162.162 0 0 1 .115.056.17.17 0 0 1 .037.134l-.264 1.932a.193.193 0 0 1-.186.169Zm.216-2.191c-.042 0-.082.038-.088.083l-.264 1.932a.073.073 0 0 0 .014.057c.01.013.025.018.042.02h.081c.042 0 .082-.036.088-.082l.264-1.933a.073.073 0 0 0-.014-.057.057.057 0 0 0-.043-.02h-.08ZM25.431 5.404h-.083a.162.162 0 0 1-.115-.056.17.17 0 0 1-.037-.132l.264-1.933a.194.194 0 0 1 .186-.168h.082a.162.162 0 0 1 .115.055.17.17 0 0 1 .037.133l-.264 1.932a.192.192 0 0 1-.185.169Zm.216-2.191c-.041 0-.082.038-.088.083l-.264 1.933a.072.072 0 0 0 .014.056c.01.013.025.018.043.02h.08c.04 0 .081-.036.087-.081l.264-1.933a.073.073 0 0 0-.014-.056.058.058 0 0 0-.042-.02h-.08v-.002ZM26.082 5.282h-.081a.162.162 0 0 1-.116-.056.17.17 0 0 1-.037-.132l.265-1.933a.194.194 0 0 1 .185-.169h.082a.162.162 0 0 1 .115.056.17.17 0 0 1 .037.132l-.264 1.933a.194.194 0 0 1-.186.169Zm.216-2.191c-.041 0-.082.038-.087.083l-.264 1.932a.073.073 0 0 0 .013.057c.01.012.026.018.043.02h.08c.041 0 .081-.036.087-.082l.264-1.933a.073.073 0 0 0-.014-.057.058.058 0 0 0-.042-.02h-.08Z\"\n  }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"docker-compose_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M0 0h30.925v39.29H0z\"\n  })))));\n};\nexport default SvgDockerCompose;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDockerIcon = function SvgDockerIcon(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 34 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    d: \"M19.033 9.676h3.194Zm-3.802 0h3.194Zm-3.726 0h3.194Zm-3.727 0h3.118Zm-3.802 0H7.17Zm3.802-3.498h3.118Zm3.727 0h3.194Zm3.726 0h3.194Zm0-3.498h3.194Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeWidth: 2.887,\n    d: \"M19.033 9.676h3.194m-6.996 0h3.194m-6.92 0h3.194m-6.92 0h3.117m-6.92 0H7.17m.608-3.498h3.118m.609 0h3.194m.532 0h3.194M15.23 2.68h3.194\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    d: \"M32.417 9.828s-1.369-1.293-4.182-.836c-.305-2.206-2.662-3.498-2.662-3.498s-2.205 2.661-.608 5.627c-.456.228-1.217.532-2.358.532H1.695c-.38 1.445-.38 11.027 10.114 11.027 7.528 0 13.156-3.498 15.817-9.886 3.955.304 4.791-2.966 4.791-2.966Z\"\n  })));\n};\nexport default SvgDockerIcon;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDocker = function SvgDocker(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0091E2\",\n    d: \"M35.492 15.925c-.1-.085-.997-.782-2.925-.782a9.03 9.03 0 0 0-1.513.137c-.366-2.6-2.477-3.856-2.56-3.924l-.515-.306-.333.493a7.35 7.35 0 0 0-.913 2.175c-.35 1.478-.134 2.87.598 4.06-.881.509-2.31.628-2.61.645H1.116c-.615 0-1.114.51-1.114 1.138a17.526 17.526 0 0 0 1.03 6.2c.815 2.175 2.028 3.788 3.591 4.774 1.762 1.104 4.638 1.732 7.88 1.732 1.462 0 2.925-.136 4.371-.408a17.806 17.806 0 0 0 5.719-2.123 15.735 15.735 0 0 0 3.89-3.26c1.878-2.158 2.992-4.57 3.807-6.71h.332c2.045 0 3.308-.833 4.007-1.546a4.53 4.53 0 0 0 1.063-1.597l.15-.442-.349-.255v-.001Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0091E2\",\n    d: \"M3.31 17.725h3.157c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289H3.31a.283.283 0 0 0-.283.289v2.887c.017.17.134.29.283.29ZM7.666 17.725h3.158c.15 0 .282-.119.282-.29V14.55a.283.283 0 0 0-.282-.289H7.666a.283.283 0 0 0-.283.289v2.887c.016.17.133.29.283.29ZM12.104 17.725h3.158c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289h-3.158a.283.283 0 0 0-.283.289v2.887c0 .17.117.29.283.29ZM16.475 17.725h3.159c.15 0 .282-.119.282-.29V14.55a.283.283 0 0 0-.282-.289h-3.159a.283.283 0 0 0-.283.289v2.887c0 .17.134.29.283.29ZM7.666 13.597h3.158c.15 0 .282-.136.282-.289v-2.887a.284.284 0 0 0-.282-.29H7.666a.284.284 0 0 0-.283.29v2.887c.016.153.133.29.283.29ZM12.104 13.597h3.158c.15 0 .283-.136.283-.289v-2.887a.284.284 0 0 0-.283-.29h-3.158a.283.283 0 0 0-.283.29v2.887c0 .153.117.29.283.29ZM16.475 13.597h3.159c.15 0 .282-.136.282-.289v-2.887a.295.295 0 0 0-.282-.29h-3.159a.283.283 0 0 0-.283.29v2.887c0 .153.134.29.283.29ZM16.475 9.453h3.159c.15 0 .282-.119.282-.29V6.277a.295.295 0 0 0-.282-.289h-3.159a.284.284 0 0 0-.283.29v2.887c0 .153.134.289.283.289ZM20.883 17.725h3.158c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289h-3.158a.283.283 0 0 0-.283.289v2.887c.016.17.133.29.283.29Z\"\n  })));\n};\nexport default SvgDocker;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgEcr = function SvgEcr(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 37 41\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#ecr_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#ecr_svg__b)\",\n    d: \"M13.249 34.7a.697.697 0 0 1-.356-.097L1.345 27.77A.707.707 0 0 1 1 27.164V12.647c0-.252.135-.486.353-.612l12.625-7.243a.698.698 0 0 1 .7.004l11.328 6.656a.7.7 0 0 1 .348.608c0 .254-.13.48-.348.608l-12.057 7.07v14.258a.706.706 0 0 1-.7.704ZM1.845 27.08l11.259 6.661V19.655c0-.25.133-.483.348-.608l11.914-6.987-11.042-6.488-12.479 7.16V27.08Z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#ecr_svg__c)\",\n    d: \"M15.767 34.703a.702.702 0 0 1-.7-.704v-6.152c0-.248.132-.481.346-.607l5.63-3.316v-6.788c0-.248.132-.48.344-.607l5.535-3.281a.698.698 0 0 1 1.055.606v13.43c0 .25-.133.483-.348.609l-11.511 6.715a.697.697 0 0 1-.352.096v-.001Zm.145-6.773v5.816L27.133 27.2V14.11l-5.245 3.11v6.788a.707.707 0 0 1-.347.608l-5.63 3.315Z\"\n  }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"ecr_svg__b\",\n    x1: 1.427,\n    x2: 18.968,\n    y1: 19.7,\n    y2: 19.7,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#DF6B4A\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#E99B41\"\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"ecr_svg__c\",\n    x1: 15.791,\n    x2: 23.572,\n    y1: 23.927,\n    y2: 23.927,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#DF6B4A\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#E99B41\"\n  })), /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"ecr_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M1 4.7h27v30H1z\"\n  })))));\n};\nexport default SvgEcr;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGithub = function SvgGithub(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 1024 1024\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#1B1F23\",\n    fillRule: \"evenodd\",\n    d: \"M512 0C229.12 0 0 229.12 0 512c0 226.56 146.56 417.92 350.08 485.76 25.6 4.48 35.2-10.88 35.2-24.32 0-12.16-.64-52.48-.64-95.36-128.64 23.68-161.92-31.36-172.16-60.16-5.76-14.72-30.72-60.16-52.48-72.32-17.92-9.6-43.52-33.28-.64-33.92 40.32-.64 69.12 37.12 78.72 52.48 46.08 77.44 119.68 55.68 149.12 42.24 4.48-33.28 17.92-55.68 32.64-68.48-113.92-12.8-232.96-56.96-232.96-252.8 0-55.68 19.84-101.76 52.48-137.6-5.12-12.8-23.04-65.28 5.12-135.68 0 0 42.88-13.44 140.8 52.48 40.96-11.52 84.48-17.28 128-17.28 43.52 0 87.04 5.76 128 17.28 97.92-66.56 140.8-52.48 140.8-52.48 28.16 70.4 10.24 122.88 5.12 135.68 32.64 35.84 52.48 81.28 52.48 137.6 0 196.48-119.68 240-233.6 252.8 18.56 16 34.56 46.72 34.56 94.72 0 68.48-.64 123.52-.64 140.8 0 13.44 9.6 29.44 35.2 24.32C877.44 929.92 1024 737.92 1024 512 1024 229.12 794.88 0 512 0Z\",\n    clipRule: \"evenodd\"\n  })));\n};\nexport default SvgGithub;","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGitlab = function SvgGitlab(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#E24329\",\n    d: \"m13.8 32.71 5.08-15.638H8.719l5.081 15.638Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FC6D26\",\n    d: \"M13.8 32.71 8.718 17.072H1.597L13.799 32.71Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FCA326\",\n    d: \"M1.596 17.072.052 21.824c-.141.434.013.909.382 1.176l13.365 9.71L1.596 17.072Z\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#E24329\",\n    d: \"M1.597 17.072h7.121l-3.06-9.418a.526.526 0 0 0-1 0l-3.061 9.418Z\"\n  })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FC6D26\",\n    d: \"m13.8 32.71 5.082-15.638h7.122L13.8 32.71Z\"\n  })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FCA326\",\n    d: \"m26.004 17.072 1.544 4.752c.14.434-.014.909-.382 1.176L13.8 32.71l12.203-15.638Z\"\n  })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#E24329\",\n    d: \"M26.002 17.072h-7.121l3.06-9.418a.526.526 0 0 1 1 0l3.061 9.418Z\"\n  })));\n};\nexport default SvgGitlab;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGoogle = function SvgGoogle(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#4285F4\",\n    d: \"M23.745 12.27c0-.79-.07-1.54-.19-2.27h-11.3v4.51h6.47c-.29 1.48-1.14 2.73-2.4 3.58v3h3.86c2.26-2.09 3.56-5.17 3.56-8.82Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#34A853\",\n    d: \"M12.255 24c3.24 0 5.95-1.08 7.93-2.91l-3.86-3c-1.08.72-2.45 1.16-4.07 1.16-3.13 0-5.78-2.11-6.73-4.96h-3.98v3.09C3.515 21.3 7.565 24 12.255 24Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FBBC05\",\n    d: \"M5.525 14.29c-.25-.72-.38-1.49-.38-2.29s.14-1.57.38-2.29V6.62h-3.98a11.86 11.86 0 0 0 0 10.76l3.98-3.09Z\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#EA4335\",\n    d: \"M12.255 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C18.205 1.19 15.495 0 12.255 0c-4.69 0-8.74 2.7-10.71 6.62l3.98 3.09c.95-2.85 3.6-4.96 6.73-4.96Z\"\n  })));\n};\nexport default SvgGoogle;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHelm = function SvgHelm(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#helm_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeWidth: 2,\n    d: \"M2.034 12.08h19.932M4.059 7.913A9.317 9.317 0 0 1 5.437 6.11m0 0a9.253 9.253 0 0 1 6.635-2.792c2.561 0 4.88 1.037 6.559 2.714M5.437 6.11 3.87 4.542M5.437 6.11l.009.008m13.185-.086a9.32 9.32 0 0 1 1.455 1.881M18.63 6.032l1.556-1.557M18.63 6.032l-.007.006m-6.63-4.993v2.273m7.975 12.751a9.315 9.315 0 0 1-1.378 1.803m0 0a9.253 9.253 0 0 1-6.635 2.792 9.252 9.252 0 0 1-6.559-2.713m13.194-.079 1.567 1.568m-1.567-1.568-.009-.008m-13.185.087a9.318 9.318 0 0 1-1.455-1.882m1.455 1.882-1.556 1.556m1.556-1.556.007-.007m6.63 4.993v-2.273\"\n  }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"helm_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M24 0v24H0V0z\"\n  })))));\n};\nexport default SvgHelm;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKubernetes = function SvgKubernetes(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#326CE4\",\n    d: \"M13.849 32.493c-1.69 0-3.381-.014-5.07.007-.769.008-1.361-.264-1.843-.869C4.798 28.95 2.648 26.28.498 23.606c-.431-.536-.6-1.107-.436-1.809.79-3.376 1.55-6.76 2.322-10.142.154-.678.546-1.143 1.18-1.444a1799.08 1799.08 0 0 0 9.357-4.484c.652-.315 1.273-.295 1.92.015 3.096 1.493 6.195 2.983 9.3 4.457.658.312 1.057.789 1.217 1.488.77 3.383 1.536 6.766 2.32 10.145.15.648.014 1.196-.39 1.699-2.172 2.708-4.345 5.416-6.51 8.13-.467.587-1.055.843-1.794.837-1.71-.013-3.422-.004-5.133-.004l-.003-.001Zm-.435-21.608c.03.872-.075 1.005-.876 1.163-1.42.28-2.704.863-3.745 1.885-.392.386-.723.304-1.072.055-.27-.191-.487-.456-.73-.685-.166-.155-.322-.335-.512-.454-.28-.174-.572-.149-.776.132-.185.253-.139.526.07.743.143.147.326.257.5.371.259.174.537.321.787.509.507.381.554.64.253 1.185a7.636 7.636 0 0 0-.955 4.038c.027.783-.202 1.03-.988 1.12-.352.04-.707.061-1.056.12-.395.067-.675.287-.59.728.082.426.427.49.78.404.383-.095.748-.255 1.125-.371.772-.237 1.032-.112 1.356.626a7.471 7.471 0 0 0 2.582 3.164c.495.351.575.652.289 1.204-.134.257-.308.497-.461.746-.098.16-.2.318-.286.484-.172.332-.098.622.208.819.341.219.635.049.787-.25.206-.406.325-.855.49-1.282.264-.686.54-.823 1.218-.633a7.583 7.583 0 0 0 4.134.007c.672-.187.92-.075 1.186.588.155.387.252.798.425 1.177.155.343.416.621.837.398.391-.208.406-.559.205-.914-.196-.345-.434-.666-.63-1.01-.383-.679-.328-.91.29-1.364a7.518 7.518 0 0 0 2.56-3.26c.253-.615.494-.737 1.143-.545.399.118.781.293 1.183.394.359.091.729.078.868-.372.112-.366-.134-.667-.63-.749-.39-.065-.789-.074-1.18-.134-.624-.097-.852-.372-.826-.99.063-1.48-.252-2.866-.98-4.156-.277-.494-.233-.788.224-1.147.262-.205.56-.36.838-.543.172-.115.357-.223.5-.37.21-.216.254-.484.07-.743-.188-.266-.468-.29-.726-.162-.198.099-.36.279-.527.434-.228.214-.432.456-.67.657-.474.4-.76.392-1.21-.008a7.752 7.752 0 0 0-3.83-1.862c-.582-.107-.759-.297-.735-.898.016-.416.092-.83.129-1.245.045-.486-.227-.88-.594-.879-.367.002-.638.395-.59.882.034.332.09.661.139.993h-.003.002Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FDFDFE\",\n    d: \"M13.413 10.885c-.046-.332-.104-.66-.138-.993-.049-.487.222-.88.59-.882.367-.001.639.393.594.879-.04.417-.115.83-.13 1.246-.022.6.153.79.735.897a7.741 7.741 0 0 1 3.83 1.862c.45.4.736.409 1.21.008.239-.2.443-.443.67-.657.167-.155.33-.336.527-.434.258-.128.54-.104.727.162.183.259.139.526-.071.742-.143.148-.327.255-.5.37-.277.185-.576.34-.838.544-.457.359-.501.654-.223 1.147.727 1.29 1.042 2.677.98 4.156-.027.617.202.892.825.99.392.06.79.07 1.18.134.497.083.744.383.63.75-.139.45-.509.462-.868.371-.401-.1-.785-.275-1.182-.394-.65-.192-.89-.07-1.144.545a7.518 7.518 0 0 1-2.56 3.26c-.618.453-.674.684-.29 1.363.196.345.433.666.63 1.01.202.357.187.707-.204.915-.421.223-.682-.056-.838-.398-.172-.377-.269-.79-.425-1.177-.267-.663-.513-.775-1.185-.588a7.576 7.576 0 0 1-4.134-.007c-.68-.189-.955-.051-1.218.633-.165.428-.285.877-.49 1.283-.15.298-.446.468-.787.249-.306-.196-.379-.487-.208-.819.086-.166.186-.324.285-.484.153-.25.326-.487.461-.746.287-.552.207-.853-.288-1.204a7.472 7.472 0 0 1-2.583-3.164c-.323-.739-.584-.862-1.356-.626-.377.116-.742.275-1.124.372-.353.087-.697.022-.78-.405-.086-.441.195-.66.59-.727.347-.06.703-.081 1.056-.121.787-.088 1.015-.337.987-1.12a7.637 7.637 0 0 1 .955-4.038c.301-.545.255-.804-.253-1.185-.25-.188-.528-.335-.787-.508-.173-.115-.356-.224-.5-.372-.208-.217-.255-.49-.07-.743.206-.28.498-.306.776-.132.19.12.346.297.513.454.243.23.46.494.73.685.349.249.679.331 1.072-.055 1.039-1.022 2.322-1.606 3.745-1.885.8-.157.905-.291.876-1.163h.002-.002Zm-.328 3.414h.034c0-.166-.009-.335.002-.5.015-.23-.07-.284-.293-.24a6.313 6.313 0 0 0-2.9 1.38c-.235.196-.189.307.038.462.67.46 1.324.944 1.994 1.404.605.416.977.232 1.025-.501.042-.667.067-1.336.1-2.005Zm-5.206 5.033c-.005.516.219.708.673.576.697-.202 1.399-.394 2.091-.61.635-.197.732-.591.248-1.049-.589-.558-1.217-1.076-1.802-1.641-.31-.301-.423-.151-.566.139a6.455 6.455 0 0 0-.644 2.584v.001Zm5.968 6.131c.545.015 1.074-.082 1.6-.213.215-.054.353-.088.198-.358-.444-.778-.85-1.578-1.31-2.347-.256-.43-.687-.426-.94.006-.454.773-.867 1.568-1.305 2.35-.114.204-.067.278.158.335.527.132 1.054.236 1.6.227v.001h-.001Zm6.009-6.113c-.049-.84-.229-1.711-.63-2.53-.162-.333-.346-.446-.66-.15-.562.526-1.152 1.026-1.713 1.555-.504.474-.399.87.278 1.074.696.212 1.396.407 2.094.608.64.185.643.184.63-.557Zm-3.068 1.703c-.902.04-1.014.21-.709.964.29.717.598 1.426.879 2.146.095.244.172.364.432.168.886-.67 1.565-1.5 1.992-2.53.053-.127.15-.297-.091-.34-.861-.146-1.725-.28-2.504-.408Zm-2.17-6.828h.02c.035.686.068 1.372.107 2.06.042.739.408.934 1.008.523.65-.447 1.272-.935 1.936-1.36.354-.229.275-.355.01-.572a6.244 6.244 0 0 0-2.725-1.294c-.358-.074-.392.048-.36.332.01.103 0 .207 0 .312h.004v-.001Zm-2.771 7.327c-.098-.212-.086-.491-.453-.478-.923.034-1.823.235-2.733.361-.32.044-.386.183-.26.46a6.1 6.1 0 0 0 1.935 2.412c.22.164.333.167.438-.128.19-.528.428-1.04.642-1.56.143-.345.28-.694.43-1.065v-.002Zm2.051-2.89c-.64-.002-1.016.252-1.03.696-.019.532.499 1.13.988 1.14.465.01.997-.554 1-1.06.003-.47-.372-.776-.958-.778v.002Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#326CE4\",\n    d: \"M13.086 14.3c-.032.667-.057 1.336-.1 2.004-.048.734-.42.917-1.024.501-.67-.46-1.324-.945-1.994-1.404-.227-.156-.272-.266-.039-.463a6.32 6.32 0 0 1 2.901-1.38c.224-.043.308.012.293.24-.011.166-.003.335-.003.502h-.034v-.001ZM7.88 19.332c.038-.86.233-1.747.645-2.584.143-.29.256-.441.567-.139.583.565 1.213 1.08 1.802 1.641.483.46.386.853-.248 1.05-.693.215-1.394.406-2.091.61-.454.131-.678-.06-.673-.577l-.001-.001ZM13.85 25.462c-.545.01-1.073-.096-1.6-.228-.225-.057-.27-.131-.157-.335.437-.781.85-1.578 1.304-2.35.253-.432.685-.437.941-.006.459.768.866 1.569 1.31 2.347.154.269.014.303-.198.357-.527.133-1.055.23-1.601.214ZM19.856 19.35c.013.74.01.744-.63.557-.697-.202-1.398-.397-2.094-.608-.676-.205-.781-.598-.278-1.074.562-.529 1.15-1.029 1.713-1.556.315-.294.498-.183.66.15.402.82.58 1.692.63 2.531ZM16.79 21.052c.778.126 1.642.262 2.504.41.24.04.143.21.091.339-.428 1.03-1.106 1.862-1.992 2.53-.26.196-.337.075-.432-.169-.28-.72-.588-1.43-.878-2.145-.306-.754-.193-.924.708-.964v-.001ZM14.62 14.224c0-.105.01-.21-.002-.313-.03-.283.003-.404.361-.33 1.02.21 1.919.638 2.724 1.293.266.217.346.343-.01.571-.663.427-1.285.914-1.936 1.36-.599.412-.966.217-1.008-.523-.038-.686-.07-1.373-.106-2.06h-.024v.002ZM11.846 21.55c-.15.372-.287.72-.43 1.066-.214.52-.45 1.03-.641 1.56-.105.294-.22.293-.439.128A6.113 6.113 0 0 1 8.4 21.892c-.126-.278-.06-.417.261-.46.91-.125 1.81-.328 2.733-.362.368-.014.355.267.453.479v.001ZM13.899 18.66c.585.001.961.305.959.777-.004.507-.535 1.07-1 1.06-.489-.011-1.007-.608-.99-1.14.015-.443.393-.699 1.032-.696l-.002-.002h.001Z\"\n  })));\n};\nexport default SvgKubernetes;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMicrosoftIcon = function SvgMicrosoftIcon(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    d: \"M0 0h11.406v11.406H0V0ZM12.598 0H24v11.406H12.598V0ZM0 12.594h11.406V24H0V12.594ZM12.598 12.594H24V24H12.598V12.594Z\"\n  })));\n};\nexport default SvgMicrosoftIcon;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMicrosoft = function SvgMicrosoft(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#F35325\",\n    d: \"M11.246 7.461H0v11.247h11.246V7.46Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#81BC06\",\n    d: \"M23.703 7.461H12.457v11.247h11.246V7.46Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#05A6F0\",\n    d: \"M11.246 19.919H0v11.246h11.246V19.92Z\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FFBA08\",\n    d: \"M23.703 19.919H12.457v11.246h11.246V19.92Z\"\n  })));\n};\nexport default SvgMicrosoft;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgOpenldap = function SvgOpenldap(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 744.09 1052.4\",\n    width: \"1em\",\n    height: \"1em\"\n  }, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"openldap_svg__e\",\n    x1: 80.916,\n    x2: 89.429,\n    y1: 129.23,\n    y2: 129.23,\n    gradientTransform: \"translate(244.83 -81.693) scale(1.9236)\",\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0,\n    style: {\n      stopColor: \"#60c\"\n    }\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    style: {\n      stopColor: \"#60c\",\n      stopOpacity: 0\n    }\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"openldap_svg__d\",\n    x1: 80.916,\n    x2: 89.429,\n    y1: 129.23,\n    y2: 129.23,\n    gradientTransform: \"translate(216.56 -73.967) scale(1.9236)\",\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0,\n    style: {\n      stopColor: \"#60c\"\n    }\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    style: {\n      stopColor: \"#60c\",\n      stopOpacity: 0\n    }\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"openldap_svg__b\",\n    x1: 8.535,\n    x2: 77.015,\n    y1: 384.81,\n    y2: 465.09,\n    gradientTransform: \"translate(267.18 -40.495) scale(1.9236)\",\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0,\n    style: {\n      stopColor: \"#6d5744\"\n    }\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    style: {\n      stopColor: \"#6d5744\",\n      stopOpacity: 0\n    }\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"openldap_svg__a\",\n    x1: -41.915,\n    x2: 100.23,\n    y1: 163.64,\n    y2: 197.66,\n    gradientTransform: \"translate(267.18 -40.495) scale(1.9236)\",\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0,\n    style: {\n      stopColor: \"#6d5744\"\n    }\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    style: {\n      stopColor: \"#6d5744\",\n      stopOpacity: 0\n    }\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"openldap_svg__c\",\n    x1: 420.17,\n    x2: 416.51,\n    y1: 220.22,\n    y2: 202.05,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0,\n    style: {\n      stopColor: \"#212121\"\n    }\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    style: {\n      stopColor: \"#212121\",\n      stopOpacity: 0\n    }\n  }))), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M416.93 357.28c-13.927 2.158-29.996 7.106-40.074 15.502 4.966 23.732 26.302-3.863 41.709 1.114 19.575-1.994 11.267-20.953-1.636-16.616zM405.02 320.44c-14.087-.44-30.791 1.47-42.241 7.87.518 24.24 26.564 1.039 40.793 8.764 19.608 1.639 14.927-18.525 1.447-16.634zM445.25 394.59c-13.87 2.5-29.812 7.842-39.68 16.484 5.548 23.602 26.199-4.51 41.724.087 19.52-2.475 10.748-21.224-2.044-16.57zM469.88 440.79c-14.484-5.122-45.334 19.408-19.277 22.574 8.32-8.557 21.103-5.338 32.541-7.27 13.791-10.401-3.588-17.608-13.264-15.303zM511.36 603.7c-19.378 6.19.023 20.385 12.165 15.99 8.792.11 17.767-.418 26.333.712 14.807-8.3-3.011-20.33-13.628-16.702h-24.87zM543.52 678c-16.558-7.786-30.682 18.894-7.972 16.243 11.17-3.076 30.464 6.068 35.019-8.248-1.659-13.088-18.785-5.98-27.047-7.995zM510.94 752.36c-23.064 11.227 20.121 24.639 19.417 29.155 5.015 8.059 5.422 11.558 9.593 13.687 18.953 4.068 9.72-18.678.806-25.048-8.268-8.393-17.81-15.759-29.816-17.794zM536.13 790.23l.06.24zM458.58 832.25c-21.038 7.37 4.813 20.578 14.908 23.685-2.962 12.592 14.925 29.912 18.094 9.738 1.794-20.17-15.98-29.587-33.002-33.423z\",\n    style: {\n      stroke: \"#816647\",\n      strokeWidth: 2.5007,\n      fill: \"#ff9\"\n    }\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      stroke: \"#015a01\"\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M155.98 488.01a31.122 36.497 0 1 1-1.22-64.48\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.9,\n      fill: \"#6c3\"\n    },\n    transform: \"translate(-39.643 -60.964) scale(1.9236)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M135.8 445.27a33.986 36.899 0 1 1 9.737 39.546\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.88405,\n      fill: \"#6c3\"\n    },\n    transform: \"rotate(-10.219 -127.089 1148.416) scale(1.95832)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M167.9 478.33a43.697 33.986 0 1 1 38.346 11.559\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.84894,\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(1.86568 .99923 -1.08995 1.6453 463.551 -138.373)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M205.36 406.05a50.381 30.214 0 1 1 75.368 24.902\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.86545,\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(1.82128 .74478 -.71166 1.9061 206.257 -166.5)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M221.38 425.53a50.381 28.411 0 1 1 67.773.438\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.82037,\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(1.99535 .47632 -.45534 2.12327 90.042 -217.313)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M206.04 409.53a50.381 28.411 0 1 1 86.24 14.733\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.77966,\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(2.0465 0 0 2.4093 -88.464 -261.585)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M225.39 392a46.972 26.895 0 1 1 62.784-15.176\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.806,\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(2.1562 0 0 2.1396 -89.484 -106.989)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M157.51 375.64c4.938-9.01 1.653-17.354-7.625-24.469 6.077-17.646-8.654-60.144-35.031-91.812-1.38-1.658-3.293-2.985-5.625-4-6.188-22.424-26.148-28.54-43.875-23.594-23.792 6.64-44.719 13.087-44.719 29.25 0 8.436 5.46 16.034 14.188 21.375-.31.68-.594 1.362-.844 2.063-6.48 27.8 16.103 65.353 26.031 76.75.145.166.293.308.438.468-5.575 13.415 6.61 27.527 29.75 32.97\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.9,\n      fill: \"#6c3\"\n    },\n    transform: \"translate(215.33 -72.118) scale(1.9236)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M165.1 192.18a35.714 25.423 0 1 1 60.364-7.458\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.75961,\n      fill: \"#6c3\"\n    },\n    transform: \"rotate(-7.122 141.565 1368.623) scale(2.27916)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M165.18 192.64a35.714 26.026 0 1 1 58.892-5.404\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.75961,\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(2.279 0 0 2.279 -132.014 -86.976)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M178.08 200.01a35.714 26.582 0 1 1 43.239-9.101\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.75961,\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(2.279 0 0 2.279 -127.205 -135.85)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M194.64 164.22a50.528 44.244 0 1 1 42.772 22.373\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 0.9,\n      fill: \"#6c3\"\n    },\n    transform: \"rotate(-25.365 260.383 483.741) scale(1.9236)\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M345.16 123.48c-18.445 2.416-36.231 9.639-51.157 20.739 3.67 10.439 8.552 19.439 7.764 31.245 6.17 3.425 6.974.76 8.707 8.67-5.472 1.348 12.146 3.992 16.65 3.197 12.842-6.387 1.965-24.003 5.472-35.177-1.157-12.639 4.178-18.613 12.564-28.674zm-11.662 17.072c-1.079 1.83 2.06.045 0 0zm-54.47 17.26c-14.103 14.686-23.007 34.328-24.586 54.643 5.548 6.701 10.064 14.055 23.745 12.744 12.83-.612 25.13 13.586 38.054 3.77.558-10.675-11.82-20.203-21.377-24.201-10.807-5.478-9.337-17.826-11.324-24.49-4.484-7.632-1.208-4.536-4.03-14.411-.42-2.662-.528-5.365-.481-8.056zm-39.194 77.006c-12.088 13.667-14.622 34.874-6.492 51.157-8.447 11.861-13.275 28.947-6.387 42.527 8.684 9.376 15.535 18.781 23.923 27.836 5.148 4.231 29.949 1.327 22.899-9.392 3.62-9.74 11.573-4.67 20.46-5.546-.882-6.944-13.13-21.402-3.727-21.28-5.308-.467-10.441.912-16.634-.663-2.316 1.179-11.748 3.965-16.789 7.156-2.813-4.37-9.528-9.026-14.006-13.285 6.329-6.942 12.568-11.394 18.635-22.362-1.418-11.027 1.41-23.937-4.952-34.526-4.39-7.982-9.538-16.258-16.93-21.62zm21.04 29.576c-2.579 2.068 2.648 1.222 0 0zm33.063 1.262c-7.962 8.595-13.598-.637-22.603 6.853-7.391 6.563-7.957 18.171.767 23.49 4.06 2.449 8.14 13.005 11.977 4.824 3.508-.209 6.1-.73 12.383-6.252 8.126-2.643 16.85-9.205 7.935-11.722-1.73 2.567-1.673-1.994-4.267-3.908-2.254 2.354-1.054-11.239-6.192-13.285zm9.678 15.15c-4.602 4.341 3.15 1.218 0 0zm-11.963 20.438c6.236 3.03 17.23-.028 4.42.286-1.482.204-2.946-.174-4.42-.286zm12.203.481c-.595 3.29 1.896.633 0 0zm-56.026 14.908c-.85.904 1.544.19 0 0zm43.703 3.487c-2.573 1.483 1.96-.001 0 0zm.421.12c-.561.637 1.28.297 0 0zm-13.646 20.92c-1.301.21.812 1.138 0 0zm3.907.42c-3.404 3.408 4.722.294 0 0zm-38.713 20.139c-16.799 2.284-10.957 31.496 2.805 33.354 5.64 9.286 19.757 13.694 24.547 24.655 12.72 4.112 22.56-7.895 20.44-20.018 8.73 1.284 22.706-6.826 20.378-18.335-11.926-.224-22.746-2.603-33.62 2.757-15.887 2.693-25.953-11.899-34.549-22.415zm45.025 14.968c-2.295 3.054 1.946 1.48 0 0zm-.781 1.503c-1.04-3.208-2.889 3.588 0 0zm2.645-1.503c-3.15 1.919 5.565.92 0 0zm.842 1.683c-1.517 1.519 3.67.686 0 0zm22.362 4.268c-2.081 2.173 2.8 3.946 0 0zm1.923 42.44c-1.06 2.522 4.023 2.282 0 0zm-60.835.481c-3.129 19.345 11.046 36.912 26.69 46.468-7.272 14.968 24.864 4.591 22.53-7.431-3.52-4.406-3.597-8.426-6.66-12.226 10.34.225 18.674-.723 29.335-7.574 10.545-.483-9.431-19.033-14.573-17.474-7.491 6.703-18.908 3.173-26.725 11.463-8.885-6.562-19.78-11.221-30.598-13.225zm50.616 27.232c-2.016.842 3.15 1.795 0 0zm-.781 8.236c-5.884 2.548 3.093 1.194 0 0z\",\n    style: {\n      fill: \"url(#openldap_svg__a)\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M376.06 624.62c-5.876 3.042-21.757 3.705-21.12 7.535 6.706 3.036-9.727 2.31-3.046-1.524-6.055 3.63-4.387-1.105-6.973 4.509-4.344-.588-1.79-8.583-9.235-2.745-12.237 6.275-3.708 20.152 2.654 27.602 2.665 6.133 15.762-6.604 17.04 4.539 8.022-2.48 15.796-2.173 24.888-5.53 7.495-.574 12.594 10.91 15.569 5.95 7.221-1.065 4.553 7.088 9.323.252 5.226-7.084 10.894-21.606 4.856-21.06-2.713-2.06-4.296-9.432.008-2.996 4.307-2.722.144-4.5 6.852-4.492 4.604-4.489-10.706 2.535-3.846-2.481-8.94.797 7.612-4.563-4.702-3.546-8.26-1.493-26.336 1.196-28.377-1.918 6.607-4.343-4.686 1.95-3.89-4.095zm-30.177 6.853c-.382-2.596-2.783-.59 0 0zm38.413-5.35c-5.547 4.11 3.66 3.36 0 0zm-35.167 3.246c-5.571 2.012 3.462 2.668 0 0zm-4.508 2.044c-3.596 1.388 5.346 4.043 0 0zm-1.684.54c-.852 1.16.955 2.003 0 0zm69.792 10.28c-3.374 1.08 2.565 1.766 0 0zm.782 12.444 4.93 12.444c-1.211-4.275-1.661-9.11-4.93-12.444zm-65.764 27.592c-5.276 5.044-13.384 8.078-14.41 16.23-5.04 9.286.73 20.869 9.09 22.718 4.203 9.595 17.532 7.67 22.512 16.336 10.903 2.65 26.672.473 27.793-13.261 6.018-16.31 13.062 9.716 22.882 9.772 4.928-1.522 7.334-2.06 10.615 1.278 3.227-2.624 8.773-1.22 12.59-5.944 2.41-1.37 5.576-10.131-1.49-13.02-6.048-4.783-11.199-22.286-19.283-11.598-2.185-3.091-10.746-6.59-9.8-.397-5.938 4.84-10.636.017-5.796-4.921-11.975 1.757-23.053-.588-34.994-.398-5.478 1.504-14.347 1.281-6.786-4.471-3.455-4.987-10.878-6.38-12.924-12.323zm17.794 13.105c-10.605 2.308 7.362 2.827 0 0zm51.157 4.809c-1.854 2.246 4.144 1.687 0 0zm2.164 1.323c-2.217 4.01 3.012.564 0 0zm-77.066 20.859c-2.942 1.253 1.563 2.385 0 0zm102.19 2.284c.7 2.992 4.89 1.724 0 0zm-125.94 6.672c-8.115 5.513-20.707 9.841-24.887 18.094 5.362 7.538 9.86 15.711 12.55 23.686 3.711 1.483 12.27 11.936 10.233 7.152-2.548-3.394 10.374 6.403 2.557 2.03-3.485 5.547 6.905 14.76 12.921 6.704 3.367-2.554 11.628-6.886 5.261.043-6.153 14.272 11.76 23.915 21.881 23.324-1.587 5.039 13.156 3.343 10.16-3.787 9.783 6.205 10.034-12.581 12.15-18.922 1.04-4.433 2.08-8.866 3.118-13.3-1.89 2.532-9.142.334-9.002 1.835-4.931-4.11-13.488 3.44-16.666-.151-6.938-1.54-9.062-7.517-9.739-12.985-8.094.567-3.698.62-1.576-4.514-5.869-.315-13.837-1.76-12.14-7.101-11.402-4.656-2.209-15.071-10.819-21.29-1.93-.648-3.984-.769-6.003-.82zm-44.965 12.864c-8.59-.995-7.514 5.968-13.225 2.946-10.15 5.745-20.136-2.751-30.925-1.387-29.137.253-51.071 29.092-55.872 56.42-7.326 13.756 5.339-.477 13.637-2.2-2.174-12.195 15.58-25.188 15.597-13.978-2.572 4.957.562 35.905 9.372 42.415 5.65 7.411 15.864 7.438 16.829-3.37 2.964-7.94 10.06-14.312 13.028-18.147-6.703 3.544-3.79-6.904-7.88-9.219 6.738-6.241-3.49-25.475.967-30.577 1.888.822 19.213-10.243 18.074 3.77 1.16 3.555-8.118 5.14-2.024 8.433-7.658 4.665 3.455 5.39-3.427 9.498 3.253 5.399 6.01 9.833 2.165 15.028 5.35 2.88-.846 4.956 2.464 9.859 1.778 3.928 6.245.778 1.383 5.41-1.361 8.392 12.419 11.331 9.277 18.591 8.517 3.138 17.255 14.93 21.647 1.175 4.39-6.642 8.989-13.158 13.44-19.766-3.415 1.673-6.978-2.014-10.4-3.306 3.183-7.442-7.567-10.669-4.388-18.695 2.026-5.576-2.942-14.986 1.397-15.442-3.634-2.89 2.346.649-.435-4.335 3.824-1.818-1.302-7.133 5.59-7.094-4.774-7.513 7.287-4.69 3.06-10.753-6.328-3.212 11.084-14.42-1.016-12.034-3.592-.464-14.71-3.287-18.334-3.242zm68.409 12.564c-5.594.816-1.062 2.671 0 0zm-106.58 10.76c-3.124 2.508 2.53 1.994 0 0zm-.18 2.165c-2.707.23 3.602 2.232 0 0zm116.32 1.983c-.612 2.06 1.536.488 0 0zm-33.123 9.258c-1.11 1.048.899.708 0 0zm-75.743 29.816c.207 1.666-.16.54 0 0zm1.322.06c.487 1.064-.19.145 0 0zm112.77 2.164c-3.791 1.324 3.067 2.71 0 0z\",\n    style: {\n      fill: \"url(#openldap_svg__b)\"\n    }\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      stroke: \"#015a01\"\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M117.95 147.91c2.062 13.147-6.643 16.932-10.971 15.996\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 1,\n      fill: \"#6c3\"\n    },\n    transform: \"translate(215.33 -72.118) scale(1.9236)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M247.45 144.66a14.908 15.413 0 0 1-28.87 1.41\",\n    style: {\n      stroke: \"#015a01\",\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(2.0679 0 0 1.9236 -85.252 -62.905)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M254.4 122.14a13.756 14.188 0 0 1-9.596 26.558\",\n    style: {\n      stroke: \"#015a01\",\n      fill: \"#6c3\"\n    },\n    transform: \"matrix(1.69038 0 0 1.9236 8.062 -62.905)\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M427.42 204.03a13.577 11.915 0 1 1-20.903 3.651\",\n    style: {\n      stroke: \"#333\",\n      strokeWidth: 1.431,\n      fill: \"url(#openldap_svg__c)\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M280.54 469.64c8.633 3.94 25.105 2 46.417-3.57M257.12 414.7c8.633 3.94 28.892 5.786 50.204.217M241.99 350.59c12.42 7.726 15.901 10.802 32.109 11.815\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 1.7313,\n      fill: \"none\"\n    }\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      opacity: 0.45,\n      stroke: \"#015a01\"\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M238.76 154.03a10.902 13.628 0 1 1-21.804 0 10.902 13.628 0 1 1 21.804 0z\",\n    style: {\n      opacity: 0.33,\n      stroke: \"#015a01\",\n      fill: \"#060\"\n    },\n    transform: \"matrix(1.91312 -1.0905 1.23997 1.6825 -284.739 205.84)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M-2.467 124.52c-10.397 7.867 3.174 25.794 15.402 20.06 11.488-7.465-3.201-26.94-15.402-20.06z\",\n    style: {\n      opacity: 0.33,\n      stroke: \"#015a01\",\n      fill: \"#060\"\n    },\n    transform: \"translate(336.93 -40.977) scale(1.9236)\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M403.28 150.64c-7.692.501-14.793 4.685-15.089 13.586a20.49 20.49 0 0 0 .48 3.306c-3.317-3.523-7.434-6.313-11.36-7.815-11.25-6.31-32.094-3.901-32.642 12.083 1.272 20.2 29.984 34.111 46.288 21.701 4.544-4.377 5.481-9.502 4.268-14.487 8.648 8.688 23.31 12.136 32.942 4.569 10.541-10.48-1.254-25.962-11.782-30.117-3.642-2.109-8.49-3.126-13.105-2.825z\",\n    style: {\n      opacity: 0.5696,\n      stroke: \"#015a01\",\n      strokeWidth: 1.9236,\n      fill: \"#015a01\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M352.96 116.34c1.938-.888 4.249.037 5.182 2.073 0 0 3.183 13.713 11.456 25.004 2.145 6.463-6.445 8.713-8.763 4.015 0 0-.968-10.617-11.456-25.004s.648-4.744 3.581-6.088z\",\n    style: {\n      stroke: \"#424242\",\n      strokeWidth: 1.9236,\n      fill: \"#474747\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M362.23 112.63a11.734 11.734 0 1 1-23.468 0 11.734 11.734 0 1 1 23.468 0z\",\n    style: {\n      stroke: \"#3c3c3c\",\n      strokeWidth: 2.843,\n      fill: \"#474747\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M392.01 189.01c-3.48 7.067-14.963 8.53-25.649 3.27-10.687-5.262-16.529-15.256-13.05-22.323 3.48-7.067 12.924-3.34 25.649-3.269 11.911.067 16.529 15.255 13.05 22.322zM428.77 179.39c-2.932 6.147-12.61 7.42-21.616 2.844s-13.93-13.27-10.998-19.416c2.932-6.147 10.386-3.713 21.616-2.844 10.072.78 13.93 13.269 10.998 19.416z\",\n    style: {\n      stroke: \"#015a01\",\n      strokeWidth: 1.9236,\n      fill: \"#eee\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M386.95 174.62a6.554 6.292 0 1 1-13.107 0 6.554 6.292 0 1 1 13.107 0z\",\n    style: {\n      stroke: \"url(#openldap_svg__d)\",\n      strokeWidth: 3.2702,\n      fill: \"#212121\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M420.28 260.08c-66.519-.144-41.52 15.048-88.371 22.3-26.994 12.355 2.254 36.023-28.249 57.531-12.191 24.257 25.422 32.975 14.127 56.988 1.094 17.721 28.212 17.044 15.87 35.106.077 27.295 34.615 32.862 24.995 61.134 5.822 58.494 26.558 115.42 56.87 165.61 24.209 15.049 1.4 44.842 26.58 58.256-15.417 16.017-2.308 41.461-16.414 58.695-15.858 27.915-52.033 71.541-86.055 70.198-32.5 6.163-62.672-8.101-85.514 18.724-21.068 27.152 26.849 29.08 43.943 22.231 17.663-15.932 35.21-5.876 56.135-3.462 21.996 1.56 46.031-3.354 62.056-19.468 25.603.823 58.065-11.778 61.136-40.697 25.458-6.112 48.466-32.949 36.241-59.636 7.342-17.164 35.37-42.277 20.025-68.406 16.566-22.139-13.544-40.219-11.646-57.89 1.52-24.036-27.484-32.739-16.422-57.827-5.88-56.776-34.65-108.99-69.858-152.93-17.715-10.826-17.772-37.67-38.852-46.975-1.577-13.237-.082-35.222-15.13-46.08 12.85-21.035-11.481-49.556 20.581-57.405 9.32-6.825 11.765-6.15 17.952-15.995z\",\n    style: {\n      opacity: 0.16,\n      strokeOpacity: 0.45631,\n      stroke: \"#015a01\",\n      strokeWidth: 1.9236,\n      fill: \"#2f5a01\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"m364.39 291.24-33.123 5.23c17.189-1.058 41.41 10.702 52.138 2.144 2.808-7.652-14.418-4.55-19.015-7.374zm18.755 37.451c-2.226.221-5.16.953-5.951.18-15.9.467-38.753 1.689-50.255 5.951l31.379 7.996c9.785-5.765 36.092 1.65 26.45-11.301 2.09-2.727.603-3.047-1.623-2.826zm15.269 47.37c-23.53 1.418-46.945 4.234-70.513 5.17 18.484 2.734 36.866 6.798 55.605 3.547 8.85-2.878 26.726 3.882 14.908-8.717zm30.418 42.621c-17.609 2.141-22.028.732-40.577 1.082-12.172-.35-44.69.348-44.244 2.946 15.711 2.07 31.36 6.102 47.189 2.464 8.774-3.204 54.756 6.425 37.631-6.492zm27.472 33.664c-30.006 4.477-61.241 1.051-90.411 10.881l33.363 3.907c16.451-8.86 54.588-1.713 59.693-10.94zM497 602.56c-7.134-.107-15.756 1.445-21.4.36-22.649.075-44.368 7.02-66.305 11.783 15.165.922 30.594 7.281 45.446 1.623 15.954-6.58 41.892-5.303 52.539-10.82-2.28-2.21-5.999-2.882-10.279-2.946zm13.526 44.965c-14.177-.298-32.495 2.867-43.582.902l-33.002 5.23c31.72-.05 63.44.025 95.16 0-3.034-4.524-10.069-5.953-18.575-6.132zm-6.913 48.692c-4.496-.07-8.982.188-13.526 1.022l-32.522 8.175c21.543-3.55 43.01 2.847 64.562-1.202 11.962 2.216 20.66-8.78 3.907-6.793-7.5-.175-14.929-1.085-22.422-1.202zM465.2 757.773l-29.576 7.995c23.849 2.836 47.753 6.214 71.656 1.503 9.744-1.574 4.567-13.92-3.667-5.59-12.552 1.862-25.699-3.404-38.413-3.908zm-33.063 63.961-33.123 5.23c26.419-2.515 51.986 6.292 78.328 4.689 5.416-14.802-36.343-7.572-45.206-9.919zm-38.773 30.297c-10.945.795-21.774 3.134-32.642 4.81 19.66-1.443 39.974 13.754 57.409 7.573 8.563.63 33.329-2.739 11.842-4.929-12.15-2.623-23.995-7.708-36.61-7.454z\",\n    style: {\n      opacity: 0.22,\n      fill: \"#816647\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M304.45 326.16c-10.886 1.967-8.4 22.052 3.066 22.302 8.465 2.325 15.632 3.845 26.342.932 11.164-8.74-4.137-14.974-12.453-12.714-16.156 1.402-6.886-8.034-16.955-10.52zm5.951 53.08c-15.564 5.843-1.743 25.357 11.602 21.821 10.833.873 16.443-4.823 22.422-7.514 13.366-13.213-9.2-14.904-16.952-6.011-12.514 4.096-8.06-5.899-17.072-8.296zm50.736 40.877c-10.278-.312-16.719 10.516-26.51 10.099-15.413-2.714-11.509 17.881 2.164 13.285 10.433 1.739 13.941-8.465 23.925-9.317 8.076-.63 9.6-13.53.421-14.067zm19.717 50.916c-7.237 2.817-15.739 11.599-24.045 7.213-17.483-12.77-11.249 18.608-.901 14.127 9.028 2.152 20.787-3.388 25.428-6.792 3.646.512 11.826-13.3-.482-14.547zm-4.629 17.373c-1.757 1.064 1.7-.61 0 0zm48.632 150.16c-16.235 5.22 1.896 25.317 13.465 25.067 10.318.826 21.684.346 28.734-8.176 9.25-23.358-30.97 7.123-37.196-14.127l-1.45-1.515-3.553-1.25zm7.334 67.027c-12.786 3.28-2.84 22.219 3.727 28.433 9.873 6.706 22.122 6.794 33.616 5.38 11.174-8.715-4.149-14.989-12.453-12.714-8 1.03-16.762-3.311-17.255-12.143-1.53-3.684-2.48-8.882-7.634-8.957zm12.864 32.822-.6-.3zm-60.354 65.344c-11.482 3.658-6.54 21.416-.12 28.373 4.485 5.22 7.873 12.227 12.203 15.208 5.716 3.355 9.67 8.453 16.776 5.416 9.556-6.93-8.199-14.998-5.835-13.892-5.885-2.69-9.886-12.655-15.028-18.034-3.525-5.64 2.14-16.518-7.995-17.072zm11.963 43.462c-2.054-2.264-.507-.136 0 0zm-91.313-6.312c-10.66 4.691-10.693 19.058-10.219 29.212-1.488 10.106 2.839 20.308 12.804 24.048 16.495 8.538 9.815-16.676 2.104-14.427-4.5-4.573.282-13.545-1.622-19.356-.478-6.55 10.803-17.505-3.067-19.477zm-75.623 3.246c-8.979 2.724-15.863 14.021-15.509 26.03-2.008 9.592 3.418 22.026 10.4 23.864 15.634 10.556 16.95-11.274 2.886-14.668-.48-9.208-.568-19.474 8.14-25.047 3.09-4.211-.8-10.666-5.916-10.179zm172.17 6.372c.434.02.033.146 0 0zm-92.816 5.59c.286-.058-.476.461 0 0z\",\n    style: {\n      stroke: \"#816647\",\n      strokeWidth: 2.5007,\n      fill: \"#ff9\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M403.43 108.33c2.104.342 3.508 2.397 3.148 4.608 0 0-4.995 13.162-4.414 27.147-1.818 6.562-10.206 3.646-9.514-1.547 0 0 5.11-9.356 4.414-27.147-.695-17.79 3.182-3.579 6.366-3.061z\",\n    style: {\n      stroke: \"#424242\",\n      strokeWidth: 1.9236,\n      fill: \"#474747\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M413.2 110.41a11.734 11.734 0 1 1-19.49-13.077 11.734 11.734 0 1 1 19.49 13.077z\",\n    style: {\n      stroke: \"#3c3c3c\",\n      strokeWidth: 2.843,\n      fill: \"#474747\"\n    }\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M415.23 166.9a6.554 6.292 0 1 1-13.107 0 6.554 6.292 0 1 1 13.107 0z\",\n    style: {\n      stroke: \"url(#openldap_svg__e)\",\n      strokeWidth: 3.2702,\n      fill: \"#212121\"\n    }\n  }));\n};\nexport default SvgOpenldap;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgProget = function SvgProget(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#282B3A\",\n    d: \"M23.586 13.035 13.46 7.381a2.24 2.24 0 0 0-2.192 0L1.144 13.035A2.255 2.255 0 0 0 0 15.036v11.198a2.255 2.255 0 0 0 1.144 1.961l10.125 5.654a2.24 2.24 0 0 0 2.192 0l10.125-5.693a2.248 2.248 0 0 0 1.151-1.962V15.036a2.246 2.246 0 0 0-1.151-2Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#3FA9F5\",\n    d: \"m16.01 18.213-3.375-1.89a.564.564 0 0 0-.548 0l-3.367 1.89a.556.556 0 0 0-.294.492v3.733a.556.556 0 0 0 .294.492l3.367 1.89a.564.564 0 0 0 .548 0l3.375-1.842a.564.564 0 0 0 .285-.493v-3.732a.564.564 0 0 0-.285-.54Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#1696F0\",\n    d: \"M6.742 23.772v-5.313l-3.375-1.834v8.338a1.136 1.136 0 0 0 .58.985l7.576 4.232v-3.772l-4.78-2.636Z\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#37BBF7\",\n    d: \"M12.911 10.843a1.12 1.12 0 0 0-1.096 0l-7.647 4.273 3.399 1.874 4.764-2.676 4.741 2.628 3.336-1.906-7.497-4.193Z\"\n  })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#79BFF2\",\n    d: \"M18.026 18.372v5.4l-4.764 2.668v3.772l7.576-4.232a1.129 1.129 0 0 0 .571-.985V16.45l-3.383 1.922Z\"\n  })));\n};\nexport default SvgProget;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgQuay = function SvgQuay(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#40B4E5\",\n    fillRule: \"evenodd\",\n    d: \"m21.696 7.1 6.024 12.901L21.696 32.9H16.57l6.021-12.899L16.571 7.1h5.125Z\",\n    clipRule: \"evenodd\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#003764\",\n    fillRule: \"evenodd\",\n    d: \"m16.57 32.9-6.024-12.899L16.57 7.1h5.126l-6.021 12.901 6.02 12.899H16.57Z\",\n    clipRule: \"evenodd\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#40B4E5\",\n    fillRule: \"evenodd\",\n    d: \"M13.859 12.905 11.15 7.1H6.024l5.273 11.296 2.562-5.492ZM11.297 21.604 6.024 32.9h5.126l2.709-5.804-2.562-5.492Z\",\n    clipRule: \"evenodd\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#003764\",\n    fillRule: \"evenodd\",\n    d: \"M6.024 32.9 0 20.001 6.024 7.1h5.126L5.126 20.001 11.15 32.9H6.024Z\",\n    clipRule: \"evenodd\"\n  })));\n};\nexport default SvgQuay;","import _ from 'lodash';\n\nconst categories = [\n  'docker',\n  'kubernetes',\n  'aci',\n  'portainer',\n  'edge',\n] as const;\ntype Category = (typeof categories)[number];\n\nenum DimensionConfig {\n  PortainerVersion = 1,\n  PortainerInstanceID,\n  PortainerUserRole,\n  PortainerEndpointUserRole,\n}\n\nexport interface TrackEventProps {\n  category: Category;\n  metadata?: Record<string, unknown>;\n  value?: string | number;\n  dimensions?: DimensionConfig;\n}\n\nexport function setPortainerStatus(instanceID: string, version: string) {\n  setCustomDimension(DimensionConfig.PortainerInstanceID, instanceID);\n  setCustomDimension(DimensionConfig.PortainerVersion, version);\n}\n\nexport function setUserRole(role: string) {\n  setCustomDimension(DimensionConfig.PortainerUserRole, role);\n}\n\nexport function clearUserRole() {\n  deleteCustomDimension(DimensionConfig.PortainerUserRole);\n}\n\nexport function setUserEndpointRole(role: string) {\n  setCustomDimension(DimensionConfig.PortainerEndpointUserRole, role);\n}\n\nexport function clearUserEndpointRole() {\n  deleteCustomDimension(DimensionConfig.PortainerEndpointUserRole);\n}\n\nfunction setCustomDimension(dimensionId: number, value: string) {\n  push('setCustomDimension', dimensionId, value);\n}\n\nfunction deleteCustomDimension(dimensionId: number) {\n  push('deleteCustomDimension', dimensionId.toString());\n}\n\nexport function push(\n  name: string,\n  ...args: (string | number | DimensionConfig)[]\n) {\n  if (typeof window !== 'undefined') {\n    window._paq.push([name, ...args]);\n  }\n}\n\nexport function trackEvent(action: string, properties: TrackEventProps) {\n  /**\n   * @description Logs an event with an event category (Videos, Music, Games...), an event\n   * action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...), and an optional\n   * event name and optional numeric value.\n   *\n   * @link https://piwik.org/docs/event-tracking/\n   * @link https://developer.piwik.org/api-reference/tracking-javascript#using-the-tracker-object\n   *\n   */\n\n  let { value } = properties;\n  const { metadata, dimensions, category } = properties;\n  // PAQ requires that eventValue be an integer, see: http://piwik.org/docs/event-tracking\n  if (value) {\n    const parsed = parseInt(value.toString(), 10);\n    value = Number.isNaN(parsed) ? 0 : parsed;\n  }\n\n  if (!category) {\n    throw new Error('missing category');\n  }\n\n  if (!categories.includes(category)) {\n    throw new Error('unsupported category');\n  }\n\n  let metadataString = '';\n  if (metadata) {\n    const kebabCasedMetadata = Object.fromEntries(\n      Object.entries(metadata).map(([key, value]) => [_.kebabCase(key), value])\n    );\n    metadataString = JSON.stringify(kebabCasedMetadata).toLowerCase();\n  }\n\n  push(\n    'trackEvent',\n    category,\n    action.toLowerCase(),\n    metadataString, // Changed in favour of Piwik documentation. Added fallback so it's backwards compatible.\n    value || '',\n    dimensions || <DimensionConfig>{}\n  );\n}\n\ndeclare global {\n  interface Window {\n    _paq: [string, ...(string | number)[]][];\n  }\n}\n","// try to declare constant where it's needed, not in a global file\nexport const API_ENDPOINT_AUTH = 'api/auth';\nexport const API_ENDPOINT_BACKUP = 'api/backup';\nexport const API_ENDPOINT_CUSTOM_TEMPLATES = 'api/custom_templates';\nexport const API_ENDPOINT_EDGE_GROUPS = 'api/edge_groups';\nexport const API_ENDPOINT_EDGE_JOBS = 'api/edge_jobs';\nexport const API_ENDPOINT_EDGE_STACKS = 'api/edge_stacks';\nexport const API_ENDPOINT_EDGE_TEMPLATES = 'api/edge_templates';\nexport const API_ENDPOINT_ENDPOINTS = 'api/endpoints';\nexport const API_ENDPOINT_ENDPOINT_GROUPS = 'api/endpoint_groups';\nexport const API_ENDPOINT_KUBERNETES = 'api/kubernetes';\nexport const API_ENDPOINT_MOTD = 'api/motd';\nexport const API_ENDPOINT_REGISTRIES = 'api/registries';\nexport const API_ENDPOINT_RESOURCE_CONTROLS = 'api/resource_controls';\nexport const API_ENDPOINT_SETTINGS = 'api/settings';\nexport const API_ENDPOINT_STACKS = 'api/stacks';\nexport const API_ENDPOINT_SUPPORT = 'api/support';\nexport const API_ENDPOINT_USERS = 'api/users';\nexport const API_ENDPOINT_TAGS = 'api/tags';\nexport const API_ENDPOINT_TEAMS = 'api/teams';\nexport const API_ENDPOINT_TEAM_MEMBERSHIPS = 'api/team_memberships';\nexport const API_ENDPOINT_TEMPLATES = 'api/templates';\nexport const API_ENDPOINT_WEBHOOKS = 'api/webhooks';\nexport const PAGINATION_MAX_ITEMS = 10;\nexport const APPLICATION_CACHE_VALIDITY = 3600;\nexport const CONSOLE_COMMANDS_LABEL_PREFIX = 'io.portainer.commands.';\nexport const PREDEFINED_NETWORKS = ['host', 'bridge', 'ingress', 'nat', 'none'];\nexport const PORTAINER_FADEOUT = 1500;\nexport const STACK_NAME_VALIDATION_REGEX = '^[-_a-z0-9]+$';\n","import { NodeStatus, TaskState } from 'docker-types/generated/1.41';\nimport _ from 'lodash';\n\nexport function trimVersionTag(fullName: string) {\n  if (!fullName) {\n    return fullName;\n  }\n\n  const versionIdx = fullName.lastIndexOf(':');\n  if (versionIdx < 0) {\n    return fullName;\n  }\n\n  const hostIdx = fullName.indexOf('/');\n  if (hostIdx > versionIdx) {\n    return fullName;\n  }\n\n  return fullName.substring(0, versionIdx);\n}\n\nexport function trimSHA(imageName: string) {\n  if (!imageName) {\n    return '';\n  }\n  if (imageName.indexOf('sha256:') === 0) {\n    return imageName.substring(7, 19);\n  }\n  return _.split(imageName, '@sha256')[0];\n}\n\nexport function joinCommand(command: null | Array<string> = []) {\n  if (!command) {\n    return '';\n  }\n\n  return command.join(' ');\n}\n\nexport function taskStatusBadge(text?: TaskState) {\n  const status = _.toLower(text);\n  if (\n    [\n      'new',\n      'allocated',\n      'assigned',\n      'accepted',\n      'preparing',\n      'ready',\n      'starting',\n      'remove',\n    ].includes(status)\n  ) {\n    return 'info';\n  }\n\n  if (['pending'].includes(status)) {\n    return 'warning';\n  }\n\n  if (['shutdown', 'failed', 'rejected', 'orphaned'].includes(status)) {\n    return 'danger';\n  }\n\n  if (['complete'].includes(status)) {\n    return 'primary';\n  }\n\n  if (['running'].includes(status)) {\n    return 'success';\n  }\n  return 'default';\n}\n\nexport function nodeStatusBadge(text: NodeStatus['State']) {\n  if (text === 'down' || text === 'unknown' || text === 'disconnected') {\n    return 'danger';\n  }\n\n  return 'success';\n}\n\nexport function hideShaSum(imageName = '') {\n  return imageName.split('@sha')[0];\n}\n","import { splitargs } from './splitargs';\n\nexport function commandStringToArray(command: string) {\n  return splitargs(command);\n}\n\nexport function commandArrayToString(array: string[]) {\n  return array.map((elem) => `'${elem}'`).join(' ');\n}\n","/**\n\nSplits strings into tokens by given separator except treating quoted part as a single token.\n\n\n#Usage\n```javascript\nvar splitargs = require('splitargs');\n\nvar i1 = \"I said 'I am sorry.', and he said \\\"it doesn't matter.\\\"\";\nvar o1 = splitargs(i1);\nconsole.log(o1);\n\n[ 'I',\n  'said',\n  'I am sorry.,',\n  'and',\n  'he',\n  'said',\n  'it doesn\\'t matter.' ]\n\n\nvar i2 = \"I said \\\"I am sorry.\\\", and he said \\\"it doesn't matter.\\\"\";\nvar o2 = splitargs(i2);\nconsole.log(o2);\n\n[ 'I',\n  'said',\n  'I am sorry.,',\n  'and',\n  'he',\n  'said',\n  'it doesn\\'t matter.' ]\n\n\nvar i3 = 'I said \"I am sorry.\", and he said \"it doesn\\'t matter.\"';\nvar o3 = splitargs(i3);\nconsole.log(o3);\n\n[ 'I',\n  'said',\n  'I am sorry.,',\n  'and',\n  'he',\n  'said',\n  'it doesn\\'t matter.' ]\n\n\nvar i4 = 'I said \\'I am sorry.\\', and he said \"it doesn\\'t matter.\"';\nvar o4 = splitargs(i4);\nconsole.log(o4);\n\n[ 'I',\n  'said',\n  'I am sorry.,',\n  'and',\n  'he',\n  'said',\n  'it doesn\\'t matter.' ]\n ```\n */\n\nexport function splitargs(\n  input: string,\n  sep?: RegExp | string,\n  keepQuotes = false\n) {\n  const separator = sep || /\\s/g;\n  let singleQuoteOpen = false;\n  let doubleQuoteOpen = false;\n  let tokenBuffer = [];\n  const ret = [];\n\n  const arr = input.split('');\n  for (let i = 0; i < arr.length; ++i) {\n    const element = arr[i];\n    const matches = element.match(separator);\n    // TODO rewrite without continue\n    /* eslint-disable no-continue */\n    if (element === \"'\" && !doubleQuoteOpen) {\n      if (keepQuotes) {\n        tokenBuffer.push(element);\n      }\n      singleQuoteOpen = !singleQuoteOpen;\n      continue;\n    } else if (element === '\"' && !singleQuoteOpen) {\n      if (keepQuotes) {\n        tokenBuffer.push(element);\n      }\n      doubleQuoteOpen = !doubleQuoteOpen;\n      continue;\n    }\n    /* eslint-enable no-continue */\n\n    if (!singleQuoteOpen && !doubleQuoteOpen && matches) {\n      if (tokenBuffer.length > 0) {\n        ret.push(tokenBuffer.join(''));\n        tokenBuffer = [];\n      } else if (sep) {\n        ret.push(element);\n      }\n    } else {\n      tokenBuffer.push(element);\n    }\n  }\n\n  if (tokenBuffer.length > 0) {\n    ret.push(tokenBuffer.join(''));\n  } else if (sep) {\n    ret.push('');\n  }\n\n  return ret;\n}\n","// original code comes from https://www.npmjs.com/package/x256\n// only picking the used parts as there is no type definition\n// package is unmaintained and repository doesn't exist anymore\n\n// colors scraped from\n// http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html\n// %s/ *\\d\\+ \\+#\\([^ ]\\+\\)/\\1\\r/g\n\nimport rawColors from './rawColors.json';\n\nexport type RGBColor = [number, number, number];\nexport type TextColor = string | undefined;\n\nfunction hexToRGB(hex: string): RGBColor {\n  const r = parseInt(hex.slice(0, 2), 16);\n  const g = parseInt(hex.slice(2, 4), 16);\n  const b = parseInt(hex.slice(4, 6), 16);\n  return [r, g, b];\n}\n\nexport const colors = rawColors.map(hexToRGB);\n\nexport const FOREGROUND_COLORS_BY_ANSI: {\n  [k: string]: RGBColor;\n} = {\n  black: colors[0],\n  red: colors[1],\n  green: colors[2],\n  yellow: colors[3],\n  blue: colors[4],\n  magenta: colors[5],\n  cyan: colors[6],\n  white: colors[7],\n  brightBlack: colors[8],\n  brightRed: colors[9],\n  brightGreen: colors[10],\n  brightYellow: colors[11],\n  brightBlue: colors[12],\n  brightMagenta: colors[13],\n  brightCyan: colors[14],\n  brightWhite: colors[15],\n};\n\nexport const BACKGROUND_COLORS_BY_ANSI: {\n  [k: string]: RGBColor;\n} = {\n  bgBlack: colors[0],\n  bgRed: colors[1],\n  bgGreen: colors[2],\n  bgYellow: colors[3],\n  bgBlue: colors[4],\n  bgMagenta: colors[5],\n  bgCyan: colors[6],\n  bgWhite: colors[7],\n  bgBrightBlack: colors[8],\n  bgBrightRed: colors[9],\n  bgBrightGreen: colors[10],\n  bgBrightYellow: colors[11],\n  bgBrightBlue: colors[12],\n  bgBrightMagenta: colors[13],\n  bgBrightCyan: colors[14],\n  bgBrightWhite: colors[15],\n};\n","import { FontWeight } from 'xterm';\n\nimport { type TextColor } from './colors';\n\nexport type Token = string | number;\n\nexport type Level =\n  | 'debug'\n  | 'info'\n  | 'warn'\n  | 'error'\n  | 'DBG'\n  | 'INF'\n  | 'WRN'\n  | 'ERR';\n\nexport type JSONStackTrace = {\n  func: string;\n  line: string;\n  source: string;\n}[];\n\nexport type JSONLogs = {\n  [k: string]: unknown;\n  time: number;\n  level: Level;\n  caller: string;\n  message: string;\n  stack_trace?: JSONStackTrace;\n};\n\nexport type Span = {\n  fgColor?: TextColor;\n  bgColor?: TextColor;\n  text: string;\n  fontWeight?: FontWeight;\n};\n\nexport type FormattedLine = {\n  spans: Span[];\n  line: string;\n};\n\nexport const TIMESTAMP_LENGTH = 31; // 30 for timestamp + 1 for trailing space\n\nexport const Colors = {\n  Grey: 'var(--text-log-viewer-color-json-grey)',\n  Magenta: 'var(--text-log-viewer-color-json-magenta)',\n  Yellow: 'var(--text-log-viewer-color-json-yellow)',\n  Green: 'var(--text-log-viewer-color-json-green)',\n  Red: 'var(--text-log-viewer-color-json-red)',\n  Blue: 'var(--text-log-viewer-color-json-blue)',\n};\n","import { format } from 'date-fns';\nimport { takeRight } from 'lodash';\n\nimport { Span, Level, Colors, JSONStackTrace, FormattedLine } from './types';\n\nconst spaceSpan: Span = { text: ' ' };\n\nfunction logLevelToSpan(level: Level): Span {\n  switch (level) {\n    case 'debug':\n    case 'DBG':\n      return {\n        fgColor: Colors.Grey,\n        text: 'DBG',\n        fontWeight: 'bold',\n      };\n    case 'info':\n    case 'INF':\n      return {\n        fgColor: Colors.Green,\n        text: 'INF',\n        fontWeight: 'bold',\n      };\n    case 'warn':\n    case 'WRN':\n      return {\n        fgColor: Colors.Yellow,\n        text: 'WRN',\n        fontWeight: 'bold',\n      };\n    case 'error':\n    case 'ERR':\n      return {\n        fgColor: Colors.Red,\n        text: 'ERR',\n        fontWeight: 'bold',\n      };\n    default:\n      return { text: level };\n  }\n}\n\nexport function formatTime(\n  time: number | string | undefined,\n  spans: Span[],\n  line: string\n) {\n  let nl = line;\n  if (time) {\n    let date = '';\n    if (typeof time === 'number') {\n      // time is a number, so it is the number of seconds OR milliseconds since Unix Epoch (1970-01-01T00:00:00.000Z)\n      // we need to know if time's unit is second or millisecond\n      // 253402214400 is the numer of seconds between Unix Epoch and 9999-12-31T00:00:00.000Z\n      // if time is greater than 253402214400, then time unit cannot be second, so it is millisecond\n      const timestampInMilliseconds = time > 253402214400 ? time : time * 1000;\n      date = format(new Date(timestampInMilliseconds), 'Y/MM/dd hh:mmaa');\n    } else {\n      date = time;\n    }\n    spans.push({ fgColor: Colors.Grey, text: date }, spaceSpan);\n    nl += `${date} `;\n  }\n  return nl;\n}\n\nexport function formatLevel(\n  level: Level | undefined,\n  spans: Span[],\n  line: string\n) {\n  let nl = line;\n  if (level) {\n    const levelSpan = logLevelToSpan(level);\n    spans.push(levelSpan, spaceSpan);\n    nl += `${levelSpan.text} `;\n  }\n  return nl;\n}\n\nexport function formatCaller(\n  caller: string | undefined,\n  spans: Span[],\n  line: string\n) {\n  let nl = line;\n  if (caller) {\n    const trim = takeRight(caller.split('/'), 2).join('/');\n    spans.push(\n      { fgColor: Colors.Magenta, text: trim, fontWeight: 'bold' },\n      spaceSpan\n    );\n    spans.push({ fgColor: Colors.Blue, text: '>' }, spaceSpan);\n    nl += `${trim} > `;\n  }\n  return nl;\n}\n\nexport function formatMessage(\n  message: string,\n  spans: Span[],\n  line: string,\n  hasKeys: boolean\n) {\n  let nl = line;\n  if (message) {\n    spans.push({ fgColor: Colors.Magenta, text: `${message}` }, spaceSpan);\n    nl += `${message} `;\n\n    if (hasKeys) {\n      spans.push({ fgColor: Colors.Magenta, text: `|` }, spaceSpan);\n      nl += '| ';\n    }\n  }\n  return nl;\n}\n\nexport function formatKeyValuePair(\n  key: string,\n  value: unknown,\n  spans: Span[],\n  line: string,\n  isLastKey: boolean\n) {\n  let nl = line;\n\n  const strValue = typeof value !== 'string' ? JSON.stringify(value) : value;\n\n  spans.push(\n    { fgColor: Colors.Blue, text: `${key}=` },\n    {\n      fgColor: key === 'error' || key === 'ERR' ? Colors.Red : Colors.Magenta,\n      text: strValue,\n    }\n  );\n  if (!isLastKey) spans.push(spaceSpan);\n  nl += `${key}=${strValue}${!isLastKey ? ' ' : ''}`;\n\n  return nl;\n}\n\nexport function formatStackTrace(\n  stackTrace: JSONStackTrace | undefined,\n  lines: FormattedLine[]\n) {\n  if (stackTrace) {\n    stackTrace.forEach(({ func, line: lineNumber, source }) => {\n      const line = `    at ${func} (${source}:${lineNumber})`;\n      const spans: Span[] = [\n        spaceSpan,\n        spaceSpan,\n        spaceSpan,\n        spaceSpan,\n        { text: 'at ', fgColor: Colors.Grey },\n        { text: func, fgColor: Colors.Red },\n        { text: `(${source}:${lineNumber})`, fgColor: Colors.Grey },\n      ];\n      lines.push({ line, spans });\n    });\n  }\n}\n","import {\n  formatCaller,\n  formatKeyValuePair,\n  formatLevel,\n  formatMessage,\n  formatStackTrace,\n  formatTime,\n} from './formatters';\nimport {\n  FormattedLine,\n  JSONStackTrace,\n  Level,\n  Span,\n  TIMESTAMP_LENGTH,\n} from './types';\n\nconst dateRegex = /(\\d{4}\\/\\d{2}\\/\\d{2} \\d{2}:\\d{2}[AP]M) /; // \"2022/02/01 04:30AM \"\nconst levelRegex = /(\\w{3}) /; // \"INF \" or \"ERR \"\nconst callerRegex = /(.+?.go:\\d+) /; // \"path/to/file.go:line \"\nconst chevRegex = /> /; // \"> \"\nconst messageAndPairsRegex = /(.*)/; // include the rest of the string in a separate group\n\nconst keyRegex = /(\\S+=)/g; // \"\"\n\nexport const ZerologRegex = concatRegex(\n  dateRegex,\n  levelRegex,\n  callerRegex,\n  chevRegex,\n  messageAndPairsRegex\n);\n\nfunction concatRegex(...regs: RegExp[]) {\n  const flags = Array.from(\n    new Set(\n      regs\n        .map((r) => r.flags)\n        .join('')\n        .split('')\n    )\n  ).join('');\n  const source = regs.map((r) => r.source).join('');\n  return new RegExp(source, flags);\n}\n\ntype Pair = {\n  key: string;\n  value: string;\n};\n\nexport function formatZerologLogs(rawText: string, withTimestamps?: boolean) {\n  const spans: Span[] = [];\n  const lines: FormattedLine[] = [];\n  let line = '';\n\n  const text = withTimestamps ? rawText.substring(TIMESTAMP_LENGTH) : rawText;\n\n  if (withTimestamps) {\n    const timestamp = rawText.substring(0, TIMESTAMP_LENGTH);\n    spans.push({ text: timestamp });\n    line += `${timestamp} `;\n  }\n\n  const [, date, level, caller, messageAndPairs] =\n    text.match(ZerologRegex) || [];\n\n  const [message, pairs] = extractPairs(messageAndPairs);\n\n  line += formatTime(date, spans, line);\n  line += formatLevel(level as Level, spans, line);\n  line += formatCaller(caller, spans, line);\n  line += formatMessage(message, spans, line, !!pairs.length);\n\n  let stackTrace: JSONStackTrace | undefined;\n  const stackTraceIndex = pairs.findIndex((p) => p.key === 'stack_trace');\n\n  if (stackTraceIndex !== -1) {\n    stackTrace = JSON.parse(pairs[stackTraceIndex].value);\n    pairs.splice(stackTraceIndex);\n  }\n\n  pairs.forEach(({ key, value }, idx) => {\n    line += formatKeyValuePair(\n      key,\n      value,\n      spans,\n      line,\n      idx === pairs.length - 1\n    );\n  });\n  lines.push({ line, spans });\n\n  formatStackTrace(stackTrace, lines);\n\n  return lines;\n}\n\nfunction extractPairs(messageAndPairs: string): [string, Pair[]] {\n  const pairs: Pair[] = [];\n  let [message, rawPairs] = messageAndPairs.split('|');\n\n  if (!messageAndPairs.includes('|') && !rawPairs) {\n    rawPairs = message;\n    message = '';\n  }\n  message = message.trim();\n  rawPairs = rawPairs.trim();\n\n  const matches = [...rawPairs.matchAll(keyRegex)];\n\n  matches.forEach((m, idx) => {\n    const rawKey = m[0];\n    const key = rawKey.slice(0, -1);\n    const start = m.index || 0;\n    const end = idx !== matches.length - 1 ? matches[idx + 1].index : undefined;\n    const value = (\n      end\n        ? rawPairs.slice(start + rawKey.length, end)\n        : rawPairs.slice(start + rawKey.length)\n    ).trim();\n    pairs.push({ key, value });\n  });\n\n  return [message, pairs];\n}\n","import tokenize from '@nxmix/tokenize-ansi';\nimport { FontWeight } from 'xterm';\n\nimport {\n  colors,\n  BACKGROUND_COLORS_BY_ANSI,\n  FOREGROUND_COLORS_BY_ANSI,\n  RGBColor,\n} from './colors';\nimport { formatJSONLine } from './formatJSONLogs';\nimport { formatZerologLogs, ZerologRegex } from './formatZerologLogs';\nimport { Token, Span, TIMESTAMP_LENGTH, FormattedLine } from './types';\n\ntype FormatOptions = {\n  stripHeaders?: boolean;\n  withTimestamps?: boolean;\n  splitter?: string;\n};\n\nconst defaultOptions: FormatOptions = {\n  splitter: '\\n',\n};\n\nexport function formatLogs(\n  rawLogs: string,\n  {\n    stripHeaders,\n    withTimestamps,\n    splitter = '\\n',\n  }: FormatOptions = defaultOptions\n) {\n  let logs = rawLogs;\n  if (stripHeaders) {\n    logs = stripHeadersFunc(logs);\n  }\n  // if JSON logs come serialized 2 times, parse them once to unwrap them\n  if (logs.startsWith('\"')) {\n    try {\n      logs = JSON.parse(logs);\n    } catch (error) {\n      // noop, throw error away if logs cannot be parsed\n    }\n  }\n\n  const tokens: Token[][] = tokenize(logs);\n  const formattedLogs: FormattedLine[] = [];\n\n  let fgColor: string | undefined;\n  let bgColor: string | undefined;\n  let fontWeight: FontWeight | undefined;\n  let line = '';\n  let spans: Span[] = [];\n\n  tokens.forEach((token) => {\n    const [type] = token;\n\n    const fgAnsi = FOREGROUND_COLORS_BY_ANSI[type];\n    const bgAnsi = BACKGROUND_COLORS_BY_ANSI[type];\n\n    if (fgAnsi) {\n      fgColor = cssColorFromRgb(fgAnsi);\n    } else if (type === 'moreColor') {\n      fgColor = extendedColorForToken(token);\n    } else if (type === 'fgDefault') {\n      fgColor = undefined;\n    } else if (bgAnsi) {\n      bgColor = cssColorFromRgb(bgAnsi);\n    } else if (type === 'bgMoreColor') {\n      bgColor = extendedColorForToken(token);\n    } else if (type === 'bgDefault') {\n      bgColor = undefined;\n    } else if (type === 'reset') {\n      fgColor = undefined;\n      bgColor = undefined;\n      fontWeight = undefined;\n    } else if (type === 'bold') {\n      fontWeight = 'bold';\n    } else if (type === 'normal') {\n      fontWeight = 'normal';\n    } else if (type === 'text') {\n      const tokenLines = (token[1] as string).split(splitter);\n\n      tokenLines.forEach((tokenLine, idx) => {\n        if (idx && line) {\n          formattedLogs.push({ line, spans });\n          line = '';\n          spans = [];\n        }\n\n        const text = stripEscapeCodes(tokenLine);\n        try {\n          if (\n            (!withTimestamps && text.startsWith('{')) ||\n            (withTimestamps && text.substring(TIMESTAMP_LENGTH).startsWith('{'))\n          ) {\n            const lines = formatJSONLine(text, withTimestamps);\n            formattedLogs.push(...lines);\n          } else if (\n            (!withTimestamps && ZerologRegex.test(text)) ||\n            (withTimestamps &&\n              ZerologRegex.test(text.substring(TIMESTAMP_LENGTH)))\n          ) {\n            const lines = formatZerologLogs(text, withTimestamps);\n            formattedLogs.push(...lines);\n          } else {\n            spans.push({ fgColor, bgColor, text, fontWeight });\n            line += text;\n          }\n        } catch (error) {\n          // in case parsing fails for whatever reason, push the raw logs and continue\n          spans.push({ fgColor, bgColor, text, fontWeight });\n          line += text;\n        }\n      });\n    }\n  });\n  if (line) {\n    formattedLogs.push({ line, spans });\n  }\n\n  return formattedLogs;\n}\n\nfunction stripHeadersFunc(logs: string) {\n  return logs.substring(8).replace(/\\r?\\n(.{8})/g, '\\n');\n}\n\nfunction stripEscapeCodes(logs: string) {\n  return logs.replace(\n    // eslint-disable-next-line no-control-regex\n    /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,\n    ''\n  );\n}\n\nfunction cssColorFromRgb(rgb: RGBColor) {\n  const [r, g, b] = rgb;\n\n  return `rgb(${r}, ${g}, ${b})`;\n}\n\n// assuming types based on original JS implementation\n// there is not much type definitions for the tokenize library\nfunction extendedColorForToken(token: Token[]) {\n  const [, colorMode, colorRef] = token as [undefined, number, number];\n\n  if (colorMode === 2) {\n    return cssColorFromRgb(token.slice(2) as RGBColor);\n  }\n\n  if (colorMode === 5 && colors[colorRef]) {\n    return cssColorFromRgb(colors[colorRef]);\n  }\n\n  return '';\n}\n","import { without } from 'lodash';\n\nimport { FormattedLine, Span, JSONLogs, TIMESTAMP_LENGTH } from './types';\nimport {\n  formatCaller,\n  formatKeyValuePair,\n  formatLevel,\n  formatMessage,\n  formatStackTrace,\n  formatTime,\n} from './formatters';\n\nfunction removeKnownKeys(keys: string[]) {\n  return without(keys, 'time', 'level', 'caller', 'message', 'stack_trace');\n}\n\nexport function formatJSONLine(\n  rawText: string,\n  withTimestamps?: boolean\n): FormattedLine[] {\n  const spans: Span[] = [];\n  const lines: FormattedLine[] = [];\n  let line = '';\n\n  const text = withTimestamps ? rawText.substring(TIMESTAMP_LENGTH) : rawText;\n\n  const json: JSONLogs = JSON.parse(text);\n  const { time, level, caller, message, stack_trace: stackTrace } = json;\n  const keys = removeKnownKeys(Object.keys(json));\n\n  if (withTimestamps) {\n    const timestamp = rawText.substring(0, TIMESTAMP_LENGTH);\n    spans.push({ text: timestamp });\n    line += `${timestamp} `;\n  }\n  line += formatTime(time, spans, line);\n  line += formatLevel(level, spans, line);\n  line += formatCaller(caller, spans, line);\n  line += formatMessage(message, spans, line, !!keys.length);\n\n  keys.forEach((key, idx) => {\n    line += formatKeyValuePair(\n      key,\n      json[key],\n      spans,\n      line,\n      idx === keys.length - 1\n    );\n  });\n\n  lines.push({ line, spans });\n  formatStackTrace(stackTrace, lines);\n\n  return lines;\n}\n","import { BROWSER_OS_PLATFORM } from '@/react/constants';\n\nexport const NEW_LINE_BREAKER = BROWSER_OS_PLATFORM === 'win' ? '\\r\\n' : '\\n';\n","import { NEW_LINE_BREAKER } from './constants';\nimport { FormattedLine } from './types';\n\ntype FormatFunc = (line: FormattedLine) => string;\n\nexport function concatLogsToString(\n  logs: FormattedLine[],\n  formatFunc: FormatFunc = (line) => line.line\n) {\n  return logs.reduce(\n    (acc, formattedLine) => acc + formatFunc(formattedLine) + NEW_LINE_BREAKER,\n    ''\n  );\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport async function ping(environmentId: EnvironmentId) {\n  try {\n    await axios.get(`/endpoints/${environmentId}/docker/_ping`);\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n","import helm from '@/assets/ico/vendor/helm.svg?c';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nexport const HelmIcon = <BadgeIcon icon={helm} />;\n","import { KubernetesPodNodeAffinityNodeSelectorRequirementOperators } from '../pod/models';\n\nexport function nodeAffinityValues(\n  values: string | string[],\n  operator: KubernetesPodNodeAffinityNodeSelectorRequirementOperators\n) {\n  if (\n    operator === KubernetesPodNodeAffinityNodeSelectorRequirementOperators.IN ||\n    operator ===\n      KubernetesPodNodeAffinityNodeSelectorRequirementOperators.NOT_IN\n  ) {\n    return values;\n  }\n\n  if (\n    operator ===\n      KubernetesPodNodeAffinityNodeSelectorRequirementOperators.EXISTS ||\n    operator ===\n      KubernetesPodNodeAffinityNodeSelectorRequirementOperators.DOES_NOT_EXIST\n  ) {\n    return '';\n  }\n\n  if (\n    operator ===\n      KubernetesPodNodeAffinityNodeSelectorRequirementOperators.GREATER_THAN ||\n    operator ===\n      KubernetesPodNodeAffinityNodeSelectorRequirementOperators.LOWER_THAN\n  ) {\n    return values[0];\n  }\n  return '';\n}\n","import {\n  AppType,\n  AppDataAccessPolicy,\n  DeploymentType,\n} from '@/react/kubernetes/applications/types';\nimport { ServiceType } from '@/react/kubernetes/services/types';\n\n// The following constants are used by angular views and can be removed once they are no longer referenced\nexport const KubernetesApplicationTypes: Record<AppType, AppType> = {\n  Deployment: 'Deployment',\n  StatefulSet: 'StatefulSet',\n  DaemonSet: 'DaemonSet',\n  Pod: 'Pod',\n  Helm: 'Helm',\n} as const;\n\nexport const KubernetesApplicationDeploymentTypes: Record<\n  DeploymentType,\n  DeploymentType\n> = {\n  Global: 'Global',\n  Replicated: 'Replicated',\n} as const;\n\nexport const KubernetesApplicationDataAccessPolicies: Record<\n  AppDataAccessPolicy,\n  AppDataAccessPolicy\n> = {\n  Isolated: 'Isolated',\n  Shared: 'Shared',\n} as const;\n\nexport const KubernetesApplicationServiceTypes: Record<\n  ServiceType,\n  ServiceType\n> = {\n  ClusterIP: 'ClusterIP',\n  NodePort: 'NodePort',\n  LoadBalancer: 'LoadBalancer',\n  ExternalName: 'ExternalName',\n} as const;\n","import { Transition, TransitionService } from '@uirouter/angularjs';\n\nimport { IAuthenticationService } from './services/types';\n\nexport enum AccessHeaders {\n  Restricted = 'restricted',\n  Admin = 'admin',\n  EdgeAdmin = 'edge-admin',\n}\n\ntype Authorizations = string[];\ntype Access =\n  | AccessHeaders.Restricted\n  | AccessHeaders.Admin\n  | AccessHeaders.EdgeAdmin\n  | Authorizations;\n\nexport function requiresAuthHook(transitionService: TransitionService) {\n  transitionService.onBefore({}, checkAuthorizations);\n}\n\n// exported for tests\nexport async function checkAuthorizations(transition: Transition) {\n  const authService: IAuthenticationService = transition\n    .injector()\n    .get('Authentication');\n  const stateTo = transition.to();\n  const $state = transition.router.stateService;\n\n  const { access } = stateTo.data || {};\n  if (!isAccess(access)) {\n    return undefined;\n  }\n\n  const isLoggedIn = await authService.init();\n\n  if (!isLoggedIn) {\n    // eslint-disable-next-line no-console\n    console.info(\n      'User is not authenticated, redirecting to login, access:',\n      access\n    );\n    return $state.target('portainer.logout');\n  }\n\n  if (typeof access === 'string') {\n    if (access === 'restricted') {\n      return undefined;\n    }\n\n    if (access === 'admin') {\n      if (authService.isPureAdmin()) {\n        return undefined;\n      }\n\n      // eslint-disable-next-line no-console\n      console.info(\n        'User is not an admin, redirecting to home, access:',\n        access\n      );\n      return $state.target('portainer.home');\n    }\n\n    if (access === 'edge-admin') {\n      if (authService.isAdmin(true)) {\n        return undefined;\n      }\n\n      // eslint-disable-next-line no-console\n      console.info(\n        'User is not an edge admin, redirecting to home, access:',\n        access\n      );\n      return $state.target('portainer.home');\n    }\n  }\n\n  if (access.length > 0 && !authService.hasAuthorizations(access)) {\n    // eslint-disable-next-line no-console\n    console.info(\n      'User does not have the required authorizations, redirecting to home'\n    );\n    return $state.target('portainer.home');\n  }\n\n  return undefined;\n}\n\nfunction isAccess(access: unknown): access is Access {\n  if (!access || (typeof access !== 'string' && !Array.isArray(access))) {\n    return false;\n  }\n\n  if (Array.isArray(access)) {\n    return access.every((a) => typeof a === 'string');\n  }\n\n  return ['restricted', 'admin', 'edge-admin'].includes(access);\n}\n","import {\n  IComponentOptions,\n  IComponentController,\n  IFormController,\n  IScope,\n} from 'angular';\n\nclass BoxSelectorController implements IComponentController {\n  formCtrl!: IFormController;\n\n  onChange!: (value: string | number) => void;\n\n  radioName!: string;\n\n  $scope: IScope;\n\n  /* @ngInject */\n  constructor($scope: IScope) {\n    this.handleChange = this.handleChange.bind(this);\n\n    this.$scope = $scope;\n  }\n\n  handleChange(value: string | number, limitedToBE: boolean) {\n    this.$scope.$evalAsync(() => {\n      this.formCtrl.$setValidity(this.radioName, !limitedToBE, this.formCtrl);\n      this.onChange(value);\n    });\n  }\n}\n\nexport const BoxSelectorAngular: IComponentOptions = {\n  template: `<box-selector-react\n    value=\"$ctrl.value\"\n    on-change=\"$ctrl.handleChange\"\n    options=\"$ctrl.options\"\n    radio-name=\"$ctrl.radioName\"\n    slim=\"$ctrl.slim\"\n  ></box-selector-react>`,\n  bindings: {\n    value: '<',\n    onChange: '<',\n    options: '<',\n    radioName: '<',\n    slim: '<',\n  },\n  require: {\n    formCtrl: '^form',\n  },\n  controller: BoxSelectorController,\n};\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport { IconProps } from '@@/Icon';\n\nexport function buildOption<T extends number | string>(\n  id: BoxSelectorOption<T>['id'],\n  icon: IconProps['icon'],\n  label: BoxSelectorOption<T>['label'],\n  description: BoxSelectorOption<T>['description'],\n  value: BoxSelectorOption<T>['value'],\n  feature?: FeatureId\n): BoxSelectorOption<T> {\n  return { id, icon, label, description, value, feature };\n}\n","import angular from 'angular';\n\nimport { react2angular } from '@/react-tools/react2angular';\n\nimport { BoxSelector } from '@@/BoxSelector';\n\nimport { BoxSelectorAngular } from './BoxSelectorAngular';\n\nexport { buildOption } from './utils';\nconst BoxSelectorReact = react2angular(BoxSelector, [\n  'isMulti',\n  'value',\n  'onChange',\n  'options',\n  'radioName',\n  'slim',\n  'hiddenSpacingCount',\n]);\n\nexport const boxSelectorModule = angular\n  .module('app.portainer.component.box-selector', [])\n  .component('boxSelectorReact', BoxSelectorReact)\n  .component('boxSelector', BoxSelectorAngular).name;\n","export default class PortainerError extends Error {\n  err?: unknown;\n\n  isPortainerError = true;\n\n  constructor(msg: string, err?: unknown) {\n    super(msg);\n    this.err = err;\n  }\n}\n\nexport function isPortainerError(error: unknown): error is PortainerError {\n  return (\n    !!error &&\n    typeof error === 'object' &&\n    'isPortainerError' in error &&\n    (error as PortainerError).isPortainerError\n  );\n}\n","export function getValueAsArrayOfStrings(value: unknown): string[] {\n  if (Array.isArray(value)) {\n    return value;\n  }\n\n  if (!value || (typeof value !== 'string' && typeof value !== 'number')) {\n    return [];\n  }\n\n  if (typeof value === 'number') {\n    return [value.toString()];\n  }\n\n  return [value];\n}\n","/**\n * runs the provided promises in a sequence, and returns a promise that resolves when all promises have resolved\n *\n * @param promises a list of functions that return promises\n */\nexport function promiseSequence(promises: (() => Promise<unknown>)[]) {\n  return promises.reduce(\n    (promise, nextPromise) => promise.then(nextPromise),\n    Promise.resolve(undefined as unknown)\n  );\n}\n\nexport function isFulfilled<T>(\n  result: PromiseSettledResult<T>\n): result is PromiseFulfilledResult<T> {\n  return result.status === 'fulfilled';\n}\n\nexport function isRejected<T>(\n  result: PromiseSettledResult<T>\n): result is PromiseRejectedResult {\n  return result.status === 'rejected';\n}\n\nexport function getFulfilledResults<T>(\n  results: Array<PromiseSettledResult<T>>\n) {\n  return results.filter(isFulfilled).map((result) => result.value);\n}\n","export function pluralize(val: number, word: string, plural = `${word}s`) {\n  return [1, -1].includes(Number(val)) ? word : plural;\n}\n\nexport function addPlural(value: number, word: string, plural = `${word}s`) {\n  return `${value} ${pluralize(value, word, plural)}`;\n}\n","import uuid from 'uuid';\n\nimport {\n  API_ENDPOINT_EDGE_STACKS,\n  API_ENDPOINT_STACKS,\n  API_ENDPOINT_WEBHOOKS,\n} from '@/constants';\n\nimport { baseHref } from './pathHelper';\n\nconst baseUrl = getBaseUrl();\n\nexport function dockerWebhookUrl(token: string) {\n  return `${baseUrl}${API_ENDPOINT_WEBHOOKS}/${token}`;\n}\n\nexport function baseStackWebhookUrl() {\n  return `${baseUrl}${API_ENDPOINT_STACKS}/webhooks`;\n}\n\nexport function stackWebhookUrl(token: string) {\n  return `${baseStackWebhookUrl()}/${token}`;\n}\n\nexport function createWebhookId() {\n  return uuid();\n}\n\nexport function baseEdgeStackWebhookUrl() {\n  return `${baseUrl}${API_ENDPOINT_EDGE_STACKS}/webhooks`;\n}\n\n/* @ngInject */\nexport function WebhookHelperFactory() {\n  return {\n    returnWebhookUrl: dockerWebhookUrl,\n    getBaseStackWebhookUrl: baseStackWebhookUrl,\n    returnStackWebhookUrl: stackWebhookUrl,\n  };\n}\n\nfunction getBaseUrl() {\n  const protocol = window.location.protocol.toLowerCase().replace(':', '');\n\n  if (protocol === 'file') {\n    return baseHref();\n  }\n\n  const { hostname } = window.location;\n  const port = parseInt(window.location.port, 10);\n  const displayPort =\n    (protocol === 'http' && port === 80) ||\n    (protocol === 'https' && port === 443) ||\n    Number.isNaN(port)\n      ? ''\n      : `:${port}`;\n  return `${protocol}://${hostname}${displayPort}${baseHref()}`;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { FDOConfiguration, DeviceConfiguration, Profile } from './model';\n\nconst BASE_URL = '/fdo';\n\nexport async function configureFDO(formValues: FDOConfiguration) {\n  try {\n    await axios.post(`${BASE_URL}/configure`, formValues);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to configure FDO');\n  }\n}\n\nexport async function configureDevice(\n  deviceId: string,\n  deviceConfig: DeviceConfiguration\n) {\n  try {\n    await axios.post(`${BASE_URL}/configure/${deviceId}`, deviceConfig);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to configure device');\n  }\n}\n\nexport async function createProfile(\n  name: string,\n  method: string,\n  profileFileContent: string\n) {\n  const payload = {\n    name,\n    profileFileContent,\n  };\n  try {\n    await axios.post(`${BASE_URL}/profiles`, payload, {\n      params: { method },\n    });\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to create profile');\n  }\n}\n\nexport async function getProfiles() {\n  try {\n    const { data: profiles } = await axios.get<Profile[]>(\n      `${BASE_URL}/profiles`\n    );\n    return profiles;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve the profiles');\n  }\n}\n\nexport async function getProfile(profileId: number) {\n  try {\n    const { data: profile } = await axios.get<Profile>(\n      `${BASE_URL}/profiles/${profileId}`\n    );\n    return profile;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve profile');\n  }\n}\n\nexport async function deleteProfile(profileId: number) {\n  try {\n    await axios.delete(`${BASE_URL}/profiles/${profileId}`);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete profile');\n  }\n}\n\nexport async function updateProfile(\n  id: number,\n  name: string,\n  profileFileContent: string\n) {\n  const payload = {\n    name,\n    profileFileContent,\n  };\n  try {\n    await axios.put(`${BASE_URL}/profiles/${id}`, payload);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update profile');\n  }\n}\n\nexport async function duplicateProfile(id: number) {\n  try {\n    const { data: profile } = await axios.post<Profile>(\n      `${BASE_URL}/profiles/${id}/duplicate`\n    );\n    return profile;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to duplicate profile');\n  }\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  OpenAMTConfiguration,\n  AMTInformation,\n  AuthorizationResponse,\n  DeviceFeatures,\n} from '@/react/edge/edge-devices/open-amt/types';\n\nconst BASE_URL = '/open_amt';\n\nexport async function configureAMT(formValues: OpenAMTConfiguration) {\n  try {\n    await axios.post(`${BASE_URL}/configure`, formValues);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to configure AMT');\n  }\n}\n\nexport async function getAMTInfo(environmentId: EnvironmentId) {\n  try {\n    const { data: amtInformation } = await axios.get<AMTInformation>(\n      `${BASE_URL}/${environmentId}/info`\n    );\n\n    return amtInformation;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve environment information'\n    );\n  }\n}\n\nexport async function enableDeviceFeatures(\n  environmentId: EnvironmentId,\n  deviceGUID: string,\n  features: DeviceFeatures\n) {\n  try {\n    const featuresPayload = { features };\n    const { data: authorizationResponse } =\n      await axios.post<AuthorizationResponse>(\n        `${BASE_URL}/${environmentId}/devices/${deviceGUID}/features`,\n        featuresPayload\n      );\n    return authorizationResponse;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to enable device features');\n  }\n}\n","import Axios, {\n  AxiosError,\n  AxiosInstance,\n  InternalAxiosRequestConfig,\n} from 'axios';\nimport {\n  setupCache,\n  buildMemoryStorage,\n  CacheAxiosResponse,\n  InterpreterResult,\n  AxiosCacheInstance,\n} from 'axios-cache-interceptor';\nimport { loadProgressBar } from 'axios-progress-bar';\nimport 'axios-progress-bar/dist/nprogress.css';\n\nimport PortainerError from '@/portainer/error';\n\nimport {\n  CACHE_DURATION,\n  dispatchCacheRefreshEventIfNeeded,\n  portainerAgentManagerOperation,\n  portainerAgentTargetHeader,\n} from './http-request.helper';\n\nconst portainerCacheHeader = 'X-Portainer-Cache';\n\nconst storage = buildMemoryStorage();\n// mock the cache adapter\nexport const cache = {\n  store: {\n    clear: () => {\n      storage.data = {};\n    },\n  },\n};\n\nfunction headerInterpreter(\n  headers?: CacheAxiosResponse['headers']\n): InterpreterResult {\n  if (!headers) {\n    return 'not enough headers';\n  }\n\n  if (headers[portainerCacheHeader]) {\n    return CACHE_DURATION;\n  }\n\n  return 'not enough headers';\n}\n\nconst axios = Axios.create({ baseURL: 'api' });\naxios.interceptors.request.use((req) => {\n  dispatchCacheRefreshEventIfNeeded(req);\n  return req;\n});\n\n// type guard the axios instance\nfunction isAxiosCacheInstance(\n  a: AxiosInstance | AxiosCacheInstance\n): a is AxiosCacheInstance {\n  return (a as AxiosCacheInstance).defaults.cache !== undefined;\n}\n\n// when entering a kubernetes environment, or updating user settings, update the cache adapter\nexport function updateAxiosAdapter(useCache: boolean) {\n  if (useCache) {\n    if (isAxiosCacheInstance(axios)) {\n      return;\n    }\n\n    setupCache(axios, {\n      storage,\n      ttl: CACHE_DURATION,\n      methods: ['get', 'head', 'options', 'post'],\n      // cachePredicate determines if the response should be cached based on response\n      cachePredicate: {\n        containsHeaders: {\n          [portainerCacheHeader]: () => true,\n        },\n        ignoreUrls: [/^(?!.*\\bkubernetes\\b).*$/gm],\n        responseMatch: (res) => {\n          if (res.config.method === 'post') {\n            if (res.config.url?.includes('selfsubjectaccessreviews')) {\n              return true;\n            }\n            return false;\n          }\n          return true;\n        },\n      },\n      // headerInterpreter interprets the response headers to determine if the response should be cached\n      headerInterpreter,\n    });\n  }\n}\n\nexport default axios;\n\nloadProgressBar(undefined, axios);\n\nexport const agentTargetHeader = 'X-PortainerAgent-Target';\n\nexport function agentInterceptor(config: InternalAxiosRequestConfig) {\n  if (!config.url || !config.url.includes('/docker/')) {\n    return config;\n  }\n\n  const newConfig = { ...config };\n  const target = portainerAgentTargetHeader();\n  if (target) {\n    newConfig.headers[agentTargetHeader] = target;\n  }\n\n  if (portainerAgentManagerOperation()) {\n    newConfig.headers['X-PortainerAgent-ManagerOperation'] = '1';\n  }\n\n  return newConfig;\n}\n\naxios.interceptors.request.use(agentInterceptor);\n\naxios.interceptors.response.use(undefined, (error) => {\n  if (\n    error.response?.status === 401 &&\n    !error.config.url.includes('/v2/') &&\n    !error.config.url.includes('/api/v4/') &&\n    isTransitionRequiresAuthentication()\n  ) {\n    // eslint-disable-next-line no-console\n    console.error('Unauthorized request, logging out');\n    window.location.hash = '/logout';\n    window.location.reload();\n  }\n\n  return Promise.reject(error);\n});\n\nconst UNAUTHENTICATED_ROUTES = [\n  '/logout',\n  '/internal-auth',\n  '/auth',\n  '/init/admin',\n];\nfunction isTransitionRequiresAuthentication() {\n  return !UNAUTHENTICATED_ROUTES.some((route) =>\n    window.location.hash.includes(route)\n  );\n}\n\n/**\n * Parses an Axios error and returns a PortainerError.\n * @param err The original error.\n * @param msg An optional error message to prepend.\n * @param parseError A function to parse AxiosErrors. Defaults to defaultErrorParser.\n * @returns A PortainerError with the parsed error message and details.\n */\nexport function parseAxiosError(\n  err: unknown,\n  msg = '',\n  parseError = defaultErrorParser\n) {\n  let resultErr = err;\n  let resultMsg = msg;\n\n  if (isAxiosError(err)) {\n    const { error, details } = parseError(err);\n    resultErr = error;\n    if (msg && details) {\n      resultMsg = `${msg}: ${details}`;\n    } else {\n      resultMsg = msg || details;\n    }\n  }\n\n  return new PortainerError(resultMsg, resultErr);\n}\n\ntype DefaultAxiosErrorType = {\n  message: string;\n  details?: string;\n};\n\nexport function defaultErrorParser(axiosError: AxiosError<unknown>) {\n  if (isDefaultResponse(axiosError.response?.data)) {\n    const message = axiosError.response?.data.message || '';\n    const details = axiosError.response?.data.details || message;\n    const error = new Error(message);\n    return { error, details };\n  }\n\n  const details = axiosError.response?.data\n    ? axiosError.response?.data.toString()\n    : '';\n  const error = new Error('Axios error');\n  return { error, details };\n}\n\nexport function isDefaultResponse(\n  data: unknown\n): data is DefaultAxiosErrorType {\n  return (\n    !!data &&\n    typeof data === 'object' &&\n    'message' in data &&\n    typeof data.message === 'string'\n  );\n}\n\nexport function isAxiosError<ResponseType>(\n  error: unknown\n): error is AxiosError<ResponseType> {\n  return Axios.isAxiosError(error);\n}\n\nexport function arrayToJson<T>(arr?: Array<T>) {\n  if (!arr) {\n    return '';\n  }\n\n  return JSON.stringify(arr);\n}\n\nexport function json2formData(json: Record<string, unknown>) {\n  const formData = new FormData();\n\n  Object.entries(json).forEach(([key, value]) => {\n    if (typeof value === 'undefined' || value === null) {\n      return;\n    }\n\n    if (value instanceof File) {\n      formData.append(key, value);\n      return;\n    }\n\n    if (Array.isArray(value)) {\n      formData.append(key, arrayToJson(value));\n      return;\n    }\n\n    if (typeof value === 'object') {\n      formData.append(key, JSON.stringify(value));\n      return;\n    }\n\n    formData.append(key, value.toString());\n  });\n\n  return formData;\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport const CACHE_DURATION = 5 * 60 * 1000; // 5m in ms\n// event emitted when cache need to be refreshed\n// used to sync $http + axios cache clear\nexport const CACHE_REFRESH_EVENT = '__cache__refresh__event__';\n\n// utility function to dispatch catch refresh event\nexport function dispatchCacheRefreshEvent() {\n  dispatchEvent(new CustomEvent(CACHE_REFRESH_EVENT, {}));\n}\n\n// perform checks on config.method and config.url\n// to dispatch event in only specific scenarios\nexport function dispatchCacheRefreshEventIfNeeded(req: AxiosRequestConfig) {\n  if (\n    req.method &&\n    ['post', 'patch', 'put', 'delete'].includes(req.method.toLowerCase()) &&\n    // don't clear cache when we try to check for namespaces accesses\n    // otherwise we will clear it on every page\n    req.url &&\n    !req.url.includes('selfsubjectaccessreviews') &&\n    req.url.includes('kubernetes')\n  ) {\n    dispatchCacheRefreshEvent();\n  }\n}\n\ninterface Headers {\n  agentTargetQueue: string[];\n  agentManagerOperation: boolean;\n  registryAuthentication?: string;\n  agentTargetLastValue: string;\n}\n\nconst headers: Headers = {\n  agentTargetQueue: [],\n  agentManagerOperation: false,\n  agentTargetLastValue: '',\n};\n\nexport function registryAuthenticationHeader() {\n  return headers.registryAuthentication;\n}\n\nexport function setRegistryAuthenticationHeader(headerValue: string) {\n  headers.registryAuthentication = headerValue;\n}\n\n// Due to the fact that async HTTP requests are decorated using an interceptor\n// we need to store and retrieve the headers using a first-in-first-out (FIFO) data structure.\n// Otherwise, sequential HTTP requests might end up using the same header value (incorrect in the case\n// of starting multiple containers on different nodes for example).\n// To prevent having to use the HttpRequestHelper.setPortainerAgentTargetHeader before EACH request,\n// we re-use the latest available header in the data structure (handy in thee case of multiple requests affecting\n// the same node in the same view).\nexport function portainerAgentTargetHeader() {\n  if (headers.agentTargetQueue.length === 0) {\n    return headers.agentTargetLastValue;\n  }\n\n  if (headers.agentTargetQueue.length === 1) {\n    const [lastValue] = headers.agentTargetQueue;\n    headers.agentTargetLastValue = lastValue;\n  }\n\n  return headers.agentTargetQueue.shift() || '';\n}\n\nexport function setPortainerAgentTargetHeader(headerValue: string) {\n  if (headerValue) {\n    headers.agentTargetQueue.push(headerValue);\n  }\n}\n\nexport function setPortainerAgentManagerOperation(set: boolean) {\n  headers.agentManagerOperation = set;\n}\n\nexport function portainerAgentManagerOperation() {\n  return headers.agentManagerOperation;\n}\n\nexport function resetAgentHeaders() {\n  headers.agentTargetQueue = [];\n  headers.agentTargetLastValue = '';\n  headers.agentManagerOperation = false;\n  delete headers.registryAuthentication;\n}\n\n/* @ngInject */\nexport function HttpRequestHelperAngular() {\n  return {\n    registryAuthenticationHeader,\n    setRegistryAuthenticationHeader,\n    portainerAgentTargetHeader,\n    setPortainerAgentTargetHeader,\n    setPortainerAgentManagerOperation,\n    portainerAgentManagerOperation,\n    resetAgentHeaders,\n  };\n}\n","import _ from 'lodash';\nimport toastr from 'toastr';\nimport sanitize from 'sanitize-html';\nimport { v4 as uuid } from 'uuid';\n\nimport { get as localStorageGet } from '@/react/hooks/useLocalStorage';\nimport { notificationsStore } from '@/react/portainer/notifications/notifications-store';\nimport { ToastNotification } from '@/react/portainer/notifications/types';\n\nconst { addNotification } = notificationsStore.getState();\n\ntoastr.options = {\n  timeOut: 3000,\n  closeButton: true,\n  progressBar: true,\n  tapToDismiss: false,\n  escapeHtml: true,\n  // custom button, using the lucide icon x.svg inside\n  closeHtml: `<button type=\"button\"><svg\n  xmlns=\"http://www.w3.org/2000/svg\"\n  width=\"18\"\n  height=\"18\"\n  viewBox=\"0 0 24 24\"\n  fill=\"none\"\n  stroke=\"currentColor\"\n  stroke-width=\"2\"\n  stroke-linecap=\"round\"\n  stroke-linejoin=\"round\"\n>\n  <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n  <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n</svg></button>`,\n};\n\nexport function notifySuccess(title: string, text: string) {\n  saveNotification(title, text, 'success');\n  toastr.success(sanitize(_.escape(text)), sanitize(_.escape(title)));\n}\n\nexport function notifyWarning(title: string, text: string) {\n  saveNotification(title, text, 'warning');\n  toastr.warning(sanitize(_.escape(text)), sanitize(title), { timeOut: 6000 });\n}\n\nexport function notifyError(title: string, e?: Error, fallbackText = '') {\n  const msg = pickErrorMsg(e) || fallbackText;\n  saveNotification(title, msg, 'error');\n\n  if (!_.get(e, 'resource.password')) {\n    // eslint-disable-next-line no-console\n    console.error(e);\n  }\n\n  if (msg !== 'Invalid JWT token') {\n    toastr.error(sanitize(_.escape(msg)), sanitize(title), { timeOut: 6000 });\n  }\n}\n\nexport const success = notifySuccess;\nexport const error = notifyError;\nexport const warning = notifyWarning;\n\n/* @ngInject */\nexport function Notifications() {\n  return {\n    success: notifySuccess,\n    warning: notifyWarning,\n    error: notifyError,\n  };\n}\n\nfunction pickErrorMsg(e?: Error) {\n  if (!e) {\n    return '';\n  }\n\n  const props = [\n    'err.data.details',\n    'err.data.message',\n    'data.details',\n    'data.message',\n    'data.content',\n    'data.error',\n    'message',\n    'err.data[0].message',\n    'err.data.err',\n    'data.err',\n    'msg',\n  ];\n\n  let msg = '';\n\n  props.forEach((prop) => {\n    const val = _.get(e, prop);\n    if (typeof val === 'string') {\n      msg = msg || val;\n    }\n  });\n\n  return msg;\n}\n\nfunction saveNotification(title: string, text: string, type: string) {\n  const notif: ToastNotification = {\n    id: uuid(),\n    title,\n    details: text,\n    type,\n    timeStamp: new Date(),\n  };\n  const userId = localStorageGet('USER_ID', '');\n  if (userId !== '') {\n    addNotification(userId, notif);\n  }\n}\n","import axios, { parseAxiosError } from '../services/axios';\n\nimport { Tag, TagId } from './types';\n\nexport async function getTags() {\n  try {\n    const { data } = await axios.get<Tag[]>(buildUrl());\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve tags');\n  }\n}\n\nexport async function createTag(name: string) {\n  try {\n    const { data: tag } = await axios.post<Tag>(buildUrl(), { name });\n    return tag;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to create tag');\n  }\n}\n\nexport async function deleteTag(id: TagId) {\n  try {\n    await axios.delete(buildUrl(id));\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to delte tag');\n  }\n}\n\nfunction buildUrl(id?: TagId) {\n  let url = '/tags';\n  if (id) {\n    url += `/${id}`;\n  }\n\n  return url;\n}\n","import { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { createTag, getTags } from './tags.service';\nimport { Tag, TagId } from './types';\n\nexport const tagKeys = {\n  all: ['tags'] as const,\n  tag: (id: TagId) => [...tagKeys.all, id] as const,\n};\n\nexport function useTags<T = Tag[]>({\n  select,\n  enabled = true,\n}: { select?: (tags: Tag[]) => T; enabled?: boolean } = {}) {\n  return useQuery(tagKeys.all, () => getTags(), {\n    staleTime: 50,\n    select,\n    enabled,\n    ...withError('Failed to retrieve tags'),\n  });\n}\n\nexport function useTagsForEnvironment(environmentId: EnvironmentId) {\n  const { data: tags, isLoading } = useTags({\n    select: (tags) => tags.filter((tag) => tag.Endpoints[environmentId]),\n  });\n\n  return { tags, isLoading };\n}\n\nexport function useCreateTagMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    createTag,\n    mutationOptions(\n      withError('Unable to create tag'),\n      withInvalidate(queryClient, [tagKeys.all])\n    )\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport { TeamRole, TeamMembership } from '@/react/portainer/users/teams/types';\nimport { useCurrentUser, useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { User, UserId } from './types';\nimport { getUserMemberships, getUsers } from './user.service';\n\ninterface UseUserMembershipOptions<TSelect> {\n  select?(userMemberships: TeamMembership[]): TSelect;\n  enabled?: boolean;\n}\n\nexport function useUserMembership<TSelect = TeamMembership[]>(\n  userId: UserId,\n  { enabled, select }: UseUserMembershipOptions<TSelect> = {}\n) {\n  return useQuery(\n    ['users', userId, 'memberships'],\n    () => getUserMemberships(userId),\n    { select, enabled }\n  );\n}\n\nexport function useIsCurrentUserTeamLeader() {\n  const { user } = useCurrentUser();\n  const isAdminQuery = useIsEdgeAdmin();\n\n  const query = useUserMembership(user.Id, {\n    enabled: !isAdminQuery.isLoading && !isAdminQuery.isAdmin,\n    select: (memberships) =>\n      memberships.some((membership) => membership.Role === TeamRole.Leader),\n  });\n\n  if (isAdminQuery.isLoading) {\n    return false;\n  }\n\n  return isAdminQuery.isAdmin ? true : !!query.data;\n}\n\nexport function useUsers<T = User[]>(\n  includeAdministrator = false,\n  environmentId = 0,\n  enabled = true,\n  select: (data: User[]) => T = (data) => data as unknown as T\n) {\n  const users = useQuery(\n    ['users', { includeAdministrator, environmentId }],\n    () => getUsers(includeAdministrator, environmentId),\n    {\n      meta: {\n        error: { title: 'Failure', message: 'Unable to load users' },\n      },\n      enabled,\n      select,\n    }\n  );\n\n  return users;\n}\n","import { UserId } from '../types';\n\nexport const userQueryKeys = {\n  base: () => ['users'] as const,\n  user: (id: UserId) => [...userQueryKeys.base(), id] as const,\n  me: () => [...userQueryKeys.base(), 'me'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from '../user.service';\nimport { User } from '../types';\n\nimport { userQueryKeys } from './queryKeys';\n\ninterface CurrentUserResponse extends User {\n  forceChangePassword: boolean;\n}\n\nexport function useLoadCurrentUser({ staleTime }: { staleTime?: number } = {}) {\n  return useQuery(userQueryKeys.me(), () => getCurrentUser(), {\n    ...withError('Unable to retrieve user details'),\n    staleTime,\n  });\n}\n\nexport async function getCurrentUser() {\n  try {\n    const { data: user } = await axios.get<CurrentUserResponse>(\n      buildUrl(undefined, 'me')\n    );\n\n    return user;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve user details');\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from '../user.service';\nimport { User, UserId } from '../types';\n\nimport { userQueryKeys } from './queryKeys';\n\nexport function useUser(\n  id: UserId,\n  { staleTime }: { staleTime?: number } = {}\n) {\n  return useQuery(userQueryKeys.user(id), () => getUser(id), {\n    ...withError('Unable to retrieve user details'),\n    staleTime,\n  });\n}\n\nexport async function getUser(id: UserId) {\n  try {\n    const { data: user } = await axios.get<User>(buildUrl(id));\n\n    return user;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve user details');\n  }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { type UserId } from './types/user-id';\n\nexport { type UserId };\n\nexport enum Role {\n  Admin = 1,\n  Standard,\n  EdgeAdmin,\n}\n\ninterface AuthorizationMap {\n  [authorization: string]: boolean;\n}\n\nexport type User = {\n  Id: UserId;\n  Username: string;\n  Role: Role;\n  EndpointAuthorizations: {\n    [endpointId: EnvironmentId]: AuthorizationMap;\n  };\n  UseCache: boolean;\n  ThemeSettings: {\n    color: 'dark' | 'light' | 'highcontrast' | 'auto';\n  };\n};\n","import { Environment } from '@/react/portainer/environments/types';\nimport { isEdgeEnvironment } from '@/react/portainer/environments/utils';\n\nimport { Role, User } from './types';\n\nexport function filterNonAdministratorUsers(users: User[]) {\n  return users.filter((user) => !isPureAdmin(user));\n}\n\ntype UserLike = Pick<User, 'Role'>;\n\n// To avoid creating divergence between CE and EE\n// isAdmin checks if the user is portainer admin or edge admin\nexport function isEdgeAdmin(\n  user: UserLike | undefined,\n  environment?: Pick<Environment, 'Type'> | null\n): boolean {\n  return (\n    isPureAdmin(user) ||\n    (user?.Role === Role.EdgeAdmin &&\n      (!environment || isEdgeEnvironment(environment.Type)))\n  );\n}\n\n// To avoid creating divergence between CE and EE\n// isPureAdmin checks only if the user is portainer admin\n// See bouncer.IsAdmin and bouncer.PureAdminAccess\nexport function isPureAdmin(user?: UserLike): boolean {\n  return !!user && user.Role === Role.Admin;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { TeamMembership } from '@/react/portainer/users/teams/types';\n\nimport { User, UserId } from './types';\nimport { filterNonAdministratorUsers } from './user.helpers';\n\nexport async function getUsers(\n  includeAdministrators = false,\n  environmentId = 0\n) {\n  try {\n    const { data } = await axios.get<User[]>(buildUrl(), {\n      params: { environmentId },\n    });\n\n    return includeAdministrators ? data : filterNonAdministratorUsers(data);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve users');\n  }\n}\n\nexport async function getUserMemberships(id: UserId) {\n  try {\n    const { data } = await axios.get<TeamMembership[]>(\n      buildUrl(id, 'memberships')\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve user memberships');\n  }\n}\n\nexport function buildUrl(id?: UserId, entity?: string) {\n  let url = '/users';\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  if (entity) {\n    url += `/${entity}`;\n  }\n\n  return url;\n}\n","import { SetStateAction } from 'react';\n\nexport function applySetStateAction<T>(applier: SetStateAction<T>, values?: T) {\n  if (isFunction(applier)) {\n    return values ? applier(values) : undefined;\n  }\n  return applier;\n\n  function isFunction(value: unknown): value is (prevState: T) => T {\n    return typeof value === 'function';\n  }\n}\n","import {\n  MutationCache,\n  MutationOptions,\n  QueryCache,\n  QueryClient,\n  QueryKey,\n  QueryOptions,\n} from 'react-query';\n\nimport { notifyError } from '@/portainer/services/notifications';\n\nexport function withError(fallbackMessage?: string, title = 'Failure') {\n  return {\n    onError(error: unknown) {\n      notifyError(title, error as Error, fallbackMessage);\n    },\n  };\n}\n\nexport function withGlobalError(fallbackMessage?: string, title = 'Failure') {\n  return {\n    meta: {\n      error: { message: fallbackMessage, title },\n    },\n  };\n}\n\ntype OptionalReadonly<T> = T | Readonly<T>;\n\nexport function withInvalidate(\n  queryClient: QueryClient,\n  queryKeysToInvalidate: Array<OptionalReadonly<Array<string | number>>>,\n  // skipRefresh will set the mutation state to success without waiting for the invalidated queries to refresh\n  // see the following for info: https://tkdodo.eu/blog/mastering-mutations-in-react-query#awaited-promises\n  { skipRefresh }: { skipRefresh?: boolean } = {}\n) {\n  return {\n    onSuccess() {\n      const promise = Promise.all(\n        queryKeysToInvalidate.map((keys) => queryClient.invalidateQueries(keys))\n      );\n      return skipRefresh\n        ? undefined // don't wait for queries to refresh before setting state to success\n        : promise; // stay loading until all queries are refreshed\n    },\n  };\n}\n\nexport function mutationOptions<\n  TData = unknown,\n  TError = unknown,\n  TVariables = void,\n  TContext = unknown,\n>(...options: MutationOptions<TData, TError, TVariables, TContext>[]) {\n  return mergeOptions(options);\n}\n\nexport function queryOptions<\n  TQueryFnData = unknown,\n  TError = unknown,\n  TData = TQueryFnData,\n  TQueryKey extends QueryKey = QueryKey,\n>(...options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>[]) {\n  return mergeOptions(options);\n}\n\nfunction mergeOptions<T>(options: T[]) {\n  return options.reduce(\n    (acc, option) => ({\n      ...acc,\n      ...option,\n    }),\n    {} as T\n  );\n}\n\nexport function createQueryClient() {\n  return new QueryClient({\n    mutationCache: new MutationCache({\n      onError: (error, variable, context, mutation) => {\n        handleError(error, mutation.meta?.error);\n      },\n    }),\n    queryCache: new QueryCache({\n      onError: (error, mutation) => {\n        handleError(error, mutation.meta?.error);\n      },\n    }),\n  });\n}\n\nfunction handleError(error: unknown, errorMeta?: unknown) {\n  if (errorMeta && typeof errorMeta === 'object') {\n    const { title = 'Failure', message } = errorMeta as {\n      title?: string;\n      message?: string;\n    };\n\n    notifyError(title, error as Error, message);\n  }\n}\n\nexport const queryClient = createQueryClient();\n","import ReactDOM from 'react-dom';\nimport { IComponentOptions, IController } from 'angular';\nimport { StrictMode } from 'react';\nimport _ from 'lodash';\n\nfunction toProps(\n  propNames: string[],\n  controller: IController,\n  $q: ng.IQService\n) {\n  return Object.fromEntries(\n    propNames.map((key) => {\n      const prop = controller[key];\n      if (typeof prop !== 'function') {\n        return [key, prop];\n      }\n\n      return [\n        key,\n        (...args: unknown[]) =>\n          $q((resolve) => resolve(controller[key](...args))),\n      ];\n    })\n  );\n}\n\nexport type PropNames<T> = Exclude<keyof T, number | symbol>;\n\n/**\n * react2angular is used to bind a React component to an AngularJS component\n * it used in an AngularJS module definition:\n *\n * `.component('componentName', react2angular(ComponentName, ['prop1', 'prop2']))`\n *\n * if the second parameter has any ts errors check that the component has the correct props\n */\nexport function react2angular<T, U extends PropNames<T>[]>(\n  Component: React.ComponentType<T & JSX.IntrinsicAttributes>,\n  propNames: U & ([PropNames<T>] extends [U[number]] ? unknown : PropNames<T>)\n): IComponentOptions & { name: string } {\n  const bindings = Object.fromEntries(propNames.map((key) => [key, '<']));\n\n  return {\n    bindings,\n    controller: Controller,\n    name: _.camelCase(Component.displayName || Component.name),\n  };\n\n  /* @ngInject */\n  function Controller(\n    this: IController,\n    $element: HTMLElement[],\n    $q: ng.IQService\n  ) {\n    let isDestroyed = false;\n    const el = $element[0];\n\n    this.$onChanges = () => {\n      if (!isDestroyed) {\n        const props = toProps(propNames, this, $q);\n        ReactDOM.render(\n          <StrictMode>\n            {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n            <Component {...(props as T & JSX.IntrinsicAttributes)} />\n          </StrictMode>,\n\n          el\n        );\n      }\n    };\n\n    this.$onDestroy = () => {\n      if (!isDestroyed) {\n        isDestroyed = true;\n        ReactDOM.unmountComponentAtNode(el);\n      }\n    };\n  }\n}\n\nexport const r2a = react2angular;\n","import { ComponentType, useEffect, useMemo, useState } from 'react';\n\ntype KeyRecord<T> = Record<keyof T, T[keyof T]>;\n\ntype KeysOfFunctions<T> = keyof {\n  [K in keyof T as T[K] extends (v: never) => void ? K : never]: never;\n};\n\ntype KeysWithoutFunctions<T> = Exclude<keyof T, KeysOfFunctions<T>>;\n\n/**\n * React component wrapper that will sync AngularJS bound variables in React state.\n * This wrapper is mandatory to allow the binding of AngularJS variables directly in controlled components.\n *\n * Without this the component will be redrawn everytime the value changes in AngularJS (outside of React control)\n * and the redraw will create issues when typing in the inputs.\n *\n * Examples\n * ---\n * SINGLE PAIR\n * ```tsx\n * type Props = {\n *  value: unknown;\n *  onChange: (v: unknown) => void;\n * }\n *\n * function ReactComponent({ value, onChange }: Props) {\n *  return <input value={value} onChange={onChange} />\n * }\n *\n * r2a(withControlledInput(ReactComponent), ['value', 'onChange']);\n *\n * ```\n * ---\n * MULTIPLE PAIRS\n * ```tsx\n * type Props = {\n *  valueStr: string;\n *  onChangeStr: (v: string) => void;\n *  valueNum: number;\n *  onChangeNum: (v: number) => void;\n * }\n *\n * function ReactComponent({ valueStr, onChangeStr, valueNum, onChangeNum }: Props) {\n *  return (\n *    <>\n *      <input type=\"text\" value={valueStr} onChange={onChangeStr} />\n *      <input type=\"number\" value={valueNum} onChange={onChangeNum} />\n *    </>\n *  );\n * }\n *\n * r2a(withControlledInput(ReactComponent, {\n *    valueStr: 'onChangeStr',\n *    valueNum: 'onChangeNum'\n *  }),\n *  ['valueStr', 'onChangeStr', 'valueNum', 'onChangeNum']\n * )\n *\n * ```\n *\n * @param WrappedComponent The React component to wrap\n * @param controlledValueOnChangePairs A map of `(value:onChange)-like` pairs.\n * @returns WrappedComponent\n */\nexport function withControlledInput<T>(\n  WrappedComponent: ComponentType<T>,\n  controlledValueOnChangePairs:\n    | {\n        [Key in KeysWithoutFunctions<T>]?: KeysOfFunctions<T>;\n      }\n    | { value?: 'onChange' } = { value: 'onChange' }\n): ComponentType<T> {\n  // Try to create a nice displayName for React Dev Tools.\n  const displayName =\n    WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n  // extract keys of values that will be updated outside of React lifecycle and their handler functions\n  const keysToControl = Object.entries(controlledValueOnChangePairs) as [\n    keyof T,\n    keyof T,\n  ][];\n\n  function WrapperComponent(props: T) {\n    // map of key = value for all tracked values that will be changed outside of React lifecycle\n    // e.g. save in React state the values that will be changed in AngularJS\n    const [controlledValues, setControlledValues] = useState<KeyRecord<T>>(\n      {} as KeyRecord<T>\n    );\n\n    // generate a map of `funckey = (v: typeof props[value_key]) => void` to wrapp all handler functions.\n    // each wrapped handler is referencing the key of the value it is changing so we can't use a single sync func\n    const handlers = useMemo(\n      () =>\n        Object.fromEntries(\n          keysToControl.map(([valueKey, onChangeKey]) => [\n            onChangeKey,\n            // generate and save a func that uses the key of the updated value\n            (value: T[keyof T]) => {\n              // update the state with the value coming from WrappedComponent\n              setControlledValues(\n                (c) => ({ ...c, [valueKey]: value }) as KeyRecord<T>\n              );\n\n              // call the bound handler func to update the value outside of React\n              // eslint-disable-next-line react/destructuring-assignment\n              const onChange = props[onChangeKey];\n              if (typeof onChange === 'function') {\n                onChange(value);\n              }\n            },\n          ])\n        ),\n      [props]\n    );\n\n    // update the React state when a prop changes from outside of React lifecycle\n    // limit keys to update to only tracked values ; ignore untracked props and handler functions\n    useEffect(() => {\n      const toUpdate = Object.fromEntries(\n        // eslint-disable-next-line react/destructuring-assignment\n        keysToControl.map(([key]) => [key, props[key]])\n      ) as KeyRecord<T>;\n\n      setControlledValues(toUpdate);\n    }, [props]);\n\n    return <WrappedComponent {...props} {...handlers} {...controlledValues} />;\n  }\n\n  WrapperComponent.displayName = `withControlledInput(${displayName})`;\n\n  return WrapperComponent;\n}\n","import { ComponentType } from 'react';\n\nimport { UserProvider } from '@/react/hooks/useUser';\n\nimport { withReactQuery } from './withReactQuery';\n\nexport function withCurrentUser<T>(\n  WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>\n): ComponentType<T & JSX.IntrinsicAttributes> {\n  // Try to create a nice displayName for React Dev Tools.\n  const displayName =\n    WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n    return (\n      <UserProvider>\n        <WrappedComponent {...props} />\n      </UserProvider>\n    );\n  }\n\n  WrapperComponent.displayName = `withCurrentUser(${displayName})`;\n\n  // User provider makes a call to the API to get the current user.\n  // We need to wrap it with React Query to make that call.\n  return withReactQuery(WrapperComponent);\n}\n","import { IFormController, IComponentOptions, IModule } from 'angular';\nimport { FormikErrors } from 'formik';\nimport { SchemaOf, object } from 'yup';\nimport _ from 'lodash';\nimport { ComponentType } from 'react';\n\nimport { PropNames, r2a } from '@/react-tools/react2angular';\n\nimport { validateForm } from '@@/form-components/validate-form';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\ninterface FormFieldProps<TValue> {\n  onChange(values: TValue): void; // update the values for the entire form object used in yup validation, not just one input.\n  values: TValue; // current values\n  errors?: FormikErrors<TValue> | ArrayError<TValue>;\n}\n\ntype WithFormFieldProps<TProps, TValue> = TProps & FormFieldProps<TValue>;\n\ntype ValidationResult<T> = FormikErrors<T> | undefined;\n\n/**\n * This utility function is used for wrapping React components with form validation.\n * When used inside an Angular form, it sets the form to invalid if the component values are invalid.\n * This function registers two AngularJS components:\n * 1. The React component with r2a wrapping:\n *   - `onChange` and `values` must be manually passed to the React component from an Angular view.\n *   - `errors` will be automatically passed to the React component and updated by the validation component.\n * 2. An AngularJS component that handles form validation, based on a yup validation schema:\n *   - `validationData` can optionally be passed to the React component from an Angular view, which can be used in validation.\n *\n * @example\n * // Usage in Angular view\n * <component\n *   values=\"ctrl.values\"\n *   on-change=\"ctrl.handleChange\"\n *   validation-data=\"ctrl.validationData\">\n * </component>\n */\nexport function withFormValidation<TProps, TValue, TData = never>(\n  ngModule: IModule,\n  Component: ComponentType<WithFormFieldProps<TProps, TValue>>,\n  componentName: string,\n  propNames: PropNames<TProps>[],\n  schemaBuilder: (validationData?: TData) => SchemaOf<TValue>,\n  isPrimitive = false\n) {\n  const reactComponentName = `react${_.upperFirst(componentName)}`;\n\n  ngModule\n    .component(\n      reactComponentName,\n      r2a(Component, ['errors', 'onChange', 'values', ...propNames])\n    )\n    .component(\n      componentName,\n      createFormValidationComponent(\n        reactComponentName,\n        propNames,\n        schemaBuilder,\n        isPrimitive\n      )\n    );\n}\n\nexport function createFormValidationComponent<TFormModel, TData = never>(\n  componentName: string,\n  propNames: Array<string>,\n  schemaBuilder: (validationData?: TData) => SchemaOf<TFormModel>,\n  isPrimitive = false\n): IComponentOptions {\n  const kebabName = _.kebabCase(componentName);\n  const propsWithErrors = [...propNames, 'errors', 'values'];\n\n  return {\n    template: `<ng-form name=\"$ctrl.form\">\n      <${kebabName} ${propsWithErrors\n        .filter((p) => p !== 'onChange')\n        .map((p) => `${_.kebabCase(p)}=\"$ctrl.${p}\"`)\n        .join(' ')}\n        on-change=\"($ctrl.handleChange)\"\n      ></${kebabName}>\n    </ng-form>`,\n    controller: createFormValidatorController(schemaBuilder, isPrimitive),\n    bindings: Object.fromEntries(\n      [...propsWithErrors, 'validationData', 'onChange'].map((p) => [p, '<'])\n    ),\n  };\n}\n\nfunction createFormValidatorController<TFormModel, TData = never>(\n  schemaBuilder: (validationData?: TData) => SchemaOf<TFormModel>,\n  isPrimitive = false\n) {\n  return class FormValidatorController {\n    errors?: FormikErrors<TFormModel>;\n\n    $async: <T>(fn: () => Promise<T>) => Promise<T>;\n\n    form?: IFormController;\n\n    values?: TFormModel;\n\n    validationData?: TData;\n\n    onChange?: (value: TFormModel) => void;\n\n    /* @ngInject */\n    constructor($async: <T>(fn: () => Promise<T>) => Promise<T>) {\n      this.$async = $async;\n\n      this.handleChange = this.handleChange.bind(this);\n      this.runValidation = this.runValidation.bind(this);\n    }\n\n    async handleChange(newValues: TFormModel) {\n      return this.$async(async () => {\n        this.onChange?.(newValues);\n        await this.runValidation(newValues);\n      });\n    }\n\n    async runValidation(value: TFormModel) {\n      return this.$async(async () => {\n        this.form?.$setValidity('form', true, this.form);\n\n        const schema = schemaBuilder(this.validationData);\n        this.errors = await validate<TFormModel>(schema, value, isPrimitive);\n\n        if (this.errors && Object.keys(this.errors).length > 0) {\n          this.form?.$setValidity('form', false, this.form);\n        }\n      });\n    }\n\n    async $onChanges(changes: {\n      values?: { currentValue: TFormModel };\n      validationData?: { currentValue: TData };\n    }) {\n      if (changes.values) {\n        await this.runValidation(changes.values.currentValue);\n      }\n      // also run validation if validationData changes\n      if (changes.validationData) {\n        await this.runValidation(this.values!);\n      }\n    }\n  };\n}\n\nasync function validate<TFormModel>(\n  schema: SchemaOf<TFormModel>,\n  value: TFormModel,\n  isPrimitive: boolean\n): Promise<ValidationResult<TFormModel>> {\n  if (isPrimitive) {\n    const result = await validateForm<{ value: TFormModel }>(\n      () => object({ value: schema }),\n      { value }\n    );\n    return result?.value as ValidationResult<TFormModel>;\n  }\n  return validateForm<TFormModel>(() => schema, value);\n}\n","import { ComponentType } from 'react';\nimport { QueryClientProvider } from 'react-query';\n\nimport { queryClient as defaultQueryClient } from './react-query';\n\nexport function withReactQuery<T>(\n  WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>,\n  queryClient = defaultQueryClient\n): ComponentType<T & JSX.IntrinsicAttributes> {\n  // Try to create a nice displayName for React Dev Tools.\n  const displayName =\n    WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n    return (\n      <QueryClientProvider client={queryClient}>\n        <WrappedComponent {...props} />\n      </QueryClientProvider>\n    );\n  }\n\n  WrapperComponent.displayName = `withReactQuery(${displayName})`;\n\n  return WrapperComponent;\n}\n","import { ComponentType } from 'react';\nimport { UIRouterContextComponent } from '@uirouter/react-hybrid';\n\nexport function withUIRouter<T>(\n  WrappedComponent: ComponentType<T>\n): ComponentType<T> {\n  // Try to create a nice displayName for React Dev Tools.\n  const displayName =\n    WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n    return (\n      <UIRouterContextComponent>\n        <WrappedComponent {...props} />\n      </UIRouterContextComponent>\n    );\n  }\n\n  WrapperComponent.displayName = `withUIRouter(${displayName})`;\n\n  return WrapperComponent;\n}\n","import { NumberSchema, number } from 'yup';\n\n/**\n * Returns a Yup schema for a number that can also be NaN.\n *\n * This function is a workaround for a known issue in Yup where it throws type errors\n * when the number input is empty, having a value NaN. Yup doesn't like NaN values.\n * More details can be found in these GitHub issues:\n * https://github.com/jquense/yup/issues/1330\n * https://github.com/jquense/yup/issues/211\n *\n * @param errorMessage The custom error message to display when the value is required.\n * @returns A Yup number schema with a custom type error message.\n */\nexport function nanNumberSchema(\n  errorMessage = 'Value is required'\n): NumberSchema {\n  return number().typeError(errorMessage);\n}\n","export function getSchemeFromPort(port?: number): 'http' | 'https' {\n  if (!port) {\n    return 'http';\n  }\n\n  const hostPort = String(port);\n  return hostPort.endsWith('443') ? 'https' : 'http';\n}\n","/**\n * Type definition for the callback function used in processItemsInBatches.\n * It should accept an item from the array as its first argument\n * and additional arguments (if any) as its second argument, and should return a Promise.\n */\ntype ProcessItemsCallback<T, Args extends never[]> = (\n  item: T,\n  ...args: Args\n) => Promise<void>;\n\n/**\n * Asynchronously processes an array of items in batches.\n * @param items An array of items to be processed.\n * @param processor A callback function of type ProcessItemsCallback that will be called for each item in the array.\n * @param batchSize The maximum number of items to process in each batch. Defaults to 100 if not provided.\n * @param args Additional arguments to be passed to the callback function for each item.\n */\nexport async function processItemsInBatches<T, Args extends never[]>(\n  items: T[],\n  processor: ProcessItemsCallback<T, Args>,\n  batchSize = 100,\n  ...args: Args\n): Promise<void> {\n  while (items.length) {\n    const batch = items.splice(0, batchSize);\n    const batchPromises = batch.map((item) => processor(item, ...args));\n\n    await Promise.all(batchPromises);\n  }\n}\n","/**\n * Compares two semver strings.\n *\n * returns:\n * - `-1` if `a < b`\n * - `0` if `a == b`\n * - `1` if `a > b`\n */\nexport function semverCompare(a: string, b: string) {\n  if (a.startsWith(`${b}-`)) {\n    return -1;\n  }\n\n  if (b.startsWith(`${a}-`)) {\n    return 1;\n  }\n\n  return a.localeCompare(b, undefined, {\n    numeric: true,\n    sensitivity: 'case',\n    caseFirst: 'upper',\n  });\n}\n\nexport function isVersionSmaller(a: string, b: string) {\n  return semverCompare(a, b) < 0;\n}\n","import { openSwitchPrompt } from '@@/modals/SwitchPrompt';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport async function confirmStackUpdate(\n  message: string,\n  defaultValue: boolean\n) {\n  const result = await openSwitchPrompt(\n    'Are you sure?',\n    'Re-pull image and redeploy',\n    {\n      message,\n      confirmButton: buildConfirmButton('Update'),\n      modalType: ModalType.Warn,\n      defaultValue,\n    }\n  );\n\n  return result ? { pullImage: result.value } : undefined;\n}\n","import { ResourceControlResponse } from '@/react/portainer/access-control/types';\nimport {\n  AutoUpdateResponse,\n  RepoConfigResponse,\n} from '@/react/portainer/gitops/types';\n\nexport type StackId = number;\n\nexport enum StackType {\n  /**\n   * Represents a stack managed via docker stack\n   */\n  DockerSwarm = 1,\n  /**\n   * Represents a stack managed via docker-compose\n   */\n  DockerCompose,\n  /**\n   * Represents a stack managed via kubectl\n   */\n  Kubernetes,\n}\n\nexport enum StackStatus {\n  Active = 1,\n  Inactive,\n}\n\nexport interface Stack {\n  Id: number;\n  Name: string;\n  Type: StackType;\n  EndpointID: number;\n  SwarmID: string;\n  EntryPoint: string;\n  Env: {\n    name: string;\n    value: string;\n  }[];\n  ResourceControl?: ResourceControlResponse;\n  Status: StackStatus;\n  ProjectPath: string;\n  CreationDate: number;\n  CreatedBy: string;\n  UpdateDate: number;\n  UpdatedBy: string;\n  AdditionalFiles?: string[];\n  AutoUpdate?: AutoUpdateResponse;\n  Option?: {\n    Prune: boolean;\n    Force: boolean;\n  };\n  GitConfig?: RepoConfigResponse;\n  FromAppTemplate: boolean;\n  Namespace?: string;\n  IsComposeFormat: boolean;\n  Webhook?: string;\n  SupportRelativePath: boolean;\n  FilesystemPath: string;\n  StackFileVersion: string;\n  PreviousDeploymentInfo: unknown;\n}\n\nexport type StackFile = {\n  StackFileContent: string;\n};\n","import clsx from 'clsx';\nimport { AlertCircle, AlertTriangle, CheckCircle, XCircle } from 'lucide-react';\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport { Icon } from '@@/Icon';\n\ntype AlertType = 'success' | 'error' | 'info' | 'warn';\n\nconst alertSettings: Record<\n  AlertType,\n  { container: string; header: string; body: string; icon: ReactNode }\n> = {\n  success: {\n    container:\n      'border-green-4 bg-green-2 th-dark:bg-green-3 th-dark:border-green-5',\n    header: 'text-green-8',\n    body: 'text-green-7',\n    icon: CheckCircle,\n  },\n  error: {\n    container:\n      'border-error-4 bg-error-2 th-dark:bg-error-3 th-dark:border-error-5',\n    header: 'text-error-8',\n    body: 'text-error-7',\n    icon: XCircle,\n  },\n  info: {\n    container:\n      'border-blue-4 bg-blue-2 th-dark:bg-blue-3 th-dark:border-blue-5',\n    header: 'text-blue-8',\n    body: 'text-blue-7',\n    icon: AlertCircle,\n  },\n  warn: {\n    container:\n      'border-warning-4 bg-warning-2 th-dark:bg-warning-3 th-dark:border-warning-5',\n    header: 'text-warning-8',\n    body: 'text-warning-7',\n    icon: AlertTriangle,\n  },\n};\n\nexport function Alert({\n  color,\n  title,\n  className,\n  children,\n}: PropsWithChildren<{\n  color: AlertType;\n  title?: string;\n  className?: string;\n}>) {\n  const { container, header, body, icon } = alertSettings[color];\n\n  return (\n    <AlertContainer className={clsx(container, className)}>\n      {title ? (\n        <>\n          <AlertHeader className={header}>\n            <Icon icon={icon} />\n            {title}\n          </AlertHeader>\n          <AlertBody className={body} hasTitle={!!title}>\n            {children}\n          </AlertBody>\n        </>\n      ) : (\n        <AlertBody\n          className={clsx(body, 'flex items-start gap-2')}\n          hasTitle={!!title}\n        >\n          <Icon icon={icon} className=\"!mt-0.5 flex-none\" /> {children}\n        </AlertBody>\n      )}\n    </AlertContainer>\n  );\n}\n\nfunction AlertContainer({\n  className,\n  children,\n}: PropsWithChildren<{ className?: string }>) {\n  return (\n    <div className={clsx('rounded-md border-2 border-solid', 'p-3', className)}>\n      {children}\n    </div>\n  );\n}\n\nfunction AlertHeader({\n  className,\n  children,\n}: PropsWithChildren<{ className?: string }>) {\n  return (\n    <h4\n      className={clsx(\n        'text-base',\n        '!m-0 mb-2 flex items-center gap-2',\n        className\n      )}\n    >\n      {children}\n    </h4>\n  );\n}\n\nfunction AlertBody({\n  className,\n  hasTitle,\n  children,\n}: PropsWithChildren<{ className?: string; hasTitle: boolean }>) {\n  return (\n    <div className={clsx('text-sm', className, { 'ml-6': hasTitle })}>\n      {children}\n    </div>\n  );\n}\n","import { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\nimport { Briefcase } from 'lucide-react';\n\nimport './BEFeatureIndicator.css';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { Icon } from '@@/Icon';\n\nimport { getFeatureDetails } from './utils';\n\nexport interface Props {\n  featureId?: FeatureId;\n  showIcon?: boolean;\n  className?: string;\n}\n\nexport function BEFeatureIndicator({\n  featureId,\n  children,\n  showIcon = true,\n  className = '',\n}: PropsWithChildren<Props>) {\n  const { url, limitedToBE } = getFeatureDetails(featureId);\n\n  if (!limitedToBE) {\n    return null;\n  }\n  return (\n    <a\n      className={clsx('be-indicator vertical-center text-xs', className)}\n      href={url}\n      target=\"_blank\"\n      rel=\"noopener noreferrer\"\n    >\n      {children}\n      {showIcon && <Icon icon={Briefcase} className=\"be-indicator-icon mr-1\" />}\n      <span className=\"be-indicator-label break-words\">Business Feature</span>\n    </a>\n  );\n}\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nconst BE_URL = 'https://www.portainer.io/business-upsell?from=';\n\nexport function getFeatureDetails(featureId?: FeatureId) {\n  if (!featureId) {\n    return {};\n  }\n  const url = `${BE_URL}${featureId}`;\n\n  const limitedToBE = isLimitedToBE(featureId);\n\n  return { url, limitedToBE };\n}\n","import { Briefcase } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { Button } from '@@/buttons';\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\ninterface Props {\n  featureId: FeatureId;\n  heading: string;\n  message: string;\n  buttonText: string;\n  className?: string;\n  buttonClassName?: string;\n}\n\nexport function BETeaserButton({\n  featureId,\n  heading,\n  message,\n  buttonText,\n  className,\n  buttonClassName,\n}: Props) {\n  return (\n    <TooltipWithChildren\n      className={className}\n      heading={heading}\n      BEFeatureID={featureId}\n      message={message}\n    >\n      <span>\n        <Button\n          className={buttonClassName}\n          icon={Briefcase}\n          type=\"button\"\n          color=\"default\"\n          size=\"small\"\n          onClick={() => {}}\n          disabled\n        >\n          {buttonText}\n        </Button>\n      </span>\n    </TooltipWithChildren>\n  );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport type BadgeType =\n  | 'success'\n  | 'danger'\n  | 'warn'\n  | 'info'\n  | 'successSecondary'\n  | 'dangerSecondary'\n  | 'warnSecondary'\n  | 'infoSecondary';\n\n// the classes are typed in full because tailwind doesn't render the interpolated classes\nconst typeClasses: Record<BadgeType, string> = {\n  success: clsx(\n    `text-success-9 bg-success-2`,\n    `th-dark:text-success-3 th-dark:bg-success-10`,\n    `th-highcontrast:text-success-3 th-highcontrast:bg-success-10`\n  ),\n  warn: clsx(\n    `text-warning-9 bg-warning-2`,\n    `th-dark:text-warning-3 th-dark:bg-warning-10`,\n    `th-highcontrast:text-warning-3 th-highcontrast:bg-warning-10`\n  ),\n  danger: clsx(\n    `text-error-9 bg-error-2`,\n    `th-dark:text-error-3 th-dark:bg-error-10`,\n    `th-highcontrast:text-error-3 th-highcontrast:bg-error-10`\n  ),\n  info: clsx(\n    `text-blue-9 bg-blue-2`,\n    `th-dark:text-blue-3 th-dark:bg-blue-10`,\n    `th-highcontrast:text-blue-3 th-highcontrast:bg-blue-10`\n  ),\n  // the secondary classes are a bit darker in light mode and a bit lighter in dark mode\n  successSecondary: clsx(\n    `text-success-9 bg-success-3`,\n    `th-dark:text-success-3 th-dark:bg-success-9`,\n    `th-highcontrast:text-success-3 th-highcontrast:bg-success-9`\n  ),\n  warnSecondary: clsx(\n    `text-warning-9 bg-warning-3`,\n    `th-dark:text-warning-3 th-dark:bg-warning-9`,\n    `th-highcontrast:text-warning-3 th-highcontrast:bg-warning-9`\n  ),\n  dangerSecondary: clsx(\n    `text-error-9 bg-error-3`,\n    `th-dark:text-error-3 th-dark:bg-error-9`,\n    `th-highcontrast:text-error-3 th-highcontrast:bg-error-9`\n  ),\n  infoSecondary: clsx(\n    `text-blue-9 bg-blue-3`,\n    `th-dark:text-blue-3 th-dark:bg-blue-9`,\n    `th-highcontrast:text-blue-3 th-highcontrast:bg-blue-9`\n  ),\n};\n\nexport interface Props {\n  type?: BadgeType;\n  className?: string;\n}\n\n// this component is used in tables and lists in portainer. It looks like this:\n// https://www.figma.com/file/g5TUMngrblkXM7NHSyQsD1/New-UI?node-id=76%3A2\nexport function Badge({\n  type = 'info',\n  className,\n  children,\n}: PropsWithChildren<Props>) {\n  const baseClasses =\n    'inline-flex w-fit items-center !text-xs font-medium rounded-full px-2 py-0.5';\n\n  return (\n    <span\n      className={clsx(baseClasses, typeClasses[type], className)}\n      role=\"status\"\n    >\n      {children}\n    </span>\n  );\n}\n","import clsx from 'clsx';\n\nimport { Icon, IconProps } from '@@/Icon';\n\nexport type BadgeSize = 'md' | 'lg' | 'xl' | '2xl' | '3xl';\n\nexport interface Props extends IconProps {\n  size?: BadgeSize;\n}\n\nexport function BadgeIcon({ icon, size = '3xl', iconClass }: Props) {\n  const sizeClasses = iconSizeToClasses(size);\n  return (\n    <div\n      className={clsx(\n        sizeClasses,\n        `badge-icon\n      inline-flex items-center\n      justify-center rounded-full\n      bg-blue-3\n      text-blue-8 th-dark:bg-gray-9 th-dark:text-blue-3\n   `\n      )}\n    >\n      <Icon icon={icon} className={clsx('!flex', iconClass)} />\n    </div>\n  );\n}\n\nfunction iconSizeToClasses(size: BadgeSize) {\n  switch (size) {\n    case 'md':\n      return 'h-6 w-6 text-md';\n    case 'lg':\n      return 'h-8 w-8 text-lg';\n    case 'xl':\n      return 'h-10 w-10 text-xl';\n    case '2xl':\n      return 'h-12 w-12 text-2xl';\n    case '3xl':\n      return 'h-14 w-14 text-3xl';\n    default:\n      return 'h-14 w-14 text-3xl';\n  }\n}\n","import clsx from 'clsx';\nimport { ComponentProps, ComponentType, ElementType } from 'react';\n\nexport type AsComponentProps<E extends ElementType = ElementType> =\n  ComponentProps<E> & {\n    as?: E;\n  };\n\nexport function BlocklistItem<T extends ElementType>({\n  className,\n  isSelected,\n  children,\n  as = 'button',\n  ...props\n}: AsComponentProps & {\n  isSelected?: boolean;\n  as?: ComponentType<T>;\n}) {\n  const Component = as as 'button';\n\n  return (\n    <Component\n      type=\"button\"\n      className={clsx(\n        className,\n        'blocklist-item flex items-stretch overflow-hidden bg-transparent w-full !ml-0 no-link text-left',\n        {\n          'blocklist-item--selected': isSelected,\n        }\n      )}\n      role=\"listitem\"\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n    >\n      {children}\n    </Component>\n  );\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHelm = function SvgHelm(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"-2 -2 28 28\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M18.651 19.252c.704 1.005.96 2.039.573 2.31-.387.271-1.271-.324-1.975-1.329a5.039 5.039 0 0 1-.584-1.082 8.572 8.572 0 0 1-3.898 1.4c.081.34.13.737.13 1.166 0 1.227-.383 2.221-.856 2.221s-.856-.994-.856-2.221c0-.42.047-.807.125-1.142a8.568 8.568 0 0 1-3.944-1.284c-.127.301-.3.621-.524.942-.704 1.005-1.588 1.6-1.975 1.329-.387-.271-.131-1.305.573-2.31a5.12 5.12 0 0 1 .743-.85 8.53 8.53 0 0 1-1.309-1.479l1.124-.782a7.2 7.2 0 0 0 5.908 3.088 7.2 7.2 0 0 0 5.916-3.098l1.125.78a8.567 8.567 0 0 1-1.183 1.366c.296.241.605.573.887.975zM6.277 5.623A8.587 8.587 0 0 0 4.711 7.43l1.15.743a7.17 7.17 0 0 1 6.046-3.293 7.144 7.144 0 0 1 6.151 3.461l1.17-.711a8.658 8.658 0 0 0-1.56-1.895c.324-.245.671-.603.983-1.049.704-1.005.96-2.039.573-2.31-.387-.271-1.271.324-1.975 1.329-.294.419-.504.84-.627 1.212a8.488 8.488 0 0 0-3.9-1.364c.108-.372.175-.83.175-1.333 0-1.226-.383-2.22-.856-2.22s-.856.994-.856 2.221c0 .491.063.941.167 1.308a8.521 8.521 0 0 0-3.93 1.247 4.991 4.991 0 0 0-.58-1.071C6.139 2.7 5.255 2.106 4.868 2.377c-.387.271-.131 1.305.573 2.31.265.378.556.698.836.936zM.5 15.272h1.648V12.8h1.859v2.473h1.648v-6.23H4.008v2.319h-1.86V9.043H.5v6.229zm6.536-6.229v6.229h4.121v-1.38H8.684V12.78h2.032V11.4H8.684v-.978h2.377v-1.38l-4.025.001zm5.328 0v6.229h4.006v-1.38h-2.358V9.043h-1.648zm5.079 0v6.229h1.514v-1.84c0-.16-.008-.335-.024-.527a53.436 53.436 0 0 0-.053-.589 16.516 16.516 0 0 0-.067-.589 46.795 46.795 0 0 1-.067-.517h.038l.498 1.457.863 2.099h.613l.862-2.099.517-1.457h.038l-.067.518c-.026.192-.048.388-.067.589-.019.201-.037.398-.053.589a6.375 6.375 0 0 0-.024.527v1.84H23.5v-6.23h-1.706l-.939 2.588-.345 1.016h-.038l-.345-1.016-.978-2.588h-1.706z\"\n  })));\n};\nexport default SvgHelm;","import { Edit, FileText, Globe, UploadCloud } from 'lucide-react';\n\nimport GitIcon from '@/assets/ico/git.svg?c';\nimport Helm from '@/assets/ico/helm.svg?c';\n\nimport { BoxSelectorOption } from '../types';\n\nexport const editor: BoxSelectorOption<'editor'> = {\n  id: 'method_editor',\n  icon: Edit,\n  iconType: 'badge',\n  label: 'Web editor',\n  value: 'editor',\n};\n\nexport const upload: BoxSelectorOption<'upload'> = {\n  id: 'method_upload',\n  icon: UploadCloud,\n  iconType: 'badge',\n  label: 'Upload',\n  value: 'upload',\n};\n\nexport const git: BoxSelectorOption<'repository'> = {\n  id: 'method_repository',\n  icon: GitIcon,\n  iconType: 'logo',\n  label: 'Repository',\n  value: 'repository',\n};\n\nexport const edgeStackTemplate: BoxSelectorOption<'template'> = {\n  id: 'method_template',\n  icon: FileText,\n  iconType: 'badge',\n  label: 'Template',\n  description: 'Use an Edge stack app or custom template',\n  value: 'template',\n};\n\nexport const customTemplate: BoxSelectorOption<'template'> = {\n  id: 'method_template',\n  icon: FileText,\n  iconType: 'badge',\n  label: 'Custom template',\n  value: 'template',\n};\n\nexport const helm: BoxSelectorOption<'helm'> = {\n  id: 'method_helm',\n  icon: Helm,\n  label: 'Helm chart',\n  value: 'helm',\n  iconClass: '!text-[#0f1689] th-dark:!text-white th-highcontrast:!text-white',\n};\n\nexport const url: BoxSelectorOption<'url'> = {\n  id: 'method_url',\n  icon: Globe,\n  iconType: 'badge',\n  label: 'URL',\n  value: 'url',\n};\n","import Kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport DockerCompose from '@/assets/ico/vendor/docker-compose.svg?c';\n\nimport { BoxSelectorOption } from '../types';\n\nexport const kubernetes: BoxSelectorOption<'kubernetes'> = {\n  id: 'method_kubernetes',\n  icon: Kubernetes,\n  label: 'Kubernetes',\n  description: 'Kubernetes manifest format',\n  value: 'kubernetes',\n  iconType: 'logo',\n};\n\nexport const compose: BoxSelectorOption<'compose'> = {\n  id: 'method_compose',\n  icon: DockerCompose,\n  label: 'Compose',\n  description: 'docker-compose format',\n  value: 'compose',\n  iconType: 'logo',\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-BoxSelector-BoxSelector-module__root\"};","// extracted by mini-css-extract-plugin\nexport default {\"boxSelectorItem\":\"app-react-components-BoxSelector-BoxSelectorItem-module__box-selector-item\",\"header\":\"app-react-components-BoxSelector-BoxSelectorItem-module__header\",\"imageContainer\":\"app-react-components-BoxSelector-BoxSelectorItem-module__image-container\",\"icon\":\"app-react-components-BoxSelector-BoxSelectorItem-module__icon\",\"slim\":\"app-react-components-BoxSelector-BoxSelectorItem-module__slim\",\"content\":\"app-react-components-BoxSelector-BoxSelectorItem-module__content\",\"limited\":\"app-react-components-BoxSelector-BoxSelectorItem-module__limited\",\"business\":\"app-react-components-BoxSelector-BoxSelectorItem-module__business\"};","import { Briefcase } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\ninterface Props {\n  url?: string;\n  showTooltip?: boolean;\n}\n\nexport function LimitedToBeBoxSelectorIndicator({\n  url,\n  showTooltip = true,\n}: Props) {\n  return (\n    <div className=\"absolute left-0 top-0 w-full\">\n      <div className=\"mx-auto flex max-w-fit items-center rounded-b-lg border border-t-0 border-solid border-gray-6 bg-transparent px-3 py-1 text-gray-6\">\n        <a\n          className=\"inline-flex items-center text-xs text-gray-6\"\n          href={url}\n          target=\"_blank\"\n          rel=\"noreferrer\"\n        >\n          <Icon icon={Briefcase} className=\"!mr-1\" />\n          <span>Business Feature</span>\n        </a>\n        {showTooltip && (\n          <Tooltip\n            size=\"sm\"\n            message=\"Select this option to preview this business feature.\"\n          />\n        )}\n      </div>\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-BoxSelector-BoxOption-module__root\"};","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\nimport type { Icon } from 'lucide-react';\n\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\nimport styles from './BoxOption.module.css';\nimport { BoxSelectorOption, Value } from './types';\n\ninterface Props<T extends Value> {\n  radioName: string;\n  option: BoxSelectorOption<T>;\n  onSelect?(value: T): void;\n  isSelected(value: T): boolean;\n  disabled?: boolean;\n  tooltip?: string;\n  className?: string;\n  type?: 'radio' | 'checkbox';\n  checkIcon: Icon;\n}\n\nexport function BoxOption<T extends Value>({\n  radioName,\n  option,\n  onSelect = () => {},\n  isSelected,\n  disabled,\n  tooltip,\n  className,\n  type = 'radio',\n  children,\n  checkIcon: Check,\n}: PropsWithChildren<Props<T>>) {\n  const selected = isSelected(option.value);\n\n  const item = (\n    <div className={clsx(styles.root, className)}>\n      <input\n        type={type}\n        name={radioName}\n        id={option.id}\n        checked={selected}\n        value={option.value.toString()}\n        disabled={disabled}\n        onChange={() => onSelect(option.value)}\n      />\n\n      <label htmlFor={option.id} data-cy={`${radioName}_${option.value}`}>\n        {children}\n\n        {!disabled && (\n          <div\n            className={clsx(\n              'absolute right-4 top-4 flex h-4 w-4 items-center justify-center border border-solid  font-bold text-white',\n              {\n                'border-gray-6 bg-white': !selected,\n                'border-blue-8 bg-blue-8': selected,\n              },\n              {\n                'rounded-full': type === 'radio',\n                'rounded-sm': type === 'checkbox',\n              }\n            )}\n          >\n            {selected && <Check className=\"lucide\" strokeWidth={3} />}\n          </div>\n        )}\n      </label>\n    </div>\n  );\n\n  if (tooltip) {\n    return <TooltipWithChildren message={tooltip}>{item}</TooltipWithChildren>;\n  }\n\n  return item;\n}\n","import clsx from 'clsx';\n\nimport { Icon, IconProps } from '@@/Icon';\n\ntype Props = IconProps;\n\nexport function LogoIcon({ icon, iconClass }: Props) {\n  return (\n    <div\n      className={`\n   inline-flex h-14 w-14\n   items-center justify-center text-7xl\n`}\n    >\n      <Icon icon={icon} className={clsx('!flex', iconClass)} />\n    </div>\n  );\n}\n","import clsx from 'clsx';\nimport { Icon as ReactFeatherComponentType, Check } from 'lucide-react';\nimport { Fragment } from 'react';\n\nimport { Icon } from '@/react/components/Icon';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\nimport { getFeatureDetails } from '@@/BEFeatureIndicator/utils';\n\nimport styles from './BoxSelectorItem.module.css';\nimport { BoxSelectorOption, Value } from './types';\nimport { LimitedToBeBoxSelectorIndicator } from './LimitedToBeBoxSelectorIndicator';\nimport { BoxOption } from './BoxOption';\nimport { LogoIcon } from './LogoIcon';\n\ntype Props<T extends Value> = {\n  option: BoxSelectorOption<T>;\n  radioName: string;\n  disabled?: boolean;\n  tooltip?: string;\n  onSelect(value: T, limitedToBE: boolean): void;\n  isSelected(value: T): boolean;\n  type?: 'radio' | 'checkbox';\n  slim?: boolean;\n  checkIcon?: ReactFeatherComponentType;\n};\n\nexport function BoxSelectorItem<T extends Value>({\n  radioName,\n  option,\n  onSelect = () => {},\n  disabled,\n  tooltip,\n  type = 'radio',\n  isSelected,\n  slim = false,\n  checkIcon = Check,\n}: Props<T>) {\n  const { limitedToBE = false, url: featureUrl } = getFeatureDetails(\n    option.feature\n  );\n\n  const ContentBox = slim ? 'div' : Fragment;\n\n  return (\n    <BoxOption\n      className={clsx(styles.boxSelectorItem, {\n        [styles.business]: limitedToBE,\n        [styles.limited]: limitedToBE,\n      })}\n      radioName={radioName}\n      option={option}\n      isSelected={isSelected}\n      disabled={isDisabled()}\n      onSelect={(value) => onSelect(value, limitedToBE)}\n      tooltip={tooltip}\n      type={type}\n      checkIcon={checkIcon}\n    >\n      {limitedToBE && (\n        <LimitedToBeBoxSelectorIndicator\n          url={featureUrl}\n          // show tooltip only for radio type options because be-only checkbox options can't be selected\n          showTooltip={type === 'radio'}\n        />\n      )}\n      <div\n        className={clsx('flex min-w-[140px] gap-2', {\n          'opacity-30': limitedToBE,\n          'h-full flex-col justify-start': !slim,\n          'slim items-center': slim,\n        })}\n      >\n        <div className={clsx(styles.imageContainer, 'flex items-start')}>\n          {renderIcon()}\n        </div>\n        <ContentBox>\n          <div className={styles.header}>{option.label}</div>\n          <p className=\"mb-0\">{option.description}</p>\n        </ContentBox>\n      </div>\n    </BoxOption>\n  );\n\n  function isDisabled() {\n    return disabled || (limitedToBE && option.disabledWhenLimited);\n  }\n\n  function renderIcon() {\n    if (!option.icon) {\n      return null;\n    }\n\n    if (option.iconType === 'badge') {\n      return <BadgeIcon icon={option.icon} iconClass={option.iconClass} />;\n    }\n\n    if (option.iconType === 'raw') {\n      return (\n        <Icon\n          icon={option.icon}\n          className={clsx(styles.icon, option.iconClass, '!flex items-center')}\n        />\n      );\n    }\n\n    return <LogoIcon icon={option.icon} iconClass={option.iconClass} />;\n  }\n}\n","import styles from './BoxSelector.module.css';\nimport { BoxSelectorItem } from './BoxSelectorItem';\nimport { BoxSelectorOption, Value } from './types';\n\ninterface IsMultiProps<T extends Value> {\n  isMulti: true;\n  value: T[];\n  onChange(value: T[], limitedToBE: boolean): void;\n}\n\ninterface SingleProps<T extends Value> {\n  isMulti?: never;\n  value: T;\n  onChange(value: T, limitedToBE: boolean): void;\n}\n\ntype Union<T extends Value> = IsMultiProps<T> | SingleProps<T>;\n\nexport type Props<T extends Value> = Union<T> & {\n  radioName: string;\n  options: ReadonlyArray<BoxSelectorOption<T>> | Array<BoxSelectorOption<T>>;\n  slim?: boolean;\n  hiddenSpacingCount?: number;\n};\n\nexport function BoxSelector<T extends Value>({\n  radioName,\n  options,\n  slim = false,\n  hiddenSpacingCount,\n  ...props\n}: Props<T>) {\n  return (\n    <div className='form-group after:clear-both after:table after:content-[\"\"]'>\n      <div className=\"col-sm-12\">\n        <div className={styles.root} role=\"radiogroup\">\n          {options\n            .filter((option) => !option.hide)\n            .map((option) => (\n              <BoxSelectorItem\n                key={option.id}\n                radioName={radioName}\n                option={option}\n                onSelect={handleSelect}\n                disabled={option.disabled && option.disabled()}\n                tooltip={option.tooltip && option.tooltip()}\n                type={props.isMulti ? 'checkbox' : 'radio'}\n                isSelected={isSelected}\n                slim={slim}\n              />\n            ))}\n          {hiddenSpacingCount &&\n            Array.from(Array(hiddenSpacingCount)).map((_, index) => (\n              <div key={index} className=\"flex-1\" />\n            ))}\n        </div>\n      </div>\n    </div>\n  );\n\n  function handleSelect(optionValue: T, limitedToBE: boolean) {\n    if (props.isMulti) {\n      const newValue = isSelected(optionValue)\n        ? props.value.filter((v) => v !== optionValue)\n        : [...props.value, optionValue];\n      props.onChange(newValue, limitedToBE);\n      return;\n    }\n\n    if (isSelected(optionValue)) {\n      return;\n    }\n\n    props.onChange(optionValue, limitedToBE);\n  }\n\n  function isSelected(optionValue: T) {\n    if (props.isMulti) {\n      return props.value.includes(optionValue);\n    }\n\n    return props.value === optionValue;\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"code\":\"app-react-components-Code-Code-module__code\",\"root\":\"app-react-components-Code-Code-module__root\",\"copyButton\":\"app-react-components-Code-Code-module__copy-button\"};","import { Check, Copy } from 'lucide-react';\n\nimport { Button } from '@@/buttons';\nimport { useCopy } from '@@/buttons/CopyButton/useCopy';\nimport { Icon } from '@@/Icon';\n\nimport styles from './Code.module.css';\n\ninterface Props {\n  showCopyButton?: boolean;\n  children: string;\n}\n\nexport function Code({ children, showCopyButton }: Props) {\n  const { handleCopy, copiedSuccessfully } = useCopy(children);\n\n  return (\n    <div className={styles.root}>\n      <code className={styles.code}>{children}</code>\n\n      {showCopyButton && (\n        <Button color=\"link\" className={styles.copyButton} onClick={handleCopy}>\n          <Icon\n            icon={copiedSuccessfully ? Check : Copy}\n            className=\"!ml-1\"\n            mode={copiedSuccessfully ? 'success' : undefined}\n          />\n        </Button>\n      )}\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-CodeEditor-module__root\"};","import CodeMirror from '@uiw/react-codemirror';\nimport { StreamLanguage, LanguageSupport } from '@codemirror/language';\nimport { yaml } from '@codemirror/legacy-modes/mode/yaml';\nimport { dockerFile } from '@codemirror/legacy-modes/mode/dockerfile';\nimport { shell } from '@codemirror/legacy-modes/mode/shell';\nimport { useMemo } from 'react';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { tags as highlightTags } from '@lezer/highlight';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\n\nimport styles from './CodeEditor.module.css';\nimport { TextTip } from './Tip/TextTip';\n\ninterface Props {\n  id: string;\n  placeholder?: string;\n  yaml?: boolean;\n  dockerFile?: boolean;\n  shell?: boolean;\n  readonly?: boolean;\n  onChange: (value: string) => void;\n  value: string;\n  height?: string;\n}\n\nconst theme = createTheme({\n  theme: 'light',\n  settings: {\n    background: 'var(--bg-codemirror-color)',\n    foreground: 'var(--text-codemirror-color)',\n    caret: 'var(--border-codemirror-cursor-color)',\n    selection: 'var(--bg-codemirror-selected-color)',\n    selectionMatch: 'var(--bg-codemirror-selected-color)',\n    gutterBackground: 'var(--bg-codemirror-gutters-color)',\n  },\n  styles: [\n    { tag: highlightTags.atom, color: 'var(--text-cm-default-color)' },\n    { tag: highlightTags.meta, color: 'var(--text-cm-meta-color)' },\n    {\n      tag: [highlightTags.string, highlightTags.special(highlightTags.brace)],\n      color: 'var(--text-cm-string-color)',\n    },\n    { tag: highlightTags.number, color: 'var(--text-cm-number-color)' },\n    { tag: highlightTags.keyword, color: 'var(--text-cm-keyword-color)' },\n    { tag: highlightTags.comment, color: 'var(--text-cm-comment-color)' },\n    {\n      tag: highlightTags.variableName,\n      color: 'var(--text-cm-variable-name-color)',\n    },\n  ],\n});\n\nconst yamlLanguage = new LanguageSupport(StreamLanguage.define(yaml));\nconst dockerFileLanguage = new LanguageSupport(\n  StreamLanguage.define(dockerFile)\n);\nconst shellLanguage = new LanguageSupport(StreamLanguage.define(shell));\n\nexport function CodeEditor({\n  id,\n  onChange,\n  placeholder,\n  readonly,\n  value,\n  height = '500px',\n  yaml: isYaml,\n  dockerFile: isDockerFile,\n  shell: isShell,\n}: Props) {\n  const extensions = useMemo(() => {\n    const extensions = [];\n    if (isYaml) {\n      extensions.push(yamlLanguage);\n    }\n    if (isDockerFile) {\n      extensions.push(dockerFileLanguage);\n    }\n    if (isShell) {\n      extensions.push(shellLanguage);\n    }\n    return extensions;\n  }, [isYaml, isDockerFile, isShell]);\n\n  return (\n    <>\n      <div className=\"mb-2 flex items-center justify-between\">\n        <div className=\"flex flex-1 items-center\">\n          {!!placeholder && <TextTip color=\"blue\">{placeholder}</TextTip>}\n        </div>\n\n        <CopyButton\n          fadeDelay={2500}\n          copyText={value}\n          color=\"link\"\n          className=\"!pr-0 !text-sm !font-medium hover:no-underline focus:no-underline\"\n          indicatorPosition=\"left\"\n        >\n          Copy to clipboard\n        </CopyButton>\n      </div>\n      <CodeMirror\n        className={styles.root}\n        theme={theme}\n        value={value}\n        onChange={onChange}\n        readOnly={readonly}\n        id={id}\n        extensions={extensions}\n        height={height}\n        basicSetup={{\n          highlightSelectionMatches: false,\n          autocompletion: false,\n        }}\n      />\n    </>\n  );\n}\n","import { PropsWithChildren } from 'react';\n\nexport function DashboardGrid({ children }: PropsWithChildren<unknown>) {\n  return <div className=\"grid grid-cols-2 gap-3\">{children}</div>;\n}\n","import { ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { Loader2 } from 'lucide-react';\n\nimport { Icon, IconProps } from '@/react/components/Icon';\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { Link } from '@@/Link';\n\ninterface Props extends IconProps {\n  type: string;\n  pluralType?: string; // in case the pluralise function isn't suitable\n  isLoading?: boolean;\n  isRefetching?: boolean;\n  value?: number;\n  to?: string;\n  params?: object;\n  children?: ReactNode;\n  dataCy?: string;\n}\n\nexport function DashboardItem({\n  icon,\n  type,\n  pluralType,\n  isLoading,\n  isRefetching,\n  value,\n  to,\n  params,\n  children,\n  dataCy,\n}: Props) {\n  const Item = (\n    <div\n      className={clsx(\n        'relative rounded-lg border border-solid p-3',\n        'border-gray-5 bg-gray-2 hover:border-blue-7 hover:bg-blue-2',\n        'th-dark:border-gray-neutral-8 th-dark:bg-gray-iron-10 th-dark:hover:border-blue-8 th-dark:hover:bg-gray-10',\n        'th-highcontrast:border-white th-highcontrast:bg-black th-highcontrast:hover:border-blue-8 th-highcontrast:hover:bg-gray-11'\n      )}\n      data-cy={dataCy}\n    >\n      <div\n        className={clsx(\n          'text-muted absolute right-2 top-2 flex items-center text-xs transition-opacity',\n          isRefetching ? 'opacity-100' : 'opacity-0'\n        )}\n      >\n        Refreshing total\n        <Loader2 className=\"h-4 animate-spin-slow\" />\n      </div>\n      <div\n        className={clsx(\n          'text-muted absolute right-2 top-2 flex items-center text-xs transition-opacity',\n          isLoading ? 'opacity-100' : 'opacity-0'\n        )}\n      >\n        Loading total\n        <Loader2 className=\"h-4 animate-spin-slow\" />\n      </div>\n      <div className=\"flex items-center\" aria-label={type}>\n        <div\n          className={clsx(\n            'icon-badge mr-4 !p-2 text-2xl',\n            'bg-blue-3 text-blue-8',\n            'th-dark:bg-blue-3 th-dark:text-blue-8',\n            'th-highcontrast:bg-blue-3 th-highcontrast:text-blue-8'\n          )}\n        >\n          <Icon icon={icon} />\n        </div>\n\n        <div className=\"flex flex-col justify-around\">\n          <div\n            className={clsx(\n              'text-2xl font-medium',\n              'text-gray-9',\n              'th-dark:text-white',\n              'th-highcontrast:text-white'\n            )}\n            aria-label=\"value\"\n          >\n            {typeof value === 'undefined' ? '-' : value}\n          </div>\n          <div\n            className={clsx(\n              'text-xl',\n              'text-gray-7',\n              'th-dark:text-gray-warm-5',\n              'th-highcontrast:text-gray-warm-5'\n            )}\n            aria-label=\"resourceType\"\n          >\n            {pluralize(value || 0, type, pluralType)}\n          </div>\n        </div>\n\n        <div className=\"ml-auto\">{children}</div>\n      </div>\n    </div>\n  );\n\n  if (to) {\n    return (\n      <Link to={to} className=\"!no-underline\" params={params}>\n        {Item}\n      </Link>\n    );\n  }\n  return Item;\n}\n","import { DetailsTable as MainComponent } from './DetailsTable';\nimport { DetailsRow } from './DetailsRow';\n\ninterface DetailsTableSubcomponents {\n  Row: typeof DetailsRow;\n}\n\nconst DetailsTable = MainComponent as typeof MainComponent &\n  DetailsTableSubcomponents;\n\nDetailsTable.Row = DetailsRow;\n\nexport { DetailsTable };\n","import clsx from 'clsx';\nimport { Children, PropsWithChildren } from 'react';\n\ntype Props = {\n  headers?: string[];\n  dataCy?: string;\n  className?: string;\n  emptyMessage?: string;\n};\n\nexport function DetailsTable({\n  headers = [],\n  dataCy,\n  className,\n  emptyMessage,\n  children,\n}: PropsWithChildren<Props>) {\n  return (\n    <table className={clsx('table', className)} data-cy={dataCy}>\n      {headers.length > 0 && (\n        <thead>\n          <tr>\n            {headers.map((header) => (\n              <th key={header}>{header}</th>\n            ))}\n          </tr>\n        </thead>\n      )}\n      <tbody>\n        {Children.count(children) > 0 ? (\n          children\n        ) : (\n          <tr>\n            <td colSpan={headers.length} className=\"text-muted text-center\">\n              {emptyMessage}\n            </td>\n          </tr>\n        )}\n      </tbody>\n    </table>\n  );\n}\n","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\ninterface Props {\n  children: ReactNode;\n  label: string;\n  colClassName?: string;\n  className?: string;\n  columns?: Array<ReactNode>;\n}\n\nexport function DetailsRow({\n  label,\n  children,\n  colClassName,\n  className,\n  columns,\n}: Props) {\n  return (\n    <tr className={className}>\n      <td className={clsx(colClassName, 'min-w-[150px] !break-normal')}>\n        {label}\n      </td>\n      <td className={colClassName} data-cy={`detailsTable-${label}Value`}>\n        {children}\n      </td>\n      {columns?.map((column, index) => (\n        <td key={index} className={colClassName}>\n          {column}\n        </td>\n      ))}\n    </tr>\n  );\n}\n","import { ReactNode, useEffect, useState } from 'react';\n\ninterface Props {\n  // props for the image to load\n  src?: string; // a link to an external image\n  fallbackIcon: ReactNode;\n  alt?: string;\n  className?: string;\n}\n\nexport function FallbackImage({ src, fallbackIcon, alt, className }: Props) {\n  const [error, setError] = useState(false);\n\n  useEffect(() => {\n    setError(false);\n  }, [src]);\n\n  if (!error && src) {\n    return (\n      <img\n        className={className}\n        src={src}\n        alt={alt}\n        onError={() => setError(true)}\n      />\n    );\n  }\n\n  // fallback icon if there is an error loading the image\n  return <>{fallbackIcon}</>;\n}\n","import { ReactNode } from 'react';\n\nimport { useDocsUrl } from '../PageHeader/ContextHelp/ContextHelp';\n\ntype HelpLinkProps = {\n  docLink: string;\n  target?: string;\n  children?: ReactNode;\n};\n\nexport function HelpLink({\n  docLink,\n  target = '_blank',\n  children,\n}: HelpLinkProps) {\n  const docsUrl = useDocsUrl(docLink);\n\n  return (\n    <a href={docsUrl} target={target} rel=\"noopener noreferrer\">\n      {children}\n    </a>\n  );\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDataflow1 = function SvgDataflow1(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"M17 20h-.2c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C12 17.72 12 16.88 12 15.2V8.8c0-1.68 0-2.52.327-3.162a3 3 0 0 1 1.311-1.311C14.28 4 15.12 4 16.8 4h.2m0 16a2 2 0 1 0 4 0 2 2 0 0 0-4 0Zm0-16a2 2 0 1 0 4 0 2 2 0 0 0-4 0ZM7 12h10M7 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm10 0a2 2 0 1 0 4 0 2 2 0 0 0-4 0Z\"\n  })));\n};\nexport default SvgDataflow1;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgRestoreWindow = function SvgRestoreWindow(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"M10.5 2.003c-.675.009-1.08.048-1.408.215a2 2 0 0 0-.874.874c-.167.328-.206.733-.215 1.408M19.5 2.003c.675.009 1.08.048 1.408.215a2 2 0 0 1 .874.874c.167.328.206.733.215 1.408m0 9c-.009.675-.048 1.08-.215 1.408a2 2 0 0 1-.874.874c-.328.167-.733.206-1.408.215M22 8v2m-8-8h2M5.2 22h7.6c1.12 0 1.68 0 2.108-.218a2 2 0 0 0 .874-.874C16 20.48 16 19.92 16 18.8v-7.6c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874C14.48 8 13.92 8 12.8 8H5.2c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874C2 9.52 2 10.08 2 11.2v7.6c0 1.12 0 1.68.218 2.108a2 2 0 0 0 .874.874C3.52 22 4.08 22 5.2 22Z\"\n  })));\n};\nexport default SvgRestoreWindow;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSort = function SvgSort(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 2,\n    d: \"M17 4v16m0 0-4-4m4 4 4-4M7 20V4m0 0L3 8m4-4 4 4\"\n  })));\n};\nexport default SvgSort;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgPlaceholder = function SvgPlaceholder(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    stroke: \"currentColor\",\n    strokeWidth: 0.3,\n    d: \"M23.419 11.65a.43.43 0 0 0-.29-.218l-2.37-.604a.463.463 0 0 0-.58.362l-.532 2.152-2.055-.508-.096-.024a.608.608 0 0 0-.363.048.43.43 0 0 0-.217.29l-.532 2.152-2.152-.532a.463.463 0 0 0-.58.363l-.58 2.127-2.152-.532a.608.608 0 0 0-.363.049.431.431 0 0 0-.218.29l-.048.193-.556 2.273a.463.463 0 0 0 .363.58l9.38 2.345c.12.024.217.048.338.048.605 0 1.16-.41 1.306-1.015l2.37-9.477a.498.498 0 0 0-.073-.363Zm-8.97 4.157 2.104.532c.12.049.29.025.41-.048a.45.45 0 0 0 .218-.363l.412-1.668 1.353 1.79-.677 2.707-4.303-1.088.484-1.862Zm5.73 5.44a.382.382 0 0 1-.46.29l-8.92-2.224.338-1.33 7.398 1.862c.024 0 .073.024.097.024h.024c.024 0 .049 0 .097-.024h.024c.048 0 .073-.024.097-.048a.43.43 0 0 0 .217-.29l.846-3.41a.602.602 0 0 0-.072-.41L18.68 14.14l1.16.29a.463.463 0 0 0 .58-.363l.533-2.152 1.45.363-2.224 8.969ZM10.291 15.71a.485.485 0 0 0 .484-.483v-2.224h2.2a.485.485 0 0 0 .483-.483v-2.2h2.2a.485.485 0 0 0 .484-.483V7.613h1.982a.485.485 0 0 0 .483-.484V2.85c0-.749-.604-1.353-1.354-1.353h-15.4C1.105 1.496.5 2.1.5 2.85v14.07c0 .75.604 1.354 1.354 1.354h5.73a.485.485 0 0 0 .483-.483v-2.055l2.224-.025Zm2.2-3.674h-2.2a.485.485 0 0 0-.483.484v2.224H3.837v-1.475l1.885-1.427 1.644.943a.515.515 0 0 0 .58-.072L11.55 9.23l.943.75v2.055ZM7.1 17.282H1.854a.382.382 0 0 1-.387-.387V2.85c0-.218.17-.387.387-.387h15.4c.217 0 .386.17.386.387v3.82h-1.958a.485.485 0 0 0-.483.483v2.224h-1.934l-1.427-1.136c-.193-.145-.46-.145-.628.024l-3.675 3.506-1.596-.919c-.169-.097-.387-.097-.532.024l-2.345 1.765a.505.505 0 0 0-.193.387v2.224c0 .121.048.242.145.338a.477.477 0 0 0 .338.145H7.1l.001 1.547Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    stroke: \"currentColor\",\n    strokeWidth: 0.3,\n    d: \"M5.408 8.821a2.182 2.182 0 0 0 2.176-2.176A2.182 2.182 0 0 0 5.408 4.47a2.182 2.182 0 0 0-2.176 2.176c-.024 1.185.967 2.176 2.176 2.176Zm0-3.409c.677 0 1.208.556 1.208 1.209 0 .677-.556 1.209-1.208 1.209a1.212 1.212 0 0 1-1.209-1.21c-.024-.676.532-1.208 1.209-1.208Z\"\n  })));\n};\nexport default SvgPlaceholder;","var _style, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAws = function SvgAws(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlSpace: \"preserve\",\n    id: \"aws_svg__Layer_1\",\n    x: 0,\n    y: 0,\n    style: {\n      enableBackground: \"new 0 0 304 182\"\n    },\n    viewBox: \"0 0 304 182\",\n    width: \"1em\",\n    height: \"1em\"\n  }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".aws_svg__st1{fill-rule:evenodd;clip-rule:evenodd;fill:#f90}\")), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M86.4 66.4c0 3.7.4 6.7 1.1 8.9.8 2.2 1.8 4.6 3.2 7.2.5.8.7 1.6.7 2.3 0 1-.6 2-1.9 3L83.2 92c-.9.6-1.8.9-2.6.9-1 0-2-.5-3-1.4-1.4-1.5-2.6-3.1-3.6-4.7-1-1.7-2-3.6-3.1-5.9-7.8 9.2-17.6 13.8-29.4 13.8-8.4 0-15.1-2.4-20-7.2-4.9-4.8-7.4-11.2-7.4-19.2 0-8.5 3-15.4 9.1-20.6 6.1-5.2 14.2-7.8 24.5-7.8 3.4 0 6.9.3 10.6.8 3.7.5 7.5 1.3 11.5 2.2v-7.3c0-7.6-1.6-12.9-4.7-16-3.2-3.1-8.6-4.6-16.3-4.6-3.5 0-7.1.4-10.8 1.3-3.7.9-7.3 2-10.8 3.4-1.6.7-2.8 1.1-3.5 1.3-.7.2-1.2.3-1.6.3-1.4 0-2.1-1-2.1-3.1v-4.9c0-1.6.2-2.8.7-3.5.5-.7 1.4-1.4 2.8-2.1 3.5-1.8 7.7-3.3 12.6-4.5C41 1.9 46.2 1.3 51.7 1.3c11.9 0 20.6 2.7 26.2 8.1 5.5 5.4 8.3 13.6 8.3 24.6v32.4zM45.8 81.6c3.3 0 6.7-.6 10.3-1.8 3.6-1.2 6.8-3.4 9.5-6.4 1.6-1.9 2.8-4 3.4-6.4.6-2.4 1-5.3 1-8.7v-4.2c-2.9-.7-6-1.3-9.2-1.7-3.2-.4-6.3-.6-9.4-.6-6.7 0-11.6 1.3-14.9 4-3.3 2.7-4.9 6.5-4.9 11.5 0 4.7 1.2 8.2 3.7 10.6 2.4 2.5 5.9 3.7 10.5 3.7zm80.3 10.8c-1.8 0-3-.3-3.8-1-.8-.6-1.5-2-2.1-3.9L96.7 10.2c-.6-2-.9-3.3-.9-4 0-1.6.8-2.5 2.4-2.5h9.8c1.9 0 3.2.3 3.9 1 .8.6 1.4 2 2 3.9l16.8 66.2 15.6-66.2c.5-2 1.1-3.3 1.9-3.9.8-.6 2.2-1 4-1h8c1.9 0 3.2.3 4 1 .8.6 1.5 2 1.9 3.9l15.8 67 17.3-67c.6-2 1.3-3.3 2-3.9.8-.6 2.1-1 3.9-1h9.3c1.6 0 2.5.8 2.5 2.5 0 .5-.1 1-.2 1.6-.1.6-.3 1.4-.7 2.5l-24.1 77.3c-.6 2-1.3 3.3-2.1 3.9-.8.6-2.1 1-3.8 1h-8.6c-1.9 0-3.2-.3-4-1-.8-.7-1.5-2-1.9-4L156 23l-15.4 64.4c-.5 2-1.1 3.3-1.9 4-.8.7-2.2 1-4 1h-8.6zm128.5 2.7c-5.2 0-10.4-.6-15.4-1.8-5-1.2-8.9-2.5-11.5-4-1.6-.9-2.7-1.9-3.1-2.8-.4-.9-.6-1.9-.6-2.8v-5.1c0-2.1.8-3.1 2.3-3.1.6 0 1.2.1 1.8.3.6.2 1.5.6 2.5 1 3.4 1.5 7.1 2.7 11 3.5 4 .8 7.9 1.2 11.9 1.2 6.3 0 11.2-1.1 14.6-3.3 3.4-2.2 5.2-5.4 5.2-9.5 0-2.8-.9-5.1-2.7-7-1.8-1.9-5.2-3.6-10.1-5.2L246 52c-7.3-2.3-12.7-5.7-16-10.2-3.3-4.4-5-9.3-5-14.5 0-4.2.9-7.9 2.7-11.1 1.8-3.2 4.2-6 7.2-8.2 3-2.3 6.4-4 10.4-5.2 4-1.2 8.2-1.7 12.6-1.7 2.2 0 4.5.1 6.7.4 2.3.3 4.4.7 6.5 1.1 2 .5 3.9 1 5.7 1.6 1.8.6 3.2 1.2 4.2 1.8 1.4.8 2.4 1.6 3 2.5.6.8.9 1.9.9 3.3v4.7c0 2.1-.8 3.2-2.3 3.2-.8 0-2.1-.4-3.8-1.2-5.7-2.6-12.1-3.9-19.2-3.9-5.7 0-10.2.9-13.3 2.8-3.1 1.9-4.7 4.8-4.7 8.9 0 2.8 1 5.2 3 7.1 2 1.9 5.7 3.8 11 5.5l14.2 4.5c7.2 2.3 12.4 5.5 15.5 9.6 3.1 4.1 4.6 8.8 4.6 14 0 4.3-.9 8.2-2.6 11.6-1.8 3.4-4.2 6.4-7.3 8.8-3.1 2.5-6.8 4.3-11.1 5.6-4.5 1.4-9.2 2.1-14.3 2.1z\",\n    style: {\n      fill: \"#252f3e\"\n    }\n  }), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M273.5 143.7c-32.9 24.3-80.7 37.2-121.8 37.2-57.6 0-109.5-21.3-148.7-56.7-3.1-2.8-.3-6.6 3.4-4.4 42.4 24.6 94.7 39.5 148.8 39.5 36.5 0 76.6-7.6 113.5-23.2 5.5-2.5 10.2 3.6 4.8 7.6z\",\n    className: \"aws_svg__st1\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M287.2 128.1c-4.2-5.4-27.8-2.6-38.5-1.3-3.2.4-3.7-2.4-.8-4.5 18.8-13.2 49.7-9.4 53.3-5 3.6 4.5-1 35.4-18.6 50.2-2.7 2.3-5.3 1.1-4.1-1.9 4-9.9 12.9-32.2 8.7-37.5z\",\n    className: \"aws_svg__st1\"\n  })));\n};\nexport default SvgAws;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgCivo = function SvgCivo(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlSpace: \"preserve\",\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 0 711.364 238.193\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    fill: \"#239DFF\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M273.539.081h-29.424c-5.424 0-8.981 4.179-8.981 9.423v219.13c0 5.245 3.557 9.447 8.981 9.447h29.424c5.424 0 9.595-4.202 9.595-9.447V9.504c0-5.244-4.171-9.423-9.595-9.423M181.662 173.122c-2.671-5.859-10.327-7.473-15.027-3.072-12.446 11.658-29.136 18.819-47.538 18.819-48.218 0-85.012-48.909-63.477-99.824 6.365-15.049 18.442-27.092 33.495-33.447 29.421-12.421 58.048-5.345 77.037 12.095 4.749 4.361 12.365 2.814 15.04-3.054l12.744-27.956c2.039-4.474.631-9.721-3.292-12.685C160.789 1.437 120.037-7.42 77.562 7.052 43.472 18.666 16.89 46.154 6.065 80.503c-25.894 82.163 34.749 157.69 113.032 157.69 27.245 0 52.286-9.214 72.327-24.633 3.786-2.913 4.973-8.113 2.991-12.462l-12.753-27.976zM705.299 80.503c-10.825-34.349-37.407-61.837-71.497-73.451-24.128-8.221-47.698-8.906-69.033-3.835-35.585 7.946-61.358 24.817-84.01 73.453l-45.455 98.598L358.15 5.667a9.498 9.498 0 0 0-8.626-5.56L315.818.054c-6.917-.011-11.524 7.142-8.653 13.436l100.064 218.79c1.542 3.383 4.917 5.67 8.634 5.671l1.637.131h37.841c.761 0 1.522-.157 2.244-.403 2.604-.887 4.798-2.745 5.938-5.311 0 0 50.098-114.027 50.681-115.402 15.244-35.949 24.495-50.922 48.691-61.206 18.307-7.78 39.955-8.727 60.885.753 14.57 6.599 26.028 18.657 32.122 33.443a80.065 80.065 0 0 1 6.122 28.142c.545 38.992-30.891 70.773-69.758 70.773-18.402 0-35.092-7.162-47.538-18.819-4.7-4.402-12.356-2.788-15.027 3.071L516.947 201.1c-1.981 4.348-.795 9.547 2.993 12.461 20.04 15.418 45.081 24.633 72.326 24.633 78.284-.001 138.926-75.528 113.033-157.691\"\n  }))));\n};\nexport default SvgCivo;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDigitalocean = function SvgDigitalocean(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 -3.954 53.927 53.954\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    fill: \"#0080ff\",\n    fillRule: \"evenodd\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M24.915 50v-9.661c10.226 0 18.164-10.141 14.237-20.904a14.438 14.438 0 0 0-8.615-8.616C19.774 6.921 9.633 14.83 9.633 25.056H0C0 8.758 15.763-3.954 32.853 1.384 40.311 3.73 46.271 9.661 48.588 17.12 53.927 34.237 41.243 50 24.915 50\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M15.339 40.367h9.604v-9.604H15.34zm-7.401 7.401h7.4v-7.4h-7.4zm-6.187-7.4h6.187V34.18H1.751z\"\n  }))));\n};\nexport default SvgDigitalocean;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGooglecloud = function SvgGooglecloud(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    preserveAspectRatio: \"xMidYMid\",\n    viewBox: \"0 0 256 206\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#EA4335\",\n    d: \"m170.252 56.819 22.253-22.253 1.483-9.37C153.437-11.677 88.976-7.496 52.42 33.92 42.267 45.423 34.734 59.764 30.717 74.573l7.97-1.123 44.505-7.34 3.436-3.513c19.797-21.742 53.27-24.667 76.128-6.168l7.496.39Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#4285F4\",\n    d: \"M224.205 73.918a100.249 100.249 0 0 0-30.217-48.722l-31.232 31.232a55.515 55.515 0 0 1 20.379 44.037v5.544c15.35 0 27.797 12.445 27.797 27.796 0 15.352-12.446 27.485-27.797 27.485h-55.671l-5.466 5.934v33.34l5.466 5.231h55.67c39.93.311 72.553-31.494 72.864-71.424a72.303 72.303 0 0 0-31.793-60.453\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#34A853\",\n    d: \"M71.87 205.796h55.593V161.29H71.87a27.275 27.275 0 0 1-11.399-2.498l-7.887 2.42-22.409 22.253-1.952 7.574c12.567 9.489 27.9 14.825 43.647 14.757\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FBBC05\",\n    d: \"M71.87 61.425C31.94 61.664-.237 94.228.001 134.159a72.301 72.301 0 0 0 28.222 56.88l32.248-32.246c-13.99-6.322-20.208-22.786-13.887-36.776 6.32-13.99 22.786-20.208 36.775-13.888a27.796 27.796 0 0 1 13.887 13.888l32.248-32.248A72.224 72.224 0 0 0 71.87 61.425\"\n  })));\n};\nexport default SvgGooglecloud;","var _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAkamai = function SvgAkamai(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlSpace: \"preserve\",\n    width: \"1em\",\n    height: \"1em\"\n  }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"akamai_svg__a\",\n    clipPathUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M0 0h612v792H0Z\"\n  })))), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      fill: \"#09c\",\n      fillOpacity: 1\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M0 0c-6.127 1.862-10.58 7.517-10.58 14.209 0 6.763 4.548 12.465 10.768 14.279.637.189.472.59-.306.59-8.271 0-14.986-6.669-14.986-14.869S-8.389-.66-.118-.66C.66-.66.707-.212 0 0\",\n    style: {\n      fill: \"#09c\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"matrix(5.60732 0 0 -5.60732 84.693 163.05)\"\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      fill: \"#000\"\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M0 0a10 10 0 0 0-.071 1.202 11.797 11.797 0 0 0 11.806 11.805c6.173 0 8.011-2.757 8.247-2.568.259.188-2.239 5.655-9.473 5.655A11.796 11.796 0 0 1-1.296 4.289c0-1.508.283-2.946.801-4.265C-.283-.542.047-.542 0 0\",\n    style: {\n      fill: \"#09c\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"matrix(5.60732 0 0 -5.60732 41.355 102.799)\"\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      fill: \"#09c\",\n      fillOpacity: 1\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M0 0c3.063 1.343 6.928 1.39 10.721.047 2.545-.895 4.03-2.168 4.148-2.097.212.094-1.485 2.757-4.525 3.912A10.79 10.79 0 0 1-.165.259C-.495 0-.377-.165 0 0\",\n    style: {\n      fill: \"#09c\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"matrix(5.60732 0 0 -5.60732 69.102 55.1)\"\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M0 0c0-.848-.707-1.555-1.555-1.555-.849 0-1.555.683-1.555 1.555 0 .848.683 1.555 1.555 1.555S0 .872 0 0\",\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"matrix(5.60732 0 0 -5.60732 409.333 86.283)\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"m525.457 729.914.188-2.074h3.276l-1.108 12.041h-4.877l-6.174-12.04h3.346l1.037 2.073zm-.165 2.333H522.3l2.57 5.207h.022zm8.177.849h.495l2.333 3.18h3.039l-3.228-4.052 1.98-4.383h-3.229l-1.296 3.417h-.471l-.73-3.417h-2.757l2.544 12.04h2.757z\",\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"matrix(5.60732 0 0 -5.60732 -2820.89 4227.904)\"\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#akamai_svg__a)\",\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1\n    },\n    transform: \"matrix(5.60732 0 0 -5.60732 -2820.89 4227.904)\"\n  }, /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M0 0h2.757l1.107 5.255C4.477 8.153 3.37 8.506.542 8.506c-1.979 0-3.888.024-4.43-2.591h2.757c.165.754.636.918 1.32.918 1.201 0 1.154-.494.989-1.272L.895 4.218H.778c-.095.966-1.32.942-2.098.942-2.002 0-3.181-.636-3.605-2.662-.447-2.144.566-2.616 2.498-2.616.966 0 2.262.189 2.71 1.343h.094Zm-.778 3.487c.896 0 1.485-.07 1.343-.777C.377 1.838 0 1.673-1.155 1.673c-.424 0-1.201 0-1.013.919.165.778.707.895 1.39.895\",\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"translate(543.649 727.84)\"\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"m0 0-.259-1.178h.118C.401-.188 1.508.094 2.451.094c1.178 0 2.356-.212 2.191-1.649h.118C5.16-.353 6.386.094 7.446.094c1.956 0 2.781-.801 2.356-2.757L8.577-8.436H5.82l1.037 4.878c.141.872.283 1.532-.778 1.532-1.084 0-1.437-.707-1.626-1.626L3.44-8.436H.683l1.084 5.114c.142.777.189 1.296-.777 1.296-1.131 0-1.485-.613-1.697-1.626L-1.72-8.436h-2.757L-2.686 0Z\",\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"translate(551.99 736.277)\"\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1\n    }\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M0 0h2.757l1.131 5.255c.613 2.898-.495 3.251-3.322 3.251-1.98 0-3.889.024-4.43-2.591h2.757c.164.754.636.918 1.319.918 1.202 0 1.155-.494.99-1.272L.919 4.218H.801c-.094.966-1.319.942-2.097.942-2.003 0-3.181-.636-3.605-2.662-.448-2.144.565-2.616 2.497-2.616.967 0 2.263.189 2.71 1.343h.095Zm-.754 3.487c.895 0 1.484-.07 1.343-.777-.188-.872-.565-1.037-1.72-1.037-.424 0-1.202 0-1.013.919.165.778.707.895 1.39.895\",\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"translate(566.906 727.84)\"\n  }))), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M573.669 727.84h-2.757l1.767 8.437h2.78z\",\n    style: {\n      fill: \"#f93\",\n      fillOpacity: 1,\n      fillRule: \"nonzero\",\n      stroke: \"none\"\n    },\n    transform: \"matrix(5.60732 0 0 -5.60732 -2820.89 4227.904)\"\n  }));\n};\nexport default SvgAkamai;","// general icons\n\nimport dataflow from '@/assets/ico/dataflow-1.svg?c';\nimport git from '@/assets/ico/git.svg?c';\nimport kube from '@/assets/ico/kube.svg?c';\nimport laptopcode from '@/assets/ico/laptop-code.svg?c';\nimport ldap from '@/assets/ico/ldap.svg?c';\nimport linux from '@/assets/ico/linux.svg?c';\nimport memory from '@/assets/ico/memory.svg?c';\nimport restorewindow from '@/assets/ico/restore-window.svg?c';\nimport route from '@/assets/ico/route.svg?c';\nimport sort from '@/assets/ico/sort.svg?c';\nimport subscription from '@/assets/ico/subscription.svg?c';\nimport Placeholder from '@/assets/ico/placeholder.svg?c'; // Placeholder is used when an icon name cant be matched\n// vendor icons\nimport aws from '@/assets/ico/vendor/aws.svg?c';\nimport azure from '@/assets/ico/vendor/azure.svg?c';\nimport civo from '@/assets/ico/vendor/civo.svg?c';\nimport digitalocean from '@/assets/ico/vendor/digitalocean.svg?c';\nimport docker from '@/assets/ico/vendor/docker.svg?c';\nimport dockericon from '@/assets/ico/vendor/docker-icon.svg?c';\nimport dockercompose from '@/assets/ico/vendor/docker-compose.svg?c';\nimport ecr from '@/assets/ico/vendor/ecr.svg?c';\nimport github from '@/assets/ico/vendor/github.svg?c';\nimport gitlab from '@/assets/ico/vendor/gitlab.svg?c';\nimport google from '@/assets/ico/vendor/google.svg?c';\nimport googlecloud from '@/assets/ico/vendor/googlecloud.svg?c';\nimport kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport helm from '@/assets/ico/vendor/helm.svg?c';\nimport akamai from '@/assets/ico/vendor/akamai.svg?c';\nimport microsoft from '@/assets/ico/vendor/microsoft.svg?c';\nimport microsofticon from '@/assets/ico/vendor/microsoft-icon.svg?c';\nimport openldap from '@/assets/ico/vendor/openldap.svg?c';\nimport proget from '@/assets/ico/vendor/proget.svg?c';\nimport quay from '@/assets/ico/vendor/quay.svg?c';\n\nconst placeholder = Placeholder;\n\nexport const SvgIcons = {\n  dataflow,\n  dockericon,\n  git,\n  laptopcode,\n  ldap,\n  linux,\n  memory,\n  placeholder,\n  restorewindow,\n  route,\n  sort,\n  subscription,\n  aws,\n  azure,\n  civo,\n  digitalocean,\n  docker,\n  dockercompose,\n  ecr,\n  github,\n  gitlab,\n  google,\n  googlecloud,\n  kubernetes,\n  helm,\n  akamai,\n  microsoft,\n  microsofticon,\n  openldap,\n  proget,\n  quay,\n  kube,\n};\n\ninterface SvgProps {\n  icon: keyof typeof SvgIcons;\n  className?: string;\n}\n\nfunction Svg({ icon, className }: SvgProps) {\n  const SvgIcon = SvgIcons[icon];\n\n  if (!SvgIcon) {\n    return (\n      <span className={className} aria-hidden=\"true\">\n        <Placeholder />\n      </span>\n    );\n  }\n\n  return (\n    <span className={className} aria-hidden=\"true\">\n      <SvgIcon />\n    </span>\n  );\n}\n\nexport default Svg;\n","import clsx from 'clsx';\nimport { ComponentType, ReactNode } from 'react';\nimport * as lucideIcons from 'lucide-react';\nimport { isValidElementType } from 'react-is';\n\nimport Svg, { SvgIcons } from './Svg';\n\nexport interface IconProps {\n  icon: ReactNode | ComponentType<unknown>;\n  iconClass?: string;\n}\n\nexport type IconMode =\n  | 'alt'\n  | 'primary'\n  | 'primary-alt'\n  | 'secondary'\n  | 'secondary-alt'\n  | 'warning'\n  | 'warning-alt'\n  | 'danger'\n  | 'danger-alt'\n  | 'success'\n  | 'success-alt';\n\nexport type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface Props {\n  icon: ReactNode | ComponentType<{ size?: string | number }>;\n  className?: string;\n  size?: IconSize;\n  mode?: IconMode;\n  spin?: boolean;\n}\n\nexport function Icon({ icon, className, mode, size, spin }: Props) {\n  const classes = clsx(className, 'icon inline-flex', {\n    [`icon-${mode}`]: mode,\n    [`icon-${size}`]: size,\n    'animate-spin-slow': spin,\n  });\n\n  if (typeof icon !== 'string') {\n    const Icon = isValidElementType(icon) ? icon : null;\n\n    if (Icon) {\n      return <Icon className={classes} aria-hidden=\"true\" role=\"img\" />;\n    }\n\n    return (\n      <span className={classes} aria-hidden=\"true\" role=\"img\">\n        {icon}\n      </span>\n    );\n  }\n\n  if (icon.indexOf('svg-') === 0) {\n    const svgIcon = icon.replace('svg-', '');\n    return (\n      <Svg\n        icon={svgIcon as keyof typeof SvgIcons}\n        className={classes}\n        aria-hidden=\"true\"\n      />\n    );\n  }\n\n  const iconName = icon\n    .split('-')\n    .map((s) => s.slice(0, 1).toUpperCase() + s.slice(1))\n    .join('') as keyof typeof lucideIcons;\n  const IconComponent = lucideIcons[iconName] as React.FC<\n    React.SVGProps<SVGSVGElement>\n  >;\n  if (!IconComponent) {\n    // console error so that the error is logged but no functionality is broken\n    // eslint-disable-next-line no-console\n    console.error(`Icon not found: '${icon}'`);\n    return null;\n  }\n\n  return <IconComponent className={classes} aria-hidden=\"true\" />;\n}\n","import { PropsWithChildren } from 'react';\nimport { X } from 'lucide-react';\n\nimport { Widget, WidgetBody } from './Widget';\nimport { Button } from './buttons';\n\ninterface Props {\n  title?: string;\n  onDismiss?(): void;\n  bodyClassName?: string;\n  wrapperStyle?: Record<string, string>;\n}\n\nexport function InformationPanel({\n  title,\n  onDismiss,\n  wrapperStyle,\n  bodyClassName,\n  children,\n}: PropsWithChildren<Props>) {\n  return (\n    <div className=\"row\">\n      <div className=\"col-sm-12\">\n        <Widget>\n          <WidgetBody className={bodyClassName}>\n            <div style={wrapperStyle}>\n              {title && (\n                <div className=\"form-section-title\">\n                  <span>{title}</span>\n                  {!!onDismiss && (\n                    <span className=\"small\" style={{ float: 'right' }}>\n                      <Button color=\"link\" icon={X} onClick={() => onDismiss()}>\n                        dismiss\n                      </Button>\n                    </span>\n                  )}\n                </div>\n              )}\n              <div>{children}</div>\n            </div>\n          </WidgetBody>\n        </Widget>\n      </div>\n    </div>\n  );\n}\n","import { Loader2 } from 'lucide-react';\nimport { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\n\nimport { Icon } from '@@/Icon';\n\ntype Size = 'xs' | 'sm' | 'md';\n\nexport type Props = {\n  className?: string;\n  size?: Size;\n};\n\nconst sizeStyles: Record<Size, string> = {\n  xs: 'text-xs',\n  sm: 'text-sm',\n  md: 'text-md',\n};\n\nexport function InlineLoader({\n  children,\n  className,\n  size = 'sm',\n}: PropsWithChildren<Props>) {\n  return (\n    <div\n      className={clsx(\n        'text-muted flex items-center gap-2',\n        className,\n        sizeStyles[size]\n      )}\n    >\n      <Icon icon={Loader2} className=\"animate-spin-slow\" />\n      {children}\n    </div>\n  );\n}\n","import { createStore } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\n\ninterface InsightsStore {\n  insightIDsClosed: string[];\n  addInsightIDClosed: (insightIDClosed: string) => void;\n  isClosed: (insightID?: string) => boolean;\n}\n\nexport const insightStore = createStore<InsightsStore>()(\n  persist(\n    (set, get) => ({\n      insightIDsClosed: [],\n      addInsightIDClosed: (insightIDClosed: string) => {\n        set((state) => {\n          const currentIDsClosed = state.insightIDsClosed || [];\n          return { insightIDsClosed: [...currentIDsClosed, insightIDClosed] };\n        });\n      },\n      isClosed: (insightID?: string) => {\n        if (!insightID) {\n          return false;\n        }\n        const currentIDsClosed = get().insightIDsClosed || [];\n        return currentIDsClosed.includes(insightID);\n      },\n    }),\n    {\n      name: keyBuilder('insightIDsClosed'),\n      getStorage: () => localStorage,\n    }\n  )\n);\n","import clsx from 'clsx';\nimport { Lightbulb, X } from 'lucide-react';\nimport { ReactNode } from 'react';\nimport { useStore } from 'zustand';\n\nimport { Button } from '@@/buttons';\n\nimport { insightStore } from './insights-store';\n\nexport type Props = {\n  header?: string;\n  content?: ReactNode;\n  insightCloseId?: string; // set if you want to be able to close the box and not show it again\n  type?: 'default' | 'slim';\n  className?: string;\n};\n\nexport function InsightsBox({\n  header,\n  content,\n  insightCloseId,\n  type = 'default',\n  className,\n}: Props) {\n  // allow to close the box and not show it again in local storage with zustand\n  const { addInsightIDClosed, isClosed } = useStore(insightStore);\n  const isInsightClosed = isClosed(insightCloseId);\n\n  if (isInsightClosed) {\n    return null;\n  }\n\n  return (\n    <div\n      className={clsx(\n        'relative flex w-full gap-1 rounded-lg bg-gray-modern-3 p-4 text-sm th-highcontrast:bg-legacy-grey-3 th-dark:bg-legacy-grey-3',\n        type === 'slim' && 'p-2',\n        className\n      )}\n    >\n      <div className=\"mt-0.5 shrink-0\">\n        <Lightbulb className=\"h-4 text-warning-7 th-highcontrast:text-warning-6 th-dark:text-warning-6\" />\n      </div>\n      <div>\n        {header && (\n          <p\n            className={clsx(\n              // text-[0.9em] matches .form-horizontal .control-label font-size used in many labels in portainer\n              'align-middle text-[0.9em] font-medium',\n              insightCloseId && 'pr-10',\n              content ? 'mb-2' : 'mb-0'\n            )}\n          >\n            {header}\n          </p>\n        )}\n        {content && (\n          <div className={clsx('small', !header && insightCloseId && 'pr-6')}>\n            {content}\n          </div>\n        )}\n      </div>\n      {insightCloseId && (\n        <Button\n          icon={X}\n          className={clsx(\n            'absolute right-2 top-3 flex !text-gray-7 hover:!text-gray-8 th-highcontrast:!text-gray-6 th-highcontrast:hover:!text-gray-5 th-dark:!text-gray-6 th-dark:hover:!text-gray-5',\n            type === 'slim' && insightCloseId && 'top-1'\n          )}\n          color=\"link\"\n          size=\"medium\"\n          onClick={() => addInsightIDClosed(insightCloseId)}\n        />\n      )}\n    </div>\n  );\n}\n","import { PropsWithChildren, AnchorHTMLAttributes } from 'react';\nimport { UISref, UISrefProps } from '@uirouter/react';\n\ninterface Props {\n  title?: string;\n  target?: AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n  rel?: AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n}\n\nexport function Link({\n  title = '',\n  className,\n  children,\n  ...props\n}: PropsWithChildren<Props> & UISrefProps) {\n  return (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <UISref className={className} {...props}>\n      {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n      <a title={title} target={props.target} rel={props.rel}>\n        {children}\n      </a>\n    </UISref>\n  );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport function NavContainer({ children }: PropsWithChildren<unknown>) {\n  return (\n    <div\n      className={clsx(\n        'rounded-lg border border-solid p-2',\n        'border-gray-5 bg-gray-2',\n        'th-dark:border-gray-neutral-8 th-dark:bg-gray-iron-10',\n        'th-highcontrast:border-white th-highcontrast:bg-black'\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"parent\":\"app-react-components-NavTabs-NavTabs-module__parent\"};","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\nimport styles from './NavTabs.module.css';\n\nexport interface Option<T extends string | number = string> {\n  label: ReactNode;\n  children?: ReactNode;\n  id: T;\n  hidden?: boolean;\n}\n\ninterface Props<T extends string | number> {\n  options: Option<T>[];\n  selectedId?: T;\n  onSelect?(id: T): void;\n  disabled?: boolean;\n  type?: 'tabs' | 'pills';\n  justified?: boolean;\n}\n\nexport function NavTabs<T extends string | number = string>({\n  options,\n  selectedId,\n  onSelect = () => {},\n  disabled,\n  type = 'tabs',\n  justified = false,\n}: Props<T>) {\n  const selected = options.find((option) => option.id === selectedId);\n\n  return (\n    <div>\n      <ul\n        className={clsx('nav', `nav-${type}`, { 'nav-justified': justified })}\n      >\n        {options.map(\n          (option) =>\n            !option.hidden && (\n              <li\n                className={clsx({\n                  active: option.id === selectedId,\n                  [styles.parent]: !option.children,\n                  disabled,\n                })}\n                key={option.id}\n              >\n                {/* rule disabled because `nav-tabs` requires an anchor */}\n                {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n                <a\n                  onClick={() => handleSelect(option)}\n                  onKeyDown={(e) => {\n                    if (e.key === 'Enter' || e.key === ' ') {\n                      handleSelect(option);\n                    }\n                  }}\n                  role=\"button\"\n                  tabIndex={0}\n                >\n                  {option.label}\n                </a>\n              </li>\n            )\n        )}\n      </ul>\n      {selected && selected.children && (\n        <div className=\"tab-content mt-3\">{selected.children}</div>\n      )}\n    </div>\n  );\n\n  function handleSelect(option: Option<T>) {\n    if (disabled) {\n      return;\n    }\n\n    if (option.children) {\n      onSelect(option.id);\n    }\n  }\n}\n","import { HelpCircle } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { useSystemVersion } from '@/react/portainer/system/useSystemVersion';\n\nimport headerStyles from '../HeaderTitle.module.css';\nimport './ContextHelp.css';\n\nexport function ContextHelp() {\n  const docsUrl = useDocsUrl();\n\n  return (\n    <div className={headerStyles.menuButton}>\n      <a\n        href={docsUrl}\n        target=\"_blank\"\n        color=\"none\"\n        className={clsx(\n          headerStyles.menuIcon,\n          'menu-icon',\n          'icon-badge mr-1 !p-2 text-lg',\n          'text-gray-8',\n          'th-dark:text-gray-warm-7'\n        )}\n        title=\"Help\"\n        rel=\"noreferrer\"\n      >\n        <HelpCircle className=\"lucide\" />\n      </a>\n    </div>\n  );\n}\n\nexport function useDocsUrl(doc?: string): string {\n  const { state } = useCurrentStateAndParams();\n  const versionQuery = useSystemVersion();\n\n  if (!doc && !state) {\n    return '';\n  }\n\n  let url = 'https://docs.portainer.io/';\n  if (versionQuery.data) {\n    let { ServerVersion } = versionQuery.data;\n    if (ServerVersion[0] === 'v') {\n      ServerVersion = ServerVersion.substring(1);\n    }\n\n    const parts = ServerVersion.split('.');\n    if (parts.length >= 2) {\n      const version = parts.slice(0, 2).join('.');\n      url += `v/${version}`;\n    }\n  }\n\n  if (doc) {\n    return url + doc;\n  }\n\n  const { data } = state;\n  if (\n    data &&\n    typeof data === 'object' &&\n    'docs' in data &&\n    typeof data.docs === 'string'\n  ) {\n    return url + data.docs;\n  }\n\n  return url;\n}\n","import { Fragment } from 'react';\n\nimport { Link } from '@@/Link';\n\nexport interface Crumb {\n  label: string;\n  link?: string;\n  linkParams?: Record<string, unknown>;\n}\ninterface Props {\n  breadcrumbs: (Crumb | string)[] | string;\n}\n\nexport function Breadcrumbs({ breadcrumbs }: Props) {\n  const breadcrumbsArray = Array.isArray(breadcrumbs)\n    ? breadcrumbs\n    : [breadcrumbs];\n\n  return (\n    <div className=\"space-x-2 text-xs font-medium text-gray-7 th-highcontrast:text-white th-dark:text-gray-5\">\n      {breadcrumbsArray.map((crumb, index) => (\n        <Fragment key={index}>\n          <span>{renderCrumb(crumb)}</span>\n          {index !== breadcrumbsArray.length - 1 && <span>&gt;</span>}\n        </Fragment>\n      ))}\n    </div>\n  );\n}\n\nfunction renderCrumb(crumb: Crumb | string) {\n  if (!crumb) {\n    return '';\n  }\n\n  if (typeof crumb === 'string') {\n    return crumb;\n  }\n\n  if (crumb.link) {\n    return (\n      <Link\n        to={crumb.link}\n        params={crumb.linkParams}\n        className=\"text-blue-9 hover:text-blue-11 hover:underline th-highcontrast:text-blue-5 th-dark:text-blue-7 th-dark:hover:text-blue-9\"\n      >\n        {crumb.label}\n      </Link>\n    );\n  }\n\n  return crumb.label;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"app-react-components-PageHeader-HeaderContainer-module__header\",\"meta\":\"app-react-components-PageHeader-HeaderContainer-module__meta\",\"login\":\"app-react-components-PageHeader-HeaderContainer-module__login\",\"user\":\"app-react-components-PageHeader-HeaderContainer-module__user\",\"item\":\"app-react-components-PageHeader-HeaderContainer-module__item\",\"dropdownMenu\":\"app-react-components-PageHeader-HeaderContainer-module__dropdown-menu\",\"dropdownHeader\":\"app-react-components-PageHeader-HeaderContainer-module__dropdown-header\",\"link\":\"app-react-components-PageHeader-HeaderContainer-module__link\",\"loadingbarPlaceholder\":\"app-react-components-PageHeader-HeaderContainer-module__loadingbar-placeholder\",\"loadingBar\":\"app-react-components-PageHeader-HeaderContainer-module__loading-bar\",\"bar\":\"app-react-components-PageHeader-HeaderContainer-module__bar\"};","import { PropsWithChildren, createContext, useContext } from 'react';\nimport clsx from 'clsx';\n\nimport styles from './HeaderContainer.module.css';\n\nconst Context = createContext<null | boolean>(null);\nContext.displayName = 'PageHeaderContext';\n\nexport function useHeaderContext() {\n  const context = useContext(Context);\n\n  if (context == null) {\n    throw new Error('Should be nested inside a HeaderContainer component');\n  }\n}\ninterface Props {\n  id?: string;\n}\n\nexport function HeaderContainer({ id, children }: PropsWithChildren<Props>) {\n  return (\n    <Context.Provider value>\n      <div id={id} className={clsx('row', styles.header)}>\n        <div id=\"loadingbar-placeholder\" />\n        <div className=\"col-xs-12\">\n          <div className={styles.meta}>{children}</div>\n        </div>\n      </div>\n    </Context.Provider>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-PageHeader-NotificationsMenu-module__root\",\"badge\":\"app-react-components-PageHeader-NotificationsMenu-module__badge\",\"notificationContainer\":\"app-react-components-PageHeader-NotificationsMenu-module__notification-container\",\"itemLast\":\"app-react-components-PageHeader-NotificationsMenu-module__item-last\",\"notifications\":\"app-react-components-PageHeader-NotificationsMenu-module__notifications\",\"notification\":\"app-react-components-PageHeader-NotificationsMenu-module__notification\",\"container\":\"app-react-components-PageHeader-NotificationsMenu-module__container\",\"notificationIcon\":\"app-react-components-PageHeader-NotificationsMenu-module__notificationIcon\",\"notificationBody\":\"app-react-components-PageHeader-NotificationsMenu-module__notificationBody\",\"deleteButton\":\"app-react-components-PageHeader-NotificationsMenu-module__deleteButton\",\"notificationDetails\":\"app-react-components-PageHeader-NotificationsMenu-module__notification-details\",\"notificationTitle\":\"app-react-components-PageHeader-NotificationsMenu-module__notification-title\",\"notificationLink\":\"app-react-components-PageHeader-NotificationsMenu-module__notification-link\"};","import clsx from 'clsx';\nimport {\n  Menu,\n  MenuButton,\n  MenuList,\n  MenuLink as ReachMenuLink,\n} from '@reach/menu-button';\nimport { UISrefProps, useSref } from '@uirouter/react';\nimport Moment from 'moment';\nimport { useStore } from 'zustand';\nimport { AlertCircle, Bell, CheckCircle, Trash2 } from 'lucide-react';\n\nimport { AutomationTestingProps } from '@/types';\nimport { useUser } from '@/react/hooks/useUser';\nimport { ToastNotification } from '@/react/portainer/notifications/types';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\nimport { Button } from '@@/buttons';\n\nimport { notificationsStore } from '../../portainer/notifications/notifications-store';\n\nimport headerStyles from './HeaderTitle.module.css';\nimport notificationStyles from './NotificationsMenu.module.css';\n\nexport function NotificationsMenu() {\n  const notificationsStoreState = useStore(notificationsStore);\n  const { removeNotification } = notificationsStoreState;\n  const { clearUserNotifications } = notificationsStoreState;\n\n  const { user } = useUser();\n  const userNotifications: ToastNotification[] = useStore(\n    notificationsStore,\n    (state) => state.userNotifications[user.Id]\n  );\n  const reducedNotifications = userNotifications?.slice(0, 50);\n\n  return (\n    <Menu>\n      <MenuButton\n        className={clsx(\n          'ml-auto flex items-center gap-1 self-start',\n          headerStyles.menuButton\n        )}\n        data-cy=\"notificationsMenu-button\"\n        aria-label=\"Notifications menu toggle\"\n      >\n        <div\n          className={clsx(\n            headerStyles.menuIcon,\n            'icon-badge mr-1 !p-2 text-lg',\n            'text-gray-8',\n            'th-dark:text-gray-warm-7'\n          )}\n        >\n          <Icon icon={Bell} />\n          <span\n            className={\n              reducedNotifications?.length > 0 ? notificationStyles.badge : ''\n            }\n          />\n        </div>\n      </MenuButton>\n\n      <MenuList\n        className={clsx(headerStyles.menuList, notificationStyles.root)}\n        aria-label=\"Notifications Menu\"\n        data-cy=\"notificationsMenu\"\n      >\n        <div>\n          <div\n            className={clsx(\n              notificationStyles.notificationContainer,\n              'vertical-center'\n            )}\n          >\n            <div>\n              <h4>Notifications</h4>\n            </div>\n            <div className={notificationStyles.itemLast}>\n              {reducedNotifications?.length > 0 && (\n                <Button\n                  color=\"none\"\n                  onClick={(e) => {\n                    e.stopPropagation();\n                    e.preventDefault();\n                    onClear();\n                  }}\n                  data-cy=\"notification-deleteButton\"\n                >\n                  Clear all\n                </Button>\n              )}\n            </div>\n          </div>\n        </div>\n        {reducedNotifications?.length > 0 ? (\n          <>\n            <div className={notificationStyles.notifications}>\n              {reducedNotifications.map((notification) => (\n                <MenuLink\n                  to=\"portainer.notifications\"\n                  params={{ id: notification.id }}\n                  notification={notification}\n                  key={notification.id}\n                  onDelete={() => onDelete(notification.id)}\n                />\n              ))}\n            </div>\n\n            <div className={notificationStyles.notificationLink}>\n              <Link to=\"portainer.notifications\">View all notifications</Link>\n            </div>\n          </>\n        ) : (\n          <div className=\"flex flex-col items-center\">\n            <Icon icon={Bell} size=\"xl\" />\n            <p className=\"my-5\">You have no notifications yet.</p>\n          </div>\n        )}\n      </MenuList>\n    </Menu>\n  );\n\n  function onDelete(notificationId: string) {\n    removeNotification(user.Id, notificationId);\n  }\n\n  function onClear() {\n    clearUserNotifications(user.Id);\n  }\n}\n\ninterface MenuLinkProps extends AutomationTestingProps, UISrefProps {\n  notification: ToastNotification;\n  onDelete: () => void;\n}\n\nfunction MenuLink({ to, params, notification, onDelete }: MenuLinkProps) {\n  const anchorProps = useSref(to, params);\n\n  return (\n    <ReachMenuLink\n      href={anchorProps.href}\n      onClick={anchorProps.onClick}\n      className={clsx(headerStyles.menuLink, notificationStyles.notification)}\n    >\n      <div className={notificationStyles.container}>\n        <div className={notificationStyles.notificationIcon}>\n          {notification.type === 'success' ? (\n            <Icon icon={CheckCircle} size=\"lg\" mode=\"success\" />\n          ) : (\n            <Icon icon={AlertCircle} size=\"lg\" mode=\"danger\" />\n          )}\n        </div>\n        <div className={notificationStyles.notificationBody}>\n          <p className={notificationStyles.notificationTitle}>\n            {notification.title}\n          </p>\n          <p className={notificationStyles.notificationDetails}>\n            {notification.details}\n          </p>\n          <p className=\"small text-muted\">\n            {formatTime(notification.timeStamp)}\n          </p>\n        </div>\n        <div className={notificationStyles.deleteButton}>\n          <Button\n            color=\"none\"\n            onClick={(e) => {\n              e.stopPropagation();\n              e.preventDefault();\n              onDelete();\n            }}\n            data-cy=\"notification-deleteButton\"\n            size=\"large\"\n            icon={Trash2}\n          />\n        </div>\n      </div>\n    </ReachMenuLink>\n  );\n}\n\nfunction formatTime(timeCreated: Date) {\n  const timeStamp = new Date(timeCreated).valueOf().toString();\n\n  const diff = Math.floor((Date.now() - parseInt(timeStamp, 10)) / 1000);\n\n  if (diff <= 86400) {\n    let interval = Math.floor(diff / 3600);\n    if (interval >= 1) {\n      return `${interval} hours ago`;\n    }\n    interval = Math.floor(diff / 60);\n    if (interval >= 1) {\n      return `${interval} min ago`;\n    }\n  }\n  if (diff > 86400) {\n    const formatDate = Moment(timeCreated).format('YYYY-MM-DD h:mm:ss');\n    return formatDate;\n  }\n  return 'Just now';\n}\n","import {\n  Menu,\n  MenuButton,\n  MenuList,\n  MenuLink as ReachMenuLink,\n} from '@reach/menu-button';\nimport { UISrefProps, useSref } from '@uirouter/react';\nimport clsx from 'clsx';\nimport { User, ChevronDown } from 'lucide-react';\n\nimport { queryClient } from '@/react-tools/react-query';\nimport { AutomationTestingProps } from '@/types';\nimport { useUser } from '@/react/hooks/useUser';\n\nimport styles from './HeaderTitle.module.css';\n\nexport function UserMenu() {\n  const { user } = useUser();\n\n  return (\n    <Menu>\n      <MenuButton\n        className={clsx(\n          'ml-auto flex items-center gap-1 self-start',\n          styles.menuButton\n        )}\n        data-cy=\"userMenu-button\"\n        aria-label=\"User menu toggle\"\n      >\n        <div\n          className={clsx(\n            styles.menuIcon,\n            'icon-badge mr-1 !p-2 text-lg',\n            'text-gray-8',\n            'th-dark:text-gray-warm-7'\n          )}\n        >\n          <User className=\"lucide\" />\n        </div>\n        {user && <span>{user.Username}</span>}\n        <ChevronDown className={styles.arrowDown} />\n      </MenuButton>\n\n      <MenuList\n        className={styles.menuList}\n        aria-label=\"User Menu\"\n        data-cy=\"userMenu\"\n      >\n        <MenuLink\n          to=\"portainer.account\"\n          label=\"My account\"\n          data-cy=\"userMenu-myAccount\"\n        />\n\n        <MenuLink\n          to=\"portainer.logout\"\n          label=\"Log out\"\n          data-cy=\"userMenu-logOut\"\n        />\n      </MenuList>\n    </Menu>\n  );\n}\n\ninterface MenuLinkProps extends AutomationTestingProps, UISrefProps {\n  label: string;\n}\n\nfunction MenuLink({\n  to,\n  label,\n  params,\n  options,\n  'data-cy': dataCy,\n}: MenuLinkProps) {\n  const anchorProps = useSref(to, params, options);\n\n  return (\n    <ReachMenuLink\n      href={anchorProps.href}\n      onClick={(e) => {\n        queryClient.clear();\n        anchorProps.onClick(e);\n      }}\n      className={styles.menuLink}\n      aria-label={label}\n      data-cy={dataCy}\n    >\n      {label}\n    </ReachMenuLink>\n  );\n}\n","import { PropsWithChildren } from 'react';\n\nimport { ContextHelp } from '@@/PageHeader/ContextHelp';\n\nimport { useHeaderContext } from './HeaderContainer';\nimport { NotificationsMenu } from './NotificationsMenu';\nimport { UserMenu } from './UserMenu';\n\ninterface Props {\n  title: string;\n}\n\nexport function HeaderTitle({ title, children }: PropsWithChildren<Props>) {\n  useHeaderContext();\n\n  return (\n    <div className=\"flex justify-between whitespace-normal pt-3\">\n      <div className=\"flex items-center gap-2\">\n        <h1 className=\"m-0 text-2xl font-medium text-gray-11 th-highcontrast:text-white th-dark:text-white\">\n          {title}\n        </h1>\n        {children && <>{children}</>}\n      </div>\n      <div className=\"flex items-end\">\n        <NotificationsMenu />\n        <ContextHelp />\n        {!window.ddExtension && <UserMenu />}\n      </div>\n    </div>\n  );\n}\n","import { useRouter } from '@uirouter/react';\nimport { PropsWithChildren } from 'react';\nimport { RefreshCw } from 'lucide-react';\n\nimport { dispatchCacheRefreshEvent } from '@/portainer/services/http-request.helper';\n\nimport { Button } from '../buttons';\n\nimport { Breadcrumbs } from './Breadcrumbs';\nimport { Crumb } from './Breadcrumbs/Breadcrumbs';\nimport { HeaderContainer } from './HeaderContainer';\nimport { HeaderTitle } from './HeaderTitle';\n\ninterface Props {\n  id?: string;\n  reload?: boolean;\n  loading?: boolean;\n  onReload?(): Promise<void> | void;\n  breadcrumbs?: (Crumb | string)[] | string;\n  title: string;\n}\n\nexport function PageHeader({\n  id,\n  title,\n  breadcrumbs = [],\n  reload,\n  loading,\n  onReload,\n  children,\n}: PropsWithChildren<Props>) {\n  const router = useRouter();\n\n  return (\n    <HeaderContainer id={id}>\n      <Breadcrumbs breadcrumbs={breadcrumbs} />\n\n      <HeaderTitle title={title}>\n        {reload && (\n          <Button\n            color=\"none\"\n            size=\"large\"\n            onClick={onClickedRefresh}\n            className=\"m-0 p-0 focus:text-inherit\"\n            disabled={loading}\n            title=\"Refresh page\"\n          >\n            <RefreshCw className=\"icon\" />\n          </Button>\n        )}\n        {children}\n      </HeaderTitle>\n    </HeaderContainer>\n  );\n\n  function onClickedRefresh() {\n    dispatchCacheRefreshEvent();\n    return onReload ? onReload() : router.stateService.reload();\n  }\n}\n","interface Props {\n  value: number;\n  onChange(value: number): void;\n  showAll?: boolean;\n}\n\nexport function ItemsPerPageSelector({ value, onChange, showAll }: Props) {\n  return (\n    <span className=\"limitSelector\">\n      <span className=\"space-right\">Items per page</span>\n      <select\n        className=\"form-control\"\n        value={value}\n        onChange={(e) => onChange(Number(e.target.value))}\n        data-cy=\"paginationSelect\"\n      >\n        {showAll ? <option value={Number.MAX_SAFE_INTEGER}>All</option> : null}\n        {[10, 25, 50, 100].map((v) => (\n          <option value={v} key={v}>\n            {v}\n          </option>\n        ))}\n      </select>\n    </span>\n  );\n}\n","/**\n * Given the position in the sequence of pagination links, figure out what page number corresponds to that position.\n *\n * @param position\n * @param currentPage\n * @param paginationRange\n * @param totalPages\n */\nexport function calculatePageNumber(\n  position: number,\n  currentPage: number,\n  paginationRange: number,\n  totalPages: number\n) {\n  const halfWay = Math.ceil(paginationRange / 2);\n  if (position === paginationRange) {\n    return totalPages;\n  }\n\n  if (position === 1) {\n    return position;\n  }\n\n  if (paginationRange < totalPages) {\n    if (totalPages - halfWay < currentPage) {\n      return totalPages - paginationRange + position;\n    }\n\n    if (halfWay < currentPage) {\n      return currentPage - halfWay + position;\n    }\n\n    return position;\n  }\n\n  return position;\n}\n","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\ninterface Props {\n  active?: boolean;\n  children: ReactNode;\n  disabled?: boolean;\n  onPageChange(page: number): void;\n  page: number | '...';\n}\n\nexport function PageButton({\n  children,\n  page,\n  disabled,\n  active,\n  onPageChange,\n}: Props) {\n  return (\n    <li className={clsx({ disabled, active })}>\n      <button\n        type=\"button\"\n        onClick={() => typeof page === 'number' && onPageChange(page)}\n        disabled={disabled}\n      >\n        {children}\n      </button>\n    </li>\n  );\n}\n","import { useFormik } from 'formik';\nimport { ChangeEvent, KeyboardEvent } from 'react';\nimport { object, number } from 'yup';\n\nimport { Button } from '@@/buttons';\nimport { Input } from '@@/form-components/Input';\n\ninterface Values {\n  page: number | '';\n}\n\ninterface Props {\n  onChange(page: number): void;\n  totalPages: number;\n}\n\nexport function PageInput({ onChange, totalPages }: Props) {\n  const { handleSubmit, setFieldValue, values, isValid } = useFormik<Values>({\n    initialValues: { page: '' },\n    onSubmit: async ({ page }) => page && onChange(page),\n    validateOnMount: true,\n    validationSchema: () =>\n      object({ page: number().required().max(totalPages).min(1) }),\n  });\n\n  return (\n    <form className=\"mx-3\" onSubmit={handleSubmit}>\n      <label className=\"small m-0 mr-2 font-normal\" htmlFor=\"go-to-page-input\">\n        Go to page\n      </label>\n      <Input\n        id=\"go-to-page-input\"\n        className=\"!w-32\"\n        type=\"number\"\n        value={values.page}\n        max={totalPages}\n        min={1}\n        step={1}\n        onChange={handleChange}\n        onKeyPress={preventNotNumber}\n      />\n      <Button type=\"submit\" disabled={!isValid}>\n        Go\n      </Button>\n    </form>\n  );\n\n  function preventNotNumber(e: KeyboardEvent<HTMLInputElement>) {\n    if (e.key.match(/^\\D$/)) {\n      e.preventDefault();\n    }\n  }\n\n  function handleChange(e: ChangeEvent<HTMLInputElement>) {\n    const value = parseInt(e.target.value, 10);\n    setFieldValue('page', Number.isNaN(value) ? '' : value);\n  }\n}\n","import './pagination-controls.css';\n\nimport { generatePagesArray } from './generatePagesArray';\nimport { PageButton } from './PageButton';\nimport { PageInput } from './PageInput';\n\ninterface Props {\n  boundaryLinks?: boolean;\n  currentPage: number;\n  directionLinks?: boolean;\n  onPageChange(page: number): void;\n  pageCount: number;\n  maxSize: number;\n  isInputVisible?: boolean;\n}\n\nexport function PageSelector({\n  currentPage,\n  pageCount,\n  onPageChange,\n  maxSize = 5,\n  directionLinks = true,\n  boundaryLinks = false,\n  isInputVisible = false,\n}: Props) {\n  const pages = generatePagesArray(currentPage, pageCount, maxSize);\n  const last = pages[pages.length - 1];\n\n  if (pages.length <= 1) {\n    return null;\n  }\n\n  return (\n    <>\n      {isInputVisible && (\n        <PageInput\n          onChange={(page) => onPageChange(page)}\n          totalPages={pageCount}\n        />\n      )}\n      <ul className=\"pagination\">\n        {boundaryLinks ? (\n          <PageButton\n            onPageChange={onPageChange}\n            page={1}\n            disabled={currentPage === 1}\n          >\n            &laquo;\n          </PageButton>\n        ) : null}\n        {directionLinks ? (\n          <PageButton\n            onPageChange={onPageChange}\n            page={currentPage - 1}\n            disabled={currentPage === 1}\n          >\n            &lsaquo;\n          </PageButton>\n        ) : null}\n        {pages.map((pageNumber, index) => (\n          <PageButton\n            onPageChange={onPageChange}\n            page={pageNumber}\n            disabled={pageNumber === '...'}\n            active={currentPage === pageNumber}\n            key={index}\n          >\n            {pageNumber}\n          </PageButton>\n        ))}\n\n        {directionLinks ? (\n          <PageButton\n            onPageChange={onPageChange}\n            page={currentPage + 1}\n            disabled={currentPage === last}\n          >\n            &rsaquo;\n          </PageButton>\n        ) : null}\n        {boundaryLinks ? (\n          <PageButton\n            disabled={currentPage === last}\n            onPageChange={onPageChange}\n            page={last}\n          >\n            &raquo;\n          </PageButton>\n        ) : null}\n      </ul>\n    </>\n  );\n}\n","import { calculatePageNumber } from './calculatePageNumber';\n\nexport /**\n * Generate an array of page numbers (or the '...' string) which is used in an ng-repeat to generate the\n * links used in pagination\n *\n * @param currentPage\n * @param rowsPerPage\n * @param paginationRange\n * @param collectionLength\n * @returns {Array}\n */\nfunction generatePagesArray(\n  currentPage: number,\n  totalPages: number,\n  paginationRange: number\n): (number | '...')[] {\n  const pages: (number | '...')[] = [];\n  const halfWay = Math.ceil(paginationRange / 2);\n\n  let position;\n  if (currentPage <= halfWay) {\n    position = 'start';\n  } else if (totalPages - halfWay < currentPage) {\n    position = 'end';\n  } else {\n    position = 'middle';\n  }\n\n  const ellipsesNeeded = paginationRange < totalPages;\n\n  for (let i = 1; i <= totalPages && i <= paginationRange; i += 1) {\n    const pageNumber = calculatePageNumber(\n      i,\n      currentPage,\n      paginationRange,\n      totalPages\n    );\n\n    const openingEllipsesNeeded =\n      i === 2 && (position === 'middle' || position === 'end');\n    const closingEllipsesNeeded =\n      i === paginationRange - 1 &&\n      (position === 'middle' || position === 'start');\n    if (ellipsesNeeded && (openingEllipsesNeeded || closingEllipsesNeeded)) {\n      pages.push('...');\n    } else {\n      pages.push(pageNumber);\n    }\n  }\n\n  return pages;\n}\n","import clsx from 'clsx';\n\nimport { ItemsPerPageSelector } from './ItemsPerPageSelector';\nimport { PageSelector } from './PageSelector';\n\ninterface Props {\n  onPageChange(page: number): void;\n  onPageLimitChange(value: number): void;\n  page: number;\n  pageLimit: number;\n  showAll?: boolean;\n  pageCount: number;\n  isPageInputVisible?: boolean;\n  className?: string;\n}\n\nexport function PaginationControls({\n  pageLimit,\n  page,\n  onPageLimitChange,\n  showAll,\n  onPageChange,\n  pageCount,\n  isPageInputVisible,\n  className,\n}: Props) {\n  return (\n    <div className={clsx('paginationControls', className)}>\n      <div className=\"form-inline flex\">\n        <ItemsPerPageSelector\n          value={pageLimit}\n          onChange={handlePageLimitChange}\n          showAll={showAll}\n        />\n\n        {pageLimit !== 0 && (\n          <PageSelector\n            maxSize={5}\n            onPageChange={onPageChange}\n            currentPage={page}\n            pageCount={pageCount}\n            isInputVisible={isPageInputVisible}\n          />\n        )}\n      </div>\n    </div>\n  );\n\n  function handlePageLimitChange(value: number) {\n    onPageLimitChange(value);\n    onPageChange(1);\n  }\n}\n","import { FormikErrors } from 'formik';\nimport { SchemaOf, boolean, object } from 'yup';\n\nimport { file, withFileSize } from '@@/form-components/yup-file-validation';\nimport { FileUploadField } from '@@/form-components/FileUpload';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { FormControl } from '@@/form-components/FormControl';\n\nimport { TLSConfig } from './types';\n\ninterface Props {\n  values: TLSConfig;\n  onChange: (value: Partial<TLSConfig>) => void;\n  errors?: FormikErrors<TLSConfig>;\n}\n\nexport function TLSFieldset({ values, onChange, errors }: Props) {\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"TLS\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            checked={values.tls}\n            onChange={(checked) => handleChange({ tls: checked })}\n          />\n        </div>\n      </div>\n\n      {values.tls && (\n        <>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                label=\"Skip Certification Verification\"\n                checked={!!values.skipVerify}\n                onChange={(checked) => handleChange({ skipVerify: checked })}\n                labelClass=\"col-sm-3 col-lg-2\"\n              />\n            </div>\n          </div>\n\n          {!values.skipVerify && (\n            <>\n              <FormControl\n                label=\"TLS CA certificate\"\n                inputId=\"ca-cert-field\"\n                errors={errors?.caCertFile}\n              >\n                <FileUploadField\n                  inputId=\"ca-cert-field\"\n                  onChange={(file) => handleChange({ caCertFile: file })}\n                  value={values.caCertFile}\n                />\n              </FormControl>\n              <FormControl\n                label=\"TLS certificate\"\n                inputId=\"cert-field\"\n                errors={errors?.certFile}\n              >\n                <FileUploadField\n                  inputId=\"cert-field\"\n                  onChange={(file) => handleChange({ certFile: file })}\n                  value={values.certFile}\n                />\n              </FormControl>\n              <FormControl\n                label=\"TLS key\"\n                inputId=\"tls-key-field\"\n                errors={errors?.keyFile}\n              >\n                <FileUploadField\n                  inputId=\"tls-key-field\"\n                  onChange={(file) => handleChange({ keyFile: file })}\n                  value={values.keyFile}\n                />\n              </FormControl>\n            </>\n          )}\n        </>\n      )}\n    </>\n  );\n\n  function handleChange(partialValue: Partial<TLSConfig>) {\n    onChange(partialValue);\n  }\n}\n\nconst MAX_FILE_SIZE = 5_242_880; // 5MB\n\nfunction certValidation(optional?: boolean) {\n  return withFileSize(file(), MAX_FILE_SIZE).when(['tls', 'skipVerify'], {\n    is: (tls: boolean, skipVerify: boolean) => tls && !skipVerify && !optional,\n    then: (schema) => schema.required('File is required'),\n  });\n}\n\nexport function tlsConfigValidation({\n  optionalCert,\n}: { optionalCert?: boolean } = {}): SchemaOf<TLSConfig> {\n  return object({\n    tls: boolean().default(false),\n    skipVerify: boolean().default(false),\n    caCertFile: certValidation(optionalCert),\n    certFile: certValidation(optionalCert),\n    keyFile: certValidation(optionalCert),\n  });\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"removeTagBtn\":\"app-react-components-TagButton-TagButton-module__remove-tag-btn\"};","import clsx from 'clsx';\nimport { Trash2 } from 'lucide-react';\n\nimport { Icon } from '@/react/components/Icon';\n\nimport styles from './TagButton.module.css';\n\ninterface Props {\n  value: number;\n  label: string;\n  title: string;\n  onRemove(): void;\n}\n\nexport function TagButton({ value, label, title, onRemove }: Props) {\n  return (\n    <button\n      type=\"button\"\n      title={title}\n      className={clsx(\n        styles.removeTagBtn,\n        'space-left',\n        'tag',\n        'vertical-center'\n      )}\n      onClick={() => onRemove()}\n      key={value}\n    >\n      {label}\n      <Icon icon={Trash2} />\n    </button>\n  );\n}\n","import _ from 'lodash';\n\nimport { TagId } from '@/portainer/tags/types';\nimport { useCreateTagMutation, useTags } from '@/portainer/tags/queries';\n\nimport { Creatable, Select } from '@@/form-components/ReactSelect';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Link } from '@@/Link';\n\nimport { TagButton } from '../TagButton';\n\ninterface Props {\n  value: TagId[];\n  allowCreate?: boolean;\n  onChange(value: TagId[]): void;\n}\n\ninterface Option {\n  value: TagId;\n  label: string;\n}\n\nexport function TagSelector({ value, allowCreate = false, onChange }: Props) {\n  // change the struct because react-select has a bug with Creatable (https://github.com/JedWatson/react-select/issues/3417#issuecomment-461868989)\n  const tagsQuery = useTags({\n    select: (tags) => tags?.map((opt) => ({ label: opt.Name, value: opt.ID })),\n  });\n\n  const createTagMutation = useCreateTagMutation();\n\n  if (!tagsQuery.data) {\n    return null;\n  }\n\n  const { data: tags } = tagsQuery;\n\n  const selectedTags = _.compact(\n    value.map((id) => tags.find((tag) => tag.value === id))\n  );\n\n  const SelectComponent = allowCreate ? Creatable : Select;\n\n  if (!tags.length && !allowCreate) {\n    return (\n      <div className=\"form-group\">\n        <div className=\"col-sm-12 small text-muted\">\n          No tags available. Head over to the\n          <Link to=\"portainer.tags\" className=\"space-right space-left\">\n            Tags view\n          </Link>\n          to add tags\n        </div>\n      </div>\n    );\n  }\n\n  return (\n    <>\n      {value.length > 0 && (\n        <FormControl label=\"Selected tags\">\n          {selectedTags.map((tag) => (\n            <TagButton\n              key={tag.value}\n              title=\"Remove tag\"\n              value={tag.value}\n              label={tag.label}\n              onRemove={() => handleRemove(tag.value)}\n            />\n          ))}\n        </FormControl>\n      )}\n\n      <FormControl label=\"Tags\" inputId=\"tags-selector\">\n        <SelectComponent\n          inputId=\"tags-selector\"\n          value={[] as { label: string; value: number }[]}\n          hideSelectedOptions\n          options={tags.filter((tag) => !value.includes(tag.value))}\n          closeMenuOnSelect={false}\n          onChange={handleAdd}\n          noOptionsMessage={() => 'No tags available'}\n          formatCreateLabel={(inputValue) => `Create \"${inputValue}\"`}\n          onCreateOption={handleCreateOption}\n          aria-label=\"Tags\"\n        />\n      </FormControl>\n    </>\n  );\n\n  function handleAdd(tag?: Option | null) {\n    if (!tag) {\n      return;\n    }\n    onChange([...value, tag.value]);\n  }\n\n  function handleRemove(tagId: TagId) {\n    onChange(value.filter((id) => id !== tagId));\n  }\n\n  function handleCreateOption(inputValue: string) {\n    if (!allowCreate) {\n      return;\n    }\n\n    // Prevent the new tag composed of space from being added\n    if (!inputValue.replace(/\\s/g, '').length) {\n      return;\n    }\n\n    createTagMutation.mutate(inputValue, {\n      onSuccess(tag) {\n        handleAdd({ label: tag.Name, value: tag.ID });\n      },\n    });\n  }\n}\n","import { Team, TeamId } from '@/react/portainer/users/teams/types';\n\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\ninterface Props {\n  name?: string;\n  value: TeamId[] | readonly TeamId[];\n  onChange(value: readonly TeamId[]): void;\n  teams: Team[];\n  dataCy?: string;\n  inputId?: string;\n  placeholder?: string;\n  disabled?: boolean;\n}\n\nexport function TeamsSelector({\n  name,\n  value,\n  onChange,\n  teams,\n  dataCy,\n  inputId,\n  placeholder,\n  disabled,\n}: Props) {\n  const options = teams.map((team) => ({ label: team.Name, value: team.Id }));\n\n  return (\n    <PortainerSelect<number>\n      name={name}\n      isMulti\n      options={options}\n      value={value}\n      onChange={(value) => onChange(value)}\n      data-cy={dataCy}\n      inputId={inputId}\n      placeholder={placeholder}\n      disabled={disabled}\n    />\n  );\n}\n","import { BROWSER_OS_PLATFORM } from '@/react/constants';\n\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nconst editorConfig = {\n  mac: {\n    tooltip: (\n      <>\n        <div>Within the console:</div>\n        <div>Cmd+C - Copy</div>\n        <div>Cmd+V - Paste</div>\n        <div>or right-click -&gt; Copy/Paste</div>\n      </>\n    ),\n  },\n\n  lin: {\n    tooltip: (\n      <>\n        <div>Within the console:</div>\n        <div>Ctrl+Insert - Copy</div>\n        <div>Shift+Insert - Paste</div>\n        <div>or right-click -&gt; Copy/Paste</div>\n      </>\n    ),\n  },\n\n  win: {\n    tooltip: (\n      <>\n        <div>Within the console:</div>\n        <div>Ctrl+Insert - Copy</div>\n        <div>Shift+Insert - Paste</div>\n        <div>or right-click -&gt; Copy/Paste</div>\n      </>\n    ),\n  },\n} as const;\n\nexport function TerminalTooltip() {\n  return <Tooltip message={editorConfig[BROWSER_OS_PLATFORM].tooltip} />;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"tooltip\":\"app-react-components-Tip-SliderTooltip-SliderTooltip-module__tooltip\",\"tooltipContainer\":\"app-react-components-Tip-SliderTooltip-SliderTooltip-module__tooltip-container\",\"tooltipCentered\":\"app-react-components-Tip-SliderTooltip-SliderTooltip-module__tooltip-centered\",\"tooltipMessage\":\"app-react-components-Tip-SliderTooltip-SliderTooltip-module__tooltip-message\"};","import Tippy from '@tippyjs/react';\nimport clsx from 'clsx';\n\nimport 'tippy.js/dist/tippy.css';\n\nimport styles from './SliderTooltip.module.css';\n\nexport interface Props {\n  value: string;\n  child: React.ReactElement;\n  delay: number;\n  zIndex?: number;\n}\n\nexport function SliderTooltip({ value, child, delay, zIndex = 50 }: Props) {\n  return (\n    <Tippy\n      appendTo=\"parent\"\n      zIndex={zIndex} // make the z index lower than the dialog\n      className={clsx(styles.tooltipCentered, styles.tooltip)}\n      content={messageHTML(value)}\n      placement=\"top\"\n      showOnCreate\n      hideOnClick={false}\n      trigger=\"manual\"\n      delay={delay}\n      arrow\n      allowHTML\n    >\n      {child}\n    </Tippy>\n  );\n}\n\nfunction messageHTML(value: string) {\n  let message = value;\n  if (message === '0') {\n    message = 'unlimited';\n  }\n\n  return <div className={styles.tooltipContainer}>{message}</div>;\n}\n","import { PropsWithChildren } from 'react';\nimport { AlertCircle } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { Icon, IconMode } from '@@/Icon';\n\ntype Color = 'orange' | 'blue' | 'red' | 'green';\n\nexport interface Props {\n  icon?: React.ReactNode;\n  color?: Color;\n  className?: string;\n  childrenWrapperClassName?: string;\n  inline?: boolean;\n}\n\nexport function TextTip({\n  color = 'orange',\n  icon = AlertCircle,\n  inline = true,\n  className,\n  children,\n  childrenWrapperClassName = 'text-muted',\n}: PropsWithChildren<Props>) {\n  return (\n    <div\n      className={clsx(\n        className,\n        'small gap-1 align-top text-xs',\n        inline ? 'inline-flex' : 'flex'\n      )}\n      role=\"status\"\n    >\n      <Icon icon={icon} mode={getMode(color)} className=\"!mt-0.5 flex-none\" />\n\n      <span className={childrenWrapperClassName}>{children}</span>\n    </div>\n  );\n}\n\nfunction getMode(color: Color): IconMode {\n  switch (color) {\n    case 'blue':\n      return 'primary';\n    case 'red':\n      return 'danger';\n    case 'green':\n      return 'success';\n    case 'orange':\n    default:\n      return 'warning';\n  }\n}\n","import { HelpCircle } from 'lucide-react';\nimport { ReactNode, useMemo } from 'react';\nimport sanitize from 'sanitize-html';\nimport clsx from 'clsx';\n\nimport { TooltipWithChildren, Position } from '../TooltipWithChildren';\n\ntype Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst sizeClasses: Record<Size, string> = {\n  xs: 'text-xs',\n  sm: 'text-sm',\n  md: 'text-base',\n  lg: 'text-lg',\n  xl: 'text-xl',\n};\n\nexport interface Props {\n  position?: Position;\n  message: ReactNode;\n  className?: string;\n  setHtmlMessage?: boolean;\n  size?: Size;\n}\n\nexport function Tooltip({\n  message,\n  position = 'bottom',\n  className,\n  setHtmlMessage,\n  size = 'md',\n}: Props) {\n  // allow angular views to set html messages for the tooltip\n  const htmlMessage = useMemo(() => {\n    if (setHtmlMessage && typeof message === 'string') {\n      // eslint-disable-next-line react/no-danger\n      return <div dangerouslySetInnerHTML={{ __html: sanitize(message) }} />;\n    }\n    return null;\n  }, [setHtmlMessage, message]);\n\n  return (\n    <span className={clsx('ml-1 inline-flex items-center', sizeClasses[size])}>\n      <TooltipWithChildren\n        message={htmlMessage || message}\n        position={position}\n        className={className}\n      >\n        <HelpCircle className=\"lucide\" aria-hidden=\"true\" />\n      </TooltipWithChildren>\n    </span>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"tooltip\":\"app-react-components-Tip-TooltipWithChildren-TooltipWithChildren-module__tooltip\",\"tooltipContainer\":\"app-react-components-Tip-TooltipWithChildren-TooltipWithChildren-module__tooltip-container\",\"tooltipMessage\":\"app-react-components-Tip-TooltipWithChildren-TooltipWithChildren-module__tooltip-message\",\"tooltipHeading\":\"app-react-components-Tip-TooltipWithChildren-TooltipWithChildren-module__tooltip-heading\",\"tooltipBeteaser\":\"app-react-components-Tip-TooltipWithChildren-TooltipWithChildren-module__tooltip-beteaser\"};","import React, { MouseEvent } from 'react';\nimport Tippy from '@tippyjs/react';\nimport clsx from 'clsx';\nimport _ from 'lodash';\n\nimport 'tippy.js/dist/tippy.css';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { getFeatureDetails } from '@@/BEFeatureIndicator/utils';\n\nimport styles from './TooltipWithChildren.module.css';\n\nexport type Position = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface Props {\n  position?: Position;\n  message: React.ReactNode;\n  className?: string;\n  children: React.ReactElement;\n  heading?: string;\n  BEFeatureID?: FeatureId;\n}\n\nexport function TooltipWithChildren({\n  message,\n  position = 'bottom',\n  className,\n  children,\n  heading,\n  BEFeatureID,\n}: Props) {\n  const id = _.uniqueId('tooltip-');\n\n  const { url, limitedToBE } = BEFeatureID\n    ? getFeatureDetails(BEFeatureID)\n    : { url: '', limitedToBE: false };\n\n  const messageHTML = (\n    // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n    <div className={styles.tooltipContainer} onClick={onClickHandler}>\n      {(heading || (BEFeatureID && limitedToBE)) && (\n        <div className=\"mb-3 inline-flex w-full justify-between\">\n          <span>{heading}</span>\n          {BEFeatureID && limitedToBE && (\n            <a\n              href={url}\n              target=\"_blank\"\n              rel=\"noreferrer\"\n              className={styles.tooltipBeteaser}\n            >\n              Business Feature\n            </a>\n          )}\n        </div>\n      )}\n      <div className={styles.tooltipMessage}>{message}</div>\n    </div>\n  );\n\n  return (\n    <Tippy\n      className={clsx(id, styles.tooltip, className)}\n      content={messageHTML}\n      delay={[50, 500]} // 50ms to open, 500ms to hide\n      zIndex={1000}\n      placement={position}\n      maxWidth={400}\n      arrow\n      allowHTML\n      interactive\n      disabled={!message}\n    >\n      {children}\n    </Tippy>\n  );\n}\n\n// Preventing click bubbling to the parent as it is affecting\n// mainly toggles when full row is clickable.\nfunction onClickHandler(e: MouseEvent) {\n  const target = e.target as HTMLInputElement;\n  if (target.tagName.toLowerCase() === 'a') {\n    const url = target.getAttribute('href');\n    if (url) {\n      window.open(url, '_blank');\n    }\n  }\n  e.preventDefault();\n}\n","import { User, UserId } from '@/portainer/users/types';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\ninterface Props {\n  name?: string;\n  value: UserId[];\n  onChange(value: UserId[]): void;\n  users: User[];\n  dataCy?: string;\n  inputId?: string;\n  placeholder?: string;\n  disabled?: boolean;\n}\n\nexport function UsersSelector({\n  name,\n  value,\n  onChange,\n  users,\n  dataCy,\n  inputId,\n  placeholder,\n  disabled,\n}: Props) {\n  return (\n    <Select\n      isMulti\n      name={name}\n      getOptionLabel={(user) => user.Username}\n      getOptionValue={(user) => `${user.Id}`}\n      options={users}\n      value={users.filter((user) => value.includes(user.Id))}\n      closeMenuOnSelect={false}\n      onChange={(selectedUsers) =>\n        onChange(selectedUsers.map((user) => user.Id))\n      }\n      data-cy={dataCy}\n      inputId={inputId}\n      placeholder={placeholder}\n      isDisabled={disabled}\n    />\n  );\n}\n","import { PropsWithChildren, useEffect, useMemo } from 'react';\nimport { useTransitionHook } from '@uirouter/react';\n\nimport { BROWSER_OS_PLATFORM } from '@/react/constants';\n\nimport { CodeEditor } from '@@/CodeEditor';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nimport { FormSectionTitle } from './form-components/FormSectionTitle';\nimport { FormError } from './form-components/FormError';\nimport { confirm } from './modals/confirm';\nimport { ModalType } from './modals';\nimport { buildConfirmButton } from './modals/utils';\n\nconst otherEditorConfig = {\n  tooltip: (\n    <>\n      <div>CtrlF - Start searching</div>\n      <div>Ctrl+G - Find next</div>\n      <div>Ctrl+Shift+G - Find previous</div>\n      <div>Ctrl+Shift+F - Replace</div>\n      <div>Ctrl+Shift+R - Replace all</div>\n      <div>Alt+G - Jump to line</div>\n      <div>Persistent search:</div>\n      <div className=\"ml-5\">Enter - Find next</div>\n      <div className=\"ml-5\">Shift+Enter - Find previous</div>\n    </>\n  ),\n  searchCmdLabel: 'Ctrl+F for search',\n} as const;\n\nexport const editorConfig = {\n  mac: {\n    tooltip: (\n      <>\n        <div>Cmd+F - Start searching</div>\n        <div>Cmd+G - Find next</div>\n        <div>Cmd+Shift+G - Find previous</div>\n        <div>Cmd+Option+F - Replace</div>\n        <div>Cmd+Option+R - Replace all</div>\n        <div>Option+G - Jump to line</div>\n        <div>Persistent search:</div>\n        <div className=\"ml-5\">Enter - Find next</div>\n        <div className=\"ml-5\">Shift+Enter - Find previous</div>\n      </>\n    ),\n    searchCmdLabel: 'Cmd+F for search',\n  },\n\n  lin: otherEditorConfig,\n  win: otherEditorConfig,\n} as const;\n\ninterface Props {\n  value: string;\n  onChange: (value: string) => void;\n\n  id: string;\n  placeholder?: string;\n  yaml?: boolean;\n  readonly?: boolean;\n  titleContent?: React.ReactNode;\n  hideTitle?: boolean;\n  error?: string;\n  height?: string;\n}\n\nexport function WebEditorForm({\n  id,\n  onChange,\n  placeholder,\n  value,\n  titleContent = '',\n  hideTitle,\n  readonly,\n  yaml,\n  children,\n  error,\n  height,\n}: PropsWithChildren<Props>) {\n  return (\n    <div>\n      <div className=\"web-editor overflow-x-hidden\">\n        {!hideTitle && (\n          <>\n            <DefaultTitle id={id} />\n            {titleContent ?? null}\n          </>\n        )}\n        {children && (\n          <div className=\"form-group text-muted small\">\n            <div className=\"col-sm-12 col-lg-12\">{children}</div>\n          </div>\n        )}\n\n        {error && <FormError>{error}</FormError>}\n\n        <div className=\"form-group\">\n          <div className=\"col-sm-12 col-lg-12\">\n            <CodeEditor\n              id={id}\n              placeholder={placeholder}\n              readonly={readonly}\n              yaml={yaml}\n              value={value}\n              onChange={onChange}\n              height={height}\n            />\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nfunction DefaultTitle({ id }: { id: string }) {\n  return (\n    <FormSectionTitle htmlFor={id}>\n      Web editor\n      <div className=\"text-muted small vertical-center ml-auto\">\n        {editorConfig[BROWSER_OS_PLATFORM].searchCmdLabel}\n\n        <Tooltip message={editorConfig[BROWSER_OS_PLATFORM].tooltip} />\n      </div>\n    </FormSectionTitle>\n  );\n}\n\nexport function usePreventExit(\n  initialValue: string,\n  value: string,\n  check: boolean\n) {\n  const isChanged = useMemo(\n    () => cleanText(initialValue) !== cleanText(value),\n    [initialValue, value]\n  );\n\n  const preventExit = check && isChanged;\n\n  // when navigating away from the page with unsaved changes, show a portainer prompt to confirm\n  useTransitionHook('onBefore', {}, async () => {\n    if (!preventExit) {\n      return true;\n    }\n    const confirmed = await confirm({\n      modalType: ModalType.Warn,\n      title: 'Are you sure?',\n      message:\n        'You currently have unsaved changes in the text editor. Are you sure you want to leave?',\n      confirmButton: buildConfirmButton('Yes', 'danger'),\n    });\n    return confirmed;\n  });\n\n  // when reloading or exiting the page with unsaved changes, show a browser prompt to confirm\n  useEffect(() => {\n    function handler(event: BeforeUnloadEvent) {\n      if (!preventExit) {\n        return undefined;\n      }\n\n      event.preventDefault();\n      // eslint-disable-next-line no-param-reassign\n      event.returnValue = '';\n      return '';\n    }\n\n    // if the form is changed, then set the onbeforeunload\n    window.addEventListener('beforeunload', handler);\n    return () => {\n      window.removeEventListener('beforeunload', handler);\n    };\n  }, [preventExit]);\n}\n\nfunction cleanText(value: string) {\n  return value.replace(/(\\r\\n|\\n|\\r)/gm, '');\n}\n","export function Loading() {\n  return (\n    <div className=\"loading\">\n      <div className=\"double-bounce1\" />\n      <div className=\"double-bounce2\" />\n    </div>\n  );\n}\n","import { createContext, PropsWithChildren, useContext } from 'react';\n\nconst Context = createContext<null | boolean>(null);\nContext.displayName = 'WidgetContext';\nexport function useWidgetContext() {\n  const context = useContext(Context);\n  if (context == null) {\n    throw new Error('Should be inside a Widget component');\n  }\n}\nexport function Widget({\n  children,\n  id,\n}: PropsWithChildren<{\n  id?: string;\n}>) {\n  return (\n    <Context.Provider value>\n      <div id={id} className=\"widget\">\n        {children}\n      </div>\n    </Context.Provider>\n  );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nimport { useWidgetContext } from './Widget';\nimport { Loading } from './Loading';\n\ninterface Props {\n  loading?: boolean;\n  className?: string;\n}\n\nexport function WidgetBody({\n  loading,\n  className,\n  children,\n}: PropsWithChildren<Props>) {\n  useWidgetContext();\n\n  return (\n    <div className={clsx(className, 'widget-body')}>\n      {loading ? <Loading /> : <div className=\"widget-content\">{children}</div>}\n    </div>\n  );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport { Icon } from '@/react/components/Icon';\n\nimport { useWidgetContext } from './Widget';\n\ninterface Props {\n  title: ReactNode;\n  icon: ReactNode;\n  className?: string;\n}\n\nexport function WidgetTitle({\n  title,\n  icon,\n  className,\n  children,\n}: PropsWithChildren<Props>) {\n  useWidgetContext();\n\n  return (\n    <div className=\"widget-header\">\n      <div className=\"row\">\n        <span className={clsx('pull-left vertical-center', className)}>\n          <div className=\"widget-icon\">\n            <Icon icon={icon} className=\"space-right\" />\n          </div>\n          <span>{title}</span>\n        </span>\n        <span className={clsx('pull-right', className)}>{children}</span>\n      </div>\n    </div>\n  );\n}\n","import { Widget as MainComponent } from './Widget';\nimport { WidgetBody } from './WidgetBody';\nimport { WidgetFooter } from './WidgetFooter';\nimport { WidgetTitle } from './WidgetTitle';\nimport { WidgetTaskbar } from './WidgetTaskbar';\nimport { Loading } from './Loading';\n\ninterface WithSubcomponents {\n  Body: typeof WidgetBody;\n  Footer: typeof WidgetFooter;\n  Title: typeof WidgetTitle;\n  Taskbar: typeof WidgetTaskbar;\n  Loading: typeof Loading;\n}\n\nconst Widget = MainComponent as typeof MainComponent & WithSubcomponents;\n\nWidget.Body = WidgetBody;\nWidget.Footer = WidgetFooter;\nWidget.Title = WidgetTitle;\nWidget.Taskbar = WidgetTaskbar;\nWidget.Loading = Loading;\n\nexport {\n  Widget,\n  WidgetBody,\n  WidgetFooter,\n  WidgetTitle,\n  WidgetTaskbar,\n  Loading,\n};\n","import { PropsWithChildren } from 'react';\n\nimport { useWidgetContext } from './Widget';\n\nexport function WidgetFooter({ children }: PropsWithChildren<unknown>) {\n  useWidgetContext();\n\n  return <div className=\"widget-footer\">{children}</div>;\n}\n","import { PropsWithChildren } from 'react';\n\nimport { useWidgetContext } from './Widget';\n\ninterface Props {\n  className?: string;\n}\n\nexport function WidgetTaskbar({\n  children,\n  className,\n}: PropsWithChildren<Props>) {\n  useWidgetContext();\n\n  return (\n    <div className=\"widget-header\">\n      <div className=\"row\">\n        <div className={className}>{children}</div>\n      </div>\n    </div>\n  );\n}\n","import {\n  AriaAttributes,\n  ComponentType,\n  forwardRef,\n  MouseEventHandler,\n  PropsWithChildren,\n  ReactNode,\n} from 'react';\nimport clsx from 'clsx';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Icon } from '@@/Icon';\nimport './Button.css';\n\ntype Type = 'submit' | 'button' | 'reset';\ntype Color =\n  | 'default'\n  | 'primary'\n  | 'secondary'\n  | 'danger'\n  | 'link'\n  | 'light'\n  | 'dangerlight'\n  | 'warninglight'\n  | 'warning'\n  | 'none';\ntype Size = 'xsmall' | 'small' | 'medium' | 'large';\n\nexport interface Props<TasProps = unknown>\n  extends AriaAttributes,\n    AutomationTestingProps {\n  icon?: ReactNode | ComponentType<unknown>;\n\n  color?: Color;\n  size?: Size;\n  disabled?: boolean;\n  title?: string;\n  className?: string;\n  type?: Type;\n  as?: ComponentType<TasProps> | string;\n  onClick?: MouseEventHandler<HTMLButtonElement>;\n  mRef?: React.ForwardedRef<HTMLButtonElement>;\n  props?: TasProps;\n}\n\nexport const ButtonWithRef = forwardRef<HTMLButtonElement, Omit<Props, 'mRef'>>(\n  (props, ref) => (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <Button {...props} mRef={ref} />\n  )\n);\n\nexport function Button<TasProps = unknown>({\n  type = 'button',\n  color = 'primary',\n  size = 'small',\n  disabled = false,\n  className,\n  onClick,\n  title,\n  icon,\n  children,\n  as = 'button',\n  props,\n  mRef,\n  ...ariaProps\n}: PropsWithChildren<Props<TasProps>>) {\n  const Component = as as 'button';\n  return (\n    <Component\n      ref={mRef}\n      /* eslint-disable-next-line react/button-has-type */\n      type={type}\n      disabled={disabled}\n      className={clsx(`btn btn-${color}`, sizeClass(size), className, {\n        disabled,\n      })}\n      onClick={(e) => {\n        if (!disabled) {\n          onClick?.(e);\n        }\n      }}\n      title={title}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...ariaProps}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n    >\n      {icon && <Icon icon={icon} size={getIconSize(size)} />}\n      {children}\n    </Component>\n  );\n}\n\nfunction getIconSize(size: Size) {\n  switch (size) {\n    case 'xsmall':\n      return 'xs';\n    case 'medium':\n      return 'md';\n    case 'large':\n      return 'lg';\n    case 'small':\n    default:\n      return 'sm';\n  }\n}\n\nfunction sizeClass(size?: Size) {\n  switch (size) {\n    case 'large':\n      return 'btn-lg';\n    case 'medium':\n      return 'btn-md';\n    case 'xsmall':\n      return 'btn-xs';\n    default:\n      return 'btn-sm';\n  }\n}\n","import { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\n\nexport type Size = 'xsmall' | 'small' | 'large';\nexport interface Props {\n  size?: Size;\n  className?: string;\n  'aria-label'?: string;\n}\n\nexport function ButtonGroup({\n  size,\n  children,\n  className,\n  'aria-label': ariaLabel,\n}: PropsWithChildren<Props>) {\n  return (\n    <div\n      className={clsx('btn-group', sizeClass(size), className)}\n      role=\"group\"\n      aria-label={ariaLabel}\n    >\n      {children}\n    </div>\n  );\n}\n\nfunction sizeClass(size: Size | undefined) {\n  switch (size) {\n    case 'small':\n      return 'btn-group-sm';\n    case 'xsmall':\n      return 'btn-group-xs';\n    case 'large':\n      return 'btn-group-lg';\n    default:\n      return '';\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeout\":\"app-react-components-buttons-CopyButton-CopyButton-module__fadeout\",\"fadeOut\":\"app-react-components-buttons-CopyButton-CopyButton-module__fadeOut\",\"container\":\"app-react-components-buttons-CopyButton-CopyButton-module__container\",\"copyButton\":\"app-react-components-buttons-CopyButton-CopyButton-module__copy-button\"};","import { ComponentProps, PropsWithChildren } from 'react';\nimport clsx from 'clsx';\nimport { Check, Copy } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\nimport { Button } from '../Button';\n\nimport styles from './CopyButton.module.css';\nimport { useCopy } from './useCopy';\n\nexport interface Props {\n  copyText: string;\n  fadeDelay?: number;\n  displayText?: string;\n  className?: string;\n  color?: ComponentProps<typeof Button>['color'];\n  indicatorPosition?: 'left' | 'right';\n}\n\nexport function CopyButton({\n  copyText,\n  fadeDelay = 1000,\n  displayText = 'copied',\n  className,\n  color,\n  indicatorPosition = 'right',\n  children,\n}: PropsWithChildren<Props>) {\n  const { handleCopy, copiedSuccessfully } = useCopy(copyText, fadeDelay);\n\n  function copiedIndicator() {\n    return (\n      <span\n        className={clsx(\n          copiedSuccessfully && styles.fadeout,\n          styles.copyButton,\n          'mx-1',\n          'vertical-center'\n        )}\n      >\n        <Icon icon={Check} />\n        {displayText && <span className=\"space-left\">{displayText}</span>}\n      </span>\n    );\n  }\n\n  return (\n    <div className={styles.container}>\n      {indicatorPosition === 'left' && copiedIndicator()}\n      <Button\n        className={className}\n        color={color}\n        size=\"small\"\n        onClick={handleCopy}\n        title=\"Copy Value\"\n        type=\"button\"\n        icon={Copy}\n        disabled={!copyText}\n      >\n        {children}\n      </Button>\n      {indicatorPosition === 'right' && copiedIndicator()}\n    </div>\n  );\n}\n","import { useEffect, useState } from 'react';\n\nexport type CopyTextType = string | (() => string);\n\nexport function useCopy(\n  copyText: CopyTextType,\n  fadeDelay = 1000,\n  context: HTMLElement = document.body\n) {\n  const [copiedSuccessfully, setCopiedSuccessfully] = useState(false);\n\n  useEffect(() => {\n    const fadeoutTime = setTimeout(\n      () => setCopiedSuccessfully(false),\n      fadeDelay\n    );\n    // clear timeout when component unmounts\n    return () => {\n      clearTimeout(fadeoutTime);\n    };\n  }, [copiedSuccessfully, fadeDelay]);\n\n  function handleCopy() {\n    const text = typeof copyText === 'function' ? copyText() : copyText;\n\n    if (!text) {\n      return;\n    }\n\n    // https://developer.mozilla.org/en-US/docs/Web/API/Clipboard\n    // https://caniuse.com/?search=clipboard\n    if (navigator.clipboard) {\n      navigator.clipboard.writeText(text);\n    } else {\n      // https://stackoverflow.com/a/57192718\n      const inputEl = document.createElement('textarea');\n      inputEl.value = text;\n      context.appendChild(inputEl);\n      inputEl.select();\n      document.execCommand('copy');\n      inputEl.hidden = true;\n      context.removeChild(inputEl);\n    }\n    setCopiedSuccessfully(true);\n  }\n\n  return { handleCopy, copiedSuccessfully };\n}\n","import { PropsWithChildren, ReactNode } from 'react';\nimport { Loader2 } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\nimport { type Props as ButtonProps, Button } from './Button';\n\ninterface Props extends ButtonProps {\n  loadingText: string;\n  isLoading: boolean;\n}\n\nexport function LoadingButton({\n  loadingText,\n  isLoading,\n  disabled,\n  type = 'submit',\n  children,\n  icon,\n  ...buttonProps\n}: PropsWithChildren<Props>) {\n  return (\n    <Button\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...buttonProps}\n      type={type}\n      disabled={disabled || isLoading}\n      icon={loadingButtonIcon(isLoading, icon)}\n    >\n      {isLoading ? loadingText : children}\n    </Button>\n  );\n}\n\nfunction loadingButtonIcon(isLoading: boolean, defaultIcon: ReactNode) {\n  if (!isLoading) {\n    return defaultIcon;\n  }\n  return (\n    <Icon\n      icon={Loader2}\n      className=\"ml-1 animate-spin-slow\"\n      aria-label=\"loading\"\n    />\n  );\n}\n","import { Plus } from 'lucide-react';\nimport { ComponentProps, PropsWithChildren } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Link } from '@@/Link';\n\nimport { Button } from './Button';\n\nexport function AddButton({\n  to = '.new',\n  params,\n  children,\n  color = 'primary',\n  disabled,\n  'data-cy': dataCy,\n}: PropsWithChildren<\n  {\n    to?: string;\n    params?: object;\n    color?: ComponentProps<typeof Button>['color'];\n    disabled?: boolean;\n  } & AutomationTestingProps\n>) {\n  return (\n    <Button\n      as={Link}\n      props={{ to, params }}\n      icon={Plus}\n      className=\"!m-0\"\n      data-cy={dataCy}\n      color={color}\n      disabled={disabled}\n    >\n      {children || 'Add'}\n    </Button>\n  );\n}\n","import _ from 'lodash';\nimport clsx from 'clsx';\nimport { Menu, MenuButton, MenuList } from '@reach/menu-button';\nimport { Columns } from 'lucide-react';\nimport { Table } from '@tanstack/react-table';\n\nimport { Checkbox } from '@@/form-components/Checkbox';\n\ninterface Props<D extends object> {\n  onChange: (value: string[]) => void;\n  value: string[];\n  table: Table<D>;\n}\n\nexport function ColumnVisibilityMenu<D extends object>({\n  onChange,\n  value,\n  table,\n}: Props<D>) {\n  const columnsToHide = table.getAllColumns().filter((col) => col.getCanHide());\n  if (!columnsToHide.length) {\n    return null;\n  }\n\n  return (\n    <Menu className=\"setting\">\n      {({ isExpanded }) => (\n        <>\n          <MenuButton\n            className={clsx('table-setting-menu-btn', {\n              'setting-active': isExpanded,\n            })}\n          >\n            <Columns\n              size=\"13\"\n              className=\"space-right\"\n              strokeWidth=\"3px\"\n              aria-hidden=\"true\"\n              aria-label=\"Columns\"\n            />\n          </MenuButton>\n          <MenuList>\n            <div className=\"tableMenu\">\n              <div className=\"menuHeader\">Show / Hide Columns</div>\n              <div className=\"menuContent\">\n                {columnsToHide.map((column) => (\n                  <div key={column.id}>\n                    <Checkbox\n                      checked={column.getIsVisible()}\n                      label={\n                        typeof column.columnDef.header === 'string'\n                          ? column.columnDef.header\n                          : _.capitalize(column.columnDef.id)\n                      }\n                      id={`visibility_${column.id}`}\n                      onChange={(e) =>\n                        handleChangeColumnVisibility(\n                          column.id,\n                          e.target.checked\n                        )\n                      }\n                    />\n                  </div>\n                ))}\n              </div>\n            </div>\n          </MenuList>\n        </>\n      )}\n    </Menu>\n  );\n\n  function handleChangeColumnVisibility(colId: string, visible: boolean) {\n    const newValue = visible\n      ? value.filter((id) => id !== colId)\n      : [...value, colId];\n\n    table.setColumnVisibility(\n      Object.fromEntries(newValue.map((col) => [col, false]))\n    );\n    onChange(newValue);\n  }\n}\n\nexport function getColumnVisibilityState(hiddenColumns: string[]) {\n  return {\n    columnVisibility: Object.fromEntries(\n      hiddenColumns.map((col) => [col, false])\n    ),\n  };\n}\n","import {\n  Table as TableInstance,\n  TableState,\n  useReactTable,\n  Row,\n  Column,\n  getCoreRowModel,\n  getPaginationRowModel,\n  getFilteredRowModel,\n  getSortedRowModel,\n  getFacetedRowModel,\n  getFacetedUniqueValues,\n  getFacetedMinMaxValues,\n  getExpandedRowModel,\n  TableOptions,\n} from '@tanstack/react-table';\nimport { ReactNode, useMemo } from 'react';\nimport clsx from 'clsx';\nimport _ from 'lodash';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { IconProps } from '@@/Icon';\n\nimport { DatatableHeader } from './DatatableHeader';\nimport { DatatableFooter } from './DatatableFooter';\nimport { defaultGetRowId } from './defaultGetRowId';\nimport { Table } from './Table';\nimport { useGoToHighlightedRow } from './useGoToHighlightedRow';\nimport { BasicTableSettings, DefaultType } from './types';\nimport { DatatableContent } from './DatatableContent';\nimport { createSelectColumn } from './select-column';\nimport { TableRow } from './TableRow';\nimport { type TableState as GlobalTableState } from './useTableState';\n\nexport type PaginationProps =\n  | {\n      isServerSidePagination?: false;\n      totalCount?: never;\n      page?: never;\n      onPageChange?: never;\n    }\n  | {\n      isServerSidePagination: true;\n      totalCount: number;\n      page: number;\n      onPageChange(page: number): void;\n    };\n\nexport interface Props<D extends DefaultType> extends AutomationTestingProps {\n  dataset: D[];\n  columns: TableOptions<D>['columns'];\n  renderTableSettings?(instance: TableInstance<D>): ReactNode;\n  renderTableActions?(selectedRows: D[]): ReactNode;\n  disableSelect?: boolean;\n  getRowId?(row: D): string;\n  isRowSelectable?(row: Row<D>): boolean;\n  emptyContentLabel?: string;\n  title?: string;\n  titleIcon?: IconProps['icon'];\n  titleId?: string;\n  initialTableState?: Partial<TableState>;\n  isLoading?: boolean;\n  description?: ReactNode;\n  highlightedItemId?: string;\n  settingsManager: GlobalTableState<BasicTableSettings>;\n  renderRow?(row: Row<D>, highlightedItemId?: string): ReactNode;\n  getRowCanExpand?(row: Row<D>): boolean;\n  noWidget?: boolean;\n  extendTableOptions?: (options: TableOptions<D>) => TableOptions<D>;\n}\n\nexport function Datatable<D extends DefaultType>({\n  columns,\n  dataset,\n  renderTableSettings = () => null,\n  renderTableActions = () => null,\n  disableSelect,\n  getRowId = defaultGetRowId,\n  isRowSelectable = () => true,\n  title,\n  titleId,\n  titleIcon,\n  emptyContentLabel,\n  initialTableState = {},\n  isLoading,\n  description,\n  settingsManager: settings,\n  renderRow = defaultRenderRow,\n  highlightedItemId,\n  noWidget,\n  getRowCanExpand,\n  'data-cy': dataCy,\n  onPageChange = () => {},\n  page,\n  totalCount = dataset.length,\n  isServerSidePagination = false,\n  extendTableOptions = (value) => value,\n}: Props<D> & PaginationProps) {\n  const pageCount = useMemo(\n    () => Math.ceil(totalCount / settings.pageSize),\n    [settings.pageSize, totalCount]\n  );\n\n  const enableRowSelection = getIsSelectionEnabled(\n    disableSelect,\n    isRowSelectable\n  );\n\n  const allColumns = useMemo(\n    () => _.compact([!disableSelect && createSelectColumn<D>(), ...columns]),\n    [disableSelect, columns]\n  );\n\n  const tableInstance = useReactTable<D>(\n    extendTableOptions({\n      columns: allColumns,\n      data: dataset,\n      initialState: {\n        pagination: {\n          pageSize: settings.pageSize,\n          pageIndex: page || 0,\n        },\n        sorting: settings.sortBy ? [settings.sortBy] : [],\n        globalFilter: {\n          search: settings.search,\n          ...initialTableState.globalFilter,\n        },\n\n        ...initialTableState,\n      },\n      defaultColumn: {\n        enableColumnFilter: false,\n        enableHiding: true,\n        sortingFn: 'alphanumeric',\n      },\n      enableRowSelection,\n      autoResetExpanded: false,\n      globalFilterFn: defaultGlobalFilterFn,\n      getRowId,\n      getCoreRowModel: getCoreRowModel(),\n      getFilteredRowModel: getFilteredRowModel(),\n      getPaginationRowModel: getPaginationRowModel(),\n      getFacetedRowModel: getFacetedRowModel(),\n      getFacetedUniqueValues: getFacetedUniqueValues(),\n      getFacetedMinMaxValues: getFacetedMinMaxValues(),\n      getExpandedRowModel: getExpandedRowModel(),\n      getRowCanExpand,\n      getColumnCanGlobalFilter,\n      ...(isServerSidePagination\n        ? { manualPagination: true, pageCount }\n        : {\n            getSortedRowModel: getSortedRowModel(),\n          }),\n    })\n  );\n\n  const tableState = tableInstance.getState();\n\n  useGoToHighlightedRow(\n    isServerSidePagination,\n    tableState.pagination.pageSize,\n    tableInstance.getCoreRowModel().rows,\n    handlePageChange,\n    highlightedItemId\n  );\n\n  const selectedRowModel = tableInstance.getSelectedRowModel();\n  const selectedItems = selectedRowModel.rows.map((row) => row.original);\n\n  return (\n    <Table.Container noWidget={noWidget} aria-label={title}>\n      <DatatableHeader\n        onSearchChange={handleSearchBarChange}\n        searchValue={settings.search}\n        title={title}\n        titleId={titleId}\n        titleIcon={titleIcon}\n        description={description}\n        renderTableActions={() => renderTableActions(selectedItems)}\n        renderTableSettings={() => renderTableSettings(tableInstance)}\n      />\n\n      <DatatableContent<D>\n        tableInstance={tableInstance}\n        renderRow={(row) => renderRow(row, highlightedItemId)}\n        emptyContentLabel={emptyContentLabel}\n        isLoading={isLoading}\n        onSortChange={handleSortChange}\n        data-cy={dataCy}\n        aria-label={`${title} table`}\n      />\n\n      <DatatableFooter\n        onPageChange={handlePageChange}\n        onPageSizeChange={handlePageSizeChange}\n        page={typeof page === 'number' ? page : tableState.pagination.pageIndex}\n        pageSize={tableState.pagination.pageSize}\n        pageCount={tableInstance.getPageCount()}\n        totalSelected={selectedItems.length}\n      />\n    </Table.Container>\n  );\n\n  function handleSearchBarChange(search: string) {\n    tableInstance.setGlobalFilter({ search });\n    settings.setSearch(search);\n  }\n\n  function handlePageChange(page: number) {\n    tableInstance.setPageIndex(page);\n    onPageChange(page);\n  }\n\n  function handleSortChange(colId: string, desc: boolean) {\n    settings.setSortBy(colId, desc);\n  }\n\n  function handlePageSizeChange(pageSize: number) {\n    tableInstance.setPageSize(pageSize);\n    settings.setPageSize(pageSize);\n  }\n}\n\nfunction defaultRenderRow<D extends DefaultType>(\n  row: Row<D>,\n  highlightedItemId?: string\n) {\n  return (\n    <TableRow<D>\n      cells={row.getVisibleCells()}\n      className={clsx({\n        active: highlightedItemId === row.id,\n      })}\n    />\n  );\n}\n\nfunction getIsSelectionEnabled<D extends DefaultType>(\n  disabledSelect?: boolean,\n  isRowSelectable?: Props<D>['isRowSelectable']\n) {\n  if (disabledSelect) {\n    return false;\n  }\n\n  if (isRowSelectable) {\n    return isRowSelectable;\n  }\n\n  return true;\n}\n\nexport function defaultGlobalFilterFn<D, TFilter extends { search: string }>(\n  row: Row<D>,\n  columnId: string,\n  filterValue: null | TFilter\n): boolean {\n  const value = row.getValue(columnId);\n\n  if (filterValue === null || !filterValue.search) {\n    return true;\n  }\n\n  if (value == null) {\n    return false;\n  }\n\n  const filterValueLower = filterValue.search.toLowerCase();\n\n  if (\n    typeof value === 'string' ||\n    typeof value === 'number' ||\n    typeof value === 'boolean'\n  ) {\n    return value.toString().toLowerCase().includes(filterValueLower);\n  }\n\n  if (Array.isArray(value)) {\n    return value.some((item) =>\n      item.toString().toLowerCase().includes(filterValueLower)\n    );\n  }\n\n  return false;\n}\n\nfunction getColumnCanGlobalFilter<D>(column: Column<D, unknown>): boolean {\n  if (column.id === 'select') {\n    return false;\n  }\n  return true;\n}\n","import { ColumnDef, Row } from '@tanstack/react-table';\n\nimport { Checkbox } from '@@/form-components/Checkbox';\n\nexport function createSelectColumn<T>(): ColumnDef<T> {\n  let lastSelectedId = '';\n\n  return {\n    id: 'select',\n    header: ({ table }) => (\n      <Checkbox\n        id=\"select-all\"\n        checked={table.getIsAllRowsSelected()}\n        indeterminate={table.getIsSomeRowsSelected()}\n        onChange={table.getToggleAllRowsSelectedHandler()}\n        disabled={table.getRowModel().rows.every((row) => !row.getCanSelect())}\n        onClick={(e) => {\n          e.stopPropagation();\n        }}\n      />\n    ),\n    cell: ({ row, table }) => (\n      <Checkbox\n        id={`select-row-${row.id}`}\n        checked={row.getIsSelected()}\n        indeterminate={row.getIsSomeSelected()}\n        onChange={row.getToggleSelectedHandler()}\n        disabled={!row.getCanSelect()}\n        onClick={(e) => {\n          e.stopPropagation();\n\n          if (e.shiftKey) {\n            const { rows, rowsById } = table.getRowModel();\n            const rowsToToggle = getRowRange(rows, row.id, lastSelectedId);\n            const isLastSelected = rowsById[lastSelectedId].getIsSelected();\n            rowsToToggle.forEach((row) => row.toggleSelected(isLastSelected));\n          }\n\n          lastSelectedId = row.id;\n        }}\n      />\n    ),\n    enableHiding: false,\n    meta: {\n      width: 50,\n    },\n  };\n}\n\nfunction getRowRange<T>(rows: Array<Row<T>>, idA: string, idB: string) {\n  const range: Array<Row<T>> = [];\n  let foundStart = false;\n  let foundEnd = false;\n  for (let index = 0; index < rows.length; index += 1) {\n    const row = rows[index];\n    if (row.id === idA || row.id === idB) {\n      if (foundStart) {\n        foundEnd = true;\n      }\n      if (!foundStart) {\n        foundStart = true;\n      }\n    }\n\n    if (foundStart) {\n      range.push(row);\n    }\n\n    if (foundEnd) {\n      break;\n    }\n  }\n\n  return range;\n}\n","import _ from 'lodash';\nimport { useRef, useLayoutEffect, useEffect } from 'react';\n\nexport function useGoToHighlightedRow<T extends { id: string }>(\n  isServerSidePagination: boolean,\n  pageSize: number,\n  rows: Array<T>,\n  goToPage: (page: number) => void,\n  highlightedItemId?: string\n) {\n  const handlePageChangeRef = useRef(goToPage);\n  useLayoutEffect(() => {\n    handlePageChangeRef.current = goToPage;\n  });\n\n  const highlightedItemIdRef = useRef<string>();\n\n  useEffect(() => {\n    if (\n      !isServerSidePagination &&\n      highlightedItemId &&\n      highlightedItemId !== highlightedItemIdRef.current\n    ) {\n      const page = getRowPage(highlightedItemId, pageSize, rows);\n      if (page) {\n        handlePageChangeRef.current(page);\n      }\n      highlightedItemIdRef.current = highlightedItemId;\n    }\n  }, [highlightedItemId, isServerSidePagination, rows, pageSize]);\n}\n\nfunction getRowPage<T extends { id: string }>(\n  rowID: string,\n  pageSize: number,\n  rows: Array<T>\n) {\n  const totalRows = rows.length;\n\n  if (!rowID || pageSize > totalRows) {\n    return 0;\n  }\n\n  const paginatedData = _.chunk(rows, pageSize);\n\n  const itemPage = paginatedData.findIndex((sub) =>\n    sub.some((row) => row.id === rowID)\n  );\n\n  return itemPage;\n}\n","import { Row, Table as TableInstance } from '@tanstack/react-table';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Table } from './Table';\nimport { DefaultType } from './types';\n\ninterface Props<D extends DefaultType> extends AutomationTestingProps {\n  tableInstance: TableInstance<D>;\n  renderRow(row: Row<D>): React.ReactNode;\n  onSortChange?(colId: string, desc: boolean): void;\n  isLoading?: boolean;\n  emptyContentLabel?: string;\n  'aria-label'?: string;\n}\n\nexport function DatatableContent<D extends DefaultType>({\n  tableInstance,\n  renderRow,\n  onSortChange,\n  isLoading,\n  emptyContentLabel,\n  'data-cy': dataCy,\n  'aria-label': ariaLabel,\n}: Props<D>) {\n  const headerGroups = tableInstance.getHeaderGroups();\n  const pageRowModel = tableInstance.getPaginationRowModel();\n\n  return (\n    <Table data-cy={dataCy} className=\"nowrap-cells\" aria-label={ariaLabel}>\n      <thead>\n        {headerGroups.map((headerGroup) => (\n          <Table.HeaderRow<D>\n            key={headerGroup.id}\n            headers={headerGroup.headers}\n            onSortChange={onSortChange}\n          />\n        ))}\n      </thead>\n      <tbody>\n        <Table.Content<D>\n          rows={pageRowModel.rows}\n          isLoading={isLoading}\n          emptyContent={emptyContentLabel}\n          renderRow={renderRow}\n        />\n      </tbody>\n    </Table>\n  );\n}\n","interface SelectedRowsCountProps {\n  value: number;\n}\n\nexport function SelectedRowsCount({ value }: SelectedRowsCountProps) {\n  return value !== 0 ? (\n    <div className=\"infoBar\">{value} item(s) selected</div>\n  ) : null;\n}\n","import { PaginationControls } from '@@/PaginationControls';\n\nimport { Table } from './Table';\nimport { SelectedRowsCount } from './SelectedRowsCount';\n\ninterface Props {\n  totalSelected: number;\n  pageSize: number;\n  page: number;\n  onPageChange(page: number): void;\n  pageCount: number;\n  onPageSizeChange(pageSize: number): void;\n}\n\nexport function DatatableFooter({\n  totalSelected,\n  pageSize,\n  page,\n  onPageChange,\n  pageCount,\n  onPageSizeChange,\n}: Props) {\n  return (\n    <Table.Footer>\n      <SelectedRowsCount value={totalSelected} />\n      <PaginationControls\n        showAll\n        pageLimit={pageSize}\n        page={page + 1}\n        onPageChange={(page) => onPageChange(page - 1)}\n        pageCount={pageCount}\n        onPageLimitChange={onPageSizeChange}\n      />\n    </Table.Footer>\n  );\n}\n","import { ReactNode } from 'react';\n\nimport { IconProps } from '@@/Icon';\n\nimport { SearchBar } from './SearchBar';\nimport { Table } from './Table';\n\ntype Props = {\n  title?: string;\n  titleIcon?: IconProps['icon'];\n  searchValue: string;\n  onSearchChange(value: string): void;\n  renderTableSettings?(): ReactNode;\n  renderTableActions?(): ReactNode;\n  description?: ReactNode;\n  titleId?: string;\n};\n\nexport function DatatableHeader({\n  onSearchChange,\n  renderTableActions,\n  renderTableSettings,\n  searchValue,\n  title,\n  titleIcon,\n  description,\n  titleId,\n}: Props) {\n  if (!title) {\n    return null;\n  }\n\n  const searchBar = <SearchBar value={searchValue} onChange={onSearchChange} />;\n  const tableActions = !!renderTableActions && (\n    <Table.Actions>{renderTableActions()}</Table.Actions>\n  );\n  const tableTitleSettings = !!renderTableSettings && (\n    <Table.TitleActions>{renderTableSettings()}</Table.TitleActions>\n  );\n\n  return (\n    <Table.Title\n      id={titleId}\n      label={title}\n      icon={titleIcon}\n      description={description}\n    >\n      {searchBar}\n      {tableActions}\n      {tableTitleSettings}\n    </Table.Title>\n  );\n}\n","import { ReactNode } from 'react';\nimport { Row } from '@tanstack/react-table';\n\nimport { TableRow } from './TableRow';\nimport { DefaultType } from './types';\n\ninterface Props<D extends DefaultType> {\n  row: Row<D>;\n  renderSubRow(row: Row<D>): ReactNode;\n  expandOnClick?: boolean;\n}\n\nexport function ExpandableDatatableTableRow<D extends DefaultType>({\n  row,\n  renderSubRow,\n  expandOnClick,\n}: Props<D>) {\n  const cells = row.getVisibleCells();\n\n  return (\n    <>\n      <TableRow<D>\n        cells={cells}\n        onClick={expandOnClick ? () => row.toggleExpanded() : undefined}\n      />\n      {row.getIsExpanded() && row.getCanExpand() && renderSubRow(row)}\n    </>\n  );\n}\n","import { Row } from '@tanstack/react-table';\nimport { ReactNode } from 'react';\n\nimport { ExpandableDatatableTableRow } from './ExpandableDatatableRow';\nimport {\n  Datatable,\n  Props as DatatableProps,\n  PaginationProps,\n} from './Datatable';\nimport { DefaultType } from './types';\n\ninterface Props<D extends DefaultType>\n  extends Omit<DatatableProps<D>, 'renderRow' | 'expandable'> {\n  renderSubRow(row: Row<D>): ReactNode;\n  expandOnRowClick?: boolean;\n}\n\nexport function ExpandableDatatable<D extends DefaultType>({\n  renderSubRow,\n  getRowCanExpand = () => true,\n  expandOnRowClick,\n  ...props\n}: Props<D> & PaginationProps) {\n  return (\n    <Datatable<D>\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n      getRowCanExpand={getRowCanExpand}\n      renderRow={(row) => (\n        <ExpandableDatatableTableRow<D>\n          row={row}\n          renderSubRow={renderSubRow}\n          expandOnClick={expandOnRowClick}\n        />\n      )}\n    />\n  );\n}\n","import clsx from 'clsx';\nimport { useMemo } from 'react';\nimport { Menu, MenuButton, MenuPopover } from '@reach/menu-button';\nimport { Column } from '@tanstack/react-table';\nimport { Check, Filter } from 'lucide-react';\n\nimport { getValueAsArrayOfStrings } from '@/portainer/helpers/array';\n\nimport { Icon } from '@@/Icon';\n\nimport { DefaultType } from './types';\n\ninterface MultipleSelectionFilterProps {\n  options: Array<string> | ReadonlyArray<string>;\n  value: string[];\n  filterKey: string;\n  onChange: (value: string[]) => void;\n  menuTitle?: string;\n}\n\nexport function MultipleSelectionFilter({\n  options,\n  value = [],\n  filterKey,\n  onChange,\n  menuTitle = 'Filter by state',\n}: MultipleSelectionFilterProps) {\n  const enabled = value.length > 0;\n  return (\n    <div>\n      <Menu>\n        <MenuButton\n          className={clsx('table-filter flex items-center gap-1', {\n            'filter-active': enabled,\n          })}\n        >\n          Filter\n          <Icon icon={enabled ? Check : Filter} />\n        </MenuButton>\n        <MenuPopover className=\"dropdown-menu\">\n          <div className=\"tableMenu\">\n            <div className=\"menuHeader\">{menuTitle}</div>\n            <div className=\"menuContent\">\n              {options.map((option, index) => (\n                <div className=\"md-checkbox\" key={index}>\n                  <input\n                    id={`filter_${filterKey}_${index}`}\n                    type=\"checkbox\"\n                    checked={value.includes(option)}\n                    onChange={() => handleChange(option)}\n                  />\n                  <label htmlFor={`filter_${filterKey}_${index}`}>\n                    {option}\n                  </label>\n                </div>\n              ))}\n            </div>\n          </div>\n        </MenuPopover>\n      </Menu>\n    </div>\n  );\n\n  function handleChange(option: string) {\n    if (value.includes(option)) {\n      onChange(value.filter((o) => o !== option));\n\n      return;\n    }\n\n    onChange([...value, option]);\n  }\n}\n\nexport function filterHOC<TData extends DefaultType>(menuTitle: string) {\n  return function Filter({\n    column: { getFilterValue, setFilterValue, getFacetedRowModel, id },\n  }: {\n    column: Column<TData>;\n  }) {\n    const { flatRows } = getFacetedRowModel();\n\n    const options = useMemo(() => {\n      const options = new Set<string>();\n      flatRows.forEach(({ getValue }) => {\n        const value = getValue<string>(id);\n\n        options.add(value);\n      });\n      return Array.from(options);\n    }, [flatRows, id]);\n\n    const value = getFilterValue();\n\n    const valueAsArray = getValueAsArrayOfStrings(value);\n\n    return (\n      <MultipleSelectionFilter\n        options={options}\n        filterKey={id}\n        value={valueAsArray}\n        onChange={setFilterValue}\n        menuTitle={menuTitle}\n      />\n    );\n  };\n}\n","import { createContext, PropsWithChildren, useContext } from 'react';\n\nexport function createRowContext<TContext>() {\n  const Context = createContext<TContext | null>(null);\n  Context.displayName = 'RowContext';\n\n  return { RowProvider, useRowContext };\n\n  function RowProvider({\n    children,\n    context,\n  }: PropsWithChildren<{ context: TContext }>) {\n    return <Context.Provider value={context}>{children}</Context.Provider>;\n  }\n\n  function useRowContext() {\n    const context = useContext(Context);\n    if (!context) {\n      throw new Error('should be nested under RowProvider');\n    }\n\n    return context;\n  }\n}\n","import { ReactNode } from 'react';\nimport { Search, X } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { useLocalStorage } from '@/react/hooks/useLocalStorage';\nimport { AutomationTestingProps } from '@/types';\nimport { useDebounce } from '@/react/hooks/useDebounce';\n\nimport { Button } from '@@/buttons';\n\ninterface Props extends AutomationTestingProps {\n  value: string;\n  placeholder?: string;\n  onChange(value: string): void;\n  className?: string;\n  children?: ReactNode;\n}\n\nexport function SearchBar({\n  value,\n  placeholder = 'Search...',\n  onChange,\n  'data-cy': dataCy,\n  className,\n  children,\n}: Props) {\n  const [searchValue, setSearchValue] = useDebounce(value, onChange);\n\n  function onClear() {\n    setSearchValue('');\n  }\n\n  return (\n    <div\n      className={clsx('searchBar flex min-w-[90px] items-center', className)}\n    >\n      <Search className=\"searchIcon lucide shrink-0\" />\n      <input\n        type=\"text\"\n        className=\"searchInput\"\n        value={searchValue}\n        onChange={(e) => setSearchValue(e.target.value)}\n        placeholder={placeholder}\n        data-cy={dataCy}\n        aria-label=\"Search input\"\n      />\n      {children}\n      <Button onClick={onClear} icon={X} color=\"none\" disabled={!searchValue} />\n    </div>\n  );\n}\n\nexport function useSearchBarState(\n  key: string\n): [string, (value: string) => void] {\n  const filterKey = keyBuilder(key);\n  const [value, setValue] = useLocalStorage(filterKey, '', sessionStorage);\n\n  return [value, setValue];\n\n  function keyBuilder(key: string) {\n    return `datatable_text_filter_${key}`;\n  }\n}\n","import clsx from 'clsx';\nimport { AriaAttributes, PropsWithChildren } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { TableContainer } from './TableContainer';\nimport { TableActions } from './TableActions';\nimport { TableFooter } from './TableFooter';\nimport { TableTitleActions } from './TableTitleActions';\nimport { TableSettingsMenu } from './TableSettingsMenu';\nimport { TableTitle } from './TableTitle';\nimport { TableContent } from './TableContent';\nimport { TableHeaderCell } from './TableHeaderCell';\nimport { TableHeaderRow } from './TableHeaderRow';\nimport { TableRow } from './TableRow';\n\ninterface Props extends AutomationTestingProps, AriaAttributes {\n  className?: string;\n}\n\nfunction MainComponent({\n  children,\n  className,\n  ...props\n}: PropsWithChildren<Props>) {\n  return (\n    <div className=\"table-responsive\">\n      <table\n        // eslint-disable-next-line react/jsx-props-no-spreading\n        {...props}\n        className={clsx('table-hover table-filters table', className)}\n      >\n        {children}\n      </table>\n    </div>\n  );\n}\n\nMainComponent.displayName = 'Table';\n\ninterface SubComponents {\n  Container: typeof TableContainer;\n  Actions: typeof TableActions;\n  TitleActions: typeof TableTitleActions;\n  HeaderCell: typeof TableHeaderCell;\n  SettingsMenu: typeof TableSettingsMenu;\n  Title: typeof TableTitle;\n  Row: typeof TableRow;\n  HeaderRow: typeof TableHeaderRow;\n  Content: typeof TableContent;\n  Footer: typeof TableFooter;\n}\n\nexport const Table: typeof MainComponent & SubComponents =\n  MainComponent as typeof MainComponent & SubComponents;\n\nTable.Actions = TableActions;\nTable.TitleActions = TableTitleActions;\nTable.Container = TableContainer;\nTable.HeaderCell = TableHeaderCell;\nTable.SettingsMenu = TableSettingsMenu;\nTable.Title = TableTitle;\nTable.Row = TableRow;\nTable.HeaderRow = TableHeaderRow;\nTable.Content = TableContent;\nTable.Footer = TableFooter;\n","import clsx from 'clsx';\nimport { Children, PropsWithChildren } from 'react';\n\ninterface Props {\n  className?: string;\n}\n\nexport function TableActions({\n  children,\n  className,\n}: PropsWithChildren<Props>) {\n  if (Children.count(children) === 0) {\n    return null;\n  }\n\n  return <div className={clsx('actionBar', className)}>{children}</div>;\n}\n","import { PropsWithChildren } from 'react';\n\nimport { Widget, WidgetBody } from '@@/Widget';\n\ninterface Props {\n  // workaround to remove the widget, ideally we should have a different component to wrap the table with a widget\n  noWidget?: boolean;\n  'aria-label'?: string;\n}\n\nexport function TableContainer({\n  children,\n  noWidget = false,\n  'aria-label': ariaLabel,\n}: PropsWithChildren<Props>) {\n  if (noWidget) {\n    return (\n      <section className=\"datatable\" aria-label={ariaLabel}>\n        {children}\n      </section>\n    );\n  }\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-sm-12\">\n        <section className=\"datatable\" aria-label={ariaLabel}>\n          <Widget>\n            <WidgetBody className=\"no-padding\">{children}</WidgetBody>\n          </Widget>\n        </section>\n      </div>\n    </div>\n  );\n}\n","import { Fragment, PropsWithChildren } from 'react';\nimport { Row } from '@tanstack/react-table';\n\nimport { DefaultType } from './types';\n\ninterface Props<T extends DefaultType = DefaultType> {\n  isLoading?: boolean;\n  rows: Row<T>[];\n  emptyContent?: string;\n  renderRow(row: Row<T>): React.ReactNode;\n}\n\nexport function TableContent<T extends DefaultType = DefaultType>({\n  isLoading = false,\n  rows,\n  emptyContent = 'No items available',\n  renderRow,\n}: Props<T>) {\n  if (isLoading) {\n    return <TableContentOneColumn>Loading...</TableContentOneColumn>;\n  }\n\n  if (!rows.length) {\n    return <TableContentOneColumn>{emptyContent}</TableContentOneColumn>;\n  }\n\n  return (\n    <>\n      {rows.map((row, index) => (\n        <Fragment key={`${row.id}-${index}`}>{renderRow(row)}</Fragment>\n      ))}\n    </>\n  );\n}\n\nfunction TableContentOneColumn({ children }: PropsWithChildren<unknown>) {\n  // using MAX_SAFE_INTEGER to make sure the single column will be the size of the table\n  return (\n    <tr>\n      <td colSpan={Number.MAX_SAFE_INTEGER} className=\"text-muted text-center\">\n        {children}\n      </td>\n    </tr>\n  );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport function TableFooter({\n  children,\n  className,\n}: PropsWithChildren<unknown> & { className?: string }) {\n  return <footer className={clsx('footer', className)}>{children}</footer>;\n}\n","import clsx from 'clsx';\nimport { CSSProperties, PropsWithChildren, ReactNode } from 'react';\n\nimport { TableHeaderSortIcons } from './TableHeaderSortIcons';\n\ninterface Props {\n  canSort: boolean;\n  isSorted: boolean;\n  isSortedDesc?: boolean;\n  onSortClick: (desc: boolean) => void;\n  render: () => ReactNode;\n  renderFilter?: () => ReactNode;\n  className?: string;\n  style?: CSSProperties;\n}\n\nexport function TableHeaderCell({\n  canSort,\n  render,\n  onSortClick,\n  isSorted,\n  isSortedDesc = true,\n\n  renderFilter,\n  className,\n  style,\n}: Props) {\n  return (\n    <th style={style} className={className}>\n      <div className=\"flex h-full flex-row flex-nowrap items-center gap-1\">\n        <SortWrapper\n          canSort={canSort}\n          onClick={onSortClick}\n          isSorted={isSorted}\n          isSortedDesc={isSortedDesc}\n        >\n          {render()}\n        </SortWrapper>\n        {renderFilter ? renderFilter() : null}\n      </div>\n    </th>\n  );\n}\n\ninterface SortWrapperProps {\n  canSort: boolean;\n  isSorted: boolean;\n  isSortedDesc?: boolean;\n  onClick?: (desc: boolean) => void;\n}\n\nfunction SortWrapper({\n  canSort,\n  children,\n  onClick = () => {},\n  isSorted,\n  isSortedDesc = true,\n}: PropsWithChildren<SortWrapperProps>) {\n  if (!canSort) {\n    return <>{children}</>;\n  }\n\n  return (\n    <button\n      type=\"button\"\n      onClick={() => onClick(!isSortedDesc)}\n      className={clsx(\n        '!ml-0 h-full border-none !bg-transparent !px-0 focus:border-none',\n        !isSorted && 'group'\n      )}\n    >\n      <div className=\"flex h-full w-full flex-row items-center justify-start\">\n        {children}\n        <TableHeaderSortIcons\n          sorted={isSorted}\n          descending={isSorted && !!isSortedDesc}\n        />\n      </div>\n    </button>\n  );\n}\n\nexport interface TableColumnHeaderAngularProps {\n  colTitle: string;\n  canSort: boolean;\n  isSorted?: boolean;\n  isSortedDesc?: boolean;\n}\n\nexport function TableColumnHeaderAngular({\n  canSort,\n  isSorted,\n  colTitle,\n  isSortedDesc = true,\n  children,\n}: PropsWithChildren<TableColumnHeaderAngularProps>) {\n  return (\n    <div className=\"flex h-full flex-row flex-nowrap\">\n      <SortWrapper\n        canSort={canSort}\n        isSorted={!!isSorted}\n        isSortedDesc={isSortedDesc}\n      >\n        {colTitle}\n        {children}\n      </SortWrapper>\n    </div>\n  );\n}\n","import { Header, flexRender } from '@tanstack/react-table';\n\nimport { filterHOC } from './Filter';\nimport { TableHeaderCell } from './TableHeaderCell';\nimport { DefaultType } from './types';\n\ninterface Props<D extends DefaultType = DefaultType> {\n  headers: Header<D, unknown>[];\n  onSortChange?(colId: string, desc: boolean): void;\n}\n\nexport function TableHeaderRow<D extends DefaultType = DefaultType>({\n  headers,\n  onSortChange,\n}: Props<D>) {\n  return (\n    <tr>\n      {headers.map((header) => {\n        const sortDirection = header.column.getIsSorted();\n        const {\n          meta: { className, width } = { className: '', width: undefined },\n        } = header.column.columnDef;\n\n        return (\n          <TableHeaderCell\n            className={className}\n            style={{\n              width,\n            }}\n            key={header.id}\n            canSort={header.column.getCanSort()}\n            onSortClick={(desc) => {\n              header.column.toggleSorting(desc);\n              if (onSortChange) {\n                onSortChange(header.id, desc);\n              }\n            }}\n            isSorted={!!sortDirection}\n            isSortedDesc={sortDirection ? sortDirection === 'desc' : false}\n            render={() =>\n              flexRender(header.column.columnDef.header, header.getContext())\n            }\n            renderFilter={\n              header.column.getCanFilter()\n                ? () =>\n                    flexRender(\n                      header.column.columnDef.meta?.filter ||\n                        filterHOC('Filter'),\n                      {\n                        column: header.column,\n                      }\n                    )\n                : undefined\n            }\n          />\n        );\n      })}\n    </tr>\n  );\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSortArrowDown = function SvgSortArrowDown(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 8 12\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#D0D5DD\",\n    d: \"M4.473.727a.593.593 0 1 0-1.186 0h1.186ZM3.88 11.274l-.406.432c.233.22.599.214.826-.013l-.42-.42Zm3.056-2.218a.593.593 0 1 0-.839-.839l.84.84Zm-5.45-.851a.593.593 0 1 0-.814.864l.813-.864Zm1.8-7.478v10.547h1.187V.727H3.287Zm2.811 7.49-2.636 2.637.839.84 2.636-2.638-.839-.839Zm-1.81 2.625L1.485 8.205l-.813.864 2.802 2.637.813-.864Z\"\n  })));\n};\nexport default SvgSortArrowDown;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSortArrowUp = function SvgSortArrowUp(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 8 12\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#D0D5DD\",\n    d: \"M3.526 11.273a.593.593 0 0 0 1.187 0H3.526ZM4.12.727l.406-.432A.593.593 0 0 0 3.7.307l.42.42ZM1.063 2.944a.593.593 0 1 0 .84.839l-.84-.84Zm5.451.851a.593.593 0 1 0 .814-.864l-.814.864Zm-1.801 7.478V.727H3.526v10.546h1.187Zm-2.81-7.49 2.636-2.637L3.7.307 1.063 2.944l.84.839Zm1.81-2.624 2.801 2.636.814-.864L4.526.295l-.813.864Z\"\n  })));\n};\nexport default SvgSortArrowUp;","// extracted by mini-css-extract-plugin\nexport default {\"sortIcon\":\"app-react-components-datatables-TableHeaderSortIcons-module__sort-icon\",\"activeSortIcon\":\"app-react-components-datatables-TableHeaderSortIcons-module__active-sort-icon\"};","import clsx from 'clsx';\n\nimport SortDownIcon from './sort-arrow-down.svg?c';\nimport SortUpIcon from './sort-arrow-up.svg?c';\nimport styles from './TableHeaderSortIcons.module.css';\n\ninterface Props {\n  sorted: boolean;\n  descending: boolean;\n  className?: string;\n}\n\nexport function TableHeaderSortIcons({ sorted, descending, className }: Props) {\n  return (\n    <div className=\"no-wrap w-min-max flex flex-row align-middle\">\n      <SortDownIcon\n        className={clsx(\n          className,\n          sorted && !descending && styles.activeSortIcon,\n          styles.sortIcon\n        )}\n        aria-hidden=\"true\"\n      />\n      <SortUpIcon\n        className={clsx(\n          '-ml-1', // shift closer to SortDownIcon to match the mockup\n          sorted && descending && styles.activeSortIcon,\n          styles.sortIcon\n        )}\n        aria-hidden=\"true\"\n      />\n    </div>\n  );\n}\n","import { Cell, flexRender } from '@tanstack/react-table';\nimport clsx from 'clsx';\n\nimport { DefaultType } from './types';\n\ninterface Props<D extends DefaultType = DefaultType> {\n  cells: Cell<D, unknown>[];\n  className?: string;\n  onClick?: () => void;\n}\n\nexport function TableRow<D extends DefaultType = DefaultType>({\n  cells,\n  className,\n  onClick,\n}: Props<D>) {\n  return (\n    <tr\n      className={clsx(className, { 'cursor-pointer': !!onClick })}\n      onClick={onClick}\n    >\n      {cells.map((cell) => (\n        <td key={cell.id}>\n          {flexRender(cell.column.columnDef.cell, cell.getContext())}\n        </td>\n      ))}\n    </tr>\n  );\n}\n","import clsx from 'clsx';\nimport { Menu, MenuButton, MenuList } from '@reach/menu-button';\nimport { PropsWithChildren, ReactNode } from 'react';\nimport { MoreVertical } from 'lucide-react';\n\ninterface Props {\n  quickActions?: ReactNode;\n}\n\nexport function TableSettingsMenu({\n  quickActions,\n  children,\n}: PropsWithChildren<Props>) {\n  return (\n    <Menu className=\"setting\">\n      {({ isExpanded }) => (\n        <>\n          <MenuButton\n            className={clsx('table-setting-menu-btn', {\n              'setting-active': isExpanded,\n            })}\n          >\n            <MoreVertical\n              size=\"13\"\n              className=\"space-right\"\n              strokeWidth=\"3px\"\n              aria-hidden=\"true\"\n              aria-label=\"Settings\"\n            />\n          </MenuButton>\n          <MenuList>\n            <div className=\"tableMenu\">\n              <div className=\"menuHeader\">Table settings</div>\n              <div className=\"menuContent\">{children}</div>\n              {quickActions && (\n                <div>\n                  <div className=\"menuHeader\">Quick actions</div>\n                  <div className=\"menuContent\">{quickActions}</div>\n                </div>\n              )}\n            </div>\n          </MenuList>\n        </>\n      )}\n    </Menu>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"alertVisible\":\"app-react-components-datatables-TableSettingsMenuAutoRefresh-module__alert-visible\",\"alertHidden\":\"app-react-components-datatables-TableSettingsMenuAutoRefresh-module__alert-hidden\"};","import clsx from 'clsx';\nimport { useState } from 'react';\nimport { Check } from 'lucide-react';\n\nimport { Checkbox } from '@@/form-components/Checkbox';\nimport { Icon } from '@@/Icon';\n\nimport styles from './TableSettingsMenuAutoRefresh.module.css';\n\ninterface Props {\n  onChange(value: number): void;\n  value: number;\n}\n\nexport function TableSettingsMenuAutoRefresh({ onChange, value }: Props) {\n  const [isCheckVisible, setIsCheckVisible] = useState(false);\n\n  const isEnabled = value > 0;\n\n  return (\n    <>\n      <Checkbox\n        id=\"settings-auto-refresh\"\n        label=\"Auto refresh\"\n        checked={isEnabled}\n        onChange={(e) => onChange(e.target.checked ? 10 : 0)}\n      />\n\n      {isEnabled && (\n        <div>\n          <label htmlFor=\"settings_refresh_rate\">Refresh rate</label>\n          <select\n            id=\"settings_refresh_rate\"\n            className=\"small-select\"\n            value={value}\n            onChange={(e) => handleChange(e.target.value)}\n          >\n            <option value={10}>10s</option>\n            <option value={30}>30s</option>\n            <option value={60}>1min</option>\n            <option value={120}>2min</option>\n            <option value={300}>5min</option>\n          </select>\n          <span\n            className={clsx(\n              isCheckVisible ? styles.alertVisible : styles.alertHidden,\n              styles.check\n            )}\n            onTransitionEnd={() => setIsCheckVisible(false)}\n          >\n            <Icon icon={Check} className=\"!ml-1\" mode=\"success\" />\n          </span>\n        </div>\n      )}\n    </>\n  );\n\n  function handleChange(value: string) {\n    onChange(Number(value));\n    setIsCheckVisible(true);\n  }\n}\n","import { ComponentType, PropsWithChildren, ReactNode } from 'react';\nimport clsx from 'clsx';\n\nimport { Icon } from '@@/Icon';\n\ninterface Props {\n  icon?: ReactNode | ComponentType<unknown>;\n  label: string;\n  description?: ReactNode;\n  className?: string;\n  id?: string;\n}\n\nexport function TableTitle({\n  icon,\n  label,\n  children,\n  description,\n  className,\n  id,\n}: PropsWithChildren<Props>) {\n  return (\n    <>\n      <div className={clsx('toolBar flex-col', className)} id={id}>\n        <div className=\"flex w-full items-center gap-1 p-0\">\n          <h2 className=\"toolBarTitle m-0 text-base\">\n            {icon && (\n              <div className=\"widget-icon\">\n                <Icon icon={icon} className=\"space-right\" />\n              </div>\n            )}\n\n            {label}\n          </h2>\n          {children}\n        </div>\n      </div>\n      {!!description && <div className=\"toolBar !pt-0\">{description}</div>}\n    </>\n  );\n}\n","import { Children, PropsWithChildren } from 'react';\n\nexport function TableTitleActions({ children }: PropsWithChildren<unknown>) {\n  if (Children.count(children) === 0) {\n    return null;\n  }\n\n  return <div className=\"settings\">{children}</div>;\n}\n","import { ColumnDef, CellContext } from '@tanstack/react-table';\nimport { UISrefProps } from '@uirouter/react';\n\nimport { Link } from '@@/Link';\n\nimport { DefaultType } from './types';\nimport { defaultGetRowId } from './defaultGetRowId';\n\n/**\n * @deprecated Use `buildNameColumnFromObject` instead\n * @todo Replace `buildNameColumnFromObject` and rename to `buildNameColumn`\n */\nexport function buildNameColumn<T extends DefaultType>(\n  nameKey: keyof T,\n  path: string,\n  idParam = 'id',\n  idGetter: (row: T) => string = defaultGetRowId<T>\n): ColumnDef<T> {\n  return buildNameColumnFromObject({\n    nameKey,\n    path,\n    idParam,\n    idGetter,\n  });\n}\n\nexport function buildNameColumnFromObject<T extends DefaultType>({\n  nameKey,\n  path,\n  idParam = 'id',\n  idGetter = defaultGetRowId<T>,\n  linkParamsBuilder = () => ({}),\n}: {\n  nameKey: keyof T;\n  path: string;\n  idParam?: string;\n  idGetter?: (row: T) => string;\n  linkParamsBuilder?: (row: T) => UISrefProps['params'];\n}): ColumnDef<T> {\n  const cell = createCell();\n\n  return {\n    header: 'Name',\n    accessorKey: nameKey,\n    id: 'name',\n    cell,\n    enableSorting: true,\n    enableHiding: false,\n  };\n\n  function createCell() {\n    return function NameCell({ renderValue, row }: CellContext<T, unknown>) {\n      const name = renderValue() || '';\n\n      if (typeof name !== 'string') {\n        return null;\n      }\n\n      return (\n        <Link\n          to={path}\n          params={{\n            ...linkParamsBuilder(row.original),\n            [idParam]: idGetter(row.original),\n          }}\n          title={name}\n        >\n          {name}\n        </Link>\n      );\n    };\n  }\n}\n","import { DefaultType } from './types';\n\n/**\n * gets row id by looking for one of id, Id, or ID keys on the object\n */\nexport function defaultGetRowId<D extends DefaultType>(row: D): string {\n  const key = ['id', 'Id', 'ID'].find((key) =>\n    Object.hasOwn(row, key)\n  ) as keyof D;\n\n  const value = row[key];\n\n  if (typeof value === 'string' || typeof value === 'number') {\n    return value.toString();\n  }\n\n  return '';\n}\n","import { ChevronDown, ChevronUp } from 'lucide-react';\nimport { ColumnDef } from '@tanstack/react-table';\n\nimport { Button } from '@@/buttons';\n\nimport { DefaultType } from './types';\n\nexport function buildExpandColumn<T extends DefaultType>(): ColumnDef<T> {\n  return {\n    id: 'expand',\n    header: ({ table }) => {\n      const hasExpandableItems = table.getCanSomeRowsExpand();\n\n      return (\n        hasExpandableItems && (\n          <Button\n            onClick={table.getToggleAllRowsExpandedHandler()}\n            color=\"none\"\n            icon={table.getIsAllRowsExpanded() ? ChevronDown : ChevronUp}\n            title=\"Expand all\"\n          />\n        )\n      );\n    },\n    cell: ({ row }) =>\n      row.getCanExpand() && (\n        <Button\n          onClick={(e) => {\n            e.preventDefault();\n            e.stopPropagation();\n\n            row.toggleExpanded();\n          }}\n          color=\"none\"\n          icon={row.getIsExpanded() ? ChevronDown : ChevronUp}\n          title={row.getIsExpanded() ? 'Collapse' : 'Expand'}\n        />\n      ),\n    enableColumnFilter: false,\n    enableGlobalFilter: false,\n    enableHiding: false,\n\n    meta: {\n      width: 40,\n    },\n  };\n}\n","import { createStore } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\n\nexport type DefaultType = object;\n\nexport interface PaginationTableSettings {\n  pageSize: number;\n  setPageSize: (pageSize: number) => void;\n}\n\nexport type ZustandSetFunc<T> = (\n  partial: T | Partial<T> | ((state: T) => T | Partial<T>),\n  replace?: boolean | undefined\n) => void;\n\nexport function paginationSettings<T extends PaginationTableSettings>(\n  set: ZustandSetFunc<T>\n): PaginationTableSettings {\n  return {\n    pageSize: 10,\n    setPageSize: (pageSize: number) => set((s) => ({ ...s, pageSize })),\n  };\n}\n\nexport interface SortableTableSettings {\n  sortBy: { id: string; desc: boolean } | undefined;\n  setSortBy: (id: string | undefined, desc: boolean) => void;\n}\n\nexport function sortableSettings<T extends SortableTableSettings>(\n  set: ZustandSetFunc<T>,\n  initialSortBy?: string | { id: string; desc: boolean }\n): SortableTableSettings {\n  return {\n    sortBy:\n      typeof initialSortBy === 'string'\n        ? { id: initialSortBy, desc: false }\n        : initialSortBy,\n    setSortBy: (id: string | undefined, desc: boolean) =>\n      set((s) => ({\n        ...s,\n        sortBy: typeof id === 'string' ? { id, desc } : id,\n      })),\n  };\n}\n\nexport interface SettableColumnsTableSettings {\n  hiddenColumns: string[];\n  setHiddenColumns: (hiddenColumns: string[]) => void;\n}\n\nexport function hiddenColumnsSettings<T extends SettableColumnsTableSettings>(\n  set: ZustandSetFunc<T>,\n  initialHiddenColumns: string[] = []\n): SettableColumnsTableSettings {\n  return {\n    hiddenColumns: initialHiddenColumns,\n    setHiddenColumns: (hiddenColumns: string[]) =>\n      set((s) => ({ ...s, hiddenColumns })),\n  };\n}\n\nexport interface RefreshableTableSettings {\n  autoRefreshRate: number;\n  setAutoRefreshRate: (autoRefreshRate: number) => void;\n}\n\nexport function refreshableSettings<T extends RefreshableTableSettings>(\n  set: ZustandSetFunc<T>,\n  autoRefreshRate = 0\n): RefreshableTableSettings {\n  return {\n    autoRefreshRate,\n    setAutoRefreshRate: (autoRefreshRate: number) =>\n      set((s) => ({ ...s, autoRefreshRate })),\n  };\n}\n\nexport interface BasicTableSettings\n  extends SortableTableSettings,\n    PaginationTableSettings {}\n\nexport function createPersistedStore<T extends BasicTableSettings>(\n  storageKey: string,\n  initialSortBy?: string | { id: string; desc: boolean },\n  create: (set: ZustandSetFunc<T>) => Omit<T, keyof BasicTableSettings> = () =>\n    ({}) as T\n) {\n  return createStore<T>()(\n    persist(\n      (set) =>\n        ({\n          ...sortableSettings<T>(set, initialSortBy),\n          ...paginationSettings<T>(set),\n          ...create(set),\n        }) as T,\n      {\n        name: keyBuilder(`datatable_settings_${storageKey}`),\n        version: 1,\n      }\n    )\n  );\n}\n","import { useEffect, useCallback, useState } from 'react';\n\nexport function useRepeater(\n  refreshRate: number,\n  onRefresh?: () => Promise<void> | void\n) {\n  const [intervalId, setIntervalId] = useState<NodeJS.Timeout | null>(null);\n\n  const stopRepeater = useCallback(() => {\n    if (!intervalId) {\n      return;\n    }\n\n    clearInterval(intervalId);\n    setIntervalId(null);\n  }, [intervalId]);\n\n  const startRepeater = useCallback(\n    (refreshRate) => {\n      if (intervalId || !onRefresh) {\n        return;\n      }\n\n      setIntervalId(\n        setInterval(async () => {\n          await onRefresh();\n        }, refreshRate * 1000)\n      );\n    },\n    [intervalId, onRefresh]\n  );\n\n  useEffect(() => {\n    if (!refreshRate || !onRefresh) {\n      stopRepeater();\n    } else {\n      startRepeater(refreshRate);\n    }\n\n    return stopRepeater;\n  }, [refreshRate, startRepeater, stopRepeater, intervalId, onRefresh]);\n}\n","import { useMemo, useState } from 'react';\nimport { useStore } from 'zustand';\n\nimport { useSearchBarState } from './SearchBar';\nimport { BasicTableSettings, createPersistedStore } from './types';\n\nexport type TableState<TSettings extends BasicTableSettings> = TSettings & {\n  setSearch: (search: string) => void;\n  search: string;\n};\n\nexport function useTableState<\n  TSettings extends BasicTableSettings = BasicTableSettings,\n>(\n  store: ReturnType<typeof createPersistedStore<TSettings>>,\n  storageKey: string\n) {\n  const settings = useStore(store);\n\n  const [search, setSearch] = useSearchBarState(storageKey);\n\n  return useMemo(\n    () => ({ ...settings, setSearch, search }),\n    [settings, search, setSearch]\n  );\n}\n\nexport function useTableStateWithStorage(\n  ...args: Parameters<typeof createPersistedStore>\n) {\n  const [store] = useState(() => createPersistedStore(...args));\n  return useTableState(store, args[0]);\n}\n\nexport function useTableStateWithoutStorage(\n  defaultSortKey?: string\n): BasicTableSettings & {\n  setSearch: (search: string) => void;\n  search: string;\n} {\n  const [search, setSearch] = useState('');\n  const [pageSize, setPageSize] = useState(10);\n  const [sortBy, setSortBy] = useState(\n    defaultSortKey ? { id: defaultSortKey, desc: false } : undefined\n  );\n\n  return {\n    search,\n    setSearch,\n    pageSize,\n    setPageSize,\n    setSortBy: (id: string | undefined, desc: boolean) =>\n      setSortBy(id ? { id, desc } : undefined),\n    sortBy,\n  };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-form-components-AutocompleteSelect-AutocompleteSelect-module__root\"};","import '@reach/combobox/styles.css';\n\nimport { useState, ChangeEvent } from 'react';\nimport {\n  Combobox,\n  ComboboxInput,\n  ComboboxList,\n  ComboboxOption,\n  ComboboxPopover,\n} from '@reach/combobox';\nimport clsx from 'clsx';\n\nimport { useDebounce } from '@/react/hooks/useDebounce';\n\nimport { Option } from '@@/form-components/PortainerSelect';\n\nimport styles from './AutocompleteSelect.module.css';\n\nexport function AutocompleteSelect({\n  value,\n  onChange,\n  placeholder,\n  searchResults,\n  readOnly,\n  inputId,\n}: {\n  value: string;\n  /**\n   * onChange is called whenever the input is changed or an option is selected\n   *\n   * when the input is changed, the call is debounced\n   */\n  onChange(value: string): void;\n  placeholder?: string;\n  searchResults?: Option<string>[];\n  readOnly?: boolean;\n  inputId: string;\n}) {\n  const [searchTerm, setSearchTerm] = useDebounce(value, onChange);\n  const [selected, setSelected] = useState(false);\n\n  return (\n    <Combobox\n      className={styles.root}\n      aria-label=\"compose\"\n      onSelect={onSelect}\n      data-cy=\"component-gitComposeInput\"\n    >\n      <ComboboxInput\n        value={searchTerm}\n        className=\"form-control\"\n        onChange={handleChange}\n        placeholder={placeholder}\n        readOnly={readOnly}\n        id={inputId}\n        autoComplete=\"off\"\n      />\n      {!selected && searchResults && searchResults.length > 0 && (\n        <ComboboxPopover>\n          <ComboboxList>\n            {searchResults.map((option: Option<string>) => (\n              <ComboboxOption\n                key={option.value}\n                value={option.value}\n                className={clsx(\n                  `[&[aria-selected=\"true\"]]:th-highcontrast:!bg-black [&[aria-selected=\"true\"]]:th-dark:!bg-black`,\n                  `hover:th-highcontrast:!bg-black hover:th-dark:!bg-black`,\n                  'th-highcontrast:bg-gray-10 th-dark:bg-gray-10 '\n                )}\n              />\n            ))}\n          </ComboboxList>\n        </ComboboxPopover>\n      )}\n    </Combobox>\n  );\n\n  function handleChange(e: ChangeEvent<HTMLInputElement>) {\n    setSearchTerm(e.target.value);\n    setSelected(false);\n  }\n\n  function onSelect(value: string) {\n    onChange(value);\n    setSelected(true);\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"group\":\"app-react-components-form-components-ButtonSelector-ButtonSelector-module__group\"};","import clsx from 'clsx';\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport { ButtonGroup, Size } from '@@/buttons/ButtonGroup';\nimport { Button } from '@@/buttons';\n\nimport styles from './ButtonSelector.module.css';\n\nexport interface Option<T> {\n  value: T;\n  label?: ReactNode;\n  disabled?: boolean;\n}\n\ninterface Props<T> {\n  value: T;\n  onChange(value: T): void;\n  options: Option<T>[];\n  size?: Size;\n  disabled?: boolean;\n  readOnly?: boolean;\n  className?: string;\n  'aria-label'?: string;\n}\n\nexport function ButtonSelector<T extends string | number | boolean>({\n  value,\n  onChange,\n  size,\n  options,\n  disabled,\n  readOnly,\n  className,\n  'aria-label': ariaLabel,\n}: Props<T>) {\n  return (\n    <ButtonGroup\n      size={size}\n      className={clsx(styles.group, className)}\n      aria-label={ariaLabel}\n    >\n      {options.map((option) => (\n        <OptionItem\n          key={option.value.toString()}\n          selected={value === option.value}\n          onChange={() => onChange(option.value)}\n          disabled={disabled || option.disabled}\n          readOnly={readOnly}\n        >\n          {option.label || option.value.toString()}\n        </OptionItem>\n      ))}\n    </ButtonGroup>\n  );\n}\n\ninterface OptionItemProps {\n  selected: boolean;\n  onChange(): void;\n  disabled?: boolean;\n  readOnly?: boolean;\n}\n\nfunction OptionItem({\n  selected,\n  children,\n  onChange,\n  disabled,\n  readOnly,\n}: PropsWithChildren<OptionItemProps>) {\n  return (\n    <Button\n      color=\"light\"\n      as=\"label\"\n      disabled={disabled || readOnly}\n      className={clsx(\n        {\n          active: selected,\n        },\n        '!static !z-auto'\n      )}\n    >\n      {children}\n      <input\n        type=\"radio\"\n        checked={selected}\n        onChange={onChange}\n        disabled={disabled}\n        readOnly={readOnly}\n      />\n    </Button>\n  );\n}\n","import clsx from 'clsx';\nimport {\n  forwardRef,\n  useRef,\n  useEffect,\n  MutableRefObject,\n  ChangeEventHandler,\n  HTMLProps,\n} from 'react';\n\ninterface Props extends HTMLProps<HTMLInputElement> {\n  checked?: boolean;\n  indeterminate?: boolean;\n  title?: string;\n  label?: string;\n  id: string;\n  className?: string;\n  role?: string;\n  onChange?: ChangeEventHandler<HTMLInputElement>;\n  bold?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, Props>(\n  (\n    {\n      indeterminate,\n      title,\n      label,\n      id,\n      checked,\n      onChange,\n      bold = true,\n      ...props\n    }: Props,\n    ref\n  ) => {\n    const defaultRef = useRef<HTMLInputElement>(null);\n    let resolvedRef = ref as MutableRefObject<HTMLInputElement | null>;\n    if (!ref) {\n      resolvedRef = defaultRef;\n    }\n\n    useEffect(() => {\n      if (resolvedRef === null || resolvedRef.current === null) {\n        return;\n      }\n\n      if (typeof indeterminate !== 'undefined') {\n        resolvedRef.current.indeterminate = indeterminate;\n      }\n    }, [resolvedRef, indeterminate]);\n\n    return (\n      <div className=\"md-checkbox flex\" title={title || label}>\n        <input\n          id={id}\n          type=\"checkbox\"\n          ref={resolvedRef}\n          onChange={onChange}\n          checked={checked}\n          // eslint-disable-next-line react/jsx-props-no-spreading\n          {...props}\n        />\n        <label htmlFor={id} className={clsx({ '!font-normal': !bold })}>\n          {label}\n        </label>\n      </div>\n    );\n  }\n);\n","import { List } from 'lucide-react';\n\nimport { CodeEditor } from '@@/CodeEditor';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Button } from '@@/buttons';\n\nimport { convertToArrayOfStrings, parseDotEnvFile } from './utils';\nimport { type Values } from './types';\n\nexport function AdvancedMode({\n  value,\n  onChange,\n  onSimpleModeClick,\n}: {\n  value: Values;\n  onChange: (value: Values) => void;\n  onSimpleModeClick: () => void;\n}) {\n  const editorValue = convertToArrayOfStrings(value).join('\\n');\n\n  return (\n    <>\n      <Button\n        size=\"small\"\n        color=\"link\"\n        icon={List}\n        className=\"!ml-0 p-0 hover:no-underline\"\n        onClick={onSimpleModeClick}\n      >\n        Simple mode\n      </Button>\n\n      <TextTip color=\"blue\" inline={false}>\n        Switch to simple mode to define variables line by line, or load from\n        .env file\n      </TextTip>\n\n      <CodeEditor\n        id=\"environment-variables-editor\"\n        value={editorValue}\n        onChange={handleEditorChange}\n        placeholder=\"e.g. key=value\"\n      />\n    </>\n  );\n\n  function handleEditorChange(value: string) {\n    onChange(parseDotEnvFile(value));\n  }\n}\n","export function readFileAsArrayBuffer(file: File): Promise<ArrayBuffer | null> {\n  return new Promise((resolve, reject) => {\n    const reader = new FileReader();\n    reader.readAsArrayBuffer(file);\n    reader.onload = () => {\n      if (reader.result instanceof ArrayBuffer) {\n        resolve(reader.result);\n      }\n    };\n    reader.onerror = (error) => reject(error);\n  });\n}\n\nexport function readFileAsText(file: File): Promise<string | null> {\n  return new Promise((resolve, reject) => {\n    const reader = new FileReader();\n    reader.readAsText(file);\n    reader.onload = () => {\n      if (typeof reader.result === 'string') {\n        resolve(reader.result);\n      }\n    };\n    reader.onerror = (error) => reject(error);\n  });\n}\n","import { FormError } from '../FormError';\nimport { InputLabeled } from '../Input/InputLabeled';\nimport { ItemProps } from '../InputList';\n\nimport { EnvVar } from './types';\n\nexport function EnvironmentVariableItem({\n  item,\n  onChange,\n  disabled,\n  error,\n  readOnly,\n  index,\n}: ItemProps<EnvVar>) {\n  return (\n    <div className=\"relative flex w-full flex-col\">\n      <div className=\"flex w-full items-start gap-2\">\n        <div className=\"w-1/2\">\n          <InputLabeled\n            className=\"w-full\"\n            label=\"name\"\n            required\n            value={item.name}\n            onChange={(e) => handleChange({ name: e.target.value })}\n            disabled={disabled}\n            needsDeletion={item.needsDeletion}\n            readOnly={readOnly}\n            placeholder=\"e.g. FOO\"\n            size=\"small\"\n            id={`env-name${index}`}\n          />\n          {error && (\n            <div>\n              <FormError className=\"mt-1 !mb-0\">\n                {Object.values(error)[0]}\n              </FormError>\n            </div>\n          )}\n        </div>\n        <InputLabeled\n          className=\"w-1/2\"\n          label=\"value\"\n          value={item.value}\n          onChange={(e) => handleChange({ value: e.target.value })}\n          disabled={disabled}\n          needsDeletion={item.needsDeletion}\n          readOnly={readOnly}\n          placeholder=\"e.g. bar\"\n          size=\"small\"\n          id={`env-value${index}`}\n        />\n      </div>\n    </div>\n  );\n\n  function handleChange(partial: Partial<EnvVar>) {\n    onChange({ ...item, ...partial });\n  }\n}\n","import { Edit, Plus } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { readFileAsText } from '@/portainer/services/fileUploadReact';\n\nimport { Button } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FileUploadField } from '@@/form-components/FileUpload';\nimport { InputList } from '@@/form-components/InputList';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\nimport type { Values } from './types';\nimport { parseDotEnvFile } from './utils';\nimport { EnvironmentVariableItem } from './EnvironmentVariableItem';\n\nexport function SimpleMode({\n  value,\n  onChange,\n  onAdvancedModeClick,\n  errors,\n  canUndoDelete,\n}: {\n  value: Values;\n  onChange: (value: Values) => void;\n  onAdvancedModeClick: () => void;\n  errors?: ArrayError<Values>;\n  canUndoDelete?: boolean;\n}) {\n  return (\n    <>\n      <Button\n        size=\"small\"\n        color=\"link\"\n        icon={Edit}\n        className=\"!ml-0 p-0 hover:no-underline\"\n        onClick={onAdvancedModeClick}\n      >\n        Advanced mode\n      </Button>\n\n      <TextTip color=\"blue\" inline={false}>\n        Switch to advanced mode to copy & paste multiple variables\n      </TextTip>\n\n      <InputList\n        aria-label=\"environment variables list\"\n        onChange={onChange}\n        value={value}\n        isAddButtonHidden\n        item={EnvironmentVariableItem}\n        errors={errors}\n        canUndoDelete={canUndoDelete}\n      />\n\n      <div className=\"flex gap-2\">\n        <Button\n          onClick={() =>\n            onChange([...value, { name: '', value: '', needsDeletion: false }])\n          }\n          className=\"!ml-0\"\n          color=\"default\"\n          icon={Plus}\n        >\n          Add an environment variable\n        </Button>\n\n        <FileEnv onChooseFile={(add) => onChange([...value, ...add])} />\n      </div>\n    </>\n  );\n}\n\nfunction FileEnv({ onChooseFile }: { onChooseFile: (file: Values) => void }) {\n  const [file, setFile] = useState<File | null>(null);\n\n  const fileTooBig = file && file.size > 1024 * 1024;\n\n  return (\n    <>\n      <FileUploadField\n        inputId=\"env-file-upload\"\n        onChange={handleChange}\n        title=\"Load variables from .env file\"\n        accept=\".env\"\n        value={file}\n        color=\"default\"\n      />\n\n      {fileTooBig && (\n        <TextTip color=\"orange\" inline>\n          File too large! Try uploading a file smaller than 1MB\n        </TextTip>\n      )}\n    </>\n  );\n\n  async function handleChange(file: File) {\n    setFile(file);\n    if (!file) {\n      return;\n    }\n\n    const text = await readFileAsText(file);\n    if (!text) {\n      return;\n    }\n\n    const parsed = parseDotEnvFile(text);\n    onChooseFile(parsed);\n  }\n}\n","import { useState } from 'react';\nimport { array, boolean, object, SchemaOf, string } from 'yup';\n\nimport { ArrayError } from '../InputList/InputList';\nimport { buildUniquenessTest } from '../validate-unique';\n\nimport { AdvancedMode } from './AdvancedMode';\nimport { SimpleMode } from './SimpleMode';\nimport { Values } from './types';\n\nexport function EnvironmentVariablesFieldset({\n  onChange,\n  values,\n  errors,\n  canUndoDelete,\n}: {\n  values: Values;\n  onChange(value: Values): void;\n  errors?: ArrayError<Values>;\n  canUndoDelete?: boolean;\n}) {\n  const [simpleMode, setSimpleMode] = useState(true);\n\n  return (\n    <>\n      {simpleMode ? (\n        <SimpleMode\n          onAdvancedModeClick={() => setSimpleMode(false)}\n          onChange={onChange}\n          value={values}\n          errors={errors}\n          canUndoDelete={canUndoDelete}\n        />\n      ) : (\n        <AdvancedMode\n          onSimpleModeClick={() => setSimpleMode(true)}\n          onChange={onChange}\n          value={values}\n        />\n      )}\n    </>\n  );\n}\n\nexport function envVarValidation(): SchemaOf<Values> {\n  return array(\n    object({\n      name: string().required('Environment variable name is required'),\n      value: string().default(''),\n      needsDeletion: boolean().default(false),\n    })\n  ).test(\n    'unique',\n    'This environment variable is already defined',\n    buildUniquenessTest(\n      () => 'This environment variable is already defined',\n      'name'\n    )\n  );\n}\n","import React, { ComponentProps } from 'react';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { EnvironmentVariablesFieldset } from './EnvironmentVariablesFieldset';\n\ntype FieldsetProps = ComponentProps<typeof EnvironmentVariablesFieldset>;\n\nexport function EnvironmentVariablesPanel({\n  explanation,\n  onChange,\n  values,\n  showHelpMessage,\n  errors,\n  isFoldable = false,\n  alertMessage,\n}: {\n  explanation?: React.ReactNode;\n  showHelpMessage?: boolean;\n  isFoldable?: boolean;\n  alertMessage?: React.ReactNode;\n} & FieldsetProps) {\n  return (\n    <FormSection\n      title=\"Environment variables\"\n      isFoldable={isFoldable}\n      defaultFolded={isFoldable}\n      className=\"flex flex-col w-full\"\n    >\n      <div className=\"form-group\">\n        {!!explanation && (\n          <div className=\"col-sm-12 environment-variables-panel--explanation\">\n            {explanation}\n          </div>\n        )}\n\n        {alertMessage}\n\n        <div className=\"col-sm-12\">\n          <EnvironmentVariablesFieldset\n            values={values}\n            onChange={onChange}\n            errors={errors}\n          />\n        </div>\n\n        {showHelpMessage && (\n          <div className=\"col-sm-12\">\n            <TextTip color=\"blue\" inline={false}>\n              Environment changes will not take effect until redeployment occurs\n              manually or via webhook.\n            </TextTip>\n          </div>\n        )}\n      </div>\n    </FormSection>\n  );\n}\n","import { ComponentProps } from 'react';\n\nimport { Alert } from '@@/Alert';\nimport { useDocsUrl } from '@@/PageHeader/ContextHelp/ContextHelp';\n\nimport { EnvironmentVariablesFieldset } from './EnvironmentVariablesFieldset';\nimport { EnvironmentVariablesPanel } from './EnvironmentVariablesPanel';\n\ntype FieldsetProps = ComponentProps<typeof EnvironmentVariablesFieldset>;\n\nexport function StackEnvironmentVariablesPanel({\n  onChange,\n  values,\n  errors,\n  isFoldable = false,\n  showHelpMessage,\n}: {\n  isFoldable?: boolean;\n  showHelpMessage?: boolean;\n} & FieldsetProps) {\n  return (\n    <EnvironmentVariablesPanel\n      explanation={\n        <div>\n          You may use{' '}\n          <a\n            href={`${useDocsUrl(\n              '/user/docker/stacks/add#environment-variables'\n            )}`}\n            target=\"_blank\"\n            data-cy=\"stack-env-vars-help-link\"\n            rel=\"noreferrer noopener\"\n          >\n            environment variables in your compose file\n          </a>\n          . The environment variable values set below will be used as\n          substitutions in the compose file. Note that you may also reference a\n          stack.env file in your compose file. A stack.env file contains the\n          environment variables and their values (e.g. TAG=v1.5).\n        </div>\n      }\n      onChange={onChange}\n      values={values}\n      errors={errors}\n      isFoldable={isFoldable}\n      showHelpMessage={showHelpMessage}\n      alertMessage={\n        <div className=\"flex p-4\">\n          <Alert color=\"info\" className=\"col-sm-12\">\n            <div>\n              <p>\n                <strong>stack.env file operation</strong>\n              </p>\n              <div>\n                When deploying via <strong>Repository</strong>, the stack.env\n                file must already reside in the Git repo.\n              </div>\n              <div>\n                When deploying via <strong>Web editor</strong>,{' '}\n                <strong>Upload</strong> or{' '}\n                <strong>Custom template deployment</strong>, the stack.env file\n                is auto created from what you set below.\n              </div>\n            </div>\n          </Alert>\n        </div>\n      }\n    />\n  );\n}\n","import _ from 'lodash';\n\nimport { EnvVar } from './types';\n\nexport const KEY_REGEX = /(.+?)/.source;\nexport const VALUE_REGEX = /(.*)?/.source;\n\nconst KEY_VALUE_REGEX = new RegExp(`^(${KEY_REGEX})\\\\s*=(${VALUE_REGEX})$`);\nconst NEWLINES_REGEX = /\\n|\\r|\\r\\n/;\n\nexport function parseDotEnvFile(src: string) {\n  return parseArrayOfStrings(\n    _.compact(src.split(NEWLINES_REGEX))\n      .map((v) => v.trim())\n      .filter((v) => !v.startsWith('#') && v !== '')\n  );\n}\n\nexport function parseArrayOfStrings(array: Array<string> = []): Array<EnvVar> {\n  if (!array) {\n    return [];\n  }\n\n  return _.compact(\n    array.map((variableString) => {\n      if (!variableString.includes('=')) {\n        return { name: variableString };\n      }\n\n      const parsedKeyValArr = variableString.trim().match(KEY_VALUE_REGEX);\n      if (parsedKeyValArr == null || parsedKeyValArr.length < 4) {\n        return null;\n      }\n\n      return {\n        name: parsedKeyValArr[1].trim(),\n        value: parsedKeyValArr[3].trim() || '',\n        needsDeletion: false,\n      };\n    })\n  );\n}\n\nexport function convertToArrayOfStrings(array: Array<EnvVar>) {\n  if (!array) {\n    return [];\n  }\n\n  return array\n    .filter((variable) => variable.name)\n    .map(({ name, value }) =>\n      value || value === '' ? `${name}=${value}` : name\n    );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"fileInput\":\"app-react-components-form-components-FileUpload-FileUploadField-module__file-input\",\"fileButton\":\"app-react-components-form-components-FileUpload-FileUploadField-module__file-button\"};","import { ChangeEvent, ComponentProps, createRef } from 'react';\nimport { Upload, XCircle } from 'lucide-react';\n\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\n\nimport styles from './FileUploadField.module.css';\n\nexport interface Props {\n  onChange(value: File): void;\n  value?: File | null;\n  accept?: string;\n  title?: string;\n  required?: boolean;\n  inputId: string;\n  color?: ComponentProps<typeof Button>['color'];\n  name?: string;\n}\n\nexport function FileUploadField({\n  onChange,\n  value,\n  accept,\n  title = 'Select a file',\n  required = false,\n  inputId,\n  color = 'primary',\n  name,\n}: Props) {\n  const fileRef = createRef<HTMLInputElement>();\n\n  return (\n    <div className=\"file-upload-field flex gap-2\">\n      <input\n        id={inputId}\n        ref={fileRef}\n        type=\"file\"\n        accept={accept}\n        required={required}\n        className={styles.fileInput}\n        onChange={changeHandler}\n        aria-label=\"file-input\"\n        name={name}\n      />\n      <Button\n        size=\"small\"\n        color={color}\n        onClick={handleButtonClick}\n        className={styles.fileButton}\n        icon={Upload}\n      >\n        {title}\n      </Button>\n\n      <span className=\"vertical-center\">\n        {value ? value.name : required && <Icon icon={XCircle} mode=\"danger\" />}\n      </span>\n    </div>\n  );\n\n  function handleButtonClick() {\n    if (fileRef && fileRef.current) {\n      fileRef.current.click();\n    }\n  }\n\n  function changeHandler(event: ChangeEvent<HTMLInputElement>) {\n    if (event.target && event.target.files && event.target.files.length > 0) {\n      onChange(event.target.files[0]);\n    }\n  }\n}\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { FileUploadField } from '@@/form-components/FileUpload/FileUploadField';\n\nexport interface Props {\n  onChange(value: unknown): void;\n  value?: File;\n  title?: string;\n  required?: boolean;\n  description: ReactNode;\n}\n\nexport function FileUploadForm({\n  onChange,\n  value,\n  title = 'Select a file',\n  required = false,\n  description,\n}: PropsWithChildren<Props>) {\n  return (\n    <div className=\"file-upload-form\">\n      <FormSectionTitle>Upload</FormSectionTitle>\n      <div className=\"form-group\">\n        <span className=\"col-sm-12 text-muted small\">{description}</span>\n      </div>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <FileUploadField\n            inputId=\"file-upload-field\"\n            onChange={onChange}\n            value={value}\n            title={title}\n            required={required}\n          />\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { PropsWithChildren } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { LoadingButton } from '@@/buttons';\n\nimport { FormSection } from './FormSection';\n\ninterface Props extends AutomationTestingProps {\n  submitLabel: string;\n  loadingText: string;\n  isLoading: boolean;\n  isValid: boolean;\n}\n\nexport function FormActions({\n  submitLabel = 'Save',\n  loadingText = 'Saving',\n  isLoading,\n  children,\n  isValid,\n  'data-cy': dataCy,\n}: PropsWithChildren<Props>) {\n  return (\n    <FormSection title=\"Actions\">\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <LoadingButton\n            className=\"!ml-0\"\n            loadingText={loadingText}\n            isLoading={isLoading}\n            disabled={!isValid}\n            data-cy={dataCy}\n          >\n            {submitLabel}\n          </LoadingButton>\n\n          {children}\n        </div>\n      </div>\n    </FormSection>\n  );\n}\n","import { ComponentProps, PropsWithChildren, ReactNode } from 'react';\nimport clsx from 'clsx';\n\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { InlineLoader } from '@@/InlineLoader';\n\nimport { FormError } from '../FormError';\n\nexport type Size = 'xsmall' | 'small' | 'medium' | 'large' | 'vertical';\n\nexport interface Props {\n  inputId?: string;\n  label: ReactNode;\n  size?: Size;\n  tooltip?: ComponentProps<typeof Tooltip>['message'];\n  setTooltipHtmlMessage?: ComponentProps<typeof Tooltip>['setHtmlMessage'];\n  children: ReactNode;\n  errors?: ReactNode;\n  required?: boolean;\n  className?: string;\n  isLoading?: boolean; // whether to show an inline loader, instead of the children\n  loadingText?: ReactNode; // text to show when isLoading is true\n}\n\nexport function FormControl({\n  inputId,\n  label,\n  size = 'small',\n  tooltip = '',\n  children,\n  errors,\n  className,\n  required = false,\n  setTooltipHtmlMessage,\n  isLoading = false,\n  loadingText = 'Loading...',\n}: PropsWithChildren<Props>) {\n  return (\n    <div\n      className={clsx(\n        className,\n        'form-group',\n        'after:clear-both after:table after:content-[\"\"]' // to fix issues with float\n      )}\n    >\n      <label\n        htmlFor={inputId}\n        className={clsx(sizeClassLabel(size), 'control-label', 'text-left')}\n      >\n        {label}\n\n        {required && <span className=\"text-danger\">*</span>}\n\n        {tooltip && (\n          <Tooltip message={tooltip} setHtmlMessage={setTooltipHtmlMessage} />\n        )}\n      </label>\n\n      <div className={sizeClassChildren(size)}>\n        {isLoading && <InlineLoader>{loadingText}</InlineLoader>}\n        {!isLoading && children}\n        {errors && <FormError>{errors}</FormError>}\n      </div>\n    </div>\n  );\n}\n\nfunction sizeClassLabel(size?: Size) {\n  switch (size) {\n    case 'large':\n      return 'col-sm-5 col-lg-4';\n    case 'medium':\n      return 'col-sm-4 col-lg-3';\n    case 'xsmall':\n      return 'col-sm-1';\n    case 'vertical':\n      return '';\n    default:\n      return 'col-sm-3 col-lg-2';\n  }\n}\n\nfunction sizeClassChildren(size?: Size) {\n  switch (size) {\n    case 'large':\n      return 'col-sm-7 col-lg-8';\n    case 'medium':\n      return 'col-sm-8 col-lg-9';\n    case 'xsmall':\n      return 'col-sm-11';\n    case 'vertical':\n      return '';\n    default:\n      return 'col-sm-9 col-lg-10';\n  }\n}\n","import { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\nimport { AlertTriangle } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\ninterface Props {\n  className?: string;\n}\n\nexport function FormError({ children, className }: PropsWithChildren<Props>) {\n  return (\n    <div\n      className={clsx(\n        `text-muted help-block !inline-flex gap-1 !align-top text-xs`,\n        className\n      )}\n    >\n      <Icon\n        icon={AlertTriangle}\n        mode=\"warning\"\n        size=\"sm\"\n        className=\"flex-none\"\n      />\n      <div className=\"text-warning\">{children}</div>\n    </div>\n  );\n}\n","import { PropsWithChildren, ReactNode, useState } from 'react';\nimport { ChevronUp, ChevronRight } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\nimport { FormSectionTitle } from '../FormSectionTitle';\n\ninterface Props {\n  title: ReactNode;\n  titleSize?: 'sm' | 'md' | 'lg';\n  isFoldable?: boolean;\n  defaultFolded?: boolean;\n  titleClassName?: string;\n  className?: string;\n}\n\nexport function FormSection({\n  title,\n  titleSize = 'md',\n  children,\n  isFoldable = false,\n  defaultFolded = isFoldable,\n  titleClassName,\n  className,\n}: PropsWithChildren<Props>) {\n  const [isExpanded, setIsExpanded] = useState(!defaultFolded);\n\n  return (\n    <div className={className}>\n      <FormSectionTitle\n        htmlFor={isFoldable ? `foldingButton${title}` : ''}\n        titleSize={titleSize}\n        className={titleClassName}\n      >\n        {isFoldable && (\n          <button\n            id={`foldingButton${title}`}\n            type=\"button\"\n            onClick={(e) => {\n              setIsExpanded(!isExpanded);\n              e.stopPropagation();\n              e.preventDefault();\n            }}\n            className=\"mx-2 !ml-0 inline-flex w-2 items-center justify-center border-0 bg-transparent\"\n          >\n            <Icon\n              icon={isExpanded ? ChevronUp : ChevronRight}\n              className=\"shrink-0\"\n            />\n          </button>\n        )}\n\n        {title}\n      </FormSectionTitle>\n\n      {isExpanded && children}\n    </div>\n  );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\ninterface Props {\n  htmlFor?: string;\n  titleSize?: 'sm' | 'md' | 'lg';\n  className?: string;\n}\n\nconst tailwindTitleSize = {\n  sm: 'text-sm',\n  md: 'text-base',\n  lg: 'text-lg',\n};\n\nexport function FormSectionTitle({\n  children,\n  htmlFor,\n  titleSize = 'md',\n  className,\n}: PropsWithChildren<Props>) {\n  if (htmlFor) {\n    return (\n      <label\n        htmlFor={htmlFor}\n        className={clsx(\n          'col-sm-12 mb-2 mt-1 flex cursor-pointer items-center pl-0 font-medium',\n          tailwindTitleSize[titleSize],\n          className\n        )}\n      >\n        {children}\n      </label>\n    );\n  }\n  return (\n    <div\n      className={clsx(\n        'col-sm-12 mb-2 mt-4 pl-0 font-medium',\n        tailwindTitleSize[titleSize],\n        className\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n","import { ComponentProps, InputHTMLAttributes } from 'react';\nimport clsx from 'clsx';\n\nimport { InputGroup } from '../InputGroup';\n\nexport function InputLabeled({\n  label,\n  className,\n  size,\n  needsDeletion,\n  id,\n  required,\n  disabled,\n  ...props\n}: {\n  label: string;\n  className?: string;\n  size?: ComponentProps<typeof InputGroup>['size'];\n  needsDeletion?: boolean;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'children'>) {\n  return (\n    <InputGroup\n      className={clsx(className, needsDeletion && 'striked')}\n      size={size}\n    >\n      <InputGroup.Addon as=\"label\" htmlFor={id} required={required}>\n        {label}\n      </InputGroup.Addon>\n      <InputGroup.Input\n        // eslint-disable-next-line react/jsx-props-no-spreading\n        {...props}\n        disabled={disabled || needsDeletion}\n        id={id}\n      />\n    </InputGroup>\n  );\n}\n","import clsx from 'clsx';\nimport { forwardRef, InputHTMLAttributes, Ref } from 'react';\n\nexport const InputWithRef = forwardRef<\n  HTMLInputElement,\n  InputHTMLAttributes<HTMLInputElement>\n>(\n  // eslint-disable-next-line react/jsx-props-no-spreading\n  (props, ref) => <Input {...props} mRef={ref} />\n);\n\nexport function Input({\n  className,\n  mRef: ref,\n  value,\n  type,\n  ...props\n}: InputHTMLAttributes<HTMLInputElement> & {\n  mRef?: Ref<HTMLInputElement>;\n}) {\n  return (\n    <input\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n      type={type}\n      value={type === 'number' && Number.isNaN(value) ? '' : value} // avoid the `\"NaN\" cannot be parsed, or is out of range.` error for an empty number input\n      ref={ref}\n      className={clsx('form-control', className)}\n    />\n  );\n}\n","import clsx from 'clsx';\nimport { SelectHTMLAttributes } from 'react';\n\nexport interface Option<T extends string | number> {\n  value: T;\n  label: string;\n}\n\ninterface Props<T extends string | number> {\n  options: Option<T>[];\n}\n\nexport function Select<T extends number | string>({\n  options,\n  className,\n  ...props\n}: Props<T> & SelectHTMLAttributes<HTMLSelectElement>) {\n  return (\n    <select\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n      className={clsx('form-control', className)}\n    >\n      {options.map((item) => (\n        <option value={item.value} key={item.value}>\n          {item.label}\n        </option>\n      ))}\n    </select>\n  );\n}\n","import clsx from 'clsx';\nimport { createContext, PropsWithChildren, useContext } from 'react';\n\nconst Context = createContext<null | boolean>(null);\nContext.displayName = 'InputGroupContext';\n\ntype Size = 'small' | 'large';\n\nexport function useInputGroupContext() {\n  const context = useContext(Context);\n\n  if (context == null) {\n    throw new Error('Should be inside a InputGroup component');\n  }\n}\n\ninterface Props {\n  size?: Size;\n  className?: string;\n}\n\nexport function InputGroup({\n  children,\n  size,\n  className,\n}: PropsWithChildren<Props>) {\n  return (\n    <Context.Provider value>\n      <div className={clsx('input-group', sizeClass(size), className)}>\n        {children}\n      </div>\n    </Context.Provider>\n  );\n}\n\nfunction sizeClass(size?: Size) {\n  switch (size) {\n    case 'large':\n      return 'input-group-lg';\n    case 'small':\n      return 'input-group-sm';\n    default:\n      return '';\n  }\n}\n","import { Input } from '../Input';\n\nimport { InputGroup as MainComponent } from './InputGroup';\nimport { InputGroupAddon } from './InputGroupAddon';\nimport { InputGroupButtonWrapper } from './InputGroupButtonWrapper';\n\ninterface InputGroupSubComponents {\n  Addon: typeof InputGroupAddon;\n  /**\n   * Should wrap all buttons inside a InputGroup\n   *\n   * example:\n   * ```\n   * <InputGroup>\n   *  <InputGroup.ButtonWrapper>\n   *   <Button>...</Button>\n   *   <Button>...</Button>\n   *  </InputGroup.ButtonWrapper>\n   * </InputGroup>\n   * ```\n   */\n  ButtonWrapper: typeof InputGroupButtonWrapper;\n  Input: typeof Input;\n  className: string | undefined;\n}\n\nconst InputGroup: typeof MainComponent & InputGroupSubComponents =\n  MainComponent as typeof MainComponent & InputGroupSubComponents;\n\nInputGroup.Addon = InputGroupAddon;\nInputGroup.ButtonWrapper = InputGroupButtonWrapper;\nInputGroup.Input = Input;\n\nexport { InputGroup };\n","import { ComponentType, PropsWithChildren } from 'react';\nimport clsx from 'clsx';\n\nimport { useInputGroupContext } from './InputGroup';\n\ntype BaseProps<TProps> = {\n  as?: ComponentType<TProps> | string;\n  required?: boolean;\n  className?: string;\n};\n\nexport function InputGroupAddon<TProps>({\n  children,\n  as = 'span',\n  className,\n  required,\n  ...props\n}: PropsWithChildren<BaseProps<TProps> & TProps>) {\n  useInputGroupContext();\n  const Component = as as 'span';\n\n  return (\n    <Component\n      className={clsx('input-group-addon', required && 'required', className)}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n    >\n      {children}\n    </Component>\n  );\n}\n","import { PropsWithChildren } from 'react';\n\nimport { useInputGroupContext } from './InputGroup';\n\n/**\n * Should wrap all buttons inside a InputGroup\n *\n * example:\n * ```\n * <InputGroup>\n *  <InputGroup.ButtonWrapper>\n *   <Button>...</Button>\n *   <Button>...</Button>\n *  </InputGroup.ButtonWrapper>\n * </InputGroup>\n * ```\n */\nexport function InputGroupButtonWrapper({\n  children,\n}: PropsWithChildren<unknown>) {\n  useInputGroupContext();\n\n  return <span className=\"input-group-btn\">{children}</span>;\n}\n","export function arrayMove<T>(array: Array<T>, from: number, to: number) {\n  if (!checkValidIndex(array, from) || !checkValidIndex(array, to)) {\n    throw new Error('index is out of bounds');\n  }\n\n  const item = array[from];\n  const { length } = array;\n\n  const diff = from - to;\n\n  if (diff > 0) {\n    // move left\n    return [\n      ...array.slice(0, to),\n      item,\n      ...array.slice(to, from),\n      ...array.slice(from + 1, length),\n    ];\n  }\n\n  if (diff < 0) {\n    // move right\n    const targetIndex = to + 1;\n    return [\n      ...array.slice(0, from),\n      ...array.slice(from + 1, targetIndex),\n      item,\n      ...array.slice(targetIndex, length),\n    ];\n  }\n\n  return [...array];\n\n  function checkValidIndex<T>(array: Array<T>, index: number) {\n    return index >= 0 && index <= array.length;\n  }\n}\n\nexport function hasKey(\n  value: unknown,\n  key: string | number | symbol\n): value is { needsDeletion: boolean } {\n  return isObject(value) && key in value;\n}\n\nfunction isObject(value: unknown): value is object {\n  return typeof value === 'object' && value !== null;\n}\n","import { ComponentType, useRef } from 'react';\nimport { FormikErrors } from 'formik';\nimport { ArrowDown, ArrowUp, Plus, RotateCw, Trash2 } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { Button } from '@@/buttons';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { Input } from '../Input';\nimport { FormError } from '../FormError';\n\nimport { arrayMove, hasKey } from './utils';\n\ntype ArrElement<ArrType> = ArrType extends readonly (infer ElementType)[]\n  ? ElementType\n  : never;\n\nexport type ArrayError<TArray> =\n  | Array<FormikErrors<ArrElement<TArray> | undefined>>\n  | string\n  | string[]\n  | undefined;\nexport type ItemError<T> = FormikErrors<T> | string | undefined;\n\nexport interface ItemProps<T> {\n  item: T;\n  onChange(value: T): void;\n  error?: ItemError<T>;\n  disabled?: boolean;\n  readOnly?: boolean;\n  // eslint-disable-next-line react/no-unused-prop-types\n  index: number;\n  needsDeletion?: boolean;\n}\ntype Key = string | number;\ntype ChangeType = 'delete' | 'create' | 'update';\nexport type DefaultType = { value: string; needsDeletion?: boolean };\ntype CanUndoDeleteItem<T> = T & { needsDeletion: boolean };\n\ntype OnChangeEvent<T> =\n  | {\n      item: T;\n      type: ChangeType;\n    }\n  | {\n      type: 'move';\n      fromIndex: number;\n      to: number;\n    };\n\ntype RenderItemFunction<T> = (\n  item: T,\n  onChange: (value: T) => void,\n  index: number,\n  error?: ItemError<T>\n) => React.ReactNode;\n\ninterface Props<T> {\n  label?: string;\n  value: T[];\n  onChange(value: T[], e: OnChangeEvent<T>): void;\n  itemBuilder?(): T;\n  renderItem?: RenderItemFunction<T>;\n  item?: ComponentType<ItemProps<T>>;\n  tooltip?: string;\n  addLabel?: string;\n  itemKeyGetter?(item: T, index: number): Key;\n  movable?: boolean;\n  canUndoDelete?: boolean;\n  errors?: ArrayError<T[]>;\n  textTip?: string;\n  isAddButtonHidden?: boolean;\n  addButtonDataCy?: string;\n  isDeleteButtonHidden?: boolean;\n  deleteButtonDataCy?: string;\n  disabled?: boolean;\n  addButtonError?: string;\n  readOnly?: boolean;\n  'aria-label'?: string;\n}\n\nexport function InputList<T = DefaultType>({\n  label,\n  value,\n  onChange,\n  itemBuilder = defaultItemBuilder as unknown as () => T,\n  renderItem = renderDefaultItem as unknown as RenderItemFunction<T>,\n  item: Item,\n  tooltip,\n  addLabel = 'Add item',\n  itemKeyGetter = (item: T, index: number) => index,\n  movable,\n  canUndoDelete = false,\n  errors,\n  textTip,\n  isAddButtonHidden = false,\n  addButtonDataCy,\n  isDeleteButtonHidden = false,\n  deleteButtonDataCy,\n  disabled,\n  addButtonError,\n  readOnly,\n  'aria-label': ariaLabel,\n}: Props<T>) {\n  const initialItemsCount = useRef(value.length);\n  const isAddButtonVisible = !(isAddButtonHidden || readOnly);\n  const isDeleteButtonVisible = !(isDeleteButtonHidden || readOnly);\n  return (\n    <div className=\"form-group\" aria-label={ariaLabel || label}>\n      {label && (\n        <div className=\"col-sm-12\">\n          <span className=\"control-label space-right pt-2 text-left !font-bold\">\n            {label}\n            {tooltip && <Tooltip message={tooltip} />}\n          </span>\n        </div>\n      )}\n\n      {textTip && (\n        <div className=\"col-sm-12 mt-5\">\n          <TextTip color=\"blue\">{textTip}</TextTip>\n        </div>\n      )}\n\n      {value.length > 0 && (\n        <div className=\"col-sm-12 mt-5 flex flex-col gap-y-5\">\n          {value.map((item, index) => {\n            const key = itemKeyGetter(item, index);\n            const error =\n              typeof errors === 'object' ? errors[index] : undefined;\n\n            return (\n              <div key={key} className=\"flex\">\n                {Item ? (\n                  <Item\n                    item={item}\n                    onChange={(value: T) => handleChangeItem(key, value)}\n                    error={error}\n                    disabled={disabled}\n                    readOnly={readOnly}\n                    index={index}\n                  />\n                ) : (\n                  renderItem(\n                    item,\n                    (value: T) => handleChangeItem(key, value),\n                    index,\n                    error\n                  )\n                )}\n                <div className=\"items-start\">\n                  {!readOnly && movable && (\n                    <>\n                      <Button\n                        size=\"medium\"\n                        disabled={disabled || index === 0}\n                        onClick={() => handleMoveUp(index)}\n                        className=\"vertical-center btn-only-icon\"\n                        icon={ArrowUp}\n                      />\n                      <Button\n                        size=\"medium\"\n                        type=\"button\"\n                        disabled={disabled || index === value.length - 1}\n                        onClick={() => handleMoveDown(index)}\n                        className=\"vertical-center btn-only-icon\"\n                        icon={ArrowDown}\n                      />\n                    </>\n                  )}\n                  {isDeleteButtonVisible && !canUndoDelete && (\n                    <Button\n                      color=\"dangerlight\"\n                      size=\"medium\"\n                      onClick={() => handleRemoveItem(key, item)}\n                      className=\"vertical-center btn-only-icon\"\n                      data-cy={`${deleteButtonDataCy}_${index}`}\n                      icon={Trash2}\n                    />\n                  )}\n                  {isDeleteButtonVisible &&\n                    canUndoDelete &&\n                    hasKey(item, 'needsDeletion') && (\n                      <CanUndoDeleteButton\n                        item={{ ...item, needsDeletion: !!item.needsDeletion }}\n                        itemIndex={index}\n                        initialItemsCount={initialItemsCount.current}\n                        handleRemoveItem={handleRemoveItem}\n                        handleToggleNeedsDeletion={handleToggleNeedsDeletion}\n                        dataCy={`${deleteButtonDataCy}_${index}`}\n                      />\n                    )}\n                </div>\n              </div>\n            );\n          })}\n        </div>\n      )}\n\n      {isAddButtonVisible && (\n        <>\n          <div className=\"col-sm-12 mt-7\">\n            <Button\n              onClick={handleAdd}\n              disabled={disabled}\n              type=\"button\"\n              color=\"default\"\n              className=\"!ml-0\"\n              size=\"small\"\n              icon={Plus}\n              data-cy={addButtonDataCy}\n            >\n              {addLabel}\n            </Button>\n          </div>\n          {addButtonError && (\n            <div className=\"col-sm-12 mt-1\">\n              <TextTip color=\"blue\">{addButtonError}</TextTip>\n            </div>\n          )}\n        </>\n      )}\n    </div>\n  );\n\n  function handleMoveUp(index: number) {\n    if (index <= 0) {\n      return;\n    }\n    handleMove(index, index - 1);\n  }\n\n  function handleMoveDown(index: number) {\n    if (index >= value.length - 1) {\n      return;\n    }\n    handleMove(index, index + 1);\n  }\n\n  function handleMove(from: number, to: number) {\n    if (!movable) {\n      return;\n    }\n\n    onChange(arrayMove(value, from, to), {\n      type: 'move',\n      fromIndex: from,\n      to,\n    });\n  }\n\n  function handleRemoveItem(key: Key, item: T) {\n    onChange(\n      value.filter((item, index) => {\n        const itemKey = itemKeyGetter(item, index);\n        return itemKey !== key;\n      }),\n      { type: 'delete', item }\n    );\n  }\n\n  function handleToggleNeedsDeletion(key: Key, item: CanUndoDeleteItem<T>) {\n    handleChangeItem(key, { ...item, needsDeletion: !item.needsDeletion });\n  }\n\n  function handleAdd() {\n    const newItem = itemBuilder();\n    onChange([...value, newItem], { type: 'create', item: newItem });\n  }\n\n  function handleChangeItem(key: Key, newItemValue: T) {\n    const newItems = value.map((item, index) => {\n      const itemKey = itemKeyGetter(item, index);\n      if (itemKey !== key) {\n        return item;\n      }\n      return newItemValue;\n    });\n    onChange(newItems, {\n      type: 'update',\n      item: newItemValue,\n    });\n  }\n}\n\nfunction defaultItemBuilder(): DefaultType {\n  return { value: '' };\n}\n\nfunction DefaultItem({\n  item,\n  onChange,\n  error,\n  disabled,\n  readOnly,\n}: ItemProps<DefaultType>) {\n  return (\n    <>\n      <Input\n        value={item.value}\n        onChange={(e) => onChange({ value: e.target.value })}\n        className={clsx('!w-full', item.needsDeletion && 'striked')}\n        disabled={disabled || item.needsDeletion}\n        readOnly={readOnly}\n      />\n      {error && <FormError>{error}</FormError>}\n    </>\n  );\n}\n\nfunction renderDefaultItem(\n  item: DefaultType,\n  onChange: (value: DefaultType) => void,\n  index: number,\n  error?: ItemError<DefaultType>\n) {\n  return (\n    <DefaultItem item={item} onChange={onChange} error={error} index={index} />\n  );\n}\n\ntype CanUndoDeleteButtonProps<T> = {\n  item: CanUndoDeleteItem<T>;\n  itemIndex: number;\n  initialItemsCount: number;\n  handleRemoveItem(key: Key, item: T): void;\n  handleToggleNeedsDeletion(key: Key, item: T): void;\n  dataCy: string;\n};\n\nfunction CanUndoDeleteButton<T>({\n  item,\n  itemIndex,\n  initialItemsCount,\n  handleRemoveItem,\n  handleToggleNeedsDeletion,\n  dataCy,\n}: CanUndoDeleteButtonProps<T>) {\n  return (\n    <div className=\"items-start\">\n      {!item.needsDeletion && (\n        <Button\n          color=\"dangerlight\"\n          size=\"medium\"\n          onClick={handleDeleteClick}\n          className=\"vertical-center btn-only-icon\"\n          icon={Trash2}\n          data-cy={`${dataCy}_delete`}\n        />\n      )}\n      {item.needsDeletion && (\n        <Button\n          color=\"default\"\n          size=\"medium\"\n          onClick={handleDeleteClick}\n          className=\"vertical-center btn-only-icon\"\n          icon={RotateCw}\n          data-cy={`${dataCy}_undo_delete`}\n        />\n      )}\n    </div>\n  );\n\n  // if the item is new, we can just remove it, otherwise we need to toggle the needsDeletion flag\n  function handleDeleteClick() {\n    if (itemIndex < initialItemsCount) {\n      handleToggleNeedsDeletion(itemIndex, item);\n    } else {\n      handleRemoveItem(itemIndex, item);\n    }\n  }\n}\n","import {\n  GroupBase,\n  OptionsOrGroups,\n  SelectComponentsConfig,\n} from 'react-select';\nimport _ from 'lodash';\nimport { AriaAttributes } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Select as ReactSelect } from '@@/form-components/ReactSelect';\n\nexport interface Option<TValue> {\n  value: TValue;\n  label: string;\n  disabled?: boolean;\n}\n\ntype Options<TValue> = OptionsOrGroups<\n  Option<TValue>,\n  GroupBase<Option<TValue>>\n>;\n\ninterface SharedProps\n  extends AutomationTestingProps,\n    Pick<AriaAttributes, 'aria-label'> {\n  name?: string;\n  inputId?: string;\n  placeholder?: string;\n  disabled?: boolean;\n  isClearable?: boolean;\n  bindToBody?: boolean;\n  isLoading?: boolean;\n  noOptionsMessage?: () => string;\n}\n\ninterface MultiProps<TValue> extends SharedProps {\n  value: readonly TValue[];\n  onChange(value: readonly TValue[]): void;\n  options: Options<TValue>;\n  isMulti: true;\n  components?: SelectComponentsConfig<\n    Option<TValue>,\n    true,\n    GroupBase<Option<TValue>>\n  >;\n}\n\ninterface SingleProps<TValue> extends SharedProps {\n  value: TValue;\n  onChange(value: TValue | null): void;\n  options: Options<TValue>;\n  isMulti?: never;\n  components?: SelectComponentsConfig<\n    Option<TValue>,\n    false,\n    GroupBase<Option<TValue>>\n  >;\n}\n\ntype Props<TValue> = MultiProps<TValue> | SingleProps<TValue>;\n\nexport function PortainerSelect<TValue = string>(props: Props<TValue>) {\n  return isMultiProps(props) ? (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <MultiSelect {...props} />\n  ) : (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <SingleSelect {...props} />\n  );\n}\n\nfunction isMultiProps<TValue>(\n  props: Props<TValue>\n): props is MultiProps<TValue> {\n  return 'isMulti' in props && !!props.isMulti;\n}\n\nexport function SingleSelect<TValue = string>({\n  name,\n  options,\n  onChange,\n  value,\n  'data-cy': dataCy,\n  disabled,\n  inputId,\n  placeholder,\n  isClearable,\n  bindToBody,\n  components,\n  isLoading,\n  noOptionsMessage,\n  isMulti,\n  ...aria\n}: SingleProps<TValue>) {\n  const selectedValue =\n    value ||\n    (typeof value === 'number' && value === 0) ||\n    (typeof value === 'string' && value === '')\n      ? _.first(findSelectedOptions<TValue>(options, value))\n      : null;\n\n  return (\n    <ReactSelect<Option<TValue>>\n      name={name}\n      isClearable={isClearable}\n      getOptionLabel={(option) => option.label}\n      getOptionValue={(option) => String(option.value)}\n      options={options}\n      value={selectedValue}\n      onChange={(option) => onChange(option ? option.value : null)}\n      isOptionDisabled={(option) => !!option.disabled}\n      data-cy={dataCy}\n      inputId={inputId}\n      placeholder={placeholder}\n      isDisabled={disabled}\n      menuPortalTarget={bindToBody ? document.body : undefined}\n      components={components}\n      isLoading={isLoading}\n      noOptionsMessage={noOptionsMessage}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...aria}\n    />\n  );\n}\n\nfunction findSelectedOptions<TValue>(\n  options: Options<TValue>,\n  value: TValue | readonly TValue[]\n) {\n  const valueArr = Array.isArray(value) ? value : [value];\n\n  const values = _.compact(\n    options.flatMap((option) => {\n      if (isGroup(option)) {\n        return option.options.find((option) => valueArr.includes(option.value));\n      }\n\n      if (valueArr.includes(option.value)) {\n        return option;\n      }\n\n      return null;\n    })\n  );\n\n  return values;\n}\n\nexport function MultiSelect<TValue = string>({\n  name,\n  value,\n  onChange,\n  options,\n  'data-cy': dataCy,\n  inputId,\n  placeholder,\n  disabled,\n  isClearable,\n  bindToBody,\n  components,\n  isLoading,\n  noOptionsMessage,\n  ...aria\n}: Omit<MultiProps<TValue>, 'isMulti'>) {\n  const selectedOptions = findSelectedOptions(options, value);\n  return (\n    <ReactSelect\n      name={name}\n      isMulti\n      isClearable={isClearable}\n      getOptionLabel={(option) => option.label}\n      getOptionValue={(option) => String(option.value)}\n      isOptionDisabled={(option) => !!option.disabled}\n      options={options}\n      value={selectedOptions}\n      closeMenuOnSelect={false}\n      onChange={(newValue) => onChange(newValue.map((option) => option.value))}\n      data-cy={dataCy}\n      inputId={inputId}\n      placeholder={placeholder}\n      isDisabled={disabled}\n      menuPortalTarget={bindToBody ? document.body : undefined}\n      components={components}\n      isLoading={isLoading}\n      noOptionsMessage={noOptionsMessage}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...aria}\n    />\n  );\n}\n\nfunction isGroup<TValue>(\n  option: Option<TValue> | GroupBase<Option<TValue>>\n): option is GroupBase<Option<TValue>> {\n  return 'options' in option;\n}\n","import ReactSelectCreatable, {\n  CreatableProps as ReactSelectCreatableProps,\n} from 'react-select/creatable';\nimport ReactSelect, {\n  GroupBase,\n  Props as ReactSelectProps,\n} from 'react-select';\nimport clsx from 'clsx';\nimport { RefAttributes } from 'react';\nimport ReactSelectType from 'react-select/dist/declarations/src/Select';\n\nimport './ReactSelect.css';\nimport { AutomationTestingProps } from '@/types';\n\ninterface DefaultOption {\n  value: string;\n  label: string;\n}\n\ntype RegularProps<\n  Option = DefaultOption,\n  IsMulti extends boolean = false,\n  Group extends GroupBase<Option> = GroupBase<Option>,\n> = { isCreatable?: false; size?: 'sm' | 'md' } & ReactSelectProps<\n  Option,\n  IsMulti,\n  Group\n> &\n  RefAttributes<ReactSelectType<Option, IsMulti, Group>> &\n  AutomationTestingProps;\n\ntype CreatableProps<\n  Option = DefaultOption,\n  IsMulti extends boolean = false,\n  Group extends GroupBase<Option> = GroupBase<Option>,\n> = { isCreatable: true; size?: 'sm' | 'md' } & ReactSelectCreatableProps<\n  Option,\n  IsMulti,\n  Group\n> &\n  AutomationTestingProps;\n\ntype Props<\n  Option = DefaultOption,\n  IsMulti extends boolean = false,\n  Group extends GroupBase<Option> = GroupBase<Option>,\n> =\n  | CreatableProps<Option, IsMulti, Group>\n  | RegularProps<Option, IsMulti, Group>;\n\nexport function Select<\n  Option = DefaultOption,\n  IsMulti extends boolean = false,\n  Group extends GroupBase<Option> = GroupBase<Option>,\n>({\n  className,\n  isCreatable = false,\n  size = 'md',\n  ...props\n}: Props<Option, IsMulti, Group> & AutomationTestingProps) {\n  const Component = isCreatable ? ReactSelectCreatable : ReactSelect;\n\n  return (\n    <Component\n      className={clsx(className, 'portainer-selector-root', size)}\n      classNamePrefix=\"portainer-selector\"\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n    />\n  );\n}\n\nexport function Creatable<\n  Option = DefaultOption,\n  IsMulti extends boolean = false,\n  Group extends GroupBase<Option> = GroupBase<Option>,\n>({ className, ...props }: ReactSelectCreatableProps<Option, IsMulti, Group>) {\n  return (\n    <ReactSelectCreatable\n      className={clsx(className, 'portainer-selector-root')}\n      classNamePrefix=\"portainer-selector\"\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n    />\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-form-components-Slider-Slider-module__root\"};","import { ReactElement } from 'react';\nimport RcSlider from 'rc-slider';\nimport { HandleProps } from 'rc-slider/lib/Handles/Handle';\n\nimport { SliderTooltip } from '@@/Tip/SliderTooltip';\n\nimport styles from './Slider.module.css';\n\nimport 'rc-slider/assets/index.css';\n\nexport interface Props {\n  min: number;\n  max: number;\n  step: number;\n  value: number;\n  onChange: (value: number | number[]) => void;\n  dataCy?: string;\n  // true if you want to always show the tooltip\n  visibleTooltip?: boolean;\n  disabled?: boolean;\n}\n\nexport function Slider({\n  min,\n  max,\n  step,\n  value,\n  onChange,\n  dataCy,\n  visibleTooltip: visible,\n  disabled,\n}: Props) {\n  const marks = {\n    [min]: visible && value / max < 0.1 ? '' : translateMinValue(min),\n    [max]: visible && value / max > 0.9 ? '' : max.toString(),\n  };\n\n  return (\n    <div className={styles.root} data-cy={dataCy}>\n      <RcSlider\n        handleRender={visible ? sliderTooltip : undefined}\n        min={min}\n        max={max}\n        marks={marks}\n        step={step}\n        disabled={disabled}\n        value={value}\n        onChange={onChange}\n      />\n    </div>\n  );\n}\n\nfunction translateMinValue(value: number) {\n  if (value === 0) {\n    return 'unlimited';\n  }\n  return value.toString();\n}\n\nfunction sliderTooltip(\n  node: ReactElement<HandleProps>,\n  handleProps: { value: number }\n) {\n  return (\n    <SliderTooltip\n      value={translateMinValue(handleProps.value)}\n      child={node}\n      delay={0}\n    />\n  );\n}\n","import { Input } from '../Input';\n\nimport { Slider } from './Slider';\n\nexport function SliderWithInput({\n  value,\n  onChange,\n  max,\n  min = 0,\n  step = 1,\n  dataCy,\n  visibleTooltip = false,\n  inputId,\n}: {\n  value: number;\n  onChange: (value: number) => void;\n  max: number;\n  min?: number;\n  dataCy: string;\n  step?: number;\n  visibleTooltip?: boolean;\n  inputId?: string;\n}) {\n  return (\n    <div className=\"flex items-center gap-6\">\n      {max && (\n        <div className=\"mr-2 flex-1\">\n          <Slider\n            onChange={(value) =>\n              onChange(typeof value === 'number' ? value : value[0])\n            }\n            value={value}\n            min={min}\n            max={max}\n            step={step}\n            dataCy={`${dataCy}Slider`}\n            visibleTooltip={visibleTooltip}\n          />\n        </div>\n      )}\n      <Input\n        type=\"number\"\n        min=\"0\"\n        max={max}\n        value={value}\n        onChange={(e) => onChange(e.target.valueAsNumber)}\n        className=\"w-32\"\n        data-cy={`${dataCy}Input`}\n        id={inputId}\n      />\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-form-components-SwitchField-Switch-module__root\"};","import clsx from 'clsx';\n\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { AutomationTestingProps } from '@/types';\n\nimport { BEFeatureIndicator } from '@@/BEFeatureIndicator';\n\nimport './Switch.css';\n\nimport styles from './Switch.module.css';\n\nexport interface Props extends AutomationTestingProps {\n  checked: boolean;\n  id: string;\n  name: string;\n  onChange(checked: boolean, index?: number): void;\n\n  index?: number;\n  className?: string;\n  disabled?: boolean;\n  featureId?: FeatureId;\n}\n\nexport function Switch({\n  name,\n  checked,\n  id,\n  disabled,\n  'data-cy': dataCy,\n  onChange,\n  index,\n  featureId,\n  className,\n}: Props) {\n  const limitedToBE = isLimitedToBE(featureId);\n\n  return (\n    <>\n      <label\n        className={clsx('switch', className, styles.root, {\n          business: limitedToBE,\n          limited: limitedToBE,\n        })}\n        data-cy={dataCy}\n        aria-checked={checked}\n      >\n        <input\n          type=\"checkbox\"\n          name={name}\n          id={id}\n          checked={checked}\n          disabled={disabled || limitedToBE}\n          onChange={({ target: { checked } }) => onChange(checked, index)}\n        />\n        <span className=\"slider round before:content-['']\" />\n      </label>\n      {limitedToBE && <BEFeatureIndicator featureId={featureId} />}\n    </>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-form-components-SwitchField-SwitchField-module__root\"};","import clsx from 'clsx';\nimport uuid from 'uuid';\nimport { ComponentProps, PropsWithChildren, ReactNode } from 'react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { AutomationTestingProps } from '@/types';\n\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nimport styles from './SwitchField.module.css';\nimport { Switch } from './Switch';\n\nexport interface Props extends AutomationTestingProps {\n  label: string;\n  checked: boolean;\n  onChange(value: boolean, index?: number): void;\n\n  index?: number;\n  name?: string;\n  tooltip?: ComponentProps<typeof Tooltip>['message'];\n  setTooltipHtmlMessage?: ComponentProps<typeof Tooltip>['setHtmlMessage'];\n  labelClass?: string;\n  switchClass?: string;\n  fieldClass?: string;\n\n  disabled?: boolean;\n  featureId?: FeatureId;\n  valueExplanation?: ReactNode;\n}\n\nexport function SwitchField({\n  tooltip,\n  checked,\n  label,\n  index,\n  name = uuid(),\n  labelClass,\n  fieldClass,\n  'data-cy': dataCy,\n  disabled,\n  onChange,\n  featureId,\n  switchClass,\n  setTooltipHtmlMessage,\n  valueExplanation,\n}: PropsWithChildren<Props>) {\n  const toggleName = name ? `toggle_${name}` : '';\n\n  return (\n    <div className={clsx(styles.root, fieldClass)}>\n      <label\n        className={clsx('space-right control-label !p-0 text-left', labelClass)}\n        htmlFor={toggleName}\n      >\n        {label}\n        {tooltip && (\n          <Tooltip message={tooltip} setHtmlMessage={setTooltipHtmlMessage} />\n        )}\n      </label>\n      <Switch\n        className={clsx('space-right', switchClass)}\n        name={toggleName}\n        id={toggleName}\n        checked={checked}\n        disabled={disabled}\n        onChange={onChange}\n        index={index}\n        featureId={featureId}\n        data-cy={dataCy}\n      />\n      {valueExplanation && <span>{valueExplanation}</span>}\n    </div>\n  );\n}\n","import { useRef } from 'react';\nimport { TestContext, TestFunction } from 'yup';\n\nfunction cacheTest<T, TContext>(\n  asyncValidate: TestFunction<T, TContext>\n): TestFunction<T, TContext> {\n  let valid = true;\n  let value: T | undefined;\n\n  return async (newValue: T, context: TestContext<TContext>) => {\n    if (newValue !== value) {\n      value = newValue;\n\n      const response = await asyncValidate.call(context, newValue, context);\n      valid = !!response;\n    }\n    return valid;\n  };\n}\n\nexport function useCachedValidation<T, TContext>(\n  test: TestFunction<T, TContext>\n) {\n  const ref = useRef(cacheTest(test));\n\n  return ref.current;\n}\n","import { yupToFormErrors } from 'formik';\nimport { SchemaOf } from 'yup';\n\nexport async function validateForm<T>(\n  schemaBuilder: () => SchemaOf<T>,\n  formValues: T\n) {\n  const validationSchema = schemaBuilder();\n\n  try {\n    await validationSchema.validate(formValues, {\n      strict: true,\n      abortEarly: false,\n    });\n    return undefined;\n  } catch (error) {\n    return yupToFormErrors<T>(error);\n  }\n}\n","import _ from 'lodash';\nimport { AnySchema, TestContext, TypeOf, ValidationError } from 'yup';\nimport Lazy from 'yup/lib/Lazy';\nimport { AnyObject } from 'yup/lib/types';\n\n/**\n * Builds a uniqueness test for yup.\n * @param errorMessage The error message to display for duplicates.\n * @param path The path to the value to test for uniqueness (if the list item is an object).\n * @returns A function that can be passed to yup's `test` method.\n */\nexport function buildUniquenessTest<\n  T extends AnySchema | Lazy<AnySchema, AnySchema>,\n>(errorMessage: (errorIndex: number) => string, path = '') {\n  return (\n    list: Array<TypeOf<T>> | undefined,\n    testContext: TestContext<AnyObject>\n  ) => {\n    if (!list) {\n      return true;\n    }\n\n    const values = list.map(mapper);\n\n    // check for duplicates, adding the index of each duplicate to an array\n    const seen = new Set<TypeOf<T>>();\n    const duplicates: number[] = [];\n    values.forEach((value, i) => {\n      if (seen.has(value)) {\n        duplicates.push(i);\n      } else {\n        seen.add(value);\n      }\n    });\n\n    // create an array of yup validation errors for each duplicate\n    const errors = duplicates.map((i) => {\n      const error = new ValidationError(\n        errorMessage(i),\n        list[i],\n        `${testContext.path}[${i}]${path}`\n      );\n      return error;\n    });\n\n    if (errors.length > 0) {\n      throw new ValidationError(errors);\n    }\n\n    return true;\n  };\n\n  function mapper(a: TypeOf<T>) {\n    return path ? _.get(a, path) : a;\n  }\n}\n","import { mixed } from 'yup';\nimport { MixedSchema } from 'yup/lib/mixed';\n\ntype FileSchema = MixedSchema<File | undefined>;\n\nexport function file(): FileSchema {\n  return mixed();\n}\n\nexport function withFileSize(fileValidation: FileSchema, maxSize: number) {\n  return fileValidation.test(\n    'fileSize',\n    'Selected file is too big.',\n    validateFileSize\n  );\n\n  function validateFileSize(file?: File) {\n    if (!file) {\n      return true;\n    }\n\n    return file.size <= maxSize;\n  }\n}\n\nexport function withFileExtension(\n  fileValidation: FileSchema,\n  allowedExtensions: string[]\n) {\n  return fileValidation.test(\n    'fileExtension',\n    'Selected file has invalid extension.',\n    validateFileExtension\n  );\n\n  function validateFileExtension(file?: File) {\n    if (!file) {\n      return true;\n    }\n\n    const fileExtension = file.name.split('.').pop();\n\n    return allowedExtensions.includes(fileExtension || '');\n  }\n}\n","import { ReactNode, useEffect, useState, useRef } from 'react';\n\nimport { Button } from '@@/buttons';\n\nimport { ButtonOptions, ModalType } from './types';\nimport { openModal } from './open-modal';\nimport { Modal, OnSubmit } from './Modal';\n\nexport interface DialogOptions<T> {\n  title?: ReactNode;\n  message: ReactNode;\n  modalType?: ModalType;\n  buttons: Array<ButtonOptions<T>>;\n}\n\ninterface Props<T> extends DialogOptions<T> {\n  onSubmit: OnSubmit<T>;\n}\n\nexport function Dialog<T>({\n  buttons,\n  message,\n  title,\n  onSubmit,\n  modalType,\n}: Props<T>) {\n  const ariaLabel = requireString(title) || requireString(message) || 'Dialog';\n\n  const [count, setCount] = useState<number>(0);\n  const countRef = useRef(count);\n  countRef.current = count;\n\n  useEffect(() => {\n    let retFn;\n\n    // only countdown the first button with non-zero timeout\n    for (let i = 0; i < buttons.length; i++) {\n      const button = buttons[i];\n      if (button.timeout) {\n        setCount(button.timeout as number);\n\n        const intervalID = setInterval(() => {\n          const count = countRef.current;\n\n          setCount(count - 1);\n          if (count === 1) {\n            onSubmit(button.value);\n          }\n        }, 1000);\n\n        retFn = () => clearInterval(intervalID);\n\n        break;\n      }\n    }\n\n    return retFn;\n  }, [buttons, onSubmit]);\n\n  return (\n    <Modal onDismiss={() => onSubmit()} aria-label={ariaLabel}>\n      {title && <Modal.Header title={title} modalType={modalType} />}\n      <Modal.Body>{message}</Modal.Body>\n      <Modal.Footer>\n        {buttons.map((button, index) => (\n          <Button\n            onClick={() => onSubmit(button.value)}\n            className={button.className}\n            color={button.color}\n            key={index}\n            size=\"medium\"\n          >\n            {button.label} {button.timeout && count ? `(${count})` : null}\n          </Button>\n        ))}\n      </Modal.Footer>\n    </Modal>\n  );\n}\n\nfunction requireString(value: ReactNode) {\n  return typeof value === 'string' ? value : undefined;\n}\n\nexport async function openDialog<T>(options: DialogOptions<T>) {\n  return openModal<DialogOptions<T>, T>(Dialog, options);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"close\":\"app-react-components-modals-Modal-CloseButton-module__close\"};","import clsx from 'clsx';\n\nimport styles from './CloseButton.module.css';\n\nexport function CloseButton({\n  onClose,\n  className,\n}: {\n  onClose: () => void;\n  className?: string;\n}) {\n  return (\n    <button\n      type=\"button\"\n      className={clsx(\n        styles.close,\n        className,\n        'close-button absolute right-5 top-4'\n      )}\n      onClick={() => onClose()}\n    >\n      ×\n    </button>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"app-react-components-modals-Modal-Modal-module__overlay\",\"modalDialog\":\"app-react-components-modals-Modal-Modal-module__modal-dialog\",\"modalContent\":\"app-react-components-modals-Modal-Modal-module__modal-content\"};","import { DialogContent, DialogOverlay } from '@reach/dialog';\nimport clsx from 'clsx';\nimport { createContext, PropsWithChildren, useContext } from 'react';\n\nimport { CloseButton } from './CloseButton';\nimport styles from './Modal.module.css';\n\nconst Context = createContext<boolean | null>(null);\nContext.displayName = 'ModalContext';\n\nexport function useModalContext() {\n  const context = useContext(Context);\n  if (!context) {\n    throw new Error('should be nested under Modal');\n  }\n\n  return context;\n}\n\ninterface Props {\n  onDismiss?(): void;\n  'aria-label'?: string;\n  'aria-labelledby'?: string;\n  size?: 'md' | 'lg';\n  className?: string;\n}\n\nexport function Modal({\n  children,\n  onDismiss,\n  'aria-label': ariaLabel,\n  'aria-labelledby': ariaLabelledBy,\n  size = 'md',\n  className,\n}: PropsWithChildren<Props>) {\n  return (\n    <Context.Provider value>\n      <DialogOverlay\n        isOpen\n        className={clsx(\n          styles.overlay,\n          'z-50 flex items-center justify-center'\n        )}\n        onDismiss={onDismiss}\n        role=\"dialog\"\n      >\n        <DialogContent\n          aria-label={ariaLabel}\n          aria-labelledby={ariaLabelledBy}\n          className={clsx(styles.modalDialog, 'bg-transparent p-0', {\n            'w-[450px]': size === 'md',\n            'w-[700px]': size === 'lg',\n          })}\n        >\n          <div className={clsx(styles.modalContent, 'relative', className)}>\n            {children}\n            {onDismiss && <CloseButton onClose={onDismiss} />}\n          </div>\n        </DialogContent>\n      </DialogOverlay>\n    </Context.Provider>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"modalBody\":\"app-react-components-modals-Modal-ModalBody-module__modal-body\"};","import { Modal as MainComponent } from './Modal';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalFooter } from './ModalFooter';\n\nexport { ModalType, type OnSubmit } from './types';\n\ninterface WithSubComponents {\n  Header: typeof ModalHeader;\n  Body: typeof ModalBody;\n  Footer: typeof ModalFooter;\n}\n\nconst Modal = MainComponent as typeof MainComponent & WithSubComponents;\n\nModal.Header = ModalHeader;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n\nexport { Modal };\n","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\nimport { ModalType } from './types';\nimport { useModalContext } from './Modal';\nimport styles from './ModalHeader.module.css';\n\ninterface Props {\n  title: ReactNode;\n  modalType?: ModalType;\n}\n\nexport function ModalHeader({ title, modalType }: Props) {\n  useModalContext();\n\n  return (\n    <div className={styles.modalHeader}>\n      {modalType && (\n        <div\n          className={clsx({\n            [styles.backgroundError]: modalType === ModalType.Destructive,\n            [styles.backgroundWarning]: modalType === ModalType.Warn,\n          })}\n        />\n      )}\n      {typeof title === 'string' ? (\n        <h5 className=\"m-0 font-bold\">{title}</h5>\n      ) : (\n        title\n      )}\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"modalHeader\":\"app-react-components-modals-Modal-ModalHeader-module__modal-header\",\"backgroundError\":\"app-react-components-modals-Modal-ModalHeader-module__background-error\",\"backgroundWarning\":\"app-react-components-modals-Modal-ModalHeader-module__background-warning\"};","import { PropsWithChildren } from 'react';\n\nimport { useModalContext } from './Modal';\nimport styles from './ModalBody.module.css';\n\nexport function ModalBody({ children }: PropsWithChildren<unknown>) {\n  useModalContext();\n  return <div className={styles.modalBody}>{children}</div>;\n}\n","import { PropsWithChildren } from 'react';\n\nimport { useModalContext } from './Modal';\n\nexport function ModalFooter({ children }: PropsWithChildren<unknown>) {\n  useModalContext();\n\n  return (\n    <div className=\"flex justify-end gap-3 pt-3 [&>*]:flex-1\">{children}</div>\n  );\n}\n","export type OnSubmit<TResult> = (result?: TResult) => void;\n\nexport enum ModalType {\n  Warn = 'warning',\n  Destructive = 'error',\n}\n","import { ReactNode, useState } from 'react';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { ModalType, type ButtonOptions } from './types';\nimport { openModal } from './open-modal';\nimport { OnSubmit } from './Modal/types';\nimport { Dialog } from './Dialog';\nimport { buildCancelButton, buildConfirmButton } from './utils';\n\nfunction SwitchPrompt({\n  onSubmit,\n  title,\n  confirmButton = buildConfirmButton('OK'),\n  switchLabel,\n  modalType,\n  message,\n  defaultValue = false,\n}: {\n  onSubmit: OnSubmit<{ value: boolean }>;\n  title: string;\n  switchLabel: string;\n  confirmButton?: ButtonOptions<true>;\n  modalType?: ModalType;\n  message?: ReactNode;\n  defaultValue?: boolean;\n}) {\n  const [value, setValue] = useState(defaultValue);\n\n  return (\n    <Dialog\n      modalType={modalType}\n      title={title}\n      message={\n        <>\n          {message && <div className=\"mb-3\">{message}</div>}\n          <SwitchField\n            name=\"value\"\n            label={switchLabel}\n            checked={value}\n            onChange={setValue}\n          />\n        </>\n      }\n      onSubmit={(confirm) => onSubmit(confirm ? { value } : undefined)}\n      buttons={[buildCancelButton(), confirmButton]}\n    />\n  );\n}\n\nexport async function openSwitchPrompt(\n  title: string,\n  switchLabel: string,\n  {\n    confirmButton,\n    modalType,\n    message,\n    defaultValue,\n  }: {\n    confirmButton?: ButtonOptions<true>;\n    modalType?: ModalType;\n    message?: ReactNode;\n    defaultValue?: boolean;\n  } = {}\n) {\n  return openModal(SwitchPrompt, {\n    confirmButton,\n    title,\n    switchLabel,\n    modalType,\n    message,\n    defaultValue,\n  });\n}\n","import { ReactNode } from 'react';\n\nimport { openDialog, DialogOptions } from './Dialog';\nimport { OnSubmit, ModalType } from './Modal';\nimport { ButtonOptions } from './types';\nimport { buildCancelButton, buildConfirmButton } from './utils';\n\nexport type ConfirmCallback = OnSubmit<boolean>;\n\nexport interface ConfirmOptions\n  extends Omit<DialogOptions<boolean>, 'title' | 'buttons'> {\n  title: string;\n  confirmButton?: ButtonOptions<true>;\n  cancelButtonLabel?: string;\n}\n\nexport async function openConfirm({\n  confirmButton = buildConfirmButton(),\n  cancelButtonLabel,\n  ...options\n}: ConfirmOptions) {\n  const result = await openDialog({\n    ...options,\n    buttons: [buildCancelButton(cancelButtonLabel), confirmButton],\n  });\n  return !!result;\n}\n\nexport function confirm(options: ConfirmOptions) {\n  return openConfirm(options);\n}\n\nexport function confirmDestructive(options: Omit<ConfirmOptions, 'modalType'>) {\n  return openConfirm({\n    ...options,\n    modalType: ModalType.Destructive,\n  });\n}\n\nexport function confirmWebEditorDiscard() {\n  return openConfirm({\n    modalType: ModalType.Warn,\n    title: 'Are you sure?',\n    message:\n      'You currently have unsaved changes in the editor. Are you sure you want to leave?',\n    confirmButton: buildConfirmButton('Yes', 'danger'),\n  });\n}\n\nexport function confirmDelete(message: ReactNode) {\n  return confirmDestructive({\n    title: 'Are you sure?',\n    message,\n    confirmButton: buildConfirmButton('Remove', 'danger'),\n  });\n}\n\nexport async function confirmUpdate(\n  message: string,\n  callback: ConfirmCallback\n) {\n  const result = await openConfirm({\n    title: 'Are you sure?',\n    modalType: ModalType.Warn,\n    message,\n    confirmButton: buildConfirmButton('Update'),\n  });\n\n  callback(result);\n\n  return result;\n}\n\nexport function confirmChangePassword() {\n  return openConfirm({\n    modalType: ModalType.Warn,\n    title: 'Are you sure?',\n    message:\n      'You will be logged out after the password change. Do you want to change your password?',\n    confirmButton: buildConfirmButton('Change'),\n  });\n}\n","import { ComponentProps } from 'react';\n\nimport { Button } from '@@/buttons';\n\nexport interface ButtonOptions<TValue = undefined> {\n  label: string;\n  className?: string;\n  color?: ComponentProps<typeof Button>['color'];\n  value?: TValue;\n  timeout?: number;\n}\n\nexport interface ButtonsOptions<T> {\n  confirm: ButtonOptions<T>;\n  cancel?: ButtonOptions<T>;\n}\n\nexport enum ModalType {\n  Warn = 'warning',\n  Destructive = 'error',\n}\n","import { ComponentType } from 'react';\nimport { render, unmountComponentAtNode } from 'react-dom';\n\nimport '@reach/dialog/styles.css';\nimport { OnSubmit } from './Modal/types';\n\nlet counter = 0;\nexport async function openModal<TProps, TResult>(\n  Modal: ComponentType<\n    { onSubmit: OnSubmit<TResult> } & Omit<TProps, 'onSubmit'>\n  >,\n  props: TProps = {} as TProps\n) {\n  const modal = document.createElement('div');\n  counter += 1;\n  modal.id = `dialog-${counter}`;\n  document.body.appendChild(modal);\n\n  const result = await new Promise<TResult | undefined>((resolve) => {\n    render(\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      <Modal {...props} onSubmit={(result) => resolve(result)} />,\n      modal\n    );\n  });\n\n  unmountComponentAtNode(modal);\n  document.body.removeChild(modal);\n\n  return result;\n}\n","import { ComponentProps } from 'react';\n\nimport { Button } from '@@/buttons';\n\nimport { ButtonOptions } from './types';\n\nexport function buildConfirmButton(\n  label = 'Confirm',\n  color: ComponentProps<typeof Button>['color'] = 'primary',\n  timeout = 0\n): ButtonOptions<true> {\n  return { label, color, value: true, timeout };\n}\n\nexport function buildCancelButton(label = 'Cancel'): ButtonOptions<false> {\n  return {\n    label,\n    color: 'default',\n    value: false,\n  };\n}\n","export const STACK_NAME_VALIDATION_REGEX = '^[-_a-z0-9]+$';\n\nexport const BROWSER_OS_PLATFORM = getOs();\n\nfunction getOs() {\n  const { userAgent } = navigator;\n\n  if (userAgent.includes('Windows')) {\n    return 'win';\n  }\n\n  return userAgent.includes('Mac') ? 'mac' : 'lin';\n}\n","import { Loader } from 'lucide-react';\n\nimport UpdatesAvailable from '@/assets/ico/icon_updates-available.svg?c';\nimport UpToDate from '@/assets/ico/icon_up-to-date.svg?c';\nimport UpdatesUnknown from '@/assets/ico/icon_updates-unknown.svg?c';\n\nimport { ImageStatus } from './types';\n\nexport function statusIcon(status: ImageStatus) {\n  switch (status.Status) {\n    case 'outdated':\n      return UpdatesAvailable;\n    case 'updated':\n      return UpToDate;\n    case 'processing':\n      return Loader;\n    default:\n      return UpdatesUnknown;\n  }\n}\n","type Status = 'outdated' | 'updated' | 'inprocess' | string;\n\nexport enum ResourceType {\n  CONTAINER,\n  SERVICE,\n}\n\nexport interface ImageStatus {\n  Status: Status;\n  Message: string;\n}\n\nexport type ResourceID = string;\n","import { CellContext, ColumnDef } from '@tanstack/react-table';\nimport { Eye, EyeOff, Users } from 'lucide-react';\n\nimport { ResourceControlOwnership } from '@/react/portainer/access-control/types';\n\nimport { Icon } from '@@/Icon';\n\nexport interface IResource {\n  ResourceControl?: {\n    Ownership: ResourceControlOwnership;\n  };\n}\n\nexport function createOwnershipColumn<D extends IResource>(\n  enableHiding = true\n): ColumnDef<D, ResourceControlOwnership> {\n  return {\n    accessorFn: (row) =>\n      row.ResourceControl?.Ownership || ResourceControlOwnership.ADMINISTRATORS,\n    header: 'Ownership',\n    id: 'ownership',\n    cell: OwnershipCell,\n    enableHiding,\n  };\n\n  function OwnershipCell({\n    getValue,\n  }: CellContext<D, ResourceControlOwnership>) {\n    const value = getValue();\n\n    return (\n      <span className=\"flex items-center gap-2\">\n        <Icon icon={ownershipIcon(value)} className=\"space-right\" />\n        {value}\n      </span>\n    );\n  }\n}\n\nexport function ownershipIcon(ownership: ResourceControlOwnership) {\n  switch (ownership) {\n    case ResourceControlOwnership.PRIVATE:\n      return EyeOff;\n    case ResourceControlOwnership.ADMINISTRATORS:\n      return EyeOff;\n    case ResourceControlOwnership.RESTRICTED:\n      return Users;\n    default:\n      return Eye;\n  }\n}\n","import { ModalType } from '@@/modals';\nimport { openSwitchPrompt } from '@@/modals/SwitchPrompt';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport async function confirmContainerDeletion(title: string) {\n  const result = await openSwitchPrompt(\n    title,\n    'Automatically remove non-persistent volumes',\n    {\n      confirmButton: buildConfirmButton('Remove', 'danger'),\n      modalType: ModalType.Destructive,\n    }\n  );\n\n  return result ? { removeVolumes: result.value } : undefined;\n}\n","import { RawAxiosRequestHeaders } from 'axios';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport PortainerError from '@/portainer/error';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { genericHandler } from '@/docker/rest/response/handlers';\n\nimport { ContainerId } from './types';\n\nexport async function startContainer(\n  environmentId: EnvironmentId,\n  id: ContainerId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  try {\n    await axios.post<void>(\n      urlBuilder(environmentId, id, 'start'),\n      {},\n      { transformResponse: genericHandler, headers }\n    );\n  } catch (e) {\n    throw parseAxiosError(e, 'Failed starting container');\n  }\n}\n\nexport async function stopContainer(\n  endpointId: EnvironmentId,\n  id: ContainerId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  await axios.post<void>(urlBuilder(endpointId, id, 'stop'), {}, { headers });\n}\n\nexport async function recreateContainer(\n  endpointId: EnvironmentId,\n  id: ContainerId,\n  pullImage: boolean,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  await axios.post<void>(\n    `/docker/${endpointId}/containers/${id}/recreate`,\n    {\n      PullImage: pullImage,\n    },\n    { headers }\n  );\n}\n\nexport async function restartContainer(\n  endpointId: EnvironmentId,\n  id: ContainerId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  await axios.post<void>(\n    urlBuilder(endpointId, id, 'restart'),\n    {},\n    { headers }\n  );\n}\n\nexport async function killContainer(\n  endpointId: EnvironmentId,\n  id: ContainerId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  await axios.post<void>(urlBuilder(endpointId, id, 'kill'), {}, { headers });\n}\n\nexport async function pauseContainer(\n  endpointId: EnvironmentId,\n  id: ContainerId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  await axios.post<void>(urlBuilder(endpointId, id, 'pause'), {}, { headers });\n}\n\nexport async function resumeContainer(\n  endpointId: EnvironmentId,\n  id: ContainerId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  await axios.post<void>(\n    urlBuilder(endpointId, id, 'unpause'),\n    {},\n    { headers }\n  );\n}\n\nexport async function renameContainer(\n  endpointId: EnvironmentId,\n  id: ContainerId,\n  name: string,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  await axios.post<void>(\n    urlBuilder(endpointId, id, 'rename'),\n    {},\n    { params: { name }, transformResponse: genericHandler, headers }\n  );\n}\n\nexport async function removeContainer(\n  endpointId: EnvironmentId,\n  containerId: string,\n  {\n    nodeName,\n    removeVolumes,\n  }: { removeVolumes?: boolean; nodeName?: string } = {}\n) {\n  try {\n    const headers: RawAxiosRequestHeaders = {};\n\n    if (nodeName) {\n      headers['X-PortainerAgent-Target'] = nodeName;\n    }\n\n    const { data } = await axios.delete<null | { message: string }>(\n      urlBuilder(endpointId, containerId),\n      {\n        params: { v: removeVolumes ? 1 : 0, force: true },\n        transformResponse: genericHandler,\n        headers,\n      }\n    );\n\n    if (data && data.message) {\n      throw new PortainerError(data.message);\n    }\n  } catch (e) {\n    throw new PortainerError('Unable to remove container', e as Error);\n  }\n}\n\nexport function urlBuilder(\n  endpointId: EnvironmentId,\n  id?: ContainerId,\n  action?: string\n) {\n  let url = `/endpoints/${endpointId}/docker/containers`;\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\n\nimport { DockerContainerResponse } from './types/response';\n\nexport enum ContainerStatus {\n  Paused = 'paused',\n  Stopped = 'stopped',\n  Created = 'created',\n  Healthy = 'healthy',\n  Unhealthy = 'unhealthy',\n  Starting = 'starting',\n  Running = 'running',\n  Dead = 'dead',\n  Exited = 'exited',\n}\n\nexport type QuickAction = 'attach' | 'exec' | 'inspect' | 'logs' | 'stats';\n\nexport interface Port {\n  host?: string;\n  public: number;\n  private: number;\n}\n\nexport type ContainerId = string;\n\ntype DecoratedDockerContainer = {\n  NodeName: string;\n  ResourceControl?: ResourceControlViewModel;\n  IP: string;\n  StackName?: string;\n  Status: ContainerStatus;\n  Ports: Port[];\n  StatusText: string;\n  Image: string;\n  Gpus: string;\n};\n\nexport type DockerContainer = DecoratedDockerContainer &\n  Omit<DockerContainerResponse, keyof DecoratedDockerContainer>;\n","import { ModalType } from '@@/modals';\nimport { ConfirmCallback, openConfirm } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport async function confirmImageExport(callback: ConfirmCallback) {\n  const result = await openConfirm({\n    modalType: ModalType.Warn,\n    title: 'Caution',\n    message:\n      'The export may take several minutes, do not navigate away whilst the export is in progress.',\n    confirmButton: buildConfirmButton('Continue'),\n  });\n\n  callback(result);\n}\n","import _ from 'lodash';\n\nimport { trimSHA } from '@/docker/filters/utils';\nimport {\n  Registry,\n  RegistryTypes,\n} from '@/react/portainer/registries/types/registry';\n\nimport { DockerImage } from './types';\nimport { DockerImageResponse } from './types/response';\n\nexport function parseViewModel(response: DockerImageResponse): DockerImage {\n  return {\n    ...response,\n    Used: false,\n    RepoTags:\n      response.RepoTags ??\n      response.RepoDigests.map((digest) => `${trimSHA(digest)}:<none>`),\n  };\n}\n\nexport function getUniqueTagListFromImages(\n  images: Array<{ RepoTags?: string[] }>\n) {\n  return _.uniq(\n    images.flatMap((image) =>\n      image.RepoTags\n        ? image.RepoTags.filter((item) => !item.includes('<none>'))\n        : []\n    )\n  );\n}\n\nexport function imageContainsURL(image: string) {\n  const split = image.split('/');\n  const url = split[0];\n  if (split.length > 1) {\n    return url.includes('.') || url.includes(':');\n  }\n  return false;\n}\n\nexport function buildImageFullURIFromModel(imageModel: {\n  UseRegistry: boolean;\n  Registry?: Registry;\n  Image: string;\n}) {\n  const registry = imageModel.UseRegistry ? imageModel.Registry : undefined;\n  return buildImageFullURI(imageModel.Image, registry);\n}\n\n/**\n * builds the complete uri for an image based on its registry\n */\nexport function buildImageFullURI(image: string, registry?: Registry) {\n  if (!registry) {\n    return ensureTag(image);\n  }\n\n  const imageName = buildImageFullURIWithRegistry(image, registry);\n\n  return ensureTag(imageName);\n\n  function ensureTag(image: string, defaultTag = 'latest') {\n    return image.includes(':') ? image : `${image}:${defaultTag}`;\n  }\n}\n\nfunction buildImageFullURIWithRegistry(image: string, registry: Registry) {\n  switch (registry.Type) {\n    case RegistryTypes.GITHUB:\n      return buildImageURIForGithub(image, registry);\n    case RegistryTypes.GITLAB:\n      return buildImageURIForGitLab(image, registry);\n    case RegistryTypes.QUAY:\n      return buildImageURIForQuay(image, registry);\n    case RegistryTypes.ANONYMOUS:\n      return image;\n    default:\n      return buildImageURIForOtherRegistry(image, registry);\n  }\n\n  function buildImageURIForGithub(image: string, registry: Registry) {\n    const imageName = image.startsWith('/') ? image.slice(1) : image;\n\n    const namespace = registry.Github.UseOrganisation\n      ? registry.Github.OrganisationName\n      : registry.Username;\n    return `${registry.URL}/${namespace}/${imageName}`;\n  }\n\n  function buildImageURIForGitLab(image: string, registry: Registry) {\n    const slash = image.startsWith(':') ? '' : '/';\n    return `${registry.URL}/${registry.Gitlab.ProjectPath}${slash}${image}`;\n  }\n\n  function buildImageURIForQuay(image: string, registry: Registry) {\n    const name = registry.Quay.UseOrganisation\n      ? registry.Quay.OrganisationName\n      : registry.Username;\n    const url = registry.URL ? `${registry.URL}/` : '';\n    return `${url}${name}/${image}`;\n  }\n\n  function buildImageURIForOtherRegistry(image: string, registry: Registry) {\n    const url = registry.URL ? `${registry.URL}/` : '';\n    return url + image;\n  }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function buildUrl(\n  environmentId: EnvironmentId,\n  action: string,\n  subAction = ''\n) {\n  let url = `/endpoints/${environmentId}/docker/${action}`;\n\n  if (subAction) {\n    url += `/${subAction}`;\n  }\n\n  return url;\n}\n","import { useQuery } from 'react-query';\nimport { SystemInfo } from 'docker-types/generated/1.41';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from './build-url';\n\nexport async function getInfo(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<SystemInfo>(\n      buildUrl(environmentId, 'info')\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve version');\n  }\n}\n\nexport function useInfo<TSelect = SystemInfo>(\n  environmentId: EnvironmentId,\n  select?: (info: SystemInfo) => TSelect\n) {\n  return useQuery(\n    ['environment', environmentId, 'docker', 'info'],\n    () => getInfo(environmentId),\n    {\n      select,\n    }\n  );\n}\n\nexport function useIsWindows(environmentId: EnvironmentId) {\n  const query = useInfo(environmentId, (info) => info.OSType === 'windows');\n\n  return !!query.data;\n}\n\nexport function useIsStandAlone(environmentId: EnvironmentId) {\n  const query = useInfo(environmentId, (info) => !info.Swarm?.NodeID);\n\n  return !!query.data;\n}\n\nexport function useIsSwarm(environmentId: EnvironmentId) {\n  const query = useInfo(environmentId, (info) => !!info.Swarm?.NodeID);\n\n  return !!query.data;\n}\n\nexport function useSystemLimits(environmentId: EnvironmentId) {\n  const infoQuery = useInfo(environmentId);\n\n  const maxCpu = infoQuery.data?.NCPU || 32;\n  const maxMemory = infoQuery.data?.MemTotal\n    ? Math.floor(infoQuery.data.MemTotal / 1000 / 1000)\n    : 32768;\n\n  return { maxCpu, maxMemory };\n}\n","import { useQuery } from 'react-query';\nimport { SystemVersion } from 'docker-types/generated/1.41';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from './build-url';\n\nexport async function getVersion(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<SystemVersion>(\n      buildUrl(environmentId, 'version')\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve version');\n  }\n}\n\nexport function useVersion<TSelect = SystemVersion>(\n  environmentId: EnvironmentId,\n  select?: (info: SystemVersion) => TSelect\n) {\n  return useQuery(\n    ['environment', environmentId, 'docker', 'version'],\n    () => getVersion(environmentId),\n    {\n      select,\n    }\n  );\n}\n\nexport function useApiVersion(environmentId: EnvironmentId) {\n  const query = useVersion(environmentId, (info) => info.ApiVersion);\n  return query.data ? parseFloat(query.data) : 0;\n}\n","import { Service } from 'docker-types/generated/1.41';\n\nimport { ServiceUpdateConfig } from '../queries/useUpdateServiceMutation';\n\nexport function convertServiceToConfig(service: Service): ServiceUpdateConfig {\n  return {\n    Name: service.Spec?.Name || '',\n    Labels: service.Spec?.Labels || {},\n    TaskTemplate: service.Spec?.TaskTemplate || {},\n    Mode: service.Spec?.Mode || {},\n    UpdateConfig: service.Spec?.UpdateConfig || {},\n    Networks: service.Spec?.Networks || [],\n    EndpointSpec: service.Spec?.EndpointSpec || {},\n  };\n}\n","import { openSwitchPrompt } from '@@/modals/SwitchPrompt';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport async function confirmServiceForceUpdate(message: string) {\n  const result = await openSwitchPrompt('Are you sure?', 'Re-pull image', {\n    message,\n    confirmButton: buildConfirmButton('Update'),\n    modalType: ModalType.Warn,\n  });\n\n  return result ? { pullLatest: result.value } : undefined;\n}\n","import { number, object, SchemaOf } from 'yup';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\n\nimport { Options, useIntervalOptions } from './useIntervalOptions';\n\nexport const EDGE_ASYNC_INTERVAL_USE_DEFAULT = -1;\n\nexport interface EdgeAsyncIntervalsValues {\n  PingInterval: number;\n  SnapshotInterval: number;\n  CommandInterval: number;\n}\n\nexport const options: Options = [\n  { label: 'Use default interval', value: -1, isDefault: true },\n  {\n    value: 0,\n    label: 'disabled',\n  },\n  {\n    value: 60,\n    label: '1 minute',\n  },\n  {\n    value: 60 * 60,\n    label: '1 hour',\n  },\n  {\n    value: 24 * 60 * 60,\n    label: '1 day',\n  },\n  {\n    value: 7 * 24 * 60 * 60,\n    label: '1 week',\n  },\n];\n\nconst defaultFieldSettings = {\n  ping: {\n    label: 'Ping interval',\n    tooltip:\n      'Interval used by this Edge agent to check in with the Portainer instance',\n  },\n  snapshot: {\n    label: 'Snapshot interval',\n    tooltip: 'Interval used by this Edge agent to snapshot the agent state',\n  },\n  command: {\n    label: 'Command interval',\n    tooltip:\n      'Interval used by this Edge agent to fetch commands from the Portainer instance',\n  },\n};\n\ninterface Props {\n  values: EdgeAsyncIntervalsValues;\n  isDefaultHidden?: boolean;\n  readonly?: boolean;\n  fieldSettings?: typeof defaultFieldSettings;\n  onChange(value: EdgeAsyncIntervalsValues): void;\n}\n\nexport function EdgeAsyncIntervalsForm({\n  onChange,\n  values,\n  isDefaultHidden = false,\n  readonly = false,\n  fieldSettings = defaultFieldSettings,\n}: Props) {\n  const pingIntervalOptions = useIntervalOptions(\n    'Edge.PingInterval',\n    options,\n    isDefaultHidden\n  );\n\n  const snapshotIntervalOptions = useIntervalOptions(\n    'Edge.SnapshotInterval',\n    options,\n    isDefaultHidden\n  );\n\n  const commandIntervalOptions = useIntervalOptions(\n    'Edge.CommandInterval',\n    options,\n    isDefaultHidden\n  );\n\n  return (\n    <>\n      <FormControl\n        inputId=\"edge_checkin_ping\"\n        label={fieldSettings.ping.label}\n        tooltip={fieldSettings.ping.tooltip}\n      >\n        <Select\n          value={values.PingInterval}\n          name=\"PingInterval\"\n          onChange={handleChange}\n          options={pingIntervalOptions}\n          disabled={readonly}\n        />\n      </FormControl>\n\n      <FormControl\n        inputId=\"edge_checkin_snapshot\"\n        label={fieldSettings.snapshot.label}\n        tooltip={fieldSettings.snapshot.tooltip}\n      >\n        <Select\n          value={values.SnapshotInterval}\n          name=\"SnapshotInterval\"\n          onChange={handleChange}\n          options={snapshotIntervalOptions}\n          disabled={readonly}\n        />\n      </FormControl>\n\n      <FormControl\n        inputId=\"edge_checkin_command\"\n        label={fieldSettings.command.label}\n        tooltip={fieldSettings.command.tooltip}\n      >\n        <Select\n          value={values.CommandInterval}\n          name=\"CommandInterval\"\n          onChange={handleChange}\n          options={commandIntervalOptions}\n          disabled={readonly}\n        />\n      </FormControl>\n    </>\n  );\n\n  function handleChange(e: React.ChangeEvent<HTMLSelectElement>) {\n    onChange({ ...values, [e.target.name]: parseInt(e.target.value, 10) });\n  }\n}\n\nconst intervals = options.map((option) => option.value);\n\nexport function edgeAsyncIntervalsValidation(): SchemaOf<EdgeAsyncIntervalsValues> {\n  return object({\n    PingInterval: number().required('This field is required.').oneOf(intervals),\n    SnapshotInterval: number()\n      .required('This field is required.')\n      .oneOf(intervals),\n    CommandInterval: number()\n      .required('This field is required.')\n      .oneOf(intervals),\n  });\n}\n","import { FormControl, Size } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\n\nimport { Options, useIntervalOptions } from './useIntervalOptions';\n\ninterface Props {\n  value: number;\n  onChange(value: number): void;\n  isDefaultHidden?: boolean;\n  label?: string;\n  tooltip?: string;\n  readonly?: boolean;\n  size?: Size;\n}\n\nexport const checkinIntervalOptions: Options = [\n  { label: 'Use default interval', value: 0, isDefault: true },\n  {\n    label: '5 seconds',\n    value: 5,\n  },\n  {\n    label: '10 seconds',\n    value: 10,\n  },\n  {\n    label: '30 seconds',\n    value: 30,\n  },\n  { label: '5 minutes', value: 300 },\n  { label: '1 hour', value: 3600 },\n  { label: '1 day', value: 86400 },\n];\n\nexport function EdgeCheckinIntervalField({\n  value,\n  readonly,\n  onChange,\n  isDefaultHidden = false,\n  label = 'Poll frequency',\n  tooltip = 'Interval used by this Edge agent to check in with the Portainer instance. Affects Edge environment management and Edge compute features.',\n  size = 'small',\n}: Props) {\n  const options = useIntervalOptions(\n    'EdgeAgentCheckinInterval',\n    checkinIntervalOptions,\n    isDefaultHidden\n  );\n\n  return (\n    <FormControl\n      inputId=\"edge_checkin\"\n      label={label}\n      tooltip={tooltip}\n      size={size}\n    >\n      <Select\n        value={value}\n        onChange={(e) => {\n          onChange(parseInt(e.currentTarget.value, 10));\n        }}\n        options={options}\n        disabled={readonly}\n        id=\"edge_checkin\"\n      />\n    </FormControl>\n  );\n}\n","import { LayoutGrid } from 'lucide-react';\n\nimport Linux from '@/assets/ico/linux.svg?c';\n\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { Icon } from '@@/Icon';\n\nimport { OS } from './types';\n\ninterface Props {\n  value: OS;\n  onChange(value: OS): void;\n}\n\nexport function OsSelector({ onChange, value }: Props) {\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <ButtonSelector\n          size=\"small\"\n          value={value}\n          onChange={(os: OS) => onChange(os)}\n          options={[\n            {\n              value: 'linux',\n              label: (\n                <>\n                  <Icon icon={Linux} className=\"mr-1\" />\n                  Linux\n                </>\n              ),\n            },\n            {\n              value: 'win',\n              label: (\n                <>\n                  <Icon icon={LayoutGrid} className=\"mr-1\" />\n                  Windows\n                </>\n              ),\n            },\n          ]}\n        />\n      </div>\n    </div>\n  );\n}\n","import { useEffect } from 'react';\n\nimport { useAgentDetails } from '@/react/portainer/environments/queries/useAgentDetails';\n\nimport { Code } from '@@/Code';\nimport { CopyButton } from '@@/buttons/CopyButton';\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nimport { ScriptFormValues, Platform } from './types';\nimport { CommandTab } from './scripts';\n\ninterface Props {\n  values: ScriptFormValues;\n  edgeKey: string;\n  edgeId?: string;\n  commands: CommandTab[];\n  platform?: Platform;\n  onPlatformChange?(platform: Platform): void;\n  asyncMode?: boolean;\n}\n\nexport function ScriptTabs({\n  values,\n  edgeKey,\n  edgeId,\n  commands,\n  platform,\n  asyncMode = false,\n  onPlatformChange = () => {},\n}: Props) {\n  const agentDetails = useAgentDetails();\n\n  useEffect(() => {\n    if (commands.length > 0 && commands.every((p) => p.id !== platform)) {\n      onPlatformChange(commands[0].id);\n    }\n  }, [platform, onPlatformChange, commands]);\n\n  if (!agentDetails) {\n    return null;\n  }\n\n  const { agentSecret, agentVersion } = agentDetails;\n\n  const options = commands.map((c) => {\n    const cmd = c.command(\n      agentVersion,\n      edgeKey,\n      values,\n      asyncMode,\n      edgeId,\n      agentSecret\n    );\n\n    return {\n      id: c.id,\n      label: c.label,\n      children: (\n        <>\n          <Code>{cmd}</Code>\n          <div className=\"mt-2\">\n            <CopyButton copyText={cmd}>Copy</CopyButton>\n          </div>\n        </>\n      ),\n    };\n  });\n\n  return (\n    <NavContainer>\n      <NavTabs\n        selectedId={platform}\n        options={options}\n        onSelect={(id: Platform) => onPlatformChange(id)}\n      />\n    </NavContainer>\n  );\n}\n","import { useFormikContext, Field } from 'formik';\n\nimport { GroupField } from '@/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/GroupsField';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { TagSelector } from '@@/TagSelector';\n\nimport { EdgeGroupsSelector } from '../../edge-stacks/components/EdgeGroupsSelector';\n\nimport { ScriptFormValues } from './types';\n\ninterface Props {\n  hideIdGetter?: boolean;\n  showMetaFields?: boolean;\n}\n\nexport function EdgeScriptSettingsFieldset({\n  hideIdGetter,\n  showMetaFields,\n}: Props) {\n  const { values, setFieldValue, errors } =\n    useFormikContext<ScriptFormValues>();\n\n  return (\n    <>\n      {showMetaFields && (\n        <>\n          <GroupField name=\"group\" />\n\n          <EdgeGroupsSelector\n            value={values.edgeGroupsIds}\n            onChange={(value) => setFieldValue('edgeGroupsIds', value)}\n            isGroupVisible={(group) => !group.Dynamic}\n            horizontal\n          />\n\n          <TagSelector\n            value={values.tagsIds}\n            onChange={(value) => setFieldValue('tagsIds', value)}\n          />\n        </>\n      )}\n\n      {!hideIdGetter && (\n        <>\n          <FormControl\n            label=\"Edge ID Generator\"\n            tooltip=\"Enter a single-line bash command that generates a unique Edge ID. For example, you can use 'uuidgen' or 'uuid'. The result will be assigned to the 'PORTAINER_EDGE_ID' environment variable.\"\n            inputId=\"edge-id-generator-input\"\n            required\n            errors={errors.edgeIdGenerator}\n          >\n            <Input\n              type=\"text\"\n              name=\"edgeIdGenerator\"\n              value={values.edgeIdGenerator}\n              id=\"edge-id-generator-input\"\n              onChange={(e) => setFieldValue(e.target.name, e.target.value)}\n            />\n          </FormControl>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\">\n                <code>PORTAINER_EDGE_ID</code> environment variable is required\n                to successfully connect the edge agent to Portainer\n              </TextTip>\n            </div>\n          </div>\n        </>\n      )}\n\n      <FormControl\n        label=\"Environment variables\"\n        tooltip=\"Comma separated list of environment variables that will be sourced from the host where the agent is deployed.\"\n        inputId=\"env-variables-input\"\n      >\n        <Field\n          name=\"envVars\"\n          as={Input}\n          placeholder=\"foo=bar,myvar\"\n          id=\"env-variables-input\"\n        />\n      </FormControl>\n\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            checked={values.allowSelfSignedCertificates}\n            onChange={(value) =>\n              setFieldValue('allowSelfSignedCertificates', value)\n            }\n            label=\"Allow self-signed certs\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            tooltip=\"When allowing self-signed certificates the edge agent will ignore the domain validation when connecting to Portainer via HTTPS\"\n          />\n        </div>\n      </div>\n    </>\n  );\n}\n","import { Formik } from 'formik';\nimport { PropsWithChildren } from 'react';\n\nimport { OsSelector } from './OsSelector';\nimport { CommandTab } from './scripts';\nimport { ScriptTabs } from './ScriptTabs';\nimport { EdgeScriptSettingsFieldset } from './EdgeScriptSettingsFieldset';\nimport { validationSchema } from './EdgeScriptForm.validation';\nimport { ScriptFormValues, OS, Platform, EdgeInfo } from './types';\n\nconst edgePropertiesFormInitialValues: ScriptFormValues = {\n  allowSelfSignedCertificates: true,\n  envVars: '',\n  os: 'linux' as OS,\n  platform: 'k8s' as Platform,\n  authEnabled: true,\n  tlsEnabled: false,\n  edgeGroupsIds: [],\n  group: 0,\n  tagsIds: [],\n  edgeIdGenerator: '',\n};\n\ninterface Props {\n  edgeInfo: EdgeInfo;\n  commands: CommandTab[] | Partial<Record<OS, CommandTab[]>>;\n  asyncMode?: boolean;\n  showMetaFields?: boolean;\n}\n\nexport function EdgeScriptForm({\n  edgeInfo,\n  commands,\n  asyncMode,\n  showMetaFields,\n  children,\n}: PropsWithChildren<Props>) {\n  const showOsSelector = !(commands instanceof Array);\n\n  return (\n    <div className=\"form-horizontal\">\n      <Formik\n        initialValues={edgePropertiesFormInitialValues}\n        validationSchema={() => validationSchema()}\n        onSubmit={() => {}}\n        validateOnMount\n      >\n        {({ values, setFieldValue }) => (\n          <>\n            {children}\n\n            <EdgeScriptSettingsFieldset\n              hideIdGetter={edgeInfo.id !== undefined}\n              showMetaFields={showMetaFields}\n            />\n            <div className=\"mt-8\">\n              {showOsSelector && (\n                <OsSelector\n                  value={values.os}\n                  onChange={(value) => setFieldValue('os', value)}\n                />\n              )}\n              <ScriptTabs\n                edgeId={edgeInfo.id}\n                edgeKey={edgeInfo.key}\n                values={values}\n                commands={showOsSelector ? commands[values.os] || [] : commands}\n                platform={values.platform}\n                onPlatformChange={(platform) =>\n                  setFieldValue('platform', platform)\n                }\n                asyncMode={asyncMode}\n              />\n            </div>\n          </>\n        )}\n      </Formik>\n    </div>\n  );\n}\n","import { object, boolean, string } from 'yup';\n\nexport function validationSchema() {\n  return object().shape({\n    allowSelfSignedCertificates: boolean(),\n    envVars: string(),\n    edgeIdGenerator: string()\n      .required('Edge ID Generator is required')\n      .test(\n        'valid edge id generator',\n        'edge id generator cannot be empty',\n        (value) => !!(value && value.length)\n      ),\n  });\n}\n","import _ from 'lodash';\n\nimport { getAgentShortVersion } from '@/portainer/views/endpoints/helpers';\n\nimport { ScriptFormValues, Platform } from './types';\n\ntype CommandGenerator = (\n  agentVersion: string,\n  edgeKey: string,\n  properties: ScriptFormValues,\n  useAsyncMode: boolean,\n  edgeId?: string,\n  agentSecret?: string\n) => string;\n\nexport type CommandTab = {\n  id: Platform;\n  label: string;\n  command: CommandGenerator;\n};\n\nexport const commandsTabs: Record<string, CommandTab> = {\n  k8sLinux: {\n    id: 'k8s',\n    label: 'Kubernetes',\n    command: buildLinuxKubernetesCommand,\n  },\n  swarmLinux: {\n    id: 'swarm',\n    label: 'Docker Swarm',\n    command: buildLinuxSwarmCommand,\n  },\n  standaloneLinux: {\n    id: 'standalone',\n    label: 'Docker Standalone',\n    command: buildLinuxStandaloneCommand,\n  },\n  swarmWindows: {\n    id: 'swarm',\n    label: 'Docker Swarm',\n    command: buildWindowsSwarmCommand,\n  },\n  standaloneWindow: {\n    id: 'standalone',\n    label: 'Docker Standalone',\n    command: buildWindowsStandaloneCommand,\n  },\n} as const;\n\nexport function buildLinuxStandaloneCommand(\n  agentVersion: string,\n  edgeKey: string,\n  properties: ScriptFormValues,\n  useAsyncMode: boolean,\n  edgeId?: string,\n  agentSecret?: string\n) {\n  const { allowSelfSignedCertificates, edgeIdGenerator, envVars } = properties;\n\n  const env = buildDockerEnvVars(envVars, [\n    ...buildDefaultDockerEnvVars(\n      edgeKey,\n      allowSelfSignedCertificates,\n      !edgeIdGenerator ? edgeId : undefined,\n      agentSecret,\n      useAsyncMode\n    ),\n    ...metaEnvVars(properties),\n  ]);\n\n  return `${\n    edgeIdGenerator ? `PORTAINER_EDGE_ID=$(${edgeIdGenerator}) \\n\\n` : ''\n  }\\\ndocker run -d \\\\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\\\n  -v /var/lib/docker/volumes:/var/lib/docker/volumes \\\\\n  -v /:/host \\\\\n  -v portainer_agent_data:/data \\\\\n  --restart always \\\\\n  ${env} \\\\\n  --name portainer_edge_agent \\\\\n  portainer/agent:${agentVersion}\n  `;\n}\n\nexport function buildWindowsStandaloneCommand(\n  agentVersion: string,\n  edgeKey: string,\n  properties: ScriptFormValues,\n  useAsyncMode: boolean,\n  edgeId?: string,\n  agentSecret?: string\n) {\n  const { allowSelfSignedCertificates, edgeIdGenerator, envVars } = properties;\n\n  const env = buildDockerEnvVars(envVars, [\n    ...buildDefaultDockerEnvVars(\n      edgeKey,\n      allowSelfSignedCertificates,\n      edgeIdGenerator ? '$Env:PORTAINER_EDGE_ID' : edgeId,\n      agentSecret,\n      useAsyncMode\n    ),\n    ...metaEnvVars(properties),\n  ]);\n\n  return `${\n    edgeIdGenerator\n      ? `$Env:PORTAINER_EDGE_ID = \"@(${edgeIdGenerator})\" \\n\\n`\n      : ''\n  }\\\ndocker run -d \\\\\n  --mount type=npipe,src=\\\\\\\\.\\\\pipe\\\\docker_engine,dst=\\\\\\\\.\\\\pipe\\\\docker_engine \\\\\n  --mount type=bind,src=C:\\\\ProgramData\\\\docker\\\\volumes,dst=C:\\\\ProgramData\\\\docker\\\\volumes \\\\\n  --mount type=volume,src=portainer_agent_data,dst=C:\\\\data \\\\\n  --restart always \\\\\n   ${env} \\\\\n  --name portainer_edge_agent \\\\\n  portainer/agent:${agentVersion}\n  `;\n}\n\nexport function buildLinuxSwarmCommand(\n  agentVersion: string,\n  edgeKey: string,\n  properties: ScriptFormValues,\n  useAsyncMode: boolean,\n  edgeId?: string,\n  agentSecret?: string\n) {\n  const { allowSelfSignedCertificates, edgeIdGenerator, envVars } = properties;\n\n  const env = buildDockerEnvVars(envVars, [\n    ...buildDefaultDockerEnvVars(\n      edgeKey,\n      allowSelfSignedCertificates,\n      !edgeIdGenerator ? edgeId : undefined,\n      agentSecret,\n      useAsyncMode\n    ),\n    'AGENT_CLUSTER_ADDR=tasks.portainer_edge_agent',\n    ...metaEnvVars(properties),\n  ]);\n\n  return `${\n    edgeIdGenerator ? `PORTAINER_EDGE_ID=$(${edgeIdGenerator}) \\n\\n` : ''\n  }\\\ndocker network create \\\\\n  --driver overlay \\\\\n  portainer_agent_network;\n\ndocker service create \\\\\n  --name portainer_edge_agent \\\\\n  --network portainer_agent_network \\\\\n  ${env} \\\\\n  --mode global \\\\\n  --constraint 'node.platform.os == linux' \\\\\n  --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \\\\\n  --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes \\\\\n  --mount type=bind,src=//,dst=/host \\\\\n  --mount type=volume,src=portainer_agent_data,dst=/data \\\\\n  portainer/agent:${agentVersion}\n`;\n}\n\nexport function buildWindowsSwarmCommand(\n  agentVersion: string,\n  edgeKey: string,\n  properties: ScriptFormValues,\n  useAsyncMode: boolean,\n  edgeId?: string,\n  agentSecret?: string\n) {\n  const { allowSelfSignedCertificates, edgeIdGenerator, envVars } = properties;\n\n  const env = buildDockerEnvVars(envVars, [\n    ...buildDefaultDockerEnvVars(\n      edgeKey,\n      allowSelfSignedCertificates,\n      edgeIdGenerator ? '$Env:PORTAINER_EDGE_ID' : edgeId,\n      agentSecret,\n      useAsyncMode\n    ),\n    'AGENT_CLUSTER_ADDR=tasks.portainer_edge_agent',\n    ...metaEnvVars(properties),\n  ]);\n\n  return `${\n    edgeIdGenerator\n      ? `$Env:PORTAINER_EDGE_ID = \"@(${edgeIdGenerator})\" \\n\\n`\n      : ''\n  }\\\ndocker network create \\\\\n  --driver overlay \\\\\n  portainer_agent_network;\n\ndocker service create \\\\\n  --name portainer_edge_agent \\\\\n  --network portainer_agent_network \\\\\n  ${env} \\\\\n  --mode global \\\\\n  --constraint 'node.platform.os == windows' \\\\\n  --mount type=npipe,src=\\\\\\\\.\\\\pipe\\\\docker_engine,dst=\\\\\\\\.\\\\pipe\\\\docker_engine \\\\\n  --mount type=bind,src=C:\\\\ProgramData\\\\docker\\\\volumes,dst=C:\\\\ProgramData\\\\docker\\\\volumes \\\\\n  --mount type=volume,src=portainer_agent_data,dst=C:\\\\data \\\\\n  portainer/agent:${agentVersion}\n`;\n}\n\nexport function buildLinuxKubernetesCommand(\n  agentVersion: string,\n  edgeKey: string,\n  properties: ScriptFormValues,\n  useAsyncMode: boolean,\n  edgeId?: string,\n  agentSecret?: string\n) {\n  const { allowSelfSignedCertificates, edgeIdGenerator, envVars } = properties;\n\n  const agentShortVersion = getAgentShortVersion(agentVersion);\n  const allEnvVars = buildEnvVars(\n    envVars,\n    _.compact([useAsyncMode && 'EDGE_ASYNC=1', ...metaEnvVars(properties)])\n  );\n\n  const idEnvVar = edgeIdGenerator\n    ? `PORTAINER_EDGE_ID=$(${edgeIdGenerator}) \\n\\n`\n    : '';\n  const edgeIdVar = !edgeIdGenerator && edgeId ? edgeId : '$PORTAINER_EDGE_ID';\n  const selfSigned = allowSelfSignedCertificates ? '1' : '0';\n\n  return `${idEnvVar}curl https://downloads.portainer.io/ee${agentShortVersion}/portainer-edge-agent-setup.sh | bash -s -- \"${edgeIdVar}\" \"${edgeKey}\" \"${selfSigned}\" \"${agentSecret}\" \"${allEnvVars}\"`;\n}\n\nfunction buildDockerEnvVars(envVars: string, moreVars: string[]) {\n  const vars = moreVars.concat(envVars.split(',').filter((s) => s.length > 0));\n\n  return vars.map((s) => `-e ${s}`).join(' \\\\\\n  ');\n}\n\nfunction buildDefaultDockerEnvVars(\n  edgeKey: string,\n  allowSelfSignedCerts: boolean,\n  edgeId = '$PORTAINER_EDGE_ID',\n  agentSecret = '',\n  useAsyncMode = false\n) {\n  return _.compact([\n    'EDGE=1',\n    `EDGE_ID=${edgeId}`,\n    `EDGE_KEY=${edgeKey}`,\n    `EDGE_INSECURE_POLL=${allowSelfSignedCerts ? 1 : 0}`,\n    agentSecret ? `AGENT_SECRET=${agentSecret}` : ``,\n    useAsyncMode ? 'EDGE_ASYNC=1' : '',\n  ]);\n}\n\nconst ENV_VAR_SEPARATOR = ',';\nconst VAR_LIST_SEPARATOR = ':';\nfunction buildEnvVars(envVars: string, moreVars: string[]) {\n  return _.compact([envVars.trim(), ...moreVars]).join(ENV_VAR_SEPARATOR);\n}\n\nfunction metaEnvVars({\n  edgeGroupsIds,\n  group,\n  tagsIds,\n}: Pick<ScriptFormValues, 'edgeGroupsIds' | 'tagsIds' | 'group'>) {\n  return _.compact([\n    edgeGroupsIds.length &&\n      `EDGE_GROUPS=${edgeGroupsIds.join(VAR_LIST_SEPARATOR)}`,\n    group && `PORTAINER_GROUP=${group}`,\n    tagsIds.length && `PORTAINER_TAGS=${tagsIds.join(VAR_LIST_SEPARATOR)}`,\n  ]);\n}\n","import _ from 'lodash';\nimport { useState, useEffect } from 'react';\n\nimport { useSettings } from '@/react/portainer/settings/queries';\n\ntype Option = {\n  label: string;\n  value: number;\n};\n\ntype DefaultOption = Option & { isDefault: true };\n\nexport type Options = [DefaultOption, ...Option[]];\n\nexport function useIntervalOptions(\n  fieldName:\n    | 'Edge.PingInterval'\n    | 'Edge.SnapshotInterval'\n    | 'Edge.CommandInterval'\n    | 'EdgeAgentCheckinInterval',\n  initialOptions: Options,\n  isDefaultHidden: boolean\n) {\n  const [{ value: defaultValue }] = initialOptions;\n  const [options, setOptions] = useState<Option[]>(initialOptions);\n\n  const settingsQuery = useSettings(\n    (settings) => _.get(settings, fieldName, 0) as number,\n    !isDefaultHidden\n  );\n\n  useEffect(() => {\n    if (isDefaultHidden) {\n      setOptions(initialOptions.slice(1));\n    }\n\n    if (\n      !isDefaultHidden &&\n      typeof settingsQuery.data !== 'undefined' &&\n      settingsQuery.data !== defaultValue\n    ) {\n      setOptions((options) => {\n        let label = `${settingsQuery.data} seconds`;\n        const option = options.find((o) => o.value === settingsQuery.data);\n        if (option) {\n          label = option.label;\n        }\n\n        return [\n          {\n            value: defaultValue,\n            label: `Use default interval (${label})`,\n          },\n          ...options.slice(1),\n        ];\n      });\n    }\n  }, [\n    settingsQuery.data,\n    setOptions,\n    isDefaultHidden,\n    initialOptions,\n    defaultValue,\n  ]);\n\n  return options;\n}\n","import { EdgeGroup } from '../types';\n\nexport function buildUrl({\n  action,\n  id,\n}: { id?: EdgeGroup['Id']; action?: string } = {}) {\n  const baseUrl = '/edge_groups';\n  const url = id ? `${baseUrl}/${id}` : baseUrl;\n  return action ? `${url}/${action}` : url;\n}\n","export const queryKeys = {\n  base: () => ['edge', 'groups'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  EnvironmentId,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\n\nimport { EdgeGroup } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './build-url';\n\nexport interface EdgeGroupListItemResponse extends EdgeGroup {\n  EndpointTypes: Array<EnvironmentType>;\n  HasEdgeStack?: boolean;\n  HasEdgeJob?: boolean;\n  HasEdgeConfig?: boolean;\n  TrustedEndpoints: Array<EnvironmentId>;\n}\n\nasync function getEdgeGroups() {\n  try {\n    const { data } = await axios.get<EdgeGroupListItemResponse[]>(buildUrl());\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Failed fetching edge groups');\n  }\n}\n\nexport function useEdgeGroups<T = EdgeGroupListItemResponse[]>({\n  select,\n}: {\n  select?: (groups: EdgeGroupListItemResponse[]) => T;\n} = {}) {\n  return useQuery(queryKeys.base(), getEdgeGroups, { select });\n}\n","import { FormikErrors } from 'formik';\nimport { SchemaOf, array, string } from 'yup';\n\nimport { TemplateEnv } from '@/react/portainer/templates/app-templates/types';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input, Select } from '@@/form-components/Input';\n\ntype Value = Record<string, string>;\n\nexport function EnvVarsFieldset({\n  onChange,\n  options,\n  value,\n  errors,\n}: {\n  options: Array<TemplateEnv>;\n  onChange: (value: Value) => void;\n  value: Value;\n  errors?: FormikErrors<Value>;\n}) {\n  return (\n    <>\n      {options.map((env) => (\n        <Item\n          key={env.name}\n          option={env}\n          value={value[env.name]}\n          onChange={(value) => handleChange(env.name, value)}\n          errors={errors?.[env.name]}\n        />\n      ))}\n    </>\n  );\n\n  function handleChange(name: string, envValue: string) {\n    onChange({ ...value, [name]: envValue });\n  }\n}\n\nfunction Item({\n  onChange,\n  option,\n  value,\n  errors,\n}: {\n  option: TemplateEnv;\n  value: string;\n  onChange: (value: string) => void;\n  errors?: FormikErrors<string>;\n}) {\n  const inputId = `env_var_${option.name}`;\n  return (\n    <FormControl\n      label={option.label || option.name}\n      required={!option.preset}\n      errors={errors}\n      inputId={inputId}\n    >\n      {option.select ? (\n        <Select\n          value={value}\n          onChange={(e) => onChange(e.target.value)}\n          options={option.select.map((o) => ({\n            label: o.text,\n            value: o.value,\n          }))}\n          disabled={option.preset}\n          id={inputId}\n        />\n      ) : (\n        <Input\n          value={value}\n          onChange={(e) => onChange(e.target.value)}\n          disabled={option.preset}\n          id={inputId}\n        />\n      )}\n    </FormControl>\n  );\n}\n\nexport function getDefaultValues(definitions: Array<TemplateEnv>): Value {\n  return Object.fromEntries(\n    definitions.map((v) => {\n      if (v.select) {\n        return [v.name, v.select.find((v) => v.default)?.value || ''];\n      }\n\n      return [v.name, v.default || ''];\n    })\n  );\n}\n\nexport function envVarsFieldsetValidation(): SchemaOf<Value> {\n  return (\n    array()\n      .transform((_, orig) => Object.values(orig))\n      // casting to return the correct type - validation works as expected\n      .of(string().required('Required')) as unknown as SchemaOf<Value>\n  );\n}\n","import { useMemo } from 'react';\nimport { GroupBase } from 'react-select';\n\nimport { useCustomTemplates } from '@/react/portainer/templates/custom-templates/queries/useCustomTemplates';\nimport { useAppTemplates } from '@/react/portainer/templates/app-templates/queries/useAppTemplates';\nimport { TemplateType } from '@/react/portainer/templates/app-templates/types';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select as ReactSelect } from '@@/form-components/ReactSelect';\n\nimport { SelectedTemplateValue } from './types';\n\nexport function TemplateSelector({\n  value,\n  onChange,\n  error,\n}: {\n  value: SelectedTemplateValue;\n  onChange: (value: SelectedTemplateValue) => void;\n  error?: string;\n}) {\n  const { getTemplate, options } = useOptions();\n\n  return (\n    <FormControl label=\"Template\" inputId=\"template_selector\" errors={error}>\n      <ReactSelect\n        inputId=\"template_selector\"\n        formatGroupLabel={GroupLabel}\n        placeholder=\"Select an Edge stack template\"\n        value={{\n          label: value.template?.Title,\n          id: value.template?.Id,\n          type: value.type,\n        }}\n        onChange={(value) => {\n          if (!value) {\n            onChange({\n              template: undefined,\n              type: undefined,\n            });\n            return;\n          }\n\n          const { id, type } = value;\n          if (!id || type === undefined) {\n            return;\n          }\n\n          const template = getTemplate({ id, type });\n          onChange({ template, type } as SelectedTemplateValue);\n        }}\n        options={options}\n      />\n    </FormControl>\n  );\n}\n\nfunction useOptions() {\n  const customTemplatesQuery = useCustomTemplates({\n    params: {\n      edge: true,\n    },\n  });\n\n  const appTemplatesQuery = useAppTemplates({\n    select: (templates) =>\n      templates.filter(\n        (template) =>\n          template.Categories.includes('edge') &&\n          template.Type !== TemplateType.Container\n      ),\n  });\n\n  const options = useMemo(\n    () =>\n      [\n        {\n          label: 'Edge App Templates',\n          options:\n            appTemplatesQuery.data?.map((template) => ({\n              label: `${template.Title} - ${template.Description}`,\n              id: template.Id,\n              type: 'app' as 'app' | 'custom',\n            })) || [],\n        },\n        {\n          label: 'Edge Custom Templates',\n          options:\n            customTemplatesQuery.data && customTemplatesQuery.data.length > 0\n              ? customTemplatesQuery.data.map((template) => ({\n                  label: `${template.Title} - ${template.Description}`,\n                  id: template.Id,\n                  type: 'custom' as 'app' | 'custom',\n                }))\n              : [\n                  {\n                    label: 'No edge custom templates available',\n                    id: 0,\n                    type: 'custom' as 'app' | 'custom',\n                  },\n                ],\n        },\n      ] as const,\n    [appTemplatesQuery.data, customTemplatesQuery.data]\n  );\n\n  return { options, getTemplate };\n\n  function getTemplate({ type, id }: { type: 'app' | 'custom'; id: number }) {\n    if (type === 'app') {\n      const template = appTemplatesQuery.data?.find(\n        (template) => template.Id === id\n      );\n\n      if (!template) {\n        throw new Error(`App template not found: ${id}`);\n      }\n\n      return template;\n    }\n\n    const template = customTemplatesQuery.data?.find(\n      (template) => template.Id === id\n    );\n\n    if (!template) {\n      throw new Error(`Custom template not found: ${id}`);\n    }\n    return template;\n  }\n}\n\nfunction GroupLabel({ label }: GroupBase<unknown>) {\n  return (\n    <span className=\"font-bold text-black th-dark:text-white th-highcontrast:text-white\">\n      {label}\n    </span>\n  );\n}\n","import sanitize from 'sanitize-html';\n\nexport function TemplateNote({ note }: { note: string | undefined }) {\n  if (!note) {\n    return null;\n  }\n  return (\n    <div>\n      <div className=\"col-sm-12 form-section-title\"> Information </div>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <div\n            className=\"template-note\"\n            // eslint-disable-next-line react/no-danger\n            dangerouslySetInnerHTML={{\n              __html: sanitize(note),\n            }}\n          />\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { CustomTemplatesVariablesField } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesField';\nimport { CustomTemplate } from '@/react/portainer/templates/custom-templates/types';\n\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\nimport { Values } from './types';\nimport { TemplateNote } from './TemplateNote';\n\nexport function CustomTemplateFieldset({\n  errors,\n  onChange,\n  values,\n  template,\n}: {\n  values: Values['variables'];\n  onChange: (values: Values['variables']) => void;\n  errors: ArrayError<Values['variables']> | undefined;\n  template: CustomTemplate;\n}) {\n  return (\n    <>\n      <TemplateNote note={template.Note} />\n\n      <CustomTemplatesVariablesField\n        onChange={onChange}\n        value={values}\n        definitions={template.Variables}\n        errors={errors}\n      />\n    </>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { TemplateViewModel } from '@/react/portainer/templates/app-templates/view-model';\n\nimport { EnvVarsFieldset } from './EnvVarsFieldset';\nimport { TemplateNote } from './TemplateNote';\n\nexport function AppTemplateFieldset({\n  template,\n  values,\n  onChange,\n  errors,\n}: {\n  template: TemplateViewModel;\n  values: Record<string, string>;\n  onChange: (value: Record<string, string>) => void;\n  errors?: FormikErrors<Record<string, string>>;\n}) {\n  return (\n    <>\n      <TemplateNote note={template.Note} />\n      <EnvVarsFieldset\n        options={template.Env || []}\n        value={values}\n        onChange={onChange}\n        errors={errors}\n      />\n    </>\n  );\n}\n","import { SetStateAction, useEffect, useState } from 'react';\nimport { FormikErrors } from 'formik';\n\nimport { getVariablesFieldDefaultValues } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesField';\n\nimport { getDefaultValues as getAppVariablesDefaultValues } from './EnvVarsFieldset';\nimport { TemplateSelector } from './TemplateSelector';\nimport { SelectedTemplateValue, Values } from './types';\nimport { CustomTemplateFieldset } from './CustomTemplateFieldset';\nimport { AppTemplateFieldset } from './AppTemplateFieldset';\n\nexport function TemplateFieldset({\n  values: initialValues,\n  setValues: setInitialValues,\n  errors,\n}: {\n  errors?: FormikErrors<Values>;\n  values: Values;\n  setValues: (values: SetStateAction<Values>) => void;\n}) {\n  const [values, setControlledValues] = useState(initialValues); // todo remove when all view is in react\n\n  useEffect(() => {\n    if (\n      initialValues.type !== values.type ||\n      initialValues.template?.Id !== values.template?.Id\n    ) {\n      setControlledValues(initialValues);\n    }\n  }, [initialValues, values]);\n\n  return (\n    <>\n      <TemplateSelector\n        error={\n          typeof errors?.template === 'string' ? errors?.template : undefined\n        }\n        value={values}\n        onChange={handleChangeTemplate}\n      />\n      {values.template && (\n        <>\n          {values.type === 'custom' && (\n            <CustomTemplateFieldset\n              template={values.template}\n              values={values.variables}\n              onChange={(variables) =>\n                setValues((values) => ({ ...values, variables }))\n              }\n              errors={errors?.variables}\n            />\n          )}\n\n          {values.type === 'app' && (\n            <AppTemplateFieldset\n              template={values.template}\n              values={values.envVars}\n              onChange={(envVars) =>\n                setValues((values) => ({ ...values, envVars }))\n              }\n              errors={errors?.envVars}\n            />\n          )}\n        </>\n      )}\n    </>\n  );\n\n  function setValues(values: SetStateAction<Values>) {\n    setControlledValues(values);\n    setInitialValues(values);\n  }\n\n  function handleChangeTemplate(value?: SelectedTemplateValue) {\n    setValues(() => {\n      if (!value || !value.type || !value.template) {\n        return {\n          type: undefined,\n          template: undefined,\n          variables: [],\n          envVars: {},\n        };\n      }\n\n      if (value.type === 'app') {\n        return {\n          template: value.template,\n          type: value.type,\n          variables: [],\n          envVars: getAppVariablesDefaultValues(value.template.Env || []),\n        };\n      }\n\n      return {\n        template: value.template,\n        type: value.type,\n        variables: getVariablesFieldDefaultValues(\n          value.template.Variables || []\n        ),\n        envVars: {},\n      };\n    });\n  }\n}\n\nexport function getInitialTemplateValues(): Values {\n  return {\n    template: undefined,\n    type: undefined,\n    variables: [],\n    file: '',\n    envVars: {},\n  };\n}\n","import _ from 'lodash';\n\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nimport { Select } from '@@/form-components/ReactSelect';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { FormError } from '@@/form-components/FormError';\nimport { Link } from '@@/Link';\nimport { FormControl } from '@@/form-components/FormControl';\n\nimport { useEdgeGroups } from '../../edge-groups/queries/useEdgeGroups';\n\ntype SingleValue = EdgeGroup['Id'];\n\ninterface Props {\n  value: SingleValue[];\n  onChange: (value: SingleValue[]) => void;\n  error?: string | string[];\n  horizontal?: boolean;\n  isGroupVisible?(group: EdgeGroup): boolean;\n  required?: boolean;\n}\n\nexport function EdgeGroupsSelector({\n  value,\n  onChange,\n  error,\n  horizontal,\n  isGroupVisible = () => true,\n  required,\n}: Props) {\n  const selector = (\n    <InnerSelector\n      value={value}\n      onChange={onChange}\n      isGroupVisible={isGroupVisible}\n    />\n  );\n\n  return horizontal ? (\n    <FormControl errors={error} label=\"Edge Groups\" required={required}>\n      {selector}\n    </FormControl>\n  ) : (\n    <FormSection title={`Edge Groups${required ? ' *' : ''}`}>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">{selector} </div>\n        {error && (\n          <div className=\"col-sm-12\">\n            <FormError>{error}</FormError>\n          </div>\n        )}\n      </div>\n    </FormSection>\n  );\n}\n\nfunction InnerSelector({\n  value,\n  onChange,\n  isGroupVisible,\n}: {\n  isGroupVisible(group: EdgeGroup): boolean;\n  value: SingleValue[];\n  onChange: (value: SingleValue[]) => void;\n}) {\n  const edgeGroupsQuery = useEdgeGroups();\n\n  const items = (edgeGroupsQuery.data || []).filter(isGroupVisible);\n\n  const valueGroups = _.compact(\n    value.map((id) => items.find((item) => item.Id === id))\n  );\n\n  return items.length ? (\n    <Select\n      aria-label=\"Edge groups\"\n      options={items}\n      isMulti\n      getOptionLabel={(item) => item.Name}\n      getOptionValue={(item) => String(item.Id)}\n      value={valueGroups}\n      onChange={(value) => {\n        onChange(value.map((item) => item.Id));\n      }}\n      placeholder=\"Select one or multiple group(s)\"\n      closeMenuOnSelect={false}\n    />\n  ) : (\n    <div className=\"small text-muted\">\n      No Edge groups are available. Head over to the{' '}\n      <Link to=\"edge.groups\">Edge groups view</Link> to create one.\n    </div>\n  );\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  AutoUpdateResponse,\n  RelativePathModel,\n  RepoConfigResponse,\n} from '@/react/portainer/gitops/types';\nimport { RegistryId } from '@/react/portainer/registries/types';\n\nimport { EnvVar } from '@@/form-components/EnvironmentVariablesFieldset/types';\n\nimport { EdgeGroup } from '../edge-groups/types';\n\nexport {\n  type StaggerConfig,\n  StaggerOption,\n  StaggerParallelOption,\n  UpdateFailureAction,\n} from './components/StaggerFieldset.types';\n\nexport enum StatusType {\n  /** Pending represents a pending edge stack */\n  Pending,\n  /** DeploymentReceived represents an edge environment which received the edge stack deployment */\n  DeploymentReceived,\n  /** Error represents an edge environment which failed to deploy its edge stack */\n  Error,\n  /** Acknowledged represents an acknowledged edge stack */\n  Acknowledged,\n  /** Removed represents a removed edge stack */\n  Removed,\n  /** StatusRemoteUpdateSuccess represents a successfully updated edge stack */\n  RemoteUpdateSuccess,\n  /** ImagesPulled represents a successfully images-pulling */\n  ImagesPulled,\n  /** Running represents a running Edge stack */\n  Running,\n  /** Deploying represents an Edge stack which is being deployed */\n  Deploying,\n  /** Removing represents an Edge stack which is being removed */\n  Removing,\n  /** PausedDeploying represents an Edge stack which is paused for deployment */\n  PausedDeploying,\n  /** PausedRemoving represents an Edge stack which is being rolled back */\n  RollingBack,\n  /** PausedRemoving represents an Edge stack which has been rolled back */\n  RolledBack,\n  /** Completed represents a completed Edge stack */\n  Completed,\n}\n\nexport interface DeploymentStatus {\n  Type: StatusType;\n  Error: string;\n  Time: number;\n}\n\ninterface EdgeStackDeploymentInfo {\n  FileVersion: number;\n  ConfigHash: string;\n}\n\nexport interface EdgeStackStatus {\n  Status: Array<DeploymentStatus>;\n  EndpointID: EnvironmentId;\n  DeploymentInfo?: EdgeStackDeploymentInfo;\n}\n\nexport enum DeploymentType {\n  /** represent an edge stack deployed using a compose file */\n  Compose,\n  /** represent an edge stack deployed using a kubernetes manifest file */\n  Kubernetes,\n}\n\nexport type EdgeStack = RelativePathModel & {\n  Id: number;\n  Name: string;\n  Status: { [key: EnvironmentId]: EdgeStackStatus };\n  CreationDate: number;\n  EdgeGroups: Array<EdgeGroup['Id']>;\n  Registries: RegistryId[];\n  ProjectPath: string;\n  EntryPoint: string;\n  Version: number;\n  NumDeployments: number;\n  ManifestPath: string;\n  DeploymentType: DeploymentType;\n  EdgeUpdateID: number;\n  ScheduledTime: string;\n  UseManifestNamespaces: boolean;\n  PrePullImage: boolean;\n  RePullImage: boolean;\n  AutoUpdate?: AutoUpdateResponse;\n  GitConfig?: RepoConfigResponse;\n  Prune: boolean;\n  RetryDeploy: boolean;\n  Webhook?: string;\n  StackFileVersion?: number;\n  EnvVars?: EnvVar[];\n  SupportRelativePath: boolean;\n  FilesystemPath?: string;\n};\n\nexport enum EditorType {\n  Compose,\n  Kubernetes,\n}\n","import { trackEvent } from '@/angulartics.matomo/analytics-services';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nexport function useAnalytics() {\n  const telemetryQuery = usePublicSettings({\n    select: (settings) => settings.EnableTelemetry,\n  });\n\n  return { trackEvent: handleTrackEvent };\n\n  function handleTrackEvent(...args: Parameters<typeof trackEvent>) {\n    if (telemetryQuery.data) {\n      trackEvent(...args);\n    }\n  }\n}\n","import { useEnvironment } from '@/react/portainer/environments/queries';\n\nimport { useEnvironmentId } from './useEnvironmentId';\n\nexport function useCurrentEnvironment(force = true) {\n  const id = useEnvironmentId(force);\n  return useEnvironment(id);\n}\n","import _ from 'lodash';\nimport { useState, useRef, useCallback, useEffect } from 'react';\n\nexport function useDebounce(value: string, onChange: (value: string) => void) {\n  const [debouncedValue, setDebouncedValue] = useState(value);\n\n  const onChangeDebounces = useRef(_.debounce(onChange, 300));\n\n  const handleChange = useCallback(\n    (value: string) => {\n      setDebouncedValue(value);\n      onChangeDebounces.current(value);\n    },\n    [onChangeDebounces, setDebouncedValue]\n  );\n\n  useEffect(() => {\n    setDebouncedValue(value);\n  }, [value]);\n\n  return [debouncedValue, handleChange] as const;\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function useEnvironmentId(force = true): EnvironmentId {\n  const {\n    params: { endpointId: environmentId },\n  } = useCurrentStateAndParams();\n\n  if (!environmentId) {\n    if (!force) {\n      return 0;\n    }\n\n    throw new Error('endpointId url param is required');\n  }\n\n  return parseInt(environmentId, 10);\n}\n","import { useRouter } from '@uirouter/react';\nimport { ComponentType } from 'react';\n\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nexport function useLimitToBE(defaultPath = 'portainer.home') {\n  const router = useRouter();\n  if (!isBE) {\n    router.stateService.go(defaultPath);\n    return true;\n  }\n\n  return false;\n}\n\nexport function withLimitToBE<T>(\n  WrappedComponent: ComponentType<T>,\n  defaultPath = 'portainer.home'\n): ComponentType<T> {\n  // Try to create a nice displayName for React Dev Tools.\n  const displayName =\n    WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n    const isLimitedToBE = useLimitToBE(defaultPath);\n\n    if (isLimitedToBE) {\n      return null;\n    }\n\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    return <WrappedComponent {...props} />;\n  }\n\n  WrapperComponent.displayName = `withLimitToBE(${displayName})`;\n\n  return WrapperComponent;\n}\n","import { useState, useCallback, useMemo } from 'react';\n\nconst localStoragePrefix = 'portainer';\n\nexport function keyBuilder(key: string) {\n  return `${localStoragePrefix}.${key}`;\n}\n\nexport function useLocalStorage<T>(\n  key: string,\n  defaultValue: T,\n  storage = localStorage\n): [T, (value: T) => void] {\n  const [value, setValue] = useState(get<T>(key, defaultValue, storage));\n\n  const handleChange = useCallback(\n    (value) => {\n      setValue(value);\n      set<T>(key, value, storage);\n    },\n    [key, storage]\n  );\n\n  return useMemo(() => [value, handleChange], [value, handleChange]);\n}\n\nexport function get<T>(\n  key: string,\n  defaultValue: T,\n  storage = localStorage\n): T {\n  const value = storage.getItem(keyBuilder(key));\n  if (!value) {\n    return defaultValue;\n  }\n\n  try {\n    return JSON.parse(value);\n  } catch (e) {\n    return defaultValue;\n  }\n}\n\nexport function set<T>(key: string, value: T, storage = localStorage) {\n  storage.setItem(keyBuilder(key), JSON.stringify(value));\n}\n","import { useState, useCallback, useEffect } from 'react';\n\nexport function useStateWrapper<T>(value: T, onChange: (value: T) => void) {\n  const [inputValue, setInputValue] = useState(value);\n\n  const updateInputValue = useCallback(\n    (value: T) => {\n      setInputValue(value);\n      onChange(value);\n    },\n    [onChange, setInputValue]\n  );\n\n  useEffect(() => {\n    setInputValue(value);\n  }, [value]);\n\n  return [inputValue, updateInputValue] as const;\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\nimport {\n  createContext,\n  ReactNode,\n  useContext,\n  useMemo,\n  PropsWithChildren,\n} from 'react';\n\nimport { isEdgeAdmin, isPureAdmin } from '@/portainer/users/user.helpers';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { User } from '@/portainer/users/types';\nimport { useLoadCurrentUser } from '@/portainer/users/queries/useLoadCurrentUser';\n\nimport { useEnvironment } from '../portainer/environments/queries';\nimport { isBE } from '../portainer/feature-flags/feature-flags.service';\n\ninterface State {\n  user?: User;\n}\n\nexport const UserContext = createContext<State | null>(null);\nUserContext.displayName = 'UserContext';\n\n/**\n * @deprecated use `useCurrentUser` instead\n */\nexport const useUser = useCurrentUser;\n\nexport function useCurrentUser() {\n  const context = useContext(UserContext);\n\n  if (context === null) {\n    throw new Error('should be nested under UserProvider');\n  }\n\n  const { user } = context;\n  if (typeof user === 'undefined') {\n    throw new Error('should be authenticated');\n  }\n\n  return useMemo(\n    () => ({\n      user,\n      isPureAdmin: isPureAdmin(user),\n    }),\n    [user]\n  );\n}\n\nexport function useIsPureAdmin() {\n  const { isPureAdmin } = useCurrentUser();\n  return isPureAdmin;\n}\n\n/**\n * Load the admin status of the user, (admin >= edge admin)\n * @param forceEnvironmentId to force the environment id, used where the environment id can't be loaded from the router, like sidebar\n * @returns query result with isLoading and isAdmin - isAdmin is true if the user edge admin or admin.\n */\nexport function useIsEdgeAdmin({\n  forceEnvironmentId,\n  noEnvScope,\n}: {\n  forceEnvironmentId?: EnvironmentId;\n  noEnvScope?: boolean;\n} = {}) {\n  const { user } = useCurrentUser();\n  const {\n    params: { endpointId },\n  } = useCurrentStateAndParams();\n\n  const envId = forceEnvironmentId || endpointId;\n  const envScope = typeof noEnvScope === 'boolean' ? !noEnvScope : !!envId;\n  const envQuery = useEnvironment(envScope ? envId : undefined);\n\n  if (!envScope) {\n    return { isLoading: false, isAdmin: isEdgeAdmin(user) };\n  }\n\n  if (envQuery.isLoading) {\n    return { isLoading: true, isAdmin: false };\n  }\n\n  return {\n    isLoading: false,\n    isAdmin: isEdgeAdmin(user, envQuery.data),\n  };\n}\n\n/**\n * Check if the user has some of the authorizations\n *\n * @param authorizations a list of authorizations to check\n * @param forceEnvironmentId to force the environment id, used where the environment id can't be loaded from the router, like sidebar\n * @param adminOnlyCE if true, will return false if the user is not an admin in CE\n * @returns query result with isLoading and authorized - authorized is true if the user has some of the authorizations\n */\nexport function useAuthorizations(\n  authorizations: string | string[],\n  forceEnvironmentId?: EnvironmentId,\n  adminOnlyCE = false\n) {\n  const { user } = useCurrentUser();\n  const {\n    params: { endpointId },\n  } = useCurrentStateAndParams();\n  const envQuery = useEnvironment(forceEnvironmentId || endpointId);\n  const isAdminQuery = useIsEdgeAdmin({ forceEnvironmentId });\n\n  if (!user) {\n    return { authorized: false, isLoading: false };\n  }\n\n  if (envQuery.isLoading || isAdminQuery.isLoading) {\n    return { authorized: false, isLoading: true };\n  }\n\n  if (isAdminQuery.isAdmin) {\n    return { authorized: true, isLoading: false };\n  }\n\n  if (!isBE && adminOnlyCE) {\n    return { authorized: false, isLoading: false };\n  }\n\n  return {\n    authorized: hasAuthorizations(user, authorizations, envQuery.data?.Id),\n    isLoading: false,\n  };\n}\n\nexport function useIsEnvironmentAdmin({\n  forceEnvironmentId,\n  adminOnlyCE = true,\n}: {\n  forceEnvironmentId?: EnvironmentId;\n  adminOnlyCE?: boolean;\n} = {}) {\n  return useAuthorizations(\n    ['EndpointResourcesAccess'],\n    forceEnvironmentId,\n    adminOnlyCE\n  );\n}\n\n/**\n * will return true if the user has some of the authorizations. assumes the user is authenticated and not an admin\n *\n * @private Please use `useAuthorizations` instead. Exported only for angular's authentication service app/portainer/services/authentication.js:154\n */\nexport function hasAuthorizations(\n  user: User,\n  authorizations: string | string[],\n  environmentId?: EnvironmentId\n) {\n  if (!isBE) {\n    return true;\n  }\n\n  const authorizationsArray =\n    typeof authorizations === 'string' ? [authorizations] : authorizations;\n\n  if (authorizationsArray.length === 0) {\n    return true;\n  }\n\n  if (!environmentId) {\n    return false;\n  }\n\n  const userEndpointAuthorizations =\n    user.EndpointAuthorizations?.[environmentId] || [];\n\n  return authorizationsArray.some(\n    (authorization) => userEndpointAuthorizations[authorization]\n  );\n}\n\ninterface AuthorizedProps {\n  authorizations: string | string[];\n  environmentId?: EnvironmentId;\n  adminOnlyCE?: boolean;\n  childrenUnauthorized?: ReactNode;\n}\n\nexport function Authorized({\n  authorizations,\n  environmentId,\n  adminOnlyCE = false,\n  children,\n  childrenUnauthorized = null,\n}: PropsWithChildren<AuthorizedProps>) {\n  const { authorized } = useAuthorizations(\n    authorizations,\n    environmentId,\n    adminOnlyCE\n  );\n\n  return authorized ? <>{children}</> : <>{childrenUnauthorized}</>;\n}\n\ninterface UserProviderProps {\n  children: ReactNode;\n}\n\nexport function UserProvider({ children }: UserProviderProps) {\n  const userQuery = useLoadCurrentUser();\n\n  const providerState = useMemo(\n    () => ({ user: userQuery.data }),\n    [userQuery.data]\n  );\n\n  if (!providerState.user) {\n    return null;\n  }\n\n  return (\n    <UserContext.Provider value={providerState}>\n      {children}\n    </UserContext.Provider>\n  );\n}\n","// this regex is to satisfy k8s label validation rules\n// alphanumeric, lowercase, uppercase, can contain dashes, dots and underscores, max 63 characters\nexport const KUBE_STACK_NAME_VALIDATION_REGEX =\n  /^(([a-zA-Z0-9](?:(?:[-a-zA-Z0-9_.]){0,61}[a-zA-Z0-9])?))$/;\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { BETeaserButton } from '@@/BETeaserButton';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nexport function AnnotationsBeTeaser() {\n  return (\n    <div className=\"col-sm-12 text-muted mb-2 block px-0\">\n      <div className=\"control-label !mb-2 text-left font-medium\">\n        Annotations\n        <Tooltip\n          message={\n            <div className=\"vertical-center\">\n              <span>\n                Allows specifying of{' '}\n                <a\n                  href=\"https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/\"\n                  target=\"_black\"\n                >\n                  annotations\n                </a>{' '}\n                for the object. See further Kubernetes documentation on{' '}\n                <a\n                  href=\"https://kubernetes.io/docs/reference/labels-annotations-taints/\"\n                  target=\"_black\"\n                >\n                  well-known annotations\n                </a>\n                .\n              </span>\n            </div>\n          }\n        />\n      </div>\n      <div className=\"block\">\n        <BETeaserButton\n          className=\"!p-0\"\n          heading=\"Add annotation\"\n          buttonText=\"Add annotation\"\n          message=\"Allows specifying of annotations on this resource.\"\n          featureId={FeatureId.K8S_ANNOTATIONS}\n          buttonClassName=\"!ml-0\"\n        />\n      </div>\n    </div>\n  );\n}\n","import { compare } from 'fast-json-patch';\nimport { Service, ServiceSpec } from 'kubernetes-types/core/v1';\nimport { ObjectMeta } from 'kubernetes-types/meta/v1';\n\nimport { Ingress as IngressFormValues } from '@/react/kubernetes/ingresses/types';\n\nimport {\n  appNameLabel,\n  appOwnerLabel,\n  appStackNameLabel,\n} from '../../constants';\n\nimport { ServiceFormValues, ServicePort } from './types';\n\nexport function newPort(serviceName?: string): ServicePort {\n  return {\n    port: 80,\n    targetPort: undefined,\n    name: '',\n    protocol: 'TCP',\n    nodePort: undefined,\n    serviceName,\n  };\n}\n\nfunction generateIndexedName(appName: string, index: number) {\n  return index === 0 ? appName : `${appName}-${index}`;\n}\n\nfunction isNameUnique(name: string, services: ServiceFormValues[]) {\n  return !services.find((service) => service.Name === name);\n}\n\nexport function generateUniqueName(\n  appName: string,\n  index: number,\n  services: ServiceFormValues[]\n) {\n  let initialIndex = index;\n  let uniqueName = appName;\n\n  while (!isNameUnique(uniqueName, services)) {\n    uniqueName = generateIndexedName(appName, initialIndex);\n    initialIndex++;\n  }\n\n  return uniqueName;\n}\n\nexport const serviceFormDefaultValues: ServiceFormValues = {\n  Headless: false,\n  Namespace: '',\n  Name: '',\n  StackName: '',\n  Ports: [],\n  Type: 'ClusterIP',\n  ClusterIP: '',\n  ApplicationName: '',\n  ApplicationOwner: '',\n  Note: '',\n  Ingress: false,\n  Selector: {},\n};\n\n/**\n * Generates new Ingress objects from form path data\n * @param {IngressFormValues[]} oldIngresses - The old Ingress objects\n * @param {ServicePort[]} newServicesPorts - The new ServicePort objects from the form\n * @param {ServicePort[]} oldServicesPorts - The old ServicePort objects\n * @returns {IngressFormValues[]} The new Ingress objects\n */\nexport function generateNewIngressesFromFormPaths(\n  oldIngresses?: IngressFormValues[],\n  newServicesPorts?: ServicePort[],\n  oldServicesPorts?: ServicePort[]\n): IngressFormValues[] {\n  // filter the ports to only the ones that have an ingress\n  const oldIngressPaths = oldServicesPorts\n    ?.flatMap((port) => port.ingressPaths)\n    .filter((ingressPath) => ingressPath?.IngressName);\n  const newPortsWithIngress = newServicesPorts?.filter(\n    (port) => port.ingressPaths?.length\n  );\n  // return early if possible\n  if (!oldIngresses && !newPortsWithIngress) {\n    return [];\n  }\n\n  // remove the old paths from the newIngresses copy\n  const newIngresses = structuredClone(oldIngresses) ?? [];\n  oldIngressPaths?.forEach((oldIngressPath) => {\n    if (!oldIngressPath?.Path) return;\n    const newMatchingIng = newIngresses?.find(\n      (ingress) => ingress.Name === oldIngressPath.IngressName\n    );\n    if (!newMatchingIng) return;\n\n    // remove the old path from the new ingress\n    const oldPathIndex = newMatchingIng?.Paths?.findIndex(\n      (path) =>\n        path.Path === prependWithSlash(oldIngressPath.Path) &&\n        path.Host === oldIngressPath.Host\n    );\n    if (oldPathIndex === -1 || oldPathIndex === undefined) return;\n    if (newMatchingIng.Paths) {\n      newMatchingIng.Paths = [\n        ...newMatchingIng.Paths.slice(0, oldPathIndex),\n        ...newMatchingIng.Paths.slice(oldPathIndex + 1),\n      ];\n    }\n\n    // update the new ingresses with the newMatchingIng\n    const newIngIndex = newIngresses.findIndex(\n      (ingress) => ingress.Name === newMatchingIng.Name\n    );\n    newIngresses[newIngIndex] = newMatchingIng;\n  });\n\n  // and add the new paths to return the updated ingresses\n  newPortsWithIngress?.forEach(\n    ({ ingressPaths: newIngresspaths, ...servicePort }) => {\n      newIngresspaths?.forEach((newIngressPath) => {\n        if (!newIngressPath?.Path) return;\n        const newMatchingIng = newIngresses.find(\n          (ingress) => ingress.Name === newIngressPath?.IngressName\n        );\n        if (!newMatchingIng) return;\n\n        // add the new path to the new ingress\n        if (\n          newIngressPath.Host &&\n          newIngressPath.IngressName &&\n          servicePort.serviceName &&\n          servicePort.port\n        ) {\n          newMatchingIng.Paths = [\n            ...(newMatchingIng.Paths ?? []),\n            {\n              Path: prependWithSlash(newIngressPath.Path),\n              Host: newIngressPath.Host,\n              IngressName: newIngressPath.IngressName,\n              ServiceName: servicePort.serviceName,\n              Port: servicePort.port,\n              PathType: 'Prefix',\n            },\n          ];\n        }\n        // update the new ingresses with the newMatchingIng\n        const newIngIndex = newIngresses.findIndex(\n          (ingress) => ingress.Name === newMatchingIng.Name\n        );\n        newIngresses[newIngIndex] = newMatchingIng;\n      });\n    }\n  );\n  return newIngresses;\n}\n\n/** prependWithSlash puts a '/' in front of a string if there isn't one there already. If the string is empty, it stays empty */\nexport function prependWithSlash(path?: string) {\n  if (!path) return '';\n  return path.startsWith('/') ? path : `/${path}`;\n}\n\nexport function getServicePatchPayload(\n  oldService: ServiceFormValues,\n  newService: ServiceFormValues\n) {\n  const oldPayload = getServicePayload(oldService);\n  const newPayload = getServicePayload(newService);\n\n  const payload = compare(oldPayload, newPayload);\n  return payload;\n}\n\nfunction getServicePayload(service: ServiceFormValues): Service {\n  if (!service.Name || !service.Namespace) {\n    throw new Error('Service name and namespace are required');\n  }\n\n  // metadata\n  const labels: Record<string, string> = {};\n  if (service.ApplicationName) {\n    labels[appNameLabel] = service.ApplicationName;\n  }\n  if (service.ApplicationOwner) {\n    labels[appOwnerLabel] = service.ApplicationOwner;\n  }\n  if (service.StackName) {\n    labels[appStackNameLabel] = service.StackName;\n  }\n  const metadata: ObjectMeta = {\n    name: service.Name,\n    namespace: service.Namespace,\n    labels,\n  };\n\n  // spec\n  const ports = service.Headless ? [] : service.Ports;\n  const selector = service.Selector;\n  const clusterIP = service.Headless ? 'None' : service.ClusterIP;\n  const type = service.Headless ? 'ClusterIP' : service.Type;\n  const spec: ServiceSpec = {\n    ports,\n    selector,\n    clusterIP,\n    type,\n  };\n\n  const servicePayload: Service = {\n    apiVersion: 'v1',\n    kind: 'Service',\n    metadata,\n    spec,\n  };\n  return servicePayload;\n}\n","import { AppKind, DeploymentType } from './types';\n\n// Portainer specific labels\nexport const appStackNameLabel = 'io.portainer.kubernetes.application.stack';\nexport const appStackIdLabel = 'io.portainer.kubernetes.application.stackid';\nexport const appOwnerLabel = 'io.portainer.kubernetes.application.owner';\nexport const appNoteAnnotation = 'io.portainer.kubernetes.application.note';\nexport const appDeployMethodLabel = 'io.portainer.kubernetes.application.kind';\nexport const defaultDeploymentUniqueLabel = 'pod-template-hash';\nexport const appNameLabel = 'io.portainer.kubernetes.application.name';\n\nexport const appRevisionAnnotation = 'deployment.kubernetes.io/revision';\n\n// unchangedAnnotationKeysForRollbackPatch lists the annotations that should be preserved from the deployment and not\n// copied from the replicaset when rolling a deployment back\nexport const unchangedAnnotationKeysForRollbackPatch = [\n  'kubectl.kubernetes.io/last-applied-configuration',\n  appRevisionAnnotation,\n  'deployment.kubernetes.io/revision-history',\n  'deployment.kubernetes.io/desired-replicas',\n  'deployment.kubernetes.io/max-replicas',\n  'deprecated.deployment.rollback.to',\n  'deprecated.daemonset.template.generation',\n];\n\nexport const appKindToDeploymentTypeMap: Record<\n  AppKind,\n  DeploymentType | null\n> = {\n  Deployment: 'Replicated',\n  StatefulSet: 'Replicated',\n  DaemonSet: 'Global',\n  Pod: null,\n} as const;\n","import { Status } from 'kubernetes-types/meta/v1';\nimport { AxiosError } from 'axios';\n\nimport {\n  defaultErrorParser,\n  parseAxiosError,\n} from '@/portainer/services/axios';\n\nexport function kubernetesErrorParser(axiosError: AxiosError) {\n  const responseStatus = axiosError.response?.data as Status;\n  const { message } = responseStatus;\n  if (message) {\n    return {\n      error: new Error(message),\n      details: message,\n    };\n  }\n  return defaultErrorParser(axiosError);\n}\n\n/**\n * Parses an Axios error response from the Kubernetes API.\n * @param err The Axios error object.\n * @param msg An optional error message to prepend.\n * @returns An error object with an error message and details.\n */\nexport function parseKubernetesAxiosError(err: unknown, msg = '') {\n  return parseAxiosError(err, msg, kubernetesErrorParser);\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\n\nexport function useIsRBACEnabledQuery(environmentId: EnvironmentId) {\n  return useQuery<boolean, Error>(\n    ['environments', environmentId, 'rbacEnabled'],\n    () => getIsRBACEnabled(environmentId),\n    {\n      enabled: !!environmentId,\n      ...withError('Unable to check if RBAC is enabled.'),\n    }\n  );\n}\n\nexport async function getIsRBACEnabled(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<boolean>(\n      `kubernetes/${environmentId}/rbac_enabled`\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to check if RBAC is enabled.');\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { IngressControllerClassMap } from './types';\n\nexport function useIngressControllerClassMapQuery({\n  environmentId,\n  namespace,\n  allowedOnly,\n}: {\n  environmentId?: EnvironmentId;\n  namespace?: string;\n  allowedOnly?: boolean;\n}) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'ingresscontrollers',\n      namespace,\n      allowedOnly,\n    ],\n    () => {\n      if (!environmentId) {\n        return [];\n      }\n      return getIngressControllerClassMap({\n        environmentId,\n        namespace,\n        allowedOnly,\n      });\n    },\n    {\n      ...withError('Failure', 'Unable to get ingress controllers.'),\n      enabled: !!environmentId,\n    }\n  );\n}\n\n// get all supported ingress classes and controllers for the cluster\n// allowedOnly set to true will hide globally disallowed ingresscontrollers\nexport async function getIngressControllerClassMap({\n  environmentId,\n  namespace,\n  allowedOnly,\n}: {\n  environmentId: EnvironmentId;\n  namespace?: string;\n  allowedOnly?: boolean;\n}) {\n  try {\n    const { data: controllerMaps } = await axios.get<\n      IngressControllerClassMap[]\n    >(\n      buildUrl(environmentId, namespace),\n      allowedOnly ? { params: { allowedOnly: true } } : undefined\n    );\n    return controllerMaps;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to get ingress controllers.');\n  }\n}\n\n// get all supported ingress classes and controllers for the cluster\nexport async function updateIngressControllerClassMap(\n  environmentId: EnvironmentId,\n  ingressControllerClassMap: IngressControllerClassMap[],\n  namespace?: string\n) {\n  try {\n    const { data: controllerMaps } = await axios.put<\n      IngressControllerClassMap[]\n    >(buildUrl(environmentId, namespace), ingressControllerClassMap);\n    return controllerMaps;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to update ingress controllers.');\n  }\n}\n\nfunction buildUrl(environmentId: EnvironmentId, namespace?: string) {\n  let url = `kubernetes/${environmentId}/`;\n  if (namespace) {\n    url += `namespaces/${namespace}/`;\n  }\n  url += 'ingresscontrollers';\n  return url;\n}\n","import { FileCode, Lock } from 'lucide-react';\n\nimport { KubernetesConfigurationKinds } from '@/kubernetes/models/configuration/models';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport const typeOptions: ReadonlyArray<BoxSelectorOption<number>> = [\n  {\n    id: 'type_basic',\n    value: KubernetesConfigurationKinds.CONFIGMAP,\n    icon: FileCode,\n    iconType: 'badge',\n    label: 'ConfigMap',\n    description: 'This kind holds non-sensitive information',\n  },\n  {\n    id: 'type_secret',\n    value: KubernetesConfigurationKinds.SECRET,\n    icon: Lock,\n    iconType: 'badge',\n    label: 'Secret',\n    description: 'This kind holds sensitive information',\n  },\n] as const;\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Ingress, DeleteIngressesRequest, IngressController } from './types';\n\nexport async function getIngress(\n  environmentId: EnvironmentId,\n  namespace: string,\n  ingressName: string\n) {\n  try {\n    const { data: ingress } = await axios.get<Ingress[]>(\n      buildUrl(environmentId, namespace, ingressName)\n    );\n    return ingress[0];\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve the ingress');\n  }\n}\n\nexport async function getIngresses(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  try {\n    const { data: ingresses } = await axios.get<Ingress[]>(\n      buildUrl(environmentId, namespace)\n    );\n    return ingresses;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve ingresses');\n  }\n}\n\nexport async function getIngressControllers(\n  environmentId: EnvironmentId,\n  namespace: string,\n  allowedOnly?: boolean\n) {\n  try {\n    const { data: ingresscontrollers } = await axios.get<IngressController[]>(\n      `kubernetes/${environmentId}/namespaces/${namespace}/ingresscontrollers`,\n      allowedOnly ? { params: { allowedOnly: true } } : undefined\n    );\n    return ingresscontrollers;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve ingresses');\n  }\n}\n\nexport async function createIngress(\n  environmentId: EnvironmentId,\n  ingress: Ingress\n) {\n  try {\n    return await axios.post(\n      buildUrl(environmentId, ingress.Namespace),\n      ingress\n    );\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to create an ingress');\n  }\n}\n\nexport async function updateIngress(\n  environmentId: EnvironmentId,\n  ingress: Ingress\n) {\n  try {\n    return await axios.put(buildUrl(environmentId, ingress.Namespace), ingress);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update an ingress');\n  }\n}\n\nexport async function deleteIngresses(\n  environmentId: EnvironmentId,\n  data: DeleteIngressesRequest\n) {\n  try {\n    return await axios.post(\n      `kubernetes/${environmentId}/ingresses/delete`,\n      data\n    );\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete ingresses');\n  }\n}\n\nfunction buildUrl(\n  environmentId: EnvironmentId,\n  namespace: string,\n  ingressName?: string\n) {\n  let url = `kubernetes/${environmentId}/namespaces/${namespace}/ingresses`;\n\n  if (ingressName) {\n    url += `/${ingressName}`;\n  }\n\n  return url;\n}\n","import axios from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\ninterface SelfSubjectAccessReviewResponse {\n  status: {\n    allowed: boolean;\n  };\n  spec: {\n    resourceAttributes: {\n      namespace: string;\n    };\n  };\n}\n\n/**\n * getSelfSubjectAccessReview is used to retrieve the self subject access review for a given namespace.\n * It's great to use this to determine if a user has access to a namespace.\n * @returns the self subject access review for the given namespace\n * */\nexport async function getSelfSubjectAccessReview(\n  environmentId: EnvironmentId,\n  namespaceName: string,\n  verb = 'list',\n  resource = 'deployments',\n  group = 'apps'\n) {\n  try {\n    const { data: accessReview } =\n      await axios.post<SelfSubjectAccessReviewResponse>(\n        `endpoints/${environmentId}/kubernetes/apis/authorization.k8s.io/v1/selfsubjectaccessreviews`,\n        {\n          spec: {\n            resourceAttributes: {\n              group,\n              resource,\n              verb,\n              namespace: namespaceName,\n            },\n          },\n          apiVersion: 'authorization.k8s.io/v1',\n          kind: 'SelfSubjectAccessReview',\n        }\n      );\n    return accessReview;\n  } catch (e) {\n    throw parseKubernetesAxiosError(\n      e,\n      'Unable to retrieve self subject access review'\n    );\n  }\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Service } from './types';\n\nexport async function getServices(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  try {\n    const { data: services } = await axios.get<Service[]>(\n      buildUrl(environmentId, namespace)\n    );\n    return services;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve services');\n  }\n}\n\nfunction buildUrl(environmentId: EnvironmentId, namespace: string) {\n  const url = `kubernetes/${environmentId}/namespaces/${namespace}/services`;\n  return url;\n}\n","import { useMutation, useQuery, useQueryClient } from 'react-query';\nimport { compact } from 'lodash';\nimport { ServiceList } from 'kubernetes-types/core/v1';\n\nimport { withError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { isFulfilled } from '@/portainer/helpers/promise-utils';\nimport {\n  Service,\n  NodeMetrics,\n  NodeMetric,\n} from '@/react/kubernetes/services/types';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\nexport const queryKeys = {\n  clusterServices: (environmentId: EnvironmentId) =>\n    ['environments', environmentId, 'kubernetes', 'services'] as const,\n};\n\nexport function useServicesForCluster(\n  environmentId: EnvironmentId,\n  namespaceNames?: string[],\n  options?: { autoRefreshRate?: number; lookupApplications?: boolean }\n) {\n  return useQuery(\n    queryKeys.clusterServices(environmentId),\n    async () => {\n      if (!namespaceNames?.length) {\n        return [];\n      }\n      const settledServicesPromise = await Promise.allSettled(\n        namespaceNames.map((namespace) =>\n          getServices(environmentId, namespace, options?.lookupApplications)\n        )\n      );\n      return compact(\n        settledServicesPromise.filter(isFulfilled).flatMap((i) => i.value)\n      );\n    },\n    {\n      ...withError('Unable to get services.'),\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n      enabled: !!namespaceNames?.length,\n    }\n  );\n}\n\n// get a list of services, based on an array of service names, for a specific namespace\nexport function useServicesQuery<T extends Service | string = Service>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  serviceNames: string[],\n  options?: { yaml?: boolean }\n) {\n  return useQuery(\n    ['environments', environmentId, 'kubernetes', 'services', serviceNames],\n    async () => {\n      // promise.all is best in this case because I want to return an error if even one service request has an error\n      const services = await Promise.all(\n        serviceNames.map((serviceName) =>\n          getService<T>(environmentId, namespace, serviceName, options?.yaml)\n        )\n      );\n      return services;\n    },\n    {\n      ...withError('Unable to retrieve services.'),\n      enabled: !!serviceNames?.length,\n    }\n  );\n}\n\nexport function useMutationDeleteServices(environmentId: EnvironmentId) {\n  const queryClient = useQueryClient();\n  return useMutation(deleteServices, {\n    onSuccess: () =>\n      queryClient.invalidateQueries(queryKeys.clusterServices(environmentId)),\n    ...withError('Unable to delete service(s)'),\n  });\n}\n\n// get a list of services for a specific namespace from the Portainer API\nexport async function getServices(\n  environmentId: EnvironmentId,\n  namespace: string,\n  lookupApplications?: boolean\n) {\n  try {\n    const { data: services } = await axios.get<Array<Service>>(\n      `kubernetes/${environmentId}/namespaces/${namespace}/services`,\n      {\n        params: {\n          lookupapplications: lookupApplications,\n        },\n      }\n    );\n    return services;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to retrieve services');\n  }\n}\n\n// getNamespaceServices is used to get a list of services for a specific namespace\n// it calls the kubernetes api directly and not the portainer api\nexport async function getNamespaceServices(\n  environmentId: EnvironmentId,\n  namespace: string,\n  queryParams?: Record<string, string>\n) {\n  try {\n    const { data: services } = await axios.get<ServiceList>(\n      `/endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespace}/services`,\n      {\n        params: queryParams,\n      }\n    );\n    return services.items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve services');\n  }\n}\n\nasync function getService<T extends Service | string = Service>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  serviceName: string,\n  yaml?: boolean\n) {\n  try {\n    const { data: service } = await axios.get<T>(\n      `/endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespace}/services/${serviceName}`,\n      {\n        headers: {\n          Accept: yaml ? 'application/yaml' : 'application/json',\n        },\n      }\n    );\n    return service;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve service');\n  }\n}\n\nexport async function deleteServices({\n  environmentId,\n  data,\n}: {\n  environmentId: EnvironmentId;\n  data: Record<string, string[]>;\n}) {\n  try {\n    return await axios.post(\n      `kubernetes/${environmentId}/services/delete`,\n      data\n    );\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete service(s)');\n  }\n}\n\nexport async function getMetricsForAllNodes(environmentId: EnvironmentId) {\n  try {\n    const { data: nodes } = await axios.get<NodeMetrics>(\n      `kubernetes/${environmentId}/metrics/nodes`,\n      {}\n    );\n    return nodes;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve metrics for all nodes'\n    );\n  }\n}\n\nexport async function getMetricsForNode(\n  environmentId: EnvironmentId,\n  nodeName: string\n) {\n  try {\n    const { data: node } = await axios.get<NodeMetric>(\n      `kubernetes/${environmentId}/metrics/nodes/${nodeName}`,\n      {}\n    );\n    return node;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve metrics for node');\n  }\n}\n\nexport async function getMetricsForAllPods(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  try {\n    const { data: pods } = await axios.get(\n      `kubernetes/${environmentId}/metrics/pods/namespace/${namespace}`,\n      {}\n    );\n    return pods;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve metrics for all pods'\n    );\n  }\n}\n\nexport async function getMetricsForPod(\n  environmentId: EnvironmentId,\n  namespace: string,\n  podName: string\n) {\n  try {\n    const { data: pod } = await axios.get(\n      `kubernetes/${environmentId}/metrics/pods/namespace/${namespace}/${podName}`,\n      {}\n    );\n    return pod;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve metrics for pod');\n  }\n}\n","import { components, OptionProps } from 'react-select';\n\nimport { useLocalStorage } from '@/react/hooks/useLocalStorage';\n\nimport {\n  type Option as OptionType,\n  PortainerSelect,\n} from '@@/form-components/PortainerSelect';\n\ninterface Props<TValue = number> {\n  filterOptions?: OptionType<TValue>[];\n  onChange: (value: TValue[]) => void;\n  placeHolder: string;\n  value: TValue[];\n}\n\nfunction Option<TValue = number>(props: OptionProps<OptionType<TValue>, true>) {\n  const { isSelected, label } = props;\n  return (\n    <div>\n      <components.Option\n        // eslint-disable-next-line react/jsx-props-no-spreading\n        {...props}\n      >\n        <div className=\"flex items-center gap-2\">\n          <input type=\"checkbox\" checked={isSelected} onChange={() => null} />\n          <label className=\"whitespace-nowrap\">{label}</label>\n        </div>\n      </components.Option>\n    </div>\n  );\n}\n\nexport function HomepageFilter<TValue = number>({\n  filterOptions = [],\n  onChange,\n  placeHolder,\n  value,\n}: Props<TValue>) {\n  return (\n    <PortainerSelect<TValue>\n      placeholder={placeHolder}\n      options={filterOptions}\n      value={value}\n      isMulti\n      components={{ Option }}\n      onChange={(option) => onChange([...option])}\n      bindToBody\n    />\n  );\n}\n\nexport function useHomePageFilter<T>(\n  key: string,\n  defaultValue: T\n): [T, (value: T) => void] {\n  const filterKey = keyBuilder(key);\n  return useLocalStorage(filterKey, defaultValue, sessionStorage);\n}\n\nfunction keyBuilder(key: string) {\n  return `datatable_home_filter_type_${key}`;\n}\n","import { object, mixed, array, number, SchemaOf } from 'yup';\n\nimport { AccessControlFormData, ResourceControlOwnership } from '../types';\n\nexport function validationSchema(\n  isAdmin: boolean\n): SchemaOf<AccessControlFormData> {\n  return object()\n    .shape({\n      ownership: mixed<ResourceControlOwnership>()\n        .oneOf(Object.values(ResourceControlOwnership))\n        .required(),\n      authorizedUsers: array(number().default(0)),\n      authorizedTeams: array(number().default(0)),\n    })\n    .test(\n      'user-and-team',\n      isAdmin\n        ? 'You must specify at least one team or user.'\n        : 'You must specify at least one team.',\n      ({ ownership, authorizedTeams, authorizedUsers }) => {\n        if (ownership !== ResourceControlOwnership.RESTRICTED) {\n          return true;\n        }\n\n        if (!isAdmin) {\n          return !!authorizedTeams && authorizedTeams.length > 0;\n        }\n\n        return (\n          !!authorizedTeams &&\n          !!authorizedUsers &&\n          (authorizedTeams.length > 0 || authorizedUsers.length > 0)\n        );\n      }\n    );\n}\n","import { FormikErrors } from 'formik';\n\nimport { useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { EditDetails } from '../EditDetails';\nimport { ResourceControlOwnership, AccessControlFormData } from '../types';\nimport { EnvironmentId } from '../../environments/types';\n\nexport interface Props {\n  values: AccessControlFormData;\n  onChange(values: AccessControlFormData): void;\n  hideTitle?: boolean;\n  formNamespace?: string;\n  errors?: FormikErrors<AccessControlFormData>;\n  environmentId: EnvironmentId;\n}\n\nexport function AccessControlForm({\n  values,\n  onChange,\n  hideTitle,\n  formNamespace,\n  errors,\n  environmentId,\n}: Props) {\n  const isAdminQuery = useIsEdgeAdmin();\n\n  if (isAdminQuery.isLoading) {\n    return null;\n  }\n\n  const { isAdmin } = isAdminQuery;\n\n  const accessControlEnabled =\n    values.ownership !== ResourceControlOwnership.PUBLIC;\n  return (\n    <>\n      {!hideTitle && <FormSectionTitle>Access control</FormSectionTitle>}\n\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            data-cy=\"portainer-accessMgmtToggle\"\n            checked={accessControlEnabled}\n            name={withNamespace('accessControlEnabled')}\n            label=\"Enable access control\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            tooltip=\"When enabled, you can restrict the access and management of this resource.\"\n            onChange={handleToggleEnable}\n          />\n        </div>\n      </div>\n\n      {accessControlEnabled && (\n        <EditDetails\n          onChange={onChange}\n          values={values}\n          errors={errors}\n          formNamespace={formNamespace}\n          environmentId={environmentId}\n        />\n      )}\n    </>\n  );\n\n  function withNamespace(name: string) {\n    return formNamespace ? `${formNamespace}.${name}` : name;\n  }\n\n  function handleToggleEnable(accessControlEnabled: boolean) {\n    let ownership = ResourceControlOwnership.PUBLIC;\n    if (accessControlEnabled) {\n      ownership = isAdmin\n        ? ResourceControlOwnership.ADMINISTRATORS\n        : ResourceControlOwnership.PRIVATE;\n    }\n    onChange({ ...values, ownership });\n  }\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\nimport _ from 'lodash';\nimport { Info } from 'lucide-react';\n\nimport { truncate } from '@/portainer/filters/filters';\nimport { UserId } from '@/portainer/users/types';\nimport { TeamId } from '@/react/portainer/users/teams/types';\nimport { useTeams } from '@/react/portainer/users/teams/queries';\nimport { useUsers } from '@/portainer/users/queries';\nimport { pluralize } from '@/portainer/helpers/strings';\nimport { ownershipIcon } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nimport { Link } from '@@/Link';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { Icon } from '@@/Icon';\n\nimport {\n  ResourceControlOwnership,\n  ResourceControlType,\n  ResourceId,\n} from '../types';\nimport { ResourceControlViewModel } from '../models/ResourceControlViewModel';\n\ninterface Props {\n  resourceControl?: ResourceControlViewModel;\n  resourceType: ResourceControlType;\n  isAuthorisedToFetchUsers?: boolean;\n}\n\nexport function AccessControlPanelDetails({\n  resourceControl,\n  resourceType,\n  isAuthorisedToFetchUsers = false,\n}: Props) {\n  const inheritanceMessage = getInheritanceMessage(\n    resourceType,\n    resourceControl\n  );\n\n  const {\n    Ownership: ownership = ResourceControlOwnership.ADMINISTRATORS,\n    UserAccesses: restrictedToUsers = [],\n    TeamAccesses: restrictedToTeams = [],\n  } = resourceControl || {};\n\n  const users = useAuthorizedUsers(\n    restrictedToUsers.map((ra) => ra.UserId),\n    isAuthorisedToFetchUsers\n  );\n  const teams = useAuthorizedTeams(restrictedToTeams.map((ra) => ra.TeamId));\n\n  const teamsLength = teams.data ? teams.data.length : 0;\n  const unauthoisedTeams = restrictedToTeams.length - teamsLength;\n\n  let teamsMessage = teams.data && teams.data.join(', ');\n  if (unauthoisedTeams > 0 && teams.isFetched) {\n    teamsMessage += teamsLength > 0 ? ' and' : '';\n    teamsMessage += ` ${unauthoisedTeams} ${pluralize(\n      unauthoisedTeams,\n      'team'\n    )} you are not part of`;\n  }\n\n  const userMessage = users.data\n    ? users.data.join(', ')\n    : `${restrictedToUsers.length} ${pluralize(\n        restrictedToUsers.length,\n        'user'\n      )}`;\n\n  return (\n    <table className=\"table\">\n      <tbody>\n        <tr data-cy=\"access-ownership\">\n          <td className=\"w-1/5\">Ownership</td>\n          <td>\n            <i\n              className={clsx(ownershipIcon(ownership), 'space-right')}\n              aria-hidden=\"true\"\n              aria-label=\"ownership-icon\"\n            />\n            <span aria-label=\"ownership\">{ownership}</span>\n            <Tooltip message={getOwnershipTooltip(ownership)} />\n          </td>\n        </tr>\n        {inheritanceMessage}\n        {restrictedToUsers.length > 0 && (\n          <tr data-cy=\"access-authorisedUsers\">\n            <td>Authorized users</td>\n            <td aria-label=\"authorized-users\">{userMessage}</td>\n          </tr>\n        )}\n        {restrictedToTeams.length > 0 && (\n          <tr data-cy=\"access-authorisedTeams\">\n            <td>Authorized teams</td>\n            <td aria-label=\"authorized-teams\">{teamsMessage}</td>\n          </tr>\n        )}\n      </tbody>\n    </table>\n  );\n}\n\nfunction getOwnershipTooltip(ownership: ResourceControlOwnership) {\n  switch (ownership) {\n    case ResourceControlOwnership.PRIVATE:\n      return 'Management of this resource is restricted to a single user.';\n    case ResourceControlOwnership.RESTRICTED:\n      return 'This resource can be managed by a restricted set of users and/or teams.';\n    case ResourceControlOwnership.PUBLIC:\n      return 'This resource can be managed by any user with access to this environment.';\n    case ResourceControlOwnership.ADMINISTRATORS:\n    default:\n      return 'This resource can only be managed by administrators.';\n  }\n}\n\nfunction getInheritanceMessage(\n  resourceType: ResourceControlType,\n  resourceControl?: ResourceControlViewModel\n) {\n  if (!resourceControl || resourceControl.Type === resourceType) {\n    return null;\n  }\n\n  const parentType = resourceControl.Type;\n  const resourceId = resourceControl.ResourceId;\n\n  if (\n    resourceType === ResourceControlType.Container &&\n    parentType === ResourceControlType.Service\n  ) {\n    return (\n      <InheritanceMessage tooltip=\"Access control applied on a service is also applied on each container of that service.\">\n        Access control on this resource is inherited from the following service:\n        <Link to=\"docker.services.service\" params={{ id: resourceId }}>\n          {truncate(resourceId)}\n        </Link>\n      </InheritanceMessage>\n    );\n  }\n\n  if (\n    resourceType === ResourceControlType.Volume &&\n    parentType === ResourceControlType.Container\n  ) {\n    return (\n      <InheritanceMessage tooltip=\"Access control applied on a container created using a template is also applied on each volume associated to the container.\">\n        Access control on this resource is inherited from the following\n        container:\n        <Link to=\"docker.containers.container\" params={{ id: resourceId }}>\n          {truncate(resourceId)}\n        </Link>\n      </InheritanceMessage>\n    );\n  }\n\n  if (parentType === ResourceControlType.Stack) {\n    return (\n      <InheritanceMessage tooltip=\"Access control applied on a stack is also applied on each resource in the stack.\">\n        <span className=\"space-right\">\n          Access control on this resource is inherited from the following stack:\n        </span>\n        {removeEndpointIdFromStackResourceId(resourceId)}\n      </InheritanceMessage>\n    );\n  }\n\n  return null;\n}\n\nfunction removeEndpointIdFromStackResourceId(stackName: ResourceId) {\n  if (!stackName || typeof stackName !== 'string') {\n    return stackName;\n  }\n\n  const firstUnderlineIndex = stackName.indexOf('_');\n  if (firstUnderlineIndex < 0) {\n    return stackName;\n  }\n  return stackName.substring(firstUnderlineIndex + 1);\n}\n\ninterface InheritanceMessageProps {\n  tooltip: string;\n}\n\nfunction InheritanceMessage({\n  children,\n  tooltip,\n}: PropsWithChildren<InheritanceMessageProps>) {\n  return (\n    <tr>\n      <td colSpan={2} aria-label=\"inheritance-message\">\n        <Icon icon={Info} mode=\"primary\" className=\"mr-1\" />\n        {children}\n        <Tooltip message={tooltip} />\n      </td>\n    </tr>\n  );\n}\n\nfunction useAuthorizedTeams(authorizedTeamIds: TeamId[]) {\n  return useTeams(false, 0, {\n    enabled: authorizedTeamIds.length > 0,\n    select: (teams) => {\n      if (authorizedTeamIds.length === 0) {\n        return [];\n      }\n\n      return _.compact(\n        authorizedTeamIds.map((id) => {\n          const team = teams.find((u) => u.Id === id);\n          return team?.Name;\n        })\n      );\n    },\n  });\n}\n\nfunction useAuthorizedUsers(authorizedUserIds: UserId[], enabled = true) {\n  return useUsers(\n    false,\n    0,\n    authorizedUserIds.length > 0 && enabled,\n    (users) => {\n      if (authorizedUserIds.length === 0) {\n        return [];\n      }\n\n      return _.compact(\n        authorizedUserIds.map((id) => {\n          const user = users.find((u) => u.Id === id);\n          return user?.Username;\n        })\n      );\n    }\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"app-react-portainer-access-control-AccessControlPanel-AccessControlPanelForm-module__form\"};","import { Form, Formik } from 'formik';\nimport clsx from 'clsx';\nimport { useMutation } from 'react-query';\nimport { object } from 'yup';\n\nimport { useCurrentUser, useIsEdgeAdmin } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { confirm } from '@@/modals/confirm';\nimport { Button } from '@@/buttons';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { ModalType } from '@@/modals';\n\nimport { EditDetails } from '../EditDetails';\nimport { parseAccessControlFormData } from '../utils';\nimport { validationSchema } from '../AccessControlForm/AccessControlForm.validation';\nimport { applyResourceControlChange } from '../access-control.service';\nimport {\n  ResourceControlType,\n  ResourceId,\n  AccessControlFormData,\n} from '../types';\nimport { ResourceControlViewModel } from '../models/ResourceControlViewModel';\n\nimport styles from './AccessControlPanelForm.module.css';\n\ninterface Props {\n  resourceType: ResourceControlType;\n  resourceId: ResourceId;\n  resourceControl?: ResourceControlViewModel;\n  environmentId: EnvironmentId;\n  onCancelClick(): void;\n  onUpdateSuccess(): Promise<void>;\n}\n\nexport function AccessControlPanelForm({\n  resourceId,\n  resourceType,\n  resourceControl,\n  environmentId,\n  onCancelClick,\n  onUpdateSuccess,\n}: Props) {\n  const { user } = useCurrentUser();\n  const isAdminQuery = useIsEdgeAdmin();\n\n  const updateAccess = useMutation(\n    (variables: AccessControlFormData) =>\n      applyResourceControlChange(\n        resourceType,\n        resourceId,\n        variables,\n        resourceControl\n      ),\n    {\n      meta: {\n        error: { title: 'Failure', message: 'Unable to update access control' },\n      },\n      onSuccess() {\n        return onUpdateSuccess();\n      },\n    }\n  );\n\n  if (isAdminQuery.isLoading) {\n    return null;\n  }\n\n  const { isAdmin } = isAdminQuery;\n\n  const initialValues = {\n    accessControl: parseAccessControlFormData(\n      isAdmin,\n      user.Id,\n      resourceControl\n    ),\n  };\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validateOnMount\n      validateOnChange\n      validationSchema={() =>\n        object({ accessControl: validationSchema(isAdmin) })\n      }\n    >\n      {({ setFieldValue, values, isSubmitting, isValid, errors }) => (\n        <Form className={clsx('form-horizontal', styles.form)}>\n          <EditDetails\n            onChange={(accessControl) =>\n              setFieldValue('accessControl', accessControl)\n            }\n            values={values.accessControl}\n            isPublicVisible\n            errors={errors.accessControl}\n            environmentId={environmentId}\n          />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <Button size=\"small\" color=\"default\" onClick={onCancelClick}>\n                Cancel\n              </Button>\n              <LoadingButton\n                size=\"small\"\n                color=\"primary\"\n                type=\"submit\"\n                isLoading={isSubmitting}\n                disabled={!isValid}\n                loadingText=\"Updating Ownership\"\n              >\n                Update Ownership\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  async function handleSubmit({\n    accessControl,\n  }: {\n    accessControl: AccessControlFormData;\n  }) {\n    const confirmed = await confirmAccessControlUpdate();\n    if (!confirmed) {\n      return;\n    }\n\n    updateAccess.mutate(accessControl, {\n      onSuccess() {\n        notifySuccess('Success', 'Access control successfully updated');\n      },\n    });\n  }\n}\n\nfunction confirmAccessControlUpdate() {\n  return confirm({\n    modalType: ModalType.Warn,\n    title: 'Are you sure?',\n    message:\n      'Changing the ownership of this resource will potentially restrict its management to some users.',\n    confirmButton: buildConfirmButton('Change ownership'),\n  });\n}\n","import { useReducer } from 'react';\nimport { Edit, Eye } from 'lucide-react';\n\nimport { Icon } from '@/react/components/Icon';\nimport { TeamMembership, TeamRole } from '@/react/portainer/users/teams/types';\nimport {\n  useIsCurrentUserTeamLeader,\n  useUserMembership,\n} from '@/portainer/users/queries';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useCurrentUser, useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { TableContainer, TableTitle } from '@@/datatables';\nimport { Button } from '@@/buttons';\n\nimport { ResourceControlType, ResourceId } from '../types';\nimport { ResourceControlViewModel } from '../models/ResourceControlViewModel';\n\nimport { AccessControlPanelDetails } from './AccessControlPanelDetails';\nimport { AccessControlPanelForm } from './AccessControlPanelForm';\n\ninterface Props {\n  resourceControl?: ResourceControlViewModel;\n  resourceType: ResourceControlType;\n  resourceId: ResourceId;\n  environmentId: EnvironmentId;\n  disableOwnershipChange?: boolean;\n  onUpdateSuccess(): Promise<void>;\n}\n\nexport function AccessControlPanel({\n  resourceControl,\n  resourceType,\n  disableOwnershipChange,\n  resourceId,\n  environmentId,\n  onUpdateSuccess,\n}: Props) {\n  const [isEditMode, toggleEditMode] = useReducer((state) => !state, false);\n  const isAdminQuery = useIsEdgeAdmin();\n  const isTeamLeader = useIsCurrentUserTeamLeader();\n\n  const isInherited = checkIfInherited();\n\n  const restrictions = useRestrictions(resourceControl);\n\n  if (isAdminQuery.isLoading || !restrictions) {\n    return null;\n  }\n\n  const { isPartOfRestrictedUsers, isLeaderOfAnyRestrictedTeams } =\n    restrictions;\n\n  const { isAdmin } = isAdminQuery;\n\n  const isEditDisabled =\n    disableOwnershipChange ||\n    isInherited ||\n    (!isAdmin && !isPartOfRestrictedUsers && !isLeaderOfAnyRestrictedTeams);\n\n  return (\n    <TableContainer>\n      <TableTitle label=\"Access control\" icon={Eye} />\n      <AccessControlPanelDetails\n        resourceType={resourceType}\n        resourceControl={resourceControl}\n        isAuthorisedToFetchUsers={isAdmin || isTeamLeader}\n      />\n\n      {!isEditDisabled && !isEditMode && (\n        <div className=\"row\">\n          <div>\n            <Button color=\"link\" onClick={toggleEditMode}>\n              <Icon icon={Edit} className=\"space-right\" />\n              Change ownership\n            </Button>\n          </div>\n        </div>\n      )}\n\n      {isEditMode && (\n        <AccessControlPanelForm\n          resourceControl={resourceControl}\n          onCancelClick={() => toggleEditMode()}\n          resourceId={resourceId}\n          resourceType={resourceType}\n          environmentId={environmentId}\n          onUpdateSuccess={handleUpdateSuccess}\n        />\n      )}\n    </TableContainer>\n  );\n\n  async function handleUpdateSuccess() {\n    await onUpdateSuccess();\n    toggleEditMode();\n  }\n\n  function checkIfInherited() {\n    if (!resourceControl) {\n      return false;\n    }\n\n    const inheritedVolume =\n      resourceControl.Type === ResourceControlType.Container &&\n      resourceType === ResourceControlType.Volume;\n    const inheritedContainer =\n      resourceControl.Type === ResourceControlType.Service &&\n      resourceType === ResourceControlType.Container;\n    const inheritedFromStack =\n      resourceControl.Type === ResourceControlType.Stack &&\n      resourceType !== ResourceControlType.Stack;\n\n    return inheritedVolume || inheritedContainer || inheritedFromStack;\n  }\n}\n\nfunction useRestrictions(resourceControl?: ResourceControlViewModel) {\n  const { user } = useCurrentUser();\n  const isAdminQuery = useIsEdgeAdmin();\n  const memberships = useUserMembership(user.Id);\n\n  if (isAdminQuery.isLoading) {\n    return undefined;\n  }\n\n  const { isAdmin } = isAdminQuery;\n\n  if (!resourceControl || isAdmin) {\n    return {\n      isPartOfRestrictedUsers: false,\n      isLeaderOfAnyRestrictedTeams: false,\n    };\n  }\n\n  if (resourceControl.UserAccesses.some((ua) => ua.UserId === user.Id)) {\n    return {\n      isPartOfRestrictedUsers: true,\n      isLeaderOfAnyRestrictedTeams: false,\n    };\n  }\n\n  const isTeamLeader =\n    memberships.isSuccess &&\n    isLeaderOfAnyRestrictedTeams(memberships.data, resourceControl);\n\n  return {\n    isPartOfRestrictedUsers: false,\n    isLeaderOfAnyRestrictedTeams: isTeamLeader,\n  };\n}\n\n// returns true if user is a team leader and resource is limited to this team\nfunction isLeaderOfAnyRestrictedTeams(\n  userMemberships: TeamMembership[],\n  resourceControl: ResourceControlViewModel\n) {\n  return userMemberships.some(\n    (membership) =>\n      membership.Role === TeamRole.Leader &&\n      resourceControl.TeamAccesses.some((ta) => ta.TeamId === membership.TeamID)\n  );\n}\n","import _ from 'lodash';\nimport { useEffect, useState } from 'react';\n\nimport { buildOption } from '@/portainer/components/BoxSelector';\nimport { Team } from '@/react/portainer/users/teams/types';\nimport { ownershipIcon } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nimport { ResourceControlOwnership } from '../types';\n\nconst publicOption: BoxSelectorOption<ResourceControlOwnership> = {\n  value: ResourceControlOwnership.PUBLIC,\n  label: 'Public',\n  id: 'access_public',\n  description:\n    'I want any user with access to this environment to be able to manage this resource',\n  icon: <BadgeIcon icon={ownershipIcon(ResourceControlOwnership.PUBLIC)} />,\n};\n\nexport function useOptions(\n  isAdmin: boolean,\n  teams?: Team[],\n  isPublicVisible = false\n) {\n  const [options, setOptions] = useState<\n    Array<BoxSelectorOption<ResourceControlOwnership>>\n  >([]);\n\n  useEffect(() => {\n    const options = isAdmin ? adminOptions() : nonAdminOptions(teams);\n\n    setOptions(isPublicVisible ? [...options, publicOption] : options);\n  }, [isAdmin, teams, isPublicVisible]);\n\n  return options;\n}\n\nfunction adminOptions() {\n  return [\n    buildOption(\n      'access_administrators',\n      <BadgeIcon\n        icon={ownershipIcon(ResourceControlOwnership.ADMINISTRATORS)}\n      />,\n      'Administrators',\n      'I want to restrict the management of this resource to administrators only',\n      ResourceControlOwnership.ADMINISTRATORS\n    ),\n    buildOption(\n      'access_restricted',\n      <BadgeIcon icon={ownershipIcon(ResourceControlOwnership.RESTRICTED)} />,\n      'Restricted',\n      'I want to restrict the management of this resource to a set of users and/or teams',\n      ResourceControlOwnership.RESTRICTED\n    ),\n  ];\n}\nfunction nonAdminOptions(teams?: Team[]) {\n  return _.compact([\n    buildOption(\n      'access_private',\n      <BadgeIcon icon={ownershipIcon(ResourceControlOwnership.PRIVATE)} />,\n      'Private',\n      'I want to restrict this resource to be manageable by myself only',\n      ResourceControlOwnership.PRIVATE\n    ),\n    teams &&\n      teams.length > 0 &&\n      buildOption(\n        'access_restricted',\n        <BadgeIcon icon={ownershipIcon(ResourceControlOwnership.RESTRICTED)} />,\n        'Restricted',\n        teams.length === 1 ? (\n          <>\n            I want any member of my team (<b>{teams[0].Name}</b>) to be able to\n            manage this resource\n          </>\n        ) : (\n          <>\n            I want to restrict the management of this resource to one or more of\n            my teams\n          </>\n        ),\n        ResourceControlOwnership.RESTRICTED\n      ),\n  ]);\n}\n","import { BoxSelector } from '@@/BoxSelector';\n\nimport { Team } from '../../users/teams/types';\nimport { ResourceControlOwnership } from '../types';\n\nimport { useOptions } from './useOptions';\n\nexport function AccessTypeSelector({\n  name,\n  isAdmin,\n  isPublicVisible,\n  teams,\n  value,\n  onChange,\n}: {\n  name: string;\n  isAdmin: boolean;\n  teams: Team[];\n  isPublicVisible: boolean;\n  value: ResourceControlOwnership;\n  onChange(value: ResourceControlOwnership): void;\n}) {\n  const options = useOptions(isAdmin, teams, isPublicVisible);\n\n  return (\n    <BoxSelector\n      slim\n      radioName={name}\n      value={value}\n      options={options}\n      onChange={onChange}\n    />\n  );\n}\n","import { User } from '@/portainer/users/types';\n\nimport { UsersSelector } from '@@/UsersSelector';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Link } from '@@/Link';\n\ninterface Props {\n  name: string;\n  users: User[];\n  value: number[];\n  onChange(value: number[]): void;\n  errors?: string | string[];\n}\n\nexport function UsersField({ name, users, value, onChange, errors }: Props) {\n  return (\n    <FormControl\n      label=\"Authorized users\"\n      tooltip={\n        users.length > 0\n          ? 'You can select which user(s) will be able to manage this resource.'\n          : undefined\n      }\n      inputId=\"users-selector\"\n      errors={errors}\n    >\n      {users.length > 0 ? (\n        <UsersSelector\n          name={name}\n          users={users}\n          onChange={onChange}\n          value={value}\n          inputId=\"users-selector\"\n        />\n      ) : (\n        <span className=\"small text-muted\">\n          You have not yet created any users. Head over to the{' '}\n          <Link to=\"portainer.users\">Users view</Link> to manage users.\n        </span>\n      )}\n    </FormControl>\n  );\n}\n","import { Team } from '@/react/portainer/users/teams/types';\n\nimport { TeamsSelector } from '@@/TeamsSelector';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Link } from '@@/Link';\n\ninterface Props {\n  name: string;\n  teams: Team[];\n  value: number[];\n  overrideTooltip?: string;\n  onChange(value: number[]): void;\n  errors?: string | string[];\n}\n\nexport function TeamsField({\n  name,\n  teams,\n  value,\n  overrideTooltip,\n  onChange,\n  errors,\n}: Props) {\n  return (\n    <FormControl\n      label=\"Authorized teams\"\n      tooltip={\n        teams.length > 0\n          ? overrideTooltip ||\n            'You can select which team(s) will be able to manage this resource.'\n          : undefined\n      }\n      inputId=\"teams-selector\"\n      errors={errors}\n    >\n      {teams.length > 0 ? (\n        <TeamsSelector\n          name={name}\n          teams={teams}\n          onChange={onChange}\n          value={value}\n          inputId=\"teams-selector\"\n        />\n      ) : (\n        <span className=\"small text-muted\">\n          You have not yet created any teams. Head over to the{' '}\n          <Link to=\"portainer.teams\">Teams view</Link> to manage teams.\n        </span>\n      )}\n    </FormControl>\n  );\n}\n","import { useCallback } from 'react';\nimport { FormikErrors } from 'formik';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { FormError } from '@@/form-components/FormError';\n\nimport { ResourceControlOwnership, AccessControlFormData } from '../types';\n\nimport { UsersField } from './UsersField';\nimport { TeamsField } from './TeamsField';\nimport { useLoadState } from './useLoadState';\nimport { AccessTypeSelector } from './AccessTypeSelector';\n\ninterface Props {\n  values: AccessControlFormData;\n  onChange(values: AccessControlFormData): void;\n  isPublicVisible?: boolean;\n  errors?: FormikErrors<AccessControlFormData>;\n  formNamespace?: string;\n  environmentId: EnvironmentId;\n}\n\nexport function EditDetails({\n  values,\n  onChange,\n  isPublicVisible = false,\n  errors,\n  formNamespace,\n  environmentId,\n}: Props) {\n  const { user, isPureAdmin } = useCurrentUser();\n\n  const { users, teams, isLoading } = useLoadState(environmentId);\n\n  const handleChange = useCallback(\n    (partialValues: Partial<typeof values>) => {\n      onChange({ ...values, ...partialValues });\n    },\n\n    [values, onChange]\n  );\n\n  if (\n    isLoading ||\n    !teams ||\n    (isPureAdmin && !users) ||\n    !values.authorizedUsers\n  ) {\n    return null;\n  }\n\n  return (\n    <>\n      <AccessTypeSelector\n        onChange={handleChangeOwnership}\n        name={withNamespace('ownership')}\n        value={values.ownership}\n        isAdmin={isPureAdmin}\n        isPublicVisible={isPublicVisible}\n        teams={teams}\n      />\n\n      {values.ownership === ResourceControlOwnership.RESTRICTED && (\n        <div aria-label=\"extra-options\">\n          {isPureAdmin && (\n            <UsersField\n              name={withNamespace('authorizedUsers')}\n              users={users || []}\n              onChange={(authorizedUsers) => handleChange({ authorizedUsers })}\n              value={values.authorizedUsers}\n              errors={errors?.authorizedUsers}\n            />\n          )}\n\n          {(isPureAdmin || teams.length > 1) && (\n            <TeamsField\n              name={withNamespace('authorizedTeams')}\n              teams={teams}\n              overrideTooltip={\n                !isPureAdmin && teams.length > 1\n                  ? 'As you are a member of multiple teams, you can select which teams(s) will be able to manage this resource.'\n                  : undefined\n              }\n              onChange={(authorizedTeams) => handleChange({ authorizedTeams })}\n              value={values.authorizedTeams}\n              errors={errors?.authorizedTeams}\n            />\n          )}\n\n          {typeof errors === 'string' && (\n            <div className=\"form-group col-md-12\">\n              <FormError>{errors}</FormError>\n            </div>\n          )}\n        </div>\n      )}\n    </>\n  );\n\n  function withNamespace(name: string) {\n    return formNamespace ? `${formNamespace}.${name}` : name;\n  }\n\n  function handleChangeOwnership(ownership: ResourceControlOwnership) {\n    let { authorizedTeams, authorizedUsers } = values;\n\n    if (ownership === ResourceControlOwnership.PRIVATE && user) {\n      authorizedUsers = [user.Id];\n      authorizedTeams = [];\n    }\n\n    if (ownership === ResourceControlOwnership.RESTRICTED) {\n      authorizedUsers = [];\n      authorizedTeams = [];\n      // Non admin team leaders/members under only one team can\n      // automatically grant the resource access to all members\n      // under the team\n      if (!isPureAdmin && teams && teams.length === 1) {\n        authorizedTeams = teams.map((team) => team.Id);\n      }\n    }\n\n    handleChange({ ownership, authorizedTeams, authorizedUsers });\n  }\n}\n","import { useTeams } from '@/react/portainer/users/teams/queries';\nimport { useUsers } from '@/portainer/users/queries';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nexport function useLoadState(environmentId: EnvironmentId) {\n  const isAdminQuery = useIsEdgeAdmin();\n  const teams = useTeams(false, environmentId);\n\n  const users = useUsers(false, environmentId, isAdminQuery.isAdmin);\n\n  return {\n    teams: teams.data,\n    users: users.data,\n    isAdmin: isAdminQuery.isAdmin,\n    isLoading: teams.isLoading || users.isLoading || isAdminQuery.isLoading,\n  };\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport {\n  AccessControlFormData,\n  OwnershipParameters,\n  ResourceControlId,\n  ResourceControlType,\n  ResourceId,\n} from './types';\nimport { ResourceControlViewModel } from './models/ResourceControlViewModel';\nimport { parseOwnershipParameters } from './utils';\n\n/**\n * Update an existing ResourceControl or create a new one on existing resource without RC\n * @param resourceType Type of ResourceControl\n * @param resourceId ID of involved Resource\n * @param resourceControl Previous ResourceControl (can be undefined)\n * @param formValues View data generated by AccessControlPanel\n */\nexport function applyResourceControlChange(\n  resourceType: ResourceControlType,\n  resourceId: ResourceId,\n  formValues: AccessControlFormData,\n  resourceControl?: ResourceControlViewModel\n) {\n  const ownershipParameters = parseOwnershipParameters(formValues);\n  if (resourceControl) {\n    return updateResourceControl(resourceControl.Id, ownershipParameters);\n  }\n  return createResourceControl(resourceType, resourceId, ownershipParameters);\n}\n\n/**\n * Apply a ResourceControl after Resource creation\n * @param accessControlData ResourceControl to apply\n * @param resourceControl ResourceControl to update\n * @param subResourcesIds SubResources managed by the ResourceControl\n */\nexport function applyResourceControl(\n  accessControlData: AccessControlFormData,\n  resourceControlId: ResourceControlId,\n  subResourcesIds: (number | string)[] = []\n) {\n  const ownershipParameters = parseOwnershipParameters(\n    accessControlData,\n    subResourcesIds\n  );\n  return updateResourceControl(resourceControlId, ownershipParameters);\n}\n\n/**\n * Update a ResourceControl\n * @param resourceControlId ID of involved resource\n * @param ownershipParameters\n */\nasync function updateResourceControl(\n  resourceControlId: ResourceControlId,\n  ownershipParameters: OwnershipParameters\n) {\n  try {\n    await axios.put(buildUrl(resourceControlId), ownershipParameters);\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\n/**\n * Create a ResourceControl\n * @param resourceType Type of ResourceControl\n * @param resourceId ID of involved resource\n * @param ownershipParameters Transient type from view data to payload\n */\nasync function createResourceControl(\n  resourceType: ResourceControlType,\n  resourceId: ResourceId,\n  ownershipParameters: OwnershipParameters\n) {\n  try {\n    await axios.post(buildUrl(), {\n      ...ownershipParameters,\n      type: resourceType,\n      resourceId,\n    });\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nfunction buildUrl(id?: ResourceControlId) {\n  let url = '/resource_controls';\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  return url;\n}\n","import {\n  ResourceControlId,\n  ResourceControlOwnership,\n  ResourceControlResponse,\n  ResourceControlType,\n  ResourceId,\n  TeamResourceAccess,\n  UserResourceAccess,\n} from '../types';\n\nexport class ResourceControlViewModel {\n  Id: ResourceControlId;\n\n  Type: ResourceControlType;\n\n  ResourceId: ResourceId;\n\n  UserAccesses: UserResourceAccess[];\n\n  TeamAccesses: TeamResourceAccess[];\n\n  Public: boolean;\n\n  System: boolean;\n\n  Ownership: ResourceControlOwnership;\n\n  constructor(data: ResourceControlResponse) {\n    this.Id = data.Id;\n    this.Type = data.Type;\n    this.ResourceId = data.ResourceId;\n    this.UserAccesses = data.UserAccesses;\n    this.TeamAccesses = data.TeamAccesses;\n    this.Public = data.Public;\n    this.System = data.System;\n    this.Ownership = determineOwnership(data);\n  }\n}\n\nexport function determineOwnership(resourceControl: ResourceControlResponse) {\n  if (resourceControl.Public) {\n    return ResourceControlOwnership.PUBLIC;\n  }\n\n  if (\n    resourceControl.UserAccesses.length === 1 &&\n    resourceControl.TeamAccesses.length === 0\n  ) {\n    return ResourceControlOwnership.PRIVATE;\n  }\n\n  if (\n    resourceControl.UserAccesses.length > 1 ||\n    resourceControl.TeamAccesses.length > 0\n  ) {\n    return ResourceControlOwnership.RESTRICTED;\n  }\n\n  return ResourceControlOwnership.ADMINISTRATORS;\n}\n","import { TeamId } from '@/react/portainer/users/teams/types';\nimport { UserId } from '@/portainer/users/types/user-id';\n\nexport type ResourceControlId = number;\n\nexport type ResourceId = number | string;\n\nexport enum ResourceControlOwnership {\n  PUBLIC = 'public',\n  PRIVATE = 'private',\n  RESTRICTED = 'restricted',\n  ADMINISTRATORS = 'administrators',\n}\n\n/**\n * Transient type from view data to payload\n */\nexport interface OwnershipParameters {\n  administratorsOnly: boolean;\n  public: boolean;\n  users: UserId[];\n  teams: TeamId[];\n  subResourcesIds: ResourceId[];\n}\n\nexport enum ResourceControlType {\n  // Container represents a resource control associated to a Docker container\n  Container = 1,\n  // Service represents a resource control associated to a Docker service\n  Service,\n  // Volume represents a resource control associated to a Docker volume\n  Volume,\n  // Network represents a resource control associated to a Docker network\n  Network,\n  // Secret represents a resource control associated to a Docker secret\n  Secret,\n  // Stack represents a resource control associated to a stack composed of Docker services\n  Stack,\n  // Config represents a resource control associated to a Docker config\n  Config,\n  // CustomTemplate represents a resource control associated to a custom template\n  CustomTemplate,\n  // ContainerGroup represents a resource control associated to an Azure container group\n  ContainerGroup,\n}\n\nenum ResourceAccessLevel {\n  ReadWriteAccessLevel = 1,\n}\n\nexport interface UserResourceAccess {\n  UserId: UserId;\n  AccessLevel: ResourceAccessLevel;\n}\n\nexport interface TeamResourceAccess {\n  TeamId: TeamId;\n  AccessLevel: ResourceAccessLevel;\n}\n\nexport interface ResourceControlResponse {\n  Id: number;\n  Type: ResourceControlType;\n  ResourceId: ResourceId;\n  UserAccesses: UserResourceAccess[];\n  TeamAccesses: TeamResourceAccess[];\n  Public: boolean;\n  AdministratorsOnly: boolean;\n  System: boolean;\n}\n\nexport interface AccessControlFormData {\n  ownership: ResourceControlOwnership;\n  authorizedUsers: UserId[];\n  authorizedTeams: TeamId[];\n}\n","import { TeamId } from '@/react/portainer/users/teams/types';\nimport { UserId } from '@/portainer/users/types';\n\nimport {\n  AccessControlFormData,\n  OwnershipParameters,\n  ResourceControlOwnership,\n  ResourceId,\n} from './types';\nimport { ResourceControlViewModel } from './models/ResourceControlViewModel';\n\n/**\n * Transform AccessControlFormData to ResourceControlOwnershipParameters\n * @param {int} userId ID of user performing the operation\n * @param {AccessControlFormData} formValues Form data (generated by AccessControlForm)\n * @param {int[]} subResources Sub Resources restricted by the ResourceControl\n */\nexport function parseOwnershipParameters(\n  formValues: AccessControlFormData,\n  subResourcesIds: ResourceId[] = []\n): OwnershipParameters {\n  const { ownership, authorizedTeams, authorizedUsers } = formValues;\n\n  const adminOnly = ownership === ResourceControlOwnership.ADMINISTRATORS;\n  const publicOnly = ownership === ResourceControlOwnership.PUBLIC;\n\n  let users = authorizedUsers;\n  let teams = authorizedTeams;\n  if (\n    [\n      ResourceControlOwnership.ADMINISTRATORS,\n      ResourceControlOwnership.PUBLIC,\n    ].includes(ownership)\n  ) {\n    users = [];\n    teams = [];\n  }\n\n  return {\n    administratorsOnly: adminOnly,\n    public: publicOnly,\n    users,\n    teams,\n    subResourcesIds,\n  };\n}\n\nexport function defaultValues(\n  isAdmin: boolean,\n  currentUserId: UserId\n): AccessControlFormData {\n  if (!isAdmin) {\n    return {\n      ownership: ResourceControlOwnership.PRIVATE,\n      authorizedTeams: [],\n      authorizedUsers: [currentUserId],\n    };\n  }\n\n  return {\n    ownership: ResourceControlOwnership.ADMINISTRATORS,\n    authorizedTeams: [],\n    authorizedUsers: [],\n  };\n}\n\nexport function parseAccessControlFormData(\n  isAdmin: boolean,\n  currentUserId: UserId,\n  resourceControl?: ResourceControlViewModel\n): AccessControlFormData {\n  if (!resourceControl) {\n    return defaultValues(isAdmin, currentUserId);\n  }\n\n  let ownership = resourceControl.Ownership;\n  if (isAdmin && ownership === ResourceControlOwnership.PRIVATE) {\n    ownership = ResourceControlOwnership.RESTRICTED;\n  }\n\n  let authorizedTeams: TeamId[] = [];\n  let authorizedUsers: UserId[] = [];\n  if (\n    [\n      ResourceControlOwnership.PRIVATE,\n      ResourceControlOwnership.RESTRICTED,\n    ].includes(ownership)\n  ) {\n    authorizedTeams = resourceControl.TeamAccesses.map((ra) => ra.TeamId);\n    authorizedUsers = resourceControl.UserAccesses.map((ra) => ra.UserId);\n  }\n\n  return { ownership, authorizedUsers, authorizedTeams };\n}\n","import { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { success as notifySuccess } from '@/portainer/services/notifications';\nimport { UserId } from '@/portainer/users/types';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { GitCredential, UpdateGitCredentialPayload } from './types';\n\nexport async function getGitCredentials(userId: number) {\n  try {\n    const { data } = await axios.get<GitCredential[]>(buildGitUrl(userId));\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to get git credentials');\n  }\n}\n\nexport async function getGitCredential(userId: number, id: number) {\n  try {\n    const { data } = await axios.get<GitCredential>(buildGitUrl(userId, id));\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to get git credential');\n  }\n}\n\nexport async function deleteGitCredential(credential: GitCredential) {\n  try {\n    await axios.delete<GitCredential[]>(\n      buildGitUrl(credential.userId, credential.id)\n    );\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete git credential');\n  }\n}\n\nexport async function updateGitCredential(\n  credential: Partial<UpdateGitCredentialPayload>,\n  userId: number,\n  id: number\n) {\n  try {\n    const { data } = await axios.put(buildGitUrl(userId, id), credential);\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update credential');\n  }\n}\n\nexport function useUpdateGitCredentialMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    ({\n      credential,\n      userId,\n      id,\n    }: {\n      credential: UpdateGitCredentialPayload;\n      userId: number;\n      id: number;\n    }) => updateGitCredential(credential, userId, id),\n    {\n      onSuccess: (_, data) => {\n        notifySuccess(\n          'Git credential updated successfully',\n          data.credential.name\n        );\n        return queryClient.invalidateQueries(['gitcredentials']);\n      },\n      meta: {\n        error: {\n          title: 'Failure',\n          message: 'Unable to update credential',\n        },\n      },\n    }\n  );\n}\n\nexport function useDeleteGitCredentialMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(deleteGitCredential, {\n    onSuccess: (_, credential) => {\n      notifySuccess('Git Credential deleted successfully', credential.name);\n      return queryClient.invalidateQueries(['gitcredentials']);\n    },\n    meta: {\n      error: {\n        title: 'Failure',\n        message: 'Unable to delete git credential',\n      },\n    },\n  });\n}\n\nexport function useGitCredentials(\n  userId: UserId,\n  { enabled }: { enabled?: boolean } = {}\n) {\n  return useQuery('gitcredentials', () => getGitCredentials(userId), {\n    enabled: isBE && enabled,\n    meta: {\n      error: {\n        title: 'Failure',\n        message: 'Unable to retrieve git credentials',\n      },\n    },\n  });\n}\n\nexport function useGitCredential(userId: number, id: number) {\n  return useQuery(['gitcredentials', id], () => getGitCredential(userId, id), {\n    meta: {\n      error: {\n        title: 'Failure',\n        message: 'Unable to retrieve git credential',\n      },\n    },\n  });\n}\n\nexport function buildGitUrl(userId: number, credentialId?: number) {\n  return credentialId\n    ? `/users/${userId}/gitcredentials/${credentialId}`\n    : `/users/${userId}/gitcredentials`;\n}\n","import { SchemaOf, object, string } from 'yup';\nimport { FormikErrors } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { CustomTemplate } from '../../templates/custom-templates/types';\n\nexport interface Values {\n  Title: string;\n  Description: string;\n  Note: string;\n  Logo: string;\n}\n\nexport function CommonFields({\n  values,\n  onChange,\n  errors,\n}: {\n  values: Values;\n  onChange: (values: Values) => void;\n  errors?: FormikErrors<Values>;\n}) {\n  return (\n    <>\n      <FormControl\n        label=\"Title\"\n        required\n        inputId=\"template-title\"\n        errors={errors?.Title}\n      >\n        <Input\n          name=\"title\"\n          placeholder=\"e.g. mytemplate\"\n          id=\"template-title\"\n          required\n          value={values.Title}\n          onChange={(e) => {\n            handleChange({ Title: e.target.value });\n          }}\n        />\n      </FormControl>\n\n      <FormControl\n        label=\"Description\"\n        required\n        inputId=\"template-description\"\n        errors={errors?.Description}\n      >\n        <Input\n          name=\"description\"\n          id=\"template-description\"\n          required\n          value={values.Description}\n          onChange={(e) => {\n            handleChange({ Description: e.target.value });\n          }}\n        />\n      </FormControl>\n\n      <FormControl label=\"Note\" inputId=\"template-note\" errors={errors?.Note}>\n        <Input\n          name=\"note\"\n          id=\"template-note\"\n          value={values.Note}\n          onChange={(e) => {\n            handleChange({ Note: e.target.value });\n          }}\n        />\n      </FormControl>\n\n      <FormControl label=\"Logo\" inputId=\"template-logo\" errors={errors?.Logo}>\n        <Input\n          name=\"logo\"\n          id=\"template-logo\"\n          value={values.Logo}\n          onChange={(e) => {\n            handleChange({ Logo: e.target.value });\n          }}\n        />\n      </FormControl>\n    </>\n  );\n\n  function handleChange(change: Partial<Values>) {\n    onChange({ ...values, ...change });\n  }\n}\n\nexport function validation({\n  currentTemplateId,\n  templates = [],\n}: {\n  currentTemplateId?: CustomTemplate['Id'];\n  templates?: Array<CustomTemplate>;\n} = {}): SchemaOf<Values> {\n  return object({\n    Title: string()\n      .required('Title is required.')\n      .test(\n        'is-unique',\n        'Title must be unique',\n        (value) =>\n          !value ||\n          !templates.some(\n            (template) =>\n              template.Title === value && template.Id !== currentTemplateId\n          )\n      )\n      .max(\n        200,\n        'Custom template title must be less than or equal to 200 characters'\n      ),\n    Description: string().required('Description is required.'),\n    Note: string().default(''),\n    Logo: string().default(''),\n  });\n}\n\nexport const TEMPLATE_NAME_VALIDATION_REGEX = '^[-_a-z0-9]+$';\n","import { SchemaOf, array, object, string } from 'yup';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { Input } from '@@/form-components/Input';\nimport { InputList } from '@@/form-components/InputList';\nimport { ArrayError, ItemProps } from '@@/form-components/InputList/InputList';\n\nexport interface VariableDefinition {\n  name: string;\n  label: string;\n  defaultValue: string;\n  description: string;\n}\n\nexport type Values = VariableDefinition[];\n\ninterface Props {\n  value: Values;\n  onChange: (value: Values) => void;\n  errors?: ArrayError<Values>;\n  isVariablesNamesFromParent?: boolean;\n}\n\nexport function CustomTemplatesVariablesDefinitionField({\n  onChange,\n  value,\n  errors,\n  isVariablesNamesFromParent,\n}: Props) {\n  return (\n    <InputList\n      label=\"Variables definition\"\n      onChange={onChange}\n      value={value}\n      renderItem={(item, onChange, index, error) => (\n        <Item\n          item={item}\n          onChange={onChange}\n          error={error}\n          index={index}\n          isNameReadonly={isVariablesNamesFromParent}\n        />\n      )}\n      itemBuilder={() => ({\n        label: '',\n        name: '',\n        defaultValue: '',\n        description: '',\n      })}\n      errors={errors}\n      textTip=\"List should map the mustache variables in the template file, if default value is empty, the variable will be required.\"\n      isAddButtonHidden={isVariablesNamesFromParent}\n    />\n  );\n}\n\ninterface DefinitionItemProps extends ItemProps<VariableDefinition> {\n  isNameReadonly?: boolean;\n}\n\nfunction Item({ item, onChange, error, isNameReadonly }: DefinitionItemProps) {\n  const errorObj = typeof error === 'object' ? error : {};\n\n  return (\n    <div className=\"flex gap-2\">\n      <div>\n        <Input\n          value={item.name}\n          name=\"name\"\n          onChange={handleChange}\n          placeholder=\"Name (e.g var_name)\"\n          readOnly={isNameReadonly}\n        />\n        {errorObj?.name && <FormError>{errorObj.name}</FormError>}\n      </div>\n      <div>\n        <Input\n          value={item.label}\n          onChange={handleChange}\n          placeholder=\"Label\"\n          name=\"label\"\n        />\n        {errorObj?.label && <FormError>{errorObj.label}</FormError>}\n      </div>\n      <div>\n        <Input\n          name=\"description\"\n          value={item.description}\n          onChange={handleChange}\n          placeholder=\"Description\"\n        />\n        {errorObj?.description && <FormError>{errorObj.description}</FormError>}\n      </div>\n      <div>\n        <Input\n          value={item.defaultValue}\n          onChange={handleChange}\n          placeholder=\"Default Value\"\n          name=\"defaultValue\"\n        />\n        {errorObj?.defaultValue && (\n          <FormError>{errorObj.defaultValue}</FormError>\n        )}\n      </div>\n    </div>\n  );\n\n  function handleChange(e: React.ChangeEvent<HTMLInputElement>) {\n    onChange({ ...item, [e.target.name]: e.target.value });\n  }\n}\n\nfunction itemValidation(): SchemaOf<VariableDefinition> {\n  return object().shape({\n    name: string().required('Name is required'),\n    label: string().required('Label is required'),\n    defaultValue: string().default(''),\n    description: string().default(''),\n  });\n}\n\nexport function validation(): SchemaOf<Values> {\n  return array().of(itemValidation());\n}\n","import { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { VariableDefinition } from '../CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField';\n\nexport function VariableFieldItem({\n  definition,\n  error,\n  onChange,\n  value,\n}: {\n  definition: VariableDefinition;\n  error?: string;\n  onChange: (value: string) => void;\n  value?: string;\n}) {\n  const inputId = `${definition.name}-input`;\n\n  return (\n    <FormControl\n      required={!definition.defaultValue}\n      label={definition.label}\n      key={definition.name}\n      inputId={inputId}\n      tooltip={definition.description}\n      size=\"small\"\n      errors={error}\n    >\n      <Input\n        name={`variables.${definition.name}`}\n        id={inputId}\n        value={value}\n        onChange={(e) => onChange(e.target.value)}\n        placeholder={`Enter value or leave blank to use default of ${definition.defaultValue}`}\n      />\n    </FormControl>\n  );\n}\n","import { FormSection } from '@@/form-components/FormSection/FormSection';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\nimport { FormError } from '@@/form-components/FormError';\n\nimport { VariableDefinition } from '../CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField';\n\nimport { VariableFieldItem } from './VariableFieldItem';\n\nexport type Values = Array<{ key: string; value?: string }>;\n\ninterface Props {\n  errors?: ArrayError<Values>;\n  value: Values;\n  definitions: VariableDefinition[] | undefined;\n  onChange: (value: Values) => void;\n}\n\nexport function CustomTemplatesVariablesField({\n  errors,\n  value,\n  definitions,\n  onChange,\n}: Props) {\n  if (!definitions || !definitions.length) {\n    return null;\n  }\n\n  return (\n    <FormSection title=\"Template Variables\">\n      {definitions.map((definition, index) => (\n        <VariableFieldItem\n          key={definition.name}\n          definition={definition}\n          error={getError(errors, index)}\n          value={value.find((v) => v.key === definition.name)?.value}\n          onChange={(fieldValue) => {\n            onChange(\n              value.map((v) =>\n                v.key === definition.name ? { ...v, value: fieldValue } : v\n              )\n            );\n          }}\n        />\n      ))}\n\n      {typeof errors === 'string' && <FormError>{errors}</FormError>}\n    </FormSection>\n  );\n}\n\nfunction getError(errors: ArrayError<Values> | undefined, index: number) {\n  if (!errors || typeof errors !== 'object') {\n    return undefined;\n  }\n\n  const error = errors[index];\n  if (!error) {\n    return undefined;\n  }\n\n  return typeof error === 'object' ? error.value : error;\n}\n","import { VariableDefinition } from '../CustomTemplatesVariablesDefinitionField';\n\nimport { Values } from './CustomTemplatesVariablesField';\n\nexport function getDefaultValues(definitions: VariableDefinition[]): Values {\n  return definitions.map((v) => ({\n    key: v.name,\n    value: v.defaultValue,\n  }));\n}\n","import { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\n\nimport { Platform } from '../../templates/types';\n\nconst platformOptions = [\n  { label: 'Linux', value: Platform.LINUX },\n  { label: 'Windows', value: Platform.WINDOWS },\n];\n\nexport function PlatformField({\n  onChange,\n  value,\n}: {\n  onChange: (platform: Platform) => void;\n  value: Platform;\n}) {\n  return (\n    <FormControl label=\"Platform\" required inputId=\"template-platform\">\n      <Select\n        name=\"platform\"\n        id=\"template-platform\"\n        required\n        options={platformOptions}\n        value={value}\n        onChange={(e) => onChange(parseInt(e.target.value, 10))}\n      />\n    </FormControl>\n  );\n}\n","import { StackType } from '@/react/common/stacks/types';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\n\nconst typeOptions = [\n  { label: 'Swarm', value: StackType.DockerSwarm },\n  { label: 'Standalone', value: StackType.DockerCompose },\n];\n\nexport function TemplateTypeSelector({\n  onChange,\n  value,\n}: {\n  onChange: (type: StackType) => void;\n  value: StackType;\n}) {\n  return (\n    <FormControl label=\"Type\" required inputId=\"template-type\">\n      <Select\n        name=\"type\"\n        id=\"template-type\"\n        required\n        options={typeOptions}\n        value={value}\n        onChange={(e) => onChange(parseInt(e.target.value, 10))}\n      />\n    </FormControl>\n  );\n}\n","import _ from 'lodash';\nimport Mustache from 'mustache';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { VariableDefinition } from './CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField';\nimport { VariablesFieldValue } from './CustomTemplatesVariablesField';\n\nexport const isTemplateVariablesEnabled = isBE;\n\nexport function getTemplateVariables(templateStr: string) {\n  const [template, error] = validateAndParse(templateStr);\n\n  if (!template) {\n    return [null, error] as const;\n  }\n\n  return [\n    template\n      .filter(([type, value]) => type === 'name' && value)\n      .map(([, value]) => ({\n        name: value,\n        label: '',\n        defaultValue: '',\n        description: '',\n      })),\n    null,\n  ] as const;\n}\ntype TemplateSpans = ReturnType<typeof Mustache.parse>;\nfunction validateAndParse(\n  templateStr: string\n): readonly [TemplateSpans, null] | readonly [null, string] {\n  if (!templateStr) {\n    return [[] as TemplateSpans, null] as const;\n  }\n\n  try {\n    return [Mustache.parse(templateStr), null] as const;\n  } catch (e) {\n    if (!(e instanceof Error)) {\n      return [null, 'Parse error'] as const;\n    }\n\n    return [null, e.message] as const;\n  }\n}\n\nexport function intersectVariables(\n  oldVariables: VariableDefinition[] = [],\n  newVariables: VariableDefinition[] = []\n) {\n  const oldVariablesWithLabel = oldVariables.filter((v) => !!v.label);\n\n  return _.uniqBy(\n    [\n      ...oldVariablesWithLabel,\n      ...newVariables.filter(\n        (v) => !oldVariablesWithLabel.find(({ name }) => name === v.name)\n      ),\n    ],\n    'name'\n  );\n}\n\nexport function renderTemplate(\n  template: string,\n  variables: VariablesFieldValue,\n  definitions: VariableDefinition[]\n) {\n  const state = Object.fromEntries(\n    _.compact(\n      variables.map(({ key, value }) => {\n        if (value) {\n          return [key, value];\n        }\n\n        const definition = definitions.find((def) => def.name === key);\n        if (!definition) {\n          return null;\n        }\n\n        return [key, definition.defaultValue || `{{ ${definition.name} }}`];\n      })\n    )\n  );\n\n  return Mustache.render(template, state, undefined, { escape: (t) => t });\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { buildUrl } from '../environment.service/utils';\nimport { EnvironmentId } from '../types';\n\nexport function useDeleteEnvironmentsMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    async (\n      environments: {\n        id: EnvironmentId;\n        name: string;\n        deleteCluster?: boolean;\n      }[]\n    ) => {\n      const resp = await deleteEnvironments(environments);\n\n      if (resp === null) {\n        return { deleted: environments, errors: [] };\n      }\n\n      return {\n        deleted: environments.filter((e) =>\n          (resp.deleted || []).includes(e.id)\n        ),\n        errors: environments.filter((e) => (resp.errors || []).includes(e.id)),\n      };\n    },\n    {\n      ...withError('Unable to delete environment(s)'),\n      onSuccess: ({ deleted, errors }) => {\n        queryClient.invalidateQueries(['environments']);\n        // show an error message for each env that failed to delete\n        errors.forEach((e) => {\n          notifyError(`Failed to remove environment ${e.name}`, undefined);\n        });\n        // show one summary message for all successful deletes\n        if (deleted.length) {\n          notifySuccess(\n            `${pluralize(deleted.length, 'Environment')} successfully removed`,\n            deleted.map((d) => d.name).join(', ')\n          );\n        }\n      },\n    }\n  );\n}\n\nasync function deleteEnvironments(\n  environments: { id: EnvironmentId; deleteCluster?: boolean }[]\n) {\n  try {\n    const { data } = await axios.delete<{\n      deleted: EnvironmentId[];\n      errors: EnvironmentId[];\n    } | null>(buildUrl(), {\n      data: { endpoints: environments },\n    });\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete environment');\n  }\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { buildUrl } from './queries/build-url';\nimport { EnvironmentGroup, EnvironmentGroupId } from './types';\n\nexport async function getGroup(id: EnvironmentGroupId) {\n  try {\n    const { data: group } = await axios.get<EnvironmentGroup>(buildUrl(id));\n    return group;\n  } catch (e) {\n    throw parseAxiosError(e as Error, '');\n  }\n}\n\nexport async function getGroups() {\n  try {\n    const { data: groups } = await axios.get<EnvironmentGroup[]>(buildUrl());\n    return groups;\n  } catch (e) {\n    throw parseAxiosError(e as Error, '');\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport { error as notifyError } from '@/portainer/services/notifications';\n\nimport { EnvironmentGroup, EnvironmentGroupId } from './types';\nimport { getGroup, getGroups } from './environment-groups.service';\nimport { queryKeys } from './queries/query-keys';\n\nexport function useGroups<T = EnvironmentGroup[]>({\n  select,\n  enabled = true,\n}: { select?: (group: EnvironmentGroup[]) => T; enabled?: boolean } = {}) {\n  return useQuery(queryKeys.base(), getGroups, {\n    select,\n    enabled,\n  });\n}\n\nexport function useGroup<T = EnvironmentGroup>(\n  groupId: EnvironmentGroupId,\n  select?: (group: EnvironmentGroup) => T\n) {\n  const { data } = useQuery(queryKeys.group(groupId), () => getGroup(groupId), {\n    staleTime: 50,\n    select,\n    onError(error) {\n      notifyError('Failed loading group', error as Error);\n    },\n  });\n\n  return data;\n}\n","import { EnvironmentGroupId } from '../types';\n\nexport function buildUrl(id?: EnvironmentGroupId, action?: string) {\n  let url = '/endpoint_groups';\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","import { EnvironmentGroupId } from '../types';\n\nexport const queryKeys = {\n  base: () => ['environment-groups'] as const,\n  group: (id: EnvironmentGroupId) => [...queryKeys.base(), id] as const,\n};\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { type EnvironmentGroupId } from '@/react/portainer/environments/environment-groups/types';\nimport { type TagId } from '@/portainer/tags/types';\nimport { UserId } from '@/portainer/users/types';\nimport { TeamId } from '@/react/portainer/users/teams/types';\nimport {\n  EdgeStack,\n  StatusType as EdgeStackStatusType,\n} from '@/react/edge/edge-stacks/types';\n\nimport { getPublicSettings } from '../../settings/settings.service';\nimport type {\n  Environment,\n  EnvironmentId,\n  EnvironmentType,\n  EnvironmentSecuritySettings,\n  EnvironmentStatus,\n} from '../types';\n\nimport { buildUrl } from './utils';\n\nexport type EdgeStackEnvironmentsQueryParams =\n  | {\n      edgeStackId?: EdgeStack['Id'];\n    }\n  | {\n      edgeStackId: EdgeStack['Id'];\n      edgeStackStatus?: EdgeStackStatusType;\n    };\n\nexport interface BaseEnvironmentsQueryParams {\n  search?: string;\n  types?: EnvironmentType[] | readonly EnvironmentType[];\n  tagIds?: TagId[];\n  endpointIds?: EnvironmentId[];\n  excludeIds?: EnvironmentId[];\n  tagsPartialMatch?: boolean;\n  groupIds?: EnvironmentGroupId[];\n  status?: EnvironmentStatus[];\n  edgeAsync?: boolean;\n  edgeDeviceUntrusted?: boolean;\n  excludeSnapshots?: boolean;\n  provisioned?: boolean;\n  name?: string;\n  agentVersions?: string[];\n  updateInformation?: boolean;\n  edgeCheckInPassedSeconds?: number;\n}\n\nexport type EnvironmentsQueryParams = BaseEnvironmentsQueryParams &\n  EdgeStackEnvironmentsQueryParams;\n\nexport interface GetEnvironmentsOptions {\n  start?: number;\n  limit?: number;\n  sort?: { by?: string; order?: 'asc' | 'desc' };\n  query?: EnvironmentsQueryParams;\n}\n\nexport async function getEnvironments(\n  {\n    start,\n    limit,\n    sort = { by: '', order: 'asc' },\n    query = {},\n  }: GetEnvironmentsOptions = { query: {} }\n) {\n  if (\n    (query.tagIds && query.tagIds.length === 0) ||\n    (query.endpointIds && query.endpointIds.length === 0)\n  ) {\n    return {\n      totalCount: 0,\n      value: <Environment[]>[],\n      totalAvailable: 0,\n      updateAvailable: false,\n    };\n  }\n\n  const url = buildUrl();\n\n  const params: Record<string, unknown> = {\n    start,\n    limit,\n    sort: sort.by,\n    order: sort.order,\n    ...query,\n  };\n\n  try {\n    const response = await axios.get<Environment[]>(url, { params });\n    const totalCount = response.headers['x-total-count'];\n    const totalAvailable = response.headers['x-total-available'];\n    const updateAvailable = response.headers['x-update-available'] === 'true';\n\n    return {\n      totalCount: parseInt(totalCount, 10),\n      value: response.data,\n      totalAvailable: parseInt(totalAvailable, 10),\n      updateAvailable,\n    };\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function getAgentVersions() {\n  try {\n    const response = await axios.get<string[]>(\n      buildUrl(undefined, 'agent_versions')\n    );\n    return response.data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function getEndpoint(id: EnvironmentId) {\n  try {\n    const { data: endpoint } = await axios.get<Environment>(buildUrl(id));\n    return endpoint;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function snapshotEndpoints() {\n  try {\n    await axios.post<void>(buildUrl(undefined, 'snapshot'));\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function getDeploymentOptions(environmentId: EnvironmentId) {\n  const publicSettings = await getPublicSettings();\n  const endpoint = await getEndpoint(environmentId);\n\n  if (\n    publicSettings.GlobalDeploymentOptions.perEnvOverride &&\n    endpoint.DeploymentOptions?.overrideGlobalOptions\n  ) {\n    return endpoint.DeploymentOptions;\n  }\n\n  return publicSettings.GlobalDeploymentOptions;\n}\n\nexport async function snapshotEndpoint(id: EnvironmentId) {\n  try {\n    await axios.post<void>(buildUrl(id, 'snapshot'));\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function endpointsByGroup(\n  groupId: EnvironmentGroupId,\n  start: number,\n  limit: number,\n  query: Omit<EnvironmentsQueryParams, 'groupIds'>\n) {\n  return getEnvironments({\n    start,\n    limit,\n    query: { groupIds: [groupId], ...query },\n  });\n}\n\nexport async function disassociateEndpoint(id: EnvironmentId) {\n  try {\n    await axios.delete(buildUrl(id, 'association'));\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function deleteEndpoint(id: EnvironmentId) {\n  try {\n    await axios.delete(buildUrl(id));\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function updatePoolAccess(\n  id: EnvironmentId,\n  resourcePool: string,\n  usersToAdd: UserId[],\n  teamsToAdd: TeamId[],\n  usersToRemove: UserId[],\n  teamsToRemove: TeamId[]\n) {\n  try {\n    await axios.put<void>(`${buildUrl(id, 'pools')}/${resourcePool}/access`, {\n      usersToAdd,\n      teamsToAdd,\n      usersToRemove,\n      teamsToRemove,\n    });\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function forceUpdateService(\n  id: EnvironmentId,\n  serviceID: string,\n  pullImage: boolean\n) {\n  try {\n    await axios.put(buildUrl(id, 'forceupdateservice'), {\n      serviceID,\n      pullImage,\n    });\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function updateSettings(\n  id: EnvironmentId,\n  settings: EnvironmentSecuritySettings\n) {\n  try {\n    await axios.put(buildUrl(id, 'settings'), settings);\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n","import { EnvironmentId } from '../types';\n\nexport function buildUrl(id?: EnvironmentId, action?: string) {\n  let baseUrl = 'endpoints';\n  if (id) {\n    baseUrl += `/${id}`;\n  }\n\n  if (action) {\n    baseUrl += `/${action}`;\n  }\n\n  return baseUrl;\n}\n","import { EnvironmentId } from '../types';\n\nexport const environmentQueryKeys = {\n  base: () => ['environments'] as const,\n  item: (id: EnvironmentId) => [...environmentQueryKeys.base(), id] as const,\n  registries: (environmentId: EnvironmentId) =>\n    [...environmentQueryKeys.base(), environmentId, 'registries'] as const,\n};\n","import { useSettings } from '@/react/portainer/settings/queries';\nimport { useSystemStatus } from '@/react/portainer/system/useSystemStatus';\n\nexport function useAgentDetails() {\n  const settingsQuery = useSettings();\n\n  const versionQuery = useSystemStatus({ select: (status) => status.Version });\n\n  if (!versionQuery.isSuccess || !settingsQuery.isSuccess) {\n    return null;\n  }\n\n  const agentVersion = versionQuery.data;\n\n  return {\n    agentVersion,\n    agentSecret: settingsQuery.data.AgentSecret,\n  };\n}\n","import { useQuery } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\n\nimport { getDeploymentOptions, getEndpoint } from '../environment.service';\nimport { Environment, EnvironmentId } from '../types';\n\nimport { environmentQueryKeys } from './query-keys';\n\nexport function useEnvironment<T = Environment>(\n  environmentId?: EnvironmentId,\n  select?: (environment: Environment) => T,\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    environmentQueryKeys.item(environmentId!),\n    () => getEndpoint(environmentId!),\n    {\n      select,\n      ...withError('Failed loading environment'),\n      staleTime: 50,\n      enabled: !!environmentId,\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n\nexport function useEnvironmentDeploymentOptions(id: EnvironmentId | undefined) {\n  return useQuery(\n    [...environmentQueryKeys.item(id!), 'deploymentOptions'],\n    () => getDeploymentOptions(id!),\n    {\n      enabled: !!id,\n      ...withError('Failed loading deployment options'),\n    }\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\n\nimport { EnvironmentStatus, EnvironmentType } from '../types';\nimport {\n  EnvironmentsQueryParams,\n  getEnvironments,\n} from '../environment.service';\n\nimport { environmentQueryKeys } from './query-keys';\n\nexport const ENVIRONMENTS_POLLING_INTERVAL = 30000; // in ms\n\nexport const SortOptions = [\n  'Name',\n  'Group',\n  'Status',\n  'LastCheckIn',\n  'EdgeID',\n] as const;\nexport type SortType = (typeof SortOptions)[number];\nexport function isSortType(value?: string): value is SortType {\n  return SortOptions.includes(value as SortType);\n}\n\nexport function getSortType(value?: string): SortType | undefined {\n  return isSortType(value) ? value : undefined;\n}\n\nexport type Query = EnvironmentsQueryParams & {\n  page?: number;\n  pageLimit?: number;\n  sort?: SortType;\n  order?: 'asc' | 'desc';\n};\n\ntype GetEndpointsResponse = Awaited<ReturnType<typeof getEnvironments>>;\n\nexport function refetchIfAnyOffline(data?: GetEndpointsResponse) {\n  if (!data) {\n    return false;\n  }\n\n  const hasOfflineEnvironment = data.value.some(\n    (env) => env.Status === EnvironmentStatus.Down\n  );\n\n  if (!hasOfflineEnvironment) {\n    return false;\n  }\n\n  return ENVIRONMENTS_POLLING_INTERVAL;\n}\n\nexport function useEnvironmentList(\n  { page = 1, pageLimit = 100, sort, order, ...query }: Query = {},\n  {\n    enabled,\n    refetchInterval,\n    staleTime,\n  }: {\n    refetchInterval?:\n      | number\n      | false\n      | ((data?: GetEndpointsResponse) => false | number);\n    staleTime?: number;\n    enabled?: boolean;\n  } = {}\n) {\n  const { isLoading, data } = useQuery(\n    [\n      ...environmentQueryKeys.base(),\n      {\n        page,\n        pageLimit,\n        sort,\n        order,\n        ...query,\n      },\n    ],\n    async () => {\n      const start = (page - 1) * pageLimit + 1;\n\n      // Workaround for EE-6060: filter out Nomad results when no filter is applied.\n      // Remove when cleaning up API.\n      if (!query.types || query.types.length === 0) {\n        const environmentTypesArray: EnvironmentType[] = [\n          EnvironmentType.Docker,\n          EnvironmentType.AgentOnDocker,\n          EnvironmentType.Azure,\n          EnvironmentType.EdgeAgentOnDocker,\n          EnvironmentType.KubernetesLocal,\n          EnvironmentType.AgentOnKubernetes,\n          EnvironmentType.EdgeAgentOnKubernetes,\n        ];\n\n        // eslint-disable-next-line no-param-reassign\n        query.types = environmentTypesArray;\n      }\n\n      return getEnvironments({\n        start,\n        limit: pageLimit,\n        sort: { by: sort, order },\n        query,\n      });\n    },\n    {\n      staleTime,\n      keepPreviousData: true,\n      refetchInterval,\n      enabled,\n      ...withError('Failure retrieving environments'),\n    }\n  );\n\n  return {\n    isLoading,\n    environments: data ? data.value : [],\n    totalCount: data ? data.totalCount : 0,\n    totalAvailable: data ? data.totalAvailable : 0,\n    updateAvailable: data ? data.updateAvailable : false,\n  };\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { buildUrl } from '../environment.service/utils';\nimport { EnvironmentId } from '../types';\nimport { Registry } from '../../registries/types/registry';\nimport {\n  GenericRegistriesQueryOptions,\n  useGenericRegistriesQuery,\n} from '../../registries/queries/useRegistries';\n\nimport { environmentQueryKeys } from './query-keys';\n\nexport function useEnvironmentRegistries<T = Array<Registry>>(\n  environmentId: EnvironmentId,\n  queryOptions: GenericRegistriesQueryOptions<T> = {}\n) {\n  return useGenericRegistriesQuery(\n    environmentQueryKeys.registries(environmentId),\n    () => getEnvironmentRegistries(environmentId),\n    queryOptions\n  );\n}\n\nasync function getEnvironmentRegistries(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<Array<Registry>>(\n      buildUrl(environmentId, 'registries')\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve registries');\n  }\n}\n","import { useQueryClient, useMutation } from 'react-query';\n\nimport { withError, withInvalidate } from '@/react-tools/react-query';\nimport {\n  EnvironmentId,\n  EnvironmentStatusMessage,\n  Environment,\n  KubernetesSettings,\n  DeploymentOptions,\n  EndpointChangeWindow,\n} from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { TagId } from '@/portainer/tags/types';\n\nimport { EnvironmentGroupId } from '../environment-groups/types';\nimport { buildUrl } from '../environment.service/utils';\n\nimport { environmentQueryKeys } from './query-keys';\n\nexport function useUpdateEnvironmentMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(updateEnvironment, {\n    ...withInvalidate(queryClient, [environmentQueryKeys.base()]),\n    ...withError('Unable to update environment'),\n  });\n}\n\nexport interface UpdateEnvironmentPayload extends Partial<Environment> {\n  TLSCACert?: File;\n  TLSCert?: File;\n  TLSKey?: File;\n\n  Name: string;\n  PublicURL: string;\n  GroupID: EnvironmentGroupId;\n  TagIds: TagId[];\n\n  EdgeCheckinInterval: number;\n\n  TLS: boolean;\n  TLSSkipVerify: boolean;\n  TLSSkipClientVerify: boolean;\n  AzureApplicationID: string;\n  AzureTenantID: string;\n  AzureAuthenticationKey: string;\n\n  IsSetStatusMessage: boolean;\n  StatusMessage: EnvironmentStatusMessage;\n  Kubernetes?: KubernetesSettings;\n  DeploymentOptions?: DeploymentOptions | null;\n  ChangeWindow?: EndpointChangeWindow;\n}\n\nexport async function updateEnvironment({\n  id,\n  payload,\n}: {\n  id: EnvironmentId;\n  payload: Partial<UpdateEnvironmentPayload>;\n}) {\n  try {\n    await uploadTLSFilesForEndpoint(\n      id,\n      payload.TLSCACert,\n      payload.TLSCert,\n      payload.TLSKey\n    );\n\n    const { data: endpoint } = await axios.put<Environment>(\n      buildUrl(id),\n      payload\n    );\n\n    return endpoint;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update environment');\n  }\n}\n\nasync function uploadTLSFilesForEndpoint(\n  id: EnvironmentId,\n  tlscaCert?: File,\n  tlsCert?: File,\n  tlsKey?: File\n) {\n  await Promise.all([\n    uploadCert('ca', tlscaCert),\n    uploadCert('cert', tlsCert),\n    uploadCert('key', tlsKey),\n  ]);\n\n  function uploadCert(type: 'ca' | 'cert' | 'key', cert?: File) {\n    if (!cert) {\n      return null;\n    }\n    try {\n      return axios.post<void>(`upload/tls/${type}`, cert, {\n        params: { folder: id },\n      });\n    } catch (e) {\n      throw parseAxiosError(e as Error);\n    }\n  }\n}\n","import { TagId } from '@/portainer/tags/types';\nimport { EnvironmentGroupId } from '@/react/portainer/environments/environment-groups/types';\nimport { DockerSnapshot } from '@/react/docker/snapshots/types';\n\nexport type EnvironmentId = number;\n\nexport enum EnvironmentType {\n  // Docker represents an environment(endpoint) connected to a Docker environment(endpoint)\n  Docker = 1,\n  // AgentOnDocker represents an environment(endpoint) connected to a Portainer agent deployed on a Docker environment(endpoint)\n  AgentOnDocker,\n  // Azure represents an environment(endpoint) connected to an Azure environment(endpoint)\n  Azure,\n  // EdgeAgentOnDocker represents an environment(endpoint) connected to an Edge agent deployed on a Docker environment(endpoint)\n  EdgeAgentOnDocker,\n  // KubernetesLocal represents an environment(endpoint) connected to a local Kubernetes environment(endpoint)\n  KubernetesLocal,\n  // AgentOnKubernetes represents an environment(endpoint) connected to a Portainer agent deployed on a Kubernetes environment(endpoint)\n  AgentOnKubernetes,\n  // EdgeAgentOnKubernetes represents an environment(endpoint) connected to an Edge agent deployed on a Kubernetes environment(endpoint)\n  EdgeAgentOnKubernetes,\n}\n\nexport const EdgeTypes = [\n  EnvironmentType.EdgeAgentOnDocker,\n  EnvironmentType.EdgeAgentOnKubernetes,\n] as const;\n\nexport enum EnvironmentStatus {\n  Up = 1,\n  Down,\n  Provisioning,\n  Error,\n}\n\nexport interface KubernetesSnapshot {\n  KubernetesVersion: string;\n  TotalCPU: number;\n  TotalMemory: number;\n  Time: number;\n  NodeCount: number;\n}\n\nexport type IngressClass = {\n  Name: string;\n  Type: string;\n};\n\nexport interface StorageClass {\n  Name: string;\n  AccessModes: string[];\n  AllowVolumeExpansion: boolean;\n  Provisioner: string;\n}\n\nexport interface KubernetesConfiguration {\n  UseLoadBalancer?: boolean;\n  StorageClasses?: StorageClass[];\n  UseServerMetrics?: boolean;\n  EnableResourceOverCommit?: boolean;\n  ResourceOverCommitPercentage?: number;\n  RestrictDefaultNamespace?: boolean;\n  RestrictStandardUserIngressW?: boolean;\n  IngressClasses: IngressClass[];\n  IngressAvailabilityPerNamespace: boolean;\n  AllowNoneIngressClass: boolean;\n}\n\nexport interface KubernetesSettings {\n  Snapshots?: KubernetesSnapshot[] | null;\n  Configuration: KubernetesConfiguration;\n}\n\nexport type EnvironmentEdge = {\n  AsyncMode: boolean;\n  PingInterval: number;\n  SnapshotInterval: number;\n  CommandInterval: number;\n};\n\nexport interface EnvironmentSecuritySettings {\n  // Whether non-administrator should be able to use bind mounts when creating containers\n  allowBindMountsForRegularUsers: boolean;\n  // Whether non-administrator should be able to use privileged mode when creating containers\n  allowPrivilegedModeForRegularUsers: boolean;\n  // Whether non-administrator should be able to browse volumes\n  allowVolumeBrowserForRegularUsers: boolean;\n  // Whether non-administrator should be able to use the host pid\n  allowHostNamespaceForRegularUsers: boolean;\n  // Whether non-administrator should be able to use device mapping\n  allowDeviceMappingForRegularUsers: boolean;\n  // Whether non-administrator should be able to manage stacks\n  allowStackManagementForRegularUsers: boolean;\n  // Whether non-administrator should be able to use container capabilities\n  allowContainerCapabilitiesForRegularUsers: boolean;\n  // Whether non-administrator should be able to use sysctl settings\n  allowSysctlSettingForRegularUsers: boolean;\n  // Whether host management features are enabled\n  enableHostManagementFeatures: boolean;\n}\n\nexport type DeploymentOptions = {\n  overrideGlobalOptions: boolean;\n  hideAddWithForm: boolean;\n  hideWebEditor: boolean;\n  hideFileUpload: boolean;\n};\n\n/**\n *  EndpointChangeWindow determine when GitOps stack/app updates may occur\n */\nexport interface EndpointChangeWindow {\n  Enabled: boolean;\n  StartTime: string;\n  EndTime: string;\n}\nexport interface EnvironmentStatusMessage {\n  summary: string;\n  detail: string;\n}\n\nexport type Environment = {\n  Agent: { Version: string };\n  Id: EnvironmentId;\n  Type: EnvironmentType;\n  TagIds: TagId[];\n  GroupId: EnvironmentGroupId;\n  DeploymentOptions: DeploymentOptions | null;\n  EnableGPUManagement: boolean;\n  EdgeID?: string;\n  EdgeKey: string;\n  EdgeCheckinInterval?: number;\n  QueryDate?: number;\n  Heartbeat?: boolean;\n  LastCheckInDate?: number;\n  Name: string;\n  Status: EnvironmentStatus;\n  URL: string;\n  Snapshots: DockerSnapshot[];\n  Kubernetes: KubernetesSettings;\n  PublicURL?: string;\n  UserTrusted: boolean;\n  AMTDeviceGUID?: string;\n  Edge: EnvironmentEdge;\n  SecuritySettings: EnvironmentSecuritySettings;\n  Gpus: { name: string; value: string }[];\n  EnableImageNotification: boolean;\n  LocalTimeZone?: string;\n\n  /** GitOps update change window restriction for stacks and apps */\n  ChangeWindow: EndpointChangeWindow;\n  /**\n   *  A message that describes the status. Should be included for Status Provisioning or Error.\n   */\n  StatusMessage?: EnvironmentStatusMessage;\n};\n\n/**\n * TS reference of endpoint_create.go#EndpointCreationType iota\n */\nexport enum EnvironmentCreationTypes {\n  LocalDockerEnvironment = 1,\n  AgentEnvironment,\n  AzureEnvironment,\n  EdgeAgentEnvironment,\n  LocalKubernetesEnvironment,\n  KubeConfigEnvironment,\n}\n\nexport enum PlatformType {\n  Docker,\n  Kubernetes,\n  Azure,\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgBeta = function SvgBeta(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 8 16\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"currentColor\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: 1.4,\n    d: \"M1 14.322V3.498a2.498 2.498 0 1 1 2.498 2.498h.416A2.914 2.914 0 1 1 1 8.91\"\n  })));\n};\nexport default SvgBeta;","import { ReactNode } from 'react';\n\nimport betaIcon from '@/assets/ico/beta.svg?c';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\ninterface Props {\n  message: ReactNode;\n  className?: string;\n  isHtml?: boolean;\n}\n\nexport function BetaAlert({ message, className, isHtml }: Props) {\n  return (\n    <TextTip icon={betaIcon} className={className}>\n      <div className=\"text-warning\">\n        {isHtml && typeof message === 'string' ? (\n          // eslint-disable-next-line react/no-danger\n          <span dangerouslySetInnerHTML={{ __html: message }} />\n        ) : (\n          message\n        )}\n      </div>\n    </TextTip>\n  );\n}\n","import { Environment, EnvironmentType, PlatformType } from '../types';\n\nexport function getPlatformType(envType: EnvironmentType) {\n  switch (envType) {\n    case EnvironmentType.KubernetesLocal:\n    case EnvironmentType.AgentOnKubernetes:\n    case EnvironmentType.EdgeAgentOnKubernetes:\n      return PlatformType.Kubernetes;\n    case EnvironmentType.Docker:\n    case EnvironmentType.AgentOnDocker:\n    case EnvironmentType.EdgeAgentOnDocker:\n      return PlatformType.Docker;\n    case EnvironmentType.Azure:\n      return PlatformType.Azure;\n    default:\n      throw new Error(`Environment Type ${envType} is not supported`);\n  }\n}\n\nexport function isDockerEnvironment(envType: EnvironmentType) {\n  return getPlatformType(envType) === PlatformType.Docker;\n}\n\nexport function isKubernetesEnvironment(envType: EnvironmentType) {\n  return getPlatformType(envType) === PlatformType.Kubernetes;\n}\n\nexport function getPlatformTypeName(envType: EnvironmentType): string {\n  return PlatformType[getPlatformType(envType)];\n}\n\nexport function isAgentEnvironment(envType: EnvironmentType) {\n  return (\n    isEdgeEnvironment(envType) ||\n    [EnvironmentType.AgentOnDocker, EnvironmentType.AgentOnKubernetes].includes(\n      envType\n    )\n  );\n}\n\nexport function isEdgeEnvironment(envType: EnvironmentType) {\n  return [\n    EnvironmentType.EdgeAgentOnDocker,\n    EnvironmentType.EdgeAgentOnKubernetes,\n  ].includes(envType);\n}\n\nexport function isEdgeAsync(env?: Environment | null) {\n  return !!env && env.Edge.AsyncMode;\n}\n\nexport function isUnassociatedEdgeEnvironment(env: Environment) {\n  return isEdgeEnvironment(env.Type) && !env.EdgeID;\n}\n\nexport function isLocalEnvironment(environment: Environment) {\n  return (\n    environment.URL.includes('unix://') ||\n    environment.URL.includes('npipe://') ||\n    environment.Type === EnvironmentType.KubernetesLocal\n  );\n}\n\nexport function isDockerAPIEnvironment(environment: Environment) {\n  return (\n    environment.URL.startsWith('tcp://') &&\n    environment.Type === EnvironmentType.Docker\n  );\n}\n\nexport function getDashboardRoute(environment: Environment) {\n  if (isEdgeEnvironment(environment.Type)) {\n    if (!environment.EdgeID) {\n      return {\n        to: 'portainer.endpoints.endpoint',\n        params: { id: environment.Id },\n      };\n    }\n\n    if (isEdgeAsync(environment)) {\n      return {\n        to: 'edge.browse.dashboard',\n        params: { environmentId: environment.Id },\n      };\n    }\n  }\n\n  const params = { endpointId: environment.Id };\n  const to = getPlatformRoute();\n\n  return { to, params };\n\n  function getPlatformRoute() {\n    const platform = getPlatformType(environment.Type);\n    switch (platform) {\n      case PlatformType.Azure:\n        return 'azure.dashboard';\n      case PlatformType.Docker:\n        return 'docker.dashboard';\n      case PlatformType.Kubernetes:\n        return 'kubernetes.dashboard';\n      default:\n        throw new Error(`Unsupported platform ${platform}`);\n    }\n  }\n}\n","import { useField } from 'formik';\n\nimport { useGroups } from '@/react/portainer/environments/environment-groups/queries';\nimport { EnvironmentGroupId } from '@/react/portainer/environments/environment-groups/types';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\n\nexport function GroupField({ name = 'meta.groupId' }: { name?: string }) {\n  const [fieldProps, metaProps, helpers] = useField<EnvironmentGroupId>(name);\n\n  const groupsQuery = useGroups();\n  if (!groupsQuery.data) {\n    return null;\n  }\n\n  const options = groupsQuery.data.map((group) => ({\n    value: group.Id,\n    label: group.Name,\n  }));\n\n  return (\n    <FormControl label=\"Group\" errors={metaProps.error}>\n      <Select\n        name={name}\n        options={options}\n        value={fieldProps.value}\n        onChange={(e) => handleChange(e.target.value)}\n      />\n    </FormControl>\n  );\n\n  function handleChange(value: string) {\n    helpers.setValue(value ? parseInt(value, 10) : 1);\n  }\n}\n","export enum Edition {\n  CE,\n  BE,\n}\n\nexport enum FeatureState {\n  HIDDEN,\n  VISIBLE,\n  LIMITED_BE,\n}\n\nexport enum FeatureId {\n  K8S_RESOURCE_POOL_LB_QUOTA = 'k8s-resourcepool-Ibquota',\n  K8S_RESOURCE_POOL_STORAGE_QUOTA = 'k8s-resourcepool-storagequota',\n  K8S_CREATE_FROM_KUBECONFIG = 'k8s-create-from-kubeconfig',\n  K8S_EDIT_YAML = 'k8s-edit-yaml',\n  KAAS_PROVISIONING = 'kaas-provisioning',\n  RBAC_ROLES = 'rbac-roles',\n  REGISTRY_MANAGEMENT = 'registry-management',\n  K8S_SETUP_DEFAULT = 'k8s-setup-default',\n  S3_BACKUP_SETTING = 's3-backup-setting',\n  S3_RESTORE = 'restore-s3-form',\n  HIDE_INTERNAL_AUTHENTICATION_PROMPT = 'hide-internal-authentication-prompt',\n  TEAM_MEMBERSHIP = 'team-membership',\n  HIDE_INTERNAL_AUTH = 'hide-internal-auth',\n  EXTERNAL_AUTH_LDAP = 'external-auth-ldap',\n  ACTIVITY_AUDIT = 'activity-audit',\n  FORCE_REDEPLOYMENT = 'force-redeployment',\n  HIDE_AUTO_UPDATE_WINDOW = 'hide-auto-update-window',\n  IMAGE_UP_TO_DATE_INDICATOR = 'image-up-to-date-indicator',\n  STACK_PULL_IMAGE = 'stack-pull-image',\n  STACK_WEBHOOK = 'stack-webhook',\n  CONTAINER_WEBHOOK = 'container-webhook',\n  POD_SECURITY_POLICY_CONSTRAINT = 'pod-security-policy-constraint',\n  HIDE_DOCKER_HUB_ANONYMOUS = 'hide-docker-hub-anonymous',\n  CUSTOM_LOGIN_BANNER = 'custom-login-banner',\n  ENFORCE_DEPLOYMENT_OPTIONS = 'k8s-enforce-deployment-options',\n  K8S_ADM_ONLY_USR_INGRESS_DEPLY = 'k8s-admin-only-ingress-deploy',\n  K8S_ADM_ONLY_SECRETS = 'k8s-admin-only-secrets',\n  K8S_ROLLING_RESTART = 'k8s-rolling-restart',\n  K8SINSTALL = 'k8s-install',\n  K8S_ANNOTATIONS = 'k8s-annotations',\n  CA_FILE = 'ca-file',\n  K8S_REQUIRE_NOTE_ON_APPLICATIONS = 'k8s-note-on-applications',\n}\n","import { Edition, FeatureId, FeatureState } from './enums';\n\nexport const isBE = process.env.PORTAINER_EDITION === 'BE';\ninterface ServiceState {\n  currentEdition: Edition;\n  features: Record<FeatureId, Edition>;\n}\n\nconst state: ServiceState = {\n  currentEdition: Edition.CE,\n  features: <Record<FeatureId, Edition>>{},\n};\n\nexport async function init(edition: Edition) {\n  // will be loaded on runtime\n  const currentEdition = edition;\n  const features = {\n    [FeatureId.K8S_RESOURCE_POOL_LB_QUOTA]: Edition.BE,\n    [FeatureId.K8S_RESOURCE_POOL_STORAGE_QUOTA]: Edition.BE,\n    [FeatureId.K8S_CREATE_FROM_KUBECONFIG]: Edition.BE,\n    [FeatureId.KAAS_PROVISIONING]: Edition.BE,\n    [FeatureId.K8SINSTALL]: Edition.BE,\n    [FeatureId.ACTIVITY_AUDIT]: Edition.BE,\n    [FeatureId.EXTERNAL_AUTH_LDAP]: Edition.BE,\n    [FeatureId.HIDE_INTERNAL_AUTH]: Edition.BE,\n    [FeatureId.HIDE_INTERNAL_AUTHENTICATION_PROMPT]: Edition.BE,\n    [FeatureId.K8S_SETUP_DEFAULT]: Edition.BE,\n    [FeatureId.RBAC_ROLES]: Edition.BE,\n    [FeatureId.REGISTRY_MANAGEMENT]: Edition.BE,\n    [FeatureId.S3_BACKUP_SETTING]: Edition.BE,\n    [FeatureId.S3_RESTORE]: Edition.BE,\n    [FeatureId.TEAM_MEMBERSHIP]: Edition.BE,\n    [FeatureId.FORCE_REDEPLOYMENT]: Edition.BE,\n    [FeatureId.HIDE_AUTO_UPDATE_WINDOW]: Edition.BE,\n    [FeatureId.IMAGE_UP_TO_DATE_INDICATOR]: Edition.BE,\n    [FeatureId.STACK_PULL_IMAGE]: Edition.BE,\n    [FeatureId.STACK_WEBHOOK]: Edition.BE,\n    [FeatureId.CONTAINER_WEBHOOK]: Edition.BE,\n    [FeatureId.POD_SECURITY_POLICY_CONSTRAINT]: Edition.BE,\n    [FeatureId.HIDE_DOCKER_HUB_ANONYMOUS]: Edition.BE,\n    [FeatureId.CUSTOM_LOGIN_BANNER]: Edition.BE,\n    [FeatureId.K8S_EDIT_YAML]: Edition.BE,\n    [FeatureId.ENFORCE_DEPLOYMENT_OPTIONS]: Edition.BE,\n    [FeatureId.K8S_ADM_ONLY_USR_INGRESS_DEPLY]: Edition.BE,\n    [FeatureId.K8S_ADM_ONLY_SECRETS]: Edition.BE,\n    [FeatureId.K8S_ROLLING_RESTART]: Edition.BE,\n    [FeatureId.K8S_ANNOTATIONS]: Edition.BE,\n    [FeatureId.CA_FILE]: Edition.BE,\n    [FeatureId.K8S_REQUIRE_NOTE_ON_APPLICATIONS]: Edition.BE,\n  };\n\n  state.currentEdition = currentEdition;\n  state.features = features;\n}\n\nexport function selectShow(featureId?: FeatureId) {\n  if (!featureId) {\n    return FeatureState.VISIBLE;\n  }\n\n  if (!state.features[featureId]) {\n    return FeatureState.HIDDEN;\n  }\n\n  if (state.features[featureId] <= state.currentEdition) {\n    return FeatureState.VISIBLE;\n  }\n\n  if (state.features[featureId] === Edition.BE) {\n    return FeatureState.LIMITED_BE;\n  }\n\n  return FeatureState.HIDDEN;\n}\n\nexport function isLimitedToBE(featureId?: FeatureId) {\n  return selectShow(featureId) === FeatureState.LIMITED_BE;\n}\n","import { ComponentType } from 'react';\n\nexport function withEdition<T>(\n  WrappedComponent: ComponentType<T>,\n  edition: 'BE' | 'CE'\n): ComponentType<T> {\n  // Try to create a nice displayName for React Dev Tools.\n  const displayName =\n    WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n    if (process.env.PORTAINER_EDITION !== edition) {\n      return null;\n    }\n\n    return <WrappedComponent {...props} />;\n  }\n\n  WrapperComponent.displayName = `with${edition}Edition(${displayName})`;\n\n  return WrapperComponent;\n}\n","import { GitCredential } from '@/react/portainer/account/git-credentials/types';\nimport { useGitCredentials } from '@/react/portainer/account/git-credentials/git-credentials.service';\nimport { useUser } from '@/react/hooks/useUser';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/ReactSelect';\n\nexport function CredentialSelector({\n  value,\n  onChange,\n  error,\n}: {\n  value?: number;\n  onChange(gitCredential?: GitCredential | null): void;\n  error?: string;\n}) {\n  const { user } = useUser();\n\n  const gitCredentialsQuery = useGitCredentials(user.Id);\n\n  const gitCredentials = gitCredentialsQuery.data ?? [];\n\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <FormControl\n          label=\"Git Credentials\"\n          inputId=\"git-creds-selector\"\n          errors={error}\n        >\n          <Select\n            placeholder=\"select git credential or fill in below\"\n            value={gitCredentials.find(\n              (gitCredential) => gitCredential.id === value\n            )}\n            options={gitCredentials}\n            getOptionLabel={(gitCredential) => gitCredential.name}\n            getOptionValue={(gitCredential) => gitCredential.id.toString()}\n            onChange={onChange}\n            isClearable\n            noOptionsMessage={() => 'no saved credentials'}\n            inputId=\"git-creds-selector\"\n          />\n        </FormControl>\n      </div>\n    </div>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { Checkbox } from '@@/form-components/Checkbox';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { GitAuthModel } from '../types';\n\nexport function NewCredentialForm({\n  value,\n  onChange,\n  errors,\n}: {\n  value: GitAuthModel;\n  onChange: (value: Partial<GitAuthModel>) => void;\n  errors?: FormikErrors<GitAuthModel>;\n}) {\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <FormControl label=\"\">\n          <div className=\"flex items-center gap-2\">\n            <Checkbox\n              id=\"repository-save-credential\"\n              label=\"save credential\"\n              checked={value.SaveCredential || false}\n              className=\"[&+label]:mb-0\"\n              onChange={(e) => onChange({ SaveCredential: e.target.checked })}\n            />\n            <Input\n              value={value.NewCredentialName || ''}\n              name=\"new_credential_name\"\n              placeholder=\"credential name\"\n              className=\"ml-4 w-48\"\n              onChange={(e) => onChange({ NewCredentialName: e.target.value })}\n              disabled={!value.SaveCredential}\n            />\n            {errors?.NewCredentialName && (\n              <div className=\"small text-danger\">\n                {errors.NewCredentialName}\n              </div>\n            )}\n\n            {value.SaveCredential && (\n              <TextTip color=\"blue\">\n                This git credential can be managed through your account page\n              </TextTip>\n            )}\n          </div>\n        </FormControl>\n      </div>\n    </div>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { boolean, number, object, SchemaOf, string } from 'yup';\nimport { useState } from 'react';\n\nimport { GitAuthModel } from '@/react/portainer/gitops/types';\nimport { useDebounce } from '@/react/hooks/useDebounce';\nimport { GitCredential } from '@/react/portainer/account/git-credentials/types';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { Input } from '@@/form-components/Input';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { CredentialSelector } from './CredentialSelector';\nimport { NewCredentialForm } from './NewCredentialForm';\n\ninterface Props {\n  value: GitAuthModel;\n  onChange: (value: Partial<GitAuthModel>) => void;\n  isAuthExplanationVisible?: boolean;\n  errors?: FormikErrors<GitAuthModel>;\n}\n\nexport function AuthFieldset({\n  value: initialValue,\n  onChange,\n  isAuthExplanationVisible,\n  errors,\n}: Props) {\n  const [value, setValue] = useState(initialValue); // TODO: remove this state when form is not inside angularjs\n  const [username, setUsername] = useDebounce(\n    value.RepositoryUsername || '',\n    (username) => handleChange({ RepositoryUsername: username })\n  );\n  const [password, setPassword] = useDebounce(\n    value.RepositoryPassword || '',\n    (password) => handleChange({ RepositoryPassword: password })\n  );\n\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"Authentication\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            name=\"authentication\"\n            checked={value.RepositoryAuthentication || false}\n            onChange={(value) =>\n              handleChange({ RepositoryAuthentication: value })\n            }\n            data-cy=\"component-gitAuthToggle\"\n          />\n        </div>\n      </div>\n\n      {value.RepositoryAuthentication && (\n        <>\n          {isAuthExplanationVisible && (\n            <TextTip color=\"orange\" className=\"mb-2\">\n              Enabling authentication will store the credentials and it is\n              advisable to use a git service account\n            </TextTip>\n          )}\n\n          {isBE && (\n            <CredentialSelector\n              onChange={handleChangeGitCredential}\n              value={value.RepositoryGitCredentialID}\n            />\n          )}\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <FormControl label=\"Username\" errors={errors?.RepositoryUsername}>\n                <Input\n                  value={username}\n                  name=\"repository_username\"\n                  placeholder={\n                    value.RepositoryGitCredentialID ? '' : 'git username'\n                  }\n                  onChange={(e) => setUsername(e.target.value)}\n                  data-cy=\"component-gitUsernameInput\"\n                  readOnly={!!value.RepositoryGitCredentialID}\n                />\n              </FormControl>\n            </div>\n          </div>\n          <div className=\"form-group !mb-0\">\n            <div className=\"col-sm-12\">\n              <FormControl\n                label=\"Personal Access Token\"\n                tooltip=\"Provide a personal access token or password\"\n                errors={errors?.RepositoryPassword}\n              >\n                <Input\n                  type=\"password\"\n                  value={password}\n                  name=\"repository_password\"\n                  placeholder=\"*******\"\n                  onChange={(e) => setPassword(e.target.value)}\n                  data-cy=\"component-gitPasswordInput\"\n                  readOnly={!!value.RepositoryGitCredentialID}\n                />\n              </FormControl>\n            </div>\n          </div>\n          {!value.RepositoryGitCredentialID &&\n            value.RepositoryPassword &&\n            isBE && (\n              <NewCredentialForm\n                value={value}\n                onChange={handleChange}\n                errors={errors}\n              />\n            )}\n        </>\n      )}\n    </>\n  );\n\n  function handleChangeGitCredential(gitCredential?: GitCredential | null) {\n    handleChange(\n      gitCredential\n        ? {\n            RepositoryGitCredentialID: gitCredential.id,\n            RepositoryUsername: gitCredential?.username,\n            RepositoryPassword: '',\n            SaveCredential: false,\n            NewCredentialName: '',\n          }\n        : {\n            RepositoryGitCredentialID: 0,\n            RepositoryUsername: '',\n            RepositoryPassword: '',\n          }\n    );\n  }\n\n  function handleChange(partialValue: Partial<GitAuthModel>) {\n    onChange(partialValue);\n    setValue((value) => ({ ...value, ...partialValue }));\n  }\n}\n\nexport function gitAuthValidation(\n  gitCredentials: Array<GitCredential>,\n  isAuthEdit: boolean,\n  isCreatedFromCustomTemplate: boolean\n): SchemaOf<GitAuthModel> {\n  return object({\n    RepositoryAuthentication: boolean().default(false),\n    RepositoryGitCredentialID: number().default(0),\n    RepositoryUsername: string()\n      .when(['RepositoryAuthentication', 'RepositoryGitCredentialID'], {\n        is: (auth: boolean, id: number) => auth && !id,\n        then: string().required('Username is required'),\n      })\n      .default(''),\n    RepositoryPassword: string()\n      .when(['RepositoryAuthentication', 'RepositoryGitCredentialID'], {\n        is: (auth: boolean, id: number) =>\n          auth && !id && !isAuthEdit && !isCreatedFromCustomTemplate,\n        then: string().required('Password is required'),\n      })\n      .default(''),\n    SaveCredential: boolean().default(false),\n    NewCredentialName: string()\n      .default('')\n      .when(['RepositoryAuthentication', 'SaveCredential'], {\n        is: (RepositoryAuthentication: boolean, SaveCredential: boolean) =>\n          RepositoryAuthentication && SaveCredential && !isAuthEdit,\n        then: string()\n          .required('Name is required')\n          .test(\n            'is-unique',\n            'This name is already been used, please try another one',\n            (name) => !!name && !gitCredentials.find((x) => x.name === name)\n          )\n          .matches(\n            /^[-_a-z0-9]+$/,\n            \"This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').\"\n          ),\n      }),\n  });\n}\n","import { string } from 'yup';\nimport parse from 'parse-duration';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { useCaretPosition } from '@@/form-components/useCaretPosition';\n\nexport function IntervalField({\n  onChange,\n  value,\n  errors,\n}: {\n  value: string;\n  onChange: (value: string) => void;\n  errors?: string;\n}) {\n  const { ref, updateCaret } = useCaretPosition();\n\n  return (\n    <FormControl\n      label=\"Fetch interval\"\n      inputId=\"repository_fetch_interval\"\n      tooltip=\"Specify how frequently polling occurs using syntax such as, 5m = 5 minutes, 24h = 24 hours, 6h40m = 6 hours and 40 minutes.\"\n      required\n      errors={errors}\n    >\n      <Input\n        mRef={ref}\n        id=\"repository_fetch_interval\"\n        name=\"repository_fetch_interval\"\n        placeholder=\"5m\"\n        required\n        value={value}\n        onChange={(e) => {\n          onChange(e.target.value);\n          updateCaret();\n        }}\n      />\n    </FormControl>\n  );\n}\n\nexport function intervalValidation() {\n  return (\n    string()\n      .required('This field is required.')\n      // TODO: find a regex that validates time.Duration\n      // .matches(\n      //   // validate golang time.Duration format\n      //   // https://cs.opensource.google/go/go/+/master:src/time/format.go;l=1590\n      //   /[-+]?([0-9]*(\\.[0-9]*)?[a-z]+)+/g,\n      //   'Please enter a valid time interval.'\n      // )\n      .test(\n        'minimumInterval',\n        'Minimum interval is 1m',\n        (value) => !!value && parse(value, 'minute') >= 1\n      )\n  );\n}\n","import { useRef, useState, useCallback, useEffect } from 'react';\n\nexport function useCaretPosition<\n  T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,\n>() {\n  const node = useRef<T>(null);\n  const [start, setStart] = useState(0);\n  const [end, setEnd] = useState(0);\n\n  const updateCaret = useCallback(() => {\n    if (node.current) {\n      const { selectionStart, selectionEnd } = node.current;\n\n      setStart(selectionStart || 0);\n      setEnd(selectionEnd || 0);\n    }\n  }, []);\n\n  useEffect(() => {\n    if (node.current) {\n      node.current.setSelectionRange(start, end);\n    }\n  });\n\n  return { start, end, ref: node, updateCaret };\n}\n","import { truncateLeftRight } from '@/portainer/filters/filters';\n\nimport { HelpLink } from '@@/HelpLink';\nimport { CopyButton } from '@@/buttons';\nimport { FormControl } from '@@/form-components/FormControl';\n\nexport function WebhookSettings({\n  value,\n  baseUrl,\n  docsLink,\n}: {\n  docsLink?: string;\n  value: string;\n  baseUrl: string;\n}) {\n  const url = `${baseUrl}/${value}`;\n\n  return (\n    <FormControl\n      label=\"Webhook\"\n      tooltip={\n        !!docsLink && (\n          <>\n            See{' '}\n            <HelpLink docLink={docsLink}>\n              Portainer documentation on webhook usage\n            </HelpLink>\n            .\n          </>\n        )\n      }\n    >\n      <div className=\"flex items-center gap-2\">\n        <span className=\"text-muted\">{truncateLeftRight(url)}</span>\n        <CopyButton copyText={url} color=\"light\">\n          Copy link\n        </CopyButton>\n      </div>\n    </FormControl>\n  );\n}\n","import { ReactNode } from 'react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nexport function ForceDeploymentSwitch({\n  checked,\n  onChange,\n  tooltip = '',\n  label = 'Force redeployment',\n}: {\n  checked: boolean;\n  onChange: (value: boolean) => void;\n  tooltip?: ReactNode;\n  label?: string;\n}) {\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <SwitchField\n          name=\"forceUpdate\"\n          featureId={FeatureId.FORCE_REDEPLOYMENT}\n          checked={checked}\n          label={label}\n          tooltip={tooltip}\n          labelClass=\"col-sm-3 col-lg-2\"\n          onChange={onChange}\n        />\n      </div>\n    </div>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { type AutoUpdateModel } from '@/react/portainer/gitops/types';\n\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { ForceDeploymentSwitch } from './ForceDeploymentSwitch';\nimport { IntervalField } from './IntervalField';\nimport { WebhookSettings } from './WebhookSettings';\n\nexport function AutoUpdateSettings({\n  value,\n  onChange,\n  environmentType,\n  showForcePullImage,\n  errors,\n  baseWebhookUrl,\n  webhookId,\n  webhookDocs,\n}: {\n  value: AutoUpdateModel;\n  onChange: (value: Partial<AutoUpdateModel>) => void;\n  environmentType?: 'DOCKER' | 'KUBERNETES';\n  showForcePullImage: boolean;\n  errors?: FormikErrors<AutoUpdateModel>;\n  baseWebhookUrl: string;\n  webhookId: string;\n  webhookDocs?: string;\n}) {\n  return (\n    <>\n      <TextTip color=\"orange\" className=\"mb-2\">\n        Any changes to this stack or application that have been made locally via\n        Portainer or directly in the cluster will be overwritten by the git\n        repository content, which may cause service interruption.\n      </TextTip>\n\n      <FormControl label=\"Mechanism\">\n        <ButtonSelector\n          size=\"small\"\n          options={[\n            { value: 'Interval', label: 'Polling' },\n            { value: 'Webhook', label: 'Webhook' },\n          ]}\n          value={value.RepositoryMechanism || 'Interval'}\n          onChange={(value) => onChange({ RepositoryMechanism: value })}\n        />\n      </FormControl>\n\n      {value.RepositoryMechanism === 'Webhook' && (\n        <WebhookSettings\n          baseUrl={baseWebhookUrl}\n          value={webhookId}\n          docsLink={webhookDocs}\n        />\n      )}\n\n      {value.RepositoryMechanism === 'Interval' && (\n        <IntervalField\n          value={value.RepositoryFetchInterval || ''}\n          onChange={(value) => onChange({ RepositoryFetchInterval: value })}\n          errors={errors?.RepositoryFetchInterval}\n        />\n      )}\n\n      {showForcePullImage && (\n        <div className=\"form-group\">\n          <div className=\"col-sm-12\">\n            <SwitchField\n              name=\"forcePullImage\"\n              featureId={FeatureId.STACK_PULL_IMAGE}\n              checked={value.ForcePullImage || false}\n              label=\"Re-pull image\"\n              labelClass=\"col-sm-3 col-lg-2\"\n              tooltip=\"If enabled, then when redeploy is triggered via the webhook or polling, if there's a newer image with the tag that you've specified (e.g. changeable development builds), it's pulled and redeployed. If you haven't specified a tag, or have specified 'latest' as the tag, then the image with the tag 'latest' is pulled and redeployed.\"\n              onChange={(value) => onChange({ ForcePullImage: value })}\n            />\n          </div>\n        </div>\n      )}\n\n      <ForceDeploymentSwitch\n        checked={value.RepositoryAutomaticUpdatesForce || false}\n        onChange={(value) =>\n          onChange({ RepositoryAutomaticUpdatesForce: value })\n        }\n        label={\n          environmentType === 'KUBERNETES' ? 'Always apply manifest' : undefined\n        }\n        tooltip={\n          environmentType === 'KUBERNETES' ? (\n            <>\n              <p>\n                If enabled, then when redeploy is triggered via the webhook or\n                polling, kubectl apply is always performed, even if Portainer\n                detects no difference between the git repo and what was stored\n                locally on last git pull.\n              </p>\n              <p>\n                This is useful if you want your git repo to be the source of\n                truth and are fine with changes made directly to resources in\n                the cluster being overwritten.\n              </p>\n            </>\n          ) : undefined\n        }\n      />\n    </>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { AutoUpdateModel } from '@/react/portainer/gitops/types';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { InsightsBox } from '@@/InsightsBox';\n\nimport { AutoUpdateSettings } from './AutoUpdateSettings';\n\nexport function AutoUpdateFieldset({\n  value,\n  onChange,\n  environmentType,\n  isForcePullVisible = true,\n  errors,\n  baseWebhookUrl,\n  webhookId,\n  webhooksDocs,\n}: {\n  value: AutoUpdateModel;\n  onChange: (value: AutoUpdateModel) => void;\n  environmentType?: 'DOCKER' | 'KUBERNETES';\n  isForcePullVisible?: boolean;\n  errors?: FormikErrors<AutoUpdateModel>;\n  baseWebhookUrl: string;\n  webhookId: string;\n  webhooksDocs?: string;\n}) {\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            name=\"autoUpdate\"\n            checked={value.RepositoryAutomaticUpdates}\n            label=\"GitOps updates\"\n            tooltip=\"When enabled, at each polling interval or webhook invocation, if the\n              git repo differs from what was stored locally on the last git pull,\n              the changes are deployed.\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            onChange={(value) =>\n              handleChange({ RepositoryAutomaticUpdates: value })\n            }\n          />\n        </div>\n      </div>\n\n      <InsightsBox\n        content={\n          <p>\n            We&#39;ve renamed &quot;Automatic updates&quot; to better align with\n            industry terminology and clarify its purpose for all users.\n            Originally chosen during the early emergence of GitOps, the name has\n            changed, but the functionality remains unchanged. GitOps has rapidly\n            emerged as a revolutionary approach to managing infrastructure and\n            application changes, and we want to ensure our platform reflects the\n            latest advancements in the industry.\n          </p>\n        }\n        header=\"Meet ‘GitOps updates’ : Formerly known as Automatic updates\"\n        insightCloseId=\"rename-gitops-updates\"\n        className=\"mb-3\"\n      />\n\n      {value.RepositoryAutomaticUpdates && (\n        <AutoUpdateSettings\n          webhookId={webhookId}\n          baseWebhookUrl={baseWebhookUrl}\n          value={value}\n          onChange={handleChange}\n          environmentType={environmentType}\n          showForcePullImage={isForcePullVisible}\n          errors={errors}\n          webhookDocs={webhooksDocs}\n        />\n      )}\n    </>\n  );\n\n  function handleChange(newValues: Partial<AutoUpdateModel>) {\n    onChange({ ...value, ...newValues });\n  }\n}\n","import { AutoUpdateResponse, AutoUpdateModel } from '../types';\n\nexport function parseAutoUpdateResponse(\n  response?: AutoUpdateResponse\n): AutoUpdateModel {\n  if (!response || (!response?.Interval && !response?.Webhook)) {\n    return {\n      RepositoryAutomaticUpdates: false,\n      RepositoryAutomaticUpdatesForce: false,\n      RepositoryMechanism: 'Interval',\n      RepositoryFetchInterval: '5m',\n      ForcePullImage: false,\n    };\n  }\n\n  return {\n    RepositoryAutomaticUpdates: true,\n    RepositoryMechanism: response.Interval ? 'Interval' : 'Webhook',\n    RepositoryFetchInterval: response.Interval || '',\n    RepositoryAutomaticUpdatesForce: response.ForceUpdate,\n    ForcePullImage: response.ForcePullImage,\n  };\n}\n\nexport function transformAutoUpdateViewModel(\n  viewModel?: AutoUpdateModel,\n  webhookId?: string\n): AutoUpdateResponse | null {\n  if (!viewModel || !viewModel.RepositoryAutomaticUpdates) {\n    return null;\n  }\n\n  if (viewModel.RepositoryMechanism === 'Webhook' && !webhookId) {\n    throw new Error('Webhook ID is required');\n  }\n\n  return {\n    Interval:\n      viewModel.RepositoryMechanism === 'Interval'\n        ? viewModel.RepositoryFetchInterval\n        : '',\n    Webhook:\n      viewModel.RepositoryMechanism === 'Webhook' && webhookId ? webhookId : '',\n    ForceUpdate: viewModel.RepositoryAutomaticUpdatesForce,\n    ForcePullImage: viewModel.ForcePullImage,\n  };\n}\n","import { string, boolean, object, SchemaOf, mixed } from 'yup';\n\nimport { AutoUpdateMechanism, AutoUpdateModel } from '../types';\n\nimport { intervalValidation } from './IntervalField';\n\nexport function autoUpdateValidation(): SchemaOf<AutoUpdateModel> {\n  return object({\n    RepositoryAutomaticUpdates: boolean().default(false),\n    RepositoryAutomaticUpdatesForce: boolean().default(false),\n    RepositoryMechanism: mixed<AutoUpdateMechanism>()\n      .oneOf(['Interval', 'Webhook'])\n      .when('RepositoryAutomaticUpdates', {\n        is: true,\n        then: string().required(),\n      })\n      .default('Interval'),\n    RepositoryFetchInterval: string()\n      .default('')\n      .when(['RepositoryAutomaticUpdates', 'RepositoryMechanism'], {\n        is: (autoUpdates: boolean, mechanism: AutoUpdateMechanism) =>\n          autoUpdates && mechanism === 'Interval',\n        then: intervalValidation(),\n      }),\n    RepositoryWebhookId: string().default(''),\n    ForcePullImage: boolean().default(false),\n  });\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\ninterface SearchPayload {\n  repository: string;\n  keyword: string;\n  reference?: string;\n  username?: string;\n  password?: string;\n  tlsSkipVerify?: boolean;\n  createdFromCustomTemplateId?: number;\n}\n\nexport function useSearch(payload: SearchPayload, enabled: boolean) {\n  return useQuery(\n    ['git_repo_search_results', { payload }],\n    () => searchRepo(payload),\n    {\n      enabled,\n      retry: false,\n      cacheTime: 0,\n    }\n  );\n}\n\nexport async function searchRepo(payload: SearchPayload) {\n  try {\n    const { data } = await axios.post<string[] | null>(\n      '/gitops/repo/files/search',\n      payload\n    );\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n","import { useSearch } from '@/react/portainer/gitops/queries/useSearch';\n\nimport { AutocompleteSelect } from '@@/form-components/AutocompleteSelect';\n\nimport { getAuthentication } from '../utils';\nimport { GitFormModel } from '../types';\n\nexport function PathSelector({\n  value,\n  onChange,\n  placeholder,\n  model,\n  dirOnly,\n  readOnly,\n  inputId,\n  createdFromCustomTemplateId,\n}: {\n  value: string;\n  onChange(value: string): void;\n  placeholder: string;\n  model: GitFormModel;\n  dirOnly?: boolean;\n  readOnly?: boolean;\n  inputId: string;\n  createdFromCustomTemplateId?: number;\n}) {\n  const creds = getAuthentication(model);\n  const payload = {\n    repository: model.RepositoryURL,\n    keyword: value,\n    reference: model.RepositoryReferenceName,\n    tlsSkipVerify: model.TLSSkipVerify,\n    dirOnly,\n    createdFromCustomTemplateId,\n    ...creds,\n  };\n  const enabled = Boolean(\n    model.RepositoryURL && model.RepositoryURLValid && value\n  );\n  const { data: searchResults } = useSearch(payload, enabled);\n\n  return (\n    <AutocompleteSelect\n      searchResults={searchResults?.map((result) => ({\n        value: result,\n        label: result,\n      }))}\n      value={value}\n      onChange={onChange}\n      placeholder={placeholder}\n      readOnly={readOnly}\n      inputId={inputId}\n    />\n  );\n}\n","import { useStateWrapper } from '@/react/hooks/useStateWrapper';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Input } from '@@/form-components/Input';\n\nimport { GitFormModel } from '../types';\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { PathSelector } from './PathSelector';\n\ninterface Props {\n  errors?: string;\n  value: string;\n  onChange(value: string): void;\n  isCompose: boolean;\n  model: GitFormModel;\n  isDockerStandalone: boolean;\n  createdFromCustomTemplateId?: number;\n}\n\nexport function ComposePathField({\n  value,\n  onChange,\n  isCompose,\n  model,\n  isDockerStandalone,\n  errors,\n  createdFromCustomTemplateId,\n}: Props) {\n  const [inputValue, updateInputValue] = useStateWrapper(value, onChange);\n\n  return (\n    <div className=\"form-group\">\n      <span className=\"col-sm-12\">\n        <TextTip color=\"blue\" className=\"mb-2\">\n          <span>\n            Indicate the path to the {isCompose ? 'Compose' : 'Manifest'} file\n            from the root of your repository (requires a yaml, yml, json, or hcl\n            file extension).\n          </span>\n          {isDockerStandalone && (\n            <span className=\"ml-2\">\n              To enable rebuilding of an image if already present on Docker\n              standalone environments, include\n              <code>pull_policy: build</code> in your compose file as per{' '}\n              <a href=\"https://docs.docker.com/compose/compose-file/#pull_policy\">\n                Docker documentation\n              </a>\n              .\n            </span>\n          )}\n        </TextTip>\n      </span>\n      <div className=\"col-sm-12\">\n        <FormControl\n          label={isCompose ? 'Compose path' : 'Manifest path'}\n          inputId=\"stack_repository_path\"\n          required\n          errors={errors}\n        >\n          {isBE ? (\n            <PathSelector\n              value={value}\n              onChange={onChange}\n              placeholder={isCompose ? 'docker-compose.yml' : 'manifest.yml'}\n              model={model}\n              inputId=\"stack_repository_path\"\n              createdFromCustomTemplateId={createdFromCustomTemplateId}\n            />\n          ) : (\n            <Input\n              value={inputValue}\n              onChange={(e) => {\n                updateInputValue(e.target.value);\n              }}\n              placeholder={isCompose ? 'docker-compose.yml' : 'manifest.yml'}\n              id=\"stack_repository_path\"\n            />\n          )}\n        </FormControl>\n      </div>\n    </div>\n  );\n}\n","import { AxiosError } from 'axios';\nimport { useQuery } from 'react-query';\n\nimport axios, {\n  isDefaultResponse,\n  parseAxiosError,\n} from '@/portainer/services/axios';\n\ninterface Creds {\n  username?: string;\n  password?: string;\n  gitCredentialId?: number;\n}\ninterface CheckRepoOptions {\n  creds?: Creds;\n  force?: boolean;\n  tlsSkipVerify?: boolean;\n  createdFromCustomTemplateId?: number;\n}\n\nexport function useCheckRepo(\n  url: string,\n  options: CheckRepoOptions,\n  {\n    enabled,\n    onSettled,\n  }: { enabled?: boolean; onSettled?(isValid?: boolean): void } = {}\n) {\n  return useQuery(\n    ['git_repo_valid', url, options],\n    () => checkRepo(url, options),\n    {\n      enabled: !!url && enabled,\n      onSettled,\n      retry: false,\n    }\n  );\n}\n\nexport async function checkRepo(\n  repository: string,\n  { force, ...options }: CheckRepoOptions\n): Promise<boolean> {\n  try {\n    await axios.post<string[]>(\n      '/gitops/repo/refs',\n      {\n        repository,\n        tlsSkipVerify: options.tlsSkipVerify,\n        createdFromCustomTemplateId: options.createdFromCustomTemplateId,\n        ...options.creds,\n      },\n      force ? { params: { force } } : {}\n    );\n    return true;\n  } catch (error) {\n    throw parseAxiosError(error, '', (axiosError: AxiosError) => {\n      let details = isDefaultResponse(axiosError.response?.data)\n        ? axiosError.response?.data.details || ''\n        : '';\n\n      const { creds = {} } = options;\n      // If no credentials were provided alter error from git to indicate repository is not found or is private\n      if (\n        (!(creds.username && creds.password) || !creds.gitCredentialId) &&\n        details ===\n          'authentication failed, please ensure that the git credentials are correct'\n      ) {\n        details =\n          'Git repository could not be found or is private, please ensure that the URL is correct or credentials are provided.';\n      }\n\n      const error = new Error(details);\n      return { error, details };\n    });\n  }\n}\n","import { ChangeEvent, useState } from 'react';\nimport { RefreshCcw } from 'lucide-react';\nimport { useQueryClient } from 'react-query';\nimport { string, StringSchema } from 'yup';\n\nimport {\n  checkRepo,\n  useCheckRepo,\n} from '@/react/portainer/gitops/queries/useCheckRepo';\nimport { useDebounce } from '@/react/hooks/useDebounce';\nimport { isPortainerError } from '@/portainer/error';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Button } from '@@/buttons';\nimport { useCachedValidation } from '@@/form-components/useCachedTest';\n\nimport { isBE } from '../feature-flags/feature-flags.service';\n\nimport { GitFormModel } from './types';\nimport { getAuthentication } from './utils';\n\ninterface Props {\n  value: string;\n  onChange(value: string): void;\n  onChangeRepositoryValid(value: boolean): void;\n  model: GitFormModel;\n  createdFromCustomTemplateId?: number;\n  errors?: string;\n}\n\nexport function GitFormUrlField({\n  value,\n  onChange,\n  onChangeRepositoryValid,\n  model,\n  createdFromCustomTemplateId,\n  errors,\n}: Props) {\n  const queryClient = useQueryClient();\n\n  const creds = getAuthentication(model);\n  const [force, setForce] = useState(false);\n  const repoStatusQuery = useCheckRepo(\n    value,\n    {\n      creds,\n      force,\n      tlsSkipVerify: model.TLSSkipVerify,\n      createdFromCustomTemplateId,\n    },\n    {\n      onSettled(isValid) {\n        onChangeRepositoryValid(!!isValid);\n        setForce(false);\n      },\n      // disabled check on CE since it's not supported\n      enabled: isBE,\n    }\n  );\n\n  const [debouncedValue, debouncedOnChange] = useDebounce(value, onChange);\n\n  const errorMessage = isPortainerError(repoStatusQuery.error)\n    ? repoStatusQuery.error.message\n    : undefined;\n\n  return (\n    <div className=\"form-group\">\n      <span className=\"col-sm-12\">\n        <TextTip color=\"blue\">You can use the URL of a git repository.</TextTip>\n      </span>\n      <div className=\"col-sm-12\">\n        <FormControl\n          label=\"Repository URL\"\n          inputId=\"stack_repository_url\"\n          errors={errorMessage || errors}\n          required\n        >\n          <span className=\"flex\">\n            <Input\n              value={debouncedValue}\n              type=\"text\"\n              name=\"repoUrlField\"\n              className=\"form-control\"\n              placeholder=\"https://github.com/portainer/portainer-compose\"\n              data-cy=\"component-gitUrlInput\"\n              required\n              onChange={handleChange}\n            />\n\n            <Button\n              onClick={onRefresh}\n              size=\"medium\"\n              className=\"vertical-center\"\n              color=\"light\"\n              icon={RefreshCcw}\n              title=\"refreshGitRepo\"\n              disabled={!model.RepositoryURLValid}\n            />\n          </span>\n        </FormControl>\n      </div>\n    </div>\n  );\n\n  function handleChange(e: ChangeEvent<HTMLInputElement>) {\n    debouncedOnChange(e.target.value);\n  }\n\n  function onRefresh() {\n    setForce(true);\n    queryClient.invalidateQueries(['git_repo_refs', 'git_repo_search_results']);\n  }\n}\n\n// Todo: once git form is used only in react, it should be used for validation instead of L40-52\nexport function useUrlValidation(force: boolean) {\n  const existenceTest = useCachedValidation<string, GitFormModel>(\n    (url, context) => {\n      if (!url) {\n        return Promise.resolve(true);\n      }\n\n      const model = context.parent as GitFormModel;\n\n      const creds = getAuthentication(model);\n      return checkRepo(url, { creds, force });\n    }\n  );\n\n  return (string() as StringSchema<string, GitFormModel>)\n    .url('Invalid Url')\n    .required('Repository URL is required')\n    .test('repo-exists', 'Repository does not exist', existenceTest);\n}\n","import { FormikErrors } from 'formik';\n\nimport { useStateWrapper } from '@/react/hooks/useStateWrapper';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { InputList, ItemProps } from '@@/form-components/InputList';\n\ninterface Props {\n  value: Array<string>;\n  onChange: (value: Array<string>) => void;\n  errors?: FormikErrors<string>[] | string | string[];\n}\n\nexport function AdditionalFileField({ onChange, value, errors }: Props) {\n  return (\n    <InputList\n      errors={errors}\n      label=\"Additional paths\"\n      onChange={onChange}\n      value={value}\n      addLabel=\"Add file\"\n      item={Item}\n      itemBuilder={() => ''}\n    />\n  );\n}\n\nfunction Item({\n  item,\n  onChange,\n  disabled,\n  error,\n  readOnly,\n}: ItemProps<string>) {\n  const [inputValue, updateInputValue] = useStateWrapper(item, onChange);\n\n  return (\n    <div className=\"relative flex flex-col\">\n      <InputGroup size=\"small\">\n        <InputGroup.Addon>path</InputGroup.Addon>\n        <InputGroup.Input\n          required\n          disabled={disabled}\n          readOnly={readOnly}\n          value={inputValue}\n          onChange={(e) => {\n            updateInputValue(e.target.value);\n          }}\n        />\n      </InputGroup>\n      {error && (\n        <div className=\"absolute -bottom-7\">\n          <FormError>{error}</FormError>\n        </div>\n      )}\n    </div>\n  );\n}\n","import { array, boolean, object, SchemaOf, string } from 'yup';\nimport { FormikErrors } from 'formik';\nimport { useState } from 'react';\n\nimport { ComposePathField } from '@/react/portainer/gitops/ComposePathField';\nimport { RefField } from '@/react/portainer/gitops/RefField';\nimport { GitFormUrlField } from '@/react/portainer/gitops/GitFormUrlField';\nimport { GitFormModel } from '@/react/portainer/gitops/types';\nimport { TimeWindowDisplay } from '@/react/portainer/gitops/TimeWindowDisplay';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { validateForm } from '@@/form-components/validate-form';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { GitCredential } from '../account/git-credentials/types';\n\nimport { AdditionalFileField } from './AdditionalFilesField';\nimport { gitAuthValidation, AuthFieldset } from './AuthFieldset';\nimport { AutoUpdateFieldset } from './AutoUpdateFieldset';\nimport { autoUpdateValidation } from './AutoUpdateFieldset/validation';\nimport { refFieldValidation } from './RefField/RefField';\n\ninterface Props {\n  value: GitFormModel;\n  onChange: (value: Partial<GitFormModel>) => void;\n  environmentType?: 'DOCKER' | 'KUBERNETES' | undefined;\n  deployMethod?: 'compose' | 'manifest';\n  isDockerStandalone?: boolean;\n  isAdditionalFilesFieldVisible?: boolean;\n  isForcePullVisible?: boolean;\n  isAuthExplanationVisible?: boolean;\n  errors?: FormikErrors<GitFormModel>;\n  baseWebhookUrl?: string;\n  webhookId?: string;\n  webhooksDocs?: string;\n  createdFromCustomTemplateId?: number;\n}\n\nexport function GitForm({\n  value: initialValue,\n  onChange,\n  environmentType = 'DOCKER',\n  deployMethod = 'compose',\n  isDockerStandalone = false,\n  isAdditionalFilesFieldVisible,\n  isForcePullVisible,\n  isAuthExplanationVisible,\n  errors = {},\n  baseWebhookUrl,\n  webhookId,\n  webhooksDocs,\n  createdFromCustomTemplateId,\n}: Props) {\n  const [value, setValue] = useState(initialValue); // TODO: remove this state when form is not inside angularjs\n\n  return (\n    <FormSection title=\"Git repository\">\n      <AuthFieldset\n        value={value}\n        onChange={handleChange}\n        isAuthExplanationVisible={isAuthExplanationVisible}\n        errors={errors}\n      />\n\n      <GitFormUrlField\n        value={value.RepositoryURL}\n        onChange={(value) => handleChange({ RepositoryURL: value })}\n        onChangeRepositoryValid={(value) =>\n          handleChange({ RepositoryURLValid: value })\n        }\n        model={value}\n        createdFromCustomTemplateId={createdFromCustomTemplateId}\n        errors={errors.RepositoryURL}\n      />\n\n      <RefField\n        value={value.RepositoryReferenceName || ''}\n        onChange={(value) => handleChange({ RepositoryReferenceName: value })}\n        model={value}\n        error={errors.RepositoryReferenceName}\n        isUrlValid={value.RepositoryURLValid}\n        createdFromCustomTemplateId={createdFromCustomTemplateId}\n      />\n\n      <ComposePathField\n        value={value.ComposeFilePathInRepository}\n        onChange={(value) =>\n          handleChange({ ComposeFilePathInRepository: value })\n        }\n        isCompose={deployMethod === 'compose'}\n        model={value}\n        isDockerStandalone={isDockerStandalone}\n        errors={errors.ComposeFilePathInRepository}\n        createdFromCustomTemplateId={createdFromCustomTemplateId}\n      />\n\n      {isAdditionalFilesFieldVisible && (\n        <AdditionalFileField\n          value={value.AdditionalFiles || []}\n          onChange={(value) => handleChange({ AdditionalFiles: value })}\n          errors={errors.AdditionalFiles}\n        />\n      )}\n\n      {value.AutoUpdate && (\n        <AutoUpdateFieldset\n          environmentType={environmentType}\n          webhookId={webhookId || ''}\n          baseWebhookUrl={baseWebhookUrl || ''}\n          value={value.AutoUpdate}\n          onChange={(value) => handleChange({ AutoUpdate: value })}\n          isForcePullVisible={isForcePullVisible}\n          errors={errors.AutoUpdate as FormikErrors<GitFormModel['AutoUpdate']>}\n          webhooksDocs={webhooksDocs}\n        />\n      )}\n\n      <TimeWindowDisplay />\n\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"Skip TLS Verification\"\n            checked={value.TLSSkipVerify || false}\n            onChange={(value) => handleChange({ TLSSkipVerify: value })}\n            name=\"TLSSkipVerify\"\n            tooltip=\"Enabling this will allow skipping TLS validation for any self-signed certificate.\"\n            labelClass=\"col-sm-3 col-lg-2\"\n          />\n        </div>\n      </div>\n    </FormSection>\n  );\n\n  function handleChange(partialValue: Partial<GitFormModel>) {\n    onChange(partialValue);\n    setValue((value) => ({ ...value, ...partialValue }));\n  }\n}\n\nexport async function validateGitForm(\n  gitCredentials: Array<GitCredential>,\n  formValues: GitFormModel,\n  isCreatedFromCustomTemplate: boolean\n) {\n  return validateForm<GitFormModel>(\n    () => buildGitValidationSchema(gitCredentials, isCreatedFromCustomTemplate),\n    formValues\n  );\n}\n\nexport function buildGitValidationSchema(\n  gitCredentials: Array<GitCredential>,\n  isCreatedFromCustomTemplate: boolean\n): SchemaOf<GitFormModel> {\n  return object({\n    RepositoryURL: string()\n      .test('valid URL', 'The URL must be a valid URL', (value) => {\n        if (!value) {\n          return true;\n        }\n\n        try {\n          const url = new URL(value);\n          return !!url.hostname;\n        } catch {\n          return false;\n        }\n      })\n      .required('Repository URL is required'),\n    RepositoryReferenceName: refFieldValidation(),\n    ComposeFilePathInRepository: string().required(\n      'Compose file path is required'\n    ),\n    AdditionalFiles: array(string().required('Path is required')).default([]),\n    RepositoryURLValid: boolean().default(false),\n    AutoUpdate: autoUpdateValidation().nullable(),\n    TLSSkipVerify: boolean().default(false),\n  }).concat(\n    gitAuthValidation(gitCredentials, false, isCreatedFromCustomTemplate)\n  ) as SchemaOf<GitFormModel>;\n}\n","import clsx from 'clsx';\n\ninterface Props {\n  url: string;\n  configFilePath: string;\n  additionalFiles?: string[];\n  className: string;\n  type: string;\n}\n\nexport function InfoPanel({\n  url,\n  configFilePath,\n  additionalFiles = [],\n  className,\n  type,\n}: Props) {\n  return (\n    <div className={clsx('form-group', className)}>\n      <div className=\"col-sm-12\">\n        <p>\n          This {type} was deployed from the git repository <code>{url}</code>.\n        </p>\n        <p>\n          Update\n          <code>{[configFilePath, ...additionalFiles].join(', ')}</code>\n          in git and pull from here to update the {type}.\n        </p>\n      </div>\n    </div>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\ninterface RefsPayload {\n  repository: string;\n  username?: string;\n  password?: string;\n  createdFromCustomTemplateID?: number;\n  tlsSkipVerify?: boolean;\n}\n\nexport function useGitRefs<T = string[]>(\n  payload: RefsPayload,\n  {\n    enabled,\n    select,\n    onSuccess,\n  }: {\n    enabled?: boolean;\n    select?: (data: string[]) => T;\n    onSuccess?(data: T): void;\n  } = {}\n) {\n  return useQuery(['git_repo_refs', { payload }], () => listRefs(payload), {\n    enabled,\n    retry: false,\n    cacheTime: 0,\n    select,\n    onSuccess,\n  });\n}\n\nexport async function listRefs(payload: RefsPayload) {\n  try {\n    const { data } = await axios.post<string[]>('/gitops/repo/refs', payload);\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n","import { StackId } from '@/react/common/stacks/types';\nimport { useGitRefs } from '@/react/portainer/gitops/queries/useGitRefs';\n\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\nimport { getAuthentication } from '../utils';\n\nimport { RefFieldModel } from './types';\n\nexport function RefSelector({\n  model,\n  value,\n  onChange,\n  isUrlValid,\n  stackId,\n  createdFromCustomTemplateId,\n  inputId,\n}: {\n  model: RefFieldModel;\n  value: string;\n  stackId?: StackId;\n  createdFromCustomTemplateId?: number;\n  onChange: (value: string) => void;\n  isUrlValid?: boolean;\n  inputId: string;\n}) {\n  const creds = getAuthentication(model);\n  const payload = {\n    repository: model.RepositoryURL,\n    stackId,\n    createdFromCustomTemplateId,\n    tlsSkipVerify: model.TLSSkipVerify,\n    ...creds,\n  };\n\n  const { data: refs } = useGitRefs<Array<{ label: string; value: string }>>(\n    payload,\n    {\n      enabled: !!(model.RepositoryURL && isUrlValid),\n      select: (refs) => {\n        if (refs.length === 0) {\n          return [{ value: 'refs/heads/main', label: 'refs/heads/main' }];\n        }\n\n        // put refs/heads/main first if it is present in repository\n        if (refs.includes('refs/heads/main')) {\n          refs.splice(refs.indexOf('refs/heads/main'), 1);\n          refs.unshift('refs/heads/main');\n        }\n\n        if (refs.includes('refs/heads/master')) {\n          refs.splice(refs.indexOf('refs/heads/master'), 1);\n          refs.unshift('refs/heads/master');\n        }\n\n        return refs.map((t: string) => ({\n          value: t,\n          label: t,\n        }));\n      },\n\n      onSuccess(refs) {\n        if (refs && !refs.some((ref) => ref.value === value)) {\n          onChange(refs[0].value);\n        }\n      },\n    }\n  );\n\n  return (\n    <PortainerSelect\n      inputId={inputId}\n      value={value}\n      options={refs || [{ value: 'refs/heads/main', label: 'refs/heads/main' }]}\n      onChange={(e) => e && onChange(e)}\n      data-cy=\"component-gitRefInput\"\n    />\n  );\n}\n","import { PropsWithChildren, ReactNode } from 'react';\nimport { SchemaOf, string } from 'yup';\n\nimport { StackId } from '@/react/common/stacks/types';\nimport { useStateWrapper } from '@/react/hooks/useStateWrapper';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { RefSelector } from './RefSelector';\nimport { RefFieldModel } from './types';\n\ninterface Props {\n  value: string;\n  onChange(value: string): void;\n  model: RefFieldModel;\n  error?: string;\n  isUrlValid?: boolean;\n  stackId?: StackId;\n  createdFromCustomTemplateId?: number;\n}\n\nexport function RefField({\n  value,\n  onChange,\n  model,\n  error,\n  isUrlValid,\n  stackId,\n  createdFromCustomTemplateId,\n}: Props) {\n  const [inputValue, updateInputValue] = useStateWrapper(value, onChange);\n  const inputId = 'repository-reference-field';\n  return isBE ? (\n    <Wrapper\n      inputId={inputId}\n      errors={error}\n      tip={\n        <>\n          Specify a reference of the repository using the following syntax:\n          branches with <code>refs/heads/branch_name</code> or tags with{' '}\n          <code>refs/tags/tag_name</code>.\n        </>\n      }\n    >\n      <RefSelector\n        inputId={inputId}\n        value={value}\n        onChange={onChange}\n        model={model}\n        isUrlValid={isUrlValid}\n        stackId={stackId}\n        createdFromCustomTemplateId={createdFromCustomTemplateId}\n      />\n    </Wrapper>\n  ) : (\n    <Wrapper\n      inputId={inputId}\n      errors={error}\n      tip={\n        <>\n          Specify a reference of the repository using the following syntax:\n          branches with <code>refs/heads/branch_name</code> or tags with{' '}\n          <code>refs/tags/tag_name</code>. If not specified, will use the\n          default <code>HEAD</code> reference normally the <code>main</code>{' '}\n          branch.\n        </>\n      }\n    >\n      <Input\n        id={inputId}\n        value={inputValue}\n        onChange={(e) => updateInputValue(e.target.value)}\n        placeholder=\"refs/heads/main\"\n      />\n    </Wrapper>\n  );\n}\n\nfunction Wrapper({\n  tip,\n  children,\n  errors,\n  inputId,\n}: PropsWithChildren<{ tip: ReactNode; errors?: string; inputId: string }>) {\n  return (\n    <div className=\"form-group\">\n      <span className=\"col-sm-12 mb-2\">\n        <TextTip color=\"blue\">{tip}</TextTip>\n      </span>\n      <div className=\"col-sm-12\">\n        <FormControl\n          label=\"Repository reference\"\n          inputId={inputId}\n          required\n          errors={errors}\n        >\n          {children}\n        </FormControl>\n      </div>\n    </div>\n  );\n}\n\nexport function refFieldValidation(): SchemaOf<string> {\n  return string()\n    .when({\n      is: isBE,\n      then: string().required('Repository reference name is required'),\n    })\n    .default('');\n}\n","import moment from 'moment';\nimport 'moment-timezone';\n\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { withEdition } from '../feature-flags/withEdition';\n\nconst TimeWindowDisplayWrapper = withEdition(TimeWindowDisplay, 'BE');\n\nexport { TimeWindowDisplayWrapper as TimeWindowDisplay };\n\nfunction TimeWindowDisplay() {\n  const currentEnvQuery = useCurrentEnvironment(false);\n\n  if (!currentEnvQuery.data) {\n    return null;\n  }\n\n  const { ChangeWindow } = currentEnvQuery.data;\n\n  if (!ChangeWindow.Enabled) {\n    return null;\n  }\n  const timezone = moment.tz.guess();\n  const isDST = moment().isDST();\n  const { startTime: startTimeLocal, endTime: endTimeLocal } = utcToTime(\n    { startTime: ChangeWindow.StartTime, endTime: ChangeWindow.EndTime },\n    timezone\n  );\n\n  const { startTime: startTimeUtc, endTime: endTimeUtc } = parseInterval(\n    ChangeWindow.StartTime,\n    ChangeWindow.EndTime\n  );\n\n  return (\n    <TextTip color=\"orange\" className=\"mb-2\">\n      A change window is enabled, GitOps updates will not occur outside of{' '}\n      <span className=\"font-bold\">\n        {shortTime(startTimeUtc)} - {shortTime(endTimeUtc)} UTC (\n        {shortTime(startTimeLocal)} -{shortTime(endTimeLocal)}{' '}\n        {isDST ? 'DST' : ''} {timezone})\n      </span>\n      .\n    </TextTip>\n  );\n}\n\nfunction utcToTime(\n  utcTime: { startTime: string; endTime: string },\n  timezone: string\n) {\n  const startTime = moment\n    .tz(utcTime.startTime, 'HH:mm', 'GMT')\n    .tz(timezone)\n    .format('HH:mm');\n  const endTime = moment\n    .tz(utcTime.endTime, 'HH:mm', 'GMT')\n    .tz(timezone)\n    .format('HH:mm');\n\n  return parseInterval(startTime, endTime);\n}\n\nfunction parseTime(originalTime: string) {\n  const [startHour, startMin] = originalTime.split(':');\n\n  const time = new Date();\n\n  time.setHours(parseInt(startHour, 10));\n  time.setMinutes(parseInt(startMin, 10));\n\n  return time;\n}\n\nfunction parseInterval(startTime: string, endTime: string) {\n  return {\n    startTime: parseTime(startTime),\n    endTime: parseTime(endTime),\n  };\n}\n\nfunction shortTime(time: Date) {\n  return moment(time).format('h:mm a');\n}\n","export type AutoUpdateMechanism = 'Webhook' | 'Interval';\nexport { type RelativePathModel } from './RelativePathFieldset/types';\n\nexport interface AutoUpdateResponse {\n  /* Auto update interval */\n  Interval: string;\n\n  /* A UUID generated from client */\n  Webhook: string;\n\n  /* Force update ignores repo changes */\n  ForceUpdate: boolean;\n\n  /* Pull latest image */\n  ForcePullImage: boolean;\n}\n\nexport interface GitAuthenticationResponse {\n  Username?: string;\n  Password?: string;\n  GitCredentialID?: number;\n}\n\nexport interface RepoConfigResponse {\n  URL: string;\n  ReferenceName: string;\n  ConfigFilePath: string;\n  Authentication?: GitAuthenticationResponse;\n  ConfigHash: string;\n  TLSSkipVerify: boolean;\n}\n\nexport type AutoUpdateModel = {\n  RepositoryAutomaticUpdates: boolean;\n  RepositoryMechanism: AutoUpdateMechanism;\n  RepositoryFetchInterval: string;\n  ForcePullImage: boolean;\n  RepositoryAutomaticUpdatesForce: boolean;\n};\n\nexport type GitCredentialsModel = {\n  RepositoryAuthentication?: boolean;\n  RepositoryUsername?: string;\n  RepositoryPassword?: string;\n  RepositoryGitCredentialID?: number;\n};\n\nexport type GitNewCredentialModel = {\n  NewCredentialName?: string;\n  SaveCredential?: boolean;\n};\n\nexport type GitAuthModel = GitCredentialsModel & GitNewCredentialModel;\n\nexport interface GitFormModel extends GitAuthModel {\n  RepositoryURL: string;\n  RepositoryURLValid?: boolean;\n  ComposeFilePathInRepository: string;\n  RepositoryReferenceName?: string;\n  AdditionalFiles?: string[];\n\n  SaveCredential?: boolean;\n  NewCredentialName?: string;\n  TLSSkipVerify?: boolean;\n\n  /**\n   * Auto update\n   *\n   * if undefined, GitForm won't show the AutoUpdate fieldset\n   */\n  AutoUpdate?: AutoUpdateModel;\n}\n\nexport function toGitFormModel(response?: RepoConfigResponse): GitFormModel {\n  if (!response) {\n    return {\n      RepositoryURL: '',\n      ComposeFilePathInRepository: '',\n      RepositoryAuthentication: false,\n      TLSSkipVerify: false,\n    };\n  }\n\n  const { URL, ReferenceName, ConfigFilePath, Authentication, TLSSkipVerify } =\n    response;\n\n  return {\n    RepositoryURL: URL,\n    ComposeFilePathInRepository: ConfigFilePath,\n    RepositoryReferenceName: ReferenceName,\n    RepositoryAuthentication: !!(\n      Authentication &&\n      (Authentication?.GitCredentialID || Authentication?.Username)\n    ),\n    RepositoryUsername: Authentication?.Username,\n    RepositoryPassword: Authentication?.Password,\n    RepositoryGitCredentialID: Authentication?.GitCredentialID,\n    TLSSkipVerify,\n  };\n}\n","import { confirm } from '@@/modals/confirm';\n\nimport { GitFormModel } from './types';\n\nexport function getAuthentication(\n  model: Pick<\n    GitFormModel,\n    | 'RepositoryAuthentication'\n    | 'RepositoryPassword'\n    | 'RepositoryUsername'\n    | 'RepositoryGitCredentialID'\n  >\n) {\n  if (!model.RepositoryAuthentication) {\n    return undefined;\n  }\n\n  if (model.RepositoryGitCredentialID) {\n    return { gitCredentialId: model.RepositoryGitCredentialID };\n  }\n\n  return {\n    username: model.RepositoryUsername,\n    password: model.RepositoryPassword,\n  };\n}\n\nexport function confirmEnableTLSVerify() {\n  return confirm({\n    title: 'Enable TLS Verification?',\n    message:\n      'Enabling the verification of TLS certificates without ensuring the correct configuration of your Certificate Authority (CA) for self-signed certificates can result in deployment failures.',\n  });\n}\n","// matches https://github.com/portainer/liblicense/blob/develop/liblicense.go#L66-L74\nexport enum Edition {\n  CE = 1,\n  BE,\n  EE,\n}\n\n// matches https://github.com/portainer/liblicense/blob/develop/liblicense.go#L64-L69\n\nexport enum LicenseType {\n  Trial = 1,\n  Subscription,\n  /**\n   * Essentials is the free 5-node license type\n   */\n  Essentials,\n}\n\n// matches https://github.com/portainer/liblicense/blob/develop/liblicense.go#L35-L50\nexport interface License {\n  id: string;\n  company: string;\n  created: number;\n  email: string;\n  expiresAfter: number;\n  licenseKey: string;\n  nodes: number;\n  productEdition: Edition;\n  revoked: boolean;\n  revokedAt: number;\n  type: LicenseType;\n  version: number;\n  reference: string;\n  expiresAt: number;\n}\n\n// matches https://github.com/portainer/portainer-ee/blob/c4575bf528583fe1682267db4ee40a11a905f611/api/portainer.go#L588-L597\nexport interface LicenseInfo {\n  productEdition: Edition;\n  company: string;\n  email: string;\n  createdAt: number;\n  expiresAt: number;\n  nodes: number;\n  type: LicenseType;\n  valid: boolean;\n  enforcedAt: number;\n  enforced: boolean;\n}\n","import _ from 'lodash';\nimport { AxiosError } from 'axios';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { License, LicenseInfo } from './types';\n\ntype Listener = (info: LicenseInfo) => void;\n\ninterface Store {\n  data?: LicenseInfo;\n  lastLoaded?: number;\n  invalidated: boolean;\n  listeners: Listener[];\n}\n\nconst store: Store = {\n  listeners: [],\n  invalidated: true,\n};\n\nexport async function getLicenses() {\n  try {\n    const { data } = await axios.get<License[]>(buildUrl());\n\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e);\n  }\n}\n\ninterface AttachResponse {\n  licenses: License[];\n  failedKeys: Record<string, string>;\n}\n\nexport async function attachLicense(licenseKeys: string[]) {\n  try {\n    const { data } = await axios.post<AttachResponse>(buildUrl(), {\n      licenseKeys,\n    });\n\n    if (Object.keys(data.failedKeys).length === licenseKeys.length) {\n      return data;\n    }\n\n    store.invalidated = true;\n    getLicenseInfo();\n    return data;\n  } catch (e) {\n    const axiosError = e as AxiosError;\n    if (axiosError.response?.status === 401) {\n      throw new Error(\n        'Your session has expired, please refresh the browser and log in again.'\n      );\n    }\n    throw parseAxiosError(e);\n  }\n}\n\ninterface RemoveResponse {\n  failedKeys: Record<string, string>;\n}\n\nexport async function removeLicense(licenseKeys: string[]) {\n  try {\n    const { data } = await axios.post<RemoveResponse>(buildUrl('remove'), {\n      licenseKeys,\n    });\n    if (Object.keys(data.failedKeys).length === licenseKeys.length) {\n      return data;\n    }\n\n    store.invalidated = true;\n    getLicenseInfo();\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e);\n  }\n}\n\nexport function resetState() {\n  store.invalidated = true;\n  store.data = undefined;\n}\n\nexport async function getLicenseInfo() {\n  try {\n    if (\n      store.data &&\n      !store.invalidated &&\n      store.lastLoaded &&\n      Math.abs(store.lastLoaded - Date.now()) < 1000 * 30\n    ) {\n      return store.data;\n    }\n\n    const { data: info } = await axios.get<LicenseInfo>(buildUrl('info'));\n    store.data = info;\n    store.lastLoaded = Date.now();\n    store.invalidated = false;\n    store.listeners.forEach((listener) => listener(info));\n\n    return info;\n  } catch (e) {\n    throw parseAxiosError(e);\n  }\n}\n\nexport function subscribe(listener: Listener) {\n  store.listeners.push(listener);\n}\n\nexport function unsubscribe(listener: Listener) {\n  _.remove<Listener>(store.listeners, listener);\n}\n\nfunction buildUrl(action = '') {\n  let url = 'licenses';\n\n  if (action) {\n    url += `/${action}`;\n  }\n  return url;\n}\n","import { useQuery } from 'react-query';\n\nimport { error as notifyError } from '@/portainer/services/notifications';\nimport { useNodesCount } from '@/react/portainer/system/useNodesCount';\n\nimport { getLicenseInfo } from './license.service';\nimport { LicenseInfo, LicenseType } from './types';\n\nexport function useLicenseInfo() {\n  const { isLoading, data: info } = useQuery<LicenseInfo, Error>(\n    'licenseInfo',\n    () => getLicenseInfo(),\n    {\n      onError(error) {\n        notifyError('Failure', error as Error, 'Failed to get license info');\n      },\n    }\n  );\n\n  return { isLoading, info };\n}\n\nexport function useIntegratedLicenseInfo() {\n  const { isLoading: isLoadingNodes, data: nodesCount = 0 } = useNodesCount();\n\n  const { isLoading: isLoadingLicense, info } = useLicenseInfo();\n  if (\n    isLoadingLicense ||\n    isLoadingNodes ||\n    !info ||\n    info.type === LicenseType.Trial\n  ) {\n    return null;\n  }\n\n  return { licenseInfo: info as LicenseInfo, usedNodes: nodesCount };\n}\n","import create from 'zustand/vanilla';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\nimport { UserId } from '@/portainer/users/types';\n\nimport { ToastNotification } from './types';\n\ninterface NotificationsState {\n  userNotifications: Record<UserId, ToastNotification[]>;\n  addNotification: (userId: number, notification: ToastNotification) => void;\n  removeNotification: (userId: number, notificationId: string) => void;\n  removeNotifications: (userId: number, notifications: string[]) => void;\n  clearUserNotifications: (userId: number) => void;\n}\n\nexport const notificationsStore = create<NotificationsState>()(\n  persist(\n    (set) => ({\n      userNotifications: {},\n      addNotification: (userId: number, notification: ToastNotification) => {\n        set((state) => {\n          // keep the new notification at the start of the list, so sorting by newest time isn't required\n          const newUserNotifications = [\n            notification,\n            ...(state.userNotifications[userId] || []),\n          ];\n          return {\n            userNotifications: {\n              ...state.userNotifications,\n              [userId]: newUserNotifications,\n            },\n          };\n        });\n      },\n      removeNotification: (userId: number, notificationId: string) => {\n        set((state) => ({\n          userNotifications: {\n            ...state.userNotifications,\n            [userId]: state.userNotifications[userId].filter(\n              (notif) => notif.id !== notificationId\n            ),\n          },\n        }));\n      },\n      removeNotifications: (userId: number, notificationIds: string[]) => {\n        set((state) => ({\n          userNotifications: {\n            ...state.userNotifications,\n            [userId]: state.userNotifications[userId].filter(\n              (notification) => !notificationIds.includes(notification.id)\n            ),\n          },\n        }));\n      },\n      clearUserNotifications: (userId: number) => {\n        set((state) => ({\n          userNotifications: {\n            ...state.userNotifications,\n            [userId]: [],\n          },\n        }));\n      },\n    }),\n    {\n      name: keyBuilder('notifications'),\n    }\n  )\n);\n","import { RegistryId } from '../types/registry';\n\nexport function buildUrl(registryId: RegistryId) {\n  const base = '/registries';\n\n  if (registryId) {\n    return `${base}/${registryId}`;\n  }\n\n  return base;\n}\n\nexport function buildProxyUrl(registryId: RegistryId) {\n  return `${buildUrl(registryId)}/v2`;\n}\n","import { RegistryId } from '../types/registry';\n\nexport const queryKeys = {\n  base: () => ['registries'] as const,\n  item: (registryId: RegistryId) => [...queryKeys.base(), registryId] as const,\n};\n","import { QueryKey, useQuery } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { Registry, RegistryTypes } from '../types/registry';\nimport { usePublicSettings } from '../../settings/queries';\n\nimport { queryKeys } from './query-keys';\n\nexport function useRegistries<T = Registry[]>(\n  queryOptions: GenericRegistriesQueryOptions<T> = {}\n) {\n  return useGenericRegistriesQuery(\n    queryKeys.base(),\n    getRegistries,\n    queryOptions\n  );\n}\n\nexport type GenericRegistriesQueryOptions<T> = {\n  enabled?: boolean;\n  select?: (registries: Registry[]) => T;\n  onSuccess?: (data: T) => void;\n  /** is used to hide the default registry from the list of registries, regardless of the user's settings. Kubernetes views use this. */\n  hideDefault?: boolean;\n};\n\nexport function useGenericRegistriesQuery<T = Registry[]>(\n  queryKey: QueryKey,\n  fetcher: () => Promise<Array<Registry>>,\n  {\n    enabled,\n    select,\n    onSuccess,\n    hideDefault: hideDefaultOverride,\n  }: GenericRegistriesQueryOptions<T> = {}\n) {\n  const hideDefaultRegistryQuery = usePublicSettings({\n    select: (settings) => settings.DefaultRegistry?.Hide,\n    // We don't need the hideDefaultRegistry info if we're overriding it to true\n    enabled: enabled && !hideDefaultOverride,\n  });\n\n  const hideDefault = hideDefaultOverride || !!hideDefaultRegistryQuery.data;\n\n  return useQuery(\n    queryKey,\n    async () => {\n      const registries = await fetcher();\n\n      if (\n        hideDefault ||\n        registries.some((r) => r.Type === RegistryTypes.DOCKERHUB)\n      ) {\n        return registries;\n      }\n\n      return [\n        {\n          Name: 'Docker Hub (anonymous)',\n          Id: 0,\n          Type: RegistryTypes.DOCKERHUB,\n        } as Registry,\n        ...registries,\n      ];\n    },\n    {\n      select,\n      ...withError('Unable to retrieve registries'),\n      enabled:\n        (hideDefaultOverride || hideDefaultRegistryQuery.isSuccess) && enabled,\n      onSuccess,\n    }\n  );\n}\n\nexport async function getRegistries() {\n  try {\n    const { data } = await axios.get<Registry[]>('/registries');\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve registries');\n  }\n}\n","import { TeamId } from '@/react/portainer/users/teams/types';\nimport { UserId } from '@/portainer/users/types';\n\nimport { TLSConfiguration } from '../../settings/types';\n\nexport type Catalog = {\n  repositories: string[];\n};\n\nexport enum RegistryTypes {\n  ANONYMOUS,\n  QUAY,\n  AZURE,\n  CUSTOM,\n  GITLAB,\n  PROGET,\n  DOCKERHUB,\n  ECR,\n  GITHUB,\n}\n\nexport type RoleId = number;\ninterface AccessPolicy {\n  RoleId: RoleId;\n}\n\ntype UserAccessPolicies = Record<UserId, AccessPolicy>; // map[UserID]AccessPolicy\ntype TeamAccessPolicies = Record<TeamId, AccessPolicy>;\n\nexport interface RegistryAccess {\n  UserAccessPolicies: UserAccessPolicies;\n  TeamAccessPolicies: TeamAccessPolicies;\n  Namespaces: string[];\n}\n\nexport interface RegistryAccesses {\n  [key: string]: RegistryAccess;\n}\n\nexport interface Gitlab {\n  ProjectId: number;\n  InstanceURL: string;\n  ProjectPath: string;\n}\n\nexport interface Quay {\n  UseOrganisation: boolean;\n  OrganisationName: string;\n}\n\nexport interface Github {\n  UseOrganisation: boolean;\n  OrganisationName: string;\n}\n\nexport interface Ecr {\n  Region: string;\n}\n\ninterface RegistryManagementConfiguration {\n  Type: RegistryTypes;\n  Authentication: boolean;\n  Username: string;\n  Password: string;\n  TLSConfig: TLSConfiguration;\n  Ecr: Ecr;\n  AccessToken?: string;\n  AccessTokenExpiry?: number;\n}\n\nexport type RegistryId = number;\nexport interface Registry {\n  Id: RegistryId;\n  Type: RegistryTypes;\n  Name: string;\n  URL: string;\n  BaseURL: string;\n  Authentication: boolean;\n  Username: string;\n  Password?: string;\n  RegistryAccesses: RegistryAccesses;\n  Gitlab: Gitlab;\n  Quay: Quay;\n  Github: Github;\n  Ecr: Ecr;\n  ManagementConfiguration?: RegistryManagementConfiguration;\n}\n","import { useQuery, useMutation, useQueryClient } from 'react-query';\n\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport {\n  updateSettings,\n  getSettings,\n  updateDefaultRegistry,\n} from '../settings.service';\nimport { DefaultRegistry, Settings } from '../types';\n\nimport { queryKeys } from './queryKeys';\n\nexport function useSettings<T = Settings>(\n  select?: (settings: Settings) => T,\n  enabled = true\n) {\n  return useQuery(queryKeys.base(), getSettings, {\n    select,\n    enabled,\n    staleTime: 50,\n    ...withError('Unable to retrieve settings'),\n  });\n}\n\nexport function useUpdateSettingsMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    updateSettings,\n    mutationOptions(\n      withInvalidate(queryClient, [queryKeys.base(), ['cloud']]),\n      withError('Unable to update settings')\n    )\n  );\n}\n\nexport function useUpdateDefaultRegistrySettingsMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    (payload: Partial<DefaultRegistry>) => updateDefaultRegistry(payload),\n    mutationOptions(\n      withInvalidate(queryClient, [queryKeys.base()]),\n      withError('Unable to update default registry settings')\n    )\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { ExperimentalFeatures } from '../types';\nimport { buildUrl } from '../settings.service';\n\nimport { queryKeys } from './queryKeys';\n\ntype ExperimentalFeaturesSettings = {\n  experimentalFeatures: ExperimentalFeatures;\n};\n\nexport function useExperimentalSettings<T = ExperimentalFeaturesSettings>(\n  select?: (settings: ExperimentalFeaturesSettings) => T,\n  enabled = true\n) {\n  return useQuery(queryKeys.experimental(), getExperimentalSettings, {\n    select,\n    enabled,\n    staleTime: 50,\n    ...withError('Unable to retrieve experimental settings'),\n  });\n}\n\nasync function getExperimentalSettings() {\n  try {\n    const { data } = await axios.get<ExperimentalFeaturesSettings>(\n      buildUrl('experimental')\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve experimental settings'\n    );\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { ExperimentalFeatures } from '../types';\nimport { buildUrl } from '../settings.service';\n\nimport { queryKeys } from './queryKeys';\n\nexport function useUpdateExperimentalSettingsMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    updateExperimentalSettings,\n    mutationOptions(\n      withInvalidate(queryClient, [queryKeys.base()]),\n      withError('Unable to update experimental settings')\n    )\n  );\n}\n\nasync function updateExperimentalSettings(\n  settings: Partial<ExperimentalFeatures>\n) {\n  try {\n    await axios.put(buildUrl('experimental'), settings);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update experimental settings');\n  }\n}\n","export const queryKeys = {\n  base: () => ['settings'] as const,\n  public: () => [...queryKeys.base(), 'public'] as const,\n  experimental: () => [...queryKeys.base(), 'experimental'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\n\nimport { getPublicSettings } from '../settings.service';\nimport { PublicSettingsResponse } from '../types';\n\nimport { queryKeys } from './queryKeys';\n\nexport function usePublicSettings<T = PublicSettingsResponse>({\n  enabled,\n  select,\n  onSuccess,\n}: {\n  select?: (settings: PublicSettingsResponse) => T;\n  enabled?: boolean;\n  onSuccess?: (data: T) => void;\n} = {}) {\n  return useQuery(queryKeys.public(), getPublicSettings, {\n    select,\n    ...withError('Unable to retrieve public settings'),\n    enabled,\n    onSuccess,\n  });\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { PublicSettingsResponse, DefaultRegistry, Settings } from './types';\n\nexport async function getPublicSettings() {\n  try {\n    const { data } = await axios.get<PublicSettingsResponse>(\n      buildUrl('public')\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve application settings'\n    );\n  }\n}\n\nexport async function getGlobalDeploymentOptions() {\n  const publicSettings = await getPublicSettings();\n  return publicSettings.GlobalDeploymentOptions;\n}\n\nexport async function getSettings() {\n  try {\n    const { data } = await axios.get<Settings>(buildUrl());\n    return data;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve application settings'\n    );\n  }\n}\n\ntype OptionalSettings = Omit<Partial<Settings>, 'Edge'> & {\n  Edge?: Partial<Settings['Edge']>;\n};\n\nexport async function updateSettings(settings: OptionalSettings) {\n  try {\n    const { data } = await axios.put<Settings>(buildUrl(), settings);\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update application settings');\n  }\n}\n\nexport async function updateDefaultRegistry(\n  defaultRegistry: Partial<DefaultRegistry>\n) {\n  try {\n    await axios.put(buildUrl('default_registry'), defaultRegistry);\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to update default registry settings'\n    );\n  }\n}\n\nexport function buildUrl(subResource?: string, action?: string) {\n  let url = 'settings';\n  if (subResource) {\n    url += `/${subResource}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","import { TeamId } from '@/react/portainer/users/teams/types';\n\nexport interface FDOConfiguration {\n  enabled: boolean;\n  ownerURL: string;\n  ownerUsername: string;\n  ownerPassword: string;\n}\n\nexport interface TLSConfiguration {\n  TLS: boolean;\n  TLSSkipVerify: boolean;\n  TLSCACert?: string;\n  TLSCert?: string;\n  TLSKey?: string;\n}\n\nexport interface LDAPGroupSearchSettings {\n  GroupBaseDN: string;\n  GroupFilter: string;\n  GroupAttribute: string;\n}\n\nexport interface LDAPSearchSettings {\n  BaseDN: string;\n  Filter: string;\n  UserNameAttribute: string;\n}\n\nexport interface LDAPSettings {\n  AnonymousMode: boolean;\n  ReaderDN: string;\n  Password?: string;\n  URL: string;\n  TLSConfig: TLSConfiguration;\n  StartTLS: boolean;\n  SearchSettings: LDAPSearchSettings[];\n  GroupSearchSettings: LDAPGroupSearchSettings[];\n  AutoCreateUsers: boolean;\n}\n\nexport interface Pair {\n  name: string;\n  value?: string;\n}\n\nexport interface OpenAMTConfiguration {\n  enabled: boolean;\n  mpsServer: string;\n  mpsUser: string;\n  mpsPassword: string;\n  mpsToken: string;\n  certFileName: string;\n  certFileContent: string;\n  certFilePassword: string;\n  domainName: string;\n}\n\nexport interface OAuthSettings {\n  ClientID: string;\n  ClientSecret?: string;\n  AccessTokenURI: string;\n  AuthorizationURI: string;\n  ResourceURI: string;\n  RedirectURI: string;\n  UserIdentifier: string;\n  Scopes: string;\n  OAuthAutoCreateUsers: boolean;\n  DefaultTeamID: TeamId;\n  SSO: boolean;\n  LogoutURI: string;\n  KubeSecretKey: string;\n}\n\nexport enum AuthenticationMethod {\n  /**\n   * Internal represents the internal authentication method (authentication against Portainer API)\n   */\n  Internal = 1,\n  /**\n   * LDAP represents the LDAP authentication method (authentication against a LDAP server)\n   */\n  LDAP,\n  /**\n   * OAuth represents the OAuth authentication method (authentication against a authorization server)\n   */\n  OAuth,\n}\n\n/**\n * The definition are based on oauth2 lib definition @https://pkg.go.dev/golang.org/x/oauth2#AuthStyle\n */\nexport enum OAuthStyle {\n  AutoDetect = 0,\n  InParams,\n  InHeader,\n}\n\ntype Feature = string;\n\nexport interface DefaultRegistry {\n  Hide: boolean;\n}\n\nexport interface ExperimentalFeatures {\n  OpenAIIntegration: boolean;\n}\n\nexport interface Settings {\n  LogoURL: string;\n  CustomLoginBanner: string;\n  BlackListedLabels: Pair[];\n  AuthenticationMethod: AuthenticationMethod;\n  InternalAuthSettings: { RequiredPasswordLength: number };\n  LDAPSettings: LDAPSettings;\n  OAuthSettings: OAuthSettings;\n  openAMTConfiguration: OpenAMTConfiguration;\n  fdoConfiguration: FDOConfiguration;\n  FeatureFlagSettings: { [key: Feature]: boolean };\n  SnapshotInterval: string;\n  TemplatesURL: string;\n  EnableEdgeComputeFeatures: boolean;\n  UserSessionTimeout: string;\n  KubeconfigExpiry: string;\n  EnableTelemetry: boolean;\n  HelmRepositoryURL: string;\n  KubectlShellImage: string;\n  TrustOnFirstConnect: boolean;\n  EnforceEdgeID: boolean;\n  AgentSecret: string;\n  EdgePortainerUrl: string;\n  EdgeAgentCheckinInterval: number;\n  EdgeCommandInterval: number;\n  EdgePingInterval: number;\n  EdgeSnapshotInterval: number;\n  DisplayDonationHeader: boolean;\n  DisplayExternalContributors: boolean;\n  EnableHostManagementFeatures: boolean;\n  ExperimentalFeatures?: ExperimentalFeatures;\n  AllowVolumeBrowserForRegularUsers: boolean;\n  AllowBindMountsForRegularUsers: boolean;\n  AllowPrivilegedModeForRegularUsers: boolean;\n  AllowHostNamespaceForRegularUsers: boolean;\n  AllowStackManagementForRegularUsers: boolean;\n  AllowDeviceMappingForRegularUsers: boolean;\n  AllowContainerCapabilitiesForRegularUsers: boolean;\n  GlobalDeploymentOptions?: GlobalDeploymentOptions;\n  Edge: {\n    PingInterval: number;\n    SnapshotInterval: number;\n    CommandInterval: number;\n    AsyncMode: boolean;\n    TunnelServerAddress: string;\n  };\n}\n\nexport interface GlobalDeploymentOptions {\n  /** Hide manual deploy forms in portainer */\n  hideAddWithForm: boolean;\n  /** Configure this per environment or globally */\n  perEnvOverride: boolean;\n  /** Hide the web editor in the remaining visible forms */\n  hideWebEditor: boolean;\n  /** Hide the file upload option in the remaining visible forms */\n  hideFileUpload: boolean;\n  /** Make note on application add/edit screen required */\n  requireNoteOnApplications: boolean;\n  minApplicationNoteLength: number;\n\n  hideStacksFunctionality: boolean;\n}\n\nexport interface PublicSettingsResponse {\n  /** URL to a logo that will be displayed on the login page as well as on top of the sidebar. Will use default Portainer logo when value is empty string  */\n  LogoURL: string;\n  /** The content in plaintext used to display in the login page. Will hide when value is empty string (only on BE) */\n  CustomLoginBanner: string;\n  /** Active authentication method for the Portainer instance. Valid values are: 1 for internal, 2 for LDAP, or 3 for oauth */\n  AuthenticationMethod: AuthenticationMethod;\n  /** The minimum required length for a password of any user when using internal auth mode */\n  RequiredPasswordLength: number;\n  /** Deployment options for encouraging deployment as code (only on BE) */\n  GlobalDeploymentOptions: GlobalDeploymentOptions;\n  /** Whether edge compute features are enabled */\n  EnableEdgeComputeFeatures: boolean;\n  /** Supported feature flags */\n  Features: { [key: Feature]: boolean };\n  /** The URL used for oauth login */\n  OAuthLoginURI: string;\n  /** The URL used for oauth logout */\n  OAuthLogoutURI: string;\n  /** Whether portainer internal auth view will be hidden (only on BE) */\n  OAuthHideInternalAuth: boolean;\n  /** Whether telemetry is enabled */\n  EnableTelemetry: boolean;\n  /** The expiry of a Kubeconfig */\n  KubeconfigExpiry: string;\n  /** Whether team sync is enabled */\n  TeamSync: boolean;\n  /** Whether FDO is enabled */\n  IsFDOEnabled: boolean;\n  /** Whether AMT is enabled */\n  IsAMTEnabled: boolean;\n  /** Whether to hide default registry (only on BE) */\n  DefaultRegistry?: {\n    Hide: boolean;\n  };\n  Edge: {\n    /** Whether the device has been started in edge async mode */\n    AsyncMode: boolean;\n    /** The ping interval for edge agent - used in edge async mode [seconds] */\n    PingInterval: number;\n    /** The snapshot interval for edge agent - used in edge async mode [seconds] */\n    SnapshotInterval: number;\n    /** The command list interval for edge agent - used in edge async mode [seconds] */\n    CommandInterval: number;\n    /** The check in interval for edge agent (in seconds) - used in non async mode [seconds] */\n    CheckinInterval: number;\n  };\n}\n","export function buildUrl(action?: string) {\n  let url = '/system';\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","export const queryKeys = {\n  base: () => ['system'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\nexport const queryKey = [...queryKeys.base(), 'nodes'] as const;\n\nexport interface NodesCountResponse {\n  nodes: number;\n}\n\nasync function getNodesCount() {\n  try {\n    const { data } = await axios.get<NodesCountResponse>(buildUrl('nodes'));\n    return data.nodes;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nexport function useNodesCount() {\n  return useQuery(queryKey, getNodesCount, {\n    ...withError('Unable to retrieve nodes count'),\n  });\n}\n","import { useQuery } from 'react-query';\nimport { RetryValue } from 'react-query/types/core/retryer';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { UserId } from '@/portainer/users/types';\n\nimport { isBE } from '../feature-flags/feature-flags.service';\nimport { EnvironmentId } from '../environments/types';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\nexport const queryKey = [...queryKeys.base(), 'status'] as const;\n\nexport interface StatusResponse {\n  Edition: string;\n  Version: string;\n  InstanceID: string;\n  DemoEnvironment: {\n    Enabled: boolean;\n    Users: Array<UserId>;\n    Environments: Array<EnvironmentId>;\n  };\n}\n\nexport async function getSystemStatus() {\n  try {\n    const { data } = await axios.get<StatusResponse>(buildUrl('status'));\n\n    data.Edition = isBE ? 'Business Edition' : 'Community Edition';\n\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nexport function useSystemStatus<T = StatusResponse>({\n  select,\n  enabled,\n  retry,\n  onSuccess,\n}: {\n  select?: (status: StatusResponse) => T;\n  enabled?: boolean;\n  retry?: RetryValue<unknown>;\n  onSuccess?: (data: T) => void;\n} = {}) {\n  return useQuery(queryKey, () => getSystemStatus(), {\n    select,\n    enabled,\n    retry,\n    retryDelay: 1000,\n    onSuccess,\n  });\n}\n\nexport function useIsDemo() {\n  return useSystemStatus({\n    select: (status) => status.DemoEnvironment.Enabled,\n  });\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\nexport const queryKey = [...queryKeys.base(), 'version'] as const;\n\nexport interface VersionResponse {\n  // Whether portainer has an update available\n  UpdateAvailable: boolean;\n  // The latest version available\n  LatestVersion: string;\n  ServerVersion: string;\n  DatabaseVersion: string;\n  Build: {\n    BuildNumber: string;\n    ImageTag: string;\n    NodejsVersion: string;\n    YarnVersion: string;\n    WebpackVersion: string;\n    GoVersion: string;\n    GitCommit: string;\n    Env?: string[];\n  };\n}\n\nexport async function getSystemVersion() {\n  try {\n    const { data } = await axios.get<VersionResponse>(buildUrl('version'));\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nexport function useSystemVersion() {\n  return useQuery(queryKey, () => getSystemVersion(), {\n    // 24 hour stale time to reduce the number of requests to avoid github api rate limits\n    // a hard refresh of the browser will still trigger a new request\n    staleTime: 24 * 60 * 60 * 1000,\n  });\n}\n","import { StackType } from '@/react/common/stacks/types';\n\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\n\nimport { TemplateItem } from '../components/TemplateItem';\n\nimport { TemplateViewModel } from './view-model';\nimport { TemplateType } from './types';\n\nexport function AppTemplatesListItem({\n  template,\n  onSelect,\n  isSelected,\n  linkParams,\n}: {\n  template: TemplateViewModel;\n  onSelect?: (template: TemplateViewModel) => void;\n  isSelected: boolean;\n  linkParams?: { to: string; params: object };\n}) {\n  const duplicateCustomTemplateType = getCustomTemplateType(template.Type);\n\n  return (\n    <TemplateItem\n      template={template}\n      typeLabel={\n        template.Type === TemplateType.Container ? 'container' : 'stack'\n      }\n      linkParams={linkParams}\n      onSelect={() => onSelect?.(template)}\n      isSelected={isSelected}\n      renderActions={\n        duplicateCustomTemplateType && (\n          <div className=\"mr-5 mt-3\">\n            <Button\n              as={Link}\n              size=\"xsmall\"\n              onClick={(e) => {\n                e.stopPropagation();\n              }}\n              props={{\n                to: '.custom.new',\n                params: {\n                  appTemplateId: template.Id,\n                  type: duplicateCustomTemplateType,\n                },\n              }}\n            >\n              Copy as Custom\n            </Button>\n          </div>\n        )\n      }\n    />\n  );\n}\n\nfunction getCustomTemplateType(type: TemplateType): StackType | null {\n  switch (type) {\n    case TemplateType.SwarmStack:\n      return StackType.DockerSwarm;\n    case TemplateType.ComposeStack:\n      return StackType.DockerCompose;\n    default:\n      return null;\n  }\n}\n","import { useCallback, useMemo } from 'react';\nimport _ from 'lodash';\n\nimport { TemplateViewModel } from './view-model';\nimport { ListState } from './types';\n\nexport function useSortAndFilterTemplates(\n  templates: Array<TemplateViewModel>,\n  listState: ListState & { search: string },\n  disabledTypes: Array<TemplateViewModel['Type']> = []\n) {\n  const filterByCategory = useCallback(\n    (item: TemplateViewModel) => {\n      if (!listState.category) {\n        return true;\n      }\n\n      return _.compact([listState.category]).every((category) =>\n        item.Categories.includes(category)\n      );\n    },\n    [listState.category]\n  );\n\n  const filterBySearch = useCallback(\n    (item: TemplateViewModel) => {\n      const search = listState.search.toLowerCase();\n      return (\n        item.Title.toLowerCase().includes(search) ||\n        item.Description.toLowerCase().includes(search) ||\n        item.Categories.some((category) =>\n          category.toLowerCase().includes(search)\n        ) ||\n        item.Note?.toLowerCase().includes(search) ||\n        item.Name?.toLowerCase().includes(search)\n      );\n    },\n    [listState.search]\n  );\n\n  const filterByTemplateType = useCallback(\n    (item: TemplateViewModel) => {\n      if (listState.types.length === 0 && disabledTypes.length === 0) {\n        return true;\n      }\n\n      if (listState.types.length === 0) {\n        return !disabledTypes.includes(item.Type);\n      }\n\n      return (\n        listState.types.includes(item.Type) &&\n        !disabledTypes.includes(item.Type)\n      );\n    },\n    [disabledTypes, listState.types]\n  );\n\n  const sort = useCallback(\n    (a: TemplateViewModel, b: TemplateViewModel) => {\n      const sortMultiplier = listState.sortBy?.desc ? -1 : 1;\n      switch (listState.sortBy?.id) {\n        case 'Categories':\n          return sortByCategories(a.Categories, b.Categories) * sortMultiplier;\n        case 'Description':\n          return a.Description.localeCompare(b.Description) * sortMultiplier;\n        case 'Title':\n        default:\n          return a.Title.localeCompare(b.Title) * sortMultiplier;\n      }\n    },\n\n    [listState.sortBy?.desc, listState.sortBy?.id]\n  );\n\n  return useMemo(\n    () =>\n      templates\n        ?.filter(filterByTemplateType)\n        .filter(filterByCategory)\n        .filter(filterBySearch)\n        .sort(sort) || [],\n    [templates, filterByTemplateType, filterByCategory, filterBySearch, sort]\n  );\n}\n\nfunction sortByCategories(a: Array<string>, b: Array<string>): number {\n  if (a.length === 0 && b.length === 0) {\n    return 0;\n  }\n  if (a.length === 0) {\n    return -1;\n  }\n  if (b.length === 0) {\n    return 1;\n  }\n\n  const aCategory = a[0];\n  const bCategory = b[0];\n\n  return (\n    aCategory.localeCompare(bCategory) ||\n    sortByCategories(a.slice(1), b.slice(1))\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"sortByContainer\":\"app-react-portainer-templates-app-templates-TemplateListSort-TemplateListSort-module__sort-by-container\",\"sortButton\":\"app-react-portainer-templates-app-templates-TemplateListSort-TemplateListSort-module__sort-button\",\"sortByElement\":\"app-react-portainer-templates-app-templates-TemplateListSort-TemplateListSort-module__sort-by-element\"};","import clsx from 'clsx';\n\nimport { TableHeaderSortIcons } from '@@/datatables/TableHeaderSortIcons';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\nimport styles from './TemplateListSort.module.css';\n\ninterface Props {\n  options: ReadonlyArray<string>;\n  onChange: (value: { id: string; desc: boolean } | undefined) => void;\n  placeholder?: string;\n  value: { id: string; desc: boolean } | undefined;\n}\n\nexport function TemplateListSort({\n  options,\n  onChange,\n  placeholder,\n  value,\n}: Props) {\n  return (\n    <div className={styles.sortByContainer}>\n      <div className={styles.sortByElement}>\n        <PortainerSelect\n          placeholder={placeholder}\n          options={options.map((id) => ({ label: id, value: id }))}\n          onChange={(id) =>\n            onChange(id ? { id, desc: value?.desc ?? false } : undefined)\n          }\n          bindToBody\n          value={value?.id ?? null}\n          isClearable\n        />\n      </div>\n      <div className={styles.sortByElement}>\n        <button\n          className={clsx(styles.sortButton, 'h-[34px]')}\n          type=\"button\"\n          disabled={!value?.id}\n          onClick={(e) => {\n            e.preventDefault();\n            onChange(value ? { id: value.id, desc: !value.desc } : undefined);\n          }}\n        >\n          <TableHeaderSortIcons\n            sorted={!!value}\n            descending={value?.desc ?? false}\n          />\n        </button>\n      </div>\n    </div>\n  );\n}\n","import _ from 'lodash';\n\nimport { Option, PortainerSelect } from '@@/form-components/PortainerSelect';\n\nimport { ListState, TemplateType } from './types';\nimport { TemplateViewModel } from './view-model';\nimport { TemplateListSort } from './TemplateListSort';\n\nconst orderByFields = ['Title', 'Categories', 'Description'] as const;\nconst typeFilters: ReadonlyArray<Option<TemplateType>> = [\n  { label: 'Container', value: TemplateType.Container },\n  { label: 'Swarm Stack', value: TemplateType.SwarmStack },\n  { label: 'Compose Stack', value: TemplateType.ComposeStack },\n] as const;\n\nexport function Filters({\n  templates,\n  listState,\n  onChange,\n  disabledTypes = [],\n  fixedCategories = [],\n}: {\n  templates: TemplateViewModel[];\n  listState: ListState & { search: string };\n  onChange(): void;\n  disabledTypes?: Array<TemplateType>;\n  fixedCategories?: Array<string>;\n}) {\n  const categories = _.sortBy(\n    _.uniq(templates?.flatMap((template) => template.Categories))\n  )\n    .filter((category) => !fixedCategories.includes(category))\n    .map((category) => ({ label: category, value: category }));\n\n  const templatesTypes = _.uniq(\n    templates?.flatMap((template) => template.Type)\n  );\n\n  const typeFiltersEnabled = typeFilters.filter(\n    (type) =>\n      !disabledTypes.includes(type.value) && templatesTypes.includes(type.value)\n  );\n\n  return (\n    <div className=\"flex gap-4 w-full\">\n      {categories.length > 0 && (\n        <div className=\"w-1/4\">\n          <PortainerSelect\n            options={categories}\n            onChange={(category) => {\n              listState.setCategory(category);\n              onChange();\n            }}\n            placeholder=\"Category\"\n            value={listState.category}\n            bindToBody\n            isClearable\n            aria-label=\"Category filter\"\n          />\n        </div>\n      )}\n      {typeFiltersEnabled.length > 1 && (\n        <div className=\"w-1/4\">\n          <PortainerSelect<TemplateType>\n            isMulti\n            options={typeFiltersEnabled}\n            onChange={(types) => {\n              listState.setTypes(types);\n              onChange();\n            }}\n            placeholder=\"Type\"\n            value={listState.types}\n            bindToBody\n            isClearable\n            aria-label=\"Type filter\"\n          />\n        </div>\n      )}\n      <div className=\"w-1/4 ml-auto\">\n        <TemplateListSort\n          onChange={(value) => {\n            listState.setSortBy(value?.id, value?.desc ?? false);\n            onChange();\n          }}\n          options={orderByFields}\n          placeholder=\"Sort By\"\n          value={listState.sortBy}\n          aria-label=\"Sort\"\n        />\n      </div>\n    </div>\n  );\n}\n","import { Edit } from 'lucide-react';\nimport _ from 'lodash';\nimport { useMemo, useState } from 'react';\n\nimport { DatatableHeader } from '@@/datatables/DatatableHeader';\nimport { Table } from '@@/datatables';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { DatatableFooter } from '@@/datatables/DatatableFooter';\n\nimport { AppTemplatesListItem } from './AppTemplatesListItem';\nimport { TemplateViewModel } from './view-model';\nimport { ListState, TemplateType } from './types';\nimport { useSortAndFilterTemplates } from './useSortAndFilter';\nimport { Filters } from './Filters';\n\nexport function AppTemplatesList({\n  templates: initialTemplates,\n  onSelect,\n  selectedId,\n  disabledTypes,\n  fixedCategories,\n  storageKey,\n  templateLinkParams,\n}: {\n  storageKey: string;\n  templates?: TemplateViewModel[];\n  onSelect?: (template: TemplateViewModel) => void;\n  selectedId?: TemplateViewModel['Id'];\n  disabledTypes?: Array<TemplateType>;\n  fixedCategories?: Array<string>;\n  templateLinkParams?: (template: TemplateViewModel) => {\n    to: string;\n    params: object;\n  };\n}) {\n  const [page, setPage] = useState(0);\n  const [store] = useState(() =>\n    createPersistedStore<ListState>(storageKey, undefined, (set) => ({\n      category: null,\n      setCategory: (category: ListState['category']) => set({ category }),\n      types: [],\n      setTypes: (types: ListState['types']) => set({ types }),\n    }))\n  );\n  const listState = useTableState(store, storageKey);\n\n  const templates = useMemo(() => {\n    if (!initialTemplates) {\n      return [];\n    }\n\n    if (!fixedCategories?.length) {\n      return initialTemplates;\n    }\n\n    return initialTemplates.filter((template) =>\n      fixedCategories.some((category) => template.Categories.includes(category))\n    );\n  }, [fixedCategories, initialTemplates]);\n\n  const filteredTemplates = useSortAndFilterTemplates(\n    templates || [],\n    listState,\n    disabledTypes\n  );\n\n  const pagedTemplates =\n    _.chunk(filteredTemplates, listState.pageSize)[page] || [];\n\n  return (\n    <Table.Container>\n      <DatatableHeader\n        onSearchChange={handleSearchChange}\n        searchValue={listState.search}\n        title=\"Templates\"\n        titleIcon={Edit}\n        description={\n          <Filters\n            listState={listState}\n            templates={templates || []}\n            onChange={() => setPage(0)}\n            disabledTypes={disabledTypes}\n            fixedCategories={fixedCategories}\n          />\n        }\n      />\n\n      <div className=\"blocklist gap-y-2 !px-[20px] !pb-[20px]\" role=\"list\">\n        {pagedTemplates.map((template) => (\n          <AppTemplatesListItem\n            key={template.Id}\n            template={template}\n            onSelect={onSelect}\n            isSelected={selectedId === template.Id}\n            linkParams={templateLinkParams?.(template)}\n          />\n        ))}\n        {!templates && <div className=\"text-muted text-center\">Loading...</div>}\n        {filteredTemplates.length === 0 && (\n          <div className=\"text-muted text-center\">No templates available.</div>\n        )}\n      </div>\n\n      <DatatableFooter\n        onPageChange={setPage}\n        page={page}\n        onPageSizeChange={listState.setPageSize}\n        pageSize={listState.pageSize}\n        pageCount={Math.ceil(filteredTemplates.length / listState.pageSize)}\n        totalSelected={0}\n      />\n    </Table.Container>\n  );\n\n  function handleSearchChange(search: string) {\n    listState.setSearch(search);\n    setPage(0);\n  }\n}\n","import { AppTemplate } from '../types';\n\nexport function buildUrl({\n  id,\n  action,\n}: { id?: AppTemplate['id']; action?: string } = {}) {\n  let baseUrl = '/templates';\n\n  if (id) {\n    baseUrl += `/${id}`;\n  }\n\n  if (action) {\n    baseUrl += `/${action}`;\n  }\n\n  return baseUrl;\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { useRegistries } from '@/react/portainer/registries/queries/useRegistries';\nimport { DockerHubViewModel } from '@/portainer/models/dockerhub';\nimport { Registry } from '@/react/portainer/registries/types/registry';\n\nimport { AppTemplate } from '../types';\nimport { TemplateViewModel } from '../view-model';\n\nimport { buildUrl } from './build-url';\n\nexport function useAppTemplates<T = Array<TemplateViewModel>>({\n  select,\n}: { select?: (templates: Array<TemplateViewModel>) => T } = {}) {\n  const registriesQuery = useRegistries();\n\n  return useQuery(\n    ['templates'],\n    () => getTemplatesWithRegistry(registriesQuery.data),\n    {\n      enabled: !!registriesQuery.data,\n      select,\n    }\n  );\n}\n\nasync function getTemplatesWithRegistry(\n  registries: Array<Registry> | undefined\n) {\n  if (!registries) {\n    return [];\n  }\n\n  const { templates, version } = await getAppTemplates();\n  return templates.map((item) => {\n    const template = new TemplateViewModel(item, version);\n    const registryURL = item.registry;\n    const registry = registryURL\n      ? registries.find((reg) => reg.URL === registryURL)\n      : new DockerHubViewModel();\n    template.RegistryModel.Registry = registry || new DockerHubViewModel();\n    return template;\n  });\n}\n\nexport async function getAppTemplates() {\n  try {\n    const { data } = await axios.get<{\n      version: string;\n      templates: Array<AppTemplate>;\n    }>(buildUrl());\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err);\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { AppTemplate } from '../types';\n\nimport { buildUrl } from './build-url';\n\nexport function useFetchTemplateFile(id?: AppTemplate['id']) {\n  return useQuery(['templates', id, 'file'], () => fetchFilePreview(id!), {\n    enabled: !!id,\n  });\n}\n\nexport async function fetchFilePreview(id: AppTemplate['id']) {\n  try {\n    const { data } = await axios.post<{ FileContent: string }>(\n      buildUrl({ id, action: 'file' })\n    );\n    return data.FileContent;\n  } catch (err) {\n    throw parseAxiosError(err);\n  }\n}\n","import { BasicTableSettings } from '@@/datatables/types';\n\nimport { Pair } from '../../settings/types';\n\nexport interface ListState extends BasicTableSettings {\n  category: string | null;\n  setCategory: (category: string | null) => void;\n  types: ReadonlyArray<TemplateType>;\n  setTypes: (value: ReadonlyArray<TemplateType>) => void;\n}\n\nexport enum TemplateType {\n  Container = 1,\n  SwarmStack = 2,\n  ComposeStack = 3,\n}\n\n/**\n * Template represents an application template that can be used as an App Template or an Edge template.\n */\nexport interface AppTemplate {\n  /**\n   * Unique identifier of the template.\n   */\n  id: number;\n\n  /**\n   * Template type. Valid values are: 1 (container), 2 (Swarm stack), 3 (Compose stack)\n   * @example 1\n   */\n  type: TemplateType;\n\n  /**\n   * Title of the template.\n   * @example \"Nginx\"\n   */\n  title: string;\n\n  /**\n   * Description of the template.\n   * @example \"High performance web server\"\n   */\n  description: string;\n\n  /**\n   * Whether the template should be available to administrators only.\n   * @example true\n   */\n  administrator_only: boolean;\n\n  /**\n   * Image associated with a container template. Mandatory for a container template.\n   * @example \"nginx:latest\"\n   */\n  image: string;\n\n  /**\n   * Repository associated with the template.\n   */\n  repository: TemplateRepository;\n\n  /**\n   * Stack file used for this template (Mandatory for Edge stack).\n   */\n  stackFile?: string;\n\n  /**\n   * Default name for the stack/container to be used on deployment.\n   * @example \"mystackname\"\n   */\n  name?: string;\n\n  /**\n   * URL of the template's logo.\n   * @example \"https://portainer.io/img/logo.svg\"\n   */\n  logo?: string;\n\n  /**\n   * A list of environment (endpoint) variables used during the template deployment.\n   */\n  env?: TemplateEnv[];\n\n  /**\n   * A note that will be displayed in the UI. Supports HTML content.\n   * @example \"This is my <b>custom</b> template\"\n   */\n  note?: string;\n\n  /**\n   * Platform associated with the template.\n   * Valid values are: 'linux', 'windows' or leave empty for multi-platform.\n   * @example \"linux\"\n   */\n  platform?: 'linux' | 'windows' | '';\n\n  /**\n   * A list of categories associated with the template.\n   * @example [\"database\"]\n   */\n  categories?: string[];\n\n  /**\n   * The URL of a registry associated with the image for a container template.\n   * @example \"quay.io\"\n   */\n  registry?: string;\n\n  /**\n   * The command that will be executed in a container template.\n   * @example \"ls -lah\"\n   */\n  command?: string;\n\n  /**\n   * Name of a network that will be used on container deployment if it exists inside the environment (endpoint).\n   * @example \"mynet\"\n   */\n  network?: string;\n\n  /**\n   * A list of volumes used during the container template deployment.\n   */\n  volumes?: TemplateVolume[];\n\n  /**\n   * A list of ports exposed by the container.\n   * @example [\"8080:80/tcp\"]\n   */\n  ports?: string[];\n\n  /**\n   * Container labels.\n   */\n  labels?: Pair[];\n\n  hosts?: string[];\n\n  /**\n   * Whether the container should be started in privileged mode.\n   * @example true\n   */\n  privileged?: boolean;\n\n  /**\n   * Whether the container should be started in interactive mode (-i -t equivalent on the CLI).\n   * @example true\n   */\n  interactive?: boolean;\n\n  /**\n   * Container restart policy.\n   * @example \"on-failure\"\n   */\n  restart_policy?: string;\n\n  /**\n   * Container hostname.\n   * @example \"mycontainer\"\n   */\n  hostname?: string;\n}\n\n/**\n * TemplateRepository represents the git repository configuration for a template.\n */\nexport interface TemplateRepository {\n  /**\n   * URL of a git repository used to deploy a stack template. Mandatory for a Swarm/Compose stack template.\n   * @example \"https://github.com/portainer/portainer-compose\"\n   */\n  url: string;\n\n  /**\n   * Path to the stack file inside the git repository.\n   * @example \"./subfolder/docker-compose.yml\"\n   */\n  stackfile: string;\n}\n\n/**\n * TemplateVolume represents a template volume configuration.\n */\ninterface TemplateVolume {\n  /**\n   * Path inside the container.\n   * @example \"/data\"\n   */\n  container: string;\n\n  /**\n   * Path on the host.\n   * @example \"/tmp\"\n   */\n  bind?: string;\n\n  /**\n   * Whether the volume used should be readonly.\n   * @example true\n   */\n  readonly?: boolean;\n}\n\n/**\n * TemplateEnv represents an environment (endpoint) variable for a template.\n */\nexport interface TemplateEnv {\n  /**\n   * Name of the environment (endpoint) variable.\n   * @example \"MYSQL_ROOT_PASSWORD\"\n   */\n  name: string;\n\n  /**\n   * Text for the label that will be generated in the UI.\n   * @example \"Root password\"\n   */\n  label?: string;\n\n  /**\n   * Content of the tooltip that will be generated in the UI.\n   * @example \"MySQL root account password\"\n   */\n  description?: string;\n\n  /**\n   * Default value that will be set for the variable.\n   * @example \"default_value\"\n   */\n  default?: string;\n\n  /**\n   * If set to true, will not generate any input for this variable in the UI.\n   * @example false\n   */\n  preset?: boolean;\n\n  /**\n   * A list of name/value pairs that will be used to generate a dropdown in the UI.\n   */\n  select?: TemplateEnvSelect[];\n}\n\n/**\n * TemplateEnvSelect represents a text/value pair that will be displayed as a choice for the template user.\n */\ninterface TemplateEnvSelect {\n  /**\n   * Some text that will be displayed as a choice.\n   * @example \"text value\"\n   */\n  text: string;\n\n  /**\n   * A value that will be associated with the choice.\n   * @example \"value\"\n   */\n  value: string;\n\n  /**\n   * Will set this choice as the default choice.\n   * @example false\n   */\n  default: boolean;\n}\n","import _ from 'lodash';\n\nimport { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\n\nimport { Pair } from '../../settings/types';\nimport { Platform } from '../types';\n\nimport {\n  AppTemplate,\n  TemplateEnv,\n  TemplateRepository,\n  TemplateType,\n} from './types';\n\nexport class TemplateViewModel {\n  Id!: number;\n\n  Title!: string;\n\n  Type!: TemplateType;\n\n  Description!: string;\n\n  AdministratorOnly!: boolean;\n\n  Name: string | undefined;\n\n  Note: string | undefined;\n\n  Categories!: string[];\n\n  Platform!: Platform | undefined;\n\n  Logo: string | undefined;\n\n  Repository!: TemplateRepository;\n\n  Hostname: string | undefined;\n\n  RegistryModel!: PorImageRegistryModel;\n\n  Command!: string;\n\n  Network!: string;\n\n  Privileged!: boolean;\n\n  Interactive!: boolean;\n\n  RestartPolicy!: string;\n\n  Hosts!: string[];\n\n  Labels!: Pair[];\n\n  Env!: Array<TemplateEnv & { type: EnvVarType; value: string }>;\n\n  Volumes!: {\n    container: string;\n    readonly: boolean;\n    type: string;\n    bind: string | null;\n  }[];\n\n  Ports!: {\n    hostPort: string | undefined;\n    containerPort: string;\n    protocol: string;\n  }[];\n\n  constructor(template: AppTemplate, version: string) {\n    switch (version) {\n      case '2':\n        setTemplatesV2.call(this, template);\n        break;\n      case '3':\n        setTemplatesV3.call(this, template);\n        break;\n      default:\n        throw new Error('Unsupported template version');\n    }\n  }\n}\n\nfunction setTemplatesV3(this: TemplateViewModel, template: AppTemplate) {\n  setTemplatesV2.call(this, template);\n  this.Id = template.id;\n}\n\nlet templateV2ID = 0;\n\nfunction setTemplatesV2(this: TemplateViewModel, template: AppTemplate) {\n  this.Id = templateV2ID++;\n  this.Title = template.title;\n  this.Type = template.type;\n  this.Description = template.description;\n  this.AdministratorOnly = template.administrator_only;\n  this.Name = template.name;\n  this.Note = template.note;\n  this.Categories = template.categories ? template.categories : [];\n  this.Platform = getPlatform(template.platform);\n  this.Logo = template.logo;\n  this.Repository = template.repository;\n  this.Hostname = template.hostname;\n  this.RegistryModel = new PorImageRegistryModel();\n  this.RegistryModel.Image = template.image;\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  this.RegistryModel.Registry.URL = template.registry || '';\n  this.Command = template.command ? template.command : '';\n  this.Network = template.network ? template.network : '';\n  this.Privileged = template.privileged ? template.privileged : false;\n  this.Interactive = template.interactive ? template.interactive : false;\n  this.RestartPolicy = template.restart_policy\n    ? template.restart_policy\n    : 'always';\n  this.Labels = template.labels ? template.labels : [];\n  this.Hosts = template.hosts ? template.hosts : [];\n  this.Env = templateEnv(template);\n  this.Volumes = templateVolumes(template);\n  this.Ports = templatePorts(template);\n}\n\nfunction templatePorts(data: AppTemplate) {\n  return (\n    data.ports?.map((p) => {\n      const portAndProtocol = _.split(p, '/');\n      const hostAndContainerPort = _.split(portAndProtocol[0], ':');\n\n      return {\n        hostPort:\n          hostAndContainerPort.length > 1 ? hostAndContainerPort[0] : undefined,\n        containerPort:\n          hostAndContainerPort.length > 1\n            ? hostAndContainerPort[1]\n            : hostAndContainerPort[0],\n        protocol: portAndProtocol[1],\n      };\n    }) || []\n  );\n}\n\nfunction templateVolumes(data: AppTemplate) {\n  return (\n    data.volumes?.map((v) => ({\n      container: v.container,\n      readonly: v.readonly || false,\n      type: v.bind ? 'bind' : 'auto',\n      bind: v.bind ? v.bind : null,\n    })) || []\n  );\n}\n\nexport enum EnvVarType {\n  PreSelected = 1,\n  Text = 2,\n  Select = 3,\n}\n\nfunction templateEnv(data: AppTemplate) {\n  return (\n    data.env?.map((envvar) => ({\n      name: envvar.name,\n      label: envvar.label,\n      description: envvar.description,\n      default: envvar.default,\n      preset: envvar.preset,\n      select: envvar.select,\n      ...getEnvVarTypeAndValue(envvar),\n    })) || []\n  );\n\n  function getEnvVarTypeAndValue(envvar: TemplateEnv) {\n    if (envvar.select) {\n      return {\n        type: EnvVarType.Select,\n        value: envvar.select.find((v) => v.default)?.value || '',\n      };\n    }\n\n    return {\n      type: envvar.preset ? EnvVarType.PreSelected : EnvVarType.Text,\n      value: envvar.default || '',\n    };\n  }\n}\n\nfunction getPlatform(platform?: 'linux' | 'windows' | '') {\n  switch (platform) {\n    case 'linux':\n      return Platform.LINUX;\n    case 'windows':\n      return Platform.WINDOWS;\n\n    default:\n      return undefined;\n  }\n}\n","import { ReactNode } from 'react';\nimport { Rocket } from 'lucide-react';\n\nimport LinuxIcon from '@/assets/ico/linux.svg?c';\nimport MicrosoftIcon from '@/assets/ico/vendor/microsoft.svg?c';\nimport KubernetesIcon from '@/assets/ico/vendor/kubernetes.svg?c';\n\nimport { Icon } from '@@/Icon';\nimport { FallbackImage } from '@@/FallbackImage';\nimport { BlocklistItem } from '@@/Blocklist/BlocklistItem';\nimport { BadgeIcon } from '@@/BadgeIcon';\nimport { Link } from '@@/Link';\n\nimport { Platform } from '../types';\n\ntype Value = {\n  Id: number | string;\n  Logo?: string;\n  Title: string;\n  Platform?: Platform;\n  Description: string;\n  Categories?: string[];\n};\n\nexport function TemplateItem({\n  template,\n  typeLabel,\n  onSelect,\n  renderActions,\n  isSelected,\n  linkParams,\n}: {\n  template: Value;\n  typeLabel: string;\n  onSelect: () => void;\n  renderActions: ReactNode;\n  isSelected: boolean;\n  linkParams?: { to: string; params: object };\n}) {\n  return (\n    <div className=\"relative\">\n      <BlocklistItem\n        isSelected={isSelected}\n        onClick={() => onSelect()}\n        as={linkParams ? Link : undefined}\n        to={linkParams?.to}\n        params={linkParams?.params}\n        aria-label={template.Title}\n      >\n        <div className=\"vertical-center min-w-[56px] justify-center\">\n          <FallbackImage\n            src={template.Logo}\n            fallbackIcon={<BadgeIcon icon={Rocket} size=\"3xl\" />}\n            className=\"blocklist-item-logo\"\n          />\n        </div>\n        <div className=\"col-sm-12 flex justify-between flex-wrap\">\n          <div className=\"blocklist-item-line gap-2\">\n            <span className=\"blocklist-item-title\">{template.Title}</span>\n            <div className=\"space-left blocklist-item-subtitle inline-flex items-center\">\n              <div className=\"vertical-center gap-1\">\n                {(template.Platform === Platform.LINUX ||\n                  !template.Platform) && (\n                  <Icon icon={LinuxIcon} className=\"mr-1\" />\n                )}\n                {(template.Platform === Platform.WINDOWS ||\n                  !template.Platform) && (\n                  <Icon\n                    icon={MicrosoftIcon}\n                    className=\"[&>*]:flex [&>*]:items-center\"\n                    size=\"lg\"\n                  />\n                )}\n              </div>\n              {typeLabel === 'manifest' && (\n                <div className=\"vertical-center\">\n                  <Icon\n                    icon={KubernetesIcon}\n                    size=\"lg\"\n                    className=\"align-bottom [&>*]:flex [&>*]:items-center\"\n                  />\n                </div>\n              )}\n              {typeLabel}\n            </div>\n          </div>\n          <div className=\"blocklist-item-line w-full\">\n            <span className=\"blocklist-item-desc\">{template.Description}</span>\n            {template.Categories && template.Categories.length > 0 && (\n              <span className=\"small text-muted\">\n                {template.Categories.join(', ')}\n              </span>\n            )}\n          </div>\n        </div>\n      </BlocklistItem>\n      <span className=\"absolute inset-y-0 right-0 justify-end\">\n        {renderActions}\n      </span>\n    </div>\n  );\n}\n","import { Edit, Trash2 } from 'lucide-react';\n\nimport { useCurrentUser, useIsEdgeAdmin } from '@/react/hooks/useUser';\nimport { StackType } from '@/react/common/stacks/types';\nimport { CustomTemplate } from '@/react/portainer/templates/custom-templates/types';\n\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\n\nimport { TemplateItem } from '../../components/TemplateItem';\n\nexport function CustomTemplatesListItem({\n  template,\n  onSelect,\n  onDelete,\n  isSelected,\n  linkParams,\n}: {\n  template: CustomTemplate;\n  onSelect?: (templateId: CustomTemplate['Id']) => void;\n  onDelete: (templateId: CustomTemplate['Id']) => void;\n  isSelected: boolean;\n  linkParams?: { to: string; params: object };\n}) {\n  const { user } = useCurrentUser();\n  const isAdminQuery = useIsEdgeAdmin();\n\n  if (isAdminQuery.isLoading) {\n    return null;\n  }\n\n  const isEditAllowed =\n    isAdminQuery.isAdmin || template.CreatedByUserId === user.Id;\n\n  return (\n    <TemplateItem\n      template={template}\n      typeLabel={getTypeLabel(template.Type)}\n      onSelect={() => onSelect?.(template.Id)}\n      isSelected={isSelected}\n      linkParams={linkParams}\n      renderActions={\n        <div className=\"mr-4 mt-3\">\n          {isEditAllowed && (\n            <div className=\"vertical-center\">\n              <Button\n                as={Link}\n                onClick={(e) => {\n                  e.preventDefault();\n                  e.stopPropagation();\n                }}\n                color=\"secondary\"\n                props={{\n                  to: '.edit',\n                  params: {\n                    id: template.Id,\n                  },\n                }}\n                icon={Edit}\n              >\n                Edit\n              </Button>\n              <Button\n                onClick={(e) => {\n                  onDelete(template.Id);\n                  e.stopPropagation();\n                }}\n                color=\"dangerlight\"\n                icon={Trash2}\n              >\n                Delete\n              </Button>\n            </div>\n          )}\n        </div>\n      }\n    />\n  );\n}\n\nfunction getTypeLabel(type: StackType) {\n  switch (type) {\n    case StackType.DockerSwarm:\n      return 'swarm';\n    case StackType.Kubernetes:\n      return 'manifest';\n    case StackType.DockerCompose:\n    default:\n      return 'standalone';\n  }\n}\n","import { Edit, Plus } from 'lucide-react';\nimport _ from 'lodash';\nimport { useCallback, useState } from 'react';\n\nimport { CustomTemplate } from '@/react/portainer/templates/custom-templates/types';\n\nimport { DatatableHeader } from '@@/datatables/DatatableHeader';\nimport { Table } from '@@/datatables';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { DatatableFooter } from '@@/datatables/DatatableFooter';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\n\nimport { CustomTemplatesListItem } from './CustomTemplatesListItem';\n\nexport function CustomTemplatesList({\n  templates,\n  onSelect,\n  onDelete,\n  selectedId,\n  templateLinkParams,\n  storageKey,\n}: {\n  templates?: CustomTemplate[];\n  onSelect?: (template: CustomTemplate['Id']) => void;\n  onDelete: (template: CustomTemplate['Id']) => void;\n  selectedId?: CustomTemplate['Id'];\n  templateLinkParams?: (template: CustomTemplate) => {\n    to: string;\n    params: object;\n  };\n  storageKey: string;\n}) {\n  const [page, setPage] = useState(0);\n  const [store] = useState(() => createPersistedStore(storageKey));\n  const listState = useTableState(store, storageKey);\n\n  const filterBySearch = useCallback(\n    (item: CustomTemplate) =>\n      item.Title.includes(listState.search) ||\n      item.Description.includes(listState.search) ||\n      item.Note?.includes(listState.search),\n    [listState.search]\n  );\n\n  const filteredTemplates = templates?.filter(filterBySearch) || [];\n\n  const pagedTemplates =\n    _.chunk(filteredTemplates, listState.pageSize)[page] || [];\n\n  return (\n    <Table.Container>\n      <DatatableHeader\n        onSearchChange={listState.setSearch}\n        searchValue={listState.search}\n        title=\"Custom Templates\"\n        titleIcon={Edit}\n        renderTableActions={() => (\n          <Button as={Link} props={{ to: '.new' }} icon={Plus}>\n            Add Custom Template\n          </Button>\n        )}\n      />\n\n      <div className=\"blocklist gap-y-2 !px-[20px] !pb-[20px]\" role=\"list\">\n        {pagedTemplates.map((template) => (\n          <CustomTemplatesListItem\n            key={template.Id}\n            template={template}\n            onSelect={onSelect}\n            isSelected={template.Id === selectedId}\n            onDelete={onDelete}\n            linkParams={templateLinkParams?.(template)}\n          />\n        ))}\n        {!templates && <div className=\"text-muted text-center\">Loading...</div>}\n        {filteredTemplates.length === 0 && (\n          <div className=\"text-muted text-center\">No templates available.</div>\n        )}\n      </div>\n\n      <DatatableFooter\n        onPageChange={setPage}\n        page={page}\n        onPageSizeChange={listState.setPageSize}\n        pageSize={listState.pageSize}\n        pageCount={Math.ceil(filteredTemplates.length / listState.pageSize)}\n        totalSelected={0}\n      />\n    </Table.Container>\n  );\n}\n","import { CustomTemplate } from '../types';\n\nexport function buildUrl({\n  id,\n  action,\n}: {\n  id?: CustomTemplate['Id'];\n  action?: string;\n} = {}) {\n  let base = '/custom_templates';\n\n  if (id) {\n    base = `${base}/${id}`;\n  }\n\n  if (action) {\n    base = `${base}/${action}`;\n  }\n\n  return base;\n}\n","import { CustomTemplate } from '../types';\n\nexport const queryKeys = {\n  base: () => ['custom-templates'] as const,\n  list: (params: unknown) => [...queryKeys.base(), { params }] as const,\n  item: (id: CustomTemplate['Id']) => [...queryKeys.base(), id] as const,\n  file: (id: CustomTemplate['Id'], options: { git: boolean }) =>\n    [...queryKeys.item(id), 'file', options] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport { withGlobalError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { CustomTemplate } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './build-url';\n\nexport async function getCustomTemplate(id: CustomTemplate['Id']) {\n  try {\n    const { data } = await axios.get<CustomTemplate>(buildUrl({ id }));\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to get custom template');\n  }\n}\n\nexport function useCustomTemplate(id?: CustomTemplate['Id']) {\n  return useQuery(queryKeys.item(id!), () => getCustomTemplate(id!), {\n    ...withGlobalError('Unable to retrieve custom template'),\n    enabled: !!id,\n  });\n}\n","import { useMutation, useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withGlobalError } from '@/react-tools/react-query';\n\nimport { CustomTemplate } from '../types';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\ntype CustomTemplateFileContent = {\n  FileContent: string;\n};\n\nexport function useCustomTemplateFile(id?: CustomTemplate['Id'], git = false) {\n  return useQuery(\n    id ? queryKeys.file(id, { git }) : [],\n    () => getCustomTemplateFile({ id: id!, git }),\n    {\n      ...withGlobalError('Failed to get custom template file'),\n      enabled: !!id,\n      // there's nothing to do with a new file content, so we're disabling refetch\n      refetchOnReconnect: false,\n      refetchOnWindowFocus: false,\n    }\n  );\n}\n\nexport function useCustomTemplateFileMutation() {\n  return useMutation({\n    mutationFn: getCustomTemplateFile,\n    ...withGlobalError('Failed to get custom template file'),\n  });\n}\n\nexport function getCustomTemplateFile({\n  git,\n  id,\n}: {\n  id: CustomTemplate['Id'];\n  git: boolean;\n}) {\n  return git ? getCustomTemplateGitFetch(id) : getCustomTemplateFileContent(id);\n}\n\nasync function getCustomTemplateFileContent(id: number) {\n  try {\n    const {\n      data: { FileContent },\n    } = await axios.get<CustomTemplateFileContent>(\n      buildUrl({ id, action: 'file' })\n    );\n    return FileContent;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to get custom template file content');\n  }\n}\n\nasync function getCustomTemplateGitFetch(id: number) {\n  try {\n    const {\n      data: { FileContent },\n    } = await axios.put<CustomTemplateFileContent>(\n      buildUrl({ id, action: 'git_fetch' })\n    );\n    return FileContent;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to get custom template file content');\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withGlobalError } from '@/react-tools/react-query';\nimport { StackType } from '@/react/common/stacks/types';\n\nimport { CustomTemplate } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './build-url';\n\ntype Params = {\n  type?: StackType[];\n  /**\n   * filter edge templates\n   * true if should show only edge templates\n   * false if should show only non-edge templates\n   * undefined if should show all templates\n   */\n  edge?: boolean;\n};\n\nexport function useCustomTemplates<T = Array<CustomTemplate>>({\n  select,\n  params,\n}: { params?: Params; select?(templates: Array<CustomTemplate>): T } = {}) {\n  return useQuery(queryKeys.list(params), () => getCustomTemplates(params), {\n    select,\n    ...withGlobalError('Unable to retrieve custom templates'),\n  });\n}\n\nasync function getCustomTemplates({ type, edge = false }: Params = {}) {\n  try {\n    const { data } = await axios.get<CustomTemplate[]>(buildUrl(), {\n      params: {\n        // deconstruct to make sure we don't pass other params\n        type,\n        edge,\n      },\n    });\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to get custom templates');\n  }\n}\n","export enum Platform {\n  LINUX = 1,\n  WINDOWS,\n}\n","import { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { notifyError } from '@/portainer/services/notifications';\nimport { UserId } from '@/portainer/users/types';\n\nimport {\n  createTeamMembership,\n  deleteTeamMembership,\n  updateTeamMembership,\n} from './team-membership.service';\nimport { getTeam, getTeamMemberships, getTeams } from './teams.service';\nimport { Team, TeamId, TeamMembership, TeamRole } from './types';\n\nexport function useTeams<T = Team[]>(\n  onlyLedTeams = false,\n  environmentId = 0,\n  {\n    enabled = true,\n    select = (data) => data as unknown as T,\n  }: {\n    enabled?: boolean;\n    select?: (data: Team[]) => T;\n  } = {}\n) {\n  const teams = useQuery(\n    ['teams', { onlyLedTeams, environmentId }],\n    () => getTeams(onlyLedTeams, environmentId),\n    {\n      meta: {\n        error: { title: 'Failure', message: 'Unable to load teams' },\n      },\n      enabled,\n      select,\n    }\n  );\n\n  return teams;\n}\n\nexport function useTeam(id: TeamId, onError?: (error: unknown) => void) {\n  return useQuery(['teams', id], () => getTeam(id), {\n    meta: {\n      error: { title: 'Failure', message: 'Unable to load team' },\n    },\n    onError,\n  });\n}\n\nexport function useTeamMemberships(id: TeamId) {\n  return useQuery(['teams', id, 'memberships'], () => getTeamMemberships(id), {\n    meta: {\n      error: { title: 'Failure', message: 'Unable to load team memberships' },\n    },\n  });\n}\n\nexport function useAddMemberMutation(teamId: TeamId) {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    (userIds: UserId[]) =>\n      promiseSequence(\n        userIds.map(\n          (userId) => () =>\n            createTeamMembership(userId, teamId, TeamRole.Member)\n        )\n      ),\n    {\n      onError(error) {\n        notifyError('Failure', error as Error, 'Failure to add membership');\n      },\n      onSuccess() {\n        queryClient.invalidateQueries(['teams', teamId, 'memberships']);\n      },\n    }\n  );\n}\n\nexport function useRemoveMemberMutation(\n  teamId: TeamId,\n  teamMemberships: TeamMembership[] = []\n) {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    (userIds: UserId[]) =>\n      promiseSequence(\n        userIds.map((userId) => () => {\n          const membership = teamMemberships.find(\n            (membership) => membership.UserID === userId\n          );\n          if (!membership) {\n            throw new Error('Membership not found');\n          }\n          return deleteTeamMembership(membership.Id);\n        })\n      ),\n    {\n      onError(error) {\n        notifyError('Failure', error as Error, 'Failure to add membership');\n      },\n      onSuccess() {\n        queryClient.invalidateQueries(['teams', teamId, 'memberships']);\n      },\n    }\n  );\n}\n\nexport function useUpdateRoleMutation(\n  teamId: TeamId,\n  teamMemberships: TeamMembership[] = []\n) {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    ({ userId, role }: { userId: UserId; role: TeamRole }) => {\n      const membership = teamMemberships.find(\n        (membership) => membership.UserID === userId\n      );\n      if (!membership) {\n        throw new Error('Membership not found');\n      }\n      return updateTeamMembership(membership.Id, userId, teamId, role);\n    },\n    {\n      onError(error) {\n        notifyError('Failure', error as Error, 'Failure to update membership');\n      },\n      onSuccess() {\n        queryClient.invalidateQueries(['teams', teamId, 'memberships']);\n      },\n    }\n  );\n}\n","import { UserId } from '@/portainer/users/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { TeamId, TeamRole, TeamMembershipId } from './types';\n\nexport async function createTeamMembership(\n  userId: UserId,\n  teamId: TeamId,\n  role: TeamRole\n) {\n  try {\n    await axios.post(buildUrl(), { userId, teamId, role });\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to create team membership');\n  }\n}\n\nexport async function deleteTeamMembership(id: TeamMembershipId) {\n  try {\n    await axios.delete(buildUrl(id));\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete team membership');\n  }\n}\n\nexport async function updateTeamMembership(\n  id: TeamMembershipId,\n  userId: UserId,\n  teamId: TeamId,\n  role: TeamRole\n) {\n  try {\n    await axios.put(buildUrl(id), { userId, teamId, role });\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update team membership');\n  }\n}\n\nfunction buildUrl(id?: TeamMembershipId) {\n  let url = '/team_memberships';\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  return url;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { type UserId } from '@/portainer/users/types';\n\nimport { createTeamMembership } from './team-membership.service';\nimport { Team, TeamId, TeamMembership, TeamRole } from './types';\n\nexport async function getTeams(onlyLedTeams = false, environmentId = 0) {\n  try {\n    const { data } = await axios.get<Team[]>(buildUrl(), {\n      params: { onlyLedTeams, environmentId },\n    });\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nexport async function getTeam(id: TeamId) {\n  try {\n    const { data } = await axios.get<Team>(buildUrl(id));\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nexport async function deleteTeam(id: TeamId) {\n  try {\n    await axios.delete(buildUrl(id));\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nexport async function createTeam(name: string, leaders: UserId[]) {\n  try {\n    const { data: team } = await axios.post(buildUrl(), { name });\n    await Promise.all(\n      leaders.map((leaderId) =>\n        createTeamMembership(leaderId, team.Id, TeamRole.Leader)\n      )\n    );\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to create team');\n  }\n}\n\nexport async function getTeamMemberships(teamId: TeamId) {\n  try {\n    const { data } = await axios.get<TeamMembership[]>(\n      buildUrl(teamId, 'memberships')\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to get team memberships');\n  }\n}\n\nfunction buildUrl(id?: TeamId, action?: string) {\n  let url = '/teams';\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","import { type UserId } from '@/portainer/users/types';\n\nexport type TeamId = number;\n\nexport enum TeamRole {\n  Leader = 1,\n  Member,\n}\n\nexport type Team = {\n  Id: TeamId;\n  Name: string;\n};\n\nexport type TeamMembershipId = number;\n\nexport interface TeamMembership {\n  Id: TeamMembershipId;\n  Role: TeamRole;\n  UserID: UserId;\n  TeamID: TeamId;\n}\n","module.exports = 'test-file-stub';\n","module.exports = {};\n","import _ from 'lodash-es';\nimport { confirmDelete } from '@@/modals/confirm';\n\nconst ROOT_PATH = '/host';\n\nexport class HostBrowserController {\n  /* @ngInject */\n  constructor($async, HostBrowserService, Notifications, FileSaver) {\n    Object.assign(this, { $async, HostBrowserService, Notifications, FileSaver });\n\n    this.state = {\n      path: ROOT_PATH,\n    };\n\n    this.goToParent = this.goToParent.bind(this);\n    this.browse = this.browse.bind(this);\n    this.confirmDeleteFile = this.confirmDeleteFile.bind(this);\n    this.isRoot = this.isRoot.bind(this);\n    this.getRelativePath = this.getRelativePath.bind(this);\n    this.getFilesForPath = this.getFilesForPath.bind(this);\n    this.getFilesForPathAsync = this.getFilesForPathAsync.bind(this);\n    this.downloadFile = this.downloadFile.bind(this);\n    this.downloadFileAsync = this.downloadFileAsync.bind(this);\n    this.renameFile = this.renameFile.bind(this);\n    this.renameFileAsync = this.renameFileAsync.bind(this);\n    this.deleteFile = this.deleteFile.bind(this);\n    this.deleteFileAsync = this.deleteFileAsync.bind(this);\n    this.onFileSelectedForUpload = this.onFileSelectedForUpload.bind(this);\n    this.onFileSelectedForUploadAsync = this.onFileSelectedForUploadAsync.bind(this);\n  }\n\n  getRelativePath(path) {\n    path = path || this.state.path;\n    const rootPathRegex = new RegExp(`^${ROOT_PATH}/?`);\n    const relativePath = path.replace(rootPathRegex, '/');\n    return relativePath;\n  }\n\n  goToParent() {\n    this.getFilesForPath(this.parentPath(this.state.path));\n  }\n\n  isRoot() {\n    return this.state.path === ROOT_PATH;\n  }\n\n  browse(folder) {\n    this.getFilesForPath(this.buildPath(this.state.path, folder));\n  }\n\n  getFilesForPath(path) {\n    return this.$async(this.getFilesForPathAsync, path);\n  }\n  async getFilesForPathAsync(path) {\n    try {\n      const files = await this.HostBrowserService.ls(this.endpointId, path);\n      this.state.path = path;\n      this.files = files;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to browse');\n    }\n  }\n\n  renameFile(name, newName) {\n    return this.$async(this.renameFileAsync, name, newName);\n  }\n  async renameFileAsync(name, newName) {\n    const filePath = this.buildPath(this.state.path, name);\n    const newFilePath = this.buildPath(this.state.path, newName);\n    try {\n      await this.HostBrowserService.rename(this.endpointId, filePath, newFilePath);\n      this.Notifications.success('File successfully renamed', this.getRelativePath(newFilePath));\n      const files = await this.HostBrowserService.ls(this.endpointId, this.state.path);\n      this.files = files;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to rename file');\n    }\n  }\n\n  downloadFile(fileName) {\n    return this.$async(this.downloadFileAsync, fileName);\n  }\n  async downloadFileAsync(fileName) {\n    const filePath = this.buildPath(this.state.path, fileName);\n    try {\n      const { file } = await this.HostBrowserService.get(this.endpointId, filePath);\n      const downloadData = new Blob([file], {\n        type: 'text/plain;charset=utf-8',\n      });\n      this.FileSaver.saveAs(downloadData, fileName);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to download file');\n    }\n  }\n\n  confirmDeleteFile(name) {\n    const filePath = this.buildPath(this.state.path, name);\n\n    confirmDelete(`Are you sure that you want to delete ${this.getRelativePath(filePath)}?`).then((confirmed) => {\n      if (!confirmed) {\n        return;\n      }\n      return this.deleteFile(filePath);\n    });\n  }\n\n  deleteFile(path) {\n    this.$async(this.deleteFileAsync, path);\n  }\n  async deleteFileAsync(path) {\n    try {\n      await this.HostBrowserService.delete(this.endpointId, path);\n      this.Notifications.success('File successfully deleted', this.getRelativePath(path));\n      const files = await this.HostBrowserService.ls(this.endpointId, this.state.path);\n      this.files = files;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to delete file');\n    }\n  }\n\n  $onInit() {\n    this.getFilesForPath(ROOT_PATH);\n  }\n\n  parentPath(path) {\n    if (path === ROOT_PATH) {\n      return ROOT_PATH;\n    }\n\n    const split = _.split(path, '/');\n    return _.join(_.slice(split, 0, split.length - 1), '/');\n  }\n\n  buildPath(parent, file) {\n    if (parent.lastIndexOf('/') === parent.length - 1) {\n      return parent + file;\n    }\n    return parent + '/' + file;\n  }\n\n  onFileSelectedForUpload(file) {\n    return this.$async(this.onFileSelectedForUploadAsync, file);\n  }\n  async onFileSelectedForUploadAsync(file) {\n    if (!this.endpointId) {\n      throw new Error('missing endpoint id');\n    }\n    try {\n      await this.HostBrowserService.upload(this.endpointId, this.state.path, file);\n      this.onFileUploaded();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to upload file');\n    }\n  }\n\n  onFileUploaded() {\n    this.refreshList();\n  }\n\n  refreshList() {\n    this.getFilesForPath(this.state.path);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./hostBrowser.html');\n\nimport angular from 'angular';\nimport { HostBrowserController } from './hostBrowserController';\n\nangular.module('portainer.agent').component('hostBrowser', {\n  controller: HostBrowserController,\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    endpointId: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./nodeSelector.html');\n\nimport angular from 'angular';\n\nimport { NodeSelectorController } from './nodeSelectorController';\n\nangular.module('portainer.agent').component('nodeSelector', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: NodeSelectorController,\n  bindings: {\n    model: '=',\n    endpointId: '<',\n  },\n});\n","export class NodeSelectorController {\n  /* @ngInject */\n  constructor(AgentService, Notifications) {\n    Object.assign(this, { AgentService, Notifications });\n  }\n\n  async $onInit() {\n    try {\n      const agents = await this.AgentService.agents(this.endpointId);\n      this.agents = agents;\n      if (!this.model) {\n        this.model = agents[0].NodeName;\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load agents');\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./volumeBrowser.html');\n\nimport angular from 'angular';\n\nimport { VolumeBrowserController } from './volumeBrowserController';\n\nangular.module('portainer.agent').component('volumeBrowser', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: VolumeBrowserController,\n  bindings: {\n    volumeId: '<',\n    nodeName: '<',\n    isUploadEnabled: '<',\n    endpointId: '<',\n  },\n});\n","import _ from 'lodash-es';\nimport { confirmDelete } from '@@/modals/confirm';\n\nexport class VolumeBrowserController {\n  /* @ngInject */\n  constructor($async, HttpRequestHelper, VolumeBrowserService, FileSaver, Blob, Notifications) {\n    Object.assign(this, { $async, HttpRequestHelper, VolumeBrowserService, FileSaver, Blob, Notifications });\n    this.state = {\n      path: '/',\n    };\n\n    this.rename = this.rename.bind(this);\n    this.renameAsync = this.renameAsync.bind(this);\n    this.confirmDelete = this.confirmDelete.bind(this);\n    this.download = this.download.bind(this);\n    this.downloadAsync = this.downloadAsync.bind(this);\n    this.up = this.up.bind(this);\n    this.browse = this.browse.bind(this);\n    this.deleteFile = this.deleteFile.bind(this);\n    this.deleteFileAsync = this.deleteFileAsync.bind(this);\n    this.getFilesForPath = this.getFilesForPath.bind(this);\n    this.getFilesForPathAsync = this.getFilesForPathAsync.bind(this);\n    this.onFileSelectedForUpload = this.onFileSelectedForUpload.bind(this);\n    this.onFileSelectedForUploadAsync = this.onFileSelectedForUploadAsync.bind(this);\n    this.parentPath = this.parentPath.bind(this);\n    this.buildPath = this.buildPath.bind(this);\n    this.$onInit = this.$onInit.bind(this);\n    this.onFileUploaded = this.onFileUploaded.bind(this);\n    this.refreshList = this.refreshList.bind(this);\n  }\n\n  rename(file, newName) {\n    return this.$async(this.renameAsync, file, newName);\n  }\n  async renameAsync(file, newName) {\n    const filePath = this.state.path === '/' ? file : `${this.state.path}/${file}`;\n    const newFilePath = this.state.path === '/' ? newName : `${this.state.path}/${newName}`;\n\n    try {\n      await this.VolumeBrowserService.rename(this.endpointId, this.volumeId, filePath, newFilePath);\n      this.Notifications.success('File successfully renamed', newFilePath);\n      this.files = await this.VolumeBrowserService.ls(this.endpointId, this.volumeId, this.state.path);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to rename file');\n    }\n  }\n\n  confirmDelete(file) {\n    const filePath = this.state.path === '/' ? file : `${this.state.path}/${file}`;\n\n    confirmDelete(`Are you sure that you want to delete ${filePath} ?`).then((confirmed) => {\n      if (!confirmed) {\n        return;\n      }\n      this.deleteFile(filePath);\n    });\n  }\n\n  download(file) {\n    return this.$async(this.downloadAsync, file);\n  }\n  async downloadAsync(file) {\n    const filePath = this.state.path === '/' ? file : `${this.state.path}/${file}`;\n\n    try {\n      const data = await this.VolumeBrowserService.get(this.endpointId, this.volumeId, filePath);\n      const downloadData = new Blob([data.file]);\n      this.FileSaver.saveAs(downloadData, file);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to download file');\n    }\n  }\n\n  up() {\n    const parentFolder = this.parentPath(this.state.path);\n    this.getFilesForPath(parentFolder);\n  }\n\n  browse(folder) {\n    const path = this.buildPath(this.state.path, folder);\n    this.getFilesForPath(path);\n  }\n\n  deleteFile(file) {\n    return this.$async(this.deleteFileAsync, file);\n  }\n  async deleteFileAsync(file) {\n    try {\n      await this.VolumeBrowserService.delete(this.endpointId, this.volumeId, file);\n      this.Notifications.success('File successfully deleted', file);\n      this.files = await this.VolumeBrowserService.ls(this.endpointId, this.volumeId, this.state.path);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to delete file');\n    }\n  }\n\n  getFilesForPath(path) {\n    return this.$async(this.getFilesForPathAsync, path);\n  }\n  async getFilesForPathAsync(path) {\n    try {\n      const files = await this.VolumeBrowserService.ls(this.endpointId, this.volumeId, path);\n      this.state.path = path;\n      this.files = files;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to browse volume');\n    }\n  }\n\n  onFileSelectedForUpload(file) {\n    return this.$async(this.onFileSelectedForUploadAsync, file);\n  }\n  async onFileSelectedForUploadAsync(file) {\n    try {\n      await this.VolumeBrowserService.upload(this.endpointId, this.state.path, file, this.volumeId);\n      this.onFileUploaded();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to upload file');\n    }\n  }\n\n  parentPath(path) {\n    if (path.lastIndexOf('/') === 0) {\n      return '/';\n    }\n\n    const split = _.split(path, '/');\n    return _.join(_.slice(split, 0, split.length - 1), '/');\n  }\n\n  buildPath(parent, file) {\n    if (parent === '/') {\n      return parent + file;\n    }\n    return `${parent}/${file}`;\n  }\n\n  onFileUploaded() {\n    this.refreshList();\n  }\n\n  refreshList() {\n    this.getFilesForPath(this.state.path);\n  }\n\n  async $onInit() {\n    this.HttpRequestHelper.setPortainerAgentTargetHeader(this.nodeName);\n    try {\n      this.files = await this.VolumeBrowserService.ls(this.endpointId, this.volumeId, this.state.path);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to browse volume');\n    }\n  }\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent', []);\n","export class AgentViewModel {\n  constructor(data) {\n    this.IPAddress = data.IPAddress;\n    this.NodeName = data.NodeName;\n    this.NodeRole = data.NodeRole;\n  }\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').factory('Agent', AgentFactory);\n\nfunction AgentFactory($resource, API_ENDPOINT_ENDPOINTS, StateManager) {\n  return $resource(\n    `${API_ENDPOINT_ENDPOINTS}/:endpointId/docker/v:version/agents`,\n    {\n      version: StateManager.getAgentApiVersion,\n    },\n    {\n      query: { method: 'GET', isArray: true },\n    }\n  );\n}\n","import angular from 'angular';\n\nimport { browseGetResponse } from './response/browse';\n\nangular.module('portainer.agent').factory('Browse', BrowseFactory);\n\nfunction BrowseFactory($resource, API_ENDPOINT_ENDPOINTS, StateManager) {\n  return $resource(\n    `${API_ENDPOINT_ENDPOINTS}/:endpointId/docker/v:version/browse/:action`,\n    {\n      version: StateManager.getAgentApiVersion,\n    },\n    {\n      ls: {\n        method: 'GET',\n        isArray: true,\n        params: { action: 'ls' },\n      },\n      get: {\n        method: 'GET',\n        params: { action: 'get' },\n        transformResponse: browseGetResponse,\n        responseType: 'arraybuffer',\n      },\n      delete: {\n        method: 'DELETE',\n        params: { action: 'delete' },\n      },\n      rename: {\n        method: 'PUT',\n        params: { action: 'rename' },\n      },\n    }\n  );\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').factory('AgentDockerhub', AgentDockerhub);\n\nfunction AgentDockerhub($resource, API_ENDPOINT_ENDPOINTS) {\n  return $resource(\n    `${API_ENDPOINT_ENDPOINTS}/:endpointId/agent/:endpointType/v2/dockerhub/:registryId`,\n    {},\n    {\n      limits: { method: 'GET', params: { registryId: '@registryId' } },\n    }\n  );\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').factory('Host', HostFactory);\n\nfunction HostFactory($resource, API_ENDPOINT_ENDPOINTS, StateManager) {\n  return $resource(\n    `${API_ENDPOINT_ENDPOINTS}/:endpointId/docker/v:version/host/:action`,\n    {\n      version: StateManager.getAgentApiVersion,\n    },\n    {\n      info: { method: 'GET', params: { action: 'info' } },\n    }\n  );\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').factory('AgentPing', AgentPingFactory);\n\nfunction AgentPingFactory($resource, API_ENDPOINT_ENDPOINTS, $q) {\n  return $resource(\n    `${API_ENDPOINT_ENDPOINTS}/:endpointId/docker/ping`,\n    {},\n    {\n      ping: {\n        method: 'GET',\n        interceptor: {\n          response: function versionInterceptor(response) {\n            const instance = response.resource;\n            const version = response.headers('Portainer-Agent-Api-Version') || 1;\n            instance.version = Number(version);\n            return instance;\n          },\n          responseError: function versionResponseError(error) {\n            // 404 - agent is up - set version to 1\n            if (error.status === 404) {\n              return { version: 1 };\n            }\n            return $q.reject(error);\n          },\n        },\n      },\n    }\n  );\n}\n","// The get action of the Browse service returns a file.\n// ngResource will transform it as an array of chars.\n// This functions simply creates a response object and assign\n// the data to a field.\nexport function browseGetResponse(data) {\n  const response = {};\n  response.file = data;\n  return response;\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').factory('AgentVersion1', AgentFactory);\n\nfunction AgentFactory($resource, API_ENDPOINT_ENDPOINTS) {\n  return $resource(\n    `${API_ENDPOINT_ENDPOINTS}/:endpointId/docker/agents`,\n    {},\n    {\n      query: { method: 'GET', isArray: true },\n    }\n  );\n}\n","import angular from 'angular';\n\nimport { browseGetResponse } from '../response/browse';\n\nangular.module('portainer.agent').factory('BrowseVersion1', BrowseFactory);\n\nfunction BrowseFactory($resource, API_ENDPOINT_ENDPOINTS) {\n  return $resource(\n    `${API_ENDPOINT_ENDPOINTS}/:endpointId/docker/browse/:volumeID/:action`,\n    {},\n    {\n      ls: {\n        method: 'GET',\n        isArray: true,\n        params: { action: 'ls' },\n      },\n      get: {\n        method: 'GET',\n        params: { action: 'get' },\n        transformResponse: browseGetResponse,\n        responseType: 'arraybuffer',\n      },\n      delete: {\n        method: 'DELETE',\n        params: { action: 'delete' },\n      },\n      rename: {\n        method: 'PUT',\n        params: { action: 'rename' },\n      },\n    }\n  );\n}\n","import angular from 'angular';\n\nimport { AgentViewModel } from '../models/agent';\n\nangular.module('portainer.agent').factory('AgentService', AgentServiceFactory);\n\nfunction AgentServiceFactory(Agent, AgentVersion1, HttpRequestHelper, Host, StateManager) {\n  return {\n    agents,\n    hostInfo,\n  };\n\n  function getAgentApiVersion() {\n    const state = StateManager.getState();\n    return state.endpoint.agentApiVersion;\n  }\n\n  function hostInfo(endpointId, nodeName) {\n    HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);\n    return Host.info({ endpointId }).$promise;\n  }\n\n  async function agents(endpointId) {\n    const agentVersion = getAgentApiVersion();\n    const service = agentVersion > 1 ? Agent : AgentVersion1;\n    try {\n      const agents = await service.query({ version: agentVersion, endpointId }).$promise;\n      return agents.map(function (item) {\n        return new AgentViewModel(item);\n      });\n    } catch (err) {\n      throw { msg: 'Unable to retrieve agents', err };\n    }\n  }\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').factory('HostBrowserService', HostBrowserServiceFactory);\n\n/* @ngInject */\nfunction HostBrowserServiceFactory(Browse, Upload, API_ENDPOINT_ENDPOINTS, StateManager) {\n  return { ls, get, delete: deletePath, rename, upload };\n\n  function ls(endpointId, path) {\n    return Browse.ls({ endpointId, path: path }).$promise;\n  }\n\n  function get(endpointId, path) {\n    return Browse.get({ endpointId, path: path }).$promise;\n  }\n\n  function deletePath(endpointId, path) {\n    return Browse.delete({ endpointId, path: path }).$promise;\n  }\n\n  function rename(endpointId, path, newPath) {\n    const payload = {\n      CurrentFilePath: path,\n      NewFilePath: newPath,\n    };\n    return Browse.rename({ endpointId }, payload).$promise;\n  }\n\n  function upload(endpointId, Path, file, onProgress) {\n    const agentVersion = StateManager.getAgentApiVersion();\n    const url = `${API_ENDPOINT_ENDPOINTS}/${endpointId}/docker${agentVersion > 1 ? '/v' + agentVersion : ''}/browse/put`;\n\n    return new Promise((resolve, reject) => {\n      Upload.upload({\n        url: url,\n        data: { file, Path },\n      }).then(resolve, reject, onProgress);\n    });\n  }\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').service('AgentPingService', AgentPingService);\n\nfunction AgentPingService(AgentPing) {\n  return { ping };\n\n  function ping(endpointId) {\n    return AgentPing.ping({ endpointId }).$promise;\n  }\n}\n","import angular from 'angular';\n\nangular.module('portainer.agent').factory('VolumeBrowserService', VolumeBrowserServiceFactory);\n\n/* @ngInject */\nfunction VolumeBrowserServiceFactory(StateManager, Browse, BrowseVersion1, API_ENDPOINT_ENDPOINTS, Upload) {\n  return {\n    ls,\n    get,\n    delete: deletePath,\n    rename,\n    upload,\n  };\n\n  function getAgentApiVersion() {\n    const state = StateManager.getState();\n    return state.endpoint.agentApiVersion;\n  }\n\n  function getBrowseService() {\n    const agentVersion = getAgentApiVersion();\n    return agentVersion > 1 ? Browse : BrowseVersion1;\n  }\n\n  function ls(endpointId, volumeId, path) {\n    return getBrowseService().ls({ endpointId, volumeID: volumeId, path, version: getAgentApiVersion() }).$promise;\n  }\n\n  function get(endpointId, volumeId, path) {\n    return getBrowseService().get({ endpointId, volumeID: volumeId, path, version: getAgentApiVersion() }).$promise;\n  }\n\n  function deletePath(endpointId, volumeId, path) {\n    return getBrowseService().delete({ endpointId, volumeID: volumeId, path, version: getAgentApiVersion() }).$promise;\n  }\n\n  function rename(endpointId, volumeId, path, newPath) {\n    const payload = {\n      CurrentFilePath: path,\n      NewFilePath: newPath,\n    };\n    return getBrowseService().rename({ endpointId, volumeID: volumeId, version: getAgentApiVersion() }, payload).$promise;\n  }\n\n  function upload(endpointId, path, file, volumeId, onProgress) {\n    const agentVersion = StateManager.getAgentApiVersion();\n    if (agentVersion < 2) {\n      throw new Error('upload is not supported on this agent version');\n    }\n\n    const url = `${API_ENDPOINT_ENDPOINTS}/${endpointId}/docker/v${agentVersion}/browse/put?volumeID=${volumeId}`;\n\n    return new Promise((resolve, reject) => {\n      Upload.upload({\n        url: url,\n        data: { file, Path: path },\n      }).then(resolve, reject, onProgress);\n    });\n  }\n}\n","import angular from 'angular';\nimport { setPortainerStatus, setUserRole, clearUserRole, setUserEndpointRole, clearUserEndpointRole, push, trackEvent } from './analytics-services';\nconst basePath = 'http://portainer-ce.app';\n\nconst excludedPaths = ['/auth'];\n\n// forked from https://github.com/angulartics/angulartics-piwik/blob/master/src/angulartics-piwik.js\n\n/**\n * @ngdoc overview\n * @name angulartics.piwik\n * Enables analytics support for Piwik/Matomo (http://piwik.org/docs/tracking-api/)\n */\nexport default angular.module('angulartics.matomo', ['angulartics']).config(config).name;\n\n/* @ngInject */\nfunction config($analyticsProvider, $windowProvider) {\n  const $window = $windowProvider.$get();\n\n  $analyticsProvider.settings.pageTracking.trackRelativePath = true;\n\n  $analyticsProvider.api.setPortainerStatus = setPortainerStatus;\n\n  $analyticsProvider.api.setUserRole = setUserRole;\n  $analyticsProvider.api.clearUserRole = clearUserRole;\n\n  $analyticsProvider.api.setUserEndpointRole = setUserEndpointRole;\n  $analyticsProvider.api.clearUserEndpointRole = clearUserEndpointRole;\n\n  // scope: visit or page. Defaults to 'page'\n  $analyticsProvider.api.setCustomVariable = function (varIndex, varName, value, scope = 'page') {\n    push('setCustomVariable', varIndex, varName, value, scope);\n  };\n\n  // scope: visit or page. Defaults to 'page'\n  $analyticsProvider.api.deleteCustomVariable = function (varIndex, scope = 'page') {\n    push('deleteCustomVariable', varIndex, scope);\n  };\n\n  // trackSiteSearch(keyword, category, [searchCount])\n  $analyticsProvider.api.trackSiteSearch = function (keyword, category, searchCount) {\n    // keyword is required\n    if (keyword) {\n      const params = ['trackSiteSearch', keyword, category || false];\n\n      // searchCount is optional\n      if (angular.isDefined(searchCount)) {\n        params.push(searchCount);\n      }\n\n      push(params);\n    }\n  };\n\n  // logs a conversion for goal 1. revenue is optional\n  // trackGoal(goalID, [revenue]);\n  $analyticsProvider.api.trackGoal = function (goalID, revenue) {\n    push('trackGoal', goalID, revenue || 0);\n  };\n\n  // track outlink or download\n  // linkType is 'link' or 'download', 'link' by default\n  // trackLink(url, [linkType]);\n  $analyticsProvider.api.trackLink = function (url, linkType) {\n    const type = linkType || 'link';\n    push('trackLink', url, type);\n  };\n\n  // Set default angulartics page and event tracking\n\n  $analyticsProvider.registerSetUsername(function (username) {\n    push('setUserId', username);\n  });\n\n  // locationObj is the angular $location object\n  $analyticsProvider.registerPageTrack(function (path) {\n    if (excludedPaths.includes(path)) {\n      return;\n    }\n\n    push('setDocumentTitle', $window.document.title);\n    push('setReferrerUrl', '');\n    push('setCustomUrl', basePath + path);\n    push('trackPageView');\n    push('enableLinkTracking');\n  });\n\n  /**\n   * @name eventTrack\n   * Track a basic event in Piwik, or send an ecommerce event.\n   *\n   * @param {string} action A string corresponding to the type of event that needs to be tracked.\n   * @param {object} properties The properties that need to be logged with the event.\n   */\n  $analyticsProvider.registerEventTrack(trackEvent);\n\n  /**\n   * @name exceptionTrack\n   * Sugar on top of the eventTrack method for easily handling errors\n   *\n   * @param {object} error An Error object to track: error.toString() used for event 'action', error.stack used for event 'label'.\n   * @param {object} cause The cause of the error given from $exceptionHandler, not used.\n   */\n  $analyticsProvider.registerExceptionTrack(function (error) {\n    push('trackEvent', 'Exceptions', error.toString(), error.stack, 0);\n  });\n}\n","import $ from 'jquery';\n\n/* @ngInject */\nexport function onStartupAngular($rootScope, $state, cfpLoadingBar, $transitions, HttpRequestHelper) {\n  $rootScope.$state = $state;\n\n  // Workaround to prevent the loading bar from going backward\n  // https://github.com/chieffancypants/angular-loading-bar/issues/273\n  const originalSet = cfpLoadingBar.set;\n  cfpLoadingBar.set = function overrideSet(n) {\n    if (n > cfpLoadingBar.status()) {\n      originalSet.apply(cfpLoadingBar, arguments);\n    }\n  };\n\n  $transitions.onBefore({}, () => {\n    HttpRequestHelper.resetAgentHeaders();\n  });\n\n  // EE-6751: screens not loading  when switching quickly between side menu options\n  // Known bug of @uirouter/angularjs\n  // Fix found at https://github.com/angular-ui/ui-router/issues/3652#issuecomment-574499009\n  // This hook is cleaning the internal viewConfigs list, removing leftover data unrelated to the current transition\n  $transitions.onStart({}, (transition) => {\n    const toList = transition.treeChanges().to.map((t) => t.state.name);\n    const toConfigs = transition.router.viewService._viewConfigs.filter((vc) => toList.includes(vc.viewDecl.$context.name));\n    transition.router.viewService._viewConfigs = toConfigs;\n  });\n\n  $(document).ajaxSend((event, jqXhr, jqOpts) => {\n    const type = jqOpts.type === 'POST' || jqOpts.type === 'PUT' || jqOpts.type === 'PATCH';\n    const hasNoContentType = jqOpts.contentType !== 'application/json' && jqOpts.headers && !jqOpts.headers['Content-Type'];\n    if (type && hasNoContentType) {\n      jqXhr.setRequestHeader('Content-Type', 'application/json');\n    }\n    const csrfCookie = window.cookieStore.get('_gorilla_csrf');\n    jqXhr.setRequestHeader('X-CSRF-Token', csrfCookie);\n  });\n}\n","import colors from './colors.json';\n\nconst element = document.createElement('style');\n\nelement.innerHTML = `:root {\n  ${Object.entries(colors)\n    .map(([color, hex]) => {\n      if (typeof hex === 'string') {\n        return `--ui-${color}: ${hex}`;\n      }\n\n      return Object.entries(hex)\n        .map(([key, value]) => `--ui-${color}-${key}: ${value}`)\n        .join(';\\n');\n    })\n    .join(';\\n')}\n}`;\n\ndocument.head.prepend(element);\n","import { AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { CacheAxiosResponse } from 'axios-cache-interceptor';\nimport { IHttpResponse } from 'angular';\n\nimport axios from './axios';\n\naxios.interceptors.response.use(csrfTokenReaderInterceptor);\naxios.interceptors.request.use(csrfInterceptor);\n\nlet csrfToken: string | null = null;\n\nexport function csrfTokenReaderInterceptor(\n  config: CacheAxiosResponse | AxiosResponse\n) {\n  const csrfTokenHeader = config.headers['x-csrf-token'];\n  if (csrfTokenHeader) {\n    csrfToken = csrfTokenHeader;\n  }\n  return config;\n}\n\nexport function csrfTokenReaderInterceptorAngular(\n  config: IHttpResponse<unknown>\n) {\n  const csrfTokenHeader = config.headers('x-csrf-token');\n  if (csrfTokenHeader) {\n    csrfToken = csrfTokenHeader;\n  }\n  return config;\n}\n\nexport function csrfInterceptor(config: InternalAxiosRequestConfig) {\n  if (!csrfToken) {\n    return config;\n  }\n\n  const newConfig = { ...config };\n  newConfig.headers['X-CSRF-Token'] = csrfToken;\n  return newConfig;\n}\n","import { Terminal } from 'xterm';\nimport * as fit from 'xterm/lib/addons/fit/fit';\nimport { csrfInterceptor, csrfTokenReaderInterceptorAngular } from './portainer/services/csrf';\nimport { agentInterceptor } from './portainer/services/axios';\nimport { dispatchCacheRefreshEventIfNeeded } from './portainer/services/http-request.helper';\n\n/* @ngInject */\nexport function configApp($urlRouterProvider, $httpProvider, localStorageServiceProvider, $uibTooltipProvider, $compileProvider, cfpLoadingBarProvider) {\n  if (process.env.NODE_ENV === 'testing') {\n    $compileProvider.debugInfoEnabled(false);\n  }\n\n  // ask to clear cache on mutation\n  $httpProvider.interceptors.push(() => ({\n    request: (reqConfig) => {\n      dispatchCacheRefreshEventIfNeeded(reqConfig);\n      return reqConfig;\n    },\n  }));\n\n  localStorageServiceProvider.setPrefix('portainer');\n\n  $httpProvider.defaults.headers.post['Content-Type'] = 'application/json';\n  $httpProvider.defaults.headers.put['Content-Type'] = 'application/json';\n  $httpProvider.defaults.headers.patch['Content-Type'] = 'application/json';\n\n  $httpProvider.interceptors.push(() => ({\n    request: agentInterceptor,\n  }));\n\n  $httpProvider.interceptors.push(() => ({\n    response: csrfTokenReaderInterceptorAngular,\n    request: csrfInterceptor,\n  }));\n\n  Terminal.applyAddon(fit);\n\n  $uibTooltipProvider.setTriggers({\n    mouseenter: 'mouseleave',\n    click: 'click',\n    focus: 'blur',\n    outsideClick: 'outsideClick',\n  });\n\n  cfpLoadingBarProvider.includeSpinner = false;\n  cfpLoadingBarProvider.parentSelector = '#loadingbar-placeholder';\n  cfpLoadingBarProvider.latencyThreshold = 600;\n\n  $urlRouterProvider.otherwise('/auth');\n}\n","import {\n  refreshableSettings,\n  hiddenColumnsSettings,\n  createPersistedStore,\n} from '@@/datatables/types';\n\nimport { QuickAction, TableSettings } from './types';\n\nexport const TRUNCATE_LENGTH = 32;\n\nexport function createStore(storageKey: string) {\n  return createPersistedStore<TableSettings>(storageKey, 'name', (set) => ({\n    ...hiddenColumnsSettings(set),\n    ...refreshableSettings(set),\n    truncateContainerName: TRUNCATE_LENGTH,\n    setTruncateContainerName(truncateContainerName: number) {\n      set({\n        truncateContainerName,\n      });\n    },\n\n    hiddenQuickActions: [] as QuickAction[],\n    setHiddenQuickActions: (hiddenQuickActions: QuickAction[]) =>\n      set({ hiddenQuickActions }),\n  }));\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DockerContainer } from '../../../types';\n\nexport const columnHelper = createColumnHelper<DockerContainer>();\n","import { isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor(\n  (row) => isoDateFromTimestamp(row.Created),\n  {\n    header: 'Created',\n    id: 'created',\n    cell: ({ row }) => isoDateFromTimestamp(row.original.Created),\n  }\n);\n","import { columnHelper } from './helper';\n\nexport const host = columnHelper.accessor((row) => row.NodeName || '-', {\n  header: 'Host',\n  id: 'host',\n});\n","import { CellContext } from '@tanstack/react-table';\nimport { useSref } from '@uirouter/react';\n\nimport type { DockerContainer } from '@/react/docker/containers/types';\n\nimport { columnHelper } from './helper';\n\nexport const image = columnHelper.accessor('Image', {\n  header: 'Image',\n  id: 'image',\n  cell: ImageCell,\n});\n\nfunction ImageCell({ getValue }: CellContext<DockerContainer, string>) {\n  const imageName = getValue();\n  const linkProps = useSref('docker.images.image', { id: imageName });\n  const shortImageName = trimSHASum(imageName);\n\n  return (\n    <a href={linkProps.href} onClick={linkProps.onClick}>\n      {shortImageName}\n    </a>\n  );\n\n  function trimSHASum(imageName: string) {\n    if (!imageName) {\n      return '';\n    }\n\n    if (imageName.indexOf('sha256:') === 0) {\n      return imageName.substring(7, 19);\n    }\n\n    return imageName.split('@sha256')[0];\n  }\n}\n","import { columnHelper } from './helper';\n\nexport const ip = columnHelper.accessor((row) => row.IP || '-', {\n  header: 'IP Address',\n  id: 'ip',\n});\n","import { Context, createContext, ReactNode, useContext } from 'react';\nimport { StoreApi, useStore } from 'zustand';\n\nconst TableSettingsContext = createContext<StoreApi<object> | null>(null);\nTableSettingsContext.displayName = 'TableSettingsContext';\n\nexport function useTableSettings<T extends object>() {\n  const Context = getContextType<T>();\n\n  const context = useContext(Context);\n  if (context === null) {\n    throw new Error('must be nested under TableSettingsProvider');\n  }\n\n  return useStore(context);\n}\n\ninterface ProviderProps<T extends object> {\n  children: ReactNode;\n  settings: StoreApi<T>;\n}\n\nexport function TableSettingsProvider<T extends object>({\n  children,\n  settings,\n}: ProviderProps<T>) {\n  const Context = getContextType<T>();\n\n  return <Context.Provider value={settings}>{children}</Context.Provider>;\n}\n\nfunction getContextType<T extends object>() {\n  return TableSettingsContext as unknown as Context<StoreApi<T>>;\n}\n","import { CellContext } from '@tanstack/react-table';\nimport _ from 'lodash';\nimport { useSref } from '@uirouter/react';\n\nimport type { DockerContainer } from '@/react/docker/containers/types';\n\nimport { useTableSettings } from '@@/datatables/useTableSettings';\n\nimport { TableSettings } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor((row) => row.Names[0], {\n  header: 'Name',\n  id: 'name',\n  cell: NameCell,\n});\n\nexport function NameCell({\n  getValue,\n  row: { original: container },\n}: CellContext<DockerContainer, string>) {\n  const name = getValue();\n\n  const linkProps = useSref('.container', {\n    id: container.Id,\n    nodeName: container.NodeName,\n  });\n\n  const settings = useTableSettings<TableSettings>();\n  const truncate = settings.truncateContainerName;\n\n  let shortName = name;\n  if (truncate > 0) {\n    shortName = _.truncate(name, { length: truncate });\n  }\n\n  return (\n    <a href={linkProps.href} onClick={linkProps.onClick} title={name}>\n      {shortName}\n    </a>\n  );\n}\n","import { ExternalLink } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\ntype Props = {\n  hostURL?: string;\n  hostPort?: string | number;\n  containerPort?: string | number;\n};\n\nexport function PublishedPortLink({ hostURL, hostPort, containerPort }: Props) {\n  return (\n    <a\n      className=\"image-tag\"\n      href={generateContainerURL(hostURL, hostPort, containerPort)}\n      target=\"_blank\"\n      rel=\"noreferrer\"\n    >\n      <Icon icon={ExternalLink} />\n      {hostPort}:{containerPort}\n    </a>\n  );\n}\n\nfunction generateContainerURL(\n  hostURL?: string,\n  hostPort?: string | number,\n  containerPort?: string | number\n) {\n  const url = stripTrailingSlash(hostURL?.toLowerCase());\n\n  if (!url.startsWith('http://') && !url.startsWith('https://')) {\n    if (String(containerPort).endsWith('443')) {\n      return `https://${url}:${hostPort}`;\n    }\n\n    return `http://${url}:${hostPort}`;\n  }\n\n  return `${url}:${hostPort}`;\n}\n\nfunction stripTrailingSlash(url?: string) {\n  if (!url) {\n    return '';\n  }\n  return url.endsWith('/') ? url.slice(0, -1) : url;\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { createRowContext } from '@@/datatables/RowContext';\n\ninterface RowContextState {\n  environment: Environment;\n}\n\nconst { RowProvider, useRowContext } = createRowContext<RowContextState>();\n\nexport { RowProvider, useRowContext };\n","import _ from 'lodash';\nimport { CellContext } from '@tanstack/react-table';\n\nimport type { DockerContainer } from '@/react/docker/containers/types';\nimport { PublishedPortLink } from '@/react/docker/components/ImageStatus/PublishedPortLink';\n\nimport { useRowContext } from '../RowContext';\n\nimport { columnHelper } from './helper';\n\nexport const ports = columnHelper.accessor(\n  (row) =>\n    _.uniqBy(row.Ports, 'public')\n      .map((port) => `${port.public}:${port.private}`)\n      .join(','),\n  {\n    header: 'Published Ports',\n    id: 'ports',\n    cell: Cell,\n  }\n);\n\nfunction Cell({ row }: CellContext<DockerContainer, string>) {\n  const ports = row.original.Ports;\n\n  const { environment } = useRowContext();\n\n  if (ports.length === 0) {\n    return '-';\n  }\n\n  return _.uniqBy(ports, 'public').map((port) => (\n    <PublishedPortLink\n      key={`${port.host}:${port.public}`}\n      hostPort={port.public}\n      containerPort={port.private}\n      hostURL={environment.PublicURL || port.host}\n    />\n  ));\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-docker-containers-components-ContainerQuickActions-ContainerQuickActions-module__root\"};","import clsx from 'clsx';\nimport { BarChart, FileText, Info, Paperclip, Terminal } from 'lucide-react';\n\nimport { ContainerStatus } from '@/react/docker/containers/types';\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\nimport styles from './ContainerQuickActions.module.css';\n\nexport interface QuickActionsState {\n  showQuickActionAttach: boolean;\n  showQuickActionExec: boolean;\n  showQuickActionInspect: boolean;\n  showQuickActionLogs: boolean;\n  showQuickActionStats: boolean;\n}\n\nexport function ContainerQuickActions({\n  status,\n  containerId,\n  nodeName,\n  state,\n}: {\n  containerId: string;\n  nodeName: string;\n  status: ContainerStatus;\n  state: QuickActionsState;\n}) {\n  const isActive =\n    !!status &&\n    [\n      ContainerStatus.Starting,\n      ContainerStatus.Running,\n      ContainerStatus.Healthy,\n      ContainerStatus.Unhealthy,\n    ].includes(status);\n\n  return (\n    <div className={clsx('space-x-1', styles.root)}>\n      {state.showQuickActionLogs && (\n        <Authorized authorizations=\"DockerContainerLogs\">\n          <Link\n            to=\"docker.containers.container.logs\"\n            params={{ id: containerId, nodeName }}\n            title=\"Logs\"\n          >\n            <Icon icon={FileText} className=\"space-right\" />\n          </Link>\n        </Authorized>\n      )}\n\n      {state.showQuickActionInspect && (\n        <Authorized authorizations=\"DockerContainerInspect\">\n          <Link\n            to=\"docker.containers.container.inspect\"\n            params={{ id: containerId, nodeName }}\n            title=\"Inspect\"\n          >\n            <Icon icon={Info} className=\"space-right\" />\n          </Link>\n        </Authorized>\n      )}\n\n      {state.showQuickActionStats && isActive && (\n        <Authorized authorizations=\"DockerContainerStats\">\n          <Link\n            to=\"docker.containers.container.stats\"\n            params={{ id: containerId, nodeName }}\n            title=\"Stats\"\n          >\n            <Icon icon={BarChart} className=\"space-right\" />\n          </Link>\n        </Authorized>\n      )}\n\n      {state.showQuickActionExec && isActive && (\n        <Authorized authorizations=\"DockerExecStart\">\n          <Link\n            to=\"docker.containers.container.exec\"\n            params={{ id: containerId, nodeName }}\n            title=\"Exec Console\"\n          >\n            <Icon icon={Terminal} className=\"space-right\" />\n          </Link>\n        </Authorized>\n      )}\n\n      {state.showQuickActionAttach && isActive && (\n        <Authorized authorizations=\"DockerContainerAttach\">\n          <Link\n            to=\"docker.containers.container.attach\"\n            params={{ id: containerId, nodeName }}\n            title=\"Attach Console\"\n          >\n            <Icon icon={Paperclip} className=\"space-right\" />\n          </Link>\n        </Authorized>\n      )}\n    </div>\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { useAuthorizations } from '@/react/hooks/useUser';\nimport { ContainerQuickActions } from '@/react/docker/containers/components/ContainerQuickActions';\nimport { DockerContainer } from '@/react/docker/containers/types';\n\nimport { useTableSettings } from '@@/datatables/useTableSettings';\n\nimport { TableSettings } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const quickActions = columnHelper.display({\n  header: 'Quick Actions',\n  id: 'actions',\n  cell: QuickActionsCell,\n});\n\nfunction QuickActionsCell({\n  row: { original: container },\n}: CellContext<DockerContainer, unknown>) {\n  const settings = useTableSettings<TableSettings>();\n\n  const { hiddenQuickActions = [] } = settings;\n\n  const wrapperState = {\n    showQuickActionAttach: !hiddenQuickActions.includes('attach'),\n    showQuickActionExec: !hiddenQuickActions.includes('exec'),\n    showQuickActionInspect: !hiddenQuickActions.includes('inspect'),\n    showQuickActionLogs: !hiddenQuickActions.includes('logs'),\n    showQuickActionStats: !hiddenQuickActions.includes('stats'),\n  };\n\n  const someOn =\n    wrapperState.showQuickActionAttach ||\n    wrapperState.showQuickActionExec ||\n    wrapperState.showQuickActionInspect ||\n    wrapperState.showQuickActionLogs ||\n    wrapperState.showQuickActionStats;\n\n  const { authorized } = useAuthorizations([\n    'DockerContainerStats',\n    'DockerContainerLogs',\n    'DockerExecStart',\n    'DockerContainerInspect',\n    'DockerTaskInspect',\n    'DockerTaskLogs',\n  ]);\n\n  if (!someOn || !authorized) {\n    return null;\n  }\n\n  return (\n    <ContainerQuickActions\n      containerId={container.Id}\n      nodeName={container.NodeName}\n      status={container.Status}\n      state={wrapperState}\n    />\n  );\n}\n","import { columnHelper } from './helper';\n\nexport const stack = columnHelper.accessor((row) => row.StackName || '-', {\n  header: 'Stack',\n  id: 'stack',\n});\n","import { Row } from '@tanstack/react-table';\n\nimport { DefaultType } from './types';\n\nexport function multiple<D extends DefaultType = DefaultType>(\n  { getValue }: Row<D>,\n  columnId: string,\n  filterValue: string[]\n): boolean {\n  if (filterValue.length === 0) {\n    return true;\n  }\n\n  const value = getValue(columnId) as string;\n\n  return filterValue.includes(value);\n}\n","import clsx from 'clsx';\nimport { CellContext } from '@tanstack/react-table';\n\nimport {\n  type DockerContainer,\n  ContainerStatus,\n} from '@/react/docker/containers/types';\n\nimport { filterHOC } from '@@/datatables/Filter';\nimport { multiple } from '@@/datatables/filter-types';\n\nimport { columnHelper } from './helper';\n\nexport const state = columnHelper.accessor('Status', {\n  header: 'State',\n  id: 'state',\n  cell: StatusCell,\n  enableColumnFilter: true,\n  filterFn: multiple,\n  meta: {\n    filter: filterHOC('Filter by state'),\n  },\n});\n\nfunction StatusCell({\n  getValue,\n  row: { original: container },\n}: CellContext<DockerContainer, ContainerStatus>) {\n  const status = getValue();\n\n  const hasHealthCheck = [\n    ContainerStatus.Starting,\n    ContainerStatus.Healthy,\n    ContainerStatus.Unhealthy,\n  ].includes(status);\n\n  const statusClassName = getClassName();\n\n  let transformedStatus: ContainerStatus | string = status;\n  if (transformedStatus === ContainerStatus.Exited) {\n    transformedStatus = `${transformedStatus} - code ${extractExitCode(\n      container.StatusText\n    )}`;\n  }\n\n  return (\n    <span\n      className={clsx('label', `label-${statusClassName}`, {\n        interactive: hasHealthCheck,\n      })}\n      title={hasHealthCheck ? 'This container has a health check' : ''}\n    >\n      {transformedStatus}\n    </span>\n  );\n\n  function getClassName() {\n    switch (status) {\n      case ContainerStatus.Paused:\n      case ContainerStatus.Starting:\n      case ContainerStatus.Unhealthy:\n        return 'warning';\n      case ContainerStatus.Created:\n        return 'info';\n      case ContainerStatus.Stopped:\n      case ContainerStatus.Dead:\n      case ContainerStatus.Exited:\n        return 'danger';\n      case ContainerStatus.Healthy:\n      case ContainerStatus.Running:\n      default:\n        return 'success';\n    }\n  }\n\n  function extractExitCode(statusText: string) {\n    const regex = /\\((\\d+)\\)/;\n    const match = statusText.match(regex);\n    return match ? match[1] : '';\n  }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport const queryKeys = {\n  root: (environmentId: EnvironmentId) => ['docker', environmentId] as const,\n  snapshot: (environmentId: EnvironmentId) =>\n    [...queryKeys.root(environmentId), 'snapshot'] as const,\n  snapshotQuery: (environmentId: EnvironmentId) =>\n    [...queryKeys.snapshot(environmentId)] as const,\n  plugins: (environmentId: EnvironmentId) =>\n    [...queryKeys.root(environmentId), 'plugins'] as const,\n};\n\nexport function buildDockerUrl(environmentId: EnvironmentId) {\n  return `/docker/${environmentId}`;\n}\n\nexport function buildDockerSnapshotUrl(environmentId: EnvironmentId) {\n  return `${buildDockerUrl(environmentId)}/snapshot`;\n}\n","import { DockerContainer } from '@/react/docker/containers/types';\nimport { EdgeStack } from '@/react/edge/edge-stacks/types';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildDockerSnapshotUrl, queryKeys as rootQueryKeys } from './root';\n\nexport interface ContainersQueryParams {\n  edgeStackId?: EdgeStack['Id'];\n}\n\nexport const queryKeys = {\n  ...rootQueryKeys,\n  containers: (environmentId: EnvironmentId) =>\n    [...queryKeys.snapshot(environmentId), 'containers'] as const,\n  containersQuery: (\n    environmentId: EnvironmentId,\n    params: ContainersQueryParams\n  ) => [...queryKeys.containers(environmentId), params] as const,\n  container: (\n    environmentId: EnvironmentId,\n    containerId: DockerContainer['Id']\n  ) => [...queryKeys.containers(environmentId), containerId] as const,\n};\n\nexport function buildDockerSnapshotContainersUrl(\n  environmentId: EnvironmentId,\n  containerId?: DockerContainer['Id']\n) {\n  let url = `${buildDockerSnapshotUrl(environmentId)}/containers`;\n\n  if (containerId) {\n    url += `/${containerId}`;\n  }\n\n  return url;\n}\n","import { queryKeys as containerQueryKeys } from './container';\nimport { queryKeys as rootQueryKeys } from './root';\n\nexport const queryKeys = {\n  ...rootQueryKeys,\n  ...containerQueryKeys,\n};\n\nexport {\n  buildDockerSnapshotContainersUrl,\n  type ContainersQueryParams,\n} from './container';\n\nexport { buildDockerSnapshotUrl } from './root';\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys as dockerQueryKeys } from '../../queries/utils';\n\nimport { Filters } from './types';\n\nexport const queryKeys = {\n  list: (environmentId: EnvironmentId) =>\n    [...dockerQueryKeys.root(environmentId), 'containers'] as const,\n\n  filters: (\n    environmentId: EnvironmentId,\n    params: { all?: boolean; filters?: Filters; nodeName?: string } = {}\n  ) => [...queryKeys.list(environmentId), params] as const,\n\n  container: (environmentId: EnvironmentId, id: string) =>\n    [...queryKeys.list(environmentId), id] as const,\n\n  gpus: (environmentId: EnvironmentId, id: string) =>\n    [...queryKeys.container(environmentId, id), 'gpus'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { queryKeys } from './query-keys';\n\nasync function getContainerGpus(\n  environmentId: EnvironmentId,\n  containerId: string\n) {\n  try {\n    const { data } = await axios.get<{ gpus: string }>(\n      `/docker/${environmentId}/containers/${containerId}/gpus`\n    );\n    return data.gpus;\n  } catch (err) {\n    throw parseAxiosError(err as Error);\n  }\n}\n\nexport function useContainerGpus(\n  environmentId: EnvironmentId,\n  containerId: string\n) {\n  return useQuery(queryKeys.gpus(environmentId, containerId), () =>\n    getContainerGpus(environmentId, containerId)\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport type { DockerContainer } from '@/react/docker/containers/types';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useContainerGpus } from '@/react/docker/containers/queries/gpus';\n\nimport { columnHelper } from './helper';\n\nexport const gpus = columnHelper.display({\n  header: 'GPUs',\n  id: 'gpus',\n  cell: GpusCell,\n});\n\nfunction GpusCell({\n  row: { original: container },\n}: CellContext<DockerContainer, unknown>) {\n  const containerId = container.Id;\n  const environmentId = useEnvironmentId();\n  const gpusQuery = useContainerGpus(environmentId, containerId);\n\n  if (!gpusQuery.data) {\n    return null;\n  }\n\n  return <>{gpusQuery.data}</>;\n}\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { createOwnershipColumn } from '@/react/docker/components/datatable/createOwnershipColumn';\nimport { DockerContainer } from '@/react/docker/containers/types';\n\nimport { created } from './created';\nimport { host } from './host';\nimport { image } from './image';\nimport { ip } from './ip';\nimport { name } from './name';\nimport { ports } from './ports';\nimport { quickActions } from './quick-actions';\nimport { stack } from './stack';\nimport { state } from './state';\nimport { gpus } from './gpus';\n\nexport function useColumns(\n  isHostColumnVisible: boolean,\n  isGPUsColumnVisible: boolean | undefined\n) {\n  return useMemo(\n    () =>\n      _.compact([\n        name,\n        state,\n        quickActions,\n        stack,\n        image,\n        created,\n        ip,\n        isHostColumnVisible && host,\n        isGPUsColumnVisible && gpus,\n        ports,\n        createOwnershipColumn<DockerContainer>(),\n      ]),\n    [isHostColumnVisible, isGPUsColumnVisible]\n  );\n}\n","import { useRouter } from '@uirouter/react';\nimport {\n  Pause,\n  Play,\n  Plus,\n  RefreshCw,\n  Slash,\n  Square,\n  Trash2,\n} from 'lucide-react';\n\nimport * as notifications from '@/portainer/services/notifications';\nimport { useAuthorizations, Authorized } from '@/react/hooks/useUser';\nimport { confirmContainerDeletion } from '@/react/docker/containers/common/confirm-container-delete-modal';\nimport { setPortainerAgentTargetHeader } from '@/portainer/services/http-request.helper';\nimport {\n  ContainerId,\n  ContainerStatus,\n  DockerContainer,\n} from '@/react/docker/containers/types';\nimport {\n  killContainer,\n  pauseContainer,\n  removeContainer,\n  restartContainer,\n  resumeContainer,\n  startContainer,\n  stopContainer,\n} from '@/react/docker/containers/containers.service';\nimport type { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Link } from '@@/Link';\nimport { ButtonGroup, Button } from '@@/buttons';\n\ntype ContainerServiceAction = (\n  endpointId: EnvironmentId,\n  containerId: ContainerId\n) => Promise<void>;\n\ninterface Props {\n  selectedItems: DockerContainer[];\n  isAddActionVisible: boolean;\n  endpointId: EnvironmentId;\n}\n\nexport function ContainersDatatableActions({\n  selectedItems,\n  isAddActionVisible,\n  endpointId,\n}: Props) {\n  const selectedItemCount = selectedItems.length;\n  const hasPausedItemsSelected = selectedItems.some(\n    (item) => item.State === ContainerStatus.Paused\n  );\n  const hasStoppedItemsSelected = selectedItems.some((item) =>\n    [\n      ContainerStatus.Stopped,\n      ContainerStatus.Created,\n      ContainerStatus.Exited,\n    ].includes(item.Status)\n  );\n  const hasRunningItemsSelected = selectedItems.some((item) =>\n    [\n      ContainerStatus.Running,\n      ContainerStatus.Healthy,\n      ContainerStatus.Unhealthy,\n      ContainerStatus.Starting,\n    ].includes(item.Status)\n  );\n\n  const { authorized } = useAuthorizations([\n    'DockerContainerStart',\n    'DockerContainerStop',\n    'DockerContainerKill',\n    'DockerContainerRestart',\n    'DockerContainerPause',\n    'DockerContainerUnpause',\n    'DockerContainerDelete',\n    'DockerContainerCreate',\n  ]);\n\n  const router = useRouter();\n\n  if (!authorized) {\n    return null;\n  }\n\n  return (\n    <div className=\"flex gap-2\">\n      <ButtonGroup>\n        <Authorized authorizations=\"DockerContainerStart\">\n          <Button\n            color=\"light\"\n            onClick={() => onStartClick(selectedItems)}\n            disabled={selectedItemCount === 0 || !hasStoppedItemsSelected}\n            icon={Play}\n          >\n            Start\n          </Button>\n        </Authorized>\n\n        <Authorized authorizations=\"DockerContainerStop\">\n          <Button\n            color=\"light\"\n            onClick={() => onStopClick(selectedItems)}\n            disabled={selectedItemCount === 0 || !hasRunningItemsSelected}\n            icon={Square}\n          >\n            Stop\n          </Button>\n        </Authorized>\n\n        <Authorized authorizations=\"DockerContainerKill\">\n          <Button\n            color=\"light\"\n            onClick={() => onKillClick(selectedItems)}\n            disabled={selectedItemCount === 0 || hasStoppedItemsSelected}\n            icon={Slash}\n          >\n            Kill\n          </Button>\n        </Authorized>\n\n        <Authorized authorizations=\"DockerContainerRestart\">\n          <Button\n            color=\"light\"\n            onClick={() => onRestartClick(selectedItems)}\n            disabled={selectedItemCount === 0}\n            icon={RefreshCw}\n          >\n            Restart\n          </Button>\n        </Authorized>\n\n        <Authorized authorizations=\"DockerContainerPause\">\n          <Button\n            color=\"light\"\n            onClick={() => onPauseClick(selectedItems)}\n            disabled={selectedItemCount === 0 || !hasRunningItemsSelected}\n            icon={Pause}\n          >\n            Pause\n          </Button>\n        </Authorized>\n\n        <Authorized authorizations=\"DockerContainerUnpause\">\n          <Button\n            color=\"light\"\n            onClick={() => onResumeClick(selectedItems)}\n            disabled={selectedItemCount === 0 || !hasPausedItemsSelected}\n            icon={Play}\n          >\n            Resume\n          </Button>\n        </Authorized>\n\n        <Authorized authorizations=\"DockerContainerDelete\">\n          <Button\n            color=\"dangerlight\"\n            onClick={() => onRemoveClick(selectedItems)}\n            disabled={selectedItemCount === 0}\n            icon={Trash2}\n          >\n            Remove\n          </Button>\n        </Authorized>\n      </ButtonGroup>\n      {isAddActionVisible && (\n        <Authorized authorizations=\"DockerContainerCreate\">\n          <Link to=\"docker.containers.new\" className=\"space-left\">\n            <Button icon={Plus}>Add container</Button>\n          </Link>\n        </Authorized>\n      )}\n    </div>\n  );\n\n  function onStartClick(selectedItems: DockerContainer[]) {\n    const successMessage = 'Container successfully started';\n    const errorMessage = 'Unable to start container';\n    executeActionOnContainerList(\n      selectedItems,\n      startContainer,\n      successMessage,\n      errorMessage\n    );\n  }\n\n  function onStopClick(selectedItems: DockerContainer[]) {\n    const successMessage = 'Container successfully stopped';\n    const errorMessage = 'Unable to stop container';\n    executeActionOnContainerList(\n      selectedItems,\n      stopContainer,\n      successMessage,\n      errorMessage\n    );\n  }\n\n  function onRestartClick(selectedItems: DockerContainer[]) {\n    const successMessage = 'Container successfully restarted';\n    const errorMessage = 'Unable to restart container';\n    executeActionOnContainerList(\n      selectedItems,\n      restartContainer,\n      successMessage,\n      errorMessage\n    );\n  }\n\n  function onKillClick(selectedItems: DockerContainer[]) {\n    const successMessage = 'Container successfully killed';\n    const errorMessage = 'Unable to kill container';\n    executeActionOnContainerList(\n      selectedItems,\n      killContainer,\n      successMessage,\n      errorMessage\n    );\n  }\n\n  function onPauseClick(selectedItems: DockerContainer[]) {\n    const successMessage = 'Container successfully paused';\n    const errorMessage = 'Unable to pause container';\n    executeActionOnContainerList(\n      selectedItems,\n      pauseContainer,\n      successMessage,\n      errorMessage\n    );\n  }\n\n  function onResumeClick(selectedItems: DockerContainer[]) {\n    const successMessage = 'Container successfully resumed';\n    const errorMessage = 'Unable to resume container';\n    executeActionOnContainerList(\n      selectedItems,\n      resumeContainer,\n      successMessage,\n      errorMessage\n    );\n  }\n\n  async function onRemoveClick(selectedItems: DockerContainer[]) {\n    const isOneContainerRunning = selectedItems.some(\n      (container) => container.State === 'running'\n    );\n\n    const runningTitle = isOneContainerRunning ? 'running' : '';\n    const title = `You are about to remove one or more ${runningTitle} containers.`;\n\n    const result = await confirmContainerDeletion(title);\n    if (!result) {\n      return;\n    }\n    const { removeVolumes } = result;\n\n    removeSelectedContainers(selectedItems, removeVolumes);\n  }\n\n  async function executeActionOnContainerList(\n    containers: DockerContainer[],\n    action: ContainerServiceAction,\n    successMessage: string,\n    errorMessage: string\n  ) {\n    for (let i = 0; i < containers.length; i += 1) {\n      const container = containers[i];\n      try {\n        setPortainerAgentTargetHeader(container.NodeName);\n        await action(endpointId, container.Id);\n        notifications.success(successMessage, container.Names[0]);\n      } catch (err) {\n        notifications.error(\n          'Failure',\n          err as Error,\n          `${errorMessage}:${container.Names[0]}`\n        );\n      }\n    }\n\n    router.stateService.reload();\n  }\n\n  async function removeSelectedContainers(\n    containers: DockerContainer[],\n    removeVolumes: boolean\n  ) {\n    for (let i = 0; i < containers.length; i += 1) {\n      const container = containers[i];\n      try {\n        await removeContainer(endpointId, container.Id, {\n          removeVolumes,\n          nodeName: container.NodeName,\n        });\n        notifications.success(\n          'Container successfully removed',\n          container.Names[0]\n        );\n      } catch (err) {\n        notifications.error(\n          'Failure',\n          err as Error,\n          'Unable to remove container'\n        );\n      }\n    }\n\n    router.stateService.reload();\n  }\n}\n","import { Checkbox } from '@@/form-components/Checkbox';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\n\nimport { TableSettings } from './types';\nimport { TRUNCATE_LENGTH } from './datatable-store';\n\ninterface Props {\n  isRefreshVisible?: boolean;\n  settings: TableSettings;\n}\n\nexport function ContainersDatatableSettings({\n  isRefreshVisible,\n  settings,\n}: Props) {\n  return (\n    <>\n      <Checkbox\n        id=\"settings-container-truncate-nae\"\n        label=\"Truncate container name\"\n        checked={settings.truncateContainerName > 0}\n        onChange={() =>\n          settings.setTruncateContainerName(\n            settings.truncateContainerName > 0 ? 0 : TRUNCATE_LENGTH\n          )\n        }\n      />\n\n      {isRefreshVisible && (\n        <TableSettingsMenuAutoRefresh\n          value={settings.autoRefreshRate}\n          onChange={(value) => settings.setAutoRefreshRate(value)}\n        />\n      )}\n    </>\n  );\n}\n","import _ from 'lodash';\n\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useInfo } from '@/react/docker/proxy/queries/useInfo';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\n\nimport { DockerContainer, ContainerStatus } from './types';\nimport { DockerContainerResponse } from './types/response';\n\nexport function toListViewModel(\n  response: DockerContainerResponse\n): DockerContainer {\n  const resourceControl =\n    response.Portainer?.ResourceControl &&\n    new ResourceControlViewModel(response?.Portainer?.ResourceControl);\n  const nodeName = response.Portainer?.Agent?.NodeName || '';\n\n  const ip =\n    Object.values(response?.NetworkSettings?.Networks || {})[0]?.IPAddress ||\n    '';\n\n  const labels = response.Labels || {};\n  const stackName =\n    labels['com.docker.compose.project'] ||\n    labels['com.docker.stack.namespace'];\n\n  const status = createStatus(response.Status);\n\n  const ports = _.compact(\n    response.Ports?.map(\n      (p) =>\n        p.PublicPort && {\n          host: p.IP,\n          private: p.PrivatePort,\n          public: p.PublicPort,\n        }\n    )\n  );\n\n  const names = response.Names?.map((n) => {\n    const nameWithoutSlash = n[0] === '/' ? n.slice(1) : n;\n    return nameWithoutSlash;\n  });\n\n  return {\n    ...response,\n    ResourceControl: resourceControl,\n    Names: names,\n    NodeName: nodeName,\n    IP: ip,\n    StackName: stackName,\n    Status: status,\n    Ports: ports,\n    StatusText: response.Status,\n    Gpus: '',\n  };\n}\n\nfunction createStatus(statusText = ''): ContainerStatus {\n  const status = statusText.toLowerCase();\n\n  if (status.includes(ContainerStatus.Paused)) {\n    return ContainerStatus.Paused;\n  }\n\n  if (status.includes(ContainerStatus.Dead)) {\n    return ContainerStatus.Dead;\n  }\n\n  if (status.includes(ContainerStatus.Created)) {\n    return ContainerStatus.Created;\n  }\n\n  if (status.includes(ContainerStatus.Stopped)) {\n    return ContainerStatus.Stopped;\n  }\n\n  if (status.includes(ContainerStatus.Exited)) {\n    return ContainerStatus.Exited;\n  }\n\n  if (status.includes('(healthy)')) {\n    return ContainerStatus.Healthy;\n  }\n\n  if (status.includes('(unhealthy)')) {\n    return ContainerStatus.Unhealthy;\n  }\n\n  if (status.includes('(health: starting)')) {\n    return ContainerStatus.Starting;\n  }\n\n  return ContainerStatus.Running;\n}\n\nexport function useShowGPUsColumn(environmentID: EnvironmentId) {\n  const isDockerStandaloneQuery = useInfo(\n    environmentID,\n    (info) => !(!!info.Swarm?.NodeID && !!info.Swarm?.ControlAvailable) // is not a swarm environment, therefore docker standalone\n  );\n  const enableGPUManagementQuery = useEnvironment(\n    environmentID,\n    (env) => env?.EnableGPUManagement\n  );\n  return isDockerStandaloneQuery.data && enableGPUManagementQuery.data;\n}\n","import {\n  SettableQuickActionsTableSettings,\n  QuickAction,\n} from '@/react/docker/containers/ListView/ContainersDatatable/types';\n\nimport { Checkbox } from '@@/form-components/Checkbox';\n\nimport { useTableSettings } from './useTableSettings';\n\nexport interface Action {\n  id: QuickAction;\n  label: string;\n}\n\ninterface Props {\n  actions: Action[];\n}\n\nexport function QuickActionsSettings({ actions }: Props) {\n  const settings =\n    useTableSettings<SettableQuickActionsTableSettings<QuickAction>>();\n\n  return (\n    <>\n      {actions.map(({ id, label }) => (\n        <Checkbox\n          key={id}\n          label={label}\n          id={`quick-actions-${id}`}\n          checked={!settings.hiddenQuickActions.includes(id)}\n          onChange={(e) => toggleAction(id, e.target.checked)}\n        />\n      ))}\n    </>\n  );\n\n  function toggleAction(key: QuickAction, visible: boolean) {\n    if (!visible) {\n      settings.setHiddenQuickActions([...settings.hiddenQuickActions, key]);\n    } else {\n      settings.setHiddenQuickActions(\n        settings.hiddenQuickActions.filter((action) => action !== key)\n      );\n    }\n  }\n}\n\nexport function buildAction(id: QuickAction, label: string): Action {\n  return { id, label };\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, {\n  agentTargetHeader,\n  parseAxiosError,\n} from '@/portainer/services/axios';\nimport { withGlobalError } from '@/react-tools/react-query';\n\nimport { urlBuilder } from '../containers.service';\nimport { DockerContainerResponse } from '../types/response';\nimport { toListViewModel } from '../utils';\nimport { DockerContainer } from '../types';\n\nimport { Filters } from './types';\nimport { queryKeys } from './query-keys';\n\ninterface UseContainers {\n  all?: boolean;\n  filters?: Filters;\n  nodeName?: string;\n}\n\nexport function useContainers<T = DockerContainer[]>(\n  environmentId: EnvironmentId,\n  {\n    autoRefreshRate,\n    select,\n    enabled,\n    ...params\n  }: UseContainers & {\n    autoRefreshRate?: number;\n    select?: (data: DockerContainer[]) => T;\n    enabled?: boolean;\n  } = {}\n) {\n  return useQuery(\n    queryKeys.filters(environmentId, params),\n    () => getContainers(environmentId, params),\n    {\n      ...withGlobalError('Unable to retrieve containers'),\n      refetchInterval() {\n        return autoRefreshRate ?? false;\n      },\n      select,\n      enabled,\n    }\n  );\n}\n\nexport async function getContainers(\n  environmentId: EnvironmentId,\n  { all = true, filters, nodeName }: UseContainers = {}\n) {\n  try {\n    const { data } = await axios.get<DockerContainerResponse[]>(\n      urlBuilder(environmentId, undefined, 'json'),\n      {\n        params: { all, filters: filters && JSON.stringify(filters) },\n        headers: nodeName\n          ? {\n              [agentTargetHeader]: nodeName,\n            }\n          : undefined,\n      }\n    );\n    return data.map((c) => toListViewModel(c));\n  } catch (error) {\n    throw parseAxiosError(error as Error, 'Unable to retrieve containers');\n  }\n}\n","import { Box } from 'lucide-react';\n\nimport { DockerContainer } from '@/react/docker/containers/types';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { createStore } from '@/react/docker/containers/ListView/ContainersDatatable/datatable-store';\nimport { useColumns } from '@/react/docker/containers/ListView/ContainersDatatable/columns';\nimport { ContainersDatatableActions } from '@/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableActions';\nimport { ContainersDatatableSettings } from '@/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableSettings';\nimport { useShowGPUsColumn } from '@/react/docker/containers/utils';\n\nimport { Datatable, Table } from '@@/datatables';\nimport {\n  buildAction,\n  QuickActionsSettings,\n} from '@@/datatables/QuickActionsSettings';\nimport {\n  ColumnVisibilityMenu,\n  getColumnVisibilityState,\n} from '@@/datatables/ColumnVisibilityMenu';\nimport { TableSettingsProvider } from '@@/datatables/useTableSettings';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useContainers } from '../../../docker/containers/queries/containers';\nimport { RowProvider } from '../../../docker/containers/ListView/ContainersDatatable/RowContext';\n\nconst storageKey = 'stack-containers';\nconst settingsStore = createStore(storageKey);\n\nconst actions = [\n  buildAction('logs', 'Logs'),\n  buildAction('inspect', 'Inspect'),\n  buildAction('stats', 'Stats'),\n  buildAction('exec', 'Console'),\n  buildAction('attach', 'Attach'),\n];\n\nexport interface Props {\n  environment: Environment;\n  stackName: string;\n}\n\nexport function StackContainersDatatable({ environment, stackName }: Props) {\n  const tableState = useTableState(settingsStore, storageKey);\n\n  const isGPUsColumnVisible = useShowGPUsColumn(environment.Id);\n  const columns = useColumns(false, isGPUsColumnVisible);\n\n  const containersQuery = useContainers(environment.Id, {\n    filters: {\n      label: [`com.docker.compose.project=${stackName}`],\n    },\n    autoRefreshRate: tableState.autoRefreshRate * 1000,\n  });\n\n  return (\n    <RowProvider context={{ environment }}>\n      <TableSettingsProvider settings={settingsStore}>\n        <Datatable\n          title=\"Containers\"\n          titleIcon={Box}\n          settingsManager={tableState}\n          columns={columns}\n          renderTableActions={(selectedRows) => (\n            <ContainersDatatableActions\n              selectedItems={selectedRows}\n              isAddActionVisible={false}\n              endpointId={environment.Id}\n            />\n          )}\n          initialTableState={getColumnVisibilityState(tableState.hiddenColumns)}\n          renderTableSettings={(tableInstance) => (\n            <>\n              <ColumnVisibilityMenu<DockerContainer>\n                table={tableInstance}\n                onChange={(hiddenColumns) => {\n                  tableState.setHiddenColumns(hiddenColumns);\n                }}\n                value={tableState.hiddenColumns}\n              />\n              <Table.SettingsMenu\n                quickActions={<QuickActionsSettings actions={actions} />}\n              >\n                <ContainersDatatableSettings settings={tableState} />\n              </Table.SettingsMenu>\n            </>\n          )}\n          dataset={containersQuery.data || []}\n          isLoading={containersQuery.isLoading}\n          emptyContentLabel=\"No containers found\"\n        />\n      </TableSettingsProvider>\n    </RowProvider>\n  );\n}\n","import { ComponentProps } from 'react';\nimport { HeartPulse, Server } from 'lucide-react';\n\nimport { TableContainer, TableTitle } from '@@/datatables';\nimport { DetailsTable } from '@@/DetailsTable';\nimport { Icon } from '@@/Icon';\n\nimport { Health } from '../types/response';\n\nconst StatusMode: Record<\n  Health['Status'],\n  ComponentProps<typeof Icon>['mode']\n> = {\n  healthy: 'success',\n  unhealthy: 'danger',\n  starting: 'warning',\n};\n\ninterface Props {\n  health: Health;\n}\n\nexport function HealthStatus({ health }: Props) {\n  return (\n    <TableContainer>\n      <TableTitle label=\"Container health\" icon={Server} />\n\n      <DetailsTable>\n        <DetailsTable.Row label=\"Status\">\n          <div className=\"vertical-center\">\n            <Icon\n              icon={HeartPulse}\n              mode={StatusMode[health.Status]}\n              className=\"space-right\"\n            />\n            {health.Status}\n          </div>\n        </DetailsTable.Row>\n\n        <DetailsTable.Row label=\"Failure count\">\n          <div className=\"vertical-center\">{health.FailingStreak}</div>\n        </DetailsTable.Row>\n\n        <DetailsTable.Row label=\"Last output\">\n          {health.Log[health.Log.length - 1].Output}\n        </DetailsTable.Row>\n      </DetailsTable>\n    </TableContainer>\n  );\n}\n","import { array, object, string } from 'yup';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withControlledInput } from '@/react-tools/withControlledInput';\n\nimport { InputList } from '@@/form-components/InputList';\nimport { ItemProps } from '@@/form-components/InputList/InputList';\nimport { InputGroup } from '@@/form-components/InputGroup';\n\nexport interface Gpu {\n  value: string;\n  name: string;\n}\n\ninterface Props {\n  value: Gpu[];\n  onChange(value: Gpu[]): void;\n}\n\nfunction Item({ item, onChange }: ItemProps<Gpu>) {\n  return (\n    <div className=\"flex flex-grow gap-2\">\n      <InputGroup size=\"small\" className=\"flex-grow\">\n        <InputGroup.Addon>GPU Name</InputGroup.Addon>\n        <InputGroup.Input\n          placeholder=\"my-gpu\"\n          value={item.name}\n          onChange={(e) => {\n            onChange({ ...item, name: e.target.value });\n          }}\n        />\n      </InputGroup>\n\n      <InputGroup size=\"small\" className=\"flex-grow\">\n        <InputGroup.Addon>Index or UUID</InputGroup.Addon>\n        <InputGroup.Input\n          placeholder=\"0 or GPU-6e2c7185-c3d3-ae22-da43-bc5267b89061\"\n          value={item.value}\n          onChange={(e) => {\n            onChange({ ...item, value: e.target.value });\n          }}\n        />\n      </InputGroup>\n    </div>\n  );\n}\n\nexport function GpusList({ value, onChange }: Props) {\n  return (\n    <InputList<Gpu>\n      label=\"GPUs\"\n      tooltip=\"You may optionally set up the GPUs that will be selectable against containers, although 'All GPUs' will always be available.\"\n      value={value}\n      onChange={onChange}\n      itemBuilder={() => ({ value: '', name: '' })}\n      addLabel=\"Add GPU\"\n      item={Item}\n    />\n  );\n}\n\nexport function gpusListValidation() {\n  const gpuShape = object().shape({\n    name: string().required(),\n    value: string().required(),\n  });\n  return array().of(gpuShape).default([]);\n}\n\nexport const GpusListAngular = r2a(withControlledInput(GpusList), [\n  'value',\n  'onChange',\n]);\n","import { EnvironmentId } from '@/react/portainer/environments/types';\nimport { buildUrl as buildDockerUrl } from '@/react/docker/queries/utils/build-url';\nimport { buildUrl as buildDockerProxyUrl } from '@/react/docker/proxy/queries/build-url';\n\nexport function buildUrl(environmentId: EnvironmentId) {\n  return buildDockerUrl(environmentId, 'images');\n}\n\nexport function buildProxyUrl(\n  environmentId: EnvironmentId,\n  { id, action }: { id?: string; action?: string } = {}\n) {\n  let dockerAction = '';\n  if (id) {\n    dockerAction += `${id}`;\n  }\n\n  if (action) {\n    dockerAction = dockerAction ? `${dockerAction}/${action}` : action;\n  }\n\n  return buildDockerProxyUrl(environmentId, 'images', dockerAction);\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function buildUrl(environmentId: EnvironmentId, path: string) {\n  return `/docker/${environmentId}/${path}`;\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys as dockerQueryKeys } from '../../queries/utils';\n\nexport const queryKeys = {\n  base: (environmentId: EnvironmentId) =>\n    [dockerQueryKeys.root(environmentId), 'images'] as const,\n  list: (environmentId: EnvironmentId, options: { withUsage?: boolean } = {}) =>\n    [...queryKeys.base(environmentId), options] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './queryKeys';\n\nexport interface ImagesListResponse {\n  created: number;\n  nodeName?: string;\n  id: string;\n  size: number;\n  tags?: string[];\n\n  /**\n   * Used is true if the image is used by at least one container.\n   * supplied only when withUsage is true\n   */\n  used: boolean;\n}\n\nexport function useImages<T = Array<ImagesListResponse>>(\n  environmentId: EnvironmentId,\n  withUsage = false,\n  {\n    select,\n    enabled,\n    refetchInterval,\n  }: {\n    select?(data: Array<ImagesListResponse>): T;\n    enabled?: boolean;\n    refetchInterval?: number;\n  } = {}\n) {\n  return useQuery(\n    queryKeys.list(environmentId, { withUsage }),\n    () => getImages(environmentId, { withUsage }),\n    { select, enabled, refetchInterval }\n  );\n}\n\nasync function getImages(\n  environmentId: EnvironmentId,\n  { withUsage }: { withUsage?: boolean } = {}\n) {\n  try {\n    const { data } = await axios.get<Array<ImagesListResponse>>(\n      buildUrl(environmentId),\n      { params: { withUsage } }\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve images');\n  }\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { ImagesListResponse } from '@/react/docker/images/queries/useImages';\n\nexport const columnHelper = createColumnHelper<ImagesListResponse>();\n","import { isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor('created', {\n  id: 'created',\n  header: 'Created',\n  cell: ({ getValue }) => {\n    const value = getValue();\n    return isoDateFromTimestamp(value);\n  },\n});\n","import { CellContext, Column } from '@tanstack/react-table';\nimport { useSref } from '@uirouter/react';\n\nimport { truncate } from '@/portainer/filters/filters';\nimport { getValueAsArrayOfStrings } from '@/portainer/helpers/array';\nimport { ImagesListResponse } from '@/react/docker/images/queries/useImages';\n\nimport { MultipleSelectionFilter } from '@@/datatables/Filter';\n\nimport { columnHelper } from './helper';\n\nexport const id = columnHelper.accessor('id', {\n  id: 'id',\n  header: 'Id',\n  cell: Cell,\n  enableColumnFilter: true,\n  filterFn: (\n    { original: { used } },\n    columnId,\n    filterValue: Array<'Used' | 'Unused'>\n  ) => {\n    if (filterValue.length === 0) {\n      return true;\n    }\n\n    if (filterValue.includes('Used') && used) {\n      return true;\n    }\n\n    if (filterValue.includes('Unused') && !used) {\n      return true;\n    }\n\n    return false;\n  },\n  meta: {\n    filter: FilterByUsage,\n  },\n});\n\nfunction FilterByUsage<TData extends { Used: boolean }>({\n  column: { getFilterValue, setFilterValue, id },\n}: {\n  column: Column<TData>;\n}) {\n  const options = ['Used', 'Unused'];\n\n  const value = getFilterValue();\n\n  const valueAsArray = getValueAsArrayOfStrings(value);\n\n  return (\n    <MultipleSelectionFilter\n      options={options}\n      filterKey={id}\n      value={valueAsArray}\n      onChange={setFilterValue}\n      menuTitle=\"Filter by usage\"\n    />\n  );\n}\n\nfunction Cell({\n  getValue,\n  row: { original: image },\n}: CellContext<ImagesListResponse, string>) {\n  const name = getValue();\n\n  const linkProps = useSref('.image', {\n    id: image.id,\n    imageId: image.id,\n  });\n\n  return (\n    <>\n      <a href={linkProps.href} onClick={linkProps.onClick} title={name}>\n        {truncate(name, 40)}\n      </a>\n      {!image.used && (\n        <span className=\"label label-warning image-tag ml-2\">Unused</span>\n      )}\n    </>\n  );\n}\n","import { humanize } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const size = columnHelper.accessor('size', {\n  id: 'size',\n  header: 'Size',\n  cell: ({ getValue }) => {\n    const value = getValue();\n    return humanize(value) || '-';\n  },\n});\n","import { created } from './created';\nimport { id } from './id';\nimport { size } from './size';\nimport { tags } from './tags';\n\nexport const columns = [id, tags, size, created];\n","import { CellContext } from '@tanstack/react-table';\n\nimport { ImagesListResponse } from '@/react/docker/images/queries/useImages';\n\nimport { columnHelper } from './helper';\n\nexport const tags = columnHelper.accessor((item) => item.tags?.join(','), {\n  id: 'tags',\n  header: 'Tags',\n  cell: Cell,\n});\n\nfunction Cell({\n  row: { original: item },\n}: CellContext<ImagesListResponse, unknown>) {\n  const repoTags = item.tags;\n\n  return (\n    <>\n      {repoTags?.map((tag, idx) => (\n        <span key={idx} className=\"label label-primary image-tag\" title={tag}>\n          {tag}\n        </span>\n      ))}\n    </>\n  );\n}\n","import { columnHelper } from './helper';\n\nexport const host = columnHelper.accessor('nodeName', {\n  header: 'Host',\n  cell: ({ getValue }) => {\n    const value = getValue();\n    return value || '-';\n  },\n});\n","import {\n  ChevronDown,\n  Download,\n  List,\n  Plus,\n  Trash2,\n  Upload,\n} from 'lucide-react';\nimport { Menu, MenuButton, MenuItem, MenuPopover } from '@reach/menu-button';\nimport { positionRight } from '@reach/popover';\nimport { useMemo } from 'react';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport {\n  BasicTableSettings,\n  createPersistedStore,\n  refreshableSettings,\n  RefreshableTableSettings,\n} from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { Button, ButtonGroup, LoadingButton } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { ButtonWithRef } from '@@/buttons/Button';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\n\nimport { ImagesListResponse, useImages } from '../../queries/useImages';\n\nimport { columns as defColumns } from './columns';\nimport { host as hostColumn } from './columns/host';\n\nconst tableKey = 'images';\n\nexport interface TableSettings\n  extends BasicTableSettings,\n    RefreshableTableSettings {}\n\nconst settingsStore = createPersistedStore<TableSettings>(\n  tableKey,\n  'tags',\n  (set) => ({\n    ...refreshableSettings(set),\n  })\n);\n\nexport function ImagesDatatable({\n  isHostColumnVisible,\n  isExportInProgress,\n  onDownload,\n  onRemove,\n}: {\n  isHostColumnVisible: boolean;\n\n  onDownload: (images: Array<ImagesListResponse>) => void;\n  onRemove: (images: Array<ImagesListResponse>, force: true) => void;\n  isExportInProgress: boolean;\n}) {\n  const environmentId = useEnvironmentId();\n  const tableState = useTableState(settingsStore, tableKey);\n  const columns = useMemo(\n    () => (isHostColumnVisible ? [...defColumns, hostColumn] : defColumns),\n    [isHostColumnVisible]\n  );\n  const imagesQuery = useImages(environmentId, true, {\n    refetchInterval: tableState.autoRefreshRate * 1000,\n  });\n\n  return (\n    <Datatable\n      title=\"Images\"\n      titleIcon={List}\n      renderTableActions={(selectedItems) => (\n        <div className=\"flex items-center gap-2\">\n          <RemoveButtonMenu selectedItems={selectedItems} onRemove={onRemove} />\n\n          <ImportExportButtons\n            isExportInProgress={isExportInProgress}\n            onExportClick={onDownload}\n            selectedItems={selectedItems}\n          />\n\n          <Authorized authorizations=\"DockerImageBuild\">\n            <Button\n              as={Link}\n              props={{ to: 'docker.images.build' }}\n              data-cy=\"image-buildImageButton\"\n              icon={Plus}\n            >\n              Build a new image\n            </Button>\n          </Authorized>\n        </div>\n      )}\n      dataset={imagesQuery.data || []}\n      isLoading={imagesQuery.isLoading}\n      settingsManager={tableState}\n      columns={columns}\n      emptyContentLabel=\"No images found\"\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={(value) => tableState.setAutoRefreshRate(value)}\n          />\n        </TableSettingsMenu>\n      )}\n    />\n  );\n}\n\nfunction RemoveButtonMenu({\n  onRemove,\n  selectedItems,\n}: {\n  selectedItems: Array<ImagesListResponse>;\n  onRemove(selectedItems: Array<ImagesListResponse>, force: boolean): void;\n}) {\n  return (\n    <Authorized authorizations=\"DockerImageDelete\">\n      <ButtonGroup>\n        <Button\n          size=\"small\"\n          color=\"dangerlight\"\n          icon={Trash2}\n          disabled={selectedItems.length === 0}\n          data-cy=\"image-removeImageButton\"\n          onClick={() => {\n            onRemove(selectedItems, false);\n          }}\n        >\n          Remove\n        </Button>\n        <Menu>\n          <MenuButton\n            as={ButtonWithRef}\n            size=\"small\"\n            color=\"dangerlight\"\n            disabled={selectedItems.length === 0}\n            icon={ChevronDown}\n          >\n            <span className=\"sr-only\">Toggle Dropdown</span>\n          </MenuButton>\n          <MenuPopover position={positionRight}>\n            <div className=\"mt-3 bg-white th-highcontrast:bg-black th-dark:bg-black\">\n              <MenuItem\n                onSelect={() => {\n                  onRemove(selectedItems, true);\n                }}\n              >\n                Force Remove\n              </MenuItem>\n            </div>\n          </MenuPopover>\n        </Menu>\n      </ButtonGroup>\n    </Authorized>\n  );\n}\n\nfunction ImportExportButtons({\n  isExportInProgress,\n  selectedItems,\n  onExportClick,\n}: {\n  isExportInProgress: boolean;\n  selectedItems: Array<ImagesListResponse>;\n  onExportClick(selectedItems: Array<ImagesListResponse>): void;\n}) {\n  return (\n    <ButtonGroup>\n      <Authorized authorizations=\"DockerImageLoad\">\n        <Button\n          size=\"small\"\n          color=\"light\"\n          as={Link}\n          data-cy=\"image-importImageButton\"\n          icon={Upload}\n          disabled={isExportInProgress}\n          props={{ to: 'docker.images.import' }}\n        >\n          Import\n        </Button>\n      </Authorized>\n      <Authorized authorizations=\"DockerImageGet\">\n        <LoadingButton\n          size=\"small\"\n          color=\"light\"\n          icon={Download}\n          isLoading={isExportInProgress}\n          loadingText=\"Export in progress...\"\n          data-cy=\"image-exportImageButton\"\n          onClick={() => onExportClick(selectedItems)}\n          disabled={selectedItems.length === 0}\n        >\n          Export\n        </LoadingButton>\n      </Authorized>\n    </ButtonGroup>\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\nimport { Clock } from 'lucide-react';\n\nimport { isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { Datatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\ntype DockerEvent = {\n  Time: number;\n  Type: string;\n  Details: string;\n};\n\nconst columnHelper = createColumnHelper<DockerEvent>();\n\nexport const columns = [\n  columnHelper.accessor('Time', {\n    header: 'Date',\n    cell: ({ getValue }) => {\n      const value = getValue();\n      return isoDateFromTimestamp(value);\n    },\n  }),\n  columnHelper.accessor('Type', {\n    header: 'Type',\n  }),\n  columnHelper.accessor('Details', {\n    header: 'Details',\n  }),\n];\n\nconst tableKey = 'docker-events';\nconst settingsStore = createPersistedStore(tableKey, {\n  id: 'Time',\n  desc: true,\n});\n\nexport function EventsDatatable({ dataset }: { dataset: Array<DockerEvent> }) {\n  const tableState = useTableState(settingsStore, tableKey);\n\n  return (\n    <Datatable\n      dataset={dataset ?? []}\n      columns={columns}\n      settingsManager={tableState}\n      title=\"Events\"\n      titleIcon={Clock}\n      disableSelect\n      emptyContentLabel=\"No event available.\"\n    />\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { isoDate } from '@/portainer/filters/filters';\nimport { createOwnershipColumn } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\n\nimport { DockerConfig } from '../../types';\n\nconst columnHelper = createColumnHelper<DockerConfig>();\n\nexport const columns = [\n  buildNameColumn<DockerConfig>('Name', 'docker.configs.config'),\n  columnHelper.accessor('CreatedAt', {\n    header: 'Creation Date',\n    cell: ({ getValue }) => {\n      const date = getValue();\n      return <time dateTime={date}>{isoDate(date)}</time>;\n    },\n  }),\n  createOwnershipColumn<DockerConfig>(),\n];\n","import { Clipboard, Plus, Trash2 } from 'lucide-react';\n\nimport { Authorized, useAuthorizations } from '@/react/hooks/useUser';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { useRepeater } from '@@/datatables/useRepeater';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { DockerConfig } from '../../types';\n\nimport { columns } from './columns';\nimport { createStore } from './store';\n\ninterface Props {\n  dataset: Array<DockerConfig>;\n  onRemoveClick: (configs: Array<DockerConfig>) => void;\n  onRefresh: () => Promise<void>;\n}\n\nconst storageKey = 'docker_configs';\nconst settingsStore = createStore(storageKey);\n\nexport function ConfigsDatatable({ dataset, onRefresh, onRemoveClick }: Props) {\n  const tableState = useTableState(settingsStore, storageKey);\n\n  useRepeater(tableState.autoRefreshRate, onRefresh);\n\n  const hasWriteAccessQuery = useAuthorizations([\n    'DockerConfigCreate',\n    'DockerConfigDelete',\n  ]);\n\n  return (\n    <Datatable\n      dataset={dataset}\n      columns={columns}\n      settingsManager={tableState}\n      title=\"Configs\"\n      titleIcon={Clipboard}\n      emptyContentLabel=\"No config available.\"\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={(value) => tableState.setAutoRefreshRate(value)}\n          />\n        </TableSettingsMenu>\n      )}\n      disableSelect={!hasWriteAccessQuery.authorized}\n      renderTableActions={(selectedRows) =>\n        hasWriteAccessQuery.authorized && (\n          <div className=\"flex items-center gap-3\">\n            <Authorized authorizations=\"DockerConfigDelete\">\n              <Button\n                icon={Trash2}\n                color=\"dangerlight\"\n                onClick={() => onRemoveClick(selectedRows)}\n                disabled={selectedRows.length === 0}\n              >\n                Remove\n              </Button>\n            </Authorized>\n\n            <Authorized authorizations=\"DockerConfigCreate\">\n              <Button\n                icon={Plus}\n                as={Link}\n                props={{ to: 'docker.configs.new' }}\n              >\n                Add config\n              </Button>\n            </Authorized>\n          </div>\n        )\n      }\n    />\n  );\n}\n","import {\n  BasicTableSettings,\n  createPersistedStore,\n  refreshableSettings,\n  RefreshableTableSettings,\n} from '@@/datatables/types';\n\nexport interface TableSettings\n  extends BasicTableSettings,\n    RefreshableTableSettings {}\n\nexport function createStore(storageKey: string) {\n  return createPersistedStore<TableSettings>(storageKey, 'name', (set) => ({\n    ...refreshableSettings(set),\n  }));\n}\n","import { TableOptions } from '@tanstack/react-table';\n\nimport { DefaultType } from '../types';\n\nexport function withMeta<D extends DefaultType>(meta: Record<string, unknown>) {\n  return function extendOptions(options: TableOptions<D>) {\n    return {\n      ...options,\n      meta: {\n        ...options.meta,\n        ...meta,\n      },\n    };\n  };\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { FileData } from '../types';\n\nexport const columnHelper = createColumnHelper<FileData>();\n","import { TableMeta } from '@tanstack/react-table';\nimport { ReactNode } from 'react';\n\nexport type FileData = {\n  Name: string;\n  Dir: boolean;\n  Size: number;\n  ModTime: number;\n  custom: ReactNode;\n};\n\nexport type FilesTableMeta = TableMeta<FileData> & {\n  table: 'files';\n  isEdit(rowId: string): boolean;\n  setIsEdit(rowId: string, isEdit: boolean): void;\n  onRename: (oldName: string, newName: string) => void;\n  onBrowse: (name: string) => void;\n  onDownload: (fileName: string) => void;\n  onDelete: (fileName: string) => void;\n};\n\nexport function isFilesTableMeta(\n  meta?: TableMeta<FileData>\n): meta is FilesTableMeta {\n  return !!meta && meta.table === 'files';\n}\n","import { CellContext } from '@tanstack/react-table';\nimport { Check, File as FileIcon, Folder, X } from 'lucide-react';\nimport { Form, Formik } from 'formik';\n\nimport { Icon } from '@@/Icon';\nimport { Button } from '@@/buttons';\nimport { Input } from '@@/form-components/Input';\n\nimport { FileData, isFilesTableMeta } from '../types';\n\nexport function NameCell({\n  getValue,\n  row: { original: item },\n  table,\n}: CellContext<FileData, string>) {\n  const name = getValue();\n  const { meta } = table.options;\n  if (!isFilesTableMeta(meta)) {\n    throw new Error('Invalid table meta');\n  }\n  const isEdit = meta.isEdit(name);\n\n  if (item.custom) {\n    return item.custom;\n  }\n\n  if (isEdit) {\n    return (\n      <EditForm\n        originalName={name}\n        onSave={handleRename}\n        onClose={() => meta.setIsEdit(name, false)}\n      />\n    );\n  }\n\n  return (\n    <>\n      {item.Dir ? (\n        <Button\n          color=\"link\"\n          className=\"!ml-0 p-0\"\n          onClick={() => meta.onBrowse(name)}\n          icon={Folder}\n        >\n          {name}\n        </Button>\n      ) : (\n        <span className=\"vertical-center\">\n          <Icon icon={FileIcon} />\n          {name}\n        </span>\n      )}\n    </>\n  );\n\n  function handleRename(name: string) {\n    if (!isFilesTableMeta(meta)) {\n      throw new Error('Invalid table meta');\n    }\n\n    meta.onRename(item.Name, name);\n    meta.setIsEdit(name, false);\n  }\n}\n\nfunction EditForm({\n  originalName,\n  onSave,\n  onClose,\n}: {\n  originalName: string;\n  onSave: (name: string) => void;\n  onClose: () => void;\n}) {\n  return (\n    <Formik\n      initialValues={{ name: originalName }}\n      onSubmit={({ name }) => onSave(name)}\n      onReset={onClose}\n    >\n      {({ values, setFieldValue }) => (\n        <Form className=\"flex items-center\">\n          <Input\n            name=\"name\"\n            value={values.name}\n            onChange={(e) => setFieldValue('name', e.target.value)}\n            className=\"input-sm w-auto\"\n          />\n\n          <Button color=\"none\" type=\"reset\" icon={X} />\n\n          <Button color=\"none\" type=\"submit\" icon={Check} />\n        </Form>\n      )}\n    </Formik>\n  );\n}\n","import {\n  CellContext,\n  ColumnDef,\n  ColumnDefTemplate,\n} from '@tanstack/react-table';\n\nimport { humanize, isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { FileData } from '../types';\n\nimport { columnHelper } from './helper';\nimport { NameCell } from './NameCell';\nimport { ActionsCell } from './ActionsCell';\n\nexport const columns = [\n  columnHelper.accessor('Name', {\n    header: 'Name',\n    cell: NameCell,\n  }),\n  columnHelper.accessor('Size', {\n    header: 'Size',\n    cell: hideIfCustom(({ getValue }) => humanize(getValue())),\n  }),\n  columnHelper.accessor('ModTime', {\n    header: 'Last modification',\n    cell: hideIfCustom(({ getValue }) => isoDateFromTimestamp(getValue())),\n  }),\n  columnHelper.display({\n    header: 'Actions',\n    cell: hideIfCustom(ActionsCell),\n  }),\n  columnHelper.accessor('Dir', {}), // workaround, to enable sorting by Dir (put directory first)\n] as ColumnDef<FileData>[];\n\nfunction hideIfCustom<TValue>(\n  template: ColumnDefTemplate<CellContext<FileData, TValue>>\n): ColumnDefTemplate<CellContext<FileData, TValue>> {\n  return (props) => {\n    if (props.row.original.custom) {\n      return null;\n    }\n    return typeof template === 'string' ? template : template(props);\n  };\n}\n","import { CellContext } from '@tanstack/react-table';\nimport { Download, Edit, Trash2 } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Button } from '@@/buttons';\n\nimport { FileData, isFilesTableMeta } from '../types';\n\nexport function ActionsCell({\n  row: { original: item },\n  table,\n}: CellContext<FileData, unknown>) {\n  const { meta } = table.options;\n  if (!isFilesTableMeta(meta)) {\n    throw new Error('Invalid table meta');\n  }\n\n  return (\n    <div className=\"flex gap-2\">\n      {!item.Dir && (\n        <Authorized authorizations=\"DockerAgentBrowseGet\">\n          <Button\n            color=\"secondary\"\n            size=\"xsmall\"\n            onClick={() => meta.onDownload(item.Name)}\n            icon={Download}\n            className=\"!m-0\"\n          >\n            Download\n          </Button>\n        </Authorized>\n      )}\n      <Authorized authorizations=\"DockerAgentBrowseRename\">\n        <Button\n          color=\"secondary\"\n          size=\"xsmall\"\n          icon={Edit}\n          onClick={() => meta.setIsEdit(item.Name, true)}\n          className=\"!m-0\"\n        >\n          Rename\n        </Button>\n      </Authorized>\n      <Authorized authorizations=\"DockerAgentBrowseDelete\">\n        <Button\n          color=\"dangerlight\"\n          size=\"xsmall\"\n          icon={Trash2}\n          onClick={() => meta.onDelete(item.Name)}\n          className=\"!m-0\"\n        >\n          Delete\n        </Button>\n      </Authorized>\n    </div>\n  );\n}\n","import { CornerLeftUp, File as FileIcon, Upload } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Datatable } from '@@/datatables';\nimport { BasicTableSettings } from '@@/datatables/types';\nimport { Button } from '@@/buttons';\nimport { TableState } from '@@/datatables/useTableState';\nimport { withMeta } from '@@/datatables/extend-options/withMeta';\n\nimport { FileData } from './types';\nimport { columns } from './columns';\n\ninterface Props {\n  title: string;\n  dataset: FileData[];\n  tableState: TableState<BasicTableSettings>;\n\n  isRoot: boolean;\n  onGoToParent: () => void;\n  onBrowse: (folderName: string) => void;\n  onRename: (oldName: string, newName: string) => void;\n  onDownload: (fileName: string) => void;\n  onDelete: (fileName: string) => void;\n\n  isUploadAllowed: boolean;\n  onFileSelectedForUpload: (file: File) => void;\n}\n\nfunction goToParent(onClick: () => void): FileData {\n  return {\n    custom: (\n      <Button\n        onClick={onClick}\n        color=\"link\"\n        icon={CornerLeftUp}\n        className=\"!m-0 !p-0\"\n      >\n        Go to parent\n      </Button>\n    ),\n    Dir: true,\n    Name: '..',\n    Size: 0,\n    ModTime: 0,\n  };\n}\n\nexport function FilesTable({\n  isRoot,\n  title,\n  dataset,\n  tableState,\n  onGoToParent,\n  onRename,\n  onBrowse,\n  onDelete,\n  onDownload,\n  isUploadAllowed,\n  onFileSelectedForUpload,\n}: Props) {\n  const [isEditState, setIsEditState] = useState(\n    Object.fromEntries(dataset.map((f) => [f.Name, false]))\n  );\n\n  function isEdit(name: string) {\n    return isEditState[name];\n  }\n\n  function setIsEdit(name: string, value: boolean) {\n    setIsEditState((editState) => ({ ...editState, [name]: value }));\n  }\n\n  return (\n    <Datatable<FileData>\n      title={title}\n      titleIcon={FileIcon}\n      dataset={isRoot ? dataset : [goToParent(onGoToParent), ...dataset]}\n      settingsManager={tableState}\n      columns={columns}\n      getRowId={(row) => row.Name}\n      initialTableState={{\n        columnVisibility: {\n          Dir: false,\n        },\n      }}\n      extendTableOptions={withMeta({\n        table: 'files',\n        isEdit,\n        setIsEdit,\n        onRename,\n        onBrowse,\n        onDownload,\n        onDelete,\n      })}\n      disableSelect\n      renderTableActions={() => {\n        if (!isUploadAllowed) {\n          return null;\n        }\n\n        return (\n          <Authorized authorizations=\"DockerAgentBrowsePut\">\n            <div className=\"flex flex-row items-center\">\n              <Button color=\"light\" icon={Upload} as=\"label\">\n                <input\n                  type=\"file\"\n                  className=\"hidden\"\n                  onChange={(e) => {\n                    const file = e.target.files?.[0];\n                    if (file) {\n                      onFileSelectedForUpload(file);\n                    }\n                  }}\n                />\n              </Button>\n            </div>\n          </Authorized>\n        );\n      }}\n    />\n  );\n}\n","import { ComponentProps } from 'react';\n\nimport { FilesTable } from '@/react/docker/components/FilesTable';\n\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nconst tableKey = 'host-browser';\n\nconst settingsStore = createPersistedStore(tableKey, {\n  desc: true,\n  id: 'Dir',\n});\n\ninterface Props\n  extends Omit<\n    ComponentProps<typeof FilesTable>,\n    'isUploadAllowed' | 'tableState' | 'title'\n  > {\n  relativePath: string;\n}\n\nexport function AgentHostBrowser({\n  relativePath,\n  dataset,\n  isRoot,\n  onBrowse,\n  onDelete,\n  onDownload,\n  onFileSelectedForUpload,\n  onGoToParent,\n  onRename,\n}: Props) {\n  const tableState = useTableState(settingsStore, tableKey);\n\n  return (\n    <FilesTable\n      tableState={tableState}\n      dataset={dataset}\n      title={`Host browser - ${relativePath}`}\n      isRoot={isRoot}\n      onRename={onRename}\n      onBrowse={onBrowse}\n      onDownload={onDownload}\n      onDelete={onDelete}\n      isUploadAllowed\n      onFileSelectedForUpload={onFileSelectedForUpload}\n      onGoToParent={onGoToParent}\n    />\n  );\n}\n","import { ComponentProps } from 'react';\n\nimport { FilesTable } from '@/react/docker/components/FilesTable';\n\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nconst tableKey = 'host-browser';\n\nconst settingsStore = createPersistedStore(tableKey, 'Name');\n\ninterface Props\n  extends Omit<\n    ComponentProps<typeof FilesTable>,\n    'onSearchChange' | 'tableState' | 'title'\n  > {\n  relativePath: string;\n}\n\nexport function AgentVolumeBrowser({\n  relativePath,\n  dataset,\n  isRoot,\n  onBrowse,\n  onDelete,\n  onDownload,\n  onFileSelectedForUpload,\n  onGoToParent,\n  onRename,\n  isUploadAllowed,\n}: Props) {\n  const tableState = useTableState(settingsStore, tableKey);\n\n  return (\n    <FilesTable\n      tableState={tableState}\n      dataset={dataset}\n      title={`Volume browser - ${relativePath}`}\n      isRoot={isRoot}\n      onRename={onRename}\n      onBrowse={onBrowse}\n      onDownload={onDownload}\n      onDelete={onDelete}\n      isUploadAllowed={isUploadAllowed}\n      onFileSelectedForUpload={onFileSelectedForUpload}\n      onGoToParent={onGoToParent}\n    />\n  );\n}\n","import { ColumnDef } from '@tanstack/react-table';\nimport { List } from 'lucide-react';\nimport { useMemo } from 'react';\n\nimport { Datatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nconst tableKey = 'container-processes';\nconst store = createPersistedStore(tableKey);\n\nexport function ProcessesDatatable({\n  dataset,\n  headers,\n}: {\n  dataset?: Array<Array<string | number>>;\n  headers?: Array<string>;\n}) {\n  const tableState = useTableState(store, tableKey);\n  const rows = useMemo(() => {\n    if (!dataset || !headers) {\n      return [];\n    }\n\n    return dataset.map((row, index) => ({\n      id: index,\n      ...Object.fromEntries(\n        headers.map((header, index) => [header, row[index]])\n      ),\n    }));\n  }, [dataset, headers]);\n\n  const columns = useMemo(\n    () =>\n      headers\n        ? headers.map(\n            (header) =>\n              ({ header, accessorKey: header }) satisfies ColumnDef<{\n                [k: string]: string;\n              }>\n          )\n        : [],\n    [headers]\n  );\n\n  return (\n    <Datatable\n      title=\"Processes\"\n      titleIcon={List}\n      dataset={rows}\n      columns={columns}\n      settingsManager={tableState}\n      disableSelect\n      isLoading={!dataset}\n      emptyContentLabel=\"No processes found.\"\n    />\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\nimport { Lock, Plus, Trash2 } from 'lucide-react';\n\nimport { SecretViewModel } from '@/docker/models/secret';\nimport { isoDate } from '@/portainer/filters/filters';\nimport { Authorized, useAuthorizations } from '@/react/hooks/useUser';\n\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport {\n  BasicTableSettings,\n  RefreshableTableSettings,\n  createPersistedStore,\n  refreshableSettings,\n} from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useRepeater } from '@@/datatables/useRepeater';\n\nimport { createOwnershipColumn } from '../../components/datatable/createOwnershipColumn';\n\nconst columnHelper = createColumnHelper<SecretViewModel>();\n\nconst columns = [\n  buildNameColumn<SecretViewModel>('Name', '.secret'),\n  columnHelper.accessor((item) => isoDate(item.CreatedAt), {\n    header: 'Creation Date',\n  }),\n  createOwnershipColumn<SecretViewModel>(),\n];\n\ninterface TableSettings extends BasicTableSettings, RefreshableTableSettings {}\n\nconst storageKey = 'docker-secrets';\nconst store = createPersistedStore<TableSettings>(\n  storageKey,\n  undefined,\n  (set) => ({\n    ...refreshableSettings(set),\n  })\n);\n\nexport function SecretsDatatable({\n  dataset,\n  onRemove,\n  onRefresh,\n}: {\n  dataset?: Array<SecretViewModel>;\n  onRemove(items: Array<SecretViewModel>): void;\n  onRefresh(): Promise<void>;\n}) {\n  const tableState = useTableState(store, storageKey);\n  useRepeater(tableState.autoRefreshRate, onRefresh);\n\n  const hasWriteAccessQuery = useAuthorizations([\n    'DockerSecretCreate',\n    'DockerSecretDelete',\n  ]);\n\n  return (\n    <Datatable\n      title=\"Secrets\"\n      titleIcon={Lock}\n      columns={columns}\n      dataset={dataset || []}\n      isLoading={!dataset}\n      disableSelect={!hasWriteAccessQuery.authorized}\n      settingsManager={tableState}\n      emptyContentLabel=\"No secret available.\"\n      renderTableActions={(selectedItems) =>\n        hasWriteAccessQuery.authorized && (\n          <TableActions selectedItems={selectedItems} onRemove={onRemove} />\n        )\n      }\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={(value) => tableState.setAutoRefreshRate(value)}\n          />\n        </TableSettingsMenu>\n      )}\n    />\n  );\n}\n\nfunction TableActions({\n  selectedItems,\n  onRemove,\n}: {\n  selectedItems: Array<SecretViewModel>;\n  onRemove(items: Array<SecretViewModel>): void;\n}) {\n  return (\n    <div className=\"flex items-center gap-2\">\n      <Authorized authorizations=\"DockerSecretDelete\">\n        <Button\n          color=\"dangerlight\"\n          disabled={selectedItems.length === 0}\n          onClick={() => onRemove(selectedItems)}\n          icon={Trash2}\n          className=\"!m-0\"\n          data-cy=\"secret-removeSecretButton\"\n        >\n          Remove\n        </Button>\n      </Authorized>\n\n      <Authorized authorizations=\"DockerSecretCreate\">\n        <Button\n          as={Link}\n          props={{ to: '.new' }}\n          icon={Plus}\n          className=\"!m-0\"\n          data-cy=\"secret-addSecretButton\"\n        >\n          Add secret\n        </Button>\n      </Authorized>\n    </div>\n  );\n}\n","import { TableOptions } from '@tanstack/react-table';\n\nimport { defaultGlobalFilterFn } from '../Datatable';\nimport { DefaultType } from '../types';\n\nexport function withGlobalFilter<\n  D extends DefaultType,\n  TFilter extends {\n    search: string;\n  },\n>(filterFn: typeof defaultGlobalFilterFn<D, TFilter>) {\n  return function extendOptions(options: TableOptions<D>) {\n    return {\n      ...options,\n      globalFilterFn: filterFn,\n    };\n  };\n}\n","import { ExternalStackViewModel } from './external-stack';\nimport { StackViewModel } from './stack';\n\nexport function isExternalStack(\n  stack: StackViewModel | ExternalStackViewModel\n): stack is ExternalStackViewModel {\n  return 'External' in stack && stack.External;\n}\n\nexport function isRegularStack(\n  stack: StackViewModel | ExternalStackViewModel\n): stack is StackViewModel & { Regular: true } {\n  return 'Regular' in stack && stack.Regular;\n}\n\nexport function isOrphanedStack(\n  stack: StackViewModel | ExternalStackViewModel\n): stack is StackViewModel & { Orphaned: true } {\n  return 'Orphaned' in stack && stack.Orphaned;\n}\n","import { Trash2, Plus } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\nimport { Button } from '@@/buttons';\n\nimport { DecoratedStack } from './types';\n\nexport function TableActions({\n  selectedItems,\n  onRemove,\n}: {\n  selectedItems: Array<DecoratedStack>;\n  onRemove: (items: Array<DecoratedStack>) => void;\n}) {\n  return (\n    <div className=\"flex items-center gap-2\">\n      <Authorized authorizations=\"PortainerStackDelete\">\n        <Button\n          color=\"dangerlight\"\n          disabled={selectedItems.length === 0}\n          onClick={() => onRemove(selectedItems)}\n          icon={Trash2}\n          className=\"!m-0\"\n          data-cy=\"stack-removeStackButton\"\n        >\n          Remove\n        </Button>\n      </Authorized>\n\n      <Authorized authorizations=\"PortainerStackCreate\">\n        <Button\n          as={Link}\n          props={{ to: '.newstack' }}\n          icon={Plus}\n          className=\"!m-0\"\n          data-cy=\"stack-addStackButton\"\n        >\n          Add stack\n        </Button>\n      </Authorized>\n    </div>\n  );\n}\n","import { Table } from '@tanstack/react-table';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { ColumnVisibilityMenu } from '@@/datatables/ColumnVisibilityMenu';\nimport { TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { Checkbox } from '@@/form-components/Checkbox';\n\nimport { TableSettings } from './store';\nimport { DecoratedStack } from './types';\n\nexport function TableSettingsMenus({\n  tableInstance,\n  tableState,\n}: {\n  tableInstance: Table<DecoratedStack>;\n  tableState: TableSettings;\n}) {\n  return (\n    <>\n      <ColumnVisibilityMenu<DecoratedStack>\n        table={tableInstance}\n        onChange={(hiddenColumns) => {\n          tableState.setHiddenColumns(hiddenColumns);\n        }}\n        value={tableState.hiddenColumns}\n      />\n      <TableSettingsMenu>\n        <Authorized authorizations=\"EndpointResourcesAccess\">\n          <Checkbox\n            id=\"setting_all_orphaned_stacks\"\n            label=\"Show all orphaned stacks\"\n            checked={tableState.showOrphanedStacks}\n            onChange={(e) => {\n              tableState.setShowOrphanedStacks(e.target.checked);\n              tableInstance.setGlobalFilter((filter: object) => ({\n                ...filter,\n                showOrphanedStacks: e.target.checked,\n              }));\n            }}\n          />\n        </Authorized>\n\n        <TableSettingsMenuAutoRefresh\n          value={tableState.autoRefreshRate}\n          onChange={(value) => tableState.setAutoRefreshRate(value)}\n        />\n      </TableSettingsMenu>\n    </>\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DecoratedStack } from '../types';\n\nexport const columnHelper = createColumnHelper<DecoratedStack>();\n","import { CellContext, Column } from '@tanstack/react-table';\n\nimport { useIsEdgeAdmin } from '@/react/hooks/useUser';\nimport { getValueAsArrayOfStrings } from '@/portainer/helpers/array';\nimport { StackStatus } from '@/react/common/stacks/types';\nimport {\n  isExternalStack,\n  isOrphanedStack,\n  isRegularStack,\n} from '@/react/docker/stacks/view-models/utils';\n\nimport { Link } from '@@/Link';\nimport { MultipleSelectionFilter } from '@@/datatables/Filter';\n\nimport { DecoratedStack } from '../types';\n\nimport { columnHelper } from './helper';\n\nconst filterOptions = ['Active Stacks', 'Inactive Stacks'] as const;\n\ntype FilterOption = (typeof filterOptions)[number];\n\nexport const name = columnHelper.accessor('Name', {\n  header: 'Name',\n  id: 'name',\n  cell: NameCell,\n  enableHiding: false,\n  enableColumnFilter: true,\n  filterFn: (\n    { original: stack },\n    columnId,\n    filterValue: Array<FilterOption>\n  ) => {\n    if (filterValue.length === 0) {\n      return true;\n    }\n\n    if (isExternalStack(stack) || !stack.Status) {\n      return true;\n    }\n\n    return (\n      (stack.Status === StackStatus.Active &&\n        filterValue.includes('Active Stacks')) ||\n      (stack.Status === StackStatus.Inactive &&\n        filterValue.includes('Inactive Stacks'))\n    );\n  },\n  meta: {\n    filter: Filter,\n  },\n});\n\nfunction NameCell({\n  row: { original: item },\n}: CellContext<DecoratedStack, string>) {\n  return (\n    <>\n      <NameLink item={item} />\n      {isRegularStack(item) && item.Status === 2 && (\n        <span className=\"label label-warning image-tag space-left ml-2\">\n          Inactive\n        </span>\n      )}\n    </>\n  );\n}\n\nfunction NameLink({ item }: { item: DecoratedStack }) {\n  const isAdminQuery = useIsEdgeAdmin();\n\n  const name = item.Name;\n\n  if (isExternalStack(item)) {\n    return (\n      <Link\n        to=\"docker.stacks.stack\"\n        params={{\n          name: item.Name,\n          type: item.Type,\n          external: true,\n        }}\n        title={name}\n      >\n        {name}\n      </Link>\n    );\n  }\n\n  if (!isAdminQuery.isAdmin && isOrphanedStack(item)) {\n    return <>{name}</>;\n  }\n\n  return (\n    <Link\n      to=\"docker.stacks.stack\"\n      params={{\n        name: item.Name,\n        id: item.Id,\n        type: item.Type,\n        regular: item.Regular,\n        orphaned: item.Orphaned,\n        orphanedRunning: item.OrphanedRunning,\n      }}\n      title={name}\n    >\n      {name}\n    </Link>\n  );\n}\n\nfunction Filter<TData extends { Used: boolean }>({\n  column: { getFilterValue, setFilterValue, id },\n}: {\n  column: Column<TData>;\n}) {\n  const value = getFilterValue();\n\n  const valueAsArray = getValueAsArrayOfStrings(value);\n\n  return (\n    <MultipleSelectionFilter\n      options={filterOptions}\n      filterKey={id}\n      value={valueAsArray}\n      onChange={setFilterValue}\n      menuTitle=\"Filter by activity\"\n    />\n  );\n}\n","import UpdatesAvailable from '@/assets/ico/icon_updates-available.svg?c';\nimport UpToDate from '@/assets/ico/icon_up-to-date.svg?c';\nimport UpdatesUnknown from '@/assets/ico/icon_updates-unknown.svg?c';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { Icon } from '@@/Icon';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport {\n  TableColumnHeaderAngular,\n  TableColumnHeaderAngularProps,\n} from '@@/datatables/TableHeaderCell';\n\nexport function TableColumnHeaderImageUpToDate({\n  canSort,\n  isSorted,\n  colTitle,\n  isSortedDesc = true,\n}: TableColumnHeaderAngularProps) {\n  return (\n    <TableColumnHeaderAngular\n      canSort={canSort}\n      isSorted={isSorted}\n      colTitle={colTitle}\n      isSortedDesc={isSortedDesc}\n    >\n      <ImageUpToDateTooltip />\n    </TableColumnHeaderAngular>\n  );\n}\n\nexport function ImageUpToDateTooltip() {\n  const environmentId = useEnvironmentId();\n\n  const enableImageNotificationQuery = useEnvironment(\n    environmentId,\n    (environment) => environment?.EnableImageNotification\n  );\n\n  if (!enableImageNotificationQuery.data) {\n    return null;\n  }\n\n  if (!isBE) {\n    return null;\n  }\n\n  return (\n    <Tooltip\n      position=\"top\"\n      message={\n        <div className=\"flex flex-col gap-y-2 p-2\">\n          <div className=\"flex items-center gap-2\">\n            <Icon icon={UpToDate} />\n            Images are up to date\n          </div>\n          <div className=\"flex items-center gap-2\">\n            <Icon icon={UpdatesAvailable} />\n            Updates are available\n          </div>\n          <div className=\"flex items-center gap-2\">\n            <Icon icon={UpdatesUnknown} />\n            Updates availability unknown\n          </div>\n        </div>\n      }\n    />\n  );\n}\n","import axios from '@/portainer/services/axios';\nimport { ImageStatus } from '@/react/docker/components/ImageStatus/types';\n\nexport async function getStackImagesStatus(id: number) {\n  try {\n    const { data } = await axios.get<ImageStatus>(\n      `/stacks/${id}/images_status`\n    );\n    return data;\n  } catch (e) {\n    return {\n      Status: 'unknown',\n      Message: `Unable to retrieve image status for stack: ${id}`,\n    };\n  }\n}\n","import { useQuery } from 'react-query';\nimport { Loader2 } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\nimport { statusIcon } from '@/react/docker/components/ImageStatus/helpers';\n\nimport { Icon } from '@@/Icon';\n\nimport { getStackImagesStatus } from './getStackImagesStatus';\n\nexport interface Props {\n  stackId: number;\n  environmentId: number;\n}\n\nexport function StackImageStatus({ stackId, environmentId }: Props) {\n  const { data, isLoading, isError } = useStackImageNotification(\n    stackId,\n    environmentId\n  );\n\n  if (isError) {\n    return null;\n  }\n\n  if (isLoading || !data) {\n    return (\n      <Icon\n        icon={Loader2}\n        size=\"sm\"\n        className=\"!mr-1 animate-spin-slow align-middle\"\n      />\n    );\n  }\n\n  return <Icon icon={statusIcon(data)} className=\"!mr-1 align-middle\" />;\n}\n\nexport function useStackImageNotification(\n  stackId: number,\n  environmentId?: EnvironmentId\n) {\n  const enableImageNotificationQuery = useEnvironment(\n    environmentId,\n    (environment) => environment?.EnableImageNotification\n  );\n\n  return useQuery(\n    ['stacks', stackId, 'images', 'status'],\n    () => getStackImagesStatus(stackId),\n    {\n      enabled: enableImageNotificationQuery.data,\n    }\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { ImageUpToDateTooltip } from '@/react/docker/components/datatable/TableColumnHeaderImageUpToDate';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { isRegularStack } from '@/react/docker/stacks/view-models/utils';\n\nimport { DecoratedStack } from '../types';\n\nimport { StackImageStatus } from './StackImageStatus';\nimport { columnHelper } from './helper';\n\nexport const imageNotificationColumn = columnHelper.display({\n  id: 'imageNotification',\n  enableHiding: false,\n  header: () => (\n    <>\n      Images up to date\n      <ImageUpToDateTooltip />\n    </>\n  ),\n  cell: Cell,\n});\n\nfunction Cell({\n  row: { original: item },\n}: CellContext<DecoratedStack, unknown>) {\n  const environmentId = useEnvironmentId();\n\n  if (!isRegularStack(item)) {\n    return null;\n  }\n\n  return <StackImageStatus environmentId={environmentId} stackId={item.Id} />;\n}\n","import { CellContext } from '@tanstack/react-table';\nimport { AlertCircle } from 'lucide-react';\nimport { PropsWithChildren } from 'react';\n\nimport {\n  isExternalStack,\n  isOrphanedStack,\n  isRegularStack,\n} from '@/react/docker/stacks/view-models/utils';\n\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\nimport { Icon } from '@@/Icon';\n\nimport { DecoratedStack } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const control = columnHelper.display({\n  header: 'Control',\n  id: 'control',\n  cell: ControlCell,\n  enableHiding: false,\n});\n\nfunction ControlCell({\n  row: { original: item },\n}: CellContext<DecoratedStack, unknown>) {\n  if (isRegularStack(item)) {\n    return <>Total</>;\n  }\n\n  if (isExternalStack(item)) {\n    return (\n      <Warning tooltip=\"This stack was created outside of Portainer. Control over this stack is limited.\">\n        Limited\n      </Warning>\n    );\n  }\n\n  if (isOrphanedStack(item)) {\n    return (\n      <Warning tooltip=\"This stack was created inside an environment that is no longer registered inside Portainer.\">\n        Orphaned\n      </Warning>\n    );\n  }\n\n  return null;\n}\n\nfunction Warning({\n  tooltip,\n  children,\n}: PropsWithChildren<{ tooltip: string }>) {\n  return (\n    <TooltipWithChildren message={tooltip}>\n      <span className=\"flex items-center gap-2\">\n        {children}\n        <Icon icon={AlertCircle} mode=\"warning\" />\n      </span>\n    </TooltipWithChildren>\n  );\n}\n","import { Layers } from 'lucide-react';\nimport { Row } from '@tanstack/react-table';\n\nimport { useAuthorizations, useIsEdgeAdmin } from '@/react/hooks/useUser';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { Datatable } from '@@/datatables';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { useRepeater } from '@@/datatables/useRepeater';\nimport { defaultGlobalFilterFn } from '@@/datatables/Datatable';\nimport { withGlobalFilter } from '@@/datatables/extend-options/withGlobalFilter';\n\nimport { isExternalStack, isOrphanedStack } from '../../view-models/utils';\n\nimport { TableActions } from './TableActions';\nimport { TableSettingsMenus } from './TableSettingsMenus';\nimport { createStore } from './store';\nimport { useColumns } from './columns';\nimport { DecoratedStack } from './types';\n\nconst tableKey = 'docker_stacks';\nconst settingsStore = createStore(tableKey);\n\nexport function StacksDatatable({\n  onRemove,\n  onReload,\n  isImageNotificationEnabled,\n  dataset,\n}: {\n  onRemove: (items: Array<DecoratedStack>) => void;\n  onReload: () => void;\n  isImageNotificationEnabled: boolean;\n  dataset: Array<DecoratedStack>;\n}) {\n  const tableState = useTableState(settingsStore, tableKey);\n  useRepeater(tableState.autoRefreshRate, onReload);\n  const isAdminQuery = useIsEdgeAdmin();\n  const { authorized: canManageStacks } = useAuthorizations([\n    'PortainerStackCreate',\n    'PortainerStackDelete',\n  ]);\n  const columns = useColumns(isImageNotificationEnabled);\n\n  return (\n    <Datatable<DecoratedStack>\n      settingsManager={tableState}\n      title=\"Stacks\"\n      titleIcon={Layers}\n      renderTableActions={(selectedRows) => (\n        <TableActions selectedItems={selectedRows} onRemove={onRemove} />\n      )}\n      renderTableSettings={(tableInstance) => (\n        <TableSettingsMenus\n          tableInstance={tableInstance}\n          tableState={tableState}\n        />\n      )}\n      columns={columns}\n      dataset={dataset}\n      isRowSelectable={({ original: item }) =>\n        allowSelection(item, isAdminQuery.isAdmin, canManageStacks)\n      }\n      getRowId={(item) => item.Id.toString()}\n      initialTableState={{\n        globalFilter: {\n          showOrphanedStacks: tableState.showOrphanedStacks,\n        },\n        columnVisibility: Object.fromEntries(\n          tableState.hiddenColumns.map((col) => [col, false])\n        ),\n      }}\n      extendTableOptions={withGlobalFilter(globalFilterFn)}\n    />\n  );\n}\n\nfunction allowSelection(\n  item: DecoratedStack,\n  isAdmin: boolean,\n  canManageStacks: boolean\n) {\n  if (isExternalStack(item)) {\n    return false;\n  }\n\n  if (isBE && isOrphanedStack(item) && !isAdmin) {\n    return false;\n  }\n\n  return isAdmin || canManageStacks;\n}\n\nfunction globalFilterFn(\n  row: Row<DecoratedStack>,\n  columnId: string,\n  filterValue: null | { showOrphanedStacks: boolean; search: string }\n) {\n  return (\n    orphanedFilter(row, filterValue) &&\n    defaultGlobalFilterFn(row, columnId, filterValue)\n  );\n}\n\nfunction orphanedFilter(\n  row: Row<DecoratedStack>,\n  filterValue: null | { showOrphanedStacks: boolean; search: string }\n) {\n  if (filterValue?.showOrphanedStacks) {\n    return true;\n  }\n\n  return !isOrphanedStack(row.original);\n}\n","import {\n  BasicTableSettings,\n  RefreshableTableSettings,\n  SettableColumnsTableSettings,\n  createPersistedStore,\n  hiddenColumnsSettings,\n  refreshableSettings,\n} from '@@/datatables/types';\n\nexport interface TableSettings\n  extends BasicTableSettings,\n    SettableColumnsTableSettings,\n    RefreshableTableSettings {\n  showOrphanedStacks: boolean;\n  setShowOrphanedStacks(value: boolean): void;\n}\n\nexport function createStore(storageKey: string) {\n  return createPersistedStore<TableSettings>(storageKey, 'name', (set) => ({\n    ...hiddenColumnsSettings(set),\n    ...refreshableSettings(set),\n    showOrphanedStacks: false,\n    setShowOrphanedStacks(showOrphanedStacks) {\n      set((s) => ({ ...s, showOrphanedStacks }));\n    },\n  }));\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DecoratedNetwork } from '../types';\n\nexport const columnHelper = createColumnHelper<DecoratedNetwork>();\n","import { truncate } from '@/portainer/filters/filters';\n\nimport { Link } from '@@/Link';\nimport { Badge } from '@@/Badge';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Name', {\n  header: 'Name',\n  id: 'name',\n  cell({ row: { original: item } }) {\n    return (\n      <>\n        <Link\n          to=\".network\"\n          params={{ id: item.Id, nodeName: item.NodeName }}\n          title={item.Name}\n        >\n          {truncate(item.Name, 40)}\n        </Link>\n        {item.ResourceControl?.System && (\n          <Badge type=\"info\" className=\"ml-2\">\n            System\n          </Badge>\n        )}\n      </>\n    );\n  },\n});\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { createOwnershipColumn } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nimport { buildExpandColumn } from '@@/datatables/expand-column';\n\nimport { DecoratedNetwork } from '../types';\n\nimport { columnHelper } from './helper';\nimport { name } from './name';\n\nexport function useColumns(isHostColumnVisible?: boolean) {\n  return useMemo(\n    () =>\n      _.compact([\n        buildExpandColumn<DecoratedNetwork>(),\n        name,\n        columnHelper.accessor((item) => item.StackName || '-', {\n          header: 'Stack',\n        }),\n        columnHelper.accessor('Driver', {\n          header: 'Driver',\n        }),\n        columnHelper.accessor('Attachable', {\n          header: 'Attachable',\n        }),\n        columnHelper.accessor('IPAM.Driver', {\n          header: 'IPAM Driver',\n        }),\n        columnHelper.accessor(\n          (item) => item.IPAM?.IPV4Configs?.[0]?.Subnet ?? '-',\n          {\n            header: 'IPV4 IPAM Subnet',\n          }\n        ),\n        columnHelper.accessor(\n          (item) => item.IPAM?.IPV4Configs?.[0]?.Gateway ?? '-',\n          {\n            header: 'IPV4 IPAM Gateway',\n          }\n        ),\n        columnHelper.accessor(\n          (item) => item.IPAM?.IPV6Configs?.[0]?.Subnet ?? '-',\n          {\n            header: 'IPV6 IPAM Subnet',\n          }\n        ),\n        columnHelper.accessor(\n          (item) => item.IPAM?.IPV6Configs?.[0]?.Gateway ?? '-',\n          {\n            header: 'IPV6 IPAM Gateway',\n          }\n        ),\n        isHostColumnVisible &&\n          columnHelper.accessor('NodeName', {\n            header: 'Node',\n          }),\n        createOwnershipColumn<DecoratedNetwork>(),\n      ]),\n    [isHostColumnVisible]\n  );\n}\n","import { PropsWithChildren } from 'react';\n\nimport './NestedTable.css';\n\nexport function NestedTable({ children }: PropsWithChildren<unknown>) {\n  return <div className=\"inner-datatable\">{children}</div>;\n}\n","import {\n  getCoreRowModel,\n  getFilteredRowModel,\n  getPaginationRowModel,\n  getSortedRowModel,\n  TableOptions,\n  TableState,\n  useReactTable,\n} from '@tanstack/react-table';\n\nimport { defaultGetRowId } from './defaultGetRowId';\nimport { Table } from './Table';\nimport { NestedTable } from './NestedTable';\nimport { DatatableContent } from './DatatableContent';\nimport { BasicTableSettings, DefaultType } from './types';\n\ninterface Props<D extends DefaultType> {\n  dataset: D[];\n  columns: TableOptions<D>['columns'];\n\n  getRowId?(row: D): string;\n  emptyContentLabel?: string;\n  initialTableState?: Partial<TableState>;\n  isLoading?: boolean;\n  initialSortBy?: BasicTableSettings['sortBy'];\n\n  /**\n   * keyword to filter by\n   */\n  search?: string;\n\n  'aria-label'?: string;\n}\n\nexport function NestedDatatable<D extends DefaultType>({\n  columns,\n  dataset,\n  getRowId = defaultGetRowId,\n  emptyContentLabel,\n  initialTableState = {},\n  isLoading,\n  initialSortBy,\n  search,\n  'aria-label': ariaLabel,\n}: Props<D>) {\n  const tableInstance = useReactTable<D>({\n    columns,\n    data: dataset,\n    initialState: {\n      sorting: initialSortBy ? [initialSortBy] : [],\n      ...initialTableState,\n    },\n    defaultColumn: {\n      enableColumnFilter: false,\n      enableHiding: false,\n    },\n    state: {\n      globalFilter: search,\n    },\n    getRowId,\n    autoResetExpanded: false,\n    getCoreRowModel: getCoreRowModel(),\n    getFilteredRowModel: getFilteredRowModel(),\n    getSortedRowModel: getSortedRowModel(),\n    getPaginationRowModel: getPaginationRowModel(),\n  });\n\n  return (\n    <NestedTable>\n      <Table.Container noWidget>\n        <DatatableContent<D>\n          tableInstance={tableInstance}\n          isLoading={isLoading}\n          emptyContentLabel={emptyContentLabel}\n          renderRow={(row) => <Table.Row<D> cells={row.getVisibleCells()} />}\n          aria-label={ariaLabel}\n        />\n      </Table.Container>\n    </NestedTable>\n  );\n}\n","import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { NestedDatatable } from '@@/datatables/NestedDatatable';\n\nimport { useIsSwarm } from '../../proxy/queries/useInfo';\n\nimport { useColumns } from './columns';\nimport { DecoratedNetwork } from './types';\n\nexport function NestedNetworksDatatable({\n  dataset,\n}: {\n  dataset: Array<DecoratedNetwork>;\n}) {\n  const environmentId = useEnvironmentId();\n  const isSwarm = useIsSwarm(environmentId);\n\n  const columns = useColumns(isSwarm);\n  return (\n    <NestedDatatable\n      columns={columns}\n      dataset={dataset}\n      aria-label=\"Networks table\"\n    />\n  );\n}\n","import { Plus, Network, Trash2 } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { ExpandableDatatable } from '@@/datatables/ExpandableDatatable';\nimport {\n  BasicTableSettings,\n  createPersistedStore,\n  refreshableSettings,\n  RefreshableTableSettings,\n} from '@@/datatables/types';\nimport { Button } from '@@/buttons';\nimport { TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { useRepeater } from '@@/datatables/useRepeater';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { Link } from '@@/Link';\n\nimport { useIsSwarm } from '../../proxy/queries/useInfo';\n\nimport { useColumns } from './columns';\nimport { DecoratedNetwork } from './types';\nimport { NestedNetworksDatatable } from './NestedNetwordsTable';\n\nconst storageKey = 'docker.networks';\n\ninterface TableSettings extends BasicTableSettings, RefreshableTableSettings {}\n\nconst settingsStore = createPersistedStore<TableSettings>(\n  storageKey,\n  'name',\n  (set) => ({\n    ...refreshableSettings(set),\n  })\n);\n\ntype DatasetType = Array<DecoratedNetwork>;\ninterface Props {\n  dataset: DatasetType;\n  onRemove(selectedItems: DatasetType): void;\n  onRefresh(): Promise<void>;\n}\n\nexport function NetworksDatatable({ dataset, onRemove, onRefresh }: Props) {\n  const settings = useTableState(settingsStore, storageKey);\n\n  const environmentId = useEnvironmentId();\n  const isSwarm = useIsSwarm(environmentId);\n\n  const columns = useColumns(isSwarm);\n\n  useRepeater(settings.autoRefreshRate, onRefresh);\n\n  return (\n    <ExpandableDatatable<DecoratedNetwork>\n      settingsManager={settings}\n      title=\"Networks\"\n      titleIcon={Network}\n      dataset={dataset}\n      columns={columns}\n      getRowCanExpand={({ original: item }) =>\n        !!(item.Subs && item.Subs?.length > 0)\n      }\n      isRowSelectable={({ original: item }) => !item.ResourceControl?.System}\n      renderSubRow={(row) => (\n        <>\n          {row.original.Subs && (\n            <tr>\n              <td colSpan={Number.MAX_SAFE_INTEGER}>\n                <NestedNetworksDatatable dataset={row.original.Subs} />\n              </td>\n            </tr>\n          )}\n        </>\n      )}\n      emptyContentLabel=\"No networks available.\"\n      renderTableActions={(selectedRows) => (\n        <div className=\"flex gap-3\">\n          <Authorized\n            authorizations={['DockerNetworkDelete', 'DockerNetworkCreate']}\n          >\n            <Button\n              disabled={selectedRows.length === 0}\n              color=\"dangerlight\"\n              onClick={() => onRemove(selectedRows)}\n              icon={Trash2}\n            >\n              Remove\n            </Button>\n          </Authorized>\n          <Authorized\n            authorizations=\"DockerNetworkCreate\"\n            data-cy=\"network-addNetworkButton\"\n          >\n            <Button icon={Plus} as={Link} props={{ to: '.new' }}>\n              Add network\n            </Button>\n          </Authorized>\n        </div>\n      )}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            onChange={settings.setAutoRefreshRate}\n            value={settings.autoRefreshRate}\n          />\n        </TableSettingsMenu>\n      )}\n      getRowId={(row) => `${row.Name}-${row.Id}`}\n    />\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { TableNetwork } from './types';\n\nexport const columnHelper = createColumnHelper<TableNetwork>();\n","import { ContainerId } from '@/react/docker/containers/types';\nimport axios, {\n  agentTargetHeader,\n  parseAxiosError,\n} from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { NetworkId, DockerNetwork } from './types';\n\ntype NetworkAction = 'connect' | 'disconnect' | 'create';\n\nexport async function getNetwork(\n  environmentId: EnvironmentId,\n  networkId: NetworkId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  try {\n    const { data: network } = await axios.get<DockerNetwork>(\n      buildUrl(environmentId, networkId),\n      nodeName\n        ? {\n            headers: {\n              [agentTargetHeader]: nodeName,\n            },\n          }\n        : undefined\n    );\n    return network;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve network details');\n  }\n}\n\nexport async function deleteNetwork(\n  environmentId: EnvironmentId,\n  networkId: NetworkId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  try {\n    await axios.delete(\n      buildUrl(environmentId, networkId),\n      nodeName\n        ? {\n            headers: {\n              [agentTargetHeader]: nodeName,\n            },\n          }\n        : undefined\n    );\n    return networkId;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to remove network');\n  }\n}\n\nexport async function disconnectContainer(\n  environmentId: EnvironmentId,\n  networkId: NetworkId,\n  containerId: ContainerId,\n  nodeName?: string\n) {\n  try {\n    await axios.post(\n      buildUrl(environmentId, networkId, 'disconnect'),\n      {\n        Container: containerId,\n        Force: false,\n      },\n      nodeName\n        ? {\n            headers: {\n              [agentTargetHeader]: nodeName,\n            },\n          }\n        : undefined\n    );\n    return { networkId, environmentId };\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to disconnect container from network'\n    );\n  }\n}\n\nfunction buildUrl(\n  environmentId: EnvironmentId,\n  networkId?: NetworkId,\n  action?: NetworkAction\n) {\n  let url = `endpoints/${environmentId}/docker/networks`;\n\n  if (networkId) {\n    url += `/${networkId}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","import { useQuery, useMutation, useQueryClient } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  error as notifyError,\n  success as notifySuccess,\n} from '@/portainer/services/notifications';\nimport { ContainerId } from '@/react/docker/containers/types';\n\nimport {\n  getNetwork,\n  deleteNetwork,\n  disconnectContainer,\n} from './network.service';\nimport { NetworkId } from './types';\n\nexport function useNetwork(\n  environmentId: EnvironmentId,\n  networkId: NetworkId,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'docker',\n      'networks',\n      networkId,\n      { nodeName },\n    ],\n    () => getNetwork(environmentId, networkId, { nodeName }),\n    {\n      onError: (err) => {\n        notifyError('Failure', err as Error, 'Unable to get network');\n      },\n    }\n  );\n}\n\nexport function useDeleteNetwork() {\n  return useMutation(\n    ({\n      environmentId,\n      networkId,\n      nodeName,\n    }: {\n      environmentId: EnvironmentId;\n      networkId: NetworkId;\n      nodeName?: string;\n    }) => deleteNetwork(environmentId, networkId, { nodeName }),\n    {\n      onSuccess: (networkId) => {\n        notifySuccess('Network successfully removed', networkId);\n      },\n      onError: (err) => {\n        notifyError('Failure', err as Error, 'Unable to remove network');\n      },\n    }\n  );\n}\n\nexport function useDisconnectContainer() {\n  const client = useQueryClient();\n\n  return useMutation(\n    ({\n      containerId,\n      environmentId,\n      networkId,\n      nodeName,\n    }: {\n      containerId: ContainerId;\n      environmentId: EnvironmentId;\n      networkId: NetworkId;\n      nodeName?: string;\n    }) => disconnectContainer(environmentId, networkId, containerId, nodeName),\n    {\n      onSuccess: ({ networkId, environmentId }) => {\n        notifySuccess('Container successfully disconnected', networkId);\n        return client.invalidateQueries([\n          'environments',\n          environmentId,\n          'docker',\n          'networks',\n          networkId,\n        ]);\n      },\n      onError: (err) => {\n        notifyError(\n          'Failure',\n          err as Error,\n          'Unable to disconnect container from network'\n        );\n      },\n    }\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\nimport { useRouter } from '@uirouter/react';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { useDisconnectContainer } from '@/react/docker/networks/queries';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { LoadingButton } from '@@/buttons';\n\nimport { TableNetwork, isContainerNetworkTableMeta } from './types';\nimport { columnHelper } from './helper';\n\nexport function buildActions({ nodeName }: { nodeName?: string } = {}) {\n  return columnHelper.display({\n    header: 'Actions',\n    cell: Cell,\n  });\n\n  function Cell({\n    row,\n    table: {\n      options: { meta },\n    },\n  }: CellContext<TableNetwork, unknown>) {\n    const router = useRouter();\n    const environmentId = useEnvironmentId();\n    const disconnectMutation = useDisconnectContainer();\n\n    return (\n      <Authorized authorizations=\"DockerNetworkDisconnect\">\n        <LoadingButton\n          color=\"dangerlight\"\n          isLoading={disconnectMutation.isLoading}\n          loadingText=\"Leaving network...\"\n          type=\"button\"\n          onClick={handleSubmit}\n        >\n          Leave network\n        </LoadingButton>\n      </Authorized>\n    );\n\n    function handleSubmit() {\n      if (!isContainerNetworkTableMeta(meta)) {\n        throw new Error('Invalid row meta');\n      }\n\n      disconnectMutation.mutate(\n        {\n          environmentId,\n          networkId: row.original.id,\n          containerId: meta.containerId,\n          nodeName,\n        },\n        {\n          onSuccess() {\n            router.stateService.reload();\n          },\n        }\n      );\n    }\n  }\n}\n","import { TableMeta } from '@tanstack/react-table';\nimport { EndpointSettings } from 'docker-types/generated/1.41';\n\nexport type TableNetwork = EndpointSettings & { id: string; name: string };\n\nexport type ContainerNetworkTableMeta = TableMeta<TableNetwork> & {\n  table: 'container-networks';\n  containerId: string;\n};\n\nexport function isContainerNetworkTableMeta(\n  meta?: TableMeta<TableNetwork>\n): meta is ContainerNetworkTableMeta {\n  return !!meta && meta.table === 'container-networks';\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl as buildDockerUrl } from '../../proxy/queries/build-url';\nimport { NetworkId } from '../types';\n\nexport function buildUrl(\n  environmentId: EnvironmentId,\n  { id, action }: { id?: NetworkId; action?: string } = {}\n) {\n  let baseUrl = 'networks';\n  if (id) {\n    baseUrl += `/${id}`;\n  }\n\n  if (action) {\n    baseUrl += `/${action}`;\n  }\n\n  return buildDockerUrl(environmentId, baseUrl);\n}\n","import { EndpointSettings } from 'docker-types/generated/1.41';\nimport { RawAxiosRequestHeaders } from 'axios';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { queryKeys as dockerQueryKeys } from '../../queries/utils';\n\nimport { buildUrl } from './buildUrl';\n\ninterface ConnectContainerPayload {\n  Container: string;\n  EndpointConfig?: EndpointSettings;\n}\n\nexport function useConnectContainerMutation(environmentId: EnvironmentId) {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    (params: Omit<ConnectContainer, 'environmentId'>) =>\n      connectContainer({ ...params, environmentId }),\n    mutationOptions(\n      withError('Failed connecting container to network'),\n      withInvalidate(queryClient, [dockerQueryKeys.containers(environmentId)])\n    )\n  );\n}\n\ninterface ConnectContainer {\n  environmentId: EnvironmentId;\n  networkId: string;\n  containerId: string;\n  aliases?: EndpointSettings['Aliases'];\n  nodeName?: string;\n}\n\nexport async function connectContainer({\n  environmentId,\n  containerId,\n  networkId,\n  aliases,\n  nodeName,\n}: ConnectContainer) {\n  const payload: ConnectContainerPayload = {\n    Container: containerId,\n  };\n  if (aliases) {\n    payload.EndpointConfig = {\n      Aliases: aliases,\n    };\n  }\n\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  try {\n    await axios.post(\n      buildUrl(environmentId, { id: networkId, action: 'connect' }),\n      payload\n    );\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to connect container');\n  }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys as dockerQueryKeys } from '../../queries/utils';\n\nimport { NetworksQuery } from './types';\n\nexport const queryKeys = {\n  base: (environmentId: EnvironmentId) =>\n    [...dockerQueryKeys.root(environmentId), 'networks'] as const,\n  list: (environmentId: EnvironmentId, query: NetworksQuery) =>\n    [...queryKeys.base(environmentId), 'list', query] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from '../../proxy/queries/build-url';\nimport { DockerNetwork } from '../types';\n\nimport { queryKeys } from './queryKeys';\nimport { NetworksQuery } from './types';\n\nexport function useNetworks<T = Array<DockerNetwork>>(\n  environmentId: EnvironmentId,\n  query: NetworksQuery,\n  {\n    enabled = true,\n    onSuccess,\n    select,\n  }: {\n    enabled?: boolean;\n    onSuccess?(networks: T): void;\n    select?(networks: Array<DockerNetwork>): T;\n  } = {}\n) {\n  return useQuery(\n    queryKeys.list(environmentId, query),\n    () => getNetworks(environmentId, query),\n    { enabled, onSuccess, select }\n  );\n}\n\nexport async function getNetworks(\n  environmentId: EnvironmentId,\n  { local, swarm, swarmAttachable, filters }: NetworksQuery\n) {\n  try {\n    const { data } = await axios.get<Array<DockerNetwork>>(\n      buildUrl(environmentId, 'networks'),\n      filters && {\n        params: {\n          filters,\n        },\n      }\n    );\n\n    return !local && !swarm && !swarmAttachable\n      ? data\n      : data.filter(\n          (network) =>\n            (local && network.Scope === 'local') ||\n            (swarm && network.Scope === 'swarm') ||\n            (swarmAttachable &&\n              network.Scope === 'swarm' &&\n              network.Attachable === true)\n        );\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve networks');\n  }\n}\n","import { useMemo } from 'react';\n\nimport { useNetworks } from '@/react/docker/networks/queries/useNetworks';\nimport { DockerNetwork } from '@/react/docker/networks/types';\nimport { useIsSwarm } from '@/react/docker/proxy/queries/useInfo';\nimport { useApiVersion } from '@/react/docker/proxy/queries/useVersion';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Option, PortainerSelect } from '@@/form-components/PortainerSelect';\n\nexport function NetworkSelector({\n  onChange,\n  additionalOptions = [],\n  value,\n  hiddenNetworks = [],\n}: {\n  value: string;\n  additionalOptions?: Array<Option<string>>;\n  onChange: (value: string) => void;\n  hiddenNetworks?: string[];\n}) {\n  const networksQuery = useNetworksForSelector({\n    select(networks) {\n      return networks.map((n) => ({ label: n.Name, value: n.Name }));\n    },\n  });\n\n  const networks = networksQuery.data;\n\n  const options = useMemo(\n    () =>\n      (networks || [])\n        .concat(additionalOptions)\n        .filter((n) => !hiddenNetworks.includes(n.value))\n        .sort((a, b) => a.label.localeCompare(b.label)),\n    [additionalOptions, hiddenNetworks, networks]\n  );\n\n  return (\n    <PortainerSelect\n      value={value}\n      onChange={onChange}\n      options={options}\n      isLoading={networksQuery.isLoading}\n      bindToBody\n      placeholder=\"Select a network\"\n    />\n  );\n}\n\nexport function useNetworksForSelector<T = DockerNetwork[]>({\n  select,\n}: {\n  select?(networks: Array<DockerNetwork>): T;\n} = {}) {\n  const environmentId = useEnvironmentId();\n\n  const isSwarmQuery = useIsSwarm(environmentId);\n  const dockerApiVersion = useApiVersion(environmentId);\n\n  return useNetworks(\n    environmentId,\n    {\n      local: true,\n      swarmAttachable: isSwarmQuery && dockerApiVersion >= 1.25,\n    },\n    {\n      select,\n    }\n  );\n}\n","import { Form, Formik } from 'formik';\nimport { SchemaOf, object, string } from 'yup';\nimport { useRouter } from '@uirouter/react';\n\nimport { useAuthorizations } from '@/react/hooks/useUser';\nimport { useConnectContainerMutation } from '@/react/docker/networks/queries/useConnectContainer';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { LoadingButton } from '@@/buttons';\n\nimport { NetworkSelector } from '../../components/NetworkSelector';\n\ninterface FormValues {\n  networkId: string;\n}\n\nexport function ConnectNetworkForm({\n  nodeName,\n  containerId,\n  selectedNetworks,\n}: {\n  nodeName?: string;\n  containerId: string;\n  selectedNetworks: string[];\n}) {\n  const environmentId = useEnvironmentId();\n  const { authorized } = useAuthorizations('DockerNetworkConnect');\n  const connectMutation = useConnectContainerMutation(environmentId);\n  const router = useRouter();\n  if (!authorized) {\n    return null;\n  }\n\n  return (\n    <Formik<FormValues>\n      initialValues={{ networkId: '' }}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n    >\n      {({ values, errors, setFieldValue }) => (\n        <Form className=\"form-horizontal w-full\">\n          <FormControl\n            label=\"Join a network\"\n            className=\"!mb-0\"\n            errors={errors.networkId}\n          >\n            <div className=\"flex items-center gap-4\">\n              <div className=\"w-full\">\n                <NetworkSelector\n                  value={values.networkId}\n                  onChange={(value) => setFieldValue('networkId', value)}\n                  hiddenNetworks={selectedNetworks}\n                />\n              </div>\n              <LoadingButton\n                loadingText=\"Joining network...\"\n                isLoading={connectMutation.isLoading}\n              >\n                Join Network\n              </LoadingButton>\n            </div>\n          </FormControl>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit({ networkId }: { networkId: string }) {\n    connectMutation.mutate(\n      { containerId, networkId, nodeName },\n      {\n        onSuccess() {\n          router.stateService.reload();\n        },\n      }\n    );\n  }\n}\n\nfunction validation(): SchemaOf<FormValues> {\n  return object({\n    networkId: string().required('Please select a network'),\n  });\n}\n","import { useMemo } from 'react';\nimport { Network } from 'lucide-react';\nimport { EndpointSettings, NetworkSettings } from 'docker-types/generated/1.41';\n\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { ExpandableDatatable } from '@@/datatables/ExpandableDatatable';\nimport { withMeta } from '@@/datatables/extend-options/withMeta';\n\nimport { DockerContainer } from '../../types';\n\nimport { TableNetwork } from './types';\nimport { buildColumns } from './columns';\nimport { ConnectNetworkForm } from './ConnectNetworkForm';\n\nconst storageKey = 'container-networks';\nconst store = createPersistedStore(storageKey, 'name');\n\nexport function ContainerNetworksDatatable({\n  dataset,\n  container,\n  nodeName,\n}: {\n  dataset: NetworkSettings['Networks'];\n  container: DockerContainer;\n  nodeName?: string;\n}) {\n  const tableState = useTableState(store, storageKey);\n  const columns = useMemo(() => buildColumns({ nodeName }), [nodeName]);\n\n  const networks: Array<TableNetwork> = Object.entries(dataset || {})\n    .filter(isNetworkDefined)\n    .map(([id, network]) => ({\n      ...network,\n      id,\n      name: id,\n    }));\n\n  return (\n    <ExpandableDatatable<TableNetwork>\n      columns={columns}\n      dataset={networks}\n      settingsManager={tableState}\n      title=\"Connected Networks\"\n      titleIcon={Network}\n      disableSelect\n      getRowCanExpand={(row) => !!row.original.GlobalIPv6Address}\n      isLoading={!dataset}\n      renderSubRow={({ original: item }) => (\n        <tr className=\"datatable-highlighted\">\n          <td colSpan={2} />\n          <td>{item.GlobalIPv6Address}</td>\n          <td colSpan={3}>{item.IPv6Gateway || '-'}</td>\n        </tr>\n      )}\n      description={\n        <ConnectNetworkForm\n          containerId={container.Id}\n          nodeName={nodeName}\n          selectedNetworks={networks.map((n) => n.id)}\n        />\n      }\n      extendTableOptions={withMeta({\n        table: 'container-networks',\n        containerId: container.Id,\n      })}\n    />\n  );\n}\n\nfunction isNetworkDefined(\n  value: [string, EndpointSettings | undefined]\n): value is [string, EndpointSettings] {\n  return value.length > 1 && !!value[1];\n}\n","import angular from 'angular';\n\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { r2a } from '@/react-tools/react2angular';\nimport { ContainerNetworksDatatable } from '@/react/docker/containers/ItemView/ContainerNetworksDatatable';\n\nconst ngModule = angular\n  .module('portainer.docker.react.components.containers', [])\n  .component(\n    'dockerContainerNetworksDatatable',\n    r2a(withUIRouter(withCurrentUser(ContainerNetworksDatatable)), [\n      'container',\n      'dataset',\n      'nodeName',\n    ])\n  );\n\nexport const containersModule = ngModule.name;\n","import { buildExpandColumn } from '@@/datatables/expand-column';\nimport { buildNameColumnFromObject } from '@@/datatables/buildNameColumn';\n\nimport { TableNetwork } from './types';\nimport { columnHelper } from './helper';\nimport { buildActions } from './actions';\n\nexport function buildColumns({ nodeName }: { nodeName?: string } = {}) {\n  return [\n    buildExpandColumn<TableNetwork>(),\n    {\n      ...buildNameColumnFromObject<TableNetwork>({\n        nameKey: 'name',\n        path: 'docker.networks.network',\n        linkParamsBuilder: () => ({ nodeName }),\n      }),\n      header: 'Network',\n    },\n    columnHelper.accessor((item) => item.IPAddress || '-', {\n      header: 'IP Address',\n      id: 'ip',\n      enableSorting: false,\n    }),\n    columnHelper.accessor((item) => item.Gateway || '-', {\n      header: 'Gateway',\n      id: 'gateway',\n      enableSorting: false,\n    }),\n    columnHelper.accessor((item) => item.MacAddress || '-', {\n      header: 'MAC Address',\n      id: 'macAddress',\n      enableSorting: false,\n    }),\n    buildActions({ nodeName }),\n  ];\n}\n","import { TableOptions } from '@tanstack/react-table';\n\ntype OptionExtender<T> = (options: TableOptions<T>) => TableOptions<T>;\n\nexport function mergeOptions<T>(\n  ...extenders: Array<OptionExtender<T>>\n): OptionExtender<T> {\n  return (options: TableOptions<T>) =>\n    extenders.reduce((acc, option) => option(acc), options);\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { ServiceViewModel } from '@/docker/models/service';\n\nexport const columnHelper = createColumnHelper<ServiceViewModel>();\n","import { CellContext } from '@tanstack/react-table';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { ImageStatus } from '@/react/docker/components/ImageStatus';\nimport { hideShaSum } from '@/docker/filters/utils';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { ResourceType } from '@/react/docker/components/ImageStatus/types';\nimport { ImageUpToDateTooltip } from '@/react/docker/components/datatable/TableColumnHeaderImageUpToDate';\n\nimport { columnHelper } from './helper';\n\nexport const image = columnHelper.accessor((item) => item.Image, {\n  id: 'image',\n  header: Header,\n  cell: Cell,\n});\n\nfunction Header() {\n  return (\n    <>\n      Image\n      <ImageUpToDateTooltip />\n    </>\n  );\n}\n\nfunction Cell({\n  getValue,\n  row: { original: item },\n}: CellContext<ServiceViewModel, string>) {\n  const value = hideShaSum(getValue());\n  const environmentId = useEnvironmentId();\n  return (\n    <>\n      <ImageStatus\n        resourceId={item.Id || ''}\n        resourceType={ResourceType.SERVICE}\n        environmentId={environmentId}\n      />\n      {value}\n    </>\n  );\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl as buildProxyUrl } from '../build-url';\n\nexport function buildUrl(\n  environmentId: EnvironmentId,\n  action?: string,\n  subAction = ''\n) {\n  return buildProxyUrl(\n    environmentId,\n    'nodes',\n    subAction ? `${action}/${subAction}` : action\n  );\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport const queryKeys = {\n  base: (environmentId: EnvironmentId) =>\n    [environmentId, 'docker', 'proxy'] as const,\n};\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys as proxyQueryKeys } from '../query-keys';\n\nexport const queryKeys = {\n  base: (environmentId: EnvironmentId) =>\n    [...proxyQueryKeys.base(environmentId), 'nodes'] as const,\n};\n","import { Node } from 'docker-types/generated/1.41';\nimport { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\nexport function useNodes(environmentId: EnvironmentId) {\n  return useQuery(queryKeys.base(environmentId), () => getNodes(environmentId));\n}\n\nasync function getNodes(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<Array<Node>>(buildUrl(environmentId));\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error, 'Unable to retrieve nodes');\n  }\n}\n","import { Node } from 'docker-types/generated/1.41';\n\nimport { ServiceViewModel } from '@/docker/models/service';\n\nclass ConstraintModel {\n  op: string;\n\n  value: string;\n\n  key: string;\n\n  constructor(op: string, key: string, value: string) {\n    this.op = op;\n    this.value = value;\n    this.key = key;\n  }\n}\n\nconst patterns = {\n  id: {\n    nodeId: 'node.id',\n    nodeHostname: 'node.hostname',\n    nodeRole: 'node.role',\n    nodeLabels: 'node.labels.',\n    engineLabels: 'engine.labels.',\n  },\n  op: {\n    eq: '==',\n    neq: '!=',\n  },\n} as const;\n\nfunction matchesConstraint(\n  value: string | undefined,\n  constraint?: ConstraintModel\n) {\n  if (\n    !constraint ||\n    (constraint.op === patterns.op.eq && value === constraint.value) ||\n    (constraint.op === patterns.op.neq && value !== constraint.value)\n  ) {\n    return true;\n  }\n  return false;\n}\n\nfunction matchesLabel(\n  labels: Record<string, string> | undefined,\n  constraint?: ConstraintModel\n) {\n  if (!constraint) {\n    return true;\n  }\n  return Object.entries(labels || {}).some(\n    ([key, value]) => key === constraint.key && value === constraint.value\n  );\n}\n\nfunction extractValue(constraint: string, op: string) {\n  return constraint.split(op).pop()?.trim() || '';\n}\n\nfunction extractCustomLabelKey(\n  constraint: string,\n  op: string,\n  baseLabelKey: string\n) {\n  return constraint.split(op).shift()?.trim().replace(baseLabelKey, '') || '';\n}\n\ninterface Constraint {\n  nodeId?: ConstraintModel;\n  nodeHostname?: ConstraintModel;\n  nodeRole?: ConstraintModel;\n  nodeLabels?: ConstraintModel;\n  engineLabels?: ConstraintModel;\n}\n\nfunction transformConstraints(constraints: Array<string>) {\n  const transform: Constraint = {};\n  for (let i = 0; i < constraints.length; i++) {\n    const constraint = constraints[i];\n\n    let op = '';\n    if (constraint.includes(patterns.op.eq)) {\n      op = patterns.op.eq;\n    } else if (constraint.includes(patterns.op.neq)) {\n      op = patterns.op.neq;\n    }\n\n    const value = extractValue(constraint, op);\n    let key = '';\n    switch (true) {\n      case constraint.includes(patterns.id.nodeId):\n        transform.nodeId = new ConstraintModel(op, key, value);\n        break;\n      case constraint.includes(patterns.id.nodeHostname):\n        transform.nodeHostname = new ConstraintModel(op, key, value);\n        break;\n      case constraint.includes(patterns.id.nodeRole):\n        transform.nodeRole = new ConstraintModel(op, key, value);\n        break;\n      case constraint.includes(patterns.id.nodeLabels):\n        key = extractCustomLabelKey(constraint, op, patterns.id.nodeLabels);\n        transform.nodeLabels = new ConstraintModel(op, key, value);\n        break;\n      case constraint.includes(patterns.id.engineLabels):\n        key = extractCustomLabelKey(constraint, op, patterns.id.engineLabels);\n        transform.engineLabels = new ConstraintModel(op, key, value);\n        break;\n      default:\n        break;\n    }\n  }\n  return transform;\n}\n\nexport function matchesServiceConstraints(\n  service: ServiceViewModel,\n  node: Node\n) {\n  if (service.Constraints === undefined || service.Constraints.length === 0) {\n    return true;\n  }\n  const constraints = transformConstraints([...service.Constraints]);\n  return (\n    matchesConstraint(node.ID, constraints.nodeId) &&\n    matchesConstraint(node.Description?.Hostname, constraints.nodeHostname) &&\n    matchesConstraint(node.Spec?.Role, constraints.nodeRole) &&\n    matchesLabel(node.Spec?.Labels, constraints.nodeLabels) &&\n    matchesLabel(node.Description?.Engine?.Labels, constraints.engineLabels)\n  );\n}\n","import { Registry } from '@/react/portainer/registries/types/registry';\n\n/**\n * Encodes the registry credentials in base64\n * @param registryId\n * @returns\n */\nexport function encodeRegistryCredentials(registryId: Registry['Id']) {\n  const credentials = {\n    registryId,\n  };\n\n  return window.btoa(JSON.stringify(credentials));\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function urlBuilder(\n  endpointId: EnvironmentId,\n  id?: string,\n  action?: string\n) {\n  let url = `/endpoints/${endpointId}/docker/services`;\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys as dockerQueryKeys } from '../../queries/utils';\n\nexport const queryKeys = {\n  list: (environmentId: EnvironmentId) =>\n    [...dockerQueryKeys.root(environmentId), 'services'] as const,\n\n  service: (environmentId: EnvironmentId, id: string) =>\n    [...queryKeys.list(environmentId), id] as const,\n};\n","import {\n  TaskSpec,\n  ServiceSpec,\n  ServiceUpdateResponse,\n} from 'docker-types/generated/1.41';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { mutationOptions, withError } from '@/react-tools/react-query';\n\nimport { encodeRegistryCredentials } from '../../images/queries/encodeRegistryCredentials';\nimport { urlBuilder } from '../axios/urlBuilder';\n\nimport { queryKeys } from './query-keys';\n\nexport function useUpdateServiceMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    updateService,\n    mutationOptions(\n      {\n        onSuccess(data, { environmentId }) {\n          return queryClient.invalidateQueries(queryKeys.list(environmentId));\n        },\n      },\n      withError('Unable to update service')\n    )\n  );\n}\n\nasync function updateService({\n  environmentId,\n  serviceId,\n  config,\n  rollback,\n  version,\n  registryId,\n}: {\n  environmentId: EnvironmentId;\n  serviceId: string;\n  config: ServiceUpdateConfig;\n  rollback?: 'previous';\n  version: number;\n  registryId?: number;\n}) {\n  try {\n    const { data } = await axios.post<ServiceUpdateResponse>(\n      urlBuilder(environmentId, serviceId, 'update'),\n      config,\n      {\n        params: {\n          rollback,\n          version,\n        },\n        ...(registryId\n          ? {\n              headers: {\n                'X-Registry-Id': encodeRegistryCredentials(registryId),\n              },\n            }\n          : {}),\n      }\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to update service');\n  }\n}\n\nexport interface ServiceUpdateConfig {\n  Name: string;\n  Labels: Record<string, string>;\n  TaskTemplate: TaskSpec;\n  Mode: ServiceSpec['Mode'];\n  UpdateConfig: ServiceSpec['UpdateConfig'];\n  Networks: ServiceSpec['Networks'];\n  EndpointSpec: ServiceSpec['EndpointSpec'];\n}\n","import { Formik, Form } from 'formik';\nimport { X, CheckSquare } from 'lucide-react';\nimport { useRouter } from '@uirouter/react';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { useUpdateServiceMutation } from '@/react/docker/services/queries/useUpdateServiceMutation';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { convertServiceToConfig } from '@/react/docker/services/common/convertServiceToConfig';\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { Button, LoadingButton } from '@@/buttons';\n\nexport function ScaleForm({\n  onClose,\n  service,\n}: {\n  onClose: () => void;\n  service: ServiceViewModel;\n}) {\n  const environmentId = useEnvironmentId();\n  const mutation = useUpdateServiceMutation();\n  const router = useRouter();\n  return (\n    <Formik\n      initialValues={{ replicas: service.Replicas || 0 }}\n      onSubmit={handleSubmit}\n    >\n      {({ values, setFieldValue }) => (\n        <Form>\n          <input\n            className=\"input-sm w-20\"\n            type=\"number\"\n            min={0}\n            step={1}\n            value={Number.isNaN(values.replicas) ? '' : values.replicas}\n            onKeyUp={(event) => {\n              if (event.key === 'Escape') {\n                onClose();\n              }\n            }}\n            onChange={(event) => {\n              setFieldValue('replicas', event.target.valueAsNumber);\n            }}\n            // disabled because it makes sense to auto focus once the form is mounted\n            // eslint-disable-next-line jsx-a11y/no-autofocus\n            autoFocus\n          />\n          <Button color=\"none\" icon={X} onClick={() => onClose()} />\n          <LoadingButton\n            isLoading={mutation.isLoading}\n            disabled={\n              values.replicas === service.Replicas ||\n              values.replicas < 0 ||\n              Number.isNaN(values.replicas)\n            }\n            loadingText=\"Scaling...\"\n            color=\"none\"\n            icon={CheckSquare}\n            type=\"submit\"\n          />\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit({ replicas }: { replicas: number }) {\n    const config = convertServiceToConfig(service.Model);\n    mutation.mutate(\n      {\n        serviceId: service.Id,\n        config: {\n          ...config,\n          Mode: {\n            ...config.Mode,\n            Replicated: {\n              ...config.Mode?.Replicated,\n              Replicas: replicas,\n            },\n          },\n        },\n        environmentId,\n        version: service.Version || 0,\n      },\n      {\n        onSuccess() {\n          onClose();\n          notifySuccess(\n            'Service successfully scaled',\n            `New replica count: ${replicas}`\n          );\n          router.stateService.reload();\n        },\n      }\n    );\n  }\n}\n","import { Minimize2 } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Button } from '@@/buttons';\n\nimport { ScaleForm } from './ScaleForm';\n\nexport function ScaleServiceButton({ service }: { service: ServiceViewModel }) {\n  const [isEdit, setIsEdit] = useState(false);\n\n  if (!isEdit) {\n    return (\n      <Authorized authorizations=\"DockerServiceUpdate\">\n        <Button color=\"none\" icon={Minimize2} onClick={() => setIsEdit(true)}>\n          Scale\n        </Button>\n      </Authorized>\n    );\n  }\n\n  return <ScaleForm onClose={() => setIsEdit(false)} service={service} />;\n}\n","import { CellContext } from '@tanstack/react-table';\nimport { Node } from 'docker-types/generated/1.41';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { useNodes } from '@/react/docker/proxy/queries/nodes/useNodes';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { TaskViewModel } from '@/docker/models/task';\n\nimport { columnHelper } from '../helper';\n\nimport { matchesServiceConstraints } from './constraint-helper';\nimport { ScaleServiceButton } from './ScaleServiceButton';\n\nexport const schedulingMode = columnHelper.accessor('Mode', {\n  header: 'Scheduling Mode',\n  cell: Cell,\n  enableHiding: false,\n});\n\nfunction Cell({\n  getValue,\n  row: { original: item },\n}: CellContext<ServiceViewModel, string>) {\n  const environmentId = useEnvironmentId();\n  const nodesQuery = useNodes(environmentId);\n\n  if (!nodesQuery.data) {\n    return null;\n  }\n\n  const mode = getValue();\n  return (\n    <div className=\"flex items-center gap-3\">\n      {mode}\n      <code>{totalRunningTasks(item.Tasks)}</code> /{' '}\n      <code>\n        {mode === 'replicated'\n          ? item.Replicas\n          : availableNodeCount(nodesQuery.data, item)}\n      </code>\n      {mode === 'replicated' && <ScaleServiceButton service={item} />}\n    </div>\n  );\n}\n\nfunction totalRunningTasks(tasks: Array<TaskViewModel>) {\n  return tasks.filter(\n    (task) =>\n      task.Status?.State === 'running' && task.DesiredState === 'running'\n  ).length;\n}\n\nfunction availableNodeCount(nodes: Array<Node>, service: ServiceViewModel) {\n  let availableNodes = 0;\n  for (let i = 0; i < nodes.length; i++) {\n    const node = nodes[i];\n    if (\n      node.Spec?.Availability === 'active' &&\n      node.Status?.State === 'ready' &&\n      matchesServiceConstraints(service, node)\n    ) {\n      availableNodes++;\n    }\n  }\n  return availableNodes;\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { PublishedPortLink } from '@/react/docker/components/ImageStatus/PublishedPortLink';\n\nimport { columnHelper } from './helper';\n\nexport const ports = columnHelper.accessor(\n  (row) =>\n    (row.Ports || [])\n      .filter((port) => port.PublishedPort)\n      .map((port) => `${port.PublishedPort}:${port.TargetPort}`)\n      .join(','),\n  {\n    header: 'Published Ports',\n    id: 'ports',\n    cell: Cell,\n  }\n);\n\nfunction Cell({\n  row: { original: item },\n}: CellContext<ServiceViewModel, string>) {\n  const environmentQuery = useCurrentEnvironment();\n\n  if (!environmentQuery.data) {\n    return null;\n  }\n\n  const ports = item.Ports || [];\n\n  if (ports.length === 0) {\n    return '-';\n  }\n\n  return ports\n    .filter((port) => port.PublishedPort)\n    .map((port) => (\n      <PublishedPortLink\n        hostPort={port.PublishedPort}\n        containerPort={port.TargetPort}\n        hostURL={environmentQuery.data.PublicURL}\n      />\n    ));\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DecoratedTask } from '../types';\n\nexport const columnHelper = createColumnHelper<DecoratedTask>();\n","import clsx from 'clsx';\n\nimport { taskStatusBadge } from '@/docker/filters/utils';\n\nimport { multiple } from '@@/datatables/filter-types';\nimport { filterHOC } from '@@/datatables/Filter';\n\nimport { columnHelper } from './helper';\n\nexport const status = columnHelper.accessor((item) => item.Status?.State, {\n  header: 'Status',\n  enableColumnFilter: true,\n  filterFn: multiple,\n  meta: {\n    filter: filterHOC('Filter by state'),\n    width: 100,\n  },\n  cell({ getValue }) {\n    const value = getValue();\n\n    return (\n      <span className={clsx('label', `label-${taskStatusBadge(value)}`)}>\n        {value}\n      </span>\n    );\n  },\n});\n","import { FileText, Info } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\ninterface State {\n  showQuickActionInspect: boolean;\n  showQuickActionLogs: boolean;\n}\n\nexport function TaskTableQuickActions({\n  taskId,\n  state = {\n    showQuickActionInspect: true,\n    showQuickActionLogs: true,\n  },\n}: {\n  taskId: string;\n  state?: State;\n}) {\n  return (\n    <div className=\"inline-flex space-x-1\">\n      {state.showQuickActionLogs && (\n        <Authorized authorizations=\"DockerTaskLogs\">\n          <Link\n            to=\"docker.tasks.task.logs\"\n            params={{ id: taskId }}\n            title=\"Logs\"\n          >\n            <Icon icon={FileText} className=\"space-right\" />\n          </Link>\n        </Authorized>\n      )}\n\n      {state.showQuickActionInspect && (\n        <Authorized authorizations=\"DockerTaskInspect\">\n          <Link to=\"docker.tasks.task\" params={{ id: taskId }} title=\"Inspect\">\n            <Icon icon={Info} className=\"space-right\" />\n          </Link>\n        </Authorized>\n      )}\n    </div>\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { ContainerQuickActions } from '@/react/docker/containers/components/ContainerQuickActions';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { isAgentEnvironment } from '@/react/portainer/environments/utils';\nimport { QuickActionsState } from '@/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions';\nimport { TaskTableQuickActions } from '@/react/docker/services/common/TaskTableQuickActions';\n\nimport { DecoratedTask } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const actions = columnHelper.display({\n  header: 'Actions',\n  cell: Cell,\n});\n\nfunction Cell({\n  row: { original: item },\n}: CellContext<DecoratedTask, unknown>) {\n  const environmentQuery = useCurrentEnvironment();\n\n  if (!environmentQuery.data) {\n    return null;\n  }\n  const state: QuickActionsState = {\n    showQuickActionAttach: false,\n    showQuickActionExec: true,\n    showQuickActionInspect: true,\n    showQuickActionLogs: true,\n    showQuickActionStats: true,\n  };\n  const isAgent = isAgentEnvironment(environmentQuery.data.Type);\n\n  return isAgent && item.Container ? (\n    <ContainerQuickActions\n      containerId={item.Container.Id}\n      nodeName={item.Container.NodeName}\n      status={item.Container.Status}\n      state={state}\n    />\n  ) : (\n    <TaskTableQuickActions taskId={item.Id} />\n  );\n}\n","import { columnHelper } from './helper';\n\nexport const slot = columnHelper.accessor((item) => item.Slot || '-', {\n  header: 'Slot',\n});\n","import { Node } from 'docker-types/generated/1.41';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { useNodes } from '@/react/docker/proxy/queries/nodes/useNodes';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { DecoratedTask } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const node = columnHelper.accessor('NodeId', {\n  header: 'Node',\n  cell: Cell,\n});\n\nfunction Cell({ getValue }: CellContext<DecoratedTask, string>) {\n  const environmentId = useEnvironmentId();\n\n  const nodesQuery = useNodes(environmentId);\n\n  const nodes = nodesQuery.data || [];\n  return getNodeName(getValue(), nodes);\n}\n\nfunction getNodeName(nodeId: string, nodes: Array<Node>) {\n  const node = nodes.find((node) => node.ID === nodeId);\n  if (node?.Description?.Hostname) {\n    return node.Description.Hostname;\n  }\n\n  return '';\n}\n","import { isoDate } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const updated = columnHelper.accessor('Updated', {\n  header: 'Last Update',\n  cell: ({ getValue }) => isoDate(getValue()),\n});\n","import { CellContext } from '@tanstack/react-table';\n\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { isAgentEnvironment } from '@/react/portainer/environments/utils';\nimport { DecoratedTask } from '@/react/docker/services/ItemView/TasksDatatable/types';\nimport { columnHelper } from '@/react/docker/services/ItemView/TasksDatatable/columns/helper';\n\nimport { Link } from '@@/Link';\n\nexport const task = columnHelper.accessor('Id', {\n  header: 'Task',\n  cell: Cell,\n});\n\nfunction Cell({\n  getValue,\n  row: { original: item },\n}: CellContext<DecoratedTask, string>) {\n  const environmentQuery = useCurrentEnvironment();\n\n  if (!environmentQuery.data) {\n    return null;\n  }\n\n  const value = getValue();\n  const isAgent = isAgentEnvironment(environmentQuery.data.Type);\n\n  return isAgent && item.Container ? (\n    <Link\n      to=\"docker.containers.container\"\n      params={{ id: item.Container.Id, nodeName: item.Container.NodeName }}\n      className=\"monospaced\"\n    >\n      {value}\n    </Link>\n  ) : (\n    <Link\n      to=\"docker.tasks.task\"\n      params={{ id: item.Id }}\n      className=\"monospaced\"\n    >\n      {value}\n    </Link>\n  );\n}\n","import { DecoratedTask } from '@/react/docker/services/ItemView/TasksDatatable/types';\nimport { status } from '@/react/docker/services/ItemView/TasksDatatable/columns/status';\nimport { actions } from '@/react/docker/services/ItemView/TasksDatatable/columns/actions';\nimport { slot } from '@/react/docker/services/ItemView/TasksDatatable/columns/slot';\nimport { node } from '@/react/docker/services/ItemView/TasksDatatable/columns/node';\nimport { updated } from '@/react/docker/services/ItemView/TasksDatatable/columns/updated';\n\nimport { NestedDatatable } from '@@/datatables/NestedDatatable';\n\nimport { task } from './task-column';\n\nconst columns = [status, task, actions, slot, node, updated];\n\nexport function TasksDatatable({\n  dataset,\n  search,\n}: {\n  dataset: DecoratedTask[];\n  search?: string;\n}) {\n  return (\n    <NestedDatatable\n      columns={columns}\n      dataset={dataset}\n      search={search}\n      emptyContentLabel=\"No task matching filter.\"\n      aria-label=\"Tasks table\"\n    />\n  );\n}\n","export function buildUrl(webhookId?: string) {\n  const baseUrl = '/webhooks';\n  return webhookId ? `${baseUrl}/${webhookId}` : baseUrl;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from './build-url';\nimport { Webhook } from './types';\n\nexport async function getWebhooks(\n  environmentId: EnvironmentId,\n  serviceId: string\n) {\n  try {\n    const { data } = await axios.get<Array<Webhook>>(buildUrl(), {\n      params: {\n        filters: JSON.stringify({\n          EndpointID: environmentId,\n          ResourceID: serviceId,\n        }),\n      },\n    });\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\n\nimport { getWebhooks } from './getWebhooks';\nimport { Webhook } from './types';\nimport { buildUrl } from './build-url';\n\nexport async function removeWebhooksForService(\n  environmentId: EnvironmentId,\n  serviceId: string\n) {\n  const webhooks = await getWebhooks(environmentId, serviceId);\n  return promiseSequence(\n    webhooks.map((webhook) => () => removeWebhook(webhook.Id))\n  );\n}\n\nexport async function removeWebhook(webhookId: Webhook['Id']) {\n  try {\n    await axios.delete(buildUrl(webhookId));\n  } catch (err) {\n    throw parseAxiosError(err);\n  }\n}\n","import { useMutation } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { withError } from '@/react-tools/react-query';\n\nimport { urlBuilder } from '../../axios/urlBuilder';\nimport { removeWebhooksForService } from '../../webhooks/removeWebhook';\n\nexport function useRemoveServicesMutation(environmentId: EnvironmentId) {\n  return useMutation(\n    (ids: Array<string>) =>\n      promiseSequence(ids.map((id) => () => removeService(environmentId, id))),\n    withError('Unable to remove services')\n  );\n}\n\nasync function removeService(environmentId: EnvironmentId, serviceId: string) {\n  try {\n    await axios.delete(urlBuilder(environmentId, serviceId));\n\n    await removeWebhooksForService(environmentId, serviceId);\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n","import { Trash2, Plus, RefreshCw } from 'lucide-react';\nimport { useRouter } from '@uirouter/react';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { Authorized } from '@/react/hooks/useUser';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { Link } from '@@/Link';\nimport { Button, ButtonGroup } from '@@/buttons';\nimport { confirmDelete } from '@@/modals/confirm';\n\nimport { confirmServiceForceUpdate } from '../../common/update-service-modal';\n\nimport { useRemoveServicesMutation } from './useRemoveServicesMutation';\nimport { useForceUpdateServicesMutation } from './useForceUpdateServicesMutation';\n\nexport function TableActions({\n  selectedItems,\n  isAddActionVisible,\n  isUpdateActionVisible,\n}: {\n  selectedItems: Array<ServiceViewModel>;\n  isAddActionVisible?: boolean;\n  isUpdateActionVisible?: boolean;\n}) {\n  const environmentId = useEnvironmentId();\n  const removeMutation = useRemoveServicesMutation(environmentId);\n  const updateMutation = useForceUpdateServicesMutation(environmentId);\n  const router = useRouter();\n\n  return (\n    <div className=\"flex items-center gap-2\">\n      <ButtonGroup>\n        {isUpdateActionVisible && (\n          <Authorized authorizations=\"DockerServiceUpdate\">\n            <Button\n              color=\"light\"\n              disabled={selectedItems.length === 0}\n              onClick={() => handleUpdate(selectedItems)}\n              icon={RefreshCw}\n              data-cy=\"service-updateServiceButton\"\n            >\n              Update\n            </Button>\n          </Authorized>\n        )}\n        <Authorized authorizations=\"DockerServiceDelete\">\n          <Button\n            color=\"dangerlight\"\n            disabled={selectedItems.length === 0}\n            onClick={() => handleRemove(selectedItems)}\n            icon={Trash2}\n            data-cy=\"service-removeServiceButton\"\n          >\n            Remove\n          </Button>\n        </Authorized>\n      </ButtonGroup>\n\n      {isAddActionVisible && (\n        <Authorized authorizations=\"DockerServiceCreate\">\n          <Button\n            as={Link}\n            props={{ to: '.new' }}\n            icon={Plus}\n            className=\"!ml-0\"\n          >\n            Add service\n          </Button>\n        </Authorized>\n      )}\n    </div>\n  );\n\n  async function handleUpdate(selectedItems: Array<ServiceViewModel>) {\n    const confirmed = await confirmServiceForceUpdate(\n      'Do you want to force an update of the selected service(s)? All the tasks associated to the selected service(s) will be recreated.'\n    );\n\n    if (!confirmed) {\n      return;\n    }\n\n    updateMutation.mutate(\n      {\n        ids: selectedItems.map((service) => service.Id),\n        pullImage: confirmed.pullLatest,\n      },\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Service(s) successfully updated');\n          router.stateService.reload();\n        },\n      }\n    );\n  }\n\n  async function handleRemove(selectedItems: Array<ServiceViewModel>) {\n    const confirmed = await confirmDelete(\n      'Do you want to remove the selected service(s)? All the containers associated to the selected service(s) will be removed too.'\n    );\n\n    if (!confirmed) {\n      return;\n    }\n\n    removeMutation.mutate(\n      selectedItems.map((service) => service.Id),\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Service(s) successfully removed');\n          router.stateService.reload();\n        },\n      }\n    );\n  }\n}\n","import { useMutation } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { withError } from '@/react-tools/react-query';\nimport { forceUpdateService } from '@/react/portainer/environments/environment.service';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function useForceUpdateServicesMutation(environmentId: EnvironmentId) {\n  return useMutation(\n    ({ ids, pullImage }: { ids: Array<string>; pullImage: boolean }) =>\n      promiseSequence(\n        ids.map((id) => () => forceUpdateService(environmentId, id, pullImage))\n      ),\n    withError('Failed to remove services')\n  );\n}\n","import { Table } from '@tanstack/react-table';\n\nimport { ServiceViewModel } from '@/docker/models/service';\n\nimport { TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { ColumnVisibilityMenu } from '@@/datatables/ColumnVisibilityMenu';\n\nimport { type TableSettings as TableSettingsType } from './types';\n\nexport function TableSettings({\n  settings,\n  table,\n}: {\n  settings: TableSettingsType;\n  table: Table<ServiceViewModel>;\n}) {\n  return (\n    <>\n      <ColumnVisibilityMenu<ServiceViewModel>\n        table={table}\n        onChange={(hiddenColumns) => {\n          settings.setHiddenColumns(hiddenColumns);\n        }}\n        value={settings.hiddenColumns}\n      />\n      <TableSettingsMenu>\n        <TableSettingsMenuAutoRefresh\n          value={settings.autoRefreshRate}\n          onChange={(value) => settings.setAutoRefreshRate(value)}\n        />\n      </TableSettingsMenu>\n    </>\n  );\n}\n","import { Shuffle } from 'lucide-react';\nimport { Row } from '@tanstack/react-table';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { useApiVersion } from '@/react/docker/proxy/queries/useVersion';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { IconProps } from '@@/Icon';\nimport { ExpandableDatatable } from '@@/datatables/ExpandableDatatable';\nimport {\n  createPersistedStore,\n  refreshableSettings,\n  hiddenColumnsSettings,\n} from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { useRepeater } from '@@/datatables/useRepeater';\nimport { defaultGlobalFilterFn } from '@@/datatables/Datatable';\nimport { getColumnVisibilityState } from '@@/datatables/ColumnVisibilityMenu';\nimport { mergeOptions } from '@@/datatables/extend-options/mergeOptions';\nimport { withGlobalFilter } from '@@/datatables/extend-options/withGlobalFilter';\n\nimport { DecoratedTask } from '../../ItemView/TasksDatatable/types';\n\nimport { useColumns } from './columns';\nimport { TasksDatatable } from './TasksDatatable';\nimport { TableActions } from './TableActions';\nimport { type TableSettings as TableSettingsType } from './types';\nimport { TableSettings } from './TableSettings';\n\nconst tableKey = 'services';\n\nconst store = createPersistedStore<TableSettingsType>(\n  tableKey,\n  'name',\n  (set) => ({\n    ...refreshableSettings(set),\n    ...hiddenColumnsSettings(set),\n    expanded: {},\n    setExpanded(value) {\n      set({ expanded: value });\n    },\n  })\n);\n\nexport function ServicesDatatable({\n  titleIcon = Shuffle,\n  dataset,\n  isAddActionVisible,\n  isStackColumnVisible,\n  onRefresh,\n}: {\n  dataset: Array<ServiceViewModel> | undefined;\n  titleIcon?: IconProps['icon'];\n  isAddActionVisible?: boolean;\n  isStackColumnVisible?: boolean;\n  onRefresh?(): void;\n}) {\n  const environmentId = useEnvironmentId();\n  const apiVersion = useApiVersion(environmentId);\n  const tableState = useTableState(store, tableKey);\n  const columns = useColumns(isStackColumnVisible);\n  useRepeater(tableState.autoRefreshRate, onRefresh);\n\n  return (\n    <ExpandableDatatable\n      title=\"Services\"\n      titleIcon={titleIcon}\n      dataset={dataset || []}\n      isLoading={!dataset}\n      settingsManager={tableState}\n      columns={columns}\n      getRowCanExpand={({ original: item }) => item.Tasks.length > 0}\n      renderSubRow={({ original: item }) => (\n        <tr>\n          <td />\n          <td colSpan={Number.MAX_SAFE_INTEGER}>\n            <TasksDatatable\n              dataset={item.Tasks as Array<DecoratedTask>}\n              search={tableState.search}\n            />\n          </td>\n        </tr>\n      )}\n      initialTableState={getColumnVisibilityState(tableState.hiddenColumns)}\n      renderTableActions={(selectedRows) => (\n        <TableActions\n          selectedItems={selectedRows}\n          isAddActionVisible={isAddActionVisible}\n          isUpdateActionVisible={apiVersion >= 1.25}\n        />\n      )}\n      renderTableSettings={(table) => (\n        <TableSettings settings={tableState} table={table} />\n      )}\n      extendTableOptions={mergeOptions(\n        (options) => ({\n          ...options,\n          onExpandedChange: (updater) => {\n            const value =\n              typeof updater === 'function'\n                ? updater(tableState.expanded)\n                : updater;\n            tableState.setExpanded(value);\n          },\n          state: {\n            expanded: tableState.expanded,\n          },\n        }),\n        withGlobalFilter(filter)\n      )}\n    />\n  );\n}\n\nfunction filter(\n  row: Row<ServiceViewModel>,\n  columnId: string,\n  filterValue: null | { search: string }\n) {\n  return (\n    defaultGlobalFilterFn(row, columnId, filterValue) ||\n    row.original.Tasks.some((task) =>\n      Object.values(task).some(\n        (value) => value && value.toString().includes(filterValue?.search || '')\n      )\n    )\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { isAgentEnvironment } from '@/react/portainer/environments/utils';\n\nimport { Link } from '@@/Link';\n\nimport { DecoratedTask } from '../types';\nimport { getTableMeta } from '../meta';\n\nimport { columnHelper } from './helper';\n\nexport const task = columnHelper.accessor('Id', {\n  header: 'Id',\n  cell: Cell,\n});\n\nfunction Cell({\n  getValue,\n  row: { original: item },\n  table: {\n    options: { meta },\n  },\n}: CellContext<DecoratedTask, string>) {\n  const environmentQuery = useCurrentEnvironment();\n\n  if (!environmentQuery.data) {\n    return null;\n  }\n\n  const { serviceName } = getTableMeta(meta);\n\n  const value = getValue();\n  const isAgent = isAgentEnvironment(environmentQuery.data.Type);\n\n  const name = `${serviceName}${item.Slot ? `.${item.Slot}` : ''}.${value}`;\n\n  return isAgent && item.Container ? (\n    <Link\n      to=\"docker.containers.container\"\n      params={{ id: item.Container.Id, nodeName: item.Container.NodeName }}\n      className=\"monospaced\"\n    >\n      {name}\n    </Link>\n  ) : (\n    <Link to=\"docker.tasks.task\" params={{ id: value }} className=\"monospaced\">\n      {name}\n    </Link>\n  );\n}\n","type TableMeta = {\n  serviceName: string;\n  table: 'tasks';\n};\n\nexport function getTableMeta(meta: unknown): TableMeta {\n  return isTableMeta(meta) ? meta : { table: 'tasks', serviceName: '' };\n}\n\nfunction isTableMeta(meta: unknown): meta is TableMeta {\n  return (\n    !!meta &&\n    typeof meta === 'object' &&\n    'table' in meta &&\n    meta.table === 'tasks'\n  );\n}\n","import { List } from 'lucide-react';\n\nimport { Datatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { withMeta } from '@@/datatables/extend-options/withMeta';\n\nimport { useColumns } from './columns';\nimport { DecoratedTask } from './types';\n\nconst storageKey = 'docker-service-tasks';\nconst store = createPersistedStore(storageKey);\n\nexport function TasksDatatable({\n  dataset,\n  isSlotColumnVisible,\n  serviceName,\n}: {\n  dataset: DecoratedTask[];\n  isSlotColumnVisible: boolean;\n  serviceName: string;\n}) {\n  const tableState = useTableState(store, storageKey);\n  const columns = useColumns(isSlotColumnVisible);\n\n  return (\n    <Datatable\n      title=\"Tasks\"\n      titleIcon={List}\n      settingsManager={tableState}\n      columns={columns}\n      dataset={dataset}\n      emptyContentLabel=\"No task available.\"\n      extendTableOptions={withMeta({ table: 'tasks', serviceName })}\n    />\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { ServicesDatatable } from '@/react/docker/services/ListView/ServicesDatatable';\nimport { TasksDatatable } from '@/react/docker/services/ItemView/TasksDatatable';\n\nexport const servicesModule = angular\n  .module('portainer.docker.react.components.services', [])\n  .component(\n    'dockerServiceTasksDatatable',\n    r2a(withUIRouter(withCurrentUser(TasksDatatable)), [\n      'serviceName',\n      'dataset',\n      'isSlotColumnVisible',\n    ])\n  )\n  .component(\n    'dockerServicesDatatable',\n    r2a(withUIRouter(withCurrentUser(ServicesDatatable)), [\n      'dataset',\n      'isAddActionVisible',\n      'isStackColumnVisible',\n      'onRefresh',\n      'titleIcon',\n    ])\n  ).name;\n","import { useMemo } from 'react';\nimport _ from 'lodash';\n\nimport { actions } from './actions';\nimport { node } from './node';\nimport { slot } from './slot';\nimport { status } from './status';\nimport { task } from './task';\nimport { updated } from './updated';\n\nexport function useColumns(isSlotColumnsVisible = true) {\n  return useMemo(\n    () =>\n      _.compact([\n        status,\n        task,\n        actions,\n        isSlotColumnsVisible && slot,\n        node,\n        updated,\n      ]),\n    [isSlotColumnsVisible]\n  );\n}\n","import { useMemo } from 'react';\nimport _ from 'lodash';\n\nimport { ServiceViewModel } from '@/docker/models/service';\nimport { isoDate } from '@/portainer/filters/filters';\nimport { createOwnershipColumn } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\nimport { buildExpandColumn } from '@@/datatables/expand-column';\n\nimport { image } from './image';\nimport { columnHelper } from './helper';\nimport { schedulingMode } from './schedulingMode';\nimport { ports } from './ports';\n\nexport function useColumns(isStackColumnVisible?: boolean) {\n  return useMemo(\n    () =>\n      _.compact([\n        buildExpandColumn<ServiceViewModel>(),\n        buildNameColumn<ServiceViewModel>('Name', 'docker.services.service'),\n        isStackColumnVisible &&\n          columnHelper.accessor((item) => item.StackName || '-', {\n            header: 'Stack',\n            enableHiding: false,\n          }),\n        image,\n        schedulingMode,\n        ports,\n        columnHelper.accessor('UpdatedAt', {\n          header: 'Last Update',\n          cell: ({ getValue }) => isoDate(getValue()),\n        }),\n        createOwnershipColumn<ServiceViewModel>(),\n      ]),\n    [isStackColumnVisible]\n  );\n}\n","import {\n  RowSelectionState,\n  TableOptions,\n  Updater,\n} from '@tanstack/react-table';\n\nimport { DefaultType } from '../types';\n\nexport function withControlledSelected<D extends DefaultType>(\n  onChange?: (value: string[]) => void,\n  value?: string[]\n) {\n  return function extendTableOptions(options: TableOptions<D>) {\n    if (!onChange || !value) {\n      return options;\n    }\n\n    return {\n      ...options,\n      state: {\n        ...options.state,\n        rowSelection: Object.fromEntries(value.map((i) => [i, true])),\n      },\n      onRowSelectionChange(updater: Updater<RowSelectionState>) {\n        const newValue =\n          typeof updater !== 'function'\n            ? updater\n            : updater(Object.fromEntries(value.map((i) => [i, true])));\n        onChange(\n          Object.entries(newValue)\n            .filter(([, selected]) => selected)\n            .map(([id]) => id)\n        );\n      },\n    };\n  };\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { NodeViewModel } from '@/docker/models/node';\n\nexport const columnHelper = createColumnHelper<NodeViewModel>();\n","import { CellContext } from '@tanstack/react-table';\n\nimport { NodeViewModel } from '@/docker/models/node';\n\nimport { Link } from '@@/Link';\n\nimport { isTableMeta } from '../types';\n\nimport { columnHelper } from './column-helper';\n\nexport const name = columnHelper.accessor('Hostname', {\n  header: 'Name',\n  cell: Cell,\n});\n\nfunction Cell({\n  getValue,\n  row: { original: item },\n  table: {\n    options: { meta },\n  },\n}: CellContext<NodeViewModel, NodeViewModel['Hostname']>) {\n  if (!isTableMeta(meta)) {\n    throw new Error('Invalid table meta');\n  }\n\n  const value = getValue();\n\n  if (!meta.haveAccessToNode) {\n    return <>{value}</>;\n  }\n\n  return (\n    <Link to=\"docker.nodes.node\" params={{ id: item.Id }}>\n      {value}\n    </Link>\n  );\n}\n","import { TableMeta as BaseTableMeta } from '@tanstack/react-table';\n\nimport { NodeViewModel } from '@/docker/models/node';\n\nexport type TableMeta = BaseTableMeta<NodeViewModel> & {\n  table: 'nodes';\n  haveAccessToNode: boolean;\n};\n\nexport function isTableMeta(\n  meta?: BaseTableMeta<NodeViewModel>\n): meta is TableMeta {\n  return !!meta && meta.table === 'nodes';\n}\n","import clsx from 'clsx';\n\nimport { nodeStatusBadge } from '@/docker/filters/utils';\n\nimport { columnHelper } from './column-helper';\n\nexport const status = columnHelper.accessor('Status', {\n  cell({ getValue }) {\n    const value = getValue();\n    return (\n      <span className={clsx('label', `label-${nodeStatusBadge(value)}`)}>\n        {value}\n      </span>\n    );\n  },\n});\n","import clsx from 'clsx';\n\nimport { NodeViewModel } from '@/docker/models/node';\n\nimport { columnHelper } from './column-helper';\n\nexport const availability = columnHelper.accessor('Availability', {\n  header: 'Availability',\n  cell({ getValue }) {\n    const value = getValue();\n    return (\n      <span className={clsx('label', `label-${badgeClass(value)}`)}>\n        {value}\n      </span>\n    );\n  },\n});\n\nexport function badgeClass(text: NodeViewModel['Availability']) {\n  if (text === 'pause') {\n    return 'warning';\n  }\n\n  if (text === 'drain') {\n    return 'danger';\n  }\n\n  return 'success';\n}\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { humanize } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './column-helper';\nimport { name } from './name';\nimport { status } from './status';\nimport { availability } from './availability';\n\nexport { name, status };\n\nexport const role = columnHelper.accessor('Role', {});\n\nexport const engine = columnHelper.accessor('EngineVersion', {\n  header: 'Engine',\n});\n\nexport const ip = columnHelper.accessor('Addr', {\n  header: 'IP Address',\n});\n\nexport const cpu = columnHelper.accessor(\n  (item) => (item.CPUs ? item.CPUs / 1000000000 : 0),\n  {\n    header: 'CPU',\n  }\n);\n\nexport const memory = columnHelper.accessor('Memory', {\n  header: 'Memory',\n  cell({ getValue }) {\n    const value = getValue();\n    return humanize(value);\n  },\n});\n\nexport function useColumns(isIpColumnVisible: boolean) {\n  return useMemo(\n    () =>\n      _.compact([\n        name,\n        role,\n        cpu,\n        memory,\n        engine,\n        isIpColumnVisible && ip,\n        status,\n        availability,\n      ]),\n    [isIpColumnVisible]\n  );\n}\n","import { HardDrive } from 'lucide-react';\n\nimport { NodeViewModel } from '@/docker/models/node';\n\nimport { Datatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { mergeOptions } from '@@/datatables/extend-options/mergeOptions';\nimport { withMeta } from '@@/datatables/extend-options/withMeta';\nimport { withControlledSelected } from '@@/datatables/extend-options/withControlledSelected';\n\nimport { useColumns } from './useColumns';\n\nconst tableKey = 'macvlan-nodes-selector';\nconst store = createPersistedStore(tableKey);\n\nexport function MacvlanNodesSelector({\n  dataset,\n  isIpColumnVisible,\n  haveAccessToNode,\n  value,\n  onChange,\n}: {\n  dataset?: Array<NodeViewModel>;\n  isIpColumnVisible: boolean;\n  haveAccessToNode: boolean;\n  value: Array<NodeViewModel>;\n  onChange(value: Array<NodeViewModel>): void;\n}) {\n  const columns = useColumns(isIpColumnVisible);\n  const tableState = useTableState(store, tableKey);\n\n  return (\n    <Datatable<NodeViewModel>\n      title=\"Select the nodes where you want to deploy the local configuration\"\n      titleIcon={HardDrive}\n      columns={columns}\n      dataset={dataset || []}\n      isLoading={!dataset}\n      emptyContentLabel=\"No node available\"\n      settingsManager={tableState}\n      extendTableOptions={mergeOptions(\n        withMeta({\n          table: 'nodes',\n          haveAccessToNode,\n        }),\n        withControlledSelected(\n          (ids) =>\n            onChange(dataset?.filter((n) => n.Id && ids.includes(n.Id)) || []),\n          value.map((n) => n.Id || '')\n        )\n      )}\n    />\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { MacvlanNodesSelector } from '@/react/docker/networks/CreateView/MacvlanNodesSelector/MacvlanNodesSelector';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\n\nexport const networksModule = angular\n  .module('portainer.docker.react.components.networks', [])\n  .component(\n    'macvlanNodesSelector',\n    r2a(withUIRouter(MacvlanNodesSelector), [\n      'dataset',\n      'isIpColumnVisible',\n      'haveAccessToNode',\n      'value',\n      'onChange',\n    ])\n  ).name;\n","import { useMemo } from 'react';\nimport _ from 'lodash';\n\nimport {\n  engine,\n  ip,\n  role,\n  name,\n  status,\n} from '@/react/docker/swarm/SwarmView/NodesDatatable/columns';\n\nexport function useColumns(isIpColumnVisible: boolean) {\n  return useMemo(\n    () => _.compact([name, role, engine, isIpColumnVisible && ip, status]),\n    [isIpColumnVisible]\n  );\n}\n","import { Trello } from 'lucide-react';\n\nimport { NodeViewModel } from '@/docker/models/node';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport {\n  BasicTableSettings,\n  RefreshableTableSettings,\n  createPersistedStore,\n  refreshableSettings,\n} from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { useRepeater } from '@@/datatables/useRepeater';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { withMeta } from '@@/datatables/extend-options/withMeta';\n\nimport { useColumns } from './columns';\n\nconst tableKey = 'nodes';\n\ninterface TableSettings extends BasicTableSettings, RefreshableTableSettings {}\n\nconst store = createPersistedStore<TableSettings>(\n  tableKey,\n  undefined,\n  (set) => ({\n    ...refreshableSettings(set),\n  })\n);\n\nexport function NodesDatatable({\n  dataset,\n  isIpColumnVisible,\n  haveAccessToNode,\n  onRefresh,\n}: {\n  dataset?: Array<NodeViewModel>;\n  isIpColumnVisible: boolean;\n  haveAccessToNode: boolean;\n  onRefresh(): Promise<void>;\n}) {\n  const columns = useColumns(isIpColumnVisible);\n  const tableState = useTableState(store, tableKey);\n  useRepeater(tableState.autoRefreshRate, onRefresh);\n\n  return (\n    <Datatable<NodeViewModel>\n      disableSelect\n      title=\"Nodes\"\n      titleIcon={Trello}\n      columns={columns}\n      dataset={dataset || []}\n      isLoading={!dataset}\n      emptyContentLabel=\"No node available\"\n      settingsManager={tableState}\n      extendTableOptions={withMeta({\n        table: 'nodes',\n        haveAccessToNode,\n      })}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={(value) => tableState.setAutoRefreshRate(value)}\n          />\n        </TableSettingsMenu>\n      )}\n    />\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { NodesDatatable } from '@/react/docker/swarm/SwarmView/NodesDatatable';\n\nexport const swarmModule = angular\n  .module('portainer.docker.react.components.swarm', [])\n  .component(\n    'nodesDatatable',\n    r2a(withUIRouter(NodesDatatable), [\n      'dataset',\n      'isIpColumnVisible',\n      'haveAccessToNode',\n      'onRefresh',\n    ])\n  ).name;\n","import { Plus, Trash2 } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\nimport { Button } from '@@/buttons';\n\nimport { DecoratedVolume } from '../types';\n\nexport function TableActions({\n  selectedItems,\n  onRemove,\n}: {\n  selectedItems: Array<DecoratedVolume>;\n  onRemove(items: Array<DecoratedVolume>): void;\n}) {\n  return (\n    <div className=\"flex items-center gap-2\">\n      <Authorized authorizations=\"DockerVolumeDelete\">\n        <Button\n          color=\"dangerlight\"\n          disabled={selectedItems.length === 0}\n          onClick={() => onRemove(selectedItems)}\n          icon={Trash2}\n          className=\"!m-0\"\n          data-cy=\"volume-removeVolumeButton\"\n        >\n          Remove\n        </Button>\n      </Authorized>\n      <Authorized authorizations=\"DockerVolumeCreate\">\n        <Button\n          as={Link}\n          props={{ to: '.new' }}\n          icon={Plus}\n          className=\"!m-0\"\n          data-cy=\"volume-addVolumeButton\"\n        >\n          Add volume\n        </Button>\n      </Authorized>\n    </div>\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DecoratedVolume } from '../../types';\n\nexport const columnHelper = createColumnHelper<DecoratedVolume>();\n","import { CellContext, Column } from '@tanstack/react-table';\nimport { Search } from 'lucide-react';\n\nimport { truncate } from '@/portainer/filters/filters';\nimport { getValueAsArrayOfStrings } from '@/portainer/helpers/array';\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { MultipleSelectionFilter } from '@@/datatables/Filter';\n\nimport { DecoratedVolume } from '../../types';\nimport { getTableMeta } from '../tableMeta';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Id', {\n  id: 'name',\n  header: 'Name',\n  cell: Cell,\n  enableColumnFilter: true,\n  filterFn: (\n    { original: { dangling } },\n    columnId,\n    filterValue: Array<'Used' | 'Unused'>\n  ) => {\n    if (filterValue.length === 0) {\n      return true;\n    }\n\n    if (filterValue.includes('Used') && !dangling) {\n      return true;\n    }\n\n    if (filterValue.includes('Unused') && dangling) {\n      return true;\n    }\n\n    return false;\n  },\n  meta: {\n    filter: FilterByUsage,\n  },\n});\n\nfunction FilterByUsage<TData extends { Used: boolean }>({\n  column: { getFilterValue, setFilterValue, id },\n}: {\n  column: Column<TData>;\n}) {\n  const options = ['Used', 'Unused'];\n\n  const value = getFilterValue();\n\n  const valueAsArray = getValueAsArrayOfStrings(value);\n\n  return (\n    <MultipleSelectionFilter\n      options={options}\n      filterKey={id}\n      value={valueAsArray}\n      onChange={setFilterValue}\n      menuTitle=\"Filter by usage\"\n    />\n  );\n}\n\nfunction Cell({\n  getValue,\n  row: { original: item },\n  table: {\n    options: { meta },\n  },\n}: CellContext<DecoratedVolume, string>) {\n  const { isBrowseVisible } = getTableMeta(meta);\n  const name = getValue();\n\n  return (\n    <>\n      <Link\n        to=\".volume\"\n        params={{\n          id: item.Id,\n          nodeName: item.NodeName,\n        }}\n        className=\"monospaced\"\n      >\n        {truncate(name, 40)}\n      </Link>\n      {isBrowseVisible && (\n        <Authorized authorizations=\"DockerAgentBrowseList\">\n          <Button\n            className=\"ml-2\"\n            icon={Search}\n            color=\"primary\"\n            size=\"xsmall\"\n            as={Link}\n            props={{\n              to: 'docker.volumes.volume.browse',\n              params: {\n                id: item.Id,\n                nodeName: item.NodeName,\n              },\n            }}\n          >\n            browse\n          </Button>\n        </Authorized>\n      )}\n      {item.dangling && (\n        <span className=\"label label-warning image-tag ml-2\" role=\"status\">\n          Unused\n        </span>\n      )}\n    </>\n  );\n}\n","import { TableMeta as BaseTableMeta } from '@tanstack/react-table';\n\nimport { VolumeViewModel } from '@/docker/models/volume';\n\ninterface TableMeta {\n  isBrowseVisible: boolean;\n  table: 'volumes';\n}\n\nfunction isTableMeta(meta: BaseTableMeta<VolumeViewModel>): meta is TableMeta {\n  return meta.table === 'volumes';\n}\n\nexport function getTableMeta(meta?: BaseTableMeta<VolumeViewModel>): TableMeta {\n  if (!meta || !isTableMeta(meta)) {\n    return {\n      isBrowseVisible: false,\n      table: 'volumes',\n    };\n  }\n\n  return meta;\n}\n","import { Database } from 'lucide-react';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport {\n  BasicTableSettings,\n  RefreshableTableSettings,\n  createPersistedStore,\n  refreshableSettings,\n} from '@@/datatables/types';\nimport { useRepeater } from '@@/datatables/useRepeater';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { withMeta } from '@@/datatables/extend-options/withMeta';\n\nimport { DecoratedVolume } from '../types';\n\nimport { TableActions } from './TableActions';\nimport { useColumns } from './columns';\n\ninterface TableSettings extends BasicTableSettings, RefreshableTableSettings {}\n\nconst storageKey = 'docker-volumes';\nconst store = createPersistedStore<TableSettings>(\n  storageKey,\n  undefined,\n  (set) => ({\n    ...refreshableSettings(set),\n  })\n);\n\nexport function VolumesDatatable({\n  dataset,\n  onRemove,\n  onRefresh,\n  isBrowseVisible,\n}: {\n  dataset?: Array<DecoratedVolume>;\n  onRemove(items: Array<DecoratedVolume>): void;\n  onRefresh(): Promise<void>;\n  isBrowseVisible: boolean;\n}) {\n  const tableState = useTableState(store, storageKey);\n  useRepeater(tableState.autoRefreshRate, onRefresh);\n  const columns = useColumns();\n\n  return (\n    <Datatable\n      title=\"Volumes\"\n      titleIcon={Database}\n      columns={columns}\n      dataset={dataset || []}\n      isLoading={!dataset}\n      settingsManager={tableState}\n      emptyContentLabel=\"No volume available.\"\n      renderTableActions={(selectedItems) => (\n        <TableActions selectedItems={selectedItems} onRemove={onRemove} />\n      )}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={(value) => tableState.setAutoRefreshRate(value)}\n          />\n        </TableSettingsMenu>\n      )}\n      extendTableOptions={withMeta({\n        table: 'volumes',\n        isBrowseVisible,\n      })}\n    />\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { VolumesDatatable } from '@/react/docker/volumes/ListView/VolumesDatatable';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\n\nexport const volumesModule = angular\n  .module('portainer.docker.react.components.volumes', [])\n  .component(\n    'volumesDatatable',\n    r2a(withUIRouter(withCurrentUser(VolumesDatatable)), [\n      'dataset',\n      'onRemove',\n      'onRefresh',\n      'isBrowseVisible',\n    ])\n  ).name;\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { useIsSwarm } from '@/react/docker/proxy/queries/useInfo';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { createOwnershipColumn } from '@/react/docker/components/datatable/createOwnershipColumn';\nimport { isoDate, truncateLeftRight } from '@/portainer/filters/filters';\n\nimport { DecoratedVolume } from '../../types';\n\nimport { columnHelper } from './helper';\nimport { name } from './name';\n\nexport function useColumns() {\n  const environmentId = useEnvironmentId();\n  const isSwarm = useIsSwarm(environmentId);\n\n  return useMemo(\n    () =>\n      _.compact([\n        name,\n        columnHelper.accessor((item) => item.StackName || '-', {\n          header: 'Stack',\n        }),\n        columnHelper.accessor((item) => item.Driver, {\n          header: 'Driver',\n        }),\n        columnHelper.accessor((item) => item.Mountpoint, {\n          header: 'Mount point',\n          cell({ getValue }) {\n            return truncateLeftRight(getValue());\n          },\n        }),\n        columnHelper.accessor((item) => item.CreatedAt, {\n          header: 'Created',\n          cell({ getValue }) {\n            return isoDate(getValue());\n          },\n        }),\n        isSwarm &&\n          columnHelper.accessor((item) => item.NodeName || '-', {\n            header: 'Host',\n          }),\n        createOwnershipColumn<DecoratedVolume>(),\n      ]),\n    [isSwarm]\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withControlledInput } from '@/react-tools/withControlledInput';\nimport { StackContainersDatatable } from '@/react/common/stacks/ItemView/StackContainersDatatable';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { DockerfileDetails } from '@/react/docker/images/ItemView/DockerfileDetails';\nimport { HealthStatus } from '@/react/docker/containers/ItemView/HealthStatus';\nimport { GpusList } from '@/react/docker/host/SetupView/GpusList';\nimport { InsightsBox } from '@/react/components/InsightsBox';\nimport { BetaAlert } from '@/react/portainer/environments/update-schedules/common/BetaAlert';\nimport { ImagesDatatable } from '@/react/docker/images/ListView/ImagesDatatable/ImagesDatatable';\nimport { EventsDatatable } from '@/react/docker/events/EventsDatatables';\nimport { ConfigsDatatable } from '@/react/docker/configs/ListView/ConfigsDatatable';\nimport { AgentHostBrowser } from '@/react/docker/host/BrowseView/AgentHostBrowser';\nimport { AgentVolumeBrowser } from '@/react/docker/volumes/BrowseView/AgentVolumeBrowser';\nimport { ProcessesDatatable } from '@/react/docker/containers/StatsView/ProcessesDatatable';\nimport { SecretsDatatable } from '@/react/docker/secrets/ListView/SecretsDatatable';\nimport { StacksDatatable } from '@/react/docker/stacks/ListView/StacksDatatable';\nimport { NetworksDatatable } from '@/react/docker/networks/ListView/NetworksDatatable';\n\nimport { containersModule } from './containers';\nimport { servicesModule } from './services';\nimport { networksModule } from './networks';\nimport { swarmModule } from './swarm';\nimport { volumesModule } from './volumes';\n\nconst ngModule = angular\n  .module('portainer.docker.react.components', [\n    containersModule,\n    servicesModule,\n    networksModule,\n    swarmModule,\n    volumesModule,\n  ])\n  .component('dockerfileDetails', r2a(DockerfileDetails, ['image']))\n  .component('dockerHealthStatus', r2a(HealthStatus, ['health']))\n  .component(\n    'stackContainersDatatable',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(StackContainersDatatable))),\n      ['environment', 'stackName']\n    )\n  )\n  .component(\n    'networksDatatable',\n    r2a(withUIRouter(withCurrentUser(NetworksDatatable)), [\n      'dataset',\n      'onRefresh',\n      'onRemove',\n    ])\n  )\n  .component(\n    'gpusList',\n    r2a(withControlledInput(GpusList), ['value', 'onChange'])\n  )\n  .component(\n    'insightsBox',\n    r2a(InsightsBox, [\n      'header',\n      'content',\n      'insightCloseId',\n      'type',\n      'className',\n    ])\n  )\n  .component('betaAlert', r2a(BetaAlert, ['className', 'message', 'isHtml']))\n  .component(\n    'dockerImagesDatatable',\n    r2a(withUIRouter(withCurrentUser(ImagesDatatable)), [\n      'onRemove',\n      'isExportInProgress',\n      'isHostColumnVisible',\n      'onDownload',\n      'onRemove',\n    ])\n  )\n  .component(\n    'dockerConfigsDatatable',\n    r2a(withUIRouter(withCurrentUser(ConfigsDatatable)), [\n      'dataset',\n      'onRemoveClick',\n      'onRefresh',\n    ])\n  )\n  .component(\n    'agentHostBrowserReact',\n    r2a(withUIRouter(withCurrentUser(AgentHostBrowser)), [\n      'dataset',\n      'isRoot',\n      'onBrowse',\n      'onDelete',\n      'onDownload',\n      'onFileSelectedForUpload',\n      'onGoToParent',\n      'onRename',\n      'relativePath',\n    ])\n  )\n  .component(\n    'agentVolumeBrowserReact',\n    r2a(withUIRouter(withCurrentUser(AgentVolumeBrowser)), [\n      'dataset',\n      'isRoot',\n      'isUploadAllowed',\n      'onBrowse',\n      'onDelete',\n      'onDownload',\n      'onFileSelectedForUpload',\n      'onGoToParent',\n      'onRename',\n      'relativePath',\n    ])\n  )\n  .component(\n    'dockerContainerProcessesDatatable',\n    r2a(ProcessesDatatable, ['dataset', 'headers'])\n  )\n  .component('dockerEventsDatatable', r2a(EventsDatatable, ['dataset']))\n  .component(\n    'dockerSecretsDatatable',\n    r2a(withUIRouter(withCurrentUser(SecretsDatatable)), [\n      'dataset',\n      'onRefresh',\n      'onRemove',\n    ])\n  )\n  .component(\n    'dockerStacksDatatable',\n    r2a(withUIRouter(withCurrentUser(StacksDatatable)), [\n      'dataset',\n      'isImageNotificationEnabled',\n      'onReload',\n      'onRemove',\n    ])\n  );\nexport const componentsModule = ngModule.name;\n","import { List } from 'lucide-react';\n\nimport { joinCommand } from '@/docker/filters/utils';\nimport { getPairKey, getPairValue } from '@/portainer/filters/filters';\n\nimport { TableContainer, TableTitle } from '@@/datatables';\nimport { DetailsTable } from '@@/DetailsTable';\n\ninterface DockerImage {\n  Command: null | Array<string>;\n  Entrypoint: Array<string>;\n  ExposedPorts: Array<number>;\n  Volumes: Array<string>;\n  Env: Array<string>;\n}\n\ninterface Props {\n  image: DockerImage;\n}\n\nexport function DockerfileDetails({ image }: Props) {\n  return (\n    <TableContainer>\n      <TableTitle label=\"Dockerfile details\" icon={List} />\n      <DetailsTable>\n        <DetailsTable.Row label=\"CMD\">\n          <code>{image.Command ? joinCommand(image.Command) : '-'}</code>\n        </DetailsTable.Row>\n\n        {image.Entrypoint && (\n          <DetailsTable.Row label=\"ENTRYPOINT\">\n            <code>{joinCommand(image.Entrypoint)}</code>\n          </DetailsTable.Row>\n        )}\n\n        {image.ExposedPorts.length > 0 && (\n          <DetailsTable.Row label=\"EXPOSE\">\n            {image.ExposedPorts.map((port, index) => (\n              <span className=\"label label-default space-right\" key={index}>\n                {port}\n              </span>\n            ))}\n          </DetailsTable.Row>\n        )}\n\n        {image.Volumes.length > 0 && (\n          <DetailsTable.Row label=\"VOLUME\">\n            <div className=\"flex flex-wrap gap-1\">\n              {image.Volumes.map((volume, index) => (\n                <span key={index} className=\"label label-default space-right\">\n                  {volume}\n                </span>\n              ))}\n            </div>\n          </DetailsTable.Row>\n        )}\n\n        {image.Env.length > 0 && (\n          <DetailsTable.Row label=\"ENV\">\n            <table className=\"table-bordered table-condensed table\">\n              <tbody>\n                {image.Env.map((variable) => (\n                  <tr key={variable}>\n                    <td>{getPairKey(variable, '=')}</td>\n                    <td>{getPairValue(variable, '=')}</td>\n                  </tr>\n                ))}\n              </tbody>\n            </table>\n          </DetailsTable.Row>\n        )}\n      </DetailsTable>\n    </TableContainer>\n  );\n}\n","import _ from 'lodash';\n\nimport { StackType } from '@/react/common/stacks/types';\nimport { isoDateFromTimestamp } from '@/portainer/filters/filters';\nimport { createOwnershipColumn } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nimport { DecoratedStack } from '../types';\n\nimport { columnHelper } from './helper';\nimport { name } from './name';\nimport { imageNotificationColumn } from './image-notification';\nimport { control } from './control';\n\nexport function useColumns(isImageNotificationEnabled: boolean) {\n  return _.compact([\n    name,\n    columnHelper.accessor(\n      (item) => (item.Type === StackType.DockerCompose ? 'Compose' : 'Swarm'),\n      {\n        id: 'type',\n        header: 'Type',\n        enableHiding: false,\n      }\n    ),\n    isImageNotificationEnabled && imageNotificationColumn,\n    control,\n    columnHelper.accessor('CreationDate', {\n      id: 'creationDate',\n      header: 'Created',\n      enableHiding: false,\n      cell: ({ getValue, row: { original: item } }) => {\n        const value = getValue();\n        if (!value) {\n          return '-';\n        }\n\n        const by = item.CreatedBy ? `by ${item.CreatedBy}` : '';\n        return `${isoDateFromTimestamp(value)} ${by}`.trim();\n      },\n    }),\n    columnHelper.accessor('UpdateDate', {\n      id: 'updateDate',\n      header: 'Updated',\n      cell: ({ getValue, row: { original: item } }) => {\n        const value = getValue();\n        if (!value) {\n          return '-';\n        }\n\n        const by = item.UpdatedBy ? `by ${item.UpdatedBy}` : '';\n        return `${isoDateFromTimestamp(value)} ${by}`.trim();\n      },\n    }),\n    createOwnershipColumn<DecoratedStack>(false),\n  ]);\n}\n","const systemNetworks = ['host', 'bridge', 'ingress', 'nat', 'none'];\n\nexport function isSystemNetwork(networkName: string) {\n  return systemNetworks.includes(networkName);\n}\n","import { Fragment } from 'react';\nimport { Network, Trash2 } from 'lucide-react';\n\nimport DockerNetworkHelper from '@/docker/helpers/networkHelper';\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { TableContainer, TableTitle } from '@@/datatables';\nimport { DetailsTable } from '@@/DetailsTable';\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\n\nimport { isSystemNetwork } from '../network.helper';\nimport { DockerNetwork, IPConfig } from '../types';\n\ninterface Props {\n  network: DockerNetwork;\n  onRemoveNetworkClicked: () => void;\n}\n\nexport function NetworkDetailsTable({\n  network,\n  onRemoveNetworkClicked,\n}: Props) {\n  const allowRemoveNetwork = !isSystemNetwork(network.Name);\n  const ipv4Configs: IPConfig[] = DockerNetworkHelper.getIPV4Configs(\n    network.IPAM?.Config\n  );\n  const ipv6Configs: IPConfig[] = DockerNetworkHelper.getIPV6Configs(\n    network.IPAM?.Config\n  );\n\n  return (\n    <TableContainer>\n      <TableTitle label=\"Network details\" icon={Network} />\n      <DetailsTable dataCy=\"networkDetails-detailsTable\">\n        {/* networkRowContent */}\n        <DetailsTable.Row label=\"Name\">{network.Name}</DetailsTable.Row>\n        <DetailsTable.Row label=\"Id\">\n          {network.Id}\n          {allowRemoveNetwork && (\n            <Authorized authorizations=\"DockerNetworkDelete\">\n              <Button\n                data-cy=\"networkDetails-deleteNetwork\"\n                size=\"xsmall\"\n                color=\"danger\"\n                onClick={() => onRemoveNetworkClicked()}\n              >\n                <Icon\n                  icon={Trash2}\n                  className=\"space-right\"\n                  aria-hidden=\"true\"\n                />\n                Delete this network\n              </Button>\n            </Authorized>\n          )}\n        </DetailsTable.Row>\n        <DetailsTable.Row label=\"Driver\">{network.Driver}</DetailsTable.Row>\n        <DetailsTable.Row label=\"Scope\">{network.Scope}</DetailsTable.Row>\n        <DetailsTable.Row label=\"Attachable\">\n          {String(network.Attachable)}\n        </DetailsTable.Row>\n        <DetailsTable.Row label=\"Internal\">\n          {String(network.Internal)}\n        </DetailsTable.Row>\n\n        {/* IPV4 ConfigRowContent */}\n        {ipv4Configs.map((config) => (\n          <Fragment key={config.Subnet}>\n            <DetailsTable.Row\n              label={`IPV4 Subnet${getConfigDetails(config.Subnet)}`}\n            >\n              {`IPV4 Gateway${getConfigDetails(config.Gateway)}`}\n            </DetailsTable.Row>\n            <DetailsTable.Row\n              label={`IPV4 IP Range${getConfigDetails(config.IPRange)}`}\n            >\n              {`IPV4 Excluded IPs${getAuxiliaryAddresses(\n                config.AuxiliaryAddresses\n              )}`}\n            </DetailsTable.Row>\n          </Fragment>\n        ))}\n\n        {/* IPV6 ConfigRowContent */}\n        {ipv6Configs.map((config) => (\n          <Fragment key={config.Subnet}>\n            <DetailsTable.Row\n              label={`IPV6 Subnet${getConfigDetails(config.Subnet)}`}\n            >\n              {`IPV6 Gateway${getConfigDetails(config.Gateway)}`}\n            </DetailsTable.Row>\n            <DetailsTable.Row\n              label={`IPV6 IP Range${getConfigDetails(config.IPRange)}`}\n            >\n              {`IPV6 Excluded IPs${getAuxiliaryAddresses(\n                config.AuxiliaryAddresses\n              )}`}\n            </DetailsTable.Row>\n          </Fragment>\n        ))}\n      </DetailsTable>\n    </TableContainer>\n  );\n\n  function getConfigDetails(configValue?: string) {\n    return configValue ? ` - ${configValue}` : '';\n  }\n\n  function getAuxiliaryAddresses(auxiliaryAddresses?: object) {\n    return auxiliaryAddresses\n      ? ` - ${Object.values(auxiliaryAddresses).join(' - ')}`\n      : '';\n  }\n}\n","import { Network } from 'lucide-react';\n\nimport { TableContainer, TableTitle } from '@@/datatables';\nimport { DetailsTable } from '@@/DetailsTable';\n\nimport { NetworkOptions } from '../types';\n\ntype Props = {\n  options: NetworkOptions;\n};\n\nexport function NetworkOptionsTable({ options }: Props) {\n  const networkEntries = Object.entries(options);\n\n  if (networkEntries.length === 0) {\n    return null;\n  }\n\n  return (\n    <TableContainer>\n      <TableTitle label=\"Network options\" icon={Network} />\n      <DetailsTable dataCy=\"networkDetails-networkOptionsTable\">\n        {networkEntries.map(([key, value]) => (\n          <DetailsTable.Row key={key} label={key}>\n            {value}\n          </DetailsTable.Row>\n        ))}\n      </DetailsTable>\n    </TableContainer>\n  );\n}\n","import { Server, Trash2 } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { Icon } from '@/react/components/Icon';\n\nimport { TableContainer, TableTitle } from '@@/datatables';\nimport { DetailsTable } from '@@/DetailsTable';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\n\nimport { NetworkContainer, NetworkId } from '../types';\nimport { useDisconnectContainer } from '../queries';\n\ntype Props = {\n  networkContainers: NetworkContainer[];\n  nodeName: string;\n  environmentId: EnvironmentId;\n  networkId: NetworkId;\n};\n\nconst tableHeaders = [\n  'Container Name',\n  'IPv4 Address',\n  'IPv6 Address',\n  'MacAddress',\n  'Actions',\n];\n\nexport function NetworkContainersTable({\n  networkContainers,\n  nodeName,\n  environmentId,\n  networkId,\n}: Props) {\n  const disconnectContainer = useDisconnectContainer();\n\n  if (networkContainers.length === 0) {\n    return null;\n  }\n\n  return (\n    <TableContainer>\n      <TableTitle label=\"Containers in network\" icon={Server} />\n      <DetailsTable\n        headers={tableHeaders}\n        dataCy=\"networkDetails-networkContainers\"\n      >\n        {networkContainers.map((container) => (\n          <tr key={container.Id}>\n            <td>\n              <Link\n                to=\"docker.containers.container\"\n                params={{\n                  id: container.Id,\n                  nodeName,\n                }}\n                title={container.Name}\n              >\n                {container.Name}\n              </Link>\n            </td>\n            <td>{container.IPv4Address || '-'}</td>\n            <td>{container.IPv6Address || '-'}</td>\n            <td>{container.MacAddress || '-'}</td>\n            <td>\n              <Authorized authorizations=\"DockerNetworkDisconnect\">\n                <Button\n                  data-cy={`networkDetails-disconnect${container.Name}`}\n                  size=\"xsmall\"\n                  color=\"dangerlight\"\n                  onClick={() => {\n                    if (container.Id) {\n                      disconnectContainer.mutate({\n                        containerId: container.Id,\n                        environmentId,\n                        networkId,\n                        nodeName,\n                      });\n                    }\n                  }}\n                >\n                  <Icon icon={Trash2} class-name=\"icon-secondary icon-md\" />\n                  Leave Network\n                </Button>\n              </Authorized>\n            </td>\n          </tr>\n        ))}\n      </DetailsTable>\n    </TableContainer>\n  );\n}\n","import { useRouter, useCurrentStateAndParams } from '@uirouter/react';\nimport { useQueryClient } from 'react-query';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { AccessControlPanel } from '@/react/portainer/access-control/AccessControlPanel/AccessControlPanel';\nimport { ResourceControlType } from '@/react/portainer/access-control/types';\nimport { DockerContainer } from '@/react/docker/containers/types';\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { useContainers } from '@/react/docker/containers/queries/containers';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useNetwork, useDeleteNetwork } from '../queries';\nimport { isSystemNetwork } from '../network.helper';\nimport { NetworkResponseContainers } from '../types';\n\nimport { NetworkDetailsTable } from './NetworkDetailsTable';\nimport { NetworkOptionsTable } from './NetworkOptionsTable';\nimport { NetworkContainersTable } from './NetworkContainersTable';\n\nexport function ItemView() {\n  const router = useRouter();\n  const queryClient = useQueryClient();\n\n  const {\n    params: { id: networkId, nodeName },\n  } = useCurrentStateAndParams();\n  const environmentId = useEnvironmentId();\n  const networkQuery = useNetwork(environmentId, networkId, { nodeName });\n  const deleteNetworkMutation = useDeleteNetwork();\n  const containersQuery = useContainers(environmentId, {\n    filters: {\n      network: [networkId],\n    },\n    nodeName,\n  });\n\n  if (!networkQuery.data) {\n    return null;\n  }\n\n  const network = networkQuery.data;\n\n  const networkContainers = filterContainersInNetwork(\n    network.Containers,\n    containersQuery.data\n  );\n  const resourceControl = network.Portainer?.ResourceControl\n    ? new ResourceControlViewModel(network.Portainer.ResourceControl)\n    : undefined;\n\n  return (\n    <>\n      <PageHeader\n        title=\"Network details\"\n        breadcrumbs={[\n          { link: 'docker.networks', label: 'Networks' },\n          {\n            link: 'docker.networks.network',\n            label: networkQuery.data.Name,\n          },\n        ]}\n        reload\n      />\n      <NetworkDetailsTable\n        network={networkQuery.data}\n        onRemoveNetworkClicked={onRemoveNetworkClicked}\n      />\n\n      <AccessControlPanel\n        onUpdateSuccess={() =>\n          queryClient.invalidateQueries([\n            'environments',\n            environmentId,\n            'docker',\n            'networks',\n            networkId,\n          ])\n        }\n        resourceControl={resourceControl}\n        resourceType={ResourceControlType.Network}\n        disableOwnershipChange={isSystemNetwork(networkQuery.data.Name)}\n        resourceId={networkId}\n        environmentId={environmentId}\n      />\n      <NetworkOptionsTable options={networkQuery.data.Options} />\n      <NetworkContainersTable\n        networkContainers={networkContainers}\n        nodeName={nodeName}\n        environmentId={environmentId}\n        networkId={networkId}\n      />\n    </>\n  );\n\n  async function onRemoveNetworkClicked() {\n    const message = 'Do you want to delete the network?';\n    const confirmed = await confirmDelete(message);\n\n    if (confirmed) {\n      deleteNetworkMutation.mutate(\n        { environmentId, networkId, nodeName },\n        {\n          onSuccess: () => {\n            router.stateService.go('docker.networks');\n          },\n        }\n      );\n    }\n  }\n}\n\nfunction filterContainersInNetwork(\n  networkContainers?: NetworkResponseContainers,\n  containers: DockerContainer[] = []\n) {\n  if (!networkContainers) {\n    return [];\n  }\n\n  return containers\n    .filter((container) => networkContainers[container.Id])\n    .map((container) => ({\n      ...networkContainers[container.Id],\n      Id: container.Id,\n    }));\n}\n","import { Box } from 'lucide-react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport type { DockerContainer } from '@/react/docker/containers/types';\nimport { useShowGPUsColumn } from '@/react/docker/containers/utils';\n\nimport { Table, Datatable } from '@@/datatables';\nimport {\n  buildAction,\n  QuickActionsSettings,\n} from '@@/datatables/QuickActionsSettings';\nimport {\n  ColumnVisibilityMenu,\n  getColumnVisibilityState,\n} from '@@/datatables/ColumnVisibilityMenu';\nimport { TableSettingsProvider } from '@@/datatables/useTableSettings';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useContainers } from '../../queries/containers';\n\nimport { createStore } from './datatable-store';\nimport { ContainersDatatableSettings } from './ContainersDatatableSettings';\nimport { useColumns } from './columns';\nimport { ContainersDatatableActions } from './ContainersDatatableActions';\nimport { RowProvider } from './RowContext';\n\nconst storageKey = 'containers';\nconst settingsStore = createStore(storageKey);\n\nconst actions = [\n  buildAction('logs', 'Logs'),\n  buildAction('inspect', 'Inspect'),\n  buildAction('stats', 'Stats'),\n  buildAction('exec', 'Console'),\n  buildAction('attach', 'Attach'),\n];\n\nexport interface Props {\n  isHostColumnVisible: boolean;\n  environment: Environment;\n}\n\nexport function ContainersDatatable({\n  isHostColumnVisible,\n  environment,\n}: Props) {\n  const isGPUsColumnVisible = useShowGPUsColumn(environment.Id);\n  const columns = useColumns(isHostColumnVisible, isGPUsColumnVisible);\n  const tableState = useTableState(settingsStore, storageKey);\n\n  const containersQuery = useContainers(environment.Id, {\n    autoRefreshRate: tableState.autoRefreshRate * 1000,\n  });\n\n  return (\n    <RowProvider context={{ environment }}>\n      <TableSettingsProvider settings={settingsStore}>\n        <Datatable\n          titleIcon={Box}\n          title=\"Containers\"\n          settingsManager={tableState}\n          columns={columns}\n          renderTableActions={(selectedRows) => (\n            <ContainersDatatableActions\n              selectedItems={selectedRows}\n              isAddActionVisible\n              endpointId={environment.Id}\n            />\n          )}\n          isLoading={containersQuery.isLoading}\n          isRowSelectable={(row) => !row.original.IsPortainer}\n          initialTableState={getColumnVisibilityState(tableState.hiddenColumns)}\n          renderTableSettings={(tableInstance) => (\n            <>\n              <ColumnVisibilityMenu<DockerContainer>\n                table={tableInstance}\n                onChange={(hiddenColumns) => {\n                  tableState.setHiddenColumns(hiddenColumns);\n                }}\n                value={tableState.hiddenColumns}\n              />\n              <Table.SettingsMenu\n                quickActions={<QuickActionsSettings actions={actions} />}\n              >\n                <ContainersDatatableSettings\n                  isRefreshVisible\n                  settings={tableState}\n                />\n              </Table.SettingsMenu>\n            </>\n          )}\n          dataset={containersQuery.data || []}\n          emptyContentLabel=\"No containers found\"\n        />\n      </TableSettingsProvider>\n    </RowProvider>\n  );\n}\n","import { useQuery } from 'react-query';\nimport {\n  ContainerConfig,\n  ContainerState,\n  GraphDriverData,\n  HostConfig,\n  MountPoint,\n  NetworkSettings,\n} from 'docker-types/generated/1.41';\nimport { RawAxiosRequestHeaders } from 'axios';\n\nimport { PortainerResponse } from '@/react/docker/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { ContainerId } from '@/react/docker/containers/types';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { queryClient } from '@/react-tools/react-query';\n\nimport { urlBuilder } from '../containers.service';\n\nimport { queryKeys } from './query-keys';\n\nexport interface ContainerJSON {\n  /**\n   * The ID of the container\n   */\n  Id?: string;\n  /**\n   * The time the container was created\n   */\n  Created?: string;\n  /**\n   * The path to the command being run\n   */\n  Path?: string;\n  /**\n   * The arguments to the command being run\n   */\n  Args?: Array<string>;\n  State?: ContainerState;\n  /**\n   * The container's image ID\n   */\n  Image?: string;\n  ResolvConfPath?: string;\n  HostnamePath?: string;\n  HostsPath?: string;\n  LogPath?: string;\n  Name?: string;\n  RestartCount?: number;\n  Driver?: string;\n  Platform?: string;\n  MountLabel?: string;\n  ProcessLabel?: string;\n  AppArmorProfile?: string;\n  /**\n   * IDs of exec instances that are running in the container.\n   */\n  ExecIDs?: Array<string> | null;\n  HostConfig?: HostConfig;\n  GraphDriver?: GraphDriverData;\n  /**\n   * The size of files that have been created or changed by this\n   * container.\n   *\n   */\n  SizeRw?: number;\n  /**\n   * The total size of all the files in this container.\n   */\n  SizeRootFs?: number;\n  Mounts?: Array<MountPoint>;\n  Config?: ContainerConfig;\n  NetworkSettings?: NetworkSettings;\n}\n\nexport function useContainer(\n  environmentId: EnvironmentId,\n  containerId?: ContainerId,\n  nodeName?: string,\n  { enabled }: { enabled?: boolean } = {}\n) {\n  return useQuery(\n    containerId ? queryKeys.container(environmentId, containerId) : [],\n    () =>\n      containerId\n        ? getContainer(environmentId, containerId, nodeName)\n        : undefined,\n    {\n      meta: {\n        title: 'Failure',\n        message: 'Unable to retrieve container',\n      },\n      enabled: enabled && !!containerId,\n    }\n  );\n}\n\nexport function invalidateContainer(\n  environmentId: EnvironmentId,\n  containerId?: ContainerId\n) {\n  return queryClient.invalidateQueries(\n    containerId ? queryKeys.container(environmentId, containerId) : []\n  );\n}\n\nexport type ContainerResponse = PortainerResponse<ContainerJSON>;\n\nasync function getContainer(\n  environmentId: EnvironmentId,\n  containerId: ContainerId,\n  nodeName?: string\n) {\n  try {\n    const headers: RawAxiosRequestHeaders = {};\n\n    if (nodeName) {\n      headers['X-PortainerAgent-Target'] = nodeName;\n    }\n\n    const { data } = await axios.get<ContainerResponse>(\n      urlBuilder(environmentId, containerId, 'json'),\n      { headers }\n    );\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error, 'Unable to retrieve container');\n  }\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { useContainer } from '@/react/docker/containers/queries/container';\n\nimport { InformationPanel } from '@@/InformationPanel';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Link } from '@@/Link';\n\nexport function LogView() {\n  const {\n    params: { endpointId: environmentId, id: containerId, nodeName },\n  } = useCurrentStateAndParams();\n\n  const containerQuery = useContainer(environmentId, containerId, nodeName);\n  if (!containerQuery.data || containerQuery.isLoading) {\n    return null;\n  }\n\n  const logsEnabled =\n    containerQuery.data.HostConfig?.LogConfig?.Type && // if a portion of the object path doesn't exist, logging is likely disabled\n    containerQuery.data.HostConfig.LogConfig.Type !== 'none'; // if type === none logging is disabled\n\n  return <>{!logsEnabled && <LogsDisabledInfoPanel />}</>;\n}\n\nfunction LogsDisabledInfoPanel() {\n  const {\n    params: { id: containerId, nodeName },\n  } = useCurrentStateAndParams();\n\n  return (\n    <InformationPanel>\n      <TextTip color=\"blue\">\n        Logging is disabled for this container. If you want to re-enable\n        logging, please{' '}\n        <Link\n          to=\"docker.containers.new\"\n          params={{ from: containerId, nodeName }}\n        >\n          redeploy your container\n        </Link>{' '}\n        and select a logging driver in the &quot;Command & logging&quot; panel.\n      </TextTip>\n    </InformationPanel>\n  );\n}\n","import { Webhook } from './types';\n\nexport function buildUrl(id?: Webhook['Id']) {\n  const url = '/webhooks';\n\n  if (id) {\n    return `${url}/${id}`;\n  }\n\n  return url;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EnvironmentId } from '../environments/types';\nimport { RegistryId } from '../registries/types/registry';\n\nimport { buildUrl } from './build-url';\nimport { Webhook, WebhookType } from './types';\n\ninterface CreateWebhookPayload {\n  ResourceId: string;\n  EndpointID: EnvironmentId;\n  RegistryId?: RegistryId;\n  WebhookType: WebhookType;\n}\n\nexport async function createWebhook(payload: CreateWebhookPayload) {\n  try {\n    const { data } = await axios.post<Webhook>(buildUrl(), payload);\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error, 'Unable to create webhook');\n  }\n}\n","import { EnvironmentId } from '../environments/types';\nimport { RegistryId } from '../registries/types/registry';\n\nexport enum WebhookType {\n  DockerService = 1,\n  DockerContainer = 2,\n}\n\nexport interface Webhook {\n  Id: number;\n  Token: string;\n  ResourceId: string;\n  EndpointId: EnvironmentId;\n  RegistryId: RegistryId;\n  Type: WebhookType;\n}\n\nexport interface Filters {\n  endpointId: EnvironmentId;\n  resourceId?: string;\n}\n","import { RawAxiosRequestHeaders } from 'axios';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { Registry } from '@/react/portainer/registries/types/registry';\n\nimport { buildImageFullURI } from '../utils';\n\nimport { encodeRegistryCredentials } from './encodeRegistryCredentials';\nimport { buildProxyUrl } from './build-url';\n\ninterface PullImageOptions {\n  environmentId: EnvironmentId;\n  image: string;\n  nodeName?: string;\n  registry?: Registry;\n  ignoreErrors: boolean;\n}\n\nexport async function pullImage({\n  environmentId,\n  ignoreErrors,\n  image,\n  nodeName,\n  registry,\n}: PullImageOptions) {\n  const authenticationDetails =\n    registry && registry.Authentication\n      ? encodeRegistryCredentials(registry.Id)\n      : '';\n\n  const imageURI = buildImageFullURI(image, registry);\n\n  const headers: RawAxiosRequestHeaders = {\n    'X-Registry-Auth': authenticationDetails,\n  };\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  try {\n    await axios.post(buildProxyUrl(environmentId, { action: 'create' }), null, {\n      params: {\n        fromImage: imageURI,\n      },\n      headers,\n    });\n  } catch (err) {\n    if (ignoreErrors) {\n      return;\n    }\n\n    throw parseAxiosError(err as Error, 'Unable to pull image');\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\nimport { RawAxiosRequestHeaders } from 'axios';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  Environment,\n  EnvironmentId,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport {\n  Registry,\n  RegistryId,\n} from '@/react/portainer/registries/types/registry';\nimport { createWebhook } from '@/react/portainer/webhooks/createWebhook';\nimport { WebhookType } from '@/react/portainer/webhooks/types';\nimport {\n  AccessControlFormData,\n  ResourceControlResponse,\n} from '@/react/portainer/access-control/types';\nimport { applyResourceControl } from '@/react/portainer/access-control/access-control.service';\nimport PortainerError from '@/portainer/error';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { pullImage } from '../../images/queries/usePullImageMutation';\nimport {\n  removeContainer,\n  renameContainer,\n  startContainer,\n  stopContainer,\n  urlBuilder,\n} from '../containers.service';\nimport { PortainerResponse } from '../../types';\nimport { connectContainer } from '../../networks/queries/useConnectContainer';\nimport { DockerContainer } from '../types';\nimport { queryKeys } from '../queries/query-keys';\n\nimport { CreateContainerRequest } from './types';\nimport { Values } from './useInitialValues';\n\ninterface ExtraNetwork {\n  networkName: string;\n  aliases: string[];\n}\n\nexport function useCreateOrReplaceMutation() {\n  const environmentId = useEnvironmentId();\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    createOrReplace,\n    mutationOptions(\n      withError('Failed to create container'),\n      withInvalidate(queryClient, [queryKeys.list(environmentId)])\n    )\n  );\n}\n\ninterface CreateOptions {\n  config: CreateContainerRequest;\n  values: Values;\n  registry?: Registry;\n  environment: Environment;\n}\n\ninterface ReplaceOptions extends CreateOptions {\n  oldContainer: DockerContainer;\n  extraNetworks: Array<ExtraNetwork>;\n}\n\nfunction isReplace(\n  options: ReplaceOptions | CreateOptions\n): options is ReplaceOptions {\n  return 'oldContainer' in options && !!options.oldContainer;\n}\n\nexport function createOrReplace(options: ReplaceOptions | CreateOptions) {\n  return isReplace(options) ? replace(options) : create(options);\n}\n\nasync function create({\n  config,\n  values,\n  registry,\n  environment,\n}: CreateOptions) {\n  await pullImageIfNeeded(\n    environment.Id,\n    values.nodeName,\n    values.alwaysPull,\n    values.image.image,\n    registry\n  );\n\n  const containerResponse = await createAndStart(\n    environment,\n    config,\n    values.name,\n    values.nodeName\n  );\n\n  await applyContainerSettings(\n    containerResponse.Id,\n    environment,\n    values.enableWebhook,\n    values.accessControl,\n    containerResponse.Portainer?.ResourceControl,\n    registry\n  );\n}\n\nasync function replace({\n  oldContainer,\n  config,\n  values,\n  registry,\n  environment,\n  extraNetworks,\n}: ReplaceOptions) {\n  await pullImageIfNeeded(\n    environment.Id,\n    values.nodeName,\n    values.alwaysPull,\n    values.image.image,\n    registry\n  );\n\n  const containerResponse = await renameAndCreate(\n    environment,\n    values,\n    oldContainer,\n    config\n  );\n\n  await applyContainerSettings(\n    containerResponse.Id,\n    environment,\n    values.enableWebhook,\n    values.accessControl,\n    containerResponse.Portainer?.ResourceControl,\n    registry\n  );\n\n  await connectToExtraNetworks(\n    environment.Id,\n    values.nodeName,\n    containerResponse.Id,\n    extraNetworks\n  );\n\n  await removeContainer(environment.Id, oldContainer.Id, {\n    nodeName: values.nodeName,\n  });\n}\n\n/**\n * stop and renames the old container, and creates and stops the new container.\n * on any failure, it will rename the old container to its original name\n */\nasync function renameAndCreate(\n  environment: Environment,\n  values: Values,\n  oldContainer: DockerContainer,\n  config: CreateContainerRequest\n) {\n  let renamed = false;\n  try {\n    await stopContainerIfNeeded(environment.Id, values.nodeName, oldContainer);\n\n    await renameContainer(\n      environment.Id,\n      oldContainer.Id,\n      `${oldContainer.Names[0]}-old`,\n      { nodeName: values.nodeName }\n    );\n    renamed = true;\n\n    return await createAndStart(\n      environment,\n      config,\n      values.name,\n      values.nodeName\n    );\n  } catch (e) {\n    if (renamed) {\n      await renameContainer(environment.Id, oldContainer.Id, values.name, {\n        nodeName: values.nodeName,\n      });\n    }\n    throw e;\n  }\n}\n\n/**\n * creates a webhook if necessary and applies resource control\n */\nasync function applyContainerSettings(\n  containerId: string,\n  environment: Environment,\n  enableWebhook: boolean,\n  accessControl: AccessControlFormData,\n  resourceControl?: ResourceControlResponse,\n  registry?: Registry\n) {\n  if (enableWebhook) {\n    await createContainerWebhook(containerId, environment, registry?.Id);\n  }\n\n  // Portainer will always return a resource control, but since types mark it as optional, we need to check it.\n  // Ignoring the missing value will result with bugs, hence it's better to throw an error\n  if (!resourceControl) {\n    throw new PortainerError('resource control expected after creation');\n  }\n\n  await applyResourceControl(accessControl, resourceControl.Id);\n}\n\n/**\n * creates a new container and starts it.\n * on failure, it will remove the new container\n */\nasync function createAndStart(\n  environment: Environment,\n  config: CreateContainerRequest,\n  name: string,\n  nodeName: string\n) {\n  let containerId = '';\n  try {\n    const containerResponse = await createContainer(\n      environment.Id,\n      config,\n      name,\n      {\n        nodeName,\n      }\n    );\n\n    containerId = containerResponse.Id;\n\n    await startContainer(environment.Id, containerResponse.Id, { nodeName });\n    return containerResponse;\n  } catch (e) {\n    if (containerId) {\n      await removeContainer(environment.Id, containerId, {\n        nodeName,\n      });\n    }\n\n    throw e;\n  }\n}\n\nasync function pullImageIfNeeded(\n  environmentId: EnvironmentId,\n  nodeName: string,\n  pull: boolean,\n  image: string,\n  registry?: Registry\n) {\n  if (!pull) {\n    return null;\n  }\n\n  return pullImage({\n    environmentId,\n    nodeName,\n    image,\n    registry,\n    ignoreErrors: true,\n  });\n}\n\nasync function createContainer(\n  environmentId: EnvironmentId,\n  config: CreateContainerRequest,\n  name?: string,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  try {\n    const headers: RawAxiosRequestHeaders = {};\n\n    if (nodeName) {\n      headers['X-PortainerAgent-Target'] = nodeName;\n    }\n\n    const { data } = await axios.post<\n      PortainerResponse<{ Id: string; Warnings: Array<string> }>\n    >(urlBuilder(environmentId, undefined, 'create'), config, {\n      headers,\n      params: { name },\n    });\n\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err, 'Unable to create container');\n  }\n}\n\nasync function createContainerWebhook(\n  containerId: string,\n  environment: Environment,\n  registryId?: RegistryId\n) {\n  const isNotEdgeAgentOnDockerEnvironment =\n    environment.Type !== EnvironmentType.EdgeAgentOnDocker;\n  if (!isNotEdgeAgentOnDockerEnvironment) {\n    return;\n  }\n\n  await createWebhook({\n    ResourceId: containerId,\n    EndpointID: environment.Id,\n    RegistryId: registryId,\n    WebhookType: WebhookType.DockerContainer,\n  });\n}\n\nfunction connectToExtraNetworks(\n  environmentId: EnvironmentId,\n  nodeName: string,\n  containerId: string,\n  extraNetworks: Array<ExtraNetwork>\n) {\n  if (!extraNetworks) {\n    return null;\n  }\n\n  return Promise.all(\n    extraNetworks.map(({ networkName, aliases }) =>\n      connectContainer({\n        networkId: networkName,\n        nodeName,\n        containerId,\n        environmentId,\n        aliases,\n      })\n    )\n  );\n}\n\nfunction stopContainerIfNeeded(\n  environmentId: EnvironmentId,\n  nodeName: string,\n  container: DockerContainer\n) {\n  if (container.State !== 'running' || !container.Id) {\n    return null;\n  }\n  return stopContainer(environmentId, container.Id, { nodeName });\n}\n","import { Registry, RegistryTypes } from '../types/registry';\n\nexport function getURL(registry: Registry) {\n  switch (registry.Type) {\n    case RegistryTypes.GITLAB:\n      return `${registry.URL}/${registry.Gitlab.ProjectPath}`;\n\n    case RegistryTypes.QUAY:\n      return getQuayUrl(registry);\n\n    case RegistryTypes.GITHUB:\n      return getGithubUrl(registry);\n\n    default:\n      return registry.URL;\n  }\n\n  function getGithubUrl(registry: Registry) {\n    const name = registry.Github.UseOrganisation\n      ? registry.Github.OrganisationName\n      : registry.Username;\n    return `${registry.URL}/${name}`;\n  }\n\n  function getQuayUrl(registry: Registry) {\n    const name = registry.Quay.UseOrganisation\n      ? registry.Quay.OrganisationName\n      : registry.Username;\n    return `${registry.URL}/${name}`;\n  }\n}\n","import { PortMap } from 'docker-types/generated/1.41';\nimport _ from 'lodash';\n\nimport { Protocol, Values } from './PortsMappingField';\n\nexport type Range = {\n  start: number;\n  end: number;\n};\n\ntype StringPortBinding = {\n  hostPort: string;\n  protocol: Protocol;\n  containerPort: number;\n};\n\ntype NumericPortBinding = {\n  hostPort: number;\n  protocol: Protocol;\n  containerPort: number;\n};\n\ntype RangePortBinding = {\n  hostPort: Range;\n  protocol: Protocol;\n  containerPort: Range;\n};\n\nexport function toViewModel(portBindings: PortMap): Values {\n  const parsedPorts = parsePorts(portBindings);\n  const sortedPorts = sortPorts(parsedPorts);\n\n  return [\n    ...sortedPorts.rangePorts.map((port) => ({\n      ...port,\n      containerPort: String(port.containerPort),\n    })),\n    ...combinePorts(sortedPorts.nonRangePorts),\n  ];\n\n  function isProtocol(value: string): value is Protocol {\n    return value === 'tcp' || value === 'udp';\n  }\n\n  function parsePorts(\n    portBindings: PortMap\n  ): Array<StringPortBinding | NumericPortBinding> {\n    return Object.entries(portBindings).flatMap(([key, bindings]) => {\n      const [containerPort, protocol] = key.split('/');\n\n      if (!isProtocol(protocol)) {\n        throw new Error(`Invalid protocol: ${protocol}`);\n      }\n\n      if (!bindings) {\n        return [];\n      }\n\n      const containerPortNumber = parseInt(containerPort, 10);\n\n      if (Number.isNaN(containerPortNumber)) {\n        throw new Error(`Invalid container port: ${containerPort}`);\n      }\n\n      return bindings.map((binding) => {\n        if (binding.HostPort?.includes('-')) {\n          return {\n            hostPort: binding.HostPort,\n            protocol,\n            containerPort: containerPortNumber,\n          };\n        }\n        return {\n          hostPort: parseInt(binding.HostPort || '0', 10),\n          protocol,\n          containerPort: containerPortNumber,\n        };\n      });\n    });\n  }\n\n  function sortPorts(ports: Array<StringPortBinding | NumericPortBinding>) {\n    const rangePorts = ports.filter(isStringPortBinding);\n    const nonRangePorts = ports.filter(isNumericPortBinding);\n\n    return {\n      rangePorts,\n      nonRangePorts: _.sortBy(nonRangePorts, [\n        'containerPort',\n        'hostPort',\n        'protocol',\n      ]),\n    };\n  }\n\n  function combinePorts(ports: Array<NumericPortBinding>) {\n    return ports\n      .reduce((acc, port) => {\n        const lastPort = acc[acc.length - 1];\n        if (\n          lastPort &&\n          lastPort.containerPort.end === port.containerPort - 1 &&\n          lastPort.hostPort.end === port.hostPort - 1 &&\n          lastPort.protocol === port.protocol\n        ) {\n          lastPort.containerPort.end = port.containerPort;\n          lastPort.hostPort.end = port.hostPort;\n          return acc;\n        }\n\n        return [\n          ...acc,\n          {\n            hostPort: {\n              start: port.hostPort,\n              end: port.hostPort,\n            },\n            containerPort: {\n              start: port.containerPort,\n              end: port.containerPort,\n            },\n            protocol: port.protocol,\n          },\n        ];\n      }, [] as Array<RangePortBinding>)\n      .map(({ protocol, containerPort, hostPort }) => ({\n        hostPort: getRange(hostPort.start, hostPort.end),\n        containerPort: getRange(containerPort.start, containerPort.end),\n        protocol,\n      }));\n\n    function getRange(start: number, end: number): string {\n      if (start === end) {\n        if (start === 0) {\n          return '';\n        }\n\n        return start.toString();\n      }\n\n      return `${start}-${end}`;\n    }\n  }\n}\n\nfunction isNumericPortBinding(\n  port: StringPortBinding | NumericPortBinding\n): port is NumericPortBinding {\n  return port.hostPort !== 'string';\n}\n\nfunction isStringPortBinding(\n  port: StringPortBinding | NumericPortBinding\n): port is StringPortBinding {\n  return port.hostPort === 'string';\n}\n","import { PortMap } from 'docker-types/generated/1.41';\nimport _ from 'lodash';\n\nimport { PortMapping, Protocol, Values } from './PortsMappingField';\nimport { Range } from './PortsMappingField.viewModel';\n\ntype PortKey = `${string}/${Protocol}`;\n\nexport function parsePortBindingRequest(portBindings: Values): PortMap {\n  const bindings: Record<\n    PortKey,\n    Array<{ HostIp: string; HostPort: string }>\n  > = {};\n  _.forEach(portBindings, (portBinding) => {\n    if (!portBinding.containerPort) {\n      return;\n    }\n\n    const portInfo = extractPortInfo(portBinding);\n    if (!portInfo) {\n      return;\n    }\n\n    let { hostPort } = portBinding;\n    const { endHostPort, endPort, hostIp, startHostPort, startPort } = portInfo;\n    _.range(startPort, endPort + 1).forEach((containerPort) => {\n      const bindKey: PortKey = `${containerPort}/${portBinding.protocol}`;\n      if (!bindings[bindKey]) {\n        bindings[bindKey] = [];\n      }\n\n      if (startHostPort > 0) {\n        hostPort = (startHostPort + containerPort - startPort).toString();\n      }\n      if (startPort === endPort && startHostPort !== endHostPort) {\n        hostPort += `-${endHostPort.toString()}`;\n      }\n\n      bindings[bindKey].push({ HostIp: hostIp, HostPort: hostPort });\n    });\n  });\n  return bindings;\n}\n\nfunction isValidPortRange(portRange: Range) {\n  return portRange.start > 0 && portRange.end >= portRange.start;\n}\n\nfunction parsePortRange(portRange: string | number): Range {\n  // Make sure we have a string\n  const portRangeString = portRange.toString();\n\n  // Split the range and convert to integers\n  const stringPorts = _.split(portRangeString, '-', 2);\n  const intPorts = _.map(stringPorts, parsePort);\n\n  return {\n    start: intPorts[0],\n    end: intPorts[1] || intPorts[0],\n  };\n}\n\nconst portPattern =\n  /^([1-9]|[1-5]?[0-9]{2,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/m;\n\nfunction parsePort(port: string) {\n  if (portPattern.test(port)) {\n    return parseInt(port, 10);\n  }\n\n  return 0;\n}\n\nfunction extractPortInfo(portBinding: PortMapping) {\n  const containerPortRange = parsePortRange(portBinding.containerPort);\n  if (!isValidPortRange(containerPortRange)) {\n    throw new Error(`Invalid port specification: ${portBinding.containerPort}`);\n  }\n\n  const startPort = containerPortRange.start;\n  const endPort = containerPortRange.end;\n  let hostIp = '';\n  let { hostPort } = portBinding;\n  if (!hostPort) {\n    return null;\n  }\n\n  if (hostPort.includes('[')) {\n    const hostAndPort = _.split(hostPort, ']:');\n\n    if (hostAndPort.length < 2) {\n      throw new Error(\n        `Invalid port specification: ${portBinding.containerPort}`\n      );\n    }\n\n    hostIp = hostAndPort[0].replace('[', '');\n    [, hostPort] = hostAndPort;\n  } else if (hostPort.includes(':')) {\n    [hostIp, hostPort] = _.split(hostPort, ':');\n  }\n\n  const hostPortRange = parsePortRange(hostPort);\n  if (!isValidPortRange(hostPortRange)) {\n    throw new Error(`Invalid port specification: ${hostPort}`);\n  }\n\n  const { start: startHostPort, end: endHostPort } = hostPortRange;\n  if (\n    endPort !== startPort &&\n    endPort - startPort !== endHostPort - startHostPort\n  ) {\n    throw new Error(`Invalid port specification: ${hostPort}`);\n  }\n\n  return { startPort, endPort, hostIp, startHostPort, endHostPort };\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys as proxyQueryKeys } from '../query-keys';\n\nexport const queryKeys = {\n  base: (environmentId: EnvironmentId) =>\n    [proxyQueryKeys.base(environmentId), 'images'] as const,\n  list: (environmentId: EnvironmentId) => queryKeys.base(environmentId),\n};\n","import { useQuery } from 'react-query';\nimport { ImageSummary } from 'docker-types/generated/1.41';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from '../build-url';\n\nimport { queryKeys } from './queryKeys';\n\ntype ImagesListResponse = Array<ImageSummary>;\n\nexport function useImages<T = ImagesListResponse>(\n  environmentId: EnvironmentId,\n  {\n    select,\n    enabled,\n  }: { select?(data: ImagesListResponse): T; enabled?: boolean } = {}\n) {\n  return useQuery(\n    queryKeys.list(environmentId),\n    () => getImages(environmentId),\n    { select, enabled }\n  );\n}\n\nasync function getImages(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<ImagesListResponse>(\n      buildUrl(environmentId, 'images', 'json')\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve images');\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Registry } from '../types/registry';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\nexport function useRegistry(registryId?: Registry['Id']) {\n  const environmentId = useEnvironmentId();\n\n  return useQuery(\n    registryId ? queryKeys.item(registryId) : [],\n    () => (registryId ? getRegistry(registryId, environmentId) : undefined),\n    {\n      enabled: !!registryId,\n    }\n  );\n}\n\nasync function getRegistry(registryId: Registry['Id'], environmentId: number) {\n  try {\n    const { data } = await axios.get<Registry>(buildUrl(registryId), {\n      params: {\n        endpointId: environmentId,\n      },\n    });\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to retrieve registry');\n  }\n}\n","import { useMemo } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { AutocompleteSelect } from '@@/form-components/AutocompleteSelect';\nimport { Option } from '@@/form-components/PortainerSelect';\n\nexport function InputSearch({\n  value,\n  onChange,\n  options,\n  placeholder,\n  inputId,\n}: {\n  value: string;\n  onChange: (value: string) => void;\n  options: Option<string>[];\n  placeholder?: string;\n  inputId: string;\n} & AutomationTestingProps) {\n  const searchResults = useMemo(() => {\n    if (!value) {\n      return [];\n    }\n    return options.filter((option) =>\n      option.value.toLowerCase().includes(value.toLowerCase())\n    );\n  }, [options, value]);\n\n  return (\n    <AutocompleteSelect\n      searchResults={searchResults}\n      value={value}\n      onChange={onChange}\n      placeholder={placeholder}\n      inputId={inputId}\n    />\n  );\n}\n","import {\n  Registry,\n  RegistryTypes,\n} from '@/react/portainer/registries/types/registry';\n\nexport function getIsDockerHubRegistry(registry?: Registry | null) {\n  return (\n    !registry ||\n    registry.Type === RegistryTypes.DOCKERHUB ||\n    registry.Type === RegistryTypes.ANONYMOUS\n  );\n}\n","import { FormikErrors } from 'formik';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { trimSHA, trimVersionTag } from 'Docker/filters/utils';\nimport DockerIcon from '@/assets/ico/vendor/docker.svg?c';\nimport { useImages } from '@/react/docker/proxy/queries/images/useImages';\nimport {\n  imageContainsURL,\n  getUniqueTagListFromImages,\n} from '@/react/docker/images/utils';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useEnvironmentRegistries } from '@/react/portainer/environments/queries/useEnvironmentRegistries';\nimport {\n  Registry,\n  RegistryId,\n  RegistryTypes,\n} from '@/react/portainer/registries/types/registry';\nimport { useRegistry } from '@/react/portainer/registries/queries/useRegistry';\n\nimport { Button } from '@@/buttons';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\nimport { Input } from '@@/form-components/Input';\n\nimport { Values } from './types';\nimport { InputSearch } from './InputSearch';\nimport { getIsDockerHubRegistry } from './utils';\n\nexport function SimpleForm({\n  autoComplete,\n  values,\n  errors,\n  onChangeImage,\n  setFieldValue,\n}: {\n  autoComplete?: boolean;\n  values: Values;\n  errors?: FormikErrors<Values>;\n  onChangeImage?: (name: string) => void;\n  setFieldValue: <T>(field: string, value: T) => void;\n}) {\n  const registryQuery = useRegistry(values.registryId);\n\n  const registry = registryQuery.data;\n\n  const registryUrl = getRegistryURL(registry) || 'docker.io';\n  const isDockerHubRegistry = getIsDockerHubRegistry(registry);\n\n  return (\n    <>\n      <FormControl\n        label=\"Registry\"\n        inputId=\"registry-field\"\n        errors={errors?.registryId}\n      >\n        <RegistrySelector\n          onChange={(value) => setFieldValue('registryId', value)}\n          value={values.registryId}\n          inputId=\"registry-field\"\n        />\n      </FormControl>\n\n      <FormControl label=\"Image\" inputId=\"image-field\" errors={errors?.image}>\n        <InputGroup>\n          <InputGroup.Addon>{registryUrl}</InputGroup.Addon>\n\n          <ImageField\n            onChange={(value) => {\n              setFieldValue('image', value);\n              onChangeImage?.(value);\n            }}\n            value={values.image}\n            registry={registry}\n            autoComplete={autoComplete}\n            inputId=\"image-field\"\n          />\n\n          {isDockerHubRegistry && (\n            <InputGroup.ButtonWrapper>\n              <Button\n                as=\"a\"\n                title=\"Search image on Docker Hub\"\n                color=\"default\"\n                props={{\n                  href: `https://hub.docker.com/search?type=image&q=${trimVersionTag(\n                    trimSHA(values.image)\n                  )}`,\n                  target: '_blank',\n                  rel: 'noreferrer',\n                }}\n                icon={DockerIcon}\n              >\n                Search\n              </Button>\n            </InputGroup.ButtonWrapper>\n          )}\n        </InputGroup>\n      </FormControl>\n    </>\n  );\n}\n\nfunction getImagesForRegistry(\n  images: string[],\n  registries: Array<Registry>,\n  registry?: Registry\n) {\n  if (isKnownRegistry(registry)) {\n    const url = getRegistryURL(registry);\n    const registryImages = images.filter((image) => image.includes(url));\n    return registryImages.map((image) =>\n      image.replace(new RegExp(`${url}/?`), '')\n    );\n  }\n\n  const knownRegistries = registries.filter((reg) => isKnownRegistry(reg));\n  const registryImages = knownRegistries.flatMap((registry) =>\n    images.filter((image) => image.includes(registry.URL))\n  );\n  return _.difference(images, registryImages).filter(\n    (image) => !imageContainsURL(image)\n  );\n}\n\nfunction RegistrySelector({\n  value,\n  onChange,\n  inputId,\n}: {\n  value: RegistryId | undefined;\n  onChange: (value: RegistryId | undefined) => void;\n  inputId?: string;\n}) {\n  const environmentId = useEnvironmentId();\n\n  const registriesQuery = useEnvironmentRegistries(environmentId, {\n    select: (registries) =>\n      registries\n        .sort((a, b) => a.Name.localeCompare(b.Name))\n        .map((registry) => ({\n          label: registry.Name,\n          value: registry.Id,\n        })),\n    onSuccess: (options) => {\n      if (options && options.length) {\n        const idx = options.findIndex((v) => v.value === value);\n        if (idx === -1) {\n          onChange(options[0].value);\n        }\n      }\n    },\n  });\n\n  return (\n    <PortainerSelect\n      inputId={inputId}\n      options={registriesQuery.data || []}\n      value={value}\n      onChange={onChange}\n      data-cy=\"component-registrySelect\"\n    />\n  );\n}\n\nfunction ImageField({\n  value,\n  onChange,\n  registry,\n  autoComplete,\n  inputId,\n}: {\n  value: string;\n  onChange: (value: string) => void;\n  registry?: Registry;\n  autoComplete?: boolean;\n  inputId: string;\n}) {\n  return autoComplete ? (\n    <ImageFieldAutoComplete\n      value={value}\n      onChange={onChange}\n      registry={registry}\n      inputId={inputId}\n    />\n  ) : (\n    <Input\n      value={value}\n      onChange={(e) => onChange(e.target.value)}\n      id={inputId}\n    />\n  );\n}\n\nfunction ImageFieldAutoComplete({\n  value,\n  onChange,\n  registry,\n  inputId,\n}: {\n  value: string;\n  onChange: (value: string) => void;\n  registry?: Registry;\n  inputId: string;\n}) {\n  const environmentId = useEnvironmentId();\n\n  const registriesQuery = useEnvironmentRegistries(environmentId);\n\n  const imagesQuery = useImages(environmentId, {\n    select: (images) => getUniqueTagListFromImages(images),\n  });\n\n  const imageOptions = useMemo(() => {\n    const images = getImagesForRegistry(\n      imagesQuery.data || [],\n      registriesQuery.data || [],\n      registry\n    );\n    return images.map((image) => ({\n      label: image,\n      value: image,\n    }));\n  }, [registry, imagesQuery.data, registriesQuery.data]);\n\n  return (\n    <InputSearch\n      value={value}\n      onChange={(value) => onChange(value)}\n      data-cy=\"component-imageInput\"\n      placeholder=\"e.g. my-image:my-tag\"\n      options={imageOptions}\n      inputId={inputId}\n    />\n  );\n}\n\nfunction isKnownRegistry(registry?: Registry) {\n  return registry && registry.Type !== RegistryTypes.ANONYMOUS && registry.URL;\n}\n\nfunction getRegistryURL(registry?: Registry) {\n  if (!registry) {\n    return '';\n  }\n\n  if (\n    registry.Type !== RegistryTypes.GITLAB &&\n    registry.Type !== RegistryTypes.GITHUB\n  ) {\n    return registry.URL;\n  }\n\n  if (registry.Type === RegistryTypes.GITLAB) {\n    return `${registry.URL}/${registry.Gitlab?.ProjectPath}`;\n  }\n\n  if (registry.Type === RegistryTypes.GITHUB) {\n    const namespace = registry.Github?.UseOrganisation\n      ? registry.Github?.OrganisationName\n      : registry.Username;\n    return `${registry.URL}/${namespace}`;\n  }\n\n  return '';\n}\n","import { FormikErrors } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { Values } from './types';\n\nexport function AdvancedForm({\n  values,\n  errors,\n  onChangeImage,\n  setFieldValue,\n}: {\n  values: Values;\n  errors?: FormikErrors<Values>;\n  onChangeImage?: (name: string) => void;\n  setFieldValue: <T>(field: string, value: T) => void;\n}) {\n  return (\n    <>\n      <TextTip color=\"blue\">\n        When using advanced mode, image and repository <b>must be</b> publicly\n        available.\n      </TextTip>\n      <FormControl label=\"Image\" inputId=\"image-field\" errors={errors?.image}>\n        <Input\n          id=\"image-field\"\n          value={values.image}\n          onChange={(e) => {\n            const { value } = e.target;\n            setFieldValue('image', value);\n            setTimeout(() => onChangeImage?.(value), 0);\n          }}\n          placeholder=\"e.g. registry:port/my-image:my-tag\"\n          required\n        />\n      </FormControl>\n    </>\n  );\n}\n","import { useQuery } from 'react-query';\nimport { useEffect } from 'react';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { buildUrl } from '@/react/portainer/environments/environment.service/utils';\nimport {\n  Environment,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport {\n  isAgentEnvironment,\n  isLocalEnvironment,\n} from '@/react/portainer/environments/utils';\nimport { RegistryId } from '@/react/portainer/registries/types/registry';\nimport { useRegistry } from '@/react/portainer/registries/queries/useRegistry';\n\nimport { Link } from '@@/Link';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { getIsDockerHubRegistry } from './utils';\n\nexport function RateLimits({\n  registryId,\n  onRateLimit,\n}: {\n  registryId?: RegistryId;\n  onRateLimit: (limited?: boolean) => void;\n}) {\n  const registryQuery = useRegistry(registryId);\n\n  const registry = registryQuery.data;\n\n  const isDockerHubRegistry = getIsDockerHubRegistry(registry);\n\n  const environmentQuery = useCurrentEnvironment();\n\n  if (\n    !environmentQuery.data ||\n    registryQuery.isLoading ||\n    !isDockerHubRegistry\n  ) {\n    return null;\n  }\n\n  return (\n    <RateLimitsInner\n      isAuthenticated={registry?.Authentication}\n      registryId={registryId}\n      onRateLimit={onRateLimit}\n      environment={environmentQuery.data}\n    />\n  );\n}\n\nfunction RateLimitsInner({\n  isAuthenticated = false,\n  registryId = 0,\n  onRateLimit,\n  environment,\n}: {\n  isAuthenticated?: boolean;\n  registryId?: RegistryId;\n  onRateLimit: (limited?: boolean) => void;\n  environment: Environment;\n}) {\n  const pullRateLimits = useRateLimits(registryId, environment, onRateLimit);\n  const { isPureAdmin } = useCurrentUser();\n\n  if (!pullRateLimits) {\n    return null;\n  }\n\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        {pullRateLimits.remaining > 0 ? (\n          <TextTip color=\"blue\">\n            {isAuthenticated ? (\n              <>\n                You are currently using a free account to pull images from\n                DockerHub and will be limited to 200 pulls every 6 hours.\n                Remaining pulls:\n                <span className=\"font-bold\">\n                  {pullRateLimits.remaining}/{pullRateLimits.limit}\n                </span>\n              </>\n            ) : (\n              <>\n                {isPureAdmin ? (\n                  <>\n                    You are currently using an anonymous account to pull images\n                    from DockerHub and will be limited to 100 pulls every 6\n                    hours. You can configure DockerHub authentication in the{' '}\n                    <Link to=\"portainer.registries\">Registries View</Link>.\n                    Remaining pulls:{' '}\n                    <span className=\"font-bold\">\n                      {pullRateLimits.remaining}/{pullRateLimits.limit}\n                    </span>\n                  </>\n                ) : (\n                  <>\n                    You are currently using an anonymous account to pull images\n                    from DockerHub and will be limited to 100 pulls every 6\n                    hours. Contact your administrator to configure DockerHub\n                    authentication. Remaining pulls:{' '}\n                    <span className=\"font-bold\">\n                      {pullRateLimits.remaining}/{pullRateLimits.limit}\n                    </span>\n                  </>\n                )}\n              </>\n            )}\n          </TextTip>\n        ) : (\n          <TextTip>\n            {isAuthenticated ? (\n              <>\n                Your authorized pull count quota as a free user is now exceeded.\n                You will not be able to pull any image from the DockerHub\n                registry.\n              </>\n            ) : (\n              <>\n                Your authorized pull count quota as an anonymous user is now\n                exceeded. You will not be able to pull any image from the\n                DockerHub registry.\n              </>\n            )}\n          </TextTip>\n        )}\n      </div>\n    </div>\n  );\n}\n\ninterface PullRateLimits {\n  remaining: number;\n  limit: number;\n}\n\nfunction useRateLimits(\n  registryId: RegistryId,\n  environment: Environment,\n  onRateLimit: (limited?: boolean) => void\n) {\n  const isValidForPull =\n    isAgentEnvironment(environment.Type) || isLocalEnvironment(environment);\n\n  const query = useQuery(\n    ['dockerhub', environment.Id, registryId],\n    () => getRateLimits(environment, registryId),\n    {\n      enabled: isValidForPull,\n    }\n  );\n\n  useEffect(() => {\n    if (!isValidForPull || query.isError) {\n      onRateLimit();\n    }\n\n    if (query.data) {\n      onRateLimit(query.data.limit > 0 && query.data.remaining === 0);\n    }\n  }, [isValidForPull, onRateLimit, query.data, query.isError]);\n\n  return isValidForPull ? query.data : undefined;\n}\n\nfunction getRateLimits(environment: Environment, registryId: RegistryId) {\n  if (isLocalEnvironment(environment)) {\n    return getLocalEnvironmentRateLimits(environment.Id, registryId);\n  }\n\n  const envType = getEnvType(environment.Type);\n\n  return getAgentEnvironmentRateLimits(environment.Id, envType, registryId);\n}\n\nasync function getLocalEnvironmentRateLimits(\n  environmentId: Environment['Id'],\n  registryId: RegistryId\n) {\n  try {\n    const { data } = await axios.get<PullRateLimits>(\n      buildUrl(environmentId, `dockerhub/${registryId}`)\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve DockerHub pull rate limits'\n    );\n  }\n}\n\nfunction getEnvType(type: Environment['Type']) {\n  switch (type) {\n    case EnvironmentType.AgentOnKubernetes:\n    case EnvironmentType.EdgeAgentOnKubernetes:\n      return 'kubernetes';\n\n    case EnvironmentType.AgentOnDocker:\n    case EnvironmentType.EdgeAgentOnDocker:\n    default:\n      return 'docker';\n  }\n}\n\nasync function getAgentEnvironmentRateLimits(\n  environmentId: Environment['Id'],\n  envType: 'kubernetes' | 'docker',\n  registryId: RegistryId\n) {\n  try {\n    const { data } = await axios.get<PullRateLimits>(\n      buildUrl(environmentId, `${envType}/v2/dockerhub/${registryId}`)\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve DockerHub pull rate limits'\n    );\n  }\n}\n","import { Database, Globe } from 'lucide-react';\nimport { FormikErrors } from 'formik';\nimport { PropsWithChildren } from 'react';\n\nimport { Button } from '@@/buttons';\n\nimport { SimpleForm } from './SimpleForm';\nimport { Values } from './types';\nimport { AdvancedForm } from './AdvancedForm';\nimport { RateLimits } from './RateLimits';\n\nexport function ImageConfigFieldset({\n  onRateLimit,\n  children,\n  autoComplete,\n  values,\n  errors,\n  onChangeImage,\n  setFieldValue,\n}: PropsWithChildren<{\n  values: Values;\n  errors?: FormikErrors<Values>;\n  autoComplete?: boolean;\n  onRateLimit?: (limited?: boolean) => void;\n  onChangeImage?: (name: string) => void;\n  setFieldValue: <T>(field: string, value: T) => void;\n}>) {\n  const Component = values.useRegistry ? SimpleForm : AdvancedForm;\n\n  return (\n    <div className=\"row\">\n      <Component\n        autoComplete={autoComplete}\n        values={values}\n        errors={errors}\n        onChangeImage={onChangeImage}\n        setFieldValue={setFieldValue}\n      />\n\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          {values.useRegistry ? (\n            <Button\n              size=\"small\"\n              color=\"link\"\n              icon={Globe}\n              className=\"!ml-0 p-0 hover:no-underline\"\n              onClick={() => setFieldValue('useRegistry', false)}\n            >\n              Advanced mode\n            </Button>\n          ) : (\n            <Button\n              size=\"small\"\n              color=\"link\"\n              icon={Database}\n              className=\"!ml-0 p-0 hover:no-underline\"\n              onClick={() => setFieldValue('useRegistry', true)}\n            >\n              Simple mode\n            </Button>\n          )}\n        </div>\n      </div>\n\n      {children}\n\n      {onRateLimit && values.useRegistry && (\n        <RateLimits registryId={values.registryId} onRateLimit={onRateLimit} />\n      )}\n    </div>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, {\n  isAxiosError,\n  parseAxiosError,\n} from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildUrl } from '../../proxy/queries/build-url';\n\nexport function useApiVersion(environmentId: EnvironmentId) {\n  return useQuery(['environment', environmentId, 'agent', 'ping'], () =>\n    getApiVersion(environmentId)\n  );\n}\n\nasync function getApiVersion(environmentId: EnvironmentId) {\n  try {\n    const { headers } = await axios.get(buildUrl(environmentId, 'ping'));\n    return parseInt(headers['portainer-agent-api-version'], 10) || 1;\n  } catch (error) {\n    // 404 - agent is up - set version to 1\n    if (isAxiosError(error) && error.response?.status === 404) {\n      return 1;\n    }\n\n    throw parseAxiosError(error as Error, 'Unable to ping agent');\n  }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function buildAgentUrl(\n  environmentId: EnvironmentId,\n  apiVersion: number,\n  action: string\n) {\n  let url = `/endpoints/${environmentId}/agent/docker`;\n\n  if (apiVersion > 1) {\n    url += `/v${apiVersion}`;\n  }\n\n  url += `/${action}`;\n\n  return url;\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { buildAgentUrl } from './build-url';\n\ninterface Node {\n  IPAddress: string;\n  NodeName: string;\n  NodeRole: string;\n}\n\nexport function useAgentNodes<T = Array<Node>>(\n  environmentId: EnvironmentId,\n  apiVersion: number,\n  {\n    select,\n    enabled,\n  }: {\n    select?: (data: Array<Node>) => T;\n    enabled?: boolean;\n  } = {}\n) {\n  return useQuery(\n    ['environment', environmentId, 'agent', 'nodes'],\n    () => getNodes(environmentId, apiVersion),\n    {\n      select,\n      enabled,\n    }\n  );\n}\n\nasync function getNodes(environmentId: EnvironmentId, apiVersion: number) {\n  try {\n    const response = await axios.get<Array<Node>>(\n      buildAgentUrl(environmentId, apiVersion, 'agents')\n    );\n    return response.data;\n  } catch (error) {\n    throw parseAxiosError(error as Error, 'Unable to retrieve nodes');\n  }\n}\n","import { useEffect } from 'react';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Option, PortainerSelect } from '@@/form-components/PortainerSelect';\nimport { FormControl } from '@@/form-components/FormControl';\n\nimport { useApiVersion } from './queries/useApiVersion';\nimport { useAgentNodes } from './queries/useAgentNodes';\n\nexport function NodeSelector({\n  value,\n  onChange,\n}: {\n  value: string;\n  onChange: (value: string) => void;\n}) {\n  const environmentId = useEnvironmentId();\n\n  const apiVersionQuery = useApiVersion(environmentId);\n\n  const nodesQuery = useAgentNodes<Array<Option<string>>>(\n    environmentId,\n    apiVersionQuery.data || 1,\n    {\n      select: (data) =>\n        data.map((node) => ({ label: node.NodeName, value: node.NodeName })),\n      enabled: apiVersionQuery.data !== undefined,\n    }\n  );\n\n  useEffect(() => {\n    if (nodesQuery.data && !value && nodesQuery.data.length > 0) {\n      onChange(nodesQuery.data[0].value);\n    }\n  }, [nodesQuery.data, onChange, value]);\n\n  return (\n    <FormControl label=\"Node\" inputId=\"node-selector\">\n      <PortainerSelect\n        inputId=\"node-selector\"\n        value={value}\n        onChange={onChange}\n        options={nodesQuery.data || []}\n      />\n    </FormControl>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { ArrowRight } from 'lucide-react';\n\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { FormError } from '@@/form-components/FormError';\nimport { InputList } from '@@/form-components/InputList';\nimport { ItemProps } from '@@/form-components/InputList/InputList';\nimport { Icon } from '@@/Icon';\nimport { InputLabeled } from '@@/form-components/Input/InputLabeled';\n\nexport type Protocol = 'tcp' | 'udp';\n\nexport interface PortMapping {\n  hostPort: string;\n  protocol: Protocol;\n  containerPort: string;\n}\n\nexport type Values = Array<PortMapping>;\n\ninterface Props {\n  value: Values;\n  onChange?(value: Values): void;\n  errors?: FormikErrors<PortMapping>[] | string | string[];\n  disabled?: boolean;\n  readOnly?: boolean;\n}\n\nexport function PortsMappingField({\n  value,\n  onChange = () => {},\n  errors,\n  disabled,\n  readOnly,\n}: Props) {\n  return (\n    <>\n      <InputList<PortMapping>\n        label=\"Port mapping\"\n        value={value}\n        onChange={onChange}\n        addLabel=\"map additional port\"\n        itemBuilder={() => ({\n          hostPort: '',\n          containerPort: '',\n          protocol: 'tcp',\n        })}\n        item={Item}\n        errors={errors}\n        disabled={disabled}\n        readOnly={readOnly}\n        tooltip=\"When a range of ports on the host and a single port on the container is specified, Docker will randomly choose a single available port in the defined range and forward that to the container port.\"\n      />\n      {typeof errors === 'string' && (\n        <div className=\"form-group col-md-12\">\n          <FormError>{errors}</FormError>\n        </div>\n      )}\n    </>\n  );\n}\n\nfunction Item({\n  onChange,\n  item,\n  error,\n  disabled,\n  readOnly,\n  index,\n}: ItemProps<PortMapping>) {\n  return (\n    <div className=\"flex flex-col\">\n      <div className=\"flex items-center gap-2\">\n        <InputLabeled\n          size=\"small\"\n          disabled={disabled}\n          readOnly={readOnly}\n          value={item.hostPort}\n          onChange={(e) => handleChange('hostPort', e.target.value)}\n          label=\"host\"\n          placeholder=\"e.g. 80\"\n          className=\"w-1/2\"\n          id={`hostPort-${index}`}\n        />\n\n        <span className=\"mx-3\">\n          <Icon icon={ArrowRight} />\n        </span>\n\n        <InputLabeled\n          size=\"small\"\n          disabled={disabled}\n          readOnly={readOnly}\n          value={item.containerPort}\n          onChange={(e) => handleChange('containerPort', e.target.value)}\n          label=\"container\"\n          placeholder=\"e.g. 80\"\n          className=\"w-1/2\"\n          id={`containerPort-${index}`}\n        />\n\n        <ButtonSelector<Protocol>\n          onChange={(value) => handleChange('protocol', value)}\n          value={item.protocol}\n          options={[{ value: 'tcp' }, { value: 'udp' }]}\n          disabled={disabled}\n          readOnly={readOnly}\n        />\n      </div>\n      {!!error && <FormError>{Object.values(error)[0]}</FormError>}\n    </div>\n  );\n\n  function handleChange(name: keyof PortMapping, value: string) {\n    onChange({ ...item, [name]: value });\n  }\n}\n","import { useFormikContext } from 'formik';\n\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { Authorized } from '@/react/hooks/useUser';\nimport { AccessControlForm } from '@/react/portainer/access-control';\nimport { AccessControlFormData } from '@/react/portainer/access-control/types';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport { NodeSelector } from '@/react/docker/agent/NodeSelector';\nimport { useIsSwarm } from '@/react/docker/proxy/queries/useInfo';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { isAgentEnvironment } from '@/react/portainer/environments/utils';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Input } from '@@/form-components/Input';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { ImageConfigFieldset, ImageConfigValues } from '@@/ImageConfigFieldset';\nimport { LoadingButton } from '@@/buttons';\nimport { Widget } from '@@/Widget';\n\nimport {\n  PortsMappingField,\n  Values as PortMappingValue,\n} from './PortsMappingField';\n\nexport interface Values {\n  name: string;\n  enableWebhook: boolean;\n  publishAllPorts: boolean;\n  image: ImageConfigValues;\n  alwaysPull: boolean;\n  ports: PortMappingValue;\n  accessControl: AccessControlFormData;\n  nodeName: string;\n  autoRemove: boolean;\n}\n\nfunction useIsAgentOnSwarm() {\n  const environmentId = useEnvironmentId();\n  const environmentQuery = useCurrentEnvironment();\n\n  const isSwarm = useIsSwarm(environmentId);\n\n  return (\n    !!environmentQuery.data &&\n    isAgentEnvironment(environmentQuery.data?.Type) &&\n    isSwarm\n  );\n}\n\nexport function BaseForm({\n  isLoading,\n  onChangeName,\n  onChangeImageName,\n  onRateLimit,\n}: {\n  isLoading: boolean;\n  onChangeName: (value: string) => void;\n  onChangeImageName: () => void;\n  onRateLimit: (limited?: boolean) => void;\n}) {\n  const { setFieldValue, values, errors, isValid } = useFormikContext<Values>();\n  const environmentQuery = useCurrentEnvironment();\n  const isAgentOnSwarm = useIsAgentOnSwarm();\n  if (!environmentQuery.data) {\n    return null;\n  }\n\n  const environment = environmentQuery.data;\n\n  const canUseWebhook = environment.Type !== EnvironmentType.EdgeAgentOnDocker;\n\n  return (\n    <Widget>\n      <Widget.Body>\n        <FormControl label=\"Name\" inputId=\"name-input\" errors={errors?.name}>\n          <Input\n            id=\"name-input\"\n            value={values.name}\n            onChange={(e) => {\n              const name = e.target.value;\n              onChangeName(name);\n              setFieldValue('name', name);\n            }}\n            placeholder=\"e.g. myContainer\"\n          />\n        </FormControl>\n\n        <FormSection title=\"Image Configuration\">\n          <ImageConfigFieldset\n            values={values.image}\n            setFieldValue={(field, value) =>\n              setFieldValue(`image.${field}`, value)\n            }\n            autoComplete\n            onRateLimit={values.alwaysPull ? onRateLimit : undefined}\n            errors={errors?.image}\n            onChangeImage={onChangeImageName}\n          >\n            <div className=\"form-group\">\n              <div className=\"col-sm-12\">\n                <SwitchField\n                  label=\"Always pull the image\"\n                  tooltip=\"When enabled, Portainer will automatically try to pull the specified image before creating the container.\"\n                  checked={values.alwaysPull}\n                  onChange={(alwaysPull) =>\n                    setFieldValue('alwaysPull', alwaysPull)\n                  }\n                  labelClass=\"col-sm-3 col-lg-2\"\n                />\n              </div>\n            </div>\n          </ImageConfigFieldset>\n        </FormSection>\n\n        {canUseWebhook && (\n          <Authorized authorizations=\"PortainerWebhookCreate\" adminOnlyCE>\n            <FormSection title=\"Webhook\">\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <SwitchField\n                    label=\"Create a container webhook\"\n                    tooltip=\"Create a webhook (or callback URI) to automate the recreate this container. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and recreate this container.\"\n                    checked={values.enableWebhook}\n                    onChange={(enableWebhook) =>\n                      setFieldValue('enableWebhook', enableWebhook)\n                    }\n                    featureId={FeatureId.CONTAINER_WEBHOOK}\n                    labelClass=\"col-sm-3 col-lg-2\"\n                  />\n                </div>\n              </div>\n            </FormSection>\n          </Authorized>\n        )}\n\n        <FormSection title=\"Network ports configuration\">\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                label=\"Publish all exposed ports to random host ports\"\n                tooltip=\"When enabled, Portainer will let Docker automatically map a random port on the host to each one defined in the image Dockerfile.\"\n                checked={values.publishAllPorts}\n                onChange={(publishAllPorts) =>\n                  setFieldValue('publishAllPorts', publishAllPorts)\n                }\n                labelClass=\"col-sm-3 col-lg-2\"\n              />\n            </div>\n          </div>\n\n          <PortsMappingField\n            value={values.ports}\n            onChange={(ports) => setFieldValue('ports', ports)}\n            errors={errors?.ports}\n          />\n        </FormSection>\n\n        {isAgentOnSwarm && (\n          <FormSection title=\"Deployment\">\n            <NodeSelector\n              value={values.nodeName}\n              onChange={(nodeName) => setFieldValue('nodeName', nodeName)}\n            />\n          </FormSection>\n        )}\n\n        <AccessControlForm\n          onChange={(accessControl) =>\n            setFieldValue('accessControl', accessControl)\n          }\n          errors={errors?.accessControl}\n          values={values.accessControl}\n          environmentId={environment.Id}\n        />\n\n        <div className=\"form-group\">\n          <div className=\"col-sm-12\">\n            <SwitchField\n              label=\"Auto remove\"\n              tooltip=\"When enabled, Portainer will automatically remove the container when it exits. This is useful when you want to use the container only once.\"\n              checked={values.autoRemove}\n              onChange={(autoRemove) => setFieldValue('autoRemove', autoRemove)}\n              labelClass=\"col-sm-3 col-lg-2\"\n            />\n          </div>\n        </div>\n\n        <div className=\"form-group\">\n          <div className=\"col-sm-12\">\n            <LoadingButton\n              loadingText=\"Deployment in progress...\"\n              isLoading={isLoading}\n              disabled={!isValid}\n            >\n              Deploy the container\n            </LoadingButton>\n          </div>\n        </div>\n      </Widget.Body>\n    </Widget>\n  );\n}\n","import { getDefaultViewModel, toViewModel } from './toViewModel';\nimport { toRequest } from './toRequest';\nimport { validation } from './validation';\n\nexport { BaseForm, type Values as BaseFormValues } from './BaseForm';\n\nexport const baseFormUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { CreateContainerRequest } from '../types';\n\nimport { Values } from './BaseForm';\nimport { parsePortBindingRequest } from './PortsMappingField.requestModel';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: Values\n): CreateContainerRequest {\n  const bindings = parsePortBindingRequest(values.ports);\n\n  return {\n    ...oldConfig,\n    ExposedPorts: Object.fromEntries(\n      Object.keys(bindings).map((key) => [key, {}])\n    ),\n    HostConfig: {\n      ...oldConfig.HostConfig,\n      PublishAllPorts: values.publishAllPorts,\n      PortBindings: bindings,\n      AutoRemove: values.autoRemove,\n    },\n  };\n}\n","import { parseAccessControlFormData } from '@/react/portainer/access-control/utils';\nimport { ResourceControlOwnership } from '@/react/portainer/access-control/types';\nimport { UserId } from '@/portainer/users/types';\nimport { getDefaultImageConfig } from '@/react/portainer/registries/utils/getImageConfig';\n\nimport { ContainerResponse } from '../../queries/container';\n\nimport { toViewModel as toPortsMappingViewModel } from './PortsMappingField.viewModel';\nimport { Values } from './BaseForm';\n\nexport function toViewModel(\n  config: ContainerResponse,\n  isPureAdmin: boolean,\n  currentUserId: UserId,\n  nodeName: string,\n  image: Values['image'],\n  enableWebhook: boolean\n): Values {\n  // accessControl shouldn't be copied to new container\n\n  const accessControl = parseAccessControlFormData(isPureAdmin, currentUserId);\n\n  if (config.Portainer?.ResourceControl?.Public) {\n    accessControl.ownership = ResourceControlOwnership.PUBLIC;\n  }\n\n  return {\n    accessControl,\n    name: config.Name ? config.Name.replace('/', '') : '',\n    alwaysPull: true,\n    autoRemove: config.HostConfig?.AutoRemove || false,\n    ports: toPortsMappingViewModel(config.HostConfig?.PortBindings || {}),\n    publishAllPorts: config.HostConfig?.PublishAllPorts || false,\n    nodeName,\n    image,\n    enableWebhook,\n  };\n}\n\nexport function getDefaultViewModel(\n  isPureAdmin: boolean,\n  currentUserId: UserId,\n  nodeName: string\n): Values {\n  const accessControl = parseAccessControlFormData(isPureAdmin, currentUserId);\n\n  return {\n    nodeName,\n    enableWebhook: false,\n    image: getDefaultImageConfig(),\n    accessControl,\n    name: '',\n    alwaysPull: true,\n    autoRemove: false,\n    ports: [],\n    publishAllPorts: false,\n  };\n}\n","import { boolean, object, SchemaOf, string } from 'yup';\n\nimport { validationSchema as accessControlSchema } from '@/react/portainer/access-control/AccessControlForm/AccessControlForm.validation';\n\nimport { imageConfigValidation } from '@@/ImageConfigFieldset';\n\nimport { Values } from './BaseForm';\nimport { validationSchema as portsSchema } from './PortsMappingField.validation';\n\nexport function validation(\n  {\n    isAdmin,\n    isDuplicating,\n    isDuplicatingPortainer,\n    isDockerhubRateLimited,\n  }: {\n    isAdmin: boolean;\n    isDuplicating: boolean | undefined;\n    isDuplicatingPortainer: boolean | undefined;\n    isDockerhubRateLimited: boolean;\n  } = {\n    isAdmin: false,\n    isDuplicating: false,\n    isDuplicatingPortainer: false,\n    isDockerhubRateLimited: false,\n  }\n): SchemaOf<Values> {\n  return object({\n    name: string()\n      .default('')\n      .test('not-duplicate-portainer', () => !isDuplicatingPortainer),\n    alwaysPull: boolean()\n      .default(true)\n      .test('rate-limits', 'Rate limit exceeded', (alwaysPull: boolean) =>\n        alwaysPull ? !isDockerhubRateLimited : true\n      ),\n    accessControl: accessControlSchema(isAdmin),\n    autoRemove: boolean().default(false),\n    enableWebhook: boolean().default(false),\n    nodeName: string().default(''),\n    ports: portsSchema(),\n    publishAllPorts: boolean().default(false),\n    image: imageConfigValidation().test(\n      'duplicate-must-have-registry',\n      'Duplicate is only possible when registry is selected',\n      (value) => !isDuplicating || typeof value.registryId !== 'undefined'\n    ),\n  });\n}\n","import { array, mixed, object, SchemaOf, string } from 'yup';\n\nimport { Values } from './PortsMappingField';\n\nexport function validationSchema(): SchemaOf<Values> {\n  return array(\n    object({\n      hostPort: string().required('host is required'),\n      containerPort: string().required('container is required'),\n      protocol: mixed().oneOf(['tcp', 'udp']),\n    })\n  );\n}\n","import { bool, number, object, SchemaOf, string } from 'yup';\n\nimport { Values } from './types';\n\nexport function validation(): SchemaOf<Values> {\n  return object({\n    image: string().required('Image is required'),\n    registryId: number().default(0),\n    useRegistry: bool().default(false),\n  });\n}\n","import { imageContainsURL } from '@/react/docker/images/utils';\n\nimport { ImageConfigValues } from '@@/ImageConfigFieldset';\n\nimport { Registry, RegistryId } from '../types/registry';\n\nimport { findBestMatchRegistry } from './findRegistryMatch';\nimport { getURL } from './getUrl';\n\nexport function getDefaultImageConfig(): ImageConfigValues {\n  return {\n    registryId: 0,\n    image: '',\n    useRegistry: true,\n  };\n}\n\nexport function getImageConfig(\n  repository: string,\n  registries: Registry[],\n  registryId?: RegistryId\n): ImageConfigValues {\n  const registry = findBestMatchRegistry(repository, registries, registryId);\n  if (registry) {\n    const url = getURL(registry);\n    let lastIndex = repository.lastIndexOf(url);\n    lastIndex = lastIndex === -1 ? 0 : lastIndex + url.length;\n    let image = repository.substring(lastIndex);\n    if (image.startsWith('/')) {\n      image = image.substring(1);\n    }\n\n    return {\n      useRegistry: true,\n      image,\n      registryId: registry.Id,\n    };\n  }\n  return {\n    image: repository,\n    useRegistry: imageContainsURL(repository),\n  };\n}\n","export interface Capability {\n  key: string;\n  description: string;\n  default?: boolean;\n}\n\nconst capDesc: Array<Capability> = [\n  {\n    key: 'SETPCAP',\n    description: 'Modify process capabilities.',\n    default: true,\n  },\n  {\n    key: 'MKNOD',\n    description: 'Create special files using mknod(2).',\n    default: true,\n  },\n  {\n    key: 'AUDIT_WRITE',\n    description: 'Write records to kernel auditing log.',\n    default: true,\n  },\n  {\n    key: 'CHOWN',\n    description: 'Make arbitrary changes to file UIDs and GIDs (see chown(2)).',\n    default: true,\n  },\n  {\n    key: 'NET_RAW',\n    description: 'Use RAW and PACKET sockets.',\n    default: true,\n  },\n  {\n    key: 'DAC_OVERRIDE',\n    description: 'Bypass file read, write, and execute permission checks.',\n    default: true,\n  },\n  {\n    key: 'FOWNER',\n    description:\n      'Bypass permission checks on operations that normally require the file system UID of the process to match the UID of the file.',\n    default: true,\n  },\n  {\n    key: 'FSETID',\n    description:\n      'Don’t clear set-user-ID and set-group-ID permission bits when a file is modified.',\n    default: true,\n  },\n  {\n    key: 'KILL',\n    description: 'Bypass permission checks for sending signals.',\n    default: true,\n  },\n  {\n    key: 'SETGID',\n    description:\n      'Make arbitrary manipulations of process GIDs and supplementary GID list.',\n    default: true,\n  },\n  {\n    key: 'SETUID',\n    description: 'Make arbitrary manipulations of process UIDs.',\n    default: true,\n  },\n  {\n    key: 'NET_BIND_SERVICE',\n    description:\n      'Bind a socket to internet domain privileged ports (port numbers less than 1024).',\n    default: true,\n  },\n  {\n    key: 'SYS_CHROOT',\n    description: 'Use chroot(2), change root directory.',\n    default: true,\n  },\n  {\n    key: 'SETFCAP',\n    description: 'Set file capabilities.',\n    default: true,\n  },\n  {\n    key: 'SYS_MODULE',\n    description: 'Load and unload kernel modules.',\n  },\n  {\n    key: 'SYS_RAWIO',\n    description: 'Perform I/O port operations (iopl(2) and ioperm(2)).',\n  },\n  {\n    key: 'SYS_PACCT',\n    description: 'Use acct(2), switch process accounting on or off.',\n  },\n  {\n    key: 'SYS_ADMIN',\n    description: 'Perform a range of system administration operations.',\n  },\n  {\n    key: 'SYS_NICE',\n    description:\n      'Raise process nice value (nice(2), setpriority(2)) and change the nice value for arbitrary processes.',\n  },\n  {\n    key: 'SYS_RESOURCE',\n    description: 'Override resource Limits.',\n  },\n  {\n    key: 'SYS_TIME',\n    description:\n      'Set system clock (settimeofday(2), stime(2), adjtimex(2)); set real-time (hardware) clock.',\n  },\n  {\n    key: 'SYS_TTY_CONFIG',\n    description:\n      'Use vhangup(2); employ various privileged ioctl(2) operations on virtual terminals.',\n  },\n  {\n    key: 'AUDIT_CONTROL',\n    description:\n      'Enable and disable kernel auditing; change auditing filter rules; retrieve auditing status and filtering rules.',\n  },\n  {\n    key: 'MAC_ADMIN',\n    description:\n      'Allow MAC configuration or state changes. Implemented for the Smack LSM.',\n  },\n  {\n    key: 'MAC_OVERRIDE',\n    description:\n      'Override Mandatory Access Control (MAC). Implemented for the Smack Linux Security Module (LSM).',\n  },\n  {\n    key: 'NET_ADMIN',\n    description: 'Perform various network-related operations.',\n  },\n  {\n    key: 'SYSLOG',\n    description: 'Perform privileged syslog(2) operations.',\n  },\n  {\n    key: 'DAC_READ_SEARCH',\n    description:\n      'Bypass file read permission checks and directory read and execute permission checks.',\n  },\n  {\n    key: 'LINUX_IMMUTABLE',\n    description: 'Set the FS_APPEND_FL and FS_IMMUTABLE_FL i-node flags.',\n  },\n  {\n    key: 'NET_BROADCAST',\n    description: 'Make socket broadcasts, and listen to multicasts.',\n  },\n  {\n    key: 'IPC_LOCK',\n    description: 'Lock memory (mlock(2), mlockall(2), mmap(2), shmctl(2)).',\n  },\n  {\n    key: 'IPC_OWNER',\n    description:\n      'Bypass permission checks for operations on System V IPC objects.',\n  },\n  {\n    key: 'SYS_PTRACE',\n    description: 'Trace arbitrary processes using ptrace(2).',\n  },\n  {\n    key: 'SYS_BOOT',\n    description:\n      'Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution.',\n  },\n  {\n    key: 'LEASE',\n    description: 'Establish leases on arbitrary files (see fcntl(2)).',\n  },\n  {\n    key: 'WAKE_ALARM',\n    description: 'Trigger something that will wake up the system.',\n  },\n  {\n    key: 'BLOCK_SUSPEND',\n    description: 'Employ features that can block system suspend.',\n  },\n];\n\nexport const capabilities = capDesc.sort((a, b) => (a.key < b.key ? -1 : 1));\n","import { FormSection } from '@@/form-components/FormSection';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { capabilities } from './types';\n\nexport type Values = string[];\n\nexport function CapabilitiesTab({\n  values,\n  onChange,\n}: {\n  values: Values;\n  onChange: (values: Values) => void;\n}) {\n  return (\n    <FormSection title=\"Container capabilities\">\n      <div className=\"form-group flex flex-wrap gap-y-2 px-5\">\n        {capabilities.map((cap) => (\n          <div key={cap.key} className=\"w-1/3 text-center\">\n            <SwitchField\n              labelClass=\"col-sm-6\"\n              tooltip={cap.description}\n              checked={values.includes(cap.key)}\n              label={cap.key}\n              name={`${cap.key}-capability`}\n              onChange={(value) => {\n                if (value) {\n                  onChange([...values, cap.key]);\n                } else {\n                  onChange(values.filter((v) => v !== cap.key));\n                }\n              }}\n            />\n          </div>\n        ))}\n      </div>\n    </FormSection>\n  );\n}\n","import { validation } from './validation';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\nimport { toRequest } from './toRequest';\n\nexport {\n  CapabilitiesTab,\n  type Values as CapabilitiesTabValues,\n} from './CapabilitiesTab';\n\nexport const capabilitiesTabUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { CreateContainerRequest } from '@/react/docker/containers/CreateView/types';\n\nimport { capabilities } from './types';\nimport { Values } from './CapabilitiesTab';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: Values,\n  hideCapabilities: boolean\n): CreateContainerRequest {\n  return {\n    ...oldConfig,\n    HostConfig: {\n      ...oldConfig.HostConfig,\n      CapAdd: hideCapabilities ? [] : values,\n      CapDrop: hideCapabilities\n        ? []\n        : capabilities\n            .filter((cap) => !values.includes(cap.key))\n            .map((cap) => cap.key),\n    },\n  };\n}\n","import { ContainerJSON } from '@/react/docker/containers/queries/container';\n\nimport { capabilities } from './types';\nimport { Values } from './CapabilitiesTab';\n\nexport function toViewModel(config: ContainerJSON): Values {\n  const { CapAdd, CapDrop } = getDefaults(config);\n\n  const missingCaps = capabilities\n    .filter(\n      (cap) =>\n        cap.default && !CapAdd.includes(cap.key) && !CapDrop.includes(cap.key)\n    )\n    .map((cap) => cap.key);\n\n  return [...CapAdd, ...missingCaps];\n\n  function getDefaults(config: ContainerJSON) {\n    return {\n      CapAdd: config.HostConfig?.CapAdd || [],\n      CapDrop: config.HostConfig?.CapDrop || [],\n    };\n  }\n}\n\nexport function getDefaultViewModel(): Values {\n  return capabilities.filter((cap) => cap.default).map((cap) => cap.key);\n}\n","import { array, SchemaOf, string } from 'yup';\n\nimport { Values } from './CapabilitiesTab';\n\nexport function validation(): SchemaOf<Values> {\n  return array(string().default('')).default([]);\n}\n","import { ReactNode } from 'react';\nimport { mixed } from 'yup';\nimport { ContainerConfig } from 'docker-types/generated/1.41';\n\nimport { FormControl } from '@@/form-components/FormControl';\n\nconst consoleSettingTypes = ['tty', 'interactive', 'both', 'none'] as const;\n\nexport type ConsoleSetting = (typeof consoleSettingTypes)[number];\n\nexport type ConsoleConfig = Pick<ContainerConfig, 'OpenStdin' | 'Tty'>;\n\nexport function ConsoleSettings({\n  value,\n  onChange,\n}: {\n  value: ConsoleSetting;\n  onChange(value: ConsoleSetting): void;\n}) {\n  return (\n    <FormControl label=\"Console\" size=\"xsmall\">\n      <Item\n        value=\"both\"\n        onChange={handleChange}\n        label={\n          <>\n            Interactive & TTY <span className=\"small text-muted\">(-i -t)</span>\n          </>\n        }\n        selected={value}\n      />\n      <Item\n        value=\"interactive\"\n        onChange={handleChange}\n        label={\n          <>\n            Interactive <span className=\"small text-muted\">(-i)</span>\n          </>\n        }\n        selected={value}\n      />\n      <Item\n        value=\"tty\"\n        onChange={handleChange}\n        label={\n          <>\n            TTY <span className=\"small text-muted\">(-t)</span>\n          </>\n        }\n        selected={value}\n      />\n      <Item\n        value=\"none\"\n        onChange={handleChange}\n        label={<>None</>}\n        selected={value}\n      />\n    </FormControl>\n  );\n\n  function handleChange(value: ConsoleSetting) {\n    onChange(value);\n  }\n}\n\nfunction Item({\n  value,\n  selected,\n  onChange,\n  label,\n}: {\n  value: ConsoleSetting;\n  selected: ConsoleSetting;\n  onChange(value: ConsoleSetting): void;\n  label: ReactNode;\n}) {\n  return (\n    <label className=\"radio-inline !m-0 w-1/2\">\n      <input\n        type=\"radio\"\n        name=\"container_console\"\n        value={value}\n        checked={value === selected}\n        onChange={() => onChange(value)}\n      />\n      {label}\n    </label>\n  );\n}\n\nexport function validation() {\n  return mixed<ConsoleSetting>()\n    .oneOf([...consoleSettingTypes])\n    .default('none');\n}\n","import { useQuery } from 'react-query';\nimport {\n  Plugin,\n  PluginInterfaceType,\n  PluginsInfo,\n} from 'docker-types/generated/1.41';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys } from '../../queries/utils/root';\n\nimport { buildUrl } from './build-url';\nimport { useInfo } from './useInfo';\n\nexport async function getPlugins(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<Array<Plugin>>(\n      buildUrl(environmentId, 'plugins')\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve plugins');\n  }\n}\n\nfunction usePlugins(\n  environmentId: EnvironmentId,\n  { enabled }: { enabled?: boolean } = {}\n) {\n  return useQuery(\n    queryKeys.plugins(environmentId),\n    () => getPlugins(environmentId),\n    { enabled }\n  );\n}\n\nexport function useServicePlugins(\n  environmentId: EnvironmentId,\n  systemOnly: boolean,\n  pluginType: keyof PluginsInfo,\n  pluginVersion: string\n) {\n  const systemPluginsQuery = useInfo(environmentId, (info) => info.Plugins);\n  const pluginsQuery = usePlugins(environmentId, { enabled: !systemOnly });\n\n  return {\n    data: aggregateData(),\n    isLoading: systemPluginsQuery.isLoading || pluginsQuery.isLoading,\n  };\n\n  function aggregateData() {\n    if (!systemPluginsQuery.data) {\n      return null;\n    }\n\n    const systemPlugins = systemPluginsQuery.data[pluginType] || [];\n\n    if (systemOnly) {\n      return systemPlugins;\n    }\n\n    const plugins =\n      pluginsQuery.data\n        ?.filter(\n          (plugin) =>\n            plugin.Enabled &&\n            // docker has an error in their types, so we need to cast to unknown first\n            // see https://docs.docker.com/engine/api/v1.41/#tag/Plugin/operation/PluginList\n            plugin.Config.Interface.Types.includes(\n              pluginVersion as unknown as PluginInterfaceType\n            )\n        )\n        .map((plugin) => plugin.Name) || [];\n\n    return [...systemPlugins, ...plugins];\n  }\n}\n\nexport function useLoggingPlugins(\n  environmentId: EnvironmentId,\n  systemOnly: boolean\n) {\n  return useServicePlugins(\n    environmentId,\n    systemOnly,\n    'Log',\n    'docker.logdriver/1.0'\n  );\n}\n\nexport function useVolumePlugins(\n  environmentId: EnvironmentId,\n  systemOnly: boolean\n) {\n  return useServicePlugins(\n    environmentId,\n    systemOnly,\n    'Volume',\n    'docker.volumedriver/1.0'\n  );\n}\n\nexport function useNetworkPlugins(\n  environmentId: EnvironmentId,\n  systemOnly: boolean\n) {\n  return useServicePlugins(\n    environmentId,\n    systemOnly,\n    'Network',\n    'docker.networkdriver/1.0'\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { array, object, SchemaOf, string } from 'yup';\nimport _ from 'lodash';\n\nimport { useLoggingPlugins } from '@/react/docker/proxy/queries/useServicePlugins';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { InputList, ItemProps } from '@@/form-components/InputList';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormError } from '@@/form-components/FormError';\n\nexport interface LogConfig {\n  type: string;\n  options: Array<{ option: string; value: string }>;\n}\n\nexport function LoggerConfig({\n  value,\n  onChange,\n  apiVersion,\n  errors,\n}: {\n  value: LogConfig;\n  onChange: (value: LogConfig) => void;\n  apiVersion: number;\n  errors?: FormikErrors<LogConfig>;\n}) {\n  const envId = useEnvironmentId();\n\n  const pluginsQuery = useLoggingPlugins(envId, apiVersion < 1.25);\n\n  if (!pluginsQuery.data) {\n    return null;\n  }\n\n  const isDisabled = !value.type || value.type === 'none';\n\n  const pluginOptions = [\n    { label: 'Default logging driver', value: '' },\n    ...pluginsQuery.data.map((p) => ({ label: p, value: p })),\n    { label: 'none', value: 'none' },\n  ];\n\n  return (\n    <FormSection title=\"Logging\">\n      <FormControl label=\"Driver\">\n        <PortainerSelect\n          value={value.type}\n          onChange={(type) => onChange({ ...value, type: type || '' })}\n          options={pluginOptions}\n        />\n      </FormControl>\n\n      <TextTip color=\"blue\">\n        Logging driver that will override the default docker daemon driver.\n        Select Default logging driver if you don&apos;t want to override it.\n        Supported logging drivers can be found{' '}\n        <a\n          href=\"https://docs.docker.com/engine/admin/logging/overview/#supported-logging-drivers\"\n          target=\"_blank\"\n          rel=\"noreferrer\"\n        >\n          in the Docker documentation\n        </a>\n        .\n      </TextTip>\n\n      <InputList\n        tooltip={\n          isDisabled\n            ? 'Add button is disabled unless a driver other than none or default is selected. Options are specific to the selected driver, refer to the driver documentation.'\n            : ''\n        }\n        label=\"Options\"\n        onChange={(options) => handleChange({ options })}\n        value={value.options}\n        item={Item}\n        itemBuilder={() => ({ option: '', value: '' })}\n        disabled={isDisabled}\n        errors={errors?.options}\n      />\n    </FormSection>\n  );\n\n  function handleChange(partial: Partial<LogConfig>) {\n    onChange({ ...value, ...partial });\n  }\n}\n\nfunction Item({\n  item: { option, value },\n  onChange,\n  error,\n}: ItemProps<{ option: string; value: string }>) {\n  return (\n    <div>\n      <div className=\"flex w-full gap-4\">\n        <InputGroup className=\"w-1/2\">\n          <InputGroup.Addon>option</InputGroup.Addon>\n          <InputGroup.Input\n            value={option}\n            onChange={(e) => handleChange({ option: e.target.value })}\n            placeholder=\"e.g. FOO\"\n          />\n        </InputGroup>\n        <InputGroup className=\"w-1/2\">\n          <InputGroup.Addon>value</InputGroup.Addon>\n          <InputGroup.Input\n            value={value}\n            onChange={(e) => handleChange({ value: e.target.value })}\n            placeholder=\"e.g bar\"\n          />\n        </InputGroup>\n      </div>\n      {error && <FormError>{_.first(Object.values(error))}</FormError>}\n    </div>\n  );\n\n  function handleChange(partial: Partial<{ option: string; value: string }>) {\n    onChange({ option, value, ...partial });\n  }\n}\n\nexport function validation(): SchemaOf<LogConfig> {\n  return object({\n    options: array().of(\n      object({\n        option: string().required('Option is required'),\n        value: string().required('Value is required'),\n      })\n    ),\n    type: string().default(''),\n  });\n}\n","import { HostConfig } from 'docker-types/generated/1.41';\n\nimport { commandArrayToString } from '@/docker/helpers/containers';\n\nimport { ContainerJSON } from '../../queries/container';\n\nimport { ConsoleConfig, ConsoleSetting } from './ConsoleSettings';\nimport { LogConfig } from './LoggerConfig';\nimport { Values } from './types';\n\nexport function getDefaultViewModel(): Values {\n  return {\n    cmd: null,\n    entrypoint: null,\n    user: '',\n    workingDir: '',\n    console: 'none',\n    logConfig: getLogConfig(),\n  };\n}\n\nexport function toViewModel(config: ContainerJSON): Values {\n  if (!config.Config) {\n    return getDefaultViewModel();\n  }\n\n  return {\n    cmd: config.Config.Cmd ? commandArrayToString(config.Config.Cmd) : null,\n    entrypoint: config.Config.Entrypoint\n      ? commandArrayToString(config.Config.Entrypoint)\n      : null,\n    user: config.Config.User || '',\n    workingDir: config.Config.WorkingDir || '',\n    console: config ? getConsoleSetting(config.Config) : 'none',\n    logConfig: getLogConfig(config.HostConfig?.LogConfig),\n  };\n}\n\nfunction getLogConfig(value?: HostConfig['LogConfig']): LogConfig {\n  if (!value || !value.Type) {\n    return {\n      type: '',\n      options: [],\n    };\n  }\n\n  return {\n    type: value.Type,\n    options: Object.entries(value.Config || {}).map(([option, value]) => ({\n      option,\n      value,\n    })),\n  };\n}\n\nfunction getConsoleSetting(value: ConsoleConfig): ConsoleSetting {\n  if (value.OpenStdin && value.Tty) {\n    return 'both';\n  }\n\n  if (!value.OpenStdin && value.Tty) {\n    return 'tty';\n  }\n\n  if (value.OpenStdin && !value.Tty) {\n    return 'interactive';\n  }\n\n  return 'none';\n}\n","import clsx from 'clsx';\n\nimport { Button } from '@@/buttons';\nimport { InputGroup } from '@@/form-components/InputGroup';\n\nexport function OverridableInput({\n  value,\n  onChange,\n  id,\n  placeholder,\n}: {\n  value: string | null;\n  onChange: (value: string | null) => void;\n  id: string;\n  placeholder: string;\n}) {\n  const override = value !== null;\n\n  return (\n    <InputGroup>\n      <InputGroup.ButtonWrapper>\n        <Button\n          color=\"light\"\n          size=\"medium\"\n          className={clsx('!ml-0', { active: !override })}\n          onClick={() => onChange(null)}\n        >\n          Default\n        </Button>\n        <Button\n          color=\"light\"\n          size=\"medium\"\n          className={clsx({ active: override })}\n          onClick={() => onChange('')}\n        >\n          Override\n        </Button>\n      </InputGroup.ButtonWrapper>\n      <InputGroup.Input\n        disabled={!override}\n        value={value || ''}\n        onChange={(e) => onChange(e.target.value)}\n        id={id}\n        placeholder={placeholder}\n      />\n    </InputGroup>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { ConsoleSettings } from './ConsoleSettings';\nimport { LoggerConfig } from './LoggerConfig';\nimport { OverridableInput } from './OverridableInput';\nimport { Values } from './types';\n\nexport function CommandsTab({\n  apiVersion,\n  values,\n  setFieldValue,\n  errors,\n}: {\n  apiVersion: number;\n  values: Values;\n  setFieldValue: (field: string, value: unknown) => void;\n  errors?: FormikErrors<Values>;\n}) {\n  return (\n    <div className=\"mt-3\">\n      <FormControl\n        label=\"Command\"\n        inputId=\"command-input\"\n        size=\"xsmall\"\n        errors={errors?.cmd}\n      >\n        <OverridableInput\n          value={values.cmd}\n          onChange={(cmd) => setFieldValue('cmd', cmd)}\n          id=\"command-input\"\n          placeholder=\"e.g. '-logtostderr' '--housekeeping_interval=5s' or /usr/bin/nginx -t -c /mynginx.conf\"\n        />\n      </FormControl>\n\n      <FormControl\n        label=\"Entrypoint\"\n        inputId=\"entrypoint-input\"\n        size=\"xsmall\"\n        tooltip=\"When container entrypoint is entered as part of the Command field, set Entrypoint to Override mode and leave blank, else it will revert to default.\"\n        errors={errors?.entrypoint}\n      >\n        <OverridableInput\n          value={values.entrypoint}\n          onChange={(entrypoint) => setFieldValue('entrypoint', entrypoint)}\n          id=\"entrypoint-input\"\n          placeholder=\"e.g. /bin/sh -c\"\n        />\n      </FormControl>\n\n      <div className=\"flex justify-between gap-4\">\n        <FormControl\n          label=\"Working Dir\"\n          inputId=\"working-dir-input\"\n          className=\"w-1/2\"\n          errors={errors?.workingDir}\n        >\n          <Input\n            value={values.workingDir}\n            onChange={(e) => setFieldValue('workingDir', e.target.value)}\n            placeholder=\"e.g. /myapp\"\n          />\n        </FormControl>\n        <FormControl\n          label=\"User\"\n          inputId=\"user-input\"\n          className=\"w-1/2\"\n          errors={errors?.user}\n        >\n          <Input\n            value={values.user}\n            onChange={(e) => setFieldValue('user', e.target.value)}\n            placeholder=\"e.g. nginx\"\n          />\n        </FormControl>\n      </div>\n\n      <ConsoleSettings\n        value={values.console}\n        onChange={(console) => setFieldValue('console', console)}\n      />\n\n      <LoggerConfig\n        apiVersion={apiVersion}\n        value={values.logConfig}\n        onChange={(logConfig) => setFieldValue('logConfig', logConfig)}\n        errors={errors?.logConfig}\n      />\n    </div>\n  );\n}\n","import { validation } from './validation';\nimport { toRequest } from './toRequest';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\n\nexport { CommandsTab } from './CommandsTab';\nexport { type Values as CommandsTabValues } from './types';\n\nexport const commandsTabUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { commandStringToArray } from '@/docker/helpers/containers';\n\nimport { CreateContainerRequest } from '../types';\n\nimport { Values } from './types';\nimport { LogConfig } from './LoggerConfig';\nimport { ConsoleConfig, ConsoleSetting } from './ConsoleSettings';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: Values\n): CreateContainerRequest {\n  const config = {\n    ...oldConfig,\n\n    HostConfig: {\n      ...oldConfig.HostConfig,\n      LogConfig: getLogConfig(values.logConfig),\n    },\n    User: values.user,\n    WorkingDir: values.workingDir,\n    ...getConsoleConfig(values.console),\n  } satisfies CreateContainerRequest;\n\n  if (values.cmd) {\n    config.Cmd = commandStringToArray(values.cmd);\n  } else if (values.cmd === null) {\n    delete config.Cmd;\n  }\n\n  if (values.entrypoint) {\n    config.Entrypoint = commandStringToArray(values.entrypoint);\n  } else if (values.entrypoint === null) {\n    delete config.Entrypoint;\n  }\n\n  // don't include LogConfig object if \"Default logging driver\" (type === '') is selected\n  if (values.logConfig.type === '') {\n    delete config.HostConfig.LogConfig;\n  }\n\n  return config;\n\n  function getConsoleConfig(value: ConsoleSetting): ConsoleConfig {\n    switch (value) {\n      case 'both':\n        return { OpenStdin: true, Tty: true };\n      case 'interactive':\n        return { OpenStdin: true, Tty: false };\n      case 'tty':\n        return { OpenStdin: false, Tty: true };\n      case 'none':\n      default:\n        return { OpenStdin: false, Tty: false };\n    }\n  }\n\n  function getLogConfig(\n    value: LogConfig\n  ): CreateContainerRequest['HostConfig']['LogConfig'] {\n    return {\n      Type: value.type,\n      Config: Object.fromEntries(\n        value.options.map(({ option, value }) => [option, value])\n      ),\n      // docker types - requires union while it should allow also custom string for custom plugins\n    } as CreateContainerRequest['HostConfig']['LogConfig'];\n  }\n}\n","import { object, SchemaOf, string } from 'yup';\n\nimport { validation as consoleValidation } from './ConsoleSettings';\nimport { validation as logConfigValidation } from './LoggerConfig';\nimport { Values } from './types';\n\nexport function validation(): SchemaOf<Values> {\n  return object({\n    cmd: string().nullable().default(''),\n    entrypoint: string().nullable().default(''),\n    logConfig: logConfigValidation(),\n    console: consoleValidation(),\n    user: string().default(''),\n    workingDir: string().default(''),\n  });\n}\n","import { FormError } from '@@/form-components/FormError';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { ItemProps } from '@@/form-components/InputList';\n\nimport { Label } from './types';\n\nexport function Item({ item, onChange, error }: ItemProps<Label>) {\n  return (\n    <div className=\"w-full\">\n      <div className=\"flex w-full gap-4\">\n        <InputGroup className=\"w-1/2\">\n          <InputGroup.Addon>name</InputGroup.Addon>\n          <InputGroup.Input\n            value={item.name}\n            onChange={(e) => onChange({ ...item, name: e.target.value })}\n            placeholder=\"e.g. com.example.foo\"\n          />\n        </InputGroup>\n        <InputGroup className=\"w-1/2\">\n          <InputGroup.Addon>value</InputGroup.Addon>\n          <InputGroup.Input\n            value={item.value}\n            onChange={(e) => onChange({ ...item, value: e.target.value })}\n            placeholder=\"e.g. bar\"\n          />\n        </InputGroup>\n      </div>\n      {error && <FormError>{Object.values(error)[0]}</FormError>}\n    </div>\n  );\n}\n","import { InputList } from '@@/form-components/InputList';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\nimport { Item } from './Item';\nimport { Values } from './types';\n\nexport function LabelsTab({\n  values,\n  onChange,\n  errors,\n}: {\n  values: Values;\n  onChange: (values: Values) => void;\n  errors?: ArrayError<Values>;\n}) {\n  return (\n    <InputList\n      label=\"Labels\"\n      onChange={handleChange}\n      errors={errors}\n      value={values}\n      item={Item}\n      itemBuilder={() => ({ name: '', value: '' })}\n    />\n  );\n\n  function handleChange(values: Values) {\n    onChange(values);\n  }\n}\n","import { validation } from './validation';\nimport { toRequest } from './toRequest';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\n\nexport { LabelsTab } from './LabelsTab';\n\nexport { type Values as LabelsTabValues } from './types';\n\nexport const labelsTabUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { CreateContainerRequest } from '../types';\n\nimport { Values } from './types';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: Values\n): CreateContainerRequest {\n  return {\n    ...oldConfig,\n    Labels: Object.fromEntries(\n      values\n        .filter((label) => label.name)\n        .map((label) => [label.name, label.value])\n    ),\n  };\n}\n","import { ContainerJSON } from '../../queries/container';\n\nimport { Values } from './types';\n\nexport function toViewModel(config: ContainerJSON): Values {\n  if (!config || !config.Config || !config.Config.Labels) {\n    return [];\n  }\n\n  return Object.entries(config.Config.Labels).map(([name, value]) => ({\n    name,\n    value,\n  }));\n}\n\nexport function getDefaultViewModel(): Values {\n  return [];\n}\n","import { array, object, SchemaOf, string } from 'yup';\n\nimport { Values } from './types';\n\nexport function validation(): SchemaOf<Values> {\n  return array(\n    object({\n      name: string().required('Name is required'),\n      value: string().default(''),\n    })\n  );\n}\n","export const CONTAINER_MODE = 'container';\n\nexport interface Values {\n  networkMode: string;\n  hostname: string;\n  domain: string;\n  macAddress: string;\n  ipv4Address: string;\n  ipv6Address: string;\n  primaryDns: string;\n  secondaryDns: string;\n  hostsFileEntries: Array<string>;\n  container: string;\n}\n","import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Option, PortainerSelect } from '@@/form-components/PortainerSelect';\n\nimport { useContainers } from '../../queries/containers';\nimport { ContainerStatus } from '../../types';\n\nexport function ContainerSelector({\n  onChange,\n  value,\n}: {\n  value: string;\n  onChange: (value: string) => void;\n}) {\n  const environmentId = useEnvironmentId();\n\n  const containersQuery = useContainers<Array<Option<string>>>(environmentId, {\n    filters: { status: [ContainerStatus.Running] },\n    select(containers) {\n      return containers.map((n) => {\n        const name = n.Names[0];\n\n        return { label: name, value: name };\n      });\n    },\n  });\n\n  return (\n    <PortainerSelect\n      value={value}\n      onChange={onChange}\n      options={containersQuery.data || []}\n      isLoading={containersQuery.isLoading}\n    />\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { InputList, ItemProps } from '@@/form-components/InputList';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { FormError } from '@@/form-components/FormError';\n\nimport { NetworkSelector } from '../../components/NetworkSelector';\n\nimport { CONTAINER_MODE, Values } from './types';\nimport { ContainerSelector } from './ContainerSelector';\n\nexport function NetworkTab({\n  values,\n  setFieldValue,\n  errors,\n}: {\n  values: Values;\n  setFieldValue: (field: string, value: unknown) => void;\n  errors?: FormikErrors<Values>;\n}) {\n  return (\n    <div className=\"mt-3\">\n      <FormControl label=\"Network\" errors={errors?.networkMode}>\n        <NetworkSelector\n          value={values.networkMode}\n          additionalOptions={[{ label: 'Container', value: CONTAINER_MODE }]}\n          onChange={(networkMode) => setFieldValue('networkMode', networkMode)}\n        />\n      </FormControl>\n\n      {values.networkMode === CONTAINER_MODE && (\n        <FormControl label=\"Container\" errors={errors?.container}>\n          <ContainerSelector\n            value={values.container}\n            onChange={(container) => setFieldValue('container', container)}\n          />\n        </FormControl>\n      )}\n\n      <FormControl label=\"Hostname\" errors={errors?.hostname}>\n        <Input\n          value={values.hostname}\n          onChange={(e) => setFieldValue('hostname', e.target.value)}\n          placeholder=\"e.g. web01\"\n        />\n      </FormControl>\n\n      <FormControl label=\"Domain Name\" errors={errors?.domain}>\n        <Input\n          value={values.domain}\n          onChange={(e) => setFieldValue('domain', e.target.value)}\n          placeholder=\"e.g. example.com\"\n        />\n      </FormControl>\n\n      <FormControl label=\"MAC Address\" errors={errors?.macAddress}>\n        <Input\n          value={values.macAddress}\n          onChange={(e) => setFieldValue('macAddress', e.target.value)}\n          placeholder=\"e.g. 12-34-56-78-9a-bc\"\n        />\n      </FormControl>\n\n      <FormControl label=\"IPv4 Address\" errors={errors?.ipv4Address}>\n        <Input\n          value={values.ipv4Address}\n          onChange={(e) => setFieldValue('ipv4Address', e.target.value)}\n          placeholder=\"e.g. 172.20.0.7\"\n        />\n      </FormControl>\n\n      <FormControl label=\"IPv6 Address\" errors={errors?.ipv6Address}>\n        <Input\n          value={values.ipv6Address}\n          onChange={(e) => setFieldValue('ipv6Address', e.target.value)}\n          placeholder=\"e.g. a:b:c:d::1234\"\n        />\n      </FormControl>\n\n      <FormControl label=\"Primary DNS Server\" errors={errors?.primaryDns}>\n        <Input\n          value={values.primaryDns}\n          onChange={(e) => setFieldValue('primaryDns', e.target.value)}\n          placeholder=\"e.g. 1.1.1.1, 2606:4700:4700::1111\"\n        />\n      </FormControl>\n\n      <FormControl label=\"Secondary DNS Server\" errors={errors?.secondaryDns}>\n        <Input\n          value={values.secondaryDns}\n          onChange={(e) => setFieldValue('secondaryDns', e.target.value)}\n          placeholder=\"e.g. 1.0.0.1, 2606:4700:4700::1001\"\n        />\n      </FormControl>\n\n      <InputList\n        label=\"Hosts file entries\"\n        value={values.hostsFileEntries}\n        onChange={(hostsFileEntries) =>\n          setFieldValue('hostsFileEntries', hostsFileEntries)\n        }\n        errors={errors?.hostsFileEntries}\n        item={HostsFileEntryItem}\n        itemBuilder={() => ''}\n      />\n    </div>\n  );\n}\n\nfunction HostsFileEntryItem({\n  item,\n  onChange,\n  disabled,\n  error,\n  readOnly,\n}: ItemProps<string>) {\n  return (\n    <div>\n      <InputGroup>\n        <InputGroup.Addon>value</InputGroup.Addon>\n        <Input\n          value={item}\n          onChange={(e) => onChange(e.target.value)}\n          disabled={disabled}\n          readOnly={readOnly}\n        />\n      </InputGroup>\n\n      {error && <FormError>{error}</FormError>}\n    </div>\n  );\n}\n","import { validation } from './validation';\nimport { toRequest } from './toRequest';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\n\nexport { NetworkTab } from './NetworkTab';\nexport { type Values as NetworkTabValues } from './types';\n\nexport const networkTabUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { CreateContainerRequest } from '../types';\n\nimport { CONTAINER_MODE, Values } from './types';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: Values,\n  fromContainerId: string\n): CreateContainerRequest {\n  let mode = values.networkMode;\n  let hostName = values.hostname;\n  if (mode === CONTAINER_MODE && values.container) {\n    mode += `:${values.container}`;\n    hostName = '';\n  }\n\n  return {\n    ...oldConfig,\n    Hostname: hostName,\n    Domainname: values.domain,\n    MacAddress: values.macAddress,\n    HostConfig: {\n      ...oldConfig.HostConfig,\n      NetworkMode: mode,\n      Dns: [values.primaryDns, values.secondaryDns].filter((d) => d),\n      ExtraHosts: values.hostsFileEntries,\n    },\n    NetworkingConfig: {\n      ...oldConfig.NetworkingConfig,\n      EndpointsConfig: {\n        [mode]: {\n          IPAMConfig: {\n            IPv4Address: values.ipv4Address,\n            IPv6Address: values.ipv6Address,\n          },\n          Aliases: oldConfig.NetworkingConfig.EndpointsConfig?.[\n            mode\n          ]?.Aliases?.filter((al) => !fromContainerId.startsWith(al)),\n        },\n      },\n    },\n  };\n}\n","import { DockerNetwork } from '@/react/docker/networks/types';\n\nimport { ContainerJSON } from '../../queries/container';\nimport { DockerContainer } from '../../types';\n\nimport { CONTAINER_MODE, Values } from './types';\n\nexport function getDefaultViewModel(isWindows: boolean) {\n  const networkMode = isWindows ? 'nat' : 'bridge';\n  return {\n    networkMode,\n    hostname: '',\n    domain: '',\n    macAddress: '',\n    ipv4Address: '',\n    ipv6Address: '',\n    primaryDns: '',\n    secondaryDns: '',\n    hostsFileEntries: [],\n    container: '',\n  };\n}\n\nexport function toViewModel(\n  config: ContainerJSON,\n  networks: Array<DockerNetwork>,\n  runningContainers: Array<DockerContainer> = []\n): Values {\n  const dns = config.HostConfig?.Dns;\n  const [primaryDns = '', secondaryDns = ''] = dns || [];\n\n  const hostsFileEntries = config.HostConfig?.ExtraHosts || [];\n\n  const [networkMode, container = ''] = getNetworkMode(\n    config,\n    networks,\n    runningContainers\n  );\n\n  const networkSettings = config.NetworkSettings?.Networks?.[networkMode];\n  let ipv4Address = '';\n  let ipv6Address = '';\n  if (networkSettings && networkSettings.IPAMConfig) {\n    ipv4Address = networkSettings.IPAMConfig.IPv4Address || '';\n    ipv6Address = networkSettings.IPAMConfig.IPv6Address || '';\n  }\n\n  const macAddress = networkSettings?.MacAddress || '';\n\n  return {\n    networkMode,\n    hostname: config.Config?.Hostname || '',\n    domain: config.Config?.Domainname || '',\n    macAddress,\n    ipv4Address,\n    ipv6Address,\n    primaryDns,\n    secondaryDns,\n    hostsFileEntries,\n    container,\n  };\n}\n\nfunction getNetworkMode(\n  config: ContainerJSON,\n  networks: Array<DockerNetwork>,\n  runningContainers: Array<DockerContainer> = []\n) {\n  let networkMode = config.HostConfig?.NetworkMode || '';\n  if (!networkMode) {\n    const networks = Object.keys(config.NetworkSettings?.Networks || {});\n    if (networks.length > 0) {\n      [networkMode] = networks;\n    }\n  }\n\n  if (networkMode.startsWith('container:')) {\n    const networkContainerId = networkMode.split(/^container:/)[1];\n    const container =\n      runningContainers.find((c) => c.Id === networkContainerId)?.Names[0] ||\n      '';\n    return [CONTAINER_MODE, container] as const;\n  }\n\n  const networkNames = networks.map((n) => n.Name);\n\n  if (networkNames.includes(networkMode)) {\n    return [networkMode] as const;\n  }\n\n  if (\n    networkNames.includes('bridge') &&\n    (!networkMode || networkMode === 'default' || networkMode === 'bridge')\n  ) {\n    return ['bridge'] as const;\n  }\n\n  if (networkNames.includes('nat')) {\n    return ['nat'] as const;\n  }\n\n  return [networks[0].Name] as const;\n}\n","import { array, object, SchemaOf, string } from 'yup';\n\nimport { Values } from './types';\n\nexport function validation(): SchemaOf<Values> {\n  return object({\n    networkMode: string().default(''),\n    hostname: string().default(''),\n    domain: string().default(''),\n    macAddress: string().default(''),\n    ipv4Address: string().default(''),\n    ipv6Address: string().default(''),\n    primaryDns: string().default(''),\n    secondaryDns: string().default(''),\n    hostsFileEntries: array(string().required('Entry is required')).default([]),\n    container: string()\n      .default('')\n      .when('network', {\n        is: 'container',\n        then: string().required('Container is required'),\n      }),\n  });\n}\n","import { FormikErrors } from 'formik';\nimport { array, object, SchemaOf, string } from 'yup';\nimport { DeviceMapping } from 'docker-types/generated/1.41';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { InputList, ItemProps } from '@@/form-components/InputList';\nimport { InputLabeled } from '@@/form-components/Input/InputLabeled';\n\ninterface Device {\n  pathOnHost: string;\n  pathInContainer: string;\n}\n\nexport type Values = Array<Device>;\n\nexport function DevicesField({\n  values,\n  onChange,\n  errors,\n}: {\n  values: Values;\n  onChange: (value: Values) => void;\n  errors?: FormikErrors<Device>[];\n}) {\n  return (\n    <InputList\n      value={values}\n      onChange={onChange}\n      item={Item}\n      addLabel=\"Add device\"\n      label=\"Devices\"\n      errors={errors}\n      itemBuilder={() => ({ pathOnHost: '', pathInContainer: '' })}\n    />\n  );\n}\n\nfunction Item({ item, onChange, error }: ItemProps<Device>) {\n  return (\n    <div className=\"w-full\">\n      <div className=\"flex w-full gap-4\">\n        <InputLabeled\n          value={item.pathOnHost}\n          onChange={(e) => onChange({ ...item, pathOnHost: e.target.value })}\n          label=\"host\"\n          placeholder=\"e.g. /dev/tty0\"\n          className=\"w-1/2\"\n          size=\"small\"\n        />\n        <InputLabeled\n          value={item.pathInContainer}\n          onChange={(e) =>\n            onChange({ ...item, pathInContainer: e.target.value })\n          }\n          label=\"container\"\n          placeholder=\"e.g. /dev/tty0\"\n          className=\"w-1/2\"\n          size=\"small\"\n        />\n      </div>\n      {error && <FormError>{Object.values(error)[0]}</FormError>}\n    </div>\n  );\n}\n\nexport function devicesValidation(): SchemaOf<Values> {\n  return array(\n    object({\n      pathOnHost: string().required('Host path is required'),\n      pathInContainer: string().required('Container path is required'),\n    })\n  );\n}\n\nexport function toDevicesViewModel(devices: Array<DeviceMapping>): Values {\n  return devices.filter(hasPath).map((device) => ({\n    pathOnHost: device.PathOnHost,\n    pathInContainer: device.PathInContainer,\n  }));\n\n  function hasPath(\n    device: DeviceMapping\n  ): device is { PathOnHost: string; PathInContainer: string } {\n    return !!device.PathOnHost && !!device.PathInContainer;\n  }\n}\n","import { useMemo } from 'react';\nimport { components, MultiValue } from 'react-select';\nimport { MultiValueRemoveProps } from 'react-select/dist/declarations/src/components/MultiValue';\nimport {\n  ActionMeta,\n  OnChangeValue,\n} from 'react-select/dist/declarations/src/types';\nimport { OptionProps } from 'react-select/dist/declarations/src/components/Option';\n\nimport { Select } from '@@/form-components/ReactSelect';\nimport { Switch } from '@@/form-components/SwitchField/Switch';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { Values } from './types';\n\ninterface GpuOption {\n  value: string;\n  label: string;\n  description?: string;\n}\n\ninterface GPU {\n  value: string;\n  name: string;\n}\n\nexport interface Props {\n  values: Values;\n  onChange(values: Values): void;\n  gpus: GPU[];\n  usedGpus: string[];\n  usedAllGpus: boolean;\n  enableGpuManagement?: boolean;\n}\n\nconst NvidiaCapabilitiesOptions = [\n  // Taken from https://github.com/containerd/containerd/blob/master/contrib/nvidia/nvidia.go#L40\n  {\n    value: 'compute',\n    label: 'compute',\n    description: 'required for CUDA and OpenCL applications',\n  },\n  {\n    value: 'compat32',\n    label: 'compat32',\n    description: 'required for running 32-bit applications',\n  },\n  {\n    value: 'graphics',\n    label: 'graphics',\n    description: 'required for running OpenGL and Vulkan applications',\n  },\n  {\n    value: 'utility',\n    label: 'utility',\n    description: 'required for using nvidia-smi and NVML',\n  },\n  {\n    value: 'video',\n    label: 'video',\n    description: 'required for using the Video Codec SDK',\n  },\n  {\n    value: 'display',\n    label: 'display',\n    description: 'required for leveraging X11 display',\n  },\n] as const;\n\nexport function GpuFieldset({\n  values,\n  onChange,\n  gpus = [],\n  usedGpus = [],\n  usedAllGpus,\n  enableGpuManagement,\n}: Props) {\n  const options = useMemo(() => {\n    const options = (gpus || []).map((gpu) => ({\n      value: gpu.value,\n      label:\n        usedGpus.includes(gpu.value) || usedAllGpus\n          ? `${gpu.name} (in use)`\n          : gpu.name,\n    }));\n\n    options.unshift({\n      value: 'all',\n      label: 'Use All GPUs',\n    });\n\n    return options;\n  }, [gpus, usedGpus, usedAllGpus]);\n\n  const gpuCmd = useMemo(() => {\n    const devices = values.selectedGPUs.join(',');\n    const deviceStr = devices === 'all' ? 'all,' : `device=${devices},`;\n    const caps = values.capabilities.join(',');\n    return `--gpus '${deviceStr}\"capabilities=${caps}\"'`;\n  }, [values.selectedGPUs, values.capabilities]);\n\n  const gpuValue = useMemo(\n    () =>\n      options.filter((option) => values.selectedGPUs.includes(option.value)),\n    [values.selectedGPUs, options]\n  );\n\n  const capValue = useMemo(\n    () =>\n      NvidiaCapabilitiesOptions.filter((option) =>\n        values.capabilities.includes(option.value)\n      ),\n    [values.capabilities]\n  );\n\n  return (\n    <div>\n      <TextTip inline={false} color=\"blue\">\n        <p>GPU support is currently limited to NVIDIA graphics cards only.</p>\n      </TextTip>\n\n      {!enableGpuManagement && (\n        <TextTip color=\"blue\">\n          GPU in the UI is not currently enabled for this environment.\n        </TextTip>\n      )}\n\n      <div className=\"form-group\">\n        <div className=\"col-sm-3 col-lg-2 control-label text-left\">\n          Enable GPU\n          <Switch\n            id=\"enabled\"\n            name=\"enabled\"\n            checked={values.enabled && !!enableGpuManagement}\n            onChange={toggleEnableGpu}\n            className=\"ml-2\"\n            disabled={!enableGpuManagement}\n          />\n        </div>\n        {enableGpuManagement && values.enabled && (\n          <div className=\"col-sm-9 col-lg-10 text-left\">\n            <Select<GpuOption, true>\n              isMulti\n              closeMenuOnSelect\n              value={gpuValue}\n              isClearable={false}\n              backspaceRemovesValue={false}\n              isDisabled={!values.enabled}\n              onChange={onChangeSelectedGpus}\n              options={options}\n              components={{ MultiValueRemove }}\n            />\n          </div>\n        )}\n      </div>\n\n      {values.enabled && (\n        <>\n          <div className=\"form-group\">\n            <div className=\"col-sm-3 col-lg-2 control-label text-left\">\n              Capabilities\n              <Tooltip message=\"‘compute’ and ‘utility’ capabilities are preselected by Portainer because they are used by default when you don’t explicitly specify capabilities with docker CLI ‘--gpus’ option.\" />\n            </div>\n            <div className=\"col-sm-9 col-lg-10 text-left\">\n              <Select<GpuOption, true>\n                isMulti\n                closeMenuOnSelect\n                value={capValue}\n                options={NvidiaCapabilitiesOptions}\n                components={{ Option }}\n                onChange={onChangeSelectedCaps}\n              />\n            </div>\n          </div>\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-3 col-lg-2 control-label text-left\">\n              Control\n              <Tooltip message=\"This is the generated equivalent of the '--gpus' docker CLI parameter based on your settings.\" />\n            </div>\n            <div className=\"col-sm-9 col-lg-10\">\n              <code>{gpuCmd}</code>\n            </div>\n          </div>\n        </>\n      )}\n    </div>\n  );\n\n  function onChangeValues(key: string, newValue: boolean | string[]) {\n    const newValues = {\n      ...values,\n      [key]: newValue,\n    };\n    onChange(newValues);\n  }\n\n  function toggleEnableGpu() {\n    onChangeValues('enabled', !values.enabled);\n  }\n\n  function onChangeSelectedGpus(\n    newValue: OnChangeValue<GpuOption, true>,\n    actionMeta: ActionMeta<GpuOption>\n  ) {\n    let { useSpecific } = values;\n    let selectedGPUs = newValue.map((option) => option.value);\n\n    if (actionMeta.action === 'select-option') {\n      useSpecific = actionMeta.option?.value !== 'all';\n      selectedGPUs = selectedGPUs.filter((value) =>\n        useSpecific ? value !== 'all' : value === 'all'\n      );\n    }\n\n    const newValues = { ...values, selectedGPUs, useSpecific };\n    onChange(newValues);\n  }\n\n  function onChangeSelectedCaps(newValue: OnChangeValue<GpuOption, true>) {\n    onChangeValues(\n      'capabilities',\n      newValue.map((option) => option.value)\n    );\n  }\n}\n\nfunction Option(props: OptionProps<GpuOption, true>) {\n  const {\n    data: { value, description },\n  } = props;\n\n  return (\n    <div>\n      {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n      <components.Option {...props}>\n        {`${value} - ${description}`}\n      </components.Option>\n    </div>\n  );\n}\n\nfunction MultiValueRemove(props: MultiValueRemoveProps<GpuOption, true>) {\n  const {\n    selectProps: { value },\n  } = props;\n  if (value && (value as MultiValue<GpuOption>).length === 1) {\n    return null;\n  }\n  // eslint-disable-next-line react/jsx-props-no-spreading\n  return <components.MultiValueRemove {...props} />;\n}\n","import { validation } from './validation';\nimport { toRequest } from './toRequest';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\n\nexport { GpuFieldset } from './GpuFieldset';\n\nexport type { Values as GpuFieldsetValues } from './types';\n\nexport const gpuFieldsetUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { DeviceRequest } from 'docker-types/generated/1.41';\n\nimport { Values } from './types';\n\nexport function toRequest(\n  deviceRequests: Array<DeviceRequest>,\n  gpu: Values\n): Array<DeviceRequest> {\n  const driver = 'nvidia';\n\n  const otherDeviceRequests = deviceRequests.filter(\n    (deviceRequest) => deviceRequest.Driver !== driver\n  );\n\n  if (!gpu.enabled) {\n    return otherDeviceRequests;\n  }\n\n  const deviceRequest: DeviceRequest = {\n    Driver: driver,\n    Count: -1,\n    DeviceIDs: [], // must be empty if Count != 0 https://github.com/moby/moby/blob/master/daemon/nvidia_linux.go#L50\n    Capabilities: [], // array of ORed arrays of ANDed capabilites = [ [c1 AND c2] OR [c1 AND c3] ] : https://github.com/moby/moby/blob/master/api/types/container/host_config.go#L272\n  };\n\n  if (gpu.useSpecific) {\n    deviceRequest.DeviceIDs = gpu.selectedGPUs;\n    deviceRequest.Count = 0;\n  }\n  deviceRequest.Capabilities = [gpu.capabilities];\n\n  return [...otherDeviceRequests, deviceRequest];\n}\n","import { DeviceRequest } from 'docker-types/generated/1.41';\n\nimport { Values } from './types';\n\nexport function getDefaultViewModel(): Values {\n  return {\n    enabled: false,\n    useSpecific: false,\n    selectedGPUs: ['all'],\n    capabilities: ['compute', 'utility'],\n  };\n}\n\nexport function toViewModel(deviceRequests: Array<DeviceRequest> = []): Values {\n  const deviceRequest = deviceRequests.find(\n    (o) => o.Driver === 'nvidia' || o.Capabilities?.[0]?.[0] === 'gpu'\n  );\n  if (!deviceRequest) {\n    return getDefaultViewModel();\n  }\n\n  const useSpecific = deviceRequest.Count !== -1;\n\n  return {\n    enabled: true,\n    useSpecific,\n    selectedGPUs: useSpecific ? deviceRequest.DeviceIDs || [] : ['all'],\n    capabilities: deviceRequest.Capabilities?.[0] || [],\n  };\n}\n","import { SchemaOf, object, array, string, bool } from 'yup';\n\nimport { Values } from './types';\n\nexport function validation(): SchemaOf<Values> {\n  return object({\n    capabilities: array()\n      .of(string().default(''))\n      .default(['compute', 'utility']),\n    enabled: bool().default(false),\n    selectedGPUs: array().of(string()).default(['all']),\n    useSpecific: bool().default(false),\n  });\n}\n","export function toConfigMemory(value: number): number {\n  if (value < 0) {\n    return 0;\n  }\n\n  return round(Math.round(value * 8) / 8, 3) * 1024 * 1024;\n}\n\nexport function toViewModelMemory(value = 0): number {\n  if (value < 0) {\n    return 0;\n  }\n\n  return value / 1024 / 1024;\n}\n\nexport function round(value: number, decimals: number) {\n  const tenth = 10 ** decimals;\n  return Math.round((value + Number.EPSILON) * tenth) / tenth;\n}\n\nexport function toViewModelCpu(value = 0) {\n  if (value < 0) {\n    return 0;\n  }\n\n  return value / 1000000000;\n}\n\nexport function toConfigCpu(value: number) {\n  if (value < 0) {\n    return 0;\n  }\n\n  return value * 1000000000;\n}\n","import { FormikErrors } from 'formik';\nimport { object, SchemaOf } from 'yup';\n\nimport { useSystemLimits } from '@/react/docker/proxy/queries/useInfo';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { nanNumberSchema } from '@/react-tools/yup-schemas';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Slider } from '@@/form-components/Slider';\nimport { SliderWithInput } from '@@/form-components/Slider/SliderWithInput';\n\nimport { CreateContainerRequest } from '../types';\n\nimport { toConfigCpu, toConfigMemory } from './memory-utils';\n\nexport interface Values {\n  reservation: number;\n  limit: number;\n  cpu: number;\n}\n\nexport function ResourceFieldset({\n  values,\n  onChange,\n  errors,\n}: {\n  values: Values;\n  onChange: (values: Values) => void;\n  errors: FormikErrors<Values> | undefined;\n}) {\n  const environmentId = useEnvironmentId();\n  const { maxCpu, maxMemory } = useSystemLimits(environmentId);\n\n  return (\n    <FormSection title=\"Resources\">\n      <FormControl label=\"Memory reservation (MB)\" errors={errors?.reservation}>\n        <SliderWithInput\n          visibleTooltip\n          value={values.reservation}\n          onChange={(value) => onChange({ ...values, reservation: value })}\n          max={maxMemory}\n          step={256}\n          dataCy=\"k8sNamespaceCreate-resourceReservationMemory\"\n        />\n      </FormControl>\n\n      <FormControl label=\"Memory limit (MB)\" errors={errors?.limit}>\n        <SliderWithInput\n          visibleTooltip\n          value={values.limit}\n          onChange={(value) => onChange({ ...values, limit: value })}\n          max={maxMemory}\n          step={256}\n          dataCy=\"k8sNamespaceCreate-resourceLimitMemory\"\n        />\n      </FormControl>\n\n      <FormControl label=\"Maximum CPU usage\" errors={errors?.cpu}>\n        <Slider\n          visibleTooltip\n          value={values.cpu}\n          onChange={(value) =>\n            onChange({\n              ...values,\n              cpu: typeof value === 'number' ? value : value[0],\n            })\n          }\n          min={0}\n          max={maxCpu}\n          step={0.1}\n        />\n      </FormControl>\n    </FormSection>\n  );\n}\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest['HostConfig'],\n  values: Values\n): CreateContainerRequest['HostConfig'] {\n  return {\n    ...oldConfig,\n    NanoCpus: toConfigCpu(values.cpu),\n    MemoryReservation: toConfigMemory(values.reservation),\n    Memory: toConfigMemory(values.limit),\n  };\n}\n\nexport function resourcesValidation({\n  maxMemory = Number.POSITIVE_INFINITY,\n  maxCpu = Number.POSITIVE_INFINITY,\n}: {\n  maxMemory?: number;\n  maxCpu?: number;\n} = {}): SchemaOf<Values> {\n  return object({\n    reservation: nanNumberSchema()\n      .min(0)\n      .max(maxMemory, `Value must be between 0 and ${maxMemory}`)\n      .default(0),\n    limit: nanNumberSchema()\n      .min(0)\n      .max(maxMemory, `Value must be between 0 and ${maxMemory}`)\n      .default(0),\n    cpu: nanNumberSchema()\n      .min(0)\n      .max(maxCpu, `Value must be between 0 and ${maxCpu}`)\n      .default(0),\n  });\n}\n","import { useInfo } from '@/react/docker/proxy/queries/useInfo';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\nexport function RuntimeSelector({\n  value,\n  onChange,\n}: {\n  value: string;\n  onChange: (value: string) => void;\n}) {\n  const environmentId = useEnvironmentId();\n  const infoQuery = useInfo(environmentId, (info) => [\n    { label: 'Default', value: '' },\n    ...Object.keys(info?.Runtimes || {}).map((runtime) => ({\n      label: runtime,\n      value: runtime,\n    })),\n  ]);\n\n  return (\n    <PortainerSelect\n      onChange={onChange}\n      value={value}\n      options={infoQuery.data || []}\n      isLoading={infoQuery.isLoading}\n      disabled={infoQuery.isLoading}\n    />\n  );\n}\n","import { bool, object, SchemaOf, string } from 'yup';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { RuntimeSelector } from './RuntimeSelector';\n\nexport interface Values {\n  privileged: boolean;\n  init: boolean;\n  type: string;\n}\n\nexport function RuntimeSection({\n  values,\n  onChange,\n  allowPrivilegedMode,\n  isInitFieldVisible,\n}: {\n  values: Values;\n  onChange: (values: Values) => void;\n  allowPrivilegedMode: boolean;\n  isInitFieldVisible: boolean;\n}) {\n  return (\n    <FormSection title=\"Runtime\">\n      {allowPrivilegedMode && (\n        <div className=\"form-group\">\n          <div className=\"col-sm-12\">\n            <SwitchField\n              labelClass=\"col-sm-2\"\n              label=\"Privileged mode\"\n              checked={values.privileged}\n              onChange={(privileged) => handleChange({ privileged })}\n            />\n          </div>\n        </div>\n      )}\n\n      {isInitFieldVisible && (\n        <div className=\"form-group\">\n          <div className=\"col-sm-12\">\n            <SwitchField\n              labelClass=\"col-sm-2\"\n              label=\"Init\"\n              checked={values.init}\n              onChange={(init) => handleChange({ init })}\n            />\n          </div>\n        </div>\n      )}\n\n      <FormControl label=\"Type\" inputId=\"container_runtime\" size=\"xsmall\">\n        <RuntimeSelector\n          value={values.type}\n          onChange={(type) => handleChange({ type })}\n        />\n      </FormControl>\n    </FormSection>\n  );\n\n  function handleChange(newValues: Partial<Values>) {\n    onChange({ ...values, ...newValues });\n  }\n}\n\nexport function runtimeValidation(): SchemaOf<Values> {\n  return object({\n    privileged: bool().default(false),\n    init: bool().default(false),\n    type: string().default(''),\n  });\n}\n","import { FormikErrors } from 'formik';\nimport { array, object, SchemaOf, string } from 'yup';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { InputList, ItemProps } from '@@/form-components/InputList';\nimport { InputLabeled } from '@@/form-components/Input/InputLabeled';\n\ninterface Sysctls {\n  name: string;\n  value: string;\n}\n\nexport type Values = Array<Sysctls>;\n\nexport function SysctlsField({\n  values,\n  onChange,\n  errors,\n}: {\n  values: Values;\n  onChange: (value: Values) => void;\n  errors?: FormikErrors<Sysctls>[];\n}) {\n  return (\n    <InputList\n      value={values}\n      onChange={onChange}\n      item={Item}\n      addLabel=\"Add sysctl\"\n      label=\"Sysctls\"\n      errors={errors}\n      itemBuilder={() => ({ name: '', value: '' })}\n    />\n  );\n}\n\nfunction Item({ item, onChange, error }: ItemProps<Sysctls>) {\n  return (\n    <div className=\"w-full\">\n      <div className=\"flex w-full gap-4\">\n        <InputLabeled\n          value={item.name}\n          onChange={(e) => onChange({ ...item, name: e.target.value })}\n          label=\"name\"\n          placeholder=\"e.g. FOO\"\n          className=\"w-1/2\"\n          size=\"small\"\n        />\n        <InputLabeled\n          value={item.value}\n          onChange={(e) => onChange({ ...item, value: e.target.value })}\n          label=\"value\"\n          placeholder=\"e.g. bar\"\n          className=\"w-1/2\"\n          size=\"small\"\n        />\n      </div>\n      {error && <FormError>{Object.values(error)[0]}</FormError>}\n    </div>\n  );\n}\n\nexport function sysctlsValidation(): SchemaOf<Values> {\n  return array(\n    object({\n      name: string().required('Name is required'),\n      value: string().required('Value is required'),\n    })\n  );\n}\n","import _ from 'lodash';\nimport { FormikErrors } from 'formik';\nimport { ReactNode } from 'react';\n\nimport { useIsStandAlone } from '@/react/docker/proxy/queries/useInfo';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { GpuFieldset, GpuFieldsetValues } from './GpuFieldset';\nimport { Values as RuntimeValues, RuntimeSection } from './RuntimeSection';\nimport { DevicesField, Values as Devices } from './DevicesField';\nimport { SysctlsField, Values as Sysctls } from './SysctlsField';\nimport {\n  ResourceFieldset,\n  Values as ResourcesValues,\n} from './ResourcesFieldset';\n\nexport interface Values {\n  runtime: RuntimeValues;\n\n  devices: Devices;\n\n  sysctls: Sysctls;\n\n  sharedMemorySize: number;\n\n  gpu: GpuFieldsetValues;\n\n  resources: ResourcesValues;\n}\n\nexport function ResourcesTab({\n  values,\n  setFieldValue,\n  errors,\n  allowPrivilegedMode,\n  isInitFieldVisible,\n  isDevicesFieldVisible,\n  isSysctlFieldVisible,\n  renderLimits,\n}: {\n  values: Values;\n  setFieldValue: (field: string, value: unknown) => void;\n  errors?: FormikErrors<Values>;\n  allowPrivilegedMode: boolean;\n  isInitFieldVisible: boolean;\n  isDevicesFieldVisible: boolean;\n  isSysctlFieldVisible: boolean;\n  renderLimits?: (values: ResourcesValues) => ReactNode;\n}) {\n  const environmentId = useEnvironmentId();\n\n  const environmentQuery = useCurrentEnvironment();\n\n  const isStandalone = useIsStandAlone(environmentId);\n\n  if (!environmentQuery.data) {\n    return null;\n  }\n\n  const environment = environmentQuery.data;\n  const gpuUseAll = _.get(environment, 'Snapshots[0].GpuUseAll', false);\n  const gpuUseList = _.get(environment, 'Snapshots[0].GpuUseList', []);\n\n  return (\n    <div className=\"mt-3\">\n      <RuntimeSection\n        values={values.runtime}\n        onChange={(runtime) => setFieldValue('runtime', runtime)}\n        allowPrivilegedMode={allowPrivilegedMode}\n        isInitFieldVisible={isInitFieldVisible}\n      />\n\n      {isDevicesFieldVisible && (\n        <DevicesField\n          values={values.devices}\n          onChange={(devices) => setFieldValue('devices', devices)}\n        />\n      )}\n\n      {isSysctlFieldVisible && (\n        <SysctlsField\n          values={values.sysctls}\n          onChange={(sysctls) => setFieldValue('sysctls', sysctls)}\n        />\n      )}\n\n      <FormControl label=\"Shared memory size\" inputId=\"shm-size\">\n        <div className=\"flex items-center gap-4\">\n          <Input\n            id=\"shm-size\"\n            type=\"number\"\n            min=\"1\"\n            value={values.sharedMemorySize}\n            onChange={(e) =>\n              setFieldValue('sharedMemorySize', e.target.valueAsNumber)\n            }\n            className=\"w-32\"\n          />\n          <div className=\"small text-muted\">\n            Size of /dev/shm (<b>MB</b>)\n          </div>\n        </div>\n      </FormControl>\n\n      {isStandalone && (\n        <GpuFieldset\n          values={values.gpu}\n          onChange={(gpu) => setFieldValue('gpu', gpu)}\n          gpus={environment.Gpus}\n          enableGpuManagement={environment.EnableGPUManagement}\n          usedGpus={gpuUseList}\n          usedAllGpus={gpuUseAll}\n        />\n      )}\n\n      {renderLimits ? (\n        renderLimits(values.resources)\n      ) : (\n        <ResourceFieldset\n          values={values.resources}\n          onChange={(resources) => setFieldValue('resources', resources)}\n          errors={errors?.resources}\n        />\n      )}\n    </div>\n  );\n}\n","import { validation } from './validation';\nimport { toRequest } from './toRequest';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\n\nexport {\n  ResourcesTab,\n  type Values as ResourcesTabValues,\n} from './ResourcesTab';\n\nexport const resourcesTabUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { CreateContainerRequest } from '../types';\n\nimport { gpuFieldsetUtils } from './GpuFieldset';\nimport { toConfigMemory } from './memory-utils';\nimport { Values } from './ResourcesTab';\nimport { toRequest as toResourcesRequest } from './ResourcesFieldset';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: Values\n): CreateContainerRequest {\n  return {\n    ...oldConfig,\n    HostConfig: {\n      ...oldConfig.HostConfig,\n      Privileged: values.runtime.privileged,\n      Init: values.runtime.init,\n      Runtime: values.runtime.type,\n      Devices: values.devices.map((device) => ({\n        PathOnHost: device.pathOnHost,\n        PathInContainer: device.pathInContainer,\n        CgroupPermissions: 'rwm',\n      })),\n      Sysctls: Object.fromEntries(\n        values.sysctls.map((sysctl) => [sysctl.name, sysctl.value])\n      ),\n      ShmSize: toConfigMemory(values.sharedMemorySize),\n      DeviceRequests: gpuFieldsetUtils.toRequest(\n        oldConfig.HostConfig.DeviceRequests || [],\n        values.gpu\n      ),\n      ...toResourcesRequest(oldConfig.HostConfig, values.resources),\n    },\n  };\n}\n","import { ContainerJSON } from '../../queries/container';\n\nimport { toDevicesViewModel } from './DevicesField';\nimport { gpuFieldsetUtils } from './GpuFieldset';\nimport { toViewModelCpu, toViewModelMemory } from './memory-utils';\nimport { Values } from './ResourcesTab';\n\nexport function toViewModel(config: ContainerJSON): Values {\n  return {\n    runtime: {\n      privileged: config.HostConfig?.Privileged || false,\n      init: config.HostConfig?.Init || false,\n      type: config.HostConfig?.Runtime || '',\n    },\n    devices: toDevicesViewModel(config.HostConfig?.Devices || []),\n    sysctls: Object.entries(config.HostConfig?.Sysctls || {}).map(\n      ([name, value]) => ({\n        name,\n        value,\n      })\n    ),\n    gpu: gpuFieldsetUtils.toViewModel(config.HostConfig?.DeviceRequests || []),\n    sharedMemorySize: toViewModelMemory(config.HostConfig?.ShmSize),\n    resources: {\n      cpu: toViewModelCpu(config.HostConfig?.NanoCpus),\n      reservation: toViewModelMemory(config.HostConfig?.MemoryReservation),\n      limit: toViewModelMemory(config.HostConfig?.Memory),\n    },\n  };\n}\n\nexport function getDefaultViewModel(): Values {\n  return {\n    runtime: {\n      privileged: false,\n      init: false,\n      type: '',\n    },\n    devices: [],\n    sysctls: [],\n    sharedMemorySize: 64,\n    gpu: gpuFieldsetUtils.getDefaultViewModel(),\n    resources: {\n      reservation: 0,\n      limit: 0,\n      cpu: 0,\n    },\n  };\n}\n","import { number, object, SchemaOf } from 'yup';\n\nimport { devicesValidation } from './DevicesField';\nimport { gpuFieldsetUtils } from './GpuFieldset';\nimport { resourcesValidation } from './ResourcesFieldset';\nimport { Values } from './ResourcesTab';\nimport { runtimeValidation } from './RuntimeSection';\nimport { sysctlsValidation } from './SysctlsField';\n\nexport function validation({\n  maxMemory,\n  maxCpu,\n}: {\n  maxMemory?: number;\n  maxCpu?: number;\n} = {}): SchemaOf<Values> {\n  return object({\n    runtime: runtimeValidation(),\n    devices: devicesValidation(),\n    sysctls: sysctlsValidation(),\n    sharedMemorySize: number().min(0).default(0),\n    gpu: gpuFieldsetUtils.validation(),\n    resources: resourcesValidation({ maxMemory, maxCpu }),\n  });\n}\n","// Enum version of RestartPolicy\nexport enum RestartPolicy {\n  No = 'no',\n  Always = 'always',\n  OnFailure = 'on-failure',\n  UnlessStopped = 'unless-stopped',\n}\n","import { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { FormControl } from '@@/form-components/FormControl';\n\nimport { RestartPolicy } from './types';\n\nexport function RestartPolicyTab({\n  values,\n  onChange,\n}: {\n  values: RestartPolicy;\n  onChange: (values: RestartPolicy) => void;\n}) {\n  return (\n    <FormControl label=\"Restart Policy\">\n      <ButtonSelector\n        options={[\n          { label: 'Never', value: RestartPolicy.No },\n          { label: 'Always', value: RestartPolicy.Always },\n          { label: 'On failure', value: RestartPolicy.OnFailure },\n          { label: 'Unless stopped', value: RestartPolicy.UnlessStopped },\n        ]}\n        value={values}\n        onChange={onChange}\n      />\n    </FormControl>\n  );\n}\n","import { validation } from './validation';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\nimport { toRequest } from './toRequest';\n\nexport { RestartPolicyTab } from './RestartPolicyTab';\nexport { RestartPolicy } from './types';\n\nexport const restartPolicyTabUtils = {\n  toViewModel,\n  toRequest,\n  validation,\n  getDefaultViewModel,\n};\n","import { ContainerJSON } from '../../queries/container';\n\nimport { RestartPolicy } from './types';\n\nexport function toViewModel(config: ContainerJSON): RestartPolicy {\n  switch (config.HostConfig?.RestartPolicy?.Name) {\n    case 'always':\n      return RestartPolicy.Always;\n    case 'on-failure':\n      return RestartPolicy.OnFailure;\n    case 'unless-stopped':\n      return RestartPolicy.UnlessStopped;\n    case 'no':\n    default:\n      return RestartPolicy.No;\n  }\n}\n\nexport function getDefaultViewModel(): RestartPolicy {\n  return RestartPolicy.No;\n}\n","import { CreateContainerRequest } from '../types';\n\nimport { RestartPolicy } from './types';\n\nexport function toRequest(\n  config: CreateContainerRequest,\n  value: RestartPolicy\n): CreateContainerRequest {\n  return {\n    ...config,\n    HostConfig: {\n      ...config.HostConfig,\n      RestartPolicy: {\n        ...config.HostConfig.RestartPolicy,\n        Name: value,\n      },\n    },\n  };\n}\n","import { mixed, SchemaOf } from 'yup';\n\nimport { RestartPolicy } from './types';\n\nexport function validation(): SchemaOf<RestartPolicy> {\n  return mixed<RestartPolicy>()\n    .oneOf(Object.values(RestartPolicy))\n    .default(RestartPolicy.No) as SchemaOf<RestartPolicy>;\n}\n","export const volumeTypes = ['bind', 'volume'] as const;\n\nexport type VolumeType = (typeof volumeTypes)[number];\n\nexport interface Volume {\n  containerPath: string;\n  type: VolumeType;\n  name: string;\n  readOnly: boolean;\n}\n\nexport type Values = Array<Volume>;\n","import { createContext, useContext } from 'react';\n\nexport const InputContext = createContext<boolean | null>(null);\n\nexport function useInputContext() {\n  const value = useContext(InputContext);\n\n  if (value === null) {\n    throw new Error('useContext must be used within a Context.Provider');\n  }\n\n  return value;\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys as dockerQueryKeys } from '../../queries/utils/root';\n\nexport const queryKeys = {\n  base: (environmentId: EnvironmentId) =>\n    [...dockerQueryKeys.root(environmentId), 'volumes'] as const,\n};\n","import { useQuery } from 'react-query';\nimport { Volume } from 'docker-types/generated/1.41';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { buildUrl as buildDockerUrl } from '@/react/docker/proxy/queries/build-url';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys } from './query-keys';\n\nexport function useVolumes<T = Volume[]>(\n  environmentId: EnvironmentId,\n  { select }: { select?: (data: Volume[]) => T } = {}\n) {\n  return useQuery(\n    queryKeys.base(environmentId),\n    () => getVolumes(environmentId),\n    { select }\n  );\n}\n\ninterface VolumesResponse {\n  Volumes: Volume[];\n}\n\nexport async function getVolumes(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<VolumesResponse>(\n      buildUrl(environmentId, 'volumes')\n    );\n\n    return data.Volumes;\n  } catch (error) {\n    throw parseAxiosError(error as Error, 'Unable to retrieve volumes');\n  }\n}\n\nfunction buildUrl(environmentId: EnvironmentId, action: string, id?: string) {\n  let url = buildDockerUrl(environmentId, action);\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  return url;\n}\n","import { truncate } from '@/portainer/filters/filters';\nimport { useVolumes } from '@/react/docker/volumes/queries/useVolumes';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\nexport function VolumeSelector({\n  value,\n  onChange,\n  inputId,\n}: {\n  value: string;\n  onChange: (value?: string) => void;\n  inputId?: string;\n}) {\n  const environmentId = useEnvironmentId();\n  const volumesQuery = useVolumes(environmentId, {\n    select(volumes) {\n      return volumes.sort((vol1, vol2) => vol1.Name.localeCompare(vol2.Name));\n    },\n  });\n\n  if (!volumesQuery.data) {\n    return null;\n  }\n\n  const volumes = volumesQuery.data;\n\n  const selectedValue = volumes.find((vol) => vol.Name === value);\n\n  return (\n    <Select\n      placeholder=\"Select a volume\"\n      options={volumes}\n      getOptionLabel={(vol) =>\n        `${truncate(vol.Name, 30)} - ${truncate(vol.Driver, 30)}`\n      }\n      getOptionValue={(vol) => vol.Name}\n      isMulti={false}\n      value={selectedValue}\n      onChange={(vol) => onChange(vol?.Name)}\n      inputId={inputId}\n    />\n  );\n}\n","import _ from 'lodash';\nimport { ArrowRight } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { FormError } from '@@/form-components/FormError';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { ItemProps } from '@@/form-components/InputList';\nimport { InputLabeled } from '@@/form-components/Input/InputLabeled';\n\nimport { Volume } from './types';\nimport { useInputContext } from './context';\nimport { VolumeSelector } from './VolumeSelector';\n\nexport function Item({\n  item: volume,\n  onChange,\n  error,\n  index,\n}: ItemProps<Volume>) {\n  const allowBindMounts = useInputContext();\n\n  return (\n    <div>\n      <div className=\"col-sm-12 form-inline flex gap-1\">\n        <InputLabeled\n          label=\"container\"\n          placeholder=\"e.g. /path/in/container\"\n          value={volume.containerPath}\n          onChange={(e) => setValue({ containerPath: e.target.value })}\n          size=\"small\"\n          className=\"flex-1\"\n          id={`container-path-${index}`}\n        />\n\n        {allowBindMounts && (\n          <InputGroup size=\"small\">\n            <ButtonSelector\n              value={volume.type}\n              onChange={(type) => {\n                onChange({ ...volume, type, name: '' });\n              }}\n              options={[\n                { value: 'volume', label: 'Volume' },\n                { value: 'bind', label: 'Bind' },\n              ]}\n              aria-label=\"Volume type\"\n            />\n          </InputGroup>\n        )}\n      </div>\n      <div className=\"col-sm-12 form-inline mt-1 flex items-center gap-1\">\n        <Icon icon={ArrowRight} />\n        {volume.type === 'volume' && (\n          <InputGroup size=\"small\" className=\"flex-1\">\n            <InputGroup.Addon as=\"label\" htmlFor={`volume-${index}`}>\n              volume\n            </InputGroup.Addon>\n            <VolumeSelector\n              value={volume.name}\n              onChange={(name) => setValue({ name })}\n              inputId={`volume-${index}`}\n            />\n          </InputGroup>\n        )}\n\n        {volume.type === 'bind' && (\n          <InputLabeled\n            size=\"small\"\n            className=\"flex-1\"\n            label=\"host\"\n            placeholder=\"e.g. /path/on/host\"\n            value={volume.name}\n            onChange={(e) => setValue({ name: e.target.value })}\n            id={`host-path-${index}`}\n          />\n        )}\n\n        <InputGroup size=\"small\">\n          <ButtonSelector<boolean>\n            aria-label=\"ReadWrite\"\n            value={volume.readOnly}\n            onChange={(readOnly) => setValue({ readOnly })}\n            options={[\n              { value: false, label: 'Writable' },\n              { value: true, label: 'Read-only' },\n            ]}\n          />\n        </InputGroup>\n      </div>\n      {error && <FormError>{_.first(Object.values(error))}</FormError>}\n    </div>\n  );\n\n  function setValue(partial: Partial<Volume>) {\n    onChange({ ...volume, ...partial });\n  }\n}\n","import { InputList } from '@@/form-components/InputList';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\nimport { Values, Volume } from './types';\nimport { InputContext } from './context';\nimport { Item } from './Item';\n\nexport function VolumesTab({\n  onChange,\n  values,\n  allowBindMounts,\n  errors,\n}: {\n  onChange: (values: Values) => void;\n  values: Values;\n  allowBindMounts: boolean;\n  errors?: ArrayError<Values>;\n}) {\n  return (\n    <InputContext.Provider value={allowBindMounts}>\n      <InputList<Volume>\n        errors={Array.isArray(errors) ? errors : []}\n        label=\"Volume mapping\"\n        onChange={(volumes) => handleChange(volumes)}\n        value={values}\n        addLabel=\"map additional volume\"\n        item={Item}\n        itemBuilder={() => ({\n          containerPath: '',\n          type: 'volume',\n          name: '',\n          readOnly: false,\n        })}\n      />\n    </InputContext.Provider>\n  );\n\n  function handleChange(newValues: Values) {\n    onChange(newValues);\n  }\n}\n","import { validation } from './validation';\nimport { toRequest } from './toRequest';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\n\nexport { VolumesTab } from './VolumesTab';\n\nexport { type Values as VolumesTabValues } from './types';\n\nexport const volumesTabUtils = {\n  toRequest,\n  toViewModel,\n  validation,\n  getDefaultViewModel,\n};\n","import { CreateContainerRequest } from '../types';\n\nimport { Values } from './types';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: Values\n): CreateContainerRequest {\n  const validValues = values.filter(\n    (volume) => volume.containerPath && volume.name\n  );\n\n  const volumes = Object.fromEntries(\n    validValues.map((volume) => [volume.containerPath, {}])\n  );\n  const binds = validValues.map((volume) => {\n    let bind = `${volume.name}:${volume.containerPath}`;\n    if (volume.readOnly) {\n      bind += ':ro';\n    }\n\n    return bind;\n  });\n\n  return {\n    ...oldConfig,\n    Volumes: volumes,\n    HostConfig: {\n      ...oldConfig.HostConfig,\n      Binds: binds,\n    },\n  };\n}\n","import { ContainerJSON } from '../../queries/container';\n\nimport { VolumeType, Values } from './types';\n\nexport function toViewModel(config: ContainerJSON): Values {\n  return Object.values(config.Mounts || {}).map((mount) => ({\n    type: (mount.Type || 'volume') as VolumeType,\n    name: mount.Name || mount.Source || '',\n    containerPath: mount.Destination || '',\n    readOnly: mount.RW === false,\n  }));\n}\n\nexport function getDefaultViewModel(): Values {\n  return [];\n}\n","import { object, SchemaOf, array, string, mixed } from 'yup';\n\nimport { Values, VolumeType, volumeTypes } from './types';\n\nexport function validation(): SchemaOf<Values> {\n  return array(\n    object({\n      containerPath: string().required('Container path is required'),\n      type: mixed<VolumeType>()\n        .oneOf([...volumeTypes])\n        .default('volume'),\n      name: string().required('Volume name is required'),\n      readOnly: mixed<boolean>().default(false),\n    })\n  ).default([]);\n}\n","import {\n  EnvVarValues,\n  EnvironmentVariablesPanel,\n} from '@@/form-components/EnvironmentVariablesFieldset';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\nexport function EnvVarsTab({\n  values,\n  onChange,\n  errors,\n}: {\n  values: EnvVarValues;\n  onChange(value: EnvVarValues): void;\n  errors?: ArrayError<EnvVarValues>;\n}) {\n  return (\n    <div className=\"form-group\">\n      <EnvironmentVariablesPanel\n        values={values}\n        explanation=\"These values will be applied to the container when deployed\"\n        onChange={handleChange}\n        errors={errors}\n      />\n    </div>\n  );\n\n  function handleChange(values: EnvVarValues) {\n    onChange(values);\n  }\n}\n","import { envVarValidation } from '@@/form-components/EnvironmentVariablesFieldset';\n\nimport { toRequest } from './toRequest';\nimport { toViewModel, getDefaultViewModel } from './toViewModel';\n\nexport { EnvVarsTab } from './EnvVarsTab';\n\nexport const envVarsTabUtils = {\n  toRequest,\n  toViewModel,\n  validation: envVarValidation,\n  getDefaultViewModel,\n};\n","import { convertToArrayOfStrings } from '@@/form-components/EnvironmentVariablesFieldset/utils';\nimport { EnvVarValues } from '@@/form-components/EnvironmentVariablesFieldset';\n\nimport { CreateContainerRequest } from '../types';\n\nexport function toRequest(\n  oldConfig: CreateContainerRequest,\n  values: EnvVarValues\n): CreateContainerRequest {\n  return {\n    ...oldConfig,\n    Env: convertToArrayOfStrings(values),\n  };\n}\n","import { parseArrayOfStrings } from '@@/form-components/EnvironmentVariablesFieldset/utils';\n\nimport { ContainerJSON } from '../../queries/container';\n\nexport function getDefaultViewModel() {\n  return [];\n}\n\nexport function toViewModel(container: ContainerJSON) {\n  return parseArrayOfStrings(container.Config?.Env);\n}\n","import { Filters } from './types';\n\nexport const queryKeys = {\n  base: () => ['webhooks'] as const,\n  list: (filters: Filters) => [...queryKeys.base(), { filters }],\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\nimport { Filters, Webhook } from './types';\n\nexport function useWebhooks(\n  filters: Filters,\n  { enabled }: { enabled?: boolean } = {}\n) {\n  return useQuery(queryKeys.list(filters), () => getWebhooks(filters), {\n    enabled,\n  });\n}\n\nasync function getWebhooks(filters: Filters) {\n  try {\n    const { data } = await axios.get<Array<Webhook>>(buildUrl(), {\n      params: { filters: JSON.stringify(filters) },\n    });\n    return data;\n  } catch (err) {\n    throw parseAxiosError(err, 'failed fetching webhooks');\n  }\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nimport {\n  BaseFormValues,\n  baseFormUtils,\n} from '@/react/docker/containers/CreateView/BaseForm';\nimport {\n  CapabilitiesTabValues,\n  capabilitiesTabUtils,\n} from '@/react/docker/containers/CreateView/CapabilitiesTab';\nimport {\n  CommandsTabValues,\n  commandsTabUtils,\n} from '@/react/docker/containers/CreateView/CommandsTab';\nimport {\n  LabelsTabValues,\n  labelsTabUtils,\n} from '@/react/docker/containers/CreateView/LabelsTab';\nimport {\n  NetworkTabValues,\n  networkTabUtils,\n} from '@/react/docker/containers/CreateView/NetworkTab';\nimport {\n  ResourcesTabValues,\n  resourcesTabUtils,\n} from '@/react/docker/containers/CreateView/ResourcesTab';\nimport {\n  RestartPolicy,\n  restartPolicyTabUtils,\n} from '@/react/docker/containers/CreateView/RestartPolicyTab';\nimport {\n  VolumesTabValues,\n  volumesTabUtils,\n} from '@/react/docker/containers/CreateView/VolumesTab';\nimport { envVarsTabUtils } from '@/react/docker/containers/CreateView/EnvVarsTab';\nimport { UserId } from '@/portainer/users/types';\nimport { getImageConfig } from '@/react/portainer/registries/utils/getImageConfig';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { useWebhooks } from '@/react/portainer/webhooks/useWebhooks';\nimport { useEnvironmentRegistries } from '@/react/portainer/environments/queries/useEnvironmentRegistries';\n\nimport { EnvVarValues } from '@@/form-components/EnvironmentVariablesFieldset';\n\nimport { useNetworksForSelector } from '../components/NetworkSelector';\nimport { useContainers } from '../queries/containers';\nimport { useContainer } from '../queries/container';\n\nexport interface Values extends BaseFormValues {\n  commands: CommandsTabValues;\n  volumes: VolumesTabValues;\n  network: NetworkTabValues;\n  labels: LabelsTabValues;\n  restartPolicy: RestartPolicy;\n  resources: ResourcesTabValues;\n  capabilities: CapabilitiesTabValues;\n  env: EnvVarValues;\n}\n\nexport function useInitialValues(submitting: boolean, isWindows: boolean) {\n  const {\n    params: { nodeName, from },\n  } = useCurrentStateAndParams();\n  const environmentId = useEnvironmentId();\n  const { user, isPureAdmin } = useCurrentUser();\n\n  const networksQuery = useNetworksForSelector();\n\n  const fromContainerQuery = useContainer(environmentId, from, nodeName, {\n    enabled: !submitting,\n  });\n\n  const runningContainersQuery = useContainers(environmentId, {\n    enabled: !!from,\n  });\n  const webhookQuery = useWebhooks(\n    { endpointId: environmentId, resourceId: from },\n    { enabled: !!from }\n  );\n  const registriesQuery = useEnvironmentRegistries(environmentId, {\n    enabled: !!from,\n  });\n\n  if (!networksQuery.data) {\n    return null;\n  }\n\n  if (!from) {\n    return {\n      initialValues: defaultValues(isPureAdmin, user.Id, nodeName, isWindows),\n    };\n  }\n\n  const fromContainer = fromContainerQuery.data;\n  if (\n    !fromContainer ||\n    !registriesQuery.data ||\n    !runningContainersQuery.data ||\n    !webhookQuery.data\n  ) {\n    return null;\n  }\n\n  const network = networkTabUtils.toViewModel(\n    fromContainer,\n    networksQuery.data,\n    runningContainersQuery.data\n  );\n\n  const extraNetworks = Object.entries(\n    fromContainer.NetworkSettings?.Networks || {}\n  )\n    .filter(([n]) => n !== network.networkMode)\n    .map(([networkName, network]) => ({\n      networkName,\n      aliases: (network.Aliases || []).filter(\n        (o) => !fromContainer.Id?.startsWith(o)\n      ),\n    }));\n\n  const imageConfig = getImageConfig(\n    fromContainer?.Config?.Image || '',\n    registriesQuery.data\n  );\n\n  const initialValues: Values = {\n    commands: commandsTabUtils.toViewModel(fromContainer),\n    volumes: volumesTabUtils.toViewModel(fromContainer),\n    network: networkTabUtils.toViewModel(\n      fromContainer,\n      networksQuery.data,\n      runningContainersQuery.data\n    ),\n    labels: labelsTabUtils.toViewModel(fromContainer),\n    restartPolicy: restartPolicyTabUtils.toViewModel(fromContainer),\n    resources: resourcesTabUtils.toViewModel(fromContainer),\n    capabilities: capabilitiesTabUtils.toViewModel(fromContainer),\n    env: envVarsTabUtils.toViewModel(fromContainer),\n    ...baseFormUtils.toViewModel(\n      fromContainer,\n      isPureAdmin,\n      user.Id,\n      nodeName,\n      imageConfig,\n      (webhookQuery.data?.length || 0) > 0\n    ),\n  };\n\n  return { initialValues, isDuplicating: true, extraNetworks };\n}\n\nfunction defaultValues(\n  isPureAdmin: boolean,\n  currentUserId: UserId,\n  nodeName: string,\n  isWindows: boolean\n): Values {\n  return {\n    commands: commandsTabUtils.getDefaultViewModel(),\n    volumes: volumesTabUtils.getDefaultViewModel(),\n    network: networkTabUtils.getDefaultViewModel(isWindows), // windows containers should default to the nat network, not the bridge\n    labels: labelsTabUtils.getDefaultViewModel(),\n    restartPolicy: restartPolicyTabUtils.getDefaultViewModel(),\n    resources: resourcesTabUtils.getDefaultViewModel(),\n    capabilities: capabilitiesTabUtils.getDefaultViewModel(),\n    env: envVarsTabUtils.getDefaultViewModel(),\n    ...baseFormUtils.getDefaultViewModel(isPureAdmin, currentUserId, nodeName),\n  };\n}\n","import { Resources, RestartPolicy } from 'docker-types/generated/1.41';\nimport { RawAxiosRequestHeaders } from 'axios';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { urlBuilder } from '../containers.service';\n\n/**\n * UpdateConfig holds the mutable attributes of a Container.\n * Those attributes can be updated at runtime.\n */\ninterface UpdateConfig extends Resources {\n  // Contains container's resources (cgroups, ulimits)\n\n  RestartPolicy?: RestartPolicy;\n}\n\nexport async function updateContainer(\n  environmentId: EnvironmentId,\n  containerId: string,\n  config: UpdateConfig,\n  { nodeName }: { nodeName?: string } = {}\n) {\n  const headers: RawAxiosRequestHeaders = {};\n\n  if (nodeName) {\n    headers['X-PortainerAgent-Target'] = nodeName;\n  }\n\n  try {\n    await axios.post<{ Warnings: string[] }>(\n      urlBuilder(environmentId, containerId, 'update'),\n      config,\n      { headers }\n    );\n  } catch (err) {\n    throw parseAxiosError(err, 'failed updating container');\n  }\n}\n","import { Formik } from 'formik';\nimport { useMutation } from 'react-query';\nimport { useCurrentStateAndParams } from '@uirouter/react';\nimport { useState } from 'react';\nimport { FormikHelpers } from 'formik/dist/types';\n\nimport { invalidateContainer } from '@/react/docker/containers/queries/container';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { mutationOptions, withError } from '@/react-tools/react-query';\nimport { useSystemLimits } from '@/react/docker/proxy/queries/useInfo';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { LoadingButton } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { updateContainer } from '../../queries/useUpdateContainer';\n\nimport {\n  ResourceFieldset,\n  resourcesValidation,\n  Values,\n} from './ResourcesFieldset';\nimport { toConfigCpu, toConfigMemory } from './memory-utils';\n\nexport function EditResourcesForm({\n  onChange,\n  redeploy,\n  initialValues,\n  isImageInvalid,\n}: {\n  initialValues: Values;\n  onChange: (values: Values) => void;\n  redeploy: () => Promise<boolean>;\n  isImageInvalid: boolean;\n}) {\n  const {\n    params: { from: containerId },\n  } = useCurrentStateAndParams();\n\n  const [savedInitValues, setSavedInitValues] = useState(initialValues);\n\n  if (!containerId || typeof containerId !== 'string') {\n    throw new Error('missing parameter \"from\"');\n  }\n\n  const updateMutation = useMutation(\n    updateLimitsOrCreate,\n    mutationOptions(withError('Failed to update limits'))\n  );\n\n  const environmentId = useEnvironmentId();\n  const systemLimits = useSystemLimits(environmentId);\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={() => resourcesValidation(systemLimits)}\n    >\n      {({ values, errors, setValues, dirty, submitForm }) => (\n        <div className=\"edit-resources p-5\">\n          <ResourceFieldset\n            values={values}\n            onChange={(values) => {\n              onChange(values);\n              setValues(values);\n            }}\n            errors={errors}\n          />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12 flex items-center gap-4\">\n              <LoadingButton\n                isLoading={updateMutation.isLoading}\n                disabled={isImageInvalid || !dirty}\n                loadingText=\"Update in progress...\"\n                type=\"button\"\n                onClick={submitForm}\n              >\n                Update Limits\n              </LoadingButton>\n              {settingUnlimitedResources(values) && (\n                <TextTip>\n                  Updating any resource value to &apos;unlimited&apos; will\n                  redeploy this container.\n                </TextTip>\n              )}\n            </div>\n          </div>\n        </div>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit(values: Values, helper: FormikHelpers<Values>) {\n    updateMutation.mutate(values, {\n      onSuccess: (data) => {\n        if (data) {\n          notifySuccess('Success', 'Limits updated');\n          helper.resetForm({ values: initialValues });\n          invalidateContainer(environmentId, containerId);\n        }\n      },\n    });\n  }\n\n  function settingUnlimitedResources(values: Values) {\n    return (\n      (savedInitValues.limit > 0 && values.limit === 0) ||\n      (savedInitValues.reservation > 0 && values.reservation === 0) ||\n      (savedInitValues.cpu > 0 && values.cpu === 0)\n    );\n  }\n\n  // return true only if limits are updated\n  // return false otherwise(container recreated, user canceled container recreation, etc.)\n  async function updateLimitsOrCreate(values: Values) {\n    if (settingUnlimitedResources(values)) {\n      const ret = await redeploy();\n\n      if (ret === false) {\n        return false;\n      }\n\n      setSavedInitValues(values);\n      return false;\n    }\n\n    setSavedInitValues(values);\n    await updateLimits(environmentId, containerId, values);\n\n    return true;\n  }\n}\n\nasync function updateLimits(\n  environmentId: EnvironmentId,\n  containerId: string,\n  values: Values\n) {\n  return updateContainer(environmentId, containerId, {\n    // MemorySwap: must be set\n    // -1: non limits, 0: treated as unset(cause update error).\n    MemorySwap: -1,\n    MemoryReservation: toConfigMemory(values.reservation),\n    Memory: toConfigMemory(values.limit),\n    NanoCpus: toConfigCpu(values.cpu),\n  });\n}\n","import { useFormikContext, Form } from 'formik';\nimport { Settings } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useIsEnvironmentAdmin } from '@/react/hooks/useUser';\n\nimport { NavTabs } from '@@/NavTabs';\nimport { Widget } from '@@/Widget';\n\nimport { useApiVersion } from '../../proxy/queries/useVersion';\n\nimport { BaseForm } from './BaseForm';\nimport { CapabilitiesTab } from './CapabilitiesTab';\nimport { CommandsTab } from './CommandsTab';\nimport { LabelsTab } from './LabelsTab';\nimport { NetworkTab } from './NetworkTab';\nimport { ResourcesTab } from './ResourcesTab';\nimport { RestartPolicyTab } from './RestartPolicyTab';\nimport { VolumesTab } from './VolumesTab';\nimport { Values } from './useInitialValues';\nimport { EnvVarsTab } from './EnvVarsTab';\nimport { EditResourcesForm } from './ResourcesTab/EditResourceForm';\n\nexport function InnerForm({\n  hideCapabilities = false,\n  isLoading,\n  isDuplicate,\n  onChangeName,\n  onRateLimit,\n}: {\n  hideCapabilities: boolean;\n  isDuplicate: boolean;\n  isLoading: boolean;\n  onChangeName: (value: string) => void;\n  onRateLimit: (limited?: boolean) => void;\n}) {\n  const { values, setFieldValue, errors, submitForm } =\n    useFormikContext<Values>();\n  const environmentId = useEnvironmentId();\n  const [tab, setTab] = useState('commands');\n  const apiVersion = useApiVersion(environmentId);\n  const isEnvironmentAdminQuery = useIsEnvironmentAdmin({ adminOnlyCE: true });\n  const envQuery = useCurrentEnvironment();\n\n  if (!envQuery.data) {\n    return null;\n  }\n\n  const environment = envQuery.data;\n\n  return (\n    <Form className=\"form-horizontal\">\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <div>\n            <BaseForm\n              onChangeName={onChangeName}\n              onChangeImageName={() => {\n                setFieldValue('commands.cmd', null);\n                setFieldValue('commands.entrypoint', null);\n              }}\n              isLoading={isLoading}\n              onRateLimit={onRateLimit}\n            />\n\n            <div className=\"mt-4\">\n              <Widget>\n                <Widget.Title\n                  title=\"Advanced container settings\"\n                  icon={Settings}\n                />\n                <Widget.Body>\n                  <NavTabs<string>\n                    onSelect={setTab}\n                    selectedId={tab}\n                    type=\"pills\"\n                    justified\n                    options={[\n                      {\n                        id: 'commands',\n                        label: 'Commands & logging',\n                        children: (\n                          <CommandsTab\n                            apiVersion={apiVersion}\n                            values={values.commands}\n                            setFieldValue={(field, value) =>\n                              setFieldValue(`commands.${field}`, value)\n                            }\n                          />\n                        ),\n                      },\n                      {\n                        id: 'volumes',\n                        label: 'Volumes',\n                        children: (\n                          <VolumesTab\n                            values={values.volumes}\n                            onChange={(value) =>\n                              setFieldValue('volumes', value)\n                            }\n                            errors={errors.volumes}\n                            allowBindMounts={\n                              isEnvironmentAdminQuery.authorized ||\n                              environment.SecuritySettings\n                                .allowBindMountsForRegularUsers\n                            }\n                          />\n                        ),\n                      },\n                      {\n                        id: 'network',\n                        label: 'Network',\n                        children: (\n                          <NetworkTab\n                            values={values.network}\n                            setFieldValue={(field, value) =>\n                              setFieldValue(`network.${field}`, value)\n                            }\n                          />\n                        ),\n                      },\n                      {\n                        id: 'env',\n                        label: 'Env',\n                        children: (\n                          <EnvVarsTab\n                            values={values.env}\n                            onChange={(value) => setFieldValue('env', value)}\n                            errors={errors.env}\n                          />\n                        ),\n                      },\n                      {\n                        id: 'labels',\n                        label: 'Labels',\n                        children: (\n                          <LabelsTab\n                            values={values.labels}\n                            onChange={(value) => setFieldValue('labels', value)}\n                            errors={errors.labels}\n                          />\n                        ),\n                      },\n                      {\n                        id: 'restart',\n                        label: 'Restart policy',\n                        children: (\n                          <RestartPolicyTab\n                            values={values.restartPolicy}\n                            onChange={(value) =>\n                              setFieldValue('restartPolicy', value)\n                            }\n                          />\n                        ),\n                      },\n                      {\n                        id: 'runtime',\n                        label: 'Runtime & resources',\n                        children: (\n                          <ResourcesTab\n                            values={values.resources}\n                            errors={errors.resources}\n                            setFieldValue={(field, value) =>\n                              setFieldValue(`resources.${field}`, value)\n                            }\n                            allowPrivilegedMode={\n                              isEnvironmentAdminQuery.authorized ||\n                              environment.SecuritySettings\n                                .allowPrivilegedModeForRegularUsers\n                            }\n                            isDevicesFieldVisible={\n                              isEnvironmentAdminQuery.authorized ||\n                              environment.SecuritySettings\n                                .allowDeviceMappingForRegularUsers\n                            }\n                            isInitFieldVisible={apiVersion >= 1.37}\n                            isSysctlFieldVisible={\n                              isEnvironmentAdminQuery.authorized ||\n                              environment.SecuritySettings\n                                .allowSysctlSettingForRegularUsers\n                            }\n                            renderLimits={\n                              isDuplicate\n                                ? (values) => (\n                                    <EditResourcesForm\n                                      initialValues={values}\n                                      onChange={(values) => {\n                                        setFieldValue(\n                                          'resources.resources',\n                                          values\n                                        );\n                                      }}\n                                      redeploy={submitForm}\n                                      isImageInvalid={!!errors?.image}\n                                    />\n                                  )\n                                : undefined\n                            }\n                          />\n                        ),\n                      },\n                      {\n                        id: 'capabilities',\n                        label: 'Capabilities',\n                        hidden: hideCapabilities,\n                        children: (\n                          <CapabilitiesTab\n                            values={values.capabilities}\n                            onChange={(value) =>\n                              setFieldValue('capabilities', value)\n                            }\n                          />\n                        ),\n                      },\n                    ]}\n                  />\n                </Widget.Body>\n              </Widget>\n            </div>\n          </div>\n        </div>\n      </div>\n    </Form>\n  );\n}\n","import { Registry } from '@/react/portainer/registries/types/registry';\nimport { buildImageFullURI } from '@/react/docker/images/utils';\n\nimport { baseFormUtils } from './BaseForm';\nimport { capabilitiesTabUtils } from './CapabilitiesTab';\nimport { commandsTabUtils } from './CommandsTab';\nimport { labelsTabUtils } from './LabelsTab';\nimport { networkTabUtils } from './NetworkTab';\nimport { resourcesTabUtils } from './ResourcesTab';\nimport { volumesTabUtils } from './VolumesTab';\nimport { CreateContainerRequest } from './types';\nimport { restartPolicyTabUtils } from './RestartPolicyTab';\nimport { envVarsTabUtils } from './EnvVarsTab';\nimport { Values } from './useInitialValues';\n\nexport function toRequest(\n  values: Values,\n  registry?: Registry,\n  ignoreCapabilities?: boolean\n) {\n  let config: CreateContainerRequest = {\n    HostConfig: {},\n    NetworkingConfig: {},\n  };\n\n  config = commandsTabUtils.toRequest(config, values.commands);\n  config = volumesTabUtils.toRequest(config, values.volumes);\n  config = networkTabUtils.toRequest(config, values.network, '');\n  config = labelsTabUtils.toRequest(config, values.labels);\n  config = restartPolicyTabUtils.toRequest(config, values.restartPolicy);\n  config = resourcesTabUtils.toRequest(config, values.resources);\n  config = capabilitiesTabUtils.toRequest(\n    config,\n    values.capabilities,\n    !!ignoreCapabilities\n  );\n  config = baseFormUtils.toRequest(config, values);\n  config = envVarsTabUtils.toRequest(config, values.env);\n  config.Image = buildImageFullURI(values.image.image, registry);\n\n  return config;\n}\n","import { Formik } from 'formik';\nimport { useRouter } from '@uirouter/react';\nimport { useEffect, useState } from 'react';\n\nimport { useIsEdgeAdmin, useIsEnvironmentAdmin } from '@/react/hooks/useUser';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { useEnvironmentRegistries } from '@/react/portainer/environments/queries/useEnvironmentRegistries';\nimport { Registry } from '@/react/portainer/registries/types/registry';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\nimport { useDebouncedValue } from '@/react/hooks/useDebouncedValue';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { ImageConfigValues } from '@@/ImageConfigFieldset';\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { InformationPanel } from '@@/InformationPanel';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { HelpLink } from '@@/HelpLink';\n\nimport { useContainers } from '../queries/containers';\nimport { useSystemLimits, useIsWindows } from '../../proxy/queries/useInfo';\n\nimport { useCreateOrReplaceMutation } from './useCreateMutation';\nimport { useValidation } from './validation';\nimport { useInitialValues, Values } from './useInitialValues';\nimport { InnerForm } from './InnerForm';\nimport { toRequest } from './toRequest';\n\nexport function CreateView() {\n  return (\n    <>\n      <PageHeader\n        title=\"Create container\"\n        breadcrumbs={[\n          { label: 'Containers', link: 'docker.containers' },\n          'Add container',\n        ]}\n        reload\n      />\n\n      <CreateForm />\n    </>\n  );\n}\n\nfunction CreateForm() {\n  const environmentId = useEnvironmentId();\n  const router = useRouter();\n  const isWindows = useIsWindows(environmentId);\n  const { trackEvent } = useAnalytics();\n  const isAdminQuery = useIsEdgeAdmin();\n  const { authorized: isEnvironmentAdmin } = useIsEnvironmentAdmin({\n    adminOnlyCE: true,\n  });\n  const [isDockerhubRateLimited, setIsDockerhubRateLimited] = useState(false);\n\n  const mutation = useCreateOrReplaceMutation();\n  const initialValuesQuery = useInitialValues(\n    mutation.isLoading || mutation.isSuccess,\n    isWindows\n  );\n  const registriesQuery = useEnvironmentRegistries(environmentId);\n\n  const { oldContainer, syncName } = useOldContainer(\n    initialValuesQuery?.initialValues?.name\n  );\n\n  const { maxCpu, maxMemory } = useSystemLimits(environmentId);\n\n  const envQuery = useCurrentEnvironment();\n\n  const validationSchema = useValidation({\n    isAdmin: isAdminQuery.isAdmin,\n    maxCpu,\n    maxMemory,\n    isDuplicating: initialValuesQuery?.isDuplicating,\n    isDuplicatingPortainer: oldContainer?.IsPortainer,\n    isDockerhubRateLimited,\n  });\n\n  if (!envQuery.data || !initialValuesQuery) {\n    return null;\n  }\n\n  const environment = envQuery.data;\n\n  // if windows, hide capabilities. this is because capadd and capdel are not supported on windows\n  const hideCapabilities =\n    (!environment.SecuritySettings.allowContainerCapabilitiesForRegularUsers &&\n      !isEnvironmentAdmin) ||\n    isWindows;\n\n  const {\n    isDuplicating = false,\n    initialValues,\n    extraNetworks,\n  } = initialValuesQuery;\n\n  return (\n    <>\n      {isDuplicating && (\n        <InformationPanel title-text=\"Caution\">\n          <TextTip>\n            The new container may fail to start if the image is changed, and\n            settings from the previous container aren&apos;t compatible. Common\n            causes include entrypoint, cmd or{' '}\n            <HelpLink docLink=\"/user/docker/containers/advanced\">\n              other settings\n            </HelpLink>{' '}\n            set by an image.\n          </TextTip>\n        </InformationPanel>\n      )}\n\n      <Formik\n        initialValues={initialValues}\n        onSubmit={handleSubmit}\n        validateOnMount\n        validationSchema={validationSchema}\n      >\n        <InnerForm\n          hideCapabilities={hideCapabilities}\n          onChangeName={syncName}\n          isDuplicate={isDuplicating}\n          isLoading={mutation.isLoading}\n          onRateLimit={(limited = false) => setIsDockerhubRateLimited(limited)}\n        />\n      </Formik>\n    </>\n  );\n\n  async function handleSubmit(values: Values) {\n    if (oldContainer) {\n      const confirmed = await confirmDestructive({\n        title: 'Are you sure?',\n        message:\n          'A container with the same name already exists. Portainer can automatically remove it and re-create one. Do you want to replace it?',\n        confirmButton: buildConfirmButton('Replace', 'danger'),\n      });\n\n      if (!confirmed) {\n        return false;\n      }\n    }\n\n    const registry = getRegistry(values.image, registriesQuery.data || []);\n    const config = toRequest(values, registry, hideCapabilities);\n\n    return mutation.mutate(\n      { config, environment, values, registry, oldContainer, extraNetworks },\n      {\n        onSuccess() {\n          sendAnalytics(values, registry);\n          notifySuccess('Success', 'Container successfully created');\n          router.stateService.go('docker.containers');\n        },\n      }\n    );\n  }\n\n  function sendAnalytics(values: Values, registry?: Registry) {\n    const containerImage = registry?.URL\n      ? `${registry?.URL}/${values.image}`\n      : values.image;\n    if (values.resources.gpu.enabled) {\n      trackEvent('gpuContainerCreated', {\n        category: 'docker',\n        metadata: { gpu: values.resources.gpu, containerImage },\n      });\n    }\n  }\n}\n\nfunction getRegistry(image: ImageConfigValues, registries: Registry[]) {\n  return image.useRegistry\n    ? registries.find((registry) => registry.Id === image.registryId)\n    : undefined;\n}\n\nfunction useOldContainer(initialName?: string) {\n  const environmentId = useEnvironmentId();\n\n  const [name, setName] = useState(initialName);\n  const debouncedName = useDebouncedValue(name, 1000);\n  const oldContainerQuery = useContainers(environmentId, {\n    enabled: !!debouncedName,\n    filters: {\n      name: [`^/${debouncedName}$`],\n    },\n  });\n\n  useEffect(() => {\n    setName(initialName);\n  }, [initialName]);\n\n  return {\n    syncName: setName,\n    oldContainer:\n      oldContainerQuery.data && oldContainerQuery.data.length > 0\n        ? oldContainerQuery.data[0]\n        : undefined,\n  };\n}\n","import { Registry, RegistryId, RegistryTypes } from '../types/registry';\n\nimport { getURL } from './getUrl';\n\n/**\n *  findBestMatchRegistry finds out the best match registry for repository\n * matching precedence:\n * 1. registryId matched\n * 2. both domain name and username matched (for dockerhub only)\n * 3. only URL matched\n * 4. pick up the first dockerhub registry\n */\nexport function findBestMatchRegistry(\n  repository: string,\n  registries: Array<Registry>,\n  registryId?: RegistryId\n) {\n  if (registryId) {\n    return registries.find((r) => r.Id === registryId);\n  }\n\n  const matchDockerByUserAndUrl = registries.find(\n    (r) =>\n      r.Type === RegistryTypes.DOCKERHUB &&\n      (repository.startsWith(`${r.Username}/`) ||\n        repository.startsWith(`${getURL(r)}/${r.Username}/`))\n  );\n\n  if (matchDockerByUserAndUrl) {\n    return matchDockerByUserAndUrl;\n  }\n\n  const matchByUrl = registries.find((r) => repository.startsWith(getURL(r)));\n\n  if (matchByUrl) {\n    return matchByUrl;\n  }\n\n  return registries.find((r) => r.Type === RegistryTypes.DOCKERHUB);\n}\n","import { useEffect, useState } from 'react';\n\nexport function useDebouncedValue<T>(value: T, delay = 500): T {\n  const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n  useEffect(() => {\n    const timer = setTimeout(() => setDebouncedValue(value), delay);\n\n    return () => {\n      clearTimeout(timer);\n    };\n  }, [value, delay]);\n\n  return debouncedValue;\n}\n","import { object, SchemaOf } from 'yup';\nimport { useMemo } from 'react';\n\nimport { baseFormUtils } from './BaseForm';\nimport { capabilitiesTabUtils } from './CapabilitiesTab';\nimport { commandsTabUtils } from './CommandsTab';\nimport { labelsTabUtils } from './LabelsTab';\nimport { networkTabUtils } from './NetworkTab';\nimport { resourcesTabUtils } from './ResourcesTab';\nimport { restartPolicyTabUtils } from './RestartPolicyTab';\nimport { volumesTabUtils } from './VolumesTab';\nimport { envVarsTabUtils } from './EnvVarsTab';\nimport { Values } from './useInitialValues';\n\nexport function useValidation({\n  isAdmin,\n  maxCpu,\n  maxMemory,\n  isDuplicating,\n  isDuplicatingPortainer,\n  isDockerhubRateLimited,\n}: {\n  isAdmin: boolean;\n  maxCpu: number;\n  maxMemory: number;\n  isDuplicating: boolean | undefined;\n  isDuplicatingPortainer: boolean | undefined;\n  isDockerhubRateLimited: boolean;\n}): SchemaOf<Values> {\n  return useMemo(\n    () =>\n      object({\n        commands: commandsTabUtils.validation(),\n        volumes: volumesTabUtils.validation(),\n        network: networkTabUtils.validation(),\n        labels: labelsTabUtils.validation(),\n        restartPolicy: restartPolicyTabUtils.validation(),\n        resources: resourcesTabUtils.validation({ maxCpu, maxMemory }),\n        capabilities: capabilitiesTabUtils.validation(),\n        env: envVarsTabUtils.validation(),\n      }).concat(\n        baseFormUtils.validation({\n          isAdmin,\n          isDuplicating,\n          isDuplicatingPortainer,\n          isDockerhubRateLimited,\n        })\n      ),\n    [\n      isAdmin,\n      isDockerhubRateLimited,\n      isDuplicating,\n      isDuplicatingPortainer,\n      maxCpu,\n      maxMemory,\n    ]\n  );\n}\n","const autoNgTemplateLoaderTemplate1 = require('@/docker/views/containers/edit/container.html');\nconst autoNgTemplateLoaderTemplate2 = require('@/docker/views/containers/console/attach.html');\nconst autoNgTemplateLoaderTemplate3 = require('@/docker/views/containers/console/exec.html');\nconst autoNgTemplateLoaderTemplate4 = require('@/docker/views/containers/inspect/containerinspect.html');\nconst autoNgTemplateLoaderTemplate5 = require('@/docker/views/containers/logs/containerlogs.html');\nconst autoNgTemplateLoaderTemplate6 = require('@/docker/views/containers/stats/containerstats.html');\n\nimport { StateRegistry } from '@uirouter/angularjs';\nimport angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { ListView } from '@/react/docker/containers/ListView';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { LogView } from '@/react/docker/containers/LogView';\nimport { CreateView } from '@/react/docker/containers/CreateView';\n\nexport const containersModule = angular\n  .module('portainer.docker.react.views.containers', [])\n  .component(\n    'createContainerView',\n    r2a(withUIRouter(withCurrentUser(CreateView)), [])\n  )\n  .component(\n    'containersView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), ['endpoint'])\n  )\n  // the view only contains the information panel when logging is disabled\n  // this is a temporary solution to avoid creating a publicly exposed component\n  // or an AngularJS component until the logs view is migrated to React\n  .component(\n    'containerLogView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(LogView))), [])\n  )\n\n  .config(config).name;\n\n/* @ngInject */\nfunction config($stateRegistryProvider: StateRegistry) {\n  $stateRegistryProvider.register({\n    name: 'docker.containers',\n    url: '/containers',\n    views: {\n      'content@': {\n        component: 'containersView',\n      },\n    },\n    data: {\n      docs: '/user/docker/containers',\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'docker.containers.container',\n    url: '/:id?nodeName',\n    views: {\n      'content@': {\n        templateUrl: autoNgTemplateLoaderTemplate1,\n        controller: 'ContainerController',\n      },\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'docker.containers.container.attach',\n    url: '/attach',\n    views: {\n      'content@': {\n        templateUrl: autoNgTemplateLoaderTemplate2,\n        controller: 'ContainerConsoleController',\n      },\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'docker.containers.container.exec',\n    url: '/exec',\n    views: {\n      'content@': {\n        templateUrl: autoNgTemplateLoaderTemplate3,\n        controller: 'ContainerConsoleController',\n      },\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'docker.containers.new',\n    url: '/new?nodeName&from',\n    views: {\n      'content@': {\n        component: 'createContainerView',\n      },\n    },\n    data: {\n      docs: '/user/docker/containers/add',\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'docker.containers.container.inspect',\n    url: '/inspect',\n    views: {\n      'content@': {\n        templateUrl: autoNgTemplateLoaderTemplate4,\n        controller: 'ContainerInspectController',\n      },\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'docker.containers.container.logs',\n    url: '/logs',\n    views: {\n      'content@': {\n        templateUrl: autoNgTemplateLoaderTemplate5,\n        controller: 'ContainerLogsController',\n      },\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'docker.containers.container.stats',\n    url: '/stats',\n    views: {\n      'content@': {\n        templateUrl: autoNgTemplateLoaderTemplate6,\n        controller: 'ContainerStatsController',\n      },\n    },\n  });\n}\n","import { useInfo } from '@/react/docker/proxy/queries/useInfo';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { isAgentEnvironment } from '@/react/portainer/environments/utils';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { ContainersDatatable } from './ContainersDatatable';\n\ninterface Props {\n  endpoint: Environment;\n}\n\nexport function ListView({ endpoint: environment }: Props) {\n  const isAgent = isAgentEnvironment(environment.Type);\n\n  const envInfoQuery = useInfo(environment.Id, (info) => !!info.Swarm?.NodeID);\n\n  const isSwarmManager = !!envInfoQuery.data;\n  const isHostColumnVisible = isAgent && isSwarmManager;\n  return (\n    <>\n      <PageHeader\n        title=\"Container list\"\n        breadcrumbs={[{ label: 'Containers' }]}\n        reload\n      />\n\n      <ContainersDatatable\n        isHostColumnVisible={isHostColumnVisible}\n        environment={environment}\n      />\n    </>\n  );\n}\n","import angular from 'angular';\n\nimport { ItemView as NetworksItemView } from '@/react/docker/networks/ItemView';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\n\nimport { containersModule } from './containers';\n\nexport const viewsModule = angular\n  .module('portainer.docker.react.views', [containersModule])\n\n  .component(\n    'networkDetailsView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(NetworksItemView))), [])\n  ).name;\n","import angular from 'angular';\n\nimport { componentsModule } from './components';\nimport { viewsModule } from './views';\n\nexport const reactModule = angular.module('portainer.docker.react', [\n  viewsModule,\n  componentsModule,\n]).name;\n","const autoNgTemplateLoaderTemplate1 = require('./views/configs/configs.html');\nconst autoNgTemplateLoaderTemplate2 = require('./views/configs/edit/config.html');\nconst autoNgTemplateLoaderTemplate3 = require('./views/configs/create/createconfig.html');\nconst autoNgTemplateLoaderTemplate4 = require('./views/dashboard/dashboard.html');\nconst autoNgTemplateLoaderTemplate5 = require('./views/events/events.html');\nconst autoNgTemplateLoaderTemplate6 = require('./views/images/images.html');\nconst autoNgTemplateLoaderTemplate7 = require('./views/images/edit/image.html');\nconst autoNgTemplateLoaderTemplate8 = require('./views/images/build/buildimage.html');\nconst autoNgTemplateLoaderTemplate9 = require('./views/images/import/importimage.html');\nconst autoNgTemplateLoaderTemplate10 = require('./views/networks/networks.html');\nconst autoNgTemplateLoaderTemplate11 = require('./views/networks/create/createnetwork.html');\nconst autoNgTemplateLoaderTemplate12 = require('./views/secrets/secrets.html');\nconst autoNgTemplateLoaderTemplate13 = require('./views/secrets/edit/secret.html');\nconst autoNgTemplateLoaderTemplate14 = require('./views/secrets/create/createsecret.html');\nconst autoNgTemplateLoaderTemplate15 = require('./views/services/services.html');\nconst autoNgTemplateLoaderTemplate16 = require('./views/services/edit/service.html');\nconst autoNgTemplateLoaderTemplate17 = require('./views/services/create/createservice.html');\nconst autoNgTemplateLoaderTemplate18 = require('./views/services/logs/servicelogs.html');\nconst autoNgTemplateLoaderTemplate19 = require('Portainer/views/stacks/stacks.html');\nconst autoNgTemplateLoaderTemplate20 = require('Portainer/views/stacks/edit/stack.html');\nconst autoNgTemplateLoaderTemplate21 = require('@/docker/views/containers/edit/container.html');\nconst autoNgTemplateLoaderTemplate22 = require('Portainer/views/stacks/create/createstack.html');\nconst autoNgTemplateLoaderTemplate23 = require('./views/swarm/swarm.html');\nconst autoNgTemplateLoaderTemplate24 = require('./views/swarm/visualizer/swarmvisualizer.html');\nconst autoNgTemplateLoaderTemplate25 = require('./views/tasks/edit/task.html');\nconst autoNgTemplateLoaderTemplate26 = require('./views/tasks/logs/tasklogs.html');\nconst autoNgTemplateLoaderTemplate27 = require('Portainer/views/templates/templates.html');\nconst autoNgTemplateLoaderTemplate28 = require('./views/volumes/volumes.html');\nconst autoNgTemplateLoaderTemplate29 = require('./views/volumes/edit/volume.html');\nconst autoNgTemplateLoaderTemplate30 = require('./views/volumes/browse/browsevolume.html');\nconst autoNgTemplateLoaderTemplate31 = require('./views/volumes/create/createvolume.html');\n\nimport angular from 'angular';\n\nimport { PortainerEndpointTypes } from 'Portainer/models/endpoint/models';\n\nimport { EnvironmentStatus } from '@/react/portainer/environments/types';\n\nimport { reactModule } from './react';\n\nangular.module('portainer.docker', ['portainer.app', reactModule]).config([\n  '$stateRegistryProvider',\n  function ($stateRegistryProvider) {\n    'use strict';\n\n    var docker = {\n      name: 'docker',\n      parent: 'endpoint',\n      url: '/docker',\n      abstract: true,\n      onEnter: /* @ngInject */ function onEnter(endpoint, $async, $state, EndpointService, Notifications, StateManager, SystemService, EndpointProvider) {\n        return $async(async () => {\n          const dockerTypes = [PortainerEndpointTypes.DockerEnvironment, PortainerEndpointTypes.AgentOnDockerEnvironment, PortainerEndpointTypes.EdgeAgentOnDockerEnvironment];\n\n          if (!dockerTypes.includes(endpoint.Type)) {\n            $state.go('portainer.home');\n            return;\n          }\n\n          try {\n            const status = await checkEndpointStatus(endpoint);\n\n            if (endpoint.Type !== PortainerEndpointTypes.EdgeAgentOnDockerEnvironment) {\n              await updateEndpointStatus(endpoint, status);\n            }\n            endpoint.Status = status;\n\n            if (status === EnvironmentStatus.Down) {\n              throw new Error(`The environment named ${endpoint.Name} is unreachable.`);\n            }\n\n            await StateManager.updateEndpointState(endpoint);\n          } catch (e) {\n            let params = {};\n\n            if (endpoint.Type == PortainerEndpointTypes.EdgeAgentOnDockerEnvironment) {\n              params = { redirect: true, environmentId: endpoint.Id, environmentName: endpoint.Name, route: 'docker.dashboard' };\n            } else {\n              EndpointProvider.clean();\n              Notifications.error('Failed loading environment', e);\n            }\n            $state.go('portainer.home', params, { reload: true, inherit: false });\n            return false;\n          }\n\n          async function checkEndpointStatus(endpoint) {\n            try {\n              await SystemService.ping(endpoint.Id);\n              return EnvironmentStatus.Up;\n            } catch (e) {\n              return EnvironmentStatus.Down;\n            }\n          }\n\n          async function updateEndpointStatus(endpoint, status) {\n            if (endpoint.Status === status) {\n              return;\n            }\n            await EndpointService.updateEndpoint(endpoint.Id, { Status: status });\n          }\n        });\n      },\n    };\n\n    var configs = {\n      name: 'docker.configs',\n      url: '/configs',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate1,\n          controller: 'ConfigsController',\n          controllerAs: 'ctrl',\n        },\n      },\n      data: {\n        docs: '/user/docker/configs',\n      },\n    };\n\n    var config = {\n      name: 'docker.configs.config',\n      url: '/:id',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate2,\n          controller: 'ConfigController',\n        },\n      },\n    };\n\n    var configCreation = {\n      name: 'docker.configs.new',\n      url: '/new?id',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate3,\n          controller: 'CreateConfigController',\n          controllerAs: 'ctrl',\n        },\n      },\n      data: {\n        docs: '/user/docker/configs/add',\n      },\n    };\n\n    const customTemplates = {\n      name: 'docker.templates.custom',\n      url: '/custom',\n\n      views: {\n        'content@': {\n          component: 'customTemplatesView',\n        },\n      },\n      data: {\n        docs: '/user/docker/templates/custom',\n      },\n    };\n\n    const customTemplatesNew = {\n      name: 'docker.templates.custom.new',\n      url: '/new?fileContent&appTemplateId&type',\n\n      views: {\n        'content@': {\n          component: 'createCustomTemplatesView',\n        },\n      },\n    };\n\n    const customTemplatesEdit = {\n      name: 'docker.templates.custom.edit',\n      url: '/:id',\n\n      views: {\n        'content@': {\n          component: 'editCustomTemplatesView',\n        },\n      },\n    };\n\n    var dashboard = {\n      name: 'docker.dashboard',\n      url: '/dashboard',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate4,\n          controller: 'DashboardController',\n        },\n      },\n      data: {\n        docs: '/user/docker/dashboard',\n      },\n    };\n\n    var host = {\n      name: 'docker.host',\n      url: '/host',\n      views: {\n        'content@': {\n          component: 'hostView',\n        },\n      },\n      data: {\n        docs: '/user/docker/host/details',\n      },\n    };\n\n    var hostBrowser = {\n      name: 'docker.host.browser',\n      url: '/browser',\n      views: {\n        'content@': {\n          component: 'hostBrowserView',\n        },\n      },\n    };\n\n    var events = {\n      name: 'docker.events',\n      url: '/events',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate5,\n          controller: 'EventsController',\n        },\n      },\n      data: {\n        docs: '/user/docker/events',\n      },\n    };\n\n    var images = {\n      name: 'docker.images',\n      url: '/images',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate6,\n          controller: 'ImagesController',\n        },\n      },\n      data: {\n        docs: '/user/docker/images',\n      },\n    };\n\n    var image = {\n      name: 'docker.images.image',\n      url: '/:id?nodeName',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate7,\n          controller: 'ImageController',\n        },\n      },\n    };\n\n    var imageBuild = {\n      name: 'docker.images.build',\n      url: '/build',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate8,\n          controller: 'BuildImageController',\n        },\n      },\n      data: {\n        docs: '/user/docker/images/build',\n      },\n    };\n\n    var imageImport = {\n      name: 'docker.images.import',\n      url: '/import',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate9,\n          controller: 'ImportImageController',\n        },\n      },\n      data: {\n        docs: '/user/docker/images/import',\n      },\n    };\n\n    var networks = {\n      name: 'docker.networks',\n      url: '/networks',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate10,\n          controller: 'NetworksController',\n        },\n      },\n      data: {\n        docs: '/user/docker/networks',\n      },\n    };\n\n    var network = {\n      name: 'docker.networks.network',\n      url: '/:id?nodeName',\n      views: {\n        'content@': {\n          component: 'networkDetailsView',\n        },\n      },\n    };\n\n    var networkCreation = {\n      name: 'docker.networks.new',\n      url: '/new',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate11,\n          controller: 'CreateNetworkController',\n        },\n      },\n      data: {\n        docs: '/user/docker/networks/add',\n      },\n    };\n\n    var nodes = {\n      name: 'docker.nodes',\n      url: '/nodes',\n      abstract: true,\n      data: {\n        docs: '/user/docker/swarm/details',\n      },\n    };\n\n    var node = {\n      name: 'docker.nodes.node',\n      url: '/:id',\n      views: {\n        'content@': {\n          component: 'nodeDetailsView',\n        },\n      },\n    };\n\n    var nodeBrowser = {\n      name: 'docker.nodes.node.browse',\n      url: '/browse',\n      views: {\n        'content@': {\n          component: 'nodeBrowserView',\n        },\n      },\n    };\n\n    var secrets = {\n      name: 'docker.secrets',\n      url: '/secrets',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate12,\n          controller: 'SecretsController',\n        },\n      },\n      data: {\n        docs: '/user/docker/secrets',\n      },\n    };\n\n    var secret = {\n      name: 'docker.secrets.secret',\n      url: '/:id',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate13,\n          controller: 'SecretController',\n        },\n      },\n    };\n\n    var secretCreation = {\n      name: 'docker.secrets.new',\n      url: '/new',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate14,\n          controller: 'CreateSecretController',\n        },\n      },\n      data: {\n        docs: '/user/docker/secrets/add',\n      },\n    };\n\n    var services = {\n      name: 'docker.services',\n      url: '/services',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate15,\n          controller: 'ServicesController',\n        },\n      },\n      data: {\n        docs: '/user/docker/services',\n      },\n    };\n\n    var service = {\n      name: 'docker.services.service',\n      url: '/:id',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate16,\n          controller: 'ServiceController',\n        },\n      },\n    };\n\n    var serviceCreation = {\n      name: 'docker.services.new',\n      url: '/new',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate17,\n          controller: 'CreateServiceController',\n        },\n      },\n      data: {\n        docs: '/user/docker/stacks/add',\n      },\n    };\n\n    var serviceLogs = {\n      name: 'docker.services.service.logs',\n      url: '/logs',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate18,\n          controller: 'ServiceLogsController',\n        },\n      },\n    };\n\n    var stacks = {\n      name: 'docker.stacks',\n      url: '/stacks',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate19,\n          controller: 'StacksController',\n        },\n      },\n      data: {\n        docs: '/user/docker/stacks',\n      },\n    };\n\n    var stack = {\n      name: 'docker.stacks.stack',\n      url: '/:name?id&type&regular&external&orphaned&orphanedRunning',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate20,\n          controller: 'StackController',\n        },\n      },\n    };\n\n    var stackContainer = {\n      name: 'docker.stacks.stack.container',\n      url: '/:id?nodeName',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate21,\n          controller: 'ContainerController',\n        },\n      },\n    };\n\n    var stackCreation = {\n      name: 'docker.stacks.newstack',\n      url: '/newstack',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate22,\n          controller: 'CreateStackController',\n        },\n      },\n    };\n\n    var swarm = {\n      name: 'docker.swarm',\n      url: '/swarm',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate23,\n          controller: 'SwarmController',\n        },\n      },\n      data: {\n        docs: '/user/docker/swarm/details',\n      },\n    };\n\n    var swarmVisualizer = {\n      name: 'docker.swarm.visualizer',\n      url: '/visualizer',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate24,\n          controller: 'SwarmVisualizerController',\n        },\n      },\n      data: {\n        docs: '/user/docker/swarm/cluster-visualizer',\n      },\n    };\n\n    var tasks = {\n      name: 'docker.tasks',\n      url: '/tasks',\n      abstract: true,\n    };\n\n    var task = {\n      name: 'docker.tasks.task',\n      url: '/:id',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate25,\n          controller: 'TaskController',\n        },\n      },\n    };\n\n    var taskLogs = {\n      name: 'docker.tasks.task.logs',\n      url: '/logs',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate26,\n          controller: 'TaskLogsController',\n        },\n      },\n    };\n\n    var templates = {\n      name: 'docker.templates',\n      url: '/templates',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate27,\n          controller: 'TemplatesController',\n        },\n      },\n      data: {\n        docs: '/user/docker/templates/application',\n      },\n    };\n\n    var volumes = {\n      name: 'docker.volumes',\n      url: '/volumes',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate28,\n          controller: 'VolumesController',\n        },\n      },\n      data: {\n        docs: '/user/docker/volumes',\n      },\n    };\n\n    var volume = {\n      name: 'docker.volumes.volume',\n      url: '/:id?nodeName',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate29,\n          controller: 'VolumeController',\n        },\n      },\n    };\n\n    var volumeBrowse = {\n      name: 'docker.volumes.volume.browse',\n      url: '/browse',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate30,\n          controller: 'BrowseVolumeController',\n        },\n      },\n    };\n\n    var volumeCreation = {\n      name: 'docker.volumes.new',\n      url: '/new',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate31,\n          controller: 'CreateVolumeController',\n        },\n      },\n      data: {\n        docs: '/user/docker/volumes/add',\n      },\n    };\n\n    const dockerFeaturesConfiguration = {\n      name: 'docker.host.featuresConfiguration',\n      url: '/feat-config',\n      views: {\n        'content@': {\n          component: 'dockerFeaturesConfigurationView',\n        },\n      },\n      data: {\n        docs: '/user/docker/host/setup',\n      },\n    };\n\n    const swarmFeaturesConfiguration = {\n      name: 'docker.swarm.featuresConfiguration',\n      url: '/feat-config',\n      views: {\n        'content@': {\n          component: 'dockerFeaturesConfigurationView',\n        },\n      },\n      data: {\n        docs: '/user/docker/swarm/setup',\n      },\n    };\n\n    const dockerRegistries = {\n      name: 'docker.host.registries',\n      url: '/registries',\n      views: {\n        'content@': {\n          component: 'endpointRegistriesView',\n        },\n      },\n      data: {\n        docs: '/user/docker/host/registries',\n      },\n    };\n\n    const swarmRegistries = {\n      name: 'docker.swarm.registries',\n      url: '/registries',\n      views: {\n        'content@': {\n          component: 'endpointRegistriesView',\n        },\n      },\n      data: {\n        docs: '/user/docker/swarm/registries',\n      },\n    };\n\n    const dockerRegistryAccess = {\n      name: 'docker.host.registries.access',\n      url: '/:id/access',\n      views: {\n        'content@': {\n          component: 'dockerRegistryAccessView',\n        },\n      },\n    };\n\n    const swarmRegistryAccess = {\n      name: 'docker.swarm.registries.access',\n      url: '/:id/access',\n      views: {\n        'content@': {\n          component: 'dockerRegistryAccessView',\n        },\n      },\n    };\n\n    $stateRegistryProvider.register(configs);\n    $stateRegistryProvider.register(config);\n    $stateRegistryProvider.register(configCreation);\n\n    $stateRegistryProvider.register(customTemplates);\n    $stateRegistryProvider.register(customTemplatesNew);\n    $stateRegistryProvider.register(customTemplatesEdit);\n    $stateRegistryProvider.register(docker);\n    $stateRegistryProvider.register(dashboard);\n    $stateRegistryProvider.register(host);\n    $stateRegistryProvider.register(hostBrowser);\n    $stateRegistryProvider.register(events);\n    $stateRegistryProvider.register(images);\n    $stateRegistryProvider.register(image);\n    $stateRegistryProvider.register(imageBuild);\n    $stateRegistryProvider.register(imageImport);\n    $stateRegistryProvider.register(networks);\n    $stateRegistryProvider.register(network);\n    $stateRegistryProvider.register(networkCreation);\n    $stateRegistryProvider.register(nodes);\n    $stateRegistryProvider.register(node);\n    $stateRegistryProvider.register(nodeBrowser);\n    $stateRegistryProvider.register(secrets);\n    $stateRegistryProvider.register(secret);\n    $stateRegistryProvider.register(secretCreation);\n    $stateRegistryProvider.register(services);\n    $stateRegistryProvider.register(service);\n    $stateRegistryProvider.register(serviceCreation);\n    $stateRegistryProvider.register(serviceLogs);\n    $stateRegistryProvider.register(stacks);\n    $stateRegistryProvider.register(stack);\n    $stateRegistryProvider.register(stackContainer);\n    $stateRegistryProvider.register(stackCreation);\n    $stateRegistryProvider.register(swarm);\n    $stateRegistryProvider.register(swarmVisualizer);\n    $stateRegistryProvider.register(tasks);\n    $stateRegistryProvider.register(task);\n    $stateRegistryProvider.register(taskLogs);\n    $stateRegistryProvider.register(templates);\n    $stateRegistryProvider.register(volumes);\n    $stateRegistryProvider.register(volume);\n    $stateRegistryProvider.register(volumeBrowse);\n    $stateRegistryProvider.register(volumeCreation);\n    $stateRegistryProvider.register(dockerFeaturesConfiguration);\n    $stateRegistryProvider.register(swarmFeaturesConfiguration);\n    $stateRegistryProvider.register(dockerRegistries);\n    $stateRegistryProvider.register(swarmRegistries);\n    $stateRegistryProvider.register(dockerRegistryAccess);\n    $stateRegistryProvider.register(swarmRegistryAccess);\n  },\n]);\n","angular.module('portainer.docker').controller('ContainerRestartPolicyController', [\n  function ContainerRestartPolicyController() {\n    var ctrl = this;\n\n    this.state = {\n      editModel: {},\n    };\n\n    ctrl.save = save;\n\n    function save() {\n      if (ctrl.state.editModel.name === ctrl.name && ctrl.state.editModel.maximumRetryCount === ctrl.maximumRetryCount) {\n        return;\n      }\n      ctrl.updateRestartPolicy(ctrl.state.editModel);\n    }\n\n    this.$onInit = function () {\n      ctrl.state.editModel = {\n        name: ctrl.name ? ctrl.name : 'no',\n        maximumRetryCount: ctrl.maximumRetryCount,\n      };\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./container-restart-policy.html');\n\nangular.module('portainer.docker').component('containerRestartPolicy', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'ContainerRestartPolicyController',\n  bindings: {\n    name: '<',\n    maximumRetryCount: '<',\n    updateRestartPolicy: '&',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./dashboardClusterAgentInfo.html');\n\nangular.module('portainer.docker').component('dashboardClusterAgentInfo', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'DashboardClusterAgentInfoController',\n  bindings: {\n    endpointId: '<',\n  },\n});\n","angular.module('portainer.docker').controller('DashboardClusterAgentInfoController', [\n  'AgentService',\n  'Notifications',\n  function (AgentService, Notifications) {\n    var ctrl = this;\n\n    this.$onInit = function () {\n      AgentService.agents(ctrl.endpointId)\n        .then(function success(data) {\n          ctrl.agentCount = data.length;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve agent information');\n        });\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./host-overview.html');\n\nangular.module('portainer.docker').component('hostOverview', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    hostDetails: '<',\n    engineDetails: '<',\n    devices: '<',\n    disks: '<',\n    isAgent: '<',\n    agentApiVersion: '<',\n    refreshUrl: '@',\n    browseUrl: '@',\n    hostFeaturesEnabled: '<',\n  },\n  transclude: true,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./devices-panel.html');\n\nangular.module('portainer.docker').component('devicesPanel', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    devices: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./disks-panel.html');\n\nangular.module('portainer.docker').component('disksPanel', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    disks: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./engine-details-panel.html');\n\nangular.module('portainer.docker').component('engineDetailsPanel', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    engine: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./host-details-panel.html');\n\nangular.module('portainer.docker').component('hostDetailsPanel', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    host: '<',\n    isBrowseEnabled: '<',\n    browseUrl: '@',\n  },\n});\n","angular.module('portainer.docker').controller('NodeAvailabilitySelectController', [\n  function NodeAvailabilitySelectController() {\n    this.onChange = onChange;\n\n    function onChange() {\n      this.onSave({ availability: this.availability });\n    }\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./node-availability-select.html');\n\nangular.module('portainer.docker').component('nodeAvailabilitySelect', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'NodeAvailabilitySelectController',\n  bindings: {\n    availability: '<',\n    originalValue: '<',\n    onSave: '&',\n  },\n});\n","angular.module('portainer.docker').controller('NodeLabelsTableController', [\n  function NodeLabelsTableController() {\n    var ctrl = this;\n    ctrl.removeLabel = removeLabel;\n    ctrl.updateLabel = updateLabel;\n\n    function removeLabel(index) {\n      var label = ctrl.labels.splice(index, 1);\n      if (label !== null) {\n        ctrl.onChangedLabels({ labels: ctrl.labels });\n      }\n    }\n\n    function updateLabel(label) {\n      if (label.value !== label.originalValue || label.key !== label.originalKey) {\n        ctrl.onChangedLabels({ labels: ctrl.labels });\n      }\n    }\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./node-labels-table.html');\n\nangular.module('portainer.docker').component('nodeLabelsTable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'NodeLabelsTableController',\n  bindings: {\n    labels: '<',\n    onChangedLabels: '&',\n  },\n});\n","angular.module('portainer.docker').controller('SwarmNodeDetailsPanelController', [\n  'NodeService',\n  'LabelHelper',\n  'Notifications',\n  '$state',\n  function SwarmNodeDetailsPanelController(NodeService, LabelHelper, Notifications, $state) {\n    var ctrl = this;\n    ctrl.state = {\n      managerAddress: '',\n      hasChanges: false,\n    };\n    ctrl.$onChanges = $onChanges;\n    ctrl.addLabel = addLabel;\n    ctrl.updateNodeLabels = updateNodeLabels;\n    ctrl.updateNodeAvailability = updateNodeAvailability;\n    ctrl.saveChanges = saveChanges;\n    ctrl.cancelChanges = cancelChanges;\n\n    var managerRole = 'manager';\n\n    function $onChanges() {\n      if (!ctrl.details) {\n        return;\n      }\n      if (ctrl.details.role === managerRole) {\n        ctrl.state.managerAddress = '(' + ctrl.details.managerAddress + ')';\n      }\n    }\n\n    function addLabel() {\n      ctrl.details.nodeLabels.push({\n        key: '',\n        value: '',\n        originalValue: '',\n        originalKey: '',\n      });\n    }\n\n    function updateNodeLabels(labels) {\n      ctrl.details.nodeLabels = labels;\n      ctrl.state.hasChanges = true;\n    }\n\n    function updateNodeAvailability(availability) {\n      ctrl.details.availability = availability;\n      ctrl.state.hasChanges = true;\n    }\n\n    function saveChanges() {\n      var originalNode = ctrl.originalNode;\n      var config = {\n        Name: originalNode.Name,\n        Availability: ctrl.details.availability,\n        Role: originalNode.Role,\n        Labels: LabelHelper.fromKeyValueToLabelHash(ctrl.details.nodeLabels),\n        Id: originalNode.Id,\n        Version: originalNode.Version,\n      };\n\n      NodeService.updateNode(config).then(onUpdateSuccess).catch(notifyOnError);\n\n      function onUpdateSuccess() {\n        Notifications.success('Node successfully updated', 'Node updated');\n        $state.go('docker.nodes.node', { id: originalNode.Id }, { reload: true });\n      }\n\n      function notifyOnError(error) {\n        Notifications.error('Failure', error, 'Failed to update node');\n      }\n    }\n\n    function cancelChanges() {\n      cancelLabelChanges();\n      ctrl.details.availability = ctrl.originalNode.Availability;\n      ctrl.state.hasChanges = false;\n    }\n\n    function cancelLabelChanges() {\n      ctrl.details.nodeLabels = ctrl.details.nodeLabels\n        .filter(function (label) {\n          return label.originalValue || label.originalKey;\n        })\n        .map(function (label) {\n          return Object.assign(label, {\n            value: label.originalValue,\n            key: label.originalKey,\n          });\n        });\n    }\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./swarm-node-details-panel.html');\n\nangular.module('portainer.docker').component('swarmNodeDetailsPanel', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'SwarmNodeDetailsPanelController',\n  bindings: {\n    details: '<',\n    originalNode: '<',\n  },\n});\n","import { isAgentEnvironment, isLocalEnvironment } from '@/react/portainer/environments/utils';\n\nexport default class porImageRegistryContainerController {\n  /* @ngInject */\n  constructor(DockerHubService, Notifications) {\n    this.DockerHubService = DockerHubService;\n    this.Notifications = Notifications;\n\n    this.pullRateLimits = null;\n  }\n\n  $onChanges({ registryId }) {\n    if (registryId) {\n      this.fetchRateLimits();\n    }\n  }\n\n  $onInit() {\n    this.setValidity =\n      this.setValidity ||\n      (() => {\n        /* noop */\n      });\n  }\n\n  async fetchRateLimits() {\n    this.pullRateLimits = null;\n    if (!isAgentEnvironment(this.endpoint.Type) && !isLocalEnvironment(this.endpoint)) {\n      this.setValidity(true);\n      return;\n    }\n\n    try {\n      this.pullRateLimits = await this.DockerHubService.checkRateLimits(this.endpoint, this.registryId || 0);\n      this.setValidity(!this.pullRateLimits.limit || (this.pullRateLimits.limit && this.pullRateLimits.remaining >= 0));\n    } catch (e) {\n      // eslint-disable-next-line no-console\n      console.error('Failed loading DockerHub pull rate limits', e);\n      this.setValidity(true);\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./por-image-registry-rate-limits.html');\n\nimport angular from 'angular';\n\nimport controller from './por-image-registry-rate-limits.controller';\n\nangular.module('portainer.docker').component('porImageRegistryRateLimits', {\n  bindings: {\n    endpoint: '<',\n    registry: '<',\n    setValidity: '<',\n    isAdmin: '<',\n    isDockerHubRegistry: '<',\n    isAuthenticated: '<',\n    registryId: '<',\n  },\n  controller,\n  transclude: {\n    rateLimitExceeded: '?porImageRegistryRateLimitExceeded',\n  },\n  templateUrl: autoNgTemplateLoaderTemplate1,\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport { DockerHubViewModel } from 'Portainer/models/dockerhub';\nimport { RegistryTypes } from '@/portainer/models/registryTypes';\n\nclass porImageRegistryController {\n  /* @ngInject */\n  constructor($async, $scope, ImageHelper, RegistryService, EndpointService, ImageService, Notifications) {\n    this.$async = $async;\n    this.$scope = $scope;\n    this.ImageHelper = ImageHelper;\n    this.RegistryService = RegistryService;\n    this.EndpointService = EndpointService;\n    this.ImageService = ImageService;\n    this.Notifications = Notifications;\n\n    this.onRegistryChange = this.onRegistryChange.bind(this);\n    this.onImageChange = this.onImageChange.bind(this);\n\n    this.registries = [];\n    this.images = [];\n    this.defaultRegistry = new DockerHubViewModel();\n\n    this.$scope.$watch(() => this.model.Registry, this.onRegistryChange);\n    this.$scope.$watch(() => this.model.Image, this.onImageChange);\n  }\n\n  isKnownRegistry(registry) {\n    return registry && !(registry instanceof DockerHubViewModel) && registry.URL;\n  }\n\n  getRegistryURL(registry) {\n    if (!registry) {\n      return;\n    }\n    let url = registry.URL;\n    if (registry.Type === RegistryTypes.GITLAB) {\n      url = registry.URL + '/' + registry.Gitlab.ProjectPath;\n    }\n    return url;\n  }\n\n  prepareAutocomplete() {\n    let images = [];\n    const registry = this.model.Registry;\n    if (this.isKnownRegistry(registry)) {\n      const url = this.getRegistryURL(registry);\n      const registryImages = _.filter(this.images, (image) => _.includes(image, url));\n      images = _.map(registryImages, (image) => _.replace(image, new RegExp(url + '/?'), ''));\n    } else {\n      const registries = _.filter(this.registries, (reg) => this.isKnownRegistry(reg));\n      const registryImages = _.flatMap(registries, (registry) => _.filter(this.images, (image) => _.includes(image, registry.URL)));\n      const imagesWithoutKnown = _.difference(this.images, registryImages);\n      images = _.filter(imagesWithoutKnown, (image) => !this.ImageHelper.imageContainsURL(image));\n    }\n    this.availableImages = images;\n  }\n\n  isDockerHubRegistry() {\n    return this.model.UseRegistry && this.model.Registry && (this.model.Registry.Type === RegistryTypes.DOCKERHUB || this.model.Registry.Type === RegistryTypes.ANONYMOUS);\n  }\n\n  async onRegistryChange() {\n    this.prepareAutocomplete();\n    if (this.model.Registry && this.model.Registry.Type === RegistryTypes.GITLAB && this.model.Image) {\n      this.model.Image = _.replace(this.model.Image, this.model.Registry.Gitlab.ProjectPath, '');\n    }\n  }\n\n  async onImageChange() {\n    if (!this.isDockerHubRegistry()) {\n      this.setValidity(true);\n    }\n  }\n\n  displayedRegistryURL() {\n    return (this.model.Registry && this.getRegistryURL(this.model.Registry)) || 'docker.io';\n  }\n\n  async reloadRegistries() {\n    return this.$async(async () => {\n      try {\n        let showDefaultRegistry = false;\n        this.registries = await this.EndpointService.registries(this.endpoint.Id, this.namespace);\n\n        // Sort the registries by Name\n        this.registries.sort((a, b) => a.Name.localeCompare(b.Name));\n\n        // hide default(anonymous) dockerhub registry if user has an authenticated one\n        if (!this.registries.some((registry) => registry.Type === RegistryTypes.DOCKERHUB)) {\n          showDefaultRegistry = true;\n          // Add dockerhub on top\n          this.registries.splice(0, 0, this.defaultRegistry);\n        }\n\n        const id = this.model.Registry && this.model.Registry.Id;\n        const registry = _.find(this.registries, { Id: id });\n        if (!registry) {\n          this.model.Registry = showDefaultRegistry ? this.defaultRegistry : this.registries[0];\n        }\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registries');\n      }\n    });\n  }\n\n  async loadImages() {\n    return this.$async(async () => {\n      try {\n        if (!this.autoComplete) {\n          this.images = [];\n          return;\n        }\n\n        const images = await this.ImageService.images();\n        this.images = this.ImageService.getUniqueTagListFromImages(images);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve images');\n      }\n    });\n  }\n\n  $onChanges({ namespace, endpoint }) {\n    if ((namespace || endpoint) && this.endpoint.Id) {\n      this.reloadRegistries();\n    }\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      await this.loadImages();\n    });\n  }\n}\n\nexport default porImageRegistryController;\nangular.module('portainer.docker').controller('porImageRegistryController', porImageRegistryController);\n","const autoNgTemplateLoaderTemplate1 = require('./por-image-registry.html');\n\nangular.module('portainer.docker').component('porImageRegistry', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'porImageRegistryController',\n  bindings: {\n    model: '=', // must be of type PorImageRegistryModel\n    autoComplete: '<',\n    labelClass: '@',\n    inputClass: '@',\n    endpoint: '<',\n    isAdmin: '<',\n    checkRateLimits: '<',\n    onImageChange: '&',\n    setValidity: '<',\n    namespace: '<',\n  },\n  require: {\n    form: '^form',\n  },\n  transclude: true,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./logViewer.html');\n\nangular.module('portainer.docker').component('logViewer', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'LogViewerController',\n  bindings: {\n    data: '=',\n    displayTimestamps: '=',\n    logCollectionChange: '<',\n    sinceTimestamp: '=',\n    lineCount: '=',\n    resourceName: '<',\n  },\n});\n","import moment from 'moment';\n\nimport { concatLogsToString, NEW_LINE_BREAKER } from '@/docker/helpers/logHelper';\n\nangular.module('portainer.docker').controller('LogViewerController', [\n  '$scope',\n  'clipboard',\n  'Blob',\n  'FileSaver',\n  function ($scope, clipboard, Blob, FileSaver) {\n    this.state = {\n      availableSinceDatetime: [\n        { desc: 'Last day', value: moment().subtract(1, 'days').format() },\n        { desc: 'Last 4 hours', value: moment().subtract(4, 'hours').format() },\n        { desc: 'Last hour', value: moment().subtract(1, 'hours').format() },\n        { desc: 'Last 10 minutes', value: moment().subtract(10, 'minutes').format() },\n      ],\n      copySupported: clipboard.supported,\n      logCollection: true,\n      autoScroll: true,\n      wrapLines: true,\n      search: '',\n      filteredLogs: [],\n      selectedLines: [],\n    };\n\n    this.handleLogsCollectionChange = handleLogsCollectionChange.bind(this);\n    this.handleLogsWrapLinesChange = handleLogsWrapLinesChange.bind(this);\n    this.handleDisplayTimestampsChange = handleDisplayTimestampsChange.bind(this);\n\n    function handleLogsCollectionChange(enabled) {\n      $scope.$evalAsync(() => {\n        this.state.logCollection = enabled;\n        this.state.autoScroll = enabled;\n        this.logCollectionChange(enabled);\n      });\n    }\n\n    function handleLogsWrapLinesChange(enabled) {\n      $scope.$evalAsync(() => {\n        this.state.wrapLines = enabled;\n      });\n    }\n\n    function handleDisplayTimestampsChange(enabled) {\n      $scope.$evalAsync(() => {\n        this.displayTimestamps = enabled;\n      });\n    }\n\n    this.copy = function () {\n      clipboard.copyText(this.state.filteredLogs.map((log) => log.line).join(NEW_LINE_BREAKER));\n      $('#refreshRateChange').show();\n      $('#refreshRateChange').fadeOut(2000);\n    };\n\n    this.copySelection = function () {\n      clipboard.copyText(this.state.selectedLines.join(NEW_LINE_BREAKER));\n      $('#refreshRateChange').show();\n      $('#refreshRateChange').fadeOut(2000);\n    };\n\n    this.clearSelection = function () {\n      this.state.selectedLines = [];\n    };\n\n    this.selectLine = function (line) {\n      var idx = this.state.selectedLines.indexOf(line);\n      if (idx === -1) {\n        this.state.selectedLines.push(line);\n      } else {\n        this.state.selectedLines.splice(idx, 1);\n      }\n    };\n\n    this.downloadLogs = function () {\n      const logsAsString = concatLogsToString(this.state.filteredLogs);\n      const data = new Blob([logsAsString]);\n      FileSaver.saveAs(data, this.resourceName + '_logs.txt');\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./networkMacvlanForm.html');\n\nangular.module('portainer.docker').component('networkMacvlanForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'NetworkMacvlanFormController',\n  bindings: {\n    data: '=',\n    applicationState: '<',\n  },\n});\n","import { getOptions } from '@/react/docker/networks/CreateView/macvlanOptions';\n\nangular.module('portainer.docker').controller('NetworkMacvlanFormController', [\n  '$q',\n  'NodeService',\n  'NetworkService',\n  'Notifications',\n  '$scope',\n  'Authentication',\n  function ($q, NodeService, NetworkService, Notifications, $scope, Authentication) {\n    var ctrl = this;\n\n    this.options = [];\n\n    ctrl.onChangeSelectedNodes = onChangeSelectedNodes.bind(ctrl);\n    function onChangeSelectedNodes(nodes) {\n      return $scope.$evalAsync(() => {\n        ctrl.data.DatatableState.selectedItems = nodes;\n      });\n    }\n\n    ctrl.requiredNodeSelection = function () {\n      if (ctrl.data.Scope !== 'local' || ctrl.data.DatatableState === undefined) {\n        return false;\n      }\n      return ctrl.data.DatatableState.selectedItems.length;\n    };\n\n    ctrl.requiredConfigSelection = function () {\n      if (ctrl.data.Scope !== 'swarm') {\n        return false;\n      }\n      return !ctrl.data.SelectedNetworkConfig;\n    };\n\n    this.onChangeScope = onChangeScope.bind(this);\n    function onChangeScope(value) {\n      return $scope.$evalAsync(() => {\n        this.data.Scope = value;\n      });\n    }\n\n    this.$onInit = $onInit;\n    function $onInit() {\n      var isAdmin = Authentication.isAdmin();\n      ctrl.isAdmin = isAdmin;\n\n      var provider = ctrl.applicationState.endpoint.mode.provider;\n      var apiVersion = ctrl.applicationState.endpoint.apiVersion;\n      $q.all({\n        nodes: provider !== 'DOCKER_SWARM_MODE' || NodeService.nodes(),\n        networks: NetworkService.networks(provider === 'DOCKER_STANDALONE' || provider === 'DOCKER_SWARM_MODE', false, provider === 'DOCKER_SWARM_MODE' && apiVersion >= 1.25),\n      })\n        .then(function success(data) {\n          if (data.nodes !== true) {\n            ctrl.nodes = data.nodes;\n          }\n          ctrl.availableNetworks = data.networks.filter(function (item) {\n            return item.ConfigOnly === true;\n          });\n\n          ctrl.options = getOptions(ctrl.availableNetworks.length > 0);\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve informations for macvlan');\n        });\n    }\n  },\n]);\n","import { Share2, Sliders } from 'lucide-react';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport function getOptions(\n  hasNetworks: boolean\n): ReadonlyArray<BoxSelectorOption<string>> {\n  return [\n    {\n      id: 'network_config',\n      icon: Sliders,\n      iconType: 'badge',\n      label: 'Configuration',\n      description: 'I want to configure a network before deploying it',\n      value: 'local',\n    },\n    {\n      id: 'network_deploy',\n      icon: Share2,\n      iconType: 'badge',\n      label: 'Creation',\n      description: 'I want to create a network from a configuration',\n      value: 'swarm',\n      disabled: () => !hasNetworks,\n    },\n  ] as const;\n}\n","export function MacvlanFormData() {\n  this.Scope = 'local';\n  this.SelectedNetworkConfig = null;\n  this.DatatableState = {\n    selectedItems: [],\n  };\n  this.ParentNetworkCard = '';\n}\n","const autoNgTemplateLoaderTemplate1 = require('./volumesCifsForm.html');\n\nangular.module('portainer.docker').component('volumesCifsForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    data: '=',\n  },\n});\n","export function VolumesCIFSFormData() {\n  this.useCIFS = false;\n  this.serverAddress = '';\n  this.share = '';\n  this.version = 'CIFS v2.0 (Used by Windows Vista / Server 2008)';\n  this.versions = [\n    'CIFS v1.0 (Used by Windows XP / Server 2003 and earlier)',\n    'CIFS v2.0 (Used by Windows Vista / Server 2008)',\n    'CIFS v2.1 (Used by Windows 7 / Server 2008 R2)',\n    'CIFS 3.0 (Used by Windows 8 / Server 2012 and newer)',\n  ];\n  this.versionsNumber = ['1.0', '2.0', '2.1', '3.0'];\n  this.username = '';\n  this.password = '';\n}\n","const autoNgTemplateLoaderTemplate1 = require('./volumesnfsForm.html');\n\nangular.module('portainer.docker').component('volumesNfsForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    data: '=',\n  },\n});\n","export function VolumesNFSFormData() {\n  this.useNFS = false;\n  this.serverAddress = '';\n  this.mountPoint = '';\n  this.version = 'NFS4';\n  this.options = 'rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14';\n  this.versions = ['NFS4', 'NFS'];\n}\n","import _ from 'lodash-es';\nimport { hideShaSum, joinCommand, nodeStatusBadge, taskStatusBadge, trimSHA, trimVersionTag } from './utils';\n\nfunction includeString(text, values) {\n  return values.some(function (val) {\n    return text.indexOf(val) !== -1;\n  });\n}\n\nfunction strToHash(str) {\n  var hash = 0;\n  for (var i = 0; i < str.length; i++) {\n    hash = str.charCodeAt(i) + ((hash << 5) - hash);\n  }\n  return hash;\n}\n\nfunction hashToHexColor(hash) {\n  var color = '#';\n  for (var i = 0; i < 3; ) {\n    color += ('00' + ((hash >> (i++ * 8)) & 0xff).toString(16)).slice(-2);\n  }\n  return color;\n}\n\nangular\n  .module('portainer.docker')\n  .filter('visualizerTask', function () {\n    'use strict';\n    return function (text) {\n      var status = _.toLower(text);\n      if (includeString(status, ['new', 'allocated', 'assigned', 'accepted', 'complete', 'preparing'])) {\n        return 'info';\n      } else if (includeString(status, ['pending'])) {\n        return 'warning';\n      } else if (includeString(status, ['shutdown', 'failed', 'rejected'])) {\n        return 'stopped';\n      }\n      return 'running';\n    };\n  })\n  .filter('visualizerTaskBorderColor', function () {\n    'use strict';\n    return function (str) {\n      var hash = strToHash(str);\n      var color = hashToHexColor(hash);\n      return color;\n    };\n  })\n  .filter('taskstatusbadge', function () {\n    'use strict';\n    return taskStatusBadge;\n  })\n  .filter('taskhaslogs', function () {\n    'use strict';\n    return function (state) {\n      var validState = ['running', 'complete', 'failed', 'shutdown'];\n      if (validState.indexOf(state) > -1) {\n        return true;\n      }\n      return false;\n    };\n  })\n  .filter('containerstatusbadge', function () {\n    'use strict';\n    return function (text) {\n      var status = _.toLower(text);\n      if (includeString(status, ['paused', 'starting', 'unhealthy'])) {\n        return 'warning';\n      } else if (includeString(status, ['created'])) {\n        return 'info';\n      } else if (includeString(status, ['stopped', 'dead', 'exited'])) {\n        return 'danger';\n      }\n      return 'success';\n    };\n  })\n  .filter('nodestatusbadge', () => nodeStatusBadge)\n  .filter('trimcontainername', function () {\n    'use strict';\n    return function (name) {\n      if (name) {\n        return name.indexOf('/') === 0 ? name.slice(1) : name;\n      }\n      return '';\n    };\n  })\n  .filter('getstatetext', function () {\n    'use strict';\n    return function (state) {\n      if (state === undefined) {\n        return '';\n      }\n      if (state.Dead) {\n        return 'Dead';\n      }\n      if (state.Ghost && state.Running) {\n        return 'Ghost';\n      }\n      if (state.Running && state.Paused) {\n        return 'Running (Paused)';\n      }\n      if (state.Running) {\n        return 'Running';\n      }\n      if (state.Status === 'created') {\n        return 'Created';\n      }\n      return 'Stopped';\n    };\n  })\n  .filter('getstatelabel', function () {\n    'use strict';\n    return function (state) {\n      if (state === undefined) {\n        return 'label-default';\n      }\n      if (state.Ghost && state.Running) {\n        return 'label-important';\n      }\n      if (state.Running) {\n        return 'label-success';\n      }\n      return 'label-default';\n    };\n  })\n  .filter('containername', function () {\n    'use strict';\n    return function (container) {\n      return container.Names[0];\n    };\n  })\n  .filter('swarmversion', function () {\n    'use strict';\n    return function (text) {\n      return _.split(text, '/')[1];\n    };\n  })\n  .filter('swarmhostname', function () {\n    'use strict';\n    return function (container) {\n      return container.Names[0];\n    };\n  })\n  .filter('repotags', function () {\n    'use strict';\n    return function (image) {\n      if (image.RepoTags && image.RepoTags.length > 0) {\n        var tag = image.RepoTags[0];\n        if (tag === '<none>:<none>') {\n          return [];\n        }\n        return image.RepoTags;\n      }\n      return [];\n    };\n  })\n  .filter('command', function () {\n    return joinCommand;\n  })\n  .filter('hideshasum', () => hideShaSum)\n  .filter('tasknodename', function () {\n    'use strict';\n    return function (nodeId, nodes) {\n      var node = _.find(nodes, { Id: nodeId });\n      if (node) {\n        return node.Hostname;\n      }\n      return '';\n    };\n  })\n  .filter('imagelayercommand', function () {\n    'use strict';\n    return function (createdBy) {\n      if (!createdBy) {\n        return '';\n      }\n      return createdBy.replace('/bin/sh -c #(nop) ', '').replace('/bin/sh -c ', 'RUN ');\n    };\n  })\n  .filter('trimshasum', function () {\n    'use strict';\n    return trimSHA;\n  })\n  .filter('trimversiontag', function () {\n    'use strict';\n    return trimVersionTag;\n  })\n  .filter('unique', function () {\n    return _.uniqBy;\n  });\n","angular.module('portainer.docker').factory('ConfigHelper', [\n  function ConfigHelperFactory() {\n    'use strict';\n    return {\n      flattenConfig: function (config) {\n        if (config) {\n          return {\n            Id: config.ConfigID,\n            Name: config.ConfigName,\n            ...(config.File ? { FileName: config.File.Name, Uid: config.File.UID, Gid: config.File.GID, Mode: config.File.Mode } : {}),\n            credSpec: !!config.Runtime,\n          };\n        }\n        return {};\n      },\n      configConfig: function (config) {\n        if (config) {\n          return {\n            ConfigID: config.Id,\n            ConfigName: config.Name,\n            File: config.credSpec\n              ? null\n              : {\n                  Name: config.FileName || config.Name,\n                  UID: config.Uid || '0',\n                  GID: config.Gid || '0',\n                  Mode: config.Mode || 292,\n                },\n            Runtime: config.credSpec ? {} : null,\n          };\n        }\n        return {};\n      },\n    };\n  },\n]);\n","import _ from 'lodash-es';\n\nconst portPattern = /^([1-9]|[1-5]?[0-9]{2,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/m;\n\nfunction parsePort(port) {\n  if (portPattern.test(port)) {\n    return parseInt(port, 10);\n  } else {\n    return 0;\n  }\n}\n\nfunction parsePortRange(portRange) {\n  if (typeof portRange !== 'string') {\n    portRange = portRange.toString();\n  }\n\n  // Split the range and convert to integers\n  const stringPorts = _.split(portRange, '-', 2);\n  const intPorts = _.map(stringPorts, parsePort);\n\n  // If it's not a range, we still make sure that we return two ports (start & end)\n  if (intPorts.length == 1) {\n    intPorts.push(intPorts[0]);\n  }\n\n  return intPorts;\n}\n\nfunction isValidPortRange(portRange) {\n  if (typeof portRange === 'string') {\n    portRange = parsePortRange();\n  }\n\n  return Array.isArray(portRange) && portRange.length === 2 && portRange[0] > 0 && portRange[1] >= portRange[0];\n}\n\nfunction createPortRange(portRangeText, port) {\n  if (typeof portRangeText !== 'string') {\n    portRangeText = portRangeText.toString();\n  }\n\n  let hostIp = null;\n  const colonIndex = portRangeText.indexOf(':');\n  if (colonIndex >= 0) {\n    hostIp = portRangeText.substr(0, colonIndex);\n    portRangeText = portRangeText.substr(colonIndex + 1);\n  }\n\n  port = typeof port === 'number' ? port : parsePort(port);\n  const portRange = parsePortRange(portRangeText);\n  const startPort = Math.min(portRange[0], port);\n  const endPort = Math.max(portRange[1], port);\n\n  if (hostIp) {\n    return hostIp + ':' + startPort + '-' + endPort;\n  } else {\n    return startPort + '-' + endPort;\n  }\n}\n\nangular.module('portainer.docker').factory('ContainerHelper', [\n  function ContainerHelperFactory() {\n    'use strict';\n    var helper = {};\n\n    helper.configFromContainer = function (container) {\n      var config = container.Config;\n      // HostConfig\n      config.HostConfig = container.HostConfig;\n      // Name\n      config.name = container.Name.replace(/^\\//g, '');\n      // Network\n      var mode = config.HostConfig.NetworkMode;\n      config.NetworkingConfig = {\n        EndpointsConfig: {},\n      };\n      config.NetworkingConfig.EndpointsConfig = container.NetworkSettings.Networks;\n\n      if (config.ExposedPorts === undefined) {\n        config.ExposedPorts = {};\n      }\n\n      if (mode.indexOf('container:') !== -1) {\n        delete config.Hostname;\n        delete config.ExposedPorts;\n      }\n      // Set volumes\n      var binds = [];\n      var volumes = {};\n      for (var v in container.Mounts) {\n        if ({}.hasOwnProperty.call(container.Mounts, v)) {\n          var mount = container.Mounts[v];\n          var name = mount.Name || mount.Source;\n          var containerPath = mount.Destination;\n          if (name && containerPath) {\n            var bind = name + ':' + containerPath;\n            volumes[containerPath] = {};\n            if (mount.RW === false) {\n              bind += ':ro';\n            }\n            binds.push(bind);\n          }\n        }\n      }\n      config.HostConfig.Mounts = null;\n      config.HostConfig.Binds = binds;\n      config.Volumes = volumes;\n      return config;\n    };\n\n    helper.preparePortBindings = function (portBindings) {\n      const bindings = {};\n      _.forEach(portBindings, (portBinding) => {\n        if (!portBinding.containerPort) {\n          return;\n        }\n\n        let hostPort = portBinding.hostPort;\n        const containerPortRange = parsePortRange(portBinding.containerPort);\n        if (!isValidPortRange(containerPortRange)) {\n          throw new Error('Invalid port specification: ' + portBinding.containerPort);\n        }\n\n        const startPort = containerPortRange[0];\n        const endPort = containerPortRange[1];\n        let hostIp = undefined;\n        let startHostPort = 0;\n        let endHostPort = 0;\n        if (hostPort) {\n          if (hostPort.indexOf('[') > -1) {\n            const hostAndPort = _.split(hostPort, ']:');\n\n            if (hostAndPort.length < 2) {\n              throw new Error('Invalid port specification: ' + portBinding.containerPort);\n            }\n\n            hostIp = hostAndPort[0].replace('[', '');\n            hostPort = hostAndPort[1];\n          } else {\n            if (hostPort.indexOf(':') > -1) {\n              const hostAndPort = _.split(hostPort, ':');\n              hostIp = hostAndPort[0];\n              hostPort = hostAndPort[1];\n            }\n          }\n\n          const hostPortRange = parsePortRange(hostPort);\n          if (!isValidPortRange(hostPortRange)) {\n            throw new Error('Invalid port specification: ' + hostPort);\n          }\n\n          startHostPort = hostPortRange[0];\n          endHostPort = hostPortRange[1];\n          if (endPort !== startPort && endPort - startPort !== endHostPort - startHostPort) {\n            throw new Error('Invalid port specification: ' + hostPort);\n          }\n        }\n\n        for (let i = 0; i <= endPort - startPort; i++) {\n          const containerPort = (startPort + i).toString();\n          if (startHostPort > 0) {\n            hostPort = (startHostPort + i).toString();\n          }\n          if (startPort === endPort && startHostPort !== endHostPort) {\n            hostPort += '-' + endHostPort.toString();\n          }\n\n          const bindKey = containerPort + '/' + portBinding.protocol;\n          if (bindings[bindKey]) {\n            bindings[bindKey].push({ HostIp: hostIp, HostPort: hostPort });\n          } else {\n            bindings[bindKey] = [{ HostIp: hostIp, HostPort: hostPort }];\n          }\n        }\n      });\n      return bindings;\n    };\n\n    helper.sortAndCombinePorts = function (portBindings) {\n      const bindings = [];\n      const portBindingKeys = _.keys(portBindings);\n\n      // Group the port bindings by protocol\n      const portBindingKeysByProtocol = _.groupBy(portBindingKeys, (portKey) => {\n        return _.split(portKey, '/')[1];\n      });\n\n      _.forEach(portBindingKeysByProtocol, (portBindingKeys, protocol) => {\n        // Group the port bindings by host IP\n        const portBindingKeysByHostIp = {};\n        for (const portKey of portBindingKeys) {\n          for (const portBinding of portBindings[portKey]) {\n            portBindingKeysByHostIp[portBinding.HostIp] = portBindingKeysByHostIp[portBinding.HostIp] || [];\n            portBindingKeysByHostIp[portBinding.HostIp].push(portKey);\n          }\n        }\n\n        _.forEach(portBindingKeysByHostIp, (portBindingKeys, ip) => {\n          // Sort by host port\n          const sortedPortBindingKeys = _.orderBy(portBindingKeys, (portKey) => {\n            return parseInt(_.split(portKey, '/')[0], 10);\n          });\n\n          let previousHostPort = -1;\n          let previousContainerPort = -1;\n          _.forEach(sortedPortBindingKeys, (portKey) => {\n            const portKeySplit = _.split(portKey, '/');\n            const containerPort = parseInt(portKeySplit[0], 10);\n            const portBinding = portBindings[portKey][0];\n            portBindings[portKey].shift();\n            const hostPort = parsePort(portBinding.HostPort);\n\n            // We only combine single ports, and skip the host port ranges on one container port\n            if (hostPort > 0) {\n              // If we detect consecutive ports, we create a range of them\n              if (bindings.length > 0 && previousHostPort === hostPort - 1 && previousContainerPort === containerPort - 1) {\n                bindings[bindings.length - 1].hostPort = createPortRange(bindings[bindings.length - 1].hostPort, hostPort);\n                bindings[bindings.length - 1].containerPort = createPortRange(bindings[bindings.length - 1].containerPort, containerPort);\n                previousHostPort = hostPort;\n                previousContainerPort = containerPort;\n                return;\n              }\n\n              previousHostPort = hostPort;\n              previousContainerPort = containerPort;\n            } else {\n              previousHostPort = -1;\n              previousContainerPort = -1;\n            }\n\n            let bindingHostPort = portBinding.HostPort.toString();\n            if (ip) {\n              bindingHostPort = `${ip}:${bindingHostPort}`;\n            }\n\n            const binding = {\n              hostPort: bindingHostPort,\n              containerPort: containerPort,\n              protocol: protocol,\n            };\n            bindings.push(binding);\n          });\n        });\n      });\n\n      return bindings;\n    };\n\n    helper.getContainerNames = function (containers) {\n      return _.map(_.flatten(_.map(containers, 'Names')), (name) => _.trimStart(name, '/'));\n    };\n\n    return helper;\n  },\n]);\n","import { buildImageFullURIFromModel, imageContainsURL } from '@/react/docker/images/utils';\n\nangular.module('portainer.docker').factory('ImageHelper', ImageHelperFactory);\nfunction ImageHelperFactory() {\n  return {\n    isValidTag,\n    createImageConfigForContainer,\n    getImagesNamesForDownload,\n    removeDigestFromRepository,\n    imageContainsURL,\n  };\n\n  function isValidTag(tag) {\n    return tag.match(/^(?![\\.\\-])([a-zA-Z0-9\\_\\.\\-])+$/g);\n  }\n\n  /**\n   *\n   * @param {Array<{tags: Array<string>; id: string;}>} images\n   * @returns {{names: string[]}}}\n   */\n  function getImagesNamesForDownload(images) {\n    var names = images.map(function (image) {\n      return image.tags[0] !== '<none>:<none>' ? image.tags[0] : image.id;\n    });\n    return {\n      names,\n    };\n  }\n\n  /**\n   *\n   * @param {PorImageRegistryModel} registry\n   */\n  function createImageConfigForContainer(imageModel) {\n    return {\n      fromImage: buildImageFullURIFromModel(imageModel),\n    };\n  }\n\n  function removeDigestFromRepository(repository) {\n    return repository.split('@sha')[0];\n  }\n}\n","import _ from 'lodash-es';\n\nangular.module('portainer.docker').factory('InfoHelper', [\n  function InfoHelperFactory() {\n    'use strict';\n\n    var helper = {};\n\n    helper.determineEndpointMode = function (info, type) {\n      var mode = {\n        provider: '',\n        role: '',\n        agentProxy: false,\n      };\n\n      if (type === 2 || type === 4) {\n        mode.agentProxy = true;\n      }\n\n      if (!info.Swarm || _.isEmpty(info.Swarm.NodeID)) {\n        mode.provider = 'DOCKER_STANDALONE';\n      } else {\n        mode.provider = 'DOCKER_SWARM_MODE';\n        if (info.Swarm.ControlAvailable) {\n          mode.role = 'MANAGER';\n        } else {\n          mode.role = 'WORKER';\n        }\n      }\n      return mode;\n    };\n\n    return helper;\n  },\n]);\n","angular.module('portainer.docker').factory('LabelHelper', [\n  function LabelHelperFactory() {\n    'use strict';\n    return {\n      fromLabelHashToKeyValue: function (labels) {\n        if (labels) {\n          return Object.keys(labels).map(function (key) {\n            return { key: key, value: labels[key], originalKey: key, originalValue: labels[key], added: true };\n          });\n        }\n        return [];\n      },\n      fromKeyValueToLabelHash: function (labelKV) {\n        var labels = {};\n        if (labelKV) {\n          labelKV.forEach(function (label) {\n            if (label.key) {\n              labels[label.key] = label.value;\n            }\n          });\n        }\n        return labels;\n      },\n    };\n  },\n]);\n","import _ from 'lodash-es';\n\nclass DockerNetworkHelper {\n  static getIPV4Configs(configs) {\n    return _.filter(configs, (config) => /^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$/.test(config.Subnet));\n  }\n\n  static getIPV6Configs(configs) {\n    return _.without(configs, ...DockerNetworkHelper.getIPV4Configs(configs));\n  }\n}\n\nexport default DockerNetworkHelper;\n","angular.module('portainer.docker').factory('NodeHelper', [\n  function NodeHelperFactory() {\n    'use strict';\n    return {\n      nodeToConfig: function (node) {\n        return {\n          Name: node.Spec.Name,\n          Role: node.Spec.Role,\n          Labels: node.Spec.Labels,\n          Availability: node.Spec.Availability,\n        };\n      },\n    };\n  },\n]);\n","angular.module('portainer.docker').factory('SecretHelper', [\n  function SecretHelperFactory() {\n    'use strict';\n    return {\n      flattenSecret: function (secret) {\n        if (secret) {\n          return {\n            Id: secret.SecretID,\n            Name: secret.SecretName,\n            FileName: secret.File.Name,\n            Uid: secret.File.UID,\n            Gid: secret.File.GID,\n            Mode: secret.File.Mode,\n          };\n        }\n        return {};\n      },\n      secretConfig: function (secret) {\n        if (secret) {\n          return {\n            SecretID: secret.Id,\n            SecretName: secret.Name,\n            File: {\n              Name: secret.FileName,\n              UID: secret.Uid || '0',\n              GID: secret.Gid || '0',\n              Mode: secret.Mode || 444,\n            },\n          };\n        }\n        return {};\n      },\n    };\n  },\n]);\n","import moment from 'moment';\n\nangular.module('portainer.docker').factory('ServiceHelper', [\n  function ServiceHelperFactory() {\n    'use strict';\n\n    var helper = {};\n\n    helper.associateTasksToService = function (service, tasks) {\n      service.Tasks = [];\n      var otherServicesTasks = [];\n      for (var i = 0; i < tasks.length; i++) {\n        var task = tasks[i];\n        if (task.ServiceId === service.Id) {\n          service.Tasks.push(task);\n          task.ServiceName = service.Name;\n        } else {\n          otherServicesTasks.push(task);\n        }\n      }\n      tasks = otherServicesTasks;\n    };\n\n    helper.translateKeyValueToPlacementPreferences = function (keyValuePreferences) {\n      if (keyValuePreferences) {\n        var preferences = [];\n        keyValuePreferences.forEach(function (preference) {\n          if (preference.strategy && preference.strategy !== '' && preference.value && preference.value !== '') {\n            switch (preference.strategy.toLowerCase()) {\n              case 'spread':\n                preferences.push({\n                  Spread: {\n                    SpreadDescriptor: preference.value,\n                  },\n                });\n                break;\n            }\n          }\n        });\n        return preferences;\n      }\n      return [];\n    };\n\n    helper.translateKeyValueToPlacementConstraints = function (keyValueConstraints) {\n      if (keyValueConstraints) {\n        var constraints = [];\n        keyValueConstraints.forEach(function (constraint) {\n          if (constraint.key && constraint.key !== '' && constraint.value && constraint.value !== '') {\n            constraints.push(constraint.key + constraint.operator + constraint.value);\n          }\n        });\n        return constraints;\n      }\n      return [];\n    };\n\n    helper.translatePreferencesToKeyValue = function (preferences) {\n      if (preferences) {\n        var keyValuePreferences = [];\n        preferences.forEach(function (preference) {\n          if (preference.Spread) {\n            keyValuePreferences.push({\n              strategy: 'Spread',\n              value: preference.Spread.SpreadDescriptor,\n            });\n          }\n        });\n        return keyValuePreferences;\n      }\n      return [];\n    };\n\n    helper.translateConstraintsToKeyValue = function (constraints) {\n      function getOperator(constraint) {\n        var indexEquals = constraint.indexOf('==');\n        if (indexEquals >= 0) {\n          return [indexEquals, '=='];\n        }\n        return [constraint.indexOf('!='), '!='];\n      }\n      if (constraints) {\n        var keyValueConstraints = [];\n        constraints.forEach(function (constraint) {\n          var operatorIndices = getOperator(constraint);\n\n          var key = constraint.slice(0, operatorIndices[0]);\n          var operator = operatorIndices[1];\n          var value = constraint.slice(operatorIndices[0] + 2);\n\n          keyValueConstraints.push({\n            key: key,\n            value: value,\n            operator: operator,\n            originalKey: key,\n            originalValue: value,\n          });\n        });\n        return keyValueConstraints;\n      }\n    };\n\n    helper.translateHumanDurationToNanos = function (humanDuration) {\n      var nanos;\n      var regex = /^([0-9]+)(h|m|s|ms|us|ns)$/i;\n      var matches = humanDuration.match(regex);\n\n      if (matches !== null && matches.length === 3) {\n        var duration = parseInt(matches[1], 10);\n        var unit = matches[2];\n        // Moment.js cannot use micro or nanoseconds\n        switch (unit) {\n          case 'ns':\n            nanos = duration;\n            break;\n          case 'us':\n            nanos = duration * 1000;\n            break;\n          default:\n            nanos = moment.duration(duration, unit).asMilliseconds() * 1000000;\n        }\n      }\n      return nanos;\n    };\n\n    // Convert nanoseconds to the higher unit possible\n    // e.g 1840 nanoseconds = 1804ns\n    // e.g 300000000000 nanoseconds = 5m\n    // e.g 3510000000000 nanoseconds = 3510s\n    // e.g 3540000000000 nanoseconds = 59m\n    // e.g 3600000000000 nanoseconds = 1h\n\n    helper.translateNanosToHumanDuration = function (nanos) {\n      var humanDuration = '0s';\n      var conversionFromNano = {};\n      conversionFromNano['ns'] = 1;\n      conversionFromNano['us'] = conversionFromNano['ns'] * 1000;\n      conversionFromNano['ms'] = conversionFromNano['us'] * 1000;\n      conversionFromNano['s'] = conversionFromNano['ms'] * 1000;\n      conversionFromNano['m'] = conversionFromNano['s'] * 60;\n      conversionFromNano['h'] = conversionFromNano['m'] * 60;\n\n      Object.keys(conversionFromNano).forEach(function (unit) {\n        if (nanos % conversionFromNano[unit] === 0 && nanos / conversionFromNano[unit] > 0) {\n          humanDuration = nanos / conversionFromNano[unit] + unit;\n        }\n      });\n      return humanDuration;\n    };\n\n    helper.translateLogDriverOptsToKeyValue = function (logOptions) {\n      var options = [];\n      if (logOptions) {\n        Object.keys(logOptions).forEach(function (key) {\n          options.push({\n            key: key,\n            value: logOptions[key],\n            originalKey: key,\n            originalValue: logOptions[key],\n            added: true,\n          });\n        });\n      }\n      return options;\n    };\n\n    helper.translateKeyValueToLogDriverOpts = function (keyValueLogDriverOpts) {\n      var options = {};\n      if (keyValueLogDriverOpts) {\n        keyValueLogDriverOpts.forEach(function (option) {\n          if (option.key && option.key !== '' && option.value && option.value !== '') {\n            options[option.key] = option.value;\n          }\n        });\n      }\n      return options;\n    };\n\n    helper.translateHostsEntriesToHostnameIP = function (entries) {\n      var ipHostEntries = [];\n      if (entries) {\n        entries.forEach(function (entry) {\n          if (entry.indexOf(' ') && entry.split(' ').length === 2) {\n            var keyValue = entry.split(' ');\n            ipHostEntries.push({ hostname: keyValue[1], ip: keyValue[0] });\n          }\n        });\n      }\n      return ipHostEntries;\n    };\n\n    helper.translateHostnameIPToHostsEntries = function (entries) {\n      var ipHostEntries = [];\n      if (entries) {\n        entries.forEach(function (entry) {\n          if (entry.ip && entry.hostname) {\n            ipHostEntries.push(entry.ip + ' ' + entry.hostname);\n          }\n        });\n      }\n      return ipHostEntries;\n    };\n\n    return helper;\n  },\n]);\n","angular.module('portainer.docker').factory('TaskHelper', [\n  function TaskHelperFactory() {\n    'use strict';\n\n    var helper = {};\n\n    helper.associateContainerToTask = function (task, containers) {\n      for (var i = 0; i < containers.length; i++) {\n        var container = containers[i];\n        if (task.ContainerId === container.Id) {\n          task.Container = container;\n          break;\n        }\n      }\n    };\n\n    return helper;\n  },\n]);\n","angular.module('portainer.docker').factory('VolumeHelper', [\n  function VolumeHelperFactory() {\n    'use strict';\n    var helper = {};\n\n    helper.createDriverOptions = function (optionArray) {\n      var options = {};\n      optionArray.forEach(function (option) {\n        options[option.name] = option.value;\n      });\n      return options;\n    };\n\n    helper.isVolumeUsedByAService = function (volume, services) {\n      for (var i = 0; i < services.length; i++) {\n        var service = services[i];\n        var mounts = service.Mounts;\n        for (var j = 0; j < mounts.length; j++) {\n          var mount = mounts[j];\n          if (mount.Source === volume.Id) {\n            return true;\n          }\n        }\n      }\n\n      return false;\n    };\n\n    return helper;\n  },\n]);\n","import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\n\nfunction b64DecodeUnicode(str) {\n  try {\n    return decodeURIComponent(\n      atob(str)\n        .split('')\n        .map(function (c) {\n          return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n        })\n        .join('')\n    );\n  } catch (err) {\n    return atob(str);\n  }\n}\n\nexport function ConfigViewModel(data) {\n  this.Id = data.ID;\n  this.CreatedAt = data.CreatedAt;\n  this.UpdatedAt = data.UpdatedAt;\n  this.Version = data.Version.Index;\n  this.Name = data.Spec.Name;\n  this.Labels = data.Spec.Labels;\n  this.Data = b64DecodeUnicode(data.Spec.Data);\n\n  if (data.Portainer && data.Portainer.ResourceControl) {\n    this.ResourceControl = new ResourceControlViewModel(data.Portainer.ResourceControl);\n  }\n}\n","import _ from 'lodash-es';\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\n\nexport function createStatus(statusText) {\n  var status = _.toLower(statusText);\n\n  if (status.indexOf('paused') > -1) {\n    return 'paused';\n  } else if (status.indexOf('dead') > -1) {\n    return 'dead';\n  } else if (status.indexOf('created') > -1) {\n    return 'created';\n  } else if (status.indexOf('exited') > -1) {\n    return 'stopped';\n  } else if (status.indexOf('(healthy)') > -1) {\n    return 'healthy';\n  } else if (status.indexOf('(unhealthy)') > -1) {\n    return 'unhealthy';\n  } else if (status.indexOf('(health: starting)') > -1) {\n    return 'starting';\n  }\n  return 'running';\n}\n\nexport function ContainerViewModel(data) {\n  this.Id = data.Id;\n  this.Status = createStatus(data.Status);\n  this.State = data.State;\n  this.Created = data.Created;\n  this.Names = data.Names;\n  // Unavailable in Docker < 1.10\n  if (data.NetworkSettings && !_.isEmpty(data.NetworkSettings.Networks)) {\n    this.IP = data.NetworkSettings.Networks[Object.keys(data.NetworkSettings.Networks)[0]].IPAddress;\n  }\n  this.NetworkSettings = data.NetworkSettings;\n  this.Image = data.Image;\n  this.ImageID = data.ImageID;\n  this.Command = data.Command;\n  this.Checked = false;\n  this.Labels = data.Labels;\n  if (this.Labels && this.Labels['com.docker.compose.project']) {\n    this.StackName = this.Labels['com.docker.compose.project'];\n  } else if (this.Labels && this.Labels['com.docker.stack.namespace']) {\n    this.StackName = this.Labels['com.docker.stack.namespace'];\n  }\n  this.Mounts = data.Mounts;\n\n  this.IsPortainer = data.IsPortainer;\n\n  this.Ports = [];\n  if (data.Ports) {\n    for (var i = 0; i < data.Ports.length; ++i) {\n      var p = data.Ports[i];\n      if (p.PublicPort) {\n        this.Ports.push({ host: p.IP, private: p.PrivatePort, public: p.PublicPort });\n      }\n    }\n  }\n\n  if (data.Portainer) {\n    if (data.Portainer.ResourceControl) {\n      this.ResourceControl = new ResourceControlViewModel(data.Portainer.ResourceControl);\n    }\n    if (data.Portainer.Agent && data.Portainer.Agent.NodeName) {\n      this.NodeName = data.Portainer.Agent.NodeName;\n    }\n  }\n}\n\nexport function ContainerStatsViewModel(data) {\n  this.read = data.read;\n  this.preread = data.preread;\n  if (data.memory_stats.privateworkingset !== undefined) {\n    // Windows\n    this.MemoryUsage = data.memory_stats.privateworkingset;\n    this.MemoryCache = 0;\n    this.NumProcs = data.num_procs;\n    this.isWindows = true;\n  } else {\n    // Linux\n    if (data.memory_stats.stats === undefined || data.memory_stats.usage === undefined) {\n      this.MemoryUsage = this.MemoryCache = 0;\n    } else {\n      this.MemoryCache = 0;\n      if (data.memory_stats.stats.cache !== undefined) {\n        // cgroups v1\n        this.MemoryCache = data.memory_stats.stats.cache;\n      }\n      this.MemoryUsage = data.memory_stats.usage - this.MemoryCache;\n    }\n  }\n  this.PreviousCPUTotalUsage = data.precpu_stats.cpu_usage.total_usage;\n  this.PreviousCPUSystemUsage = data.precpu_stats.system_cpu_usage;\n  this.CurrentCPUTotalUsage = data.cpu_stats.cpu_usage.total_usage;\n  this.CurrentCPUSystemUsage = data.cpu_stats.system_cpu_usage;\n  this.CPUCores = 1;\n  if (data.cpu_stats.cpu_usage.percpu_usage) {\n    this.CPUCores = data.cpu_stats.cpu_usage.percpu_usage.length;\n  } else {\n    if (data.cpu_stats.online_cpus !== undefined) {\n      this.CPUCores = data.cpu_stats.online_cpus;\n    }\n  }\n  this.Networks = _.values(data.networks);\n  if (data.blkio_stats !== undefined && data.blkio_stats.io_service_bytes_recursive !== null) {\n    //TODO: take care of multiple block devices\n    var readData = data.blkio_stats.io_service_bytes_recursive.find((d) => d.op === 'Read');\n    if (readData === undefined) {\n      // try the cgroups v2 version\n      readData = data.blkio_stats.io_service_bytes_recursive.find((d) => d.op === 'read');\n    }\n    if (readData !== undefined) {\n      this.BytesRead = readData.value;\n    }\n    var writeData = data.blkio_stats.io_service_bytes_recursive.find((d) => d.op === 'Write');\n    if (writeData === undefined) {\n      // try the cgroups v2 version\n      writeData = data.blkio_stats.io_service_bytes_recursive.find((d) => d.op === 'write');\n    }\n    if (writeData !== undefined) {\n      this.BytesWrite = writeData.value;\n    }\n  } else {\n    //no IO related data is available\n    this.noIOdata = true;\n  }\n}\n\nexport function ContainerDetailsViewModel(data) {\n  this.Model = data;\n  this.Id = data.Id;\n  this.State = data.State;\n  this.Created = data.Created;\n  this.Name = data.Name;\n  this.NetworkSettings = data.NetworkSettings;\n  this.Args = data.Args;\n  this.Image = data.Image;\n  this.Config = data.Config;\n  this.HostConfig = data.HostConfig;\n  this.Mounts = data.Mounts;\n  if (data.Portainer && data.Portainer.ResourceControl) {\n    this.ResourceControl = new ResourceControlViewModel(data.Portainer.ResourceControl);\n  }\n  this.IsPortainer = data.IsPortainer;\n}\n","function createEventDetails(event) {\n  var eventAttr = event.Actor.Attributes;\n  var details = '';\n\n  var action = event.Action;\n  var extra = '';\n  var hasColon = action.indexOf(':');\n  if (hasColon != -1) {\n    extra = action.substring(hasColon);\n    action = action.substring(0, hasColon);\n  }\n\n  switch (event.Type) {\n    case 'container':\n      switch (action) {\n        case 'stop':\n          details = 'Container ' + eventAttr.name + ' stopped';\n          break;\n        case 'destroy':\n          details = 'Container ' + eventAttr.name + ' deleted';\n          break;\n        case 'create':\n          details = 'Container ' + eventAttr.name + ' created';\n          break;\n        case 'start':\n          details = 'Container ' + eventAttr.name + ' started';\n          break;\n        case 'kill':\n          details = 'Container ' + eventAttr.name + ' killed';\n          break;\n        case 'die':\n          details = 'Container ' + eventAttr.name + ' exited with status code ' + eventAttr.exitCode;\n          break;\n        case 'commit':\n          details = 'Container ' + eventAttr.name + ' committed';\n          break;\n        case 'restart':\n          details = 'Container ' + eventAttr.name + ' restarted';\n          break;\n        case 'pause':\n          details = 'Container ' + eventAttr.name + ' paused';\n          break;\n        case 'unpause':\n          details = 'Container ' + eventAttr.name + ' unpaused';\n          break;\n        case 'attach':\n          details = 'Container ' + eventAttr.name + ' attached';\n          break;\n        case 'detach':\n          details = 'Container ' + eventAttr.name + ' detached';\n          break;\n        case 'copy':\n          details = 'Container ' + eventAttr.name + ' copied';\n          break;\n        case 'export':\n          details = 'Container ' + eventAttr.name + ' exported';\n          break;\n        case 'health_status':\n          details = 'Container ' + eventAttr.name + ' executed health status';\n          break;\n        case 'oom':\n          details = 'Container ' + eventAttr.name + ' goes in out of memory';\n          break;\n        case 'rename':\n          details = 'Container ' + eventAttr.name + ' renamed';\n          break;\n        case 'resize':\n          details = 'Container ' + eventAttr.name + ' resized';\n          break;\n        case 'top':\n          details = 'Showed running processes for container ' + eventAttr.name;\n          break;\n        case 'update':\n          details = 'Container ' + eventAttr.name + ' updated';\n          break;\n        case 'exec_create':\n          details = 'Exec instance created';\n          break;\n        case 'exec_start':\n          details = 'Exec instance started';\n          break;\n        case 'exec_die':\n          details = 'Exec instance exited';\n          break;\n        default:\n          details = 'Unsupported event';\n      }\n      break;\n    case 'image':\n      switch (action) {\n        case 'delete':\n          details = 'Image deleted';\n          break;\n        case 'import':\n          details = 'Image ' + event.Actor.ID + ' imported';\n          break;\n        case 'load':\n          details = 'Image ' + event.Actor.ID + ' loaded';\n          break;\n        case 'tag':\n          details = 'New tag created for ' + eventAttr.name;\n          break;\n        case 'untag':\n          details = 'Image untagged';\n          break;\n        case 'save':\n          details = 'Image ' + event.Actor.ID + ' saved';\n          break;\n        case 'pull':\n          details = 'Image ' + event.Actor.ID + ' pulled';\n          break;\n        case 'push':\n          details = 'Image ' + event.Actor.ID + ' pushed';\n          break;\n        default:\n          details = 'Unsupported event';\n      }\n      break;\n    case 'network':\n      switch (action) {\n        case 'create':\n          details = 'Network ' + eventAttr.name + ' created';\n          break;\n        case 'destroy':\n          details = 'Network ' + eventAttr.name + ' deleted';\n          break;\n        case 'remove':\n          details = 'Network ' + eventAttr.name + ' removed';\n          break;\n        case 'connect':\n          details = 'Container connected to ' + eventAttr.name + ' network';\n          break;\n        case 'disconnect':\n          details = 'Container disconnected from ' + eventAttr.name + ' network';\n          break;\n        default:\n          details = 'Unsupported event';\n      }\n      break;\n    case 'volume':\n      switch (action) {\n        case 'create':\n          details = 'Volume ' + event.Actor.ID + ' created';\n          break;\n        case 'destroy':\n          details = 'Volume ' + event.Actor.ID + ' deleted';\n          break;\n        case 'mount':\n          details = 'Volume ' + event.Actor.ID + ' mounted';\n          break;\n        case 'unmount':\n          details = 'Volume ' + event.Actor.ID + ' unmounted';\n          break;\n        default:\n          details = 'Unsupported event';\n      }\n      break;\n    default:\n      details = 'Unsupported event';\n  }\n  return details + extra;\n}\n\nexport function EventViewModel(data) {\n  // Type, Action, Actor unavailable in Docker < 1.10\n  this.Time = data.time;\n  if (data.Type) {\n    this.Type = data.Type;\n    this.Details = createEventDetails(data);\n  } else {\n    this.Type = data.status;\n    this.Details = data.from;\n  }\n}\n","export function ImageViewModel(data) {\n  this.Id = data.Id;\n  this.Tag = data.Tag;\n  this.Repository = data.Repository;\n  this.Created = data.Created;\n  this.Checked = false;\n  this.RepoTags = data.RepoTags;\n  if ((!this.RepoTags || this.RepoTags.length === 0) && data.RepoDigests) {\n    this.RepoTags = [];\n    for (var i = 0; i < data.RepoDigests.length; i++) {\n      var digest = data.RepoDigests[i];\n      var repository = digest.substring(0, digest.indexOf('@'));\n      this.RepoTags.push(repository + ':<none>');\n    }\n  }\n\n  this.Size = data.Size;\n  this.Used = data.Used;\n\n  if (data.Portainer && data.Portainer.Agent && data.Portainer.Agent.NodeName) {\n    this.NodeName = data.Portainer.Agent.NodeName;\n  }\n  this.Labels = data.Labels;\n}\n\nexport function ImageBuildModel(data) {\n  this.hasError = false;\n  var buildLogs = [];\n\n  for (var i = 0; i < data.length; i++) {\n    var line = data[i];\n\n    if (line.stream) {\n      line = line.stream.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '');\n      buildLogs.push(line);\n    }\n\n    if (line.errorDetail) {\n      buildLogs.push(line.errorDetail.message);\n      this.hasError = true;\n    }\n  }\n\n  this.buildLogs = buildLogs;\n}\n","export function ImageDetailsViewModel(data) {\n  this.Id = data.Id;\n  this.Tag = data.Tag;\n  this.Parent = data.Parent;\n  this.Repository = data.Repository;\n  this.Created = data.Created;\n  this.Checked = false;\n  this.RepoTags = data.RepoTags;\n  this.Size = data.Size;\n  this.DockerVersion = data.DockerVersion;\n  this.Os = data.Os;\n  this.Architecture = data.Architecture;\n  this.Author = data.Author;\n  this.Command = data.Config.Cmd;\n\n  let config = {};\n  if (data.Config) {\n    config = data.Config; // this is part of OCI images-spec\n  } else if (data.ContainerConfig != null) {\n    config = data.ContainerConfig; // not OCI ; has been removed in Docker 26 (API v1.45) along with .Container\n  }\n  this.Entrypoint = config.Entrypoint ? config.Entrypoint : '';\n  this.ExposedPorts = config.ExposedPorts ? Object.keys(config.ExposedPorts) : [];\n  this.Volumes = config.Volumes ? Object.keys(config.Volumes) : [];\n  this.Env = config.Env ? config.Env : [];\n  this.Labels = config.Labels;\n}\n","export function ImageLayerViewModel(order, data) {\n  this.Order = order;\n  this.Id = data.Id;\n  this.Created = data.Created;\n  this.CreatedBy = data.CreatedBy;\n  this.Size = data.Size;\n  this.Comment = data.Comment;\n  this.Tags = data.Tags;\n}\n","// This model is based on https://github.com/moby/moby/blob/0ac25dfc751fa4304ab45afd5cd8705c2235d101/api/types/plugin.go#L8-L31\n// instead of the official documentation.\n// See: https://github.com/moby/moby/issues/34241\nexport function PluginViewModel(data) {\n  this.Id = data.Id;\n  this.Name = data.Name;\n  this.Enabled = data.Enabled;\n  this.Config = data.Config;\n}\n","/**\n * This model should be used with por-image-registry component\n * And bound to the 'model' attribute\n *\n * // viewController.js\n *\n * this.imageModel = new PorImageRegistryModel();\n *\n * // view.html\n * <por-image-registry model=\"$ctrl.imageModel\" ... />\n */\nexport function PorImageRegistryModel() {\n  this.UseRegistry = true;\n  this.Registry = {};\n  this.Image = '';\n}\n","export function SwarmViewModel(data) {\n  this.Id = data.ID;\n}\n","import { API_ENDPOINT_ENDPOINTS } from '@/constants';\nimport { jsonObjectsToArrayHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('Build', [\n  '$resource',\n  function BuildFactory($resource) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/build',\n      {},\n      {\n        buildImage: {\n          method: 'POST',\n          ignoreLoadingBar: true,\n          transformResponse: jsonObjectsToArrayHandler,\n          isArray: true,\n          headers: { 'Content-Type': 'application/x-tar' },\n        },\n        buildImageOverride: {\n          method: 'POST',\n          ignoreLoadingBar: true,\n          transformResponse: jsonObjectsToArrayHandler,\n          isArray: true,\n        },\n      }\n    );\n  },\n]);\n","angular.module('portainer.docker').factory('Commit', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  function CommitFactory($resource, API_ENDPOINT_ENDPOINTS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:environmentId/docker/commit',\n      {},\n      {\n        commitContainer: { method: 'POST', params: { container: '@id', repo: '@repo' }, ignoreLoadingBar: true },\n      }\n    );\n  },\n]);\n","angular.module('portainer.docker').factory('Config', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  function ConfigFactory($resource, API_ENDPOINT_ENDPOINTS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:environmentId/docker/configs/:id/:action',\n      {\n        environmentId: '@environmentId',\n      },\n      {\n        get: { method: 'GET', params: { id: '@id' } },\n        query: { method: 'GET', isArray: true },\n        create: { method: 'POST', params: { action: 'create' }, ignoreLoadingBar: true },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","import { genericHandler, logsHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('Container', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  function ContainerFactory($resource, API_ENDPOINT_ENDPOINTS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:environmentId/docker/containers/:id/:action',\n      {\n        name: '@name',\n        environmentId: '@environmentId',\n      },\n      {\n        query: {\n          method: 'GET',\n          params: { all: 0, action: 'json', filters: '@filters' },\n          isArray: true,\n        },\n        get: {\n          method: 'GET',\n          params: { action: 'json' },\n        },\n        logs: {\n          method: 'GET',\n          params: { id: '@id', action: 'logs' },\n          ignoreLoadingBar: true,\n          transformResponse: logsHandler,\n        },\n        stats: {\n          method: 'GET',\n          params: { id: '@id', stream: false, action: 'stats' },\n          ignoreLoadingBar: true,\n        },\n        top: {\n          method: 'GET',\n          params: { id: '@id', action: 'top' },\n          ignoreLoadingBar: true,\n        },\n        create: {\n          method: 'POST',\n          params: { action: 'create' },\n          transformResponse: genericHandler,\n          ignoreLoadingBar: true,\n        },\n        exec: {\n          method: 'POST',\n          params: { id: '@id', action: 'exec' },\n          transformResponse: genericHandler,\n          ignoreLoadingBar: true,\n        },\n        inspect: {\n          method: 'GET',\n          params: { id: '@id', action: 'json' },\n        },\n        update: {\n          method: 'POST',\n          params: { id: '@id', action: 'update' },\n        },\n        prune: {\n          method: 'POST',\n          params: { action: 'prune', filters: '@filters' },\n        },\n        resize: {\n          method: 'POST',\n          params: { id: '@id', action: 'resize', h: '@height', w: '@width' },\n          transformResponse: genericHandler,\n          ignoreLoadingBar: true,\n        },\n      }\n    );\n  },\n]);\n","import { genericHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('Exec', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function ExecFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/exec/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        resize: {\n          method: 'POST',\n          params: { id: '@id', action: 'resize', h: '@height', w: '@width' },\n          transformResponse: genericHandler,\n          ignoreLoadingBar: true,\n        },\n      }\n    );\n  },\n]);\n","import { deleteImageHandler, jsonObjectsToArrayHandler } from './response/handlers';\nimport { imageGetResponse } from './response/image';\n\nangular.module('portainer.docker').factory('Image', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  'HttpRequestHelper',\n  function ImageFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider, HttpRequestHelper) {\n    'use strict';\n\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/images/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        query: { method: 'GET', params: { all: 0, action: 'json' }, isArray: true },\n        get: { method: 'GET', params: { action: 'json' } },\n        search: { method: 'GET', params: { action: 'search' } },\n        history: { method: 'GET', params: { action: 'history' }, isArray: true },\n        insert: { method: 'POST', params: { id: '@id', action: 'insert' } },\n        tag: { method: 'POST', params: { id: '@id', action: 'tag', force: 0, repo: '@repo' }, ignoreLoadingBar: true },\n        inspect: { method: 'GET', params: { id: '@id', action: 'json' } },\n        push: {\n          method: 'POST',\n          params: { action: 'push', id: '@imageName' },\n          isArray: true,\n          transformResponse: jsonObjectsToArrayHandler,\n          headers: { 'X-Registry-Auth': HttpRequestHelper.registryAuthenticationHeader },\n          ignoreLoadingBar: true,\n        },\n        create: {\n          method: 'POST',\n          params: { action: 'create', fromImage: '@fromImage' },\n          isArray: true,\n          transformResponse: jsonObjectsToArrayHandler,\n          headers: { 'X-Registry-Auth': HttpRequestHelper.registryAuthenticationHeader },\n          ignoreLoadingBar: true,\n        },\n        download: {\n          method: 'GET',\n          params: { action: 'get', names: '@names' },\n          transformResponse: imageGetResponse,\n          responseType: 'blob',\n          ignoreLoadingBar: true,\n        },\n        remove: {\n          method: 'DELETE',\n          params: { id: '@id', force: '@force' },\n          isArray: true,\n          transformResponse: deleteImageHandler,\n        },\n      }\n    );\n  },\n]);\n","import { genericHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('Network', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function NetworkFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/networks/:id/:action',\n      {\n        id: '@id',\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        query: {\n          method: 'GET',\n          isArray: true,\n        },\n        get: {\n          method: 'GET',\n        },\n        create: {\n          method: 'POST',\n          params: { action: 'create' },\n          transformResponse: genericHandler,\n          ignoreLoadingBar: true,\n        },\n        remove: {\n          method: 'DELETE',\n          transformResponse: genericHandler,\n        },\n        connect: {\n          method: 'POST',\n          params: { action: 'connect' },\n        },\n        disconnect: {\n          method: 'POST',\n          params: { action: 'disconnect' },\n        },\n      }\n    );\n  },\n]);\n","angular.module('portainer.docker').factory('Node', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function NodeFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/nodes/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        query: { method: 'GET', isArray: true },\n        get: { method: 'GET', params: { id: '@id' } },\n        update: { method: 'POST', params: { id: '@id', action: 'update', version: '@version' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.docker').factory('Plugin', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function PluginFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/plugins/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        query: { method: 'GET', isArray: true },\n      }\n    );\n  },\n]);\n","function isJSONArray(jsonString) {\n  return Object.prototype.toString.call(jsonString) === '[object Array]';\n}\n\nfunction isJSON(jsonString) {\n  try {\n    var o = JSON.parse(jsonString);\n    if (o && typeof o === 'object') {\n      return o;\n    }\n  } catch (e) {\n    //empty\n  }\n  return false;\n}\n\n// The Docker API often returns a list of JSON object.\n// This handler wrap the JSON objects in an array.\n// Used by the API in: Image push, Image create, Events query.\nexport function jsonObjectsToArrayHandler(data) {\n  // catching empty data helps the function not to fail and prevents unwanted error message to user.\n  if (!data) {\n    return [];\n  }\n  var str = '[' + data.replace(/\\n/g, ' ').replace(/\\}\\s*\\{/g, '}, {') + ']';\n  return angular.fromJson(str);\n}\n\n// The Docker API often returns an empty string or a valid JSON object on success (Docker 1.9 -> Docker 1.12).\n// On error, it returns either an error message as a string (Docker < 1.12) or a JSON object with the field message\n// container the error (Docker = 1.12)\n// This handler ensure a valid JSON object is returned in any case.\n// Used by the API in: container deletion, network deletion, network creation, volume creation,\n// container exec, exec resize.\nexport function genericHandler(data) {\n  var response = {};\n  // No data is returned when deletion is successful (Docker 1.9 -> 1.12)\n  if (!data) {\n    return response;\n  }\n  // A string is returned on failure (Docker < 1.12)\n  else if (!isJSON(data)) {\n    response.message = data;\n  }\n  // Docker 1.12 returns a valid JSON object when an error occurs\n  else {\n    response = angular.fromJson(data);\n  }\n  return response;\n}\n\n// The Docker API returns the logs as a single string.\n// This handler wraps the data in a JSON object under the \"logs\" property.\nexport function logsHandler(data) {\n  return {\n    logs: data,\n  };\n}\n\n// Image delete API returns an array on success (Docker 1.9 -> Docker 1.12).\n// On error, it returns either an error message as a string (Docker < 1.12) or a JSON object with the field message\n// container the error (Docker = 1.12).\n// This handler returns the original array on success or a newly created array containing\n// only one JSON object with the field message filled with the error message on failure.\nexport function deleteImageHandler(data) {\n  // A string is returned on failure (Docker < 1.12)\n  var response = [];\n  if (!isJSON(data)) {\n    response.push({ message: data });\n  }\n  // A JSON object is returned on failure (Docker = 1.12)\n  else if (!isJSONArray(data)) {\n    var json = angular.fromJson(data);\n    response.push(json);\n  }\n  // An array is returned on success (Docker 1.9 -> 1.12)\n  else {\n    response = angular.fromJson(data);\n  }\n  return response;\n}\n","// The get action of the Image service returns a file.\n// ngResource will transform it as an array of chars.\n// This functions simply creates a response object and assign\n// the data to a field.\nexport function imageGetResponse(data) {\n  var response = {};\n  response.file = data;\n  return response;\n}\n","angular.module('portainer.docker').factory('Secret', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function SecretFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/secrets/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        get: { method: 'GET', params: { id: '@id' } },\n        query: { method: 'GET', isArray: true },\n        create: { method: 'POST', params: { action: 'create' }, ignoreLoadingBar: true },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","import { logsHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('Service', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  'HttpRequestHelper',\n  function ServiceFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider, HttpRequestHelper) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/services/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        get: { method: 'GET', params: { id: '@id' } },\n        query: { method: 'GET', isArray: true, params: { filters: '@filters' } },\n        create: {\n          method: 'POST',\n          params: { action: 'create' },\n          headers: {\n            'X-Registry-Auth': HttpRequestHelper.registryAuthenticationHeader,\n            version: '1.29',\n          },\n          ignoreLoadingBar: true,\n        },\n        update: {\n          method: 'POST',\n          params: { id: '@id', action: 'update', version: '@version', rollback: '@rollback' },\n          headers: {\n            'X-Registry-Auth': (config) => btoa(JSON.stringify({ registryId: config.data.registryId })),\n            version: '1.29',\n          },\n        },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n        logs: {\n          method: 'GET',\n          params: { id: '@id', action: 'logs' },\n          ignoreLoadingBar: true,\n          transformResponse: logsHandler,\n        },\n      }\n    );\n  },\n]);\n","angular.module('portainer.docker').factory('Swarm', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function SwarmFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/swarm',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        get: { method: 'GET' },\n      }\n    );\n  },\n]);\n","import { jsonObjectsToArrayHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('System', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function SystemFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/:action/:subAction',\n      {\n        name: '@name',\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        info: {\n          method: 'GET',\n          params: { action: 'info' },\n        },\n        version: { method: 'GET', params: { action: 'version' } },\n        events: {\n          method: 'GET',\n          params: { action: 'events', since: '@since', until: '@until' },\n          isArray: true,\n          transformResponse: jsonObjectsToArrayHandler,\n        },\n        auth: { method: 'POST', params: { action: 'auth' } },\n        dataUsage: { method: 'GET', params: { action: 'system', subAction: 'df' } },\n      }\n    );\n  },\n]);\n","import { logsHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('Task', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function TaskFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/tasks/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        get: { method: 'GET', params: { id: '@id' } },\n        query: { method: 'GET', isArray: true, params: { filters: '@filters' } },\n        logs: {\n          method: 'GET',\n          params: { id: '@id', action: 'logs' },\n          ignoreLoadingBar: true,\n          transformResponse: logsHandler,\n        },\n      }\n    );\n  },\n]);\n","import { genericHandler } from './response/handlers';\n\nangular.module('portainer.docker').factory('Volume', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function VolumeFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n\n    function addVolumeNameToHeader(config) {\n      return config.data.Name || '';\n    }\n\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/volumes/:id/:action',\n      {\n        endpointId: EndpointProvider.endpointID,\n      },\n      {\n        query: { method: 'GET' },\n        get: { method: 'GET', params: { id: '@id' } },\n        create: {\n          method: 'POST',\n          params: { action: 'create' },\n          transformResponse: genericHandler,\n          ignoreLoadingBar: true,\n          headers: { 'X-Portainer-VolumeName': addVolumeNameToHeader },\n        },\n        remove: {\n          method: 'DELETE',\n          transformResponse: genericHandler,\n          params: { id: '@id' },\n        },\n      }\n    );\n  },\n]);\n","import { ImageBuildModel } from '../models/image';\n\nangular.module('portainer.docker').factory('BuildService', [\n  '$q',\n  'Build',\n  'FileUploadService',\n  function BuildServiceFactory($q, Build, FileUploadService) {\n    'use strict';\n    var service = {};\n\n    service.buildImageFromUpload = function (endpointID, names, file, path) {\n      var deferred = $q.defer();\n\n      FileUploadService.buildImage(endpointID, names, file, path)\n        .then(function success(response) {\n          var model = new ImageBuildModel(response.data);\n          deferred.resolve(model);\n        })\n        .catch(function error(err) {\n          deferred.reject(err);\n        });\n\n      return deferred.promise;\n    };\n\n    service.buildImageFromURL = function (endpointId, names, url, path) {\n      var params = {\n        endpointId,\n        t: names,\n        remote: url,\n        dockerfile: path,\n      };\n\n      var deferred = $q.defer();\n\n      Build.buildImage(params, {})\n        .$promise.then(function success(data) {\n          var model = new ImageBuildModel(data);\n          deferred.resolve(model);\n        })\n        .catch(function error(err) {\n          deferred.reject(err);\n        });\n\n      return deferred.promise;\n    };\n\n    service.buildImageFromDockerfileContent = function (endpointId, names, content) {\n      var params = {\n        endpointId,\n        t: names,\n      };\n      var payload = {\n        content: content,\n      };\n\n      var deferred = $q.defer();\n\n      Build.buildImageOverride(params, payload)\n        .$promise.then(function success(data) {\n          var model = new ImageBuildModel(data);\n          deferred.resolve(model);\n        })\n        .catch(function error(err) {\n          deferred.reject(err);\n        });\n\n      return deferred.promise;\n    };\n\n    service.buildImageFromDockerfileContentAndFiles = function (endpointID, names, content, files) {\n      var dockerfile = new Blob([content], { type: 'text/plain' });\n      var uploadFiles = [dockerfile].concat(files);\n\n      var deferred = $q.defer();\n\n      FileUploadService.buildImageFromFiles(endpointID, names, uploadFiles)\n        .then(function success(response) {\n          var model = new ImageBuildModel(response.data);\n          deferred.resolve(model);\n        })\n        .catch(function error(err) {\n          deferred.reject(err);\n        });\n\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import { ConfigViewModel } from '../models/config';\n\nangular.module('portainer.docker').factory('ConfigService', [\n  '$q',\n  'Config',\n  function ConfigServiceFactory($q, Config) {\n    'use strict';\n    var service = {};\n\n    service.config = function (environmentId, configId) {\n      var deferred = $q.defer();\n\n      Config.get({ id: configId, environmentId })\n        .$promise.then(function success(data) {\n          var config = new ConfigViewModel(data);\n          deferred.resolve(config);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve config details', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.configs = function (environmentId) {\n      var deferred = $q.defer();\n\n      Config.query({ environmentId })\n        .$promise.then(function success(data) {\n          var configs = data.map(function (item) {\n            return new ConfigViewModel(item);\n          });\n          deferred.resolve(configs);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve configs', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.remove = function (environmentId, configId) {\n      var deferred = $q.defer();\n\n      Config.remove({ environmentId, id: configId })\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: data.message });\n          } else {\n            deferred.resolve();\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to remove config', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.create = function (environmentId, config) {\n      return Config.create({ environmentId }, config).$promise;\n    };\n\n    return service;\n  },\n]);\n","import angular from 'angular';\nimport {\n  killContainer,\n  pauseContainer,\n  removeContainer,\n  renameContainer,\n  restartContainer,\n  resumeContainer,\n  startContainer,\n  stopContainer,\n  recreateContainer,\n} from '@/react/docker/containers/containers.service';\nimport { ContainerDetailsViewModel, ContainerStatsViewModel, ContainerViewModel } from '../models/container';\nimport { formatLogs } from '../helpers/logHelper';\n\nangular.module('portainer.docker').factory('ContainerService', ContainerServiceFactory);\n\n/* @ngInject */\nfunction ContainerServiceFactory($q, Container, $timeout) {\n  const service = {\n    killContainer,\n    pauseContainer,\n    renameContainer,\n    restartContainer,\n    resumeContainer,\n    startContainer,\n    stopContainer,\n    recreateContainer,\n    remove: removeContainer,\n    updateRestartPolicy,\n    updateLimits,\n  };\n\n  service.container = function (environmentId, id) {\n    var deferred = $q.defer();\n\n    Container.get({ environmentId, id })\n      .$promise.then(function success(data) {\n        var container = new ContainerDetailsViewModel(data);\n        deferred.resolve(container);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve container information', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  service.containers = function (environmentId, all, filters) {\n    var deferred = $q.defer();\n    Container.query({ environmentId, all, filters })\n      .$promise.then(function success(data) {\n        var containers = data.map(function (item) {\n          return new ContainerViewModel(item);\n        });\n        deferred.resolve(containers);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve containers', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  service.resizeTTY = function (environmentId, id, width, height, timeout) {\n    var deferred = $q.defer();\n\n    $timeout(function () {\n      Container.resize({}, { environmentId, id, width, height })\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: 'Unable to resize tty of container ' + id, err: data.message });\n          } else {\n            deferred.resolve(data);\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to resize tty of container ' + id, err: err });\n        });\n    }, timeout);\n\n    return deferred.promise;\n  };\n\n  function updateRestartPolicy(environmentId, id, restartPolicy, maximumRetryCounts) {\n    return Container.update({ environmentId, id }, { RestartPolicy: { Name: restartPolicy, MaximumRetryCount: maximumRetryCounts } }).$promise;\n  }\n\n  function updateLimits(environmentId, id, config) {\n    return Container.update(\n      { environmentId, id },\n      {\n        // MemorySwap: must be set\n        // -1: non limits, 0: treated as unset(cause update error).\n        MemoryReservation: config.HostConfig.MemoryReservation,\n        Memory: config.HostConfig.Memory,\n        MemorySwap: -1,\n        NanoCpus: config.HostConfig.NanoCpus,\n      }\n    ).$promise;\n  }\n\n  service.createContainer = function (environmentId, configuration) {\n    var deferred = $q.defer();\n    Container.create({ environmentId }, configuration)\n      .$promise.then(function success(data) {\n        deferred.resolve(data);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to create container', err: err });\n      });\n    return deferred.promise;\n  };\n\n  service.createAndStartContainer = function (environmentId, configuration) {\n    var deferred = $q.defer();\n    var container;\n    service\n      .createContainer(environmentId, configuration)\n      .then(function success(data) {\n        container = data;\n        return service.startContainer(environmentId, container.Id);\n      })\n      .then(function success() {\n        deferred.resolve(container);\n      })\n      .catch(function error(err) {\n        deferred.reject(err);\n      });\n    return deferred.promise;\n  };\n\n  service.createExec = function (environmentId, execConfig) {\n    var deferred = $q.defer();\n\n    Container.exec({ environmentId }, execConfig)\n      .$promise.then(function success(data) {\n        if (data.message) {\n          deferred.reject({ msg: data.message, err: data.message });\n        } else {\n          deferred.resolve(data);\n        }\n      })\n      .catch(function error(err) {\n        deferred.reject(err);\n      });\n\n    return deferred.promise;\n  };\n\n  service.logs = function (environmentId, id, stdout, stderr, timestamps, since, tail, stripHeaders) {\n    var deferred = $q.defer();\n\n    var parameters = {\n      id: id,\n      stdout: stdout || 0,\n      stderr: stderr || 0,\n      timestamps: timestamps || 0,\n      since: since || 0,\n      tail: tail || 'all',\n      environmentId,\n    };\n\n    Container.logs(parameters)\n      .$promise.then(function success(data) {\n        var logs = formatLogs(data.logs, { stripHeaders, withTimestamps: !!timestamps });\n        deferred.resolve(logs);\n      })\n      .catch(function error(err) {\n        deferred.reject(err);\n      });\n\n    return deferred.promise;\n  };\n\n  service.containerStats = function (environmentId, id) {\n    var deferred = $q.defer();\n\n    Container.stats({ environmentId, id })\n      .$promise.then(function success(data) {\n        var containerStats = new ContainerStatsViewModel(data);\n        deferred.resolve(containerStats);\n      })\n      .catch(function error(err) {\n        deferred.reject(err);\n      });\n\n    return deferred.promise;\n  };\n\n  service.containerTop = function (environmentId, id) {\n    return Container.top({ environmentId, id }).$promise;\n  };\n\n  service.inspect = function (environmentId, id) {\n    return Container.inspect({ environmentId, id }).$promise;\n  };\n\n  service.prune = function (environmentId, filters) {\n    return Container.prune({ environmentId, filters }).$promise;\n  };\n\n  return service;\n}\n","angular.module('portainer.docker').factory('ExecService', [\n  '$q',\n  '$timeout',\n  'Exec',\n  function ExecServiceFactory($q, $timeout, Exec) {\n    'use strict';\n    var service = {};\n\n    service.resizeTTY = function (execId, width, height, timeout) {\n      var deferred = $q.defer();\n\n      $timeout(function () {\n        Exec.resize({}, { id: execId, height: height, width: width })\n          .$promise.then(function success(data) {\n            if (data.message) {\n              deferred.reject({ msg: 'Unable to resize tty of exec', err: data.message });\n            } else {\n              deferred.resolve(data);\n            }\n          })\n          .catch(function error(err) {\n            deferred.reject({ msg: 'Unable to resize tty of exec', err: err });\n          });\n      }, timeout);\n\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import _ from 'lodash';\nimport { getUniqueTagListFromImages } from '@/react/docker/images/utils';\nimport { ImageViewModel } from '../models/image';\nimport { ImageDetailsViewModel } from '../models/imageDetails';\nimport { ImageLayerViewModel } from '../models/imageLayer';\n\nangular.module('portainer.docker').factory('ImageService', [\n  '$q',\n  'Image',\n  'ImageHelper',\n  'RegistryService',\n  'HttpRequestHelper',\n  'ContainerService',\n  'FileUploadService',\n  function ImageServiceFactory($q, Image, ImageHelper, RegistryService, HttpRequestHelper, ContainerService, FileUploadService) {\n    'use strict';\n    var service = {};\n\n    service.image = function (imageId) {\n      var deferred = $q.defer();\n      Image.get({ id: imageId })\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: data.message });\n          } else {\n            var image = new ImageDetailsViewModel(data);\n            deferred.resolve(image);\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve image details', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.images = function ({ environmentId, withUsage } = {}) {\n      var deferred = $q.defer();\n\n      $q.all({\n        containers: withUsage ? ContainerService.containers(environmentId, 1) : [],\n        images: Image.query({}).$promise,\n      })\n        .then(function success(data) {\n          var containers = data.containers;\n          const containerByImageId = _.groupBy(containers, 'ImageID');\n\n          var images = data.images.map(function (item) {\n            item.Used = !!containerByImageId[item.Id] && containerByImageId[item.Id].length > 0;\n            return new ImageViewModel(item);\n          });\n\n          deferred.resolve(images);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve images', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.history = function (imageId) {\n      var deferred = $q.defer();\n      Image.history({ id: imageId })\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: data.message });\n          } else {\n            var layers = [];\n            var order = data.length;\n            angular.forEach(data, function (imageLayer) {\n              layers.push(new ImageLayerViewModel(order, imageLayer));\n              order--;\n            });\n            deferred.resolve(layers);\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve image details', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.pushImage = pushImage;\n    /**\n     *\n     * @param {PorImageRegistryModel} registryModel\n     */\n    function pushImage(registryModel) {\n      var deferred = $q.defer();\n\n      var authenticationDetails = registryModel.Registry.Authentication ? RegistryService.encodedCredentials(registryModel.Registry) : '';\n      HttpRequestHelper.setRegistryAuthenticationHeader(authenticationDetails);\n\n      const imageConfiguration = ImageHelper.createImageConfigForContainer(registryModel);\n\n      Image.push({ imageName: imageConfiguration.fromImage })\n        .$promise.then(function success(data) {\n          if (data[data.length - 1].error) {\n            deferred.reject({ msg: data[data.length - 1].error });\n          } else {\n            deferred.resolve();\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to push image tag', err: err });\n        });\n      return deferred.promise;\n    }\n\n    /**\n     * PULL IMAGE\n     */\n\n    function pullImageAndIgnoreErrors(imageConfiguration) {\n      var deferred = $q.defer();\n\n      Image.create({}, imageConfiguration)\n        .$promise.catch(() => {\n          // left empty to ignore errors\n        })\n        .finally(function final() {\n          deferred.resolve();\n        });\n\n      return deferred.promise;\n    }\n\n    function pullImageAndAcknowledgeErrors(imageConfiguration) {\n      var deferred = $q.defer();\n\n      Image.create({}, imageConfiguration)\n        .$promise.then(function success(data) {\n          var err = data.length > 0 && data[data.length - 1].message;\n          if (err) {\n            var detail = data[data.length - 1];\n            deferred.reject({ msg: detail.message });\n          } else {\n            deferred.resolve(data);\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to pull image', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    service.pullImage = pullImage;\n\n    /**\n     *\n     * @param {PorImageRegistryModel} registry\n     * @param {bool} ignoreErrors\n     */\n    function pullImage(registry, ignoreErrors) {\n      var authenticationDetails = registry.Registry.Authentication ? RegistryService.encodedCredentials(registry.Registry) : '';\n      HttpRequestHelper.setRegistryAuthenticationHeader(authenticationDetails);\n\n      var imageConfiguration = ImageHelper.createImageConfigForContainer(registry);\n\n      if (ignoreErrors) {\n        return pullImageAndIgnoreErrors(imageConfiguration);\n      }\n      return pullImageAndAcknowledgeErrors(imageConfiguration);\n    }\n\n    /**\n     * ! PULL IMAGE\n     */\n\n    service.tagImage = function (id, image) {\n      return Image.tag({ id: id, repo: image }).$promise;\n    };\n\n    /**\n     *\n     * @param {Array<{tags: Array<string>; id: string;}>} images\n     * @returns {Promise<unknown>}\n     */\n    service.downloadImages = function (images) {\n      var names = ImageHelper.getImagesNamesForDownload(images);\n      return Image.download(names).$promise;\n    };\n\n    service.uploadImage = function (file) {\n      return FileUploadService.loadImages(file);\n    };\n\n    service.deleteImage = function (id, forceRemoval) {\n      var deferred = $q.defer();\n      Image.remove({ id: id, force: forceRemoval })\n        .$promise.then(function success(data) {\n          if (data[0].message) {\n            deferred.reject({ msg: data[0].message });\n          } else {\n            deferred.resolve();\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to remove image', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.getUniqueTagListFromImages = getUniqueTagListFromImages;\n\n    return service;\n  },\n]);\n","import { IPAM, Network, NetworkContainer } from 'docker-types/generated/1.41';\n\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { IResource } from '@/react/docker/components/datatable/createOwnershipColumn';\nimport { PortainerMetadata } from '@/react/docker/types';\n\nexport class NetworkViewModel implements IResource {\n  Id: string;\n\n  Name: string;\n\n  Scope: string;\n\n  Driver: string;\n\n  Attachable: boolean;\n\n  Internal: boolean;\n\n  IPAM?: IPAM;\n\n  Containers?: Record<string, NetworkContainer>;\n\n  Options?: Record<string, string>;\n\n  Ingress: boolean;\n\n  Labels: Record<string, string>;\n\n  StackName?: string;\n\n  NodeName?: string;\n\n  ConfigFrom?: { Network: string };\n\n  ConfigOnly?: boolean;\n\n  ResourceControl?: ResourceControlViewModel;\n\n  constructor(\n    data: Network & {\n      Portainer?: PortainerMetadata;\n      ConfigFrom?: { Network: string };\n      ConfigOnly?: boolean;\n    }\n  ) {\n    this.Id = data.Id || '';\n    this.Name = data.Name || '';\n    this.Scope = data.Scope || '';\n    this.Driver = data.Driver || '';\n    this.Attachable = data.Attachable || false;\n    this.Internal = data.Internal || false;\n    this.IPAM = data.IPAM;\n    this.Containers = data.Containers;\n    this.Options = data.Options;\n    this.Ingress = data.Ingress || false;\n\n    this.Labels = data.Labels || {};\n    if (this.Labels && this.Labels['com.docker.compose.project']) {\n      this.StackName = this.Labels['com.docker.compose.project'];\n    } else if (this.Labels && this.Labels['com.docker.stack.namespace']) {\n      this.StackName = this.Labels['com.docker.stack.namespace'];\n    }\n\n    if (data.Portainer) {\n      if (data.Portainer.ResourceControl) {\n        this.ResourceControl = new ResourceControlViewModel(\n          data.Portainer.ResourceControl\n        );\n      }\n      if (data.Portainer.Agent && data.Portainer.Agent.NodeName) {\n        this.NodeName = data.Portainer.Agent.NodeName;\n      }\n    }\n\n    this.ConfigFrom = data.ConfigFrom;\n    this.ConfigOnly = data.ConfigOnly;\n  }\n}\n","import { NetworkViewModel } from '../models/network';\n\nangular.module('portainer.docker').factory('NetworkService', [\n  '$q',\n  'Network',\n  function NetworkServiceFactory($q, Network) {\n    'use strict';\n    var service = {};\n\n    service.create = function (networkConfiguration) {\n      var deferred = $q.defer();\n\n      Network.create(networkConfiguration)\n        .$promise.then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create network', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.network = function (id) {\n      var deferred = $q.defer();\n\n      Network.get({ id: id })\n        .$promise.then(function success(data) {\n          var network = new NetworkViewModel(data);\n          deferred.resolve(network);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve network details', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.networks = function (localNetworks, swarmNetworks, swarmAttachableNetworks, filters) {\n      var deferred = $q.defer();\n\n      Network.query({ filters: filters })\n        .$promise.then(function success(data) {\n          var networks = data;\n          var filteredNetworks = networks\n            .filter(function (network) {\n              if (localNetworks && network.Scope === 'local') {\n                return network;\n              }\n              if (swarmNetworks && network.Scope === 'swarm') {\n                return network;\n              }\n              if (swarmAttachableNetworks && network.Scope === 'swarm' && network.Attachable === true) {\n                return network;\n              }\n            })\n            .map(function (item) {\n              return new NetworkViewModel(item);\n            });\n\n          deferred.resolve(filteredNetworks);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve networks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.remove = function (id) {\n      return Network.remove({ id: id }).$promise;\n    };\n\n    return service;\n  },\n]);\n","import {\n  Node,\n  EngineDescription,\n  ManagerStatus,\n  NodeDescription,\n  NodeSpec,\n  NodeStatus,\n  ObjectVersion,\n  Platform,\n  ResourceObject,\n} from 'docker-types/generated/1.41';\n\nimport { WithRequiredProperty } from '@/types';\n\nexport class NodeViewModel {\n  Model: Node;\n\n  Id: Node['ID'];\n\n  Version: ObjectVersion['Index'];\n\n  Name: NodeSpec['Name'];\n\n  Role: NodeSpec['Role'];\n\n  CreatedAt: Node['CreatedAt'];\n\n  UpdatedAt: Node['UpdatedAt'];\n\n  Availability: NodeSpec['Availability'];\n\n  Labels: Array<{\n    key: string;\n    value: string;\n    originalKey: string;\n    originalValue: string;\n    added: boolean;\n  }>;\n\n  EngineLabels: Array<{ key: string; value: string }>;\n\n  Hostname: NodeDescription['Hostname'];\n\n  PlatformArchitecture: Platform['Architecture'];\n\n  PlatformOS: Platform['OS'];\n\n  CPUs: ResourceObject['NanoCPUs'];\n\n  Memory: ResourceObject['MemoryBytes'];\n\n  EngineVersion: EngineDescription['EngineVersion'];\n\n  Plugins: EngineDescription['Plugins'];\n\n  Status: NodeStatus['State'];\n\n  Addr: WithRequiredProperty<NodeStatus, 'Addr'>['Addr'] = '';\n\n  Leader: ManagerStatus['Leader'];\n\n  Reachability: ManagerStatus['Reachability'];\n\n  ManagerAddr: ManagerStatus['Addr'];\n\n  constructor(data: Node) {\n    this.Model = data;\n    this.Id = data.ID;\n    this.Version = data.Version?.Index;\n    this.Name = data.Spec?.Name;\n    this.Role = data.Spec?.Role;\n    this.CreatedAt = data.CreatedAt;\n    this.UpdatedAt = data.UpdatedAt;\n    this.Availability = data.Spec?.Availability;\n\n    const labels = data.Spec?.Labels;\n    if (labels) {\n      this.Labels = Object.keys(labels).map((key) => ({\n        key,\n        value: labels[key],\n        originalKey: key,\n        originalValue: labels[key],\n        added: true,\n      }));\n    } else {\n      this.Labels = [];\n    }\n\n    const engineLabels = data.Description?.Engine?.Labels;\n    if (engineLabels) {\n      this.EngineLabels = Object.keys(engineLabels).map((key) => ({\n        key,\n        value: engineLabels[key],\n      }));\n    } else {\n      this.EngineLabels = [];\n    }\n\n    this.Hostname = data.Description?.Hostname;\n    this.PlatformArchitecture = data.Description?.Platform?.Architecture;\n    this.PlatformOS = data.Description?.Platform?.OS;\n    this.CPUs = data.Description?.Resources?.NanoCPUs;\n    this.Memory = data.Description?.Resources?.MemoryBytes;\n    this.EngineVersion = data.Description?.Engine?.EngineVersion;\n    this.Plugins = data.Description?.Engine?.Plugins;\n    this.Status = data.Status?.State;\n\n    if (data.Status?.Addr) {\n      this.Addr = data.Status?.Addr;\n    }\n\n    if (data.ManagerStatus) {\n      this.Leader = data.ManagerStatus.Leader;\n      this.Reachability = data.ManagerStatus.Reachability;\n      this.ManagerAddr = data.ManagerStatus.Addr;\n    }\n  }\n}\n","import { NodeViewModel } from '../models/node';\n\nangular.module('portainer.docker').factory('NodeService', [\n  '$q',\n  'Node',\n  function NodeServiceFactory($q, Node) {\n    'use strict';\n    var service = {};\n\n    service.nodes = nodes;\n    service.node = node;\n    service.updateNode = updateNode;\n    service.getActiveManager = getActiveManager;\n\n    function node(id) {\n      var deferred = $q.defer();\n      Node.get({ id: id })\n        .$promise.then(function onNodeLoaded(rawNode) {\n          var node = new NodeViewModel(rawNode);\n          return deferred.resolve(node);\n        })\n        .catch(function onFailed(err) {\n          deferred.reject({ msg: 'Unable to retrieve node', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    function nodes() {\n      var deferred = $q.defer();\n\n      Node.query({})\n        .$promise.then(function success(data) {\n          var nodes = data.map(function (item) {\n            return new NodeViewModel(item);\n          });\n          deferred.resolve(nodes);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve nodes', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    function updateNode(node) {\n      return Node.update({ id: node.Id, version: node.Version }, node).$promise;\n    }\n\n    function getActiveManager() {\n      var deferred = $q.defer();\n\n      service\n        .nodes()\n        .then(function success(data) {\n          for (var i = 0; i < data.length; ++i) {\n            var node = data[i];\n            if (node.Role === 'manager' && node.Availability === 'active' && node.Status === 'ready' && node.Addr !== '0.0.0.0') {\n              deferred.resolve(node);\n              break;\n            }\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve nodes', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    return service;\n  },\n]);\n","import _ from 'lodash-es';\nimport { PluginViewModel } from '../models/plugin';\n\nangular.module('portainer.docker').factory('PluginService', [\n  '$q',\n  'Plugin',\n  'SystemService',\n  function PluginServiceFactory($q, Plugin, SystemService) {\n    'use strict';\n    var service = {};\n\n    service.plugins = function () {\n      var deferred = $q.defer();\n      var plugins = [];\n\n      Plugin.query({})\n        .$promise.then(function success(data) {\n          for (var i = 0; i < data.length; i++) {\n            var plugin = new PluginViewModel(data[i]);\n            plugins.push(plugin);\n          }\n        })\n        .finally(function final() {\n          deferred.resolve(plugins);\n        });\n\n      return deferred.promise;\n    };\n\n    function servicePlugins(systemOnly, pluginType, pluginVersion) {\n      var deferred = $q.defer();\n\n      $q.all({\n        system: SystemService.plugins(),\n        plugins: systemOnly ? [] : service.plugins(),\n      })\n        .then(function success(data) {\n          var aggregatedPlugins = [];\n          var systemPlugins = data.system;\n          var plugins = data.plugins;\n\n          if (systemPlugins[pluginType]) {\n            aggregatedPlugins = aggregatedPlugins.concat(systemPlugins[pluginType]);\n          }\n\n          for (var i = 0; i < plugins.length; i++) {\n            var plugin = plugins[i];\n            if (plugin.Enabled && _.includes(plugin.Config.Interface.Types, pluginVersion)) {\n              aggregatedPlugins.push(plugin.Name);\n            }\n          }\n\n          deferred.resolve(aggregatedPlugins);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: err.msg, err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    service.volumePlugins = function (systemOnly) {\n      return servicePlugins(systemOnly, 'Volume', 'docker.volumedriver/1.0');\n    };\n\n    service.networkPlugins = function (systemOnly) {\n      return servicePlugins(systemOnly, 'Network', 'docker.networkdriver/1.0');\n    };\n\n    service.loggingPlugins = function (systemOnly) {\n      return servicePlugins(systemOnly, 'Log', 'docker.logdriver/1.0');\n    };\n\n    return service;\n  },\n]);\n","import { Secret } from 'docker-types/generated/1.41';\n\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { PortainerMetadata } from '@/react/docker/types';\nimport { IResource } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nexport class SecretViewModel implements IResource {\n  Id: string;\n\n  CreatedAt: string;\n\n  UpdatedAt: string;\n\n  Version: number;\n\n  Name: string;\n\n  Labels: Record<string, string>;\n\n  ResourceControl?: ResourceControlViewModel;\n\n  constructor(data: Secret & { Portainer?: PortainerMetadata }) {\n    this.Id = data.ID || '';\n    this.CreatedAt = data.CreatedAt || '';\n    this.UpdatedAt = data.UpdatedAt || '';\n    this.Version = data.Version?.Index || 0;\n    this.Name = data.Spec?.Name || '';\n    this.Labels = data.Spec?.Labels || {};\n\n    if (data.Portainer?.ResourceControl) {\n      this.ResourceControl = new ResourceControlViewModel(\n        data.Portainer.ResourceControl\n      );\n    }\n  }\n}\n","import { SecretViewModel } from '../models/secret';\n\nangular.module('portainer.docker').factory('SecretService', [\n  '$q',\n  'Secret',\n  function SecretServiceFactory($q, Secret) {\n    'use strict';\n    var service = {};\n\n    service.secret = function (secretId) {\n      var deferred = $q.defer();\n\n      Secret.get({ id: secretId })\n        .$promise.then(function success(data) {\n          var secret = new SecretViewModel(data);\n          deferred.resolve(secret);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve secret details', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.secrets = function () {\n      var deferred = $q.defer();\n\n      Secret.query({})\n        .$promise.then(function success(data) {\n          var secrets = data.map(function (item) {\n            return new SecretViewModel(item);\n          });\n          deferred.resolve(secrets);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve secrets', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.remove = function (secretId) {\n      var deferred = $q.defer();\n\n      Secret.remove({ id: secretId })\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: data.message });\n          } else {\n            deferred.resolve();\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to remove secret', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.create = function (secretConfig) {\n      return Secret.create(secretConfig).$promise;\n    };\n\n    return service;\n  },\n]);\n","import {\n  EndpointPortConfig,\n  HealthConfig,\n  Mount,\n  Platform,\n  Service,\n  ServiceSpec,\n  TaskSpec,\n} from 'docker-types/generated/1.41';\n\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { PortainerMetadata } from '@/react/docker/types';\nimport { WithRequiredProperty } from '@/types';\n\nimport { TaskViewModel } from './task';\n\ntype ContainerSpec = WithRequiredProperty<\n  TaskSpec,\n  'ContainerSpec'\n>['ContainerSpec'];\n\nexport class ServiceViewModel {\n  Model: Service;\n\n  Id: string;\n\n  Tasks: TaskViewModel[];\n\n  Name: string;\n\n  CreatedAt: string | undefined;\n\n  UpdatedAt: string | undefined;\n\n  Image: string | undefined;\n\n  Version: number | undefined;\n\n  Mode: string;\n\n  Replicas: number | undefined;\n\n  Running?: number;\n\n  LimitNanoCPUs: number | undefined;\n\n  LimitMemoryBytes: number | undefined;\n\n  ReservationNanoCPUs: number | undefined;\n\n  ReservationMemoryBytes: number | undefined;\n\n  RestartCondition: string;\n\n  RestartDelay: number;\n\n  RestartMaxAttempts: number;\n\n  RestartWindow: number;\n\n  LogDriverName: string;\n\n  LogDriverOpts: never[] | Record<string, string>;\n\n  Constraints: string[];\n\n  Preferences: {\n    Spread?: { SpreadDescriptor?: string | undefined } | undefined;\n  }[];\n\n  Platforms?: Array<Platform>;\n\n  Labels: Record<string, string> | undefined;\n\n  StackName?: string;\n\n  ContainerLabels: Record<string, string> | undefined;\n\n  Command: string[] | undefined;\n\n  Arguments: string[] | undefined;\n\n  Hostname: string | undefined;\n\n  Env: string[] | undefined;\n\n  Dir: string | undefined;\n\n  User: string | undefined;\n\n  Groups: string[] | undefined;\n\n  TTY: boolean | undefined;\n\n  OpenStdin: boolean | undefined;\n\n  ReadOnly: boolean | undefined;\n\n  Mounts?: Array<Mount>;\n\n  StopSignal: string | undefined;\n\n  StopGracePeriod: number | undefined;\n\n  HealthCheck?: HealthConfig;\n\n  Hosts: string[] | undefined;\n\n  DNSConfig?: ContainerSpec['DNSConfig'];\n\n  Secrets?: ContainerSpec['Secrets'];\n\n  Configs: ContainerSpec['Configs'];\n\n  Ports?: Array<EndpointPortConfig>;\n\n  LogDriver: TaskSpec['LogDriver'];\n\n  Runtime: string | undefined;\n\n  VirtualIPs:\n    | { NetworkID?: string | undefined; Addr?: string | undefined }[]\n    | undefined;\n\n  UpdateParallelism: number;\n\n  UpdateDelay: number;\n\n  UpdateFailureAction: string;\n\n  UpdateOrder: string;\n\n  RollbackConfig: ServiceSpec['RollbackConfig'];\n\n  Checked: boolean;\n\n  Scale: boolean;\n\n  EditName: boolean;\n\n  ResourceControl?: ResourceControlViewModel;\n\n  constructor(data: Service & { Portainer?: PortainerMetadata }) {\n    this.Model = data;\n    this.Id = data.ID || '';\n    this.Tasks = [];\n    this.Name = data.Spec?.Name || '';\n    this.CreatedAt = data.CreatedAt;\n    this.UpdatedAt = data.UpdatedAt;\n    this.Image = data.Spec?.TaskTemplate?.ContainerSpec?.Image;\n    this.Version = data.Version?.Index;\n    if (data.Spec?.Mode?.Replicated) {\n      this.Mode = 'replicated';\n      this.Replicas = data.Spec.Mode.Replicated.Replicas;\n    } else {\n      this.Mode = 'global';\n    }\n\n    if (data.Spec?.TaskTemplate?.Resources) {\n      if (data.Spec.TaskTemplate.Resources.Limits) {\n        this.LimitNanoCPUs = data.Spec.TaskTemplate.Resources.Limits.NanoCPUs;\n        this.LimitMemoryBytes =\n          data.Spec.TaskTemplate.Resources.Limits.MemoryBytes;\n      }\n      if (data.Spec.TaskTemplate.Resources.Reservations) {\n        this.ReservationNanoCPUs =\n          data.Spec.TaskTemplate.Resources.Reservations.NanoCPUs;\n        this.ReservationMemoryBytes =\n          data.Spec.TaskTemplate.Resources.Reservations.MemoryBytes;\n      }\n    }\n\n    if (data.Spec?.TaskTemplate?.RestartPolicy) {\n      this.RestartCondition =\n        data.Spec.TaskTemplate.RestartPolicy.Condition || 'any';\n      this.RestartDelay =\n        data.Spec.TaskTemplate.RestartPolicy.Delay || 5000000000;\n      this.RestartMaxAttempts =\n        data.Spec.TaskTemplate.RestartPolicy.MaxAttempts || 0;\n      this.RestartWindow = data.Spec.TaskTemplate.RestartPolicy.Window || 0;\n    } else {\n      this.RestartCondition = 'any';\n      this.RestartDelay = 5000000000;\n      this.RestartMaxAttempts = 0;\n      this.RestartWindow = 0;\n    }\n\n    if (data.Spec?.TaskTemplate?.LogDriver) {\n      this.LogDriverName = data.Spec.TaskTemplate.LogDriver.Name || '';\n      this.LogDriverOpts = data.Spec.TaskTemplate.LogDriver.Options || [];\n    } else {\n      this.LogDriverName = '';\n      this.LogDriverOpts = [];\n    }\n\n    this.Constraints = data.Spec?.TaskTemplate?.Placement\n      ? data.Spec.TaskTemplate.Placement.Constraints || []\n      : [];\n    this.Preferences = data.Spec?.TaskTemplate?.Placement\n      ? data.Spec.TaskTemplate.Placement.Preferences || []\n      : [];\n    this.Platforms = data.Spec?.TaskTemplate?.Placement?.Platforms || [];\n    this.Labels = data.Spec?.Labels;\n    if (this.Labels && this.Labels['com.docker.stack.namespace']) {\n      this.StackName = this.Labels['com.docker.stack.namespace'];\n    }\n\n    const containerSpec = data.Spec?.TaskTemplate?.ContainerSpec;\n    if (containerSpec) {\n      this.ContainerLabels = containerSpec.Labels;\n      this.Command = containerSpec.Command;\n      this.Arguments = containerSpec.Args;\n      this.Hostname = containerSpec.Hostname;\n      this.Env = containerSpec.Env;\n      this.Dir = containerSpec.Dir;\n      this.User = containerSpec.User;\n      this.Groups = containerSpec.Groups;\n      this.TTY = containerSpec.TTY;\n      this.OpenStdin = containerSpec.OpenStdin;\n      this.ReadOnly = containerSpec.ReadOnly;\n      this.Mounts = containerSpec.Mounts || [];\n      this.StopSignal = containerSpec.StopSignal;\n      this.StopGracePeriod = containerSpec.StopGracePeriod;\n      this.HealthCheck = containerSpec.HealthCheck || {};\n      this.Hosts = containerSpec.Hosts;\n      this.DNSConfig = containerSpec.DNSConfig;\n      this.Secrets = containerSpec.Secrets;\n      this.Configs = containerSpec.Configs;\n    }\n    if (data.Endpoint) {\n      this.Ports = data.Endpoint.Ports;\n    }\n\n    this.LogDriver = data.Spec?.TaskTemplate?.LogDriver;\n    this.Runtime = data.Spec?.TaskTemplate?.Runtime;\n\n    this.VirtualIPs = data.Endpoint ? data.Endpoint.VirtualIPs : [];\n\n    if (data.Spec?.UpdateConfig) {\n      this.UpdateParallelism =\n        typeof data.Spec.UpdateConfig.Parallelism !== 'undefined'\n          ? data.Spec.UpdateConfig.Parallelism || 0\n          : 1;\n      this.UpdateDelay = data.Spec.UpdateConfig.Delay || 0;\n      this.UpdateFailureAction =\n        data.Spec.UpdateConfig.FailureAction || 'pause';\n      this.UpdateOrder = data.Spec.UpdateConfig.Order || 'stop-first';\n    } else {\n      this.UpdateParallelism = 1;\n      this.UpdateDelay = 0;\n      this.UpdateFailureAction = 'pause';\n      this.UpdateOrder = 'stop-first';\n    }\n\n    this.RollbackConfig = data.Spec?.RollbackConfig;\n\n    this.Checked = false;\n    this.Scale = false;\n    this.EditName = false;\n\n    if (data.Portainer) {\n      if (data.Portainer.ResourceControl) {\n        this.ResourceControl = new ResourceControlViewModel(\n          data.Portainer.ResourceControl\n        );\n      }\n    }\n  }\n}\n","import { formatLogs } from '../helpers/logHelper';\nimport { ServiceViewModel } from '../models/service';\n\nangular.module('portainer.docker').factory('ServiceService', [\n  '$q',\n  'Service',\n  function ServiceServiceFactory($q, Service) {\n    'use strict';\n    var service = {};\n\n    service.services = function (filters) {\n      var deferred = $q.defer();\n\n      Service.query({ filters: filters ? filters : {} })\n        .$promise.then(function success(data) {\n          var services = data.map(function (item) {\n            return new ServiceViewModel(item);\n          });\n          deferred.resolve(services);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve services', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.service = function (id) {\n      var deferred = $q.defer();\n\n      Service.get({ id: id })\n        .$promise.then(function success(data) {\n          var service = new ServiceViewModel(data);\n          deferred.resolve(service);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve service details', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.remove = function (service) {\n      var deferred = $q.defer();\n\n      Service.remove({ id: service.Id })\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: data.message, err: data.message });\n          } else {\n            deferred.resolve();\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to remove service', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.update = function (serv, config, rollback) {\n      return service.service(serv.Id).then((data) => {\n        const params = {\n          id: serv.Id,\n          version: data.Version,\n        };\n        if (rollback) {\n          params.rollback = rollback;\n        }\n        return Service.update(params, config).$promise;\n      });\n    };\n\n    service.logs = function (id, stdout, stderr, timestamps, since, tail) {\n      var deferred = $q.defer();\n\n      var parameters = {\n        id: id,\n        stdout: stdout || 0,\n        stderr: stderr || 0,\n        timestamps: timestamps || 0,\n        since: since || 0,\n        tail: tail || 'all',\n      };\n\n      Service.logs(parameters)\n        .$promise.then(function success(data) {\n          var logs = formatLogs(data.logs, { stripHeaders: true, withTimestamps: !!timestamps });\n          deferred.resolve(logs);\n        })\n        .catch(function error(err) {\n          deferred.reject(err);\n        });\n\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import { SwarmViewModel } from '../models/swarm';\n\nangular.module('portainer.docker').factory('SwarmService', [\n  '$q',\n  'Swarm',\n  function SwarmServiceFactory($q, Swarm) {\n    'use strict';\n    var service = {};\n\n    service.swarm = function (endpointId) {\n      var deferred = $q.defer();\n\n      Swarm.get(endpointId ? { endpointId } : undefined)\n        .$promise.then(function success(data) {\n          var swarm = new SwarmViewModel(data);\n          deferred.resolve(swarm);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve Swarm details', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import { EventViewModel } from '../models/event';\nimport { ping } from './ping';\n\nangular.module('portainer.docker').factory('SystemService', [\n  '$q',\n  'System',\n  function SystemServiceFactory($q, System) {\n    'use strict';\n    var service = {};\n\n    service.plugins = function () {\n      var deferred = $q.defer();\n      System.info({})\n        .$promise.then(function success(data) {\n          var plugins = data.Plugins;\n          deferred.resolve(plugins);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve plugins information from system', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.info = function () {\n      return System.info({}).$promise;\n    };\n\n    service.ping = function (endpointId) {\n      return ping(endpointId);\n    };\n\n    service.version = function () {\n      return System.version({}).$promise;\n    };\n\n    service.events = function (from, to) {\n      var deferred = $q.defer();\n\n      System.events({ since: from, until: to })\n        .$promise.then(function success(data) {\n          var events = data.map(function (item) {\n            return new EventViewModel(item);\n          });\n          deferred.resolve(events);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve engine events', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.dataUsage = function () {\n      return System.dataUsage().$promise;\n    };\n\n    return service;\n  },\n]);\n","import { Task, TaskSpec, TaskState } from 'docker-types/generated/1.41';\n\nexport class TaskViewModel {\n  Id: string;\n\n  Created: string;\n\n  Updated: string;\n\n  Slot: number;\n\n  Spec?: TaskSpec;\n\n  Status: Task['Status'];\n\n  DesiredState: TaskState;\n\n  ServiceId: string;\n\n  NodeId: string;\n\n  ContainerId: string = '';\n\n  constructor(data: Task) {\n    this.Id = data.ID || '';\n    this.Created = data.CreatedAt || '';\n    this.Updated = data.UpdatedAt || '';\n    this.Slot = data.Slot || 0;\n    this.Spec = data.Spec;\n    this.Status = data.Status;\n    this.DesiredState = data.DesiredState || 'pending';\n    this.ServiceId = data.ServiceID || '';\n    this.NodeId = data.NodeID || '';\n    this.ContainerId = data.Status?.ContainerStatus?.ContainerID || '';\n  }\n}\n","import { formatLogs } from '../helpers/logHelper';\nimport { TaskViewModel } from '../models/task';\n\nangular.module('portainer.docker').factory('TaskService', [\n  '$q',\n  'Task',\n  function TaskServiceFactory($q, Task) {\n    'use strict';\n    var service = {};\n\n    service.task = function (id) {\n      var deferred = $q.defer();\n\n      Task.get({ id: id })\n        .$promise.then(function success(data) {\n          var task = new TaskViewModel(data);\n          deferred.resolve(task);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve task details', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.tasks = function (filters) {\n      var deferred = $q.defer();\n\n      Task.query({ filters: filters ? filters : {} })\n        .$promise.then(function success(data) {\n          var tasks = data.map(function (item) {\n            return new TaskViewModel(item);\n          });\n          deferred.resolve(tasks);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve tasks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.logs = function (id, stdout, stderr, timestamps, since, tail) {\n      var deferred = $q.defer();\n\n      var parameters = {\n        id: id,\n        stdout: stdout || 0,\n        stderr: stderr || 0,\n        timestamps: timestamps || 0,\n        since: since || 0,\n        tail: tail || 'all',\n      };\n\n      Task.logs(parameters)\n        .$promise.then(function success(data) {\n          var logs = formatLogs(data.logs, { stripHeaders: true, withTimestamps: !!timestamps });\n          deferred.resolve(logs);\n        })\n        .catch(function error(err) {\n          deferred.reject(err);\n        });\n\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import { Volume } from 'docker-types/generated/1.41';\n\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { IResource } from '@/react/docker/components/datatable/createOwnershipColumn';\nimport { PortainerMetadata } from '@/react/docker/types';\n\nexport class VolumeViewModel implements IResource {\n  Id: string;\n\n  CreatedAt: string | undefined;\n\n  Driver: string;\n\n  Options: Record<string, string>;\n\n  Labels: Record<string, string>;\n\n  StackName?: string;\n\n  Mountpoint: string;\n\n  ResourceId?: string;\n\n  NodeName?: string;\n\n  ResourceControl?: ResourceControlViewModel;\n\n  constructor(\n    data: Volume & { Portainer?: PortainerMetadata; ResourceID?: string }\n  ) {\n    this.Id = data.Name;\n    this.CreatedAt = data.CreatedAt;\n    this.Driver = data.Driver;\n    this.Options = data.Options;\n    this.Labels = data.Labels;\n    if (this.Labels && this.Labels['com.docker.compose.project']) {\n      this.StackName = this.Labels['com.docker.compose.project'];\n    } else if (this.Labels && this.Labels['com.docker.stack.namespace']) {\n      this.StackName = this.Labels['com.docker.stack.namespace'];\n    }\n    this.Mountpoint = data.Mountpoint;\n\n    this.ResourceId = data.ResourceID;\n\n    if (data.Portainer) {\n      if (data.Portainer.ResourceControl) {\n        this.ResourceControl = new ResourceControlViewModel(\n          data.Portainer.ResourceControl\n        );\n      }\n      if (data.Portainer.Agent && data.Portainer.Agent.NodeName) {\n        this.NodeName = data.Portainer.Agent.NodeName;\n      }\n    }\n  }\n}\n","import { VolumeViewModel } from '../models/volume';\n\nangular.module('portainer.docker').factory('VolumeService', [\n  '$q',\n  'Volume',\n  'VolumeHelper',\n  function VolumeServiceFactory($q, Volume, VolumeHelper) {\n    'use strict';\n    var service = {};\n\n    service.volumes = function (params) {\n      var deferred = $q.defer();\n      Volume.query(params)\n        .$promise.then(function success(data) {\n          var volumes = data.Volumes || [];\n          volumes = volumes.map(function (item) {\n            return new VolumeViewModel(item);\n          });\n          deferred.resolve(volumes);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve volumes', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.volume = function (id) {\n      var deferred = $q.defer();\n      Volume.get({ id: id })\n        .$promise.then(function success(data) {\n          var volume = new VolumeViewModel(data);\n          deferred.resolve(volume);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve volume details', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.getVolumes = function () {\n      return Volume.query({}).$promise;\n    };\n\n    service.remove = function (volume) {\n      var deferred = $q.defer();\n\n      Volume.remove({ id: volume.Id })\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: data.message, err: data.message });\n          } else {\n            deferred.resolve();\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to remove volume', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.createVolumeConfiguration = function (name, driver, driverOptions) {\n      var volumeConfiguration = {\n        Name: name,\n        Driver: driver,\n        DriverOpts: VolumeHelper.createDriverOptions(driverOptions),\n      };\n      return volumeConfiguration;\n    };\n\n    service.createVolume = function (volumeConfiguration) {\n      var deferred = $q.defer();\n      Volume.create(volumeConfiguration)\n        .$promise.then(function success(data) {\n          if (data.message) {\n            deferred.reject({ msg: data.message });\n          } else {\n            var volume = new VolumeViewModel(data);\n            deferred.resolve(volume);\n          }\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create volume', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.createVolumes = function (volumeConfigurations) {\n      var createVolumeQueries = volumeConfigurations.map(function (volumeConfiguration) {\n        return service.createVolume(volumeConfiguration);\n      });\n      return $q.all(createVolumeQueries);\n    };\n\n    service.createXAutoGeneratedLocalVolumes = function (x) {\n      var createVolumeQueries = [];\n      for (var i = 0; i < x; i++) {\n        createVolumeQueries.push(service.createVolume({ Driver: 'local' }));\n      }\n      return $q.all(createVolumeQueries);\n    };\n\n    return service;\n  },\n]);\n","import angular from 'angular';\nimport { confirmDelete } from '@@/modals/confirm';\n\nclass ConfigsController {\n  /* @ngInject */\n  constructor($state, ConfigService, Notifications, $async, endpoint) {\n    this.$state = $state;\n    this.ConfigService = ConfigService;\n    this.Notifications = Notifications;\n    this.$async = $async;\n    this.endpoint = endpoint;\n\n    this.removeAction = this.removeAction.bind(this);\n    this.removeActionAsync = this.removeActionAsync.bind(this);\n    this.getConfigs = this.getConfigs.bind(this);\n    this.getConfigsAsync = this.getConfigsAsync.bind(this);\n  }\n\n  getConfigs() {\n    return this.$async(this.getConfigsAsync);\n  }\n\n  async getConfigsAsync() {\n    try {\n      this.configs = await this.ConfigService.configs(this.endpoint.Id);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve configs');\n    }\n  }\n\n  async $onInit() {\n    this.configs = [];\n    this.getConfigs();\n  }\n\n  async removeAction(selectedItems) {\n    const confirmed = await confirmDelete('Do you want to remove the selected config(s)?');\n    if (!confirmed) {\n      return null;\n    }\n    return this.$async(this.removeActionAsync, selectedItems);\n  }\n\n  async removeActionAsync(selectedItems) {\n    let actionCount = selectedItems.length;\n    for (const config of selectedItems) {\n      try {\n        await this.ConfigService.remove(this.endpoint.Id, config.Id);\n        this.Notifications.success('Config successfully removed', config.Name);\n        const index = this.configs.indexOf(config);\n        this.configs.splice(index, 1);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to remove config');\n      } finally {\n        --actionCount;\n        if (actionCount === 0) {\n          this.$state.reload();\n        }\n      }\n    }\n  }\n}\nexport default ConfigsController;\nangular.module('portainer.docker').controller('ConfigsController', ConfigsController);\n","import _ from 'lodash-es';\nimport angular from 'angular';\nimport { AccessControlFormData } from 'Portainer/components/accessControlForm/porAccessControlFormModel';\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\n\nclass CreateConfigController {\n  /* @ngInject */\n  constructor($async, $state, $transition$, $window, Notifications, ConfigService, Authentication, FormValidator, ResourceControlService, endpoint) {\n    this.$state = $state;\n    this.$transition$ = $transition$;\n    this.$window = $window;\n    this.Notifications = Notifications;\n    this.ConfigService = ConfigService;\n    this.Authentication = Authentication;\n    this.FormValidator = FormValidator;\n    this.ResourceControlService = ResourceControlService;\n    this.$async = $async;\n    this.endpoint = endpoint;\n\n    this.formValues = {\n      Name: '',\n      Labels: [],\n      AccessControlData: new AccessControlFormData(),\n      ConfigContent: '',\n    };\n\n    this.state = {\n      formValidationError: '',\n      isEditorDirty: false,\n    };\n\n    this.editorUpdate = this.editorUpdate.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n  }\n\n  async $onInit() {\n    this.$window.onbeforeunload = () => {\n      if (this.formValues.displayCodeEditor && this.formValues.ConfigContent && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n\n    if (!this.$transition$.params().id) {\n      this.formValues.displayCodeEditor = true;\n      return;\n    }\n\n    try {\n      let data = await this.ConfigService.config(this.endpoint.Id, this.$transition$.params().id);\n      this.formValues.Name = data.Name + '_copy';\n      this.formValues.ConfigContent = data.Data;\n      let labels = _.keys(data.Labels);\n      for (let i = 0; i < labels.length; i++) {\n        let labelName = labels[i];\n        let labelValue = data.Labels[labelName];\n        this.formValues.Labels.push({ name: labelName, value: labelValue });\n      }\n      this.formValues.displayCodeEditor = true;\n    } catch (err) {\n      this.formValues.displayCodeEditor = true;\n      this.Notifications.error('Failure', err, 'Unable to clone config');\n    }\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n\n  async uiCanExit() {\n    if (this.formValues.displayCodeEditor && this.formValues.ConfigContent && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  addLabel() {\n    this.formValues.Labels.push({ name: '', value: '' });\n  }\n\n  removeLabel(index) {\n    this.formValues.Labels.splice(index, 1);\n  }\n\n  prepareLabelsConfig(config) {\n    let labels = {};\n    this.formValues.Labels.forEach(function (label) {\n      if (label.name && label.value) {\n        labels[label.name] = label.value;\n      }\n    });\n    config.Labels = labels;\n  }\n\n  prepareConfigData(config) {\n    let configData = this.formValues.ConfigContent;\n    config.Data = btoa(unescape(encodeURIComponent(configData)));\n  }\n\n  prepareConfiguration() {\n    let config = {};\n    config.Name = this.formValues.Name;\n    this.prepareConfigData(config);\n    this.prepareLabelsConfig(config);\n    return config;\n  }\n\n  validateForm(accessControlData, isAdmin) {\n    this.state.formValidationError = '';\n    let error = '';\n    error = this.FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n    if (error) {\n      this.state.formValidationError = error;\n      return false;\n    }\n    return true;\n  }\n\n  create() {\n    return this.$async(this.createAsync);\n  }\n\n  async createAsync() {\n    const accessControlData = this.formValues.AccessControlData;\n    const userDetails = this.Authentication.getUserDetails();\n    const isAdmin = this.Authentication.isAdmin();\n\n    if (this.formValues.ConfigContent === '') {\n      this.state.formValidationError = 'Config content must not be empty';\n      return;\n    }\n\n    if (!this.validateForm(accessControlData, isAdmin)) {\n      return;\n    }\n\n    const config = this.prepareConfiguration();\n\n    try {\n      const data = await this.ConfigService.create(this.endpoint.Id, config);\n      const resourceControl = data.Portainer.ResourceControl;\n      const userId = userDetails.ID;\n      await this.ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n      this.Notifications.success('Success', 'Configuration successfully created');\n      this.state.isEditorDirty = false;\n      this.$state.go('docker.configs', {}, { reload: true });\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to create config');\n    }\n  }\n\n  editorUpdate(value) {\n    this.formValues.ConfigContent = value;\n    this.state.isEditorDirty = true;\n  }\n}\n\nexport default CreateConfigController;\nangular.module('portainer.docker').controller('CreateConfigController', CreateConfigController);\n","import { ResourceControlType } from '@/react/portainer/access-control/types';\n\nangular.module('portainer.docker').controller('ConfigController', [\n  '$scope',\n  '$transition$',\n  '$state',\n  'ConfigService',\n  'Notifications',\n  'endpoint',\n  function ($scope, $transition$, $state, ConfigService, Notifications, endpoint) {\n    $scope.resourceType = ResourceControlType.Config;\n    $scope.endpoint = endpoint;\n\n    $scope.onUpdateResourceControlSuccess = function () {\n      $state.reload();\n    };\n\n    $scope.removeConfig = function removeConfig(configId) {\n      ConfigService.remove(endpoint.Id, configId)\n        .then(function success() {\n          Notifications.success('Success', 'Configuration successfully removed');\n          $state.go('docker.configs', {});\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to remove config');\n        });\n    };\n\n    function initView() {\n      ConfigService.config(endpoint.Id, $transition$.params().id)\n        .then(function success(data) {\n          $scope.config = data;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve config details');\n        });\n    }\n\n    initView();\n  },\n]);\n","import { Terminal } from 'xterm';\nimport { baseHref } from '@/portainer/helpers/pathHelper';\nimport { commandStringToArray } from '@/docker/helpers/containers';\n\nangular.module('portainer.docker').controller('ContainerConsoleController', [\n  '$scope',\n  '$state',\n  '$transition$',\n  'ContainerService',\n  'ImageService',\n  'Notifications',\n  'ContainerHelper',\n  'ExecService',\n  'HttpRequestHelper',\n  'LocalStorage',\n  'CONSOLE_COMMANDS_LABEL_PREFIX',\n  'SidebarService',\n  'endpoint',\n  function (\n    $scope,\n    $state,\n    $transition$,\n    ContainerService,\n    ImageService,\n    Notifications,\n    ContainerHelper,\n    ExecService,\n    HttpRequestHelper,\n    LocalStorage,\n    CONSOLE_COMMANDS_LABEL_PREFIX,\n    SidebarService,\n    endpoint\n  ) {\n    var socket, term;\n\n    let states = Object.freeze({\n      disconnected: 0,\n      connecting: 1,\n      connected: 2,\n    });\n\n    $scope.loaded = false;\n    $scope.states = states;\n    $scope.state = states.disconnected;\n\n    $scope.formValues = {};\n    $scope.containerCommands = [];\n\n    // Ensure the socket is closed before leaving the view\n    $scope.$on('$stateChangeStart', function () {\n      $scope.disconnect();\n    });\n\n    $scope.connectAttach = function () {\n      if ($scope.state > states.disconnected) {\n        return;\n      }\n\n      $scope.state = states.connecting;\n\n      let attachId = $transition$.params().id;\n\n      ContainerService.container(endpoint.Id, attachId)\n        .then((details) => {\n          if (!details.State.Running) {\n            Notifications.error('Failure', details, 'Container ' + attachId + ' is not running!');\n            $scope.disconnect();\n            return;\n          }\n\n          const params = {\n            endpointId: $state.params.endpointId,\n            id: attachId,\n          };\n\n          const base = window.location.origin.startsWith('http') ? `${window.location.origin}${baseHref()}` : baseHref();\n          var url =\n            base +\n            'api/websocket/attach?' +\n            Object.keys(params)\n              .map((k) => k + '=' + params[k])\n              .join('&');\n\n          initTerm(url, ContainerService.resizeTTY.bind(this, endpoint.Id, attachId));\n        })\n        .catch(function error(err) {\n          Notifications.error('Error', err, 'Unable to retrieve container details');\n          $scope.disconnect();\n        });\n    };\n\n    $scope.connectExec = function () {\n      if ($scope.state > states.disconnected) {\n        return;\n      }\n\n      $scope.state = states.connecting;\n      var command = $scope.formValues.isCustomCommand ? $scope.formValues.customCommand : $scope.formValues.command;\n      var execConfig = {\n        id: $transition$.params().id,\n        AttachStdin: true,\n        AttachStdout: true,\n        AttachStderr: true,\n        Tty: true,\n        User: $scope.formValues.user,\n        Cmd: commandStringToArray(command),\n      };\n\n      ContainerService.createExec(endpoint.Id, execConfig)\n        .then(function success(data) {\n          const params = {\n            endpointId: $state.params.endpointId,\n            id: data.Id,\n          };\n\n          const base = window.location.origin.startsWith('http') ? `${window.location.origin}${baseHref()}` : baseHref();\n          var url =\n            base +\n            'api/websocket/exec?' +\n            Object.keys(params)\n              .map((k) => k + '=' + params[k])\n              .join('&');\n\n          const isLinuxCommand = execConfig.Cmd ? isLinuxTerminalCommand(execConfig.Cmd[0]) : false;\n          initTerm(url, ExecService.resizeTTY.bind(this, params.id), isLinuxCommand);\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to exec into container');\n          $scope.disconnect();\n        });\n    };\n\n    $scope.disconnect = function () {\n      if (socket) {\n        socket.close();\n      }\n      if ($scope.state > states.disconnected) {\n        $scope.state = states.disconnected;\n        if (term) {\n          term.write('\\n\\r(connection closed)');\n          term.dispose();\n        }\n      }\n    };\n\n    $scope.autoconnectAttachView = function () {\n      return $scope.initView().then(function success() {\n        if ($scope.container.State.Running) {\n          $scope.connectAttach();\n        }\n      });\n    };\n\n    function resize(restcall, add) {\n      if ($scope.state != states.connected) {\n        return;\n      }\n\n      add = add || 0;\n\n      term.fit();\n      var termWidth = term.cols;\n      var termHeight = 30;\n      term.resize(termWidth, termHeight);\n\n      restcall(termWidth + add, termHeight + add, 1);\n    }\n\n    function isLinuxTerminalCommand(command) {\n      const validShellCommands = ['ash', 'bash', 'dash', 'sh'];\n      return validShellCommands.includes(command);\n    }\n\n    function initTerm(url, resizeRestCall, isLinuxTerm = false) {\n      let resizefun = resize.bind(this, resizeRestCall);\n\n      if ($transition$.params().nodeName) {\n        url += '&nodeName=' + $transition$.params().nodeName;\n      }\n\n      if (url.indexOf('https') > -1) {\n        url = url.replace('https://', 'wss://');\n      } else {\n        url = url.replace('http://', 'ws://');\n      }\n\n      socket = new WebSocket(url);\n\n      socket.onopen = function () {\n        $scope.state = states.connected;\n        term = new Terminal();\n\n        if (isLinuxTerm) {\n          // linux terminals support xterm\n          socket.send('export LANG=C.UTF-8\\n');\n          socket.send('export LC_ALL=C.UTF-8\\n');\n          socket.send('export TERM=\"xterm-256color\"\\n');\n          socket.send('alias ls=\"ls --color=auto\"\\n');\n          socket.send('echo -e \"\\\\033[2J\\\\033[H\"\\n');\n        }\n\n        term.onData(function (data) {\n          socket.send(data);\n        });\n\n        var terminal_container = document.getElementById('terminal-container');\n        term.open(terminal_container);\n        term.focus();\n        term.setOption('cursorBlink', true);\n\n        window.onresize = function () {\n          resizefun();\n          $scope.$apply();\n        };\n\n        $scope.$watch(SidebarService.isSidebarOpen, function () {\n          setTimeout(resizefun, 400);\n        });\n\n        socket.onmessage = function (e) {\n          term.write(e.data);\n        };\n\n        socket.onerror = function (err) {\n          $scope.disconnect();\n          Notifications.error('Failure', err, 'Connection error');\n          $scope.$apply();\n        };\n\n        socket.onclose = function () {\n          $scope.disconnect();\n          $scope.$apply();\n        };\n\n        resizefun(1);\n        $scope.$apply();\n      };\n    }\n\n    $scope.initView = function () {\n      HttpRequestHelper.setPortainerAgentTargetHeader($transition$.params().nodeName);\n      return ContainerService.container(endpoint.Id, $transition$.params().id)\n        .then(function success(data) {\n          var container = data;\n          $scope.container = container;\n          return ImageService.image(container.Image);\n        })\n        .then(function success(data) {\n          var image = data;\n          var containerLabels = $scope.container.Config.Labels;\n          $scope.imageOS = image.Os;\n          $scope.formValues.command = image.Os === 'windows' ? 'powershell' : 'bash';\n          $scope.containerCommands = Object.keys(containerLabels)\n            .filter(function (label) {\n              return label.indexOf(CONSOLE_COMMANDS_LABEL_PREFIX) === 0;\n            })\n            .map(function (label) {\n              return {\n                title: label.replace(CONSOLE_COMMANDS_LABEL_PREFIX, ''),\n                command: containerLabels[label],\n              };\n            });\n          $scope.loaded = true;\n        })\n        .catch(function error(err) {\n          Notifications.error('Error', err, 'Unable to retrieve container details');\n        });\n    };\n\n    $scope.handleIsCustomCommandChange = function (enabled) {\n      $scope.$evalAsync(() => {\n        $scope.formValues.isCustomCommand = enabled;\n      });\n    };\n  },\n]);\n","import { useState } from 'react';\n\nimport { Modal, OnSubmit, ModalType, openModal } from '@@/modals';\nimport { Button } from '@@/buttons';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\n\ninterface Props {\n  onSubmit: OnSubmit<{ pullLatest: boolean }>;\n\n  cannotPullImage: boolean;\n}\n\nfunction ConfirmRecreationModal({ onSubmit, cannotPullImage }: Props) {\n  const [pullLatest, setPullLatest] = useState(false);\n\n  return (\n    <Modal\n      onDismiss={() => onSubmit()}\n      aria-label=\"confirm recreate container modal\"\n    >\n      <Modal.Header title=\"Are you sure?\" modalType={ModalType.Destructive} />\n\n      <Modal.Body>\n        <p>\n          You&apos;re about to recreate this container and any non-persisted\n          data will be lost. This container will be removed and another one will\n          be created using the same configuration.\n        </p>\n        <SwitchField\n          name=\"pullLatest\"\n          label=\"Re-pull image\"\n          checked={pullLatest}\n          onChange={setPullLatest}\n          disabled={cannotPullImage}\n        />\n        {cannotPullImage && (\n          <div className=\"mt-1 text-sm\">\n            <TextTip color=\"orange\">\n              Cannot re-pull as the image is inaccessible - either it no longer\n              exists or the tag or name is no longer correct.\n            </TextTip>\n          </div>\n        )}\n      </Modal.Body>\n      <Modal.Footer>\n        <Button onClick={() => onSubmit()} color=\"default\">\n          Cancel\n        </Button>\n        <Button onClick={() => onSubmit({ pullLatest })} color=\"danger\">\n          Recreate\n        </Button>\n      </Modal.Footer>\n    </Modal>\n  );\n}\n\nexport async function confirmContainerRecreation(cannotPullImage: boolean) {\n  return openModal(ConfirmRecreationModal, {\n    cannotPullImage,\n  });\n}\n","import moment from 'moment';\nimport _ from 'lodash-es';\nimport { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\nimport { confirmContainerDeletion } from '@/react/docker/containers/common/confirm-container-delete-modal';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { ResourceControlType } from '@/react/portainer/access-control/types';\nimport { confirmContainerRecreation } from '@/react/docker/containers/ItemView/ConfirmRecreationModal';\n\nangular.module('portainer.docker').controller('ContainerController', [\n  '$q',\n  '$scope',\n  '$state',\n  '$transition$',\n  '$filter',\n  '$async',\n  'Commit',\n  'ContainerService',\n  'ImageHelper',\n  'Notifications',\n  'HttpRequestHelper',\n  'Authentication',\n  'endpoint',\n  function ($q, $scope, $state, $transition$, $filter, $async, Commit, ContainerService, ImageHelper, Notifications, HttpRequestHelper, Authentication, endpoint) {\n    $scope.resourceType = ResourceControlType.Container;\n    $scope.endpoint = endpoint;\n    $scope.isAdmin = Authentication.isAdmin();\n    $scope.activityTime = 0;\n    $scope.portBindings = [];\n    $scope.displayRecreateButton = false;\n    $scope.displayCreateWebhookButton = false;\n    $scope.containerWebhookFeature = FeatureId.CONTAINER_WEBHOOK;\n\n    $scope.config = {\n      RegistryModel: new PorImageRegistryModel(),\n      commitInProgress: false,\n    };\n\n    $scope.state = {\n      recreateContainerInProgress: false,\n      pullImageValidity: false,\n    };\n\n    $scope.setPullImageValidity = setPullImageValidity;\n    function setPullImageValidity(validity) {\n      $scope.state.pullImageValidity = validity;\n    }\n\n    $scope.updateRestartPolicy = updateRestartPolicy;\n\n    $scope.onUpdateResourceControlSuccess = function () {\n      $state.reload();\n    };\n\n    $scope.computeDockerGPUCommand = () => {\n      const gpuOptions = _.find($scope.container.HostConfig.DeviceRequests, function (o) {\n        return o.Driver === 'nvidia' || o.Capabilities[0][0] === 'gpu';\n      });\n      if (!gpuOptions) {\n        return 'No GPU config found';\n      }\n      let gpuStr = 'all';\n      if (gpuOptions.Count !== -1) {\n        gpuStr = `\"device=${_.join(gpuOptions.DeviceIDs, ',')}\"`;\n      }\n      // we only support a single set of capabilities for now\n      // creation UI needs to be reworked in order to support OR combinations of AND capabilities\n      const capStr = `\"capabilities=${_.join(gpuOptions.Capabilities[0], ',')}\"`;\n      return `${gpuStr},${capStr}`;\n    };\n\n    var update = function () {\n      var nodeName = $transition$.params().nodeName;\n      HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);\n      $scope.nodeName = nodeName;\n\n      ContainerService.container(endpoint.Id, $transition$.params().id)\n        .then(function success(data) {\n          var container = data;\n          $scope.container = container;\n          $scope.container.edit = false;\n          $scope.container.newContainerName = $filter('trimcontainername')(container.Name);\n\n          if (container.State.Running) {\n            $scope.activityTime = moment.duration(moment(container.State.StartedAt).utc().diff(moment().utc())).humanize();\n          } else if (container.State.Status === 'created') {\n            $scope.activityTime = moment.duration(moment(container.Created).utc().diff(moment().utc())).humanize();\n          } else {\n            $scope.activityTime = moment.duration(moment().utc().diff(moment(container.State.FinishedAt).utc())).humanize();\n          }\n\n          $scope.portBindings = [];\n          if (container.NetworkSettings.Ports) {\n            _.forEach(Object.keys(container.NetworkSettings.Ports), function (key) {\n              if (container.NetworkSettings.Ports[key]) {\n                _.forEach(container.NetworkSettings.Ports[key], (portMapping) => {\n                  const mapping = {};\n                  mapping.container = key;\n                  mapping.host = `${portMapping.HostIp}:${portMapping.HostPort}`;\n                  $scope.portBindings.push(mapping);\n                });\n              }\n            });\n          }\n\n          $scope.container.Config.Env = _.sortBy($scope.container.Config.Env, _.toLower);\n          const inSwarm = $scope.container.Config.Labels['com.docker.swarm.service.id'];\n          const autoRemove = $scope.container.HostConfig.AutoRemove;\n          const admin = Authentication.isAdmin();\n          const {\n            allowContainerCapabilitiesForRegularUsers,\n            allowHostNamespaceForRegularUsers,\n            allowDeviceMappingForRegularUsers,\n            allowSysctlSettingForRegularUsers,\n            allowBindMountsForRegularUsers,\n            allowPrivilegedModeForRegularUsers,\n          } = endpoint.SecuritySettings;\n\n          const settingRestrictsRegularUsers =\n            !allowContainerCapabilitiesForRegularUsers ||\n            !allowBindMountsForRegularUsers ||\n            !allowDeviceMappingForRegularUsers ||\n            !allowSysctlSettingForRegularUsers ||\n            !allowHostNamespaceForRegularUsers ||\n            !allowPrivilegedModeForRegularUsers;\n\n          $scope.displayRecreateButton = !inSwarm && !autoRemove && (admin || !settingRestrictsRegularUsers);\n          $scope.displayCreateWebhookButton = $scope.displayRecreateButton;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve container info');\n        });\n    };\n\n    function executeContainerAction(id, action, successMessage, errorMessage) {\n      action(endpoint.Id, id)\n        .then(function success() {\n          Notifications.success(successMessage, id);\n          update();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, errorMessage);\n        });\n    }\n\n    $scope.start = function () {\n      var successMessage = 'Container successfully started';\n      var errorMessage = 'Unable to start container';\n      executeContainerAction($transition$.params().id, ContainerService.startContainer, successMessage, errorMessage);\n    };\n\n    $scope.stop = function () {\n      var successMessage = 'Container successfully stopped';\n      var errorMessage = 'Unable to stop container';\n      executeContainerAction($transition$.params().id, ContainerService.stopContainer, successMessage, errorMessage);\n    };\n\n    $scope.kill = function () {\n      var successMessage = 'Container successfully killed';\n      var errorMessage = 'Unable to kill container';\n      executeContainerAction($transition$.params().id, ContainerService.killContainer, successMessage, errorMessage);\n    };\n\n    $scope.pause = function () {\n      var successMessage = 'Container successfully paused';\n      var errorMessage = 'Unable to pause container';\n      executeContainerAction($transition$.params().id, ContainerService.pauseContainer, successMessage, errorMessage);\n    };\n\n    $scope.unpause = function () {\n      var successMessage = 'Container successfully resumed';\n      var errorMessage = 'Unable to resume container';\n      executeContainerAction($transition$.params().id, ContainerService.resumeContainer, successMessage, errorMessage);\n    };\n\n    $scope.restart = function () {\n      var successMessage = 'Container successfully restarted';\n      var errorMessage = 'Unable to restart container';\n      executeContainerAction($transition$.params().id, ContainerService.restartContainer, successMessage, errorMessage);\n    };\n\n    $scope.renameContainer = function () {\n      var container = $scope.container;\n      if (container.newContainerName === $filter('trimcontainername')(container.Name)) {\n        $scope.container.edit = false;\n        return;\n      }\n      ContainerService.renameContainer(endpoint.Id, $transition$.params().id, container.newContainerName)\n        .then(function success() {\n          container.Name = container.newContainerName;\n          Notifications.success('Container successfully renamed', container.Name);\n        })\n        .catch(function error(err) {\n          container.newContainerName = $filter('trimcontainername')(container.Name);\n          Notifications.error('Failure', err, 'Unable to rename container');\n        })\n        .finally(function final() {\n          $scope.container.edit = false;\n          $scope.$apply();\n        });\n    };\n\n    async function commitContainerAsync() {\n      $scope.config.commitInProgress = true;\n      const registryModel = $scope.config.RegistryModel;\n      const imageConfig = ImageHelper.createImageConfigForContainer(registryModel);\n      try {\n        await Commit.commitContainer({ environmentId: endpoint.Id }, { id: $transition$.params().id, repo: imageConfig.fromImage }).$promise;\n        Notifications.success('Image created', $transition$.params().id);\n        $state.reload();\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to create image');\n        $scope.config.commitInProgress = false;\n      }\n    }\n\n    $scope.commit = function () {\n      return $async(commitContainerAsync);\n    };\n\n    $scope.confirmRemove = function () {\n      return $async(async () => {\n        var title = 'You are about to remove a container.';\n        if ($scope.container.State.Running) {\n          title = 'You are about to remove a running container.';\n        }\n\n        const result = await confirmContainerDeletion(title);\n\n        if (!result) {\n          return;\n        }\n        const { removeVolumes } = result;\n\n        removeContainer(removeVolumes);\n      });\n    };\n\n    function removeContainer(cleanAssociatedVolumes) {\n      ContainerService.remove(endpoint.Id, $scope.container.Id, cleanAssociatedVolumes)\n        .then(function success() {\n          Notifications.success('Success', 'Container successfully removed');\n          $state.go('docker.containers', {}, { reload: true });\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to remove container');\n        });\n    }\n\n    function recreateContainer(pullImage) {\n      var container = $scope.container;\n      $scope.state.recreateContainerInProgress = true;\n\n      return ContainerService.recreateContainer(endpoint.Id, container.Id, pullImage).then(notifyAndChangeView).catch(notifyOnError);\n\n      function notifyAndChangeView() {\n        Notifications.success('Success', 'Container successfully re-created');\n        $state.go('docker.containers', {}, { reload: true });\n      }\n\n      function notifyOnError(err) {\n        Notifications.error('Failure', err, 'Unable to re-create container');\n        $scope.state.recreateContainerInProgress = false;\n      }\n    }\n\n    $scope.recreate = function () {\n      const cannotPullImage = !$scope.container.Config.Image || $scope.container.Config.Image.toLowerCase().startsWith('sha256');\n      confirmContainerRecreation(cannotPullImage).then(function (result) {\n        if (!result) {\n          return;\n        }\n\n        recreateContainer(result.pullLatest);\n      });\n    };\n\n    function updateRestartPolicy(restartPolicy, maximumRetryCount) {\n      maximumRetryCount = restartPolicy === 'on-failure' ? maximumRetryCount : undefined;\n\n      return ContainerService.updateRestartPolicy(endpoint.Id, $scope.container.Id, restartPolicy, maximumRetryCount).then(onUpdateSuccess).catch(notifyOnError);\n\n      function onUpdateSuccess() {\n        $scope.container.HostConfig.RestartPolicy = {\n          Name: restartPolicy,\n          MaximumRetryCount: maximumRetryCount,\n        };\n        Notifications.success('Success', 'Restart policy updated');\n      }\n\n      function notifyOnError(err) {\n        Notifications.error('Failure', err, 'Unable to update restart policy');\n        return $q.reject(err);\n      }\n    }\n\n    update();\n  },\n]);\n","angular.module('portainer.docker').controller('ContainerInspectController', [\n  '$scope',\n  '$transition$',\n  'Notifications',\n  'ContainerService',\n  'HttpRequestHelper',\n  'endpoint',\n  function ($scope, $transition$, Notifications, ContainerService, HttpRequestHelper, endpoint) {\n    $scope.state = {\n      DisplayTextView: false,\n    };\n    $scope.containerInfo = {};\n\n    function initView() {\n      HttpRequestHelper.setPortainerAgentTargetHeader($transition$.params().nodeName);\n      ContainerService.inspect(endpoint.Id, $transition$.params().id)\n        .then(function success(d) {\n          $scope.containerInfo = d;\n        })\n        .catch(function error(e) {\n          Notifications.error('Failure', e, 'Unable to inspect container');\n        });\n    }\n\n    initView();\n  },\n]);\n","import moment from 'moment';\n\nangular.module('portainer.docker').controller('ContainerLogsController', [\n  '$scope',\n  '$transition$',\n  '$interval',\n  'ContainerService',\n  'Notifications',\n  'HttpRequestHelper',\n  'endpoint',\n  function ($scope, $transition$, $interval, ContainerService, Notifications, HttpRequestHelper, endpoint) {\n    $scope.state = {\n      refreshRate: 3,\n      lineCount: 100,\n      sinceTimestamp: '',\n      displayTimestamps: false,\n    };\n\n    $scope.changeLogCollection = function (logCollectionStatus) {\n      if (!logCollectionStatus) {\n        stopRepeater();\n      } else {\n        setUpdateRepeater(!$scope.container.Config.Tty);\n      }\n    };\n\n    $scope.$on('$destroy', function () {\n      stopRepeater();\n    });\n\n    function stopRepeater() {\n      var repeater = $scope.repeater;\n      if (angular.isDefined(repeater)) {\n        $interval.cancel(repeater);\n        repeater = null;\n      }\n    }\n\n    function setUpdateRepeater(skipHeaders) {\n      var refreshRate = $scope.state.refreshRate;\n      $scope.repeater = $interval(function () {\n        ContainerService.logs(\n          endpoint.Id,\n          $transition$.params().id,\n          1,\n          1,\n          $scope.state.displayTimestamps ? 1 : 0,\n          moment($scope.state.sinceTimestamp).unix(),\n          $scope.state.lineCount,\n          skipHeaders\n        )\n          .then(function success(data) {\n            $scope.logs = data;\n          })\n          .catch(function error(err) {\n            stopRepeater();\n            Notifications.error('Failure', err, 'Unable to retrieve container logs');\n          });\n      }, refreshRate * 1000);\n    }\n\n    function startLogPolling(skipHeaders) {\n      ContainerService.logs(\n        endpoint.Id,\n        $transition$.params().id,\n        1,\n        1,\n        $scope.state.displayTimestamps ? 1 : 0,\n        moment($scope.state.sinceTimestamp).unix(),\n        $scope.state.lineCount,\n        skipHeaders\n      )\n        .then(function success(data) {\n          $scope.logs = data;\n          setUpdateRepeater(skipHeaders);\n        })\n        .catch(function error(err) {\n          stopRepeater();\n          Notifications.error('Failure', err, 'Unable to retrieve container logs');\n        });\n    }\n\n    function initView() {\n      HttpRequestHelper.setPortainerAgentTargetHeader($transition$.params().nodeName);\n      ContainerService.container(endpoint.Id, $transition$.params().id)\n        .then(function success(data) {\n          var container = data;\n          $scope.container = container;\n\n          const logsEnabled = container.HostConfig && container.HostConfig.LogConfig && container.HostConfig.LogConfig.Type && container.HostConfig.LogConfig.Type !== 'none';\n          $scope.logsEnabled = logsEnabled;\n\n          if (logsEnabled) {\n            startLogPolling(!container.Config.Tty);\n          }\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve container information');\n        });\n    }\n\n    initView();\n  },\n]);\n","import moment from 'moment';\n\nangular.module('portainer.docker').controller('ContainerStatsController', [\n  '$q',\n  '$scope',\n  '$transition$',\n  '$document',\n  '$interval',\n  'ContainerService',\n  'ChartService',\n  'Notifications',\n  'HttpRequestHelper',\n  'endpoint',\n  function ($q, $scope, $transition$, $document, $interval, ContainerService, ChartService, Notifications, HttpRequestHelper, endpoint) {\n    $scope.state = {\n      refreshRate: '5',\n      networkStatsUnavailable: false,\n      ioStatsUnavailable: false,\n    };\n\n    $scope.$on('$destroy', function () {\n      stopRepeater();\n    });\n\n    function stopRepeater() {\n      var repeater = $scope.repeater;\n      if (angular.isDefined(repeater)) {\n        $interval.cancel(repeater);\n        repeater = null;\n      }\n    }\n\n    function updateNetworkChart(stats, chart) {\n      if (stats.Networks.length > 0) {\n        var rx = stats.Networks[0].rx_bytes;\n        var tx = stats.Networks[0].tx_bytes;\n        var label = moment(stats.read).format('HH:mm:ss');\n\n        ChartService.UpdateNetworkChart(label, rx, tx, chart);\n      }\n    }\n\n    function updateMemoryChart(stats, chart) {\n      var label = moment(stats.read).format('HH:mm:ss');\n\n      ChartService.UpdateMemoryChart(label, stats.MemoryUsage, stats.MemoryCache, chart);\n    }\n\n    function updateIOChart(stats, chart) {\n      var label = moment(stats.read).format('HH:mm:ss');\n      if (stats.noIOData !== true) {\n        ChartService.UpdateIOChart(label, stats.BytesRead, stats.BytesWrite, chart);\n      }\n    }\n\n    function updateCPUChart(stats, chart) {\n      var label = moment(stats.read).format('HH:mm:ss');\n      var value = stats.isWindows ? calculateCPUPercentWindows(stats) : calculateCPUPercentUnix(stats);\n\n      ChartService.UpdateCPUChart(label, value, chart);\n    }\n\n    function calculateCPUPercentUnix(stats) {\n      var cpuPercent = 0.0;\n      var cpuDelta = stats.CurrentCPUTotalUsage - stats.PreviousCPUTotalUsage;\n      var systemDelta = stats.CurrentCPUSystemUsage - stats.PreviousCPUSystemUsage;\n\n      if (systemDelta > 0.0 && cpuDelta > 0.0) {\n        cpuPercent = (cpuDelta / systemDelta) * stats.CPUCores * 100.0;\n      }\n\n      return cpuPercent;\n    }\n\n    function calculateCPUPercentWindows(stats) {\n      var possIntervals =\n        stats.NumProcs * parseFloat(moment(stats.read, 'YYYY-MM-DDTHH:mm:ss.SSSSSSSSSZ').valueOf() - moment(stats.preread, 'YYYY-MM-DDTHH:mm:ss.SSSSSSSSSZ').valueOf());\n      var windowsCpuUsage = 0.0;\n      if (possIntervals > 0) {\n        windowsCpuUsage = parseFloat(stats.CurrentCPUTotalUsage - stats.PreviousCPUTotalUsage) / parseFloat(possIntervals * 100);\n      }\n      return windowsCpuUsage;\n    }\n\n    $scope.changeUpdateRepeater = function () {\n      var networkChart = $scope.networkChart;\n      var cpuChart = $scope.cpuChart;\n      var memoryChart = $scope.memoryChart;\n      var ioChart = $scope.ioChart;\n\n      stopRepeater();\n      setUpdateRepeater(networkChart, cpuChart, memoryChart, ioChart);\n      $('#refreshRateChange').show();\n      $('#refreshRateChange').fadeOut(1500);\n    };\n\n    function startChartUpdate(networkChart, cpuChart, memoryChart, ioChart) {\n      $q.all({\n        stats: ContainerService.containerStats(endpoint.Id, $transition$.params().id),\n        top: ContainerService.containerTop(endpoint.Id, $transition$.params().id),\n      })\n        .then(function success(data) {\n          var stats = data.stats;\n          $scope.processInfo = data.top;\n          if (stats.Networks.length === 0) {\n            $scope.state.networkStatsUnavailable = true;\n          }\n          if (stats.noIOData === true) {\n            $scope.state.ioStatsUnavailable = true;\n          }\n          updateNetworkChart(stats, networkChart);\n          updateMemoryChart(stats, memoryChart);\n          updateCPUChart(stats, cpuChart);\n          updateIOChart(stats, ioChart);\n          setUpdateRepeater(networkChart, cpuChart, memoryChart, ioChart);\n        })\n        .catch(function error(err) {\n          stopRepeater();\n          Notifications.error('Failure', err, 'Unable to retrieve container statistics');\n        });\n    }\n\n    function setUpdateRepeater(networkChart, cpuChart, memoryChart, ioChart) {\n      var refreshRate = $scope.state.refreshRate;\n      $scope.repeater = $interval(function () {\n        $q.all({\n          stats: ContainerService.containerStats(endpoint.Id, $transition$.params().id),\n          top: ContainerService.containerTop(endpoint.Id, $transition$.params().id),\n        })\n          .then(function success(data) {\n            var stats = data.stats;\n            $scope.processInfo = data.top;\n            updateNetworkChart(stats, networkChart);\n            updateMemoryChart(stats, memoryChart);\n            updateCPUChart(stats, cpuChart);\n            updateIOChart(stats, ioChart);\n          })\n          .catch(function error(err) {\n            stopRepeater();\n            Notifications.error('Failure', err, 'Unable to retrieve container statistics');\n          });\n      }, refreshRate * 1000);\n    }\n\n    function initCharts() {\n      var networkChartCtx = $('#networkChart');\n      var networkChart = ChartService.CreateNetworkChart(networkChartCtx);\n      $scope.networkChart = networkChart;\n\n      var cpuChartCtx = $('#cpuChart');\n      var cpuChart = ChartService.CreateCPUChart(cpuChartCtx);\n      $scope.cpuChart = cpuChart;\n\n      var memoryChartCtx = $('#memoryChart');\n      var memoryChart = ChartService.CreateMemoryChart(memoryChartCtx);\n      $scope.memoryChart = memoryChart;\n\n      var ioChartCtx = $('#ioChart');\n      var ioChart = ChartService.CreateIOChart(ioChartCtx);\n      $scope.ioChart = ioChart;\n\n      startChartUpdate(networkChart, cpuChart, memoryChart, ioChart);\n    }\n\n    function initView() {\n      HttpRequestHelper.setPortainerAgentTargetHeader($transition$.params().nodeName);\n      ContainerService.container(endpoint.Id, $transition$.params().id)\n        .then(function success(data) {\n          $scope.container = data;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve container information');\n        });\n\n      $document.ready(function () {\n        initCharts();\n      });\n    }\n\n    initView();\n  },\n]);\n","import { Heart, Power } from 'lucide-react';\n\nimport { Icon } from '@/react/components/Icon';\n\nimport {\n  DockerContainer,\n  ContainerStatus as Status,\n} from '../containers/types';\n\ninterface Props {\n  containers: DockerContainer[];\n}\n\nexport function useContainerStatusComponent(containers: DockerContainer[]) {\n  return <ContainerStatus containers={containers} />;\n}\n\nexport function ContainerStatus({ containers }: Props) {\n  return (\n    <div className=\"pull-right\">\n      <div>\n        <div className=\"vertical-center space-right pr-5\">\n          <Icon icon={Power} mode=\"success\" size=\"sm\" />\n          {runningContainersFilter(containers)} running\n        </div>\n        <div className=\"vertical-center space-right\">\n          <Icon icon={Power} mode=\"danger\" size=\"sm\" />\n          {stoppedContainersFilter(containers)} stopped\n        </div>\n      </div>\n      <div>\n        <div className=\"vertical-center space-right pr-5\">\n          <Icon icon={Heart} mode=\"success\" size=\"sm\" />\n          {healthyContainersFilter(containers)} healthy\n        </div>\n        <div className=\"vertical-center space-right\">\n          <Icon icon={Heart} mode=\"danger\" size=\"sm\" />\n          {unhealthyContainersFilter(containers)} unhealthy\n        </div>\n      </div>\n    </div>\n  );\n}\n\nfunction runningContainersFilter(containers: DockerContainer[]) {\n  return containers.filter(\n    (container) =>\n      container.Status === Status.Running || container.Status === Status.Healthy\n  ).length;\n}\nfunction stoppedContainersFilter(containers: DockerContainer[]) {\n  return containers.filter(\n    (container) =>\n      container.Status === Status.Exited || container.Status === Status.Stopped\n  ).length;\n}\nfunction healthyContainersFilter(containers: DockerContainer[]) {\n  return containers.filter((container) => container.Status === Status.Healthy)\n    .length;\n}\nfunction unhealthyContainersFilter(containers: DockerContainer[]) {\n  return containers.filter((container) => container.Status === Status.Unhealthy)\n    .length;\n}\n","import clsx from 'clsx';\nimport { PieChart } from 'lucide-react';\n\nimport { Icon } from '@/react/components/Icon';\nimport { humanize } from '@/portainer/filters/filters';\n\ninterface Props {\n  imagesTotalSize: number;\n}\n\nexport function useImagesTotalSizeComponent(imagesTotalSize: number) {\n  return <ImagesTotalSize imagesTotalSize={imagesTotalSize} />;\n}\n\nexport function ImagesTotalSize({ imagesTotalSize }: Props) {\n  return (\n    <div className=\"vertical-center\">\n      <Icon icon={PieChart} className={clsx('space-right')} />\n      {humanize(imagesTotalSize)}\n    </div>\n  );\n}\n","import angular from 'angular';\nimport _ from 'lodash';\n\nimport { PortainerEndpointTypes } from 'Portainer/models/endpoint/models';\nimport { useContainerStatusComponent } from '@/react/docker/DashboardView/ContainerStatus';\nimport { useImagesTotalSizeComponent } from '@/react/docker/DashboardView/ImagesTotalSize';\n\nangular.module('portainer.docker').controller('DashboardController', [\n  '$scope',\n  '$q',\n  'Authentication',\n  'ContainerService',\n  'ImageService',\n  'NetworkService',\n  'VolumeService',\n  'SystemService',\n  'ServiceService',\n  'StackService',\n  'Notifications',\n  'StateManager',\n  'TagService',\n  'endpoint',\n  function (\n    $scope,\n    $q,\n    Authentication,\n    ContainerService,\n    ImageService,\n    NetworkService,\n    VolumeService,\n    SystemService,\n    ServiceService,\n    StackService,\n    Notifications,\n    StateManager,\n    TagService,\n    endpoint\n  ) {\n    $scope.dismissInformationPanel = function (id) {\n      StateManager.dismissInformationPanel(id);\n    };\n\n    $scope.showStacks = false;\n\n    $scope.buildGpusStr = function (gpuUseSet) {\n      var gpusAvailable = new Object();\n      for (let i = 0; i < ($scope.endpoint.Gpus || []).length; i++) {\n        if (!gpuUseSet.has($scope.endpoint.Gpus[i].name)) {\n          var exist = false;\n          for (let gpuAvailable in gpusAvailable) {\n            if ($scope.endpoint.Gpus[i].value == gpuAvailable) {\n              gpusAvailable[gpuAvailable] += 1;\n              exist = true;\n            }\n          }\n          if (exist === false) {\n            gpusAvailable[$scope.endpoint.Gpus[i].value] = 1;\n          }\n        }\n      }\n      var retStr = Object.keys(gpusAvailable).length\n        ? _.join(\n            _.map(Object.keys(gpusAvailable), (gpuAvailable) => {\n              var _str = gpusAvailable[gpuAvailable];\n              _str += ' x ';\n              _str += gpuAvailable;\n              return _str;\n            }),\n            ' + '\n          )\n        : 'none';\n      return retStr;\n    };\n\n    async function initView() {\n      const endpointMode = $scope.applicationState.endpoint.mode;\n      $scope.endpoint = endpoint;\n\n      $scope.showStacks = await shouldShowStacks();\n      $scope.showEnvUrl = endpoint.Type !== PortainerEndpointTypes.EdgeAgentOnDockerEnvironment && endpoint.Type !== PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment;\n      $q.all({\n        containers: ContainerService.containers(endpoint.Id, 1),\n        images: ImageService.images(),\n        volumes: VolumeService.volumes(),\n        networks: NetworkService.networks(true, true, true),\n        services: endpointMode.provider === 'DOCKER_SWARM_MODE' && endpointMode.role === 'MANAGER' ? ServiceService.services() : [],\n        stacks: StackService.stacks(true, endpointMode.provider === 'DOCKER_SWARM_MODE' && endpointMode.role === 'MANAGER', endpoint.Id),\n        info: SystemService.info(),\n        tags: TagService.tags(),\n      })\n        .then(function success(data) {\n          $scope.containers = data.containers;\n          $scope.containerStatusComponent = useContainerStatusComponent(data.containers);\n\n          $scope.images = data.images;\n          $scope.imagesTotalSizeComponent = useImagesTotalSizeComponent(imagesTotalSize(data.images));\n\n          $scope.volumeCount = data.volumes.length;\n          $scope.networkCount = data.networks.length;\n          $scope.serviceCount = data.services.length;\n          $scope.stackCount = data.stacks.length;\n          $scope.info = data.info;\n\n          $scope.gpuInfoStr = $scope.buildGpusStr(new Set());\n          $scope.gpuUseAll = _.get($scope, 'endpoint.Snapshots[0].GpuUseAll', false);\n          $scope.gpuUseList = _.get($scope, 'endpoint.Snapshots[0].GpuUseList', []);\n          $scope.gpuFreeStr = 'all';\n          if ($scope.gpuUseAll == true) $scope.gpuFreeStr = 'none';\n          else $scope.gpuFreeStr = $scope.buildGpusStr(new Set($scope.gpuUseList));\n\n          $scope.endpointTags = endpoint.TagIds.length\n            ? _.join(\n                _.filter(\n                  _.map(endpoint.TagIds, (id) => {\n                    const tag = data.tags.find((tag) => tag.Id === id);\n                    return tag ? tag.Name : '';\n                  }),\n                  Boolean\n                ),\n                ', '\n              )\n            : '-';\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to load dashboard data');\n        });\n    }\n\n    async function shouldShowStacks() {\n      const isAdmin = Authentication.isAdmin();\n\n      return isAdmin || endpoint.SecuritySettings.allowStackManagementForRegularUsers;\n    }\n\n    initView();\n  },\n]);\n\nfunction imagesTotalSize(images) {\n  return images.reduce((acc, image) => acc + image.Size, 0);\n}\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nexport default class DockerFeaturesConfigurationController {\n  /* @ngInject */\n  constructor($async, $scope, $state, $analytics, EndpointService, SettingsService, Notifications, StateManager) {\n    this.$async = $async;\n    this.$scope = $scope;\n    this.$state = $state;\n    this.$analytics = $analytics;\n    this.EndpointService = EndpointService;\n    this.SettingsService = SettingsService;\n    this.Notifications = Notifications;\n    this.StateManager = StateManager;\n\n    this.limitedFeatureAutoUpdate = FeatureId.HIDE_AUTO_UPDATE_WINDOW;\n    this.limitedFeatureUpToDateImage = FeatureId.IMAGE_UP_TO_DATE_INDICATOR;\n\n    this.formValues = {\n      enableHostManagementFeatures: false,\n      allowVolumeBrowserForRegularUsers: false,\n      disableBindMountsForRegularUsers: false,\n      disablePrivilegedModeForRegularUsers: false,\n      disableHostNamespaceForRegularUsers: false,\n      disableStackManagementForRegularUsers: false,\n      disableDeviceMappingForRegularUsers: false,\n      disableContainerCapabilitiesForRegularUsers: false,\n      disableSysctlSettingForRegularUsers: false,\n    };\n\n    this.isAgent = false;\n\n    this.state = {\n      actionInProgress: false,\n      autoUpdateSettings: { Enabled: false },\n      timeZone: '',\n    };\n\n    this.save = this.save.bind(this);\n    this.onChangeField = this.onChangeField.bind(this);\n    this.onToggleAutoUpdate = this.onToggleAutoUpdate.bind(this);\n    this.onToggleGPUManagement = this.onToggleGPUManagement.bind(this);\n    this.onGpusChange = this.onGpusChange.bind(this);\n    this.onChangeEnableHostManagementFeatures = this.onChangeField('enableHostManagementFeatures');\n    this.onChangeAllowVolumeBrowserForRegularUsers = this.onChangeField('allowVolumeBrowserForRegularUsers');\n    this.onChangeDisableBindMountsForRegularUsers = this.onChangeField('disableBindMountsForRegularUsers');\n    this.onChangeDisablePrivilegedModeForRegularUsers = this.onChangeField('disablePrivilegedModeForRegularUsers');\n    this.onChangeDisableHostNamespaceForRegularUsers = this.onChangeField('disableHostNamespaceForRegularUsers');\n    this.onChangeDisableStackManagementForRegularUsers = this.onChangeField('disableStackManagementForRegularUsers');\n    this.onChangeDisableDeviceMappingForRegularUsers = this.onChangeField('disableDeviceMappingForRegularUsers');\n    this.onChangeDisableContainerCapabilitiesForRegularUsers = this.onChangeField('disableContainerCapabilitiesForRegularUsers');\n    this.onChangeDisableSysctlSettingForRegularUsers = this.onChangeField('disableSysctlSettingForRegularUsers');\n  }\n\n  onToggleAutoUpdate(value) {\n    return this.$scope.$evalAsync(() => {\n      this.state.autoUpdateSettings.Enabled = value;\n    });\n  }\n\n  onToggleGPUManagement(checked) {\n    this.$scope.$evalAsync(() => {\n      this.state.enableGPUManagement = checked;\n    });\n  }\n\n  onChange(values) {\n    return this.$scope.$evalAsync(() => {\n      this.formValues = {\n        ...this.formValues,\n        ...values,\n      };\n    });\n  }\n\n  onChangeField(field) {\n    return (value) => {\n      this.onChange({\n        [field]: value,\n      });\n    };\n  }\n\n  onGpusChange(value) {\n    return this.$async(async () => {\n      this.endpoint.Gpus = value;\n    });\n  }\n\n  isContainerEditDisabled() {\n    const {\n      disableBindMountsForRegularUsers,\n      disableHostNamespaceForRegularUsers,\n      disablePrivilegedModeForRegularUsers,\n      disableDeviceMappingForRegularUsers,\n      disableContainerCapabilitiesForRegularUsers,\n      disableSysctlSettingForRegularUsers,\n    } = this.formValues;\n    return (\n      disableBindMountsForRegularUsers ||\n      disableHostNamespaceForRegularUsers ||\n      disablePrivilegedModeForRegularUsers ||\n      disableDeviceMappingForRegularUsers ||\n      disableContainerCapabilitiesForRegularUsers ||\n      disableSysctlSettingForRegularUsers\n    );\n  }\n\n  async save() {\n    return this.$async(async () => {\n      try {\n        this.state.actionInProgress = true;\n\n        const validGpus = this.endpoint.Gpus.filter((gpu) => gpu.name && gpu.value);\n        const gpus = this.state.enableGPUManagement ? validGpus : [];\n\n        const settings = {\n          enableHostManagementFeatures: this.formValues.enableHostManagementFeatures,\n          allowBindMountsForRegularUsers: !this.formValues.disableBindMountsForRegularUsers,\n          allowPrivilegedModeForRegularUsers: !this.formValues.disablePrivilegedModeForRegularUsers,\n          allowVolumeBrowserForRegularUsers: this.formValues.allowVolumeBrowserForRegularUsers,\n          allowHostNamespaceForRegularUsers: !this.formValues.disableHostNamespaceForRegularUsers,\n          allowDeviceMappingForRegularUsers: !this.formValues.disableDeviceMappingForRegularUsers,\n          allowStackManagementForRegularUsers: !this.formValues.disableStackManagementForRegularUsers,\n          allowContainerCapabilitiesForRegularUsers: !this.formValues.disableContainerCapabilitiesForRegularUsers,\n          allowSysctlSettingForRegularUsers: !this.formValues.disableSysctlSettingForRegularUsers,\n          enableGPUManagement: this.state.enableGPUManagement,\n          gpus,\n        };\n\n        const publicSettings = await this.SettingsService.publicSettings();\n        const analyticsAllowed = publicSettings.EnableTelemetry;\n        if (analyticsAllowed) {\n          // send analytics if GPU management is changed (with the new state)\n          if (this.initialEnableGPUManagement !== this.state.enableGPUManagement) {\n            this.$analytics.eventTrack('enable-gpu-management-updated', { category: 'portainer', metadata: { enableGPUManagementState: this.state.enableGPUManagement } });\n          }\n          // send analytics if the number of GPUs is changed (with a list of the names)\n          if (gpus.length > this.initialGPUs.length) {\n            const numberOfGPUSAdded = this.endpoint.Gpus.length - this.initialGPUs.length;\n            this.$analytics.eventTrack('gpus-added', { category: 'portainer', metadata: { gpus: gpus.map((gpu) => gpu.name), numberOfGPUSAdded } });\n          }\n          if (gpus.length < this.initialGPUs.length) {\n            const numberOfGPUSRemoved = this.initialGPUs.length - this.endpoint.Gpus.length;\n            this.$analytics.eventTrack('gpus-removed', { category: 'portainer', metadata: { gpus: gpus.map((gpu) => gpu.name), numberOfGPUSRemoved } });\n          }\n          this.initialGPUs = gpus;\n          this.initialEnableGPUManagement = this.state.enableGPUManagement;\n        }\n\n        await this.EndpointService.updateSecuritySettings(this.endpoint.Id, settings);\n\n        this.endpoint.SecuritySettings = settings;\n        this.Notifications.success('Success', 'Saved settings successfully');\n      } catch (e) {\n        this.Notifications.error('Failure', e, 'Failed saving settings');\n      }\n      this.state.actionInProgress = false;\n      this.$state.reload();\n    });\n  }\n\n  $onInit() {\n    const securitySettings = this.endpoint.SecuritySettings;\n\n    const applicationState = this.StateManager.getState();\n    this.isAgent = applicationState.endpoint.mode.agentProxy;\n\n    this.isDockerStandaloneEnv = applicationState.endpoint.mode.provider === 'DOCKER_STANDALONE';\n\n    this.formValues = {\n      enableHostManagementFeatures: this.isAgent && securitySettings.enableHostManagementFeatures,\n      allowVolumeBrowserForRegularUsers: this.isAgent && securitySettings.allowVolumeBrowserForRegularUsers,\n      disableBindMountsForRegularUsers: !securitySettings.allowBindMountsForRegularUsers,\n      disablePrivilegedModeForRegularUsers: !securitySettings.allowPrivilegedModeForRegularUsers,\n      disableHostNamespaceForRegularUsers: !securitySettings.allowHostNamespaceForRegularUsers,\n      disableDeviceMappingForRegularUsers: !securitySettings.allowDeviceMappingForRegularUsers,\n      disableStackManagementForRegularUsers: !securitySettings.allowStackManagementForRegularUsers,\n      disableContainerCapabilitiesForRegularUsers: !securitySettings.allowContainerCapabilitiesForRegularUsers,\n      disableSysctlSettingForRegularUsers: !securitySettings.allowSysctlSettingForRegularUsers,\n    };\n\n    // this.endpoint.Gpus could be null as it is Gpus: []Pair in the API\n    this.endpoint.Gpus = this.endpoint.Gpus || [];\n    this.state.enableGPUManagement = this.isDockerStandaloneEnv && (this.endpoint.EnableGPUManagement || this.endpoint.Gpus.length > 0);\n    this.initialGPUs = this.endpoint.Gpus;\n    this.initialEnableGPUManagement = this.endpoint.EnableGPUManagement;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./docker-features-configuration.html');\n\nimport angular from 'angular';\n\nimport controller from './docker-features-configuration.controller';\n\nangular.module('portainer.docker').component('dockerFeaturesConfigurationView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import moment from 'moment';\n\nangular.module('portainer.docker').controller('EventsController', [\n  '$scope',\n  'Notifications',\n  'SystemService',\n  function ($scope, Notifications, SystemService) {\n    function initView() {\n      var from = moment().subtract(24, 'hour').unix();\n      var to = moment().unix();\n\n      SystemService.events(from, to)\n        .then(function success(data) {\n          $scope.events = data;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to load events');\n        });\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.docker').controller('HostBrowserViewController', [\n  'SystemService',\n  'Notifications',\n  function HostBrowserViewController(SystemService, Notifications) {\n    var ctrl = this;\n    ctrl.$onInit = $onInit;\n\n    function $onInit() {\n      SystemService.info()\n        .then(function onInfoLoaded(host) {\n          ctrl.host = host;\n        })\n        .catch(function onError(err) {\n          Notifications.error('Unable to retrieve host information', err);\n        });\n    }\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./host-browser-view.html');\n\nangular.module('portainer.docker').component('hostBrowserView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'HostBrowserViewController',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","angular.module('portainer.docker').controller('HostViewController', [\n  '$q',\n  'SystemService',\n  'Notifications',\n  'StateManager',\n  'AgentService',\n  'Authentication',\n  function HostViewController($q, SystemService, Notifications, StateManager, AgentService, Authentication) {\n    var ctrl = this;\n\n    this.$onInit = initView;\n\n    ctrl.state = {\n      isAgent: false,\n      isAdmin: false,\n    };\n\n    this.engineDetails = {};\n    this.hostDetails = {};\n    this.devices = undefined;\n    this.disks = null;\n\n    function initView() {\n      var applicationState = StateManager.getState();\n      ctrl.state.isAgent = applicationState.endpoint.mode.agentProxy;\n      ctrl.state.isAdmin = Authentication.isAdmin();\n      var agentApiVersion = applicationState.endpoint.agentApiVersion;\n      ctrl.state.agentApiVersion = agentApiVersion;\n      ctrl.state.enableHostManagementFeatures = ctrl.endpoint.SecuritySettings.enableHostManagementFeatures;\n\n      $q.all({\n        version: SystemService.version(),\n        info: SystemService.info(),\n      })\n        .then(function success(data) {\n          ctrl.engineDetails = buildEngineDetails(data);\n          ctrl.hostDetails = buildHostDetails(data.info);\n\n          if (ctrl.state.isAgent && agentApiVersion > 1 && ctrl.state.enableHostManagementFeatures) {\n            return AgentService.hostInfo(ctrl.endpoint.Id).then(function onHostInfoLoad(agentHostInfo) {\n              ctrl.devices = agentHostInfo.PCIDevices;\n              ctrl.disks = agentHostInfo.PhysicalDisks;\n            });\n          }\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve engine details');\n        });\n    }\n\n    function buildEngineDetails(data) {\n      var versionDetails = data.version;\n      var info = data.info;\n      return {\n        releaseVersion: versionDetails.Version,\n        apiVersion: versionDetails.ApiVersion,\n        rootDirectory: info.DockerRootDir,\n        storageDriver: info.Driver,\n        loggingDriver: info.LoggingDriver,\n        volumePlugins: info.Plugins.Volume,\n        networkPlugins: info.Plugins.Network,\n      };\n    }\n\n    function buildHostDetails(info) {\n      return {\n        os: {\n          arch: info.Architecture,\n          type: info.OSType,\n          name: info.OperatingSystem,\n        },\n        name: info.Name,\n        kernelVersion: info.KernelVersion,\n        totalCPU: info.NCPU,\n        totalMemory: info.MemTotal,\n      };\n    }\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./host-view.html');\n\nangular.module('portainer.docker').component('hostView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'HostViewController',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { editor, upload, url } from '@@/BoxSelector/common-options/build-methods';\n\nangular.module('portainer.docker').controller('BuildImageController', BuildImageController);\n\n/* @ngInject */\nfunction BuildImageController($scope, $async, $window, BuildService, Notifications, HttpRequestHelper, endpoint) {\n  $scope.endpoint = endpoint;\n  $scope.options = [editor, upload, url];\n\n  $scope.state = {\n    BuildType: 'editor',\n    actionInProgress: false,\n    activeTab: 0,\n    isEditorDirty: false,\n  };\n\n  $scope.formValues = {\n    ImageNames: [{ Name: '', Valid: false, Unique: true }],\n    UploadFile: null,\n    DockerFileContent: '',\n    AdditionalFiles: [],\n    URL: '',\n    Path: 'Dockerfile',\n    NodeName: null,\n  };\n\n  $window.onbeforeunload = () => {\n    if ($scope.state.BuildType === 'editor' && $scope.formValues.DockerFileContent && $scope.state.isEditorDirty) {\n      return '';\n    }\n  };\n\n  $scope.$on('$destroy', function () {\n    $scope.state.isEditorDirty = false;\n  });\n\n  $scope.onChangeBuildType = function (type) {\n    $scope.$evalAsync(() => {\n      $scope.state.BuildType = type;\n    });\n  };\n\n  $scope.checkName = function (index) {\n    var item = $scope.formValues.ImageNames[index];\n    item.Valid = true;\n    item.Unique = true;\n    if (item.Name !== '') {\n      // Check unique\n      $scope.formValues.ImageNames.forEach((element, idx) => {\n        if (idx != index && element.Name == item.Name) {\n          item.Valid = false;\n          item.Unique = false;\n        }\n      });\n      if (!item.Valid) {\n        return;\n      }\n    }\n    // Validation\n    const parts = item.Name.split('/');\n    const repository = parts[parts.length - 1];\n    const repositoryRegExp = RegExp('^[a-z0-9-_.]{2,255}(:[A-Za-z0-9-_.]{1,128})?$');\n    item.Valid = repositoryRegExp.test(repository);\n  };\n\n  $scope.addImageName = function () {\n    $scope.formValues.ImageNames.push({ Name: '', Valid: false, Unique: true });\n  };\n\n  $scope.removeImageName = function (index) {\n    $scope.formValues.ImageNames.splice(index, 1);\n    for (var i = 0; i < $scope.formValues.ImageNames.length; i++) {\n      $scope.checkName(i);\n    }\n  };\n\n  function buildImageBasedOnBuildType(method, names) {\n    var buildType = $scope.state.BuildType;\n    var dockerfilePath = $scope.formValues.Path;\n\n    if (buildType === 'upload') {\n      var file = $scope.formValues.UploadFile;\n      return BuildService.buildImageFromUpload(endpoint.Id, names, file, dockerfilePath);\n    } else if (buildType === 'url') {\n      var URL = $scope.formValues.URL;\n      return BuildService.buildImageFromURL(endpoint.Id, names, URL, dockerfilePath);\n    } else {\n      var dockerfileContent = $scope.formValues.DockerFileContent;\n      if ($scope.formValues.AdditionalFiles.length === 0) {\n        return BuildService.buildImageFromDockerfileContent(endpoint.Id, names, dockerfileContent);\n      } else {\n        var additionalFiles = $scope.formValues.AdditionalFiles;\n        return BuildService.buildImageFromDockerfileContentAndFiles(endpoint.Id, names, dockerfileContent, additionalFiles);\n      }\n    }\n  }\n\n  $scope.buildImage = buildImage;\n\n  async function buildImage() {\n    return $async(async () => {\n      var buildType = $scope.state.BuildType;\n\n      if (buildType === 'editor' && $scope.formValues.DockerFileContent === '') {\n        $scope.state.formValidationError = 'Dockerfile content must not be empty';\n        return;\n      }\n\n      $scope.state.actionInProgress = true;\n\n      var imageNames = $scope.formValues.ImageNames.filter(function filterNull(x) {\n        return x.Name;\n      }).map(function getNames(x) {\n        return x.Name;\n      });\n\n      var nodeName = $scope.formValues.NodeName;\n      HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);\n\n      try {\n        const data = await buildImageBasedOnBuildType(buildType, imageNames);\n        $scope.buildLogs = data.buildLogs;\n        $scope.state.activeTab = 1;\n        if (data.hasError) {\n          Notifications.error('An error occurred during build', { msg: 'Please check build logs output' });\n        } else {\n          Notifications.success('Image successfully built');\n          $scope.state.isEditorDirty = false;\n        }\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to build image');\n      } finally {\n        $scope.state.actionInProgress = false;\n      }\n    });\n  }\n\n  $scope.validImageNames = function () {\n    if ($scope.formValues.ImageNames.length == 0) {\n      return false;\n    }\n    for (var i = 0; i < $scope.formValues.ImageNames.length; i++) {\n      if (!$scope.formValues.ImageNames[i].Valid) {\n        return false;\n      }\n    }\n    return true;\n  };\n\n  $scope.editorUpdate = function (value) {\n    $scope.formValues.DockerFileContent = value;\n    $scope.state.isEditorDirty = true;\n  };\n\n  this.uiCanExit = async function () {\n    if ($scope.state.BuildType === 'editor' && $scope.formValues.DockerFileContent && $scope.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  };\n\n  $scope.selectAdditionalFiles = function (files) {\n    $scope.formValues.AdditionalFiles = files;\n  };\n}\n","import _ from 'lodash-es';\nimport { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\nimport { confirmImageExport } from '@/react/docker/images/common/ConfirmExportModal';\nimport { confirmDelete } from '@@/modals/confirm';\n\nangular.module('portainer.docker').controller('ImageController', [\n  '$async',\n  '$q',\n  '$scope',\n  '$transition$',\n  '$state',\n  'Authentication',\n  'ImageService',\n  'ImageHelper',\n  'RegistryService',\n  'Notifications',\n  'HttpRequestHelper',\n  'FileSaver',\n  'Blob',\n  'endpoint',\n  'RegistryModalService',\n  function (\n    $async,\n    $q,\n    $scope,\n    $transition$,\n    $state,\n    Authentication,\n    ImageService,\n    ImageHelper,\n    RegistryService,\n    Notifications,\n    HttpRequestHelper,\n    FileSaver,\n    Blob,\n    endpoint,\n    RegistryModalService\n  ) {\n    $scope.endpoint = endpoint;\n    $scope.isAdmin = Authentication.isAdmin();\n\n    $scope.formValues = {\n      RegistryModel: new PorImageRegistryModel(),\n    };\n\n    $scope.state = {\n      exportInProgress: false,\n      pullImageValidity: false,\n    };\n\n    $scope.sortType = 'Order';\n    $scope.sortReverse = false;\n\n    $scope.order = function (sortType) {\n      $scope.sortReverse = $scope.sortType === sortType ? !$scope.sortReverse : false;\n      $scope.sortType = sortType;\n    };\n\n    $scope.toggleLayerCommand = function (layerId) {\n      $('#layer-command-expander' + layerId + ' span').toggleClass('glyphicon-plus-sign glyphicon-minus-sign');\n      $('#layer-command-' + layerId + '-short').toggle();\n      $('#layer-command-' + layerId + '-full').toggle();\n    };\n\n    $scope.setPullImageValidity = setPullImageValidity;\n    function setPullImageValidity(validity) {\n      $scope.state.pullImageValidity = validity;\n    }\n\n    $scope.tagImage = function () {\n      const registryModel = $scope.formValues.RegistryModel;\n\n      const image = ImageHelper.createImageConfigForContainer(registryModel);\n\n      ImageService.tagImage($transition$.params().id, image.fromImage)\n        .then(function success() {\n          Notifications.success('Success', 'Image successfully tagged');\n          $state.go('docker.images.image', { id: $transition$.params().id }, { reload: true });\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to tag image');\n        });\n    };\n\n    $scope.pushTag = pushTag;\n\n    async function pushTag(repository) {\n      return $async(async () => {\n        try {\n          const registryModel = await RegistryModalService.registryModal(repository, $scope.registries);\n\n          if (registryModel) {\n            $('#uploadResourceHint').show();\n            await ImageService.pushImage(registryModel);\n            Notifications.success('Image successfully pushed', repository);\n          }\n        } catch (err) {\n          Notifications.error('Failure', err, 'Unable to push image to repository');\n        } finally {\n          $('#uploadResourceHint').hide();\n        }\n      });\n    }\n\n    $scope.pullTag = pullTag;\n    async function pullTag(repository) {\n      return $async(async () => {\n        try {\n          const registryModel = await RegistryModalService.registryModal(repository, $scope.registries);\n          if (registryModel) {\n            $('#downloadResourceHint').show();\n            await ImageService.pullImage(registryModel);\n            Notifications.success('Image successfully pulled', repository);\n          }\n        } catch (err) {\n          Notifications.error('Failure', err, 'Unable to pull image from repository');\n        } finally {\n          $('#downloadResourceHint').hide();\n        }\n      });\n    }\n\n    $scope.removeTag = function (repository) {\n      return $async(async () => {\n        if (!(await confirmDelete('Are you sure you want to delete this tag?'))) {\n          return;\n        }\n\n        ImageService.deleteImage(repository, false)\n          .then(function success() {\n            if ($scope.image.RepoTags.length === 1) {\n              Notifications.success('Image successfully deleted', repository);\n              $state.go('docker.images', {}, { reload: true });\n            } else {\n              Notifications.success('Tag successfully deleted', repository);\n              $state.go('docker.images.image', { id: $transition$.params().id }, { reload: true });\n            }\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to remove image');\n          });\n      });\n    };\n\n    $scope.removeImage = function (id) {\n      return $async(async () => {\n        if (!(await confirmDelete('Deleting this image will also delete all associated tags. Are you sure you want to delete this image?'))) {\n          return;\n        }\n\n        ImageService.deleteImage(id, false)\n          .then(function success() {\n            Notifications.success('Image successfully deleted', id);\n            $state.go('docker.images', {}, { reload: true });\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to remove image');\n          });\n      });\n    };\n\n    function exportImage(image) {\n      HttpRequestHelper.setPortainerAgentTargetHeader(image.NodeName);\n      $scope.state.exportInProgress = true;\n      ImageService.downloadImages([{ tags: image.RepoTags, id: image.Id }])\n        .then(function success(data) {\n          var downloadData = new Blob([data.file], { type: 'application/x-tar' });\n          FileSaver.saveAs(downloadData, 'images.tar');\n          Notifications.success('Success', 'Image successfully downloaded');\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to download image');\n        })\n        .finally(function final() {\n          $scope.state.exportInProgress = false;\n        });\n    }\n\n    $scope.exportImage = function (image) {\n      if (image.RepoTags.length === 0 || _.includes(image.RepoTags, '<none>')) {\n        Notifications.warning('', 'Cannot download a untagged image');\n        return;\n      }\n\n      confirmImageExport(function (confirmed) {\n        if (!confirmed) {\n          return;\n        }\n        exportImage(image);\n      });\n    };\n\n    async function initView() {\n      HttpRequestHelper.setPortainerAgentTargetHeader($transition$.params().nodeName);\n\n      try {\n        $scope.registries = await RegistryService.loadRegistriesForDropdown(endpoint.Id);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to load registries');\n      }\n\n      $q.all({\n        image: ImageService.image($transition$.params().id),\n        history: ImageService.history($transition$.params().id),\n      })\n        .then(function success(data) {\n          $scope.image = data.image;\n          $scope.history = data.history;\n          $scope.image.Env = _.sortBy($scope.image.Env, _.toLower);\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve image details');\n          $state.go('docker.images');\n        });\n    }\n\n    initView();\n  },\n]);\n","import _ from 'lodash-es';\nimport { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\nimport { confirmImageExport } from '@/react/docker/images/common/ConfirmExportModal';\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { processItemsInBatches } from '@/react/common/processItemsInBatches';\n\nangular.module('portainer.docker').controller('ImagesController', [\n  '$scope',\n  '$state',\n  'Authentication',\n  'ImageService',\n  'Notifications',\n  'HttpRequestHelper',\n  'FileSaver',\n  'Blob',\n  'endpoint',\n  '$async',\n  function ($scope, $state, Authentication, ImageService, Notifications, HttpRequestHelper, FileSaver, Blob, endpoint) {\n    $scope.endpoint = endpoint;\n    $scope.isAdmin = Authentication.isAdmin();\n\n    $scope.state = {\n      actionInProgress: false,\n      exportInProgress: false,\n      pullRateValid: false,\n    };\n\n    $scope.formValues = {\n      RegistryModel: new PorImageRegistryModel(),\n      NodeName: null,\n    };\n\n    $scope.pullImage = function () {\n      const registryModel = $scope.formValues.RegistryModel;\n\n      var nodeName = $scope.formValues.NodeName;\n      HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);\n\n      $scope.state.actionInProgress = true;\n      ImageService.pullImage(registryModel, false)\n        .then(function success(data) {\n          var err = data[data.length - 1].errorDetail;\n          if (err) {\n            return Notifications.error('Failure', err, 'Unable to pull image');\n          }\n          Notifications.success('Image successfully pulled', registryModel.Image);\n          $state.reload();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to pull image');\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    };\n\n    function confirmImageForceRemoval() {\n      return confirmDestructive({\n        title: 'Are you sure?',\n        message:\n          \"Forcing removal of an image will remove it even if it's used by stopped containers, and delete all associated tags. Are you sure you want to remove the selected image(s)?\",\n        confirmButton: buildConfirmButton('Remove the image', 'danger'),\n      });\n    }\n\n    function confirmRegularRemove() {\n      return confirmDestructive({\n        title: 'Are you sure?',\n        message: 'Removing an image will also delete all associated tags. Are you sure you want to remove the selected image(s)?',\n        confirmButton: buildConfirmButton('Remove the image', 'danger'),\n      });\n    }\n\n    /**\n     *\n     * @param {Array<import('@/react/docker/images/queries/useImages').ImagesListResponse>} selectedItems\n     * @param {boolean} force\n     */\n    $scope.confirmRemovalAction = async function (selectedItems, force) {\n      const confirmed = await (force ? confirmImageForceRemoval() : confirmRegularRemove());\n\n      if (!confirmed) {\n        return;\n      }\n\n      $scope.removeAction(selectedItems, force);\n    };\n\n    /**\n     *\n     * @param {Array<import('@/react/docker/images/queries/useImages').ImagesListResponse>} selectedItems\n     */\n    function isAuthorizedToDownload(selectedItems) {\n      for (var i = 0; i < selectedItems.length; i++) {\n        var image = selectedItems[i];\n\n        var untagged = _.find(image.tags, function (item) {\n          return item.indexOf('<none>') > -1;\n        });\n\n        if (untagged) {\n          Notifications.warning('', 'Cannot download a untagged image');\n          return false;\n        }\n      }\n\n      if (_.uniqBy(selectedItems, 'NodeName').length > 1) {\n        Notifications.warning('', 'Cannot download images from different nodes at the same time');\n        return false;\n      }\n\n      return true;\n    }\n\n    /**\n     *\n     * @param {Array<import('@/react/docker/images/queries/useImages').ImagesListResponse>} images\n     */\n    function exportImages(images) {\n      HttpRequestHelper.setPortainerAgentTargetHeader(images[0].nodeName);\n      $scope.state.exportInProgress = true;\n      ImageService.downloadImages(images)\n        .then(function success(data) {\n          var downloadData = new Blob([data.file], { type: 'application/x-tar' });\n          FileSaver.saveAs(downloadData, 'images.tar');\n          Notifications.success('Success', 'Image(s) successfully downloaded');\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to download image(s)');\n        })\n        .finally(function final() {\n          $scope.state.exportInProgress = false;\n        });\n    }\n\n    /**\n     *\n     * @param {Array<import('@/react/docker/images/queries/useImages').ImagesListResponse>} selectedItems\n     */\n    $scope.downloadAction = function (selectedItems) {\n      if (!isAuthorizedToDownload(selectedItems)) {\n        return;\n      }\n\n      confirmImageExport(function (confirmed) {\n        if (!confirmed) {\n          return;\n        }\n        exportImages(selectedItems);\n      });\n    };\n\n    $scope.removeAction = removeAction;\n\n    /**\n     *\n     * @param {Array<import('@/react/docker/images/queries/useImages').ImagesListResponse>} selectedItems\n     * @param {boolean} force\n     */\n    async function removeAction(selectedItems, force) {\n      async function doRemove(image) {\n        HttpRequestHelper.setPortainerAgentTargetHeader(image.nodeName);\n        return ImageService.deleteImage(image.id, force)\n          .then(function success() {\n            Notifications.success('Image successfully removed', image.id);\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to remove image');\n          });\n      }\n\n      await processItemsInBatches(selectedItems, doRemove);\n      $state.reload();\n    }\n\n    $scope.setPullImageValidity = setPullImageValidity;\n    function setPullImageValidity(validity) {\n      $scope.state.pullRateValid = validity;\n    }\n  },\n]);\n","import { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\n\nangular.module('portainer.docker').controller('ImportImageController', [\n  '$scope',\n  '$state',\n  'ImageService',\n  'Notifications',\n  'HttpRequestHelper',\n  'Authentication',\n  'ImageHelper',\n  'endpoint',\n  function ($scope, $state, ImageService, Notifications, HttpRequestHelper, Authentication, ImageHelper, endpoint) {\n    $scope.state = {\n      actionInProgress: false,\n    };\n\n    $scope.endpoint = endpoint;\n\n    $scope.isAdmin = Authentication.isAdmin();\n\n    $scope.formValues = {\n      UploadFile: null,\n      NodeName: null,\n      RegistryModel: new PorImageRegistryModel(),\n    };\n\n    $scope.setPullImageValidity = setPullImageValidity;\n    function setPullImageValidity(validity) {\n      $scope.state.pullImageValidity = validity;\n    }\n\n    async function tagImage(id) {\n      const registryModel = $scope.formValues.RegistryModel;\n      if (registryModel.Image) {\n        const image = ImageHelper.createImageConfigForContainer(registryModel);\n        try {\n          await ImageService.tagImage(id, image.fromImage);\n        } catch (err) {\n          Notifications.error('Failure', err, 'Unable to tag image');\n        }\n      }\n    }\n\n    $scope.uploadImage = async function () {\n      $scope.state.actionInProgress = true;\n\n      var nodeName = $scope.formValues.NodeName;\n      HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);\n      var file = $scope.formValues.UploadFile;\n      try {\n        const { data } = await ImageService.uploadImage(file);\n        if (data.error) {\n          Notifications.error('Failure', data.error, 'Unable to upload image');\n        } else if (data.stream) {\n          var regex = /Loaded.*?: (.*?)\\n$/g;\n          var imageIds = regex.exec(data.stream);\n          if (imageIds && imageIds.length == 2) {\n            await tagImage(imageIds[1]);\n            $state.go('docker.images.image', { id: imageIds[1] }, { reload: true });\n          }\n          Notifications.success('Success', 'Images successfully uploaded');\n        } else {\n          Notifications.success('Success', 'The uploaded tar file contained multiple images. The provided tag therefore has been ignored.');\n        }\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to upload image');\n      } finally {\n        $scope.state.actionInProgress = false;\n      }\n    };\n  },\n]);\n","import _ from 'lodash-es';\nimport { AccessControlFormData } from '../../../../portainer/components/accessControlForm/porAccessControlFormModel';\nimport { MacvlanFormData } from '../../../components/network-macvlan-form/networkMacvlanFormModel';\n\nangular.module('portainer.docker').controller('CreateNetworkController', [\n  '$q',\n  '$scope',\n  '$state',\n  'PluginService',\n  'Notifications',\n  'NetworkService',\n  'LabelHelper',\n  'Authentication',\n  'ResourceControlService',\n  'FormValidator',\n  'HttpRequestHelper',\n  'endpoint',\n  function ($q, $scope, $state, PluginService, Notifications, NetworkService, LabelHelper, Authentication, ResourceControlService, FormValidator, HttpRequestHelper, endpoint) {\n    $scope.endpoint = endpoint;\n\n    $scope.formValues = {\n      DriverOptions: [],\n      IPV4: {\n        Subnet: '',\n        Gateway: '',\n        IPRange: '',\n        AuxiliaryAddresses: [],\n      },\n      IPV6: {\n        Subnet: '',\n        Gateway: '',\n        IPRange: '',\n        AuxiliaryAddresses: [],\n      },\n      Labels: [],\n      AccessControlData: new AccessControlFormData(),\n      NodeName: null,\n      Macvlan: new MacvlanFormData(),\n    };\n\n    $scope.state = {\n      formValidationError: '',\n      actionInProgress: false,\n    };\n\n    $scope.availableNetworkDrivers = [];\n\n    $scope.config = {\n      Driver: 'bridge',\n      CheckDuplicate: true,\n      Internal: false,\n      Attachable: false,\n      EnableIPv6: false,\n      // Force IPAM Driver to 'default', should not be required.\n      // See: https://github.com/docker/docker/issues/25735\n      IPAM: {\n        Driver: 'default',\n        Config: [],\n      },\n      Labels: {},\n    };\n\n    $scope.addDriverOption = function () {\n      $scope.formValues.DriverOptions.push({\n        name: '',\n        value: '',\n      });\n    };\n\n    $scope.removeDriverOption = function (index) {\n      $scope.formValues.DriverOptions.splice(index, 1);\n    };\n\n    $scope.addLabel = function () {\n      $scope.formValues.Labels.push({\n        key: '',\n        value: '',\n      });\n    };\n\n    $scope.removeLabel = function (index) {\n      $scope.formValues.Labels.splice(index, 1);\n    };\n\n    $scope.addIPV4AuxAddress = function () {\n      $scope.formValues.IPV4.AuxiliaryAddresses.push('');\n    };\n\n    $scope.addIPV6AuxAddress = function () {\n      $scope.formValues.IPV6.AuxiliaryAddresses.push('');\n    };\n\n    $scope.removeIPV4AuxAddress = function (index) {\n      $scope.formValues.IPV4.AuxiliaryAddresses.splice(index, 1);\n      $scope.state.IPV4AuxiliaryAddressesError.splice(index, 1);\n    };\n\n    $scope.removeIPV6AuxAddress = function (index) {\n      $scope.formValues.IPV6.AuxiliaryAddresses.splice(index, 1);\n      $scope.state.IPV6AuxiliaryAddressesError.splice(index, 1);\n    };\n\n    function checkAuxiliaryAddress(excludedIP, gateway) {\n      const split = _.split(excludedIP, '=');\n\n      if (split.length === 2) {\n        return split[1] === gateway;\n      }\n      return excludedIP === gateway;\n    }\n\n    $scope.checkIPV4AuxiliaryAddress = function (index) {\n      $scope.state.IPV4AuxiliaryAddressesError[index] = checkAuxiliaryAddress($scope.formValues.IPV4.AuxiliaryAddresses[index], $scope.formValues.IPV4.Gateway);\n    };\n\n    $scope.checkIPV6AuxiliaryAddress = function (index) {\n      $scope.state.IPV6AuxiliaryAddressesError[index] = checkAuxiliaryAddress($scope.formValues.IPV6.AuxiliaryAddresses[index], $scope.formValues.IPV6.Gateway);\n    };\n\n    $scope.isValid = function () {\n      const validIPV4 = !_.reduce($scope.state.IPV4AuxiliaryAddressesError, (acc, item) => acc || item, false);\n      const validIPV6 = !_.reduce($scope.state.IPV6AuxiliaryAddressesError, (acc, item) => acc || item, false);\n      return validIPV4 && validIPV6;\n    };\n\n    function prepareAuxiliaryAddresses(ipamConfig, ipFormValues) {\n      ipamConfig.AuxiliaryAddresses = {};\n      _.forEach(ipFormValues.AuxiliaryAddresses, (auxAddress, index) => {\n        const split = _.split(auxAddress, '=');\n        if (split.length === 2) {\n          ipamConfig.AuxiliaryAddresses[split[0]] = split[1];\n        } else {\n          ipamConfig.AuxiliaryAddresses['device' + index] = auxAddress;\n        }\n      });\n    }\n\n    function prepareIPAMConfiguration(config) {\n      if ($scope.formValues.IPV4.Subnet) {\n        let ipamConfig = {};\n        ipamConfig.Subnet = $scope.formValues.IPV4.Subnet;\n        if ($scope.formValues.IPV4.Gateway) {\n          ipamConfig.Gateway = $scope.formValues.IPV4.Gateway;\n        }\n        if ($scope.formValues.IPV4.IPRange) {\n          ipamConfig.IPRange = $scope.formValues.IPV4.IPRange;\n        }\n        if ($scope.formValues.IPV4.AuxiliaryAddresses.length) {\n          prepareAuxiliaryAddresses(ipamConfig, $scope.formValues.IPV4);\n        }\n        config.IPAM.Config.push(ipamConfig);\n      }\n      if ($scope.formValues.IPV6.Subnet) {\n        let ipamConfig = {};\n        ipamConfig.Subnet = $scope.formValues.IPV6.Subnet;\n        if ($scope.formValues.IPV6.Gateway) {\n          ipamConfig.Gateway = $scope.formValues.IPV6.Gateway;\n        }\n        if ($scope.formValues.IPV6.IPRange) {\n          ipamConfig.IPRange = $scope.formValues.IPV6.IPRange;\n        }\n        if ($scope.formValues.IPV6.AuxiliaryAddresses.length) {\n          prepareAuxiliaryAddresses(ipamConfig, $scope.formValues.IPV6);\n        }\n        config.EnableIPv6 = true;\n        config.IPAM.Config.push(ipamConfig);\n      }\n    }\n\n    function prepareDriverOptions(config) {\n      var options = {};\n      $scope.formValues.DriverOptions.forEach(function (option) {\n        options[option.name] = option.value;\n      });\n      config.Options = options;\n    }\n\n    function prepareLabelsConfig(config) {\n      config.Labels = LabelHelper.fromKeyValueToLabelHash($scope.formValues.Labels);\n    }\n\n    function prepareConfiguration() {\n      var config = angular.copy($scope.config);\n      prepareIPAMConfiguration(config);\n      prepareDriverOptions(config);\n      prepareLabelsConfig(config);\n      return config;\n    }\n\n    function modifyNetworkConfigurationForMacvlanConfigOnly(config) {\n      config.Internal = null;\n      config.Attachable = null;\n      config.ConfigOnly = true;\n      config.Options.parent = $scope.formValues.Macvlan.ParentNetworkCard;\n    }\n\n    function modifyNetworkConfigurationForMacvlanConfigFrom(config, selectedNetworkConfig) {\n      config.ConfigFrom = {\n        Network: selectedNetworkConfig.Name,\n      };\n      if ($scope.applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE') {\n        config.Scope = 'swarm';\n      } else {\n        config.Scope = 'local';\n      }\n    }\n\n    $scope.onChangeInternal = function (enable) {\n      $scope.$evalAsync(() => {\n        $scope.config.Internal = enable;\n      });\n    };\n\n    $scope.onChangeAttachable = function (enable) {\n      $scope.$evalAsync(() => {\n        $scope.config.Attachable = enable;\n      });\n    };\n\n    function validateForm(accessControlData, isAdmin) {\n      $scope.state.formValidationError = '';\n      var error = '';\n      error = FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n      if (error) {\n        $scope.state.formValidationError = error;\n        return false;\n      }\n      return true;\n    }\n\n    function createNetwork(context) {\n      HttpRequestHelper.setPortainerAgentTargetHeader(context.nodeName);\n      HttpRequestHelper.setPortainerAgentManagerOperation(context.managerOperation);\n\n      $scope.state.actionInProgress = true;\n      NetworkService.create(context.networkConfiguration)\n        .then(function success(data) {\n          const userId = context.userDetails.ID;\n          const accessControlData = context.accessControlData;\n          const resourceControl = data.Portainer.ResourceControl;\n          return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Network successfully created');\n          if (context.reload) {\n            $state.go(\n              'docker.networks',\n              {},\n              {\n                reload: true,\n              }\n            );\n          }\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'An error occurred during network creation');\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    }\n\n    $scope.create = function () {\n      var networkConfiguration = prepareConfiguration();\n      var accessControlData = $scope.formValues.AccessControlData;\n      var userDetails = Authentication.getUserDetails();\n      var isAdmin = Authentication.isAdmin();\n\n      if (!validateForm(accessControlData, isAdmin)) {\n        return;\n      }\n\n      var creationContext = {\n        nodeName: $scope.formValues.NodeName,\n        managerOperation: false,\n        networkConfiguration: networkConfiguration,\n        userDetails: userDetails,\n        accessControlData: accessControlData,\n        reload: true,\n      };\n\n      if ($scope.applicationState.endpoint.mode.agentProxy && $scope.applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && $scope.config.Driver === 'overlay') {\n        creationContext.managerOperation = true;\n      }\n\n      if ($scope.config.Driver === 'macvlan') {\n        if ($scope.formValues.Macvlan.Scope === 'local') {\n          modifyNetworkConfigurationForMacvlanConfigOnly(networkConfiguration);\n        } else if ($scope.formValues.Macvlan.Scope === 'swarm') {\n          var selectedNetworkConfig = $scope.formValues.Macvlan.SelectedNetworkConfig;\n          modifyNetworkConfigurationForMacvlanConfigFrom(networkConfiguration, selectedNetworkConfig);\n          creationContext.nodeName = selectedNetworkConfig.NodeName;\n        }\n      }\n\n      if (\n        $scope.config.Driver === 'macvlan' &&\n        $scope.formValues.Macvlan.Scope === 'local' &&\n        $scope.applicationState.endpoint.mode.agentProxy &&\n        $scope.applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\n      ) {\n        var selectedNodes = $scope.formValues.Macvlan.DatatableState.selectedItems;\n        selectedNodes.forEach(function (node, idx) {\n          creationContext.nodeName = node.Hostname;\n          creationContext.reload = idx === selectedNodes.length - 1 ? true : false;\n          createNetwork(creationContext);\n        });\n      } else {\n        createNetwork(creationContext);\n      }\n    };\n\n    function initView() {\n      var apiVersion = $scope.applicationState.endpoint.apiVersion;\n      $scope.state.IPV4AuxiliaryAddressesError = [];\n      $scope.state.IPV6AuxiliaryAddressesError = [];\n\n      PluginService.networkPlugins(apiVersion < 1.25)\n        .then(function success(data) {\n          $scope.availableNetworkDrivers = data;\n          $scope.availableNetworkDrivers = _.filter($scope.availableNetworkDrivers, (driver) => driver !== 'host' && driver !== 'null');\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve network drivers');\n        });\n    }\n\n    initView();\n  },\n]);\n","import _ from 'lodash-es';\nimport DockerNetworkHelper from '@/docker/helpers/networkHelper';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { processItemsInBatches } from '@/react/common/processItemsInBatches';\n\nangular.module('portainer.docker').controller('NetworksController', [\n  '$q',\n  '$scope',\n  '$state',\n  'NetworkService',\n  'Notifications',\n  'HttpRequestHelper',\n  'endpoint',\n  'AgentService',\n  function ($q, $scope, $state, NetworkService, Notifications, HttpRequestHelper, endpoint, AgentService) {\n    $scope.removeAction = async function (selectedItems) {\n      const confirmed = await confirmDelete('Do you want to remove the selected network(s)?');\n      if (!confirmed) {\n        return null;\n      }\n\n      async function doRemove(network) {\n        HttpRequestHelper.setPortainerAgentTargetHeader(network.NodeName);\n        return NetworkService.remove(network.Id)\n          .then(function success() {\n            Notifications.success('Network successfully removed', network.Name);\n            var index = $scope.networks.indexOf(network);\n            $scope.networks.splice(index, 1);\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to remove network');\n          });\n      }\n\n      await processItemsInBatches(selectedItems, doRemove);\n      $state.reload();\n    };\n\n    $scope.getNetworks = getNetworks;\n\n    function groupSwarmNetworksManagerNodesFirst(networks, agents) {\n      const getRole = (item) => _.find(agents, (agent) => agent.NodeName === item.NodeName).NodeRole;\n\n      const nonSwarmNetworks = _.remove(networks, (item) => item.Scope !== 'swarm');\n      const grouped = _.toArray(_.groupBy(networks, (item) => item.Id));\n      const sorted = _.map(grouped, (arr) => _.sortBy(arr, (item) => getRole(item)));\n      const arr = _.map(sorted, (a) => {\n        const item = a[0];\n        for (let i = 1; i < a.length; i++) {\n          item.Subs.push(a[i]);\n        }\n        return item;\n      });\n      const res = _.concat(arr, ...nonSwarmNetworks);\n      return res;\n    }\n\n    function getNetworks() {\n      const req = {\n        networks: NetworkService.networks(true, true, true),\n      };\n\n      if ($scope.applicationState.endpoint.mode.agentProxy && $scope.applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE') {\n        req.agents = AgentService.agents(endpoint.Id);\n      }\n\n      $q.all(req)\n        .then((data) => {\n          const networks = _.forEach(data.networks, (item) => (item.Subs = []));\n          if ($scope.applicationState.endpoint.mode.agentProxy && $scope.applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE') {\n            $scope.networks = groupSwarmNetworksManagerNodesFirst(data.networks, data.agents);\n          } else {\n            $scope.networks = networks;\n          }\n\n          _.forEach($scope.networks, (network) => {\n            network.IPAM.IPV4Configs = DockerNetworkHelper.getIPV4Configs(network.IPAM.Config);\n            network.IPAM.IPV6Configs = DockerNetworkHelper.getIPV6Configs(network.IPAM.Config);\n          });\n        })\n        .catch((err) => {\n          $scope.networks = [];\n          Notifications.error('Failure', err, 'Unable to retrieve networks');\n        });\n    }\n\n    function initView() {\n      getNetworks();\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.docker').controller('NodeBrowserController', [\n  '$stateParams',\n  'NodeService',\n  'HttpRequestHelper',\n  'Notifications',\n  function NodeBrowserController($stateParams, NodeService, HttpRequestHelper, Notifications) {\n    var ctrl = this;\n    ctrl.$onInit = $onInit;\n\n    function $onInit() {\n      ctrl.nodeId = $stateParams.id;\n\n      NodeService.node(ctrl.nodeId)\n        .then(function onNodeLoaded(node) {\n          HttpRequestHelper.setPortainerAgentTargetHeader(node.Hostname);\n          ctrl.node = node;\n        })\n        .catch(function onError(err) {\n          Notifications.error('Unable to retrieve host information', err);\n        });\n    }\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./node-browser.html');\n\nangular.module('portainer.docker').component('nodeBrowserView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'NodeBrowserController',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","angular.module('portainer.docker').controller('NodeDetailsViewController', [\n  '$q',\n  '$stateParams',\n  'NodeService',\n  'StateManager',\n  'AgentService',\n  'Authentication',\n  function NodeDetailsViewController($q, $stateParams, NodeService, StateManager, AgentService, Authentication) {\n    var ctrl = this;\n\n    ctrl.$onInit = initView;\n\n    ctrl.state = {\n      isAgent: false,\n      isAdmin: false,\n    };\n\n    function initView() {\n      var applicationState = StateManager.getState();\n      ctrl.state.isAgent = applicationState.endpoint.mode.agentProxy;\n      ctrl.state.isAdmin = Authentication.isAdmin();\n      ctrl.state.enableHostManagementFeatures = ctrl.endpoint.SecuritySettings.enableHostManagementFeatures;\n\n      var nodeId = $stateParams.id;\n      $q.all({\n        node: NodeService.node(nodeId),\n      }).then(function (data) {\n        var node = data.node;\n        ctrl.originalNode = node;\n        ctrl.hostDetails = buildHostDetails(node);\n        ctrl.engineDetails = buildEngineDetails(node);\n        ctrl.nodeDetails = buildNodeDetails(node);\n        if (ctrl.state.isAgent) {\n          var agentApiVersion = applicationState.endpoint.agentApiVersion;\n          ctrl.state.agentApiVersion = agentApiVersion;\n          if (agentApiVersion < 2 || !ctrl.state.enableHostManagementFeatures) {\n            return;\n          }\n\n          AgentService.hostInfo(ctrl.endpoint.Id, node.Hostname).then(function onHostInfoLoad(agentHostInfo) {\n            ctrl.devices = agentHostInfo.PCIDevices;\n            ctrl.disks = agentHostInfo.PhysicalDisks;\n          });\n        }\n      });\n    }\n\n    function buildHostDetails(node) {\n      return {\n        os: {\n          arch: node.PlatformArchitecture,\n          type: node.PlatformOS,\n        },\n        name: node.Hostname,\n        totalCPU: node.CPUs / 1e9,\n        totalMemory: node.Memory,\n      };\n    }\n\n    function buildEngineDetails(node) {\n      return {\n        releaseVersion: node.EngineVersion,\n        volumePlugins: transformPlugins(node.Plugins, 'Volume'),\n        networkPlugins: transformPlugins(node.Plugins, 'Network'),\n        engineLabels: node.EngineLabels,\n      };\n    }\n\n    function buildNodeDetails(node) {\n      return {\n        name: node.Name,\n        role: node.Role,\n        managerAddress: node.ManagerAddr,\n        availability: node.Availability,\n        status: node.Status,\n        nodeLabels: node.Labels,\n      };\n    }\n\n    function transformPlugins(pluginsList, type) {\n      return pluginsList\n        .filter(function (plugin) {\n          return plugin.Type === type;\n        })\n        .map(function (plugin) {\n          return plugin.Name;\n        });\n    }\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./node-details-view.html');\n\nangular.module('portainer.docker').component('nodeDetailsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'NodeDetailsViewController',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registryAccess.html');\n\nangular.module('portainer.docker').component('dockerRegistryAccessView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'DockerRegistryAccessController',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import { TeamAccessViewModel, UserAccessViewModel } from 'Portainer/models/access';\n\nclass DockerRegistryAccessController {\n  /* @ngInject */\n  constructor($async, $state, Notifications, EndpointService, GroupService, RegistryService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Notifications = Notifications;\n    this.EndpointService = EndpointService;\n    this.GroupService = GroupService;\n    this.RegistryService = RegistryService;\n\n    this.updateAccess = this.updateAccess.bind(this);\n    this.filterUsers = this.filterUsers.bind(this);\n  }\n\n  updateAccess() {\n    return this.$async(async () => {\n      this.state.actionInProgress = true;\n      try {\n        await this.EndpointService.updateRegistryAccess(this.state.endpointId, this.state.registryId, this.registryEndpointAccesses);\n        this.Notifications.success('Success', 'Access successfully updated');\n        this.$state.reload();\n      } catch (err) {\n        this.state.actionInProgress = false;\n        this.Notifications.error('Failure', err, 'Unable to update accesses');\n      }\n    });\n  }\n\n  filterUsers(users) {\n    const endpointUsers = this.endpoint.UserAccessPolicies;\n    const endpointTeams = this.endpoint.TeamAccessPolicies;\n\n    const endpointGroupUsers = this.endpointGroup.UserAccessPolicies;\n    const endpointGroupTeams = this.endpointGroup.TeamAccessPolicies;\n\n    return users.filter((userOrTeam) => {\n      const userAccess = userOrTeam instanceof UserAccessViewModel && (endpointUsers[userOrTeam.Id] || endpointGroupUsers[userOrTeam.Id]);\n      const teamAccess = userOrTeam instanceof TeamAccessViewModel && (endpointTeams[userOrTeam.Id] || endpointGroupTeams[userOrTeam.Id]);\n\n      return userAccess || teamAccess;\n    });\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.registryTo = window.location.hash.match(/#!\\/\\d+\\/docker\\/swarm\\/registries/) ? 'docker.swarm.registries' : 'docker.host.registries';\n\n      try {\n        this.state = {\n          viewReady: false,\n          actionInProgress: false,\n          endpointId: this.$state.params.endpointId,\n          registryId: this.$state.params.id,\n        };\n        this.registry = await this.RegistryService.registry(this.state.registryId, this.state.endpointId);\n        this.registryEndpointAccesses = this.registry.RegistryAccesses[this.state.endpointId] || {};\n        this.endpointGroup = await this.GroupService.group(this.endpoint.GroupId);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registry details');\n      } finally {\n        this.state.viewReady = true;\n      }\n    });\n  }\n}\n\nexport default DockerRegistryAccessController;\nangular.module('portainer.docker').controller('DockerRegistryAccessController', DockerRegistryAccessController);\n","import { AccessControlFormData } from '../../../../portainer/components/accessControlForm/porAccessControlFormModel';\n\nangular.module('portainer.docker').controller('CreateSecretController', [\n  '$scope',\n  '$state',\n  'Notifications',\n  'SecretService',\n  'LabelHelper',\n  'Authentication',\n  'ResourceControlService',\n  'FormValidator',\n  function ($scope, $state, Notifications, SecretService, LabelHelper, Authentication, ResourceControlService, FormValidator) {\n    $scope.formValues = {\n      Name: '',\n      Data: '',\n      Labels: [],\n      encodeSecret: true,\n      AccessControlData: new AccessControlFormData(),\n    };\n\n    $scope.state = {\n      formValidationError: '',\n      actionInProgress: false,\n    };\n\n    $scope.handleEncodeSecretChange = handleEncodeSecretChange;\n\n    function handleEncodeSecretChange(checked) {\n      return $scope.$evalAsync(() => {\n        $scope.formValues.encodeSecret = checked;\n      });\n    }\n\n    $scope.addLabel = function () {\n      $scope.formValues.Labels.push({ key: '', value: '' });\n    };\n\n    $scope.removeLabel = function (index) {\n      $scope.formValues.Labels.splice(index, 1);\n    };\n\n    function prepareLabelsConfig(config) {\n      config.Labels = LabelHelper.fromKeyValueToLabelHash($scope.formValues.Labels);\n    }\n\n    function prepareSecretData(config) {\n      if ($scope.formValues.encodeSecret) {\n        config.Data = btoa(unescape(encodeURIComponent($scope.formValues.Data)));\n      } else {\n        config.Data = $scope.formValues.Data;\n      }\n    }\n\n    function prepareConfiguration() {\n      var config = {};\n      config.Name = $scope.formValues.Name;\n      prepareSecretData(config);\n      prepareLabelsConfig(config);\n      return config;\n    }\n\n    function validateForm(accessControlData, isAdmin) {\n      $scope.state.formValidationError = '';\n      var error = '';\n      error = FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n      if (error) {\n        $scope.state.formValidationError = error;\n        return false;\n      }\n      return true;\n    }\n\n    $scope.create = function () {\n      const accessControlData = $scope.formValues.AccessControlData;\n      const userDetails = Authentication.getUserDetails();\n      const isAdmin = Authentication.isAdmin();\n\n      if (!validateForm(accessControlData, isAdmin)) {\n        return;\n      }\n\n      $scope.state.actionInProgress = true;\n      var secretConfiguration = prepareConfiguration();\n      SecretService.create(secretConfiguration)\n        .then(function success(data) {\n          const userId = userDetails.ID;\n          const resourceControl = data.Portainer.ResourceControl;\n          return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Secret successfully created');\n          $state.go('docker.secrets', {}, { reload: true });\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to create secret');\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    };\n  },\n]);\n","import { ResourceControlType } from '@/react/portainer/access-control/types';\n\nangular.module('portainer.docker').controller('SecretController', SecretController);\n\n/* @ngInject */\nfunction SecretController($scope, $transition$, $state, SecretService, Notifications, endpoint) {\n  $scope.resourceType = ResourceControlType.Secret;\n  $scope.endpoint = endpoint;\n  $scope.onUpdateResourceControlSuccess = function () {\n    $state.reload();\n  };\n\n  $scope.removeSecret = function removeSecret(secretId) {\n    SecretService.remove(secretId)\n      .then(function success() {\n        Notifications.success('Success', 'Secret successfully removed');\n        $state.go('docker.secrets', {});\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to remove secret');\n      });\n  };\n\n  function initView() {\n    SecretService.secret($transition$.params().id)\n      .then(function success(data) {\n        $scope.secret = data;\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to retrieve secret details');\n      });\n  }\n\n  initView();\n}\n","import { confirmDelete } from '@@/modals/confirm';\nimport { processItemsInBatches } from '@/react/common/processItemsInBatches';\n\nangular.module('portainer.docker').controller('SecretsController', [\n  '$scope',\n  '$state',\n  'SecretService',\n  'Notifications',\n  function ($scope, $state, SecretService, Notifications) {\n    $scope.removeAction = async function (selectedItems) {\n      const confirmed = await confirmDelete('Do you want to remove the selected secret(s)?');\n      if (!confirmed) {\n        return null;\n      }\n\n      async function doRemove(secret) {\n        return SecretService.remove(secret.Id)\n          .then(function success() {\n            Notifications.success('Secret successfully removed', secret.Name);\n            var index = $scope.secrets.indexOf(secret);\n            $scope.secrets.splice(index, 1);\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to remove secret');\n          });\n      }\n\n      await processItemsInBatches(selectedItems, doRemove);\n      $state.reload();\n    };\n\n    $scope.getSecrets = getSecrets;\n\n    function getSecrets() {\n      SecretService.secrets()\n        .then(function success(data) {\n          $scope.secrets = data;\n        })\n        .catch(function error(err) {\n          $scope.secrets = [];\n          Notifications.error('Failure', err, 'Unable to retrieve secrets');\n        });\n    }\n\n    function initView() {\n      getSecrets();\n    }\n\n    initView();\n  },\n]);\n","import _ from 'lodash-es';\n\nimport * as envVarsUtils from '@/react/components/form-components/EnvironmentVariablesFieldset/utils';\nimport { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\nimport { AccessControlFormData } from '../../../../portainer/components/accessControlForm/porAccessControlFormModel';\n\nrequire('./includes/update-restart.html');\nrequire('./includes/secret.html');\nrequire('./includes/config.html');\nrequire('./includes/resources-placement.html');\n\nangular.module('portainer.docker').controller('CreateServiceController', [\n  '$q',\n  '$scope',\n  '$state',\n  '$timeout',\n  'Service',\n  'ServiceHelper',\n  'ConfigService',\n  'ConfigHelper',\n  'SecretHelper',\n  'SecretService',\n  'VolumeService',\n  'NetworkService',\n  'ImageHelper',\n  'LabelHelper',\n  'Authentication',\n  'ResourceControlService',\n  'Notifications',\n  'FormValidator',\n  'PluginService',\n  'RegistryService',\n  'HttpRequestHelper',\n  'NodeService',\n  'WebhookService',\n  'endpoint',\n  function (\n    $q,\n    $scope,\n    $state,\n    $timeout,\n    Service,\n    ServiceHelper,\n    ConfigService,\n    ConfigHelper,\n    SecretHelper,\n    SecretService,\n    VolumeService,\n    NetworkService,\n    ImageHelper,\n    LabelHelper,\n    Authentication,\n    ResourceControlService,\n    Notifications,\n    FormValidator,\n    PluginService,\n    RegistryService,\n    HttpRequestHelper,\n    NodeService,\n    WebhookService,\n    endpoint\n  ) {\n    $scope.endpoint = endpoint;\n\n    $scope.formValues = {\n      Name: '',\n      RegistryModel: new PorImageRegistryModel(),\n      Mode: 'replicated',\n      Replicas: 1,\n      Command: '',\n      EntryPoint: '',\n      WorkingDir: '',\n      User: '',\n      Env: [],\n      Labels: [],\n      ContainerLabels: [],\n      Volumes: [],\n      Network: '',\n      ExtraNetworks: [],\n      HostsEntries: [],\n      Ports: [],\n      Parallelism: 1,\n      PlacementConstraints: [],\n      PlacementPreferences: [],\n      UpdateDelay: '0s',\n      UpdateOrder: 'stop-first',\n      FailureAction: 'pause',\n      Secrets: [],\n      Configs: [],\n      AccessControlData: new AccessControlFormData(),\n      CpuLimit: 0,\n      CpuReservation: 0,\n      MemoryLimit: 0,\n      MemoryReservation: 0,\n      MemoryLimitUnit: 'MB',\n      MemoryReservationUnit: 'MB',\n      RestartCondition: 'any',\n      RestartDelay: '5s',\n      RestartMaxAttempts: 0,\n      RestartWindow: '0s',\n      LogDriverName: '',\n      LogDriverOpts: [],\n      Webhook: false,\n    };\n\n    $scope.state = {\n      formValidationError: '',\n      actionInProgress: false,\n      pullImageValidity: false,\n    };\n\n    $scope.allowBindMounts = false;\n\n    $scope.handleWebHookChange = handleWebHookChange;\n\n    function handleWebHookChange(checked) {\n      return $scope.$evalAsync(() => {\n        $scope.formValues.Webhook = checked;\n      });\n    }\n\n    $scope.handleEnvVarChange = handleEnvVarChange;\n    function handleEnvVarChange(value) {\n      $scope.formValues.Env = value;\n    }\n\n    $scope.refreshSlider = function () {\n      $timeout(function () {\n        $scope.$broadcast('rzSliderForceRender');\n      });\n    };\n\n    $scope.setPullImageValidity = setPullImageValidity;\n    function setPullImageValidity(validity) {\n      $scope.state.pullImageValidity = validity;\n    }\n\n    $scope.addPortBinding = function () {\n      $scope.formValues.Ports.push({ PublishedPort: '', TargetPort: '', Protocol: 'tcp', PublishMode: 'ingress' });\n    };\n\n    $scope.removePortBinding = function (index) {\n      $scope.formValues.Ports.splice(index, 1);\n    };\n\n    $scope.addExtraNetwork = function () {\n      $scope.formValues.ExtraNetworks.push({ Name: '' });\n    };\n\n    $scope.removeExtraNetwork = function (index) {\n      $scope.formValues.ExtraNetworks.splice(index, 1);\n    };\n\n    $scope.addHostsEntry = function () {\n      $scope.formValues.HostsEntries.push({});\n    };\n\n    $scope.removeHostsEntry = function (index) {\n      $scope.formValues.HostsEntries.splice(index, 1);\n    };\n\n    $scope.addVolume = function () {\n      $scope.formValues.Volumes.push({ Source: null, Target: '', ReadOnly: false, Type: 'volume' });\n    };\n\n    $scope.removeVolume = function (index) {\n      $scope.formValues.Volumes.splice(index, 1);\n    };\n\n    $scope.addConfig = function () {\n      $scope.formValues.Configs.push({});\n    };\n\n    $scope.removeConfig = function (index) {\n      $scope.formValues.Configs.splice(index, 1);\n      $scope.checkIfConfigDuplicated();\n    };\n\n    $scope.addSecret = function () {\n      $scope.formValues.Secrets.push({ overrideTarget: false });\n    };\n\n    $scope.removeSecret = function (index) {\n      $scope.formValues.Secrets.splice(index, 1);\n      $scope.checkIfSecretDuplicated();\n    };\n\n    $scope.addPlacementConstraint = function () {\n      $scope.formValues.PlacementConstraints.push({ key: '', operator: '==', value: '' });\n    };\n\n    $scope.removePlacementConstraint = function (index) {\n      $scope.formValues.PlacementConstraints.splice(index, 1);\n    };\n\n    $scope.addPlacementPreference = function () {\n      $scope.formValues.PlacementPreferences.push({ strategy: 'spread', value: '' });\n    };\n\n    $scope.removePlacementPreference = function (index) {\n      $scope.formValues.PlacementPreferences.splice(index, 1);\n    };\n\n    $scope.addLabel = function () {\n      $scope.formValues.Labels.push({ key: '', value: '' });\n    };\n\n    $scope.removeLabel = function (index) {\n      $scope.formValues.Labels.splice(index, 1);\n    };\n\n    $scope.addContainerLabel = function () {\n      $scope.formValues.ContainerLabels.push({ key: '', value: '' });\n    };\n\n    $scope.removeContainerLabel = function (index) {\n      $scope.formValues.ContainerLabels.splice(index, 1);\n    };\n\n    $scope.addLogDriverOpt = function () {\n      $scope.formValues.LogDriverOpts.push({ name: '', value: '' });\n    };\n\n    $scope.removeLogDriverOpt = function (index) {\n      $scope.formValues.LogDriverOpts.splice(index, 1);\n    };\n\n    $scope.checkIfSecretDuplicated = function () {\n      $scope.formValues.Secrets.$invalid = false;\n      [...$scope.formValues.Secrets]\n        .sort((a, b) => a.model.Id.localeCompare(b.model.Id))\n        .sort((a, b) => {\n          if (a.model.Id === b.model.Id) {\n            $scope.formValues.Secrets.$invalid = true;\n            $scope.formValues.Secrets.$error = 'Secret ' + a.model.Name + ' cannot be assigned multiple times.';\n          }\n        });\n      if (!$scope.formValues.Secrets.$invalid) {\n        $scope.formValues.Secrets.$error = '';\n      }\n    };\n\n    $scope.checkIfConfigDuplicated = function () {\n      $scope.formValues.Configs.$invalid = false;\n      [...$scope.formValues.Configs]\n        .sort((a, b) => a.model.Id.localeCompare(b.model.Id))\n        .sort((a, b) => {\n          if (a.model.Id === b.model.Id) {\n            $scope.formValues.Configs.$invalid = true;\n            $scope.formValues.Configs.$error = 'Config ' + a.model.Name + ' cannot be assigned multiple times.';\n          }\n        });\n      if (!$scope.formValues.Configs.$invalid) {\n        $scope.formValues.Configs.$error = '';\n      }\n    };\n\n    function prepareImageConfig(config, input) {\n      var imageConfig = ImageHelper.createImageConfigForContainer(input.RegistryModel);\n      config.TaskTemplate.ContainerSpec.Image = imageConfig.fromImage;\n    }\n\n    function preparePortsConfig(config, input) {\n      let ports = [];\n      input.Ports.forEach(function (binding) {\n        const port = {\n          Protocol: binding.Protocol,\n          PublishMode: binding.PublishMode,\n        };\n        if (binding.TargetPort) {\n          port.TargetPort = +binding.TargetPort;\n          if (binding.PublishedPort) {\n            port.PublishedPort = +binding.PublishedPort;\n          }\n          ports.push(port);\n        }\n      });\n      config.EndpointSpec.Ports = ports;\n    }\n\n    function prepareSchedulingConfig(config, input) {\n      if (input.Mode === 'replicated') {\n        config.Mode.Replicated = {\n          Replicas: input.Replicas,\n        };\n      } else {\n        config.Mode.Global = {};\n      }\n    }\n\n    function commandToArray(cmd) {\n      var tokens = [].concat\n        .apply(\n          [],\n          cmd.split(\"'\").map(function (v, i) {\n            return i % 2 ? v : v.split(' ');\n          })\n        )\n        .filter(Boolean);\n      return tokens;\n    }\n\n    function prepareCommandConfig(config, input) {\n      if (input.EntryPoint) {\n        config.TaskTemplate.ContainerSpec.Command = commandToArray(input.EntryPoint);\n      }\n      if (input.Command) {\n        config.TaskTemplate.ContainerSpec.Args = commandToArray(input.Command);\n      }\n      if (input.User) {\n        config.TaskTemplate.ContainerSpec.User = input.User;\n      }\n      if (input.WorkingDir) {\n        config.TaskTemplate.ContainerSpec.Dir = input.WorkingDir;\n      }\n    }\n\n    function prepareEnvConfig(config, input) {\n      config.TaskTemplate.ContainerSpec.Env = envVarsUtils.convertToArrayOfStrings(input.Env);\n    }\n\n    function prepareLabelsConfig(config, input) {\n      config.Labels = LabelHelper.fromKeyValueToLabelHash(input.Labels);\n      config.TaskTemplate.ContainerSpec.Labels = LabelHelper.fromKeyValueToLabelHash(input.ContainerLabels);\n    }\n\n    function createMountObjectFromVolume(volumeObject, target, readonly) {\n      return {\n        Target: target,\n        Source: volumeObject.Id,\n        Type: 'volume',\n        ReadOnly: readonly,\n        VolumeOptions: {\n          Labels: volumeObject.Labels,\n          DriverConfig: {\n            Name: volumeObject.Driver,\n            Options: volumeObject.Options,\n          },\n        },\n      };\n    }\n\n    function prepareVolumes(config, input) {\n      input.Volumes.forEach(function (volume) {\n        if (volume.Source && volume.Target) {\n          if (volume.Type !== 'volume') {\n            config.TaskTemplate.ContainerSpec.Mounts.push(volume);\n          } else {\n            var volumeObject = volume.Source;\n            var mount = createMountObjectFromVolume(volumeObject, volume.Target, volume.ReadOnly);\n            config.TaskTemplate.ContainerSpec.Mounts.push(mount);\n          }\n        }\n      });\n    }\n\n    function prepareNetworks(config, input) {\n      var networks = [];\n      if (input.Network) {\n        networks.push({ Target: input.Network });\n      }\n      input.ExtraNetworks.forEach(function (network) {\n        networks.push({ Target: network.Name });\n      });\n      config.Networks = _.uniqWith(networks, _.isEqual);\n    }\n\n    function prepareHostsEntries(config, input) {\n      var hostsEntries = [];\n      if (input.HostsEntries) {\n        input.HostsEntries.forEach(function (host_ip) {\n          if (host_ip.value && host_ip.value.indexOf(':') && host_ip.value.split(':').length === 2) {\n            var keyVal = host_ip.value.split(':');\n            // Hosts file format, IP_address canonical_hostname\n            hostsEntries.push(keyVal[1] + ' ' + keyVal[0]);\n          }\n        });\n        if (hostsEntries.length > 0) {\n          config.TaskTemplate.ContainerSpec.Hosts = hostsEntries;\n        }\n      }\n    }\n\n    function prepareUpdateConfig(config, input) {\n      config.UpdateConfig = {\n        Parallelism: input.Parallelism || 0,\n        Delay: ServiceHelper.translateHumanDurationToNanos(input.UpdateDelay) || 0,\n        FailureAction: input.FailureAction,\n        Order: input.UpdateOrder,\n      };\n    }\n\n    function prepareRestartPolicy(config, input) {\n      config.TaskTemplate.RestartPolicy = {\n        Condition: input.RestartCondition || 'any',\n        Delay: ServiceHelper.translateHumanDurationToNanos(input.RestartDelay) || 5000000000,\n        MaxAttempts: input.RestartMaxAttempts || 0,\n        Window: ServiceHelper.translateHumanDurationToNanos(input.RestartWindow) || 0,\n      };\n    }\n\n    function preparePlacementConfig(config, input) {\n      config.TaskTemplate.Placement.Constraints = ServiceHelper.translateKeyValueToPlacementConstraints(input.PlacementConstraints);\n      config.TaskTemplate.Placement.Preferences = ServiceHelper.translateKeyValueToPlacementPreferences(input.PlacementPreferences);\n    }\n\n    function prepareConfigConfig(config, input) {\n      if (input.Configs) {\n        var configs = [];\n        angular.forEach(input.Configs, function (config) {\n          if (config.model) {\n            var s = ConfigHelper.configConfig(config.model);\n            s.File.Name = config.FileName || s.File.Name;\n            configs.push(s);\n          }\n        });\n        config.TaskTemplate.ContainerSpec.Configs = configs;\n      }\n    }\n\n    function prepareSecretConfig(config, input) {\n      if (input.Secrets) {\n        var secrets = [];\n        angular.forEach(input.Secrets, function (secret) {\n          if (secret.model) {\n            var s = SecretHelper.secretConfig(secret.model);\n            s.File.Name = s.SecretName;\n            if (secret.overrideTarget && secret.target && secret.target !== '') {\n              s.File.Name = secret.target;\n            }\n            secrets.push(s);\n          }\n        });\n        config.TaskTemplate.ContainerSpec.Secrets = secrets;\n      }\n    }\n\n    function prepareResourcesCpuConfig(config, input) {\n      // CPU Limit\n      if (input.CpuLimit > 0) {\n        config.TaskTemplate.Resources.Limits.NanoCPUs = input.CpuLimit * 1000000000;\n      }\n      // CPU Reservation\n      if (input.CpuReservation > 0) {\n        config.TaskTemplate.Resources.Reservations.NanoCPUs = input.CpuReservation * 1000000000;\n      }\n    }\n\n    function prepareResourcesMemoryConfig(config, input) {\n      // Memory Limit - Round to 0.125\n      var memoryLimit = (Math.round(input.MemoryLimit * 8) / 8).toFixed(3);\n      memoryLimit *= 1024 * 1024;\n      if (input.MemoryLimitUnit === 'GB') {\n        memoryLimit *= 1024;\n      }\n      if (memoryLimit > 0) {\n        config.TaskTemplate.Resources.Limits.MemoryBytes = memoryLimit;\n      }\n      // Memory Resevation - Round to 0.125\n      var memoryReservation = (Math.round(input.MemoryReservation * 8) / 8).toFixed(3);\n      memoryReservation *= 1024 * 1024;\n      if (input.MemoryReservationUnit === 'GB') {\n        memoryReservation *= 1024;\n      }\n      if (memoryReservation > 0) {\n        config.TaskTemplate.Resources.Reservations.MemoryBytes = memoryReservation;\n      }\n    }\n\n    function prepareLogDriverConfig(config, input) {\n      var logOpts = {};\n      if (input.LogDriverName) {\n        config.TaskTemplate.LogDriver = { Name: input.LogDriverName };\n        if (input.LogDriverName !== 'none') {\n          input.LogDriverOpts.forEach(function (opt) {\n            if (opt.name) {\n              logOpts[opt.name] = opt.value;\n            }\n          });\n          if (Object.keys(logOpts).length !== 0 && logOpts.constructor === Object) {\n            config.TaskTemplate.LogDriver.Options = logOpts;\n          }\n        }\n      }\n    }\n\n    function prepareConfiguration() {\n      var input = $scope.formValues;\n      var config = {\n        Name: input.Name,\n        TaskTemplate: {\n          ContainerSpec: {\n            Mounts: [],\n          },\n          Placement: {},\n          Resources: {\n            Limits: {},\n            Reservations: {},\n          },\n        },\n        Mode: {},\n        EndpointSpec: {},\n      };\n      prepareSchedulingConfig(config, input);\n      prepareImageConfig(config, input);\n      preparePortsConfig(config, input);\n      prepareCommandConfig(config, input);\n      prepareEnvConfig(config, input);\n      prepareLabelsConfig(config, input);\n      prepareVolumes(config, input);\n      prepareNetworks(config, input);\n      prepareHostsEntries(config, input);\n      prepareUpdateConfig(config, input);\n      prepareConfigConfig(config, input);\n      prepareSecretConfig(config, input);\n      preparePlacementConfig(config, input);\n      prepareResourcesCpuConfig(config, input);\n      prepareResourcesMemoryConfig(config, input);\n      prepareRestartPolicy(config, input);\n      prepareLogDriverConfig(config, input);\n      return config;\n    }\n\n    function createNewService(config, accessControlData) {\n      const registryModel = $scope.formValues.RegistryModel;\n      var authenticationDetails = registryModel.Registry.Authentication ? RegistryService.encodedCredentials(registryModel.Registry) : '';\n      HttpRequestHelper.setRegistryAuthenticationHeader(authenticationDetails);\n\n      Service.create(config)\n        .$promise.then(function success(data) {\n          const serviceId = data.ID;\n          const resourceControl = data.Portainer.ResourceControl;\n          const userId = Authentication.getUserDetails().ID;\n          const rcPromise = ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n          const registryID = $scope.formValues.RegistryModel.Registry.Id;\n          const webhookPromise = $q.when(endpoint.Type !== 4 && $scope.formValues.Webhook && WebhookService.createServiceWebhook(serviceId, endpoint.Id, registryID));\n          return $q.all([rcPromise, webhookPromise]);\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Service successfully created');\n          $state.go('docker.services', {}, { reload: true });\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to create service');\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    }\n\n    function validateForm(accessControlData, isAdmin) {\n      $scope.state.formValidationError = '';\n      var error = '';\n      error = FormValidator.validateAccessControl(accessControlData, isAdmin) || $scope.formValues.Secrets.$error || $scope.formValues.Configs.$error;\n\n      if (error) {\n        $scope.state.formValidationError = error;\n        return false;\n      }\n      return true;\n    }\n\n    $scope.volumesAreValid = volumesAreValid;\n    function volumesAreValid() {\n      const volumes = $scope.formValues.Volumes;\n      return volumes.every((volume) => volume.Target && volume.Source);\n    }\n\n    $scope.create = function createService() {\n      var accessControlData = $scope.formValues.AccessControlData;\n\n      if (!validateForm(accessControlData, $scope.isAdmin)) {\n        return;\n      }\n\n      $scope.state.actionInProgress = true;\n      var config = prepareConfiguration();\n      createNewService(config, accessControlData);\n    };\n\n    function initSlidersMaxValuesBasedOnNodeData(nodes) {\n      var maxCpus = 0;\n      var maxMemory = 0;\n      for (var n in nodes) {\n        if (nodes[n].CPUs && nodes[n].CPUs > maxCpus) {\n          maxCpus = nodes[n].CPUs;\n        }\n        if (nodes[n].Memory && nodes[n].Memory > maxMemory) {\n          maxMemory = nodes[n].Memory;\n        }\n      }\n      if (maxCpus > 0) {\n        $scope.state.sliderMaxCpu = maxCpus / 1000000000;\n      } else {\n        $scope.state.sliderMaxCpu = 32;\n      }\n      if (maxMemory > 0) {\n        $scope.state.sliderMaxMemory = Math.floor(maxMemory / 1000 / 1000);\n      } else {\n        $scope.state.sliderMaxMemory = 32768;\n      }\n    }\n\n    function initView() {\n      var apiVersion = $scope.applicationState.endpoint.apiVersion;\n\n      $q.all({\n        volumes: VolumeService.volumes(),\n        networks: NetworkService.networks(true, true, false),\n        secrets: apiVersion >= 1.25 ? SecretService.secrets() : [],\n        configs: apiVersion >= 1.3 ? ConfigService.configs(endpoint.Id) : [],\n        nodes: NodeService.nodes(),\n        availableLoggingDrivers: PluginService.loggingPlugins(apiVersion < 1.25),\n        allowBindMounts: checkIfAllowedBindMounts(),\n      })\n        .then(function success(data) {\n          $scope.availableVolumes = data.volumes;\n          $scope.availableNetworks = data.networks;\n          $scope.availableSecrets = data.secrets;\n          $scope.availableConfigs = data.configs;\n          $scope.availableLoggingDrivers = data.availableLoggingDrivers;\n          initSlidersMaxValuesBasedOnNodeData(data.nodes);\n          $scope.isAdmin = Authentication.isAdmin();\n          $scope.allowBindMounts = data.allowBindMounts;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to initialize view');\n        });\n    }\n\n    initView();\n\n    async function checkIfAllowedBindMounts() {\n      const isAdmin = Authentication.isAdmin();\n\n      const { allowBindMountsForRegularUsers } = endpoint.SecuritySettings;\n\n      return isAdmin || allowBindMountsForRegularUsers;\n    }\n  },\n]);\n","require('./includes/configs.html');\nrequire('./includes/constraints.html');\nrequire('./includes/container-specs.html');\nrequire('./includes/containerlabels.html');\nrequire('./includes/environmentvariables.html');\nrequire('./includes/hosts.html');\nrequire('./includes/image.html');\nrequire('./includes/logging.html');\nrequire('./includes/mounts.html');\nrequire('./includes/networks.html');\nrequire('./includes/placementPreferences.html');\nrequire('./includes/ports.html');\nrequire('./includes/resources.html');\nrequire('./includes/restart.html');\nrequire('./includes/secrets.html');\nrequire('./includes/servicelabels.html');\nrequire('./includes/tasks.html');\nrequire('./includes/updateconfig.html');\n\nimport _ from 'lodash-es';\n\nimport * as envVarsUtils from '@/react/components/form-components/EnvironmentVariablesFieldset/utils';\nimport { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\nimport { ResourceControlType } from '@/react/portainer/access-control/types';\nimport { confirmServiceForceUpdate } from '@/react/docker/services/common/update-service-modal';\nimport { confirm, confirmDelete } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { convertServiceToConfig } from '@/react/docker/services/common/convertServiceToConfig';\n\nangular.module('portainer.docker').controller('ServiceController', [\n  '$q',\n  '$scope',\n  '$transition$',\n  '$state',\n  '$location',\n  '$timeout',\n  '$anchorScroll',\n  'ServiceService',\n  'ConfigService',\n  'ConfigHelper',\n  'SecretService',\n  'ImageService',\n  'SecretHelper',\n  'ServiceHelper',\n  'LabelHelper',\n  'TaskService',\n  'NodeService',\n  'ContainerService',\n  'TaskHelper',\n  'Notifications',\n  'PluginService',\n  'Authentication',\n  'VolumeService',\n  'ImageHelper',\n  'WebhookService',\n  'clipboard',\n  'WebhookHelper',\n  'NetworkService',\n  'RegistryService',\n  'endpoint',\n  function (\n    $q,\n    $scope,\n    $transition$,\n    $state,\n    $location,\n    $timeout,\n    $anchorScroll,\n    ServiceService,\n    ConfigService,\n    ConfigHelper,\n    SecretService,\n    ImageService,\n    SecretHelper,\n    ServiceHelper,\n    LabelHelper,\n    TaskService,\n    NodeService,\n    ContainerService,\n    TaskHelper,\n    Notifications,\n    PluginService,\n    Authentication,\n    VolumeService,\n    ImageHelper,\n    WebhookService,\n    clipboard,\n    WebhookHelper,\n    NetworkService,\n    RegistryService,\n    endpoint\n  ) {\n    $scope.resourceType = ResourceControlType.Service;\n    $scope.WebhookExists = false;\n\n    $scope.onUpdateResourceControlSuccess = function () {\n      $state.reload();\n    };\n\n    $scope.endpoint = endpoint;\n\n    $scope.state = {\n      updateInProgress: false,\n      deletionInProgress: false,\n      rollbackInProgress: false,\n    };\n\n    $scope.formValues = {\n      RegistryModel: new PorImageRegistryModel(),\n    };\n\n    $scope.tasks = [];\n    $scope.availableImages = [];\n\n    $scope.lastVersion = 0;\n\n    var originalService = {};\n    var previousServiceValues = [];\n\n    $scope.goToItem = function (hash) {\n      if ($location.hash() !== hash) {\n        $location.hash(hash);\n      } else {\n        $anchorScroll();\n      }\n    };\n\n    $scope.addEnvironmentVariable = function addEnvironmentVariable(service) {\n      $scope.$evalAsync(() => {\n        service.EnvironmentVariables = service.EnvironmentVariables.concat({ name: '', value: '' });\n        updateServiceArray(service, 'EnvironmentVariables', service.EnvironmentVariables);\n      });\n    };\n\n    $scope.onChangeEnvVars = onChangeEnvVars;\n\n    function onChangeEnvVars(env) {\n      const service = $scope.service;\n\n      const orgEnv = service.EnvironmentVariables;\n      service.EnvironmentVariables = env.map((v) => {\n        const orgVar = orgEnv.find(({ name }) => v.name === name);\n        const added = orgVar && orgVar.added;\n        return { ...v, added };\n      });\n\n      updateServiceArray(service, 'EnvironmentVariables', service.EnvironmentVariables);\n    }\n\n    $scope.addConfig = function addConfig(service, config) {\n      if (\n        config &&\n        service.ServiceConfigs.filter(function (serviceConfig) {\n          return serviceConfig.Id === config.Id;\n        }).length === 0\n      ) {\n        service.ServiceConfigs.push({ Id: config.Id, Name: config.Name, FileName: config.Name, Uid: '0', Gid: '0', Mode: 292 });\n        updateServiceArray(service, 'ServiceConfigs', service.ServiceConfigs);\n      }\n    };\n    $scope.removeConfig = function removeSecret(service, index) {\n      var removedElement = service.ServiceConfigs.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'ServiceConfigs', service.ServiceConfigs);\n      }\n    };\n    $scope.updateConfig = function updateConfig(service) {\n      updateServiceArray(service, 'ServiceConfigs', service.ServiceConfigs);\n    };\n    $scope.addSecret = function addSecret(service, newSecret) {\n      if (newSecret.secret) {\n        var filename = newSecret.secret.Name;\n        if (newSecret.override) {\n          filename = newSecret.target;\n        }\n        if (\n          service.ServiceSecrets.filter(function (serviceSecret) {\n            return serviceSecret.Id === newSecret.secret.Id && serviceSecret.FileName === filename;\n          }).length === 0\n        ) {\n          service.ServiceSecrets.push({ Id: newSecret.secret.Id, Name: newSecret.secret.Name, FileName: filename, Uid: '0', Gid: '0', Mode: 444 });\n          updateServiceArray(service, 'ServiceSecrets', service.ServiceSecrets);\n        }\n      }\n    };\n    $scope.removeSecret = function removeSecret(service, index) {\n      var removedElement = service.ServiceSecrets.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'ServiceSecrets', service.ServiceSecrets);\n      }\n    };\n    $scope.addLabel = function addLabel(service) {\n      service.ServiceLabels.push({ key: '', value: '', originalValue: '' });\n      updateServiceArray(service, 'ServiceLabels', service.ServiceLabels);\n    };\n    $scope.removeLabel = function removeLabel(service, index) {\n      var removedElement = service.ServiceLabels.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'ServiceLabels', service.ServiceLabels);\n      }\n    };\n    $scope.updateLabel = function updateLabel(service, label) {\n      if (label.value !== label.originalValue || label.key !== label.originalKey) {\n        updateServiceArray(service, 'ServiceLabels', service.ServiceLabels);\n      }\n    };\n    $scope.addContainerLabel = function addContainerLabel(service) {\n      service.ServiceContainerLabels.push({ key: '', value: '', originalValue: '' });\n      updateServiceArray(service, 'ServiceContainerLabels', service.ServiceContainerLabels);\n    };\n    $scope.removeContainerLabel = function removeLabel(service, index) {\n      var removedElement = service.ServiceContainerLabels.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'ServiceContainerLabels', service.ServiceContainerLabels);\n      }\n    };\n    $scope.updateContainerLabel = function updateLabel(service, label) {\n      if (label.value !== label.originalValue || label.key !== label.originalKey) {\n        updateServiceArray(service, 'ServiceContainerLabels', service.ServiceContainerLabels);\n      }\n    };\n    $scope.addMount = function addMount(service) {\n      service.ServiceMounts.push({ Type: 'volume', Source: null, Target: '', ReadOnly: false });\n      updateServiceArray(service, 'ServiceMounts', service.ServiceMounts);\n    };\n    $scope.removeMount = function removeMount(service, index) {\n      var removedElement = service.ServiceMounts.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'ServiceMounts', service.ServiceMounts);\n      }\n    };\n\n    $scope.onChangeMountType = function onChangeMountType(service, mount) {\n      mount.Source = null;\n      $scope.updateMount(service, mount);\n    };\n\n    $scope.updateMount = function updateMount(service) {\n      updateServiceArray(service, 'ServiceMounts', service.ServiceMounts);\n    };\n\n    $scope.toggleMountReadOnly = function toggleMountReadOnly(isReadOnly, index) {\n      $scope.$evalAsync(function () {\n        updateServiceArray($scope.service, 'ServiceMounts', $scope.service.ServiceMounts);\n        $scope.service.ServiceMounts[index].ReadOnly = isReadOnly;\n      });\n    };\n\n    $scope.addNetwork = function addNetwork(service) {\n      if (!service.Networks) {\n        service.Networks = [];\n      }\n      service.Networks.push({ Editable: true });\n    };\n\n    $scope.removeNetwork = function removeNetwork(service, index) {\n      var removedElement = service.Networks.splice(index, 1);\n      if (removedElement && removedElement.length && removedElement[0].Id) {\n        updateServiceArray(service, 'Networks', service.Networks);\n      }\n    };\n\n    $scope.updateNetwork = function updateNetwork(service) {\n      updateServiceArray(service, 'Networks', service.Networks);\n    };\n\n    $scope.addPlacementConstraint = function addPlacementConstraint(service) {\n      service.ServiceConstraints.push({ key: '', operator: '==', value: '' });\n      updateServiceArray(service, 'ServiceConstraints', service.ServiceConstraints);\n    };\n    $scope.removePlacementConstraint = function removePlacementConstraint(service, index) {\n      var removedElement = service.ServiceConstraints.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'ServiceConstraints', service.ServiceConstraints);\n      }\n    };\n    $scope.updatePlacementConstraint = function (service) {\n      updateServiceArray(service, 'ServiceConstraints', service.ServiceConstraints);\n    };\n\n    $scope.addPlacementPreference = function (service) {\n      service.ServicePreferences.push({ strategy: 'spread', value: '' });\n      updateServiceArray(service, 'ServicePreferences', service.ServicePreferences);\n    };\n    $scope.removePlacementPreference = function (service, index) {\n      var removedElement = service.ServicePreferences.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'ServicePreferences', service.ServicePreferences);\n      }\n    };\n    $scope.updatePlacementPreference = function (service) {\n      updateServiceArray(service, 'ServicePreferences', service.ServicePreferences);\n    };\n\n    $scope.addPublishedPort = function addPublishedPort(service) {\n      if (!service.Ports) {\n        service.Ports = [];\n      }\n      service.Ports.push({ PublishedPort: '', TargetPort: '', Protocol: 'tcp', PublishMode: 'ingress' });\n    };\n    $scope.updatePublishedPort = function updatePublishedPort(service) {\n      updateServiceArray(service, 'Ports', service.Ports);\n    };\n    $scope.removePortPublishedBinding = function removePortPublishedBinding(service, index) {\n      var removedElement = service.Ports.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'Ports', service.Ports);\n      }\n    };\n\n    $scope.addLogDriverOpt = function addLogDriverOpt(service) {\n      service.LogDriverOpts.push({ key: '', value: '', originalValue: '' });\n      updateServiceArray(service, 'LogDriverOpts', service.LogDriverOpts);\n    };\n    $scope.removeLogDriverOpt = function removeLogDriverOpt(service, index) {\n      var removedElement = service.LogDriverOpts.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'LogDriverOpts', service.LogDriverOpts);\n      }\n    };\n    $scope.updateLogDriverOpt = function updateLogDriverOpt(service, variable) {\n      if (variable.value !== variable.originalValue || variable.key !== variable.originalKey) {\n        updateServiceArray(service, 'LogDriverOpts', service.LogDriverOpts);\n      }\n    };\n    $scope.updateLogDriverName = function updateLogDriverName(service) {\n      updateServiceArray(service, 'LogDriverName', service.LogDriverName);\n    };\n\n    $scope.addHostsEntry = function (service) {\n      if (!service.Hosts) {\n        service.Hosts = [];\n      }\n      service.Hosts.push({ hostname: '', ip: '' });\n    };\n    $scope.removeHostsEntry = function (service, index) {\n      var removedElement = service.Hosts.splice(index, 1);\n      if (removedElement !== null) {\n        updateServiceArray(service, 'Hosts', service.Hosts);\n      }\n    };\n    $scope.updateHostsEntry = function (service) {\n      updateServiceArray(service, 'Hosts', service.Hosts);\n    };\n\n    $scope.onWebhookChange = function (enabled) {\n      enabled = enabled | '';\n      $scope.$evalAsync(() => {\n        $scope.updateWebhook($scope.service);\n        $scope.WebhookExists = enabled;\n        updateServiceAttribute($scope.service, 'Webhooks', enabled);\n      });\n    };\n\n    $scope.updateWebhook = function updateWebhook(service) {\n      if ($scope.WebhookExists) {\n        WebhookService.deleteWebhook($scope.webhookID)\n          .then(function success() {\n            $scope.webhookURL = null;\n            $scope.webhookID = null;\n            $scope.WebhookExists = false;\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to delete webhook');\n          });\n      } else {\n        WebhookService.createServiceWebhook(service.Id, endpoint.Id, $scope.initialRegistryID)\n          .then(function success(data) {\n            $scope.WebhookExists = true;\n            $scope.webhookID = data.Id;\n            $scope.webhookURL = WebhookHelper.returnWebhookUrl(data.Token);\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to create webhook');\n          });\n      }\n    };\n\n    $scope.updateWebhookRegistryId = function () {\n      const newRegistryID = _.get($scope.formValues.RegistryModel, 'Registry.Id', 0);\n      const registryChanged = $scope.initialRegistryID != newRegistryID;\n\n      if ($scope.WebhookExists && registryChanged) {\n        WebhookService.updateServiceWebhook($scope.webhookID, newRegistryID).catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to update webhook');\n        });\n      }\n    };\n\n    $scope.copyWebhook = function copyWebhook() {\n      clipboard.copyText($scope.webhookURL);\n      $('#copyNotification').show();\n      $('#copyNotification').fadeOut(2000);\n    };\n\n    $scope.cancelChanges = async function cancelChanges(service, keys) {\n      if (keys) {\n        // clean out the keys only from the list of modified keys\n        for (const key of keys) {\n          if (key === 'Image') {\n            $scope.formValues.RegistryModel = await RegistryService.retrievePorRegistryModelFromRepository(originalService.Image, endpoint.Id);\n          } else {\n            var index = previousServiceValues.indexOf(key);\n            if (index >= 0) {\n              previousServiceValues.splice(index, 1);\n            }\n          }\n        }\n      } else {\n        // clean out all changes\n        $scope.formValues.RegistryModel = await RegistryService.retrievePorRegistryModelFromRepository(originalService.Image, endpoint.Id);\n        keys = Object.keys(service);\n        previousServiceValues = [];\n      }\n      keys.forEach(function (attribute) {\n        service[attribute] = originalService[attribute]; // reset service values\n      });\n      service.hasChanges = false;\n    };\n\n    $scope.hasChanges = function (service, elements) {\n      var hasChanges = false;\n      elements.forEach(function (key) {\n        if (key === 'Image') {\n          const originalImage = service ? service.Model.Spec.TaskTemplate.ContainerSpec.Image : null;\n          const currentImage = ImageHelper.createImageConfigForContainer($scope.formValues.RegistryModel).fromImage;\n          hasChanges = hasChanges || originalImage !== currentImage;\n        } else {\n          hasChanges = hasChanges || previousServiceValues.indexOf(key) >= 0;\n        }\n      });\n      return hasChanges;\n    };\n\n    $scope.mountsAreValid = mountsAreValid;\n    function mountsAreValid() {\n      const mounts = $scope.service.ServiceMounts;\n      return mounts.every((mount) => mount.Source && mount.Target);\n    }\n\n    function buildChanges(service) {\n      var config = convertServiceToConfig(service.Model);\n      config.Name = service.Name;\n      config.Labels = LabelHelper.fromKeyValueToLabelHash(service.ServiceLabels);\n      config.TaskTemplate.ContainerSpec.Env = envVarsUtils.convertToArrayOfStrings(service.EnvironmentVariables);\n      config.TaskTemplate.ContainerSpec.Labels = LabelHelper.fromKeyValueToLabelHash(service.ServiceContainerLabels);\n\n      if ($scope.hasChanges(service, ['Image'])) {\n        const image = ImageHelper.createImageConfigForContainer($scope.formValues.RegistryModel);\n        config.TaskTemplate.ContainerSpec.Image = image.fromImage;\n        config.registryId = $scope.formValues.RegistryModel.Registry.Id;\n      } else {\n        config.TaskTemplate.ContainerSpec.Image = service.Image;\n      }\n\n      if ($scope.hasChanges(service, ['Networks'])) {\n        config.Networks = _.map(\n          _.filter(service.Networks, (item) => item.Id && item.Editable),\n          (item) => ({ Target: item.Id })\n        );\n        config.TaskTemplate.Networks = config.Networks;\n      }\n\n      config.TaskTemplate.ContainerSpec.Secrets = service.ServiceSecrets ? service.ServiceSecrets.map(SecretHelper.secretConfig) : [];\n      config.TaskTemplate.ContainerSpec.Configs = service.ServiceConfigs ? service.ServiceConfigs.map(ConfigHelper.configConfig) : [];\n\n      // support removal and (future) editing of credential specs\n      const credSpec = service.ServiceConfigs.find((config) => config.credSpec);\n      const credSpecId = credSpec ? credSpec.Id : '';\n      const oldCredSpecId =\n        (config.TaskTemplate.ContainerSpec.Privileges &&\n          config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec &&\n          config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec.Config) ||\n        '';\n      if (oldCredSpecId && !credSpecId) {\n        delete config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec;\n      } else if (credSpec && oldCredSpecId !== credSpec) {\n        config.TaskTemplate.ContainerSpec.Privileges = {\n          ...(config.TaskTemplate.ContainerSpec.Privileges || {}),\n          CredentialSpec: {\n            ...((config.TaskTemplate.ContainerSpec.Privileges && config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec) || {}),\n            Config: credSpec,\n          },\n        };\n      }\n\n      config.TaskTemplate.ContainerSpec.Hosts = service.Hosts ? ServiceHelper.translateHostnameIPToHostsEntries(service.Hosts) : [];\n\n      if (service.Mode === 'replicated') {\n        config.Mode.Replicated.Replicas = service.Replicas;\n      }\n      config.TaskTemplate.ContainerSpec.Mounts = service.ServiceMounts;\n      if (typeof config.TaskTemplate.Placement === 'undefined') {\n        config.TaskTemplate.Placement = {};\n      }\n      config.TaskTemplate.Placement.Constraints = ServiceHelper.translateKeyValueToPlacementConstraints(service.ServiceConstraints);\n      config.TaskTemplate.Placement.Preferences = ServiceHelper.translateKeyValueToPlacementPreferences(service.ServicePreferences);\n\n      if ($scope.hasChanges(service, ['LimitNanoCPUs', 'LimitMemoryBytes', 'ReservationNanoCPUs', 'ReservationMemoryBytes'])) {\n        // Round memory values to 0.125 and convert MB to B\n        var memoryLimit = (Math.round(service.LimitMemoryBytes * 8) / 8).toFixed(3);\n        memoryLimit *= 1024 * 1024;\n        var memoryReservation = (Math.round(service.ReservationMemoryBytes * 8) / 8).toFixed(3);\n        memoryReservation *= 1024 * 1024;\n        config.TaskTemplate.Resources = {\n          Limits: {\n            NanoCPUs: service.LimitNanoCPUs * 1000000000,\n            MemoryBytes: memoryLimit,\n          },\n          Reservations: {\n            NanoCPUs: service.ReservationNanoCPUs * 1000000000,\n            MemoryBytes: memoryReservation,\n          },\n        };\n      }\n\n      if ($scope.hasChanges(service, ['UpdateFailureAction', 'UpdateDelay', 'UpdateParallelism', 'UpdateOrder'])) {\n        config.UpdateConfig = {\n          Parallelism: service.UpdateParallelism,\n          Delay: ServiceHelper.translateHumanDurationToNanos(service.UpdateDelay) || 0,\n          FailureAction: service.UpdateFailureAction,\n          Order: service.UpdateOrder,\n        };\n      }\n\n      if ($scope.hasChanges(service, ['RestartCondition', 'RestartDelay', 'RestartMaxAttempts', 'RestartWindow'])) {\n        config.TaskTemplate.RestartPolicy = {\n          Condition: service.RestartCondition,\n          Delay: ServiceHelper.translateHumanDurationToNanos(service.RestartDelay) || 5000000000,\n          MaxAttempts: service.RestartMaxAttempts,\n          Window: ServiceHelper.translateHumanDurationToNanos(service.RestartWindow) || 0,\n        };\n      }\n\n      config.TaskTemplate.LogDriver = null;\n      if (service.LogDriverName) {\n        config.TaskTemplate.LogDriver = { Name: service.LogDriverName };\n        if (service.LogDriverName !== 'none') {\n          var logOpts = ServiceHelper.translateKeyValueToLogDriverOpts(service.LogDriverOpts);\n          if (Object.keys(logOpts).length !== 0 && logOpts.constructor === Object) {\n            config.TaskTemplate.LogDriver.Options = logOpts;\n          }\n        }\n      }\n\n      if (service.Ports) {\n        service.Ports.forEach(function (binding) {\n          if (binding.PublishedPort === null || binding.PublishedPort === '') {\n            delete binding.PublishedPort;\n          }\n        });\n      }\n\n      config.EndpointSpec = {\n        Mode: (config.EndpointSpec && config.EndpointSpec.Mode) || 'vip',\n        Ports: service.Ports,\n      };\n      return service, config;\n    }\n\n    function rollbackService(service) {\n      $scope.state.rollbackInProgress = true;\n      let config = {};\n      service, (config = buildChanges(service));\n      ServiceService.update(service, config, 'previous')\n        .then(function (data) {\n          if (data.message && data.message.match(/^rpc error:/)) {\n            Notifications.error('Failure', data, 'Error');\n          } else {\n            Notifications.success('Success', 'Service successfully rolled back');\n            $scope.cancelChanges({});\n            initView();\n          }\n        })\n        .catch(function (e) {\n          if (e.data.message && e.data.message.includes('does not have a previous spec')) {\n            Notifications.error('Failure', { message: 'No previous config to rollback to.' });\n          } else {\n            Notifications.error('Failure', e, 'Unable to rollback service');\n          }\n        })\n        .finally(function () {\n          $scope.state.rollbackInProgress = false;\n        });\n    }\n\n    $scope.rollbackService = function (service) {\n      confirm({\n        title: 'Rollback service',\n        message: 'Are you sure you want to rollback?',\n        modalType: ModalType.Warn,\n        confirmButton: buildConfirmButton('Yes', 'danger'),\n      }).then((confirmed) => {\n        if (!confirmed) {\n          return;\n        }\n        rollbackService(service);\n      });\n    };\n\n    $scope.setPullImageValidity = setPullImageValidity;\n    function setPullImageValidity(validity) {\n      $scope.state.pullImageValidity = validity;\n    }\n\n    $scope.updateService = function updateService(service) {\n      const config = buildChanges(service);\n      ServiceService.update(service, config).then(\n        function (data) {\n          if (data.message && data.message.match(/^rpc error:/)) {\n            Notifications.error('Failure', data, 'Error');\n          } else {\n            Notifications.success('Service successfully updated', 'Service updated');\n            $scope.updateWebhookRegistryId();\n          }\n          $scope.cancelChanges({});\n          initView();\n        },\n        function (e) {\n          Notifications.error('Failure', e, 'Unable to update service');\n        }\n      );\n    };\n\n    $scope.removeService = function () {\n      confirmDelete('Do you want to remove this service? All the containers associated to this service will be removed too.').then((confirmed) => {\n        if (!confirmed) {\n          return;\n        }\n        removeService();\n      });\n    };\n\n    function removeService() {\n      $scope.state.deletionInProgress = true;\n      ServiceService.remove($scope.service)\n        .then(function success() {\n          return $q.when($scope.webhookID && WebhookService.deleteWebhook($scope.webhookID));\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Service successfully deleted');\n          $state.go('docker.services', {});\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to remove service');\n        })\n        .finally(function final() {\n          $scope.state.deletionInProgress = false;\n        });\n    }\n\n    $scope.forceUpdateService = function (service) {\n      confirmServiceForceUpdate('Do you want to force an update of the service? All the tasks associated to the service will be recreated.').then(function (result) {\n        if (!result) {\n          return;\n        }\n\n        forceUpdateService(service, result.pullLatest);\n      });\n    };\n\n    function forceUpdateService(service, pullImage) {\n      var config = convertServiceToConfig(service.Model);\n      if (pullImage) {\n        config.TaskTemplate.ContainerSpec.Image = ImageHelper.removeDigestFromRepository(config.TaskTemplate.ContainerSpec.Image);\n      }\n\n      // As explained in https://github.com/docker/swarmkit/issues/2364 ForceUpdate can accept a random\n      // value or an increment of the counter value to force an update.\n      config.TaskTemplate.ForceUpdate++;\n      $scope.state.updateInProgress = true;\n      ServiceService.update(service, config)\n        .then(function success() {\n          Notifications.success('Service successfully updated', service.Name);\n          $scope.cancelChanges({});\n          initView();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to force update service', service.Name);\n        })\n        .finally(function final() {\n          $scope.state.updateInProgress = false;\n        });\n    }\n\n    function translateServiceArrays(service) {\n      service.ServiceSecrets = service.Secrets ? service.Secrets.map(SecretHelper.flattenSecret) : [];\n      service.ServiceConfigs = service.Configs ? service.Configs.map(ConfigHelper.flattenConfig) : [];\n      service.EnvironmentVariables = envVarsUtils\n        .parseArrayOfStrings(service.Env)\n        .map((v) => ({ ...v, added: true }))\n        .sort((v1, v2) => (v1.name > v2.name ? 1 : -1));\n      service.LogDriverOpts = ServiceHelper.translateLogDriverOptsToKeyValue(service.LogDriverOpts);\n      service.ServiceLabels = LabelHelper.fromLabelHashToKeyValue(service.Labels);\n      service.ServiceContainerLabels = LabelHelper.fromLabelHashToKeyValue(service.ContainerLabels);\n      service.ServiceMounts = angular.copy(service.Mounts);\n      service.ServiceConstraints = ServiceHelper.translateConstraintsToKeyValue(service.Constraints);\n      service.ServicePreferences = ServiceHelper.translatePreferencesToKeyValue(service.Preferences);\n      service.Hosts = ServiceHelper.translateHostsEntriesToHostnameIP(service.Hosts);\n    }\n\n    function transformResources(service) {\n      service.LimitNanoCPUs = service.LimitNanoCPUs / 1000000000 || 0;\n      service.ReservationNanoCPUs = service.ReservationNanoCPUs / 1000000000 || 0;\n      service.LimitMemoryBytes = service.LimitMemoryBytes / 1024 / 1024 || 0;\n      service.ReservationMemoryBytes = service.ReservationMemoryBytes / 1024 / 1024 || 0;\n    }\n\n    function transformDurations(service) {\n      service.RestartDelay = ServiceHelper.translateNanosToHumanDuration(service.RestartDelay) || '5s';\n      service.RestartWindow = ServiceHelper.translateNanosToHumanDuration(service.RestartWindow) || '0s';\n      service.UpdateDelay = ServiceHelper.translateNanosToHumanDuration(service.UpdateDelay) || '0s';\n      service.StopGracePeriod = service.StopGracePeriod ? ServiceHelper.translateNanosToHumanDuration(service.StopGracePeriod) : '';\n    }\n\n    function initView() {\n      var apiVersion = $scope.applicationState.endpoint.apiVersion;\n      var agentProxy = $scope.applicationState.endpoint.mode.agentProxy;\n\n      var service = null;\n      ServiceService.service($transition$.params().id)\n        .then(function success(data) {\n          service = data;\n          $scope.isUpdating = $scope.lastVersion >= service.Version;\n          if (!$scope.isUpdating) {\n            $scope.lastVersion = service.Version;\n          }\n\n          transformResources(service);\n          translateServiceArrays(service);\n          transformDurations(service);\n          $scope.service = service;\n          originalService = angular.copy(service);\n\n          return $q.all({\n            volumes: VolumeService.volumes(),\n            tasks: TaskService.tasks({ service: [service.Name] }),\n            containers: agentProxy ? ContainerService.containers(endpoint.Id) : [],\n            nodes: NodeService.nodes(),\n            secrets: apiVersion >= 1.25 ? SecretService.secrets() : [],\n            configs: apiVersion >= 1.3 ? ConfigService.configs(endpoint.Id) : [],\n            availableImages: ImageService.images(),\n            availableLoggingDrivers: PluginService.loggingPlugins(apiVersion < 1.25),\n            availableNetworks: NetworkService.networks(true, true, apiVersion >= 1.25),\n            webhooks: WebhookService.webhooks(service.Id, endpoint.Id),\n          });\n        })\n        .then(async function success(data) {\n          $scope.nodes = data.nodes;\n          $scope.configs = data.configs;\n          $scope.secrets = data.secrets;\n          $scope.availableImages = ImageService.getUniqueTagListFromImages(data.availableImages);\n          $scope.availableLoggingDrivers = data.availableLoggingDrivers;\n          $scope.availableVolumes = data.volumes;\n          $scope.allowBindMounts = endpoint.SecuritySettings.allowBindMountsForRegularUsers;\n          $scope.isAdmin = Authentication.isAdmin();\n          $scope.availableNetworks = data.availableNetworks;\n          $scope.swarmNetworks = _.filter($scope.availableNetworks, (network) => network.Scope === 'swarm');\n\n          const serviceNetworks = _.uniqBy(_.concat($scope.service.Model.Spec.Networks || [], $scope.service.Model.Spec.TaskTemplate.Networks || []), 'Target');\n          const networks = _.filter(\n            _.map(serviceNetworks, ({ Target }) => _.find(data.availableNetworks, { Id: Target })),\n            Boolean\n          );\n\n          if (_.some($scope.service.Ports, (port) => port.PublishMode === 'ingress')) {\n            const ingressNetwork = _.find($scope.availableNetworks, (network) => network.Ingress);\n            if (ingressNetwork) {\n              networks.unshift(ingressNetwork);\n            }\n          }\n\n          $scope.service.Networks = await Promise.all(\n            _.map(networks, async (item) => {\n              let addr = '';\n              if (item.IPAM.Config.length) {\n                addr = item.IPAM.Config[0].Subnet;\n              } else {\n                const network = await NetworkService.network(item.Id);\n                addr = (network && network.IPAM && network.IPAM.Config && network.IPAM.Config.length && network.IPAM.Config[0].Subnet) || '';\n              }\n              return { Id: item.Id, Name: item.Name, Addr: addr, Editable: !item.Ingress };\n            })\n          );\n\n          originalService.Networks = angular.copy($scope.service.Networks);\n\n          if (data.webhooks.length > 0) {\n            var webhook = data.webhooks[0];\n            $scope.WebhookExists = true;\n            $scope.webhookID = webhook.Id;\n            $scope.webhookURL = WebhookHelper.returnWebhookUrl(webhook.Token);\n          }\n\n          var tasks = data.tasks;\n\n          if (agentProxy) {\n            var containers = data.containers;\n            for (var i = 0; i < tasks.length; i++) {\n              var task = tasks[i];\n              TaskHelper.associateContainerToTask(task, containers);\n            }\n          }\n\n          ServiceHelper.associateTasksToService(service, tasks);\n\n          $scope.tasks = data.tasks;\n\n          // Set max cpu value\n          var maxCpus = 0;\n          for (var n in data.nodes) {\n            if (data.nodes[n].CPUs && data.nodes[n].CPUs > maxCpus) {\n              maxCpus = data.nodes[n].CPUs;\n            }\n          }\n          if (maxCpus > 0) {\n            $scope.state.sliderMaxCpu = maxCpus / 1000000000;\n          } else {\n            $scope.state.sliderMaxCpu = 32;\n          }\n\n          const image = $scope.service.Model.Spec.TaskTemplate.ContainerSpec.Image;\n          RegistryService.retrievePorRegistryModelFromRepository(image, endpoint.Id).then((model) => {\n            $scope.formValues.RegistryModel = model;\n            $scope.initialRegistryID = _.get(model, 'Registry.Id', 0);\n          });\n\n          // Default values\n          $scope.state.addSecret = { override: false };\n\n          $timeout(function () {\n            $anchorScroll();\n          });\n        })\n        .catch(function error(err) {\n          $scope.secrets = [];\n          $scope.configs = [];\n          Notifications.error('Failure', err, 'Unable to retrieve service details');\n        });\n    }\n\n    $scope.updateServiceAttribute = updateServiceAttribute;\n    function updateServiceAttribute(service, name) {\n      if (service[name] !== originalService[name] || !(name in originalService)) {\n        service.hasChanges = true;\n      }\n      previousServiceValues.push(name);\n    }\n\n    $scope.filterNetworks = filterNetworks;\n    function filterNetworks(networks, current) {\n      return networks.filter((network) => !network.Ingress && (network.Id === current.Id || $scope.service.Networks.every((serviceNetwork) => network.Id !== serviceNetwork.Id)));\n    }\n\n    $scope.filterConfigs = filterConfigs;\n    function filterConfigs(configs) {\n      if (!configs) {\n        return [];\n      }\n\n      return configs.filter((config) => $scope.service.ServiceConfigs.every((serviceConfig) => config.Id !== serviceConfig.Id));\n    }\n\n    function updateServiceArray(service, name) {\n      previousServiceValues.push(name);\n      service.hasChanges = true;\n    }\n\n    initView();\n  },\n]);\n","import moment from 'moment';\n\nangular.module('portainer.docker').controller('ServiceLogsController', [\n  '$scope',\n  '$transition$',\n  '$interval',\n  'ServiceService',\n  'Notifications',\n  function ($scope, $transition$, $interval, ServiceService, Notifications) {\n    $scope.state = {\n      refreshRate: 3,\n      lineCount: 100,\n      sinceTimestamp: '',\n      displayTimestamps: false,\n    };\n\n    $scope.changeLogCollection = function (logCollectionStatus) {\n      if (!logCollectionStatus) {\n        stopRepeater();\n      } else {\n        setUpdateRepeater();\n      }\n    };\n\n    $scope.$on('$destroy', function () {\n      stopRepeater();\n    });\n\n    function stopRepeater() {\n      var repeater = $scope.repeater;\n      if (angular.isDefined(repeater)) {\n        $interval.cancel(repeater);\n        repeater = null;\n      }\n    }\n\n    function setUpdateRepeater() {\n      var refreshRate = $scope.state.refreshRate;\n      $scope.repeater = $interval(function () {\n        ServiceService.logs($transition$.params().id, 1, 1, $scope.state.displayTimestamps ? 1 : 0, moment($scope.state.sinceTimestamp).unix(), $scope.state.lineCount)\n          .then(function success(data) {\n            $scope.logs = data;\n          })\n          .catch(function error(err) {\n            stopRepeater();\n            Notifications.error('Failure', err, 'Unable to retrieve service logs');\n          });\n      }, refreshRate * 1000);\n    }\n\n    function startLogPolling() {\n      ServiceService.logs($transition$.params().id, 1, 1, $scope.state.displayTimestamps ? 1 : 0, moment($scope.state.sinceTimestamp).unix(), $scope.state.lineCount)\n        .then(function success(data) {\n          $scope.logs = data;\n          setUpdateRepeater();\n        })\n        .catch(function error(err) {\n          stopRepeater();\n          Notifications.error('Failure', err, 'Unable to retrieve service logs');\n        });\n    }\n\n    function initView() {\n      ServiceService.service($transition$.params().id)\n        .then(function success(data) {\n          $scope.service = data;\n          startLogPolling();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve service information');\n        });\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.docker').controller('ServicesController', [\n  '$q',\n  '$scope',\n  'ServiceService',\n  'ServiceHelper',\n  'Notifications',\n  'TaskService',\n  'TaskHelper',\n  'NodeService',\n  'ContainerService',\n  'endpoint',\n  function ($q, $scope, ServiceService, ServiceHelper, Notifications, TaskService, TaskHelper, NodeService, ContainerService, endpoint) {\n    $scope.getServices = getServices;\n    $scope.endpoint = endpoint;\n\n    function getServices() {\n      var agentProxy = $scope.applicationState.endpoint.mode.agentProxy;\n\n      return $q\n        .all({\n          services: ServiceService.services(),\n          tasks: TaskService.tasks(),\n          containers: agentProxy ? ContainerService.containers(endpoint.Id, 1) : [],\n          nodes: NodeService.nodes(),\n        })\n        .then(function success(data) {\n          var services = data.services;\n          var tasks = data.tasks;\n\n          if (agentProxy) {\n            var containers = data.containers;\n            for (var j = 0; j < tasks.length; j++) {\n              var task = tasks[j];\n              TaskHelper.associateContainerToTask(task, containers);\n            }\n          }\n\n          for (var i = 0; i < services.length; i++) {\n            var service = services[i];\n            ServiceHelper.associateTasksToService(service, tasks);\n          }\n\n          $scope.nodes = data.nodes;\n          $scope.tasks = tasks;\n          $scope.services = services;\n        })\n        .catch(function error(err) {\n          $scope.services = [];\n          Notifications.error('Failure', err, 'Unable to retrieve services');\n        });\n    }\n\n    function initView() {\n      getServices();\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.docker').controller('SwarmController', [\n  '$q',\n  '$scope',\n  'SystemService',\n  'NodeService',\n  'Notifications',\n  'StateManager',\n  'Authentication',\n  function ($q, $scope, SystemService, NodeService, Notifications, StateManager, Authentication) {\n    $scope.info = {};\n    $scope.docker = {};\n    $scope.swarm = {};\n    $scope.totalCPU = 0;\n    $scope.totalMemory = 0;\n\n    function extractSwarmInfo(info) {\n      // Swarm info is available in SystemStatus object\n      var systemStatus = info.SystemStatus;\n      // Swarm strategy\n      $scope.swarm[systemStatus[1][0]] = systemStatus[1][1];\n      // Swarm filters\n      $scope.swarm[systemStatus[2][0]] = systemStatus[2][1];\n      // Swarm node count\n      var nodes = systemStatus[0][1] === 'primary' ? systemStatus[3][1] : systemStatus[4][1];\n      var node_count = parseInt(nodes, 10);\n      $scope.swarm[systemStatus[3][0]] = node_count;\n\n      $scope.swarm.Status = [];\n      extractNodesInfo(systemStatus, node_count);\n    }\n\n    function extractNodesInfo(info, node_count) {\n      // First information for node1 available at element #4 of SystemStatus if connected to a primary\n      // If connected to a replica, information for node1 is available at element #5\n      // The next 10 elements are information related to the node\n      var node_offset = info[0][1] === 'primary' ? 4 : 5;\n      for (let i = 0; i < node_count; i++) {\n        extractNodeInfo(info, node_offset);\n        node_offset += 9;\n      }\n    }\n\n    function extractNodeInfo(info, offset) {\n      var node = {};\n      node.name = info[offset][0];\n      node.ip = info[offset][1];\n      node.Id = info[offset + 1][1];\n      node.status = info[offset + 2][1];\n      node.containers = info[offset + 3][1];\n      node.cpu = info[offset + 4][1].split('/')[1];\n      node.memory = info[offset + 5][1].split('/')[1];\n      node.labels = info[offset + 6][1];\n      node.version = info[offset + 8][1];\n      $scope.swarm.Status.push(node);\n    }\n\n    function processTotalCPUAndMemory(nodes) {\n      var CPU = 0,\n        memory = 0;\n      angular.forEach(nodes, function (node) {\n        CPU += node.CPUs;\n        memory += node.Memory;\n      });\n      $scope.totalCPU = CPU / 1000000000;\n      $scope.totalMemory = memory;\n    }\n\n    $scope.getNodes = getNodes;\n    function getNodes() {\n      var provider = $scope.applicationState.endpoint.mode.provider;\n      if (provider === 'DOCKER_SWARM_MODE') {\n        NodeService.nodes()\n          .then(function (data) {\n            var nodes = data;\n            processTotalCPUAndMemory(nodes);\n            $scope.nodes = nodes;\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to retrieve cluster details');\n          });\n      }\n    }\n\n    function initView() {\n      $scope.isAdmin = Authentication.isAdmin();\n\n      var provider = $scope.applicationState.endpoint.mode.provider;\n      $q.all({\n        version: SystemService.version(),\n        info: SystemService.info(),\n      })\n        .then(function success(data) {\n          $scope.docker = data.version;\n          $scope.info = data.info;\n          if (provider === 'DOCKER_SWARM_MODE') {\n            getNodes();\n          } else {\n            extractSwarmInfo(data.info);\n          }\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve cluster details');\n        });\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.docker').controller('SwarmVisualizerController', [\n  '$q',\n  '$scope',\n  '$document',\n  '$interval',\n  'NodeService',\n  'ServiceService',\n  'TaskService',\n  'Notifications',\n  'LocalStorage',\n  function ($q, $scope, $document, $interval, NodeService, ServiceService, TaskService, Notifications, LocalStorage) {\n    $scope.state = {\n      ShowInformationPanel: true,\n      DisplayOnlyRunningTasks: false,\n      DisplayNodeLabels: false,\n      refreshRate: '5',\n    };\n\n    $scope.handleChangeDisplayOnlyRunningTasks = function handleChangeDisplayOnlyRunningTasks(enabled) {\n      $scope.$evalAsync(() => {\n        $scope.state.DisplayOnlyRunningTasks = enabled;\n        $scope.changeDisplayOnlyRunningTasks();\n      });\n    };\n\n    $scope.handleChangeDisplayNodeLabels = function handleChangeDisplayNodeLabels(enabled) {\n      $scope.$evalAsync(() => {\n        $scope.state.DisplayNodeLabels = enabled;\n        $scope.changeDisplayNodeLabels();\n      });\n    };\n\n    $scope.$on('$destroy', function () {\n      stopRepeater();\n    });\n\n    $scope.changeShowInformationPanel = function (value) {\n      $scope.state.ShowInformationPanel = value;\n      LocalStorage.storeSwarmVisualizerSettings('show_info_panel', value);\n    };\n\n    $scope.changeDisplayOnlyRunningTasks = function () {\n      var value = $scope.state.DisplayOnlyRunningTasks;\n      LocalStorage.storeSwarmVisualizerSettings('display_only_running_tasks', value);\n    };\n\n    $scope.changeDisplayNodeLabels = function () {\n      var value = $scope.state.DisplayNodeLabels;\n      LocalStorage.storeSwarmVisualizerSettings('display_node_labels', value);\n    };\n\n    $scope.changeUpdateRepeater = function () {\n      stopRepeater();\n      setUpdateRepeater();\n      $('#refreshRateChange').show();\n      $('#refreshRateChange').fadeOut(1500);\n      LocalStorage.storeSwarmVisualizerSettings('refresh_rate', $scope.state.refreshRate);\n    };\n\n    function stopRepeater() {\n      var repeater = $scope.repeater;\n      if (angular.isDefined(repeater)) {\n        $interval.cancel(repeater);\n        repeater = null;\n      }\n    }\n\n    function setUpdateRepeater() {\n      var refreshRate = $scope.state.refreshRate;\n      $scope.repeater = $interval(function () {\n        $q.all({\n          nodes: NodeService.nodes(),\n          services: ServiceService.services(),\n          tasks: TaskService.tasks(),\n        })\n          .then(function success(data) {\n            var nodes = data.nodes;\n            $scope.nodes = nodes;\n            var services = data.services;\n            $scope.services = services;\n            var tasks = data.tasks;\n            $scope.tasks = tasks;\n            prepareVisualizerData(nodes, services, tasks);\n          })\n          .catch(function error(err) {\n            stopRepeater();\n            Notifications.error('Failure', err, 'Unable to retrieve cluster information');\n          });\n      }, refreshRate * 1000);\n    }\n\n    function assignServiceInfo(services, tasks) {\n      for (var i = 0; i < services.length; i++) {\n        var service = services[i];\n\n        for (var j = 0; j < tasks.length; j++) {\n          var task = tasks[j];\n\n          if (task.ServiceId === service.Id) {\n            task.ServiceName = service.Name;\n          }\n        }\n      }\n    }\n\n    function assignTasksToNode(nodes, tasks) {\n      for (var i = 0; i < nodes.length; i++) {\n        var node = nodes[i];\n        node.Tasks = [];\n\n        for (var j = 0; j < tasks.length; j++) {\n          var task = tasks[j];\n\n          if (task.NodeId === node.Id) {\n            node.Tasks.push(task);\n          }\n        }\n      }\n    }\n\n    function prepareVisualizerData(nodes, services, tasks) {\n      var visualizerData = {};\n\n      assignServiceInfo(services, tasks);\n      assignTasksToNode(nodes, tasks);\n\n      visualizerData.nodes = nodes;\n      $scope.visualizerData = visualizerData;\n    }\n\n    function loadState() {\n      var showInfoPanel = LocalStorage.getSwarmVisualizerSettings('show_info_panel');\n      if (showInfoPanel !== undefined && showInfoPanel !== null) $scope.state.ShowInformationPanel = showInfoPanel;\n\n      var displayOnlyRunningTasks = LocalStorage.getSwarmVisualizerSettings('display_only_running_tasks');\n      if (displayOnlyRunningTasks !== undefined && displayOnlyRunningTasks !== null) $scope.state.DisplayOnlyRunningTasks = displayOnlyRunningTasks;\n\n      var displayNodeLabels = LocalStorage.getSwarmVisualizerSettings('display_node_labels');\n      if (displayNodeLabels !== undefined && displayNodeLabels !== null) $scope.state.DisplayNodeLabels = displayNodeLabels;\n\n      var refreshRate = LocalStorage.getSwarmVisualizerSettings('refresh_rate');\n      if (refreshRate !== undefined && refreshRate !== null) $scope.state.refreshRate = refreshRate;\n    }\n\n    function initView() {\n      $q.all({\n        nodes: NodeService.nodes(),\n        services: ServiceService.services(),\n        tasks: TaskService.tasks(),\n      })\n        .then(function success(data) {\n          var nodes = data.nodes;\n          $scope.nodes = nodes;\n          var services = data.services;\n          $scope.services = services;\n          var tasks = data.tasks;\n          $scope.tasks = tasks;\n          prepareVisualizerData(nodes, services, tasks);\n          setUpdateRepeater();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to initialize cluster visualizer');\n        });\n\n      loadState();\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.docker').controller('TaskController', [\n  '$scope',\n  '$transition$',\n  'TaskService',\n  'ServiceService',\n  'Notifications',\n  function ($scope, $transition$, TaskService, ServiceService, Notifications) {\n    function initView() {\n      TaskService.task($transition$.params().id)\n        .then(function success(data) {\n          var task = data;\n          $scope.task = task;\n          return ServiceService.service(task.ServiceId);\n        })\n        .then(function success(data) {\n          var service = data;\n          $scope.service = service;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve task details');\n        });\n    }\n\n    initView();\n  },\n]);\n","import moment from 'moment';\n\nangular.module('portainer.docker').controller('TaskLogsController', [\n  '$scope',\n  '$transition$',\n  '$interval',\n  'TaskService',\n  'ServiceService',\n  'Notifications',\n  function ($scope, $transition$, $interval, TaskService, ServiceService, Notifications) {\n    $scope.state = {\n      refreshRate: 3,\n      lineCount: 100,\n      sinceTimestamp: '',\n      displayTimestamps: false,\n    };\n\n    $scope.changeLogCollection = function (logCollectionStatus) {\n      if (!logCollectionStatus) {\n        stopRepeater();\n      } else {\n        setUpdateRepeater();\n      }\n    };\n\n    $scope.$on('$destroy', function () {\n      stopRepeater();\n    });\n\n    function stopRepeater() {\n      var repeater = $scope.repeater;\n      if (angular.isDefined(repeater)) {\n        $interval.cancel(repeater);\n        repeater = null;\n      }\n    }\n\n    function setUpdateRepeater() {\n      var refreshRate = $scope.state.refreshRate;\n      $scope.repeater = $interval(function () {\n        TaskService.logs($transition$.params().id, 1, 1, $scope.state.displayTimestamps ? 1 : 0, moment($scope.state.sinceTimestamp).unix(), $scope.state.lineCount)\n          .then(function success(data) {\n            $scope.logs = data;\n          })\n          .catch(function error(err) {\n            stopRepeater();\n            Notifications.error('Failure', err, 'Unable to retrieve task logs');\n          });\n      }, refreshRate * 1000);\n    }\n\n    function startLogPolling() {\n      TaskService.logs($transition$.params().id, 1, 1, $scope.state.displayTimestamps ? 1 : 0, moment($scope.state.sinceTimestamp).unix(), $scope.state.lineCount)\n        .then(function success(data) {\n          $scope.logs = data;\n          setUpdateRepeater();\n        })\n        .catch(function error(err) {\n          stopRepeater();\n          Notifications.error('Failure', err, 'Unable to retrieve task logs');\n        });\n    }\n\n    function initView() {\n      TaskService.task($transition$.params().id)\n        .then(function success(data) {\n          var task = data;\n          $scope.task = task;\n          return ServiceService.service(task.ServiceId);\n        })\n        .then(function success(data) {\n          var service = data;\n          $scope.service = service;\n          startLogPolling();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve task details');\n        });\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.docker').controller('BrowseVolumeController', BrowseVolumeController);\n\n/* @ngInject */\nfunction BrowseVolumeController($scope, $transition$, StateManager, endpoint) {\n  function initView() {\n    $scope.volumeId = $transition$.params().id;\n    $scope.nodeName = $transition$.params().nodeName;\n    $scope.agentApiVersion = StateManager.getAgentApiVersion();\n    $scope.endpointId = endpoint.Id;\n  }\n\n  initView();\n}\n","import { AccessControlFormData } from '../../../../portainer/components/accessControlForm/porAccessControlFormModel';\nimport { VolumesNFSFormData } from '../../../components/volumesNFSForm/volumesNFSFormModel';\nimport { VolumesCIFSFormData } from '../../../components/volumesCIFSForm/volumesCifsFormModel';\n\nangular.module('portainer.docker').controller('CreateVolumeController', [\n  '$q',\n  '$scope',\n  '$state',\n  'VolumeService',\n  'PluginService',\n  'ResourceControlService',\n  'Authentication',\n  'Notifications',\n  'FormValidator',\n  'HttpRequestHelper',\n  'endpoint',\n  function ($q, $scope, $state, VolumeService, PluginService, ResourceControlService, Authentication, Notifications, FormValidator, HttpRequestHelper, endpoint) {\n    $scope.endpoint = endpoint;\n\n    $scope.formValues = {\n      Driver: 'local',\n      DriverOptions: [],\n      AccessControlData: new AccessControlFormData(),\n      NodeName: null,\n      NFSData: new VolumesNFSFormData(),\n      CIFSData: new VolumesCIFSFormData(),\n    };\n\n    $scope.state = {\n      formValidationError: '',\n      actionInProgress: false,\n    };\n\n    $scope.availableVolumeDrivers = [];\n\n    $scope.addDriverOption = function () {\n      $scope.formValues.DriverOptions.push({ name: '', value: '' });\n    };\n\n    $scope.removeDriverOption = function (index) {\n      $scope.formValues.DriverOptions.splice(index, 1);\n    };\n\n    $scope.onUseNFSChange = onUseNFSChange;\n\n    function onUseNFSChange(checked) {\n      return $scope.$evalAsync(() => {\n        $scope.formValues.NFSData.useNFS = checked;\n        $scope.formValues.CIFSData.useCIFS = false;\n      });\n    }\n\n    $scope.onUseCIFSChange = onUseCIFSChange;\n\n    function onUseCIFSChange(checked) {\n      return $scope.$evalAsync(() => {\n        $scope.formValues.CIFSData.useCIFS = checked;\n        $scope.formValues.NFSData.useNFS = false;\n      });\n    }\n\n    function validateForm(accessControlData, isAdmin) {\n      $scope.state.formValidationError = '';\n      var error = '';\n      error = FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n      if (error) {\n        $scope.state.formValidationError = error;\n        return false;\n      }\n      return true;\n    }\n\n    function prepareCIFSConfiguration(driverOptions) {\n      const data = $scope.formValues.CIFSData;\n\n      driverOptions.push({ name: 'type', value: 'cifs' });\n\n      let share = data.share.replace('\\\\', '/');\n      if (share[0] !== '/') {\n        share = '/' + share;\n      }\n      const device = '//' + data.serverAddress + share;\n      driverOptions.push({ name: 'device', value: device });\n\n      const versionNumber = data.versionsNumber[data.versions.indexOf(data.version)];\n      const options = 'addr=' + data.serverAddress + ',username=' + data.username + ',password=' + data.password + ',vers=' + versionNumber;\n      driverOptions.push({ name: 'o', value: options });\n    }\n\n    function prepareNFSConfiguration(driverOptions) {\n      var data = $scope.formValues.NFSData;\n\n      driverOptions.push({ name: 'type', value: 'nfs' });\n\n      var options = 'addr=' + data.serverAddress + ',' + data.options;\n      if (data.version === 'NFS4') {\n        options = options + ',nfsvers=4';\n      }\n      driverOptions.push({ name: 'o', value: options });\n\n      var mountPoint = data.mountPoint.indexOf(':') === -1 ? ':' + data.mountPoint : data.mountPoint;\n      driverOptions.push({ name: 'device', value: mountPoint });\n    }\n\n    $scope.create = function () {\n      var name = $scope.formValues.Name;\n      var driver = $scope.formValues.Driver;\n      var driverOptions = $scope.formValues.DriverOptions;\n\n      if ($scope.formValues.NFSData.useNFS) {\n        prepareNFSConfiguration(driverOptions);\n      }\n\n      if ($scope.formValues.CIFSData.useCIFS) {\n        prepareCIFSConfiguration(driverOptions);\n      }\n\n      var volumeConfiguration = VolumeService.createVolumeConfiguration(name, driver, driverOptions);\n      var accessControlData = $scope.formValues.AccessControlData;\n      var userDetails = Authentication.getUserDetails();\n      var isAdmin = Authentication.isAdmin();\n\n      if (!validateForm(accessControlData, isAdmin)) {\n        return;\n      }\n\n      var nodeName = $scope.formValues.NodeName;\n      HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);\n\n      $scope.state.actionInProgress = true;\n      VolumeService.createVolume(volumeConfiguration)\n        .then(function success(data) {\n          const userId = userDetails.ID;\n          const resourceControl = data.ResourceControl;\n          return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Volume successfully created');\n          $state.go('docker.volumes', {}, { reload: true });\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'An error occurred during volume creation');\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    };\n\n    function initView() {\n      var apiVersion = $scope.applicationState.endpoint.apiVersion;\n\n      PluginService.volumePlugins(apiVersion < 1.25)\n        .then(function success(data) {\n          $scope.availableVolumeDrivers = data;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve volume drivers');\n        });\n    }\n\n    initView();\n  },\n]);\n","import { ResourceControlType } from '@/react/portainer/access-control/types';\nimport { confirmDelete } from '@@/modals/confirm';\n\nangular.module('portainer.docker').controller('VolumeController', [\n  '$scope',\n  '$state',\n  '$transition$',\n  'VolumeService',\n  'ContainerService',\n  'Notifications',\n  'HttpRequestHelper',\n  'endpoint',\n  function ($scope, $state, $transition$, VolumeService, ContainerService, Notifications, HttpRequestHelper, endpoint) {\n    $scope.resourceType = ResourceControlType.Volume;\n    $scope.endpoint = endpoint;\n\n    $scope.onUpdateResourceControlSuccess = function () {\n      $state.reload();\n    };\n\n    $scope.removeVolume = function removeVolume() {\n      confirmDelete('Do you want to remove this volume?').then((confirmed) => {\n        if (confirmed) {\n          VolumeService.remove($scope.volume)\n            .then(function success() {\n              Notifications.success('Volume successfully removed', $transition$.params().id);\n              $state.go('docker.volumes', {});\n            })\n            .catch(function error(err) {\n              Notifications.error('Failure', err, 'Unable to remove volume');\n            });\n        }\n      });\n    };\n\n    function getVolumeDataFromContainer(container, volumeId) {\n      return container.Mounts.find(function (volume) {\n        return volume.Name === volumeId;\n      });\n    }\n\n    function initView() {\n      HttpRequestHelper.setPortainerAgentTargetHeader($transition$.params().nodeName);\n\n      VolumeService.volume($transition$.params().id)\n        .then(function success(data) {\n          var volume = data;\n          $scope.volume = volume;\n          var containerFilter = { volume: [volume.Id] };\n\n          return ContainerService.containers(endpoint.Id, 1, containerFilter);\n        })\n        .then(function success(data) {\n          var dataContainers = $scope.isCioDriver ? data.containers : data;\n\n          var containers = dataContainers.map(function (container) {\n            container.volumeData = getVolumeDataFromContainer(container, $scope.volume.Id);\n            return container;\n          });\n          $scope.containersUsingVolume = containers;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve volume details');\n        });\n    }\n\n    initView();\n  },\n]);\n","import { confirmDelete } from '@@/modals/confirm';\n\nimport { processItemsInBatches } from '@/react/common/processItemsInBatches';\n\nangular.module('portainer.docker').controller('VolumesController', [\n  '$q',\n  '$scope',\n  '$state',\n  'VolumeService',\n  'ServiceService',\n  'VolumeHelper',\n  'Notifications',\n  'HttpRequestHelper',\n  'Authentication',\n  'endpoint',\n  function ($q, $scope, $state, VolumeService, ServiceService, VolumeHelper, Notifications, HttpRequestHelper, Authentication, endpoint) {\n    $scope.removeAction = function (selectedItems) {\n      confirmDelete('Do you want to remove the selected volume(s)?').then(async (confirmed) => {\n        async function doRemove(volume) {\n          HttpRequestHelper.setPortainerAgentTargetHeader(volume.NodeName);\n          return VolumeService.remove(volume)\n            .then(function success() {\n              Notifications.success('Volume successfully removed', volume.Id);\n              var index = $scope.volumes.indexOf(volume);\n              $scope.volumes.splice(index, 1);\n            })\n            .catch(function error(err) {\n              Notifications.error('Failure', err, 'Unable to remove volume');\n            });\n        }\n\n        if (confirmed) {\n          await processItemsInBatches(selectedItems, doRemove);\n          $state.reload();\n        }\n      });\n    };\n\n    $scope.getVolumes = getVolumes;\n    function getVolumes() {\n      var endpointProvider = $scope.applicationState.endpoint.mode.provider;\n      var endpointRole = $scope.applicationState.endpoint.mode.role;\n\n      $q.all({\n        attached: VolumeService.volumes({ filters: { dangling: ['false'] } }),\n        dangling: VolumeService.volumes({ filters: { dangling: ['true'] } }),\n        services: endpointProvider === 'DOCKER_SWARM_MODE' && endpointRole === 'MANAGER' ? ServiceService.services() : [],\n      })\n        .then(function success(data) {\n          var services = data.services;\n          $scope.volumes = data.attached\n            .map(function (volume) {\n              volume.dangling = false;\n              return volume;\n            })\n            .concat(\n              data.dangling.map(function (volume) {\n                volume.dangling = true;\n                if (VolumeHelper.isVolumeUsedByAService(volume, services)) {\n                  volume.dangling = false;\n                }\n                return volume;\n              })\n            );\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve volumes');\n        });\n    }\n\n    function initView() {\n      getVolumes();\n\n      $scope.showBrowseAction = $scope.applicationState.endpoint.mode.agentProxy && (Authentication.isAdmin() || endpoint.SecuritySettings.allowVolumeBrowserForRegularUsers);\n    }\n\n    initView();\n  },\n]);\n","import _ from 'lodash';\n\nimport { EditorType } from '@/react/edge/edge-stacks/types';\n\nimport { BoxSelector } from '@@/BoxSelector';\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport {\n  compose,\n  kubernetes,\n} from '@@/BoxSelector/common-options/deployment-methods';\n\ninterface Props {\n  value: number;\n  onChange(value: number): void;\n  hasDockerEndpoint: boolean;\n  hasKubeEndpoint: boolean;\n  allowKubeToSelectCompose?: boolean;\n}\n\nexport function EdgeStackDeploymentTypeSelector({\n  value,\n  onChange,\n  hasDockerEndpoint,\n  hasKubeEndpoint,\n  allowKubeToSelectCompose,\n}: Props) {\n  const deploymentOptions: BoxSelectorOption<number>[] = _.compact([\n    {\n      ...compose,\n      value: EditorType.Compose,\n      disabled: () => !allowKubeToSelectCompose && hasKubeEndpoint,\n      tooltip: () =>\n        hasKubeEndpoint\n          ? 'Cannot use this option with Edge Kubernetes environments'\n          : '',\n    },\n    {\n      ...kubernetes,\n      value: EditorType.Kubernetes,\n      disabled: () => hasDockerEndpoint,\n      tooltip: () =>\n        hasDockerEndpoint\n          ? 'Cannot use this option with Edge Docker environments'\n          : '',\n      iconType: 'logo',\n    },\n  ]);\n\n  return (\n    <>\n      <div className=\"col-sm-12 form-section-title\"> Deployment type</div>\n      <BoxSelector\n        radioName=\"deploymentType\"\n        value={value}\n        options={deploymentOptions}\n        onChange={onChange}\n      />\n    </>\n  );\n}\n","import { SwitchField } from '@@/form-components/SwitchField';\n\nexport function PrePullToggle({\n  value,\n  onChange,\n}: {\n  value: boolean;\n  onChange: (value: boolean) => void;\n}) {\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <SwitchField\n          checked={value}\n          name=\"prePullImage\"\n          label=\"Pre-pull images\"\n          tooltip=\"When enabled, redeployment will be executed when image(s) is pulled successfully\"\n          labelClass=\"col-sm-3 col-lg-2\"\n          onChange={onChange}\n        />\n      </div>\n    </div>\n  );\n}\n","import { SwitchField } from '@@/form-components/SwitchField';\n\nexport function RetryDeployToggle({\n  value,\n  onChange,\n}: {\n  value: boolean;\n  onChange: (value: boolean) => void;\n}) {\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <SwitchField\n          checked={value}\n          name=\"retryDeploy\"\n          label=\"Retry deployment\"\n          tooltip=\"When enabled, this will allow the edge agent to retry deployment if failed to deploy initially\"\n          labelClass=\"col-sm-3 col-lg-2\"\n          onChange={onChange}\n        />\n      </div>\n    </div>\n  );\n}\n","import { useState, useEffect } from 'react';\nimport { RefreshCw } from 'lucide-react';\n\nimport { Registry } from '@/react/portainer/registries/types';\n\nimport { Select } from '@@/form-components/ReactSelect';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Button } from '@@/buttons';\nimport { FormError } from '@@/form-components/FormError';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormSection } from '@@/form-components/FormSection';\n\ninterface Props {\n  value?: number;\n  registries: Registry[];\n  onChange?: () => void;\n  formInvalid?: boolean;\n  errorMessage?: string;\n  onSelect: (value?: number) => void;\n  isActive?: boolean;\n  clearRegistries?: () => void;\n  method?: 'repository' | string;\n}\n\nexport function PrivateRegistryFieldset({\n  value,\n  registries,\n  onChange = () => {},\n  formInvalid,\n  errorMessage,\n  onSelect,\n  isActive,\n  clearRegistries = () => {},\n  method,\n}: Props) {\n  const [checked, setChecked] = useState(isActive || false);\n  const [selected, setSelected] = useState(value);\n\n  const tooltipMessage =\n    'This allows you to provide credentials when using a private registry that requires authentication';\n\n  useEffect(() => {\n    if (isActive) {\n      setChecked(isActive);\n    }\n  }, [isActive]);\n\n  useEffect(() => {\n    if (checked) {\n      onChange();\n    } else {\n      clearRegistries();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [checked]);\n\n  useEffect(() => {\n    setSelected(value);\n  }, [value]);\n\n  function reload() {\n    onChange();\n    setSelected(value);\n  }\n\n  return (\n    <FormSection title=\"Registry\">\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            checked={checked}\n            onChange={(value) => setChecked(value)}\n            tooltip={tooltipMessage}\n            label=\"Use Credentials\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            disabled={formInvalid}\n          />\n        </div>\n      </div>\n\n      {checked && (\n        <>\n          {method !== 'repository' && (\n            <TextTip color=\"blue\">\n              If you make any changes to the image urls in your yaml, please\n              reload or select registry manually\n            </TextTip>\n          )}\n\n          {!errorMessage ? (\n            <FormControl label=\"Registry\" inputId=\"users-selector\">\n              <div className=\"flex\">\n                <Select\n                  value={registries.filter(\n                    (registry) => registry.Id === selected\n                  )}\n                  options={registries}\n                  getOptionLabel={(registry) => registry.Name}\n                  getOptionValue={(registry) => registry.Id.toString()}\n                  onChange={(value) => onSelect(value?.Id)}\n                  className=\"w-full\"\n                />\n                {method !== 'repository' && (\n                  <Button\n                    onClick={reload}\n                    title=\"Reload\"\n                    icon={RefreshCw}\n                    color=\"light\"\n                  />\n                )}\n              </div>\n            </FormControl>\n          ) : (\n            <FormError>{errorMessage}</FormError>\n          )}\n        </>\n      )}\n    </FormSection>\n  );\n}\n","import { EdgeStack } from '../types';\n\nexport function buildUrl(id?: EdgeStack['Id'], action?: string) {\n  const baseUrl = '/edge_stacks';\n  const url = id ? `${baseUrl}/${id}` : baseUrl;\n  return action ? `${url}/${action}` : url;\n}\n","import { useMutation } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\nimport { RegistryId } from '@/react/portainer/registries/types';\nimport axios, {\n  json2formData,\n  parseAxiosError,\n} from '@/portainer/services/axios';\n\nimport { buildUrl } from './buildUrl';\n\nexport function useParseRegistries() {\n  return useMutation(parseRegistries, {\n    ...withError('Failed parsing registries'),\n  });\n}\n\nexport async function parseRegistries({\n  file,\n  fileContent,\n}: {\n  file?: File;\n  fileContent?: string;\n}) {\n  if (!file && !fileContent) {\n    throw new Error('File or fileContent must be provided');\n  }\n\n  let currentFile = file;\n  if (!file && fileContent) {\n    currentFile = new File([fileContent], 'registries.yml');\n  }\n  try {\n    const { data } = await axios.post<Array<RegistryId>>(\n      buildUrl(undefined, 'parse_registries'),\n      json2formData({ file: currentFile }),\n      {\n        headers: {\n          'Content-Type': 'multipart/form-data',\n        },\n      }\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n","import _ from 'lodash';\n\nimport { notifyError } from '@/portainer/services/notifications';\nimport { PrivateRegistryFieldset } from '@/react/edge/edge-stacks/components/PrivateRegistryFieldset';\nimport { useRegistries } from '@/react/portainer/registries/queries/useRegistries';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { useParseRegistries } from '../../queries/useParseRegistries';\n\nimport { FormValues } from './types';\n\nexport function PrivateRegistryFieldsetWrapper({\n  value,\n  error,\n  onChange,\n  onFieldError,\n  values,\n  isGit,\n}: {\n  value: FormValues['privateRegistryId'];\n  error?: string;\n  onChange: (value?: number) => void;\n  values: {\n    fileContent?: string;\n    file?: File;\n  };\n  onFieldError: (message: string) => void;\n  isGit?: boolean;\n}) {\n  const dryRunMutation = useParseRegistries();\n\n  const registriesQuery = useRegistries({ hideDefault: true });\n\n  if (!registriesQuery.data) {\n    return null;\n  }\n\n  return (\n    <PrivateRegistryFieldset\n      value={value}\n      formInvalid={!values.file && !values.fileContent && !isGit}\n      errorMessage={error}\n      registries={registriesQuery.data}\n      onChange={() => matchRegistry(values)}\n      onSelect={(value) => onChange(value)}\n      isActive={!!value}\n      clearRegistries={() => onChange(undefined)}\n      method={isGit ? 'repository' : 'file'}\n    />\n  );\n\n  async function matchRegistry(values: { fileContent?: string; file?: File }) {\n    if (isGit) {\n      return;\n    }\n\n    try {\n      if (!isBE) {\n        return;\n      }\n\n      const registries = await dryRunMutation.mutateAsync(values);\n\n      if (registries.length === 0) {\n        return;\n      }\n\n      const validRegistry = onlyOne(registries);\n      if (validRegistry) {\n        onChange(registries[0]);\n      } else {\n        onChange(undefined);\n        onFieldError(\n          'Images need to be from a single registry, please edit and reload'\n        );\n      }\n    } catch (err) {\n      notifyError('Failure', err as Error, 'Unable to retrieve registries');\n    }\n  }\n\n  function onlyOne<T extends string | number>(arr: Array<T>) {\n    return _.uniq(arr).length === 1;\n  }\n}\n","import { GitAuthenticationResponse, GitAuthModel } from '../types';\n\nexport function parseAuthResponse(\n  auth?: GitAuthenticationResponse\n): GitAuthModel {\n  if (!auth) {\n    return {\n      RepositoryAuthentication: false,\n      NewCredentialName: '',\n      RepositoryGitCredentialID: 0,\n      RepositoryPassword: '',\n      RepositoryUsername: '',\n      SaveCredential: false,\n    };\n  }\n\n  return {\n    RepositoryAuthentication: true,\n    NewCredentialName: '',\n    RepositoryGitCredentialID: auth.GitCredentialID,\n    RepositoryPassword: '',\n    RepositoryUsername: auth.Username,\n  };\n}\n\nexport function transformGitAuthenticationViewModel(\n  auth?: GitAuthModel\n): GitAuthenticationResponse | null {\n  if (\n    !auth ||\n    !auth.RepositoryAuthentication ||\n    typeof auth.RepositoryGitCredentialID === 'undefined' ||\n    (auth.RepositoryGitCredentialID === 0 && auth.RepositoryPassword === '')\n  ) {\n    return null;\n  }\n\n  if (auth.RepositoryGitCredentialID !== 0) {\n    return {\n      GitCredentialID: auth.RepositoryGitCredentialID,\n    };\n  }\n\n  return {\n    Username: auth.RepositoryUsername,\n    Password: auth.RepositoryPassword,\n  };\n}\n","import { EdgeStack } from '@/react/edge/edge-stacks/types';\n\nimport { GitFormModel, RelativePathModel } from '../types';\n\nexport function parseRelativePathResponse(stack: EdgeStack): RelativePathModel {\n  return {\n    SupportRelativePath: stack.SupportRelativePath,\n    FilesystemPath: stack.FilesystemPath,\n    SupportPerDeviceConfigs: stack.SupportPerDeviceConfigs,\n    PerDeviceConfigsMatchType: stack.PerDeviceConfigsMatchType,\n    PerDeviceConfigsGroupMatchType: stack.PerDeviceConfigsGroupMatchType,\n    PerDeviceConfigsPath: stack.PerDeviceConfigsPath,\n  };\n}\n\nexport const dummyGitForm: GitFormModel = {\n  RepositoryURL: '',\n  RepositoryURLValid: false,\n  RepositoryAuthentication: false,\n  RepositoryUsername: '',\n  RepositoryPassword: '',\n  AdditionalFiles: [],\n  RepositoryReferenceName: '',\n  ComposeFilePathInRepository: '',\n  NewCredentialName: '',\n  SaveCredential: false,\n  TLSSkipVerify: false,\n};\n","import { boolean, mixed, object, SchemaOf, string } from 'yup';\n\nimport { PerDevConfigsFilterType, RelativePathModel } from './types';\n\nexport function relativePathValidation(): SchemaOf<RelativePathModel> {\n  return object({\n    SupportRelativePath: boolean().default(false),\n    FilesystemPath: string()\n      .when(['SupportRelativePath'], {\n        is: true,\n        then: string().required('Local filesystem path is required'),\n      })\n      .default(''),\n    SupportPerDeviceConfigs: boolean().default(false),\n    PerDeviceConfigsPath: string()\n      .when(['SupportPerDeviceConfigs'], {\n        is: true,\n        then: string().required('Directory is required'),\n      })\n      .default(''),\n    PerDeviceConfigsMatchType: mixed<PerDevConfigsFilterType>()\n      .oneOf(['', 'file', 'dir'])\n      .default(''),\n    PerDeviceConfigsGroupMatchType: mixed<PerDevConfigsFilterType>()\n      .oneOf(['', 'file', 'dir'])\n      .default(''),\n  });\n}\n","import { useEffect, useState } from 'react';\nimport { FormikErrors, yupToFormErrors } from 'formik';\n\nimport { RelativePathModel } from '@/react/portainer/gitops/types';\nimport { relativePathValidation } from '@/react/portainer/gitops/RelativePathFieldset/validation';\n\nexport function useValidation(value: RelativePathModel) {\n  const [errors, setErrors] = useState<FormikErrors<RelativePathModel>>({});\n\n  useEffect(() => {\n    async function valide() {\n      try {\n        await relativePathValidation().validate(value, {\n          strict: true,\n          abortEarly: false,\n        });\n        setErrors({});\n      } catch (error) {\n        setErrors(yupToFormErrors(error));\n      }\n    }\n\n    valide();\n  }, [value]);\n\n  return { errors };\n}\n","export function getDefaultRelativePathModel(): RelativePathModel {\n  return {\n    SupportRelativePath: false,\n    FilesystemPath: '',\n    PerDeviceConfigsGroupMatchType: '',\n    PerDeviceConfigsMatchType: '',\n    PerDeviceConfigsPath: '',\n    SupportPerDeviceConfigs: false,\n  };\n}\n\nexport interface RelativePathModel {\n  SupportRelativePath: boolean;\n  FilesystemPath: string;\n  SupportPerDeviceConfigs: boolean;\n  PerDeviceConfigsPath: string;\n  PerDeviceConfigsMatchType: PerDevConfigsFilterType;\n  PerDeviceConfigsGroupMatchType: PerDevConfigsFilterType;\n}\n\nexport type PerDevConfigsFilterType = 'file' | 'dir' | '';\n\nfunction isPerDevConfigsFilterType(\n  type: string\n): type is PerDevConfigsFilterType {\n  return ['file', 'dir'].includes(type);\n}\n\nexport function getPerDevConfigsFilterType(\n  type: string\n): PerDevConfigsFilterType {\n  if (isPerDevConfigsFilterType(type)) {\n    return type;\n  }\n\n  return '';\n}\n","import { useCallback } from 'react';\n\nimport { GitFormModel } from '@/react/portainer/gitops/types';\nimport { PathSelector } from '@/react/portainer/gitops/ComposePathField/PathSelector';\nimport { dummyGitForm } from '@/react/portainer/gitops/RelativePathFieldset/utils';\nimport { useValidation } from '@/react/portainer/gitops/RelativePathFieldset/useValidation';\nimport { useEnableFsPath } from '@/react/portainer/gitops/RelativePathFieldset/useEnableFsPath';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input, Select } from '@@/form-components/Input';\nimport { useDocsUrl } from '@@/PageHeader/ContextHelp/ContextHelp';\n\nimport { RelativePathModel, getPerDevConfigsFilterType } from './types';\n\ninterface Props {\n  value: RelativePathModel;\n  gitModel?: GitFormModel;\n  onChange?: (value: Partial<RelativePathModel>) => void;\n  isEditing?: boolean;\n  hideEdgeConfigs?: boolean;\n}\n\nexport function RelativePathFieldset({\n  value,\n  gitModel,\n  onChange,\n  isEditing,\n  hideEdgeConfigs,\n}: Props) {\n  const innerOnChange = useCallback(\n    (value: Partial<RelativePathModel>) => onChange && onChange(value),\n    [onChange]\n  );\n\n  const { errors } = useValidation(value);\n\n  const { enableFsPath0, enableFsPath1, toggleFsPath } = useEnableFsPath(value);\n\n  const gitoptsEdgeConfigDocUrl = useDocsUrl(\n    '/user/edge/stacks/add#gitops-edge-configurations'\n  );\n\n  const pathTip0 =\n    'For relative path volumes use with Docker Swarm, you must have a network filesystem which all of your nodes can access.';\n  const pathTip1 =\n    'Relative path is active. When you set the ‘local filesystem path’, it will also be utilzed for GitOps Edge configuration.';\n  const pathTip2 =\n    'GitOps Edge configurations is active. When you set the ‘local filesystem path’, it will also be utilized for relative paths.';\n\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            name=\"EnableRelativePaths\"\n            label=\"Enable relative path volumes\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            tooltip=\"Enabling this means you can specify relative path volumes in your Compose files, with Portainer pulling the content from your git repository to the environment the stack is deployed to.\"\n            disabled={isEditing}\n            checked={value.SupportRelativePath}\n            onChange={(value) => {\n              toggleFsPath(0, value);\n              innerOnChange({ SupportRelativePath: value });\n            }}\n          />\n        </div>\n      </div>\n\n      {value.SupportRelativePath && (\n        <>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\">\n                {enableFsPath1 ? pathTip2 : pathTip0}\n              </TextTip>\n            </div>\n          </div>\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <FormControl\n                label=\"Local filesystem path\"\n                errors={errors.FilesystemPath}\n              >\n                <Input\n                  name=\"FilesystemPath\"\n                  placeholder=\"/mnt\"\n                  disabled={isEditing || !enableFsPath0}\n                  value={value.FilesystemPath}\n                  onChange={(e) =>\n                    innerOnChange({ FilesystemPath: e.target.value })\n                  }\n                />\n              </FormControl>\n            </div>\n          </div>\n        </>\n      )}\n\n      {!hideEdgeConfigs && (\n        <>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\">\n                When enabled, corresponding Edge ID will be passed through as an\n                environment variable: PORTAINER_EDGE_ID.\n              </TextTip>\n            </div>\n          </div>\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"EnablePerDeviceConfigs\"\n                label=\"GitOps Edge configurations\"\n                labelClass=\"col-sm-3 col-lg-2\"\n                tooltip=\"By enabling the GitOps Edge Configurations feature, you gain the ability to define relative path volumes in your configuration files. Portainer will then automatically fetch the content from your git repository by matching the folder name or file name with the Portainer Edge ID, and apply it to the environment where the stack is deployed\"\n                disabled={isEditing}\n                checked={!!value.SupportPerDeviceConfigs}\n                onChange={(value) => {\n                  toggleFsPath(1, value);\n                  innerOnChange({ SupportPerDeviceConfigs: value });\n                }}\n              />\n            </div>\n          </div>\n\n          {value.SupportPerDeviceConfigs && (\n            <>\n              {!isEditing && (\n                <div className=\"form-group\">\n                  <div className=\"col-sm-12\">\n                    <TextTip color=\"blue\">\n                      {enableFsPath0 ? pathTip1 : pathTip0}\n                    </TextTip>\n                  </div>\n                </div>\n              )}\n\n              {!isEditing && (\n                <div className=\"form-group\">\n                  <div className=\"col-sm-12\">\n                    <FormControl\n                      label=\"Local filesystem path\"\n                      errors={errors.FilesystemPath}\n                    >\n                      <Input\n                        name=\"FilesystemPath\"\n                        placeholder=\"/mnt\"\n                        disabled={isEditing || !enableFsPath1}\n                        value={value.FilesystemPath}\n                        onChange={(e) =>\n                          innerOnChange({ FilesystemPath: e.target.value })\n                        }\n                      />\n                    </FormControl>\n                  </div>\n                </div>\n              )}\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <TextTip color=\"blue\">\n                    Specify the directory name where your configuration will be\n                    located. This will allow you to manage device configuration\n                    settings with a Git repo as your template.\n                  </TextTip>\n                </div>\n              </div>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <FormControl\n                    label=\"Directory\"\n                    errors={errors.PerDeviceConfigsPath}\n                    inputId=\"per_device_configs_path_input\"\n                  >\n                    <PathSelector\n                      value={value.PerDeviceConfigsPath || ''}\n                      onChange={(value) =>\n                        innerOnChange({ PerDeviceConfigsPath: value })\n                      }\n                      placeholder=\"config\"\n                      model={gitModel || dummyGitForm}\n                      readOnly={isEditing}\n                      dirOnly\n                      inputId=\"per_device_configs_path_input\"\n                    />\n                  </FormControl>\n                </div>\n              </div>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <TextTip color=\"blue\">\n                    Select which rule to use when matching configuration with\n                    Portainer Edge ID either on a per-device basis or group-wide\n                    with an Edge Group. Only configurations that match the\n                    selected rule will be accessible through their corresponding\n                    paths. Deployments that rely on accessing the configuration\n                    may experience errors.\n                  </TextTip>\n                </div>\n              </div>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <FormControl label=\"Device matching rule\">\n                    <Select\n                      value={value.PerDeviceConfigsMatchType}\n                      onChange={(e) =>\n                        innerOnChange({\n                          PerDeviceConfigsMatchType: getPerDevConfigsFilterType(\n                            e.target.value\n                          ),\n                        })\n                      }\n                      options={[\n                        {\n                          label: '',\n                          value: '',\n                        },\n                        {\n                          label: 'Match file name with Portainer Edge ID',\n                          value: 'file',\n                        },\n                        {\n                          label: 'Match folder name with Portainer Edge ID',\n                          value: 'dir',\n                        },\n                      ]}\n                      disabled={isEditing}\n                    />\n                  </FormControl>\n                </div>\n              </div>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <FormControl label=\"Group matching rule\">\n                    <Select\n                      value={value.PerDeviceConfigsGroupMatchType}\n                      onChange={(e) =>\n                        innerOnChange({\n                          PerDeviceConfigsGroupMatchType:\n                            getPerDevConfigsFilterType(e.target.value),\n                        })\n                      }\n                      options={[\n                        {\n                          label: '',\n                          value: '',\n                        },\n                        {\n                          label: 'Match file name with Edge Group',\n                          value: 'file',\n                        },\n                        {\n                          label: 'Match folder name with Edge Group',\n                          value: 'dir',\n                        },\n                      ]}\n                      disabled={isEditing}\n                    />\n                  </FormControl>\n                </div>\n              </div>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <TextTip color=\"blue\">\n                    <div>\n                      You can use it as an environment variable with an image:{' '}\n                      <code>myapp:$&#123;PORTAINER_EDGE_ID&#125;</code> or{' '}\n                      <code>myapp:$&#123;PORTAINER_EDGE_GROUP&#125;</code>. You\n                      can also use it with the relative path for volumes:{' '}\n                      <code>\n                        ./config/$&#123;PORTAINER_EDGE_ID&#125;:/myapp/config\n                      </code>{' '}\n                      or{' '}\n                      <code>\n                        ./config/$&#123;PORTAINER_EDGE_GROUP&#125;:/myapp/groupconfig\n                      </code>\n                      . More documentation can be found{' '}\n                      <a href={gitoptsEdgeConfigDocUrl}>here</a>.\n                    </div>\n                  </TextTip>\n                </div>\n              </div>\n            </>\n          )}\n        </>\n      )}\n    </>\n  );\n}\n","import { useState } from 'react';\n\nimport { RelativePathModel } from './types';\n\nexport function useEnableFsPath(initialValue: RelativePathModel) {\n  const [state, setState] = useState<number[]>(() =>\n    initialValue.SupportPerDeviceConfigs ? [1] : []\n  );\n\n  const enableFsPath0 = state.length && state[0] === 0;\n  const enableFsPath1 = state.length && state[0] === 1;\n\n  function toggleFsPath(idx: number, enable: boolean) {\n    if (enable) {\n      setState([...state, idx]);\n    } else {\n      setState(state.filter((e) => e !== idx));\n    }\n  }\n\n  return { enableFsPath0, enableFsPath1, toggleFsPath };\n}\n","import { useQueryClient, useMutation } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { GitAuthModel, GitFormModel } from '@/react/portainer/gitops/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { UserId } from '@/portainer/users/types';\n\nimport { GitCredential } from '../types';\nimport { buildGitUrl } from '../git-credentials.service';\n\nexport interface CreateGitCredentialPayload {\n  userId: number;\n  name: string;\n  username?: string;\n  password: string;\n}\n\nexport function useCreateGitCredentialMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(createGitCredential, {\n    onSuccess: (_, payload) => {\n      notifySuccess('Credentials created successfully', payload.name);\n      return queryClient.invalidateQueries(['gitcredentials']);\n    },\n    meta: {\n      error: {\n        title: 'Failure',\n        message: 'Unable to create credential',\n      },\n    },\n  });\n}\n\nasync function createGitCredential(gitCredential: CreateGitCredentialPayload) {\n  try {\n    const { data } = await axios.post<{ gitCredential: GitCredential }>(\n      buildGitUrl(gitCredential.userId),\n      gitCredential\n    );\n    return data.gitCredential;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to create git credential');\n  }\n}\n\nexport function useSaveCredentialsIfRequired() {\n  const saveCredentialsMutation = useCreateGitCredentialMutation();\n  const { user } = useCurrentUser();\n\n  return {\n    saveCredentials: saveCredentialsIfRequired,\n    isLoading: saveCredentialsMutation.isLoading,\n  };\n\n  async function saveCredentialsIfRequired(authentication?: GitAuthModel) {\n    if (!authentication) {\n      return undefined;\n    }\n\n    if (\n      !authentication.SaveCredential ||\n      !authentication.RepositoryPassword ||\n      !authentication.NewCredentialName\n    ) {\n      return authentication.RepositoryGitCredentialID;\n    }\n\n    try {\n      const credential = await saveCredentialsMutation.mutateAsync({\n        userId: user.Id,\n        username: authentication.RepositoryUsername,\n        password: authentication.RepositoryPassword,\n        name: authentication.NewCredentialName,\n      });\n      return credential.id;\n    } catch (err) {\n      notifyError('Error', err as Error, 'Unable to save credentials');\n      return undefined;\n    }\n  }\n}\n\nexport async function saveGitCredentialsIfNeeded(\n  userId: UserId,\n  gitModel: GitFormModel\n) {\n  let credentialsId = gitModel.RepositoryGitCredentialID;\n  let username = gitModel.RepositoryUsername;\n  let password = gitModel.RepositoryPassword;\n  if (\n    gitModel.SaveCredential &&\n    gitModel.RepositoryAuthentication &&\n    password &&\n    username &&\n    gitModel.NewCredentialName\n  ) {\n    const cred = await createGitCredential({\n      name: gitModel.NewCredentialName,\n      password,\n      username,\n      userId,\n    });\n    credentialsId = cred.id;\n  }\n\n  // clear username and password if credentials are provided\n  if (credentialsId && username) {\n    username = '';\n    password = '';\n  }\n\n  return {\n    ...gitModel,\n    RepositoryGitCredentialID: credentialsId,\n    RepositoryUsername: username,\n    RepositoryPassword: password,\n  };\n}\n","import _ from 'lodash';\nimport { useCallback } from 'react';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\n\nexport function useValidateEnvironmentTypes(groupIds: Array<EdgeGroup['Id']>) {\n  const edgeGroupsQuery = useEdgeGroups();\n\n  const edgeGroups = edgeGroupsQuery.data || [];\n\n  const modelEdgeGroups = _.compact(\n    groupIds.map((id) => edgeGroups.find((e) => e.Id === id))\n  );\n  const endpointTypes = modelEdgeGroups.flatMap((group) => group.EndpointTypes);\n\n  const hasType = useCallback(\n    (type: EnvironmentType) => endpointTypes.includes(type),\n    [endpointTypes]\n  );\n\n  return {\n    hasType,\n  };\n}\n","import { useMutation } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { mutationOptions, withError } from '@/react-tools/react-query';\nimport {\n  AutoUpdateResponse,\n  GitAuthenticationResponse,\n} from '@/react/portainer/gitops/types';\nimport { buildUrl } from '@/react/edge/edge-stacks/queries/buildUrl';\nimport { DeploymentType, EdgeStack } from '@/react/edge/edge-stacks/types';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\nimport { Registry } from '@/react/portainer/registries/types';\n\nexport interface UpdateEdgeStackGitPayload {\n  id: EdgeStack['Id'];\n  autoUpdate: AutoUpdateResponse | null;\n  refName: string;\n  authentication: GitAuthenticationResponse | null;\n  groupIds: EdgeGroup['Id'][];\n  deploymentType: DeploymentType;\n  updateVersion: boolean;\n  registries?: Array<Registry['Id']>;\n}\n\nexport function useUpdateEdgeStackGitMutation() {\n  return useMutation(\n    updateEdgeStackGit,\n    mutationOptions(withError('Failed updating stack'))\n  );\n}\n\nasync function updateEdgeStackGit({\n  id,\n  ...payload\n}: UpdateEdgeStackGitPayload) {\n  try {\n    await axios.put(buildUrl(id, 'git'), payload);\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Failed updating stack');\n  }\n}\n","import { Form, Formik, useFormikContext } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { AuthFieldset } from '@/react/portainer/gitops/AuthFieldset';\nimport { AutoUpdateFieldset } from '@/react/portainer/gitops/AutoUpdateFieldset';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport {\n  parseAutoUpdateResponse,\n  transformAutoUpdateViewModel,\n} from '@/react/portainer/gitops/AutoUpdateFieldset/utils';\nimport { InfoPanel } from '@/react/portainer/gitops/InfoPanel';\nimport { RefField } from '@/react/portainer/gitops/RefField';\nimport {\n  AutoUpdateModel,\n  GitAuthModel,\n  RelativePathModel,\n} from '@/react/portainer/gitops/types';\nimport {\n  baseEdgeStackWebhookUrl,\n  createWebhookId,\n} from '@/portainer/helpers/webhookHelper';\nimport {\n  parseAuthResponse,\n  transformGitAuthenticationViewModel,\n} from '@/react/portainer/gitops/AuthFieldset/utils';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\nimport { DeploymentType, EdgeStack } from '@/react/edge/edge-stacks/types';\nimport { EdgeGroupsSelector } from '@/react/edge/edge-stacks/components/EdgeGroupsSelector';\nimport { EdgeStackDeploymentTypeSelector } from '@/react/edge/edge-stacks/components/EdgeStackDeploymentTypeSelector';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport { Registry } from '@/react/portainer/registries/types';\nimport { useRegistries } from '@/react/portainer/registries/queries/useRegistries';\nimport { RelativePathFieldset } from '@/react/portainer/gitops/RelativePathFieldset/RelativePathFieldset';\nimport { parseRelativePathResponse } from '@/react/portainer/gitops/RelativePathFieldset/utils';\nimport { useSaveCredentialsIfRequired } from '@/react/portainer/account/git-credentials/queries/useCreateGitCredentialsMutation';\n\nimport { LoadingButton } from '@@/buttons';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormError } from '@@/form-components/FormError';\nimport { EnvironmentVariablesPanel } from '@@/form-components/EnvironmentVariablesFieldset';\nimport { EnvVar } from '@@/form-components/EnvironmentVariablesFieldset/types';\n\nimport { useValidateEnvironmentTypes } from '../useEdgeGroupHasType';\nimport { PrivateRegistryFieldset } from '../../../components/PrivateRegistryFieldset';\n\nimport {\n  UpdateEdgeStackGitPayload,\n  useUpdateEdgeStackGitMutation,\n} from './useUpdateEdgeStackGitMutation';\n\ninterface FormValues {\n  groupIds: EdgeGroup['Id'][];\n  deploymentType: DeploymentType;\n  autoUpdate: AutoUpdateModel;\n  refName: string;\n  authentication: GitAuthModel;\n  envVars: EnvVar[];\n  privateRegistryId?: Registry['Id'];\n  relativePath: RelativePathModel;\n}\n\nexport function GitForm({ stack }: { stack: EdgeStack }) {\n  const router = useRouter();\n  const updateStackMutation = useUpdateEdgeStackGitMutation();\n  const { saveCredentials, isLoading: isSaveCredentialsLoading } =\n    useSaveCredentialsIfRequired();\n\n  if (!stack.GitConfig) {\n    return null;\n  }\n\n  const gitConfig = stack.GitConfig;\n\n  const initialValues: FormValues = {\n    groupIds: stack.EdgeGroups,\n    deploymentType: stack.DeploymentType,\n    autoUpdate: parseAutoUpdateResponse(stack.AutoUpdate),\n    refName: stack.GitConfig.ReferenceName,\n    authentication: parseAuthResponse(stack.GitConfig.Authentication),\n    relativePath: parseRelativePathResponse(stack),\n    envVars: stack.EnvVars || [],\n  };\n\n  const webhookId = stack.AutoUpdate?.Webhook || createWebhookId();\n\n  return (\n    <Formik initialValues={initialValues} onSubmit={handleSubmit}>\n      {({ values, isValid }) => {\n        return (\n          <InnerForm\n            webhookId={webhookId}\n            onUpdateSettingsClick={handleUpdateSettings}\n            gitPath={gitConfig.ConfigFilePath}\n            gitUrl={gitConfig.URL}\n            isLoading={\n              updateStackMutation.isLoading || isSaveCredentialsLoading\n            }\n            isUpdateVersion={!!updateStackMutation.variables?.updateVersion}\n          />\n        );\n\n        async function handleUpdateSettings() {\n          if (!isValid) {\n            return;\n          }\n\n          const credentialId = await saveCredentials(values.authentication);\n\n          updateStackMutation.mutate(getPayload(values, credentialId, false), {\n            onSuccess() {\n              notifySuccess('Success', 'Stack updated successfully');\n              router.stateService.reload();\n            },\n          });\n        }\n      }}\n    </Formik>\n  );\n\n  async function handleSubmit(values: FormValues) {\n    const credentialId = await saveCredentials(values.authentication);\n\n    updateStackMutation.mutate(getPayload(values, credentialId, true), {\n      onSuccess() {\n        notifySuccess('Success', 'Stack updated successfully');\n        router.stateService.reload();\n      },\n    });\n  }\n\n  function getPayload(\n    { authentication, autoUpdate, privateRegistryId, ...values }: FormValues,\n    credentialId: number | undefined,\n    updateVersion: boolean\n  ): UpdateEdgeStackGitPayload {\n    return {\n      updateVersion,\n      id: stack.Id,\n      authentication: transformGitAuthenticationViewModel({\n        ...authentication,\n        RepositoryGitCredentialID: credentialId,\n      }),\n      autoUpdate: transformAutoUpdateViewModel(autoUpdate, webhookId),\n      registries:\n        typeof privateRegistryId !== 'undefined'\n          ? [privateRegistryId]\n          : undefined,\n      ...values,\n    };\n  }\n}\n\nfunction InnerForm({\n  gitUrl,\n  gitPath,\n  isLoading,\n  isUpdateVersion,\n  onUpdateSettingsClick,\n  webhookId,\n}: {\n  gitUrl: string;\n  gitPath: string;\n\n  isLoading: boolean;\n  isUpdateVersion: boolean;\n  onUpdateSettingsClick(): void;\n  webhookId: string;\n}) {\n  const registriesQuery = useRegistries();\n  const { values, setFieldValue, isValid, handleSubmit, errors, dirty } =\n    useFormikContext<FormValues>();\n\n  const { hasType } = useValidateEnvironmentTypes(values.groupIds);\n\n  const hasKubeEndpoint = hasType(EnvironmentType.EdgeAgentOnKubernetes);\n  const hasDockerEndpoint = hasType(EnvironmentType.EdgeAgentOnDocker);\n\n  return (\n    <Form className=\"form-horizontal\" onSubmit={handleSubmit}>\n      <EdgeGroupsSelector\n        value={values.groupIds}\n        onChange={(value) => setFieldValue('groupIds', value)}\n        error={errors.groupIds}\n      />\n\n      {hasKubeEndpoint && hasDockerEndpoint && (\n        <TextTip>\n          There are no available deployment types when there is more than one\n          type of environment in your edge group selection (e.g. Kubernetes and\n          Docker environments). Please select edge groups that have environments\n          of the same type.\n        </TextTip>\n      )}\n\n      {values.deploymentType === DeploymentType.Compose && hasKubeEndpoint && (\n        <FormError>\n          Edge groups with kubernetes environments no longer support compose\n          deployment types in Portainer. Please select edge groups that only\n          have docker environments when using compose deployment types.\n        </FormError>\n      )}\n      <EdgeStackDeploymentTypeSelector\n        value={values.deploymentType}\n        hasDockerEndpoint={hasType(EnvironmentType.EdgeAgentOnDocker)}\n        hasKubeEndpoint={hasType(EnvironmentType.EdgeAgentOnKubernetes)}\n        onChange={(value) => {\n          setFieldValue('deploymentType', value);\n        }}\n      />\n\n      <FormSection title=\"Update from git repository\">\n        <InfoPanel\n          className=\"text-muted small\"\n          url={gitUrl}\n          type=\"Edge stack\"\n          configFilePath={gitPath}\n        />\n\n        <AutoUpdateFieldset\n          webhookId={webhookId}\n          value={values.autoUpdate}\n          onChange={(value) =>\n            setFieldValue('autoUpdate', {\n              ...values.autoUpdate,\n              ...value,\n            })\n          }\n          baseWebhookUrl={baseEdgeStackWebhookUrl()}\n          errors={errors.autoUpdate}\n        />\n      </FormSection>\n\n      <FormSection title=\"Advanced configuration\" isFoldable>\n        <RefField\n          value={values.refName}\n          onChange={(value) => setFieldValue('refName', value)}\n          model={{ ...values.authentication, RepositoryURL: gitUrl }}\n          error={errors.refName}\n          isUrlValid\n        />\n\n        <AuthFieldset\n          value={values.authentication}\n          isAuthExplanationVisible\n          onChange={(value) =>\n            Object.entries(value).forEach(([key, value]) => {\n              setFieldValue(`authentication.${key}`, value);\n            })\n          }\n          errors={errors.authentication}\n        />\n\n        {isBE && <RelativePathFieldset value={values.relativePath} isEditing />}\n\n        <EnvironmentVariablesPanel\n          onChange={(value) => setFieldValue('envVars', value)}\n          values={values.envVars}\n          errors={errors.envVars}\n        />\n      </FormSection>\n\n      <PrivateRegistryFieldset\n        value={values.privateRegistryId}\n        onSelect={(value) => setFieldValue('privateRegistryId', value)}\n        registries={registriesQuery.data ?? []}\n        formInvalid={!isValid}\n        method=\"repository\"\n        errorMessage={errors.privateRegistryId}\n      />\n\n      <FormSection title=\"Actions\">\n        <LoadingButton\n          disabled={dirty || !isValid || isLoading}\n          isLoading={isUpdateVersion && isLoading}\n          loadingText=\"updating stack...\"\n        >\n          Pull and update stack\n        </LoadingButton>\n\n        <LoadingButton\n          type=\"button\"\n          disabled={!dirty || !isValid || isLoading}\n          isLoading={!isUpdateVersion && isLoading}\n          loadingText=\"updating settings...\"\n          onClick={onUpdateSettingsClick}\n        >\n          Update settings\n        </LoadingButton>\n      </FormSection>\n    </Form>\n  );\n}\n","import { Form, Formik, useFormikContext } from 'formik';\nimport { useState } from 'react';\nimport { array, boolean, number, object, SchemaOf, string } from 'yup';\n\nimport { EdgeGroupsSelector } from '@/react/edge/edge-stacks/components/EdgeGroupsSelector';\nimport { EdgeStackDeploymentTypeSelector } from '@/react/edge/edge-stacks/components/EdgeStackDeploymentTypeSelector';\nimport { DeploymentType, EdgeStack } from '@/react/edge/edge-stacks/types';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport { WebhookSettings } from '@/react/portainer/gitops/AutoUpdateFieldset/WebhookSettings';\nimport { baseEdgeStackWebhookUrl } from '@/portainer/helpers/webhookHelper';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { LoadingButton } from '@@/buttons';\nimport { FormError } from '@@/form-components/FormError';\nimport {\n  EnvironmentVariablesPanel,\n  envVarValidation,\n} from '@@/form-components/EnvironmentVariablesFieldset';\n\nimport { PrePullToggle } from '../../components/PrePullToggle';\nimport { RetryDeployToggle } from '../../components/RetryDeployToggle';\n\nimport { PrivateRegistryFieldsetWrapper } from './PrivateRegistryFieldsetWrapper';\nimport { FormValues } from './types';\nimport { ComposeForm } from './ComposeForm';\nimport { KubernetesForm } from './KubernetesForm';\nimport { GitForm } from './GitForm';\nimport { useValidateEnvironmentTypes } from './useEdgeGroupHasType';\n\ninterface Props {\n  edgeStack: EdgeStack;\n  isSubmitting: boolean;\n  onSubmit: (values: FormValues) => void;\n  onEditorChange: (content: string) => void;\n  fileContent: string;\n  allowKubeToSelectCompose: boolean;\n}\n\nconst forms = {\n  [DeploymentType.Compose]: ComposeForm,\n  [DeploymentType.Kubernetes]: KubernetesForm,\n};\n\nexport function EditEdgeStackForm({\n  isSubmitting,\n  edgeStack,\n  onSubmit,\n  onEditorChange,\n  fileContent,\n  allowKubeToSelectCompose,\n}: Props) {\n  if (edgeStack.GitConfig) {\n    return <GitForm stack={edgeStack} />;\n  }\n\n  const formValues: FormValues = {\n    edgeGroups: edgeStack.EdgeGroups,\n    deploymentType: edgeStack.DeploymentType,\n    privateRegistryId: edgeStack.Registries?.[0],\n    content: fileContent,\n    useManifestNamespaces: edgeStack.UseManifestNamespaces,\n    prePullImage: edgeStack.PrePullImage,\n    retryDeploy: edgeStack.RetryDeploy,\n    webhookEnabled: !!edgeStack.Webhook,\n    envVars: edgeStack.EnvVars || [],\n  };\n\n  return (\n    <Formik\n      initialValues={formValues}\n      onSubmit={onSubmit}\n      validationSchema={formValidation()}\n    >\n      <InnerForm\n        edgeStack={edgeStack}\n        isSubmitting={isSubmitting}\n        onEditorChange={onEditorChange}\n        allowKubeToSelectCompose={allowKubeToSelectCompose}\n      />\n    </Formik>\n  );\n}\n\nfunction InnerForm({\n  onEditorChange,\n  edgeStack,\n  isSubmitting,\n  allowKubeToSelectCompose,\n}: {\n  edgeStack: EdgeStack;\n  isSubmitting: boolean;\n  onEditorChange: (content: string) => void;\n  allowKubeToSelectCompose: boolean;\n}) {\n  const {\n    values,\n    setFieldValue,\n    isValid,\n\n    errors,\n    setFieldError,\n  } = useFormikContext<FormValues>();\n  const { getCachedContent, setContentCache } = useCachedContent();\n  const { hasType } = useValidateEnvironmentTypes(values.edgeGroups);\n\n  const hasKubeEndpoint = hasType(EnvironmentType.EdgeAgentOnKubernetes);\n  const hasDockerEndpoint = hasType(EnvironmentType.EdgeAgentOnDocker);\n\n  const DeploymentForm = forms[values.deploymentType];\n\n  return (\n    <Form className=\"form-horizontal\">\n      <EdgeGroupsSelector\n        value={values.edgeGroups}\n        onChange={(value) => setFieldValue('edgeGroups', value)}\n        error={errors.edgeGroups}\n      />\n\n      {hasKubeEndpoint && hasDockerEndpoint && (\n        <TextTip>\n          There are no available deployment types when there is more than one\n          type of environment in your edge group selection (e.g. Kubernetes and\n          Docker environments). Please select edge groups that have environments\n          of the same type.\n        </TextTip>\n      )}\n\n      {values.deploymentType === DeploymentType.Compose && hasKubeEndpoint && (\n        <FormError>\n          Edge groups with kubernetes environments no longer support compose\n          deployment types in Portainer. Please select edge groups that only\n          have docker environments when using compose deployment types.\n        </FormError>\n      )}\n\n      <EdgeStackDeploymentTypeSelector\n        allowKubeToSelectCompose={allowKubeToSelectCompose}\n        value={values.deploymentType}\n        hasDockerEndpoint={hasType(EnvironmentType.EdgeAgentOnDocker)}\n        hasKubeEndpoint={hasType(EnvironmentType.EdgeAgentOnKubernetes)}\n        onChange={(value) => {\n          setFieldValue('content', getCachedContent(value));\n          setFieldValue('deploymentType', value);\n        }}\n      />\n\n      <DeploymentForm\n        hasKubeEndpoint={hasType(EnvironmentType.EdgeAgentOnKubernetes)}\n        handleContentChange={handleContentChange}\n      />\n\n      {isBE && (\n        <>\n          <FormSection title=\"Webhooks\">\n            <div className=\"form-group\">\n              <div className=\"col-sm-12\">\n                <SwitchField\n                  label=\"Create an Edge stack webhook\"\n                  checked={values.webhookEnabled}\n                  labelClass=\"col-sm-3 col-lg-2\"\n                  onChange={(value) => setFieldValue('webhookEnabled', value)}\n                  tooltip=\"Create a webhook (or callback URI) to automate the update of this stack. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this stack.\"\n                />\n              </div>\n            </div>\n\n            {edgeStack.Webhook && (\n              <WebhookSettings\n                baseUrl={baseEdgeStackWebhookUrl()}\n                value={edgeStack.Webhook}\n                docsLink=\"todo\"\n              />\n            )}\n          </FormSection>\n          <PrivateRegistryFieldsetWrapper\n            value={values.privateRegistryId}\n            onChange={(value) => setFieldValue('privateRegistryId', value)}\n            values={{\n              fileContent: values.content,\n            }}\n            onFieldError={(error) => setFieldError('privateRegistryId', error)}\n            error={errors.privateRegistryId}\n          />\n\n          {values.deploymentType === DeploymentType.Compose && (\n            <>\n              <EnvironmentVariablesPanel\n                onChange={(value) => setFieldValue('envVars', value)}\n                values={values.envVars}\n                errors={errors.envVars}\n              />\n\n              <PrePullToggle\n                onChange={(value) => setFieldValue('prePullImage', value)}\n                value={values.prePullImage}\n              />\n\n              <RetryDeployToggle\n                onChange={(value) => setFieldValue('retryDeploy', value)}\n                value={values.retryDeploy}\n              />\n            </>\n          )}\n        </>\n      )}\n\n      <FormSection title=\"Actions\">\n        <div className=\"form-group\">\n          <div className=\"col-sm-12\">\n            <LoadingButton\n              className=\"!ml-0\"\n              size=\"small\"\n              disabled={!isValid}\n              isLoading={isSubmitting}\n              button-spinner=\"$ctrl.actionInProgress\"\n              loadingText=\"Update in progress...\"\n            >\n              Update the stack\n            </LoadingButton>\n          </div>\n        </div>\n      </FormSection>\n    </Form>\n  );\n\n  function handleContentChange(type: DeploymentType, content: string) {\n    setFieldValue('content', content);\n    setContentCache(type, content);\n    onEditorChange(content);\n  }\n}\n\nfunction useCachedContent() {\n  const [cachedContent, setCachedContent] = useState({\n    [DeploymentType.Compose]: '',\n    [DeploymentType.Kubernetes]: '',\n  });\n\n  function handleChangeContent(type: DeploymentType, content: string) {\n    setCachedContent((cache) => ({ ...cache, [type]: content }));\n  }\n\n  return {\n    setContentCache: handleChangeContent,\n    getCachedContent: (type: DeploymentType) => cachedContent[type],\n  };\n}\n\nfunction formValidation(): SchemaOf<FormValues> {\n  return object({\n    content: string().required('Content is required'),\n    deploymentType: number()\n      .oneOf([0, 1, 2])\n      .required('Deployment type is required'),\n    privateRegistryId: number().optional(),\n    prePullImage: boolean().default(false),\n    retryDeploy: boolean().default(false),\n    useManifestNamespaces: boolean().default(false),\n    edgeGroups: array()\n      .of(number().required())\n      .required()\n      .min(1, 'At least one edge group is required'),\n    webhookEnabled: boolean().default(false),\n    envVars: envVarValidation(),\n  });\n}\n","import { useFormikContext } from 'formik';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { WebEditorForm } from '@@/WebEditorForm';\n\nimport { DeploymentType } from '../../types';\n\nimport { FormValues } from './types';\n\nexport function ComposeForm({\n  handleContentChange,\n  hasKubeEndpoint,\n}: {\n  hasKubeEndpoint: boolean;\n  handleContentChange: (type: DeploymentType, content: string) => void;\n}) {\n  const { errors, values } = useFormikContext<FormValues>();\n\n  return (\n    <>\n      {hasKubeEndpoint && (\n        <TextTip>\n          <p>\n            Portainer no longer supports{' '}\n            <a\n              href=\"https://docs.docker.com/compose/compose-file/\"\n              target=\"_blank\"\n              rel=\"noreferrer\"\n            >\n              docker-compose\n            </a>{' '}\n            format manifests for Kubernetes deployments, and we have removed the{' '}\n            <a href=\"https://kompose.io/\" target=\"_blank\" rel=\"noreferrer\">\n              Kompose\n            </a>{' '}\n            conversion tool which enables this. The reason for this is because\n            Kompose now poses a security risk, since it has a number of Common\n            Vulnerabilities and Exposures (CVEs).\n          </p>\n          <p>\n            Unfortunately, while the Kompose project has a maintainer and is\n            part of the CNCF, it is not being actively maintained. Releases are\n            very infrequent and new pull requests to the project (including ones\n            we&apos;ve submitted) are taking months to be merged, with new CVEs\n            arising in the meantime.\n          </p>\n          <p>\n            We advise installing your own instance of Kompose in a sandbox\n            environment, performing conversions of your Docker Compose files to\n            Kubernetes manifests and using those manifests to set up\n            applications.\n          </p>\n        </TextTip>\n      )}\n\n      <WebEditorForm\n        value={values.content}\n        yaml\n        id=\"compose-editor\"\n        placeholder=\"Define or paste the content of your docker compose file here\"\n        onChange={(value) => handleContentChange(DeploymentType.Compose, value)}\n        error={errors.content}\n        readonly={hasKubeEndpoint}\n      >\n        <div>\n          You can get more information about Compose file format in the{' '}\n          <a\n            href=\"https://docs.docker.com/compose/compose-file/\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            official documentation\n          </a>\n          .\n        </div>\n      </WebEditorForm>\n    </>\n  );\n}\n","import { useFormikContext } from 'formik';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { WebEditorForm } from '@@/WebEditorForm';\n\nimport { DeploymentType } from '../../types';\n\nimport { FormValues } from './types';\n\nexport function KubernetesForm({\n  handleContentChange,\n}: {\n  handleContentChange: (type: DeploymentType, content: string) => void;\n}) {\n  const { errors, values, setFieldValue } = useFormikContext<FormValues>();\n\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"Use namespace(s) specified from manifest\"\n            tooltip=\"If you have defined namespaces in your deployment file turning this on will enforce the use of those only in the deployment\"\n            checked={values.useManifestNamespaces}\n            onChange={(value) => setFieldValue('useManifestNamespaces', value)}\n          />\n        </div>\n      </div>\n\n      <WebEditorForm\n        value={values.content}\n        yaml\n        id=\"kube-manifest-editor\"\n        placeholder=\"Define or paste the content of your manifest here\"\n        onChange={(value) =>\n          handleContentChange(DeploymentType.Kubernetes, value)\n        }\n        error={errors.content}\n      >\n        <p>\n          You can get more information about Kubernetes file format in the{' '}\n          <a\n            href=\"https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            official documentation\n          </a>\n          .\n        </p>\n      </WebEditorForm>\n    </>\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\nimport { truncate } from 'lodash';\nimport { useMemo, useState } from 'react';\n\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { useGroups } from '@/react/portainer/environments/environment-groups/queries';\nimport { useTags } from '@/portainer/tags/queries';\nimport { EnvironmentsQueryParams } from '@/react/portainer/environments/environment.service';\nimport { AutomationTestingProps } from '@/types';\n\nimport { useTableStateWithoutStorage } from '@@/datatables/useTableState';\nimport { Datatable, TableRow } from '@@/datatables';\n\ntype DecoratedEnvironment = Environment & {\n  Tags: string[];\n  Group: string;\n};\n\nconst columHelper = createColumnHelper<DecoratedEnvironment>();\n\nconst columns = [\n  columHelper.accessor('Name', {\n    header: 'Name',\n    id: 'Name',\n    cell: ({ getValue }) => truncate(getValue(), { length: 64 }),\n  }),\n  columHelper.accessor('Group', {\n    header: 'Group',\n    id: 'Group',\n    cell: ({ getValue }) => truncate(getValue(), { length: 64 }),\n  }),\n  columHelper.accessor((row) => row.Tags.join(','), {\n    header: 'Tags',\n    id: 'tags',\n    enableSorting: false,\n    cell: ({ getValue }) => truncate(getValue(), { length: 64 }),\n  }),\n];\n\nexport function EdgeGroupAssociationTable({\n  title,\n  query,\n  emptyContentLabel,\n  onClickRow,\n  'data-cy': dataCy,\n}: {\n  title: string;\n  query: EnvironmentsQueryParams;\n  emptyContentLabel: string;\n  onClickRow: (env: Environment) => void;\n} & AutomationTestingProps) {\n  const tableState = useTableStateWithoutStorage('Name');\n  const [page, setPage] = useState(0);\n  const environmentsQuery = useEnvironmentList({\n    pageLimit: tableState.pageSize,\n    page: page + 1,\n    search: tableState.search,\n    sort: tableState.sortBy?.id as 'Group' | 'Name',\n    order: tableState.sortBy?.desc ? 'desc' : 'asc',\n    ...query,\n  });\n  const groupsQuery = useGroups({\n    enabled: environmentsQuery.environments.length > 0,\n  });\n  const tagsQuery = useTags({\n    enabled: environmentsQuery.environments.length > 0,\n  });\n\n  const environments: Array<DecoratedEnvironment> = useMemo(\n    () =>\n      environmentsQuery.environments.map((env) => ({\n        ...env,\n        Group: groupsQuery.data?.find((g) => g.Id === env.GroupId)?.Name || '',\n        Tags: env.TagIds.map(\n          (tagId) => tagsQuery.data?.find((t) => t.ID === tagId)?.Name || ''\n        ),\n      })),\n    [environmentsQuery.environments, groupsQuery.data, tagsQuery.data]\n  );\n\n  const { totalCount } = environmentsQuery;\n\n  return (\n    <Datatable<DecoratedEnvironment>\n      title={title}\n      columns={columns}\n      settingsManager={tableState}\n      dataset={environments}\n      isServerSidePagination\n      page={page}\n      onPageChange={setPage}\n      totalCount={totalCount}\n      renderRow={(row) => (\n        <TableRow<DecoratedEnvironment>\n          cells={row.getVisibleCells()}\n          onClick={() => onClickRow(row.original)}\n        />\n      )}\n      emptyContentLabel={emptyContentLabel}\n      data-cy={dataCy}\n      disableSelect\n    />\n  );\n}\n","import { EdgeStack } from '../types';\n\nexport const queryKeys = {\n  base: () => ['edge-stacks'] as const,\n  item: (id: EdgeStack['Id']) => [...queryKeys.base(), id] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeStack } from '../types';\n\nimport { buildUrl } from './buildUrl';\nimport { queryKeys } from './query-keys';\n\nexport function useEdgeStack(\n  id?: EdgeStack['Id'],\n  {\n    refetchInterval,\n  }: {\n    /**\n     * If set to a number, the query will continuously refetch at this frequency in milliseconds. If set to a function, the function will be executed with the latest data and query to compute a frequency Defaults to false.\n     */\n    refetchInterval?:\n      | number\n      | false\n      | ((data?: Awaited<ReturnType<typeof getEdgeStack>>) => false | number);\n  } = {}\n) {\n  return useQuery(id ? queryKeys.item(id) : [], () => getEdgeStack(id), {\n    ...withError('Failed loading Edge stack'),\n    enabled: !!id,\n    refetchInterval,\n  });\n}\n\nexport async function getEdgeStack(id?: EdgeStack['Id']) {\n  if (!id) {\n    return null;\n  }\n\n  try {\n    const { data } = await axios.get<EdgeStack>(buildUrl(id));\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n","function cleanGitRepoUrl(url: string) {\n  return url\n    .trim() // remove leading and trailing whitespace\n    .replace(/\\/$/, '') // if there's a trailing slash, remove it\n    .replace(/\\.git$/, ''); // if there's a trailing .git extension, remove it\n}\n\nfunction getGitRepoCommitUrl(url: string, hash: string) {\n  const cleanedUrl = cleanGitRepoUrl(url);\n\n  if (cleanedUrl.startsWith('https://bitbucket.org')) {\n    return `${cleanedUrl}/commits/${hash}`;\n  }\n\n  // this is a fallback for any other git repo\n  // the tested repo includes gitlab, github, and azure devops\n  return `${cleanedUrl}/commit/${hash}`;\n}\n\ninterface Props {\n  baseURL: string;\n  commitHash: string;\n}\n\nexport function GitCommitLink({ baseURL, commitHash }: Props) {\n  return (\n    <a\n      href={getGitRepoCommitUrl(baseURL, commitHash)}\n      target=\"_blank\"\n      rel=\"noopener noreferrer\"\n    >\n      {commitHash.slice(0, 7)}\n    </a>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EdgeStack } from '@/react/edge/edge-stacks/types';\n\nimport { queryKeys } from '../../queries/query-keys';\n\nexport function logsStatusQueryKey(\n  edgeStackId: EdgeStack['Id'],\n  environmentId: EnvironmentId\n) {\n  return [...queryKeys.item(edgeStackId), 'logs', environmentId] as const;\n}\n\nexport function useLogsStatus(\n  edgeStackId: EdgeStack['Id'],\n  environmentId: EnvironmentId\n) {\n  return useQuery(\n    logsStatusQueryKey(edgeStackId, environmentId),\n    () => getLogsStatus(edgeStackId, environmentId),\n    {\n      refetchInterval(status) {\n        if (status === 'pending') {\n          return 30 * 1000;\n        }\n\n        return false;\n      },\n    }\n  );\n}\n\ninterface LogsStatusResponse {\n  status: 'collected' | 'idle' | 'pending';\n}\n\nasync function getLogsStatus(\n  edgeStackId: EdgeStack['Id'],\n  environmentId: EnvironmentId\n) {\n  try {\n    const { data } = await axios.get<LogsStatusResponse>(\n      `/edge_stacks/${edgeStackId}/logs/${environmentId}`\n    );\n    return data.status;\n  } catch (error) {\n    throw parseAxiosError(error as Error, 'Unable to retrieve logs status');\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { EdgeStack } from '../../types';\n\nimport { logsStatusQueryKey } from './useLogsStatus';\n\nexport function useCollectLogsMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(collectLogs, {\n    onSuccess(data, variables) {\n      return queryClient.invalidateQueries(\n        logsStatusQueryKey(variables.edgeStackId, variables.environmentId)\n      );\n    },\n    ...withError('Unable to retrieve logs'),\n  });\n}\n\ninterface CollectLogs {\n  edgeStackId: EdgeStack['Id'];\n  environmentId: EnvironmentId;\n}\n\nasync function collectLogs({ edgeStackId, environmentId }: CollectLogs) {\n  try {\n    await axios.put(`/edge_stacks/${edgeStackId}/logs/${environmentId}`);\n  } catch (error) {\n    throw parseAxiosError(error as Error, 'Unable to start logs collection');\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { EdgeStack } from '../../types';\n\nimport { logsStatusQueryKey } from './useLogsStatus';\n\nexport function useDeleteLogsMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(deleteLogs, {\n    onSuccess(data, variables) {\n      return queryClient.invalidateQueries(\n        logsStatusQueryKey(variables.edgeStackId, variables.environmentId)\n      );\n    },\n    ...withError('Unable to delete logs'),\n  });\n}\n\ninterface DeleteLogs {\n  edgeStackId: EdgeStack['Id'];\n  environmentId: EnvironmentId;\n}\n\nasync function deleteLogs({ edgeStackId, environmentId }: DeleteLogs) {\n  try {\n    await axios.delete(`/edge_stacks/${edgeStackId}/logs/${environmentId}`, {\n      responseType: 'blob',\n      headers: {\n        Accept: 'text/yaml',\n      },\n    });\n  } catch (e) {\n    throw parseAxiosError(e as Error, '');\n  }\n}\n","import { saveAs } from 'file-saver';\nimport { useMutation } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { mutationOptions, withError } from '@/react-tools/react-query';\n\nimport { EdgeStack } from '../../types';\n\nexport function useDownloadLogsMutation() {\n  return useMutation(\n    downloadLogs,\n    mutationOptions(withError('Unable to download logs'))\n  );\n}\n\ninterface DownloadLogs {\n  edgeStackId: EdgeStack['Id'];\n  environmentId: EnvironmentId;\n}\n\nasync function downloadLogs({ edgeStackId, environmentId }: DownloadLogs) {\n  try {\n    const { headers, data } = await axios.get<Blob>(\n      `/edge_stacks/${edgeStackId}/logs/${environmentId}/file`,\n      {\n        responseType: 'blob',\n        headers: {\n          Accept: 'text/yaml',\n        },\n      }\n    );\n    const contentDispositionHeader = headers['content-disposition'];\n    const filename = contentDispositionHeader\n      .replace('attachment; filename=', '')\n      .trim();\n    saveAs(data, filename);\n  } catch (e) {\n    throw parseAxiosError(e as Error, '');\n  }\n}\n","import clsx from 'clsx';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\n\nimport { EdgeStack } from '../../types';\n\nimport { useCollectLogsMutation } from './useCollectLogsMutation';\nimport { useDeleteLogsMutation } from './useDeleteLogsMutation';\nimport { useDownloadLogsMutation } from './useDownloadLogsMutation';\nimport { useLogsStatus } from './useLogsStatus';\n\ninterface Props {\n  environmentId: EnvironmentId;\n  edgeStackId: EdgeStack['Id'];\n}\n\nexport function LogsActions({ environmentId, edgeStackId }: Props) {\n  const logsStatusQuery = useLogsStatus(edgeStackId, environmentId);\n  const collectLogsMutation = useCollectLogsMutation();\n  const downloadLogsMutation = useDownloadLogsMutation();\n  const deleteLogsMutation = useDeleteLogsMutation();\n\n  if (!logsStatusQuery.isSuccess) {\n    return null;\n  }\n\n  const status = logsStatusQuery.data;\n\n  const collecting = collectLogsMutation.isLoading || status === 'pending';\n\n  return (\n    <>\n      <Button\n        className=\"p-0\"\n        color=\"link\"\n        title=\"Retrieve logs\"\n        onClick={handleCollectLogs}\n      >\n        <Icon\n          icon={clsx({\n            'file-text': !collecting,\n            loader: collecting,\n          })}\n        />\n      </Button>\n      <Button\n        className=\"p-0\"\n        color=\"link\"\n        title=\"Download logs\"\n        disabled={status !== 'collected'}\n        onClick={handleDownloadLogs}\n      >\n        <Icon\n          icon={clsx({\n            'download-cloud': !downloadLogsMutation.isLoading,\n            loader: downloadLogsMutation.isLoading,\n          })}\n        />\n      </Button>\n      <Button\n        className=\"p-0\"\n        color=\"link\"\n        title=\"Delete logs\"\n        disabled={status !== 'collected'}\n        onClick={handleDeleteLogs}\n      >\n        <Icon\n          icon={clsx({\n            delete: !deleteLogsMutation.isLoading,\n            loader: deleteLogsMutation.isLoading,\n          })}\n        />\n      </Button>\n    </>\n  );\n\n  function handleCollectLogs() {\n    if (status === 'pending') {\n      return;\n    }\n\n    collectLogsMutation.mutate(\n      {\n        edgeStackId,\n        environmentId,\n      },\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Logs Collection started');\n        },\n      }\n    );\n  }\n\n  function handleDownloadLogs() {\n    downloadLogsMutation.mutate({\n      edgeStackId,\n      environmentId,\n    });\n  }\n\n  function handleDeleteLogs() {\n    deleteLogsMutation.mutate(\n      {\n        edgeStackId,\n        environmentId,\n      },\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Logs Deleted');\n        },\n      }\n    );\n  }\n}\n","import { Search } from 'lucide-react';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { Environment } from '@/react/portainer/environments/types';\n\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { Icon } from '@@/Icon';\n\nimport { LogsActions } from './LogsActions';\n\ninterface Props {\n  environment: Environment;\n}\n\nexport function EnvironmentActions({ environment }: Props) {\n  const {\n    params: { stackId: edgeStackId },\n  } = useCurrentStateAndParams();\n\n  return (\n    <div>\n      {environment.Snapshots.length > 0 && environment.Edge.AsyncMode && (\n        <Link\n          to=\"edge.browse.containers\"\n          params={{ environmentId: environment.Id, edgeStackId }}\n          className=\"hover:!no-underline\"\n        >\n          <Button color=\"none\" title=\"Browse Snapshot\">\n            <Icon icon={Search} className=\"searchIcon\" />\n          </Button>\n        </Link>\n      )}\n      {environment.Edge.AsyncMode && (\n        <LogsActions environmentId={environment.Id} edgeStackId={edgeStackId} />\n      )}\n    </div>\n  );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { useLogsStatus } from './useLogsStatus';\n\ninterface Props {\n  environmentId: EnvironmentId;\n}\n\nexport function ActionStatus({ environmentId }: Props) {\n  const {\n    params: { stackId: edgeStackId },\n  } = useCurrentStateAndParams();\n\n  const logsStatusQuery = useLogsStatus(edgeStackId, environmentId);\n\n  return <>{getStatusText(logsStatusQuery.data)}</>;\n}\n\nfunction getStatusText(status?: 'pending' | 'collected' | 'idle') {\n  switch (status) {\n    case 'collected':\n      return 'Logs available for download';\n    case 'pending':\n      return 'Logs marked for collection, please wait until the logs are available';\n    default:\n      return null;\n  }\n}\n","import { CellContext, createColumnHelper } from '@tanstack/react-table';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useState } from 'react';\nimport _ from 'lodash';\n\nimport UpdatesAvailable from '@/assets/ico/icon_updates-available.svg?c';\nimport UpToDate from '@/assets/ico/icon_up-to-date.svg?c';\nimport { isoDateFromTimestamp } from '@/portainer/filters/filters';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { getDashboardRoute } from '@/react/portainer/environments/utils';\nimport { GitCommitLink } from '@/react/portainer/gitops/GitCommitLink';\n\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\nimport { DeploymentStatus, EdgeStackStatus, StatusType } from '../../types';\n\nimport { EnvironmentActions } from './EnvironmentActions';\nimport { ActionStatus } from './ActionStatus';\nimport { EdgeStackEnvironment } from './types';\n\nconst columnHelper = createColumnHelper<EdgeStackEnvironment>();\n\nexport const columns = _.compact([\n  columnHelper.accessor('Name', {\n    id: 'name',\n    header: 'Name',\n    cell({ row: { original: env } }) {\n      const { to, params } = getDashboardRoute(env);\n      return (\n        <Link to={to} params={params}>\n          {env.Name}\n        </Link>\n      );\n    },\n  }),\n  columnHelper.accessor((env) => endpointStatusLabel(env.StackStatus.Status), {\n    id: 'status',\n    header: 'Status',\n    cell({ row: { original: env } }) {\n      return (\n        <ul className=\"list-none space-y-2\">\n          {env.StackStatus.Status.map((s) => (\n            <li key={`status-${s.Type}-${s.Time}`}>\n              <Status value={s.Type} />\n            </li>\n          ))}\n        </ul>\n      );\n    },\n  }),\n  columnHelper.accessor((env) => _.last(env.StackStatus.Status)?.Time, {\n    id: 'statusDate',\n    header: 'Time',\n    cell({ row: { original: env } }) {\n      return (\n        <ul className=\"list-none space-y-2\">\n          {env.StackStatus.Status.map((s) => (\n            <li key={`time-${s.Type}-${s.Time}`}>\n              {isoDateFromTimestamp(s.Time)}\n            </li>\n          ))}\n        </ul>\n      );\n    },\n  }),\n  ...(isBE\n    ? [\n        columnHelper.accessor((env) => endpointTargetVersionLabel(env), {\n          id: 'targetVersion',\n          header: 'Target version',\n          cell: TargetVersionCell,\n        }),\n        columnHelper.accessor(\n          (env) => endpointDeployedVersionLabel(env.StackStatus),\n          {\n            id: 'deployedVersion',\n            header: 'Deployed version',\n            cell: DeployedVersionCell,\n          }\n        ),\n      ]\n    : []),\n  columnHelper.accessor(\n    (env) =>\n      env.StackStatus.Status.find((s) => s.Type === StatusType.Error)?.Error,\n    {\n      id: 'error',\n      header: 'Error',\n      cell: ErrorCell,\n    }\n  ),\n  ...(isBE\n    ? [\n        columnHelper.display({\n          id: 'actions',\n          header: 'Actions',\n          cell({ row: { original: env } }) {\n            return <EnvironmentActions environment={env} />;\n          },\n        }),\n        columnHelper.display({\n          id: 'actionStatus',\n          header: 'Action Status',\n          cell({ row: { original: env } }) {\n            return <ActionStatus environmentId={env.Id} />;\n          },\n        }),\n      ]\n    : []),\n]);\n\nfunction ErrorCell({ getValue }: CellContext<EdgeStackEnvironment, string>) {\n  const [isExpanded, setIsExpanded] = useState(false);\n\n  const value = getValue();\n  if (!value) {\n    return '-';\n  }\n\n  return (\n    <Button\n      color=\"none\"\n      className=\"flex cursor-pointer\"\n      onClick={() => setIsExpanded(!isExpanded)}\n    >\n      <div className=\"pr-1 pt-0.5\">\n        <Icon icon={isExpanded ? ChevronDown : ChevronRight} />\n      </div>\n      <div\n        className={clsx('overflow-hidden whitespace-normal', {\n          'h-[1.5em]': isExpanded,\n        })}\n      >\n        {value}\n      </div>\n    </Button>\n  );\n}\n\nfunction endpointStatusLabel(statusArray: Array<DeploymentStatus>) {\n  const labels = [];\n\n  statusArray.forEach((status) => {\n    if (status.Type === StatusType.Acknowledged) {\n      labels.push('Acknowledged');\n    }\n    if (status.Type === StatusType.ImagesPulled) {\n      labels.push('Images pre-pulled');\n    }\n    if (status.Type === StatusType.Running) {\n      labels.push('Deployed');\n    }\n    if (status.Type === StatusType.Error) {\n      labels.push('Failed');\n    }\n    if (status.Type === StatusType.PausedDeploying) {\n      labels.push('Paused');\n    }\n    if (status.Type === StatusType.RollingBack) {\n      labels.push('Rolling Back');\n    }\n    if (status.Type === StatusType.RolledBack) {\n      labels.push('Rolled Back');\n    }\n  });\n\n  if (!labels.length) {\n    labels.push('Pending');\n  }\n\n  return _.uniq(labels).join(', ');\n}\n\nfunction TargetVersionCell({\n  row,\n  getValue,\n}: CellContext<EdgeStackEnvironment, string>) {\n  const value = getValue();\n  if (!value) {\n    return '';\n  }\n\n  return (\n    <>\n      {row.original.TargetCommitHash ? (\n        <div>\n          <GitCommitLink\n            baseURL={row.original.GitConfigURL}\n            commitHash={row.original.TargetCommitHash}\n          />\n        </div>\n      ) : (\n        <div>{value}</div>\n      )}\n    </>\n  );\n}\n\nfunction endpointTargetVersionLabel(env: EdgeStackEnvironment) {\n  if (env.TargetCommitHash) {\n    return env.TargetCommitHash.slice(0, 7).toString();\n  }\n  return env.TargetFileVersion.toString() || '';\n}\n\nfunction DeployedVersionCell({\n  row,\n  getValue,\n}: CellContext<EdgeStackEnvironment, string>) {\n  const value = getValue();\n  if (!value || value === '0') {\n    return (\n      <div>\n        <Icon icon={UpdatesAvailable} className=\"!mr-2\" />\n      </div>\n    );\n  }\n\n  let statusIcon = <Icon icon={UpToDate} className=\"!mr-2\" />;\n  if (\n    (row.original.TargetCommitHash &&\n      row.original.TargetCommitHash.slice(0, 7) !== value) ||\n    (!row.original.TargetCommitHash && row.original.TargetFileVersion !== value)\n  ) {\n    statusIcon = <Icon icon={UpdatesAvailable} className=\"!mr-2\" />;\n  }\n\n  return (\n    <>\n      {row.original.TargetCommitHash ? (\n        <div>\n          {statusIcon}\n          <GitCommitLink\n            baseURL={row.original.GitConfigURL}\n            commitHash={row.original.TargetCommitHash}\n          />\n        </div>\n      ) : (\n        <div>\n          {statusIcon}\n          {value}\n        </div>\n      )}\n    </>\n  );\n}\n\nfunction endpointDeployedVersionLabel(status: EdgeStackStatus) {\n  if (status.DeploymentInfo?.ConfigHash) {\n    return status.DeploymentInfo?.ConfigHash.slice(0, 7).toString();\n  }\n  return status.DeploymentInfo?.FileVersion.toString() || '';\n}\n\nfunction Status({ value }: { value: StatusType }) {\n  const color = getStateColor(value);\n\n  return (\n    <div className=\"flex items-center gap-2\">\n      <span\n        className={clsx('h-2 w-2 rounded-full', {\n          'bg-orange-5': color === 'orange',\n          'bg-green-5': color === 'green',\n          'bg-error-5': color === 'red',\n        })}\n      />\n\n      <span>{_.startCase(StatusType[value])}</span>\n    </div>\n  );\n}\n\nfunction getStateColor(type: StatusType): 'orange' | 'green' | 'red' {\n  switch (type) {\n    case StatusType.Acknowledged:\n    case StatusType.ImagesPulled:\n    case StatusType.DeploymentReceived:\n    case StatusType.Running:\n    case StatusType.RemoteUpdateSuccess:\n    case StatusType.Removed:\n      return 'green';\n    case StatusType.Error:\n      return 'red';\n    case StatusType.Pending:\n    case StatusType.Deploying:\n    case StatusType.Removing:\n    case StatusType.PausedDeploying:\n    case StatusType.RollingBack:\n    case StatusType.RolledBack:\n    default:\n      return 'orange';\n  }\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\nimport { HardDrive } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport { EdgeStackStatus, StatusType } from '@/react/edge/edge-stacks/types';\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport { useParamState } from '@/react/hooks/useParamState';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { Datatable } from '@@/datatables';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useEdgeStack } from '../../queries/useEdgeStack';\n\nimport { EdgeStackEnvironment } from './types';\nimport { columns } from './columns';\n\nconst tableKey = 'edge-stacks-environment';\n\nconst settingsStore = createPersistedStore(tableKey);\n\nexport function EnvironmentsDatatable() {\n  const {\n    params: { stackId },\n  } = useCurrentStateAndParams();\n  const edgeStackQuery = useEdgeStack(stackId, {\n    refetchInterval(data) {\n      if (!data) {\n        return 0;\n      }\n\n      return Object.values(data.Status).some((status) =>\n        status.Status.every((s) => s.Type === StatusType.Running)\n      )\n        ? 0\n        : 10000;\n    },\n  });\n\n  const [page, setPage] = useState(0);\n  const [statusFilter, setStatusFilter] = useParamState<StatusType>(\n    'status',\n    (value) => (value ? parseInt(value, 10) : undefined)\n  );\n  const tableState = useTableState(settingsStore, tableKey);\n  const environmentsQuery = useEnvironmentList({\n    pageLimit: tableState.pageSize,\n    page: page + 1,\n    search: tableState.search,\n    sort: tableState.sortBy?.id as 'Group' | 'Name',\n    order: tableState.sortBy?.desc ? 'desc' : 'asc',\n    edgeStackId: stackId,\n    edgeStackStatus: statusFilter,\n  });\n\n  const currentFileVersion =\n    edgeStackQuery.data?.StackFileVersion?.toString() || '';\n  const gitConfigURL = edgeStackQuery.data?.GitConfig?.URL || '';\n  const gitConfigCommitHash = edgeStackQuery.data?.GitConfig?.ConfigHash || '';\n  const environments: Array<EdgeStackEnvironment> = useMemo(\n    () =>\n      environmentsQuery.environments.map(\n        (env) =>\n          ({\n            ...env,\n            TargetFileVersion: currentFileVersion,\n            GitConfigURL: gitConfigURL,\n            TargetCommitHash: gitConfigCommitHash,\n            StackStatus: getEnvStackStatus(\n              env.Id,\n              edgeStackQuery.data?.Status[env.Id]\n            ),\n          }) satisfies EdgeStackEnvironment\n      ),\n    [\n      currentFileVersion,\n      edgeStackQuery.data?.Status,\n      environmentsQuery.environments,\n      gitConfigCommitHash,\n      gitConfigURL,\n    ]\n  );\n\n  const envStatusSelectOptions = [\n    { value: StatusType.Pending, label: 'Pending' },\n    { value: StatusType.Acknowledged, label: 'Acknowledged' },\n    { value: StatusType.ImagesPulled, label: 'Images pre-pulled' },\n    { value: StatusType.Running, label: 'Deployed' },\n    { value: StatusType.Error, label: 'Failed' },\n  ];\n  if (isBE) {\n    envStatusSelectOptions.concat([\n      { value: StatusType.PausedDeploying, label: 'Paused' },\n      { value: StatusType.RollingBack, label: 'Rolling back' },\n      { value: StatusType.RolledBack, label: 'Rolled back' },\n    ]);\n  }\n\n  return (\n    <Datatable\n      columns={columns}\n      isLoading={environmentsQuery.isLoading}\n      dataset={environments}\n      settingsManager={tableState}\n      title=\"Environments Status\"\n      titleIcon={HardDrive}\n      isServerSidePagination\n      page={page}\n      onPageChange={setPage}\n      totalCount={environmentsQuery.totalCount}\n      emptyContentLabel=\"No environment available.\"\n      disableSelect\n      description={\n        <div className=\"w-1/4\">\n          <PortainerSelect<StatusType | undefined>\n            isClearable\n            bindToBody\n            value={statusFilter}\n            onChange={(e) => setStatusFilter(e ?? undefined)}\n            options={envStatusSelectOptions}\n          />\n        </div>\n      }\n    />\n  );\n}\n\nfunction getEnvStackStatus(\n  envId: EnvironmentId,\n  envStatus: EdgeStackStatus | undefined\n) {\n  const pendingStatus = {\n    Type: StatusType.Pending,\n    Error: '',\n    Time: new Date().valueOf() / 1000,\n  };\n\n  let status = envStatus;\n  if (!status) {\n    status = {\n      EndpointID: envId,\n      DeploymentInfo: {\n        ConfigHash: '',\n        FileVersion: 0,\n      },\n      Status: [],\n    };\n  }\n\n  if (status.Status.length === 0) {\n    status.Status.push(pendingStatus);\n  }\n\n  return status;\n}\n","import angular from 'angular';\n\nimport { EdgeGroupsSelector } from '@/react/edge/edge-stacks/components/EdgeGroupsSelector';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { EdgeCheckinIntervalField } from '@/react/edge/components/EdgeCheckInIntervalField';\nimport { EdgeScriptForm } from '@/react/edge/components/EdgeScriptForm';\nimport { EdgeAsyncIntervalsForm } from '@/react/edge/components/EdgeAsyncIntervalsForm';\nimport { EdgeStackDeploymentTypeSelector } from '@/react/edge/edge-stacks/components/EdgeStackDeploymentTypeSelector';\nimport { EditEdgeStackForm } from '@/react/edge/edge-stacks/ItemView/EditEdgeStackForm/EditEdgeStackForm';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { EdgeGroupAssociationTable } from '@/react/edge/components/EdgeGroupAssociationTable';\nimport { AssociatedEdgeEnvironmentsSelector } from '@/react/edge/components/AssociatedEdgeEnvironmentsSelector';\nimport { EnvironmentsDatatable } from '@/react/edge/edge-stacks/ItemView/EnvironmentsDatatable';\nimport { TemplateFieldset } from '@/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateFieldset';\n\nconst ngModule = angular\n  .module('portainer.edge.react.components', [])\n  .component(\n    'edgeStackEnvironmentsDatatable',\n    r2a(withUIRouter(withReactQuery(EnvironmentsDatatable)), [])\n  )\n  .component(\n    'edgeGroupsSelector',\n    r2a(withUIRouter(withReactQuery(EdgeGroupsSelector)), [\n      'onChange',\n      'value',\n      'error',\n      'horizontal',\n      'isGroupVisible',\n      'required',\n    ])\n  )\n  .component(\n    'edgeScriptForm',\n    r2a(withReactQuery(EdgeScriptForm), [\n      'edgeInfo',\n      'commands',\n      'asyncMode',\n      'showMetaFields',\n    ])\n  )\n  .component(\n    'edgeCheckinIntervalField',\n    r2a(withReactQuery(EdgeCheckinIntervalField), [\n      'value',\n      'onChange',\n      'isDefaultHidden',\n      'tooltip',\n      'label',\n      'readonly',\n      'size',\n    ])\n  )\n  .component(\n    'edgeAsyncIntervalsForm',\n    r2a(withReactQuery(EdgeAsyncIntervalsForm), [\n      'values',\n      'onChange',\n      'isDefaultHidden',\n      'readonly',\n      'fieldSettings',\n    ])\n  )\n  .component(\n    'edgeStackDeploymentTypeSelector',\n    r2a(withReactQuery(EdgeStackDeploymentTypeSelector), [\n      'value',\n      'onChange',\n      'hasDockerEndpoint',\n      'hasKubeEndpoint',\n      'allowKubeToSelectCompose',\n    ])\n  )\n  .component(\n    'editEdgeStackForm',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(EditEdgeStackForm))), [\n      'edgeStack',\n      'fileContent',\n      'isSubmitting',\n      'onEditorChange',\n      'onSubmit',\n      'allowKubeToSelectCompose',\n    ])\n  )\n  .component(\n    'edgeGroupAssociationTable',\n    r2a(withReactQuery(EdgeGroupAssociationTable), [\n      'emptyContentLabel',\n      'onClickRow',\n      'query',\n      'title',\n      'data-cy',\n    ])\n  )\n  .component(\n    'associatedEdgeEnvironmentsSelector',\n    r2a(withReactQuery(AssociatedEdgeEnvironmentsSelector), [\n      'onChange',\n      'value',\n    ])\n  )\n  .component(\n    'edgeStackCreateTemplateFieldset',\n    r2a(withReactQuery(TemplateFieldset), ['setValues', 'values', 'errors'])\n  );\n\nexport const componentsModule = ngModule.name;\n","import { useCurrentStateAndParams, useRouter } from '@uirouter/react';\n\nexport function useParamState<T>(\n  param: string,\n  parseParam: (param: string | undefined) => T | undefined = (param) =>\n    param as unknown as T\n) {\n  const {\n    params: { [param]: paramValue },\n  } = useCurrentStateAndParams();\n  const router = useRouter();\n  const state = parseParam(paramValue);\n\n  return [\n    state,\n    (value?: T) => {\n      router.stateService.go('.', { [param]: value });\n    },\n  ] as const;\n}\n","import { EdgeTypes, EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { EdgeGroupAssociationTable } from './EdgeGroupAssociationTable';\n\nexport function AssociatedEdgeEnvironmentsSelector({\n  onChange,\n  value,\n}: {\n  onChange: (\n    value: EnvironmentId[],\n    meta: { type: 'add' | 'remove'; value: EnvironmentId }\n  ) => void;\n  value: EnvironmentId[];\n}) {\n  return (\n    <>\n      <div className=\"col-sm-12 small text-muted\">\n        You can select which environment should be part of this group by moving\n        them to the associated environments table. Simply click on any\n        environment entry to move it from one table to the other.\n      </div>\n\n      <div className=\"col-sm-12 mt-4\">\n        <div className=\"flex\">\n          <div className=\"w-1/2\">\n            <EdgeGroupAssociationTable\n              title=\"Available environments\"\n              emptyContentLabel=\"No environment available\"\n              query={{\n                types: EdgeTypes,\n                excludeIds: value,\n              }}\n              onClickRow={(env) => {\n                if (!value.includes(env.Id)) {\n                  onChange([...value, env.Id], { type: 'add', value: env.Id });\n                }\n              }}\n              data-cy=\"edgeGroupCreate-availableEndpoints\"\n            />\n          </div>\n          <div className=\"w-1/2\">\n            <EdgeGroupAssociationTable\n              title=\"Associated environments\"\n              emptyContentLabel=\"No associated environment'\"\n              query={{\n                types: EdgeTypes,\n                endpointIds: value,\n              }}\n              onClickRow={(env) => {\n                if (value.includes(env.Id)) {\n                  onChange(\n                    value.filter((id) => id !== env.Id),\n                    { type: 'remove', value: env.Id }\n                  );\n                }\n              }}\n            />\n          </div>\n        </div>\n      </div>\n    </>\n  );\n}\n","import moment from 'moment';\nimport { createColumnHelper } from '@tanstack/react-table';\n\nimport { WaitingRoomEnvironment } from '../types';\n\nconst columnHelper = createColumnHelper<WaitingRoomEnvironment>();\n\nexport const columns = [\n  columnHelper.accessor('Name', {\n    header: 'Name',\n    id: 'Name',\n  }),\n  columnHelper.accessor('EdgeID', {\n    header: 'Edge ID',\n    id: 'EdgeID',\n  }),\n  columnHelper.accessor((row) => row.EdgeGroups.join(', '), {\n    header: 'Edge Groups',\n    id: 'edge-groups',\n    enableSorting: false,\n    cell: ({ getValue }) => getValue() || '-',\n  }),\n  columnHelper.accessor((row) => row.Group, {\n    header: 'Group',\n    id: 'Group',\n    cell: ({ getValue }) => getValue() || '-',\n  }),\n  columnHelper.accessor((row) => row.Tags.join(', '), {\n    header: 'Tags',\n    id: 'tags',\n    enableSorting: false,\n    cell: ({ getValue }) => getValue() || '-',\n  }),\n  columnHelper.accessor((row) => row.LastCheckInDate, {\n    header: 'Last Check-in',\n    id: 'LastCheckIn',\n    cell: ({ getValue }) => {\n      const value = getValue();\n      return value ? moment(value * 1000).fromNow() : '-';\n    },\n  }),\n];\n","import createStore from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\n\ninterface TableFiltersStore {\n  groups: number[];\n  setGroups(value: number[]): void;\n  edgeGroups: number[];\n  setEdgeGroups(value: number[]): void;\n  tags: number[];\n  setTags(value: number[]): void;\n  checkIn: number;\n  setCheckIn(value: number): void;\n}\n\nexport const useFilterStore = createStore<TableFiltersStore>()(\n  persist(\n    (set) => ({\n      edgeGroups: [],\n      setEdgeGroups(edgeGroups: number[]) {\n        set({ edgeGroups });\n      },\n      groups: [],\n      setGroups(groups: number[]) {\n        set({ groups });\n      },\n      tags: [],\n      setTags(tags: number[]) {\n        set({ tags });\n      },\n      checkIn: 0,\n      setCheckIn(checkIn: number) {\n        set({ checkIn });\n      },\n    }),\n    {\n      name: keyBuilder('edge-devices-meta-filters'),\n    }\n  )\n);\n","import { HomepageFilter } from '@/react/portainer/HomeView/EnvironmentList/HomepageFilter';\nimport { useGroups } from '@/react/portainer/environments/environment-groups/queries';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { useTags } from '@/portainer/tags/queries';\n\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\nimport { useFilterStore } from './filter-store';\n\nconst checkInOptions = [\n  { value: 0, label: 'Show all time' },\n  { value: 60 * 60, label: 'Show past hour' },\n  { value: 60 * 60 * 24, label: 'Show past day' },\n  { value: 60 * 60 * 24 * 7, label: 'Show past week' },\n  { value: 60 * 60 * 24 * 14, label: 'Show past 14 days' },\n];\n\nexport function Filter() {\n  const edgeGroupsQuery = useEdgeGroups();\n  const groupsQuery = useGroups();\n  const tagsQuery = useTags();\n\n  const filterStore = useFilterStore();\n\n  if (!edgeGroupsQuery.data || !groupsQuery.data || !tagsQuery.data) {\n    return null;\n  }\n\n  return (\n    <div className=\"flex w-full gap-5 [&>*]:w-1/5\">\n      <HomepageFilter\n        onChange={(f) => filterStore.setEdgeGroups(f)}\n        placeHolder=\"Edge groups\"\n        value={filterStore.edgeGroups}\n        filterOptions={edgeGroupsQuery.data.map((g) => ({\n          label: g.Name,\n          value: g.Id,\n        }))}\n      />\n      <HomepageFilter\n        onChange={(f) => filterStore.setGroups(f)}\n        placeHolder=\"Group\"\n        value={filterStore.groups}\n        filterOptions={groupsQuery.data.map((g) => ({\n          label: g.Name,\n          value: g.Id,\n        }))}\n      />\n      <HomepageFilter\n        onChange={(f) => filterStore.setTags(f)}\n        placeHolder=\"Tags\"\n        value={filterStore.tags}\n        filterOptions={tagsQuery.data.map((g) => ({\n          label: g.Name,\n          value: g.ID,\n        }))}\n      />\n\n      <div className=\"ml-auto\" />\n      <PortainerSelect\n        onChange={(f) => filterStore.setCheckIn(f || 0)}\n        value={filterStore.checkIn}\n        options={checkInOptions}\n        bindToBody\n      />\n    </div>\n  );\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport { EdgeTypes, EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { useIntegratedLicenseInfo } from '@/react/portainer/licenses/use-license.service';\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { queryKey as nodesCountQueryKey } from '@/react/portainer/system/useNodesCount';\nimport { LicenseType } from '@/react/portainer/licenses/types';\nimport { environmentQueryKeys } from '@/react/portainer/environments/queries/query-keys';\n\nexport function useAssociateDeviceMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    (ids: EnvironmentId[]) =>\n      promiseSequence(ids.map((id) => () => associateDevice(id))),\n    mutationOptions(\n      withError('Failed to associate devices'),\n      withInvalidate(queryClient, [\n        environmentQueryKeys.base(),\n        nodesCountQueryKey,\n      ])\n    )\n  );\n}\n\nasync function associateDevice(environmentId: EnvironmentId) {\n  try {\n    await axios.post(`/endpoints/${environmentId}/edge/trust`);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Failed to associate device');\n  }\n}\n\nexport function useLicenseOverused(moreNodes: number) {\n  const integratedInfo = useIntegratedLicenseInfo();\n\n  return (\n    !!integratedInfo &&\n    integratedInfo.licenseInfo.type === LicenseType.Essentials &&\n    integratedInfo.usedNodes + moreNodes > integratedInfo.licenseInfo.nodes\n  );\n}\n\nexport function useUntrustedCount() {\n  const query = useEnvironmentList({\n    edgeDeviceUntrusted: true,\n    types: EdgeTypes,\n  });\n  return query.totalCount;\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\nimport { TagId } from '@/portainer/tags/types';\nimport { queryKeys as edgeGroupQueryKeys } from '@/react/edge/edge-groups/queries/query-keys';\nimport { queryKeys as groupQueryKeys } from '@/react/portainer/environments/environment-groups/queries/query-keys';\nimport { tagKeys } from '@/portainer/tags/queries';\n\nimport { EnvironmentId } from '../types';\nimport { buildUrl } from '../environment.service/utils';\nimport { EnvironmentGroupId } from '../environment-groups/types';\n\nimport { environmentQueryKeys } from './query-keys';\n\nexport function useUpdateEnvironmentsRelationsMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    updateEnvironmentRelations,\n    mutationOptions(\n      withInvalidate(queryClient, [\n        environmentQueryKeys.base(),\n        edgeGroupQueryKeys.base(),\n        groupQueryKeys.base(),\n        tagKeys.all,\n      ]),\n      withError('Unable to update environment relations')\n    )\n  );\n}\n\nexport interface EnvironmentRelationsPayload {\n  edgeGroups: Array<EdgeGroup['Id']>;\n  group: EnvironmentGroupId;\n  tags: Array<TagId>;\n}\n\nexport async function updateEnvironmentRelations(\n  relations: Record<EnvironmentId, EnvironmentRelationsPayload>\n) {\n  try {\n    await axios.put(buildUrl(undefined, 'relations'), { relations });\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to update environment relations');\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { TagId } from '@/portainer/tags/types';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { EdgeGroup } from '../types';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\ninterface CreateGroupPayload {\n  name: string;\n  dynamic: boolean;\n  tagIds?: TagId[];\n  endpoints?: EnvironmentId[];\n  partialMatch?: boolean;\n}\n\nexport async function createEdgeGroup(requestPayload: CreateGroupPayload) {\n  try {\n    const { data: group } = await axios.post<EdgeGroup>(\n      buildUrl(),\n      requestPayload\n    );\n    return group;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Failed to create Edge group');\n  }\n}\n\nexport function useCreateGroupMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    createEdgeGroup,\n    mutationOptions(\n      withError('Failed to create Edge group'),\n      withInvalidate(queryClient, [queryKeys.base()])\n    )\n  );\n}\n","import { useField } from 'formik';\nimport _ from 'lodash';\n\nimport { Select } from '@@/form-components/ReactSelect';\nimport {\n  Option,\n  Option as OptionType,\n} from '@@/form-components/PortainerSelect';\n\nexport function CreatableSelector({\n  name,\n  options,\n  onCreate,\n  isLoading,\n}: {\n  name: string;\n  options: Array<OptionType<number>>;\n  onCreate: (label: string) => Promise<number>;\n  isLoading: boolean;\n}) {\n  const [{ onBlur, value }, , { setValue }] = useField<Array<number>>(name);\n\n  const selectedValues = value.reduce(\n    (acc: Array<OptionType<number>>, cur) =>\n      _.compact([...acc, findOption(cur, options)]),\n    []\n  );\n\n  return (\n    <Select\n      isCreatable\n      options={options}\n      value={\n        isLoading\n          ? [...selectedValues, { label: 'Creating...', value: 0 }]\n          : selectedValues\n      }\n      isMulti\n      onCreateOption={handleCreate}\n      onChange={handleChange}\n      onBlur={onBlur}\n      isLoading={isLoading}\n      isDisabled={isLoading}\n      closeMenuOnSelect={false}\n    />\n  );\n\n  async function handleCreate(label: string) {\n    const id = await onCreate(label);\n    setValue([...value, id]);\n  }\n\n  function handleChange(value: ReadonlyArray<{ value: number }>) {\n    setValue(value.map((v) => v.value));\n  }\n}\n\nfunction findOption<T>(option: T, options: Array<Option<T>>) {\n  return options.find((t) => t.value === option);\n}\n","import { notifySuccess } from '@/portainer/services/notifications';\nimport { useCreateGroupMutation } from '@/react/edge/edge-groups/queries/useCreateEdgeGroupMutation';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { CreatableSelector } from './CreatableSelector';\n\nexport function EdgeGroupsSelector() {\n  const createMutation = useCreateGroupMutation();\n\n  const edgeGroupsQuery = useEdgeGroups({\n    select: (edgeGroups) =>\n      edgeGroups\n        .filter((g) => !g.Dynamic)\n        .map((opt) => ({ label: opt.Name, value: opt.Id })),\n  });\n\n  if (!edgeGroupsQuery.data) {\n    return null;\n  }\n\n  const edgeGroups = edgeGroupsQuery.data;\n\n  return (\n    <CreatableSelector\n      name=\"edgeGroups\"\n      options={edgeGroups}\n      onCreate={handleCreate}\n      isLoading={createMutation.isLoading}\n    />\n  );\n\n  async function handleCreate(newGroup: string) {\n    const group = await createMutation.mutateAsync({\n      name: newGroup,\n      dynamic: false,\n    });\n\n    notifySuccess('Edge group created', `Group ${group.Name} created`);\n    return group.Id;\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { TagId } from '@/portainer/tags/types';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { EnvironmentId } from '../../types';\nimport { EnvironmentGroup } from '../types';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\ninterface CreateGroupPayload {\n  name: string;\n  description?: string;\n  associatedEndpoints?: EnvironmentId[];\n  tagIds?: TagId[];\n}\n\nexport async function createGroup(requestPayload: CreateGroupPayload) {\n  try {\n    const { data: group } = await axios.post<EnvironmentGroup>(\n      buildUrl(),\n      requestPayload\n    );\n    return group;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Failed to create group');\n  }\n}\n\nexport function useCreateGroupMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    createGroup,\n    mutationOptions(\n      withError('Failed to create group'),\n      withInvalidate(queryClient, [queryKeys.base()])\n    )\n  );\n}\n","import { useField } from 'formik';\n\nimport { useGroups } from '@/react/portainer/environments/environment-groups/queries';\nimport { EnvironmentGroupId } from '@/react/portainer/environments/environment-groups/types';\nimport { useCreateGroupMutation } from '@/react/portainer/environments/environment-groups/queries/useCreateGroupMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\nimport { FormValues } from '../types';\n\nexport function GroupSelector() {\n  const [{ value, onBlur }, , { setValue }] =\n    useField<FormValues['group']>('group');\n  const createMutation = useCreateGroupMutation();\n\n  const groupsQuery = useGroups({\n    select: (groups) =>\n      groups\n        .filter((g) => g.Id !== 1)\n        .map((opt) => ({ label: opt.Name, value: opt.Id })),\n  });\n\n  if (!groupsQuery.data) {\n    return null;\n  }\n\n  const options = groupsQuery.data;\n  const selectedValue = value ? options.find((g) => g.value === value) : null;\n\n  return (\n    <Select\n      isCreatable\n      options={options}\n      value={\n        createMutation.isLoading\n          ? { label: 'Creating...', value: 0 }\n          : selectedValue\n      }\n      onCreateOption={handleCreate}\n      onChange={handleChange}\n      onBlur={onBlur}\n      isLoading={createMutation.isLoading}\n      isDisabled={createMutation.isLoading}\n      placeholder=\"Select a group\"\n      isClearable\n    />\n  );\n\n  function handleCreate(newGroup: string) {\n    createMutation.mutate(\n      { name: newGroup },\n      {\n        onSuccess: (data) => {\n          setValue(data.Id);\n          notifySuccess('Group created', `Group ${data.Name} created`);\n        },\n      }\n    );\n  }\n\n  function handleChange(value: { value: EnvironmentGroupId } | null) {\n    setValue(value ? value.value : 1);\n  }\n}\n","import { notifySuccess } from '@/portainer/services/notifications';\nimport { useCreateTagMutation, useTags } from '@/portainer/tags/queries';\n\nimport { CreatableSelector } from './CreatableSelector';\n\nexport function TagSelector() {\n  const createMutation = useCreateTagMutation();\n\n  const tagsQuery = useTags({\n    select: (tags) => tags.map((opt) => ({ label: opt.Name, value: opt.ID })),\n  });\n\n  if (!tagsQuery.data) {\n    return null;\n  }\n\n  const tags = tagsQuery.data;\n\n  return (\n    <CreatableSelector\n      name=\"tags\"\n      options={tags}\n      onCreate={handleCreate}\n      isLoading={createMutation.isLoading}\n    />\n  );\n\n  async function handleCreate(newTag: string) {\n    const tag = await createMutation.mutateAsync(newTag);\n\n    notifySuccess('Tag created', `Tag ${tag.Name} created`);\n\n    return tag.ID;\n  }\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nexport function isAssignedToGroup(environment: Environment) {\n  return ![0, 1].includes(environment.GroupId);\n}\n","import { Form, Formik } from 'formik';\n\nimport { addPlural } from '@/portainer/helpers/strings';\nimport { useUpdateEnvironmentsRelationsMutation } from '@/react/portainer/environments/queries/useUpdateEnvironmentsRelationsMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { BetaAlert } from '@/react/portainer/environments/update-schedules/common/BetaAlert';\n\nimport { Checkbox } from '@@/form-components/Checkbox';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { OnSubmit, Modal } from '@@/modals';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Button, LoadingButton } from '@@/buttons';\n\nimport { WaitingRoomEnvironment } from '../../types';\n\nimport { GroupSelector, EdgeGroupsSelector, TagSelector } from './Selectors';\nimport { FormValues } from './types';\nimport { isAssignedToGroup } from './utils';\nimport { createPayload } from './createPayload';\n\nexport function AssignmentDialog({\n  onSubmit,\n  environments,\n}: {\n  onSubmit: OnSubmit<boolean>;\n  environments: Array<WaitingRoomEnvironment>;\n}) {\n  const assignRelationsMutation = useUpdateEnvironmentsRelationsMutation();\n\n  const initialValues: FormValues = {\n    group: 1,\n    overrideGroup: false,\n    edgeGroups: [],\n    overrideEdgeGroups: false,\n    tags: [],\n    overrideTags: false,\n  };\n\n  const hasPreAssignedEdgeGroups = environments.some(\n    (e) => e.EdgeGroups?.length > 0\n  );\n  const hasPreAssignedTags = environments.some((e) => e.TagIds.length > 0);\n  const hasPreAssignedGroup = environments.some((e) => isAssignedToGroup(e));\n\n  return (\n    <Modal\n      aria-label=\"Associate and assignment\"\n      onDismiss={() => onSubmit()}\n      size=\"lg\"\n    >\n      <Modal.Header\n        title={`Associate with assignment (${addPlural(\n          environments.length,\n          'selected edge environment'\n        )})`}\n      />\n      <Formik onSubmit={handleSubmit} initialValues={initialValues}>\n        {({ values, setFieldValue, errors }) => (\n          <Form noValidate>\n            <Modal.Body>\n              <div>\n                <FormControl\n                  size=\"vertical\"\n                  label=\"Group\"\n                  tooltip=\"For managing RBAC with user access\"\n                  errors={errors.group}\n                >\n                  <GroupSelector />\n\n                  {hasPreAssignedGroup && (\n                    <div className=\"mt-2\">\n                      <Checkbox\n                        label=\"Override pre-assigned group\"\n                        id=\"overrideGroup\"\n                        bold={false}\n                        checked={values.overrideGroup}\n                        onChange={(e) =>\n                          setFieldValue('overrideGroup', e.target.checked)\n                        }\n                      />\n                    </div>\n                  )}\n                </FormControl>\n\n                <FormControl\n                  size=\"vertical\"\n                  label=\"Edge Groups\"\n                  tooltip=\"Required to manage edge job and edge stack deployments\"\n                  errors={errors.edgeGroups}\n                >\n                  <EdgeGroupsSelector />\n\n                  {hasPreAssignedEdgeGroups && (\n                    <div className=\"mt-2\">\n                      <Checkbox\n                        label=\"Override pre-assigned edge groups\"\n                        bold={false}\n                        id=\"overrideEdgeGroups\"\n                        checked={values.overrideEdgeGroups}\n                        onChange={(e) =>\n                          setFieldValue('overrideEdgeGroups', e.target.checked)\n                        }\n                      />\n                    </div>\n                  )}\n                </FormControl>\n\n                <div className=\"mb-3\">\n                  <TextTip color=\"blue\">\n                    Edge group(s) created here are static only, use tags to\n                    assign to dynamic edge groups\n                  </TextTip>\n                </div>\n\n                <FormControl\n                  size=\"vertical\"\n                  label=\"Tags\"\n                  tooltip=\"Assigning tags will auto populate environments to dynamic edge groups that these tags are assigned to and any ege jobs or stacks that are deployed to that edge group\"\n                  errors={errors.tags}\n                >\n                  <TagSelector />\n\n                  {hasPreAssignedTags && (\n                    <div className=\"mt-2\">\n                      <Checkbox\n                        label=\"Override pre-assigned tags\"\n                        bold={false}\n                        id=\"overrideTags\"\n                        checked={values.overrideTags}\n                        onChange={(e) =>\n                          setFieldValue('overrideTags', e.target.checked)\n                        }\n                      />\n                    </div>\n                  )}\n                </FormControl>\n              </div>\n            </Modal.Body>\n            <Modal.Footer>\n              <Button onClick={() => onSubmit()} color=\"default\">\n                Cancel\n              </Button>\n              <LoadingButton\n                isLoading={assignRelationsMutation.isLoading}\n                loadingText=\"Associating...\"\n              >\n                Associate\n              </LoadingButton>\n            </Modal.Footer>\n            <div className=\"mt-2\">\n              <BetaAlert\n                message={\n                  <>\n                    <b>Beta Feature</b> - This feature is currently in beta,\n                    some functions might not work as expected.\n                  </>\n                }\n              />\n            </div>\n          </Form>\n        )}\n      </Formik>\n    </Modal>\n  );\n\n  function handleSubmit(values: FormValues) {\n    assignRelationsMutation.mutate(\n      Object.fromEntries(environments.map((e) => createPayload(e, values))),\n      {\n        onSuccess: () => {\n          notifySuccess('Success', 'Edge environments assigned successfully');\n          onSubmit(true);\n        },\n      }\n    );\n  }\n}\n","import { EnvironmentRelationsPayload } from '@/react/portainer/environments/queries/useUpdateEnvironmentsRelationsMutation';\n\nimport { WaitingRoomEnvironment } from '../../types';\n\nimport { FormValues } from './types';\nimport { isAssignedToGroup } from './utils';\n\nexport function createPayload(\n  environment: WaitingRoomEnvironment,\n  values: FormValues\n) {\n  const relations: Partial<EnvironmentRelationsPayload> = {};\n\n  if (environment.TagIds.length === 0 || values.overrideTags) {\n    relations.tags = values.tags;\n  }\n\n  if (environment.EdgeGroups.length === 0 || values.overrideEdgeGroups) {\n    relations.edgeGroups = values.edgeGroups;\n  }\n\n  if (\n    (!isAssignedToGroup(environment) || values.overrideGroup) &&\n    values.group\n  ) {\n    relations.group = values.group;\n  }\n\n  return [environment.Id, relations];\n}\n","import { Check, CheckCircle, Trash2 } from 'lucide-react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useDeleteEnvironmentsMutation } from '@/react/portainer/environments/ListView/useDeleteEnvironmentsMutation';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\n\nimport { Button } from '@@/buttons';\nimport { ModalType, openModal } from '@@/modals';\nimport { confirm } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\nimport { useAssociateDeviceMutation, useLicenseOverused } from '../queries';\nimport { WaitingRoomEnvironment } from '../types';\n\nimport { AssignmentDialog } from './AssignmentDialog/AssignmentDialog';\n\nconst overusedTooltip = (\n  <>\n    Associating devices is disabled as your node count exceeds your license\n    limit\n  </>\n);\n\nexport function TableActions({\n  selectedRows,\n}: {\n  selectedRows: WaitingRoomEnvironment[];\n}) {\n  const isPureAdmin = useIsPureAdmin();\n  const associateMutation = useAssociateDeviceMutation();\n  const removeMutation = useDeleteEnvironmentsMutation();\n  const licenseOverused = useLicenseOverused(selectedRows.length);\n\n  return (\n    <>\n      <Button\n        onClick={() => handleRemoveDevice(selectedRows)}\n        disabled={selectedRows.length === 0}\n        color=\"dangerlight\"\n        icon={Trash2}\n      >\n        Remove Device\n      </Button>\n\n      <TooltipWithChildren\n        message={\n          licenseOverused ? (\n            overusedTooltip\n          ) : (\n            <>\n              Associate device(s) and assigning edge groups, group and tags with\n              overriding options\n            </>\n          )\n        }\n      >\n        <span>\n          <Button\n            onClick={() => handleAssociateAndAssign(selectedRows)}\n            disabled={\n              selectedRows.length === 0 || licenseOverused || !isPureAdmin\n            }\n            color=\"secondary\"\n            icon={CheckCircle}\n          >\n            Associate and assignment\n          </Button>\n        </span>\n      </TooltipWithChildren>\n\n      <TooltipWithChildren\n        message={\n          licenseOverused ? (\n            overusedTooltip\n          ) : (\n            <>\n              Associate device(s) based on their pre-assigned edge groups, group\n              and tags\n            </>\n          )\n        }\n      >\n        <span>\n          <Button\n            onClick={() => handleAssociateDevice(selectedRows)}\n            disabled={selectedRows.length === 0 || licenseOverused}\n            icon={Check}\n          >\n            Associate Device\n          </Button>\n        </span>\n      </TooltipWithChildren>\n    </>\n  );\n\n  async function handleAssociateAndAssign(\n    environments: WaitingRoomEnvironment[]\n  ) {\n    const assigned = await openModal(withReactQuery(AssignmentDialog), {\n      environments,\n    });\n\n    if (!assigned) {\n      return;\n    }\n\n    handleAssociateDevice(environments);\n  }\n\n  function handleAssociateDevice(devices: Environment[]) {\n    associateMutation.mutate(\n      devices.map((d) => d.Id),\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Edge devices associated successfully');\n        },\n      }\n    );\n  }\n\n  async function handleRemoveDevice(devices: Environment[]) {\n    const confirmed = await confirm({\n      title: 'Are you sure?',\n      message:\n        \"You're about to remove edge device(s) from waiting room, which will not be shown until next agent startup.\",\n      confirmButton: buildConfirmButton('Remove', 'danger'),\n      modalType: ModalType.Destructive,\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    removeMutation.mutate(\n      devices.map((d) => ({ id: d.Id, name: d.Name })),\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Edge devices were hidden successfully');\n        },\n      }\n    );\n  }\n}\n","import { Datatable as GenericDatatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { columns } from './columns';\nimport { Filter } from './Filter';\nimport { TableActions } from './TableActions';\nimport { useEnvironments } from './useEnvironments';\n\nconst storageKey = 'edge-devices-waiting-room';\n\nconst settingsStore = createPersistedStore(storageKey, 'name');\n\nexport function Datatable() {\n  const tableState = useTableState(settingsStore, storageKey);\n  const {\n    data: environments,\n    totalCount,\n    isLoading,\n    page,\n    setPage,\n  } = useEnvironments({\n    pageLimit: tableState.pageSize,\n    search: tableState.search,\n    sortBy: tableState.sortBy,\n  });\n\n  return (\n    <GenericDatatable\n      settingsManager={tableState}\n      columns={columns}\n      dataset={environments}\n      title=\"Edge Devices Waiting Room\"\n      emptyContentLabel=\"No Edge Devices found\"\n      renderTableActions={(selectedRows) => (\n        <TableActions selectedRows={selectedRows} />\n      )}\n      isLoading={isLoading}\n      isServerSidePagination\n      page={page}\n      onPageChange={setPage}\n      totalCount={totalCount}\n      description={<Filter />}\n    />\n  );\n}\n","import _ from 'lodash';\nimport { useEffect, useMemo, useState } from 'react';\n\nimport { useTags } from '@/portainer/tags/queries';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { useGroups } from '@/react/portainer/environments/environment-groups/queries';\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport { EdgeTypes } from '@/react/portainer/environments/types';\nimport {\n  Query,\n  getSortType,\n} from '@/react/portainer/environments/queries/useEnvironmentList';\n\nimport { WaitingRoomEnvironment } from '../types';\n\nimport { useFilterStore } from './filter-store';\n\nexport function useEnvironments({\n  pageLimit = 10,\n  search,\n  sortBy,\n}: {\n  pageLimit: number;\n  search: string;\n  sortBy: { id: string; desc: boolean } | undefined;\n}) {\n  const [page, setPage] = useState(0);\n  const filterStore = useFilterStore();\n  const edgeGroupsQuery = useEdgeGroups();\n\n  const filterByEnvironmentsIds = useMemo(\n    () =>\n      filterStore.edgeGroups.length\n        ? _.compact(\n            filterStore.edgeGroups.flatMap(\n              (groupId) =>\n                edgeGroupsQuery.data?.find((g) => g.Id === groupId)?.Endpoints\n            )\n          )\n        : undefined,\n    [edgeGroupsQuery.data, filterStore.edgeGroups]\n  );\n\n  const query: Partial<Query> = useMemo(\n    () => ({\n      pageLimit,\n      edgeDeviceUntrusted: true,\n      excludeSnapshots: true,\n      types: EdgeTypes,\n      tagIds: filterStore.tags.length ? filterStore.tags : undefined,\n      groupIds: filterStore.groups.length ? filterStore.groups : undefined,\n      endpointIds: filterByEnvironmentsIds,\n      edgeCheckInPassedSeconds: filterStore.checkIn,\n      search,\n      sort: getSortType(sortBy?.id),\n      order: sortBy?.desc ? 'desc' : 'asc',\n    }),\n    [\n      filterByEnvironmentsIds,\n      filterStore.checkIn,\n      filterStore.groups,\n      filterStore.tags,\n      pageLimit,\n      search,\n      sortBy,\n    ]\n  );\n\n  useEffect(() => {\n    setPage(0);\n  }, [query]);\n\n  const environmentsQuery = useEnvironmentList({\n    page: page + 1,\n    ...query,\n  });\n\n  const groupsQuery = useGroups({\n    select: (groups) =>\n      Object.fromEntries(groups.map((g) => [g.Id, g.Name] as const)),\n  });\n\n  const environmentEdgeGroupsQuery = useEdgeGroups({\n    select: (groups) =>\n      _.groupBy(\n        groups.flatMap((group) => {\n          const envs = group.Endpoints;\n          return envs.map((id) => ({ id, group: group.Name }));\n        }),\n        (env) => env.id\n      ),\n  });\n\n  const tagsQuery = useTags({\n    select: (tags) =>\n      Object.fromEntries(tags.map((tag) => [tag.ID, tag.Name] as const)),\n  });\n\n  const envs: Array<WaitingRoomEnvironment> = useMemo(\n    () =>\n      environmentsQuery.environments.map((env) => ({\n        ...env,\n        Group: (env.GroupId !== 1 && groupsQuery.data?.[env.GroupId]) || '',\n        EdgeGroups:\n          environmentEdgeGroupsQuery.data?.[env.Id]?.map((env) => env.group) ||\n          [],\n        Tags:\n          _.compact(env.TagIds?.map((tagId) => tagsQuery.data?.[tagId])) || [],\n      })),\n    [\n      environmentEdgeGroupsQuery.data,\n      environmentsQuery.environments,\n      groupsQuery.data,\n      tagsQuery.data,\n    ]\n  );\n\n  return useMemo(\n    () => ({\n      data: envs,\n      isLoading:\n        environmentsQuery.isLoading ||\n        groupsQuery.isLoading ||\n        environmentEdgeGroupsQuery.isLoading ||\n        tagsQuery.isLoading,\n      totalCount: environmentsQuery.totalCount,\n      page,\n      setPage,\n    }),\n    [\n      environmentEdgeGroupsQuery.isLoading,\n      environmentsQuery.isLoading,\n      environmentsQuery.totalCount,\n      envs,\n      groupsQuery.isLoading,\n      page,\n      tagsQuery.isLoading,\n    ]\n  );\n}\n","import { withLimitToBE } from '@/react/hooks/useLimitToBE';\n\nimport { InformationPanel } from '@@/InformationPanel';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { PageHeader } from '@@/PageHeader';\nimport { Link } from '@@/Link';\nimport { Alert } from '@@/Alert';\n\nimport { Datatable } from './Datatable';\nimport { useLicenseOverused, useUntrustedCount } from './queries';\n\nexport default withLimitToBE(WaitingRoomView);\n\nfunction WaitingRoomView() {\n  const untrustedCount = useUntrustedCount();\n  const licenseOverused = useLicenseOverused(untrustedCount);\n  return (\n    <>\n      <PageHeader\n        title=\"Waiting Room\"\n        breadcrumbs={[{ label: 'Waiting Room' }]}\n        reload\n      />\n\n      <InformationPanel>\n        <TextTip color=\"blue\">\n          Only environments generated from the AEEC script will appear here,\n          manually added environments and edge devices will bypass the waiting\n          room.\n        </TextTip>\n      </InformationPanel>\n\n      {licenseOverused && (\n        <div className=\"row\">\n          <div className=\"col-sm-12\">\n            <Alert color=\"warn\">\n              Associating all nodes in waiting room will exceed the node limit\n              of your current license. Go to{' '}\n              <Link to=\"portainer.licenses\">Licenses</Link> page to view the\n              current usage.\n            </Alert>\n          </div>\n        </div>\n      )}\n\n      <Datatable />\n    </>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeStack } from '../types';\n\nimport { buildUrl } from './buildUrl';\nimport { queryKeys } from './query-keys';\n\nexport function useEdgeStacks<T = Array<EdgeStack>>({\n  select,\n  /**\n   * If set to a number, the query will continuously refetch at this frequency in milliseconds.\n   * If set to a function, the function will be executed with the latest data and query to compute a frequency\n   * Defaults to `false`.\n   */\n  refetchInterval,\n}: {\n  select?: (stacks: EdgeStack[]) => T;\n  refetchInterval?: number | false | ((data?: T) => false | number);\n} = {}) {\n  return useQuery(queryKeys.base(), () => getEdgeStacks(), {\n    ...withError('Failed loading Edge stack'),\n    select,\n    refetchInterval,\n  });\n}\n\nexport async function getEdgeStacks() {\n  try {\n    const { data } = await axios.get<EdgeStack[]>(buildUrl());\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n","import _ from 'lodash';\nimport {\n  AlertTriangle,\n  CheckCircle,\n  type Icon as IconType,\n  Loader2,\n  XCircle,\n  MinusCircle,\n} from 'lucide-react';\n\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport { isVersionSmaller } from '@/react/common/semver-utils';\n\nimport { Icon, IconMode } from '@@/Icon';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nimport { DeploymentStatus, EdgeStack, StatusType } from '../../types';\n\nexport function EdgeStackStatus({ edgeStack }: { edgeStack: EdgeStack }) {\n  const status = Object.values(edgeStack.Status);\n  const lastStatus = _.compact(status.map((s) => _.last(s.Status)));\n\n  const environmentsQuery = useEnvironmentList({ edgeStackId: edgeStack.Id });\n\n  if (environmentsQuery.isLoading) {\n    return null;\n  }\n\n  const hasOldVersion = environmentsQuery.environments.some((env) =>\n    isVersionSmaller(env.Agent.Version, '2.19.0')\n  );\n\n  const { icon, label, mode, spin, tooltip } = getStatus(\n    edgeStack.NumDeployments,\n    lastStatus,\n    hasOldVersion\n  );\n\n  return (\n    <div className=\"mx-auto inline-flex items-center gap-2\">\n      {icon && <Icon icon={icon} spin={spin} mode={mode} />}\n      {label}\n      {tooltip && <Tooltip message={tooltip} />}\n    </div>\n  );\n}\n\nfunction getStatus(\n  numDeployments: number,\n  envStatus: Array<DeploymentStatus>,\n  hasOldVersion: boolean\n): {\n  label: string;\n  icon?: IconType;\n  spin?: boolean;\n  mode?: IconMode;\n  tooltip?: string;\n} {\n  if (!numDeployments || hasOldVersion) {\n    return {\n      label: 'Unavailable',\n      icon: MinusCircle,\n      mode: 'secondary',\n      tooltip: getUnavailableTooltip(),\n    };\n  }\n\n  if (envStatus.length < numDeployments) {\n    return {\n      label: 'Deploying',\n      icon: Loader2,\n      spin: true,\n      mode: 'primary',\n    };\n  }\n\n  const allFailed = envStatus.every((s) => s.Type === StatusType.Error);\n\n  if (allFailed) {\n    return {\n      label: 'Failed',\n      icon: XCircle,\n      mode: 'danger',\n    };\n  }\n\n  const allCompleted = envStatus.every((s) => s.Type === StatusType.Completed);\n\n  if (allCompleted) {\n    return {\n      label: 'Completed',\n      icon: CheckCircle,\n      mode: 'success',\n    };\n  }\n\n  const allRunning = envStatus.every(\n    (s) =>\n      s.Type === StatusType.Running ||\n      (s.Type === StatusType.DeploymentReceived && hasOldVersion)\n  );\n\n  if (allRunning) {\n    return {\n      label: 'Running',\n      icon: CheckCircle,\n      mode: 'success',\n    };\n  }\n\n  const hasDeploying = envStatus.some((s) => s.Type === StatusType.Deploying);\n  const hasRunning = envStatus.some((s) => s.Type === StatusType.Running);\n  const hasFailed = envStatus.some((s) => s.Type === StatusType.Error);\n\n  if (hasRunning && hasFailed && !hasDeploying) {\n    return {\n      label: 'Partially Running',\n      icon: AlertTriangle,\n      mode: 'warning',\n    };\n  }\n\n  return {\n    label: 'Deploying',\n    icon: Loader2,\n    spin: true,\n    mode: 'primary',\n  };\n\n  function getUnavailableTooltip() {\n    if (!numDeployments) {\n      return 'Your edge stack is currently unavailable due to the absence of an available environment in your edge group';\n    }\n\n    if (hasOldVersion) {\n      return 'Please note that the new status feature for the Edge stack is only available for Edge Agent versions 2.19.0 and above. To access the status of your edge stack, it is essential to upgrade your Edge Agent to a corresponding version that is compatible with your Portainer server.';\n    }\n\n    return '';\n  }\n}\n","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\nimport { Link } from '@@/Link';\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\nimport { EdgeStack, StatusType } from '../../types';\n\nexport function DeploymentCounterLink({\n  count,\n  total,\n  type,\n  stackId,\n}: {\n  count: number;\n  total: number;\n  type: StatusType;\n  stackId: EdgeStack['Id'];\n}) {\n  return (\n    <div className=\"w-full text-center\">\n      <Link\n        className=\"hover:no-underline\"\n        to=\"edge.stacks.edit\"\n        params={{ stackId, tab: 1, status: type }}\n      >\n        <DeploymentCounter count={count} type={type} total={total} />\n      </Link>\n    </div>\n  );\n}\n\nexport function DeploymentCounter({\n  count,\n  total,\n  type,\n}: {\n  count: number;\n  total: number;\n  type?: StatusType;\n}) {\n  const width = total ? (count / total) * 100 : 0;\n\n  return (\n    <TooltipWithChildren message={getTooltip(count, total, type)}>\n      <div className=\"h-2 w-full overflow-hidden rounded-lg bg-gray-4\">\n        <div\n          style={{ width: `${width}%` }}\n          className={clsx('h-full rounded-lg', {\n            'bg-success-7': type === StatusType.Running,\n            'bg-error-7': type === StatusType.Error,\n            'bg-blue-9': type === StatusType.Acknowledged,\n            'bg-yellow-7': type === StatusType.ImagesPulled,\n          })}\n        />\n      </div>\n    </TooltipWithChildren>\n  );\n}\n\nfunction getTooltip(count: number, total: number, type?: StatusType) {\n  const label = getLabel(type);\n  return `${count} of ${total} ${label}`;\n\n  function getLabel(type?: StatusType): ReactNode {\n    switch (type) {\n      case StatusType.Running:\n        return 'deployments running';\n      case StatusType.Completed:\n        return 'deployments completed';\n      case StatusType.DeploymentReceived:\n        return 'deployments received';\n      case StatusType.Error:\n        return 'deployments failed';\n      case StatusType.Acknowledged:\n        return 'deployments acknowledged';\n      case StatusType.ImagesPulled:\n        return 'images pre-pulled';\n      default:\n        return '';\n    }\n  }\n}\n","import { createColumnHelper } from '@tanstack/react-table';\nimport _ from 'lodash';\n\nimport { isoDateFromTimestamp } from '@/portainer/filters/filters';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { GitCommitLink } from '@/react/portainer/gitops/GitCommitLink';\n\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\nimport { Link } from '@@/Link';\n\nimport { StatusType } from '../../types';\n\nimport { EdgeStackStatus } from './EdgeStacksStatus';\nimport { DecoratedEdgeStack } from './types';\nimport { DeploymentCounter } from './DeploymentCounter';\n\nconst columnHelper = createColumnHelper<DecoratedEdgeStack>();\n\nexport const columns = _.compact([\n  buildNameColumn<DecoratedEdgeStack>('Name', 'edge.stacks.edit', 'stackId'),\n  columnHelper.accessor(\n    (item) => item.aggregatedStatus[StatusType.Acknowledged] || 0,\n    {\n      header: 'Acknowledged',\n      enableSorting: false,\n      enableHiding: false,\n      cell: ({ getValue, row }) => (\n        <DeploymentCounter\n          count={getValue()}\n          type={StatusType.Acknowledged}\n          total={row.original.NumDeployments}\n        />\n      ),\n      meta: {\n        className: '[&>*]:justify-center',\n      },\n    }\n  ),\n  isBE &&\n    columnHelper.accessor(\n      (item) => item.aggregatedStatus[StatusType.ImagesPulled] || 0,\n      {\n        header: 'Images pre-pulled',\n        cell: ({ getValue, row: { original: item } }) => {\n          if (!item.PrePullImage) {\n            return <div className=\"text-center\">-</div>;\n          }\n\n          return (\n            <DeploymentCounter\n              count={getValue()}\n              type={StatusType.ImagesPulled}\n              total={item.NumDeployments}\n            />\n          );\n        },\n        enableSorting: false,\n        enableHiding: false,\n        meta: {\n          className: '[&>*]:justify-center',\n        },\n      }\n    ),\n  columnHelper.accessor(\n    (item) => item.aggregatedStatus[StatusType.DeploymentReceived] || 0,\n    {\n      header: 'Deployments received',\n      cell: ({ getValue, row }) => (\n        <DeploymentCounter\n          count={getValue()}\n          type={StatusType.Running}\n          total={row.original.NumDeployments}\n        />\n      ),\n      enableSorting: false,\n      enableHiding: false,\n      meta: {\n        className: '[&>*]:justify-center',\n      },\n    }\n  ),\n  columnHelper.accessor(\n    (item) => item.aggregatedStatus[StatusType.Error] || 0,\n    {\n      header: 'Deployments failed',\n      cell: ({ getValue, row }) => {\n        const count = getValue();\n\n        return (\n          <div className=\"flex items-center gap-2\">\n            <DeploymentCounter\n              count={count}\n              type={StatusType.Error}\n              total={row.original.NumDeployments}\n            />\n            {count > 0 && (\n              <Link\n                className=\"hover:no-underline\"\n                to=\"edge.stacks.edit\"\n                params={{\n                  stackId: row.original.Id,\n                  tab: 1,\n                  status: StatusType.Error,\n                }}\n              >\n                ({count}/{row.original.NumDeployments})\n              </Link>\n            )}\n          </div>\n        );\n      },\n      enableSorting: false,\n      enableHiding: false,\n      meta: {\n        className: '[&>*]:justify-center',\n      },\n    }\n  ),\n  columnHelper.accessor('Status', {\n    header: 'Status',\n    cell: ({ row }) => (\n      <div className=\"w-full text-center\">\n        <EdgeStackStatus edgeStack={row.original} />\n      </div>\n    ),\n    enableSorting: false,\n    enableHiding: false,\n    meta: {\n      className: '[&>*]:justify-center',\n    },\n  }),\n  columnHelper.accessor('CreationDate', {\n    header: 'Creation Date',\n    cell: ({ getValue }) => isoDateFromTimestamp(getValue()),\n    enableHiding: false,\n  }),\n  isBE &&\n    columnHelper.accessor(\n      (item) =>\n        item.GitConfig ? item.GitConfig.ConfigHash : item.StackFileVersion,\n      {\n        header: 'Target Version',\n        enableSorting: false,\n        cell: ({ row: { original: item } }) => {\n          if (item.GitConfig) {\n            return (\n              <div className=\"text-center\">\n                <GitCommitLink\n                  baseURL={item.GitConfig.URL}\n                  commitHash={item.GitConfig.ConfigHash}\n                />\n              </div>\n            );\n          }\n\n          return <div className=\"text-center\">{item.StackFileVersion}</div>;\n        },\n        meta: {\n          className: '[&>*]:justify-center',\n        },\n      }\n    ),\n]);\n","import { Table } from '@tanstack/react-table';\n\nimport { ColumnVisibilityMenu } from '@@/datatables/ColumnVisibilityMenu';\nimport { TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\n\nimport { DecoratedEdgeStack } from './types';\nimport { TableSettings } from './store';\n\nexport function TableSettingsMenus({\n  tableInstance,\n  tableState,\n}: {\n  tableInstance: Table<DecoratedEdgeStack>;\n  tableState: TableSettings;\n}) {\n  return (\n    <>\n      <ColumnVisibilityMenu<DecoratedEdgeStack>\n        table={tableInstance}\n        onChange={(hiddenColumns) => {\n          tableState.setHiddenColumns(hiddenColumns);\n        }}\n        value={tableState.hiddenColumns}\n      />\n      <TableSettingsMenu>\n        <TableSettingsMenuAutoRefresh\n          value={tableState.autoRefreshRate}\n          onChange={(value) => tableState.setAutoRefreshRate(value)}\n        />\n      </TableSettingsMenu>\n    </>\n  );\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { EdgeStack } from '../../types';\nimport { buildUrl } from '../../queries/buildUrl';\nimport { queryKeys } from '../../queries/query-keys';\n\nexport function useDeleteEdgeStacksMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    (edgeStackIds: Array<EdgeStack['Id']>) =>\n      promiseSequence(\n        edgeStackIds.map((edgeStackId) => () => deleteEdgeStack(edgeStackId))\n      ),\n    mutationOptions(\n      withError('Unable to delete Edge stack(s)'),\n      withInvalidate(queryClient, [queryKeys.base()])\n    )\n  );\n}\n\nasync function deleteEdgeStack(id: EdgeStack['Id']) {\n  try {\n    await axios.delete(buildUrl(id));\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to delete edge stack');\n  }\n}\n","import { Trash2, Plus } from 'lucide-react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { Button } from '@@/buttons';\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { Link } from '@@/Link';\n\nimport { useDeleteEdgeStacksMutation } from './useDeleteEdgeStacksMutation';\nimport { DecoratedEdgeStack } from './types';\n\nexport function TableActions({\n  selectedItems,\n}: {\n  selectedItems: Array<DecoratedEdgeStack>;\n}) {\n  const removeMutation = useDeleteEdgeStacksMutation();\n\n  return (\n    <div className=\"flex items-center gap-2\">\n      <Button\n        color=\"dangerlight\"\n        disabled={selectedItems.length === 0}\n        onClick={() => handleRemove(selectedItems)}\n        icon={Trash2}\n        className=\"!m-0\"\n      >\n        Remove\n      </Button>\n\n      <Button\n        as={Link}\n        props={{ to: 'edge.stacks.new' }}\n        icon={Plus}\n        className=\"!m-0\"\n        data-cy=\"edgeStack-addStackButton\"\n      >\n        Add stack\n      </Button>\n    </div>\n  );\n\n  async function handleRemove(selectedItems: Array<DecoratedEdgeStack>) {\n    const confirmed = await confirmDestructive({\n      title: 'Are you sure?',\n      message: 'Are you sure you want to remove the selected Edge stack(s)?',\n      confirmButton: buildConfirmButton('Remove', 'danger'),\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    const ids = selectedItems.map((item) => item.Id);\n    removeMutation.mutate(ids, {\n      onSuccess: () => {\n        notifySuccess('Success', 'Edge stack(s) removed');\n      },\n    });\n  }\n}\n","import { Layers } from 'lucide-react';\n\nimport { Datatable } from '@@/datatables';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { getColumnVisibilityState } from '@@/datatables/ColumnVisibilityMenu';\n\nimport { useEdgeStacks } from '../../queries/useEdgeStacks';\nimport { EdgeStack, StatusType } from '../../types';\n\nimport { createStore } from './store';\nimport { columns } from './columns';\nimport { DecoratedEdgeStack } from './types';\nimport { TableSettingsMenus } from './TableSettingsMenus';\nimport { TableActions } from './TableActions';\n\nconst tableKey = 'edge-stacks';\n\nconst settingsStore = createStore(tableKey);\n\nexport function EdgeStacksDatatable() {\n  const tableState = useTableState(settingsStore, tableKey);\n  const edgeStacksQuery = useEdgeStacks<Array<DecoratedEdgeStack>>({\n    select: (edgeStacks) =>\n      edgeStacks.map((edgeStack) => ({\n        ...edgeStack,\n        aggregatedStatus: aggregateStackStatus(edgeStack.Status),\n      })),\n    refetchInterval: tableState.autoRefreshRate * 1000,\n  });\n\n  return (\n    <Datatable\n      title=\"Edge Stacks\"\n      titleIcon={Layers}\n      columns={columns}\n      dataset={edgeStacksQuery.data || []}\n      initialTableState={getColumnVisibilityState(tableState.hiddenColumns)}\n      settingsManager={tableState}\n      emptyContentLabel=\"No stack available.\"\n      isLoading={edgeStacksQuery.isLoading}\n      renderTableSettings={(tableInstance) => (\n        <TableSettingsMenus\n          tableInstance={tableInstance}\n          tableState={tableState}\n        />\n      )}\n      renderTableActions={(selectedItems) => (\n        <TableActions selectedItems={selectedItems} />\n      )}\n    />\n  );\n}\n\nfunction aggregateStackStatus(stackStatus: EdgeStack['Status']) {\n  const aggregateStatus: Partial<Record<StatusType, number>> = {};\n  return Object.values(stackStatus).reduce(\n    (acc, envStatus) =>\n      envStatus.Status.reduce((acc, status) => {\n        const { Type } = status;\n        acc[Type] = (acc[Type] || 0) + 1;\n        return acc;\n      }, acc),\n    aggregateStatus\n  );\n}\n","import {\n  BasicTableSettings,\n  RefreshableTableSettings,\n  SettableColumnsTableSettings,\n  createPersistedStore,\n  hiddenColumnsSettings,\n  refreshableSettings,\n} from '@@/datatables/types';\n\nexport interface TableSettings\n  extends BasicTableSettings,\n    SettableColumnsTableSettings,\n    RefreshableTableSettings {}\n\nexport function createStore(\n  storageKey: string,\n  initialHiddenColumns: string[] = []\n) {\n  return createPersistedStore<TableSettings>(storageKey, 'name', (set) => ({\n    ...hiddenColumnsSettings(set, initialHiddenColumns),\n    ...refreshableSettings(set, 10),\n  }));\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { EdgeGroupListItemResponse } from '../../queries/useEdgeGroups';\n\nexport const columnHelper = createColumnHelper<EdgeGroupListItemResponse>();\n","import { columnHelper } from './helper';\nimport { name } from './name';\n\nexport const columns = [\n  name,\n  columnHelper.accessor((group) => group.TrustedEndpoints.length, {\n    header: 'Environments Count',\n  }),\n  columnHelper.accessor('Dynamic', {\n    header: 'Group Type',\n    cell: ({ getValue }) => (getValue() ? 'Dynamic' : 'Static'),\n  }),\n];\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Link } from '@@/Link';\n\nimport { EdgeGroupListItemResponse } from '../../queries/useEdgeGroups';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Name', {\n  header: 'Name',\n  cell: NameCell,\n});\n\nfunction NameCell({\n  renderValue,\n  row: { original: item },\n}: CellContext<EdgeGroupListItemResponse, unknown>) {\n  const name = renderValue() || '';\n\n  if (typeof name !== 'string') {\n    return null;\n  }\n\n  return (\n    <>\n      <Link to=\".edit\" params={{ groupId: item.Id }} title={name}>\n        {name}\n      </Link>\n      {(item.HasEdgeJob || item.HasEdgeStack) && (\n        <span className=\"label label-info image-tag space-left\">in use</span>\n      )}\n    </>\n  );\n}\n","import { Trash2 } from 'lucide-react';\nimport { ComponentProps, PropsWithChildren, ReactNode } from 'react';\n\nimport { confirmDelete } from '@@/modals/confirm';\n\nimport { Button } from './Button';\n\nexport function DeleteButton({\n  disabled,\n  confirmMessage,\n  onConfirmed,\n  size,\n  children,\n}: PropsWithChildren<{\n  size?: ComponentProps<typeof Button>['size'];\n  disabled?: boolean;\n  confirmMessage: ReactNode;\n  onConfirmed(): Promise<void> | void;\n}>) {\n  return (\n    <Button\n      size={size}\n      color=\"dangerlight\"\n      disabled={disabled}\n      onClick={() => handleClick()}\n      icon={Trash2}\n      className=\"!m-0\"\n    >\n      {children || 'Remove'}\n    </Button>\n  );\n\n  async function handleClick() {\n    if (!(await confirmDelete(confirmMessage))) {\n      return undefined;\n    }\n\n    return onConfirmed();\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { EdgeGroup } from '../types';\nimport { buildUrl } from '../queries/build-url';\nimport { queryKeys } from '../queries/query-keys';\n\nexport function useDeleteEdgeGroupsMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    (edgeGroupIds: Array<EdgeGroup['Id']>) =>\n      promiseSequence(\n        edgeGroupIds.map((edgeGroupId) => () => deleteEdgeGroup(edgeGroupId))\n      ),\n    mutationOptions(\n      withError('Unable to delete Edge Group(s)'),\n      withInvalidate(queryClient, [queryKeys.base()])\n    )\n  );\n}\n\nasync function deleteEdgeGroup(id: EdgeGroup['Id']) {\n  try {\n    await axios.delete(buildUrl({ id }));\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to delete edge Group');\n  }\n}\n","import { notifySuccess } from '@/portainer/services/notifications';\n\nimport { AddButton } from '@@/buttons';\nimport { DeleteButton } from '@@/buttons/DeleteButton';\n\nimport { EdgeGroup } from '../types';\n\nimport { useDeleteEdgeGroupsMutation } from './useDeleteEdgeGroupMutation';\n\nexport function TableActions({\n  selectedItems,\n}: {\n  selectedItems: Array<EdgeGroup>;\n}) {\n  const removeMutation = useDeleteEdgeGroupsMutation();\n\n  return (\n    <div className=\"flex items-center gap-2\">\n      <DeleteButton\n        confirmMessage=\"Do you want to remove the selected Edge Group(s)?\"\n        disabled={selectedItems.length === 0}\n        onConfirmed={() => handleRemove(selectedItems)}\n      />\n\n      <AddButton>Add Edge group</AddButton>\n    </div>\n  );\n\n  async function handleRemove(selectedItems: Array<EdgeGroup>) {\n    const ids = selectedItems.map((item) => item.Id);\n    removeMutation.mutate(ids, {\n      onSuccess: () => {\n        notifySuccess('Success', 'Edge Group(s) removed');\n      },\n    });\n  }\n}\n","import { LayoutGrid } from 'lucide-react';\n\nimport { Datatable } from '@@/datatables';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { createPersistedStore } from '@@/datatables/types';\n\nimport { useEdgeGroups } from '../queries/useEdgeGroups';\n\nimport { columns } from './columns';\nimport { TableActions } from './TableActions';\n\nconst tableKey = 'edge-groups';\n\nconst settingsStore = createPersistedStore(tableKey);\n\nexport function EdgeGroupsDatatable() {\n  const tableState = useTableState(settingsStore, tableKey);\n  const edgeGroupsQuery = useEdgeGroups();\n\n  return (\n    <Datatable\n      title=\"Edge Groups\"\n      titleIcon={LayoutGrid}\n      columns={columns}\n      dataset={edgeGroupsQuery.data || []}\n      settingsManager={tableState}\n      emptyContentLabel=\"No Edge group available.\"\n      isLoading={edgeGroupsQuery.isLoading}\n      renderTableActions={(selectedItems) => (\n        <TableActions selectedItems={selectedItems} />\n      )}\n      isRowSelectable={({ original: item }) =>\n        !(item.HasEdgeStack || item.HasEdgeJob || item.HasEdgeConfig)\n      }\n    />\n  );\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport {\n  mutationOptions,\n  withGlobalError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { CustomTemplate } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './build-url';\n\nexport function useDeleteTemplateMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    deleteTemplate,\n    mutationOptions(\n      withInvalidate(queryClient, [queryKeys.base()]),\n      withGlobalError('Unable to delete custom template')\n    )\n  );\n}\nexport async function deleteTemplate(id: CustomTemplate['Id']) {\n  try {\n    await axios.delete(buildUrl({ id }));\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to get custom template');\n  }\n}\n","import { notifySuccess } from '@/portainer/services/notifications';\nimport { useCustomTemplates } from '@/react/portainer/templates/custom-templates/queries/useCustomTemplates';\nimport { useDeleteTemplateMutation } from '@/react/portainer/templates/custom-templates/queries/useDeleteTemplateMutation';\nimport { CustomTemplate } from '@/react/portainer/templates/custom-templates/types';\nimport { CustomTemplatesList } from '@/react/portainer/templates/custom-templates/ListView/CustomTemplatesList';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { confirmDelete } from '@@/modals/confirm';\n\nexport function ListView() {\n  const templatesQuery = useCustomTemplates({\n    params: {\n      edge: true,\n    },\n  });\n  const deleteMutation = useDeleteTemplateMutation();\n\n  return (\n    <>\n      <PageHeader title=\"Custom Templates\" breadcrumbs=\"Custom Templates\" />\n\n      <CustomTemplatesList\n        templates={templatesQuery.data}\n        onDelete={handleDelete}\n        templateLinkParams={(template) => ({\n          to: 'edge.stacks.new',\n          params: { templateId: template.Id, templateType: 'custom' },\n        })}\n        storageKey=\"edge-custom-templates\"\n      />\n    </>\n  );\n\n  async function handleDelete(templateId: CustomTemplate['Id']) {\n    if (\n      !(await confirmDelete('Are you sure you want to delete this template?'))\n    ) {\n      return;\n    }\n\n    deleteMutation.mutate(templateId, {\n      onSuccess: () => {\n        notifySuccess('Success', 'Template deleted');\n      },\n    });\n  }\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nexport type TemplateViewType = 'kube' | 'docker' | 'edge';\n\nexport function useViewType(): TemplateViewType {\n  const {\n    state: { name },\n  } = useCurrentStateAndParams();\n  if (name?.includes('kubernetes')) {\n    return 'kube';\n  }\n\n  if (name?.includes('docker')) {\n    return 'docker';\n  }\n\n  return 'edge';\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, {\n  json2formData,\n  parseAxiosError,\n} from '@/portainer/services/axios';\nimport {\n  mutationOptions,\n  withGlobalError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { StackType } from '@/react/common/stacks/types';\nimport { VariableDefinition } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField';\nimport {\n  CustomTemplate,\n  EdgeTemplateSettings,\n} from '@/react/portainer/templates/custom-templates/types';\nimport { GitFormModel } from '@/react/portainer/gitops/types';\nimport { DefinitionFieldValues } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { AccessControlFormData } from '@/react/portainer/access-control/types';\nimport { applyResourceControl } from '@/react/portainer/access-control/access-control.service';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { UserId } from '@/portainer/users/types';\nimport { saveGitCredentialsIfNeeded } from '@/react/portainer/account/git-credentials/queries/useCreateGitCredentialsMutation';\n\nimport { Platform } from '../../types';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\ninterface CreateTemplatePayload {\n  EdgeTemplate?: boolean;\n  Platform: Platform;\n  Type: StackType;\n  Method: 'editor' | 'upload' | 'repository';\n  FileContent: string;\n  File: File | undefined;\n  Git: GitFormModel;\n  Variables: DefinitionFieldValues;\n  EdgeSettings?: EdgeTemplateSettings;\n  Title: string;\n  Description: string;\n  Note: string;\n  Logo: string;\n}\n\nexport function useCreateTemplateMutation() {\n  const { user } = useCurrentUser();\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    async (\n      payload: CreateTemplatePayload & { AccessControl?: AccessControlFormData }\n    ) => {\n      const template = await createTemplate(user.Id, payload);\n      const resourceControl = template.ResourceControl;\n\n      if (resourceControl && payload.AccessControl) {\n        await applyResourceControl(payload.AccessControl, resourceControl.Id);\n      }\n\n      return template;\n    },\n    mutationOptions(\n      withInvalidate(queryClient, [queryKeys.base()]),\n      withGlobalError('Failed to create template')\n    )\n  );\n}\n\nfunction createTemplate(userId: UserId, payload: CreateTemplatePayload) {\n  switch (payload.Method) {\n    case 'editor':\n      return createTemplateFromText(payload);\n    case 'upload':\n      return createTemplateFromFile(payload);\n    case 'repository':\n      return createTemplateAndGitCredential(userId, payload);\n    default:\n      throw new Error('Unknown method');\n  }\n}\n\nasync function createTemplateAndGitCredential(\n  userId: UserId,\n  { Git: gitModel, ...values }: CreateTemplatePayload\n) {\n  const newGitModel = await saveGitCredentialsIfNeeded(userId, gitModel);\n\n  return createTemplateFromGit({\n    ...values,\n    ...newGitModel,\n    ...(values.EdgeSettings\n      ? {\n          EdgeSettings: {\n            ...values.EdgeSettings,\n            ...values.EdgeSettings.RelativePathSettings,\n          },\n        }\n      : {}),\n  });\n}\n\n/**\n * Payload for creating a custom template from file content.\n */\ninterface CustomTemplateFromFileContentPayload {\n  /** URL of the template's logo. */\n  Logo: string;\n  /** Title of the template. Required. */\n  Title: string;\n  /** Description of the template. Required. */\n  Description: string;\n  /** A note that will be displayed in the UI. Supports HTML content. */\n  Note: string;\n  /** Platform associated with the template. */\n  Platform: Platform;\n  /** Type of created stack. Required. */\n  Type: StackType;\n  /** Content of the stack file. Required. */\n  FileContent: string;\n  /** Definitions of variables in the stack file. */\n  Variables: VariableDefinition[];\n  /** Indicates if this template is for Edge Stack. */\n  EdgeTemplate?: boolean;\n  EdgeSettings?: EdgeTemplateSettings;\n}\nasync function createTemplateFromText(\n  values: CustomTemplateFromFileContentPayload\n) {\n  try {\n    const { data } = await axios.post<CustomTemplate>(\n      buildUrl({ action: 'create/string' }),\n      values\n    );\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n\ninterface CustomTemplateFromFilePayload {\n  /** Title of the template */\n  Title: string;\n  /** Description of the template */\n  Description: string;\n  /** A note that will be displayed in the UI */\n  Note: string;\n  /** Platform associated with the template */\n  Platform: Platform;\n  /** Type of created stack */\n  Type: StackType;\n  /** File to upload */\n  File?: File;\n  /** URL of the template's logo */\n  Logo?: string;\n  /** Definitions of variables in the stack file */\n  Variables?: VariableDefinition[];\n  /** Indicates if this template is for Edge Stack. */\n  EdgeTemplate?: boolean;\n  EdgeSettings?: EdgeTemplateSettings;\n}\n\nasync function createTemplateFromFile(values: CustomTemplateFromFilePayload) {\n  try {\n    if (!values.File) {\n      throw new Error('No file provided');\n    }\n\n    const payload = json2formData({\n      Platform: values.Platform,\n      Type: values.Type,\n      Title: values.Title,\n      Description: values.Description,\n      Note: values.Note,\n      Logo: values.Logo,\n      File: values.File,\n      Variables: values.Variables,\n      EdgeTemplate: values.EdgeTemplate,\n      EdgeSettings: values.EdgeSettings,\n    });\n\n    const { data } = await axios.post<CustomTemplate>(\n      buildUrl({ action: 'create/file' }),\n      payload,\n      {\n        headers: { 'Content-Type': 'multipart/form-data' },\n      }\n    );\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n\n/**\n * Payload for creating a custom template from a Git repository.\n */\ninterface CustomTemplateFromGitRepositoryPayload {\n  /** URL of the template's logo. */\n  Logo: string;\n  /** Title of the template. Required. */\n  Title: string;\n  /** Description of the template. Required. */\n  Description: string;\n  /** A note that will be displayed in the UI. Supports HTML content. */\n  Note: string;\n  /** Platform associated with the template. */\n  Platform: Platform;\n  /** Type of created stack. Required. */\n  Type: StackType;\n  /** URL of a Git repository hosting the Stack file. Required. */\n  RepositoryURL: string;\n  /** Reference name of a Git repository hosting the Stack file. */\n  RepositoryReferenceName?: string;\n  /** Use basic authentication to clone the Git repository. */\n  RepositoryAuthentication?: boolean;\n  /** Username used in basic authentication when RepositoryAuthentication is true. */\n  RepositoryUsername?: string;\n  /** Password used in basic authentication when RepositoryAuthentication is true. */\n  RepositoryPassword?: string;\n  /** GitCredentialID used to identify the bound git credential. Required when RepositoryAuthentication\n   * is true and RepositoryUsername/RepositoryPassword are not provided\n   */\n  RepositoryGitCredentialID?: number;\n  /** Path to the Stack file inside the Git repository. */\n  ComposeFilePathInRepository: string;\n  /** Definitions of variables in the stack file. */\n  Variables: VariableDefinition[];\n  /** Indicates whether to skip SSL verification when cloning the Git repository. */\n  TLSSkipVerify?: boolean;\n  /** Indicates if the Kubernetes template is created from a Docker Compose file. */\n  IsComposeFormat?: boolean;\n  /** Indicates if this template is for Edge Stack. */\n  EdgeTemplate?: boolean;\n  EdgeSettings?: EdgeTemplateSettings;\n}\nasync function createTemplateFromGit(\n  values: CustomTemplateFromGitRepositoryPayload\n) {\n  try {\n    const { data } = await axios.post<CustomTemplate>(\n      buildUrl({ action: 'create/repository' }),\n      values\n    );\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n","import { UserId } from '@/portainer/users/types';\nimport { StackType } from '@/react/common/stacks/types';\n\nimport { ResourceControlResponse } from '../../access-control/types';\nimport { RelativePathModel, RepoConfigResponse } from '../../gitops/types';\nimport { VariableDefinition } from '../../custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { Platform } from '../types';\nimport { RegistryId } from '../../registries/types';\nimport { getDefaultRelativePathModel } from '../../gitops/RelativePathFieldset/types';\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nexport type CustomTemplate = {\n  Id: number;\n\n  /**\n   * Title of the template.\n   * @example \"Nginx\"\n   */\n  Title: string;\n\n  /**\n   * Description of the template.\n   * @example \"High performance web server\"\n   */\n  Description: string;\n\n  /**\n   * Path on disk to the repository hosting the Stack file.\n   * @example \"/data/custom_template/3\"\n   */\n  ProjectPath: string;\n\n  /**\n   * Path to the Stack file.\n   * @example \"docker-compose.yml\"\n   */\n  EntryPoint: string;\n\n  /**\n   * User identifier who created this template.\n   * @example 3\n   */\n  CreatedByUserId: UserId;\n\n  /**\n   * A note that will be displayed in the UI. Supports HTML content.\n   * @example \"This is my <b>custom</b> template\"\n   */\n  Note: string;\n\n  /**\n   * Platform associated with the template.\n   * Valid values are: 1 - 'linux', 2 - 'windows'.\n   * @example 1\n   */\n  Platform: Platform;\n\n  /**\n   * URL of the template's logo.\n   * @example \"https://portainer.io/img/logo.svg\"\n   */\n  Logo: string;\n\n  /**\n   * Type of created stack:\n   * - 1: swarm\n   * - 2: compose\n   * - 3: kubernetes\n   * @example 1\n   */\n  Type: StackType;\n\n  /**\n   * ResourceControl associated with the template.\n   */\n  ResourceControl?: ResourceControlResponse;\n\n  Variables: VariableDefinition[];\n\n  /**\n   * GitConfig for the template.\n   */\n  GitConfig?: RepoConfigResponse;\n\n  /**\n   * Indicates if the Kubernetes template is created from a Docker Compose file.\n   * @example false\n   */\n  IsComposeFormat: boolean;\n\n  /** EdgeTemplate indicates if this template purpose for Edge Stack */\n  EdgeTemplate: boolean;\n\n  EdgeSettings?: EdgeTemplateSettings;\n};\n\n/**\n * EdgeTemplateSettings represents the configuration of a custom template for Edge\n */\nexport type EdgeTemplateSettings = {\n  PrePullImage: boolean;\n\n  RetryDeploy: boolean;\n\n  PrivateRegistryId: RegistryId | undefined;\n\n  RelativePathSettings: RelativePathModel;\n};\n\nexport type CustomTemplateFileContent = {\n  FileContent: string;\n};\n\nexport const CustomTemplateKubernetesType = StackType.Kubernetes;\n\nexport function getDefaultEdgeTemplateSettings() {\n  if (!isBE) {\n    return undefined;\n  }\n\n  return {\n    PrePullImage: false,\n    RetryDeploy: false,\n    PrivateRegistryId: undefined,\n    RelativePathSettings: getDefaultRelativePathModel(),\n  };\n}\n","import { StackType } from '@/react/common/stacks/types';\nimport { type Values as CommonFieldsValues } from '@/react/portainer/custom-templates/components/CommonFields';\nimport { DefinitionFieldValues } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { Platform } from '@/react/portainer/templates/types';\nimport { GitFormModel } from '@/react/portainer/gitops/types';\nimport { AccessControlFormData } from '@/react/portainer/access-control/types';\n\nimport {\n  editor,\n  upload,\n  git,\n} from '@@/BoxSelector/common-options/build-methods';\n\nimport { EdgeTemplateSettings } from '../types';\n\nexport const initialBuildMethods = [editor, upload, git] as const;\n\nexport type Method = (typeof initialBuildMethods)[number]['value'];\n\nexport interface FormValues extends CommonFieldsValues {\n  Platform: Platform;\n  Type: StackType;\n  Method: Method;\n  FileContent: string;\n  File: File | undefined;\n  Git: GitFormModel;\n  Variables: DefinitionFieldValues;\n  AccessControl?: AccessControlFormData;\n  EdgeSettings?: EdgeTemplateSettings;\n}\n","import { SchemaOf, boolean, mixed, number, object } from 'yup';\n\nimport { relativePathValidation } from '@/react/portainer/gitops/RelativePathFieldset/validation';\nimport { EdgeTemplateSettings } from '@/react/portainer/templates/custom-templates/types';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nexport function edgeFieldsetValidation(): SchemaOf<EdgeTemplateSettings> {\n  if (!isBE) {\n    return mixed().default(undefined) as SchemaOf<EdgeTemplateSettings>;\n  }\n\n  return object({\n    RelativePathSettings: relativePathValidation(),\n    PrePullImage: boolean().default(false),\n    RetryDeploy: boolean().default(false),\n    PrivateRegistryId: number().default(undefined),\n    StaggerConfig: mixed(),\n  });\n}\n","import { StackType } from '../types';\n\nconst dockerTexts = {\n  editor: {\n    placeholder: 'Define or paste the content of your docker compose file here',\n    description: (\n      <p>\n        You can get more information about Compose file format in the{' '}\n        <a\n          href=\"https://docs.docker.com/compose/compose-file/\"\n          target=\"_blank\"\n          rel=\"noreferrer\"\n        >\n          official documentation\n        </a>\n        .\n      </p>\n    ),\n  },\n  upload: 'You can upload a Compose file from your computer.',\n} as const;\n\nexport const textByType = {\n  [StackType.DockerCompose]: dockerTexts,\n  [StackType.DockerSwarm]: dockerTexts,\n  [StackType.Kubernetes]: {\n    editor: {\n      placeholder: 'Define or paste the content of your manifest file here',\n      description: (\n        <>\n          <p>\n            Templates allow deploying any kind of Kubernetes resource\n            (Deployment, Secret, ConfigMap...)\n          </p>\n          <p>\n            You can get more information about Kubernetes file format in the{' '}\n            <a\n              href=\"https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/\"\n              target=\"_blank\"\n              rel=\"noreferrer\"\n            >\n              official documentation\n            </a>\n            .\n          </p>\n        </>\n      ),\n    },\n    upload: 'You can upload a Manifest file from your computer.',\n  },\n} as const;\n","import { useFormikContext } from 'formik';\n\nimport { VariableDefinition } from '../../custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport {\n  getTemplateVariables,\n  intersectVariables,\n  isTemplateVariablesEnabled,\n} from '../../custom-templates/components/utils';\n\nexport function useParseTemplateOnFileChange(\n  oldVariables: VariableDefinition[]\n) {\n  const { setFieldValue, setFieldError } = useFormikContext();\n\n  return handleChangeFileContent;\n\n  function handleChangeFileContent(value: string) {\n    setFieldValue(\n      'FileContent',\n      value,\n      isTemplateVariablesEnabled ? !value : true\n    );\n    parseTemplate(value);\n  }\n\n  function parseTemplate(value: string) {\n    if (!isTemplateVariablesEnabled || value === '') {\n      setFieldValue('Variables', []);\n      return;\n    }\n\n    const [variables, validationError] = getTemplateVariables(value);\n    const isValid = !!variables;\n\n    setFieldError(\n      'FileContent',\n      validationError ? `Template invalid: ${validationError}` : undefined\n    );\n    if (isValid) {\n      setFieldValue('Variables', intersectVariables(oldVariables, variables));\n    }\n  }\n}\n","import { FormikErrors } from 'formik';\nimport { SetStateAction } from 'react';\n\nimport { RelativePathFieldset } from '@/react/portainer/gitops/RelativePathFieldset/RelativePathFieldset';\nimport { PrivateRegistryFieldsetWrapper } from '@/react/edge/edge-stacks/ItemView/EditEdgeStackForm/PrivateRegistryFieldsetWrapper';\nimport { PrePullToggle } from '@/react/edge/edge-stacks/components/PrePullToggle';\nimport { RetryDeployToggle } from '@/react/edge/edge-stacks/components/RetryDeployToggle';\nimport { EdgeTemplateSettings } from '@/react/portainer/templates/custom-templates/types';\nimport { GitFormModel } from '@/react/portainer/gitops/types';\n\nimport { FormSection } from '@@/form-components/FormSection';\n\nexport function EdgeSettingsFieldset({\n  values,\n  setValues,\n  errors,\n  gitConfig,\n  fileValues,\n  setFieldError,\n}: {\n  values: EdgeTemplateSettings;\n  setValues: (values: SetStateAction<EdgeTemplateSettings>) => void;\n  errors?: FormikErrors<EdgeTemplateSettings>;\n  gitConfig?: GitFormModel;\n  setFieldError: (field: string, message: string) => void;\n  fileValues: {\n    fileContent?: string;\n    file?: File;\n  };\n}) {\n  const isGit = !!gitConfig;\n  return (\n    <>\n      {isGit && (\n        <FormSection title=\"Advanced settings\">\n          <RelativePathFieldset\n            value={values.RelativePathSettings}\n            gitModel={gitConfig}\n            onChange={(newValues) =>\n              setValues((values) => ({\n                ...values,\n                RelativePathSettings: {\n                  ...values.RelativePathSettings,\n                  ...newValues,\n                },\n              }))\n            }\n          />\n        </FormSection>\n      )}\n\n      <PrivateRegistryFieldsetWrapper\n        value={values.PrivateRegistryId}\n        onChange={(registryId) =>\n          setValues((values) => ({\n            ...values,\n            PrivateRegistryId: registryId,\n          }))\n        }\n        values={fileValues}\n        onFieldError={(error) => setFieldError('Edge?.Registries', error)}\n        error={errors?.PrivateRegistryId}\n        isGit={isGit}\n      />\n\n      <PrePullToggle\n        onChange={(value) =>\n          setValues((values) => ({ ...values, PrePullImage: value }))\n        }\n        value={values.PrePullImage}\n      />\n\n      <RetryDeployToggle\n        onChange={(value) =>\n          setValues((values) => ({ ...values, RetryDeploy: value }))\n        }\n        value={values.RetryDeploy}\n      />\n    </>\n  );\n}\n","import { Form, FormikErrors, useFormikContext } from 'formik';\n\nimport { CommonFields } from '@/react/portainer/custom-templates/components/CommonFields';\nimport { CustomTemplatesVariablesDefinitionField } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { PlatformField } from '@/react/portainer/custom-templates/components/PlatformSelector';\nimport { GitForm } from '@/react/portainer/gitops/GitForm';\nimport { isTemplateVariablesEnabled } from '@/react/portainer/custom-templates/components/utils';\nimport { TemplateTypeSelector } from '@/react/portainer/custom-templates/components/TemplateTypeSelector';\nimport { AccessControlForm } from '@/react/portainer/access-control';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { applySetStateAction } from '@/react-tools/apply-set-state-action';\nimport { AccessControlFormData } from '@/react/portainer/access-control/types';\nimport { textByType } from '@/react/common/stacks/common/form-texts';\nimport { StackType } from '@/react/common/stacks/types';\n\nimport { BoxSelector } from '@@/BoxSelector';\nimport { WebEditorForm, usePreventExit } from '@@/WebEditorForm';\nimport { FileUploadForm } from '@@/form-components/FileUpload';\nimport { FormActions } from '@@/form-components/FormActions';\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { EdgeTemplateSettings } from '../types';\nimport { useParseTemplateOnFileChange } from '../useParseTemplateOnFileChange';\n\nimport { EdgeSettingsFieldset } from './EdgeSettingsFieldset';\nimport { FormValues, Method, initialBuildMethods } from './types';\n\nexport function InnerForm({\n  isLoading,\n  environmentId,\n  buildMethods,\n}: {\n  isLoading: boolean;\n  environmentId?: EnvironmentId;\n  buildMethods: Array<(typeof initialBuildMethods)[number]>;\n}) {\n  const {\n    values,\n    initialValues,\n    setFieldValue,\n    errors,\n    isValid,\n    setFieldError,\n    setValues,\n    isSubmitting,\n  } = useFormikContext<FormValues>();\n\n  const isGit = values.Method === 'repository';\n  const isEditor = values.Method === 'editor';\n\n  usePreventExit(\n    initialValues.FileContent,\n    values.FileContent,\n    isEditor && !isSubmitting && !isLoading\n  );\n\n  const handleChangeFileContent = useParseTemplateOnFileChange(\n    values.Variables\n  );\n\n  const texts = textByType[values.Type];\n\n  return (\n    <Form className=\"form-horizontal\">\n      <CommonFields\n        values={values}\n        onChange={(newValues) =>\n          setValues((values) => ({ ...values, ...newValues }))\n        }\n        errors={errors}\n      />\n\n      {values.Type !== StackType.Kubernetes && (\n        <>\n          <PlatformField\n            value={values.Platform}\n            onChange={(value) => setFieldValue('Platform', value)}\n          />\n\n          <TemplateTypeSelector\n            value={values.Type}\n            onChange={(value) => setFieldValue('Type', value)}\n          />\n        </>\n      )}\n\n      <FormSection title=\"Build method\">\n        <BoxSelector\n          slim\n          options={buildMethods}\n          value={values.Method}\n          onChange={handleChangeMethod}\n          radioName=\"buildMethod\"\n        />\n      </FormSection>\n\n      {isEditor && (\n        <WebEditorForm\n          id=\"custom-template-creation-editor\"\n          value={values.FileContent}\n          onChange={handleChangeFileContent}\n          yaml\n          placeholder={texts.editor.placeholder}\n          error={errors.FileContent}\n        >\n          {texts.editor.description}\n        </WebEditorForm>\n      )}\n\n      {values.Method === 'upload' && (\n        <FileUploadForm\n          description={texts.upload}\n          value={values.File}\n          onChange={(value) => setFieldValue('File', value)}\n          required\n        />\n      )}\n\n      {isGit && (\n        <GitForm\n          deployMethod={\n            values.Type === StackType.Kubernetes ? 'manifest' : 'compose'\n          }\n          value={values.Git}\n          onChange={(newValues) =>\n            setValues((values) => ({\n              ...values,\n              Git: { ...values.Git, ...newValues },\n            }))\n          }\n          errors={errors.Git}\n        />\n      )}\n\n      {isTemplateVariablesEnabled && (\n        <CustomTemplatesVariablesDefinitionField\n          value={values.Variables}\n          onChange={(values) => setFieldValue('Variables', values)}\n          isVariablesNamesFromParent={isEditor}\n          errors={errors.Variables}\n        />\n      )}\n\n      {!!values.AccessControl && (\n        <AccessControlForm\n          environmentId={environmentId || 0}\n          onChange={(values) => setFieldValue('AccessControl', values)}\n          values={values.AccessControl}\n          errors={errors.AccessControl as FormikErrors<AccessControlFormData>}\n          formNamespace=\"accessControl\"\n        />\n      )}\n\n      {values.EdgeSettings && (\n        <EdgeSettingsFieldset\n          setValues={(edgeSetValues) =>\n            setValues((values) => ({\n              ...values,\n              EdgeSettings: applySetStateAction(\n                edgeSetValues,\n                values.EdgeSettings\n              ),\n            }))\n          }\n          gitConfig={isGit ? values.Git : undefined}\n          fileValues={{\n            fileContent: values.FileContent,\n            file: values.File,\n          }}\n          values={values.EdgeSettings}\n          errors={errors.EdgeSettings as FormikErrors<EdgeTemplateSettings>}\n          setFieldError={setFieldError}\n        />\n      )}\n\n      <FormActions\n        isLoading={isLoading}\n        isValid={isValid}\n        loadingText=\"Creating custom template...\"\n        submitLabel=\"Create custom template\"\n      />\n    </Form>\n  );\n\n  function handleChangeMethod(method: Method) {\n    setFieldValue('FileContent', '');\n    setFieldValue('Variables', []);\n    setFieldValue('Method', method);\n  }\n}\n","import { Formik } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { StackType } from '@/react/common/stacks/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useCreateTemplateMutation } from '@/react/portainer/templates/custom-templates/queries/useCreateTemplateMutation';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useEnvironmentDeploymentOptions } from '@/react/portainer/environments/queries/useEnvironment';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { isKubernetesEnvironment } from '@/react/portainer/environments/utils';\n\nimport { useInitialValues } from './useInitialValues';\nimport { FormValues, initialBuildMethods } from './types';\nimport { useValidation } from './useValidation';\nimport { InnerForm } from './InnerForm';\n\nexport function CreateForm({\n  environmentId,\n  viewType,\n}: {\n  environmentId?: EnvironmentId;\n  viewType: 'kube' | 'docker' | 'edge';\n}) {\n  const isEdge = !environmentId;\n  const router = useRouter();\n  const mutation = useCreateTemplateMutation();\n  const validation = useValidation({ viewType });\n  const buildMethods = useBuildMethods();\n\n  const initialValues = useInitialValues({\n    defaultType:\n      viewType === 'kube' ? StackType.Kubernetes : StackType.DockerCompose,\n    isEdge,\n    buildMethods: buildMethods.map((method) => method.value),\n  });\n\n  if (!initialValues) {\n    return null;\n  }\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      validateOnMount\n    >\n      <InnerForm\n        isLoading={mutation.isLoading}\n        environmentId={environmentId}\n        buildMethods={buildMethods}\n      />\n    </Formik>\n  );\n\n  function handleSubmit(values: FormValues) {\n    mutation.mutate(\n      {\n        ...values,\n        EdgeTemplate: isEdge,\n      },\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Template created');\n          router.stateService.go('^');\n        },\n      }\n    );\n  }\n}\n\nfunction useBuildMethods() {\n  const environment = useCurrentEnvironment(false);\n\n  const deploymentOptionsQuery = useEnvironmentDeploymentOptions(\n    environment.data && isKubernetesEnvironment(environment.data.Type)\n      ? environment.data.Id\n      : undefined\n  );\n  return initialBuildMethods.filter((method) => {\n    switch (method.value) {\n      case 'editor':\n        return !deploymentOptionsQuery.data?.hideWebEditor;\n      case 'upload':\n        return !deploymentOptionsQuery.data?.hideFileUpload;\n      case 'repository':\n        return true;\n      default:\n        return true;\n    }\n  });\n}\n","import { mixed, number, object, string } from 'yup';\nimport { useMemo } from 'react';\n\nimport { StackType } from '@/react/common/stacks/types';\nimport { validation as commonFieldsValidation } from '@/react/portainer/custom-templates/components/CommonFields';\nimport { Platform } from '@/react/portainer/templates/types';\nimport { variablesValidation } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { buildGitValidationSchema } from '@/react/portainer/gitops/GitForm';\nimport { useGitCredentials } from '@/react/portainer/account/git-credentials/git-credentials.service';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { useCustomTemplates } from '@/react/portainer/templates/custom-templates/queries/useCustomTemplates';\nimport { edgeFieldsetValidation } from '@/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.validation';\n\nimport { file } from '@@/form-components/yup-file-validation';\nimport {\n  editor,\n  git,\n  upload,\n} from '@@/BoxSelector/common-options/build-methods';\n\nimport { initialBuildMethods } from './types';\n\nexport function useValidation({\n  viewType,\n}: {\n  viewType: 'kube' | 'docker' | 'edge';\n}) {\n  const { user } = useCurrentUser();\n  const gitCredentialsQuery = useGitCredentials(user.Id);\n  const customTemplatesQuery = useCustomTemplates({\n    params: {\n      edge: undefined,\n    },\n  });\n\n  return useMemo(\n    () =>\n      object({\n        Platform: number()\n          .oneOf([Platform.LINUX, Platform.WINDOWS])\n          .default(Platform.LINUX),\n        Type: number()\n          .oneOf([\n            StackType.DockerCompose,\n            StackType.DockerSwarm,\n            StackType.Kubernetes,\n          ])\n          .default(StackType.DockerCompose),\n        Method: string().oneOf(initialBuildMethods.map((m) => m.value)),\n        FileContent: string().when('Method', {\n          is: editor.value,\n          then: (schema) => schema.required('Template is required.'),\n        }),\n        File: file().when('Method', {\n          is: upload.value,\n          then: (schema) => schema.required(),\n        }),\n        Git: mixed().when('Method', {\n          is: git.value,\n          then: () =>\n            buildGitValidationSchema(gitCredentialsQuery.data || [], false),\n        }),\n        Variables: variablesValidation(),\n        EdgeSettings: viewType === 'edge' ? edgeFieldsetValidation() : mixed(),\n      }).concat(\n        commonFieldsValidation({\n          templates: customTemplatesQuery.data,\n        })\n      ),\n    [customTemplatesQuery.data, gitCredentialsQuery.data, viewType]\n  );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { parseAccessControlFormData } from '@/react/portainer/access-control/utils';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { StackType } from '@/react/common/stacks/types';\n\nimport { Platform } from '../../types';\nimport { useFetchTemplateFile } from '../../app-templates/queries/useFetchTemplateFile';\nimport { getDefaultEdgeTemplateSettings } from '../types';\n\nimport { FormValues, Method } from './types';\n\nexport function useInitialValues({\n  defaultType,\n  isEdge = false,\n  buildMethods,\n}: {\n  defaultType: StackType;\n  isEdge?: boolean;\n  buildMethods: Array<Method>;\n}): FormValues | undefined {\n  const { user, isPureAdmin } = useCurrentUser();\n\n  const { appTemplateId, type = defaultType } = useAppTemplateParams();\n\n  const {\n    params: { fileContent = '' },\n  } = useCurrentStateAndParams();\n\n  const fileContentQuery = useFetchTemplateFile(appTemplateId);\n  if (fileContentQuery.isLoading) {\n    return undefined;\n  }\n\n  return {\n    Title: '',\n    FileContent: (fileContentQuery.data ?? '') || fileContent,\n    Type: type,\n    Platform: Platform.LINUX,\n    File: undefined,\n    Method: buildMethods[0],\n    Description: '',\n    Note: '',\n    Logo: '',\n    Variables: [],\n    Git: {\n      RepositoryURL: '',\n      RepositoryReferenceName: '',\n      RepositoryAuthentication: false,\n      RepositoryUsername: '',\n      RepositoryPassword: '',\n      ComposeFilePathInRepository: 'docker-compose.yml',\n      AdditionalFiles: [],\n      RepositoryURLValid: true,\n      TLSSkipVerify: false,\n    },\n    AccessControl: isEdge\n      ? undefined\n      : parseAccessControlFormData(isPureAdmin, user.Id),\n    EdgeSettings: isEdge ? getDefaultEdgeTemplateSettings() : undefined,\n  };\n}\n\nfunction useAppTemplateParams() {\n  const {\n    params: { type, appTemplateId },\n  } = useCurrentStateAndParams();\n\n  return {\n    type: getStackType(type),\n    appTemplateId: getTemplateId(appTemplateId),\n  };\n\n  function getStackType(type: string): StackType | undefined {\n    if (!type) {\n      return undefined;\n    }\n\n    const typeNum = parseInt(type, 10);\n\n    if (\n      [\n        StackType.DockerSwarm,\n        StackType.DockerCompose,\n        StackType.Kubernetes,\n      ].includes(typeNum)\n    ) {\n      return typeNum;\n    }\n\n    return undefined;\n  }\n\n  function getTemplateId(appTemplateId: string): number | undefined {\n    const id = parseInt(appTemplateId, 10);\n\n    return Number.isNaN(id) ? undefined : id;\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  mutationOptions,\n  withGlobalError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { StackType } from '@/react/common/stacks/types';\nimport { VariableDefinition } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField';\nimport { AccessControlFormData } from '@/react/portainer/access-control/types';\nimport { applyResourceControl } from '@/react/portainer/access-control/access-control.service';\n\nimport { CustomTemplate, EdgeTemplateSettings } from '../types';\nimport { Platform } from '../../types';\n\nimport { buildUrl } from './build-url';\n\nexport function useUpdateTemplateMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    async (\n      payload: CustomTemplateUpdatePayload & {\n        AccessControl?: AccessControlFormData;\n        resourceControlId?: number;\n      }\n    ) => {\n      await updateTemplate(payload);\n\n      if (payload.resourceControlId && payload.AccessControl) {\n        await applyResourceControl(\n          payload.AccessControl,\n          payload.resourceControlId\n        );\n      }\n    },\n    mutationOptions(\n      withInvalidate(queryClient, [['custom-templates']]),\n      withGlobalError('Failed to update template')\n    )\n  );\n}\n\n/**\n * Payload for updating a custom template\n */\ninterface CustomTemplateUpdatePayload {\n  id: CustomTemplate['Id'];\n  /** URL of the template's logo */\n  Logo?: string;\n  /** Title of the template */\n  Title: string;\n  /** Description of the template */\n  Description: string;\n  /** A note that will be displayed in the UI. Supports HTML content */\n  Note?: string;\n  /**\n   * Platform associated to the template.\n   * Required for Docker stacks\n   */\n  Platform?: Platform;\n  /**\n   * Type of created stack\n   * Required\n   */\n  Type: StackType;\n  /** URL of a Git repository hosting the Stack file */\n  RepositoryURL?: string;\n  /** Reference name of a Git repository hosting the Stack file */\n  RepositoryReferenceName?: string;\n  /** Use basic authentication to clone the Git repository */\n  RepositoryAuthentication?: boolean;\n  /** Username used in basic authentication. Required when RepositoryAuthentication is true */\n  RepositoryUsername?: string;\n  /** Password used in basic authentication. Required when RepositoryAuthentication is true */\n  RepositoryPassword?: string;\n  /**\n   * GitCredentialID used to identify the bound git credential.\n   * Required when RepositoryAuthentication is true and RepositoryUsername/RepositoryPassword are not provided\n   */\n  RepositoryGitCredentialID?: number;\n  /** Path to the Stack file inside the Git repository */\n  ComposeFilePathInRepository?: string;\n  /** Content of stack file */\n  FileContent?: string;\n  /** Definitions of variables in the stack file */\n  Variables?: VariableDefinition[];\n  /** TLSSkipVerify skips SSL verification when cloning the Git repository */\n  TLSSkipVerify?: boolean;\n  /** IsComposeFormat indicates if the Kubernetes template is created from a Docker Compose file */\n  IsComposeFormat?: boolean;\n  /** EdgeTemplate indicates if this template purpose for Edge Stack */\n  EdgeTemplate?: boolean;\n  EdgeSettings?: EdgeTemplateSettings;\n}\n\nasync function updateTemplate(values: CustomTemplateUpdatePayload) {\n  try {\n    const { data } = await axios.put<CustomTemplate>(\n      buildUrl({ id: values.id }),\n      values\n    );\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n","import { Form, FormikErrors, useFormikContext } from 'formik';\nimport { RefreshCw } from 'lucide-react';\n\nimport { CommonFields } from '@/react/portainer/custom-templates/components/CommonFields';\nimport { CustomTemplatesVariablesDefinitionField } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { PlatformField } from '@/react/portainer/custom-templates/components/PlatformSelector';\nimport { GitForm } from '@/react/portainer/gitops/GitForm';\nimport { isTemplateVariablesEnabled } from '@/react/portainer/custom-templates/components/utils';\nimport { TemplateTypeSelector } from '@/react/portainer/custom-templates/components/TemplateTypeSelector';\nimport { applySetStateAction } from '@/react-tools/apply-set-state-action';\nimport { EdgeTemplateSettings } from '@/react/portainer/templates/custom-templates/types';\nimport { EdgeSettingsFieldset } from '@/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset';\nimport { StackType } from '@/react/common/stacks/types';\nimport { textByType } from '@/react/common/stacks/common/form-texts';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { AccessControlForm } from '@/react/portainer/access-control';\nimport { AccessControlFormData } from '@/react/portainer/access-control/types';\n\nimport { WebEditorForm, usePreventExit } from '@@/WebEditorForm';\nimport { FormActions } from '@@/form-components/FormActions';\nimport { Button } from '@@/buttons';\nimport { FormError } from '@@/form-components/FormError';\n\nimport { useParseTemplateOnFileChange } from '../useParseTemplateOnFileChange';\n\nimport { FormValues } from './types';\n\nexport function InnerForm({\n  isLoading,\n  environmentId,\n  isEditorReadonly,\n  gitFileContent,\n  gitFileError,\n  refreshGitFile,\n}: {\n  isLoading: boolean;\n  environmentId?: EnvironmentId;\n  isEditorReadonly: boolean;\n  gitFileContent?: string;\n  gitFileError?: string;\n  refreshGitFile: () => void;\n}) {\n  const {\n    values,\n    initialValues,\n    setFieldValue,\n    errors,\n    isValid,\n    setFieldError,\n    setValues,\n    isSubmitting,\n    dirty,\n  } = useFormikContext<FormValues>();\n\n  usePreventExit(\n    initialValues.FileContent,\n    values.FileContent,\n    !isEditorReadonly && !isSubmitting && !isLoading\n  );\n\n  const handleChangeFileContent = useParseTemplateOnFileChange(\n    values.Variables\n  );\n\n  const texts = textByType[values.Type];\n\n  return (\n    <Form className=\"form-horizontal\">\n      <CommonFields\n        values={values}\n        onChange={(newValues) =>\n          setValues((values) => ({ ...values, ...newValues }))\n        }\n        errors={errors}\n      />\n\n      {values.Type !== StackType.Kubernetes && (\n        <>\n          <PlatformField\n            value={values.Platform}\n            onChange={(value) => setFieldValue('Platform', value)}\n          />\n\n          <TemplateTypeSelector\n            value={values.Type}\n            onChange={(value) => setFieldValue('Type', value)}\n          />\n        </>\n      )}\n\n      <WebEditorForm\n        id=\"edit-custom-template-editor\"\n        value={gitFileContent || values.FileContent}\n        onChange={handleChangeFileContent}\n        yaml\n        placeholder={\n          gitFileContent\n            ? 'Preview of the file from git repository'\n            : texts.editor.placeholder\n        }\n        error={errors.FileContent}\n        readonly={isEditorReadonly}\n      >\n        {texts.editor.description}\n      </WebEditorForm>\n\n      {values.Git && (\n        <>\n          <GitForm\n            value={values.Git}\n            onChange={(newValues) =>\n              setValues((values) => ({\n                ...values,\n                // set ! for values.Git because this callback will only be called when it's defined (see L94)\n                Git: { ...values.Git!, ...newValues },\n              }))\n            }\n            deployMethod={\n              values.Type === StackType.Kubernetes ? 'manifest' : 'compose'\n            }\n            errors={typeof errors.Git === 'object' ? errors.Git : undefined}\n          />\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <Button color=\"light\" icon={RefreshCw} onClick={refreshGitFile}>\n                Reload custom template\n              </Button>\n            </div>\n            {gitFileError && (\n              <div className=\"col-sm-12\">\n                <FormError>\n                  Custom template could not be loaded, {gitFileError}.\n                </FormError>\n              </div>\n            )}\n          </div>\n        </>\n      )}\n\n      {isTemplateVariablesEnabled && (\n        <CustomTemplatesVariablesDefinitionField\n          value={values.Variables}\n          onChange={(values) => setFieldValue('Variables', values)}\n          isVariablesNamesFromParent={!isEditorReadonly}\n          errors={errors.Variables}\n        />\n      )}\n\n      {!!values.AccessControl && (\n        <AccessControlForm\n          environmentId={environmentId || 0}\n          onChange={(values) => setFieldValue('AccessControl', values)}\n          values={values.AccessControl}\n          errors={errors.AccessControl as FormikErrors<AccessControlFormData>}\n          formNamespace=\"accessControl\"\n        />\n      )}\n\n      {values.EdgeSettings && (\n        <EdgeSettingsFieldset\n          setValues={(edgeValues) =>\n            setFieldValue(\n              'EdgeSettings',\n              applySetStateAction(edgeValues, values.EdgeSettings)\n            )\n          }\n          gitConfig={values.Git}\n          fileValues={{\n            fileContent: values.FileContent,\n          }}\n          values={values.EdgeSettings}\n          errors={errors.EdgeSettings as FormikErrors<EdgeTemplateSettings>}\n          setFieldError={setFieldError}\n        />\n      )}\n\n      <FormActions\n        isLoading={isLoading}\n        isValid={isValid && dirty}\n        loadingText=\"Updating custom template...\"\n        submitLabel=\"Update custom template\"\n      />\n    </Form>\n  );\n}\n","import { Formik } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useEnvironmentDeploymentOptions } from '@/react/portainer/environments/queries/useEnvironment';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { isKubernetesEnvironment } from '@/react/portainer/environments/utils';\n\nimport { CustomTemplate } from '../types';\nimport { useUpdateTemplateMutation } from '../queries/useUpdateTemplateMutation';\nimport { useCustomTemplateFile } from '../queries/useCustomTemplateFile';\nimport { TemplateViewType } from '../useViewType';\n\nimport { useInitialValues } from './useInitialValues';\nimport { FormValues } from './types';\nimport { useValidation } from './useValidation';\nimport { InnerForm } from './InnerForm';\n\nexport function EditForm({\n  template,\n  environmentId,\n  viewType,\n}: {\n  template: CustomTemplate;\n  environmentId?: EnvironmentId;\n  viewType: TemplateViewType;\n}) {\n  const isEdge = template.EdgeTemplate;\n  const isGit = !!template.GitConfig;\n\n  const router = useRouter();\n  const disableEditor = useDisableEditor(isGit);\n  const mutation = useUpdateTemplateMutation();\n  const validation = useValidation({\n    viewType,\n    isGit,\n    templateId: template.Id,\n  });\n\n  const fileContentQuery = useCustomTemplateFile(template.Id);\n\n  const initialValues = useInitialValues({\n    isEdge,\n    template,\n    templateFile: fileContentQuery.data,\n  });\n\n  if (fileContentQuery.isLoading || !initialValues) {\n    return null;\n  }\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      validateOnMount\n    >\n      <InnerForm\n        isLoading={mutation.isLoading}\n        environmentId={environmentId}\n        isEditorReadonly={disableEditor}\n        refreshGitFile={fileContentQuery.refetch}\n        gitFileContent={fileContentQuery.data}\n        gitFileError={\n          fileContentQuery.error instanceof Error\n            ? fileContentQuery.error.message\n            : ''\n        }\n      />\n    </Formik>\n  );\n\n  function handleSubmit(values: FormValues) {\n    mutation.mutate(\n      {\n        id: template.Id,\n        EdgeTemplate: template.EdgeTemplate,\n        Description: values.Description,\n        Title: values.Title,\n        Type: values.Type,\n        Logo: values.Logo,\n        FileContent: values.FileContent,\n        Note: values.Note,\n        Platform: values.Platform,\n        Variables: values.Variables,\n        EdgeSettings: values.EdgeSettings,\n        AccessControl: values.AccessControl,\n        resourceControlId: template.ResourceControl?.Id,\n        ...values.Git,\n      },\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Template updated successfully');\n          router.stateService.go('^');\n        },\n      }\n    );\n  }\n}\n\nfunction useDisableEditor(isGit: boolean) {\n  const environment = useCurrentEnvironment(false);\n\n  const deploymentOptionsQuery = useEnvironmentDeploymentOptions(\n    environment.data && isKubernetesEnvironment(environment.data.Type)\n      ? environment.data.Id\n      : undefined\n  );\n\n  return isGit || !!deploymentOptionsQuery.data?.hideAddWithForm;\n}\n","import { mixed, number, object, string } from 'yup';\nimport { useMemo } from 'react';\n\nimport { StackType } from '@/react/common/stacks/types';\nimport { validation as commonFieldsValidation } from '@/react/portainer/custom-templates/components/CommonFields';\nimport { Platform } from '@/react/portainer/templates/types';\nimport { variablesValidation } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { buildGitValidationSchema } from '@/react/portainer/gitops/GitForm';\nimport { useGitCredentials } from '@/react/portainer/account/git-credentials/git-credentials.service';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { useCustomTemplates } from '@/react/portainer/templates/custom-templates/queries/useCustomTemplates';\nimport { edgeFieldsetValidation } from '@/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.validation';\n\nimport { CustomTemplate } from '../types';\nimport { TemplateViewType } from '../useViewType';\n\nexport function useValidation({\n  isGit,\n  templateId,\n  viewType,\n}: {\n  isGit: boolean;\n  templateId: CustomTemplate['Id'];\n  viewType: TemplateViewType;\n}) {\n  const { user } = useCurrentUser();\n  const gitCredentialsQuery = useGitCredentials(user.Id);\n  const customTemplatesQuery = useCustomTemplates({\n    params: {\n      edge: undefined,\n    },\n  });\n\n  return useMemo(\n    () =>\n      object({\n        Platform: number()\n          .oneOf([Platform.LINUX, Platform.WINDOWS])\n          .default(Platform.LINUX),\n        Type: number()\n          .oneOf([\n            StackType.DockerCompose,\n            StackType.DockerSwarm,\n            StackType.Kubernetes,\n          ])\n          .default(StackType.DockerCompose),\n        FileContent: string().required('Template is required.'),\n\n        Git: isGit\n          ? buildGitValidationSchema(gitCredentialsQuery.data || [], false)\n          : mixed(),\n        Variables: variablesValidation(),\n        EdgeSettings: viewType === 'edge' ? edgeFieldsetValidation() : mixed(),\n      }).concat(\n        commonFieldsValidation({\n          templates: customTemplatesQuery.data,\n          currentTemplateId: templateId,\n        })\n      ),\n    [\n      customTemplatesQuery.data,\n      gitCredentialsQuery.data,\n      isGit,\n      templateId,\n      viewType,\n    ]\n  );\n}\n","import { parseAccessControlFormData } from '@/react/portainer/access-control/utils';\nimport { useCurrentUser, useIsEdgeAdmin } from '@/react/hooks/useUser';\nimport { toGitFormModel } from '@/react/portainer/gitops/types';\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\n\nimport { CustomTemplate } from '../types';\n\nimport { FormValues } from './types';\n\nexport function useInitialValues({\n  template,\n  templateFile,\n  isEdge,\n}: {\n  template: CustomTemplate;\n  templateFile: string | undefined;\n  isEdge: boolean;\n}): FormValues | undefined {\n  const { user } = useCurrentUser();\n\n  const isAdminQuery = useIsEdgeAdmin();\n\n  if (isAdminQuery.isLoading) {\n    return undefined;\n  }\n\n  return {\n    Title: template.Title,\n    FileContent: templateFile || '',\n    Type: template.Type,\n    Platform: template.Platform,\n    Description: template.Description,\n    Note: template.Note,\n    Logo: template.Logo,\n    Variables: template.Variables,\n    Git: template.GitConfig ? toGitFormModel(template.GitConfig) : undefined,\n    AccessControl:\n      !isEdge && template.ResourceControl\n        ? parseAccessControlFormData(\n            isAdminQuery.isAdmin,\n            user.Id,\n            new ResourceControlViewModel(template.ResourceControl)\n          )\n        : undefined,\n    EdgeSettings: template.EdgeSettings,\n  };\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { ListView } from '@/react/edge/templates/custom-templates/ListView';\nimport { AppTemplatesView } from '@/react/edge/templates/AppTemplatesView';\nimport { CreateView } from '@/react/portainer/templates/custom-templates/CreateView';\nimport { EditView } from '@/react/portainer/templates/custom-templates/EditView';\n\nexport const templatesModule = angular\n  .module('portainer.app.react.components.templates', [])\n  .component(\n    'edgeAppTemplatesView',\n    r2a(withCurrentUser(withUIRouter(AppTemplatesView)), [])\n  )\n  .component(\n    'edgeCustomTemplatesView',\n    r2a(withCurrentUser(withUIRouter(ListView)), [])\n  )\n  .component(\n    'createCustomTemplatesView',\n    r2a(withCurrentUser(withUIRouter(CreateView)), [])\n  )\n  .component(\n    'editCustomTemplatesView',\n    r2a(withCurrentUser(withUIRouter(EditView)), [])\n  ).name;\n","import { AppTemplatesList } from '@/react/portainer/templates/app-templates/AppTemplatesList';\nimport { useAppTemplates } from '@/react/portainer/templates/app-templates/queries/useAppTemplates';\nimport { TemplateType } from '@/react/portainer/templates/app-templates/types';\n\nimport { PageHeader } from '@@/PageHeader';\n\nexport function AppTemplatesView() {\n  const templatesQuery = useAppTemplates();\n\n  return (\n    <>\n      <PageHeader title=\"Application templates list\" breadcrumbs=\"Templates\" />\n\n      <AppTemplatesList\n        templates={templatesQuery.data}\n        templateLinkParams={(template) => ({\n          to: 'edge.stacks.new',\n          params: { templateId: template.Id, templateType: 'app' },\n        })}\n        disabledTypes={[TemplateType.Container]}\n        fixedCategories={['edge']}\n        storageKey=\"edge-app-templates\"\n      />\n    </>\n  );\n}\n","import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\n\nimport { useViewType } from '../useViewType';\n\nimport { CreateForm } from './CreateForm';\n\nexport function CreateView() {\n  const viewType = useViewType();\n  const environmentId = useEnvironmentId(false);\n\n  return (\n    <div>\n      <PageHeader\n        title=\"Create Custom template\"\n        breadcrumbs={[\n          { label: 'Custom Templates', link: '^' },\n          'Create Custom template',\n        ]}\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <Widget.Body>\n              <CreateForm viewType={viewType} environmentId={environmentId} />\n            </Widget.Body>\n          </Widget>\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\n\nimport { useCustomTemplate } from '../queries/useCustomTemplate';\nimport { useViewType } from '../useViewType';\n\nimport { EditForm } from './EditForm';\n\nexport function EditView() {\n  const viewType = useViewType();\n  const {\n    params: { id },\n  } = useCurrentStateAndParams();\n  const environmentId = useEnvironmentId(false);\n  const templateQuery = useCustomTemplate(id);\n\n  if (!templateQuery.data) {\n    return null;\n  }\n\n  const template = templateQuery.data;\n\n  return (\n    <div>\n      <PageHeader\n        title=\"Edit Custom template\"\n        breadcrumbs={[{ label: 'Custom Templates', link: '^' }, template.Title]}\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <Widget.Body>\n              <EditForm\n                environmentId={environmentId}\n                template={template}\n                viewType={viewType}\n              />\n            </Widget.Body>\n          </Widget>\n        </div>\n      </div>\n    </div>\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { WaitingRoomView } from '@/react/edge/edge-devices/WaitingRoomView';\nimport { ListView as EdgeStacksListView } from '@/react/edge/edge-stacks/ListView';\nimport { ListView as EdgeGroupsListView } from '@/react/edge/edge-groups/ListView';\n\nimport { templatesModule } from './templates';\n\nexport const viewsModule = angular\n  .module('portainer.edge.react.views', [templatesModule])\n  .component(\n    'waitingRoomView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(WaitingRoomView))), [])\n  )\n  .component(\n    'edgeStacksView',\n    r2a(withUIRouter(withCurrentUser(EdgeStacksListView)), [])\n  )\n  .component(\n    'edgeGroupsView',\n    r2a(withUIRouter(withCurrentUser(EdgeGroupsListView)), [])\n  ).name;\n","import { useQueryClient } from 'react-query';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { queryKeys } from '../queries/query-keys';\n\nimport { EdgeStacksDatatable } from './EdgeStacksDatatable';\n\nexport function ListView() {\n  const queryClient = useQueryClient();\n\n  return (\n    <>\n      <PageHeader\n        title=\"Edge Stacks list\"\n        breadcrumbs=\"Edge Stacks\"\n        reload\n        onReload={() => queryClient.invalidateQueries(queryKeys.base())}\n      />\n\n      <EdgeStacksDatatable />\n    </>\n  );\n}\n","import { PageHeader } from '@@/PageHeader';\n\nimport { EdgeGroupsDatatable } from './EdgeGroupsDatatable';\n\nexport function ListView() {\n  return (\n    <>\n      <PageHeader title=\"Edge Groups\" breadcrumbs=\"Edge Groups\" reload />\n      <EdgeGroupsDatatable />\n    </>\n  );\n}\n","import angular from 'angular';\n\nimport { componentsModule } from './components';\nimport { viewsModule } from './views';\n\nexport const reactModule = angular.module('portainer.edge.react', [\n  viewsModule,\n  componentsModule,\n]).name;\n","import angular from 'angular';\n\nimport { AccessHeaders } from '@/portainer/authorization-guard';\nimport edgeStackModule from './views/edge-stacks';\nimport { reactModule } from './react';\n\nangular\n  .module('portainer.edge', [edgeStackModule, reactModule])\n\n  .config(function config($stateRegistryProvider) {\n    const edge = {\n      name: 'edge',\n      url: '/edge',\n      parent: 'root',\n      abstract: true,\n      data: {\n        access: AccessHeaders.EdgeAdmin,\n      },\n    };\n\n    const groups = {\n      name: 'edge.groups',\n      url: '/groups',\n      views: {\n        'content@': {\n          component: 'edgeGroupsView',\n        },\n      },\n      data: {\n        docs: '/user/edge/groups',\n      },\n    };\n\n    const groupsNew = {\n      name: 'edge.groups.new',\n      url: '/new',\n      views: {\n        'content@': {\n          component: 'createEdgeGroupView',\n        },\n      },\n    };\n\n    const groupsEdit = {\n      name: 'edge.groups.edit',\n      url: '/:groupId',\n      views: {\n        'content@': {\n          component: 'editEdgeGroupView',\n        },\n      },\n    };\n\n    const stacks = {\n      name: 'edge.stacks',\n      url: '/stacks',\n      views: {\n        'content@': {\n          component: 'edgeStacksView',\n        },\n      },\n      data: {\n        docs: '/user/edge/stacks',\n      },\n    };\n\n    const stacksNew = {\n      name: 'edge.stacks.new',\n      url: '/new?templateId&templateType',\n      views: {\n        'content@': {\n          component: 'createEdgeStackView',\n        },\n      },\n      data: {\n        docs: '/user/edge/stacks/add',\n      },\n    };\n\n    const stacksEdit = {\n      name: 'edge.stacks.edit',\n      url: '/:stackId?tab&status',\n      views: {\n        'content@': {\n          component: 'editEdgeStackView',\n        },\n      },\n      params: {\n        status: {\n          dynamic: true,\n        },\n      },\n    };\n\n    const edgeJobs = {\n      name: 'edge.jobs',\n      url: '/jobs',\n      views: {\n        'content@': {\n          component: 'edgeJobsView',\n        },\n      },\n      data: {\n        docs: '/user/edge/jobs',\n      },\n    };\n\n    const edgeJob = {\n      name: 'edge.jobs.job',\n      url: '/:id',\n      views: {\n        'content@': {\n          component: 'edgeJobView',\n        },\n      },\n      params: {\n        tab: 0,\n      },\n    };\n\n    const edgeJobCreation = {\n      name: 'edge.jobs.new',\n      url: '/new',\n      views: {\n        'content@': {\n          component: 'createEdgeJobView',\n        },\n      },\n    };\n\n    $stateRegistryProvider.register({\n      name: 'edge.devices',\n      url: '/devices',\n      abstract: true,\n    });\n\n    if (process.env.PORTAINER_EDITION === 'BE') {\n      $stateRegistryProvider.register({\n        name: 'edge.devices.waiting-room',\n        url: '/waiting-room',\n        views: {\n          'content@': {\n            component: 'waitingRoomView',\n          },\n        },\n        data: {\n          docs: '/user/edge/waiting-room',\n        },\n      });\n    }\n\n    $stateRegistryProvider.register({\n      name: 'edge.templates',\n      url: '/templates?template',\n      views: {\n        'content@': {\n          component: 'edgeAppTemplatesView',\n        },\n      },\n      data: {\n        docs: '/user/edge/templates/application',\n      },\n    });\n\n    $stateRegistryProvider.register({\n      name: 'edge.templates.custom',\n      url: '/custom',\n      views: {\n        'content@': {\n          component: 'edgeCustomTemplatesView',\n        },\n      },\n      data: {\n        docs: '/user/edge/templates/custom',\n      },\n    });\n\n    $stateRegistryProvider.register({\n      name: 'edge.templates.custom.new',\n      url: '/new?appTemplateId&type',\n\n      views: {\n        'content@': {\n          component: 'createCustomTemplatesView',\n        },\n      },\n    });\n\n    $stateRegistryProvider.register({\n      name: 'edge.templates.custom.edit',\n      url: '/:id',\n\n      views: {\n        'content@': {\n          component: 'editCustomTemplatesView',\n        },\n      },\n    });\n\n    $stateRegistryProvider.register(edge);\n\n    $stateRegistryProvider.register(groups);\n    $stateRegistryProvider.register(groupsNew);\n    $stateRegistryProvider.register(groupsEdit);\n\n    $stateRegistryProvider.register(stacks);\n    $stateRegistryProvider.register(stacksNew);\n    $stateRegistryProvider.register(stacksEdit);\n\n    $stateRegistryProvider.register(edgeJobs);\n    $stateRegistryProvider.register(edgeJob);\n    $stateRegistryProvider.register(edgeJobCreation);\n  });\n","import { Calendar, Edit } from 'lucide-react';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport const cronMethodOptions: ReadonlyArray<BoxSelectorOption<string>> = [\n  {\n    id: 'config_basic',\n    value: 'basic',\n    icon: Calendar,\n    iconType: 'badge',\n    label: 'Basic configuration',\n    description: 'Select date from calendar',\n  },\n  {\n    id: 'config_advanced',\n    value: 'advanced',\n    icon: Edit,\n    iconType: 'badge',\n    label: 'Advanced configuration',\n    description: 'Write your own cron rule',\n  },\n] as const;\n","import moment from 'moment';\nimport { editor, upload } from '@@/BoxSelector/common-options/build-methods';\n\nimport { cronMethodOptions } from '@/react/edge/edge-jobs/CreateView/cron-method-options';\n\nexport class EdgeJobFormController {\n  /* @ngInject */\n  constructor($async, $scope) {\n    this.$scope = $scope;\n    this.$async = $async;\n\n    this.cronMethods = cronMethodOptions;\n    this.buildMethods = [editor, upload];\n\n    this.state = {\n      formValidationError: '',\n    };\n\n    this.scheduleValues = [\n      {\n        displayed: 'Every hour',\n        cron: '0 * * * *',\n      },\n      {\n        displayed: 'Every 2 hours',\n        cron: '0 */2 * * *',\n      },\n      {\n        displayed: 'Every day',\n        cron: '0 0 * * *',\n      },\n    ];\n\n    this.formValues = {\n      datetime: moment(),\n      scheduleValue: this.scheduleValues[0],\n      cronMethod: 'basic',\n      method: 'editor',\n    };\n\n    // see https://regexr.com/573i2\n    this.cronRegex =\n      /(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)|((((\\d+,)+\\d+|(\\d+(\\/|-)\\d+)|\\d+|\\*) ){4,6}((\\d+,)+\\d+|(\\d+(\\/|-)\\d+)|\\d+|\\*))/;\n\n    this.action = this.action.bind(this);\n    this.editorUpdate = this.editorUpdate.bind(this);\n    this.onChangeEnvironments = this.onChangeEnvironments.bind(this);\n    this.onChangeGroups = this.onChangeGroups.bind(this);\n    this.onChange = this.onChange.bind(this);\n    this.onCronMethodChange = this.onCronMethodChange.bind(this);\n    this.onBuildMethodChange = this.onBuildMethodChange.bind(this);\n  }\n\n  onChange(values) {\n    this.$scope.$evalAsync(() => {\n      this.formValues = {\n        ...this.formValues,\n        ...values,\n      };\n    });\n  }\n\n  onBuildMethodChange(value) {\n    this.onChange({ method: value });\n  }\n\n  onCronMethodChange(value) {\n    this.onChange({ cronMethod: value });\n  }\n\n  onChangeModel(model) {\n    const defaultTime = moment().add('hours', 1);\n    this.formValues = {\n      datetime: model.CronExpression ? cronToDatetime(model.CronExpression, defaultTime) : defaultTime,\n      scheduleValue: this.formValues.scheduleValue,\n      cronMethod: model.Recurring ? 'advanced' : 'basic',\n      method: this.formValues.method,\n    };\n  }\n\n  onChangeGroups(groups) {\n    return this.$scope.$evalAsync(() => {\n      this.model.EdgeGroups = groups ? groups : [];\n    });\n  }\n\n  action() {\n    this.state.formValidationError = '';\n\n    if (this.formValues.method === 'editor' && this.model.FileContent === '') {\n      this.state.formValidationError = 'Script file content must not be empty';\n      return;\n    }\n\n    if (this.formValues.cronMethod === 'basic') {\n      if (!this.model.Recurring && (this.formValues.datetime === undefined || !this.formValues.datetime.isValid())) {\n        this.state.formValidationError = 'Schedule date must not be empty';\n        return;\n      } else if (!this.model.Recurring) {\n        this.model.CronExpression = datetimeToCron(this.formValues.datetime);\n      } else {\n        this.model.CronExpression = this.formValues.scheduleValue.cron;\n      }\n    } else {\n      this.model.Recurring = true;\n    }\n\n    this.formAction(this.formValues.method);\n  }\n\n  editorUpdate(value) {\n    this.model.FileContent = value;\n    this.isEditorDirty = true;\n  }\n\n  onChangeEnvironments(value) {\n    return this.$scope.$evalAsync(() => {\n      this.model.Endpoints = value;\n    });\n  }\n\n  $onInit() {\n    this.onChangeModel(this.model);\n  }\n}\n\nfunction cronToDatetime(cron, defaultTime = moment()) {\n  var strings = cron.split(' ');\n  if (strings.length > 4) {\n    strings = strings.slice(0, 4);\n  } else {\n    return defaultTime;\n  }\n  return moment(cron, 'm H D M');\n}\n\nfunction datetimeToCron(datetime) {\n  var date = moment(datetime);\n  return [date.minutes(), date.hours(), date.date(), date.month() + 1, '*'].join(' ');\n}\n","const autoNgTemplateLoaderTemplate1 = require('./edgeJobForm.html');\n\nimport angular from 'angular';\n\nimport { EdgeJobFormController } from './edgeJobFormController';\n\nangular.module('portainer.edge').component('edgeJobForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EdgeJobFormController,\n  bindings: {\n    model: '=',\n    groups: '<',\n    tags: '<',\n    edgeGroups: '<',\n    addLabelAction: '<',\n    removeLabelAction: '<',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n    isEditorDirty: '=',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nexport class EdgeJobResultsDatatableController {\n  /* @ngInject */\n  constructor($controller, $scope, $state) {\n    this.$state = $state;\n    angular.extend(this, $controller('GenericDatatableController', { $scope }));\n  }\n\n  collectLogs(...args) {\n    this.settings.repeater.autoRefresh = true;\n    this.settings.repeater.refreshRate = '5';\n    this.onSettingsRepeaterChange();\n    this.onCollectLogsClick(...args);\n  }\n\n  $onChanges({ dataset }) {\n    if (dataset && dataset.currentValue) {\n      this.onDatasetChange(dataset.currentValue);\n    }\n  }\n\n  onDatasetChange(dataset) {\n    const anyCollecting = _.some(dataset, (item) => item.LogsStatus === 2);\n    this.settings.repeater.autoRefresh = anyCollecting;\n    this.settings.repeater.refreshRate = '5';\n    this.onSettingsRepeaterChange();\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./edgeJobResultsDatatable.html');\n\nimport angular from 'angular';\n\nimport { EdgeJobResultsDatatableController } from './edgeJobResultsDatatableController';\nimport './edgeJobResultsDatatable.css';\n\nangular.module('portainer.edge').component('edgeJobResultsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EdgeJobResultsDatatableController,\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    onDownloadLogsClick: '<',\n    onCollectLogsClick: '<',\n    onClearLogsClick: '<',\n    refreshCallback: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./edgeJobsDatatable.html');\n\nimport angular from 'angular';\n\nangular.module('portainer.edge').component('edgeJobsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n  },\n});\n","const statusMap = {\n  1: 'ok',\n  2: 'error',\n  3: 'acknowledged',\n};\n\nexport class EdgeStackStatusController {\n  $onChanges({ stackStatus }) {\n    if (!stackStatus || !stackStatus.currentValue) {\n      return;\n    }\n    const aggregateStatus = { ok: 0, error: 0, acknowledged: 0 };\n    for (let endpointId in stackStatus.currentValue) {\n      const endpoint = stackStatus.currentValue[endpointId];\n      const endpointStatusKey = statusMap[endpoint.Type];\n      aggregateStatus[endpointStatusKey]++;\n    }\n    this.status = aggregateStatus;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./edgeStackStatus.html');\n\nimport angular from 'angular';\n\nimport { EdgeStackStatusController } from './edgeStackStatusController';\nimport './edgeStackStatus.css';\n\nangular.module('portainer.edge').component('edgeStackStatus', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EdgeStackStatusController,\n  bindings: {\n    stackStatus: '<',\n  },\n});\n","import { Tag } from 'lucide-react';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport const tagOptions: ReadonlyArray<BoxSelectorOption<boolean>> = [\n  {\n    id: 'or-selector',\n    value: true,\n    label: 'Partial Match',\n    description:\n      'Associate any environment matching at least one of the selected tags',\n    icon: Tag,\n    iconType: 'badge',\n  },\n  {\n    id: 'and-selector',\n    value: false,\n    label: 'Full Match',\n    description: 'Associate any environment matching all of the selected tags',\n    icon: Tag,\n    iconType: 'badge',\n  },\n];\n","import { List, Tag } from 'lucide-react';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport const groupTypeOptions: ReadonlyArray<BoxSelectorOption<boolean>> = [\n  {\n    id: 'static-group',\n    value: false,\n    label: 'Static',\n    description: 'Manually select Edge environments',\n    icon: List,\n    iconType: 'badge',\n  },\n  {\n    id: 'dynamic-group',\n    value: true,\n    label: 'Dynamic',\n    description: 'Automatically associate environments via tags',\n    icon: Tag,\n    iconType: 'badge',\n  },\n] as const;\n","import { confirmDestructive } from '@@/modals/confirm';\nimport { EdgeTypes } from '@/react/portainer/environments/types';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { tagOptions } from '@/react/edge/edge-groups/CreateView/tag-options';\nimport { groupTypeOptions } from '@/react/edge/edge-groups/CreateView/group-type-options';\n\nexport class EdgeGroupFormController {\n  /* @ngInject */\n  constructor($async, $scope) {\n    this.$async = $async;\n    this.$scope = $scope;\n\n    this.groupTypeOptions = groupTypeOptions;\n    this.tagOptions = tagOptions;\n\n    this.dynamicQuery = {\n      types: EdgeTypes,\n      tagIds: [],\n      tagsPartialMatch: false,\n    };\n\n    this.onChangeEnvironments = this.onChangeEnvironments.bind(this);\n    this.onChangeTags = this.onChangeTags.bind(this);\n    this.onChangeDynamic = this.onChangeDynamic.bind(this);\n    this.onChangeModel = this.onChangeModel.bind(this);\n    this.onChangePartialMatch = this.onChangePartialMatch.bind(this);\n    this.handleSubmit = this.handleSubmit.bind(this);\n\n    $scope.$watch(\n      () => this.model,\n      () => {\n        if (this.model.Dynamic) {\n          this.dynamicQuery = {\n            types: EdgeTypes,\n            tagIds: this.model.TagIds,\n            tagsPartialMatch: this.model.PartialMatch,\n          };\n        }\n      },\n      true\n    );\n  }\n\n  onChangeModel(model) {\n    return this.$scope.$evalAsync(() => {\n      this.model = {\n        ...this.model,\n        ...model,\n      };\n    });\n  }\n\n  onChangePartialMatch(value) {\n    return this.onChangeModel({ PartialMatch: value });\n  }\n\n  onChangeDynamic(value) {\n    this.onChangeModel({ Dynamic: value });\n  }\n\n  onChangeTags(value) {\n    this.onChangeModel({ TagIds: value });\n  }\n\n  onChangeEnvironments(value, meta) {\n    return this.$async(async () => {\n      if (meta.type === 'remove' && this.pageType === 'edit') {\n        const confirmed = await confirmDestructive({\n          title: 'Confirm action',\n          message: 'Removing the environment from this group will remove its corresponding edge stacks',\n          confirmButton: buildConfirmButton('Confirm'),\n        });\n\n        if (!confirmed) {\n          return;\n        }\n      }\n\n      this.onChangeModel({ Endpoints: value });\n    });\n  }\n\n  handleSubmit() {\n    this.formAction(this.model);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./groupForm.html');\n\nimport angular from 'angular';\n\nimport { EdgeGroupFormController } from './groupFormController';\n\nangular.module('portainer.edge').component('edgeGroupForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EdgeGroupFormController,\n  bindings: {\n    model: '<',\n    formActionLabel: '@',\n    formAction: '<',\n    actionInProgress: '<',\n    loaded: '<',\n    pageType: '@',\n  },\n});\n","import angular from 'angular';\n\nangular.module('portainer.edge').factory('EdgeGroups', function EdgeGroupsFactory($resource, API_ENDPOINT_EDGE_GROUPS) {\n  return $resource(\n    API_ENDPOINT_EDGE_GROUPS + '/:id/:action',\n    {},\n    {\n      create: { method: 'POST', ignoreLoadingBar: true },\n      query: { method: 'GET', isArray: true },\n      get: { method: 'GET', params: { id: '@id' } },\n      update: { method: 'PUT', params: { id: '@Id' } },\n      remove: { method: 'DELETE', params: { id: '@id' } },\n    }\n  );\n});\n","angular.module('portainer.edge').factory('EdgeJobResults', EdgeJobResultsFactory);\n\nfunction EdgeJobResultsFactory($resource, API_ENDPOINT_EDGE_JOBS) {\n  return $resource(\n    API_ENDPOINT_EDGE_JOBS + '/:id/tasks/:taskId/:action',\n    {},\n    {\n      query: { method: 'GET', isArray: true, params: { id: '@id' } },\n      logFile: { method: 'GET', params: { id: '@id', taskId: '@taskId', action: 'logs' } },\n      clearLogs: { method: 'DELETE', params: { id: '@id', taskId: '@taskId', action: 'logs' } },\n      collectLogs: { method: 'POST', params: { id: '@id', taskId: '@taskId', action: 'logs' } },\n    }\n  );\n}\n","angular.module('portainer.edge').factory('EdgeJobs', EdgeJobsFactory);\n\nfunction EdgeJobsFactory($resource, API_ENDPOINT_EDGE_JOBS) {\n  return $resource(\n    API_ENDPOINT_EDGE_JOBS + '/:id/:action',\n    {},\n    {\n      create: { method: 'POST', params: { id: 'create', action: '@method' } },\n      query: { method: 'GET', isArray: true },\n      get: { method: 'GET', params: { id: '@id' } },\n      update: { method: 'PUT', params: { id: '@id' } },\n      remove: { method: 'DELETE', params: { id: '@id' } },\n      file: { method: 'GET', params: { id: '@id', action: 'file' } },\n      tasks: { method: 'GET', isArray: true, params: { id: '@id', action: 'tasks' } },\n    }\n  );\n}\n","import angular from 'angular';\n\nangular.module('portainer.edge').factory('EdgeStacks', function EdgeStacksFactory($resource, API_ENDPOINT_EDGE_STACKS) {\n  return $resource(\n    API_ENDPOINT_EDGE_STACKS + '/:id/:action',\n    {},\n    {\n      create: { method: 'POST', ignoreLoadingBar: true, params: { id: 'create', action: '@method' } },\n      query: { method: 'GET', isArray: true },\n      get: { method: 'GET', params: { id: '@id' } },\n      update: { method: 'PUT', params: { id: '@id' } },\n      remove: { method: 'DELETE', params: { id: '@id' } },\n      file: { method: 'GET', params: { id: '@id', action: 'file' } },\n    }\n  );\n});\n","import angular from 'angular';\n\nangular.module('portainer.edge').factory('EdgeGroupService', function EdgeGroupServiceFactory(EdgeGroups) {\n  var service = {};\n\n  service.group = function group(groupId) {\n    return EdgeGroups.get({ id: groupId }).$promise;\n  };\n\n  service.groups = function groups() {\n    return EdgeGroups.query({}).$promise;\n  };\n\n  service.remove = function remove(groupId) {\n    return EdgeGroups.remove({ id: groupId }).$promise;\n  };\n\n  service.create = function create(group) {\n    return EdgeGroups.create(group).$promise;\n  };\n\n  service.update = function update(group) {\n    return EdgeGroups.update(group).$promise;\n  };\n\n  return service;\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nimport { ScheduleCreateRequest, ScheduleUpdateRequest } from '@/portainer/models/schedule';\n\nfunction EdgeJobService(EdgeJobs, EdgeJobResults, FileUploadService) {\n  var service = {};\n\n  service.edgeJob = edgeJob;\n  async function edgeJob(edgeJobId) {\n    try {\n      return await EdgeJobs.get({ id: edgeJobId }).$promise;\n    } catch (err) {\n      throw { msg: 'Unable to retrieve edgeJob', err: err };\n    }\n  }\n\n  service.edgeJobs = edgeJobs;\n  async function edgeJobs() {\n    try {\n      return await EdgeJobs.query().$promise;\n    } catch (err) {\n      throw { msg: 'Unable to retrieve edgeJobs', err: err };\n    }\n  }\n\n  service.jobResults = jobResults;\n  async function jobResults(edgeJobId) {\n    try {\n      const results = await EdgeJobResults.query({ id: edgeJobId }).$promise;\n\n      return _.sortBy(results, ['Id']);\n    } catch (err) {\n      throw { msg: 'Unable to retrieve results associated to the edgeJob', err: err };\n    }\n  }\n\n  service.logFile = logFile;\n  function logFile(id, taskId) {\n    return EdgeJobResults.logFile({ id, taskId }).$promise;\n  }\n\n  service.collectLogs = collectLogs;\n  function collectLogs(id, taskId) {\n    return EdgeJobResults.collectLogs({ id, taskId }).$promise;\n  }\n\n  service.clearLogs = clearLogs;\n  function clearLogs(id, taskId) {\n    return EdgeJobResults.clearLogs({ id, taskId }).$promise;\n  }\n\n  service.createEdgeJobFromFileContent = function (model) {\n    var payload = new ScheduleCreateRequest(model);\n    return EdgeJobs.create({}, { method: 'string', ...payload }).$promise;\n  };\n\n  service.createEdgeJobFromFileUpload = function (model) {\n    var payload = new ScheduleCreateRequest(model);\n    return FileUploadService.createSchedule(payload);\n  };\n\n  service.updateEdgeJob = function (model) {\n    var payload = new ScheduleUpdateRequest(model);\n    return EdgeJobs.update(payload).$promise;\n  };\n\n  service.remove = function (edgeJobId) {\n    return EdgeJobs.remove({ id: edgeJobId }).$promise;\n  };\n\n  service.getScriptFile = function (edgeJobId) {\n    return EdgeJobs.file({ id: edgeJobId }).$promise;\n  };\n\n  return service;\n}\n\nangular.module('portainer.edge').factory('EdgeJobService', EdgeJobService);\n","import angular from 'angular';\n\nangular.module('portainer.edge').factory('EdgeStackService', function EdgeStackServiceFactory(EdgeStacks, FileUploadService) {\n  var service = {};\n\n  service.stack = function stack(id) {\n    return EdgeStacks.get({ id }).$promise;\n  };\n\n  service.stacks = function stacks() {\n    return EdgeStacks.query({}).$promise;\n  };\n\n  service.remove = function remove(id) {\n    return EdgeStacks.remove({ id }).$promise;\n  };\n\n  service.stackFile = async function stackFile(id) {\n    try {\n      const { StackFileContent } = await EdgeStacks.file({ id }).$promise;\n      return StackFileContent;\n    } catch (err) {\n      throw { msg: 'Unable to retrieve stack content', err };\n    }\n  };\n\n  service.updateStack = async function updateStack(id, stack) {\n    return EdgeStacks.update({ id }, stack).$promise;\n  };\n\n  service.createStackFromFileContent = async function createStackFromFileContent(payload) {\n    try {\n      return await EdgeStacks.create({}, { method: 'string', ...payload }).$promise;\n    } catch (err) {\n      throw { msg: 'Unable to create the stack', err };\n    }\n  };\n\n  service.createStackFromFileUpload = async function createStackFromFileUpload(payload, file) {\n    try {\n      return await FileUploadService.createEdgeStack(payload, file);\n    } catch (err) {\n      throw { msg: 'Unable to create the stack', err };\n    }\n  };\n\n  service.createStackFromGitRepository = async function createStackFromGitRepository(payload, repositoryOptions) {\n    try {\n      return await EdgeStacks.create(\n        {},\n        {\n          ...payload,\n          method: 'repository',\n          RepositoryURL: repositoryOptions.RepositoryURL,\n          RepositoryReferenceName: repositoryOptions.RepositoryReferenceName,\n          FilePathInRepository: repositoryOptions.FilePathInRepository,\n          RepositoryAuthentication: repositoryOptions.RepositoryAuthentication,\n          RepositoryUsername: repositoryOptions.RepositoryUsername,\n          RepositoryPassword: repositoryOptions.RepositoryPassword,\n          TLSSkipVerify: repositoryOptions.TLSSkipVerify,\n        }\n      ).$promise;\n    } catch (err) {\n      throw { msg: 'Unable to create the stack', err };\n    }\n  };\n\n  return service;\n});\n","export class CreateEdgeGroupController {\n  /* @ngInject */\n  constructor(EdgeGroupService, GroupService, Notifications, $state, $async) {\n    this.EdgeGroupService = EdgeGroupService;\n    this.GroupService = GroupService;\n    this.Notifications = Notifications;\n    this.$state = $state;\n    this.$async = $async;\n\n    this.state = {\n      actionInProgress: false,\n      loaded: false,\n    };\n\n    this.model = {\n      Name: '',\n      Endpoints: [],\n      Dynamic: false,\n      TagIds: [],\n      PartialMatch: false,\n    };\n\n    this.createGroup = this.createGroup.bind(this);\n  }\n\n  async $onInit() {\n    const endpointGroups = await this.GroupService.groups();\n\n    this.endpointGroups = endpointGroups;\n    this.state.loaded = true;\n  }\n\n  async createGroup(model) {\n    return this.$async(async () => {\n      this.state.actionInProgress = true;\n      try {\n        await this.EdgeGroupService.create(model);\n        this.Notifications.success('Success', 'Edge group successfully created');\n        this.$state.go('edge.groups');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to create edge group');\n      } finally {\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./createEdgeGroupView.html');\n\nimport angular from 'angular';\n\nimport { CreateEdgeGroupController } from './createEdgeGroupViewController';\n\nangular.module('portainer.edge').component('createEdgeGroupView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: CreateEdgeGroupController,\n});\n","export class EditEdgeGroupController {\n  /* @ngInject */\n  constructor(EdgeGroupService, GroupService, Notifications, $state, $async) {\n    this.EdgeGroupService = EdgeGroupService;\n    this.GroupService = GroupService;\n    this.Notifications = Notifications;\n    this.$state = $state;\n    this.$async = $async;\n\n    this.state = {\n      actionInProgress: false,\n      loaded: false,\n    };\n\n    this.updateGroup = this.updateGroup.bind(this);\n  }\n\n  async $onInit() {\n    const [endpointGroups, group] = await Promise.all([this.GroupService.groups(), this.EdgeGroupService.group(this.$state.params.groupId)]);\n\n    if (!group) {\n      this.Notifications.error('Failed to find edge group', {});\n      this.$state.go('edge.groups');\n    }\n    this.endpointGroups = endpointGroups;\n    this.model = group;\n    this.state.loaded = true;\n  }\n\n  updateGroup(group) {\n    return this.$async(async () => {\n      this.state.actionInProgress = true;\n      try {\n        await this.EdgeGroupService.update(group);\n        this.Notifications.success('Success', 'Edge group successfully updated');\n        this.$state.go('edge.groups');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to update edge group');\n      } finally {\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./editEdgeGroupView.html');\n\nimport angular from 'angular';\n\nimport { EditEdgeGroupController } from './editEdgeGroupViewController';\n\nangular.module('portainer.edge').component('editEdgeGroupView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EditEdgeGroupController,\n});\n","import { confirmWebEditorDiscard } from '@@/modals/confirm';\n\nexport class CreateEdgeJobViewController {\n  /* @ngInject */\n  constructor($async, $q, $state, $window, EdgeJobService, GroupService, Notifications, TagService) {\n    this.state = {\n      actionInProgress: false,\n      isEditorDirty: false,\n    };\n\n    this.model = {\n      Name: '',\n      Recurring: false,\n      CronExpression: '',\n      Endpoints: [],\n      FileContent: '',\n      File: null,\n      EdgeGroups: [],\n    };\n\n    this.$async = $async;\n    this.$q = $q;\n    this.$state = $state;\n    this.$window = $window;\n    this.Notifications = Notifications;\n    this.GroupService = GroupService;\n    this.EdgeJobService = EdgeJobService;\n    this.TagService = TagService;\n\n    this.create = this.create.bind(this);\n    this.createEdgeJob = this.createEdgeJob.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n  }\n\n  create(method) {\n    return this.$async(this.createAsync, method);\n  }\n\n  async createAsync(method) {\n    this.state.actionInProgress = true;\n\n    try {\n      await this.createEdgeJob(method, this.model);\n      this.Notifications.success('Success', 'Edge job successfully created');\n      this.state.isEditorDirty = false;\n      this.$state.go('edge.jobs', {}, { reload: true });\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to create Edge job');\n    }\n\n    this.state.actionInProgress = false;\n  }\n\n  createEdgeJob(method, model) {\n    if (method === 'editor') {\n      return this.EdgeJobService.createEdgeJobFromFileContent(model);\n    }\n    return this.EdgeJobService.createEdgeJobFromFileUpload(model);\n  }\n\n  async uiCanExit() {\n    if (this.model.FileContent && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  async $onInit() {\n    try {\n      const [groups, tags] = await Promise.all([this.GroupService.groups(), this.TagService.tags()]);\n      this.groups = groups;\n      this.tags = tags;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve page data');\n    }\n\n    this.$window.onbeforeunload = () => {\n      if (this.model.FileContent && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./createEdgeJobView.html');\n\nimport angular from 'angular';\nimport { CreateEdgeJobViewController } from './createEdgeJobViewController';\n\nangular.module('portainer.edge').component('createEdgeJobView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: CreateEdgeJobViewController,\n});\n","import _ from 'lodash-es';\nimport { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\n\nexport class EdgeJobController {\n  /* @ngInject */\n  constructor($async, $q, $state, $window, EdgeJobService, FileSaver, GroupService, HostBrowserService, Notifications, TagService) {\n    this.state = {\n      actionInProgress: false,\n      showEditorTab: false,\n      isEditorDirty: false,\n    };\n\n    this.$async = $async;\n    this.$q = $q;\n    this.$state = $state;\n    this.$window = $window;\n    this.EdgeJobService = EdgeJobService;\n    this.FileSaver = FileSaver;\n    this.GroupService = GroupService;\n    this.HostBrowserService = HostBrowserService;\n    this.Notifications = Notifications;\n    this.TagService = TagService;\n\n    this.update = this.update.bind(this);\n    this.updateAsync = this.updateAsync.bind(this);\n    this.downloadLogs = this.downloadLogs.bind(this);\n    this.downloadLogsAsync = this.downloadLogsAsync.bind(this);\n    this.collectLogs = this.collectLogs.bind(this);\n    this.collectLogsAsync = this.collectLogsAsync.bind(this);\n    this.clearLogs = this.clearLogs.bind(this);\n    this.clearLogsAsync = this.clearLogsAsync.bind(this);\n    this.refresh = this.refresh.bind(this);\n    this.refreshAsync = this.refreshAsync.bind(this);\n    this.showEditor = this.showEditor.bind(this);\n  }\n\n  update() {\n    return this.$async(this.updateAsync);\n  }\n\n  async updateAsync() {\n    const model = this.edgeJob;\n    this.state.actionInProgress = true;\n\n    try {\n      await this.EdgeJobService.updateEdgeJob(model);\n      this.Notifications.success('Success', 'Edge job successfully updated');\n      this.state.isEditorDirty = false;\n      this.$state.go('edge.jobs', {}, { reload: true });\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to update Edge job');\n    }\n\n    this.state.actionInProgress = false;\n  }\n\n  downloadLogs(endpointId) {\n    return this.$async(this.downloadLogsAsync, endpointId);\n  }\n  async downloadLogsAsync(endpointId) {\n    try {\n      const data = await this.EdgeJobService.logFile(this.edgeJob.Id, endpointId);\n      const downloadData = new Blob([data.FileContent], {\n        type: 'text/plain;charset=utf-8',\n      });\n      const logFileName = `job_${this.edgeJob.Id}_task_${endpointId}.log`;\n      this.FileSaver.saveAs(downloadData, logFileName);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to download file');\n    }\n  }\n\n  associateEndpointsToResults(results, endpoints) {\n    return _.map(results, (result) => {\n      const endpoint = _.find(endpoints, (endpoint) => endpoint.Id === result.EndpointId);\n      result.Endpoint = endpoint;\n      return result;\n    });\n  }\n\n  collectLogs(endpointId) {\n    return this.$async(this.collectLogsAsync, endpointId);\n  }\n\n  async collectLogsAsync(endpointId) {\n    try {\n      await this.EdgeJobService.collectLogs(this.edgeJob.Id, endpointId);\n      const result = _.find(this.results, (result) => result.EndpointId === endpointId);\n      result.LogsStatus = 2;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to collect logs');\n    }\n  }\n\n  clearLogs(endpointId) {\n    return this.$async(this.clearLogsAsync, endpointId);\n  }\n  async clearLogsAsync(endpointId) {\n    try {\n      await this.EdgeJobService.clearLogs(this.edgeJob.Id, endpointId);\n      const result = _.find(this.results, (result) => result.EndpointId === endpointId);\n      result.LogsStatus = 1;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to clear logs');\n    }\n  }\n\n  refresh() {\n    return this.$async(this.refreshAsync);\n  }\n  async refreshAsync() {\n    const { id } = this.$state.params;\n    const results = await this.EdgeJobService.jobResults(id);\n    if (results.length > 0) {\n      const endpointIds = _.map(results, (result) => result.EndpointId);\n      const endpoints = await getEnvironments({ query: { endpointIds } });\n      this.results = this.associateEndpointsToResults(results, endpoints.value);\n    } else {\n      this.results = results;\n    }\n  }\n\n  showEditor() {\n    this.state.showEditorTab = true;\n  }\n\n  async uiCanExit() {\n    if (this.edgeJob && this.edgeJob.FileContent !== this.oldFileContent && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  async $onInit() {\n    const { id, tab } = this.$state.params;\n    this.state.activeTab = tab;\n    if (!tab || tab === 0) {\n      this.state.showEditorTab = true;\n    }\n\n    try {\n      const [edgeJob, file, results, groups, tags] = await Promise.all([\n        this.EdgeJobService.edgeJob(id),\n        this.EdgeJobService.getScriptFile(id),\n        this.EdgeJobService.jobResults(id),\n        this.GroupService.groups(),\n        this.TagService.tags(),\n      ]);\n\n      edgeJob.FileContent = file.FileContent;\n      this.oldFileContent = edgeJob.FileContent;\n      this.edgeJob = edgeJob;\n      this.groups = groups;\n      this.tags = tags;\n\n      this.edgeJob.EdgeGroups = this.edgeJob.EdgeGroups ? this.edgeJob.EdgeGroups : [];\n      this.edgeJob.Endpoints = this.edgeJob.Endpoints ? this.edgeJob.Endpoints : [];\n\n      if (results.length > 0) {\n        const endpointIds = _.map(results, (result) => result.EndpointId);\n        const endpoints = await getEnvironments({ query: { endpointIds } });\n        this.results = this.associateEndpointsToResults(results, endpoints.value);\n      } else {\n        this.results = results;\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve environment list');\n    }\n\n    this.$window.onbeforeunload = () => {\n      if (this.edgeJob && this.edgeJob.FileContent !== this.oldFileContent && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./edgeJob.html');\n\nimport angular from 'angular';\nimport { EdgeJobController } from './edgeJobController';\n\nangular.module('portainer.edge').component('edgeJobView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EdgeJobController,\n});\n","import _ from 'lodash-es';\nimport { confirmDelete } from '@@/modals/confirm';\n\nexport class EdgeJobsViewController {\n  /* @ngInject */\n  constructor($async, $state, EdgeJobService, Notifications) {\n    this.$async = $async;\n    this.$state = $state;\n    this.EdgeJobService = EdgeJobService;\n    this.Notifications = Notifications;\n\n    this.removeAction = this.removeAction.bind(this);\n    this.deleteJobsAsync = this.deleteJobsAsync.bind(this);\n    this.deleteJobs = this.deleteJobs.bind(this);\n  }\n\n  removeAction(selectedItems) {\n    confirmDelete('Do you want to remove the selected Edge job(s)?').then((confirmed) => {\n      if (!confirmed) {\n        return;\n      }\n      this.deleteJobs(selectedItems);\n    });\n  }\n\n  deleteJobs(edgeJobs) {\n    return this.$async(this.deleteJobsAsync, edgeJobs);\n  }\n\n  async deleteJobsAsync(edgeJobs) {\n    for (let edgeJob of edgeJobs) {\n      try {\n        await this.EdgeJobService.remove(edgeJob.Id);\n        this.Notifications.success('Edge job successfully removed', edgeJob.Name);\n        _.remove(this.edgeJobs, edgeJob);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to remove Edge job ' + edgeJob.Name);\n      }\n    }\n\n    this.$state.reload();\n  }\n\n  async $onInit() {\n    try {\n      const edgeJobs = await this.EdgeJobService.edgeJobs();\n      this.edgeJobs = edgeJobs;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve Edge jobs');\n      this.edgeJobs = [];\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./edgeJobsView.html');\n\nimport angular from 'angular';\nimport { EdgeJobsViewController } from './edgeJobsViewController';\n\nangular.module('portainer.edge').component('edgeJobsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EdgeJobsViewController,\n});\n","import { DeploymentType, EditorType } from '@/react/edge/edge-stacks/types';\nimport { getValidEditorTypes } from '@/react/edge/edge-stacks/utils';\nimport { STACK_NAME_VALIDATION_REGEX } from '@/react/constants';\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { baseEdgeStackWebhookUrl } from '@/portainer/helpers/webhookHelper';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { getCustomTemplate } from '@/react/portainer/templates/custom-templates/queries/useCustomTemplate';\nimport { notifyError } from '@/portainer/services/notifications';\nimport { getCustomTemplateFile } from '@/react/portainer/templates/custom-templates/queries/useCustomTemplateFile';\nimport { toGitFormModel } from '@/react/portainer/gitops/types';\nimport { StackType } from '@/react/common/stacks/types';\nimport { applySetStateAction } from '@/react-tools/apply-set-state-action';\nimport { getVariablesFieldDefaultValues } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesField';\nimport { renderTemplate } from '@/react/portainer/custom-templates/components/utils';\nimport { getInitialTemplateValues } from '@/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateFieldset';\nimport { getAppTemplates } from '@/react/portainer/templates/app-templates/queries/useAppTemplates';\nimport { fetchFilePreview } from '@/react/portainer/templates/app-templates/queries/useFetchTemplateFile';\nimport { TemplateViewModel } from '@/react/portainer/templates/app-templates/view-model';\nimport { getDefaultValues as getAppVariablesDefaultValues } from '@/react/edge/edge-stacks/CreateView/TemplateFieldset/EnvVarsFieldset';\n\nexport default class CreateEdgeStackViewController {\n  /* @ngInject */\n  constructor($state, $window, EdgeStackService, EdgeGroupService, Notifications, FormHelper, $async, $scope) {\n    Object.assign(this, { $state, $window, EdgeStackService, EdgeGroupService, Notifications, FormHelper, $async, $scope });\n\n    this.formValues = {\n      Name: '',\n      StackFileContent: '',\n      StackFile: null,\n      RepositoryURL: '',\n      RepositoryReferenceName: '',\n      RepositoryAuthentication: false,\n      RepositoryUsername: '',\n      RepositoryPassword: '',\n      ComposeFilePathInRepository: '',\n      Groups: [],\n      DeploymentType: 0,\n      UseManifestNamespaces: false,\n      TLSSkipVerify: false,\n      envVars: [],\n    };\n\n    this.EditorType = EditorType;\n    this.EnvironmentType = EnvironmentType;\n    this.isBE = isBE;\n\n    this.state = {\n      Method: 'editor',\n      formValidationError: '',\n      actionInProgress: false,\n      StackType: null,\n      isEditorDirty: false,\n      hasKubeEndpoint: false,\n      endpointTypes: [],\n      baseWebhookUrl: baseEdgeStackWebhookUrl(),\n      isEdit: false,\n      templateValues: getInitialTemplateValues(),\n    };\n\n    this.edgeGroups = null;\n\n    $scope.STACK_NAME_VALIDATION_REGEX = STACK_NAME_VALIDATION_REGEX;\n\n    this.createStack = this.createStack.bind(this);\n    this.validateForm = this.validateForm.bind(this);\n    this.createStackByMethod = this.createStackByMethod.bind(this);\n    this.createStackFromFileContent = this.createStackFromFileContent.bind(this);\n    this.createStackFromFileUpload = this.createStackFromFileUpload.bind(this);\n    this.createStackFromGitRepository = this.createStackFromGitRepository.bind(this);\n    this.onChangeGroups = this.onChangeGroups.bind(this);\n    this.hasType = this.hasType.bind(this);\n    this.onChangeDeploymentType = this.onChangeDeploymentType.bind(this);\n    this.onEnvVarChange = this.onEnvVarChange.bind(this);\n    this.setTemplateValues = this.setTemplateValues.bind(this);\n    this.onChangeTemplate = this.onChangeTemplate.bind(this);\n  }\n\n  /**\n   * @param {import('react').SetStateAction<import('@/react/edge/edge-stacks/CreateView/TemplateFieldset/types').Values>} templateAction\n   */\n  setTemplateValues(templateAction) {\n    return this.$async(async () => {\n      const newTemplateValues = applySetStateAction(templateAction, this.state.templateValues);\n      const oldTemplateId = this.state.templateValues.template && this.state.templateValues.template.Id;\n      const newTemplateId = newTemplateValues.template && newTemplateValues.template.Id;\n      this.state.templateValues = newTemplateValues;\n      if (newTemplateId !== oldTemplateId) {\n        await this.onChangeTemplate(newTemplateValues.type, newTemplateValues.template);\n      }\n\n      if (newTemplateValues.type === 'custom') {\n        const definitions = this.state.templateValues.template.Variables;\n        const newFile = renderTemplate(this.state.templateValues.file, this.state.templateValues.variables, definitions);\n\n        this.formValues.StackFileContent = newFile;\n      }\n    });\n  }\n\n  onChangeTemplate(type, template) {\n    return this.$async(async () => {\n      if (!template) {\n        return;\n      }\n\n      if (type === 'custom') {\n        this.formValues = {\n          ...this.formValues,\n          DeploymentType: template.Type === StackType.Kubernetes ? DeploymentType.Kubernetes : DeploymentType.Compose,\n          ...toGitFormModel(template.GitConfig),\n          ...(template.EdgeSettings\n            ? {\n                PrePullImage: template.EdgeSettings.PrePullImage || false,\n                RetryDeploy: template.EdgeSettings.RetryDeploy || false,\n                PrivateRegistryId: template.EdgeSettings.PrivateRegistryId || null,\n                ...template.EdgeSettings.RelativePathSettings,\n              }\n            : {}),\n        };\n\n        const fileContent = await getCustomTemplateFile({ id: template.Id, git: !!template.GitConfig });\n        this.state.templateValues.file = fileContent;\n      }\n\n      if (type === 'app') {\n        this.formValues.StackFileContent = '';\n        try {\n          const fileContent = await fetchFilePreview(template.Id);\n          this.formValues.StackFileContent = fileContent;\n        } catch (err) {\n          this.Notifications.error('Failure', err, 'Unable to retrieve Template');\n        }\n      }\n    });\n  }\n\n  onEnvVarChange(envVars) {\n    return this.$scope.$evalAsync(() => {\n      this.formValues.envVars = envVars;\n    });\n  }\n\n  buildAnalyticsProperties() {\n    const format = 'compose';\n    const metadata = { type: methodLabel(this.state.Method), format };\n\n    if (metadata.type === 'template') {\n      metadata.templateName = this.state.selectedTemplate && this.state.selectedTemplate.title;\n    }\n\n    return { metadata };\n\n    function methodLabel(method) {\n      switch (method) {\n        case 'editor':\n          return 'web-editor';\n        case 'repository':\n          return 'git';\n        case 'upload':\n          return 'file-upload';\n        case 'template':\n          return 'template';\n      }\n    }\n  }\n\n  uiCanExit() {\n    if (this.state.Method === 'editor' && this.formValues.StackFileContent && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  /**\n   *\n   * @param {'app' | 'custom'} templateType\n   * @param {number} templateId\n   * @returns {Promise<void>}\n   */\n  async preSelectTemplate(templateType, templateId) {\n    return this.$async(async () => {\n      try {\n        this.state.Method = 'template';\n        const template = await getTemplate(templateType, templateId);\n        if (!template) {\n          return;\n        }\n\n        this.setTemplateValues({\n          template,\n          type: templateType,\n          envVars: templateType === 'app' ? getAppVariablesDefaultValues(template.Env) : {},\n          variables: templateType === 'custom' ? getVariablesFieldDefaultValues(template.Variables) : [],\n        });\n      } catch (e) {\n        notifyError('Failed loading template', e);\n      }\n    });\n  }\n\n  async $onInit() {\n    try {\n      this.edgeGroups = await this.EdgeGroupService.groups();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve Edge groups');\n    }\n\n    const templateId = parseInt(this.$state.params.templateId, 10);\n    const templateType = this.$state.params.templateType;\n    if (templateType && templateId && !Number.isNaN(templateId)) {\n      this.preSelectTemplate(templateType, templateId);\n    }\n\n    this.$window.onbeforeunload = () => {\n      if (this.state.Method === 'editor' && this.formValues.StackFileContent && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n\n  createStack() {\n    return this.$async(async () => {\n      const name = this.formValues.Name;\n\n      if (!this.validateTemplate()) {\n        return;\n      }\n\n      let envVars = this.formValues.envVars;\n      if (this.state.Method === 'template' && this.state.templateValues.type === 'app') {\n        envVars = [...envVars, ...Object.entries(this.state.templateValues.envVars).map(([key, value]) => ({ name: key, value }))];\n      }\n\n      const method = getMethod(this.state.Method, this.state.templateValues.template);\n\n      if (!this.validateForm(method)) {\n        return;\n      }\n\n      this.state.actionInProgress = true;\n      try {\n        await this.createStackByMethod(name, method, envVars);\n\n        this.Notifications.success('Success', 'Stack successfully deployed');\n        this.state.isEditorDirty = false;\n        this.$state.go('edge.stacks');\n      } catch (err) {\n        this.Notifications.error('Deployment error', err, 'Unable to deploy stack');\n      } finally {\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n\n  onChangeGroups(groups) {\n    return this.$scope.$evalAsync(() => {\n      this.formValues.Groups = groups;\n\n      this.checkIfEndpointTypes(groups);\n    });\n  }\n\n  checkIfEndpointTypes(groups) {\n    return this.$scope.$evalAsync(() => {\n      const edgeGroups = groups.map((id) => this.edgeGroups.find((e) => e.Id === id));\n      this.state.endpointTypes = edgeGroups.flatMap((group) => group.EndpointTypes);\n      this.selectValidDeploymentType();\n    });\n  }\n\n  selectValidDeploymentType() {\n    const validTypes = getValidEditorTypes(this.state.endpointTypes);\n\n    if (!validTypes.includes(this.formValues.DeploymentType)) {\n      this.onChangeDeploymentType(validTypes[0]);\n    }\n  }\n\n  hasType(envType) {\n    return this.state.endpointTypes.includes(envType);\n  }\n\n  validateForm(method) {\n    this.state.formValidationError = '';\n\n    if (method === 'editor' && this.formValues.StackFileContent === '') {\n      this.state.formValidationError = 'Stack file content must not be empty';\n      return;\n    }\n\n    return true;\n  }\n\n  createStackByMethod(name, method, envVars) {\n    switch (method) {\n      case 'editor':\n        return this.createStackFromFileContent(name, envVars);\n      case 'upload':\n        return this.createStackFromFileUpload(name, envVars);\n      case 'repository':\n        return this.createStackFromGitRepository(name, envVars);\n    }\n  }\n\n  createStackFromFileContent(name, envVars) {\n    const { StackFileContent, Groups, DeploymentType, UseManifestNamespaces } = this.formValues;\n\n    return this.EdgeStackService.createStackFromFileContent({\n      name,\n      StackFileContent,\n      EdgeGroups: Groups,\n      DeploymentType,\n      UseManifestNamespaces,\n      envVars,\n    });\n  }\n\n  createStackFromFileUpload(name, envVars) {\n    const { StackFile, Groups, DeploymentType, UseManifestNamespaces } = this.formValues;\n\n    return this.EdgeStackService.createStackFromFileUpload(\n      {\n        Name: name,\n        EdgeGroups: Groups,\n        DeploymentType,\n        UseManifestNamespaces,\n        envVars,\n      },\n      StackFile\n    );\n  }\n\n  async createStackFromGitRepository(name, envVars) {\n    const { Groups, DeploymentType, UseManifestNamespaces } = this.formValues;\n\n    const repositoryOptions = {\n      RepositoryURL: this.formValues.RepositoryURL,\n      RepositoryReferenceName: this.formValues.RepositoryReferenceName,\n      FilePathInRepository: this.formValues.ComposeFilePathInRepository,\n      RepositoryAuthentication: this.formValues.RepositoryAuthentication,\n      RepositoryUsername: this.formValues.RepositoryUsername,\n      RepositoryPassword: this.formValues.RepositoryPassword,\n      TLSSkipVerify: this.formValues.TLSSkipVerify,\n      CreatedFromCustomTemplateID: this.state.templateValues.template && this.state.templateValues.template.Id,\n    };\n    return this.EdgeStackService.createStackFromGitRepository(\n      {\n        name,\n        EdgeGroups: Groups,\n        DeploymentType,\n        UseManifestNamespaces,\n        envVars,\n      },\n      repositoryOptions\n    );\n  }\n\n  onChangeDeploymentType(deploymentType) {\n    return this.$scope.$evalAsync(() => {\n      this.formValues.DeploymentType = deploymentType;\n      this.state.Method = 'editor';\n      this.formValues.StackFileContent = '';\n      this.state.templateValues = getInitialTemplateValues();\n    });\n  }\n\n  validateTemplate() {\n    if (this.state.Method === 'template' && this.state.templateValues.type === 'app') {\n      return Object.entries(this.state.templateValues.envVars).every(([, value]) => !!value);\n    }\n\n    if (this.state.Method === 'template' && this.state.templateValues.type === 'custom') {\n      return Object.entries(this.state.templateValues.variables).every(([, v]) => {\n        return !!v.value;\n      });\n    }\n    return true;\n  }\n\n  formIsInvalid() {\n    return (\n      this.form.$invalid ||\n      !this.formValues.Groups.length ||\n      (['template', 'editor'].includes(this.state.Method) && !this.formValues.StackFileContent) ||\n      ('upload' === this.state.Method && !this.formValues.StackFile) ||\n      !this.validateTemplate()\n    );\n  }\n}\n\n/**\n *\n * @param {'template'|'repository' | 'editor' | 'upload'} method\n * @param {import('@/react/portainer/templates/custom-templates/types').CustomTemplate | undefined} template\n * @returns 'repository' | 'editor' | 'upload'\n */\nfunction getMethod(method, template) {\n  if (method !== 'template') {\n    return method;\n  }\n\n  if (template && template.GitConfig) {\n    return 'repository';\n  }\n  return 'editor';\n}\n\n/**\n *\n * @param {'app' | 'custom'} templateType\n * @param {number} templateId\n * @returns {Promise<import('@/react/portainer/templates/app-templates/view-model').TemplateViewModel | import('@/react/portainer/templates/custom-templates/types').CustomTemplate | undefined>}\n */\nasync function getTemplate(templateType, templateId) {\n  if (!['app', 'custom'].includes(templateType)) {\n    notifyError('Invalid template type', `Invalid template type: ${templateType}`);\n    return;\n  }\n\n  if (templateType === 'app') {\n    const templatesResponse = await getAppTemplates();\n    const template = templatesResponse.templates.find((t) => t.id === templateId);\n    return new TemplateViewModel(template, templatesResponse.version);\n  }\n\n  const template = await getCustomTemplate(templateId);\n  return template;\n}\n","import _ from 'lodash';\n\nimport { EnvironmentType } from '@/react/portainer/environments/types';\n\nimport { EditorType } from './types';\n\nexport function getValidEditorTypes(\n  endpointTypes: EnvironmentType[],\n  allowKubeToSelectCompose?: boolean\n) {\n  const right: Partial<Record<EnvironmentType, EditorType[]>> = {\n    [EnvironmentType.EdgeAgentOnDocker]: [EditorType.Compose],\n    [EnvironmentType.EdgeAgentOnKubernetes]: allowKubeToSelectCompose\n      ? [EditorType.Kubernetes, EditorType.Compose]\n      : [EditorType.Kubernetes],\n  };\n\n  return endpointTypes.length\n    ? _.intersection(...endpointTypes.map((type) => right[type]))\n    : [EditorType.Compose, EditorType.Kubernetes];\n}\n","const autoNgTemplateLoaderTemplate1 = require('./create-edge-stack-view.html');\n\nimport controller from './create-edge-stack-view.controller';\n\nexport const createEdgeStackView = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n};\n","import { getInitialTemplateValues } from '@/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateFieldset';\nimport { editor, git, edgeStackTemplate, upload } from '@@/BoxSelector/common-options/build-methods';\n\nclass DockerComposeFormController {\n  /* @ngInject */\n  constructor($async, Notifications) {\n    Object.assign(this, { $async, Notifications });\n\n    this.methodOptions = [editor, upload, git, edgeStackTemplate];\n\n    this.onChangeFileContent = this.onChangeFileContent.bind(this);\n    this.onChangeFile = this.onChangeFile.bind(this);\n    this.onChangeMethod = this.onChangeMethod.bind(this);\n    this.onChangeFormValues = this.onChangeFormValues.bind(this);\n    this.isGitTemplate = this.isGitTemplate.bind(this);\n  }\n\n  isGitTemplate() {\n    return this.state.Method === 'template' && !!this.templateValues.template && !!this.templateValues.template.GitConfig;\n  }\n\n  onChangeFormValues(newValues) {\n    return this.$async(async () => {\n      this.formValues = {\n        ...this.formValues,\n        ...newValues,\n      };\n    });\n  }\n\n  onChangeMethod(method) {\n    this.state.Method = method;\n    this.formValues.StackFileContent = '';\n    this.setTemplateValues(getInitialTemplateValues());\n  }\n\n  onChangeFileContent(value) {\n    return this.$async(async () => {\n      this.formValues.StackFileContent = value;\n      this.state.isEditorDirty = true;\n    });\n  }\n\n  onChangeFile(value) {\n    return this.$async(async () => {\n      this.formValues.StackFile = value;\n    });\n  }\n}\n\nexport default DockerComposeFormController;\n","const autoNgTemplateLoaderTemplate1 = require('./docker-compose-form.html');\n\nimport controller from './docker-compose-form.controller.js';\n\nexport const edgeStacksDockerComposeForm = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n\n  bindings: {\n    formValues: '=',\n    state: '=',\n    templateValues: '<',\n    setTemplateValues: '<',\n  },\n};\n","import angular from 'angular';\n\nimport { createEdgeStackView } from './create-edge-stack-view';\nimport { edgeStacksDockerComposeForm } from './docker-compose-form';\nimport { kubeManifestForm } from './kube-manifest-form';\nimport { kubeDeployDescription } from './kube-deploy-description';\n\nexport default angular\n  .module('portainer.edge.stacks.create', [])\n  .component('createEdgeStackView', createEdgeStackView)\n  .component('edgeStacksDockerComposeForm', edgeStacksDockerComposeForm)\n  .component('edgeStacksKubeManifestForm', kubeManifestForm)\n  .component('kubeDeployDescription', kubeDeployDescription).name;\n","const autoNgTemplateLoaderTemplate1 = require('./kube-deploy-description.html');\n\nexport const kubeDeployDescription = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n};\n","const autoNgTemplateLoaderTemplate1 = require('./kube-manifest-form.html');\n\nimport controller from './kube-manifest-form.controller.js';\n\nexport const kubeManifestForm = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n\n  bindings: {\n    formValues: '=',\n    state: '=',\n  },\n};\n","import { editor, git, upload } from '@@/BoxSelector/common-options/build-methods';\n\nclass KubeManifestFormController {\n  /* @ngInject */\n  constructor($async) {\n    Object.assign(this, { $async });\n\n    this.methodOptions = [editor, upload, git];\n\n    this.onChangeFileContent = this.onChangeFileContent.bind(this);\n    this.onChangeFormValues = this.onChangeFormValues.bind(this);\n    this.onChangeFile = this.onChangeFile.bind(this);\n    this.onChangeMethod = this.onChangeMethod.bind(this);\n    this.onChangeUseManifestNamespaces = this.onChangeUseManifestNamespaces.bind(this);\n  }\n\n  onChangeFormValues(newValues) {\n    return this.$async(async () => {\n      this.formValues = {\n        ...this.formValues,\n        ...newValues,\n      };\n    });\n  }\n\n  onChangeUseManifestNamespaces(value) {\n    this.onChangeFormValues({ UseManifestNamespaces: value });\n  }\n\n  onChangeFileContent(value) {\n    this.state.isEditorDirty = true;\n    this.formValues.StackFileContent = value;\n  }\n\n  onChangeFile(value) {\n    return this.$async(async () => {\n      this.formValues.StackFile = value;\n    });\n  }\n\n  onChangeMethod(method) {\n    return this.$async(async () => {\n      this.state.Method = method;\n    });\n  }\n}\n\nexport default KubeManifestFormController;\n","import { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport { createWebhookId } from '@/portainer/helpers/webhookHelper';\n\nexport class EditEdgeStackViewController {\n  /* @ngInject */\n  constructor($async, $state, $window, EdgeGroupService, EdgeStackService, Notifications) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$window = $window;\n    this.EdgeGroupService = EdgeGroupService;\n    this.EdgeStackService = EdgeStackService;\n    this.Notifications = Notifications;\n\n    this.stack = null;\n    this.edgeGroups = null;\n\n    this.state = {\n      actionInProgress: false,\n      activeTab: 0,\n      isStackDeployed: false,\n    };\n\n    this.formValues = {\n      content: null,\n    };\n\n    this.deployStack = this.deployStack.bind(this);\n    this.deployStackAsync = this.deployStackAsync.bind(this);\n    this.onEditorChange = this.onEditorChange.bind(this);\n    this.isEditorDirty = this.isEditorDirty.bind(this);\n  }\n\n  async $onInit() {\n    return this.$async(async () => {\n      const { stackId, tab } = this.$state.params;\n      this.state.activeTab = tab ? parseInt(tab, 10) : 0;\n      try {\n        const [edgeGroups, model, file] = await Promise.all([\n          this.EdgeGroupService.groups(),\n          this.EdgeStackService.stack(stackId),\n          this.EdgeStackService.stackFile(stackId).catch(() => ''),\n        ]);\n\n        this.edgeGroups = edgeGroups;\n        this.stack = model;\n        this.originalFileContent = file;\n        this.formValues = {\n          content: file,\n        };\n\n        const stackEdgeGroups = model.EdgeGroups.map((id) => this.edgeGroups.find((e) => e.Id === id));\n        const endpointTypes = stackEdgeGroups.flatMap((group) => group.EndpointTypes);\n        const initiallyContainsKubeEnv = endpointTypes.includes(EnvironmentType.EdgeAgentOnKubernetes);\n        const isComposeStack = this.stack.DeploymentType === 0;\n\n        this.allowKubeToSelectCompose = initiallyContainsKubeEnv && isComposeStack;\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve stack data');\n      }\n\n      this.oldFileContent = this.formValues.StackFileContent;\n\n      this.$window.onbeforeunload = () => {\n        if (this.isEditorDirty()) {\n          return '';\n        }\n      };\n    });\n  }\n\n  $onDestroy() {\n    this.$window.onbeforeunload = undefined;\n  }\n\n  async uiCanExit() {\n    if (this.isEditorDirty()) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  onEditorChange(content) {\n    this.formValues.content = content;\n  }\n\n  isEditorDirty() {\n    return !this.state.isStackDeployed && this.formValues.content.replace(/(\\r\\n|\\n|\\r)/gm, '') !== this.originalFileContent.replace(/(\\r\\n|\\n|\\r)/gm, '');\n  }\n\n  deployStack(values) {\n    return this.deployStackAsync(values);\n  }\n\n  async deployStackAsync(values) {\n    this.state.actionInProgress = true;\n    try {\n      const updateVersion = !!(this.originalFileContent != values.content || values.useManifestNamespaces !== this.stack.UseManifestNamespaces);\n\n      await this.EdgeStackService.updateStack(this.stack.Id, {\n        stackFileContent: values.content,\n        edgeGroups: values.edgeGroups,\n        deploymentType: values.deploymentType,\n        updateVersion,\n        retryDeploy: values.retryDeploy,\n        webhook: values.webhookEnabled ? this.stack.Webhook || createWebhookId() : '',\n        envVars: values.envVars,\n      });\n      this.Notifications.success('Success', 'Stack successfully deployed');\n      this.state.isStackDeployed = true;\n      this.$state.go('edge.stacks');\n    } catch (err) {\n      this.Notifications.error('Deployment error', err, 'Unable to deploy stack');\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./editEdgeStackView.html');\n\nimport angular from 'angular';\n\nimport { EditEdgeStackViewController } from './editEdgeStackViewController';\n\nangular.module('portainer.edge').component('editEdgeStackView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: EditEdgeStackViewController,\n});\n","import angular from 'angular';\n\nimport createModule from './createEdgeStackView';\n\nexport default angular.module('portainer.edge.stacks', [createModule]).name;\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport Backend from 'i18next-http-backend';\n\ni18n\n  .use(Backend)\n  .use(LanguageDetector)\n  .use(initReactI18next)\n  .init({\n    debug: true,\n    fallbackLng: 'en',\n    interpolation: {\n      escapeValue: false,\n    },\n  });\n\nexport default i18n;\n","import angular from 'angular';\n\nexport const componentsModule = angular.module(\n  'portainer.azure.react.components',\n  []\n).name;\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"app-react-azure-container-instances-CreateView-PortsMappingField-module__item\",\"errors\":\"app-react-azure-container-instances-CreateView-PortsMappingField-module__errors\"};","import { FormikErrors } from 'formik';\nimport { ArrowRight } from 'lucide-react';\n\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { FormError } from '@@/form-components/FormError';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { InputList } from '@@/form-components/InputList';\nimport { ItemProps } from '@@/form-components/InputList/InputList';\nimport { Icon } from '@@/Icon';\n\nimport styles from './PortsMappingField.module.css';\n\ntype Protocol = 'TCP' | 'UDP';\n\nexport interface PortMapping {\n  host?: number;\n  container?: number;\n  protocol: Protocol;\n}\n\ninterface Props {\n  value: PortMapping[];\n  onChange?(value: PortMapping[]): void;\n  errors?: FormikErrors<PortMapping>[] | string | string[];\n  disabled?: boolean;\n  readOnly?: boolean;\n}\n\nexport function PortsMappingField({\n  value,\n  onChange = () => {},\n  errors,\n  disabled,\n  readOnly,\n}: Props) {\n  return (\n    <>\n      <InputList<PortMapping>\n        label=\"Port mapping\"\n        value={value}\n        onChange={onChange}\n        addLabel=\"map additional port\"\n        itemBuilder={() => ({\n          host: 0,\n          container: 0,\n          protocol: 'TCP',\n        })}\n        item={Item}\n        errors={errors}\n        disabled={disabled}\n        readOnly={readOnly}\n      />\n      {typeof errors === 'string' && (\n        <div className=\"form-group col-md-12\">\n          <FormError>{errors}</FormError>\n        </div>\n      )}\n    </>\n  );\n}\n\nfunction Item({\n  onChange,\n  item,\n  error,\n  disabled,\n  readOnly,\n}: ItemProps<PortMapping>) {\n  return (\n    <div className={styles.item}>\n      <div className=\"flex items-center gap-2\">\n        <InputGroup size=\"small\">\n          <InputGroup.Addon>host</InputGroup.Addon>\n          <InputGroup.Input\n            placeholder=\"e.g. 80\"\n            value={item.host}\n            onChange={(e) =>\n              handleChange('host', parseInt(e.target.value || '0', 10))\n            }\n            disabled={disabled}\n            readOnly={readOnly}\n            type=\"number\"\n          />\n        </InputGroup>\n\n        <span className=\"mx-3\">\n          <Icon icon={ArrowRight} />\n        </span>\n\n        <InputGroup size=\"small\">\n          <InputGroup.Addon>container</InputGroup.Addon>\n          <InputGroup.Input\n            placeholder=\"e.g. 80\"\n            value={item.container}\n            onChange={(e) =>\n              handleChange('container', parseInt(e.target.value || '0', 10))\n            }\n            disabled={disabled}\n            readOnly={readOnly}\n            type=\"number\"\n          />\n        </InputGroup>\n\n        <ButtonSelector<Protocol>\n          onChange={(value) => handleChange('protocol', value)}\n          value={item.protocol}\n          options={[{ value: 'TCP' }, { value: 'UDP' }]}\n          disabled={disabled}\n          readOnly={readOnly}\n        />\n      </div>\n      {!!error && (\n        <div className={styles.errors}>\n          <FormError>{Object.values(error)[0]}</FormError>\n        </div>\n      )}\n    </div>\n  );\n\n  function handleChange(name: keyof PortMapping, value: string | number) {\n    onChange({ ...item, [name]: value });\n  }\n}\n","import { AxiosError } from 'axios';\n\nexport function azureErrorParser(axiosError: AxiosError) {\n  if (!axiosError.response) {\n    const error = new Error('Failed azure request');\n    return {\n      error,\n      details: axiosError.message,\n    };\n  }\n\n  const responseData = axiosError.response.data;\n  const message =\n    responseData &&\n    typeof responseData === 'object' &&\n    'error' in responseData &&\n    typeof responseData.error === 'string'\n      ? responseData.error\n      : `Failed azure request: ${axiosError.response?.statusText}`;\n\n  return {\n    error: new Error(message),\n    details: message,\n  };\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport const queryKeys = {\n  subscriptions: (environmentId: EnvironmentId) =>\n    ['azure', environmentId, 'subscriptions'] as const,\n  subscription: (environmentId: EnvironmentId, subscriptionId: string) =>\n    [...queryKeys.subscriptions(environmentId), subscriptionId] as const,\n  resourceGroups: (environmentId: EnvironmentId, subscriptionId: string) =>\n    [\n      ...queryKeys.subscription(environmentId, subscriptionId),\n      'resourceGroups',\n    ] as const,\n  resourceGroup: (\n    environmentId: EnvironmentId,\n    subscriptionId: string,\n    resourceGroupName: string\n  ) =>\n    [\n      ...queryKeys.resourceGroups(environmentId, subscriptionId),\n      resourceGroupName,\n    ] as const,\n  provider: (environmentId: EnvironmentId, subscriptionId: string) =>\n    [\n      ...queryKeys.subscription(environmentId, subscriptionId),\n      'provider',\n    ] as const,\n  containerGroups: (environmentId: EnvironmentId, subscriptionId: string) =>\n    [\n      ...queryKeys.subscription(environmentId, subscriptionId),\n      'containerGroups',\n    ] as const,\n  containerGroup: (\n    environmentId: EnvironmentId,\n    subscriptionId: string,\n    resourceGroupName: string,\n    containerGroupName: string\n  ) =>\n    [\n      ...queryKeys.resourceGroup(\n        environmentId,\n        subscriptionId,\n        resourceGroupName\n      ),\n      'containerGroups',\n      containerGroupName,\n    ] as const,\n};\n","import _ from 'lodash';\nimport { useQueries } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { ProviderViewModel, Subscription } from '../types';\nimport { azureErrorParser } from '../services/utils';\n\nimport { queryKeys } from './query-keys';\n\nexport function useProvider(\n  environmentId: EnvironmentId,\n  subscriptions: Subscription[] = []\n) {\n  const queries = useQueries(\n    subscriptions.map((subscription) => ({\n      queryKey: queryKeys.provider(environmentId, subscription.subscriptionId),\n      queryFn: async () => {\n        const provider = await getContainerInstanceProvider(\n          environmentId,\n          subscription.subscriptionId\n        );\n        return [subscription.subscriptionId, provider] as const;\n      },\n      ...withError('Unable to retrieve Azure providers'),\n    }))\n  );\n\n  return {\n    providers: Object.fromEntries(\n      _.compact(\n        queries.map((q) => {\n          if (q.data) {\n            return q.data;\n          }\n\n          return null;\n        })\n      )\n    ),\n    isLoading: queries.some((q) => q.isLoading),\n  };\n}\n\ninterface ResourceType {\n  resourceType: 'containerGroups' | string;\n  locations: string[];\n}\n\ninterface ProviderResponse {\n  id: string;\n  namespace: string;\n  resourceTypes: ResourceType[];\n}\n\nasync function getContainerInstanceProvider(\n  environmentId: EnvironmentId,\n  subscriptionId: string\n) {\n  try {\n    const url = `/endpoints/${environmentId}/azure/subscriptions/${subscriptionId}/providers/Microsoft.ContainerInstance`;\n    const { data } = await axios.get<ProviderResponse>(url, {\n      params: { 'api-version': '2018-02-01' },\n    });\n\n    return parseViewModel(data);\n  } catch (error) {\n    throw parseAxiosError(\n      error as Error,\n      'Unable to retrieve provider',\n      azureErrorParser\n    );\n  }\n}\nfunction parseViewModel({\n  id,\n  namespace,\n  resourceTypes,\n}: ProviderResponse): ProviderViewModel {\n  const containerGroupType = _.find(resourceTypes, {\n    resourceType: 'containerGroups',\n  });\n  const { locations = [] } = containerGroupType || {};\n  return { id, namespace, locations };\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function buildSubscriptionsUrl(\n  environmentId: EnvironmentId,\n  id?: string\n) {\n  let url = `/endpoints/${environmentId}/azure/subscriptions`;\n  if (id) {\n    url += `/${id}`;\n  }\n\n  return url;\n}\n\nexport function buildResourceGroupUrl(\n  environmentId: EnvironmentId,\n  subscriptionId: string,\n  resourceGroupName?: string\n) {\n  let url = `${buildSubscriptionsUrl(\n    environmentId,\n    subscriptionId\n  )}/resourcegroups`;\n\n  if (resourceGroupName) {\n    url += `/${resourceGroupName}`;\n  }\n\n  return url;\n}\n\nexport function buildContainerGroupUrl(\n  environmentId: EnvironmentId,\n  subscriptionId: string,\n  resourceGroupName?: string,\n  containerGroupName?: string\n) {\n  let url = buildSubscriptionsUrl(environmentId, subscriptionId);\n\n  if (resourceGroupName) {\n    url += `/resourceGroups/${resourceGroupName}`;\n  }\n\n  url += `/providers/Microsoft.ContainerInstance/containerGroups`;\n\n  if (containerGroupName) {\n    url += `/${containerGroupName}`;\n  }\n\n  return url;\n}\n","import _ from 'lodash';\nimport { useQueries } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { azureErrorParser } from '../services/utils';\nimport { Subscription, ResourceGroup } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildResourceGroupUrl } from './utils';\n\nexport function useResourceGroups(\n  environmentId: EnvironmentId,\n  subscriptions: Subscription[] = []\n) {\n  const queries = useQueries(\n    subscriptions.map((subscription) => ({\n      queryKey: queryKeys.resourceGroups(\n        environmentId,\n        subscription.subscriptionId\n      ),\n      queryFn: async () => {\n        const groups = await getResourceGroups(\n          environmentId,\n          subscription.subscriptionId\n        );\n        return [subscription.subscriptionId, groups] as const;\n      },\n      ...withError('Unable to retrieve Azure resource groups'),\n    }))\n  );\n\n  return {\n    resourceGroups: Object.fromEntries(\n      _.compact(\n        queries.map((q) => {\n          if (q.data) {\n            return q.data;\n          }\n\n          return null;\n        })\n      )\n    ),\n    isLoading: queries.some((q) => q.isLoading),\n    isError: queries.some((q) => q.isError),\n  };\n}\n\nasync function getResourceGroups(\n  environmentId: EnvironmentId,\n  subscriptionId: string\n) {\n  try {\n    const {\n      data: { value },\n    } = await axios.get<{ value: ResourceGroup[] }>(\n      buildResourceGroupUrl(environmentId, subscriptionId),\n      { params: { 'api-version': '2018-02-01' } }\n    );\n\n    return value;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Unable to retrieve resource groups',\n      azureErrorParser\n    );\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\n\nimport { azureErrorParser } from '../services/utils';\nimport { Subscription } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildSubscriptionsUrl } from './utils';\n\nexport function useSubscriptions(environmentId: EnvironmentId) {\n  return useQuery(\n    queryKeys.subscriptions(environmentId),\n    () => getSubscriptions(environmentId),\n    {\n      ...withError('Unable to retrieve Azure subscriptions'),\n    }\n  );\n}\n\nasync function getSubscriptions(environmentId: EnvironmentId) {\n  try {\n    const { data } = await axios.get<{ value: Subscription[] }>(\n      buildSubscriptionsUrl(environmentId),\n      { params: { 'api-version': '2016-06-01' } }\n    );\n    return data.value;\n  } catch (e) {\n    throw parseAxiosError(\n      e,\n      'Unable to retrieve subscriptions',\n      azureErrorParser\n    );\n  }\n}\n","import { ProviderViewModel, ResourceGroup } from '@/react/azure/types';\n\nexport function getSubscriptionResourceGroups(\n  subscriptionId?: string,\n  resourceGroups?: Record<string, ResourceGroup[]>\n) {\n  if (!subscriptionId || !resourceGroups || !resourceGroups[subscriptionId]) {\n    return [];\n  }\n\n  return resourceGroups[subscriptionId].map(({ name, id }) => ({\n    value: id,\n    label: name,\n  }));\n}\n\nexport function getSubscriptionLocations(\n  subscriptionId?: string,\n  containerInstanceProviders?: Record<string, ProviderViewModel | undefined>\n) {\n  if (!subscriptionId || !containerInstanceProviders) {\n    return [];\n  }\n\n  const provider = containerInstanceProviders[subscriptionId];\n  if (!provider) {\n    return [];\n  }\n\n  return provider.locations.map((location) => ({\n    value: location,\n    label: location,\n  }));\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { buildContainerGroupUrl } from '../queries/utils';\nimport { ContainerGroup, ContainerInstanceFormValues } from '../types';\n\nexport async function createContainerGroup(\n  model: ContainerInstanceFormValues,\n  environmentId: EnvironmentId,\n  subscriptionId: string,\n  resourceGroupName: string\n) {\n  const payload = transformToPayload(model);\n  try {\n    const { data } = await axios.put<ContainerGroup>(\n      buildContainerGroupUrl(\n        environmentId,\n        subscriptionId,\n        resourceGroupName,\n        model.name\n      ),\n      payload,\n      { params: { 'api-version': '2018-04-01' } }\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function deleteContainerGroup(\n  environmentId: EnvironmentId,\n  containerGroupId: string\n) {\n  try {\n    await axios.delete(`/endpoints/${environmentId}/azure${containerGroupId}`, {\n      params: { 'api-version': '2018-04-01' },\n    });\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to remove container group');\n  }\n}\n\nfunction transformToPayload(model: ContainerInstanceFormValues) {\n  const containerPorts = [];\n  const addressPorts = [];\n\n  const ports = model.ports.filter((p) => p.container && p.host);\n\n  for (let i = 0; i < ports.length; i += 1) {\n    const binding = ports[i];\n\n    containerPorts.push({\n      port: binding.container,\n    });\n\n    addressPorts.push({\n      port: binding.host,\n      protocol: binding.protocol,\n    });\n  }\n\n  return {\n    location: model.location,\n    properties: {\n      osType: model.os,\n      containers: [\n        {\n          name: model.name,\n          properties: {\n            image: model.image,\n            ports: containerPorts,\n            resources: {\n              requests: {\n                cpu: model.cpu,\n                memoryInGB: model.memory,\n              },\n            },\n          },\n        },\n      ],\n      ipAddress: {\n        type: model.allocatePublicIP ? 'Public' : 'Private',\n        ports: addressPorts,\n      },\n    },\n  };\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport { createContainerGroup } from '@/react/azure/services/container-groups.service';\nimport { queryKeys } from '@/react/azure/queries/query-keys';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport PortainerError from '@/portainer/error';\nimport {\n  ContainerGroup,\n  ContainerInstanceFormValues,\n  ResourceGroup,\n} from '@/react/azure/types';\nimport { applyResourceControl } from '@/react/portainer/access-control/access-control.service';\n\nimport { getSubscriptionResourceGroups } from './utils';\n\nexport function useCreateInstanceMutation(\n  resourceGroups: {\n    [k: string]: ResourceGroup[];\n  },\n  environmentId: EnvironmentId\n) {\n  const queryClient = useQueryClient();\n  return useMutation<ContainerGroup, unknown, ContainerInstanceFormValues>(\n    (values) => {\n      if (!values.subscription) {\n        throw new PortainerError('subscription is required');\n      }\n\n      const subscriptionResourceGroup = getSubscriptionResourceGroups(\n        values.subscription,\n        resourceGroups\n      );\n      const resourceGroup = subscriptionResourceGroup.find(\n        (r) => r.value === values.resourceGroup\n      );\n      if (!resourceGroup) {\n        throw new PortainerError('resource group not found');\n      }\n\n      return createContainerGroup(\n        values,\n        environmentId,\n        values.subscription,\n        resourceGroup.label\n      );\n    },\n    {\n      async onSuccess(containerGroup, values) {\n        const resourceControl = containerGroup.Portainer?.ResourceControl;\n        if (!resourceControl) {\n          throw new PortainerError('resource control expected after creation');\n        }\n\n        const accessControlData = values.accessControl;\n        await applyResourceControl(accessControlData, resourceControl.Id);\n        return queryClient.invalidateQueries(\n          queryKeys.subscriptions(environmentId)\n        );\n      },\n    }\n  );\n}\n","import { Field, Form, Formik } from 'formik';\nimport { useRouter } from '@uirouter/react';\nimport { Plus } from 'lucide-react';\n\nimport { ContainerInstanceFormValues } from '@/react/azure/types';\nimport * as notifications from '@/portainer/services/notifications';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { AccessControlForm } from '@/react/portainer/access-control/AccessControlForm';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input, Select } from '@@/form-components/Input';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\n\nimport { validationSchema } from './CreateContainerInstanceForm.validation';\nimport { PortsMappingField } from './PortsMappingField';\nimport { useFormState, useLoadFormState } from './useLoadFormState';\nimport {\n  getSubscriptionLocations,\n  getSubscriptionResourceGroups,\n} from './utils';\nimport { useCreateInstanceMutation } from './useCreateInstanceMutation';\n\nexport function CreateContainerInstanceForm() {\n  const environmentId = useEnvironmentId();\n  const { isPureAdmin } = useCurrentUser();\n\n  const { providers, subscriptions, resourceGroups, isLoading } =\n    useLoadFormState(environmentId);\n\n  const { initialValues, subscriptionOptions } = useFormState(\n    subscriptions,\n    resourceGroups,\n    providers\n  );\n\n  const router = useRouter();\n\n  const { mutateAsync } = useCreateInstanceMutation(\n    resourceGroups,\n    environmentId\n  );\n\n  if (isLoading) {\n    return null;\n  }\n\n  return (\n    <Formik<ContainerInstanceFormValues>\n      initialValues={initialValues}\n      validationSchema={() => validationSchema(isPureAdmin)}\n      onSubmit={onSubmit}\n      validateOnMount\n      validateOnChange\n      enableReinitialize\n    >\n      {({\n        errors,\n        handleSubmit,\n        isSubmitting,\n        isValid,\n        values,\n        setFieldValue,\n      }) => (\n        <Form className=\"form-horizontal\" onSubmit={handleSubmit} noValidate>\n          <FormSectionTitle>Azure settings</FormSectionTitle>\n          <FormControl\n            label=\"Subscription\"\n            inputId=\"subscription-input\"\n            errors={errors.subscription}\n          >\n            <Field\n              name=\"subscription\"\n              as={Select}\n              id=\"subscription-input\"\n              options={subscriptionOptions}\n            />\n          </FormControl>\n\n          <FormControl\n            label=\"Resource group\"\n            inputId=\"resourceGroup-input\"\n            errors={errors.resourceGroup}\n          >\n            <Field\n              name=\"resourceGroup\"\n              as={Select}\n              id=\"resourceGroup-input\"\n              options={getSubscriptionResourceGroups(\n                values.subscription,\n                resourceGroups\n              )}\n            />\n          </FormControl>\n\n          <FormControl\n            label=\"Location\"\n            inputId=\"location-input\"\n            errors={errors.location}\n          >\n            <Field\n              name=\"location\"\n              as={Select}\n              id=\"location-input\"\n              options={getSubscriptionLocations(values.subscription, providers)}\n            />\n          </FormControl>\n\n          <FormSectionTitle>Container configuration</FormSectionTitle>\n\n          <FormControl label=\"Name\" inputId=\"name-input\" errors={errors.name}>\n            <Field\n              name=\"name\"\n              as={Input}\n              id=\"name-input\"\n              placeholder=\"e.g. myContainer\"\n            />\n          </FormControl>\n\n          <FormControl\n            label=\"Image\"\n            inputId=\"image-input\"\n            errors={errors.image}\n          >\n            <Field\n              name=\"image\"\n              as={Input}\n              id=\"image-input\"\n              placeholder=\"e.g. nginx:alpine\"\n            />\n          </FormControl>\n\n          <FormControl label=\"OS\" inputId=\"os-input\" errors={errors.os}>\n            <Field\n              name=\"os\"\n              as={Select}\n              id=\"os-input\"\n              options={[\n                { label: 'Linux', value: 'Linux' },\n                { label: 'Windows', value: 'Windows' },\n              ]}\n            />\n          </FormControl>\n\n          <PortsMappingField\n            value={values.ports}\n            onChange={(value) => setFieldValue('ports', value)}\n            errors={errors.ports}\n          />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12 small text-muted\">\n              This will automatically deploy a container with a public IP\n              address\n            </div>\n          </div>\n\n          <FormSectionTitle>Container Resources</FormSectionTitle>\n\n          <FormControl label=\"CPU\" inputId=\"cpu-input\" errors={errors.cpu}>\n            <Field\n              name=\"cpu\"\n              as={Input}\n              id=\"cpu-input\"\n              type=\"number\"\n              placeholder=\"1\"\n            />\n          </FormControl>\n\n          <FormControl\n            label=\"Memory\"\n            inputId=\"cpu-input\"\n            errors={errors.memory}\n          >\n            <Field\n              name=\"memory\"\n              as={Input}\n              id=\"memory-input\"\n              type=\"number\"\n              placeholder=\"1\"\n            />\n          </FormControl>\n\n          <AccessControlForm\n            formNamespace=\"accessControl\"\n            onChange={(values) => setFieldValue('accessControl', values)}\n            values={values.accessControl}\n            errors={errors.accessControl}\n            environmentId={environmentId}\n          />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                disabled={!isValid}\n                isLoading={isSubmitting}\n                loadingText=\"Deployment in progress...\"\n                icon={Plus}\n              >\n                Deploy the container\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  async function onSubmit(values: ContainerInstanceFormValues) {\n    try {\n      await mutateAsync(values);\n      notifications.success('Container successfully created', values.name);\n      router.stateService.go('azure.containerinstances');\n    } catch (e) {\n      notifications.error('Failure', e as Error, 'Unable to create container');\n    }\n  }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  ContainerInstanceFormValues,\n  ProviderViewModel,\n  ResourceGroup,\n  Subscription,\n} from '@/react/azure/types';\nimport { parseAccessControlFormData } from '@/react/portainer/access-control/utils';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { useProvider } from '@/react/azure/queries/useProvider';\nimport { useResourceGroups } from '@/react/azure/queries/useResourceGroups';\nimport { useSubscriptions } from '@/react/azure/queries/useSubscriptions';\n\nimport {\n  getSubscriptionLocations,\n  getSubscriptionResourceGroups,\n} from './utils';\n\nexport function useLoadFormState(environmentId: EnvironmentId) {\n  const { data: subscriptions, isLoading: isLoadingSubscriptions } =\n    useSubscriptions(environmentId);\n  const { resourceGroups, isLoading: isLoadingResourceGroups } =\n    useResourceGroups(environmentId, subscriptions);\n  const { providers, isLoading: isLoadingProviders } = useProvider(\n    environmentId,\n    subscriptions\n  );\n\n  const isLoading =\n    isLoadingSubscriptions || isLoadingResourceGroups || isLoadingProviders;\n\n  return { isLoading, subscriptions, resourceGroups, providers };\n}\n\nexport function useFormState(\n  subscriptions: Subscription[] = [],\n  resourceGroups: Record<string, ResourceGroup[]> = {},\n  providers: Record<string, ProviderViewModel> = {}\n) {\n  const { user, isPureAdmin } = useCurrentUser();\n\n  const subscriptionOptions = subscriptions.map((s) => ({\n    value: s.subscriptionId,\n    label: s.displayName,\n  }));\n\n  const initSubscriptionId = getFirstValue(subscriptionOptions);\n\n  const subscriptionResourceGroups = getSubscriptionResourceGroups(\n    initSubscriptionId,\n    resourceGroups\n  );\n\n  const subscriptionLocations = getSubscriptionLocations(\n    initSubscriptionId,\n    providers\n  );\n\n  const initialValues: ContainerInstanceFormValues = {\n    name: '',\n    location: getFirstValue(subscriptionLocations),\n    subscription: initSubscriptionId,\n    resourceGroup: getFirstValue(subscriptionResourceGroups),\n    image: '',\n    os: 'Linux',\n    memory: 1,\n    cpu: 1,\n    ports: [{ container: 80, host: 80, protocol: 'TCP' }],\n    allocatePublicIP: true,\n    accessControl: parseAccessControlFormData(isPureAdmin, user.Id),\n  };\n\n  return {\n    initialValues,\n    subscriptionOptions,\n  };\n\n  function getFirstValue<T>(arr: { value: T }[]) {\n    if (arr.length === 0) {\n      return undefined;\n    }\n\n    return arr[0].value;\n  }\n}\n","import { object, string, number, boolean } from 'yup';\n\nimport { validationSchema as accessControlSchema } from '@/react/portainer/access-control/AccessControlForm/AccessControlForm.validation';\n\nimport { validationSchema as portsSchema } from './PortsMappingField.validation';\n\nexport function validationSchema(isAdmin: boolean) {\n  return object().shape({\n    name: string().required('Name is required.'),\n    image: string().required('Image is required.'),\n    subscription: string().required('Subscription is required.'),\n    resourceGroup: string().required('Resource group is required.'),\n    location: string().required('Location is required.'),\n    os: string().oneOf(['Linux', 'Windows']),\n    cpu: number().positive(),\n    memory: number().positive(),\n    allocatePublicIP: boolean(),\n    ports: portsSchema(),\n    accessControl: accessControlSchema(isAdmin),\n  });\n}\n","import { array, object, string } from 'yup';\n\nexport function validationSchema() {\n  return array(\n    object().shape({\n      host: string().required('host is required'),\n      container: string().required('container is required'),\n      protocol: string().oneOf(['TCP', 'UDP']),\n    })\n  ).min(1, 'At least one port binding is required');\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { ContainerGroup } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildContainerGroupUrl } from './utils';\n\nexport function useContainerGroup(\n  environmentId: EnvironmentId,\n  subscriptionId: string,\n  resourceGroupName: string,\n  containerGroupName: string\n) {\n  return useQuery(\n    queryKeys.containerGroup(\n      environmentId,\n      subscriptionId,\n      resourceGroupName,\n      containerGroupName\n    ),\n    () =>\n      getContainerGroup(\n        environmentId,\n        subscriptionId,\n        resourceGroupName,\n        containerGroupName\n      ),\n    {\n      ...withError('Unable to retrieve Azure container group'),\n    }\n  );\n}\n\nasync function getContainerGroup(\n  environmentId: EnvironmentId,\n  subscriptionId: string,\n  resourceGroupName: string,\n  containerGroupName: string\n) {\n  try {\n    const { data } = await axios.get<ContainerGroup>(\n      buildContainerGroupUrl(\n        environmentId,\n        subscriptionId,\n        resourceGroupName,\n        containerGroupName\n      ),\n      { params: { 'api-version': '2018-04-01' } }\n    );\n\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { azureErrorParser } from '../services/utils';\nimport { ResourceGroup } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildResourceGroupUrl } from './utils';\n\nexport function useResourceGroup(\n  environmentId: EnvironmentId,\n  subscriptionId: string,\n  resourceGroupName: string\n) {\n  return useQuery(\n    queryKeys.resourceGroup(environmentId, subscriptionId, resourceGroupName),\n    () => getResourceGroup(environmentId, subscriptionId, resourceGroupName),\n    {\n      ...withError('Unable to retrieve Azure resource group'),\n    }\n  );\n}\n\nexport async function getResourceGroup(\n  environmentId: EnvironmentId,\n  subscriptionId: string,\n  resourceGroupName: string\n) {\n  try {\n    const { data } = await axios.get<ResourceGroup>(\n      buildResourceGroupUrl(environmentId, subscriptionId, resourceGroupName),\n      { params: { 'api-version': '2018-02-01' } }\n    );\n\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Unable to retrieve resource group',\n      azureErrorParser\n    );\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { Subscription } from '../types';\nimport { azureErrorParser } from '../services/utils';\n\nimport { queryKeys } from './query-keys';\nimport { buildSubscriptionsUrl } from './utils';\n\nexport function useSubscription(\n  environmentId: EnvironmentId,\n  subscriptionId: string\n) {\n  return useQuery(\n    queryKeys.subscription(environmentId, subscriptionId),\n    () => getSubscription(environmentId, subscriptionId),\n    {\n      ...withError('Unable to retrieve Azure subscription'),\n    }\n  );\n}\n\nasync function getSubscription(\n  environmentId: EnvironmentId,\n  subscriptionId: string\n) {\n  try {\n    const { data } = await axios.get<Subscription>(\n      buildSubscriptionsUrl(environmentId, subscriptionId),\n      { params: { 'api-version': '2016-06-01' } }\n    );\n\n    return data;\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      'Unable to retrieve subscription',\n      azureErrorParser\n    );\n  }\n}\n","import _ from 'lodash';\nimport { useMemo } from 'react';\nimport { useQueries } from 'react-query';\n\nimport { withError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Subscription, ContainerGroup } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildContainerGroupUrl } from './utils';\n\nexport function useContainerGroups(\n  environmentId: EnvironmentId,\n  subscriptions: Subscription[] = [],\n  enabled?: boolean\n) {\n  const queries = useQueries(\n    useMemo(\n      () =>\n        subscriptions.map((subscription) => ({\n          queryKey: queryKeys.containerGroups(\n            environmentId,\n            subscription.subscriptionId\n          ),\n          queryFn: async () =>\n            getContainerGroups(environmentId, subscription.subscriptionId),\n          ...withError('Unable to retrieve Azure container groups'),\n          enabled,\n        })),\n      [subscriptions, enabled, environmentId]\n    )\n  );\n\n  return useMemo(\n    () => ({\n      containerGroups: _.flatMap(_.compact(queries.map((q) => q.data))),\n      isLoading: queries.some((q) => q.isLoading),\n    }),\n    [queries]\n  );\n}\n\nexport async function getContainerGroups(\n  environmentId: EnvironmentId,\n  subscriptionId: string\n) {\n  try {\n    const { data } = await axios.get<{ value: ContainerGroup[] }>(\n      buildContainerGroupUrl(environmentId, subscriptionId),\n      { params: { 'api-version': '2018-04-01' } }\n    );\n\n    return data.value;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve container groups');\n  }\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { ContainerGroup } from '@/react/azure/types';\n\nexport const columnHelper = createColumnHelper<ContainerGroup>();\n","import { CellContext } from '@tanstack/react-table';\n\nimport { ContainerGroup } from '@/react/azure/types';\n\nimport { Link } from '@@/Link';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('name', {\n  header: 'Name',\n  cell: NameCell,\n});\n\nexport function NameCell({\n  getValue,\n  row: { original: container },\n}: CellContext<ContainerGroup, string>) {\n  const name = getValue();\n  return (\n    <Link\n      to=\"azure.containerinstances.container\"\n      params={{ id: container.id }}\n      className=\"hover:underline\"\n    >\n      {name}\n    </Link>\n  );\n}\n","import { columnHelper } from './helper';\n\nexport const location = columnHelper.accessor('location', {\n  header: 'Location',\n});\n","import { ExternalLink } from 'lucide-react';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { ContainerGroup } from '@/react/azure/types';\nimport { getPorts } from '@/react/azure/utils';\nimport { getSchemeFromPort } from '@/react/common/network-utils';\n\nimport { Icon } from '@@/Icon';\n\nimport { columnHelper } from './helper';\n\nexport const ports = columnHelper.accessor(getPorts, {\n  header: 'Published Ports',\n  cell: PortsCell,\n  id: 'ports',\n});\n\nfunction PortsCell({\n  getValue,\n  row: { original: container },\n}: CellContext<ContainerGroup, ReturnType<typeof getPorts>>) {\n  const ports = getValue();\n\n  const ip = container.properties.ipAddress\n    ? container.properties.ipAddress.ip\n    : '';\n  if (ports.length === 0 || !ip) {\n    return '-';\n  }\n\n  return ports.map((port) => {\n    const scheme = getSchemeFromPort(port.host);\n    return (\n      <a\n        className=\"image-tag\"\n        href={`${scheme}://${ip}:${port.host}`}\n        key={port.host}\n      >\n        <Icon icon={ExternalLink} className=\"mr-1\" />\n        {ip}:{port.host}\n      </a>\n    );\n  });\n}\n","import { ContainerGroup } from './types';\n\nexport function getPorts(containerGroup: ContainerGroup) {\n  const addressPorts = containerGroup.properties.ipAddress\n    ? containerGroup.properties.ipAddress.ports\n    : [];\n  const container = containerGroup.properties.containers.length\n    ? containerGroup.properties.containers[0]\n    : null;\n  const containerPorts = container ? container.properties.ports : [];\n\n  return addressPorts.map((binding, index) => {\n    const port = containerPorts[index] ? containerPorts[index].port : undefined;\n    return {\n      container: port,\n      host: binding.port,\n      protocol: binding.protocol,\n    };\n  });\n}\n","import { name } from './name';\nimport { location } from './location';\nimport { ports } from './ports';\nimport { ownership } from './ownership';\n\nexport const columns = [name, location, ports, ownership];\n","import clsx from 'clsx';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { ResourceControlOwnership } from '@/react/portainer/access-control/types';\nimport { ContainerGroup } from '@/react/azure/types';\nimport { determineOwnership } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { ownershipIcon } from '@/react/docker/components/datatable/createOwnershipColumn';\n\nimport { columnHelper } from './helper';\n\nexport const ownership = columnHelper.accessor(\n  (row) =>\n    row.Portainer && row.Portainer.ResourceControl\n      ? determineOwnership(row.Portainer.ResourceControl)\n      : ResourceControlOwnership.ADMINISTRATORS,\n  {\n    header: 'Ownership',\n    cell: OwnershipCell,\n    id: 'ownership',\n  }\n);\n\nfunction OwnershipCell({\n  getValue,\n}: CellContext<ContainerGroup, ResourceControlOwnership>) {\n  const value = getValue();\n\n  return (\n    <>\n      <i\n        className={clsx(ownershipIcon(value), 'space-right')}\n        aria-hidden=\"true\"\n      />\n      {value}\n    </>\n  );\n}\n","import { Box, Plus, Trash2 } from 'lucide-react';\n\nimport { ContainerGroup } from '@/react/azure/types';\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable } from '@@/datatables';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { columns } from './columns';\n\nconst tableKey = 'containergroups';\n\nconst settingsStore = createPersistedStore(tableKey, 'name');\nexport interface Props {\n  dataset: ContainerGroup[];\n  onRemoveClick(containerIds: string[]): void;\n}\n\nexport function ContainersDatatable({ dataset, onRemoveClick }: Props) {\n  const tableState = useTableState(settingsStore, tableKey);\n\n  return (\n    <Datatable\n      dataset={dataset}\n      columns={columns}\n      settingsManager={tableState}\n      title=\"Containers\"\n      titleIcon={Box}\n      getRowId={(container) => container.id}\n      emptyContentLabel=\"No container available.\"\n      renderTableActions={(selectedRows) => (\n        <>\n          <Authorized authorizations=\"AzureContainerGroupDelete\">\n            <Button\n              color=\"dangerlight\"\n              disabled={selectedRows.length === 0}\n              onClick={() => handleRemoveClick(selectedRows.map((r) => r.id))}\n              icon={Trash2}\n            >\n              Remove\n            </Button>\n          </Authorized>\n\n          <Authorized authorizations=\"AzureContainerGroupCreate\">\n            <Link to=\"azure.containerinstances.new\" className=\"space-left\">\n              <Button icon={Plus}>Add container</Button>\n            </Link>\n          </Authorized>\n        </>\n      )}\n    />\n  );\n\n  async function handleRemoveClick(containerIds: string[]) {\n    const confirmed = await confirmDelete(\n      'Are you sure you want to delete the selected containers?'\n    );\n    if (!confirmed) {\n      return null;\n    }\n\n    return onRemoveClick(containerIds);\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport { deleteContainerGroup } from '@/react/azure/services/container-groups.service';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { useContainerGroups } from '@/react/azure/queries/useContainerGroups';\nimport { useSubscriptions } from '@/react/azure/queries/useSubscriptions';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { ContainersDatatable } from './ContainersDatatable';\n\nexport function ListView() {\n  const environmentId = useEnvironmentId();\n\n  const subscriptionsQuery = useSubscriptions(environmentId);\n\n  const groupsQuery = useContainerGroups(\n    environmentId,\n    subscriptionsQuery.data,\n    subscriptionsQuery.isSuccess\n  );\n\n  const { handleRemove } = useRemoveMutation(environmentId);\n\n  if (groupsQuery.isLoading || subscriptionsQuery.isLoading) {\n    return null;\n  }\n\n  return (\n    <>\n      <PageHeader\n        title=\"Container list\"\n        breadcrumbs=\"Container instances\"\n        reload\n      />\n\n      <ContainersDatatable\n        dataset={groupsQuery.containerGroups}\n        onRemoveClick={handleRemove}\n      />\n    </>\n  );\n}\n\nfunction useRemoveMutation(environmentId: EnvironmentId) {\n  const queryClient = useQueryClient();\n\n  const deleteMutation = useMutation(\n    (containerGroupIds: string[]) =>\n      promiseSequence(\n        containerGroupIds.map(\n          (id) => () => deleteContainerGroup(environmentId, id)\n        )\n      ),\n\n    {\n      onSuccess() {\n        return queryClient.invalidateQueries([\n          'azure',\n          environmentId,\n          'subscriptions',\n        ]);\n      },\n      onError(err) {\n        notifyError(\n          'Failure',\n          err as Error,\n          'Unable to remove container groups'\n        );\n      },\n    }\n  );\n\n  return { handleRemove };\n\n  async function handleRemove(groupIds: string[]) {\n    deleteMutation.mutate(groupIds, {\n      onSuccess: () => {\n        notifySuccess('Success', 'Container groups successfully removed');\n      },\n    });\n  }\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { CreateView } from '@/react/azure/container-instances/CreateView';\nimport { ItemView } from '@/react/azure/container-instances/ItemView';\nimport { ListView } from '@/react/azure/container-instances/ListView';\nimport { DashboardView } from '@/react/azure/DashboardView';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\n\nexport const viewsModule = angular\n  .module('portainer.azure.react.views', [])\n  .component(\n    'containerInstanceView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ItemView))), [])\n  )\n  .component(\n    'createContainerInstanceView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(CreateView))), [])\n  )\n  .component(\n    'containerInstancesView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), [])\n  )\n  .component(\n    'dashboardView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(DashboardView))), [])\n  ).name;\n","import { useCurrentStateAndParams } from '@uirouter/react';\nimport { useQueryClient } from 'react-query';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { AccessControlPanel } from '@/react/portainer/access-control/AccessControlPanel/AccessControlPanel';\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { ResourceControlType } from '@/react/portainer/access-control/types';\nimport {\n  ContainerGroup,\n  ResourceGroup,\n  Subscription,\n} from '@/react/azure/types';\nimport { useContainerGroup } from '@/react/azure/queries/useContainerGroup';\nimport { useResourceGroup } from '@/react/azure/queries/useResourceGroup';\nimport { useSubscription } from '@/react/azure/queries/useSubscription';\n\nimport { Input } from '@@/form-components/Input';\nimport { Widget, WidgetBody } from '@@/Widget';\nimport { PageHeader } from '@@/PageHeader';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { FormControl } from '@@/form-components/FormControl';\n\nimport { PortsMappingField } from '../CreateView/PortsMappingField';\n\nexport function ItemView() {\n  const {\n    params: { id },\n  } = useCurrentStateAndParams();\n  const { subscriptionId, resourceGroupId, containerGroupId } = parseId(id);\n\n  const environmentId = useEnvironmentId();\n\n  const queryClient = useQueryClient();\n\n  const subscriptionQuery = useSubscription(environmentId, subscriptionId);\n  const resourceGroupQuery = useResourceGroup(\n    environmentId,\n    subscriptionId,\n    resourceGroupId\n  );\n\n  const containerQuery = useContainerGroup(\n    environmentId,\n    subscriptionId,\n    resourceGroupId,\n    containerGroupId\n  );\n\n  if (\n    !subscriptionQuery.isSuccess ||\n    !resourceGroupQuery.isSuccess ||\n    !containerQuery.isSuccess\n  ) {\n    return null;\n  }\n\n  const container = aggregateContainerData(\n    subscriptionQuery.data,\n    resourceGroupQuery.data,\n    containerQuery.data\n  );\n\n  return (\n    <>\n      <PageHeader\n        title=\"Container Instance\"\n        breadcrumbs={[\n          { link: 'azure.containerinstances', label: 'Container instances' },\n          { label: container.name },\n        ]}\n        reload\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetBody className=\"form-horizontal\">\n              <FormSectionTitle>Azure settings</FormSectionTitle>\n              <FormControl label=\"Subscription\" inputId=\"subscription-input\">\n                <Input\n                  name=\"subscription\"\n                  id=\"subscription-input\"\n                  value={container.subscriptionName}\n                  readOnly\n                />\n              </FormControl>\n\n              <FormControl label=\"Resource group\" inputId=\"resourceGroup-input\">\n                <Input\n                  name=\"resourceGroup\"\n                  id=\"resourceGroup-input\"\n                  value={container.resourceGroupName}\n                  readOnly\n                />\n              </FormControl>\n\n              <FormControl label=\"Location\" inputId=\"location-input\">\n                <Input\n                  name=\"location\"\n                  id=\"location-input\"\n                  value={container.location}\n                  readOnly\n                />\n              </FormControl>\n\n              <FormSectionTitle>Container configuration</FormSectionTitle>\n\n              <FormControl label=\"Name\" inputId=\"name-input\">\n                <Input\n                  name=\"name\"\n                  id=\"name-input\"\n                  readOnly\n                  value={container.name}\n                />\n              </FormControl>\n\n              <FormControl label=\"Image\" inputId=\"image-input\">\n                <Input\n                  name=\"image\"\n                  id=\"image-input\"\n                  value={container.imageName}\n                  readOnly\n                />\n              </FormControl>\n\n              <FormControl label=\"OS\" inputId=\"os-input\">\n                <Input\n                  name=\"os\"\n                  id=\"os-input\"\n                  readOnly\n                  value={container.osType}\n                />\n              </FormControl>\n\n              <PortsMappingField value={container.ports} readOnly />\n\n              <FormControl label=\"Public IP\" inputId=\"public-ip\">\n                <Input\n                  name=\"public-ip\"\n                  id=\"public-ip\"\n                  readOnly\n                  value={container.ipAddress}\n                />\n              </FormControl>\n\n              <FormSectionTitle>Container Resources</FormSectionTitle>\n\n              <FormControl label=\"CPU\" inputId=\"cpu-input\">\n                <Input\n                  name=\"cpu\"\n                  id=\"cpu-input\"\n                  type=\"number\"\n                  placeholder=\"1\"\n                  readOnly\n                  value={container.cpu}\n                />\n              </FormControl>\n\n              <FormControl label=\"Memory\" inputId=\"cpu-input\">\n                <Input\n                  name=\"memory\"\n                  id=\"memory-input\"\n                  type=\"number\"\n                  placeholder=\"1\"\n                  readOnly\n                  value={container.memory}\n                />\n              </FormControl>\n            </WidgetBody>\n          </Widget>\n        </div>\n      </div>\n\n      <AccessControlPanel\n        onUpdateSuccess={() =>\n          queryClient.invalidateQueries([\n            'azure',\n            environmentId,\n            'subscriptions',\n            subscriptionId,\n            'resourceGroups',\n            resourceGroupQuery.data.name,\n            'containerGroups',\n            containerQuery.data.name,\n          ])\n        }\n        resourceId={id}\n        resourceControl={container.resourceControl}\n        resourceType={ResourceControlType.ContainerGroup}\n        environmentId={environmentId}\n      />\n    </>\n  );\n}\n\nfunction parseId(id: string) {\n  const match = id.match(\n    /^\\/subscriptions\\/(.+)\\/resourceGroups\\/(.+)\\/providers\\/(.+)\\/containerGroups\\/(.+)$/\n  );\n\n  if (!match) {\n    throw new Error('container id is missing details');\n  }\n\n  const [, subscriptionId, resourceGroupId, , containerGroupId] = match;\n\n  return { subscriptionId, resourceGroupId, containerGroupId };\n}\n\nfunction aggregateContainerData(\n  subscription: Subscription,\n  resourceGroup: ResourceGroup,\n  containerGroup: ContainerGroup\n) {\n  const containerInstanceData = aggregateContainerInstance();\n\n  const resourceControl = containerGroup.Portainer?.ResourceControl\n    ? new ResourceControlViewModel(containerGroup.Portainer.ResourceControl)\n    : undefined;\n\n  return {\n    name: containerGroup.name,\n    subscriptionName: subscription.displayName,\n    resourceGroupName: resourceGroup.name,\n    location: containerGroup.location,\n    osType: containerGroup.properties.osType,\n    ipAddress: containerGroup.properties.ipAddress.ip,\n    resourceControl,\n    ...containerInstanceData,\n  };\n\n  function aggregateContainerInstance() {\n    const containerInstanceData = containerGroup.properties.containers[0];\n\n    if (!containerInstanceData) {\n      return {\n        ports: [],\n      };\n    }\n\n    const containerInstanceProperties = containerInstanceData.properties;\n\n    const containerPorts = containerInstanceProperties.ports;\n\n    const imageName = containerInstanceProperties.image;\n\n    const ports = containerGroup.properties.ipAddress.ports.map(\n      (binding, index) => {\n        const port =\n          containerPorts && containerPorts[index]\n            ? containerPorts[index].port\n            : undefined;\n        return {\n          container: port,\n          host: binding.port,\n          protocol: binding.protocol,\n        };\n      }\n    );\n\n    return {\n      imageName,\n      ports,\n      cpu: containerInstanceProperties.resources.cpu,\n      memory: containerInstanceProperties.resources.memoryInGB,\n    };\n  }\n}\n","import { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody } from '@@/Widget';\n\nimport { CreateContainerInstanceForm } from './CreateContainerInstanceForm';\n\nexport function CreateView() {\n  return (\n    <>\n      <PageHeader\n        title=\"Create container instance\"\n        breadcrumbs={[\n          { link: 'azure.containerinstances', label: 'Container instances' },\n          { label: 'Add container' },\n        ]}\n        reload\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetBody>\n              <CreateContainerInstanceForm />\n            </WidgetBody>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n}\n","import { Package } from 'lucide-react';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport Subscription from '@/assets/ico/subscription.svg?c';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { DashboardItem } from '@@/DashboardItem';\nimport { DashboardGrid } from '@@/DashboardItem/DashboardGrid';\n\nimport { useResourceGroups } from '../queries/useResourceGroups';\nimport { useSubscriptions } from '../queries/useSubscriptions';\n\nexport function DashboardView() {\n  const environmentId = useEnvironmentId();\n\n  const subscriptionsQuery = useSubscriptions(environmentId);\n\n  const resourceGroupsQuery = useResourceGroups(\n    environmentId,\n    subscriptionsQuery.data\n  );\n\n  const subscriptionsCount = subscriptionsQuery.data?.length;\n  const resourceGroupsCount = Object.values(\n    resourceGroupsQuery.resourceGroups\n  ).flatMap((x) => Object.values(x)).length;\n\n  return (\n    <>\n      <PageHeader title=\"Home\" breadcrumbs={[{ label: 'Dashboard' }]} reload />\n\n      <div className=\"mx-4\">\n        {subscriptionsQuery.data && (\n          <DashboardGrid>\n            <DashboardItem\n              value={subscriptionsCount as number}\n              isLoading={subscriptionsQuery.isLoading}\n              isRefetching={subscriptionsQuery.isRefetching}\n              icon={Subscription}\n              type=\"Subscription\"\n            />\n            {!resourceGroupsQuery.isError && !resourceGroupsQuery.isLoading && (\n              <DashboardItem\n                value={resourceGroupsCount}\n                isLoading={resourceGroupsQuery.isLoading}\n                icon={Package}\n                type=\"Resource group\"\n              />\n            )}\n          </DashboardGrid>\n        )}\n      </div>\n    </>\n  );\n}\n","import angular from 'angular';\n\nimport { componentsModule } from './components';\nimport { viewsModule } from './views';\n\nexport const reactModule = angular.module('portainer.azure.react', [\n  viewsModule,\n  componentsModule,\n]).name;\n","import angular from 'angular';\nimport { StateRegistry, StateService } from '@uirouter/angularjs';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { notifyError } from '@/portainer/services/notifications';\nimport { StateManager } from '@/portainer/services/types';\n\nimport { reactModule } from './react';\n\nexport const azureModule = angular\n  .module('portainer.azure', [reactModule])\n  .config(config).name;\n\n/* @ngInject */\nfunction config($stateRegistryProvider: StateRegistry) {\n  const azure = {\n    name: 'azure',\n    url: '/azure',\n    parent: 'endpoint',\n    abstract: true,\n    onEnter: /* @ngInject */ function onEnter(\n      $async: (fn: () => Promise<void>) => Promise<void>,\n      $state: StateService,\n      endpoint: Environment,\n      StateManager: StateManager\n    ) {\n      return $async(async () => {\n        if (endpoint.Type !== 3) {\n          $state.go('portainer.home');\n          return;\n        }\n        try {\n          await StateManager.updateEndpointState(endpoint);\n        } catch (e) {\n          notifyError('Failed loading environment', e as Error);\n          $state.go('portainer.home', {}, { reload: true });\n        }\n      });\n    },\n  };\n\n  const containerInstances = {\n    name: 'azure.containerinstances',\n    url: '/containerinstances',\n    views: {\n      'content@': {\n        component: 'containerInstancesView',\n      },\n    },\n    data: {\n      docs: '/user/aci/containers',\n    },\n  };\n\n  const containerInstance = {\n    name: 'azure.containerinstances.container',\n    url: '/:id',\n    views: {\n      'content@': {\n        component: 'containerInstanceView',\n      },\n    },\n  };\n\n  const containerInstanceCreation = {\n    name: 'azure.containerinstances.new',\n    url: '/new/',\n    views: {\n      'content@': {\n        component: 'createContainerInstanceView',\n      },\n    },\n  };\n\n  const dashboard = {\n    name: 'azure.dashboard',\n    url: '/dashboard',\n    views: {\n      'content@': {\n        component: 'dashboardView',\n      },\n    },\n    data: {\n      docs: '/user/aci/dashboard',\n    },\n  };\n\n  $stateRegistryProvider.register(azure);\n  $stateRegistryProvider.register(containerInstances);\n  $stateRegistryProvider.register(containerInstance);\n  $stateRegistryProvider.register(containerInstanceCreation);\n  $stateRegistryProvider.register(dashboard);\n}\n","import angular from 'angular';\n\nimport {\n  API_ENDPOINT_AUTH,\n  API_ENDPOINT_BACKUP,\n  API_ENDPOINT_CUSTOM_TEMPLATES,\n  API_ENDPOINT_EDGE_GROUPS,\n  API_ENDPOINT_EDGE_JOBS,\n  API_ENDPOINT_EDGE_STACKS,\n  API_ENDPOINT_EDGE_TEMPLATES,\n  API_ENDPOINT_ENDPOINTS,\n  API_ENDPOINT_ENDPOINT_GROUPS,\n  API_ENDPOINT_KUBERNETES,\n  API_ENDPOINT_MOTD,\n  API_ENDPOINT_REGISTRIES,\n  API_ENDPOINT_RESOURCE_CONTROLS,\n  API_ENDPOINT_SETTINGS,\n  API_ENDPOINT_STACKS,\n  API_ENDPOINT_SUPPORT,\n  API_ENDPOINT_USERS,\n  API_ENDPOINT_TAGS,\n  API_ENDPOINT_TEAMS,\n  API_ENDPOINT_TEAM_MEMBERSHIPS,\n  API_ENDPOINT_TEMPLATES,\n  API_ENDPOINT_WEBHOOKS,\n  PAGINATION_MAX_ITEMS,\n  APPLICATION_CACHE_VALIDITY,\n  CONSOLE_COMMANDS_LABEL_PREFIX,\n  PREDEFINED_NETWORKS,\n} from './constants';\nimport { BROWSER_OS_PLATFORM } from './react/constants';\n\n// don't declare new constants, either:\n// - if only used in one file or module, declare in that file or module (as a regular js constant)\n// - if needed across modules, declare like in `./constants` and use es6 import for that\n\nexport const constantsModule = angular\n  .module('portainer.app.constants', [])\n  .constant('API_ENDPOINT_AUTH', API_ENDPOINT_AUTH)\n  .constant('API_ENDPOINT_BACKUP', API_ENDPOINT_BACKUP)\n  .constant('API_ENDPOINT_CUSTOM_TEMPLATES', API_ENDPOINT_CUSTOM_TEMPLATES)\n  .constant('API_ENDPOINT_EDGE_GROUPS', API_ENDPOINT_EDGE_GROUPS)\n  .constant('API_ENDPOINT_EDGE_JOBS', API_ENDPOINT_EDGE_JOBS)\n  .constant('API_ENDPOINT_EDGE_STACKS', API_ENDPOINT_EDGE_STACKS)\n  .constant('API_ENDPOINT_EDGE_TEMPLATES', API_ENDPOINT_EDGE_TEMPLATES)\n  .constant('API_ENDPOINT_ENDPOINTS', API_ENDPOINT_ENDPOINTS)\n  .constant('API_ENDPOINT_ENDPOINT_GROUPS', API_ENDPOINT_ENDPOINT_GROUPS)\n  .constant('API_ENDPOINT_KUBERNETES', API_ENDPOINT_KUBERNETES)\n  .constant('API_ENDPOINT_MOTD', API_ENDPOINT_MOTD)\n  .constant('API_ENDPOINT_REGISTRIES', API_ENDPOINT_REGISTRIES)\n  .constant('API_ENDPOINT_RESOURCE_CONTROLS', API_ENDPOINT_RESOURCE_CONTROLS)\n  .constant('API_ENDPOINT_SETTINGS', API_ENDPOINT_SETTINGS)\n  .constant('API_ENDPOINT_STACKS', API_ENDPOINT_STACKS)\n  .constant('API_ENDPOINT_SUPPORT', API_ENDPOINT_SUPPORT)\n  .constant('API_ENDPOINT_USERS', API_ENDPOINT_USERS)\n  .constant('API_ENDPOINT_TAGS', API_ENDPOINT_TAGS)\n  .constant('API_ENDPOINT_TEAMS', API_ENDPOINT_TEAMS)\n  .constant('API_ENDPOINT_TEAM_MEMBERSHIPS', API_ENDPOINT_TEAM_MEMBERSHIPS)\n  .constant('API_ENDPOINT_TEMPLATES', API_ENDPOINT_TEMPLATES)\n  .constant('API_ENDPOINT_WEBHOOKS', API_ENDPOINT_WEBHOOKS)\n  .constant('PAGINATION_MAX_ITEMS', PAGINATION_MAX_ITEMS)\n  .constant('APPLICATION_CACHE_VALIDITY', APPLICATION_CACHE_VALIDITY)\n  .constant('CONSOLE_COMMANDS_LABEL_PREFIX', CONSOLE_COMMANDS_LABEL_PREFIX)\n  .constant('PREDEFINED_NETWORKS', PREDEFINED_NETWORKS)\n  .constant('BROWSER_OS_PLATFORM', BROWSER_OS_PLATFORM).name;\n","import './assets/css';\n\nimport './i18n';\n\nimport angular from 'angular';\nimport { UI_ROUTER_REACT_HYBRID } from '@uirouter/react-hybrid';\n\nimport './matomo-setup';\n\nimport { Edition } from '@/react/portainer/feature-flags/enums';\nimport { init as initFeatureService } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport analyticsModule from './angulartics.matomo';\nimport './agent';\nimport { azureModule } from './azure';\nimport './docker/__module';\nimport './edge/__module';\nimport './portainer/__module';\n\nimport { onStartupAngular } from './app';\nimport { configApp } from './config';\nimport { constantsModule } from './ng-constants';\n\ninitFeatureService(Edition[process.env.PORTAINER_EDITION]);\n\nangular\n  .module('portainer', [\n    'ui.bootstrap',\n    'ui.router',\n    UI_ROUTER_REACT_HYBRID,\n    'ngSanitize',\n    'ngFileUpload',\n    'ngMessages',\n    'ngResource',\n    'angularUtils.directives.dirPagination',\n    'LocalStorageModule',\n    'angular-json-tree',\n    'angular-loading-bar',\n    'angular-clipboard',\n    'ngFileSaver',\n    'luegg.directives',\n    'portainer.app',\n    'portainer.agent',\n    azureModule,\n    'portainer.docker',\n    'portainer.kubernetes',\n    'portainer.edge',\n    'rzModule',\n    'moment-picker',\n    'angulartics',\n    analyticsModule,\n    constantsModule,\n  ])\n  .run(onStartupAngular)\n  .config(configApp);\n\nif (require) {\n  const req = require.context('./', true, /^(.*\\.(js$))[^.]*$/im);\n  req\n    .keys()\n    .filter((path) => !path.includes('.test'))\n    .forEach(function (key) {\n      req(key);\n    });\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { IngressControllerClassMap } from '../../types';\n\nexport const columnHelper = createColumnHelper<IngressControllerClassMap>();\n","import { CellContext } from '@tanstack/react-table';\nimport { Check, X } from 'lucide-react';\n\nimport { Badge } from '@@/Badge';\nimport { Icon } from '@@/Icon';\n\nimport type { IngressControllerClassMap } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const availability = columnHelper.accessor('Availability', {\n  header: 'Availability',\n  cell: Cell,\n  id: 'availability',\n  invertSorting: true,\n  sortingFn: 'basic',\n});\n\nfunction Cell({ getValue }: CellContext<IngressControllerClassMap, boolean>) {\n  const availability = getValue();\n\n  return (\n    <Badge type={availability ? 'success' : 'danger'}>\n      <Icon icon={availability ? Check : X} className=\"!mr-1\" />\n      {availability ? 'Allowed' : 'Disallowed'}\n    </Badge>\n  );\n}\n","import { columnHelper } from './helper';\n\nexport const type = columnHelper.accessor('Type', {\n  header: 'Ingress controller type',\n  cell: ({ getValue }) => {\n    const type = getValue();\n    return type || '-';\n  },\n  id: 'type',\n});\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Badge } from '@@/Badge';\n\nimport type { IngressControllerClassMap } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('ClassName', {\n  header: 'Ingress class',\n  cell: NameCell,\n  id: 'name',\n});\n\nfunction NameCell({\n  row,\n  getValue,\n}: CellContext<IngressControllerClassMap, string>) {\n  const className = getValue();\n\n  return (\n    <span className=\"flex flex-nowrap\">\n      {className}\n      {row.original.New && <Badge className=\"ml-1\">Newly detected</Badge>}\n    </span>\n  );\n}\n","import { availability } from './availability';\nimport { type } from './type';\nimport { name } from './name';\n\nexport const columns = [name, type, availability];\n","import { useEffect, useState } from 'react';\n\nimport Route from '@/assets/ico/route.svg?c';\n\nimport { confirm } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { Datatable } from '@@/datatables';\nimport { Button, ButtonGroup } from '@@/buttons';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { IngressControllerClassMap } from '../types';\n\nimport { columns } from './columns';\n\nconst storageKey = 'ingressClasses';\nconst settingsStore = createPersistedStore(storageKey, 'name');\n\ninterface Props {\n  onChangeControllers: (\n    controllerClassMap: IngressControllerClassMap[]\n  ) => void; // angular function to save the ingress class list\n  description: string;\n  ingressControllers: IngressControllerClassMap[] | undefined;\n  initialIngressControllers: IngressControllerClassMap[] | undefined;\n  allowNoneIngressClass: boolean;\n  isLoading: boolean;\n  noIngressControllerLabel: string;\n  view: string;\n}\n\n// This is a legacy component that has more state logic than the new one, for angular views\n// Delete this component when the namespace edit view is migrated to react\nexport function IngressClassDatatableAngular({\n  onChangeControllers,\n  description,\n  initialIngressControllers,\n  ingressControllers,\n  allowNoneIngressClass,\n  isLoading,\n  noIngressControllerLabel,\n  view,\n}: Props) {\n  const tableState = useTableState(settingsStore, storageKey);\n\n  const [ingControllerFormValues, setIngControllerFormValues] = useState(\n    ingressControllers || []\n  );\n\n  // set the ingress controller form values when the ingress controller list changes\n  // and the ingress controller form values are not set\n  useEffect(() => {\n    if (\n      ingressControllers &&\n      ingControllerFormValues.length !== ingressControllers.length\n    ) {\n      setIngControllerFormValues(ingressControllers);\n    }\n  }, [ingressControllers, ingControllerFormValues]);\n\n  useEffect(() => {\n    if (allowNoneIngressClass === undefined || isLoading) {\n      return;\n    }\n\n    let newIngFormValues: IngressControllerClassMap[];\n    const isCustomTypeExist = ingControllerFormValues.some(\n      (ic) => ic.Type === 'custom'\n    );\n    if (allowNoneIngressClass) {\n      newIngFormValues = [...ingControllerFormValues];\n      // add the ingress controller type 'custom' with a 'none' ingress class name\n      if (!isCustomTypeExist) {\n        newIngFormValues.push({\n          Name: 'none',\n          ClassName: 'none',\n          Type: 'custom',\n          Availability: true,\n          New: false,\n          Used: false,\n        });\n      }\n    } else {\n      newIngFormValues = ingControllerFormValues.filter(\n        (ingController) => ingController.ClassName !== 'none'\n      );\n    }\n    setIngControllerFormValues(newIngFormValues);\n    onChangeControllers(newIngFormValues);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [allowNoneIngressClass, onChangeControllers]);\n\n  return (\n    <div className=\"-mx-[15px]\">\n      <Datatable\n        settingsManager={tableState}\n        dataset={ingControllerFormValues || []}\n        columns={columns}\n        isLoading={isLoading}\n        emptyContentLabel={noIngressControllerLabel}\n        title=\"Ingress Controllers\"\n        titleIcon={Route}\n        getRowId={(row) => `${row.Name}-${row.ClassName}-${row.Type}`}\n        renderTableActions={(selectedRows) => renderTableActions(selectedRows)}\n        description={renderIngressClassDescription()}\n      />\n    </div>\n  );\n\n  function renderTableActions(selectedRows: IngressControllerClassMap[]) {\n    return (\n      <div className=\"flex items-start\">\n        <ButtonGroup>\n          <Button\n            disabled={\n              selectedRows.filter((row) => row.Availability === true).length ===\n              0\n            }\n            color=\"dangerlight\"\n            size=\"small\"\n            onClick={() =>\n              updateIngressControllers(\n                selectedRows,\n                ingControllerFormValues || [],\n                false\n              )\n            }\n          >\n            Disallow selected\n          </Button>\n          <Button\n            disabled={\n              selectedRows.filter((row) => row.Availability === false)\n                .length === 0\n            }\n            color=\"default\"\n            size=\"small\"\n            onClick={() =>\n              updateIngressControllers(\n                selectedRows,\n                ingControllerFormValues || [],\n                true\n              )\n            }\n          >\n            Allow selected\n          </Button>\n        </ButtonGroup>\n      </div>\n    );\n  }\n\n  function renderIngressClassDescription() {\n    return (\n      <div className=\"text-muted flex w-full flex-col !text-xs\">\n        <div className=\"mt-1\">{description}</div>\n        {initialIngressControllers &&\n          ingControllerFormValues &&\n          isUnsavedChanges(\n            initialIngressControllers,\n            ingControllerFormValues\n          ) && <TextTip>Unsaved changes.</TextTip>}\n      </div>\n    );\n  }\n\n  async function updateIngressControllers(\n    selectedRows: IngressControllerClassMap[],\n    ingControllerFormValues: IngressControllerClassMap[],\n    availability: boolean\n  ) {\n    const updatedIngressControllers = getUpdatedIngressControllers(\n      selectedRows,\n      ingControllerFormValues || [],\n      availability\n    );\n\n    if (ingressControllers && ingressControllers.length) {\n      const newAllowed = updatedIngressControllers.map(\n        (ingController) => ingController.Availability\n      );\n      if (view === 'namespace') {\n        setIngControllerFormValues(updatedIngressControllers);\n        onChangeControllers(updatedIngressControllers);\n        return;\n      }\n\n      const usedControllersToDisallow = ingressControllers.filter(\n        (ingController, index) => {\n          // if any of the current controllers are allowed, and are used, then become disallowed, then add the controller to a new list\n          if (\n            ingController.Availability &&\n            ingController.Used &&\n            !newAllowed[index]\n          ) {\n            return true;\n          }\n          return false;\n        }\n      );\n\n      if (usedControllersToDisallow.length > 0) {\n        const confirmed = await confirm({\n          title: 'Disallow in-use ingress controllers?',\n          modalType: ModalType.Warn,\n          message: (\n            <div>\n              <p>\n                There are ingress controllers you want to disallow that are in\n                use:\n              </p>\n              <ul className=\"ml-6\">\n                {usedControllersToDisallow.map((controller) => (\n                  <li key={controller.ClassName}>{controller.ClassName}</li>\n                ))}\n              </ul>\n              <p>\n                No new ingress rules can be created for the disallowed\n                controllers.\n              </p>\n            </div>\n          ),\n          confirmButton: buildConfirmButton('Disallow', 'warning'),\n        });\n\n        if (!confirmed) {\n          return;\n        }\n      }\n      setIngControllerFormValues(updatedIngressControllers);\n      onChangeControllers(updatedIngressControllers);\n    }\n  }\n}\n\nfunction isUnsavedChanges(\n  oldIngressControllers: IngressControllerClassMap[],\n  newIngressControllers: IngressControllerClassMap[]\n) {\n  if (oldIngressControllers.length !== newIngressControllers.length) {\n    return true;\n  }\n  for (let i = 0; i < newIngressControllers.length; i += 1) {\n    if (\n      oldIngressControllers[i]?.Availability !==\n      newIngressControllers[i]?.Availability\n    ) {\n      return true;\n    }\n  }\n  return false;\n}\n\nfunction getUpdatedIngressControllers(\n  selectedRows: IngressControllerClassMap[],\n  allRows: IngressControllerClassMap[],\n  allow: boolean\n) {\n  const selectedRowClassNames = selectedRows.map((row) => row.ClassName);\n  const updatedIngressControllers = allRows?.map((row) => {\n    if (selectedRowClassNames.includes(row.ClassName)) {\n      return { ...row, Availability: allow };\n    }\n    return row;\n  });\n  return updatedIngressControllers;\n}\n","import { User as UserIcon, Users as TeamIcon } from 'lucide-react';\nimport { OptionProps, components, MultiValueGenericProps } from 'react-select';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\ntype Role = { Name: string };\ntype Option = { Type: 'user' | 'team'; Id: number; Name: string; Role: Role };\n\ninterface Props {\n  name?: string;\n  value: Option[];\n  onChange(value: readonly Option[]): void;\n  options: Option[];\n  dataCy?: string;\n  inputId?: string;\n  placeholder?: string;\n}\n\nexport function NamespaceAccessUsersSelector({\n  onChange,\n  options,\n  value,\n  dataCy,\n  inputId,\n  name,\n  placeholder,\n}: Props) {\n  return (\n    <Select\n      isMulti\n      name={name}\n      getOptionLabel={(option) => option.Name}\n      getOptionValue={(option) => `${option.Id}-${option.Type}`}\n      options={options}\n      value={value}\n      closeMenuOnSelect={false}\n      onChange={onChange}\n      data-cy={dataCy}\n      inputId={inputId}\n      placeholder={placeholder}\n      components={{ MultiValueLabel, Option: OptionComponent }}\n    />\n  );\n}\n\nfunction isOption(option: unknown): option is Option {\n  return !!option && typeof option === 'object' && 'Type' in option;\n}\n\nfunction OptionComponent({ data, ...props }: OptionProps<Option, true>) {\n  return (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <components.Option data={data} {...props}>\n      {isOption(data) && <Label option={data} />}\n    </components.Option>\n  );\n}\n\nfunction MultiValueLabel({\n  data,\n  ...props\n}: MultiValueGenericProps<Option, true>) {\n  return (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <components.MultiValueLabel data={data} {...props}>\n      {isOption(data) && <Label option={data} />}\n    </components.MultiValueLabel>\n  );\n}\n\nfunction Label({ option }: { option: Option }) {\n  const Icon = option.Type === 'user' ? UserIcon : TeamIcon;\n\n  return (\n    <div className=\"flex items-center gap-1\">\n      <Icon />\n      <span>{option.Name}</span>\n      <span>|</span>\n      <span>{option.Role.Name}</span>\n    </div>\n  );\n}\n","import { MultiValue } from 'react-select';\n\nimport { Registry } from '@/react/portainer/registries/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { Select } from '@@/form-components/ReactSelect';\nimport { Link } from '@@/Link';\n\ninterface Props {\n  value: MultiValue<Registry>;\n  onChange(value: MultiValue<Registry>): void;\n  options?: Registry[];\n  inputId?: string;\n}\n\nexport function RegistriesSelector({\n  value,\n  onChange,\n  options = [],\n  inputId,\n}: Props) {\n  const { isPureAdmin } = useCurrentUser();\n\n  return (\n    <>\n      {options.length === 0 && (\n        <p className=\"text-muted text-xs mb-1 mt-2\">\n          {isPureAdmin ? (\n            <span>\n              No registries available. Head over to the{' '}\n              <Link to=\"portainer.registries\" target=\"_blank\">\n                registry view\n              </Link>{' '}\n              to define a container registry.\n            </span>\n          ) : (\n            <span>\n              No registries available. Contact your administrator to create a\n              container registry.\n            </span>\n          )}\n        </p>\n      )}\n      <Select\n        isMulti\n        getOptionLabel={(option) => option.Name}\n        getOptionValue={(option) => String(option.Id)}\n        options={options}\n        value={value}\n        closeMenuOnSelect={false}\n        onChange={onChange}\n        inputId={inputId}\n        data-cy=\"namespaceCreate-registrySelect\"\n        placeholder=\"Select one or more registries\"\n      />\n    </>\n  );\n}\n","import { useQuery, useMutation, useQueryClient } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\nimport { getServices } from '@/react/kubernetes/networks/services/service';\nimport { isFulfilled } from '@/portainer/helpers/promise-utils';\n\nimport {\n  getIngresses,\n  getIngress,\n  createIngress,\n  deleteIngresses,\n  updateIngress,\n  getIngressControllers,\n} from './service';\nimport { DeleteIngressesRequest, Ingress } from './types';\n\nconst ingressKeys = {\n  all: ['environments', 'kubernetes', 'namespace', 'ingress'] as const,\n  namespace: (\n    environmentId: EnvironmentId,\n    namespace: string,\n    ingress: string\n  ) => [...ingressKeys.all, String(environmentId), namespace, ingress] as const,\n};\n\nexport function useIngress(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'kubernetes',\n      'namespace',\n      namespace,\n      'ingress',\n      name,\n    ],\n    async () => {\n      const ing = await getIngress(environmentId, namespace, name);\n      return ing;\n    },\n    {\n      ...withError('Unable to get ingress'),\n    }\n  );\n}\n\nexport function useIngresses(\n  environmentId: EnvironmentId,\n  namespaces?: string[],\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'kubernetes',\n      'namespace',\n      namespaces,\n      'ingress',\n    ],\n    async () => {\n      if (!namespaces?.length) {\n        return [];\n      }\n      const settledIngressesPromise = await Promise.allSettled(\n        namespaces.map((namespace) => getIngresses(environmentId, namespace))\n      );\n      const ingresses = settledIngressesPromise\n        .filter(isFulfilled)\n        ?.map((i) => i.value);\n      // flatten the array and remove empty ingresses\n      const filteredIngresses = ingresses.flat().filter((ing) => ing);\n\n      // get all services in only the namespaces that the ingresses are in to find missing services\n      const uniqueNamespacesWithIngress = [\n        ...new Set(filteredIngresses.map((ing) => ing?.Namespace)),\n      ];\n      const settledServicesPromise = await Promise.allSettled(\n        uniqueNamespacesWithIngress.map((ns) => getServices(environmentId, ns))\n      );\n      const services = settledServicesPromise\n        .filter(isFulfilled)\n        ?.map((s) => s.value)\n        .flat();\n\n      // check if each ingress path service has a service that still exists\n      const updatedFilteredIngresses: Ingress[] = filteredIngresses.map(\n        (ing) => {\n          const servicesInNamespace = services?.filter(\n            (service) => service?.Namespace === ing?.Namespace\n          );\n          const serviceNamesInNamespace = servicesInNamespace?.map(\n            (service) => service.Name\n          );\n\n          const updatedPaths =\n            ing.Paths?.map((path) => {\n              const hasService = serviceNamesInNamespace?.includes(\n                path.ServiceName\n              );\n              return { ...path, HasService: hasService };\n            }) || null;\n\n          return { ...ing, Paths: updatedPaths };\n        }\n      );\n      return updatedFilteredIngresses;\n    },\n    {\n      enabled: !!namespaces?.length,\n      ...withError('Unable to get ingresses'),\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n\nexport function useCreateIngress() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    ({\n      environmentId,\n      ingress,\n    }: {\n      environmentId: EnvironmentId;\n      ingress: Ingress;\n    }) => createIngress(environmentId, ingress),\n    mutationOptions(\n      withError('Unable to create ingress controller'),\n      withInvalidate(queryClient, [ingressKeys.all])\n    )\n  );\n}\n\nexport function useUpdateIngress() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    ({\n      environmentId,\n      ingress,\n    }: {\n      environmentId: EnvironmentId;\n      ingress: Ingress;\n    }) => updateIngress(environmentId, ingress),\n    mutationOptions(\n      withError('Unable to update ingress controller'),\n      withInvalidate(queryClient, [ingressKeys.all])\n    )\n  );\n}\n\nexport function useDeleteIngresses() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    ({\n      environmentId,\n      data,\n    }: {\n      environmentId: EnvironmentId;\n      data: DeleteIngressesRequest;\n    }) => deleteIngresses(environmentId, data),\n    mutationOptions(\n      withError('Unable to update ingress controller'),\n      withInvalidate(queryClient, [ingressKeys.all])\n    )\n  );\n}\n\n/**\n * Ingress Controllers\n */\nexport function useIngressControllers(\n  environmentId: EnvironmentId,\n  namespace?: string,\n  allowedOnly?: boolean\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'kubernetes',\n      'namespace',\n      namespace,\n      'ingresscontrollers',\n    ],\n    async () =>\n      namespace\n        ? getIngressControllers(environmentId, namespace, allowedOnly)\n        : [],\n    {\n      enabled: !!namespace,\n      ...withError('Unable to get ingress controllers'),\n    }\n  );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport interface Props {\n  className?: string;\n}\n\nexport function Card({ className, children }: PropsWithChildren<Props>) {\n  return (\n    <div\n      className={clsx(\n        className,\n        'rounded border border-solid border-gray-5 bg-gray-neutral-3 p-5 th-highcontrast:border-white th-highcontrast:bg-black th-dark:border-legacy-grey-3 th-dark:bg-gray-iron-11'\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nexport function isErrorType<T>(\n  error: string | FormikErrors<T> | undefined\n): error is FormikErrors<T> {\n  return error !== undefined && typeof error !== 'string';\n}\n\nexport function isArrayErrorType<T>(\n  error:\n    | string[]\n    | FormikErrors<T>[]\n    | string\n    | undefined\n    | (FormikErrors<T> | undefined)[]\n): error is FormikErrors<T>[] {\n  return error !== undefined && typeof error !== 'string';\n}\n","import { ChangeEvent } from 'react';\n\nimport { InputGroup } from '@@/form-components/InputGroup';\n\ntype Props = {\n  serviceIndex: number;\n  portIndex: number;\n  onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n  value?: number;\n};\n\nexport function ContainerPortInput({\n  serviceIndex,\n  portIndex,\n  value,\n  onChange,\n}: Props) {\n  return (\n    <InputGroup size=\"small\">\n      <InputGroup.Addon required>Container port</InputGroup.Addon>\n      <InputGroup.Input\n        type=\"number\"\n        className=\"form-control min-w-max\"\n        name={`container_port_${portIndex}`}\n        placeholder=\"e.g. 80\"\n        min=\"1\"\n        max=\"65535\"\n        value={value ?? ''}\n        onChange={onChange}\n        required\n        data-cy={`k8sAppCreate-containerPort-${serviceIndex}-${portIndex}`}\n      />\n    </InputGroup>\n  );\n}\n","import { ChangeEvent } from 'react';\n\nimport { InputGroup } from '@@/form-components/InputGroup';\n\ntype Props = {\n  serviceIndex: number;\n  portIndex: number;\n  value?: number;\n  onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n};\n\nexport function ServicePortInput({\n  serviceIndex,\n  portIndex,\n  value,\n  onChange,\n}: Props) {\n  return (\n    <InputGroup size=\"small\">\n      <InputGroup.Addon required>Service port</InputGroup.Addon>\n      <InputGroup.Input\n        type=\"number\"\n        className=\"form-control min-w-max\"\n        name={`service_port_${portIndex}`}\n        placeholder=\"e.g. 80\"\n        min=\"1\"\n        max=\"65535\"\n        value={value ?? ''}\n        onChange={onChange}\n        required\n        data-cy={`k8sAppCreate-servicePort-${serviceIndex}-${portIndex}`}\n      />\n    </InputGroup>\n  );\n}\n","import { RefreshCw, Trash2 } from 'lucide-react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { UseQueryResult } from 'react-query';\nimport { FormikErrors } from 'formik';\n\nimport { Ingress } from '@/react/kubernetes/ingresses/types';\n\nimport { Select } from '@@/form-components/ReactSelect';\nimport { Button } from '@@/buttons';\nimport { FormError } from '@@/form-components/FormError';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { Link } from '@@/Link';\n\nimport { IngressOption, ServicePortIngressPath } from '../types';\n\ntype Props = {\n  ingressPath?: ServicePortIngressPath;\n  ingressPathErrors?: FormikErrors<ServicePortIngressPath>;\n  ingressHostOptions: IngressOption[];\n  onChangeIngressPath: (ingressPath: ServicePortIngressPath) => void;\n  onRemoveIngressPath: () => void;\n  ingressesQuery: UseQueryResult<Ingress[], unknown>;\n  namespace?: string;\n  isEditMode?: boolean;\n};\n\nexport function AppIngressPathForm({\n  ingressPath,\n  ingressPathErrors,\n  ingressHostOptions,\n  onChangeIngressPath,\n  onRemoveIngressPath,\n  ingressesQuery,\n  namespace,\n  isEditMode,\n}: Props) {\n  const [selectedIngress, setSelectedIngress] = useState<IngressOption | null>(\n    ingressHostOptions[0] ?? null\n  );\n\n  // if editing allow the current value as an option,\n  // to handle the case where they disallow the ingress class after creating the path\n  const ingressHostOptionsWithCurrentValue = useMemo(() => {\n    if (\n      ingressHostOptions.length === 0 &&\n      ingressPath?.Host &&\n      ingressPath?.IngressName &&\n      isEditMode\n    ) {\n      return [\n        {\n          value: ingressPath.Host,\n          label: ingressPath.Host,\n          ingressName: ingressPath.IngressName,\n        },\n      ];\n    }\n    return ingressHostOptions;\n  }, [\n    ingressHostOptions,\n    ingressPath?.Host,\n    ingressPath?.IngressName,\n    isEditMode,\n  ]);\n\n  // when the hostname options change (e.g. after a namespace change) and the host and ingress is no longer available, update the selected ingress to the first available one\n  useEffect(() => {\n    if (ingressHostOptionsWithCurrentValue) {\n      // some rerenders might not be from a namespace or hostname change so keep the current values if they're still valid\n      const ingressHosts = ingressHostOptionsWithCurrentValue.map(\n        (i) => i.value\n      );\n      const newIngressHostValue = ingressHosts.includes(ingressPath?.Host ?? '')\n        ? ingressPath?.Host\n        : ingressHosts[0] ?? '';\n      const ingressNames = ingressHostOptionsWithCurrentValue.map(\n        (i) => i.ingressName\n      );\n      const newIngressNameValue = ingressNames.includes(\n        ingressPath?.IngressName ?? ''\n      )\n        ? ingressPath?.IngressName ?? ''\n        : ingressNames[0] ?? '';\n\n      const newIngressPath = {\n        ...ingressPath,\n        Host: newIngressHostValue,\n        IngressName: newIngressNameValue,\n      };\n      // the selected option should match the new ingress path\n      const newIngressOption = newIngressPath.Host\n        ? {\n            ingressName: newIngressPath.IngressName,\n            value: newIngressPath.Host ?? '',\n            label: `${newIngressPath.Host} (${newIngressPath.IngressName})`,\n          }\n        : null;\n      onChangeIngressPath(newIngressPath);\n      setSelectedIngress(newIngressOption);\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [ingressHostOptionsWithCurrentValue]);\n\n  return (\n    <div className=\"flex w-full flex-wrap gap-x-4 gap-y-1\">\n      <div className=\"flex min-w-[250px] basis-1/3 flex-col\">\n        <InputGroup size=\"small\">\n          <InputGroup.Addon>Hostname</InputGroup.Addon>\n          <Select\n            options={ingressHostOptions}\n            value={selectedIngress}\n            defaultValue={ingressHostOptions[0]}\n            placeholder=\"Select a hostname...\"\n            size=\"sm\"\n            onChange={(ingressOption) => {\n              setSelectedIngress(ingressOption);\n              const newIngressPath = {\n                ...ingressPath,\n                Host: ingressOption?.value,\n                IngressName: ingressOption?.ingressName,\n              };\n              onChangeIngressPath(newIngressPath);\n            }}\n          />\n          <InputGroup.ButtonWrapper>\n            <Button\n              icon={RefreshCw}\n              color=\"default\"\n              onClick={() => ingressesQuery.refetch()}\n            />\n          </InputGroup.ButtonWrapper>\n        </InputGroup>\n        {ingressHostOptions.length === 0 && !ingressPath?.Host && (\n          <FormError>\n            No ingress hostnames are available for the namespace &apos;\n            {namespace}&apos;. Please select another namespace or{' '}\n            <Link\n              to=\"kubernetes.ingresses.create\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n            >\n              create an ingress\n            </Link>\n            .\n          </FormError>\n        )}\n        {ingressPathErrors?.Host && ingressHostOptions.length > 0 && (\n          <FormError>{ingressPathErrors?.Host}</FormError>\n        )}\n      </div>\n      <div className=\"flex min-w-[250px] basis-1/3 flex-col\">\n        <InputGroup size=\"small\">\n          <InputGroup.Addon required>Path</InputGroup.Addon>\n          <InputGroup.Input\n            value={ingressPath?.Path ?? ''}\n            placeholder=\"/example\"\n            onChange={(e) => {\n              const newIngressPath = {\n                ...ingressPath,\n                Path: e.target.value,\n              };\n              onChangeIngressPath(newIngressPath);\n            }}\n          />\n        </InputGroup>\n        {ingressPathErrors?.Path && (\n          <FormError>{ingressPathErrors?.Path}</FormError>\n        )}\n      </div>\n      <div className=\"flex flex-col\">\n        <Button\n          icon={Trash2}\n          color=\"dangerlight\"\n          size=\"medium\"\n          className=\"!ml-0\"\n          onClick={() => onRemoveIngressPath()}\n        />\n      </div>\n    </div>\n  );\n}\n","import { Loader2, Plus } from 'lucide-react';\nimport { FormikErrors } from 'formik';\nimport { useMemo } from 'react';\n\nimport {\n  useIngressControllers,\n  useIngresses,\n} from '@/react/kubernetes/ingresses/queries';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { Button } from '@@/buttons';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Link } from '@@/Link';\nimport { Icon } from '@@/Icon';\n\nimport { ServicePortIngressPath } from '../types';\n\nimport { AppIngressPathForm } from './AppIngressPathForm';\n\ntype Props = {\n  servicePortIngressPaths?: ServicePortIngressPath[];\n  onChangeIngressPaths: (ingressPath: ServicePortIngressPath[]) => void;\n  namespace?: string;\n  ingressPathsErrors?: FormikErrors<ServicePortIngressPath[]>;\n  serviceIndex: number;\n  portIndex: number;\n  isEditMode?: boolean;\n};\n\nexport function AppIngressPathsForm({\n  servicePortIngressPaths,\n  onChangeIngressPaths,\n  namespace,\n  ingressPathsErrors,\n  serviceIndex,\n  portIndex,\n  isEditMode,\n}: Props) {\n  const environmentId = useEnvironmentId();\n  const ingressesQuery = useIngresses(\n    environmentId,\n    namespace ? [namespace] : undefined\n  );\n  const { data: ingresses } = ingressesQuery;\n  const { data: ingressControllers, ...ingressControllersQuery } =\n    useIngressControllers(environmentId, namespace);\n\n  // filter for the ingresses that use allowed ingress controllers\n  const allowedIngressHostNameOptions = useMemo(() => {\n    const allowedIngressClasses =\n      ingressControllers\n        ?.filter((ic) => ic.Availability)\n        .map((ic) => ic.ClassName) || [];\n    const allowedIngresses =\n      ingresses?.filter((ing) => {\n        const className = ing.ClassName || 'none';\n        return allowedIngressClasses.includes(className);\n      }) || [];\n    return allowedIngresses.flatMap((ing) =>\n      ing.Hosts?.length\n        ? ing.Hosts.map((host) => ({\n            label: `${host} (${ing.Name})`,\n            value: host,\n            ingressName: ing.Name,\n          }))\n        : []\n    );\n  }, [ingressControllers, ingresses]);\n\n  if (ingressesQuery.isError || ingressControllersQuery.isError) {\n    return <FormError>Unable to load ingresses.</FormError>;\n  }\n\n  if (ingressesQuery.isLoading || ingressControllersQuery.isLoading) {\n    return (\n      <p className=\"text-muted mt-2 flex items-center gap-x-2 text-sm\">\n        <Icon icon={Loader2} className=\"animate-spin-slow\" />\n        Loading ingresses...\n      </p>\n    );\n  }\n\n  return (\n    <div className=\"flex flex-col gap-y-4\">\n      <div className=\"!mb-0 flex w-full flex-wrap items-center gap-x-4 gap-y-2\">\n        <SwitchField\n          fieldClass=\"w-max gap-x-8\"\n          label=\"Expose via ingress\"\n          tooltip=\"Expose this ClusterIP service externally using an ingress. This will create a new ingress path for the selected ingress hostname.\"\n          labelClass=\"w-max\"\n          name=\"publish-ingress\"\n          checked={!!servicePortIngressPaths?.length}\n          onChange={(value) => {\n            const newIngressPathsValue = value\n              ? [\n                  {\n                    Host: allowedIngressHostNameOptions[0]?.value ?? '',\n                    IngressName:\n                      allowedIngressHostNameOptions[0]?.ingressName ?? '',\n                    Path: '',\n                  },\n                ]\n              : [];\n            onChangeIngressPaths(newIngressPathsValue);\n          }}\n          data-cy={`applicationCreate-publishIngress-${serviceIndex}-${portIndex}`}\n        />\n        {!!servicePortIngressPaths?.length && (\n          <TextTip color=\"blue\">\n            Select from available ingresses below, or add new or edit existing\n            ones via the{' '}\n            <Link\n              to=\"kubernetes.ingresses\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n            >\n              Ingresses screen\n            </Link>{' '}\n            and then reload the hostname dropdown.\n          </TextTip>\n        )}\n      </div>\n      {ingressesQuery.isSuccess && ingressControllersQuery.isSuccess\n        ? servicePortIngressPaths?.map((ingressPath, index) => (\n            <AppIngressPathForm\n              key={index}\n              ingressPath={ingressPath}\n              ingressPathErrors={ingressPathsErrors?.[index]}\n              ingressHostOptions={allowedIngressHostNameOptions}\n              onChangeIngressPath={(ingressPath: ServicePortIngressPath) => {\n                const newIngressPaths = structuredClone(\n                  servicePortIngressPaths\n                );\n                newIngressPaths[index] = ingressPath;\n                onChangeIngressPaths(newIngressPaths);\n              }}\n              onRemoveIngressPath={() => {\n                const newIngressPaths = structuredClone(\n                  servicePortIngressPaths\n                );\n                newIngressPaths.splice(index, 1);\n                onChangeIngressPaths(newIngressPaths);\n              }}\n              ingressesQuery={ingressesQuery}\n              namespace={namespace}\n              isEditMode={isEditMode}\n            />\n          ))\n        : null}\n      {!!servicePortIngressPaths?.length && (\n        <div className=\"flex w-full flex-wrap gap-2\">\n          <Button\n            icon={Plus}\n            className=\"!ml-0\"\n            size=\"small\"\n            color=\"default\"\n            onClick={() => {\n              const newIngressPaths = structuredClone(servicePortIngressPaths);\n              newIngressPaths.push({\n                Host: allowedIngressHostNameOptions[0]?.value,\n                IngressName: allowedIngressHostNameOptions[0]?.ingressName,\n                Path: '',\n              });\n              onChangeIngressPaths(newIngressPaths);\n            }}\n          >\n            Add path\n          </Button>\n        </div>\n      )}\n    </div>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { ChangeEvent } from 'react';\nimport { Plus, Trash2 } from 'lucide-react';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { Button } from '@@/buttons';\nimport { Card } from '@@/Card';\nimport { Widget } from '@@/Widget';\nimport { isErrorType } from '@@/form-components/formikUtils';\n\nimport { newPort } from '../utils';\nimport {\n  ServiceFormValues,\n  ServicePort,\n  ServicePortIngressPath,\n} from '../types';\nimport { ContainerPortInput } from '../components/ContainerPortInput';\nimport { ServicePortInput } from '../components/ServicePortInput';\nimport { AppIngressPathsForm } from '../ingress/AppIngressPathsForm';\n\ninterface Props {\n  services: ServiceFormValues[];\n  serviceIndex: number;\n  onChangeService: (services: ServiceFormValues[]) => void;\n  servicePorts: ServicePort[];\n  onChangePort: (servicePorts: ServicePort[]) => void;\n  serviceName?: string;\n  errors?: string | string[] | FormikErrors<ServicePort>[];\n  namespace?: string;\n  isEditMode?: boolean;\n}\n\nexport function ClusterIpServiceForm({\n  services,\n  serviceIndex,\n  onChangeService,\n  servicePorts,\n  onChangePort,\n  errors,\n  serviceName,\n  namespace,\n  isEditMode,\n}: Props) {\n  const newClusterIpPort = newPort(serviceName);\n  return (\n    <Widget key={serviceIndex}>\n      <Widget.Body>\n        <div className=\"flex justify-between\">\n          <div className=\"text-muted vertical-center\">ClusterIP</div>\n          <Button\n            icon={Trash2}\n            color=\"dangerlight\"\n            className=\"!ml-0\"\n            onClick={() => {\n              // remove the service at index in an immutable way\n              const newServices = [\n                ...services.slice(0, serviceIndex),\n                ...services.slice(serviceIndex + 1),\n              ];\n              onChangeService(newServices);\n            }}\n          >\n            Remove service\n          </Button>\n        </div>\n        <div className=\"control-label !mb-2 !pt-0 text-left\">Ports</div>\n        <div className=\"flex flex-col gap-3\">\n          {servicePorts.map((servicePort, portIndex) => {\n            const error = errors?.[portIndex];\n            const servicePortErrors = isErrorType<ServicePort>(error)\n              ? error\n              : undefined;\n            const ingressPathsErrors = isErrorType<ServicePortIngressPath[]>(\n              servicePortErrors?.ingressPaths\n            )\n              ? servicePortErrors?.ingressPaths\n              : undefined;\n\n            return (\n              <Card key={portIndex} className=\"flex flex-col gap-y-3\">\n                <div className=\"flex flex-grow flex-wrap justify-between gap-x-4 gap-y-1\">\n                  <div className=\"inline-flex min-w-min flex-grow basis-3/4 flex-wrap gap-x-4 gap-y-1\">\n                    <div className=\"flex min-w-min basis-1/3 flex-col\">\n                      <ContainerPortInput\n                        serviceIndex={serviceIndex}\n                        portIndex={portIndex}\n                        value={servicePort.targetPort}\n                        onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                          const newServicePorts = [...servicePorts];\n                          const newValue = e.target.valueAsNumber;\n                          newServicePorts[portIndex] = {\n                            ...newServicePorts[portIndex],\n                            targetPort: newValue,\n                            port: newValue,\n                          };\n                          onChangePort(newServicePorts);\n                        }}\n                      />\n                      {servicePortErrors?.targetPort && (\n                        <FormError>{servicePortErrors.targetPort}</FormError>\n                      )}\n                    </div>\n                    <div className=\"flex min-w-min basis-1/3 flex-col\">\n                      <ServicePortInput\n                        serviceIndex={serviceIndex}\n                        portIndex={portIndex}\n                        value={servicePort.port}\n                        onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                          const newServicePorts = [...servicePorts];\n                          newServicePorts[portIndex] = {\n                            ...newServicePorts[portIndex],\n                            port: e.target.valueAsNumber,\n                          };\n                          onChangePort(newServicePorts);\n                        }}\n                      />\n                      {servicePortErrors?.port && (\n                        <FormError>{servicePortErrors.port}</FormError>\n                      )}\n                    </div>\n                    <ButtonSelector\n                      className=\"h-[30px]\"\n                      onChange={(value) => {\n                        const newServicePorts = [...servicePorts];\n                        newServicePorts[portIndex] = {\n                          ...newServicePorts[portIndex],\n                          protocol: value,\n                        };\n                        onChangePort(newServicePorts);\n                      }}\n                      value={servicePort.protocol || 'TCP'}\n                      options={[{ value: 'TCP' }, { value: 'UDP' }]}\n                    />\n                  </div>\n                  <Button\n                    disabled={servicePorts.length === 1}\n                    size=\"small\"\n                    className=\"!ml-0 h-[30px]\"\n                    color=\"dangerlight\"\n                    type=\"button\"\n                    onClick={() => {\n                      // remove the port at the index in an immutable way\n                      const newServicePorts = [\n                        ...servicePorts.slice(0, portIndex),\n                        ...servicePorts.slice(portIndex + 1),\n                      ];\n                      onChangePort(newServicePorts);\n                    }}\n                    data-cy={`k8sAppCreate-rmPortButton-${serviceIndex}-${portIndex}`}\n                    icon={Trash2}\n                  >\n                    Remove port\n                  </Button>\n                </div>\n                <AppIngressPathsForm\n                  servicePortIngressPaths={servicePorts[portIndex].ingressPaths}\n                  onChangeIngressPaths={(\n                    ingressPaths?: ServicePortIngressPath[]\n                  ) => {\n                    const newServicePorts = [...servicePorts];\n                    newServicePorts[portIndex].ingressPaths = ingressPaths;\n                    onChangePort(newServicePorts);\n                  }}\n                  namespace={namespace}\n                  ingressPathsErrors={ingressPathsErrors}\n                  serviceIndex={serviceIndex}\n                  portIndex={portIndex}\n                  isEditMode={isEditMode}\n                />\n              </Card>\n            );\n          })}\n          <div className=\"flex\">\n            <Button\n              icon={Plus}\n              color=\"default\"\n              className=\"!ml-0\"\n              onClick={() => {\n                const newServicesPorts = [...servicePorts, newClusterIpPort];\n                onChangePort(newServicesPorts);\n              }}\n            >\n              Add port\n            </Button>\n          </div>\n        </div>\n      </Widget.Body>\n    </Widget>\n  );\n}\n","import { Plus } from 'lucide-react';\nimport { FormikErrors } from 'formik';\n\nimport { Card } from '@@/Card';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Button } from '@@/buttons';\n\nimport {\n  generateUniqueName,\n  newPort,\n  serviceFormDefaultValues,\n} from '../utils';\nimport { ServiceFormValues, ServicePort } from '../types';\n\nimport { ClusterIpServiceForm } from './ClusterIpServiceForm';\n\ninterface Props {\n  services: ServiceFormValues[];\n  onChangeService: (services: ServiceFormValues[]) => void;\n  errors?: FormikErrors<ServiceFormValues[]>;\n  appName: string;\n  selector: Record<string, string>;\n  namespace?: string;\n  isEditMode?: boolean;\n}\n\nexport function ClusterIpServicesForm({\n  services,\n  onChangeService,\n  errors,\n  appName,\n  selector,\n  namespace,\n  isEditMode,\n}: Props) {\n  const clusterIPServiceCount = services.filter(\n    (service) => service.Type === 'ClusterIP'\n  ).length;\n  return (\n    <Card className=\"pb-5\">\n      <div className=\"flex flex-col gap-6\">\n        <TextTip color=\"blue\">\n          Publish <b>internally</b> in the cluster via a{' '}\n          <b>ClusterIP service</b>, optionally exposing <b>externally</b> to the\n          outside world via an <b>ingress</b>.\n        </TextTip>\n        {clusterIPServiceCount > 0 && (\n          <div className=\"flex w-full flex-col gap-4\">\n            {services.map((service, index) =>\n              service.Type === 'ClusterIP' ? (\n                <ClusterIpServiceForm\n                  key={index}\n                  serviceName={service.Name}\n                  servicePorts={service.Ports}\n                  errors={errors?.[index]?.Ports}\n                  onChangePort={(servicePorts: ServicePort[]) => {\n                    const newServices = [...services];\n                    newServices[index].Ports = servicePorts;\n                    onChangeService(newServices);\n                  }}\n                  services={services}\n                  serviceIndex={index}\n                  onChangeService={onChangeService}\n                  namespace={namespace}\n                  isEditMode={isEditMode}\n                />\n              ) : null\n            )}\n          </div>\n        )}\n        <div className=\"flex\">\n          <Button\n            color=\"secondary\"\n            className=\"!ml-0\"\n            icon={Plus}\n            size=\"small\"\n            onClick={() => {\n              // create a new service form value and add it to the list of services\n              const newService = structuredClone(serviceFormDefaultValues);\n              newService.Name = generateUniqueName(\n                appName,\n                services.length + 1,\n                services\n              );\n              newService.Type = 'ClusterIP';\n              const newServicePort = newPort(newService.Name);\n              newService.Ports = [newServicePort];\n              newService.Selector = selector;\n              onChangeService([...services, newService]);\n            }}\n            data-cy=\"k8sAppCreate-createServiceButton\"\n          >\n            Create service\n          </Button>\n        </div>\n      </div>\n    </Card>\n  );\n}\n","import clsx from 'clsx';\n\nimport { ServiceTypeOption, ServiceType } from '../types';\n\ntype Props = {\n  serviceTypeOptions: ServiceTypeOption[];\n  selectedServiceType: ServiceType;\n  setSelectedServiceType: (serviceTypeValue: ServiceType) => void;\n};\n\nexport function ServiceTabs({\n  serviceTypeOptions,\n  selectedServiceType,\n  setSelectedServiceType,\n}: Props) {\n  return (\n    <div className=\"flex pl-2\">\n      {serviceTypeOptions.map(({ label }, index) => (\n        <label\n          key={index}\n          className={clsx(\n            '!mb-0 inline-flex cursor-pointer items-center gap-2 border-0 border-b-2 border-solid bg-transparent px-4 py-2 font-medium',\n            selectedServiceType === serviceTypeOptions[index].value\n              ? 'border-blue-8  text-blue-8 th-highcontrast:border-blue-6 th-highcontrast:text-blue-6 th-dark:border-blue-6 th-dark:text-blue-6'\n              : 'border-transparent'\n          )}\n        >\n          <input\n            type=\"radio\"\n            name=\"widget-tabs\"\n            className=\"hidden\"\n            value={serviceTypeOptions[index].value}\n            checked={selectedServiceType === serviceTypeOptions[index].value}\n            onChange={(e) =>\n              setSelectedServiceType(e.target.value as ServiceType)\n            }\n          />\n          {label}\n        </label>\n      ))}\n    </div>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { ChangeEvent, useRef } from 'react';\nimport { Plus, Trash2 } from 'lucide-react';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { Button } from '@@/buttons';\nimport { Widget } from '@@/Widget';\nimport { Card } from '@@/Card';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { isErrorType } from '@@/form-components/formikUtils';\n\nimport { newPort } from '../utils';\nimport { ContainerPortInput } from '../components/ContainerPortInput';\nimport {\n  ServiceFormValues,\n  ServicePort,\n  ServicePortIngressPath,\n} from '../types';\nimport { ServicePortInput } from '../components/ServicePortInput';\nimport { AppIngressPathsForm } from '../ingress/AppIngressPathsForm';\n\ninterface Props {\n  services: ServiceFormValues[];\n  serviceIndex: number;\n  onChangeService: (services: ServiceFormValues[]) => void;\n  servicePorts: ServicePort[];\n  onChangePort: (servicePorts: ServicePort[]) => void;\n  serviceName?: string;\n  errors?: string | string[] | FormikErrors<ServicePort>[];\n  namespace?: string;\n  isEditMode?: boolean;\n}\n\nexport function NodePortServiceForm({\n  services,\n  serviceIndex,\n  onChangeService,\n  servicePorts,\n  onChangePort,\n  errors,\n  serviceName,\n  namespace,\n  isEditMode,\n}: Props) {\n  const newNodePortPort = newPort(serviceName);\n  // If there's initially a ingress path for the service, allow editing it\n  const { current: initiallyHasIngressPath } = useRef(\n    services[serviceIndex].Ports.some((port) => port.ingressPaths?.length)\n  );\n\n  return (\n    <Widget key={serviceIndex}>\n      <Widget.Body>\n        <div className=\"flex justify-between\">\n          <div className=\"text-muted vertical-center\">NodePort</div>\n          <Button\n            icon={Trash2}\n            color=\"dangerlight\"\n            className=\"!ml-0\"\n            onClick={() => {\n              // remove the service at index in an immutable way\n              const newServices = [\n                ...services.slice(0, serviceIndex),\n                ...services.slice(serviceIndex + 1),\n              ];\n              onChangeService(newServices);\n            }}\n          >\n            Remove service\n          </Button>\n        </div>\n        <div className=\"control-label !mb-2 !pt-0 text-left\">Ports</div>\n        <div className=\"flex flex-col gap-3\">\n          {servicePorts.map((servicePort, portIndex) => {\n            const error = errors?.[portIndex];\n            const servicePortErrors = isErrorType<ServicePort>(error)\n              ? error\n              : undefined;\n            const ingressPathsErrors = isErrorType<ServicePortIngressPath[]>(\n              servicePortErrors?.ingressPaths\n            )\n              ? servicePortErrors?.ingressPaths\n              : undefined;\n\n            return (\n              <Card key={portIndex} className=\"flex flex-col gap-y-3\">\n                <div className=\"flex flex-grow flex-wrap justify-between gap-x-4 gap-y-1\">\n                  <div className=\"inline-flex min-w-min flex-grow basis-3/4 flex-wrap gap-2\">\n                    <div className=\"flex min-w-min basis-1/4 flex-col\">\n                      <ContainerPortInput\n                        serviceIndex={serviceIndex}\n                        portIndex={portIndex}\n                        value={servicePort.targetPort}\n                        onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                          const newServicePorts = [...servicePorts];\n                          const newValue = e.target.valueAsNumber;\n                          newServicePorts[portIndex] = {\n                            ...newServicePorts[portIndex],\n                            targetPort: newValue,\n                            port: newValue,\n                          };\n                          onChangePort(newServicePorts);\n                        }}\n                      />\n                      {servicePortErrors?.targetPort && (\n                        <FormError>{servicePortErrors.targetPort}</FormError>\n                      )}\n                    </div>\n\n                    <div className=\"flex min-w-min basis-1/4 flex-col\">\n                      <ServicePortInput\n                        serviceIndex={serviceIndex}\n                        portIndex={portIndex}\n                        value={servicePort.port}\n                        onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                          const newServicePorts = [...servicePorts];\n                          newServicePorts[portIndex] = {\n                            ...newServicePorts[portIndex],\n                            port: e.target.valueAsNumber,\n                          };\n                          onChangePort(newServicePorts);\n                        }}\n                      />\n                      {servicePortErrors?.port && (\n                        <FormError>{servicePortErrors.port}</FormError>\n                      )}\n                    </div>\n                    <div className=\"flex min-w-min basis-1/4 flex-col\">\n                      <InputGroup size=\"small\">\n                        <InputGroup.Addon>Nodeport</InputGroup.Addon>\n                        <InputGroup.Input\n                          type=\"number\"\n                          className=\"form-control min-w-max\"\n                          name={`node_port_${portIndex}`}\n                          placeholder=\"e.g. 30080\"\n                          min=\"30000\"\n                          max=\"32767\"\n                          value={servicePort.nodePort ?? ''}\n                          onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                            const newServicePorts = [...servicePorts];\n                            newServicePorts[portIndex] = {\n                              ...newServicePorts[portIndex],\n                              nodePort:\n                                e.target.value === ''\n                                  ? undefined\n                                  : Number(e.target.value),\n                            };\n                            onChangePort(newServicePorts);\n                          }}\n                          data-cy={`k8sAppCreate-nodePort_${portIndex}`}\n                        />\n                      </InputGroup>\n                      {servicePortErrors?.nodePort && (\n                        <FormError>{servicePortErrors.nodePort}</FormError>\n                      )}\n                    </div>\n                    <ButtonSelector\n                      className=\"h-[30px]\"\n                      onChange={(value) => {\n                        const newServicePorts = [...servicePorts];\n                        newServicePorts[portIndex] = {\n                          ...newServicePorts[portIndex],\n                          protocol: value,\n                        };\n                        onChangePort(newServicePorts);\n                      }}\n                      value={servicePort.protocol || 'TCP'}\n                      options={[{ value: 'TCP' }, { value: 'UDP' }]}\n                    />\n                  </div>\n                  <Button\n                    disabled={servicePorts.length === 1}\n                    size=\"small\"\n                    className=\"!ml-0 h-[30px]\"\n                    color=\"dangerlight\"\n                    type=\"button\"\n                    onClick={() => {\n                      // remove the port at the index in an immutable way\n                      const newServicePorts = [\n                        ...servicePorts.slice(0, portIndex),\n                        ...servicePorts.slice(portIndex + 1),\n                      ];\n                      onChangePort(newServicePorts);\n                    }}\n                    data-cy={`k8sAppCreate-rmPortButton_${portIndex}`}\n                    icon={Trash2}\n                  >\n                    Remove port\n                  </Button>\n                </div>\n                {initiallyHasIngressPath && (\n                  <AppIngressPathsForm\n                    servicePortIngressPaths={\n                      servicePorts[portIndex].ingressPaths\n                    }\n                    onChangeIngressPaths={(\n                      ingressPaths?: ServicePortIngressPath[]\n                    ) => {\n                      const newServicePorts = [...servicePorts];\n                      newServicePorts[portIndex].ingressPaths = ingressPaths;\n                      onChangePort(newServicePorts);\n                    }}\n                    namespace={namespace}\n                    ingressPathsErrors={ingressPathsErrors}\n                    serviceIndex={serviceIndex}\n                    portIndex={portIndex}\n                    isEditMode={isEditMode}\n                  />\n                )}\n              </Card>\n            );\n          })}\n          <div className=\"flex\">\n            <Button\n              icon={Plus}\n              color=\"default\"\n              className=\"!ml-0\"\n              onClick={() => {\n                const newServicesPorts = [...servicePorts, newNodePortPort];\n                onChangePort(newServicesPorts);\n              }}\n            >\n              Add port\n            </Button>\n          </div>\n        </div>\n      </Widget.Body>\n    </Widget>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { Plus } from 'lucide-react';\n\nimport { Card } from '@@/Card';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Button } from '@@/buttons';\n\nimport {\n  serviceFormDefaultValues,\n  generateUniqueName,\n  newPort,\n} from '../utils';\nimport { ServiceFormValues, ServicePort } from '../types';\n\nimport { NodePortServiceForm } from './NodePortServiceForm';\n\ninterface Props {\n  services: ServiceFormValues[];\n  onChangeService: (services: ServiceFormValues[]) => void;\n  errors?: FormikErrors<ServiceFormValues[]>;\n  appName: string;\n  selector: Record<string, string>;\n  namespace?: string;\n  isEditMode?: boolean;\n}\n\nexport function NodePortServicesForm({\n  services,\n  onChangeService,\n  errors,\n  appName,\n  selector,\n  namespace,\n  isEditMode,\n}: Props) {\n  const nodePortServiceCount = services.filter(\n    (service) => service.Type === 'NodePort'\n  ).length;\n  return (\n    <Card className=\"pb-5\">\n      <div className=\"flex flex-col gap-6\">\n        <TextTip color=\"blue\">\n          Allow access to traffic <b>external</b> to the cluster via a{' '}\n          <b>NodePort service</b>. Not generally recommended for Production use.\n        </TextTip>\n        {nodePortServiceCount > 0 && (\n          <div className=\"flex w-full flex-col gap-4\">\n            {services.map((service, index) =>\n              service.Type === 'NodePort' ? (\n                <NodePortServiceForm\n                  key={index}\n                  serviceName={service.Name}\n                  servicePorts={service.Ports}\n                  errors={errors?.[index]?.Ports}\n                  onChangePort={(servicePorts: ServicePort[]) => {\n                    const newServices = [...services];\n                    newServices[index].Ports = servicePorts;\n                    onChangeService(newServices);\n                  }}\n                  services={services}\n                  serviceIndex={index}\n                  onChangeService={onChangeService}\n                  namespace={namespace}\n                  isEditMode={isEditMode}\n                />\n              ) : null\n            )}\n          </div>\n        )}\n        <div className=\"flex\">\n          <Button\n            color=\"secondary\"\n            className=\"!ml-0\"\n            icon={Plus}\n            size=\"small\"\n            onClick={() => {\n              // create a new service form value and add it to the list of services\n              const newService = structuredClone(serviceFormDefaultValues);\n              newService.Name = generateUniqueName(\n                appName,\n                services.length + 1,\n                services\n              );\n              newService.Type = 'NodePort';\n              const newServicePort = newPort(newService.Name);\n              newService.Ports = [newServicePort];\n              newService.Selector = selector;\n              onChangeService([...services, newService]);\n            }}\n            data-cy=\"k8sAppCreate-createServiceButton\"\n          >\n            Create service\n          </Button>\n        </div>\n      </div>\n    </Card>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { ChangeEvent, useRef } from 'react';\nimport { Plus, Trash2 } from 'lucide-react';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\nimport { Button } from '@@/buttons';\nimport { Widget } from '@@/Widget';\nimport { Card } from '@@/Card';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { isErrorType } from '@@/form-components/formikUtils';\n\nimport { newPort } from '../utils';\nimport { ContainerPortInput } from '../components/ContainerPortInput';\nimport {\n  ServiceFormValues,\n  ServicePort,\n  ServicePortIngressPath,\n} from '../types';\nimport { ServicePortInput } from '../components/ServicePortInput';\nimport { AppIngressPathsForm } from '../ingress/AppIngressPathsForm';\n\ninterface Props {\n  services: ServiceFormValues[];\n  serviceIndex: number;\n  onChangeService: (services: ServiceFormValues[]) => void;\n  servicePorts: ServicePort[];\n  onChangePort: (servicePorts: ServicePort[]) => void;\n  serviceName?: string;\n  errors?: string | string[] | FormikErrors<ServicePort>[];\n  namespace?: string;\n  isEditMode?: boolean;\n}\n\nexport function LoadBalancerServiceForm({\n  services,\n  serviceIndex,\n  onChangeService,\n  servicePorts,\n  onChangePort,\n  errors,\n  serviceName,\n  namespace,\n  isEditMode,\n}: Props) {\n  const newLoadBalancerPort = newPort(serviceName); // If there's initially a ingress path for the service, allow editing it\n  const { current: initiallyHasIngressPath } = useRef(\n    services[serviceIndex].Ports.some((port) => port.ingressPaths?.length)\n  );\n\n  return (\n    <Widget key={serviceIndex}>\n      <Widget.Body>\n        <div className=\"flex justify-between\">\n          <div className=\"text-muted vertical-center\">LoadBalancer</div>\n          <Button\n            icon={Trash2}\n            color=\"dangerlight\"\n            className=\"!ml-0\"\n            onClick={() => {\n              // remove the service at index in an immutable way\n              const newServices = [\n                ...services.slice(0, serviceIndex),\n                ...services.slice(serviceIndex + 1),\n              ];\n              onChangeService(newServices);\n            }}\n          >\n            Remove service\n          </Button>\n        </div>\n        <div className=\"control-label !mb-2 !pt-0 text-left\">Ports</div>\n        <div className=\"flex flex-col gap-3\">\n          {servicePorts.map((servicePort, portIndex) => {\n            const error = errors?.[portIndex];\n            const servicePortErrors = isErrorType<ServicePort>(error)\n              ? error\n              : undefined;\n            const ingressPathsErrors = isErrorType<ServicePortIngressPath[]>(\n              servicePortErrors?.ingressPaths\n            )\n              ? servicePortErrors?.ingressPaths\n              : undefined;\n\n            return (\n              <Card key={portIndex} className=\"flex flex-col gap-y-3\">\n                <div className=\"flex flex-grow flex-wrap justify-between gap-x-4 gap-y-1\">\n                  <div className=\"inline-flex min-w-min flex-grow basis-3/4 flex-wrap gap-2\">\n                    <div className=\"flex min-w-min basis-1/4 flex-col\">\n                      <ContainerPortInput\n                        serviceIndex={serviceIndex}\n                        portIndex={portIndex}\n                        value={servicePort.targetPort}\n                        onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                          const newServicePorts = [...servicePorts];\n                          const newValue = e.target.valueAsNumber;\n                          newServicePorts[portIndex] = {\n                            ...newServicePorts[portIndex],\n                            targetPort: newValue,\n                            port: newValue,\n                          };\n                          onChangePort(newServicePorts);\n                        }}\n                      />\n                      {servicePortErrors?.targetPort && (\n                        <FormError>{servicePortErrors.targetPort}</FormError>\n                      )}\n                    </div>\n\n                    <div className=\"flex min-w-min basis-1/4 flex-col\">\n                      <ServicePortInput\n                        serviceIndex={serviceIndex}\n                        portIndex={portIndex}\n                        value={servicePort.port}\n                        onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                          const newServicePorts = [...servicePorts];\n                          newServicePorts[portIndex] = {\n                            ...newServicePorts[portIndex],\n                            port: e.target.valueAsNumber,\n                          };\n                          onChangePort(newServicePorts);\n                        }}\n                      />\n                      {servicePortErrors?.port && (\n                        <FormError>{servicePortErrors.port}</FormError>\n                      )}\n                    </div>\n                    <div className=\"flex min-w-min basis-1/4 flex-col\">\n                      <InputGroup size=\"small\">\n                        <InputGroup.Addon required>\n                          Loadbalancer port\n                        </InputGroup.Addon>\n                        <InputGroup.Input\n                          type=\"number\"\n                          className=\"form-control min-w-max\"\n                          name={`loadbalancer_port_${portIndex}`}\n                          placeholder=\"e.g. 80\"\n                          min=\"1\"\n                          max=\"65535\"\n                          value={servicePort.port || ''}\n                          onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                            const newServicePorts = [...servicePorts];\n                            newServicePorts[portIndex] = {\n                              ...newServicePorts[portIndex],\n                              port: e.target.valueAsNumber,\n                            };\n                            onChangePort(newServicePorts);\n                          }}\n                          required\n                          data-cy={`k8sAppCreate-loadbalancerPort_${portIndex}`}\n                        />\n                      </InputGroup>\n                      {servicePortErrors?.nodePort && (\n                        <FormError>{servicePortErrors.nodePort}</FormError>\n                      )}\n                    </div>\n                    <ButtonSelector\n                      className=\"h-[30px]\"\n                      onChange={(value) => {\n                        const newServicePorts = [...servicePorts];\n                        newServicePorts[portIndex] = {\n                          ...newServicePorts[portIndex],\n                          protocol: value,\n                        };\n                        onChangePort(newServicePorts);\n                      }}\n                      value={servicePort.protocol || 'TCP'}\n                      options={[{ value: 'TCP' }, { value: 'UDP' }]}\n                    />\n                  </div>\n                  <Button\n                    disabled={servicePorts.length === 1}\n                    size=\"small\"\n                    className=\"!ml-0 h-[30px]\"\n                    color=\"dangerlight\"\n                    type=\"button\"\n                    onClick={() => {\n                      // remove the port at the index in an immutable way\n                      const newServicePorts = [\n                        ...servicePorts.slice(0, portIndex),\n                        ...servicePorts.slice(portIndex + 1),\n                      ];\n                      onChangePort(newServicePorts);\n                    }}\n                    data-cy={`k8sAppCreate-rmPortButton_${portIndex}`}\n                    icon={Trash2}\n                  >\n                    Remove port\n                  </Button>\n                </div>\n                {initiallyHasIngressPath && (\n                  <AppIngressPathsForm\n                    servicePortIngressPaths={\n                      servicePorts[portIndex].ingressPaths\n                    }\n                    onChangeIngressPaths={(\n                      ingressPaths?: ServicePortIngressPath[]\n                    ) => {\n                      const newServicePorts = [...servicePorts];\n                      newServicePorts[portIndex].ingressPaths = ingressPaths;\n                      onChangePort(newServicePorts);\n                    }}\n                    namespace={namespace}\n                    ingressPathsErrors={ingressPathsErrors}\n                    serviceIndex={serviceIndex}\n                    portIndex={portIndex}\n                    isEditMode={isEditMode}\n                  />\n                )}\n              </Card>\n            );\n          })}\n          <div className=\"flex\">\n            <Button\n              icon={Plus}\n              color=\"default\"\n              className=\"!ml-0\"\n              onClick={() => {\n                const newServicesPorts = [...servicePorts, newLoadBalancerPort];\n                onChangePort(newServicesPorts);\n              }}\n            >\n              Add port\n            </Button>\n          </div>\n        </div>\n      </Widget.Body>\n    </Widget>\n  );\n}\n","import { Plus, RefreshCw } from 'lucide-react';\nimport { FormikErrors } from 'formik';\n\nimport { useIsEdgeAdmin } from '@/react/hooks/useUser';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Card } from '@@/Card';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Button } from '@@/buttons';\nimport { FormError } from '@@/form-components/FormError';\nimport { Link } from '@@/Link';\n\nimport {\n  generateUniqueName,\n  newPort,\n  serviceFormDefaultValues,\n} from '../utils';\nimport { ServiceFormValues, ServicePort } from '../types';\n\nimport { LoadBalancerServiceForm } from './LoadBalancerServiceForm';\n\ninterface Props {\n  services: ServiceFormValues[];\n  onChangeService: (services: ServiceFormValues[]) => void;\n  errors?: FormikErrors<ServiceFormValues[]>;\n  appName: string;\n  selector: Record<string, string>;\n  namespace?: string;\n  isEditMode?: boolean;\n}\n\nexport function LoadBalancerServicesForm({\n  services,\n  onChangeService,\n  errors,\n  appName,\n  selector,\n  namespace,\n  isEditMode,\n}: Props) {\n  const isAdminQuery = useIsEdgeAdmin();\n\n  const environmentId = useEnvironmentId();\n  const { data: loadBalancerEnabled, ...loadBalancerEnabledQuery } =\n    useEnvironment(\n      environmentId,\n      (environment) => environment?.Kubernetes.Configuration.UseLoadBalancer\n    );\n\n  if (isAdminQuery.isLoading) {\n    return null;\n  }\n\n  const { isAdmin } = isAdminQuery;\n\n  const loadBalancerServiceCount = services.filter(\n    (service) => service.Type === 'LoadBalancer'\n  ).length;\n  return (\n    <Card className=\"pb-5\">\n      <div className=\"flex flex-col gap-6\">\n        <TextTip color=\"blue\">\n          Allow access to traffic <b>external</b> to the cluster via a{' '}\n          <b>LoadBalancer service</b>. If running on a cloud platform, this auto\n          provisions a cloud load balancer.\n        </TextTip>\n        {!loadBalancerEnabled && loadBalancerEnabledQuery.isSuccess && (\n          <div className=\"flex flex-col\">\n            <FormError>\n              {isAdmin ? (\n                <>\n                  Load balancer use is not currently enabled in this cluster.\n                  Configure via{' '}\n                  <Link\n                    to=\"kubernetes.cluster.setup\"\n                    target=\"_blank\"\n                    rel=\"noopener noreferrer\"\n                  >\n                    Cluster Setup\n                  </Link>{' '}\n                  and then refresh this tab\n                </>\n              ) : (\n                'Load balancer use is not currently enabled in this cluster, contact your administrator.'\n              )}\n            </FormError>\n            <div className=\"flex\">\n              <Button\n                icon={RefreshCw}\n                color=\"default\"\n                className=\"!ml-0\"\n                onClick={() => loadBalancerEnabledQuery.refetch()}\n              >\n                Refresh\n              </Button>\n            </div>\n          </div>\n        )}\n        {loadBalancerServiceCount > 0 && (\n          <div className=\"flex w-full flex-col gap-4\">\n            {services.map((service, index) =>\n              service.Type === 'LoadBalancer' ? (\n                <LoadBalancerServiceForm\n                  key={index}\n                  serviceName={service.Name}\n                  servicePorts={service.Ports}\n                  errors={errors?.[index]?.Ports}\n                  onChangePort={(servicePorts: ServicePort[]) => {\n                    const newServices = [...services];\n                    newServices[index].Ports = servicePorts;\n                    onChangeService(newServices);\n                  }}\n                  services={services}\n                  serviceIndex={index}\n                  onChangeService={onChangeService}\n                  namespace={namespace}\n                  isEditMode={isEditMode}\n                />\n              ) : null\n            )}\n          </div>\n        )}\n        <div className=\"flex\">\n          <Button\n            color=\"secondary\"\n            className=\"!ml-0\"\n            icon={Plus}\n            size=\"small\"\n            onClick={() => {\n              // create a new service form value and add it to the list of services\n              const newService = structuredClone(serviceFormDefaultValues);\n              newService.Name = generateUniqueName(\n                appName,\n                services.length + 1,\n                services\n              );\n              newService.Type = 'LoadBalancer';\n              const newServicePort = newPort(newService.Name);\n              newService.Ports = [newServicePort];\n              newService.Selector = selector;\n              onChangeService([...services, newService]);\n            }}\n            disabled={!loadBalancerEnabled}\n            data-cy=\"k8sAppCreate-createServiceButton\"\n          >\n            Create service\n          </Button>\n        </div>\n      </div>\n    </Card>\n  );\n}\n","import { AlertTriangle } from 'lucide-react';\n\nimport { Badge } from '@@/Badge';\nimport { Icon } from '@@/Icon';\n\ntype Props = {\n  serviceTypeLabel: string;\n  serviceTypeCount: number;\n  serviceTypeHasErrors: boolean;\n};\n\nexport function ServiceTabLabel({\n  serviceTypeLabel,\n  serviceTypeCount,\n  serviceTypeHasErrors,\n}: Props) {\n  return (\n    <div className=\"inline-flex items-center\">\n      {serviceTypeLabel}\n      {serviceTypeCount && (\n        <Badge\n          className=\"ml-2 flex-none\"\n          type={serviceTypeHasErrors ? 'warn' : 'info'}\n        >\n          {serviceTypeHasErrors && (\n            <Icon icon={AlertTriangle} className=\"!mr-1\" />\n          )}\n          {serviceTypeCount}\n        </Badge>\n      )}\n    </div>\n  );\n}\n","import ingressDiagram from '@/assets/images/ingress-explanatory-diagram.png';\n\nimport { FormSection } from '@@/form-components/FormSection';\n\nexport function PublishingExplaination() {\n  return (\n    <FormSection title=\"Explanation\" isFoldable titleSize=\"sm\">\n      <div className=\"mb-4 flex flex-col items-start lg:flex-row\">\n        <img\n          src={ingressDiagram}\n          alt=\"ingress explaination\"\n          width={646}\n          className=\"flex w-full max-w-2xl basis-1/2 flex-col rounded border border-solid border-gray-5 object-contain lg:w-1/2\"\n        />\n        <div className=\"text-muted ml-8 basis-1/2 text-xs\">\n          Expose the application workload via{' '}\n          <a\n            href=\"https://kubernetes.io/docs/concepts/services-networking/service/\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            services\n          </a>{' '}\n          and{' '}\n          <a\n            href=\"https://kubernetes.io/docs/concepts/services-networking/ingress/\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            ingresses\n          </a>\n          :\n          <ul className=\"ml-5 mt-3 [&>li>ul>li]:ml-5 [&>li]:mb-3\">\n            <li>\n              <b>Inside</b> the cluster{' '}\n              <b>\n                <i>only</i>\n              </b>{' '}\n              - via <b>ClusterIP</b> service\n              <ul>\n                <li>\n                  <i>The default service type.</i>\n                </li>\n              </ul>\n            </li>\n            <li>\n              <b>Inside</b> the cluster via <b>ClusterIP</b> service and{' '}\n              <b>outside</b> via <b>ingress</b>\n              <ul>\n                <li>\n                  <i>\n                    An ingress manages external access to (usually ClusterIP)\n                    services within the cluster, and allows defining of routing\n                    rules, SSL termination and other advanced features.\n                  </i>\n                </li>\n              </ul>\n            </li>\n            <li>\n              <b>Inside</b> and <b>outside</b> the cluster via <b>NodePort</b>{' '}\n              service\n              <ul>\n                <li>\n                  <i>\n                    This publishes the workload on a static port on each node,\n                    allowing external access via a nodes&apos; IP address and\n                    port. Not generally recommended for Production use.\n                  </i>\n                </li>\n              </ul>\n            </li>\n            <li>\n              <b>Inside</b> and <b>outside</b> the cluster via{' '}\n              <b>LoadBalancer</b> service\n              <ul>\n                <li>\n                  <i>\n                    If running on a cloud platform, this auto provisions a cloud\n                    load balancer and assigns an external IP address or DNS to\n                    route traffic to the workload.\n                  </i>\n                </li>\n              </ul>\n            </li>\n          </ul>\n        </div>\n      </div>\n    </FormSection>\n  );\n}\n","import { SchemaOf, array, object, boolean, string, mixed, number } from 'yup';\n\nimport { nanNumberSchema } from '@/react-tools/yup-schemas';\n\nimport { ServiceFormValues, ServicePort } from './types';\nimport { prependWithSlash } from './utils';\n\n// values returned from the angular parent component (pascal case instead of camel case keys),\n// these should match the form values, but don't. Future tech debt work to update this would be nice\n\n// to make the converted values and formValues objects to be the same\ninterface NodePortValues {\n  Port: number;\n  TargetPort: number;\n  NodePort: number;\n  Name?: string;\n  Protocol?: string;\n  Ingress?: string;\n}\n\ntype ServiceValues = {\n  Type: number;\n  Name: string;\n  Ports: NodePortValues[];\n};\n\ntype AngularIngressPath = {\n  IngressName: string;\n  Host: string;\n  Path: string;\n};\n\ntype AppServicesValidationData = {\n  nodePortServices: ServiceValues[];\n  formServices: ServiceFormValues[];\n  ingressPaths?: AngularIngressPath[];\n  originalIngressPaths?: AngularIngressPath[];\n};\n\nexport function kubeServicesValidation(\n  validationData?: AppServicesValidationData\n): SchemaOf<ServiceFormValues[]> {\n  return array(\n    object({\n      Headless: boolean().required(),\n      Namespace: string(),\n      Name: string(),\n      StackName: string(),\n      Type: mixed().oneOf(['ClusterIP', 'NodePort', 'LoadBalancer']),\n      ClusterIP: string(),\n      ApplicationName: string(),\n      ApplicationOwner: string(),\n      Note: string(),\n      Ingress: boolean().required(),\n      Selector: object(),\n      Ports: array(\n        object({\n          port: nanNumberSchema('Service port number is required.')\n            .required('Service port number is required.')\n            .min(1, 'Service port number must be inside the range 1-65535.')\n            .max(65535, 'Service port number must be inside the range 1-65535.')\n            .test(\n              'service-port-is-unique',\n              'Service port number must be unique.',\n              (servicePort, context) => {\n                // test for duplicate service ports within this service.\n                // yup gives access to context.parent which gives one ServicePort object.\n                // yup also gives access to all form values through this.options.context.\n                // Unfortunately, it doesn't give direct access to all Ports within the current service.\n                // To find all ports in the service for validation, I'm filtering the services by the service name,\n                // that's stored in the ServicePort object, then getting all Ports in the service.\n                if (servicePort === undefined || validationData === undefined) {\n                  return true;\n                }\n                const { formServices } = validationData;\n                const matchingService = getServiceForPort(\n                  context.parent as ServicePort,\n                  formServices\n                );\n                if (matchingService === undefined) {\n                  return true;\n                }\n                const servicePorts = matchingService.Ports;\n                const duplicateServicePortCount = servicePorts.filter(\n                  (port) => port.port === servicePort\n                ).length;\n                return duplicateServicePortCount <= 1;\n              }\n            ),\n          targetPort: nanNumberSchema('Container port number is required.')\n            .required('Container port number is required.')\n            .min(1, 'Container port number must be inside the range 1-65535.')\n            .max(\n              65535,\n              'Container port number must be inside the range 1-65535.'\n            ),\n          name: string(),\n          serviceName: string(),\n          protocol: string(),\n          nodePort: number()\n            .test(\n              'node-port-is-unique-in-service',\n              'Node port is already used in this service.',\n              (nodePort, context) => {\n                if (nodePort === undefined || validationData === undefined) {\n                  return true;\n                }\n                const { formServices } = validationData;\n                const matchingService = getServiceForPort(\n                  context.parent as ServicePort,\n                  formServices\n                );\n                if (\n                  matchingService === undefined ||\n                  matchingService.Type !== 'NodePort'\n                ) {\n                  return true;\n                }\n                const servicePorts = matchingService.Ports;\n                const duplicateNodePortCount = servicePorts.filter(\n                  (port) => port.nodePort === nodePort\n                ).length;\n                return duplicateNodePortCount <= 1;\n              }\n            )\n            .test(\n              'node-port-is-unique-in-cluster',\n              'Node port is already used.',\n              (nodePort, context) => {\n                if (nodePort === undefined || validationData === undefined) {\n                  return true;\n                }\n                const { formServices, nodePortServices } = validationData;\n                const matchingService = getServiceForPort(\n                  context.parent as ServicePort,\n                  formServices\n                );\n\n                if (\n                  matchingService === undefined ||\n                  matchingService.Type !== 'NodePort'\n                ) {\n                  return true;\n                }\n\n                // create a list of all the node ports (number[]) in the cluster, from services that aren't in the application form\n                const formServiceNames = formServices.map(\n                  (formService) => formService.Name\n                );\n                const clusterNodePortsWithoutFormServices = nodePortServices\n                  .filter(\n                    (npService) => !formServiceNames.includes(npService.Name)\n                  )\n                  .flatMap((npService) => npService.Ports)\n                  .map((npServicePorts) => npServicePorts.NodePort);\n                // node ports in the current form, excluding the current service\n                const formNodePortsWithoutCurrentService = formServices\n                  .filter(\n                    (formService) =>\n                      formService.Type === 'NodePort' &&\n                      formService.Name !== matchingService.Name\n                  )\n                  .flatMap((formService) => formService.Ports)\n                  .map((formServicePorts) => formServicePorts.nodePort);\n                return (\n                  !clusterNodePortsWithoutFormServices.includes(nodePort) && // node port is not in the cluster services that aren't in the application form\n                  !formNodePortsWithoutCurrentService.includes(nodePort) // and the node port is not in the current form, excluding the current service\n                );\n              }\n            )\n            .test(\n              'node-port-minimum',\n              'Nodeport number must be inside the range 30000-32767 or blank for system allocated.',\n              (nodePort, context) => {\n                if (nodePort === undefined || validationData === undefined) {\n                  return true;\n                }\n                const { formServices } = validationData;\n                const matchingService = getServiceForPort(\n                  context.parent as ServicePort,\n                  formServices\n                );\n                if (!matchingService || matchingService.Type !== 'NodePort') {\n                  return true;\n                }\n                return nodePort >= 30000;\n              }\n            )\n            .test(\n              'node-port-maximum',\n              'Nodeport number must be inside the range 30000-32767 or blank for system allocated.',\n              (nodePort, context) => {\n                if (nodePort === undefined || validationData === undefined) {\n                  return true;\n                }\n                const { formServices } = validationData;\n                const matchingService = getServiceForPort(\n                  context.parent as ServicePort,\n                  formServices\n                );\n                if (!matchingService || matchingService.Type !== 'NodePort') {\n                  return true;\n                }\n                return nodePort <= 32767;\n              }\n            ),\n          ingressPaths: array(\n            object({\n              IngressName: string().required(),\n              Host: string().required('Ingress hostname is required.'),\n              Path: string()\n                .required('Ingress path is required.')\n                .test(\n                  'path-is-unique',\n                  'Ingress path is already in use for this hostname.',\n                  (path, context) => {\n                    if (\n                      path === undefined ||\n                      validationData === undefined ||\n                      !context.parent.Host\n                    ) {\n                      return true;\n                    }\n                    const ingressHostAndPath = `${\n                      context.parent.Host\n                    }${prependWithSlash(path)}`;\n                    const {\n                      ingressPaths: ingressPathsInNamespace,\n                      formServices,\n                      originalIngressPaths,\n                    } = validationData;\n\n                    // get the count of the same ingressHostAndPath in the current form values\n                    const allFormServicePortIngresses = formServices.flatMap(\n                      (service) =>\n                        service.Ports.flatMap((port) => port.ingressPaths)\n                    );\n                    const formMatchingIngressHostPathCount =\n                      allFormServicePortIngresses\n                        .filter((ingress) => ingress?.Host !== '')\n                        .map(\n                          (ingress) =>\n                            `${ingress?.Host}${prependWithSlash(ingress?.Path)}`\n                        )\n                        .filter(\n                          (formIngressHostAndPath) =>\n                            formIngressHostAndPath === ingressHostAndPath\n                        ).length;\n\n                    // get the count of the same ingressHostAndPath in the namespace and subtract the count from the original form values\n                    const nsMatchingIngressHostPathCount = (\n                      ingressPathsInNamespace ?? []\n                    )\n                      .map(\n                        (ingressPath) =>\n                          `${ingressPath.Host}${ingressPath.Path}`\n                      )\n                      .filter(\n                        (nsIngressHostAndPath) =>\n                          nsIngressHostAndPath === ingressHostAndPath\n                      ).length;\n\n                    // get the count of the same ingressHostAndPath in the original form values\n                    const originalMatchingIngressHostPathCount = (\n                      originalIngressPaths ?? []\n                    )\n                      .map(\n                        (ingressPath) =>\n                          `${ingressPath.Host}${ingressPath.Path}`\n                      )\n                      .filter(\n                        (originalIngressHostAndPath) =>\n                          originalIngressHostAndPath === ingressHostAndPath\n                      ).length;\n\n                    // for the current ingressHostAndPath to be unique, nsMatchingIngressHostPathCount - originalMatchingIngressHostPathCount + formMatchingIngressHostPathCount must be 1 or less.\n                    const pathIsUnique =\n                      formMatchingIngressHostPathCount === 1 &&\n                      nsMatchingIngressHostPathCount -\n                        originalMatchingIngressHostPathCount +\n                        formMatchingIngressHostPathCount <=\n                        1;\n                    return pathIsUnique;\n                  }\n                ),\n            })\n          ),\n        })\n      ),\n      Annotations: array(),\n    })\n  );\n}\n\nfunction getServiceForPort(\n  servicePort: ServicePort,\n  services: ServiceFormValues[]\n) {\n  return services.find((service) => service.Name === servicePort.serviceName);\n}\n","import { useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport { ChevronUp, ChevronRight, Edit } from 'lucide-react';\n\nimport { Button } from '@@/buttons';\nimport { FormError } from '@@/form-components/FormError';\n\nexport type Props = {\n  onChange: (value: string) => void;\n  defaultIsOpen?: boolean;\n  value?: string;\n  labelClass?: string;\n  inputClass?: string;\n  isRequired?: boolean;\n  minLength?: number;\n  isExpandable?: boolean;\n};\n\nexport function Note({\n  onChange,\n  defaultIsOpen,\n  value,\n  labelClass = 'col-sm-12 mb-2',\n  inputClass = 'col-sm-12',\n  isRequired,\n  minLength,\n  isExpandable,\n}: Props) {\n  const [isNoteOpen, setIsNoteOpen] = useState(defaultIsOpen || isRequired);\n\n  useEffect(() => {\n    setIsNoteOpen(defaultIsOpen || isRequired);\n  }, [defaultIsOpen, isRequired]);\n\n  let error = '';\n  if (isRequired && minLength && (!value || value.length < minLength)) {\n    error = `You have entered ${value ? value.length : 0} of the ${minLength} ${\n      minLength === 1 ? 'character' : 'characters'\n    } minimum required.`;\n  }\n\n  return (\n    <div className=\"form-group\">\n      <div className={clsx('vertical-center', labelClass)}>\n        {isExpandable && (\n          <Button\n            size=\"small\"\n            type=\"button\"\n            color=\"none\"\n            data-cy=\"k8sAppDetail-expandNoteButton\"\n            onClick={() => setIsNoteOpen(!isNoteOpen)}\n            className=\"!m-0 !p-0\"\n          >\n            {isNoteOpen ? <ChevronUp /> : <ChevronRight />} <Edit />\n            <span className={isRequired ? 'required' : ''}>Note</span>\n          </Button>\n        )}\n        {!isExpandable && (\n          <span\n            className={clsx(\n              'control-label text-left',\n              isRequired ? 'required' : ''\n            )}\n          >\n            Note\n          </span>\n        )}\n      </div>\n\n      {isNoteOpen && (\n        <div className={inputClass}>\n          <textarea\n            className=\"form-control resize-y\"\n            name=\"application_note\"\n            id=\"application_note\"\n            value={value}\n            onChange={(e) => onChange(e.target.value)}\n            rows={5}\n            placeholder=\"Enter a note about this application...\"\n            minLength={minLength}\n          />\n          {error && (\n            <FormError className=\"error-inline mt-2\">{error}</FormError>\n          )}\n        </div>\n      )}\n    </div>\n  );\n}\n","import {\n  Deployment,\n  DaemonSet,\n  StatefulSet,\n  ReplicaSet,\n  ReplicaSetList,\n  ControllerRevisionList,\n  ControllerRevision,\n} from 'kubernetes-types/apps/v1';\nimport { Pod } from 'kubernetes-types/core/v1';\nimport filesizeParser from 'filesize-parser';\n\nimport { Application, ApplicationPatch, Revision } from './types';\nimport {\n  appOwnerLabel,\n  defaultDeploymentUniqueLabel,\n  unchangedAnnotationKeysForRollbackPatch,\n  appRevisionAnnotation,\n} from './constants';\n\n// naked pods are pods which are not owned by a deployment, daemonset, statefulset or replicaset\n// https://kubernetes.io/docs/concepts/configuration/overview/#naked-pods-vs-replicasets-deployments-and-jobs\n// getNakedPods returns an array of naked pods from an array of pods, deployments, daemonsets and statefulsets\nexport function getNakedPods(\n  pods: Pod[],\n  deployments: Deployment[],\n  daemonSets: DaemonSet[],\n  statefulSets: StatefulSet[]\n) {\n  const appLabels = [\n    ...deployments.map((deployment) => deployment.spec?.selector.matchLabels),\n    ...daemonSets.map((daemonSet) => daemonSet.spec?.selector.matchLabels),\n    ...statefulSets.map(\n      (statefulSet) => statefulSet.spec?.selector.matchLabels\n    ),\n  ];\n\n  const nakedPods = pods.filter((pod) => {\n    const podLabels = pod.metadata?.labels;\n    // if the pod has no labels, it is naked\n    if (!podLabels) return true;\n    // if the pod has labels, but no app labels, it is naked\n    return !appLabels.some((appLabel) => {\n      if (!appLabel) return false;\n      return Object.entries(appLabel).every(\n        ([key, value]) => podLabels[key] === value\n      );\n    });\n  });\n\n  return nakedPods;\n}\n\n// type guard to check if an application is a deployment, daemonset, statefulset or pod\nexport function applicationIsKind<T extends Application>(\n  appKind: 'Deployment' | 'DaemonSet' | 'StatefulSet' | 'Pod',\n  application?: Application\n): application is T {\n  return application?.kind === appKind;\n}\n\n// the application is external if it has no owner label\nexport function isExternalApplication(application: Application) {\n  return !application.metadata?.labels?.[appOwnerLabel];\n}\n\nfunction getDeploymentRunningPods(deployment: Deployment): number {\n  const availableReplicas = deployment.status?.availableReplicas ?? 0;\n  const totalReplicas = deployment.status?.replicas ?? 0;\n  const unavailableReplicas = deployment.status?.unavailableReplicas ?? 0;\n  return availableReplicas || totalReplicas - unavailableReplicas;\n}\n\nfunction getDaemonSetRunningPods(daemonSet: DaemonSet): number {\n  const numberAvailable = daemonSet.status?.numberAvailable ?? 0;\n  const desiredNumberScheduled = daemonSet.status?.desiredNumberScheduled ?? 0;\n  const numberUnavailable = daemonSet.status?.numberUnavailable ?? 0;\n  return numberAvailable || desiredNumberScheduled - numberUnavailable;\n}\n\nfunction getStatefulSetRunningPods(statefulSet: StatefulSet): number {\n  return statefulSet.status?.readyReplicas ?? 0;\n}\n\nexport function getRunningPods(\n  application: Deployment | DaemonSet | StatefulSet\n): number {\n  switch (application.kind) {\n    case 'Deployment':\n      return getDeploymentRunningPods(application);\n    case 'DaemonSet':\n      return getDaemonSetRunningPods(application);\n    case 'StatefulSet':\n      return getStatefulSetRunningPods(application);\n    default:\n      throw new Error('Unknown application type');\n  }\n}\n\nexport function getTotalPods(\n  application: Deployment | DaemonSet | StatefulSet\n): number {\n  switch (application.kind) {\n    case 'Deployment':\n      return application.status?.replicas ?? 0;\n    case 'DaemonSet':\n      return application.status?.desiredNumberScheduled ?? 0;\n    case 'StatefulSet':\n      return application.status?.replicas ?? 0;\n    default:\n      throw new Error('Unknown application type');\n  }\n}\n\nfunction parseCpu(cpu: string) {\n  let res = parseInt(cpu, 10);\n  if (cpu.endsWith('m')) {\n    res /= 1000;\n  } else if (cpu.endsWith('n')) {\n    res /= 1000000000;\n  }\n  return res;\n}\n\n// bytesToReadableFormat converts bytes to a human readable string (e.g. '1.5 GB'), assuming base 10\n// there's some discussion about whether base 2 or base 10 should be used for memory units\n// https://www.quora.com/Is-1-GB-equal-to-1024-MB-or-1000-MB\nexport function bytesToReadableFormat(memoryBytes: number) {\n  const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n  let unitIndex = 0;\n  let memoryValue = memoryBytes;\n  while (memoryValue > 1000 && unitIndex < units.length) {\n    memoryValue /= 1000;\n    unitIndex++;\n  }\n  return `${memoryValue.toFixed(1)} ${units[unitIndex]}`;\n}\n\n// getResourceRequests returns the total cpu and memory requests for all containers in an application\nexport function getResourceRequests(application: Application) {\n  const appContainers = applicationIsKind<Pod>('Pod', application)\n    ? application.spec?.containers\n    : application.spec?.template.spec?.containers;\n\n  if (!appContainers) return null;\n\n  const requests = appContainers.reduce(\n    (acc, container) => {\n      const cpu = container.resources?.requests?.cpu;\n      const memory = container.resources?.requests?.memory;\n      if (cpu) acc.cpu += parseCpu(cpu);\n      if (memory) acc.memoryBytes += filesizeParser(memory, { base: 10 });\n      return acc;\n    },\n    { cpu: 0, memoryBytes: 0 }\n  );\n\n  return requests;\n}\n\n// getResourceLimits returns the total cpu and memory limits for all containers in an application\nexport function getResourceLimits(application: Application) {\n  const appContainers = applicationIsKind<Pod>('Pod', application)\n    ? application.spec?.containers\n    : application.spec?.template.spec?.containers;\n\n  if (!appContainers) return null;\n\n  const limits = appContainers.reduce(\n    (acc, container) => {\n      const cpu = container.resources?.limits?.cpu;\n      const memory = container.resources?.limits?.memory;\n      if (cpu) acc.cpu += parseCpu(cpu);\n      if (memory) acc.memory += filesizeParser(memory, { base: 10 });\n      return acc;\n    },\n    { cpu: 0, memory: 0 }\n  );\n\n  return limits;\n}\n\n// matchLabelsToLabelSelectorValue converts a map of labels to a label selector value that can be used in the\n// labelSelector param for the kube api to filter kube resources by labels\nexport function matchLabelsToLabelSelectorValue(obj?: Record<string, string>) {\n  if (!obj) return '';\n  return Object.entries(obj)\n    .map(([key, value]) => `${key}=${value}`)\n    .join(',');\n}\n\n// filterRevisionsByOwnerUid filters a list of revisions to only include revisions that have the given uid in their\n// ownerReferences\nexport function filterRevisionsByOwnerUid<T extends Revision>(\n  revisions: T[],\n  uid: string\n) {\n  return revisions.filter((revision) => {\n    const ownerReferencesUids =\n      revision.metadata?.ownerReferences?.map((or) => or.uid) || [];\n    return ownerReferencesUids.includes(uid);\n  });\n}\n\n// getRollbackPatchPayload returns the patch payload to rollback a deployment to the previous revision\n// the patch should be able to update the deployment's template to the previous revision's template\nexport function getRollbackPatchPayload(\n  application: Deployment | StatefulSet | DaemonSet,\n  revisionList: ReplicaSetList | ControllerRevisionList\n): ApplicationPatch {\n  switch (revisionList.kind) {\n    case 'ControllerRevisionList': {\n      const previousRevision = getPreviousControllerRevision(\n        revisionList.items\n      );\n      if (!previousRevision.data) {\n        throw new Error('No data found in the previous revision.');\n      }\n      // payload matches the strategic merge patch format for a StatefulSet and DaemonSet\n      return previousRevision.data;\n    }\n    case 'ReplicaSetList': {\n      const previousRevision = getPreviousReplicaSetRevision(\n        revisionList.items\n      );\n\n      // remove hash label before patching back into the deployment\n      const revisionTemplate = previousRevision.spec?.template;\n      if (revisionTemplate?.metadata?.labels) {\n        delete revisionTemplate.metadata.labels[defaultDeploymentUniqueLabel];\n      }\n\n      // build the patch payload for the deployment from the replica set\n      // keep the annotations to skip from the deployment, in the patch\n      const applicationAnnotations = application.metadata?.annotations || {};\n      const applicationAnnotationsInPatch =\n        unchangedAnnotationKeysForRollbackPatch.reduce(\n          (acc, annotationKey) => {\n            if (applicationAnnotations[annotationKey]) {\n              acc[annotationKey] = applicationAnnotations[annotationKey];\n            }\n            return acc;\n          },\n          {} as Record<string, string>\n        );\n\n      // add any annotations from the target revision that shouldn't be skipped\n      const revisionAnnotations = previousRevision.metadata?.annotations || {};\n      const revisionAnnotationsInPatch = Object.entries(\n        revisionAnnotations\n      ).reduce(\n        (acc, [annotationKey, annotationValue]) => {\n          if (\n            !unchangedAnnotationKeysForRollbackPatch.includes(annotationKey)\n          ) {\n            acc[annotationKey] = annotationValue;\n          }\n          return acc;\n        },\n        {} as Record<string, string>\n      );\n\n      const patchAnnotations = {\n        ...applicationAnnotationsInPatch,\n        ...revisionAnnotationsInPatch,\n      };\n\n      // Create a patch of the Deployment that replaces spec.template\n      const deploymentRollbackPatch = [\n        {\n          op: 'replace',\n          path: '/spec/template',\n          value: revisionTemplate,\n        },\n        {\n          op: 'replace',\n          path: '/metadata/annotations',\n          value: patchAnnotations,\n        },\n      ].filter((p) => !!p.value); // remove any patch that has no value\n      // payload matches the json patch format for a Deployment\n      return deploymentRollbackPatch;\n    }\n    default:\n      throw new Error(`Unknown revision list kind ${revisionList.kind}.`);\n  }\n}\n\nfunction getPreviousReplicaSetRevision(replicaSets: ReplicaSet[]) {\n  // sort replicaset(s) using the revision annotation number (old to new).\n  // Kubectl uses the same revision annotation key to determine the previous version\n  // (see the Revision function, and where it's used https://github.com/kubernetes/kubectl/blob/27ec3dafa658d8873b3d9287421d636048b51921/pkg/util/deployment/deployment.go#LL70C11-L70C11)\n  const sortedReplicaSets = replicaSets.sort((a, b) => {\n    const aRevision =\n      Number(a.metadata?.annotations?.[appRevisionAnnotation]) || 0;\n    const bRevision =\n      Number(b.metadata?.annotations?.[appRevisionAnnotation]) || 0;\n    return aRevision - bRevision;\n  });\n\n  // if there are less than 2 revisions, there is no previous revision to rollback to\n  if (sortedReplicaSets.length < 2) {\n    throw new Error(\n      'There are no previous revisions to rollback to. Please check the application revisions.'\n    );\n  }\n\n  // get the second to last revision\n  const previousRevision = sortedReplicaSets[sortedReplicaSets.length - 2];\n  return previousRevision;\n}\n\nfunction getPreviousControllerRevision(\n  controllerRevisions: ControllerRevision[]\n) {\n  // sort the list of ControllerRevisions by revision, using the creationTimestamp as a tie breaker (old to new)\n  const sortedControllerRevisions = controllerRevisions.sort((a, b) => {\n    if (a.revision === b.revision) {\n      return (\n        new Date(a.metadata?.creationTimestamp || '').getTime() -\n        new Date(b.metadata?.creationTimestamp || '').getTime()\n      );\n    }\n    return a.revision - b.revision;\n  });\n\n  // if there are less than 2 revisions, there is no previous revision to rollback to\n  if (sortedControllerRevisions.length < 2) {\n    throw new Error(\n      'There are no previous revisions to rollback to. Please check the application revisions.'\n    );\n  }\n\n  // get the second to last revision\n  const previousRevision =\n    sortedControllerRevisions[sortedControllerRevisions.length - 2];\n  return previousRevision;\n}\n","import { Pod, PodList } from 'kubernetes-types/core/v1';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\nimport { ApplicationPatch } from './types';\n\nexport async function getNamespacePods(\n  environmentId: EnvironmentId,\n  namespace: string,\n  labelSelector?: string\n) {\n  try {\n    const { data } = await axios.get<PodList>(\n      buildUrl(environmentId, namespace),\n      {\n        params: {\n          labelSelector,\n        },\n      }\n    );\n    const items = (data.items || []).map(\n      (pod) =>\n        <Pod>{\n          ...pod,\n          kind: 'Pod',\n          apiVersion: data.apiVersion,\n        }\n    );\n    return items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(\n      e,\n      `Unable to retrieve pods in namespace '${namespace}'`\n    );\n  }\n}\n\nexport async function getPod<T extends Pod | string = Pod>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string,\n  yaml?: boolean\n) {\n  try {\n    const { data } = await axios.get<T>(\n      buildUrl(environmentId, namespace, name),\n      {\n        headers: { Accept: yaml ? 'application/yaml' : 'application/json' },\n      }\n    );\n    return data;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve pod');\n  }\n}\n\nexport async function patchPod(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string,\n  patch: ApplicationPatch\n) {\n  try {\n    return await axios.patch<Pod>(\n      buildUrl(environmentId, namespace, name),\n      patch,\n      {\n        headers: {\n          'Content-Type': 'application/json-patch+json',\n        },\n      }\n    );\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to update pod');\n  }\n}\n\nexport async function deletePod(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string\n) {\n  try {\n    return await axios.delete<Pod>(buildUrl(environmentId, namespace, name));\n  } catch (e) {\n    throw parseKubernetesAxiosError(e as Error, 'Unable to delete pod');\n  }\n}\n\nexport function buildUrl(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name?: string\n) {\n  let baseUrl = `/endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespace}/pods`;\n  if (name) {\n    baseUrl += `/${name}`;\n  }\n  return baseUrl;\n}\n","import {\n  DaemonSetList,\n  StatefulSetList,\n  DeploymentList,\n  Deployment,\n  DaemonSet,\n  StatefulSet,\n  ReplicaSetList,\n  ControllerRevisionList,\n} from 'kubernetes-types/apps/v1';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { isFulfilled } from '@/portainer/helpers/promise-utils';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\nimport { getPod, getNamespacePods, patchPod } from './pod.service';\nimport { filterRevisionsByOwnerUid, getNakedPods } from './utils';\nimport {\n  AppKind,\n  Application,\n  ApplicationList,\n  ApplicationPatch,\n} from './types';\nimport { appRevisionAnnotation } from './constants';\n\n// This file contains services for Kubernetes apps/v1 resources (Deployments, DaemonSets, StatefulSets)\n\nexport async function getApplicationsForCluster(\n  environmentId: EnvironmentId,\n  namespaceNames?: string[]\n) {\n  if (!namespaceNames) {\n    return [];\n  }\n  const applications = await Promise.all(\n    namespaceNames.map((namespace) =>\n      getApplicationsForNamespace(environmentId, namespace)\n    )\n  );\n  return applications.flat();\n}\n\n// get a list of all Deployments, DaemonSets, StatefulSets and naked pods (https://portainer.atlassian.net/browse/CE-2) in one namespace\nasync function getApplicationsForNamespace(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  const [deployments, daemonSets, statefulSets, pods] = await Promise.all([\n    getApplicationsByKind<DeploymentList>(\n      environmentId,\n      namespace,\n      'Deployment'\n    ),\n    getApplicationsByKind<DaemonSetList>(environmentId, namespace, 'DaemonSet'),\n    getApplicationsByKind<StatefulSetList>(\n      environmentId,\n      namespace,\n      'StatefulSet'\n    ),\n    getNamespacePods(environmentId, namespace),\n  ]);\n  // find all pods which are 'naked' (not owned by a deployment, daemonset or statefulset)\n  const nakedPods = getNakedPods(pods, deployments, daemonSets, statefulSets);\n  return [...deployments, ...daemonSets, ...statefulSets, ...nakedPods];\n}\n\n// if not known, get the type of an application (Deployment, DaemonSet, StatefulSet or naked pod) by name\nexport async function getApplication<\n  T extends Application | string = Application,\n>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string,\n  appKind?: AppKind,\n  yaml?: boolean\n) {\n  // if resourceType is known, get the application by type and name\n  if (appKind) {\n    switch (appKind) {\n      case 'Deployment':\n      case 'DaemonSet':\n      case 'StatefulSet':\n        return getApplicationByKind<T>(\n          environmentId,\n          namespace,\n          appKind,\n          name,\n          yaml\n        );\n      case 'Pod':\n        return getPod(environmentId, namespace, name, yaml);\n      default:\n        throw new Error('Unknown resource type');\n    }\n  }\n\n  // if resourceType is not known, get the application by name and return the first one that is fulfilled\n  const [deployment, daemonSet, statefulSet, pod] = await Promise.allSettled([\n    getApplicationByKind<Deployment>(\n      environmentId,\n      namespace,\n      'Deployment',\n      name,\n      yaml\n    ),\n    getApplicationByKind<DaemonSet>(\n      environmentId,\n      namespace,\n      'DaemonSet',\n      name,\n      yaml\n    ),\n    getApplicationByKind<StatefulSet>(\n      environmentId,\n      namespace,\n      'StatefulSet',\n      name,\n      yaml\n    ),\n    getPod(environmentId, namespace, name, yaml),\n  ]);\n\n  if (isFulfilled(deployment)) {\n    return deployment.value;\n  }\n  if (isFulfilled(daemonSet)) {\n    return daemonSet.value;\n  }\n  if (isFulfilled(statefulSet)) {\n    return statefulSet.value;\n  }\n  if (isFulfilled(pod)) {\n    return pod.value;\n  }\n  throw new Error('Unable to retrieve application');\n}\n\nexport async function patchApplication(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appKind: AppKind,\n  name: string,\n  patch: ApplicationPatch,\n  contentType: string = 'application/json-patch+json'\n) {\n  switch (appKind) {\n    case 'Deployment':\n      return patchApplicationByKind<Deployment>(\n        environmentId,\n        namespace,\n        appKind,\n        name,\n        patch,\n        contentType\n      );\n    case 'DaemonSet':\n      return patchApplicationByKind<DaemonSet>(\n        environmentId,\n        namespace,\n        appKind,\n        name,\n        patch,\n        contentType\n      );\n    case 'StatefulSet':\n      return patchApplicationByKind<StatefulSet>(\n        environmentId,\n        namespace,\n        appKind,\n        name,\n        patch,\n        contentType\n      );\n    case 'Pod':\n      return patchPod(environmentId, namespace, name, patch);\n    default:\n      throw new Error(`Unknown application kind ${appKind}`);\n  }\n}\n\nasync function patchApplicationByKind<T extends Application>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appKind: 'Deployment' | 'DaemonSet' | 'StatefulSet',\n  name: string,\n  patch: ApplicationPatch,\n  contentType = 'application/json-patch+json'\n) {\n  try {\n    const res = await axios.patch<T>(\n      buildUrl(environmentId, namespace, `${appKind}s`, name),\n      patch,\n      {\n        headers: {\n          'Content-Type': contentType,\n        },\n      }\n    );\n    return res;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to patch application');\n  }\n}\n\nasync function getApplicationByKind<\n  T extends Application | string = Application,\n>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appKind: 'Deployment' | 'DaemonSet' | 'StatefulSet',\n  name: string,\n  yaml?: boolean\n) {\n  try {\n    const { data } = await axios.get<T>(\n      buildUrl(environmentId, namespace, `${appKind}s`, name),\n      {\n        headers: { Accept: yaml ? 'application/yaml' : 'application/json' },\n        // this logic is to get the latest YAML response\n        // axios-cache-adapter looks for the response headers to determine if the response should be cached\n        // to avoid writing requestInterceptor, adding a query param to the request url\n        params: yaml\n          ? {\n              _: Date.now(),\n            }\n          : null,\n      }\n    );\n    return data;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve application');\n  }\n}\n\nasync function getApplicationsByKind<T extends ApplicationList>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appKind: 'Deployment' | 'DaemonSet' | 'StatefulSet'\n) {\n  try {\n    const { data } = await axios.get<T>(\n      buildUrl(environmentId, namespace, `${appKind}s`)\n    );\n    const items = (data.items || []).map((app) => ({\n      ...app,\n      kind: appKind,\n      apiVersion: data.apiVersion,\n    }));\n    return items as T['items'];\n  } catch (e) {\n    throw parseKubernetesAxiosError(\n      e,\n      `Unable to retrieve ${appKind}s in namespace '${namespace}'`\n    );\n  }\n}\n\nexport async function getApplicationRevisionList(\n  environmentId: EnvironmentId,\n  namespace: string,\n  deploymentUid?: string,\n  appKind?: AppKind,\n  labelSelector?: string\n) {\n  if (!deploymentUid) {\n    throw new Error('deploymentUid is required');\n  }\n  try {\n    switch (appKind) {\n      case 'Deployment': {\n        const replicaSetList = await getReplicaSetList(\n          environmentId,\n          namespace,\n          labelSelector\n        );\n        const replicaSets = replicaSetList.items;\n        // keep only replicaset(s) which are owned by the deployment with the given uid\n        const replicaSetsWithOwnerId = filterRevisionsByOwnerUid(\n          replicaSets,\n          deploymentUid\n        );\n        // keep only replicaset(s) that have been a version of the Deployment\n        const replicaSetsWithRevisionAnnotations =\n          replicaSetsWithOwnerId.filter(\n            (rs) => !!rs.metadata?.annotations?.[appRevisionAnnotation]\n          );\n\n        return {\n          ...replicaSetList,\n          items: replicaSetsWithRevisionAnnotations,\n        } as ReplicaSetList;\n      }\n      case 'DaemonSet':\n      case 'StatefulSet': {\n        const controllerRevisionList = await getControllerRevisionList(\n          environmentId,\n          namespace,\n          labelSelector\n        );\n        const controllerRevisions = controllerRevisionList.items;\n        // ensure the controller reference(s) is owned by the deployment with the given uid\n        const controllerRevisionsWithOwnerId = filterRevisionsByOwnerUid(\n          controllerRevisions,\n          deploymentUid\n        );\n\n        return {\n          ...controllerRevisionList,\n          items: controllerRevisionsWithOwnerId,\n        } as ControllerRevisionList;\n      }\n      default:\n        throw new Error(`Unknown application kind ${appKind}`);\n    }\n  } catch (e) {\n    throw parseAxiosError(\n      e as Error,\n      `Unable to retrieve revisions for ${appKind}`\n    );\n  }\n}\n\nexport async function getReplicaSetList(\n  environmentId: EnvironmentId,\n  namespace: string,\n  labelSelector?: string\n) {\n  try {\n    const { data } = await axios.get<ReplicaSetList>(\n      buildUrl(environmentId, namespace, 'ReplicaSets'),\n      {\n        params: {\n          labelSelector,\n        },\n      }\n    );\n    return data;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve ReplicaSets');\n  }\n}\n\nexport async function getControllerRevisionList(\n  environmentId: EnvironmentId,\n  namespace: string,\n  labelSelector?: string\n) {\n  try {\n    const { data } = await axios.get<ControllerRevisionList>(\n      buildUrl(environmentId, namespace, 'ControllerRevisions'),\n      {\n        params: {\n          labelSelector,\n        },\n      }\n    );\n    return data;\n  } catch (e) {\n    throw parseKubernetesAxiosError(\n      e,\n      'Unable to retrieve ControllerRevisions'\n    );\n  }\n}\n\nfunction buildUrl(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appKind:\n    | 'Deployments'\n    | 'DaemonSets'\n    | 'StatefulSets'\n    | 'ReplicaSets'\n    | 'ControllerRevisions',\n  name?: string\n) {\n  let baseUrl = `/endpoints/${environmentId}/kubernetes/apis/apps/v1/namespaces/${namespace}/${appKind.toLowerCase()}`;\n  if (name) {\n    baseUrl += `/${name}`;\n  }\n  return baseUrl;\n}\n","import {\n  HorizontalPodAutoscaler,\n  HorizontalPodAutoscalerList,\n} from 'kubernetes-types/autoscaling/v1';\nimport { useQuery } from 'react-query';\n\nimport axios from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\n// when yaml is set to true, the expected return type is a string\nexport function useHorizontalAutoScalarQuery<\n  T extends HorizontalPodAutoscaler | string = HorizontalPodAutoscaler,\n>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name?: string,\n  options?: { yaml?: boolean }\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'kubernetes',\n      'namespaces',\n      namespace,\n      'horizontalpodautoscalers',\n      name,\n      options?.yaml,\n    ],\n    () =>\n      name\n        ? getNamespaceHorizontalPodAutoscaler<T>(\n            environmentId,\n            namespace,\n            name,\n            options\n          )\n        : undefined,\n    { ...withError('Unable to get horizontal pod autoscaler'), enabled: !!name }\n  );\n}\n\nexport async function getNamespaceHorizontalPodAutoscalers(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  try {\n    const { data: autoScalarList } =\n      await axios.get<HorizontalPodAutoscalerList>(\n        `/endpoints/${environmentId}/kubernetes/apis/autoscaling/v1/namespaces/${namespace}/horizontalpodautoscalers`\n      );\n    return autoScalarList.items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(\n      e,\n      'Unable to retrieve horizontal pod autoscalers'\n    );\n  }\n}\n\nexport async function getNamespaceHorizontalPodAutoscaler<\n  T extends HorizontalPodAutoscaler | string = HorizontalPodAutoscaler,\n>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string,\n  options?: { yaml?: boolean }\n) {\n  try {\n    const { data: autoScalar } = await axios.get<T>(\n      `/endpoints/${environmentId}/kubernetes/apis/autoscaling/v1/namespaces/${namespace}/horizontalpodautoscalers/${name}`,\n      {\n        headers: {\n          Accept: options?.yaml ? 'application/yaml' : 'application/json',\n        },\n      }\n    );\n    return autoScalar;\n  } catch (e) {\n    throw parseKubernetesAxiosError(\n      e,\n      'Unable to retrieve horizontal pod autoscaler'\n    );\n  }\n}\n","import { UseQueryResult, useMutation, useQuery } from 'react-query';\nimport { Pod } from 'kubernetes-types/core/v1';\n\nimport { queryClient, withError } from '@/react-tools/react-query';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { getNamespaceServices } from '../services/service';\n\nimport {\n  getApplicationsForCluster,\n  getApplication,\n  patchApplication,\n  getApplicationRevisionList,\n} from './application.service';\nimport type { AppKind, Application, ApplicationPatch } from './types';\nimport { deletePod, getNamespacePods } from './pod.service';\nimport { getNamespaceHorizontalPodAutoscalers } from './autoscaling.service';\nimport { applicationIsKind, matchLabelsToLabelSelectorValue } from './utils';\n\nconst queryKeys = {\n  applicationsForCluster: (environmentId: EnvironmentId) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'applications',\n  ],\n  application: (\n    environmentId: EnvironmentId,\n    namespace: string,\n    name: string,\n    yaml?: boolean\n  ) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'applications',\n    namespace,\n    name,\n    yaml,\n  ],\n  applicationRevisions: (\n    environmentId: EnvironmentId,\n    namespace: string,\n    name: string,\n    labelSelector?: string\n  ) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'applications',\n    namespace,\n    name,\n    'revisions',\n    labelSelector,\n  ],\n  applicationServices: (\n    environmentId: EnvironmentId,\n    namespace: string,\n    name: string\n  ) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'applications',\n    namespace,\n    name,\n    'services',\n  ],\n  ingressesForApplication: (\n    environmentId: EnvironmentId,\n    namespace: string,\n    name: string\n  ) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'applications',\n    namespace,\n    name,\n    'ingresses',\n  ],\n  applicationHorizontalPodAutoscalers: (\n    environmentId: EnvironmentId,\n    namespace: string,\n    name: string\n  ) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'applications',\n    namespace,\n    name,\n    'horizontalpodautoscalers',\n  ],\n  applicationPods: (\n    environmentId: EnvironmentId,\n    namespace: string,\n    name: string\n  ) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'applications',\n    namespace,\n    name,\n    'pods',\n  ],\n};\n\n// useQuery to get a list of all applications from an array of namespaces\nexport function useApplicationsQuery(\n  environemtId: EnvironmentId,\n  namespaces?: string[]\n) {\n  return useQuery(\n    queryKeys.applicationsForCluster(environemtId),\n    () => getApplicationsForCluster(environemtId, namespaces),\n    {\n      ...withError('Unable to retrieve applications'),\n      enabled: !!namespaces?.length,\n    }\n  );\n}\n\n// when yaml is set to true, the expected return type is a string\nexport function useApplication<T extends Application | string = Application>(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string,\n  appKind?: AppKind,\n  options?: { autoRefreshRate?: number; yaml?: boolean }\n): UseQueryResult<T> {\n  return useQuery(\n    queryKeys.application(environmentId, namespace, name, options?.yaml),\n    () =>\n      getApplication<T>(environmentId, namespace, name, appKind, options?.yaml),\n    {\n      ...withError('Unable to retrieve application'),\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n\n// test if I can get the previous revision\n// useQuery to get an application's previous revision by environmentId, namespace, appKind and labelSelector\nexport function useApplicationRevisionList(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string,\n  deploymentUid?: string,\n  labelSelector?: string,\n  appKind?: AppKind\n) {\n  return useQuery(\n    queryKeys.applicationRevisions(\n      environmentId,\n      namespace,\n      name,\n      labelSelector\n    ),\n    () =>\n      getApplicationRevisionList(\n        environmentId,\n        namespace,\n        deploymentUid,\n        appKind,\n        labelSelector\n      ),\n    {\n      ...withError('Unable to retrieve application revisions'),\n      enabled: !!labelSelector && !!appKind && !!deploymentUid,\n    }\n  );\n}\n\n// useApplicationServices returns a query for services that are related to the application (this doesn't include ingresses)\n// Filtering the services by the application selector labels is done in the front end because:\n// - The label selector query param in the kubernetes API filters by metadata.labels, but we need to filter the services by spec.selector\n// - The field selector query param in the kubernetes API can filter the services by spec.selector, but it doesn't support chaining with 'OR',\n//   so we can't filter by services with at least one matching label. See: https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/#chained-selectors\nexport function useApplicationServices(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appName: string,\n  app?: Application\n) {\n  return useQuery(\n    queryKeys.applicationServices(environmentId, namespace, appName),\n    async () => {\n      if (!app) {\n        return [];\n      }\n\n      // get the selector labels for the application\n      const appSelectorLabels = applicationIsKind<Pod>('Pod', app)\n        ? app.metadata?.labels\n        : app.spec?.template?.metadata?.labels;\n\n      // get all services in the namespace and filter them by the application selector labels\n      const services = await getNamespaceServices(environmentId, namespace);\n      const filteredServices = services.filter((service) => {\n        if (service.spec?.selector && appSelectorLabels) {\n          const serviceSelectorLabels = service.spec.selector;\n          // include the service if the service selector label matches at least one application selector label\n          return Object.keys(appSelectorLabels).some(\n            (key) =>\n              serviceSelectorLabels[key] &&\n              serviceSelectorLabels[key] === appSelectorLabels[key]\n          );\n        }\n        return false;\n      });\n      return filteredServices;\n    },\n    { ...withError(`Unable to get services for ${appName}`), enabled: !!app }\n  );\n}\n\n// useApplicationHorizontalPodAutoscalers returns a query for horizontal pod autoscalers that are related to the application\nexport function useApplicationHorizontalPodAutoscaler(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appName: string,\n  app?: Application\n) {\n  return useQuery(\n    queryKeys.applicationHorizontalPodAutoscalers(\n      environmentId,\n      namespace,\n      appName\n    ),\n    async () => {\n      if (!app) {\n        return null;\n      }\n\n      const horizontalPodAutoscalers =\n        await getNamespaceHorizontalPodAutoscalers(environmentId, namespace);\n      const matchingHorizontalPodAutoscaler =\n        horizontalPodAutoscalers.find((horizontalPodAutoscaler) => {\n          const scaleTargetRef = horizontalPodAutoscaler.spec?.scaleTargetRef;\n          if (scaleTargetRef) {\n            const scaleTargetRefName = scaleTargetRef.name;\n            const scaleTargetRefKind = scaleTargetRef.kind;\n            // include the horizontal pod autoscaler if the scale target ref name and kind match the application name and kind\n            return (\n              scaleTargetRefName === app.metadata?.name &&\n              scaleTargetRefKind === app.kind\n            );\n          }\n          return false;\n        }) || null;\n      return matchingHorizontalPodAutoscaler;\n    },\n    {\n      ...withError(\n        `Unable to get horizontal pod autoscaler${\n          app ? ` for ${app.metadata?.name}` : ''\n        }`\n      ),\n      enabled: !!app,\n    }\n  );\n}\n\n// useApplicationPods returns a query for pods that are related to the application by the application selector labels\nexport function useApplicationPods(\n  environmentId: EnvironmentId,\n  namespace: string,\n  appName: string,\n  app?: Application,\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    queryKeys.applicationPods(environmentId, namespace, appName),\n    async () => {\n      if (applicationIsKind<Pod>('Pod', app)) {\n        return [app];\n      }\n      const appSelector = app?.spec?.selector;\n      const labelSelector = matchLabelsToLabelSelectorValue(\n        appSelector?.matchLabels\n      );\n\n      // get all pods in the namespace using the application selector as the label selector query param\n      const pods = await getNamespacePods(\n        environmentId,\n        namespace,\n        labelSelector\n      );\n      return pods;\n    },\n    {\n      ...withError(`Unable to get pods for ${appName}`),\n      enabled: !!app,\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n\n// useQuery to patch an application by environmentId, namespace, name and patch payload\nexport function usePatchApplicationMutation(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string\n) {\n  return useMutation(\n    ({\n      appKind,\n      patch,\n      contentType = 'application/json-patch+json',\n    }: {\n      appKind: AppKind;\n      patch: ApplicationPatch;\n      contentType?:\n        | 'application/json-patch+json'\n        | 'application/strategic-merge-patch+json';\n    }) =>\n      patchApplication(\n        environmentId,\n        namespace,\n        appKind,\n        name,\n        patch,\n        contentType\n      ),\n    {\n      onSuccess: () => {\n        queryClient.invalidateQueries(\n          queryKeys.application(environmentId, namespace, name)\n        );\n      },\n      // patch application is used for patching and rollbacks, so handle the error where it's used instead of here\n    }\n  );\n}\n\n// useRedeployApplicationMutation gets all the pods for an application (using the matchLabels field in the labelSelector query param) and then deletes all of them, so that they are recreated\nexport function useRedeployApplicationMutation(\n  environmentId: number,\n  namespace: string,\n  name: string\n) {\n  return useMutation(\n    async ({ labelSelector }: { labelSelector: string }) => {\n      try {\n        // get only the pods that match the labelSelector for the application\n        const pods = await getNamespacePods(\n          environmentId,\n          namespace,\n          labelSelector\n        );\n        // delete all the pods to redeploy the application\n        await Promise.all(\n          pods.map((pod) => {\n            if (pod?.metadata?.name) {\n              return deletePod(environmentId, namespace, pod.metadata.name);\n            }\n            return Promise.resolve();\n          })\n        );\n      } catch (error) {\n        throw new Error(`Unable to redeploy application: ${error}`);\n      }\n    },\n    {\n      onSuccess: () => {\n        queryClient.invalidateQueries(\n          queryKeys.application(environmentId, namespace, name)\n        );\n      },\n      ...withError('Unable to redeploy application'),\n    }\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { notifyError } from '@/portainer/services/notifications';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { DefaultOrSystemNamespace } from '../types';\n\nexport function useNamespaceQuery(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  return useQuery(\n    ['environments', environmentId, 'kubernetes', 'namespaces', namespace],\n    () => getNamespace(environmentId, namespace),\n    {\n      onError: (err) => {\n        notifyError('Failure', err as Error, 'Unable to get namespace.');\n      },\n    }\n  );\n}\n\n// getNamespace is used to retrieve a namespace using the Portainer backend\nexport async function getNamespace(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  try {\n    const { data: ns } = await axios.get<DefaultOrSystemNamespace>(\n      `kubernetes/${environmentId}/namespaces/${namespace}`\n    );\n    return ns;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve namespace');\n  }\n}\n","import { User, Clock, Info } from 'lucide-react';\nimport moment from 'moment';\nimport { useEffect, useState } from 'react';\nimport { Pod } from 'kubernetes-types/core/v1';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport { GlobalDeploymentOptions } from '@/react/portainer/settings/types';\n\nimport { DetailsTable } from '@@/DetailsTable';\nimport { Badge } from '@@/Badge';\nimport { Link } from '@@/Link';\nimport { LoadingButton } from '@@/buttons';\nimport { WidgetBody, Widget } from '@@/Widget';\nimport { InlineLoader } from '@@/InlineLoader';\nimport { Icon } from '@@/Icon';\nimport { Note } from '@@/Note';\n\nimport {\n  appStackNameLabel,\n  appKindToDeploymentTypeMap,\n  appOwnerLabel,\n  appDeployMethodLabel,\n  appNoteAnnotation,\n} from '../constants';\nimport {\n  applicationIsKind,\n  bytesToReadableFormat,\n  getResourceRequests,\n  getRunningPods,\n  getTotalPods,\n  isExternalApplication,\n} from '../utils';\nimport {\n  useApplication,\n  usePatchApplicationMutation,\n} from '../application.queries';\nimport { Application, ApplicationPatch } from '../types';\nimport { useNamespaceQuery } from '../../namespaces/queries/useNamespaceQuery';\n\nexport function ApplicationSummaryWidget() {\n  const stateAndParams = useCurrentStateAndParams();\n  const {\n    params: {\n      namespace,\n      name,\n      'resource-type': resourceType,\n      endpointId: environmentId,\n    },\n  } = stateAndParams;\n  const { data: application, ...applicationQuery } = useApplication(\n    environmentId,\n    namespace,\n    name,\n    resourceType\n  );\n  const namespaceData = useNamespaceQuery(environmentId, namespace);\n  const isSystemNamespace = namespaceData.data?.IsSystem;\n\n  const externalApplication = application && isExternalApplication(application);\n  const applicationRequests = application && getResourceRequests(application);\n  const applicationOwner = application?.metadata?.labels?.[appOwnerLabel];\n  const applicationDeployMethod = getApplicationDeployMethod(application);\n  const applicationNote =\n    application?.metadata?.annotations?.[appNoteAnnotation];\n\n  const [applicationNoteFormValues, setApplicationNoteFormValues] =\n    useState('');\n\n  useEffect(() => {\n    setApplicationNoteFormValues(applicationNote || '');\n  }, [applicationNote]);\n\n  const globalDeploymentOptionsQuery =\n    usePublicSettings<GlobalDeploymentOptions>({\n      select: (settings) => settings.GlobalDeploymentOptions,\n    });\n\n  const failedCreateCondition = application?.status?.conditions?.find(\n    (condition) => condition.reason === 'FailedCreate'\n  );\n  const patchApplicationMutation = usePatchApplicationMutation(\n    environmentId,\n    namespace,\n    name\n  );\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-sm-12\">\n        <Widget>\n          <WidgetBody>\n            {applicationQuery.isLoading && (\n              <InlineLoader>Loading application...</InlineLoader>\n            )}\n            {application && (\n              <>\n                {failedCreateCondition && (\n                  <div\n                    className=\"flex gap-1 items-start alert alert-danger mb-2\"\n                    data-cy=\"k8sAppDetail-failedCreateMessage\"\n                  >\n                    <div className=\"mt-0.5\">\n                      <Icon\n                        icon={Info}\n                        className=\"mr-1 shrink-0\"\n                        mode=\"danger\"\n                      />\n                    </div>\n                    <div>\n                      <div className=\"font-semibold\">\n                        Failed to create application\n                      </div>\n                      {failedCreateCondition.message}\n                    </div>\n                  </div>\n                )}\n                <DetailsTable>\n                  <tr>\n                    <td>Name</td>\n                    <td>\n                      <div\n                        className=\"flex items-center gap-x-2\"\n                        data-cy=\"k8sAppDetail-appName\"\n                      >\n                        {name}\n                        {externalApplication && !isSystemNamespace && (\n                          <Badge type=\"info\">external</Badge>\n                        )}\n                      </div>\n                    </td>\n                  </tr>\n                  {globalDeploymentOptionsQuery.data &&\n                    !globalDeploymentOptionsQuery.data\n                      .hideStacksFunctionality && (\n                      <tr>\n                        <td>Stack</td>\n                        <td data-cy=\"k8sAppDetail-stackName\">\n                          {application?.metadata?.labels?.[appStackNameLabel] ||\n                            '-'}\n                        </td>\n                      </tr>\n                    )}\n                  <tr>\n                    <td>Namespace</td>\n                    <td>\n                      <div\n                        className=\"flex items-center gap-x-2\"\n                        data-cy=\"k8sAppDetail-resourcePoolName\"\n                      >\n                        <Link\n                          to=\"kubernetes.resourcePools.resourcePool\"\n                          params={{ id: namespace }}\n                        >\n                          {namespace}\n                        </Link>\n                        {isSystemNamespace && <Badge type=\"info\">system</Badge>}\n                      </div>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>Application type</td>\n                    <td data-cy=\"k8sAppDetail-appType\">\n                      {application?.kind || '-'}\n                    </td>\n                  </tr>\n                  {application?.kind && (\n                    <tr>\n                      <td>Status</td>\n                      {applicationIsKind<Pod>('Pod', application) && (\n                        <td data-cy=\"k8sAppDetail-appType\">\n                          {application?.status?.phase}\n                        </td>\n                      )}\n                      {!applicationIsKind<Pod>('Pod', application) && (\n                        <td data-cy=\"k8sAppDetail-appType\">\n                          {appKindToDeploymentTypeMap[application.kind]}\n                          <code className=\"ml-1\">\n                            {getRunningPods(application)}\n                          </code>{' '}\n                          / <code>{getTotalPods(application)}</code>\n                        </td>\n                      )}\n                    </tr>\n                  )}\n                  {(!!applicationRequests?.cpu ||\n                    !!applicationRequests?.memoryBytes) && (\n                    <tr>\n                      <td>\n                        Resource reservations\n                        {!applicationIsKind<Pod>('Pod', application) && (\n                          <div className=\"text-muted small\">per instance</div>\n                        )}\n                      </td>\n                      <td>\n                        {!!applicationRequests?.cpu && (\n                          <div data-cy=\"k8sAppDetail-cpuReservation\">\n                            CPU {applicationRequests.cpu}\n                          </div>\n                        )}\n                        {!!applicationRequests?.memoryBytes && (\n                          <div data-cy=\"k8sAppDetail-memoryReservation\">\n                            Memory{' '}\n                            {bytesToReadableFormat(\n                              applicationRequests.memoryBytes\n                            )}\n                          </div>\n                        )}\n                      </td>\n                    </tr>\n                  )}\n                  <tr>\n                    <td>Creation</td>\n                    <td>\n                      <div className=\"flex flex-wrap items-center gap-3\">\n                        {applicationOwner && (\n                          <span\n                            className=\"flex items-center gap-1\"\n                            data-cy=\"k8sAppDetail-owner\"\n                          >\n                            <User />\n                            {applicationOwner}\n                          </span>\n                        )}\n                        <span\n                          className=\"flex items-center gap-1\"\n                          data-cy=\"k8sAppDetail-creationDate\"\n                        >\n                          <Clock />\n                          {moment(\n                            application?.metadata?.creationTimestamp\n                          ).format('YYYY-MM-DD HH:mm:ss')}\n                        </span>\n                        {(!externalApplication || isSystemNamespace) && (\n                          <span\n                            className=\"flex items-center gap-1\"\n                            data-cy=\"k8sAppDetail-creationMethod\"\n                          >\n                            <Clock />\n                            Deployed from {applicationDeployMethod}\n                          </span>\n                        )}\n                      </div>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td colSpan={2}>\n                      <form className=\"form-horizontal\">\n                        <Note\n                          value={applicationNoteFormValues}\n                          onChange={setApplicationNoteFormValues}\n                          defaultIsOpen\n                          isExpandable\n                        />\n                        <Authorized authorizations=\"K8sApplicationDetailsW\">\n                          <div className=\"form-group\">\n                            <div className=\"col-sm-12\">\n                              <LoadingButton\n                                color=\"primary\"\n                                size=\"small\"\n                                className=\"!ml-0\"\n                                type=\"button\"\n                                onClick={() => patchApplicationNote()}\n                                disabled={\n                                  // disable if there is no change to the note, or it's updating\n                                  applicationNoteFormValues ===\n                                    (applicationNote || '') ||\n                                  patchApplicationMutation.isLoading\n                                }\n                                data-cy=\"k8sAppDetail-saveNoteButton\"\n                                isLoading={patchApplicationMutation.isLoading}\n                                loadingText={\n                                  applicationNote ? 'Updating' : 'Saving'\n                                }\n                              >\n                                {applicationNote ? 'Update' : 'Save'} note\n                              </LoadingButton>\n                            </div>\n                          </div>\n                        </Authorized>\n                      </form>\n                    </td>\n                  </tr>\n                </DetailsTable>\n              </>\n            )}\n          </WidgetBody>\n        </Widget>\n      </div>\n    </div>\n  );\n\n  async function patchApplicationNote() {\n    const patch: ApplicationPatch = [\n      {\n        op: 'replace',\n        path: `/metadata/annotations/${appNoteAnnotation}`,\n        value: applicationNoteFormValues,\n      },\n    ];\n    if (application?.kind) {\n      try {\n        await patchApplicationMutation.mutateAsync({\n          appKind: application.kind,\n          patch,\n        });\n        notifySuccess('Success', 'Application successfully updated');\n      } catch (error) {\n        notifyError(\n          `Failed to ${applicationNote ? 'update' : 'save'} note`,\n          error as Error\n        );\n      }\n    }\n  }\n}\n\nfunction getApplicationDeployMethod(application?: Application) {\n  if (!application?.metadata?.labels?.[appDeployMethodLabel])\n    return 'application form';\n  if (application?.metadata?.labels?.[appDeployMethodLabel] === 'content') {\n    return 'manifest';\n  }\n  return application?.metadata?.labels?.[appDeployMethodLabel];\n}\n","import { useQuery } from 'react-query';\n\nimport axios from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { StackFile, StackId } from './types';\n\nconst queryKeys = {\n  stackFile: (stackId?: StackId) => ['stacks', stackId, 'file'],\n};\n\nexport function useStackFile(stackId?: StackId) {\n  return useQuery(queryKeys.stackFile(stackId), () => getStackFile(stackId), {\n    ...withError('Unable to retrieve stack'),\n    enabled: !!stackId,\n  });\n}\n\nasync function getStackFile(stackId?: StackId) {\n  if (!stackId) {\n    return Promise.resolve(undefined);\n  }\n  const { data } = await axios.get<StackFile>(`/stacks/${stackId}/file`);\n  return data;\n}\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { BETeaserButton } from '@@/BETeaserButton';\n\nexport function RestartApplicationButton() {\n  return (\n    <BETeaserButton\n      buttonClassName=\"!ml-0\"\n      data-cy=\"k8sAppDetail-restartButton\"\n      heading=\"Rolling restart\"\n      featureId={FeatureId.K8S_ROLLING_RESTART}\n      message=\"A rolling restart of the application is performed.\"\n      buttonText=\"Rolling restart\"\n    />\n  );\n}\n","import { RotateCw } from 'lucide-react';\nimport { Pod } from 'kubernetes-types/core/v1';\nimport { useRouter } from '@uirouter/react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { notifySuccess, notifyError } from '@/portainer/services/notifications';\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { confirm } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\n\nimport { useRedeployApplicationMutation } from '../../application.queries';\nimport { Application } from '../../types';\nimport {\n  applicationIsKind,\n  matchLabelsToLabelSelectorValue,\n} from '../../utils';\n\ntype Props = {\n  environmentId: EnvironmentId;\n  namespace: string;\n  appName: string;\n  app?: Application;\n};\n\nexport function RedeployApplicationButton({\n  environmentId,\n  namespace,\n  appName,\n  app,\n}: Props) {\n  const router = useRouter();\n  const redeployAppMutation = useRedeployApplicationMutation(\n    environmentId,\n    namespace,\n    appName\n  );\n\n  return (\n    <Authorized authorizations=\"K8sPodDelete\">\n      <Button\n        type=\"button\"\n        size=\"small\"\n        color=\"light\"\n        className=\"!ml-0\"\n        disabled={redeployAppMutation.isLoading || !app}\n        onClick={() => redeployApplication()}\n        data-cy=\"k8sAppDetail-redeployButton\"\n      >\n        <Icon icon={RotateCw} className=\"mr-1\" />\n        Redeploy\n      </Button>\n    </Authorized>\n  );\n\n  async function redeployApplication() {\n    // validate\n    if (!app || applicationIsKind<Pod>('Pod', app)) {\n      return;\n    }\n    try {\n      if (!app?.spec?.selector?.matchLabels) {\n        throw new Error(\n          `Application has no 'matchLabels' selector to redeploy pods.`\n        );\n      }\n    } catch (error) {\n      notifyError('Failure', error as Error);\n      return;\n    }\n\n    // confirm the action\n    const confirmed = await confirm({\n      title: 'Are you sure?',\n      modalType: ModalType.Warn,\n      confirmButton: buildConfirmButton('Redeploy'),\n      message:\n        'Redeploying terminates and restarts the application, which will cause service interruption. Do you wish to continue?',\n    });\n    if (!confirmed) {\n      return;\n    }\n\n    // using the matchlabels object, delete the associated pods with redeployAppMutation\n    const labelSelector = matchLabelsToLabelSelectorValue(\n      app?.spec?.selector?.matchLabels\n    );\n    redeployAppMutation.mutateAsync(\n      { labelSelector },\n      {\n        onSuccess: () => {\n          notifySuccess('Success', 'Application successfully redeployed');\n          router.stateService.reload();\n        },\n      }\n    );\n  }\n}\n","import { Pod } from 'kubernetes-types/core/v1';\nimport { RotateCcw } from 'lucide-react';\nimport { useRouter } from '@uirouter/react';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { notifySuccess, notifyError } from '@/portainer/services/notifications';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\nimport { confirm } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nimport {\n  useApplicationRevisionList,\n  usePatchApplicationMutation,\n} from '../../application.queries';\nimport {\n  applicationIsKind,\n  getRollbackPatchPayload,\n  matchLabelsToLabelSelectorValue,\n} from '../../utils';\nimport { Application } from '../../types';\nimport { appDeployMethodLabel } from '../../constants';\n\ntype Props = {\n  environmentId: EnvironmentId;\n  namespace: string;\n  appName: string;\n  app?: Application;\n};\n\nexport function RollbackApplicationButton({\n  environmentId,\n  namespace,\n  appName,\n  app,\n}: Props) {\n  const router = useRouter();\n  const labelSelector = applicationIsKind<Pod>('Pod', app)\n    ? ''\n    : matchLabelsToLabelSelectorValue(app?.spec?.selector?.matchLabels);\n  const appRevisionListQuery = useApplicationRevisionList(\n    environmentId,\n    namespace,\n    appName,\n    app?.metadata?.uid,\n    labelSelector,\n    app?.kind\n  );\n  const appRevisionList = appRevisionListQuery.data;\n  const appRevisions = appRevisionList?.items;\n  const appDeployMethod =\n    app?.metadata?.labels?.[appDeployMethodLabel] || 'application form';\n\n  const patchAppMutation = usePatchApplicationMutation(\n    environmentId,\n    namespace,\n    appName\n  );\n\n  const isRollbackNotAvailable =\n    !app ||\n    !appRevisions ||\n    appRevisions?.length < 2 ||\n    appDeployMethod !== 'application form' ||\n    patchAppMutation.isLoading;\n\n  const rollbackButton = (\n    <Button\n      ng-if=\"!ctrl.isExternalApplication()\"\n      type=\"button\"\n      color=\"light\"\n      size=\"small\"\n      className=\"!ml-0\"\n      disabled={isRollbackNotAvailable}\n      onClick={() => rollbackApplication()}\n      data-cy=\"k8sAppDetail-rollbackButton\"\n    >\n      <Icon icon={RotateCcw} className=\"mr-1\" />\n      Rollback to previous configuration\n    </Button>\n  );\n\n  return (\n    <Authorized authorizations=\"K8sApplicationDetailsW\">\n      <div className=\"flex gap-x-2\">\n        {isRollbackNotAvailable ? (\n          <TooltipWithChildren message=\"Cannot roll back to previous configuration as none currently exists\">\n            <span>{rollbackButton}</span>\n          </TooltipWithChildren>\n        ) : (\n          rollbackButton\n        )}\n        <Tooltip message=\"Only one level of rollback is available, i.e. if you roll back from v2 to v1, and then roll back again, you will end up back at v2. Note that service changes and autoscaler rule changes are not included in rollback functionality. This is how Kubernetes works natively.\" />\n      </div>\n    </Authorized>\n  );\n\n  async function rollbackApplication() {\n    // exit early if the application is a pod or there are no revisions\n    if (\n      !app?.kind ||\n      applicationIsKind<Pod>('Pod', app) ||\n      !appRevisionList?.items?.length\n    ) {\n      return;\n    }\n\n    // confirm the action\n    const confirmed = await confirm({\n      title: 'Are you sure?',\n      modalType: ModalType.Warn,\n      confirmButton: buildConfirmButton('Rollback'),\n      message:\n        'Rolling back the application to a previous configuration may cause service interruption. Do you wish to continue?',\n    });\n    if (!confirmed) {\n      return;\n    }\n\n    try {\n      const patch = getRollbackPatchPayload(app, appRevisionList);\n      patchAppMutation.mutateAsync(\n        {\n          appKind: app.kind,\n          patch,\n          contentType:\n            app.kind === 'Deployment'\n              ? 'application/json-patch+json'\n              : 'application/strategic-merge-patch+json',\n        },\n        {\n          onSuccess: () => {\n            notifySuccess('Success', 'Application successfully rolled back');\n            router.stateService.reload();\n          },\n          onError: (error) =>\n            notifyError(\n              'Failure',\n              error as Error,\n              'Unable to rollback the application'\n            ),\n        }\n      );\n    } catch (error) {\n      notifyError('Failure', error as Error);\n    }\n  }\n}\n","import { Service } from 'kubernetes-types/core/v1';\nimport { ExternalLink } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\n\nimport { Icon } from '@@/Icon';\nimport { TextTip } from '@@/Tip/TextTip';\n\ntype Props = {\n  environmentId: EnvironmentId;\n  appServices?: Service[];\n};\n\nexport function ApplicationServicesTable({\n  environmentId,\n  appServices,\n}: Props) {\n  const { data: environment } = useEnvironment(environmentId);\n  return (\n    <>\n      <div className=\"text-muted mb-4 flex items-center\">\n        <Icon icon={ExternalLink} className=\"!mr-2\" />\n        Accessing the application\n      </div>\n      {appServices && appServices.length === 0 && (\n        <TextTip color=\"blue\" className=\"mb-4\">\n          This application is not exposing any port.\n        </TextTip>\n      )}\n      {appServices && appServices.length > 0 && (\n        <>\n          <TextTip color=\"blue\" className=\"mb-4\">\n            This application is exposed through service(s) as below:\n          </TextTip>\n          <table className=\"table\">\n            <tbody>\n              <tr className=\"text-muted\">\n                <td className=\"w-[15%]\">Service name</td>\n                <td className=\"w-[10%]\">Type</td>\n                <td className=\"w-[10%]\">Cluster IP</td>\n                <td className=\"w-[10%]\">External IP</td>\n                <td className=\"w-[10%]\">Container port</td>\n                <td className=\"w-[15%]\">Service port(s)</td>\n              </tr>\n              {appServices.map((service) => (\n                <tr key={service.metadata?.name}>\n                  <td>{service.metadata?.name}</td>\n                  <td>{service.spec?.type}</td>\n                  <td>{service.spec?.clusterIP}</td>\n                  {service.spec?.type === 'LoadBalancer' && (\n                    <td>\n                      {service.status?.loadBalancer?.ingress?.[0] &&\n                        service.spec?.ports?.[0] && (\n                          <a\n                            className=\"vertical-center hyperlink\"\n                            target=\"_blank\"\n                            rel=\"noopener noreferrer\"\n                            href={`http://${service.status.loadBalancer.ingress[0].ip}:${service.spec.ports[0].port}`}\n                          >\n                            <Icon icon={ExternalLink} className=\"!mr-1\" />\n                            <span data-cy=\"k8sAppDetail-containerPort\">\n                              Access\n                            </span>\n                          </a>\n                        )}\n                      {!service.status?.loadBalancer?.ingress && (\n                        <div>\n                          {service.spec.externalIPs?.[0]\n                            ? service.spec.externalIPs[0]\n                            : 'pending...'}\n                        </div>\n                      )}\n                    </td>\n                  )}\n                  {service.spec?.type !== 'LoadBalancer' && (\n                    <td>\n                      {service.spec?.externalIPs?.[0]\n                        ? service.spec.externalIPs[0]\n                        : '-'}\n                    </td>\n                  )}\n                  <td data-cy=\"k8sAppDetail-containerPort\">\n                    {service.spec?.ports?.map((port) => (\n                      <div key={port.name}>{port.targetPort}</div>\n                    ))}\n                  </td>\n                  <td>\n                    {service.spec?.ports?.map((port) => (\n                      <div key={port.name}>\n                        {environment?.PublicURL && port.nodePort && (\n                          <a\n                            className=\"vertical-center hyperlink\"\n                            href={`http://${environment?.PublicURL}:${port.nodePort}`}\n                            target=\"_blank\"\n                            rel=\"noopener noreferrer\"\n                          >\n                            <Icon icon={ExternalLink} className=\"!mr-1\" />\n                            <span data-cy=\"k8sAppDetail-containerPort\">\n                              {port.port}\n                            </span>\n                            <span>{port.nodePort ? ' : ' : ''}</span>\n                            <span data-cy=\"k8sAppDetail-nodePort\">\n                              {port.nodePort}/{port.protocol}\n                            </span>\n                          </a>\n                        )}\n                        {!environment?.PublicURL && (\n                          <div>\n                            <span data-cy=\"k8sAppDetail-servicePort\">\n                              {port.port}\n                            </span>\n                            <span>{port.nodePort ? ' : ' : ''}</span>\n                            <span data-cy=\"k8sAppDetail-nodePort\">\n                              {port.nodePort}/{port.protocol}\n                            </span>\n                          </div>\n                        )}\n                      </div>\n                    ))}\n                  </td>\n                </tr>\n              ))}\n            </tbody>\n          </table>\n        </>\n      )}\n    </>\n  );\n}\n","import { Service } from 'kubernetes-types/core/v1';\nimport { useMemo } from 'react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useIngresses } from '@/react/kubernetes/ingresses/queries';\nimport { Ingress } from '@/react/kubernetes/ingresses/types';\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\n\ntype Props = {\n  environmentId: EnvironmentId;\n  namespace: string;\n  appServices?: Service[];\n};\n\nexport function ApplicationIngressesTable({\n  environmentId,\n  namespace,\n  appServices,\n}: Props) {\n  const namespaceIngresses = useIngresses(environmentId, [namespace]);\n  // getIngressPathsForAppServices could be expensive, so memoize it\n  const ingressPathsForAppServices = useMemo(\n    () => getIngressPathsForAppServices(namespaceIngresses.data, appServices),\n    [namespaceIngresses.data, appServices]\n  );\n\n  if (!ingressPathsForAppServices.length) {\n    return null;\n  }\n\n  return (\n    <table className=\"mt-4 table\">\n      <tbody>\n        <tr className=\"text-muted\">\n          <td className=\"w-[15%]\">Ingress name</td>\n          <td className=\"w-[10%]\">Service name</td>\n          <td className=\"w-[10%]\">Host</td>\n          <td className=\"w-[10%]\">Port</td>\n          <td className=\"w-[10%]\">Path</td>\n          <td className=\"w-[15%]\">HTTP Route</td>\n        </tr>\n        {ingressPathsForAppServices?.map((ingressPath, index) => (\n          <tr key={index}>\n            <td>\n              <Authorized authorizations=\"K8sIngressesW\">\n                <Link\n                  to=\"kubernetes.ingresses.edit\"\n                  params={{ name: ingressPath.ingressName, namespace }}\n                >\n                  {ingressPath.ingressName}\n                </Link>\n              </Authorized>\n            </td>\n            <td>{ingressPath.serviceName}</td>\n            <td>{ingressPath.host}</td>\n            <td>{ingressPath.port}</td>\n            <td>{ingressPath.path}</td>\n            <td>\n              <a\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n                href={`${ingressPath.secure ? 'https' : 'http'}://${\n                  ingressPath.host\n                }${ingressPath.path}`}\n              >\n                {ingressPath.host}\n                {ingressPath.path}\n              </a>\n            </td>\n          </tr>\n        ))}\n      </tbody>\n    </table>\n  );\n}\n\ntype IngressPath = {\n  ingressName: string;\n  serviceName: string;\n  port: number;\n  secure: boolean;\n  host: string;\n  path: string;\n};\n\nfunction getIngressPathsForAppServices(\n  ingresses?: Ingress[],\n  services?: Service[]\n): IngressPath[] {\n  if (!ingresses || !services) {\n    return [];\n  }\n  const matchingIngressesPaths = ingresses.flatMap((ingress) => {\n    // for each ingress get an array of ingress paths that match the app services\n    if (!ingress.Paths) {\n      return [];\n    }\n    const matchingIngressPaths = ingress.Paths?.filter(\n      (path) =>\n        services?.some((service) => {\n          const servicePorts = service.spec?.ports?.map((port) => port.port);\n          // include the ingress if the ingress path has a matching service name and port\n          return (\n            path.ServiceName === service.metadata?.name &&\n            servicePorts?.includes(path.Port)\n          );\n        })\n    ).map((path) => {\n      const secure =\n        (ingress.TLS &&\n          ingress.TLS.filter(\n            (tls) => tls.Hosts && tls.Hosts.includes(path.Host)\n          ).length > 0) ??\n        false;\n      return {\n        ingressName: ingress.Name,\n        serviceName: path.ServiceName,\n        port: path.Port,\n        secure,\n        host: path.Host,\n        path: path.Path,\n      };\n    });\n    return matchingIngressPaths;\n  });\n  return matchingIngressesPaths;\n}\n","import { Move } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Icon } from '@@/Icon';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nimport { Application } from '../../types';\nimport { useApplicationHorizontalPodAutoscaler } from '../../application.queries';\n\ntype Props = {\n  environmentId: EnvironmentId;\n  namespace: string;\n  appName: string;\n  app?: Application;\n};\n\nexport function ApplicationAutoScalingTable({\n  environmentId,\n  namespace,\n  appName,\n  app,\n}: Props) {\n  const { data: appAutoScalar } = useApplicationHorizontalPodAutoscaler(\n    environmentId,\n    namespace,\n    appName,\n    app\n  );\n\n  return (\n    <>\n      <div className=\"text-muted mb-4 flex items-center\">\n        <Icon icon={Move} className=\"!mr-2\" />\n        Auto-scaling\n      </div>\n      {!appAutoScalar && (\n        <TextTip color=\"blue\">\n          This application does not have an autoscaling policy defined.\n        </TextTip>\n      )}\n      {appAutoScalar && (\n        <div className=\"mt-4 w-3/5\">\n          <table className=\"table\">\n            <tbody>\n              <tr className=\"text-muted\">\n                <td className=\"w-1/3\">Minimum instances</td>\n                <td className=\"w-1/3\">Maximum instances</td>\n                <td className=\"w-1/3\">\n                  <div className=\"flex min-w-max items-center gap-1\">\n                    Target CPU usage\n                    <Tooltip message=\"The autoscaler will ensure enough instances are running to maintain an average CPU usage across all instances.\" />\n                  </div>\n                </td>\n              </tr>\n              <tr>\n                <td data-cy=\"k8sAppDetail-minReplicas\">\n                  {appAutoScalar.spec?.minReplicas}\n                </td>\n                <td data-cy=\"k8sAppDetail-maxReplicas\">\n                  {appAutoScalar.spec?.maxReplicas}\n                </td>\n                <td data-cy=\"k8sAppDetail-targetCPU\">\n                  {appAutoScalar.spec?.targetCPUUtilizationPercentage}%\n                </td>\n              </tr>\n            </tbody>\n          </table>\n        </div>\n      )}\n    </>\n  );\n}\n","import { Pod } from 'kubernetes-types/core/v1';\nimport { Asterisk, File, FileCode, Key, Lock } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Link } from '@@/Link';\n\nimport { Application } from '../../types';\nimport { applicationIsKind } from '../../utils';\n\ntype Props = {\n  namespace: string;\n  app?: Application;\n};\n\nexport function ApplicationEnvVarsTable({ namespace, app }: Props) {\n  const appEnvVars = getApplicationEnvironmentVariables(app);\n\n  return (\n    <>\n      <div className=\"text-muted mb-4 mt-6 flex items-center\">\n        <Icon icon={File} className=\"!mr-2\" />\n        Environment variables, ConfigMaps or Secrets\n      </div>\n      {appEnvVars.length === 0 && (\n        <TextTip color=\"blue\">\n          This application is not using any environment variable, ConfigMap or\n          Secret.\n        </TextTip>\n      )}\n      {appEnvVars.length > 0 && (\n        <table className=\"table\">\n          <tbody>\n            <tr className=\"text-muted\">\n              <td className=\"w-1/4\">Container</td>\n              <td className=\"w-1/4\">Environment variable</td>\n              <td className=\"w-1/4\">Value</td>\n              <td className=\"w-1/4\">Configuration</td>\n            </tr>\n            {appEnvVars.map((envVar, index) => (\n              <tr key={index}>\n                <td data-cy=\"k8sAppDetail-containerName\">\n                  {envVar.containerName}\n                  {envVar.isInitContainer && (\n                    <span>\n                      <Icon icon={Asterisk} className=\"!ml-1\" />\n                      {envVar.fieldPath} (\n                      <a\n                        href=\"https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\"\n                        target=\"_blank\"\n                        rel=\"noopener noreferrer\"\n                      >\n                        init container\n                      </a>\n                      )\n                    </span>\n                  )}\n                </td>\n                <td data-cy=\"k8sAppDetail-envVarName\">{envVar.key || '-'}</td>\n                <td data-cy=\"k8sAppDetail-envVarValue\">\n                  {envVar.value && <span>{envVar.value}</span>}\n                  {envVar.fieldPath && (\n                    <span>\n                      <Icon icon={Asterisk} className=\"!ml-1\" />\n                      {envVar.fieldPath} (\n                      <a\n                        href=\"https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/\"\n                        target=\"_blank\"\n                        rel=\"noopener noreferrer\"\n                      >\n                        downward API\n                      </a>\n                      )\n                    </span>\n                  )}\n                  {envVar.type !== 'env' &&\n                    (envVar.key ? (\n                      <span className=\"flex items-center\">\n                        <Icon icon={Key} className=\"!mr-1\" />\n                        {envVar.key}\n                      </span>\n                    ) : (\n                      '-'\n                    ))}\n                </td>\n                <td data-cy=\"k8sAppDetail-configName\">\n                  {!envVar.resourseName && <span>-</span>}\n                  {envVar.resourseName && (\n                    <span>\n                      <Link\n                        to={\n                          envVar.type === 'configMap'\n                            ? 'kubernetes.configmaps.configmap'\n                            : 'kubernetes.secrets.secret'\n                        }\n                        params={{\n                          name: envVar.resourseName,\n                          namespace,\n                        }}\n                        className=\"flex items-center\"\n                      >\n                        <Icon\n                          icon={envVar.type === 'configMap' ? FileCode : Lock}\n                          className=\"!mr-1\"\n                        />\n                        {envVar.resourseName}\n                      </Link>\n                    </span>\n                  )}\n                </td>\n              </tr>\n            ))}\n          </tbody>\n        </table>\n      )}\n    </>\n  );\n}\n\ntype EnvVarType = 'env' | 'configMap' | 'secret';\ninterface ContainerEnvVar {\n  key?: string;\n  value?: string;\n  fieldPath?: string;\n  containerName: string;\n  isInitContainer: boolean;\n  type: EnvVarType;\n  resourseName: string;\n}\n\nfunction getApplicationEnvironmentVariables(\n  app?: Application\n): ContainerEnvVar[] {\n  if (!app) {\n    return [];\n  }\n\n  const podSpec = applicationIsKind<Pod>('Pod', app)\n    ? app.spec\n    : app.spec?.template?.spec;\n  const appContainers = podSpec?.containers || [];\n  const appInitContainers = podSpec?.initContainers || [];\n\n  // get all the environment variables for each container\n  const appContainersEnvVars =\n    appContainers?.flatMap((container) => {\n      const containerEnvVars: ContainerEnvVar[] =\n        container?.env?.map((envVar) => {\n          let envtype: EnvVarType = 'env';\n          if (envVar?.valueFrom?.configMapKeyRef) {\n            envtype = 'configMap';\n          } else if (envVar?.valueFrom?.secretKeyRef) {\n            envtype = 'secret';\n          }\n          return {\n            key: envVar?.name,\n            fieldPath: envVar?.valueFrom?.fieldRef?.fieldPath,\n            containerName: container.name,\n            isInitContainer: false,\n            type: envtype,\n            resourseName:\n              envVar?.valueFrom?.configMapKeyRef?.name ||\n              envVar?.valueFrom?.secretKeyRef?.name ||\n              '',\n            value: envVar?.value,\n          };\n        }) || [];\n\n      const containerEnvFroms: ContainerEnvVar[] =\n        container?.envFrom?.map((envFrom) => ({\n          name: '',\n          resourseName:\n            envFrom?.configMapRef?.name || envFrom?.secretRef?.name || '',\n          containerName: container.name,\n          isInitContainer: false,\n          type: envFrom?.configMapRef ? 'configMap' : 'secret',\n        })) || [];\n\n      return [...containerEnvVars, ...containerEnvFroms];\n    }) || [];\n\n  const appInitContainersEnvVars =\n    appInitContainers?.flatMap((container) => {\n      const containerEnvVars: ContainerEnvVar[] =\n        container?.env?.map((envVar) => {\n          let envtype: EnvVarType = 'env';\n          if (envVar?.valueFrom?.configMapKeyRef) {\n            envtype = 'configMap';\n          } else if (envVar?.valueFrom?.secretKeyRef) {\n            envtype = 'secret';\n          }\n          return {\n            key: envVar?.name,\n            fieldPath: envVar?.valueFrom?.fieldRef?.fieldPath,\n            containerName: container.name,\n            isInitContainer: true,\n            type: envtype,\n            resourseName:\n              envVar?.valueFrom?.configMapKeyRef?.name ||\n              envVar?.valueFrom?.secretKeyRef?.name ||\n              '',\n            value: envVar?.value,\n          };\n        }) || [];\n\n      const containerEnvFroms: ContainerEnvVar[] =\n        container?.envFrom?.map((envFrom) => ({\n          name: '',\n          resourseName:\n            envFrom?.configMapRef?.name || envFrom?.secretRef?.name || '',\n          containerName: container.name,\n          isInitContainer: true,\n          type: envFrom?.configMapRef ? 'configMap' : 'secret',\n        })) || [];\n\n      return [...containerEnvVars, ...containerEnvFroms];\n    }) || [];\n\n  return [...appContainersEnvVars, ...appInitContainersEnvVars];\n}\n","import { Secret, SecretList } from 'kubernetes-types/core/v1';\nimport { useMutation, useQuery } from 'react-query';\n\nimport { queryClient, withError } from '@/react-tools/react-query';\nimport axios from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  error as notifyError,\n  notifySuccess,\n} from '@/portainer/services/notifications';\nimport { isFulfilled, isRejected } from '@/portainer/helpers/promise-utils';\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\nexport const secretQueryKeys = {\n  secrets: (environmentId: EnvironmentId, namespace?: string) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'secrets',\n    'namespaces',\n    namespace,\n  ],\n  secretsForCluster: (environmentId: EnvironmentId) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'secrets',\n  ],\n};\n\n// returns a usequery hook for the list of secrets from the kubernetes API\nexport function useSecrets(environmentId: EnvironmentId, namespace?: string) {\n  return useQuery(\n    secretQueryKeys.secrets(environmentId, namespace),\n    () => (namespace ? getSecrets(environmentId, namespace) : []),\n    {\n      onError: (err) => {\n        notifyError(\n          'Failure',\n          err as Error,\n          `Unable to get secrets in namespace '${namespace}'`\n        );\n      },\n      enabled: !!namespace,\n    }\n  );\n}\n\nexport function useSecretsForCluster(\n  environmentId: EnvironmentId,\n  namespaces?: string[],\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    secretQueryKeys.secretsForCluster(environmentId),\n    () => namespaces && getSecretsForCluster(environmentId, namespaces),\n    {\n      ...withError('Unable to retrieve secrets for cluster'),\n      enabled: !!namespaces?.length,\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n\nexport function useMutationDeleteSecrets(environmentId: EnvironmentId) {\n  return useMutation(\n    async (secrets: { namespace: string; name: string }[]) => {\n      const promises = await Promise.allSettled(\n        secrets.map(({ namespace, name }) =>\n          deleteSecret(environmentId, namespace, name)\n        )\n      );\n      const successfulSecrets = promises\n        .filter(isFulfilled)\n        .map((_, index) => secrets[index].name);\n      const failedSecrets = promises\n        .filter(isRejected)\n        .map(({ reason }, index) => ({\n          name: secrets[index].name,\n          reason,\n        }));\n      return { failedSecrets, successfulSecrets };\n    },\n    {\n      ...withError('Unable to remove secrets'),\n      onSuccess: ({ failedSecrets, successfulSecrets }) => {\n        queryClient.invalidateQueries(\n          secretQueryKeys.secretsForCluster(environmentId)\n        );\n        // show an error message for each secret that failed to delete\n        failedSecrets.forEach(({ name, reason }) => {\n          notifyError(\n            `Failed to remove secret '${name}'`,\n            new Error(reason.message) as Error\n          );\n        });\n        // show one summary message for all successful deletes\n        if (successfulSecrets.length) {\n          notifySuccess(\n            `${pluralize(\n              successfulSecrets.length,\n              'Secret'\n            )} successfully removed`,\n            successfulSecrets.join(', ')\n          );\n        }\n      },\n    }\n  );\n}\n\nasync function getSecretsForCluster(\n  environmentId: EnvironmentId,\n  namespaces: string[]\n) {\n  const secrets = await Promise.all(\n    namespaces.map((namespace) => getSecrets(environmentId, namespace))\n  );\n  return secrets.flat();\n}\n\n// get all secrets for a namespace\nasync function getSecrets(environmentId: EnvironmentId, namespace: string) {\n  try {\n    const { data } = await axios.get<SecretList>(\n      buildUrl(environmentId, namespace)\n    );\n    const secretsWithKind: Secret[] = data.items.map((secret) => ({\n      ...secret,\n      kind: 'Secret',\n    }));\n    return secretsWithKind;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve secrets');\n  }\n}\n\nasync function deleteSecret(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string\n) {\n  try {\n    await axios.delete(buildUrl(environmentId, namespace, name));\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to remove secret');\n  }\n}\n\nfunction buildUrl(environmentId: number, namespace: string, name?: string) {\n  const url = `/endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespace}/secrets`;\n  return name ? `${url}/${name}` : url;\n}\n","import { KeyToPath, Pod, Secret } from 'kubernetes-types/core/v1';\nimport { Asterisk, Plus } from 'lucide-react';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useSecrets } from '@/react/kubernetes/configs/secret.service';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\nimport { Application } from '../../types';\nimport { applicationIsKind } from '../../utils';\n\ntype Props = {\n  namespace: string;\n  app?: Application;\n};\n\nexport function ApplicationVolumeConfigsTable({ namespace, app }: Props) {\n  const containerVolumeConfigs = getApplicationVolumeConfigs(app);\n\n  const { data: secrets } = useSecrets(useEnvironmentId(), namespace);\n\n  if (containerVolumeConfigs.length === 0) {\n    return null;\n  }\n\n  return (\n    <table className=\"table\">\n      <tbody>\n        <tr className=\"text-muted\">\n          <td className=\"w-1/4\">Container</td>\n          <td className=\"w-1/4\">Configuration path</td>\n          <td className=\"w-1/4\">Value</td>\n          <td className=\"w-1/4\">Configuration</td>\n        </tr>\n        {containerVolumeConfigs.map(\n          (\n            {\n              containerVolumeMount,\n              isInitContainer,\n              containerName,\n              item,\n              volumeConfigName,\n            },\n            index\n          ) => (\n            <tr key={index}>\n              <td>\n                {containerName}\n                {isInitContainer && (\n                  <span>\n                    <Icon icon={Asterisk} />(\n                    <a\n                      href=\"https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\"\n                      target=\"_blank\"\n                      rel=\"noopener noreferrer\"\n                    >\n                      init container\n                    </a>\n                    )\n                  </span>\n                )}\n              </td>\n              <td>\n                {item.path\n                  ? `${containerVolumeMount?.mountPath}/${item.path}`\n                  : `${containerVolumeMount?.mountPath}`}\n              </td>\n              <td>\n                {item.key && (\n                  <div className=\"flex items-center\">\n                    <Icon icon={Plus} className=\"!mr-1\" />\n                    {item.key}\n                  </div>\n                )}\n                {!item.key && '-'}\n              </td>\n              <td>\n                {isVolumeConfigNameFromSecret(secrets, volumeConfigName) ? (\n                  <Link\n                    className=\"flex items-center\"\n                    to=\"kubernetes.secrets.secret\"\n                    params={{ name: volumeConfigName, namespace }}\n                  >\n                    <Icon icon={Plus} className=\"!mr-1\" />\n                    {volumeConfigName}\n                  </Link>\n                ) : (\n                  <Link\n                    className=\"flex items-center\"\n                    to=\"kubernetes.configmaps.configmap\"\n                    params={{ name: volumeConfigName, namespace }}\n                  >\n                    <Icon icon={Plus} className=\"!mr-1\" />\n                    {volumeConfigName}\n                  </Link>\n                )}\n                {!volumeConfigName && '-'}\n              </td>\n            </tr>\n          )\n        )}\n      </tbody>\n    </table>\n  );\n}\n\nfunction isVolumeConfigNameFromSecret(\n  secrets?: Secret[],\n  volumeConfigName?: string\n) {\n  return secrets?.some((secret) => secret.metadata?.name === volumeConfigName);\n}\n\n// getApplicationVolumeConfigs returns a list of volume configs / secrets for each container and each item within the matching volume\nfunction getApplicationVolumeConfigs(app?: Application) {\n  if (!app) {\n    return [];\n  }\n\n  const podSpec = applicationIsKind<Pod>('Pod', app)\n    ? app.spec\n    : app.spec?.template?.spec;\n  const appContainers = podSpec?.containers || [];\n  const appInitContainers = podSpec?.initContainers || [];\n  const appVolumes = podSpec?.volumes || [];\n  const allContainers = [...appContainers, ...appInitContainers];\n\n  const appVolumeConfigs = allContainers.flatMap((container) => {\n    // for each container, get the volume mount paths\n    const matchingVolumes = appVolumes\n      // filter app volumes by config map or secret\n      .filter((volume) => volume.configMap || volume.secret)\n      .flatMap((volume) => {\n        // flatten by volume items if there are any\n        const volConfigMapItems =\n          volume.configMap?.items || volume.secret?.items || [];\n        const volumeConfigName =\n          volume.configMap?.name || volume.secret?.secretName;\n        const containerVolumeMount = container.volumeMounts?.find(\n          (volumeMount) => volumeMount.name === volume.name\n        );\n        if (volConfigMapItems.length === 0) {\n          return [\n            {\n              volumeConfigName,\n              containerVolumeMount,\n              containerName: container.name,\n              isInitContainer: appInitContainers.includes(container),\n              item: {} as KeyToPath,\n            },\n          ];\n        }\n        // if there are items, return a volume config for each item\n        return volConfigMapItems.map((item) => ({\n          volumeConfigName,\n          containerVolumeMount,\n          containerName: container.name,\n          isInitContainer: appInitContainers.includes(container),\n          item,\n        }));\n      })\n      // only return the app volumes where the container volumeMounts include the volume name (from map step above)\n      .filter((volume) => volume.containerVolumeMount);\n    return matchingVolumes;\n  });\n\n  return appVolumeConfigs;\n}\n","import { useMemo } from 'react';\nimport { Asterisk, Box, Boxes, Database } from 'lucide-react';\nimport { Container, Pod, Volume } from 'kubernetes-types/core/v1';\nimport { StatefulSet } from 'kubernetes-types/apps/v1';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { Icon } from '@@/Icon';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { Link } from '@@/Link';\n\nimport { Application } from '../../types';\nimport { applicationIsKind } from '../../utils';\nimport { useApplicationPods } from '../../application.queries';\n\ntype Props = {\n  environmentId: EnvironmentId;\n  namespace: string;\n  appName: string;\n  app?: Application;\n};\n\nexport function ApplicationPersistentDataTable({\n  namespace,\n  app,\n  environmentId,\n  appName,\n}: Props) {\n  const { data: pods } = useApplicationPods(\n    environmentId,\n    namespace,\n    appName,\n    app\n  );\n  const persistedFolders = useMemo(\n    () => getPersistedFolders(app, pods),\n    [app, pods]\n  );\n  const dataAccessPolicy = getDataAccessPolicy(app);\n\n  return (\n    <>\n      <div className=\"text-muted mb-4 mt-6 flex items-center\">\n        <Icon icon={Database} className=\"!mr-2 !shrink-0\" />\n        Data persistence\n      </div>\n      {!persistedFolders.length && (\n        <TextTip color=\"blue\">\n          This application has no persisted folders.\n        </TextTip>\n      )}\n      {persistedFolders.length > 0 && (\n        <>\n          <div className=\"small text-muted vertical-center mb-4\">\n            Data access policy:\n            {dataAccessPolicy === 'isolated' && (\n              <>\n                <Icon icon={Boxes} />\n                Isolated\n                <Tooltip message=\"All the instances of this application are using their own data.\" />\n              </>\n            )}\n            {dataAccessPolicy === 'shared' && (\n              <>\n                <Icon icon={Box} />\n                Shared\n                <Tooltip message=\"All the instances of this application are sharing the same data.\" />\n              </>\n            )}\n          </div>\n          {dataAccessPolicy === 'isolated' && (\n            <table className=\"table\">\n              <thead>\n                <tr className=\"text-muted\">\n                  <td className=\"w-1/4\">Container name</td>\n                  <td className=\"w-1/4\">Pod name</td>\n                  <td className=\"w-1/4\">Persisted folder</td>\n                  <td className=\"w-1/4\">Persistence</td>\n                </tr>\n              </thead>\n              <tbody>\n                {persistedFolders.map((persistedFolder, index) => (\n                  <tr key={index}>\n                    <td>\n                      {persistedFolder.volumeMount.container.name}\n                      {persistedFolder.isContainerInit && (\n                        <span>\n                          <Icon icon={Asterisk} className=\"!mr-1\" />(\n                          <a\n                            href=\"https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\"\n                            target=\"_blank\"\n                            rel=\"noopener noreferrer\"\n                          >\n                            init container\n                          </a>\n                          )\n                        </span>\n                      )}\n                    </td>\n                    <td>{persistedFolder.volumeMount?.pod?.metadata?.name}</td>\n                    <td>{persistedFolder.volumeMount.mountPath}</td>\n                    <td>\n                      {persistedFolder.volume.persistentVolumeClaim && (\n                        <Link\n                          className=\"hyperlink flex items-center\"\n                          to=\"kubernetes.volumes.volume\"\n                          params={{\n                            name: `${persistedFolder.volume.persistentVolumeClaim.claimName}-${persistedFolder.volumeMount?.pod?.metadata?.name}`,\n                            namespace,\n                          }}\n                        >\n                          <Icon icon={Database} className=\"!mr-1 shrink-0\" />\n                          {`${persistedFolder.volume.persistentVolumeClaim.claimName}-${persistedFolder.volumeMount?.pod?.metadata?.name}`}\n                        </Link>\n                      )}\n                      {persistedFolder.volume.hostPath &&\n                        `${persistedFolder.volume.hostPath.path} on host filesystem`}\n                    </td>\n                  </tr>\n                ))}\n              </tbody>\n            </table>\n          )}\n          {dataAccessPolicy === 'shared' && (\n            <table className=\"table\">\n              <thead>\n                <tr className=\"text-muted\">\n                  <td className=\"w-1/3\">Persisted folder</td>\n                  <td className=\"w-2/3\">Persistence</td>\n                </tr>\n              </thead>\n              <tbody className=\"border-t-0\">\n                {persistedFolders.map((persistedFolder, index) => (\n                  <tr key={index}>\n                    <td data-cy=\"k8sAppDetail-volMountPath\">\n                      {persistedFolder.volumeMount.mountPath}\n                    </td>\n                    <td>\n                      {persistedFolder.volume.persistentVolumeClaim && (\n                        <Link\n                          className=\"hyperlink flex items-center\"\n                          to=\"kubernetes.volumes.volume\"\n                          params={{\n                            name: persistedFolder.volume.persistentVolumeClaim\n                              .claimName,\n                            namespace,\n                          }}\n                        >\n                          <Icon icon={Database} className=\"!mr-1 shrink-0\" />\n                          {\n                            persistedFolder.volume.persistentVolumeClaim\n                              .claimName\n                          }\n                        </Link>\n                      )}\n                      {persistedFolder.volume.hostPath &&\n                        `${persistedFolder.volume.hostPath.path} on host filesystem`}\n                    </td>\n                  </tr>\n                ))}\n              </tbody>\n            </table>\n          )}\n        </>\n      )}\n    </>\n  );\n}\n\nfunction getDataAccessPolicy(app?: Application) {\n  if (!app || applicationIsKind<Pod>('Pod', app)) {\n    return 'none';\n  }\n  if (applicationIsKind<StatefulSet>('StatefulSet', app)) {\n    return 'isolated';\n  }\n  return 'shared';\n}\n\nfunction getPodsMatchingContainer(pods: Pod[], container: Container) {\n  const matchingPods = pods.filter((pod) => {\n    const podContainers = pod.spec?.containers || [];\n    const podInitContainers = pod.spec?.initContainers || [];\n    const podAllContainers = [...podContainers, ...podInitContainers];\n    return podAllContainers.some(\n      (podContainer) =>\n        podContainer.name === container.name &&\n        podContainer.image === container.image\n    );\n  });\n  return matchingPods;\n}\n\nfunction getPersistedFolders(app?: Application, pods?: Pod[]) {\n  if (!app || !pods) {\n    return [];\n  }\n\n  const podSpec = applicationIsKind<Pod>('Pod', app)\n    ? app.spec\n    : app.spec?.template?.spec;\n\n  const appVolumes = podSpec?.volumes || [];\n  const appVolumeClaimVolumes = getVolumeClaimTemplates(app, appVolumes);\n  const appAllVolumes = [...appVolumes, ...appVolumeClaimVolumes];\n\n  const appContainers = podSpec?.containers || [];\n  const appInitContainers = podSpec?.initContainers || [];\n  const appAllContainers = [...appContainers, ...appInitContainers];\n\n  // for each volume, find the volumeMounts that match it\n  const persistedFolders = appAllVolumes.flatMap((volume) => {\n    if (volume.persistentVolumeClaim || volume.hostPath) {\n      const volumeMounts = appAllContainers.flatMap((container) => {\n        const matchingPods = getPodsMatchingContainer(pods, container);\n        return (\n          container.volumeMounts?.flatMap(\n            (containerVolumeMount) =>\n              matchingPods.map((pod) => ({\n                ...containerVolumeMount,\n                container,\n                pod,\n              })) || []\n          ) || []\n        );\n      });\n      const uniqueMatchingVolumeMounts = volumeMounts.filter(\n        (volumeMount, index, self) =>\n          self.indexOf(volumeMount) === index && // remove volumeMounts with duplicate names\n          volumeMount.name === volume.name // remove volumeMounts that don't match the volume\n      );\n      return uniqueMatchingVolumeMounts.map((volumeMount) => ({\n        volume,\n        volumeMount,\n        isContainerInit: appInitContainers.some(\n          (container) => container.name === volumeMount.container.name\n        ),\n      }));\n    }\n    return [];\n  });\n  return persistedFolders;\n}\n\nfunction getVolumeClaimTemplates(app: Application, volumes: Volume[]) {\n  if (\n    applicationIsKind<StatefulSet>('StatefulSet', app) &&\n    app.spec?.volumeClaimTemplates\n  ) {\n    const volumeClaimTemplates: Volume[] = app.spec.volumeClaimTemplates.map(\n      (vc) => ({\n        name: vc.metadata?.name || '',\n        persistentVolumeClaim: { claimName: vc.metadata?.name || '' },\n      })\n    );\n    const newPVC = volumeClaimTemplates.filter(\n      (vc) =>\n        !volumes.find(\n          (v) =>\n            v.persistentVolumeClaim?.claimName ===\n            vc.persistentVolumeClaim?.claimName\n        )\n    );\n    return newPVC;\n  }\n  return [];\n}\n","import { Pencil, Plus } from 'lucide-react';\nimport { useCurrentStateAndParams } from '@uirouter/react';\nimport { Pod } from 'kubernetes-types/core/v1';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { useStackFile } from '@/react/common/stacks/stack.service';\nimport { useNamespaceQuery } from '@/react/kubernetes/namespaces/queries/useNamespaceQuery';\n\nimport { Widget, WidgetBody } from '@@/Widget';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { Icon } from '@@/Icon';\n\nimport {\n  useApplication,\n  useApplicationServices,\n} from '../../application.queries';\nimport { applicationIsKind, isExternalApplication } from '../../utils';\nimport { appStackIdLabel } from '../../constants';\n\nimport { RestartApplicationButton } from './RestartApplicationButton';\nimport { RedeployApplicationButton } from './RedeployApplicationButton';\nimport { RollbackApplicationButton } from './RollbackApplicationButton';\nimport { ApplicationServicesTable } from './ApplicationServicesTable';\nimport { ApplicationIngressesTable } from './ApplicationIngressesTable';\nimport { ApplicationAutoScalingTable } from './ApplicationAutoScalingTable';\nimport { ApplicationEnvVarsTable } from './ApplicationEnvVarsTable';\nimport { ApplicationVolumeConfigsTable } from './ApplicationVolumeConfigsTable';\nimport { ApplicationPersistentDataTable } from './ApplicationPersistentDataTable';\n\nexport function ApplicationDetailsWidget() {\n  const stateAndParams = useCurrentStateAndParams();\n  const {\n    params: {\n      namespace,\n      name,\n      'resource-type': resourceType,\n      endpointId: environmentId,\n    },\n  } = stateAndParams;\n\n  const namespaceData = useNamespaceQuery(environmentId, namespace);\n  const isSystemNamespace = namespaceData.data?.IsSystem;\n\n  // get app info\n  const { data: app } = useApplication(\n    environmentId,\n    namespace,\n    name,\n    resourceType\n  );\n  const externalApp = app && isExternalApplication(app);\n  const appStackId = Number(app?.metadata?.labels?.[appStackIdLabel]);\n  const appStackFileQuery = useStackFile(appStackId);\n  const { data: appServices } = useApplicationServices(\n    environmentId,\n    namespace,\n    name,\n    app\n  );\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-sm-12\">\n        <Widget>\n          <WidgetBody>\n            {!isSystemNamespace && (\n              <div className=\"mb-4 flex flex-wrap gap-2\">\n                <Authorized authorizations=\"K8sApplicationDetailsW\">\n                  <Link to=\"kubernetes.applications.application.edit\">\n                    <Button\n                      type=\"button\"\n                      color=\"light\"\n                      size=\"small\"\n                      className=\"hover:decoration-none !ml-0\"\n                      data-cy=\"k8sAppDetail-editAppButton\"\n                    >\n                      <Icon icon={Pencil} className=\"mr-1\" />\n                      {externalApp\n                        ? 'Edit external application'\n                        : 'Edit this application'}\n                    </Button>\n                  </Link>\n                </Authorized>\n                {!applicationIsKind<Pod>('Pod', app) && (\n                  <>\n                    <RestartApplicationButton />\n                    <RedeployApplicationButton\n                      environmentId={environmentId}\n                      namespace={namespace}\n                      appName={name}\n                      app={app}\n                    />\n                  </>\n                )}\n                {!externalApp && (\n                  <RollbackApplicationButton\n                    environmentId={environmentId}\n                    namespace={namespace}\n                    appName={name}\n                    app={app}\n                  />\n                )}\n                {appStackFileQuery.data && (\n                  <Link\n                    to=\"kubernetes.templates.custom.new\"\n                    params={{\n                      fileContent: appStackFileQuery.data.StackFileContent,\n                    }}\n                  >\n                    <Button\n                      type=\"button\"\n                      color=\"primary\"\n                      size=\"small\"\n                      className=\"hover:decoration-none !ml-0\"\n                      data-cy=\"k8sAppDetail-createCustomTemplateButton\"\n                    >\n                      <Icon icon={Plus} className=\"mr-1\" />\n                      Create template from application\n                    </Button>\n                  </Link>\n                )}\n              </div>\n            )}\n            <ApplicationServicesTable\n              environmentId={environmentId}\n              appServices={appServices}\n            />\n            <ApplicationIngressesTable\n              appServices={appServices}\n              environmentId={environmentId}\n              namespace={namespace}\n            />\n            <ApplicationAutoScalingTable\n              environmentId={environmentId}\n              namespace={namespace}\n              appName={name}\n              app={app}\n            />\n            <ApplicationEnvVarsTable namespace={namespace} app={app} />\n            <ApplicationVolumeConfigsTable namespace={namespace} app={app} />\n            <ApplicationPersistentDataTable\n              environmentId={environmentId}\n              namespace={namespace}\n              appName={name}\n              app={app}\n            />\n          </WidgetBody>\n        </Widget>\n      </div>\n    </div>\n  );\n}\n","import { Authorized } from '@/react/hooks/useUser';\n\nimport { ZustandSetFunc } from '@@/datatables/types';\nimport { Checkbox } from '@@/form-components/Checkbox';\n\nexport function SystemResourcesSettings({\n  value,\n  onChange,\n}: {\n  value: boolean;\n  onChange: (value: boolean) => void;\n}) {\n  return (\n    <Authorized authorizations=\"K8sAccessSystemNamespaces\" adminOnlyCE>\n      <Checkbox\n        id=\"show-system-resources\"\n        label=\"Show system resources\"\n        checked={value}\n        onChange={(e) => onChange(e.target.checked)}\n      />\n    </Authorized>\n  );\n}\n\nexport interface SystemResourcesTableSettings {\n  showSystemResources: boolean;\n  setShowSystemResources: (value: boolean) => void;\n}\n\nexport function systemResourcesSettings<T extends SystemResourcesTableSettings>(\n  set: ZustandSetFunc<T>\n): SystemResourcesTableSettings {\n  return {\n    showSystemResources: false,\n    setShowSystemResources(showSystemResources: boolean) {\n      set((s) => ({\n        ...s,\n        showSystemResources,\n      }));\n    },\n  };\n}\n","import { refreshableSettings, createPersistedStore } from '@@/datatables/types';\n\nimport { TableSettings } from './DefaultDatatableSettings';\nimport { systemResourcesSettings } from './SystemResourcesSettings';\n\nexport function createStore(\n  storageKey: string,\n  initialSortBy: string | { id: string; desc: boolean } = 'name'\n) {\n  return createPersistedStore<TableSettings>(\n    storageKey,\n    initialSortBy,\n    (set) => ({\n      ...refreshableSettings(set),\n      ...systemResourcesSettings(set),\n    })\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\nimport { Event } from 'kubernetes-types/core/v1';\n\nexport const columnHelper = createColumnHelper<Event>();\n","import { Badge, BadgeType } from '@@/Badge';\n\nimport { columnHelper } from './helper';\n\nexport const eventType = columnHelper.accessor('type', {\n  header: 'Type',\n  cell: ({ getValue }) => (\n    <Badge type={getBadgeColor(getValue())}>{getValue()}</Badge>\n  ),\n});\n\nfunction getBadgeColor(status?: string): BadgeType {\n  switch (status?.toLowerCase()) {\n    case 'normal':\n      return 'info';\n    case 'warning':\n      return 'warn';\n    default:\n      return 'danger';\n  }\n}\n","import { columnHelper } from './helper';\n\nexport const message = columnHelper.accessor('message', {\n  header: 'Message',\n});\n","import { date } from './date';\nimport { kind } from './kind';\nimport { eventType } from './eventType';\nimport { message } from './message';\n\nexport const columns = [date, kind, eventType, message];\n","import { formatDate } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const date = columnHelper.accessor(\n  (event) => formatDate(event.lastTimestamp || event.eventTime),\n  {\n    header: 'Date',\n    id: 'Date',\n  }\n);\n","import { columnHelper } from './helper';\n\nexport const kind = columnHelper.accessor(\n  (event) => event.involvedObject.kind,\n  {\n    header: 'Kind',\n  }\n);\n","import { Event } from 'kubernetes-types/core/v1';\nimport { History } from 'lucide-react';\n\nimport { IndexOptional } from '@/react/kubernetes/configs/types';\nimport { TableSettings } from '@/react/kubernetes/datatables/DefaultDatatableSettings';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { TableState } from '@@/datatables/useTableState';\n\nimport { columns } from './columns';\n\ntype Props = {\n  dataset: Event[];\n  tableState: TableState<TableSettings>;\n  isLoading: boolean;\n  'data-cy': string;\n  noWidget?: boolean;\n};\n\nexport function EventsDatatable({\n  dataset,\n  tableState,\n  isLoading,\n  'data-cy': dataCy,\n  noWidget,\n}: Props) {\n  return (\n    <Datatable<IndexOptional<Event>>\n      dataset={dataset}\n      columns={columns}\n      settingsManager={tableState}\n      isLoading={isLoading}\n      emptyContentLabel=\"No event available.\"\n      title=\"Events\"\n      titleIcon={History}\n      getRowId={(row) => row.metadata?.uid || ''}\n      disableSelect\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={(value) => tableState.setAutoRefreshRate(value)}\n          />\n        </TableSettingsMenu>\n      )}\n      data-cy={dataCy}\n      noWidget={noWidget}\n    />\n  );\n}\n","import { EventList } from 'kubernetes-types/core/v1';\nimport { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { parseKubernetesAxiosError } from '../../axiosError';\n\nasync function getNamespaceEvents(\n  environmentId: EnvironmentId,\n  namespace: string,\n  labelSelector?: string\n) {\n  try {\n    const { data } = await axios.get<EventList>(\n      `/endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespace}/events`,\n      {\n        params: {\n          labelSelector,\n        },\n      }\n    );\n    return data.items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve events');\n  }\n}\n\nexport function useNamespaceEventsQuery(\n  environmentId: EnvironmentId,\n  namespace: string,\n  options?: { autoRefreshRate?: number },\n  labelSelector?: string\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'kubernetes',\n      'events',\n      namespace,\n      labelSelector,\n    ],\n    () => getNamespaceEvents(environmentId, namespace, labelSelector),\n    {\n      ...withError('Unable to retrieve events'),\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\nimport { useMemo } from 'react';\n\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\n\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport {\n  useApplication,\n  useApplicationPods,\n  useApplicationServices,\n} from '../application.queries';\nimport { EventsDatatable } from '../../components/KubernetesEventsDatatable';\n\nimport { useNamespaceEventsQuery } from './useNamespaceEventsQuery';\n\nconst storageKey = 'k8sAppEventsDatatable';\nconst settingsStore = createStore(storageKey, { id: 'Date', desc: true });\n\nexport function ApplicationEventsDatatable() {\n  const tableState = useTableState(settingsStore, storageKey);\n  const {\n    params: {\n      namespace,\n      name,\n      'resource-type': resourceType,\n      endpointId: environmentId,\n    },\n  } = useCurrentStateAndParams();\n\n  const { data: application, ...applicationQuery } = useApplication(\n    environmentId,\n    namespace,\n    name,\n    resourceType\n  );\n  const { data: services, ...servicesQuery } = useApplicationServices(\n    environmentId,\n    namespace,\n    name,\n    application\n  );\n  const { data: pods, ...podsQuery } = useApplicationPods(\n    environmentId,\n    namespace,\n    name,\n    application\n  );\n  const { data: events, ...eventsQuery } = useNamespaceEventsQuery(\n    environmentId,\n    namespace,\n    {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n    }\n  );\n\n  // related events are events that have the application id, or the id of a service or pod from the application\n  const relatedEvents = useMemo(() => {\n    const serviceIds = services?.map((service) => service?.metadata?.uid);\n    const podIds = pods?.map((pod) => pod?.metadata?.uid);\n    return (\n      events?.filter(\n        (event) =>\n          event.involvedObject.uid === application?.metadata?.uid ||\n          serviceIds?.includes(event.involvedObject.uid) ||\n          podIds?.includes(event.involvedObject.uid)\n      ) || []\n    );\n  }, [application?.metadata?.uid, events, pods, services]);\n\n  return (\n    <EventsDatatable\n      dataset={relatedEvents}\n      tableState={tableState}\n      isLoading={\n        applicationQuery.isLoading ||\n        eventsQuery.isLoading ||\n        servicesQuery.isLoading ||\n        podsQuery.isLoading\n      }\n      data-cy=\"k8sAppDetail-eventsTable\"\n      noWidget\n    />\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { ContainerRowData } from '../types';\n\nexport const columnHelper = createColumnHelper<ContainerRowData>();\n","import { columnHelper } from './helper';\n\nexport const pod = columnHelper.accessor('podName', {\n  header: 'Pod',\n  cell: ({ getValue }) => (\n    <div className=\"max-w-xs truncate\" title={getValue()}>\n      {getValue()}\n    </div>\n  ),\n});\n","import { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('name', {\n  header: 'Name',\n  id: 'name',\n});\n","import { columnHelper } from './helper';\n\nexport const image = columnHelper.accessor('image', {\n  header: 'Image',\n  cell: ({ getValue }) => (\n    <div className=\"max-w-xs truncate\" title={getValue()}>\n      {getValue()}\n    </div>\n  ),\n});\n","import { columnHelper } from './helper';\n\nexport const imagePullPolicy = columnHelper.accessor('imagePullPolicy', {\n  header: 'Image Pull Policy',\n  id: 'imagePullPolicy',\n});\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Badge, BadgeType } from '@@/Badge';\n\nimport { ContainerRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const status = columnHelper.accessor('status', {\n  header: 'Status',\n  cell: StatusCell,\n});\n\nfunction StatusCell({ getValue }: CellContext<ContainerRowData, string>) {\n  return <Badge type={getContainerStatusType(getValue())}>{getValue()}</Badge>;\n}\n\nfunction getContainerStatusType(status: string): BadgeType {\n  switch (status.toLowerCase()) {\n    case 'running':\n      return 'success';\n    case 'waiting':\n      return 'warn';\n    case 'terminated':\n      return 'info';\n    default:\n      return 'danger';\n  }\n}\n","import { Authorized } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\n\nimport { columnHelper } from './helper';\n\nexport const node = columnHelper.accessor('nodeName', {\n  header: 'Node',\n  cell: ({ getValue }) => {\n    const nodeName = getValue();\n    return (\n      <Authorized\n        authorizations=\"K8sClusterNodeR\"\n        childrenUnauthorized={nodeName}\n        adminOnlyCE\n      >\n        <Link to=\"kubernetes.cluster.node\" params={{ nodeName }}>\n          <div className=\"max-w-xs truncate\" title={nodeName}>\n            {nodeName}\n          </div>\n        </Link>\n      </Authorized>\n    );\n  },\n});\n","import { columnHelper } from './helper';\n\nexport const podIp = columnHelper.accessor('podIp', {\n  header: 'Pod IP',\n  id: 'podIp',\n});\n","import { formatDate } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const creationDate = columnHelper.accessor(\n  (row) => formatDate(row.creationDate),\n  {\n    header: 'Creation Date',\n    cell: ({ getValue }) => getValue(),\n  }\n);\n","import { BarChart, FileText, Terminal } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\nimport { Icon } from '@@/Icon';\n\nimport { columnHelper } from './helper';\n\nexport function getActions(isServerMetricsEnabled: boolean) {\n  return columnHelper.accessor(() => '', {\n    header: 'Actions',\n    enableSorting: false,\n    cell: ({ row: { original: container } }) => (\n      <div className=\"flex gap-x-2\">\n        {container.status === 'Running' && isServerMetricsEnabled && (\n          <Link\n            className=\"flex items-center gap-1\"\n            to=\"kubernetes.applications.application.stats\"\n            params={{ pod: container.podName, container: container.name }}\n          >\n            <Icon icon={BarChart} />\n            Stats\n          </Link>\n        )}\n        <Link\n          className=\"flex items-center gap-1\"\n          to=\"kubernetes.applications.application.logs\"\n          params={{ pod: container.podName, container: container.name }}\n        >\n          <Icon icon={FileText} />\n          Logs\n        </Link>\n        {container.status === 'Running' && (\n          <Authorized authorizations=\"K8sApplicationConsoleRW\">\n            <Link\n              className=\"flex items-center gap-1\"\n              to=\"kubernetes.applications.application.console\"\n              params={{ pod: container.podName, container: container.name }}\n            >\n              <Icon icon={Terminal} />\n              Console\n            </Link>\n          </Authorized>\n        )}\n      </div>\n    ),\n  });\n}\n","import { Server } from 'lucide-react';\nimport { useCurrentStateAndParams } from '@uirouter/react';\nimport { useMemo } from 'react';\nimport { ContainerStatus, Pod } from 'kubernetes-types/core/v1';\n\nimport { IndexOptional } from '@/react/kubernetes/configs/types';\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\n\nimport { Datatable } from '@@/datatables';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useApplication, useApplicationPods } from '../../application.queries';\n\nimport { ContainerRowData } from './types';\nimport { getColumns } from './columns';\n\nconst storageKey = 'k8sContainersDatatable';\nconst settingsStore = createStore(storageKey);\n\nexport function ApplicationContainersDatatable() {\n  const environmentId = useEnvironmentId();\n  const useServerMetricsQuery = useEnvironment(\n    environmentId,\n    (env) => !!env?.Kubernetes?.Configuration.UseServerMetrics\n  );\n  const tableState = useTableState(settingsStore, storageKey);\n  const {\n    params: { name, namespace, 'resource-type': resourceType },\n  } = useCurrentStateAndParams();\n\n  // get the containers from the aapplication pods\n  const applicationQuery = useApplication(\n    environmentId,\n    namespace,\n    name,\n    resourceType\n  );\n  const podsQuery = useApplicationPods(\n    environmentId,\n    namespace,\n    name,\n    applicationQuery.data\n  );\n  const appContainers = useContainersRowData(podsQuery.data);\n\n  return (\n    <Datatable<IndexOptional<ContainerRowData>>\n      dataset={appContainers}\n      columns={getColumns(!!useServerMetricsQuery.data)}\n      settingsManager={tableState}\n      isLoading={\n        applicationQuery.isLoading ||\n        podsQuery.isLoading ||\n        useServerMetricsQuery.isLoading\n      }\n      emptyContentLabel=\"No containers found\"\n      title=\"Application containers\"\n      titleIcon={Server}\n      getRowId={(row) => row.podName} // use pod name because it's unique (name is not unique)\n      disableSelect\n    />\n  );\n}\n\n// useContainersRowData row data gets the pod.spec?.containers and pod.spec?.initContainers from an array of pods\n// it then appends the podName, nodeName, podId, creationDate, and status to each container\nfunction useContainersRowData(pods?: Pod[]): ContainerRowData[] {\n  return (\n    useMemo(\n      () =>\n        pods?.flatMap((pod) => {\n          const containers = [\n            ...(pod.spec?.containers || []),\n            ...(pod.spec?.initContainers || []),\n          ];\n          return containers.map((container) => ({\n            ...container,\n            podName: pod.metadata?.name ?? '',\n            nodeName: pod.spec?.nodeName ?? '',\n            podIp: pod.status?.podIP ?? '',\n            creationDate: pod.status?.startTime ?? '',\n            status: computeContainerStatus(\n              container.name,\n              pod.status?.containerStatuses\n            ),\n          }));\n        }) || [],\n      [pods]\n    ) || []\n  );\n}\n\nfunction computeContainerStatus(\n  containerName: string,\n  statuses?: ContainerStatus[]\n) {\n  const status = statuses?.find((status) => status.name === containerName);\n  if (!status) {\n    return 'Terminated';\n  }\n  const { state } = status;\n  if (state?.waiting) {\n    return 'Waiting';\n  }\n  if (!state?.running) {\n    return 'Terminated';\n  }\n  return 'Running';\n}\n","import { pod } from './pod';\nimport { name } from './name';\nimport { image } from './image';\nimport { imagePullPolicy } from './imagePullPolicy';\nimport { status } from './status';\nimport { node } from './node';\nimport { podIp } from './podIp';\nimport { creationDate } from './creationDate';\nimport { getActions } from './actions';\n\nexport function getColumns(isServerMetricsEnabled: boolean) {\n  return [\n    pod,\n    name,\n    image,\n    imagePullPolicy,\n    status,\n    node,\n    podIp,\n    creationDate,\n    getActions(isServerMetricsEnabled),\n  ];\n}\n","import { NodeList, Node } from 'kubernetes-types/core/v1';\nimport { useQuery } from 'react-query';\n\nimport axios from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\n\nimport { parseKubernetesAxiosError } from '../../axiosError';\n\nconst queryKeys = {\n  node: (environmentId: number, nodeName: string) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'nodes',\n    nodeName,\n  ],\n  nodes: (environmentId: number) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'nodes',\n  ],\n};\n\nasync function getNode(environmentId: EnvironmentId, nodeName: string) {\n  try {\n    const { data: node } = await axios.get<Node>(\n      `/endpoints/${environmentId}/kubernetes/api/v1/nodes/${nodeName}`\n    );\n    return node;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to get node details');\n  }\n}\n\nexport function useNodeQuery(environmentId: EnvironmentId, nodeName: string) {\n  return useQuery(\n    queryKeys.node(environmentId, nodeName),\n    () => getNode(environmentId, nodeName),\n    {\n      ...withError('Unable to get node details'),\n    }\n  );\n}\n\n// getNodes is used to get a list of nodes using the kubernetes API\nasync function getNodes(environmentId: EnvironmentId) {\n  try {\n    const { data: nodeList } = await axios.get<NodeList>(\n      `/endpoints/${environmentId}/kubernetes/api/v1/nodes`\n    );\n    return nodeList.items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to get nodes');\n  }\n}\n\n// useNodesQuery is used to get an array of nodes using the kubernetes API\nexport function useNodesQuery(\n  environmentId: EnvironmentId,\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    queryKeys.nodes(environmentId),\n    async () => getNodes(environmentId),\n    {\n      ...withError(\n        'Failed to get nodes from the Kubernetes api',\n        'Failed to get nodes'\n      ),\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n","import clsx from 'clsx';\n\nimport { ItemProps } from '@@/form-components/InputList';\nimport { Select } from '@@/form-components/ReactSelect';\nimport { isErrorType } from '@@/form-components/formikUtils';\nimport { FormError } from '@@/form-components/FormError';\n\nimport { NodeLabels, Placement } from './types';\n\ninterface PlacementItemProps extends ItemProps<Placement> {\n  nodesLabels: NodeLabels;\n  availableNodeLabels: NodeLabels;\n}\n\nexport function PlacementItem({\n  onChange,\n  item,\n  error,\n  index,\n  nodesLabels,\n  availableNodeLabels,\n}: PlacementItemProps) {\n  const labelOptions = Object.keys(availableNodeLabels).map((label) => ({\n    label,\n    value: label,\n  }));\n  const valueOptions = nodesLabels[item.label]?.map((value) => ({\n    label: value,\n    value,\n  }));\n  const placementError = isErrorType(error) ? error : undefined;\n  return (\n    <div className=\"w-full\">\n      <div className=\"flex w-full gap-2\">\n        <div className=\"basis-1/2 grow\">\n          <Select\n            options={labelOptions}\n            value={{ label: item.label, value: item.label }}\n            noOptionsMessage={() => 'No available node labels.'}\n            onChange={(labelOption) => {\n              const newValues = nodesLabels[labelOption?.value || ''];\n              onChange({\n                ...item,\n                value: newValues?.[0] || '',\n                label: labelOption?.value || '',\n              });\n            }}\n            size=\"sm\"\n            className={clsx({ striked: !!item.needsDeletion })}\n            isDisabled={!!item.needsDeletion}\n            data-cy={`k8sAppCreate-placementLabel_${index}`}\n          />\n          {placementError?.label && (\n            <FormError>{placementError.label}</FormError>\n          )}\n        </div>\n        <div className=\"basis-1/2 grow\">\n          <Select\n            options={valueOptions}\n            value={valueOptions?.find((option) => option.value === item.value)}\n            onChange={(valueOption) =>\n              onChange({ ...item, value: valueOption?.value || '' })\n            }\n            size=\"sm\"\n            className={clsx({ striked: !!item.needsDeletion })}\n            isDisabled={!!item.needsDeletion}\n            data-cy={`k8sAppCreate-placementName_${index}`}\n          />\n          {placementError?.value && (\n            <FormError>{placementError.value}</FormError>\n          )}\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { Sliders, AlignJustify } from 'lucide-react';\n\nimport { BoxSelector, BoxSelectorOption } from '@@/BoxSelector';\n\nimport { PlacementType } from './types';\n\ntype Props = {\n  placementType: PlacementType;\n  onChange: (placementType: PlacementType) => void;\n};\n\nexport const placementOptions: ReadonlyArray<BoxSelectorOption<PlacementType>> =\n  [\n    {\n      id: 'placement_hard',\n      value: 'mandatory',\n      icon: Sliders,\n      iconType: 'badge',\n      label: 'Mandatory',\n      description: (\n        <>\n          Schedule this application <b>ONLY</b> on nodes that match <b>ALL</b>{' '}\n          Rules\n        </>\n      ),\n    },\n    {\n      id: 'placement_soft',\n      value: 'preferred',\n      icon: AlignJustify,\n      iconType: 'badge',\n      label: 'Preferred',\n      description:\n        'Schedule this application on nodes that match the rules if possible',\n    },\n  ] as const;\n\nexport function PlacementTypeBoxSelector({ placementType, onChange }: Props) {\n  return (\n    <BoxSelector<PlacementType>\n      value={placementType}\n      options={placementOptions}\n      onChange={(placementType) => onChange(placementType)}\n      radioName=\"placementType\"\n      slim\n    />\n  );\n}\n","import { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { ApplicationFormValues } from '../../types';\n\nimport { getAppResourceSummaries, getArticle } from './utils';\nimport { Summary } from './types';\n\ntype Props = {\n  formValues: ApplicationFormValues;\n  oldFormValues: ApplicationFormValues;\n};\n\nexport function ApplicationSummarySection({\n  formValues,\n  oldFormValues,\n}: Props) {\n  // extract cpu and memory requests & limits for pod\n  const limits = {\n    cpu: formValues.CpuLimit,\n    memory: formValues.MemoryLimit,\n  };\n  const appResourceSummaries = getAppResourceSummaries(\n    formValues,\n    oldFormValues\n  );\n\n  if (!appResourceSummaries || appResourceSummaries?.length === 0) {\n    return null;\n  }\n\n  return (\n    <FormSection title=\"Summary\" isFoldable defaultFolded={false}>\n      <TextTip color=\"blue\">\n        Portainer will execute the following Kubernetes actions.\n      </TextTip>\n      <ul className=\"w-full small text-muted ml-5\">\n        {appResourceSummaries.map((summary) => (\n          <SummaryItem key={JSON.stringify(summary)} summary={summary} />\n        ))}\n        {!!limits.memory && (\n          <li>\n            Set the memory resources limits and requests to{' '}\n            <code>{limits.memory}M</code>\n          </li>\n        )}\n        {!!limits.cpu && (\n          <li>\n            Set the CPU resources limits and requests to{' '}\n            <code>{limits.cpu}</code>\n          </li>\n        )}\n      </ul>\n    </FormSection>\n  );\n}\n\nfunction SummaryItem({ summary }: { summary: Summary }) {\n  return (\n    <li>\n      {`${summary.action} ${getArticle(summary.kind, summary.action)} `}\n      <span className=\"bold\">{summary.kind}</span>\n      {' named '}\n      <code>{summary.name}</code>\n      {!!summary.type && (\n        <span>\n          {' of type '}\n          <code>{summary.type}</code>\n        </span>\n      )}\n    </li>\n  );\n}\n","import { Ingress } from '@/react/kubernetes/ingresses/types';\n\nimport { ServiceFormValues } from '../../CreateView/application-services/types';\nimport { ApplicationFormValues } from '../../types';\nimport {\n  generateNewIngressesFromFormPaths,\n  getServicePatchPayload,\n} from '../../CreateView/application-services/utils';\n\nimport {\n  KubernetesResourceType,\n  KubernetesResourceAction,\n  Summary,\n} from './types';\n\nexport function getArticle(\n  resourceType: KubernetesResourceType,\n  resourceAction: KubernetesResourceAction\n) {\n  if (resourceAction === 'Delete' || resourceAction === 'Update') {\n    return 'the';\n  }\n  if (resourceAction === 'Create' && resourceType === 'Ingress') {\n    return 'an';\n  }\n  return 'a';\n}\n\n/**\n * generateResourceSummaryList maps formValues to create and update summaries\n */\nexport function getAppResourceSummaries(\n  newFormValues: ApplicationFormValues,\n  oldFormValues?: ApplicationFormValues\n): Array<Summary> {\n  if (!oldFormValues?.Name) {\n    return getCreatedApplicationResourcesNew(newFormValues);\n  }\n  return getUpdatedApplicationResources(newFormValues, oldFormValues);\n}\n\nfunction getCreatedApplicationResourcesNew(\n  formValues: ApplicationFormValues\n): Array<Summary> {\n  // app summary\n  const appSummary: Summary = {\n    action: 'Create',\n    kind: formValues.ApplicationType,\n    name: formValues.Name,\n  };\n\n  // service summaries\n  const serviceFormSummaries: Array<Summary> =\n    formValues.Services?.map((service) => ({\n      action: 'Create',\n      kind: 'Service',\n      name: service.Name || '',\n      type: service.Type,\n    })) || [];\n  // statefulsets require a headless service (https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#limitations)\n  // create a headless service summary if the application is a statefulset\n  const headlessSummary: Array<Summary> =\n    formValues.ApplicationType === 'StatefulSet'\n      ? [\n          {\n            action: 'Create',\n            kind: 'Service',\n            name: `headless-${formValues.Name}`,\n            type: 'ClusterIP',\n          },\n        ]\n      : [];\n  const serviceSummaries = [...serviceFormSummaries, ...headlessSummary];\n\n  // ingress summaries\n  const ingressesSummaries: Array<Summary> =\n    formValues.Services?.flatMap((service) => {\n      // a single service port can have multiple ingress paths (and even use different ingresses)\n      const servicePathsIngressNames = service.Ports.flatMap(\n        (port) => port.ingressPaths?.map((path) => path.IngressName) || []\n      );\n      const uniqueIngressNames = [...new Set(servicePathsIngressNames)];\n      return uniqueIngressNames.map((ingressName) => ({\n        action: 'Update',\n        kind: 'Ingress',\n        name: ingressName || '',\n      }));\n    }) || [];\n\n  // persistent volume claim (pvc) summaries\n  const pvcSummaries: Array<Summary> =\n    // apps with a isolated data access policy are statefulsets.\n    // statefulset pvcs are defined in spec.volumeClaimTemplates.\n    // https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-storage\n    formValues.DataAccessPolicy === 'Shared'\n      ? formValues.PersistedFolders?.filter(\n          // only create pvc summaries for new pvcs\n          (volume) => !volume.existingVolume?.PersistentVolumeClaim.Name\n        ).map((volume) => ({\n          action: 'Create',\n          kind: 'PersistentVolumeClaim',\n          name:\n            volume.existingVolume?.PersistentVolumeClaim.Name ||\n            volume.persistentVolumeClaimName ||\n            '',\n        })) || []\n      : [];\n\n  // horizontal pod autoscaler summaries\n  const hpaSummary: Array<Summary> =\n    formValues.AutoScaler?.isUsed === true &&\n    formValues.DeploymentType !== 'Global'\n      ? [\n          {\n            action: 'Create',\n            kind: 'HorizontalPodAutoscaler',\n            name: formValues.Name,\n          },\n        ]\n      : [];\n\n  return [\n    appSummary,\n    ...serviceSummaries,\n    ...ingressesSummaries,\n    ...pvcSummaries,\n    ...hpaSummary,\n  ];\n}\n\nfunction getUpdatedApplicationResources(\n  newFormValues: ApplicationFormValues,\n  oldFormValues: ApplicationFormValues\n) {\n  // app summaries\n  const updateAppSummaries: Array<Summary> =\n    oldFormValues.ApplicationType !== newFormValues.ApplicationType\n      ? [\n          {\n            action: 'Delete',\n            kind: oldFormValues.ApplicationType,\n            name: oldFormValues.Name,\n          },\n          {\n            action: 'Create',\n            kind: newFormValues.ApplicationType,\n            name: newFormValues.Name,\n          },\n        ]\n      : [\n          {\n            action: 'Update',\n            kind: newFormValues.ApplicationType,\n            name: newFormValues.Name,\n          },\n        ];\n\n  // service summaries\n  const serviceSummaries: Array<Summary> = getServiceUpdateResourceSummary(\n    oldFormValues.Services,\n    newFormValues.Services\n  );\n\n  // ingress summaries\n  const oldServicePorts = oldFormValues.Services?.flatMap(\n    (service) => service.Ports\n  );\n  const oldIngresses = generateNewIngressesFromFormPaths(\n    oldFormValues.OriginalIngresses,\n    oldServicePorts,\n    oldServicePorts\n  );\n  const newServicePorts = newFormValues.Services?.flatMap(\n    (service) => service.Ports\n  );\n  const newIngresses = generateNewIngressesFromFormPaths(\n    newFormValues.OriginalIngresses,\n    newServicePorts,\n    oldServicePorts\n  );\n  const ingressSummaries = getIngressUpdateSummary(oldIngresses, newIngresses);\n\n  // persistent volume claim (pvc) summaries\n  const pvcSummaries: Array<Summary> =\n    // apps with a isolated data access policy are statefulsets.\n    // statefulset pvcs are defined in spec.volumeClaimTemplates.\n    // https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-storage\n    newFormValues.DataAccessPolicy === 'Shared'\n      ? newFormValues.PersistedFolders?.filter(\n          // only create pvc summaries for new pvcs\n          (volume) => !volume.existingVolume?.PersistentVolumeClaim.Name\n        ).flatMap((newVolume) => {\n          const oldVolume = oldFormValues.PersistedFolders?.find(\n            (oldVolume) =>\n              oldVolume.persistentVolumeClaimName ===\n              newVolume.persistentVolumeClaimName\n          );\n          if (!oldVolume) {\n            return [\n              {\n                action: 'Create',\n                kind: 'PersistentVolumeClaim',\n                name:\n                  newVolume.existingVolume?.PersistentVolumeClaim.Name ||\n                  newVolume.persistentVolumeClaimName ||\n                  '',\n              },\n            ];\n          }\n          // updating a pvc is not supported\n          return [];\n        }) || []\n      : [];\n\n  // TODO: horizontal pod autoscaler summaries\n  const createHPASummary: Array<Summary> =\n    newFormValues.AutoScaler?.isUsed && !oldFormValues.AutoScaler?.isUsed\n      ? [\n          {\n            action: 'Create',\n            kind: 'HorizontalPodAutoscaler',\n            name: newFormValues.Name,\n          },\n        ]\n      : [];\n  const deleteHPASummary: Array<Summary> =\n    !newFormValues.AutoScaler?.isUsed && oldFormValues.AutoScaler?.isUsed\n      ? [\n          {\n            action: 'Delete',\n            kind: 'HorizontalPodAutoscaler',\n            name: oldFormValues.Name,\n          },\n        ]\n      : [];\n  const isHPAUpdated =\n    newFormValues.AutoScaler?.isUsed &&\n    oldFormValues.AutoScaler?.isUsed &&\n    (newFormValues.AutoScaler?.minReplicas !==\n      oldFormValues.AutoScaler?.minReplicas ||\n      newFormValues.AutoScaler?.maxReplicas !==\n        oldFormValues.AutoScaler?.maxReplicas ||\n      newFormValues.AutoScaler?.targetCpuUtilizationPercentage !==\n        oldFormValues.AutoScaler?.targetCpuUtilizationPercentage);\n  const updateHPASummary: Array<Summary> = isHPAUpdated\n    ? [\n        {\n          action: 'Update',\n          kind: 'HorizontalPodAutoscaler',\n          name: newFormValues.Name,\n        },\n      ]\n    : [];\n  const hpaSummaries = [\n    ...createHPASummary,\n    ...deleteHPASummary,\n    ...updateHPASummary,\n  ];\n\n  return [\n    ...updateAppSummaries,\n    ...serviceSummaries,\n    ...ingressSummaries,\n    ...pvcSummaries,\n    ...hpaSummaries,\n  ];\n}\n\n// getServiceUpdateResourceSummary replicates KubernetesServiceService.patch\nfunction getServiceUpdateResourceSummary(\n  oldServices?: Array<ServiceFormValues>,\n  newServices?: Array<ServiceFormValues>\n): Array<Summary> {\n  const updateAndCreateSummaries =\n    newServices?.flatMap<Summary>((newService) => {\n      const oldServiceMatched = oldServices?.find(\n        (oldService) => oldService.Name === newService.Name\n      );\n      if (oldServiceMatched) {\n        return getServiceUpdateSummary(oldServiceMatched, newService);\n      }\n      return [\n        {\n          action: 'Create',\n          kind: 'Service',\n          name: newService.Name || '',\n          type: newService.Type || 'ClusterIP',\n        },\n      ];\n    }) || [];\n\n  const deleteSummaries =\n    oldServices?.flatMap<Summary>((oldService) => {\n      const newServiceMatched = newServices?.find(\n        (newService) => newService.Name === oldService.Name\n      );\n      if (newServiceMatched) {\n        return [];\n      }\n      return [\n        {\n          action: 'Delete',\n          kind: 'Service',\n          name: oldService.Name || '',\n          type: oldService.Type || 'ClusterIP',\n        },\n      ];\n    }) || [];\n\n  return [...updateAndCreateSummaries, ...deleteSummaries];\n}\n\nfunction getServiceUpdateSummary(\n  oldService: ServiceFormValues,\n  newService: ServiceFormValues\n): Array<Summary> {\n  const payload = getServicePatchPayload(oldService, newService);\n  if (payload.length) {\n    return [\n      {\n        action: 'Update',\n        kind: 'Service',\n        name: oldService.Name || '',\n        type: oldService.Type || 'ClusterIP',\n      },\n    ];\n  }\n  return [];\n}\n\nexport function getIngressUpdateSummary(\n  oldIngresses: Array<Ingress>,\n  newIngresses: Array<Ingress>\n): Array<Summary> {\n  const ingressesSummaries = newIngresses.flatMap((newIng) => {\n    const oldIng = oldIngresses.find((oldIng) => oldIng.Name === newIng.Name);\n    if (oldIng) {\n      return getIngressUpdateResourceSummary(oldIng, newIng);\n    }\n    return [];\n  });\n  return ingressesSummaries;\n}\n\n// getIngressUpdateResourceSummary checks if any ingress paths have been changed\nfunction getIngressUpdateResourceSummary(\n  oldIngress: Ingress,\n  newIngress: Ingress\n): Array<Summary> {\n  const newIngressPaths = newIngress.Paths?.flatMap((path) => path.Path) || [];\n  const oldIngressPaths = oldIngress.Paths?.flatMap((path) => path.Path) || [];\n  const isAnyNewPathMissingOldPath = newIngressPaths.some(\n    (path) => !oldIngressPaths.includes(path)\n  );\n  const isAnyOldPathMissingNewPath = oldIngressPaths.some(\n    (path) => !newIngressPaths.includes(path)\n  );\n  if (isAnyNewPathMissingOldPath || isAnyOldPathMissingNewPath) {\n    return [\n      {\n        action: 'Update',\n        kind: 'Ingress',\n        name: oldIngress.Name,\n      },\n    ];\n  }\n  return [];\n}\n","import { useMemo, useState } from 'react';\nimport YAML from 'yaml';\nimport { Minus, Plus } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { WebEditorForm } from '@@/WebEditorForm';\nimport { Button } from '@@/buttons';\nimport { BETeaserButton } from '@@/BETeaserButton';\n\ntype Props = {\n  identifier: string;\n  data: string;\n  hideMessage?: boolean;\n};\n\nexport function YAMLInspector({ identifier, data, hideMessage }: Props) {\n  const [expanded, setExpanded] = useState(false);\n  const yaml = useMemo(() => cleanYamlUnwantedFields(data), [data]);\n\n  return (\n    <div>\n      <WebEditorForm\n        value={yaml}\n        placeholder={\n          hideMessage\n            ? undefined\n            : 'Define or paste the content of your manifest here'\n        }\n        readonly\n        hideTitle\n        id={identifier}\n        yaml\n        height={expanded ? '800px' : '500px'}\n        onChange={() => {}} // all kube yaml inspectors in CE are read only\n      />\n      <div className=\"flex items-center justify-between py-5\">\n        <Button\n          icon={expanded ? Minus : Plus}\n          color=\"default\"\n          className=\"!ml-0\"\n          onClick={() => setExpanded(!expanded)}\n        >\n          {expanded ? 'Collapse' : 'Expand'}\n        </Button>\n        <BETeaserButton\n          featureId={FeatureId.K8S_EDIT_YAML}\n          heading=\"Apply YAML changes\"\n          message=\"Applies any changes that you make in the YAML editor by calling the Kubernetes API to patch the relevant resources. Any resource removals or unexpected resource additions that you make in the YAML will be ignored. Note that editing is disabled for resources in namespaces marked as system.\"\n          buttonText=\"Apply changes\"\n        />\n      </div>\n    </div>\n  );\n}\n\nexport function cleanYamlUnwantedFields(yml: string) {\n  try {\n    const ymls = yml.split('---');\n    const cleanYmls = ymls.map((yml) => {\n      const y = YAML.parse(yml);\n      if (y.metadata) {\n        const { managedFields, resourceVersion, ...metadata } = y.metadata;\n        y.metadata = metadata;\n      }\n      return YAML.stringify(y);\n    });\n    return cleanYmls.join('---\\n');\n  } catch (e) {\n    return yml;\n  }\n}\n","import { Authorized } from '@/react/hooks/useUser';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\ninterface Props {\n  showSystemResources?: boolean;\n}\n\nexport function SystemResourceDescription({ showSystemResources }: Props) {\n  return showSystemResources === false ? (\n    <Authorized authorizations=\"K8sAccessSystemNamespaces\" adminOnlyCE>\n      <TextTip color=\"blue\" className=\"!mb-0\">\n        System resources are hidden, this can be changed in the table settings\n      </TextTip>\n    </Authorized>\n  ) : null;\n}\n","import { FileText } from 'lucide-react';\nimport { createColumnHelper } from '@tanstack/react-table';\n\nimport KubernetesNamespaceHelper from '@/kubernetes/helpers/namespaceHelper';\n\nimport { buildExpandColumn } from '@@/datatables/expand-column';\nimport { Link } from '@@/Link';\nimport { Icon } from '@@/Icon';\n\nimport { KubernetesStack } from '../../types';\n\nexport const columnHelper = createColumnHelper<KubernetesStack>();\n\nexport const columns = [\n  buildExpandColumn<KubernetesStack>(),\n  columnHelper.accessor('Name', {\n    id: 'name',\n    header: 'Stack',\n  }),\n  columnHelper.accessor('ResourcePool', {\n    id: 'namespace',\n    header: 'Namespace',\n    cell: ({ getValue }) => {\n      const value = getValue();\n      return (\n        <>\n          <Link\n            to=\"kubernetes.resourcePools.resourcePool\"\n            params={{ id: value }}\n          >\n            {value}\n          </Link>\n          {KubernetesNamespaceHelper.isSystemNamespace(value) && (\n            <span className=\"label label-info image-tag label-margins\">\n              system\n            </span>\n          )}\n        </>\n      );\n    },\n  }),\n\n  columnHelper.accessor((row) => row.Applications.length, {\n    id: 'applications',\n    header: 'Applications',\n  }),\n\n  columnHelper.display({\n    id: 'actions',\n    header: 'Actions',\n    cell: ({ row: { original: item } }) => (\n      <Link\n        to=\"kubernetes.stacks.stack.logs\"\n        params={{ namespace: item.ResourcePool, name: item.Name }}\n        className=\"flex items-center gap-1\"\n      >\n        <Icon icon={FileText} />\n        Logs\n      </Link>\n    ),\n  }),\n];\n","import clsx from 'clsx';\n\nimport KubernetesApplicationHelper from '@/kubernetes/helpers/application';\nimport KubernetesNamespaceHelper from '@/kubernetes/helpers/namespaceHelper';\n\nimport { Link } from '@@/Link';\n\nimport { KubernetesStack } from '../../types';\n\nexport function SubRows({\n  stack,\n  span,\n}: {\n  stack: KubernetesStack;\n  span: number;\n}) {\n  return (\n    <>\n      {stack.Applications.map((app) => (\n        <tr\n          className={clsx({\n            'datatable-highlighted': stack.Highlighted,\n            'datatable-unhighlighted': !stack.Highlighted,\n          })}\n          key={app.Name}\n        >\n          <td />\n          <td colSpan={span - 1}>\n            <Link\n              to=\"kubernetes.applications.application\"\n              params={{ name: app.Name, namespace: app.ResourcePool }}\n            >\n              {app.Name}\n            </Link>\n            {KubernetesNamespaceHelper.isSystemNamespace(app.ResourcePool) &&\n              KubernetesApplicationHelper.isExternalApplication(app) && (\n                <span className=\"space-left label label-primary image-tag\">\n                  external\n                </span>\n              )}\n          </td>\n        </tr>\n      ))}\n    </>\n  );\n}\n","import { SystemResourcesSettings } from '@/react/kubernetes/datatables/SystemResourcesSettings';\n\nimport { TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\n\nimport { type TableSettings } from './types';\n\nexport function StacksSettingsMenu({\n  settings,\n  setSystemResources,\n}: {\n  settings: TableSettings;\n  setSystemResources(showSystem: boolean): void;\n}) {\n  return (\n    <TableSettingsMenu>\n      <SystemResourcesSettings\n        value={settings.showSystemResources}\n        onChange={(value) => {\n          setSystemResources(value);\n          settings.setShowSystemResources(value);\n        }}\n      />\n\n      <TableSettingsMenuAutoRefresh\n        onChange={settings.setAutoRefreshRate}\n        value={settings.autoRefreshRate}\n      />\n    </TableSettingsMenu>\n  );\n}\n","import { Filter } from 'lucide-react';\nimport { useEffect } from 'react';\n\nimport { Icon } from '@@/Icon';\nimport { Select } from '@@/form-components/Input';\nimport { InputGroup } from '@@/form-components/InputGroup';\n\nimport { Namespace } from './types';\n\nfunction transformNamespaces(namespaces: Namespace[], showSystem?: boolean) {\n  const transformedNamespaces = namespaces.map(({ Name, IsSystem }) => ({\n    label: IsSystem ? `${Name} - system` : Name,\n    value: Name,\n    isSystem: IsSystem,\n  }));\n  if (showSystem === undefined) {\n    return transformedNamespaces;\n  }\n  // only filter when showSystem is set\n  return transformedNamespaces.filter((ns) => showSystem || !ns.isSystem);\n}\n\nexport function NamespaceFilter({\n  namespaces,\n  value,\n  onChange,\n  showSystem,\n}: {\n  namespaces: Namespace[];\n  value: string;\n  onChange: (value: string) => void;\n  showSystem?: boolean;\n}) {\n  const transformedNamespaces = transformNamespaces(namespaces, showSystem);\n\n  // sync value with displayed namespaces\n  useEffect(() => {\n    const names = transformedNamespaces.map((ns) => ns.value);\n    const isSelectedNamespaceFound = names.some((ns) => ns === value);\n    if (value && !isSelectedNamespaceFound) {\n      const newNamespaceValue =\n        names.length > 0\n          ? names.find((ns) => ns === 'default') || names[0]\n          : '';\n      onChange(newNamespaceValue);\n    }\n  }, [value, onChange, transformedNamespaces, showSystem]);\n\n  return (\n    <InputGroup>\n      <InputGroup.Addon>\n        <div className=\"flex items-center gap-1\">\n          <Icon icon={Filter} />\n          Namespace\n        </div>\n      </InputGroup.Addon>\n      <Select\n        className=\"!h-[30px] py-1\"\n        value={value || ''}\n        onChange={(e) => onChange(e.target.value)}\n        options={[\n          { label: 'All namespaces', value: '' },\n          ...transformedNamespaces,\n        ]}\n      />\n    </InputGroup>\n  );\n}\n","import { Trash2 } from 'lucide-react';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Button } from '@@/buttons';\n\nimport { KubernetesStack } from '../../types';\n\nexport function TableActions({\n  selectedItems,\n  onRemove,\n}: {\n  selectedItems: Array<KubernetesStack>;\n  onRemove: (selectedItems: Array<KubernetesStack>) => void;\n}) {\n  return (\n    <Authorized authorizations=\"K8sApplicationsW\">\n      <Button\n        disabled={selectedItems.length === 0}\n        color=\"dangerlight\"\n        onClick={() => onRemove(selectedItems)}\n        icon={Trash2}\n        data-cy=\"k8sApp-removeStackButton\"\n      >\n        Remove\n      </Button>\n    </Authorized>\n  );\n}\n","import { List } from 'lucide-react';\nimport { useEffect } from 'react';\n\nimport { useAuthorizations } from '@/react/hooks/useUser';\nimport { SystemResourceDescription } from '@/react/kubernetes/datatables/SystemResourceDescription';\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\n\nimport { ExpandableDatatable } from '@@/datatables/ExpandableDatatable';\nimport { useRepeater } from '@@/datatables/useRepeater';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { KubernetesStack } from '../../types';\n\nimport { columns } from './columns';\nimport { SubRows } from './SubRows';\nimport { Namespace } from './types';\nimport { StacksSettingsMenu } from './StacksSettingsMenu';\nimport { NamespaceFilter } from './NamespaceFilter';\nimport { TableActions } from './TableActions';\n\nconst storageKey = 'kubernetes.applications.stacks';\n\nconst settingsStore = createStore(storageKey);\n\ninterface Props {\n  dataset: Array<KubernetesStack>;\n  onRemove(selectedItems: Array<KubernetesStack>): void;\n  onRefresh(): Promise<void>;\n  namespace?: string;\n  namespaces: Array<Namespace>;\n  onNamespaceChange(namespace: string): void;\n  isLoading?: boolean;\n  showSystem?: boolean;\n  setSystemResources(showSystem: boolean): void;\n}\n\nexport function ApplicationsStacksDatatable({\n  dataset,\n  onRemove,\n  onRefresh,\n  namespace = '',\n  namespaces,\n  onNamespaceChange,\n  isLoading,\n  showSystem,\n  setSystemResources,\n}: Props) {\n  const tableState = useTableState(settingsStore, storageKey);\n\n  useEffect(() => {\n    tableState.setShowSystemResources(showSystem || false);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [showSystem]);\n\n  const { authorized } = useAuthorizations('K8sApplicationsW');\n  useRepeater(tableState.autoRefreshRate, onRefresh);\n\n  return (\n    <ExpandableDatatable\n      getRowCanExpand={(row) => row.original.Applications.length > 0}\n      title=\"Stacks\"\n      titleIcon={List}\n      dataset={dataset}\n      isLoading={isLoading}\n      columns={columns}\n      settingsManager={tableState}\n      disableSelect={!authorized}\n      renderSubRow={(row) => (\n        <SubRows stack={row.original} span={row.getVisibleCells().length} />\n      )}\n      noWidget\n      emptyContentLabel=\"No stack available.\"\n      description={\n        <div className=\"w-full\">\n          <div className=\"min-w-[140px] float-right mr-2\">\n            <NamespaceFilter\n              namespaces={namespaces}\n              value={namespace}\n              onChange={onNamespaceChange}\n              showSystem={showSystem}\n            />\n          </div>\n\n          <div className=\"space-y-2\">\n            <SystemResourceDescription showSystemResources={showSystem} />\n          </div>\n        </div>\n      }\n      renderTableActions={(selectedItems) => (\n        <TableActions selectedItems={selectedItems} onRemove={onRemove} />\n      )}\n      renderTableSettings={() => (\n        <StacksSettingsMenu\n          setSystemResources={setSystemResources}\n          settings={tableState}\n        />\n      )}\n      getRowId={(row) => `${row.Name}-${row.ResourcePool}`}\n    />\n  );\n}\n","import { EndpointsList } from 'kubernetes-types/core/v1';\nimport { useQuery } from 'react-query';\n\nimport axios from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\nasync function getKubernetesEndpoints(environmentId: EnvironmentId) {\n  try {\n    const { data: endpointsList } = await axios.get<EndpointsList>(\n      `/endpoints/${environmentId}/kubernetes/api/v1/endpoints`\n    );\n    return endpointsList.items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve endpoints');\n  }\n}\n\nexport function useKubernetesEndpointsQuery(\n  environmentId: EnvironmentId,\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    ['environments', environmentId, 'kubernetes', 'endpoints'],\n    () => getKubernetesEndpoints(environmentId),\n    {\n      ...withError('Unable to retrieve Kubernetes endpoints'),\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { NodeRowData } from '../types';\n\nexport const columnHelper = createColumnHelper<NodeRowData>();\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\nimport { Badge } from '@@/Badge';\n\nimport { NodeRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Name', {\n  header: 'Name',\n  cell: NameCell,\n  id: 'name',\n});\n\nfunction NameCell({\n  row: { original: node },\n}: CellContext<NodeRowData, string>) {\n  const nodeName = node.metadata?.name;\n  return (\n    <div className=\"flex gap-2 whitespace-nowrap\">\n      <Authorized\n        authorizations=\"K8sClusterNodeR\"\n        childrenUnauthorized={nodeName}\n        adminOnlyCE\n      >\n        <Link to=\"kubernetes.cluster.node\" params={{ nodeName }}>\n          {nodeName}\n        </Link>\n      </Authorized>\n      {node.isApi && <Badge type=\"info\">api</Badge>}\n      {node.isPublishedNode && <Badge type=\"success\">environment IP</Badge>}\n    </div>\n  );\n}\n","import { Node } from 'kubernetes-types/core/v1';\n\nexport function getInternalNodeIpAddress(node?: Node) {\n  return node?.status?.addresses?.find(\n    (address) => address.type === 'InternalIP'\n  )?.address;\n}\n\n// most kube clusters set control-plane label, older clusters set master, microk8s doesn't have either but instead sets microk8s-controlplane\nconst masterLabels = [\n  'node-role.kubernetes.io/control-plane',\n  'node-role.kubernetes.io/master',\n  'node.kubernetes.io/microk8s-controlplane',\n];\n\nexport function getRole(node: Node): 'Control plane' | 'Worker' {\n  return masterLabels.some((label) => node.metadata?.labels?.[label])\n    ? 'Control plane'\n    : 'Worker';\n}\n","import { getRole } from '../utils';\n\nimport { columnHelper } from './helper';\n\nexport const role = columnHelper.accessor((row) => getRole(row), {\n  header: 'Role',\n  cell: ({ row: { original: node } }) => getRole(node),\n});\n","import clsx from 'clsx';\nimport { AriaAttributes, PropsWithChildren } from 'react';\n\nimport { Icon, IconProps } from '@@/Icon';\n\nexport function StatusBadge({\n  className,\n  children,\n  color = 'default',\n  icon,\n  ...aria\n}: PropsWithChildren<\n  {\n    className?: string;\n    color?: 'success' | 'danger' | 'warning' | 'default';\n    icon?: IconProps['icon'];\n  } & AriaAttributes\n>) {\n  return (\n    <span\n      className={clsx(\n        'flex items-center gap-1 rounded',\n        'w-fit px-1.5 py-0.5',\n        'text-sm font-medium text-white',\n        {\n          ' bg-success-7  th-dark:bg-success-9': color === 'success',\n          ' bg-warning-7  th-dark:bg-warning-9': color === 'warning',\n          ' bg-error-7  th-dark:bg-error-9': color === 'danger',\n        },\n        className\n      )}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...aria}\n    >\n      {icon && (\n        <Icon\n          icon={icon}\n          className={clsx({\n            '!text-green-7': color === 'success',\n            '!text-warning-7': color === 'warning',\n            '!text-error-7': color === 'danger',\n          })}\n        />\n      )}\n\n      {children}\n    </span>\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { StatusBadge } from '@@/StatusBadge';\n\nimport { NodeRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const status = columnHelper.accessor((row) => getStatus(row), {\n  header: 'Status',\n  cell: StatusCell,\n});\n\nfunction StatusCell({\n  row: { original: node },\n}: CellContext<NodeRowData, string>) {\n  const status = getStatus(node);\n\n  const isDeleting =\n    node.metadata?.annotations?.['portainer.io/removing-node'] === 'true';\n  if (isDeleting) {\n    return <StatusBadge color=\"warning\">Removing</StatusBadge>;\n  }\n\n  return (\n    <div className=\"whitespace-nowrap\">\n      <StatusBadge color={status === 'Ready' ? 'success' : 'warning'}>\n        {status}\n      </StatusBadge>\n      {node.spec?.unschedulable && (\n        <StatusBadge color=\"warning\" className=\"mt-2\">\n          SchedulingDisabled\n        </StatusBadge>\n      )}\n    </div>\n  );\n}\n\nfunction getStatus(node: NodeRowData) {\n  return (\n    node.status?.conditions?.find((condition) => condition.status === 'True')\n      ?.type ?? 'Not ready'\n  );\n}\n","import { parseCpu } from '@/react/kubernetes/utils';\n\nimport { NodeRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const cpu = columnHelper.accessor((row) => getCPU(row), {\n  header: 'CPU',\n  cell: ({ row: { original: node } }) => getCPU(node),\n});\n\nfunction getCPU(node: NodeRowData) {\n  return parseCpu(node.status?.allocatable?.cpu ?? '');\n}\n","import { Annotation } from './annotations/types';\n\nexport function parseCpu(cpu: string) {\n  let res = parseInt(cpu, 10);\n  if (cpu.endsWith('m')) {\n    res /= 1000;\n  } else if (cpu.endsWith('n')) {\n    res /= 1000000000;\n  }\n  return res;\n}\n\nexport function prepareAnnotations(annotations?: Annotation[]) {\n  const result = annotations?.reduce(\n    (acc, a) => {\n      acc[a.Key] = a.Value;\n      return acc;\n    },\n    {} as Record<string, string>\n  );\n  return result;\n}\n","import filesizeParser from 'filesize-parser';\n\nimport { humanize } from '@/portainer/filters/filters';\n\nimport { NodeRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const memory = columnHelper.accessor((row) => getMemory(row), {\n  header: 'Memory',\n  cell: ({ row: { original: node } }) => getMemory(node),\n});\n\nfunction getMemory(node: NodeRowData) {\n  return humanize(filesizeParser(node.status?.allocatable?.memory ?? ''));\n}\n","import { columnHelper } from './helper';\n\nexport const version = columnHelper.accessor(\n  (row) => row.status?.nodeInfo?.kubeletVersion ?? '',\n  {\n    header: 'Version',\n    cell: ({ row: { original: node } }) =>\n      node.status?.nodeInfo?.kubeletVersion ?? '',\n  }\n);\n","import { getInternalNodeIpAddress } from '../utils';\n\nimport { columnHelper } from './helper';\n\nexport const ip = columnHelper.accessor(\n  (row) => getInternalNodeIpAddress(row) ?? '-',\n  {\n    header: 'IP Address',\n    cell: ({ row }) => getInternalNodeIpAddress(row.original) ?? '-',\n  }\n);\n","import { CellContext } from '@tanstack/react-table';\nimport { BarChart } from 'lucide-react';\n\nimport { Link } from '@@/Link';\nimport { Icon } from '@@/Icon';\n\nimport { NodeRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport function getActions(metricsEnabled: boolean) {\n  return columnHelper.accessor(() => '', {\n    header: 'Actions',\n    enableSorting: false,\n    cell: (props) => (\n      <ActionsCell\n        // eslint-disable-next-line react/jsx-props-no-spreading\n        {...props}\n        metricsEnabled={metricsEnabled}\n      />\n    ),\n  });\n}\n\nfunction ActionsCell({\n  row: { original: node },\n  metricsEnabled,\n}: CellContext<NodeRowData, string> & {\n  metricsEnabled: boolean;\n}) {\n  const nodeName = node.metadata?.name;\n\n  return (\n    <div className=\"flex gap-1.5\">\n      {metricsEnabled && (\n        <Link\n          title=\"Stats\"\n          to=\"kubernetes.cluster.node.stats\"\n          params={{ nodeName }}\n          className=\"flex items-center p-1\"\n        >\n          <Icon icon={BarChart} />\n        </Link>\n      )}\n    </div>\n  );\n}\n","import { name } from './name';\nimport { role } from './role';\nimport { status } from './status';\nimport { cpu } from './cpu';\nimport { memory } from './memory';\nimport { version } from './version';\nimport { ip } from './ip';\nimport { getActions } from './actions';\n\nexport function getColumns(isServerMetricsEnabled: boolean) {\n  if (!isServerMetricsEnabled) {\n    return [name, role, status, cpu, memory, version, ip];\n  }\n\n  return [\n    name,\n    role,\n    status,\n    cpu,\n    memory,\n    version,\n    ip,\n    getActions(isServerMetricsEnabled),\n  ];\n}\n","import { Node, Endpoints } from 'kubernetes-types/core/v1';\nimport { HardDrive } from 'lucide-react';\nimport { useMemo } from 'react';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\nimport { IndexOptional } from '@/react/kubernetes/configs/types';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\n\nimport { useNodesQuery } from '../nodes.service';\nimport { useKubernetesEndpointsQuery } from '../../kubernetesEndpoint.service';\n\nimport { getColumns } from './columns';\nimport { NodeRowData } from './types';\nimport { getInternalNodeIpAddress } from './utils';\n\nconst storageKey = 'k8sNodesDatatable';\nconst settingsStore = createStore(storageKey);\n\nexport function NodesDatatable() {\n  const tableState = useTableState(settingsStore, storageKey);\n  const environmentId = useEnvironmentId();\n  const { data: nodes, ...nodesQuery } = useNodesQuery(environmentId, {\n    autoRefreshRate: tableState.autoRefreshRate * 1000,\n  });\n  const { data: kubernetesEndpoints, ...kubernetesEndpointsQuery } =\n    useKubernetesEndpointsQuery(environmentId, {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n    });\n  const { data: environment, ...environmentQuery } =\n    useEnvironment(environmentId);\n  const environmentUrl = environment?.URL;\n  const isServerMetricsEnabled =\n    !!environment?.Kubernetes?.Configuration.UseServerMetrics;\n  const nodeRowData = useNodeRowData(\n    nodes,\n    kubernetesEndpoints,\n    environmentUrl\n  );\n\n  return (\n    <Datatable<IndexOptional<NodeRowData>>\n      disableSelect\n      dataset={nodeRowData ?? []}\n      columns={getColumns(isServerMetricsEnabled)}\n      settingsManager={tableState}\n      isLoading={\n        nodesQuery.isLoading ||\n        kubernetesEndpointsQuery.isLoading ||\n        environmentQuery.isLoading\n      }\n      emptyContentLabel=\"No Nodes found\"\n      title=\"Nodes\"\n      titleIcon={HardDrive}\n      getRowId={(row) => row.metadata?.uid ?? ''}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={(value) => tableState.setAutoRefreshRate(value)}\n          />\n        </TableSettingsMenu>\n      )}\n    />\n  );\n}\n\n/**\n * This function is used to add the isApi property to the node row data.\n */\nfunction useNodeRowData(\n  nodes?: Node[],\n  kubernetesEndpoints?: Endpoints[],\n  environmentUrl?: string\n): NodeRowData[] {\n  return useMemo<NodeRowData[]>(() => {\n    if (!nodes || !kubernetesEndpoints) {\n      return [];\n    }\n    const subsetAddresses = kubernetesEndpoints?.flatMap(\n      (endpoint) =>\n        endpoint.subsets?.flatMap((subset) => subset.addresses ?? [])\n    );\n    const nodeRowData = nodes.map((node) => {\n      const nodeAddress = getInternalNodeIpAddress(node);\n      // if the node address is in the endpoints subset addresses, then it is an api node\n      const isApi = subsetAddresses?.some(\n        (subsetAddress) => subsetAddress?.ip === nodeAddress\n      );\n      // if the environment url includes the node address, then it is a published node\n      const isPublishedNode =\n        !!nodeAddress &&\n        !!environmentUrl &&\n        environmentUrl?.includes(nodeAddress);\n      return {\n        ...node,\n        isApi,\n        isPublishedNode,\n        Name: `${node.metadata?.name}${isApi ? 'api' : ''}` ?? '',\n      };\n    });\n    return nodeRowData;\n  }, [nodes, kubernetesEndpoints, environmentUrl]);\n}\n","import clsx from 'clsx';\nimport { RotateCw, List } from 'lucide-react';\nimport { FormikErrors } from 'formik';\n\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { Button } from '@@/buttons';\nimport { FormError } from '@@/form-components/FormError';\nimport { isArrayErrorType } from '@@/form-components/formikUtils';\n\nimport { ConfigurationOverrideKey, ConfigurationType } from './types';\n\ntype Props = {\n  value: ConfigurationOverrideKey;\n  onChange: (value: ConfigurationOverrideKey) => void;\n  configurationIndex: number;\n  keyIndex: number;\n  overrideKeysErrors?:\n    | string\n    | string[]\n    | FormikErrors<ConfigurationOverrideKey>[];\n  configurationType: ConfigurationType;\n};\n\nexport function ConfigurationData({\n  value,\n  onChange,\n  overrideKeysErrors,\n  configurationIndex,\n  keyIndex,\n  configurationType,\n}: Props) {\n  const dataCyType = configurationType.toLowerCase();\n\n  // rule out the error (from formik) being of type string\n  const overriddenKeyError = isArrayErrorType(overrideKeysErrors)\n    ? overrideKeysErrors[keyIndex]\n    : undefined;\n  return (\n    <div className=\"flex items-start gap-x-2 gap-y-2 flex-wrap\">\n      <InputGroup size=\"small\" className=\"min-w-[250px]\">\n        <InputGroup.Addon>Key</InputGroup.Addon>\n        <InputGroup.Input type=\"text\" value={value.key} disabled />\n      </InputGroup>\n      <InputGroup size=\"small\">\n        <InputGroup.ButtonWrapper>\n          <Button\n            color=\"light\"\n            size=\"medium\"\n            className={clsx('!ml-0', { active: value.type === 'ENVIRONMENT' })}\n            onClick={() =>\n              onChange({\n                ...value,\n                path: '',\n                type: 'ENVIRONMENT',\n              })\n            }\n            icon={RotateCw}\n            data-cy={`k8sAppCreate-${dataCyType}AutoButton_${configurationIndex}_${keyIndex}`}\n          >\n            Environment\n          </Button>\n          <Button\n            color=\"light\"\n            size=\"medium\"\n            className={clsx('!ml-0 mr-1', {\n              active: value.type === 'FILESYSTEM',\n            })}\n            onClick={() => onChange({ ...value, path: '', type: 'FILESYSTEM' })}\n            icon={List}\n            data-cy={`k8sAppCreate-${dataCyType}OverrideButton_${configurationIndex}_${keyIndex}`}\n          >\n            File system\n          </Button>\n        </InputGroup.ButtonWrapper>\n      </InputGroup>\n\n      {value.type === 'FILESYSTEM' && (\n        <div>\n          <InputGroup size=\"small\" className=\"min-w-[250px]\">\n            <InputGroup.Addon required>Path on disk</InputGroup.Addon>\n            <InputGroup.Input\n              type=\"text\"\n              value={value.path}\n              placeholder=\"e.g. /etc/myapp/conf.d\"\n              onChange={(e) => onChange({ ...value, path: e.target.value })}\n              data-cy={`k8sAppCreate-${dataCyType}PathOnDiskInput_${configurationIndex}_${keyIndex}`}\n            />\n          </InputGroup>\n          {overriddenKeyError?.path && (\n            <FormError>{overriddenKeyError.path}</FormError>\n          )}\n        </div>\n      )}\n    </div>\n  );\n}\n","import clsx from 'clsx';\nimport { List, RotateCw, Trash2 } from 'lucide-react';\nimport { ConfigMap, Secret } from 'kubernetes-types/core/v1';\nimport { SingleValue } from 'react-select';\n\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { Select } from '@@/form-components/ReactSelect';\nimport { FormError } from '@@/form-components/FormError';\nimport { ItemError } from '@@/form-components/InputList/InputList';\nimport { isErrorType } from '@@/form-components/formikUtils';\nimport { Button } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport {\n  ConfigurationFormValues,\n  ConfigurationOverrideKey,\n  ConfigurationType,\n} from './types';\nimport { ConfigurationData } from './ConfigurationKey';\n\ntype Props = {\n  item: ConfigurationFormValues;\n  onChange: (values: ConfigurationFormValues) => void;\n  onRemoveItem: () => void;\n  configurations: Array<ConfigMap | Secret>;\n  index: number;\n  error?: ItemError<ConfigurationFormValues>;\n  configurationType: ConfigurationType;\n};\n\nexport function ConfigurationItem({\n  item,\n  onChange,\n  error,\n  configurations,\n  index,\n  onRemoveItem,\n  configurationType,\n}: Props) {\n  // rule out the error being of type string\n  const formikError = isErrorType(error) ? error : undefined;\n  const configurationData = item.selectedConfiguration.data || {};\n\n  return (\n    <div className=\"flex flex-col gap-y-2\">\n      <div className=\"flex items-start gap-x-2 gap-y-2\">\n        <div>\n          <InputGroup size=\"small\" className=\"min-w-[250px]\">\n            <InputGroup.Addon>Name</InputGroup.Addon>\n            <Select\n              options={configurations}\n              isMulti={false}\n              getOptionLabel={(option) => option.metadata?.name || ''}\n              noOptionsMessage={() => 'No ConfigMaps found.'}\n              value={configurations.find(\n                (configuration) =>\n                  configuration.metadata?.name ===\n                  item.selectedConfiguration.metadata?.name\n              )}\n              onChange={onSelectConfigMap}\n              size=\"sm\"\n              data-cy={`k8sAppCreate-add${configurationType}Select_${index}`}\n            />\n          </InputGroup>\n          {formikError?.selectedConfiguration && (\n            <FormError>{formikError?.selectedConfiguration}</FormError>\n          )}\n        </div>\n        <InputGroup size=\"small\">\n          <InputGroup.ButtonWrapper>\n            <Button\n              color=\"light\"\n              size=\"medium\"\n              className={clsx('!ml-0', { active: !item.overriden })}\n              onClick={() => onToggleOverride(false)}\n              icon={RotateCw}\n            >\n              Auto\n            </Button>\n            <Button\n              color=\"light\"\n              size=\"medium\"\n              className={clsx('!ml-0 mr-1', { active: item.overriden })}\n              onClick={() => onToggleOverride(true)}\n              icon={List}\n            >\n              Override\n            </Button>\n          </InputGroup.ButtonWrapper>\n        </InputGroup>\n        <Button\n          color=\"dangerlight\"\n          size=\"medium\"\n          onClick={onRemoveItem}\n          className=\"!ml-0 vertical-center btn-only-icon\"\n          icon={Trash2}\n        />\n      </div>\n      {!item.overriden && (\n        <TextTip color=\"blue\">\n          The following keys will be loaded from the{' '}\n          <code>{item.selectedConfiguration.metadata?.name}</code>{' '}\n          {configurationType} as environment variables:\n          {Object.keys(configurationData).map((key, index) => (\n            <span key={key}>\n              <code>{key}</code>\n              {index < Object.keys(configurationData).length - 1 ? ', ' : ''}\n            </span>\n          ))}\n        </TextTip>\n      )}\n      {item.overriden &&\n        item.overridenKeys.map((overridenKey, keyIndex) => (\n          <ConfigurationData\n            key={overridenKey.key}\n            value={overridenKey}\n            onChange={(value: ConfigurationOverrideKey) => {\n              const newOverridenKeys = [...item.overridenKeys];\n              newOverridenKeys[keyIndex] = value;\n              onChange({ ...item, overridenKeys: newOverridenKeys });\n            }}\n            overrideKeysErrors={formikError?.overridenKeys}\n            configurationType={configurationType}\n            configurationIndex={index}\n            keyIndex={keyIndex}\n          />\n        ))}\n    </div>\n  );\n\n  function onSelectConfigMap(configMap: SingleValue<ConfigMap | Secret>) {\n    if (configMap) {\n      onChange({\n        ...item,\n        overriden: false,\n        selectedConfiguration: configMap,\n        overridenKeys: Object.keys(configMap.data || {}).map((key) => ({\n          key,\n          path: '',\n          type: 'NONE',\n        })),\n      });\n    }\n  }\n\n  function onToggleOverride(overriden: boolean) {\n    onChange({\n      ...item,\n      overriden,\n      overridenKeys: Object.keys(configurationData).map((key) => ({\n        key,\n        path: '',\n        type: overriden ? 'ENVIRONMENT' : 'NONE',\n      })),\n    });\n  }\n}\n","import { SchemaOf, array, boolean, mixed, object, string } from 'yup';\n\nimport { ConfigurationFormValues } from './types';\n\nexport function configurationsValidationSchema(\n  validationData?: ConfigurationFormValues[]\n): SchemaOf<ConfigurationFormValues[]> {\n  return array(\n    object({\n      overriden: boolean().required(),\n      // skip validation for selectedConfiguration because it comes directly from a select dropdown\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      selectedConfiguration: object({} as any).required(),\n      overridenKeys: array(\n        object({\n          key: string().required(),\n          path: string().when('type', {\n            is: 'FILESYSTEM',\n            then: string()\n              .test(\n                'No duplicates globally',\n                'This path is already used.',\n                (path?: string) => {\n                  const allPaths = validationData\n                    ?.flatMap((configmap) => configmap.overridenKeys)\n                    .map((k) => k.path);\n                  if (!allPaths) return true;\n                  return (\n                    allPaths.filter((p) => p === path && p !== '').length <= 1\n                  );\n                }\n              )\n              .required('Path is required.'),\n          }),\n          type: mixed().oneOf(['NONE', 'ENVIRONMENT', 'FILESYSTEM']),\n        })\n      ).required(),\n    })\n  );\n}\n","import { ConfigMap, ConfigMapList } from 'kubernetes-types/core/v1';\nimport { useMutation, useQuery } from 'react-query';\n\nimport { queryClient, withError } from '@/react-tools/react-query';\nimport axios from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  error as notifyError,\n  notifySuccess,\n} from '@/portainer/services/notifications';\nimport { isFulfilled, isRejected } from '@/portainer/helpers/promise-utils';\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\nexport const configMapQueryKeys = {\n  configMaps: (environmentId: EnvironmentId, namespace?: string) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'configmaps',\n    'namespaces',\n    namespace,\n  ],\n  configMapsForCluster: (environmentId: EnvironmentId) => [\n    'environments',\n    environmentId,\n    'kubernetes',\n    'configmaps',\n  ],\n};\n\n// returns a usequery hook for the list of configmaps from the kubernetes API\nexport function useConfigMaps(\n  environmentId: EnvironmentId,\n  namespace?: string\n) {\n  return useQuery(\n    configMapQueryKeys.configMaps(environmentId, namespace),\n    () => (namespace ? getConfigMaps(environmentId, namespace) : []),\n    {\n      onError: (err) => {\n        notifyError(\n          'Failure',\n          err as Error,\n          `Unable to get ConfigMaps in namespace '${namespace}'`\n        );\n      },\n      enabled: !!namespace,\n    }\n  );\n}\n\nexport function useConfigMapsForCluster(\n  environmentId: EnvironmentId,\n  namespaces?: string[],\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    configMapQueryKeys.configMapsForCluster(environmentId),\n    () => namespaces && getConfigMapsForCluster(environmentId, namespaces),\n    {\n      ...withError('Unable to retrieve ConfigMaps for cluster'),\n      enabled: !!namespaces?.length,\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n\nexport function useMutationDeleteConfigMaps(environmentId: EnvironmentId) {\n  return useMutation(\n    async (configMaps: { namespace: string; name: string }[]) => {\n      const promises = await Promise.allSettled(\n        configMaps.map(({ namespace, name }) =>\n          deleteConfigMap(environmentId, namespace, name)\n        )\n      );\n      const successfulConfigMaps = promises\n        .filter(isFulfilled)\n        .map((_, index) => configMaps[index].name);\n      const failedConfigMaps = promises\n        .filter(isRejected)\n        .map(({ reason }, index) => ({\n          name: configMaps[index].name,\n          reason,\n        }));\n      return { failedConfigMaps, successfulConfigMaps };\n    },\n    {\n      ...withError('Unable to remove ConfigMaps'),\n      onSuccess: ({ failedConfigMaps, successfulConfigMaps }) => {\n        // Promise.allSettled can also resolve with errors, so check for errors here\n        queryClient.invalidateQueries(\n          configMapQueryKeys.configMapsForCluster(environmentId)\n        );\n        // show an error message for each configmap that failed to delete\n        failedConfigMaps.forEach(({ name, reason }) => {\n          notifyError(\n            `Failed to remove ConfigMap '${name}'`,\n            new Error(reason.message) as Error\n          );\n        });\n        // show one summary message for all successful deletes\n        if (successfulConfigMaps.length) {\n          notifySuccess(\n            `${pluralize(\n              successfulConfigMaps.length,\n              'ConfigMap'\n            )} successfully removed`,\n            successfulConfigMaps.join(', ')\n          );\n        }\n      },\n    }\n  );\n}\n\nasync function getConfigMapsForCluster(\n  environmentId: EnvironmentId,\n  namespaces: string[]\n) {\n  const configMaps = await Promise.all(\n    namespaces.map((namespace) => getConfigMaps(environmentId, namespace))\n  );\n  return configMaps.flat();\n}\n\n// get all configmaps for a namespace\nasync function getConfigMaps(environmentId: EnvironmentId, namespace: string) {\n  try {\n    const { data } = await axios.get<ConfigMapList>(\n      buildUrl(environmentId, namespace)\n    );\n    const configMapsWithKind: ConfigMap[] = data.items.map((configmap) => ({\n      ...configmap,\n      kind: 'ConfigMap',\n    }));\n    return configMapsWithKind;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve ConfigMaps');\n  }\n}\n\nasync function deleteConfigMap(\n  environmentId: EnvironmentId,\n  namespace: string,\n  name: string\n) {\n  try {\n    await axios.delete(buildUrl(environmentId, namespace, name));\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to remove ConfigMap');\n  }\n}\n\nfunction buildUrl(environmentId: number, namespace: string, name?: string) {\n  const url = `/endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespace}/configmaps`;\n  return name ? `${url}/${name}` : url;\n}\n","import clsx from 'clsx';\n\nimport { StorageClass } from '@/react/portainer/environments/types';\n\nimport { ItemError } from '@@/form-components/InputList/InputList';\nimport { Option } from '@@/form-components/PortainerSelect';\nimport { InputGroup } from '@@/form-components/InputGroup';\nimport { Select } from '@@/form-components/ReactSelect';\nimport { Input } from '@@/form-components/Input';\nimport { isErrorType } from '@@/form-components/formikUtils';\nimport { FormError } from '@@/form-components/FormError';\nimport { ButtonSelector } from '@@/form-components/ButtonSelector/ButtonSelector';\n\nimport { ApplicationFormValues } from '../../types';\n\nimport { ExistingVolume, PersistedFolderFormValue } from './types';\n\ntype Props = {\n  initialValues?: PersistedFolderFormValue[];\n  item: PersistedFolderFormValue;\n  onChange: (value: PersistedFolderFormValue) => void;\n  error: ItemError<PersistedFolderFormValue>;\n  storageClasses: StorageClass[];\n  index: number;\n  PVCOptions: Option<string>[];\n  availableVolumes: ExistingVolume[];\n  isEdit: boolean;\n  applicationValues: ApplicationFormValues;\n};\n\nexport function PersistedFolderItem({\n  initialValues,\n  item,\n  onChange,\n  error,\n  storageClasses,\n  index,\n  PVCOptions,\n  availableVolumes,\n  isEdit,\n  applicationValues,\n}: Props) {\n  // rule out the error being of type string\n  const formikError = isErrorType(error) ? error : undefined;\n\n  return (\n    <div className=\"flex items-start flex-wrap gap-x-2 gap-y-2\">\n      <div>\n        <InputGroup\n          size=\"small\"\n          className={clsx('min-w-[250px]', item.needsDeletion && 'striked')}\n        >\n          <InputGroup.Addon required>Path in container</InputGroup.Addon>\n          <Input\n            type=\"text\"\n            placeholder=\"e.g. /data\"\n            disabled={\n              (isEdit && isExistingPersistedFolder()) ||\n              applicationValues.Containers.length > 1\n            }\n            value={item.containerPath}\n            onChange={(e) =>\n              onChange({\n                ...item,\n                containerPath: e.target.value,\n              })\n            }\n            data-cy={`k8sAppCreate-containerPathInput_${index}`}\n          />\n        </InputGroup>\n        {formikError?.containerPath && (\n          <FormError>{formikError?.containerPath}</FormError>\n        )}\n      </div>\n      {isToggleVolumeTypeVisible() && (\n        <ButtonSelector<boolean>\n          onChange={(isNewVolume) =>\n            onChange({\n              ...item,\n              useNewVolume: isNewVolume,\n              size: isNewVolume ? item.size : '',\n              existingVolume: isNewVolume ? undefined : availableVolumes[0],\n            })\n          }\n          value={item.useNewVolume}\n          options={[\n            { value: true, label: 'New volume' },\n            {\n              value: false,\n              label: 'Existing volume',\n              disabled: PVCOptions.length === 0,\n            },\n          ]}\n        />\n      )}\n      {item.useNewVolume && (\n        <>\n          <div>\n            <InputGroup\n              size=\"small\"\n              className={clsx(\n                'min-w-fit flex',\n                item.needsDeletion && 'striked'\n              )}\n            >\n              <InputGroup.Addon className=\"min-w-fit\" required>\n                Requested size\n              </InputGroup.Addon>\n              <Input\n                className=\"!rounded-none -mr-[1px] !w-20\"\n                type=\"number\"\n                placeholder=\"e.g. 20\"\n                min=\"0\"\n                disabled={\n                  (isEdit && isExistingPersistedFolder()) ||\n                  applicationValues.Containers.length > 1\n                }\n                value={item.size}\n                onChange={(e) =>\n                  onChange({\n                    ...item,\n                    size: e.target.value,\n                  })\n                }\n                data-cy={`k8sAppCreate-persistentFolderSizeInput_${index}`}\n              />\n              <Select<Option<string>>\n                size=\"sm\"\n                className=\"min-w-fit\"\n                options={[\n                  { label: 'MB', value: 'MB' },\n                  { label: 'GB', value: 'GB' },\n                  { label: 'TB', value: 'TB' },\n                ]}\n                value={{\n                  label: item.sizeUnit ?? '',\n                  value: item.sizeUnit ?? '',\n                }}\n                onChange={(option) =>\n                  onChange({ ...item, sizeUnit: option?.value ?? 'GB' })\n                }\n                isDisabled={\n                  (isEdit && isExistingPersistedFolder()) ||\n                  applicationValues.Containers.length > 1\n                }\n                data-cy={`k8sAppCreate-persistentFolderSizeUnitSelect_${index}`}\n              />\n            </InputGroup>\n            {formikError?.size && <FormError>{formikError?.size}</FormError>}\n          </div>\n          <InputGroup\n            size=\"small\"\n            className={clsx(item.needsDeletion && 'striked')}\n          >\n            <InputGroup.Addon>Storage</InputGroup.Addon>\n            <Select<Option<string>>\n              className=\"w-40\"\n              size=\"sm\"\n              options={storageClasses.map((sc) => ({\n                label: sc.Name,\n                value: sc.Name,\n              }))}\n              value={getStorageClassValue(storageClasses, item)}\n              onChange={(option) =>\n                onChange({\n                  ...item,\n                  storageClass:\n                    storageClasses.find((sc) => sc.Name === option?.value) ??\n                    storageClasses[0],\n                })\n              }\n              isDisabled={\n                (isEdit && isExistingPersistedFolder()) ||\n                applicationValues.Containers.length > 1 ||\n                storageClasses.length <= 1\n              }\n              data-cy={`k8sAppCreate-storageSelect_${index}`}\n            />\n          </InputGroup>\n        </>\n      )}\n      {!item.useNewVolume && (\n        <InputGroup\n          size=\"small\"\n          className={clsx(item.needsDeletion && 'striked')}\n        >\n          <InputGroup.Addon>Volume</InputGroup.Addon>\n          <Select<Option<string>>\n            className=\"w-[440px]\"\n            size=\"sm\"\n            options={PVCOptions}\n            value={PVCOptions.find(\n              (pvc) => pvc.value === item.persistentVolumeClaimName\n            )}\n            onChange={(option) =>\n              onChange({\n                ...item,\n                persistentVolumeClaimName: option?.value,\n                existingVolume: availableVolumes.find(\n                  (pvc) => pvc.PersistentVolumeClaim.Name === option?.value\n                ),\n              })\n            }\n            isDisabled={\n              (isEdit && isExistingPersistedFolder()) ||\n              applicationValues.Containers.length > 1 ||\n              availableVolumes.length < 1\n            }\n            data-cy={`k8sAppCreate-pvcSelect_${index}`}\n          />\n        </InputGroup>\n      )}\n    </div>\n  );\n\n  function isExistingPersistedFolder() {\n    return !!initialValues?.[index]?.persistentVolumeClaimName;\n  }\n\n  function isToggleVolumeTypeVisible() {\n    return (\n      !(isEdit && isExistingPersistedFolder()) && // if it's not an edit of an existing persisted folder\n      applicationValues.Containers.length <= 1 // and if there is only one container);\n    );\n  }\n}\n\nfunction getStorageClassValue(\n  storageClasses: StorageClass[],\n  persistedFolder: PersistedFolderFormValue\n) {\n  const matchingClass =\n    storageClasses.find(\n      (sc) => sc.Name === persistedFolder.storageClass?.Name\n    ) ?? storageClasses[0];\n  return { label: matchingClass?.Name, value: matchingClass?.Name };\n}\n","import { FormikErrors } from 'formik';\nimport { useMemo } from 'react';\nimport uuidv4 from 'uuid/v4';\n\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { StorageClass } from '@/react/portainer/environments/types';\n\nimport { Option } from '@@/form-components/PortainerSelect';\nimport { InlineLoader } from '@@/InlineLoader';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { InputList } from '@@/form-components/InputList';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { ApplicationFormValues } from '../../types';\n\nimport { ExistingVolume, PersistedFolderFormValue } from './types';\nimport { PersistedFolderItem } from './PersistedFolderItem';\n\ntype Props = {\n  values: PersistedFolderFormValue[];\n  initialValues: PersistedFolderFormValue[];\n  onChange: (values: PersistedFolderFormValue[]) => void;\n  errors: FormikErrors<PersistedFolderFormValue[]>;\n  isAddPersistentFolderButtonShown: unknown;\n  isEdit: boolean;\n  applicationValues: ApplicationFormValues;\n  availableVolumes: ExistingVolume[];\n};\n\nexport function PersistedFoldersFormSection({\n  values,\n  initialValues,\n  onChange,\n  errors,\n  isAddPersistentFolderButtonShown,\n  isEdit,\n  applicationValues,\n  availableVolumes,\n}: Props) {\n  const environmentQuery = useCurrentEnvironment();\n  const storageClasses =\n    environmentQuery.data?.Kubernetes.Configuration.StorageClasses ?? [];\n  const PVCOptions = usePVCOptions(availableVolumes);\n\n  return (\n    <FormSection title=\"Persisted folders\" titleSize=\"sm\">\n      {storageClasses.length === 0 && (\n        <TextTip color=\"blue\">\n          No storage option is available to persist data, contact your\n          administrator to enable a storage option.\n        </TextTip>\n      )}\n      {environmentQuery.isLoading && (\n        <InlineLoader>Loading volumes...</InlineLoader>\n      )}\n      <InputList<PersistedFolderFormValue>\n        value={values}\n        onChange={onChange}\n        errors={errors}\n        isDeleteButtonHidden={\n          isEdit && applicationValues.ApplicationType === 'StatefulSet'\n        }\n        canUndoDelete={isEdit}\n        deleteButtonDataCy=\"k8sAppCreate-persistentFolderRemoveButton\"\n        addButtonDataCy=\"k8sAppCreate-persistentFolderAddButton\"\n        disabled={storageClasses.length === 0}\n        addButtonError={getAddButtonError(storageClasses)}\n        isAddButtonHidden={!isAddPersistentFolderButtonShown}\n        renderItem={(item, onChange, index, error) => (\n          <PersistedFolderItem\n            item={item}\n            onChange={onChange}\n            error={error}\n            PVCOptions={PVCOptions}\n            availableVolumes={availableVolumes}\n            storageClasses={storageClasses ?? []}\n            index={index}\n            isEdit={isEdit}\n            applicationValues={applicationValues}\n            initialValues={initialValues}\n          />\n        )}\n        itemBuilder={() => ({\n          persistentVolumeClaimName: getNewPVCName(applicationValues.Name),\n          containerPath: '',\n          size: '',\n          sizeUnit: 'GB',\n          storageClass: storageClasses[0],\n          useNewVolume: true,\n          existingVolume: undefined,\n          needsDeletion: false,\n        })}\n        addLabel=\"Add persisted folder\"\n      />\n    </FormSection>\n  );\n}\n\nfunction usePVCOptions(existingPVCs: ExistingVolume[]): Option<string>[] {\n  return useMemo(\n    () =>\n      existingPVCs.map((pvc) => ({\n        label: pvc.PersistentVolumeClaim.Name ?? '',\n        value: pvc.PersistentVolumeClaim.Name ?? '',\n      })),\n    [existingPVCs]\n  );\n}\n\nfunction getAddButtonError(storageClasses: StorageClass[]) {\n  if (storageClasses.length === 0) {\n    return 'No storage option available';\n  }\n  return '';\n}\n\nfunction getNewPVCName(applicationName: string) {\n  const name = `${applicationName}-${uuidv4()}`;\n  // limit it to 63 characters to avoid exceeding the limit for the volume name\n  const nameLimited = name.length > 63 ? name.substring(0, 63) : name;\n  return nameLimited;\n}\n","import { SchemaOf, array, boolean, object, string } from 'yup';\nimport filesizeParser from 'filesize-parser';\nimport _ from 'lodash';\n\nimport { StorageClass } from '@/react/portainer/environments/types';\n\nimport { buildUniquenessTest } from '@@/form-components/validate-unique';\n\nimport { ExistingVolume, PersistedFolderFormValue } from './types';\n\ntype FormData = {\n  namespaceQuotas: unknown;\n  persistedFolders: PersistedFolderFormValue[];\n  storageAvailabilities: Record<string, number>;\n};\n\nexport function persistedFoldersValidation(\n  formData?: FormData\n): SchemaOf<PersistedFolderFormValue[]> {\n  return array(\n    object({\n      persistentVolumeClaimName: string(),\n      containerPath: string().required('Path is required.'),\n      size: string().when('useNewVolume', {\n        is: true,\n        then: string()\n          .test(\n            'quotaExceeded',\n            'Requested size exceeds available quota for this storage class.',\n            // eslint-disable-next-line prefer-arrow-callback, func-names\n            function (this) {\n              const persistedFolderFormValue = this\n                .parent as PersistedFolderFormValue;\n              const quota = formData?.namespaceQuotas;\n              let quotaExceeded = false;\n              if (quota) {\n                const pfs = formData?.persistedFolders;\n                const groups = _.groupBy(pfs, 'storageClass.Name');\n                _.forOwn(groups, (storagePfs, storageClassName) => {\n                  if (\n                    storageClassName ===\n                    persistedFolderFormValue.storageClass.Name\n                  ) {\n                    const newPfs = _.filter(storagePfs, {\n                      persistentVolumeClaimName: '',\n                    });\n                    const requestedSize = _.reduce(\n                      newPfs,\n                      (sum, pf) =>\n                        pf.useNewVolume && pf.size\n                          ? sum +\n                            filesizeParser(`${pf.size}${pf.sizeUnit}`, {\n                              base: 10,\n                            })\n                          : sum,\n                      0\n                    );\n                    if (\n                      formData?.storageAvailabilities[storageClassName] <\n                      requestedSize\n                    ) {\n                      quotaExceeded = true;\n                    }\n                  }\n                });\n              }\n              return !quotaExceeded;\n            }\n          )\n          .required('Size is required.'),\n      }),\n      sizeUnit: string().when('useNewVolume', {\n        is: true,\n        then: string().required('Size unit is required.'),\n      }),\n      storageClass: storageClassValidation(),\n      useNewVolume: boolean().required(),\n      existingVolume: existingVolumeValidation().nullable(),\n      needsDeletion: boolean(),\n    })\n  ).test(\n    'containerPath',\n    'This path is already defined.',\n    buildUniquenessTest(() => 'This path is already defined.', 'containerPath')\n  );\n}\n\nfunction storageClassValidation(): SchemaOf<StorageClass> {\n  return object({\n    Name: string().required(),\n    AccessModes: array(string().required()).required(),\n    AllowVolumeExpansion: boolean().required(),\n    Provisioner: string().required(),\n  });\n}\n\nfunction existingVolumeValidation(): SchemaOf<ExistingVolume> {\n  return object({\n    PersistentVolumeClaim: object({\n      Id: string().required(),\n      Name: string().required(),\n      Namespace: string().required(),\n      Storage: string().required(),\n      storageClass: storageClassValidation(),\n      CreationDate: string().required(),\n      ApplicationOwner: string(),\n      ApplicationName: string(),\n      PreviousName: string(),\n      MountPath: string(),\n      Yaml: string(),\n    }),\n  });\n}\n","import { SchemaOf, TestContext, number, object } from 'yup';\n\nimport KubernetesResourceReservationHelper from '@/kubernetes/helpers/resourceReservationHelper';\nimport { nanNumberSchema } from '@/react-tools/yup-schemas';\n\nimport { ResourceQuotaFormValues } from './types';\n\ntype NodeLimit = {\n  CPU: number;\n  Memory: number;\n};\n\ntype NodesLimits = Record<string, NodeLimit>;\n\ntype ValidationData = {\n  maxMemoryLimit: number;\n  maxCpuLimit: number;\n  isEnvironmentAdmin: boolean;\n  nodeLimits: NodesLimits;\n  isExistingCPUReservationUnchanged: boolean;\n  isExistingMemoryReservationUnchanged: boolean;\n};\n\nexport function resourceReservationValidation(\n  validationData?: ValidationData\n): SchemaOf<ResourceQuotaFormValues> {\n  return object().shape({\n    memoryLimit: nanNumberSchema('Memory limit is required.')\n      .min(0, 'Value must be greater than or equal to 0.')\n      .test(\n        'exhaused',\n        `The memory capacity for this namespace has been exhausted, so you cannot deploy the application.${\n          validationData?.isEnvironmentAdmin\n            ? ''\n            : ' Contact your administrator to expand the memory capacity of the namespace.'\n        }`,\n        () => !!validationData && validationData.maxMemoryLimit > 0\n      )\n      .max(validationData?.maxMemoryLimit || 0, ({ value }) =>\n        // when the existing reservation is unchanged and exceeds the new limit, show a different error message\n        // https://portainer.atlassian.net/browse/EE-5933?focusedCommentId=29308\n        validationData?.isExistingMemoryReservationUnchanged\n          ? `Value must be between 0 and ${validationData?.maxMemoryLimit}MB now - the previous value of ${value} exceeds this.`\n          : `Value must be between 0 and ${validationData?.maxMemoryLimit}MB.`\n      )\n      .test(\n        'hasSuitableNode',\n        `These reservations would exceed the resources currently available in the cluster.`,\n        (value: number | undefined, context: TestContext) => {\n          if (!validationData || value === undefined) {\n            // explicitely check for undefined, since 0 is a valid value\n            return true;\n          }\n          const { memoryLimit, cpuLimit } = context.parent;\n          return hasSuitableNode(\n            memoryLimit,\n            cpuLimit,\n            validationData.nodeLimits\n          );\n        }\n      )\n      .required('Memory limit is required.'),\n    cpuLimit: number()\n      .min(0)\n      .test(\n        'exhaused',\n        `The CPU capacity for this namespace has been exhausted, so you cannot deploy the application.${\n          validationData?.isEnvironmentAdmin\n            ? ''\n            : ' Contact your administrator to expand the CPU capacity of the namespace.'\n        }`,\n        () => !!validationData && validationData.maxCpuLimit > 0\n      )\n      .max(validationData?.maxCpuLimit || 0, ({ value }) =>\n        // when the existing reservation is unchanged and exceeds the new limit, show a different error message\n        // https://portainer.atlassian.net/browse/EE-5933?focusedCommentId=29308\n        validationData?.isExistingCPUReservationUnchanged\n          ? `Value must be between 0 and ${validationData?.maxCpuLimit} now - the previous value of ${value} exceeds this.`\n          : `Value must be between 0 and ${validationData?.maxCpuLimit}.`\n      )\n      .test(\n        'hasSuitableNode',\n        `These reservations would exceed the resources currently available in the cluster.`,\n        (value: number | undefined, context: TestContext) => {\n          if (!validationData || value === undefined) {\n            // explicitely check for undefined, since 0 is a valid value\n            return true;\n          }\n          const { memoryLimit, cpuLimit } = context.parent;\n          return hasSuitableNode(\n            memoryLimit,\n            cpuLimit,\n            validationData.nodeLimits\n          );\n        }\n      )\n      .required(),\n  });\n}\n\nfunction hasSuitableNode(\n  memoryLimit: number,\n  cpuLimit: number,\n  nodeLimits: NodesLimits\n) {\n  const nanParsedMemoryLimit = Number.isNaN(memoryLimit) ? 0 : memoryLimit;\n  const nanParsedCPULimit = Number.isNaN(cpuLimit) ? 0 : cpuLimit;\n  // transform the nodelimits from bytes to MB\n  const limits = Object.values(nodeLimits).map((nodeLimit) => ({\n    ...nodeLimit,\n    Memory: KubernetesResourceReservationHelper.megaBytesValue(\n      nodeLimit.Memory\n    ),\n  }));\n  // make sure there's a node available with enough memory and cpu\n  return limits.some(\n    (nodeLimit) =>\n      nodeLimit.Memory >= nanParsedMemoryLimit &&\n      nodeLimit.CPU >= nanParsedCPULimit\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { Link } from '@@/Link';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Input } from '@@/form-components/Input';\nimport { FormError } from '@@/form-components/FormError';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nimport { AutoScalingFormValues } from './types';\n\ntype Props = {\n  values: AutoScalingFormValues;\n  onChange: (values: AutoScalingFormValues) => void;\n  errors: FormikErrors<AutoScalingFormValues>;\n  isMetricsEnabled: boolean;\n};\n\nexport function AutoScalingFormSection({\n  values,\n  onChange,\n  errors,\n  isMetricsEnabled,\n}: Props) {\n  return (\n    <>\n      {!isMetricsEnabled && <NoMetricsServerWarning />}\n      <SwitchField\n        disabled={!isMetricsEnabled}\n        label=\"Enable auto scaling for this application\"\n        labelClass=\"col-sm-3 col-lg-2\"\n        checked={values.isUsed}\n        onChange={(value: boolean) => {\n          // when enabling the auto scaler, set the default values\n          const newValues =\n            !values.isUsed && value\n              ? {\n                  minReplicas: 1,\n                  maxReplicas: 3,\n                  targetCpuUtilizationPercentage: 50,\n                }\n              : {};\n          onChange({\n            ...values,\n            ...newValues,\n            isUsed: value,\n          });\n        }}\n      />\n      {values.isUsed && (\n        <div className=\"grid grid-cols-1 md:grid-cols-3 w-full gap-x-4 gap-y-2 my-3\">\n          <div className=\"flex flex-col min-w-fit\">\n            <label htmlFor=\"min-instances\" className=\"font-normal text-xs\">\n              Minimum instances\n            </label>\n            <Input\n              id=\"min-instances\"\n              type=\"number\"\n              min=\"1\"\n              value={values.minReplicas}\n              max={values.maxReplicas || 1}\n              onChange={(e) =>\n                onChange({\n                  ...values,\n                  minReplicas: e.target.valueAsNumber,\n                })\n              }\n              data-cy=\"k8sAppCreate-autoScaleMin\"\n            />\n            {errors?.minReplicas && <FormError>{errors.minReplicas}</FormError>}\n          </div>\n          <div className=\"flex flex-col min-w-fit\">\n            <label htmlFor=\"max-instances\" className=\"font-normal text-xs\">\n              Maximum instances\n            </label>\n            <Input\n              id=\"max-instances\"\n              type=\"number\"\n              value={values.maxReplicas}\n              min={values.minReplicas || 1}\n              onChange={(e) =>\n                onChange({\n                  ...values,\n                  maxReplicas: e.target.valueAsNumber,\n                })\n              }\n              data-cy=\"k8sAppCreate-autoScaleMax\"\n            />\n            {errors?.maxReplicas && <FormError>{errors.maxReplicas}</FormError>}\n          </div>\n          <div className=\"flex flex-col min-w-fit\">\n            <label\n              htmlFor=\"cpu-threshold\"\n              className=\"font-normal text-xs flex items-center\"\n            >\n              Target CPU usage (<b>%</b>)\n              <Tooltip message=\"The autoscaler will ensure enough instances are running to maintain an average CPU usage across all instances.\" />\n            </label>\n            <Input\n              id=\"cpu-threshold\"\n              type=\"number\"\n              value={values.targetCpuUtilizationPercentage}\n              min=\"1\"\n              max=\"100\"\n              onChange={(e) =>\n                onChange({\n                  ...values,\n                  targetCpuUtilizationPercentage: e.target.valueAsNumber,\n                })\n              }\n              data-cy=\"k8sAppCreate-targetCPUInput\"\n            />\n            {errors?.targetCpuUtilizationPercentage && (\n              <FormError>{errors.targetCpuUtilizationPercentage}</FormError>\n            )}\n          </div>\n        </div>\n      )}\n    </>\n  );\n}\n\nfunction NoMetricsServerWarning() {\n  const isAdminQuery = useIsEdgeAdmin();\n  if (isAdminQuery.isLoading) {\n    return null;\n  }\n\n  const { isAdmin } = isAdminQuery;\n\n  return (\n    <TextTip color=\"orange\">\n      {isAdmin && (\n        <>\n          Server metrics features must be enabled in the{' '}\n          <Link to=\"kubernetes.cluster.setup\">\n            environment configuration view\n          </Link>\n          .\n        </>\n      )}\n      {!isAdmin &&\n        'This feature is currently disabled and must be enabled by an administrator user.'}\n    </TextTip>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { Namespaces } from '../types';\nimport { getSelfSubjectAccessReview } from '../getSelfSubjectAccessReview';\n\nexport function useNamespacesQuery(\n  environmentId: EnvironmentId,\n  options?: { autoRefreshRate?: number }\n) {\n  return useQuery(\n    ['environments', environmentId, 'kubernetes', 'namespaces'],\n    async () => {\n      const namespaces = await getNamespaces(environmentId);\n      const namespaceNames = Object.keys(namespaces);\n      // use selfsubjectaccess reviews to avoid forbidden requests\n      const allNamespaceAccessReviews = await Promise.all(\n        namespaceNames.map((namespaceName) =>\n          getSelfSubjectAccessReview(environmentId, namespaceName)\n        )\n      );\n      const allowedNamespacesNames = allNamespaceAccessReviews\n        .filter((accessReview) => accessReview.status.allowed)\n        .map((accessReview) => accessReview.spec.resourceAttributes.namespace);\n      const allowedNamespaces = namespaceNames.reduce((acc, namespaceName) => {\n        if (allowedNamespacesNames.includes(namespaceName)) {\n          acc[namespaceName] = namespaces[namespaceName];\n        }\n        return acc;\n      }, {} as Namespaces);\n      return allowedNamespaces;\n    },\n    {\n      ...withError('Unable to get namespaces.'),\n      refetchInterval() {\n        return options?.autoRefreshRate ?? false;\n      },\n    }\n  );\n}\n\n// getNamespaces is used to retrieve namespaces using the Portainer backend with caching\nasync function getNamespaces(environmentId: EnvironmentId) {\n  try {\n    const { data: namespaces } = await axios.get<Namespaces>(\n      `kubernetes/${environmentId}/namespaces`\n    );\n    return namespaces;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve namespaces');\n  }\n}\n","import { SchemaOf, string } from 'yup';\n\ntype ValidationData = {\n  hasQuota: boolean;\n  isResourceQuotaCapacityExceeded: boolean;\n  namespaceOptionCount: number;\n  isEnvironmentAdmin: boolean;\n};\n\nconst emptyValue =\n  'You do not have access to any namespace. Contact your administrator to get access to a namespace.';\n\nexport function namespaceSelectorValidation(\n  validationData?: ValidationData\n): SchemaOf<string> {\n  const {\n    hasQuota,\n    isResourceQuotaCapacityExceeded,\n    namespaceOptionCount,\n    isEnvironmentAdmin,\n  } = validationData || {};\n  return string()\n    .required(emptyValue)\n    .typeError(emptyValue)\n    .test(\n      'resourceQuotaCapacityExceeded',\n      `This namespace has exhausted its resource capacity and you will not be able to deploy the application.${\n        isEnvironmentAdmin\n          ? ''\n          : ' Contact your administrator to expand the capacity of the namespace.'\n      }`,\n      () => {\n        const hasQuotaExceeded = hasQuota && isResourceQuotaCapacityExceeded;\n        return !hasQuotaExceeded;\n      }\n    )\n    .test('namespaceOptionCount', emptyValue, () => !!namespaceOptionCount);\n}\n","import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useEnvironmentDeploymentOptions } from '@/react/portainer/environments/queries/useEnvironment';\nimport { useAuthorizations } from '@/react/hooks/useUser';\n\nimport { WebEditorForm } from '@@/WebEditorForm';\nimport { TextTip } from '@@/Tip/TextTip';\n\ntype StackFileContent = string;\n\ntype Props = {\n  values: StackFileContent;\n  onChange: (values: StackFileContent) => void;\n  isComposeFormat?: boolean;\n};\n\nexport function EditYamlFormSection({\n  values,\n  onChange,\n  isComposeFormat,\n}: Props) {\n  // check if the user is allowed to edit the yaml\n  const environmentId = useEnvironmentId();\n  const { data: deploymentOptions } =\n    useEnvironmentDeploymentOptions(environmentId);\n  const { authorized: roleHasAuth } = useAuthorizations('K8sYAMLW');\n  const isAllowedToEdit = roleHasAuth && !deploymentOptions?.hideWebEditor;\n  const formId = 'kubernetes-deploy-editor';\n\n  return (\n    <div>\n      <WebEditorForm\n        value={values}\n        readonly={!isAllowedToEdit}\n        titleContent={<TitleContent isComposeFormat={isComposeFormat} />}\n        onChange={(values) => onChange(values)}\n        id={formId}\n        placeholder=\"Define or paste the content of your manifest file here\"\n        yaml\n      />\n    </div>\n  );\n}\n\nfunction TitleContent({ isComposeFormat }: { isComposeFormat?: boolean }) {\n  return (\n    <>\n      {isComposeFormat && (\n        <TextTip color=\"orange\">\n          <p>\n            Portainer no longer supports{' '}\n            <a\n              href=\"https://docs.docker.com/compose/compose-file/\"\n              target=\"_blank\"\n              rel=\"noreferrer\"\n            >\n              docker-compose\n            </a>{' '}\n            format manifests for Kubernetes deployments, and we have removed the{' '}\n            <a href=\"https://kompose.io/\" target=\"_blank\" rel=\"noreferrer\">\n              Kompose\n            </a>{' '}\n            conversion tool which enables this. The reason for this is because\n            Kompose now poses a security risk, since it has a number of Common\n            Vulnerabilities and Exposures (CVEs).\n          </p>\n          <p>\n            Unfortunately, while the Kompose project has a maintainer and is\n            part of the CNCF, it is not being actively maintained. Releases are\n            very infrequent and new pull requests to the project (including ones\n            we&apos;ve submitted) are taking months to be merged, with new CVEs\n            arising in the meantime.\n          </p>\n          <p>\n            We advise installing your own instance of Kompose in a sandbox\n            environment, performing conversions of your Docker Compose files to\n            Kubernetes manifests and using those manifests to set up\n            applications.\n          </p>\n        </TextTip>\n      )}\n      {!isComposeFormat && (\n        <TextTip color=\"blue\">\n          <p>\n            This feature allows you to deploy any kind of Kubernetes resource in\n            this environment (Deployment, Secret, ConfigMap...).\n          </p>\n          <p>\n            You can get more information about Kubernetes file format in the{' '}\n            <a\n              href=\"https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/\"\n              target=\"_blank\"\n              rel=\"noreferrer\"\n            >\n              official documentation\n            </a>\n            .\n          </p>\n        </TextTip>\n      )}\n    </>\n  );\n}\n","import angular from 'angular';\n\nexport const applicationsModule = angular.module(\n  'portainer.kubernetes.react.components.applications',\n  []\n).name;\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { IngressClassDatatableAngular } from '@/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatableAngular';\nimport { NamespacesSelector } from '@/react/kubernetes/cluster/RegistryAccessView/NamespacesSelector';\nimport { NamespaceAccessUsersSelector } from '@/react/kubernetes/namespaces/AccessView/NamespaceAccessUsersSelector';\nimport { RegistriesSelector } from '@/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesSelector';\nimport { KubeServicesForm } from '@/react/kubernetes/applications/CreateView/application-services/KubeServicesForm';\nimport { kubeServicesValidation } from '@/react/kubernetes/applications/CreateView/application-services/kubeServicesValidation';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport {\n  ApplicationSummaryWidget,\n  ApplicationDetailsWidget,\n  ApplicationEventsDatatable,\n} from '@/react/kubernetes/applications/DetailsView';\nimport { ApplicationContainersDatatable } from '@/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable';\nimport {\n  PlacementFormSection,\n  placementValidation,\n} from '@/react/kubernetes/applications/components/PlacementFormSection';\nimport { ApplicationSummarySection } from '@/react/kubernetes/applications/components/ApplicationSummarySection';\nimport { withFormValidation } from '@/react-tools/withFormValidation';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { YAMLInspector } from '@/react/kubernetes/components/YAMLInspector';\nimport { ApplicationsStacksDatatable } from '@/react/kubernetes/applications/ListView/ApplicationsStacksDatatable';\nimport { NodesDatatable } from '@/react/kubernetes/cluster/HomeView/NodesDatatable';\nimport { StackName } from '@/react/kubernetes/DeployView/StackName/StackName';\nimport { StackNameLabelInsight } from '@/react/kubernetes/DeployView/StackName/StackNameLabelInsight';\nimport { SecretsFormSection } from '@/react/kubernetes/applications/components/ConfigurationsFormSection/SecretsFormSection';\nimport { configurationsValidationSchema } from '@/react/kubernetes/applications/components/ConfigurationsFormSection/configurationValidationSchema';\nimport { ConfigMapsFormSection } from '@/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigMapsFormSection';\nimport { PersistedFoldersFormSection } from '@/react/kubernetes/applications/components/PersistedFoldersFormSection';\nimport { DataAccessPolicyFormSection } from '@/react/kubernetes/applications/CreateView/DataAccessPolicyFormSection';\nimport { persistedFoldersValidation } from '@/react/kubernetes/applications/components/PersistedFoldersFormSection/persistedFoldersValidation';\nimport {\n  ResourceReservationFormSection,\n  resourceReservationValidation,\n} from '@/react/kubernetes/applications/components/ResourceReservationFormSection';\nimport {\n  ReplicationFormSection,\n  replicationValidation,\n} from '@/react/kubernetes/applications/components/ReplicationFormSection';\nimport {\n  AutoScalingFormSection,\n  autoScalingValidation,\n} from '@/react/kubernetes/applications/components/AutoScalingFormSection';\nimport { withControlledInput } from '@/react-tools/withControlledInput';\nimport {\n  NamespaceSelector,\n  namespaceSelectorValidation,\n} from '@/react/kubernetes/applications/components/NamespaceSelector';\nimport { EditYamlFormSection } from '@/react/kubernetes/applications/components/EditYamlFormSection';\nimport {\n  NameFormSection,\n  appNameValidation,\n} from '@/react/kubernetes/applications/components/NameFormSection';\nimport { deploymentTypeValidation } from '@/react/kubernetes/applications/components/AppDeploymentTypeFormSection/deploymentTypeValidation';\nimport { AppDeploymentTypeFormSection } from '@/react/kubernetes/applications/components/AppDeploymentTypeFormSection/AppDeploymentTypeFormSection';\nimport { EnvironmentVariablesFormSection } from '@/react/kubernetes/applications/components/EnvironmentVariablesFormSection/EnvironmentVariablesFormSection';\nimport { kubeEnvVarValidationSchema } from '@/react/kubernetes/applications/components/EnvironmentVariablesFormSection/kubeEnvVarValidationSchema';\nimport { HelmInsightsBox } from '@/react/kubernetes/applications/ListView/ApplicationsDatatable/HelmInsightsBox';\n\nimport { applicationsModule } from './applications';\n\nexport const ngModule = angular\n  .module('portainer.kubernetes.react.components', [applicationsModule])\n  .component(\n    'ingressClassDatatable',\n    r2a(IngressClassDatatableAngular, [\n      'onChangeControllers',\n      'description',\n      'ingressControllers',\n      'initialIngressControllers',\n      'allowNoneIngressClass',\n      'isLoading',\n      'noIngressControllerLabel',\n      'view',\n    ])\n  )\n  .component(\n    'namespacesSelector',\n    r2a(NamespacesSelector, [\n      'dataCy',\n      'inputId',\n      'name',\n      'namespaces',\n      'onChange',\n      'placeholder',\n      'value',\n    ])\n  )\n  .component('helmInsightsBox', r2a(HelmInsightsBox, []))\n  .component(\n    'namespaceAccessUsersSelector',\n    r2a(NamespaceAccessUsersSelector, [\n      'inputId',\n      'onChange',\n      'options',\n      'value',\n      'dataCy',\n      'placeholder',\n      'name',\n    ])\n  )\n  .component(\n    'createNamespaceRegistriesSelector',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(RegistriesSelector))), [\n      'inputId',\n      'onChange',\n      'options',\n      'value',\n    ])\n  )\n  .component(\n    'kubeNodesDatatable',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(NodesDatatable))), [])\n  )\n  .component(\n    'accessPolicyFormSection',\n    r2a(DataAccessPolicyFormSection, [\n      'value',\n      'onChange',\n      'isEdit',\n      'persistedFoldersUseExistingVolumes',\n    ])\n  )\n  .component(\n    'kubeYamlInspector',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(YAMLInspector))), [\n      'identifier',\n      'data',\n      'hideMessage',\n    ])\n  )\n  .component(\n    'kubeStackName',\n    r2a(\n      withControlledInput(\n        withUIRouter(\n          withReactQuery(withCurrentUser(withControlledInput(StackName)))\n        ),\n        { stackName: 'setStackName' }\n      ),\n      [\n        'setStackName',\n        'stackName',\n        'stacks',\n        'inputClassName',\n        'textTip',\n        'error',\n      ]\n    )\n  )\n  .component(\n    'stackNameLabelInsight',\n    r2a(withUIRouter(withCurrentUser(StackNameLabelInsight)), [])\n  )\n  .component(\n    'editYamlFormSection',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(EditYamlFormSection))), [\n      'values',\n      'onChange',\n      'isComposeFormat',\n    ])\n  )\n  .component(\n    'applicationSummaryWidget',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(ApplicationSummaryWidget))),\n      []\n    )\n  )\n  .component(\n    'applicationContainersDatatable',\n    r2a(\n      withUIRouter(\n        withReactQuery(withCurrentUser(ApplicationContainersDatatable))\n      ),\n      []\n    )\n  )\n  .component(\n    'applicationDetailsWidget',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(ApplicationDetailsWidget))),\n      []\n    )\n  )\n  .component(\n    'applicationEventsDatatable',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(ApplicationEventsDatatable))),\n      []\n    )\n  )\n  .component(\n    'applicationSummarySection',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(ApplicationSummarySection))),\n      ['formValues', 'oldFormValues']\n    )\n  )\n  .component(\n    'kubernetesApplicationsStacksDatatable',\n    r2a(withUIRouter(withCurrentUser(ApplicationsStacksDatatable)), [\n      'dataset',\n      'onRefresh',\n      'onRemove',\n      'namespace',\n      'namespaces',\n      'onNamespaceChange',\n      'isLoading',\n      'showSystem',\n      'setSystemResources',\n    ])\n  );\n\nexport const componentsModule = ngModule.name;\n\nwithFormValidation(\n  ngModule,\n  withUIRouter(\n    withCurrentUser(\n      withReactQuery(\n        withControlledInput(KubeServicesForm, { values: 'onChange' })\n      )\n    )\n  ),\n  'kubeServicesForm',\n  ['values', 'onChange', 'appName', 'selector', 'isEditMode', 'namespace'],\n  kubeServicesValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(\n    withUIRouter(withCurrentUser(withReactQuery(ConfigMapsFormSection))),\n    { values: 'onChange' }\n  ),\n  'configMapsFormSection',\n  ['values', 'onChange', 'namespace'],\n  configurationsValidationSchema\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(\n    withUIRouter(withCurrentUser(withReactQuery(SecretsFormSection))),\n    { values: 'onChange' }\n  ),\n  'secretsFormSection',\n  ['values', 'onChange', 'namespace'],\n  configurationsValidationSchema\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(\n    withUIRouter(withCurrentUser(withReactQuery(PersistedFoldersFormSection))),\n    { values: 'onChange' }\n  ),\n  'persistedFoldersFormSection',\n  [\n    'isEdit',\n    'applicationValues',\n    'isAddPersistentFolderButtonShown',\n    'initialValues',\n    'availableVolumes',\n  ],\n  persistedFoldersValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(\n    withUIRouter(\n      withCurrentUser(withReactQuery(ResourceReservationFormSection))\n    ),\n    { values: 'onChange' }\n  ),\n  'resourceReservationFormSection',\n  [\n    'namespaceHasQuota',\n    'resourceQuotaCapacityExceeded',\n    'minMemoryLimit',\n    'minCpuLimit',\n    'maxMemoryLimit',\n    'maxCpuLimit',\n  ],\n  resourceReservationValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(\n    withUIRouter(withCurrentUser(withReactQuery(ReplicationFormSection))),\n    { values: 'onChange' }\n  ),\n  'replicationFormSection',\n  [\n    'supportScalableReplicaDeployment',\n    'cpuLimit',\n    'memoryLimit',\n    'resourceReservationsOverflow',\n  ],\n  replicationValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(\n    withUIRouter(withCurrentUser(withReactQuery(AutoScalingFormSection))),\n    { values: 'onChange' }\n  ),\n  'autoScalingFormSection',\n  ['isMetricsEnabled'],\n  autoScalingValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withUIRouter(withCurrentUser(withReactQuery(PlacementFormSection))),\n  'placementFormSection',\n  [],\n  placementValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(withUIRouter(withCurrentUser(NamespaceSelector)), {\n    values: 'onChange',\n  }),\n  'namespaceSelector',\n  ['isEdit'],\n  namespaceSelectorValidation,\n  true\n);\n\nwithFormValidation(\n  ngModule,\n  withUIRouter(withCurrentUser(withReactQuery(NameFormSection))),\n  'nameFormSection',\n  ['isEdit'],\n  appNameValidation,\n  true\n);\n\nwithFormValidation(\n  ngModule,\n  AppDeploymentTypeFormSection,\n  'appDeploymentTypeFormSection',\n  ['supportGlobalDeployment'],\n  deploymentTypeValidation,\n  true\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(\n    withUIRouter(\n      withCurrentUser(withReactQuery(EnvironmentVariablesFormSection))\n    ),\n    { values: 'onChange' }\n  ),\n  'environmentVariablesFormSection',\n  [],\n  kubeEnvVarValidationSchema\n);\n","import _ from 'lodash';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\ninterface Namespace {\n  id: string;\n  name: string;\n}\n\ninterface Props {\n  name?: string;\n  value: string[];\n  onChange(value: string[]): void;\n  namespaces: Namespace[];\n  dataCy?: string;\n  inputId?: string;\n  placeholder?: string;\n}\n\nexport function NamespacesSelector({\n  name,\n  value,\n  onChange,\n  namespaces,\n  dataCy,\n  inputId,\n  placeholder,\n}: Props) {\n  return (\n    <Select\n      name={name}\n      isMulti\n      getOptionLabel={(namespace) => namespace.name}\n      getOptionValue={(namespace) => String(namespace.id)}\n      options={namespaces}\n      value={_.compact(\n        value.map((namespaceName) =>\n          namespaces.find((namespace) => namespace.name === namespaceName)\n        )\n      )}\n      closeMenuOnSelect={false}\n      onChange={(selectedTeams) =>\n        onChange(selectedTeams.map((namespace) => namespace.name))\n      }\n      data-cy={dataCy}\n      inputId={inputId}\n      placeholder={placeholder}\n    />\n  );\n}\n","import { InsightsBox } from '@@/InsightsBox';\n\nexport function HelmInsightsBox() {\n  return (\n    <InsightsBox\n      header=\"Helm option\"\n      content={\n        <span>\n          From 2.20 and on, the Helm menu sidebar option has moved to the{' '}\n          <strong>Create from manifest screen</strong> - accessed via the button\n          above.\n        </span>\n      }\n      insightCloseId=\"k8s-helm\"\n    />\n  );\n}\n","import { Box, Boxes } from 'lucide-react';\n\nimport { BoxSelector, BoxSelectorOption } from '@@/BoxSelector';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { AppDataAccessPolicy } from '../types';\n\ninterface Props {\n  isEdit: boolean;\n  persistedFoldersUseExistingVolumes: boolean;\n  value: AppDataAccessPolicy;\n  onChange(value: AppDataAccessPolicy): void;\n}\n\nexport function DataAccessPolicyFormSection({\n  isEdit,\n  persistedFoldersUseExistingVolumes,\n  value,\n  onChange,\n}: Props) {\n  const options = getOptions(value, isEdit, persistedFoldersUseExistingVolumes);\n\n  return (\n    <FormSection title=\"Data access policy\" titleSize=\"sm\">\n      <TextTip color=\"blue\">\n        Specify how the data will be used across instances.\n      </TextTip>\n      <BoxSelector\n        slim\n        options={options}\n        value={value}\n        onChange={onChange}\n        radioName=\"data_access_policy\"\n      />\n    </FormSection>\n  );\n}\n\nfunction getOptions(\n  value: AppDataAccessPolicy,\n  isEdit: boolean,\n  persistedFoldersUseExistingVolumes: boolean\n): ReadonlyArray<BoxSelectorOption<AppDataAccessPolicy>> {\n  return [\n    {\n      value: 'Isolated',\n      id: 'data_access_isolated',\n      icon: Boxes,\n      iconType: 'badge',\n      label: 'Isolated',\n      description:\n        'Application will be deployed as a StatefulSet with each instantiating their own data',\n      tooltip: () =>\n        isEdit || persistedFoldersUseExistingVolumes\n          ? 'Changing the data access policy is not allowed'\n          : '',\n      disabled: () =>\n        (isEdit && value !== 'Isolated') || persistedFoldersUseExistingVolumes,\n    },\n    {\n      value: 'Shared',\n      id: 'data_access_shared',\n      icon: Box,\n      iconType: 'badge',\n      label: 'Shared',\n      description:\n        'Application will be deployed as a Deployment with a shared storage access',\n      tooltip: () => {\n        if (persistedFoldersUseExistingVolumes) {\n          return 'Changing the data access policy is not allowed';\n        }\n        return '';\n      },\n      disabled: () => isEdit && value !== 'Shared',\n    },\n  ] as const;\n}\n","import { useMemo } from 'react';\n\nimport { useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { AutocompleteSelect } from '@@/form-components/AutocompleteSelect';\nimport { FormError } from '@@/form-components/FormError';\n\ntype Props = {\n  stackName: string;\n  setStackName: (name: string) => void;\n  stacks?: string[];\n  inputClassName?: string;\n  textTip?: string;\n  error?: string;\n};\n\nexport function StackName({\n  stackName,\n  setStackName,\n  stacks = [],\n  inputClassName,\n  textTip = \"Enter or select a 'stack' name to group multiple deployments together, or else leave empty to ignore.\",\n  error = '',\n}: Props) {\n  const isAdminQuery = useIsEdgeAdmin();\n  const stackResults = useMemo(\n    () => stacks.filter((stack) => stack.includes(stackName ?? '')),\n    [stacks, stackName]\n  );\n\n  const { isAdmin } = isAdminQuery;\n\n  const tooltip = (\n    <>\n      You may specify a stack name to label resources that you want to group.\n      This includes Deployments, DaemonSets, StatefulSets and Pods.\n      {isAdmin && (\n        <>\n          <br />\n          You can leave the stack name empty, or even turn off Kubernetes Stacks\n          functionality entirely via{' '}\n          <Link to=\"portainer.settings\" target=\"_blank\">\n            Kubernetes Settings\n          </Link>\n          .\n        </>\n      )}\n    </>\n  );\n\n  return (\n    <>\n      {textTip ? (\n        <TextTip className=\"mb-4\" color=\"blue\">\n          {textTip}\n        </TextTip>\n      ) : null}\n      <div className=\"form-group\">\n        <label\n          htmlFor=\"stack_name\"\n          className=\"col-lg-2 col-sm-3 control-label text-left\"\n        >\n          Stack\n          <Tooltip message={tooltip} setHtmlMessage />\n        </label>\n        <div className={inputClassName || 'col-sm-8'}>\n          <AutocompleteSelect\n            searchResults={stackResults?.map((result) => ({\n              value: result,\n              label: result,\n            }))}\n            value={stackName ?? ''}\n            onChange={setStackName}\n            placeholder=\"e.g. myStack\"\n            inputId=\"stack_name\"\n          />\n          {error ? <FormError>{error}</FormError> : null}\n        </div>\n      </div>\n    </>\n  );\n}\n","import { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { InsightsBox } from '@@/InsightsBox';\nimport { Link } from '@@/Link';\n\nexport function StackNameLabelInsight() {\n  const { isPureAdmin } = useCurrentUser();\n  const insightsBoxContent = (\n    <>\n      The stack field below was previously labelled &apos;Name&apos; but, in\n      fact, it&apos;s always been the stack name (hence the relabelling).\n      {isPureAdmin && (\n        <>\n          <br />\n          Kubernetes Stacks functionality can be turned off entirely via{' '}\n          <Link to=\"portainer.settings\" target=\"_blank\">\n            Kubernetes Settings\n          </Link>\n          .\n        </>\n      )}\n    </>\n  );\n\n  return (\n    <InsightsBox\n      type=\"slim\"\n      header=\"Stack\"\n      content={insightsBoxContent}\n      insightCloseId=\"k8s-stacks-name\"\n    />\n  );\n}\n","import { useEffect, useMemo, useState } from 'react';\nimport { FormikErrors } from 'formik';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport {\n  useIngressControllers,\n  useIngresses,\n} from '@/react/kubernetes/ingresses/queries';\n\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { ServiceFormValues, ServiceTypeOption, ServiceType } from './types';\nimport { generateUniqueName } from './utils';\nimport { ClusterIpServicesForm } from './cluster-ip/ClusterIpServicesForm';\nimport { ServiceTabs } from './components/ServiceTabs';\nimport { NodePortServicesForm } from './node-port/NodePortServicesForm';\nimport { LoadBalancerServicesForm } from './load-balancer/LoadBalancerServicesForm';\nimport { ServiceTabLabel } from './components/ServiceTabLabel';\nimport { PublishingExplaination } from './PublishingExplaination';\n\ninterface Props {\n  values: ServiceFormValues[];\n  onChange: (services: ServiceFormValues[]) => void;\n  errors?: FormikErrors<ServiceFormValues[]>;\n  appName: string;\n  selector: Record<string, string>;\n  isEditMode: boolean;\n  namespace?: string;\n}\n\nexport function KubeServicesForm({\n  values: services,\n  onChange,\n  errors,\n  appName,\n  selector,\n  isEditMode,\n  namespace,\n}: Props) {\n  const [selectedServiceType, setSelectedServiceType] =\n    useState<ServiceType>('ClusterIP');\n\n  // start loading ingresses and controllers early to reduce perceived loading time\n  const environmentId = useEnvironmentId();\n  useIngresses(environmentId, namespace ? [namespace] : []);\n  useIngressControllers(environmentId, namespace);\n\n  // when the appName changes, update the names for each service\n  // and the serviceNames for each service port\n  const newServiceNames = useMemo(\n    () => getUniqNames(appName, services),\n    [appName, services]\n  );\n  useEffect(() => {\n    if (!isEditMode) {\n      const newServices = services.map((service, index) => {\n        const newServiceName = newServiceNames[index];\n        const newServicePorts = service.Ports.map((port) => ({\n          ...port,\n          serviceName: newServiceName,\n        }));\n        return { ...service, Name: newServiceName, Ports: newServicePorts };\n      });\n      onChange(newServices);\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [appName]);\n\n  const serviceTypeCounts = useMemo(\n    () => getServiceTypeCounts(services),\n    [services]\n  );\n\n  const serviceTypeHasErrors = useMemo(\n    () => getServiceTypeHasErrors(services, errors),\n    [services, errors]\n  );\n\n  const serviceTypeOptions: ServiceTypeOption[] = [\n    {\n      value: 'ClusterIP',\n      label: (\n        <ServiceTabLabel\n          serviceTypeLabel=\"ClusterIP services\"\n          serviceTypeCount={serviceTypeCounts.ClusterIP}\n          serviceTypeHasErrors={serviceTypeHasErrors.ClusterIP}\n        />\n      ),\n    },\n    {\n      value: 'NodePort',\n      label: (\n        <ServiceTabLabel\n          serviceTypeLabel=\"NodePort services\"\n          serviceTypeCount={serviceTypeCounts.NodePort}\n          serviceTypeHasErrors={serviceTypeHasErrors.NodePort}\n        />\n      ),\n    },\n    {\n      value: 'LoadBalancer',\n      label: (\n        <ServiceTabLabel\n          serviceTypeLabel=\"LoadBalancer services\"\n          serviceTypeCount={serviceTypeCounts.LoadBalancer}\n          serviceTypeHasErrors={serviceTypeHasErrors.LoadBalancer}\n        />\n      ),\n    },\n  ];\n\n  return (\n    <div className=\"flex flex-col\">\n      <FormSection title=\"Publishing the application\" />\n      <PublishingExplaination />\n      <ServiceTabs\n        serviceTypeOptions={serviceTypeOptions}\n        selectedServiceType={selectedServiceType}\n        setSelectedServiceType={setSelectedServiceType}\n      />\n      {selectedServiceType === 'ClusterIP' && (\n        <ClusterIpServicesForm\n          services={services}\n          onChangeService={onChange}\n          errors={errors}\n          appName={appName}\n          selector={selector}\n          namespace={namespace}\n          isEditMode={isEditMode}\n        />\n      )}\n      {selectedServiceType === 'NodePort' && (\n        <NodePortServicesForm\n          services={services}\n          onChangeService={onChange}\n          errors={errors}\n          appName={appName}\n          selector={selector}\n          namespace={namespace}\n          isEditMode={isEditMode}\n        />\n      )}\n      {selectedServiceType === 'LoadBalancer' && (\n        <LoadBalancerServicesForm\n          services={services}\n          onChangeService={onChange}\n          errors={errors}\n          appName={appName}\n          selector={selector}\n          namespace={namespace}\n          isEditMode={isEditMode}\n        />\n      )}\n    </div>\n  );\n}\n\nfunction getUniqNames(appName: string, services: ServiceFormValues[]) {\n  const sortedServices = [...services].sort((a, b) =>\n    a.Name && b.Name ? a.Name.localeCompare(b.Name) : 0\n  );\n\n  const uniqueNames = sortedServices.reduce(\n    (acc: string[]) => {\n      const newIndex =\n        acc.findIndex((existingName) => existingName === appName) + 1;\n      const uniqName = acc.includes(appName)\n        ? generateUniqueName(appName, newIndex, services)\n        : appName;\n      return [...acc, uniqName];\n    },\n    [appName]\n  );\n\n  return uniqueNames;\n}\n\n/**\n * getServiceTypeCounts returns a map of service types to the number of services of that type\n */\nfunction getServiceTypeCounts(\n  services: ServiceFormValues[]\n): Record<ServiceType, number> {\n  return services.reduce(\n    (acc, service) => {\n      const type = service.Type;\n      const count = acc[type];\n      return {\n        ...acc,\n        [type]: count ? count + 1 : 1,\n      };\n    },\n    {} as Record<ServiceType, number>\n  );\n}\n\n/**\n * getServiceTypeHasErrors returns a map of service types to whether or not they have errors\n */\nfunction getServiceTypeHasErrors(\n  services: ServiceFormValues[],\n  errors: FormikErrors<ServiceFormValues[] | undefined>\n): Record<ServiceType, boolean> {\n  return services.reduce(\n    (acc, service, index) => {\n      const type = service.Type;\n      const serviceHasErrors = !!errors?.[index];\n      // if the service type already has an error, don't overwrite it\n      if (acc[type] === true) return acc;\n      // otherwise, set the error to the value of serviceHasErrors\n      return {\n        ...acc,\n        [type]: serviceHasErrors,\n      };\n    },\n    {} as Record<ServiceType, boolean>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useConfigMaps } from '@/react/kubernetes/configs/configmap.service';\n\nimport { FormSection } from '@@/form-components/FormSection/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { InputList } from '@@/form-components/InputList';\nimport { InlineLoader } from '@@/InlineLoader';\n\nimport { ConfigurationItem } from './ConfigurationItem';\nimport { ConfigurationFormValues } from './types';\n\ntype Props = {\n  values: ConfigurationFormValues[];\n  onChange: (values: ConfigurationFormValues[]) => void;\n  errors: FormikErrors<ConfigurationFormValues[]>;\n  namespace: string;\n};\n\nexport function ConfigMapsFormSection({\n  values,\n  onChange,\n  errors,\n  namespace,\n}: Props) {\n  const configMapsQuery = useConfigMaps(useEnvironmentId(), namespace);\n  const configMaps = configMapsQuery.data || [];\n\n  if (configMapsQuery.isLoading) {\n    return <InlineLoader>Loading ConfigMaps...</InlineLoader>;\n  }\n\n  return (\n    <FormSection title=\"ConfigMaps\" titleSize=\"sm\">\n      {!!values.length && (\n        <TextTip color=\"blue\">\n          Portainer will automatically expose all the keys of a ConfigMap as\n          environment variables. This behavior can be overridden to filesystem\n          mounts for each key via the override option.\n        </TextTip>\n      )}\n\n      <InputList<ConfigurationFormValues>\n        value={values}\n        onChange={onChange}\n        errors={errors}\n        isDeleteButtonHidden\n        deleteButtonDataCy=\"k8sAppCreate-configRemoveButton\"\n        addButtonDataCy=\"k8sAppCreate-configAddButton\"\n        disabled={configMaps.length === 0}\n        addButtonError={\n          configMaps.length === 0\n            ? 'There are no ConfigMaps available in this namespace.'\n            : undefined\n        }\n        renderItem={(item, onChange, index, error) => (\n          <ConfigurationItem\n            item={item}\n            onChange={onChange}\n            error={error}\n            configurations={configMaps}\n            onRemoveItem={() => onRemoveItem(index)}\n            index={index}\n            configurationType=\"ConfigMap\"\n          />\n        )}\n        itemBuilder={() => ({\n          selectedConfigMap: configMaps[0]?.metadata?.name || '',\n          overriden: false,\n          overridenKeys: [],\n          selectedConfiguration: configMaps[0],\n        })}\n        addLabel=\"Add ConfigMap\"\n      />\n    </FormSection>\n  );\n\n  function onRemoveItem(index: number) {\n    onChange(values.filter((_, i) => i !== index));\n  }\n}\n","import { FormikErrors } from 'formik';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useSecrets } from '@/react/kubernetes/configs/secret.service';\n\nimport { FormSection } from '@@/form-components/FormSection/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { InputList } from '@@/form-components/InputList';\nimport { InlineLoader } from '@@/InlineLoader';\n\nimport { ConfigurationItem } from './ConfigurationItem';\nimport { ConfigurationFormValues } from './types';\n\ntype Props = {\n  values: ConfigurationFormValues[];\n  onChange: (values: ConfigurationFormValues[]) => void;\n  errors: FormikErrors<ConfigurationFormValues[]>;\n  namespace: string;\n};\n\nexport function SecretsFormSection({\n  values,\n  onChange,\n  errors,\n  namespace,\n}: Props) {\n  const secretsQuery = useSecrets(useEnvironmentId(), namespace);\n  const secrets = secretsQuery.data || [];\n\n  if (secretsQuery.isLoading) {\n    return <InlineLoader>Loading Secrets...</InlineLoader>;\n  }\n\n  return (\n    <FormSection title=\"Secrets\" titleSize=\"sm\">\n      {!!values.length && (\n        <TextTip color=\"blue\">\n          Portainer will automatically expose all the keys of a Secret as\n          environment variables. This behavior can be overridden to filesystem\n          mounts for each key via the override option.\n        </TextTip>\n      )}\n\n      <InputList<ConfigurationFormValues>\n        value={values}\n        onChange={onChange}\n        errors={errors}\n        isDeleteButtonHidden\n        deleteButtonDataCy=\"k8sAppCreate-secretRemoveButton\"\n        addButtonDataCy=\"k8sAppCreate-secretAddButton\"\n        disabled={secrets.length === 0}\n        addButtonError={\n          secrets.length === 0\n            ? 'There are no Secrets available in this namespace.'\n            : undefined\n        }\n        renderItem={(item, onChange, index, error) => (\n          <ConfigurationItem\n            item={item}\n            onChange={onChange}\n            error={error}\n            configurations={secrets}\n            onRemoveItem={() => onRemoveItem(index)}\n            index={index}\n            configurationType=\"Secret\"\n          />\n        )}\n        itemBuilder={() => ({\n          selectedConfigMap: secrets[0]?.metadata?.name || '',\n          overriden: false,\n          overridenKeys: [],\n          selectedConfiguration: secrets[0],\n        })}\n        addLabel=\"Add Secret\"\n      />\n    </FormSection>\n  );\n\n  function onRemoveItem(index: number) {\n    onChange(values.filter((_, i) => i !== index));\n  }\n}\n","import { FormikErrors } from 'formik';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { SliderWithInput } from '@@/form-components/Slider/SliderWithInput';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormError } from '@@/form-components/FormError';\nimport { Slider } from '@@/form-components/Slider';\n\nimport { ResourceQuotaFormValues } from './types';\n\ntype Props = {\n  values: ResourceQuotaFormValues;\n  onChange: (values: ResourceQuotaFormValues) => void;\n  errors: FormikErrors<ResourceQuotaFormValues>;\n  namespaceHasQuota: boolean;\n  resourceQuotaCapacityExceeded: boolean;\n  minMemoryLimit: number;\n  minCpuLimit: number;\n  maxMemoryLimit: number;\n  maxCpuLimit: number;\n};\n\nexport function ResourceReservationFormSection({\n  values,\n  onChange,\n  errors,\n  namespaceHasQuota,\n  resourceQuotaCapacityExceeded,\n  minMemoryLimit,\n  minCpuLimit,\n  maxMemoryLimit,\n  maxCpuLimit,\n}: Props) {\n  return (\n    <FormSection title=\"Resource reservations\" titleSize=\"md\">\n      {!namespaceHasQuota && (\n        <TextTip color=\"blue\">\n          Resource reservations are applied per instance of the application.\n        </TextTip>\n      )}\n      {namespaceHasQuota && !resourceQuotaCapacityExceeded && (\n        <TextTip color=\"blue\">\n          A resource quota is set on this namespace, you must specify resource\n          reservations. Resource reservations are applied per instance of the\n          application. Maximums are inherited from the namespace quota.\n        </TextTip>\n      )}\n      <FormControl\n        className=\"flex flex-row\"\n        label=\"Memory limit (MB)\"\n        tooltip=\"An instance of this application will reserve this amount of memory. If the instance memory usage exceeds the reservation, it might be subject to OOM.\"\n      >\n        <div className=\"col-xs-10\">\n          {maxMemoryLimit > 0 && (\n            <SliderWithInput\n              value={Number(values.memoryLimit) ?? 0}\n              onChange={(value) => onChange({ ...values, memoryLimit: value })}\n              min={minMemoryLimit}\n              max={maxMemoryLimit}\n              step={128}\n              dataCy=\"k8sAppCreate-memoryLimit\"\n              visibleTooltip\n            />\n          )}\n          {errors?.memoryLimit && (\n            <FormError className=\"pt-1\">{errors.memoryLimit}</FormError>\n          )}\n        </div>\n      </FormControl>\n      <FormControl\n        className=\"flex flex-row\"\n        label=\"CPU limit\"\n        tooltip=\"An instance of this application will reserve this amount of CPU. If the instance CPU usage exceeds the reservation, it might be subject to CPU throttling.\"\n      >\n        <div className=\"col-xs-10\">\n          {maxCpuLimit > 0 && (\n            <Slider\n              onChange={(value) =>\n                onChange(\n                  typeof value === 'number'\n                    ? { ...values, cpuLimit: value }\n                    : { ...values, cpuLimit: value[0] ?? 0 }\n                )\n              }\n              value={values.cpuLimit}\n              min={minCpuLimit}\n              max={maxCpuLimit}\n              step={0.1}\n              dataCy=\"k8sAppCreate-cpuLimitSlider\"\n              visibleTooltip\n            />\n          )}\n          {errors?.cpuLimit && (\n            <FormError className=\"pt-1\">{errors.cpuLimit}</FormError>\n          )}\n        </div>\n      </FormControl>\n    </FormSection>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { round } from 'lodash';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { ReplicaCountFormValues } from './types';\n\ntype Props = {\n  values: ReplicaCountFormValues;\n  onChange: (values: ReplicaCountFormValues) => void;\n  errors: FormikErrors<ReplicaCountFormValues>;\n  cpuLimit: number;\n  memoryLimit: number;\n  resourceReservationsOverflow: boolean;\n  supportScalableReplicaDeployment: boolean;\n};\n\nexport function ReplicationFormSection({\n  values,\n  onChange,\n  errors,\n  supportScalableReplicaDeployment,\n  cpuLimit,\n  memoryLimit,\n  resourceReservationsOverflow,\n}: Props) {\n  const hasResourceLimit = cpuLimit !== 0 || memoryLimit !== 0;\n\n  return (\n    <>\n      <FormControl\n        label=\"Instance count\"\n        required\n        errors={errors?.replicaCount}\n      >\n        <Input\n          type=\"number\"\n          min=\"0\"\n          max=\"9999\"\n          value={values.replicaCount}\n          disabled={!supportScalableReplicaDeployment}\n          onChange={(e) => onChange({ replicaCount: e.target.valueAsNumber })}\n          className=\"w-1/4\"\n          data-cy=\"k8sAppCreate-replicaCountInput\"\n        />\n      </FormControl>\n      {!resourceReservationsOverflow &&\n        values.replicaCount > 1 &&\n        hasResourceLimit && (\n          <TextTip color=\"blue\">\n            This application will reserve the following resources:{' '}\n            <b>{round(cpuLimit * values.replicaCount, 2)} CPU</b> and{' '}\n            <b>{memoryLimit * values.replicaCount} MB</b> of memory.\n          </TextTip>\n        )}\n    </>\n  );\n}\n","import { SchemaOf, object } from 'yup';\n\nimport { nanNumberSchema } from '@/react-tools/yup-schemas';\n\nimport { ReplicaCountFormValues } from './types';\n\ntype ValidationData = {\n  resourceReservationsOverflow: boolean;\n  quotaExceeded: boolean;\n  nonScalableStorage: string;\n  supportScalableReplicaDeployment: boolean;\n};\n\nexport function replicationValidation(\n  validationData?: ValidationData\n): SchemaOf<ReplicaCountFormValues> {\n  const {\n    resourceReservationsOverflow,\n    quotaExceeded,\n    nonScalableStorage,\n    supportScalableReplicaDeployment,\n  } = validationData || {};\n  return object({\n    replicaCount: nanNumberSchema('Instance count is required')\n      .min(0, 'Instance count must be greater than or equal to 0.')\n      .test(\n        'overflow',\n        'This application would exceed available resources. Please review resource reservations or the instance count.',\n        (value) => {\n          // the user can't fix the error here with 1 replica. There are validation errors in the resource reservations section that are helpful in a case of resourceReservationsOverflow.\n          if (value === 1) {\n            return true;\n          }\n          return !resourceReservationsOverflow;\n        }\n      )\n      .test(\n        'quota',\n        'This application would exceed available storage. Please review the persisted folders or the instance count.',\n        () => !quotaExceeded // must not have quota exceeded\n      )\n      .test(\n        'scalable',\n        `The following storage option(s) do not support concurrent access from multiples instances: ${nonScalableStorage}. You will not be able to scale that application.`,\n        (value) => {\n          if (!value || value <= 1) {\n            return true;\n          }\n          return !!supportScalableReplicaDeployment;\n        } // must have support scalable replica deployment\n      )\n      .required('Instance count is required.'),\n  });\n}\n","import { SchemaOf, boolean, number, object } from 'yup';\n\nimport { nanNumberSchema } from '@/react-tools/yup-schemas';\n\nimport { AutoScalingFormValues } from './types';\n\ntype ValidationData = {\n  autoScalerOverflow: boolean;\n};\n\nexport function autoScalingValidation(\n  validationData?: ValidationData\n): SchemaOf<AutoScalingFormValues> {\n  const { autoScalerOverflow } = validationData || {};\n  return object({\n    isUsed: boolean().required(),\n    minReplicas: number().when('isUsed', (isUsed: boolean) =>\n      isUsed\n        ? nanNumberSchema('Minimum instances is required.')\n            .required('Minimum instances is required.')\n            .min(1, 'Minimum instances must be greater than 0.')\n            .test(\n              'maxReplicas',\n              'Minimum instances must be less than maximum instances.',\n              // eslint-disable-next-line func-names\n              function (this, value?: number): boolean {\n                if (!value) {\n                  return true;\n                }\n                const { maxReplicas } = this.parent as AutoScalingFormValues;\n                return !maxReplicas || value < maxReplicas;\n              }\n            )\n        : number()\n    ),\n    maxReplicas: number().when('isUsed', (isUsed: boolean) =>\n      isUsed\n        ? nanNumberSchema('Maximum instances is required.')\n            .required('Maximum instances is required.')\n            .test(\n              'minReplicas',\n              'Maximum instances must be greater than minimum instances.',\n              // eslint-disable-next-line func-names\n              function (this, value?: number): boolean {\n                if (!value) {\n                  return false;\n                }\n                const { minReplicas } = this.parent as AutoScalingFormValues;\n                return !minReplicas || value > minReplicas;\n              }\n            )\n            .test(\n              'overflow',\n              'This application would exceed available resources. Please reduce the maximum instances or the resource reservations.',\n              () => !autoScalerOverflow\n            )\n        : number()\n    ),\n    targetCpuUtilizationPercentage: number().when(\n      'isUsed',\n      (isUsed: boolean) =>\n        isUsed\n          ? nanNumberSchema('Target CPU utilization percentage is required.')\n              .min(0, 'Target CPU usage must be greater than 0.')\n              .max(100, 'Target CPU usage must be smaller than 100.')\n              .required('Target CPU utilization percentage is required.')\n          : number()\n    ),\n  });\n}\n","import { FormikErrors } from 'formik';\nimport { useMemo } from 'react';\n\nimport { useNodesQuery } from '@/react/kubernetes/cluster/HomeView/nodes.service';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { InputList } from '@@/form-components/InputList';\n\nimport { PlacementsFormValues, NodeLabels, Placement } from './types';\nimport { PlacementItem } from './PlacementItem';\nimport { PlacementTypeBoxSelector } from './PlacementTypeBoxSelector';\n\ntype Props = {\n  values: PlacementsFormValues;\n  onChange: (values: PlacementsFormValues) => void;\n  errors?: FormikErrors<PlacementsFormValues>;\n};\n\nexport function PlacementFormSection({ values, onChange, errors }: Props) {\n  // node labels are all of the unique node labels across all nodes\n  const nodesLabels = useNodeLabels();\n  // available node labels are the node labels that are not already in use by a placement\n  const availableNodeLabels = useAvailableNodeLabels(\n    nodesLabels,\n    values.placements\n  );\n  const firstAvailableNodeLabel = Object.keys(availableNodeLabels)[0] || '';\n  const firstAvailableNodeLabelValue =\n    availableNodeLabels[firstAvailableNodeLabel]?.[0] || '';\n  const nonDeletedPlacements = values.placements.filter(\n    (placement) => !placement.needsDeletion\n  );\n\n  return (\n    <div className=\"flex flex-col\">\n      <FormSection title=\"Placement preferences and constraints\" titleSize=\"sm\">\n        {values.placements?.length > 0 && (\n          <TextTip color=\"blue\">\n            Deploy this application on nodes that respect <b>ALL</b> of the\n            following placement rules. Placement rules are based on node labels.\n          </TextTip>\n        )}\n        <InputList\n          value={values.placements}\n          onChange={(placements) => onChange({ ...values, placements })}\n          renderItem={(item, onChange, index, error) => (\n            <PlacementItem\n              item={item}\n              onChange={onChange}\n              error={error}\n              index={index}\n              nodesLabels={nodesLabels}\n              availableNodeLabels={availableNodeLabels}\n            />\n          )}\n          itemBuilder={() => ({\n            label: firstAvailableNodeLabel,\n            value: firstAvailableNodeLabelValue,\n            needsDeletion: false,\n          })}\n          errors={errors?.placements}\n          addLabel=\"Add rule\"\n          canUndoDelete\n          deleteButtonDataCy=\"k8sAppCreate-deletePlacementButton\"\n          disabled={Object.keys(availableNodeLabels).length === 0}\n          addButtonError={\n            Object.keys(availableNodeLabels).length === 0\n              ? 'There are no node labels available to add.'\n              : ''\n          }\n        />\n      </FormSection>\n      {nonDeletedPlacements.length >= 1 && (\n        <FormSection\n          title=\"Placement policy\"\n          titleSize=\"sm\"\n          titleClassName=\"control-label !text-[0.9em]\"\n        >\n          <TextTip color=\"blue\">\n            Specify the policy associated to the placement rules.\n          </TextTip>\n          <PlacementTypeBoxSelector\n            placementType={values.placementType}\n            onChange={(placementType) => onChange({ ...values, placementType })}\n          />\n        </FormSection>\n      )}\n    </div>\n  );\n}\n\nfunction useAvailableNodeLabels(\n  nodeLabels: NodeLabels,\n  placements: Placement[]\n): NodeLabels {\n  return useMemo(() => {\n    const existingPlacementLabels = placements.map(\n      (placement) => placement.label\n    );\n    const availableNodeLabels = Object.keys(nodeLabels).filter(\n      (label) => !existingPlacementLabels.includes(label)\n    );\n    return availableNodeLabels.reduce((acc, label) => {\n      acc[label] = nodeLabels[label];\n      return acc;\n    }, {} as NodeLabels);\n  }, [nodeLabels, placements]);\n}\n\nfunction useNodeLabels(): NodeLabels {\n  const environmentId = useEnvironmentId();\n  const { data: nodes } = useNodesQuery(environmentId);\n\n  // all node label pairs (some might have the same key but different values)\n  const nodeLabelPairs =\n    nodes?.flatMap((node) =>\n      Object.entries(node.metadata?.labels || {}).map(([k, v]) => ({\n        key: k,\n        value: v,\n      }))\n    ) || [];\n\n  // create a NodeLabels object with each label key's possible values, without duplicate keys or values. e.g. { 'beta.kubernetes.io/arch': ['amd64', 'arm64'] }\n  // in multinode clusters, there can be multiple nodes with the same label key\n  const allNodesLabels = nodeLabelPairs.map((pair) => pair.key);\n  const uniqueNodesLabels = new Set(allNodesLabels);\n  const nodesLabels: NodeLabels = Array.from(uniqueNodesLabels).reduce(\n    (acc: NodeLabels, key) => {\n      // get all possible values for a given node label key\n      const allNodeValuesForKey = nodeLabelPairs\n        .filter((pair) => pair.key === key)\n        .map((pair) => pair.value);\n      // in multinode clusters, there can be duplicate values for a given key, so remove them\n      const uniqueValues = Array.from(new Set(allNodeValuesForKey));\n\n      acc[key] = uniqueValues;\n      return acc;\n    },\n    {} as NodeLabels\n  );\n\n  return nodesLabels;\n}\n","import { SchemaOf, array, boolean, mixed, object, string } from 'yup';\n\nimport { PlacementsFormValues } from './types';\n\nexport function placementsValidation(): SchemaOf<PlacementsFormValues> {\n  return object({\n    placementType: mixed().oneOf(['mandatory', 'preferred']).required(),\n    placements: array(\n      object({\n        label: string().required('Node label is required.'),\n        value: string().required('Node value is required.'),\n        needsDeletion: boolean(),\n      }).required()\n    ),\n  });\n}\n","import { FormikErrors } from 'formik';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useNamespacesQuery } from '@/react/kubernetes/namespaces/queries/useNamespacesQuery';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\ntype Props = {\n  onChange: (value: string) => void;\n  values: string;\n  errors: FormikErrors<string>;\n  isEdit: boolean;\n};\n\nexport function NamespaceSelector({\n  values: value,\n  onChange,\n  errors,\n  isEdit,\n}: Props) {\n  const environmentId = useEnvironmentId();\n  const { data: namespaces, ...namespacesQuery } =\n    useNamespacesQuery(environmentId);\n  const namespaceNames = Object.entries(namespaces ?? {})\n    .filter(([, ns]) => !ns.IsSystem)\n    .map(([nsName]) => ({\n      label: nsName,\n      value: nsName,\n    }));\n\n  return (\n    <FormControl\n      label=\"Namespace\"\n      inputId=\"namespace-selector\"\n      isLoading={namespacesQuery.isLoading}\n      errors={errors}\n    >\n      {namespaceNames.length > 0 && (\n        <PortainerSelect\n          value={value}\n          options={namespaceNames}\n          onChange={onChange}\n          disabled={isEdit}\n          noOptionsMessage={() => 'No namespaces found'}\n          placeholder=\"No namespaces found\" // will only show when there are no options\n          inputId=\"namespace-selector\"\n          data-cy=\"k8sAppCreate-nsSelect\"\n        />\n      )}\n    </FormControl>\n  );\n}\n","import { FormikErrors } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\ntype Props = {\n  onChange: (value: string) => void;\n  values: string;\n  errors: FormikErrors<string>;\n  isEdit: boolean;\n};\n\nexport function NameFormSection({\n  onChange,\n  values: appName,\n  errors,\n  isEdit,\n}: Props) {\n  return (\n    <FormControl\n      label=\"Name\"\n      inputId=\"application_name\"\n      errors={errors}\n      required\n    >\n      <Input\n        type=\"text\"\n        value={appName ?? ''}\n        onChange={(e) => onChange(e.target.value)}\n        autoFocus\n        placeholder=\"e.g. my-app\"\n        disabled={isEdit}\n        id=\"application_name\"\n        data-cy=\"k8sAppCreate-applicationName\"\n      />\n    </FormControl>\n  );\n}\n","import { SchemaOf, string as yupString } from 'yup';\n\ntype ValidationData = {\n  existingNames: string[];\n  isEdit: boolean;\n  originalName?: string;\n};\n\nexport function appNameValidation(\n  validationData?: ValidationData\n): SchemaOf<string> {\n  return yupString()\n    .required('This field is required.')\n    .test(\n      'is-unique',\n      'An application with the same name already exists inside the selected namespace.',\n      (appName) => {\n        if (!validationData || !appName) {\n          return true;\n        }\n        // if creating, check if the name is unique\n        if (!validationData.isEdit) {\n          return !validationData.existingNames.includes(appName);\n        }\n        // if editing, the original name will be in the list of existing names\n        // remove it before checking if the name is unique\n        const updatedExistingNames = validationData.existingNames.filter(\n          (name) => name !== validationData.originalName\n        );\n        return !updatedExistingNames.includes(appName);\n      }\n    )\n    .test(\n      'is-valid',\n      \"This field must consist of lower case alphanumeric characters or '-', contain at most 63 characters, start with an alphabetic character, and end with an alphanumeric character (e.g. 'my-name', or 'abc-123').\",\n      (appName) => {\n        if (!appName) {\n          return true;\n        }\n        return /^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/g.test(appName);\n      }\n    );\n}\n","import { Boxes, Sliders } from 'lucide-react';\nimport { FormikErrors } from 'formik';\n\nimport { BoxSelector, BoxSelectorOption } from '@@/BoxSelector';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormError } from '@@/form-components/FormError';\n\nimport { DeploymentType } from '../../types';\n\ninterface Props {\n  values: DeploymentType;\n  onChange(values: DeploymentType): void;\n  errors: FormikErrors<DeploymentType>;\n  supportGlobalDeployment: boolean;\n}\n\nexport function AppDeploymentTypeFormSection({\n  values,\n  onChange,\n  errors,\n  supportGlobalDeployment,\n}: Props) {\n  const options = getOptions(supportGlobalDeployment);\n\n  return (\n    <FormSection title=\"Deployment\">\n      <TextTip color=\"blue\">\n        Select how you want to deploy your application inside the cluster.\n      </TextTip>\n      <BoxSelector\n        slim\n        options={options}\n        value={values}\n        onChange={onChange}\n        radioName=\"deploymentType\"\n      />\n      {!!errors && <FormError>{errors}</FormError>}\n    </FormSection>\n  );\n}\n\nfunction getOptions(\n  supportGlobalDeployment: boolean\n): ReadonlyArray<BoxSelectorOption<DeploymentType>> {\n  return [\n    {\n      id: 'deployment_replicated',\n      label: 'Replicated',\n      value: 'Replicated',\n      icon: Sliders,\n      iconType: 'badge',\n      description: 'Run one or multiple instances of this container',\n    },\n    {\n      id: 'deployment_global',\n      disabled: () => !supportGlobalDeployment,\n      tooltip: () =>\n        !supportGlobalDeployment\n          ? 'The storage or access policy used for persisted folders cannot be used with this option'\n          : '',\n      label: 'Global',\n      description:\n        'Application will be deployed as a DaemonSet with an instance on each node of the cluster',\n      value: 'Global',\n      icon: Boxes,\n      iconType: 'badge',\n    },\n  ] as const;\n}\n","import { SchemaOf, mixed } from 'yup';\n\nimport { DeploymentType } from '../../types';\n\ntype ValidationData = {\n  isQuotaExceeded: boolean;\n};\n\nexport function deploymentTypeValidation(\n  validationData?: ValidationData\n): SchemaOf<DeploymentType> {\n  return mixed()\n    .oneOf(['Replicated', 'Global'])\n    .test(\n      'exhaused',\n      `This application would exceed available resources. Please review resource reservations or the instance count.`,\n      (value) => {\n        // ignore this validation if the user has selected Replicated, in this case, the isQuotaExceeded will below the instance count input\n        if (value === 'Replicated') {\n          return true;\n        }\n        return !validationData?.isQuotaExceeded;\n      }\n    );\n}\n","import { FormSection } from '@@/form-components/FormSection';\nimport {\n  EnvVarValues,\n  EnvironmentVariablesFieldset,\n} from '@@/form-components/EnvironmentVariablesFieldset';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\ntype Props = {\n  values: EnvVarValues;\n  onChange(value: EnvVarValues): void;\n  errors?: ArrayError<EnvVarValues>;\n};\n\nexport function EnvironmentVariablesFormSection({\n  values,\n  onChange,\n  errors,\n}: Props) {\n  return (\n    <FormSection title=\"Environment variables\" titleSize=\"sm\">\n      <div className=\"mb-4\">\n        <EnvironmentVariablesFieldset\n          values={values}\n          onChange={onChange}\n          errors={errors}\n        />\n      </div>\n    </FormSection>\n  );\n}\n","import { SchemaOf, array, bool, object, string } from 'yup';\n\nimport { EnvVar } from '@@/form-components/EnvironmentVariablesFieldset/types';\nimport { buildUniquenessTest } from '@@/form-components/validate-unique';\n\nexport function kubeEnvVarValidationSchema(): SchemaOf<EnvVar[]> {\n  return array(\n    object({\n      name: string()\n        .required('Environment variable name is required')\n        .matches(\n          /^[a-zA-Z][a-zA-Z0-9_.-]*$/,\n          `This field must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit (e.g. 'my.env-name', or 'MY_ENV.NAME', or 'MyEnvName1'`\n        ),\n      value: string().default(''),\n      needsDeletion: bool().default(false),\n      isNew: bool().default(false),\n    })\n  ).test(\n    'unique',\n    'This environment variable is already defined',\n    buildUniquenessTest(\n      () => 'This environment variable is already defined',\n      'name'\n    )\n  );\n}\n","import { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport {\n  BasicTableSettings,\n  RefreshableTableSettings,\n} from '@@/datatables/types';\n\nimport {\n  SystemResourcesSettings,\n  SystemResourcesTableSettings,\n} from './SystemResourcesSettings';\n\nexport interface TableSettings\n  extends BasicTableSettings,\n    RefreshableTableSettings,\n    SystemResourcesTableSettings {}\n\nexport function DefaultDatatableSettings({\n  settings,\n}: {\n  settings: TableSettings;\n}) {\n  return (\n    <>\n      <SystemResourcesSettings\n        value={settings.showSystemResources}\n        onChange={(value) => settings.setShowSystemResources(value)}\n      />\n\n      <TableSettingsMenuAutoRefresh\n        value={settings.autoRefreshRate}\n        onChange={handleRefreshRateChange}\n      />\n    </>\n  );\n\n  function handleRefreshRateChange(autoRefreshRate: number) {\n    settings.setAutoRefreshRate(autoRefreshRate);\n  }\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { Ingress } from '../../types';\n\nexport const columnHelper = createColumnHelper<Ingress>();\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Authorized } from '@/react/hooks/useUser';\n\nimport { Link } from '@@/Link';\nimport { Badge } from '@@/Badge';\n\nimport { Ingress } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Name', {\n  header: 'Name',\n  cell: Cell,\n  id: 'name',\n});\n\nfunction Cell({ row, getValue }: CellContext<Ingress, string>) {\n  const name = getValue();\n  const namespace = row.original.Namespace;\n\n  return (\n    <div className=\"flex flex-nowrap whitespace-nowrap\">\n      <Authorized authorizations=\"K8sIngressesW\" childrenUnauthorized={name}>\n        <Link\n          to=\"kubernetes.ingresses.edit\"\n          params={{\n            uid: row.original.UID,\n            namespace,\n            name,\n          }}\n          title={name}\n        >\n          {name}\n        </Link>\n      </Authorized>\n      {row.original.IsSystem && (\n        <Badge type=\"success\" className=\"ml-2\">\n          System\n        </Badge>\n      )}\n    </div>\n  );\n}\n","import { columnHelper } from './helper';\n\nexport const type = columnHelper.accessor('Type', {\n  header: 'Type',\n  id: 'type',\n  cell: ({ row }) => row.original.Type || '-',\n});\n","import { CellContext, Row } from '@tanstack/react-table';\n\nimport { filterHOC } from '@@/datatables/Filter';\nimport { Link } from '@@/Link';\n\nimport { Ingress } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const namespace = columnHelper.accessor('Namespace', {\n  header: 'Namespace',\n  id: 'namespace',\n  cell: Cell,\n  filterFn: (row: Row<Ingress>, columnId: string, filterValue: string[]) => {\n    if (filterValue.length === 0) {\n      return true;\n    }\n    return filterValue.includes(row.original.Namespace);\n  },\n\n  meta: {\n    filter: filterHOC('Filter by namespace'),\n  },\n  enableColumnFilter: true,\n});\n\nfunction Cell({ getValue }: CellContext<Ingress, string>) {\n  const namespace = getValue();\n  return (\n    <Link\n      to=\"kubernetes.resourcePools.resourcePool\"\n      params={{\n        id: namespace,\n      }}\n      title={namespace}\n    >\n      {namespace}\n    </Link>\n  );\n}\n","import { columnHelper } from './helper';\n\nexport const className = columnHelper.accessor('ClassName', {\n  header: 'Class Name',\n  id: 'className',\n  cell: ({ row }) => row.original.ClassName || '-',\n});\n","import { CellContext } from '@tanstack/react-table';\nimport { AlertTriangle, ArrowRight } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\nimport { Badge } from '@@/Badge';\n\nimport { Ingress, TLS } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const ingressRules = columnHelper.accessor(\n  ({ Paths, TLS }) =>\n    // return an accessor function with all the useful text to search for\n    Paths?.map((path) => {\n      const isHttp = isHTTP(TLS || [], path.Host);\n      return `${isHttp ? 'http' : 'https'}://${path.Host}${path.Path}${\n        path.ServiceName\n      }:${path.Port} ${!path.HasService && \"Service doesn't exist\"}`;\n    }).join(','),\n  {\n    header: 'Rules and Paths',\n    id: 'ingressRules',\n    cell: Cell,\n  }\n);\n\nfunction Cell({ row }: CellContext<Ingress, string>) {\n  const paths = row.original.Paths;\n\n  if (!paths) {\n    return <div />;\n  }\n\n  return (\n    <div className=\"flex flex-col gap-y-0.5 whitespace-nowrap\">\n      {paths.map((path) => (\n        <div key={`${path.Host}${path.Path}${path.ServiceName}:${path.Port}`}>\n          <span className=\"flex flex-nowrap items-center gap-1 px-2\">\n            {link(\n              path.Host,\n              path.Path,\n              isHTTP(row.original.TLS || [], path.Host)\n            )}\n            <Icon icon={ArrowRight} />\n            {`${path.ServiceName}:${path.Port}`}\n            {!path.HasService && (\n              <Badge type=\"warn\" className=\"ml-1 gap-1\">\n                <Icon icon={AlertTriangle} />\n                Service doesn&apos;t exist\n              </Badge>\n            )}\n          </span>\n        </div>\n      ))}\n    </div>\n  );\n}\n\nfunction isHTTP(TLSs: TLS[], host: string) {\n  return TLSs.filter((t) => t.Hosts.indexOf(host) !== -1).length === 0;\n}\n\nfunction link(host: string, path: string, isHttp: boolean) {\n  if (!host) {\n    return path;\n  }\n  return (\n    <a\n      href={`${isHttp ? 'http' : 'https'}://${host}${path}`}\n      target=\"_blank\"\n      rel=\"noreferrer\"\n    >\n      {`${isHttp ? 'http' : 'https'}://${host}${path}`}\n    </a>\n  );\n}\n","import { formatDate } from '@/portainer/filters/filters';\nimport { appOwnerLabel } from '@/react/kubernetes/applications/constants';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor(\n  (row) => {\n    const owner = row.Labels?.['io.portainer.kubernetes.ingress.owner'];\n    const date = formatDate(row.CreationDate);\n    return owner ? `${date} by ${owner}` : date;\n  },\n  {\n    header: 'Created',\n    cell: ({ row, getValue }) => {\n      const date = formatDate(getValue());\n      const owner =\n        row.original.Labels?.['io.portainer.kubernetes.ingress.owner'] ||\n        row.original.Labels?.[appOwnerLabel];\n\n      return owner ? `${date} by ${owner}` : date;\n    },\n    id: 'created',\n  }\n);\n","import { name } from './name';\nimport { type } from './type';\nimport { namespace } from './namespace';\nimport { className } from './className';\nimport { ingressRules } from './ingressRules';\nimport { created } from './created';\n\nexport const columns = [\n  name,\n  namespace,\n  className,\n  type,\n  ingressRules,\n  created,\n];\n","import { Plus, Trash2 } from 'lucide-react';\nimport { useRouter } from '@uirouter/react';\nimport { useMemo } from 'react';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useAuthorizations, Authorized } from '@/react/hooks/useUser';\nimport Route from '@/assets/ico/route.svg?c';\nimport { DefaultDatatableSettings } from '@/react/kubernetes/datatables/DefaultDatatableSettings';\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\nimport { SystemResourceDescription } from '@/react/kubernetes/datatables/SystemResourceDescription';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { DeleteIngressesRequest, Ingress } from '../types';\nimport { useDeleteIngresses, useIngresses } from '../queries';\nimport { useNamespacesQuery } from '../../namespaces/queries/useNamespacesQuery';\nimport { Namespaces } from '../../namespaces/types';\n\nimport { columns } from './columns';\n\nimport '../style.css';\n\ninterface SelectedIngress {\n  Namespace: string;\n  Name: string;\n}\nconst storageKey = 'ingressClassesNameSpace';\n\nconst settingsStore = createStore(storageKey);\n\nexport function IngressDatatable() {\n  const tableState = useTableState(settingsStore, storageKey);\n  const environmentId = useEnvironmentId();\n\n  const { authorized: canAccessSystemResources } = useAuthorizations(\n    'K8sAccessSystemNamespaces'\n  );\n  const { data: namespaces, ...namespacesQuery } =\n    useNamespacesQuery(environmentId);\n  const { data: ingresses, ...ingressesQuery } = useIngresses(\n    environmentId,\n    Object.keys(namespaces || {}),\n    {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n    }\n  );\n\n  const filteredIngresses = useMemo(\n    () =>\n      ingresses?.filter(\n        (ingress) =>\n          (canAccessSystemResources && tableState.showSystemResources) ||\n          !namespaces?.[ingress.Namespace].IsSystem\n      ) || [],\n    [ingresses, tableState, canAccessSystemResources, namespaces]\n  );\n\n  const ingressesWithIsSystem = useIngressesRowData(\n    filteredIngresses || [],\n    namespaces\n  );\n\n  const deleteIngressesMutation = useDeleteIngresses();\n\n  const router = useRouter();\n\n  return (\n    <Datatable\n      settingsManager={tableState}\n      dataset={ingressesWithIsSystem}\n      columns={columns}\n      isLoading={ingressesQuery.isLoading || namespacesQuery.isLoading}\n      emptyContentLabel=\"No supported ingresses found\"\n      title=\"Ingresses\"\n      titleIcon={Route}\n      getRowId={(row) => row.Name + row.Type + row.Namespace}\n      isRowSelectable={(row) => !namespaces?.[row.original.Namespace].IsSystem}\n      renderTableActions={tableActions}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <DefaultDatatableSettings settings={tableState} />\n        </TableSettingsMenu>\n      )}\n      description={\n        <SystemResourceDescription\n          showSystemResources={tableState.showSystemResources}\n        />\n      }\n      disableSelect={useCheckboxes()}\n    />\n  );\n\n  // useIngressesRowData appends the `isSyetem` property to the service data\n  function useIngressesRowData(\n    ingresses: Ingress[],\n    namespaces?: Namespaces\n  ): Ingress[] {\n    return useMemo(\n      () =>\n        ingresses.map((r) => ({\n          ...r,\n          IsSystem: namespaces ? namespaces?.[r.Namespace].IsSystem : false,\n        })),\n      [ingresses, namespaces]\n    );\n  }\n\n  function tableActions(selectedFlatRows: Ingress[]) {\n    return (\n      <div className=\"ingressDatatable-actions\">\n        <Authorized authorizations=\"AzureContainerGroupDelete\">\n          <Button\n            color=\"dangerlight\"\n            disabled={selectedFlatRows.length === 0}\n            onClick={() => handleRemoveClick(selectedFlatRows)}\n            icon={Trash2}\n          >\n            Remove\n          </Button>\n        </Authorized>\n\n        <Authorized authorizations=\"K8sIngressesW\">\n          <Link\n            to=\"kubernetes.ingresses.create\"\n            className=\"space-left no-decoration\"\n          >\n            <Button icon={Plus} color=\"secondary\">\n              Add with form\n            </Button>\n          </Link>\n        </Authorized>\n        <Authorized authorizations=\"K8sIngressesW\">\n          <Link\n            to=\"kubernetes.deploy\"\n            className=\"space-left no-decoration\"\n            params={{ referrer: 'kubernetes.ingresses' }}\n          >\n            <Button icon={Plus}>Create from manifest</Button>\n          </Link>\n        </Authorized>\n      </div>\n    );\n  }\n\n  function useCheckboxes() {\n    const { authorized } = useAuthorizations(['K8sIngressesW']);\n    return !authorized;\n  }\n\n  async function handleRemoveClick(ingresses: SelectedIngress[]) {\n    const confirmed = await confirmDelete(\n      'Are you sure you want to delete the selected ingresses?'\n    );\n    if (!confirmed) {\n      return null;\n    }\n\n    const payload: DeleteIngressesRequest = {} as DeleteIngressesRequest;\n    ingresses.forEach((ingress) => {\n      payload[ingress.Namespace] = payload[ingress.Namespace] || [];\n      payload[ingress.Namespace].push(ingress.Name);\n    });\n\n    deleteIngressesMutation.mutate(\n      { environmentId, data: payload },\n      {\n        onSuccess: () => {\n          router.stateService.reload();\n        },\n      }\n    );\n    return ingresses;\n  }\n}\n","import { ChangeEvent } from 'react';\nimport { Trash2 } from 'lucide-react';\n\nimport { FormError } from '@@/form-components/FormError';\nimport { Button } from '@@/buttons';\nimport { isArrayErrorType } from '@@/form-components/formikUtils';\n\nimport { Annotation, AnnotationErrors } from './types';\n\ninterface Props {\n  annotations: Annotation[];\n  handleAnnotationChange: (\n    index: number,\n    key: 'Key' | 'Value',\n    val: string\n  ) => void;\n  removeAnnotation: (index: number) => void;\n  errors: AnnotationErrors;\n  placeholder: string[];\n}\n\nexport function AnnotationsForm({\n  annotations,\n  handleAnnotationChange,\n  removeAnnotation,\n  errors,\n  placeholder,\n}: Props) {\n  const annotationErrors = isArrayErrorType<Annotation>(errors)\n    ? errors\n    : undefined;\n\n  return (\n    <>\n      {annotations.map((annotation, i) => (\n        <div className=\"row\" key={annotation.ID}>\n          <div className=\"form-group col-sm-4 !m-0 !pl-0\">\n            <div className=\"input-group input-group-sm\">\n              <span className=\"input-group-addon required\">Key</span>\n              <input\n                name={`annotation_key_${i}`}\n                type=\"text\"\n                className=\"form-control form-control-sm\"\n                placeholder={placeholder[0]}\n                defaultValue={annotation.Key}\n                onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                  handleAnnotationChange(i, 'Key', e.target.value)\n                }\n              />\n            </div>\n            {annotationErrors?.[i]?.Key && (\n              <FormError className=\"mt-1 !mb-0\">\n                {annotationErrors[i]?.Key}\n              </FormError>\n            )}\n          </div>\n          <div className=\"form-group col-sm-4 !m-0 !pl-0\">\n            <div className=\"input-group input-group-sm\">\n              <span className=\"input-group-addon required\">Value</span>\n              <input\n                name={`annotation_value_${i}`}\n                type=\"text\"\n                className=\"form-control form-control-sm\"\n                placeholder={placeholder[1]}\n                defaultValue={annotation.Value}\n                onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                  handleAnnotationChange(i, 'Value', e.target.value)\n                }\n              />\n            </div>\n            {annotationErrors?.[i]?.Value && (\n              <FormError className=\"mt-1 !mb-0\">\n                {annotationErrors[i]?.Value}\n              </FormError>\n            )}\n          </div>\n          <div className=\"col-sm-3 !m-0 !pl-0\">\n            <Button\n              size=\"small\"\n              color=\"dangerlight\"\n              className=\"btn-only-icon !ml-0\"\n              type=\"button\"\n              onClick={() => removeAnnotation(i)}\n              icon={Trash2}\n            />\n          </div>\n        </div>\n      ))}\n    </>\n  );\n}\n","import { ChangeEvent, useEffect } from 'react';\nimport { Plus, RefreshCw, Trash2 } from 'lucide-react';\n\nimport Route from '@/assets/ico/route.svg?c';\n\nimport { Link } from '@@/Link';\nimport { Option } from '@@/form-components/Input/Select';\nimport { FormError } from '@@/form-components/FormError';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { Button } from '@@/buttons';\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { InlineLoader } from '@@/InlineLoader';\nimport { Select } from '@@/form-components/ReactSelect';\nimport { Card } from '@@/Card';\nimport { InputGroup } from '@@/form-components/InputGroup';\n\nimport { AnnotationsForm } from '../../annotations/AnnotationsForm';\n\nimport {\n  GroupedServiceOptions,\n  IngressErrors,\n  Rule,\n  ServicePorts,\n} from './types';\n\nimport '../style.css';\n\nconst PathTypes: Record<string, string[]> = {\n  nginx: ['ImplementationSpecific', 'Prefix', 'Exact'],\n  traefik: ['Prefix', 'Exact'],\n  other: ['Prefix', 'Exact'],\n};\nconst PlaceholderAnnotations: Record<string, string[]> = {\n  nginx: ['e.g. nginx.ingress.kubernetes.io/rewrite-target', '/$1'],\n  traefik: ['e.g. traefik.ingress.kubernetes.io/router.tls', 'true'],\n  other: ['e.g. app.kubernetes.io/name', 'examplename'],\n};\n\ninterface Props {\n  environmentID: number;\n  rule: Rule;\n\n  errors: IngressErrors;\n  isEdit: boolean;\n  namespace: string;\n\n  servicePorts: ServicePorts;\n  ingressClassOptions: Option<string>[];\n  isIngressClassOptionsLoading: boolean;\n  serviceOptions: GroupedServiceOptions;\n  tlsOptions: Option<string>[];\n  namespacesOptions: Option<string>[];\n  isNamespaceOptionsLoading: boolean;\n  isIngressNamesLoading: boolean;\n\n  removeIngressRoute: (hostIndex: number, pathIndex: number) => void;\n  removeIngressHost: (hostIndex: number) => void;\n  removeAnnotation: (index: number) => void;\n\n  addNewIngressHost: (noHost?: boolean) => void;\n  addNewIngressRoute: (hostIndex: number) => void;\n  addNewAnnotation: (type?: 'rewrite' | 'regex' | 'ingressClass') => void;\n\n  handleNamespaceChange: (val: string) => void;\n  handleHostChange: (hostIndex: number, val: string) => void;\n  handleTLSChange: (hostIndex: number, tls: string) => void;\n  handleIngressChange: (\n    key: 'IngressName' | 'IngressClassName',\n    value: string\n  ) => void;\n  handleAnnotationChange: (\n    index: number,\n    key: 'Key' | 'Value',\n    val: string\n  ) => void;\n  handlePathChange: (\n    hostIndex: number,\n    pathIndex: number,\n    key: 'Route' | 'PathType' | 'ServiceName' | 'ServicePort',\n    val: string\n  ) => void;\n\n  reloadTLSCerts: () => void;\n}\n\nexport function IngressForm({\n  environmentID,\n  rule,\n  isEdit,\n  servicePorts,\n  tlsOptions,\n  handleTLSChange,\n  addNewIngressHost,\n  serviceOptions,\n  handleHostChange,\n  handleIngressChange,\n  handlePathChange,\n  addNewIngressRoute,\n  removeIngressRoute,\n  removeIngressHost,\n  addNewAnnotation,\n  removeAnnotation,\n  reloadTLSCerts,\n  handleAnnotationChange,\n  ingressClassOptions,\n  isIngressClassOptionsLoading,\n  errors,\n  namespacesOptions,\n  isNamespaceOptionsLoading,\n  isIngressNamesLoading,\n  handleNamespaceChange,\n  namespace,\n}: Props) {\n  const hasNoHostRule = rule.Hosts?.some((host) => host.NoHost);\n  const placeholderAnnotation =\n    PlaceholderAnnotations[rule.IngressType || 'other'] ||\n    PlaceholderAnnotations.other;\n  const pathTypes = PathTypes[rule.IngressType || 'other'] || PathTypes.other;\n\n  // when the namespace options update the value to an available one\n  useEffect(() => {\n    const namespaces = namespacesOptions.map((option) => option.value);\n    if (\n      !isEdit &&\n      !namespaces.includes(namespace) &&\n      namespaces.length > 0 &&\n      !isIngressNamesLoading\n    ) {\n      handleNamespaceChange(namespaces[0]);\n    }\n  }, [\n    namespacesOptions,\n    namespace,\n    handleNamespaceChange,\n    isNamespaceOptionsLoading,\n    isEdit,\n    isIngressNamesLoading,\n  ]);\n\n  return (\n    <Widget>\n      <WidgetTitle icon={Route} title=\"Ingress\" />\n      <WidgetBody key={rule.Key + rule.Namespace}>\n        <div className=\"row\">\n          <div className=\"form-horizontal\">\n            <div className=\"form-group\">\n              <label\n                className=\"control-label text-muted col-sm-3 col-lg-2\"\n                htmlFor=\"namespace\"\n              >\n                Namespace\n              </label>\n              {isNamespaceOptionsLoading && (\n                <div className=\"col-sm-4\">\n                  <InlineLoader className=\"pt-2\">\n                    Loading namespaces...\n                  </InlineLoader>\n                </div>\n              )}\n              {!isNamespaceOptionsLoading && (\n                <div className={`col-sm-4 ${isEdit && 'control-label'}`}>\n                  {isEdit ? (\n                    namespace\n                  ) : (\n                    <Select\n                      name=\"namespaces\"\n                      options={namespacesOptions}\n                      value={\n                        namespace\n                          ? { value: namespace, label: namespace }\n                          : null\n                      }\n                      isDisabled={isEdit}\n                      onChange={(val) =>\n                        handleNamespaceChange(val?.value || '')\n                      }\n                      placeholder={\n                        namespacesOptions.length\n                          ? 'Select a namespace'\n                          : 'No namespaces available'\n                      }\n                      noOptionsMessage={() => 'No namespaces available'}\n                    />\n                  )}\n                </div>\n              )}\n            </div>\n          </div>\n        </div>\n\n        {namespace && (\n          <div className=\"row\">\n            <div className=\"form-horizontal\">\n              <div className=\"form-group\">\n                <label\n                  className=\"control-label text-muted col-sm-3 col-lg-2 required\"\n                  htmlFor=\"ingress_name\"\n                >\n                  Ingress name\n                </label>\n                <div className=\"col-sm-4\">\n                  {isEdit ? (\n                    rule.IngressName\n                  ) : (\n                    <input\n                      name=\"ingress_name\"\n                      type=\"text\"\n                      className=\"form-control\"\n                      placeholder=\"Ingress name\"\n                      defaultValue={rule.IngressName}\n                      onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                        handleIngressChange('IngressName', e.target.value)\n                      }\n                      disabled={isEdit}\n                    />\n                  )}\n                  {errors.ingressName && !isEdit && (\n                    <FormError className=\"error-inline mt-1\">\n                      {errors.ingressName}\n                    </FormError>\n                  )}\n                </div>\n              </div>\n\n              <div className=\"form-group\" key={ingressClassOptions.toString()}>\n                <label\n                  className=\"control-label text-muted col-sm-3 col-lg-2 required\"\n                  htmlFor=\"ingress_class\"\n                >\n                  Ingress class\n                </label>\n                <div className=\"col-sm-4\">\n                  {isIngressClassOptionsLoading && (\n                    <InlineLoader className=\"pt-2\">\n                      Loading ingress classes...\n                    </InlineLoader>\n                  )}\n                  {!isIngressClassOptionsLoading && (\n                    <>\n                      <Select\n                        name=\"ingress_class\"\n                        placeholder={\n                          ingressClassOptions.length\n                            ? 'Select an ingress class'\n                            : 'No ingress classes available'\n                        }\n                        options={ingressClassOptions}\n                        value={\n                          rule.IngressClassName\n                            ? {\n                                label: rule.IngressClassName,\n                                value: rule.IngressClassName,\n                              }\n                            : null\n                        }\n                        onChange={(ingressClassOption) =>\n                          handleIngressChange(\n                            'IngressClassName',\n                            ingressClassOption?.value || ''\n                          )\n                        }\n                        noOptionsMessage={() => 'No ingress classes available'}\n                      />\n                      {errors.className && (\n                        <FormError className=\"error-inline mt-1\">\n                          {errors.className}\n                        </FormError>\n                      )}\n                    </>\n                  )}\n                </div>\n              </div>\n            </div>\n\n            <div className=\"col-sm-12 text-muted !mb-0 px-0\">\n              <div className=\"control-label !mb-3 text-left font-medium\">\n                Annotations\n                <Tooltip\n                  message={\n                    <div className=\"vertical-center\">\n                      <span>\n                        Allows specifying of{' '}\n                        <a\n                          href=\"https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/\"\n                          target=\"_black\"\n                        >\n                          annotations\n                        </a>{' '}\n                        for the object. See further Kubernetes documentation on{' '}\n                        <a\n                          href=\"https://kubernetes.io/docs/reference/labels-annotations-taints/\"\n                          target=\"_black\"\n                        >\n                          well-known annotations\n                        </a>\n                        .\n                      </span>\n                    </div>\n                  }\n                />\n              </div>\n            </div>\n\n            {rule?.Annotations && (\n              <AnnotationsForm\n                placeholder={placeholderAnnotation}\n                annotations={rule.Annotations}\n                handleAnnotationChange={handleAnnotationChange}\n                removeAnnotation={removeAnnotation}\n                errors={errors.annotations}\n              />\n            )}\n\n            <div className=\"col-sm-12 anntation-actions p-0\">\n              <TooltipWithChildren message=\"Use annotations to configure options for an ingress. Review Nginx or Traefik documentation to find the annotations supported by your choice of ingress type.\">\n                <span>\n                  <Button\n                    className=\"btn btn-sm btn-light !ml-0 mb-2\"\n                    onClick={() => addNewAnnotation()}\n                    icon={Plus}\n                  >\n                    {' '}\n                    Add annotation\n                  </Button>\n                </span>\n              </TooltipWithChildren>\n\n              {rule.IngressType === 'nginx' && (\n                <>\n                  <TooltipWithChildren message=\"When the exposed URLs for your applications differ from the specified paths in the ingress, use the rewrite target annotation to denote the path to redirect to.\">\n                    <span>\n                      <Button\n                        className=\"btn btn-sm btn-light mb-2 ml-2\"\n                        onClick={() => addNewAnnotation('rewrite')}\n                        icon={Plus}\n                        data-cy=\"add-rewrite-annotation\"\n                      >\n                        Add rewrite annotation\n                      </Button>\n                    </span>\n                  </TooltipWithChildren>\n\n                  <TooltipWithChildren message=\"Enable use of regular expressions in ingress paths (set in the ingress details of an application). Use this along with rewrite-target to specify the regex capturing group to be replaced, e.g. path regex of ^/foo/(,*) and rewrite-target of /bar/$1 rewrites example.com/foo/account to example.com/bar/account.\">\n                    <span>\n                      <Button\n                        className=\"btn btn-sm btn-light mb-2 ml-2\"\n                        onClick={() => addNewAnnotation('regex')}\n                        icon={Plus}\n                        data-cy=\"add-regex-annotation\"\n                      >\n                        Add regular expression annotation\n                      </Button>\n                    </span>\n                  </TooltipWithChildren>\n                </>\n              )}\n\n              {rule.IngressType === 'custom' && (\n                <Button\n                  className=\"btn btn-sm btn-light mb-2 ml-2\"\n                  onClick={() => addNewAnnotation('ingressClass')}\n                  icon={Plus}\n                  data-cy=\"add-ingress-class-annotation\"\n                >\n                  Add kubernetes.io/ingress.class annotation\n                </Button>\n              )}\n            </div>\n\n            <div className=\"col-sm-12 text-muted px-0\">Rules</div>\n          </div>\n        )}\n\n        {namespace &&\n          rule?.Hosts?.map((host, hostIndex) => (\n            <Card key={host.Key} className=\"mb-5\">\n              <div className=\"flex flex-col\">\n                <div className=\"row rule-actions\">\n                  <div className=\"col-sm-3 p-0\">\n                    {!host.NoHost ? 'Rule' : 'Fallback rule'}\n                  </div>\n                  <div className=\"col-sm-9 p-0 text-right\">\n                    <Button\n                      className=\"btn btn-sm ml-2\"\n                      color=\"dangerlight\"\n                      type=\"button\"\n                      data-cy={`k8sAppCreate-rmHostButton_${hostIndex}`}\n                      onClick={() => removeIngressHost(hostIndex)}\n                      disabled={rule.Hosts.length === 1}\n                      icon={Trash2}\n                    >\n                      Remove rule\n                    </Button>\n                  </div>\n                </div>\n                {!host.NoHost && (\n                  <div className=\"row\">\n                    <div className=\"form-group col-sm-6 col-lg-4 !pl-0 !pr-2\">\n                      <InputGroup size=\"small\">\n                        <InputGroup.Addon\n                          required\n                          as=\"label\"\n                          htmlFor={`ingress_host_${hostIndex}`}\n                        >\n                          Hostname\n                        </InputGroup.Addon>\n                        <InputGroup.Input\n                          name={`ingress_host_${hostIndex}`}\n                          id={`ingress_host_${hostIndex}`}\n                          type=\"text\"\n                          className=\"form-control form-control-sm\"\n                          placeholder=\"e.g. example.com\"\n                          defaultValue={host.Host}\n                          onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                            handleHostChange(hostIndex, e.target.value)\n                          }\n                        />\n                      </InputGroup>\n\n                      {errors[`hosts[${hostIndex}].host`] && (\n                        <FormError className=\"!mb-0 mt-1\">\n                          {errors[`hosts[${hostIndex}].host`]}\n                        </FormError>\n                      )}\n                    </div>\n\n                    <div className=\"form-group col-sm-6 col-lg-4 !pl-2 !pr-0\">\n                      <InputGroup size=\"small\">\n                        <InputGroup.Addon\n                          as=\"label\"\n                          htmlFor={`ingress_tls_${hostIndex}`}\n                        >\n                          TLS secret\n                        </InputGroup.Addon>\n                        <Select\n                          key={tlsOptions.toString() + host.Secret}\n                          name={`ingress_tls_${hostIndex}`}\n                          inputId={`ingress_tls_${hostIndex}`}\n                          options={tlsOptions}\n                          value={\n                            host.Secret !== undefined\n                              ? {\n                                  value: host.Secret,\n                                  label: host.Secret || 'No TLS',\n                                }\n                              : null\n                          }\n                          onChange={(TLSOption) =>\n                            handleTLSChange(hostIndex, TLSOption?.value || '')\n                          }\n                          placeholder={\n                            tlsOptions.length\n                              ? 'Select a TLS secret'\n                              : 'No TLS secrets available'\n                          }\n                          noOptionsMessage={() => 'No TLS secrets available'}\n                          size=\"sm\"\n                        />\n                        {!host.NoHost && (\n                          <div className=\"input-group-btn\">\n                            <Button\n                              className=\"btn btn-light btn-sm !ml-0 !rounded-l-none\"\n                              onClick={() => reloadTLSCerts()}\n                              icon={RefreshCw}\n                            />\n                          </div>\n                        )}\n                      </InputGroup>\n                    </div>\n\n                    <div className=\"col-sm-12 col-lg-4 flex h-[30px] items-center pl-2\">\n                      <TextTip color=\"blue\">\n                        You may also use the{' '}\n                        <Link\n                          to=\"kubernetes.secrets.new\"\n                          params={{ id: environmentID }}\n                          className=\"text-primary\"\n                          target=\"_blank\"\n                        >\n                          Create secret\n                        </Link>{' '}\n                        function, and reload the dropdown.\n                      </TextTip>\n                    </div>\n                  </div>\n                )}\n                {host.NoHost && (\n                  <TextTip color=\"blue\">\n                    A fallback rule has no host specified. This rule only\n                    applies when an inbound request has a hostname that does not\n                    match with any of your other rules.\n                  </TextTip>\n                )}\n\n                <div className=\"row\">\n                  <div className=\"col-sm-12 text-muted !mb-0 mt-2 px-0\">\n                    Paths\n                  </div>\n                </div>\n\n                {!host.Paths.length && (\n                  <TextTip className=\"mt-2\" color=\"blue\">\n                    You may save the ingress without a path and it will then be\n                    an <b>ingress default</b> that a user may select via the\n                    hostname dropdown in Create/Edit application.\n                  </TextTip>\n                )}\n\n                {host.Paths.map((path, pathIndex) => (\n                  <div\n                    className=\"row path !mb-5 mt-5\"\n                    key={`path_${path.Key}}`}\n                  >\n                    <div className=\"form-group col-sm-3 col-xl-2 !m-0 !pl-0\">\n                      <InputGroup size=\"small\">\n                        <InputGroup.Addon\n                          required\n                          as=\"label\"\n                          htmlFor={`ingress_service_${hostIndex}_${pathIndex}`}\n                        >\n                          Service\n                        </InputGroup.Addon>\n                        <Select\n                          key={serviceOptions.toString() + path.ServiceName}\n                          name={`ingress_service_${hostIndex}_${pathIndex}`}\n                          id={`ingress_service_${hostIndex}_${pathIndex}`}\n                          options={serviceOptions}\n                          value={\n                            path.ServiceName\n                              ? {\n                                  value: path.ServiceName,\n                                  label: getServiceLabel(\n                                    serviceOptions,\n                                    path.ServiceName\n                                  ),\n                                }\n                              : null\n                          }\n                          onChange={(serviceOption) =>\n                            handlePathChange(\n                              hostIndex,\n                              pathIndex,\n                              'ServiceName',\n                              serviceOption?.value || ''\n                            )\n                          }\n                          placeholder={\n                            serviceOptions.length\n                              ? 'Select a service'\n                              : 'No services available'\n                          }\n                          noOptionsMessage={() => 'No services available'}\n                          size=\"sm\"\n                        />\n                      </InputGroup>\n                      {errors[\n                        `hosts[${hostIndex}].paths[${pathIndex}].servicename`\n                      ] && (\n                        <FormError className=\"error-inline !mb-0 mt-1\">\n                          {\n                            errors[\n                              `hosts[${hostIndex}].paths[${pathIndex}].servicename`\n                            ]\n                          }\n                        </FormError>\n                      )}\n                    </div>\n\n                    <div className=\"form-group col-sm-2 col-xl-2 !m-0 min-w-[170px] !pl-0\">\n                      {servicePorts && (\n                        <>\n                          <InputGroup size=\"small\">\n                            <InputGroup.Addon\n                              required\n                              as=\"label\"\n                              htmlFor={`ingress_servicePort_${hostIndex}_${pathIndex}`}\n                            >\n                              Service port\n                            </InputGroup.Addon>\n                            <Select\n                              key={servicePorts.toString() + path.ServicePort}\n                              name={`ingress_servicePort_${hostIndex}_${pathIndex}`}\n                              id={`ingress_servicePort_${hostIndex}_${pathIndex}`}\n                              options={\n                                servicePorts[path.ServiceName]?.map(\n                                  (portOption) => ({\n                                    ...portOption,\n                                    value: portOption.value.toString(),\n                                  })\n                                ) || []\n                              }\n                              onChange={(option) =>\n                                handlePathChange(\n                                  hostIndex,\n                                  pathIndex,\n                                  'ServicePort',\n                                  option?.value || ''\n                                )\n                              }\n                              value={\n                                path.ServicePort\n                                  ? {\n                                      label: path.ServicePort.toString(),\n                                      value: path.ServicePort.toString(),\n                                    }\n                                  : null\n                              }\n                              placeholder={\n                                servicePorts[path.ServiceName]?.length\n                                  ? 'Select a port'\n                                  : 'No ports available'\n                              }\n                              noOptionsMessage={() => 'No ports available'}\n                              size=\"sm\"\n                            />\n                          </InputGroup>\n                          {errors[\n                            `hosts[${hostIndex}].paths[${pathIndex}].serviceport`\n                          ] && (\n                            <FormError className=\"!mb-0 mt-1\">\n                              {\n                                errors[\n                                  `hosts[${hostIndex}].paths[${pathIndex}].serviceport`\n                                ]\n                              }\n                            </FormError>\n                          )}\n                        </>\n                      )}\n                    </div>\n\n                    <div className=\"form-group col-sm-3 col-xl-2 !m-0 !pl-0\">\n                      <InputGroup size=\"small\">\n                        <InputGroup.Addon\n                          as=\"label\"\n                          htmlFor={`ingress_pathType_${hostIndex}_${pathIndex}`}\n                        >\n                          Path type\n                        </InputGroup.Addon>\n                        <Select\n                          key={servicePorts.toString() + path.PathType}\n                          name={`ingress_pathType_${hostIndex}_${pathIndex}`}\n                          id={`ingress_pathType_${hostIndex}_${pathIndex}`}\n                          options={\n                            pathTypes?.map((type) => ({\n                              label: type,\n                              value: type,\n                            })) || []\n                          }\n                          onChange={(option) =>\n                            handlePathChange(\n                              hostIndex,\n                              pathIndex,\n                              'PathType',\n                              option?.value || ''\n                            )\n                          }\n                          value={\n                            path.PathType\n                              ? {\n                                  label: path.PathType,\n                                  value: path.PathType,\n                                }\n                              : null\n                          }\n                          placeholder={\n                            pathTypes?.length\n                              ? 'Select a path type'\n                              : 'No path types available'\n                          }\n                          noOptionsMessage={() => 'No path types available'}\n                          size=\"sm\"\n                        />\n                      </InputGroup>\n                      {errors[\n                        `hosts[${hostIndex}].paths[${pathIndex}].pathType`\n                      ] && (\n                        <FormError className=\"!mb-0 mt-1\">\n                          {\n                            errors[\n                              `hosts[${hostIndex}].paths[${pathIndex}].pathType`\n                            ]\n                          }\n                        </FormError>\n                      )}\n                    </div>\n\n                    <div className=\"form-group col-sm-3 col-xl-3 !m-0 !pl-0\">\n                      <InputGroup size=\"small\">\n                        <InputGroup.Addon\n                          required\n                          as=\"label\"\n                          htmlFor={`ingress_route_${hostIndex}-${pathIndex}`}\n                        >\n                          Path\n                        </InputGroup.Addon>\n                        <InputGroup.Input\n                          className=\"form-control\"\n                          name={`ingress_route_${hostIndex}-${pathIndex}`}\n                          id={`ingress_route_${hostIndex}-${pathIndex}`}\n                          placeholder=\"/example\"\n                          data-pattern=\"/^(\\/?[a-zA-Z0-9]+([a-zA-Z0-9-/_]*[a-zA-Z0-9])?|[a-zA-Z0-9]+)|(\\/){1}$/\"\n                          data-cy={`k8sAppCreate-route_${hostIndex}-${pathIndex}`}\n                          defaultValue={path.Route}\n                          onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                            handlePathChange(\n                              hostIndex,\n                              pathIndex,\n                              'Route',\n                              e.target.value\n                            )\n                          }\n                        />\n                      </InputGroup>\n                      {errors[\n                        `hosts[${hostIndex}].paths[${pathIndex}].path`\n                      ] && (\n                        <FormError className=\"!mb-0 mt-1\">\n                          {\n                            errors[\n                              `hosts[${hostIndex}].paths[${pathIndex}].path`\n                            ]\n                          }\n                        </FormError>\n                      )}\n                    </div>\n\n                    <div className=\"form-group col-sm-1 !m-0 !pl-0\">\n                      <Button\n                        className=\"!ml-0 h-[30px]\"\n                        color=\"dangerlight\"\n                        type=\"button\"\n                        data-cy={`k8sAppCreate-rmPortButton_${hostIndex}-${pathIndex}`}\n                        onClick={() => removeIngressRoute(hostIndex, pathIndex)}\n                        icon={Trash2}\n                        size=\"small\"\n                        disabled={host.Paths.length === 1 && host.NoHost}\n                      />\n                    </div>\n                  </div>\n                ))}\n\n                <div className=\"row mt-5\">\n                  <Button\n                    className=\"!ml-0\"\n                    type=\"button\"\n                    onClick={() => addNewIngressRoute(hostIndex)}\n                    icon={Plus}\n                    size=\"small\"\n                    color=\"default\"\n                  >\n                    Add path\n                  </Button>\n                </div>\n              </div>\n            </Card>\n          ))}\n\n        {namespace && (\n          <div className=\"row rules-action p-0\">\n            <div className=\"col-sm-12 vertical-center p-0\">\n              <Button\n                className=\"!ml-0\"\n                type=\"button\"\n                onClick={() => addNewIngressHost()}\n                icon={Plus}\n                color=\"default\"\n                size=\"small\"\n              >\n                Add new host\n              </Button>\n\n              <Button\n                className=\"ml-2\"\n                type=\"button\"\n                onClick={() => addNewIngressHost(true)}\n                disabled={hasNoHostRule}\n                icon={Plus}\n                color=\"default\"\n                size=\"small\"\n              >\n                Add fallback rule\n              </Button>\n              <Tooltip message=\"A fallback rule will be applied to all requests that do not match any of the defined hosts.\" />\n            </div>\n          </div>\n        )}\n      </WidgetBody>\n    </Widget>\n  );\n}\n\nfunction getServiceLabel(options: GroupedServiceOptions, value: string) {\n  const allOptions = options.flatMap((group) => group.options);\n  const option = allOptions.find((o) => o.value === value);\n  return option?.selectedLabel || '';\n}\n","import { v4 as uuidv4 } from 'uuid';\n\nimport { SupportedIngControllerTypes } from '@/react/kubernetes/cluster/ingressClass/types';\n\nimport { TLS, Ingress } from '../types';\nimport { Annotation } from '../../annotations/types';\n\nimport { Host, Rule } from './types';\n\nconst ignoreAnnotationsForEdit = [\n  'kubectl.kubernetes.io/last-applied-configuration',\n];\n\nexport function prepareTLS(hosts: Host[]) {\n  const tls: TLS[] = [];\n  hosts.forEach((host) => {\n    if (host.Secret && host.Host) {\n      tls.push({\n        Hosts: [host.Host],\n        SecretName: host.Secret,\n      });\n    }\n  });\n  return tls;\n}\n\nexport function preparePaths(ingressName: string, hosts: Host[]) {\n  return hosts.flatMap((host) =>\n    host.Paths.map((p) => ({\n      ServiceName: p.ServiceName,\n      Host: host.Host,\n      Path: p.Route,\n      Port: p.ServicePort,\n      PathType: p.PathType || 'Prefix',\n      IngressName: ingressName,\n    }))\n  );\n}\n\nfunction getSecretByHost(host: string, tls?: TLS[]) {\n  let secret = '';\n  if (tls) {\n    tls.forEach((t) => {\n      if (t.Hosts.indexOf(host) !== -1) {\n        secret = t.SecretName;\n      }\n    });\n  }\n  return secret;\n}\n\nexport function prepareRuleHostsFromIngress(ing: Ingress) {\n  const hosts = ing.Hosts?.map((host) => {\n    const h: Host = {} as Host;\n    h.Host = host;\n    h.Secret = getSecretByHost(host, ing.TLS);\n    h.Paths = [];\n    ing.Paths?.forEach((path) => {\n      if (path.Host === host) {\n        h.Paths.push({\n          Route: path.Path,\n          ServiceName: path.ServiceName,\n          ServicePort: path.Port,\n          PathType: path.PathType,\n          Key: Math.random().toString(),\n        });\n      }\n    });\n    if (!host) {\n      h.NoHost = true;\n    }\n    h.Key = uuidv4();\n    return h;\n  });\n\n  return hosts;\n}\n\nexport function getAnnotationsForEdit(\n  annotations: Record<string, string>\n): Annotation[] {\n  const result: Annotation[] = [];\n  Object.keys(annotations).forEach((k) => {\n    if (ignoreAnnotationsForEdit.indexOf(k) === -1) {\n      result.push({\n        Key: k,\n        Value: annotations[k],\n        ID: uuidv4(),\n      });\n    }\n  });\n  return result;\n}\n\nexport function prepareRuleFromIngress(\n  ing: Ingress,\n  type?: SupportedIngControllerTypes\n): Rule {\n  return {\n    Key: uuidv4(),\n    IngressName: ing.Name,\n    Namespace: ing.Namespace,\n    IngressClassName: type === 'custom' ? 'none' : ing.ClassName,\n    Hosts: prepareRuleHostsFromIngress(ing) || [],\n    Annotations: ing.Annotations ? getAnnotationsForEdit(ing.Annotations) : [],\n    IngressType: ing.Type,\n    Labels: ing.Labels,\n  };\n}\n\nexport function checkIfPathExistsWithHost(\n  ingresses: Ingress[],\n  host: string,\n  path: string,\n  ingressName?: string\n) {\n  let exists = false;\n  ingresses.forEach((ingress) => {\n    if (ingressName && ingress.Name === ingressName) {\n      return;\n    }\n    ingress.Paths?.forEach((p) => {\n      if (p.Host === host && p.Path === path) {\n        exists = true;\n      }\n    });\n  });\n  return exists;\n}\n","import { useQuery } from 'react-query';\nimport { PersistentVolumeClaimList } from 'kubernetes-types/core/v1';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\nimport axios from '@/portainer/services/axios';\n\nimport { parseKubernetesAxiosError } from '../axiosError';\n\n// useQuery to get a list of all persistent volume claims from an array of namespaces\nexport function usePVCsQuery(\n  environmentId: EnvironmentId,\n  namespaces?: string[]\n) {\n  return useQuery(\n    ['environments', environmentId, 'kubernetes', 'pvcs'],\n    async () => {\n      if (!namespaces) {\n        return [];\n      }\n      const pvcs = await Promise.all(\n        namespaces?.map((namespace) => getPVCs(environmentId, namespace))\n      );\n      return pvcs.flat();\n    },\n    {\n      ...withError('Unable to retrieve perrsistent volume claims'),\n      enabled: !!namespaces,\n    }\n  );\n}\n\n// get all persistent volume claims for a namespace\nexport async function getPVCs(environmentId: EnvironmentId, namespace: string) {\n  try {\n    const { data } = await axios.get<PersistentVolumeClaimList>(\n      `/endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespace}/persistentvolumeclaims`\n    );\n    return data.items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(\n      e,\n      'Unable to retrieve persistent volume claims'\n    );\n  }\n}\n","import { Gauge } from 'lucide-react';\n\nimport { stripProtocol } from '@/portainer/filters/filters';\nimport { useTagsForEnvironment } from '@/portainer/tags/queries';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useEnvironment } from '@/react/portainer/environments/queries';\n\nimport { Widget, WidgetTitle, WidgetBody } from '@@/Widget';\n\nexport function EnvironmentInfo() {\n  const environmentId = useEnvironmentId();\n  const { data: environmentData, ...environmentQuery } =\n    useEnvironment(environmentId);\n  const tagsQuery = useTagsForEnvironment(environmentId);\n  const tagNames = tagsQuery.tags?.map((tag) => tag.Name).join(', ') || '-';\n\n  return (\n    <Widget>\n      <WidgetTitle icon={Gauge} title=\"Environment info\" />\n      <WidgetBody loading={environmentQuery.isLoading}>\n        {environmentQuery.isError && <div>Failed to load environment</div>}\n        {environmentData && (\n          <table className=\"table\">\n            <tbody>\n              <tr>\n                <td className=\"!border-none !pl-0\">Environment</td>\n                <td\n                  className=\"!border-none\"\n                  data-cy=\"dashboard-environmentName\"\n                >\n                  {environmentData.Name}\n                </td>\n              </tr>\n              <tr>\n                <td className=\"!border-t !pl-0\">URL</td>\n                <td className=\"!border-t\" data-cy=\"dashboard-environmenturl\">\n                  {stripProtocol(environmentData.URL) || '-'}\n                </td>\n              </tr>\n              <tr>\n                <td className=\"!pl-0\">Tags</td>\n                <td data-cy=\"dashboard-environmentTags\">{tagNames}</td>\n              </tr>\n            </tbody>\n          </table>\n        )}\n      </WidgetBody>\n    </Widget>\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { Service } from '../../../types';\n\nexport const columnHelper = createColumnHelper<Service>();\n","import { Authorized } from '@/react/hooks/useUser';\n\nimport { Badge } from '@@/Badge';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor(\n  (row) => {\n    let name = row.Name;\n\n    const isExternal =\n      !row.Labels || !row.Labels['io.portainer.kubernetes.application.owner'];\n\n    if (isExternal && !row.IsSystem) {\n      name = `${name} external`;\n    }\n\n    if (row.IsSystem) {\n      name = `${name} system`;\n    }\n    return name;\n  },\n  {\n    header: 'Name',\n    id: 'name',\n    cell: ({ row }) => {\n      const name = row.original.Name;\n\n      const isExternal =\n        !row.original.Labels ||\n        !row.original.Labels['io.portainer.kubernetes.application.owner'];\n\n      return (\n        <div className=\"flex\">\n          <Authorized authorizations=\"K8sServiceW\" childrenUnauthorized={name}>\n            {name}\n\n            {row.original.IsSystem && (\n              <Badge type=\"success\" className=\"ml-2\">\n                System\n              </Badge>\n            )}\n\n            {isExternal && !row.original.IsSystem && (\n              <Badge className=\"ml-2\">External</Badge>\n            )}\n          </Authorized>\n        </div>\n      );\n    },\n  }\n);\n","import { Row } from '@tanstack/react-table';\n\nimport { filterHOC } from '@@/datatables/Filter';\n\nimport { Service } from '../../../types';\n\nimport { columnHelper } from './helper';\n\nexport const type = columnHelper.accessor('Type', {\n  header: 'Type',\n  id: 'type',\n  meta: {\n    filter: filterHOC('Filter by type'),\n  },\n  enableColumnFilter: true,\n  filterFn: (row: Row<Service>, columnId: string, filterValue: string[]) =>\n    filterValue.length === 0 || filterValue.includes(row.original.Type),\n});\n","import { Row } from '@tanstack/react-table';\n\nimport { filterHOC } from '@/react/components/datatables/Filter';\n\nimport { Link } from '@@/Link';\n\nimport { Service } from '../../../types';\n\nimport { columnHelper } from './helper';\n\nexport const namespace = columnHelper.accessor('Namespace', {\n  header: 'Namespace',\n  id: 'namespace',\n  cell: ({ getValue }) => {\n    const namespace = getValue();\n\n    return (\n      <Link\n        to=\"kubernetes.resourcePools.resourcePool\"\n        params={{\n          id: namespace,\n        }}\n        title={namespace}\n      >\n        {namespace}\n      </Link>\n    );\n  },\n  meta: {\n    filter: filterHOC('Filter by namespace'),\n  },\n  enableColumnFilter: true,\n  filterFn: (row: Row<Service>, columnId: string, filterValue: string[]) =>\n    filterValue.length === 0 || filterValue.includes(row.original.Namespace),\n});\n","import { Tooltip } from '@@/Tip/Tooltip';\n\nimport { columnHelper } from './helper';\n\nexport const ports = columnHelper.accessor(\n  (row) =>\n    row.Ports.map(\n      (port) =>\n        `${port.Port}${port.NodePort !== 0 ? `:${port.NodePort}` : ''}/${\n          port.Protocol\n        }`\n    ).join(',') || '-',\n  {\n    header: () => (\n      <>\n        Ports\n        <Tooltip message=\"The format of Ports is port[:nodePort]/protocol. Protocol is either TCP, UDP or SCTP.\" />\n      </>\n    ),\n    id: 'ports',\n    cell: ({ row }) => {\n      if (!row.original.Ports.length) {\n        return '-';\n      }\n\n      return (\n        <>\n          {row.original.Ports.map((port, index) => {\n            if (port.NodePort !== 0) {\n              return (\n                <div key={index}>\n                  {port.Port}:{port.NodePort}/{port.Protocol}\n                </div>\n              );\n            }\n\n            return (\n              <div key={index}>\n                {port.Port}/{port.Protocol}\n              </div>\n            );\n          })}\n        </>\n      );\n    },\n    sortingFn: (rowA, rowB) => {\n      const a = rowA.original.Ports;\n      const b = rowB.original.Ports;\n\n      if (!a.length && !b.length) return 0;\n\n      if (!a.length) return 1;\n      if (!b.length) return -1;\n\n      // sort order based on first port\n      const portA = a[0].Port;\n      const portB = b[0].Port;\n\n      if (portA === portB) {\n        // longer list of ports is considered \"greater\"\n        if (a.length < b.length) return -1;\n        if (a.length > b.length) return 1;\n        return 0;\n      }\n\n      // now do a regular number sort\n      if (portA < portB) return -1;\n      if (portA > portB) return 1;\n\n      return 0;\n    },\n  }\n);\n","import { columnHelper } from './helper';\n\nexport const clusterIP = columnHelper.accessor(\n  (row) => row.ClusterIPs?.join(','),\n  {\n    header: 'Cluster IP',\n    id: 'clusterIP',\n    cell: ({ row }) => {\n      const clusterIPs = row.original.ClusterIPs;\n\n      if (!clusterIPs?.length) {\n        return '-';\n      }\n      return clusterIPs.map((ip) => <div key={ip}>{ip}</div>);\n    },\n    sortingFn: (rowA, rowB) => {\n      const a = rowA.original.ClusterIPs;\n      const b = rowB.original.ClusterIPs;\n\n      const ipA = a?.[0];\n      const ipB = b?.[0];\n\n      // no ip's at top, followed by 'None', then ordered by ip\n      if (!ipA) return 1;\n      if (!ipB) return -1;\n      if (ipA === ipB) return 0;\n      if (ipA === 'None') return 1;\n      if (ipB === 'None') return -1;\n\n      // natural sort of the ip\n      return ipA.localeCompare(\n        ipB,\n        navigator.languages[0] || navigator.language,\n        {\n          numeric: true,\n          ignorePunctuation: true,\n        }\n      );\n    },\n  }\n);\n","import { ExternalLink } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\ninterface Props {\n  to: string;\n  text: string;\n}\n\nexport function ExternalIPLink({ to, text }: Props) {\n  return (\n    <a\n      href={to}\n      target=\"_blank\"\n      rel=\"noreferrer\"\n      className=\"flex items-center gap-1\"\n    >\n      <Icon icon={ExternalLink} />\n      <span>{text}</span>\n    </a>\n  );\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Service } from '../../../types';\n\nimport { ExternalIPLink } from './ExternalIPLink';\nimport { columnHelper } from './helper';\n\nexport const externalIP = columnHelper.accessor(\n  (row) => {\n    if (row.Type === 'ExternalName') {\n      return row.ExternalName || '';\n    }\n\n    if (row.ExternalIPs?.length) {\n      return row.ExternalIPs?.join(',') || '';\n    }\n\n    return row.IngressStatus?.map((status) => status.IP).join(',') || '';\n  },\n  {\n    header: 'External IP',\n    id: 'externalIP',\n    cell: Cell,\n    sortingFn: (rowA, rowB) => {\n      const a = rowA.original.IngressStatus;\n      const b = rowB.original.IngressStatus;\n      const aExternal = rowA.original.ExternalIPs;\n      const bExternal = rowB.original.ExternalIPs;\n\n      const ipA = a?.[0].IP || aExternal?.[0] || rowA.original.ExternalName;\n      const ipB = b?.[0].IP || bExternal?.[0] || rowA.original.ExternalName;\n\n      if (!ipA) return 1;\n      if (!ipB) return -1;\n\n      // use a nat sort order for ip addresses\n      return ipA.localeCompare(\n        ipB,\n        navigator.languages[0] || navigator.language,\n        {\n          numeric: true,\n          ignorePunctuation: true,\n        }\n      );\n    },\n  }\n);\n\nfunction Cell({ row }: CellContext<Service, string>) {\n  if (row.original.Type === 'ExternalName') {\n    if (row.original.ExternalName) {\n      const linkTo = `http://${row.original.ExternalName}`;\n      return <ExternalIPLink to={linkTo} text={row.original.ExternalName} />;\n    }\n    return '-';\n  }\n\n  const [scheme, port] = getSchemeAndPort(row.original);\n  if (row.original.ExternalIPs?.length) {\n    return row.original.ExternalIPs?.map((ip, index) => {\n      // some ips come through blank\n      if (ip.length === 0) {\n        return '-';\n      }\n\n      if (scheme) {\n        let linkTo = `${scheme}://${ip}`;\n        if (port !== 80 && port !== 443) {\n          linkTo = `${linkTo}:${port}`;\n        }\n        return (\n          <div key={index}>\n            <ExternalIPLink to={linkTo} text={ip} />\n          </div>\n        );\n      }\n      return <div key={index}>{ip}</div>;\n    });\n  }\n\n  const status = row.original.IngressStatus;\n  if (status) {\n    return status?.map((status, index) => {\n      // some ips come through blank\n      if (status.IP.length === 0) {\n        return '-';\n      }\n\n      if (scheme) {\n        let linkTo = `${scheme}://${status.IP}`;\n        if (port !== 80 && port !== 443) {\n          linkTo = `${linkTo}:${port}`;\n        }\n        return (\n          <div key={index}>\n            <ExternalIPLink to={linkTo} text={status.IP} />\n          </div>\n        );\n      }\n      return <div key={index}>{status.IP}</div>;\n    });\n  }\n\n  return '-';\n}\n\n// calculate the scheme based on the ports of the service\n// favour https over http.\nfunction getSchemeAndPort(svc: Service): [string, number] {\n  let scheme = '';\n  let servicePort = 0;\n\n  svc.Ports?.forEach((port) => {\n    if (port.Protocol === 'TCP') {\n      switch (port.TargetPort) {\n        case '443':\n        case '8443':\n        case 'https':\n          scheme = 'https';\n          servicePort = port.Port;\n          break;\n\n        case '80':\n        case '8080':\n        case 'http':\n          if (scheme !== 'https') {\n            scheme = 'http';\n            servicePort = port.Port;\n          }\n          break;\n\n        default:\n          break;\n      }\n    }\n  });\n\n  return [scheme, servicePort];\n}\n","import { columnHelper } from './helper';\n\nexport const targetPorts = columnHelper.accessor(\n  (row) => row.Ports.map((port) => port.TargetPort).join(','),\n  {\n    header: 'Target Ports',\n    id: 'targetPorts',\n    cell: ({ row }) => {\n      const ports = row.original.Ports.map((port) => port.TargetPort);\n      if (!ports.length) {\n        return '-';\n      }\n\n      return ports.map((port, index) => <div key={index}>{port}</div>);\n    },\n    sortingFn: (rowA, rowB) => {\n      const a = rowA.original.Ports;\n      const b = rowB.original.Ports;\n\n      if (!a.length && !b.length) return 0;\n      if (!a.length) return 1;\n      if (!b.length) return -1;\n\n      const portA = a[0].TargetPort;\n      const portB = b[0].TargetPort;\n\n      if (portA === portB) {\n        if (a.length < b.length) return -1;\n        if (a.length > b.length) return 1;\n\n        return 0;\n      }\n\n      // natural sort of the port\n      return portA.localeCompare(\n        portB,\n        navigator.languages[0] || navigator.language,\n        {\n          numeric: true,\n          ignorePunctuation: true,\n        }\n      );\n    },\n  }\n);\n","import { name } from './name';\nimport { type } from './type';\nimport { namespace } from './namespace';\nimport { ports } from './ports';\nimport { clusterIP } from './clusterIP';\nimport { externalIP } from './externalIP';\nimport { targetPorts } from './targetPorts';\nimport { application } from './application';\nimport { created } from './created';\n\nexport const columns = [\n  name,\n  application,\n  namespace,\n  type,\n  ports,\n  targetPorts,\n  clusterIP,\n  externalIP,\n  created,\n];\n","import { CellContext } from '@tanstack/react-table';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { Link } from '@@/Link';\n\nimport { Service } from '../../../types';\n\nimport { columnHelper } from './helper';\n\nexport const application = columnHelper.accessor(\n  (row) => (row.Applications ? row.Applications[0].Name : ''),\n  {\n    header: 'Application',\n    id: 'application',\n    cell: Cell,\n  }\n);\n\nfunction Cell({ row, getValue }: CellContext<Service, string>) {\n  const appName = getValue();\n  const environmentId = useEnvironmentId();\n\n  return appName ? (\n    <Link\n      to=\"kubernetes.applications.application\"\n      params={{\n        endpointId: environmentId,\n        namespace: row.original.Namespace,\n        name: appName,\n      }}\n      title={appName}\n    >\n      {appName}\n    </Link>\n  ) : (\n    '-'\n  );\n}\n","import { formatDate } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor(\n  (row) => {\n    const owner = row.Labels?.['io.portainer.kubernetes.application.owner'];\n    const date = formatDate(row.CreationTimestamp);\n    return owner ? `${date} by ${owner}` : date;\n  },\n  {\n    header: 'Created',\n    id: 'created',\n    cell: ({ row }) => {\n      const date = formatDate(row.original.CreationTimestamp);\n\n      const owner =\n        row.original.Labels?.['io.portainer.kubernetes.application.owner'];\n\n      return owner ? `${date} by ${owner}` : date;\n    },\n  }\n);\n","import { useMemo } from 'react';\nimport { Shuffle, Trash2 } from 'lucide-react';\nimport { useRouter } from '@uirouter/react';\nimport clsx from 'clsx';\nimport { Row } from '@tanstack/react-table';\n\nimport { Namespaces } from '@/react/kubernetes/namespaces/types';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { Authorized, useAuthorizations } from '@/react/hooks/useUser';\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { pluralize } from '@/portainer/helpers/strings';\nimport { DefaultDatatableSettings } from '@/react/kubernetes/datatables/DefaultDatatableSettings';\nimport { SystemResourceDescription } from '@/react/kubernetes/datatables/SystemResourceDescription';\nimport { useNamespacesQuery } from '@/react/kubernetes/namespaces/queries/useNamespacesQuery';\n\nimport { Datatable, Table, TableSettingsMenu } from '@@/datatables';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport {\n  useMutationDeleteServices,\n  useServicesForCluster,\n} from '../../service';\nimport { Service } from '../../types';\n\nimport { columns } from './columns';\nimport { createStore } from './datatable-store';\n\nconst storageKey = 'k8sServicesDatatable';\nconst settingsStore = createStore(storageKey);\n\nexport function ServicesDatatable() {\n  const tableState = useTableState(settingsStore, storageKey);\n  const environmentId = useEnvironmentId();\n  const { data: namespaces, ...namespacesQuery } =\n    useNamespacesQuery(environmentId);\n  const namespaceNames = (namespaces && Object.keys(namespaces)) || [];\n  const { data: services, ...servicesQuery } = useServicesForCluster(\n    environmentId,\n    namespaceNames,\n    {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n      lookupApplications: true,\n    }\n  );\n\n  const { authorized: canWrite } = useAuthorizations(['K8sServiceW']);\n  const readOnly = !canWrite;\n  const { authorized: canAccessSystemResources } = useAuthorizations(\n    'K8sAccessSystemNamespaces'\n  );\n\n  const filteredServices = services?.filter(\n    (service) =>\n      (canAccessSystemResources && tableState.showSystemResources) ||\n      !namespaces?.[service.Namespace].IsSystem\n  );\n\n  const servicesWithIsSystem = useServicesRowData(\n    filteredServices || [],\n    namespaces\n  );\n\n  return (\n    <Datatable\n      dataset={servicesWithIsSystem || []}\n      columns={columns}\n      settingsManager={tableState}\n      isLoading={servicesQuery.isLoading || namespacesQuery.isLoading}\n      emptyContentLabel=\"No services found\"\n      title=\"Services\"\n      titleIcon={Shuffle}\n      getRowId={(row) => row.UID}\n      isRowSelectable={(row) => !namespaces?.[row.original.Namespace].IsSystem}\n      disableSelect={readOnly}\n      renderTableActions={(selectedRows) => (\n        <TableActions selectedItems={selectedRows} />\n      )}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <DefaultDatatableSettings settings={tableState} />\n        </TableSettingsMenu>\n      )}\n      description={\n        <SystemResourceDescription\n          showSystemResources={\n            tableState.showSystemResources || !canAccessSystemResources\n          }\n        />\n      }\n      renderRow={servicesRenderRow}\n    />\n  );\n}\n\n// useServicesRowData appends the `isSyetem` property to the service data\nfunction useServicesRowData(\n  services: Service[],\n  namespaces?: Namespaces\n): Service[] {\n  return useMemo(\n    () =>\n      services.map((service) => ({\n        ...service,\n        IsSystem: namespaces ? namespaces?.[service.Namespace].IsSystem : false,\n      })),\n    [services, namespaces]\n  );\n}\n\n// needed to apply custom styling to the row cells and not globally.\n// required in the AC's for this ticket.\nfunction servicesRenderRow(row: Row<Service>, highlightedItemId?: string) {\n  return (\n    <Table.Row<Service>\n      cells={row.getVisibleCells()}\n      className={clsx('[&>td]:!py-4 [&>td]:!align-top', {\n        active: highlightedItemId === row.id,\n      })}\n    />\n  );\n}\n\ninterface SelectedService {\n  Namespace: string;\n  Name: string;\n}\n\ntype TableActionsProps = {\n  selectedItems: Service[];\n};\n\nfunction TableActions({ selectedItems }: TableActionsProps) {\n  const environmentId = useEnvironmentId();\n  const deleteServicesMutation = useMutationDeleteServices(environmentId);\n  const router = useRouter();\n\n  async function handleRemoveClick(services: SelectedService[]) {\n    const confirmed = await confirmDelete(\n      <>\n        <p>{`Are you sure you want to remove the selected ${pluralize(\n          services.length,\n          'service'\n        )}?`}</p>\n        <ul className=\"pl-6\">\n          {services.map((s, index) => (\n            <li key={index}>\n              {s.Namespace}/{s.Name}\n            </li>\n          ))}\n        </ul>\n      </>\n    );\n    if (!confirmed) {\n      return null;\n    }\n\n    const payload: Record<string, string[]> = {};\n    services.forEach((service) => {\n      payload[service.Namespace] = payload[service.Namespace] || [];\n      payload[service.Namespace].push(service.Name);\n    });\n\n    deleteServicesMutation.mutate(\n      { environmentId, data: payload },\n      {\n        onSuccess: () => {\n          notifySuccess(\n            'Services successfully removed',\n            services.map((s) => `${s.Namespace}/${s.Name}`).join(', ')\n          );\n          router.stateService.reload();\n        },\n        onError: (error) => {\n          notifyError(\n            'Unable to delete service(s)',\n            error as Error,\n            services.map((s) => `${s.Namespace}/${s.Name}`).join(', ')\n          );\n        },\n      }\n    );\n    return services;\n  }\n\n  return (\n    <div className=\"servicesDatatable-actions\">\n      <Authorized authorizations=\"K8sServicesW\">\n        <Button\n          className=\"btn-wrapper\"\n          color=\"dangerlight\"\n          disabled={selectedItems.length === 0}\n          onClick={() => handleRemoveClick(selectedItems)}\n          icon={Trash2}\n        >\n          Remove\n        </Button>\n\n        <Link\n          to=\"kubernetes.deploy\"\n          params={{ referrer: 'kubernetes.services' }}\n          className=\"space-left hover:no-decoration\"\n        >\n          <Button className=\"btn-wrapper\" color=\"primary\" icon=\"plus\">\n            Create from manifest\n          </Button>\n        </Link>\n      </Authorized>\n    </div>\n  );\n}\n","import { TableSettings } from '@/react/kubernetes/datatables/DefaultDatatableSettings';\nimport { systemResourcesSettings } from '@/react/kubernetes/datatables/SystemResourcesSettings';\n\nimport { refreshableSettings, createPersistedStore } from '@@/datatables/types';\n\nexport function createStore(storageKey: string) {\n  return createPersistedStore<TableSettings>(storageKey, 'name', (set) => ({\n    ...refreshableSettings(set),\n    ...systemResourcesSettings(set),\n  }));\n}\n","import { RawParams } from '@uirouter/react';\nimport clsx from 'clsx';\nimport { ReactNode } from 'react';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\nexport interface Tab {\n  name: ReactNode;\n  icon: ReactNode;\n  widget: ReactNode;\n  selectedTabParam: string;\n}\n\ninterface Props {\n  currentTabIndex: number;\n  tabs: Tab[];\n}\n\n// https://www.figma.com/file/g5TUMngrblkXM7NHSyQsD1/New-UI?type=design&node-id=148-2676&mode=design&t=JKyBWBupeC5WADk6-0\nexport function WidgetTabs({ currentTabIndex, tabs }: Props) {\n  // ensure that the selectedTab param is always valid\n  const invalidQueryParamValue = tabs.every(\n    (tab) => encodeURIComponent(tab.selectedTabParam) !== tab.selectedTabParam\n  );\n\n  if (invalidQueryParamValue) {\n    throw new Error('Invalid query param value for tab');\n  }\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-sm-12 !mb-0\">\n        <div className=\"pl-2\">\n          {tabs.map(({ name, icon }, index) => (\n            <Link\n              to=\".\"\n              params={{ tab: tabs[index].selectedTabParam }}\n              key={index}\n              className={clsx(\n                'inline-flex items-center gap-2 border-0 border-b-2 border-solid bg-transparent px-4 py-2 hover:no-underline',\n                {\n                  'border-blue-8  text-blue-8 th-highcontrast:border-blue-6 th-highcontrast:text-blue-6 th-dark:border-blue-6 th-dark:text-blue-6':\n                    currentTabIndex === index,\n                  'border-transparent text-gray-7 hover:text-gray-8 th-highcontrast:text-gray-6 hover:th-highcontrast:text-gray-5 th-dark:text-gray-6 hover:th-dark:text-gray-5':\n                    currentTabIndex !== index,\n                }\n              )}\n            >\n              <Icon icon={icon} />\n              {name}\n            </Link>\n          ))}\n        </div>\n      </div>\n    </div>\n  );\n}\n\n// findSelectedTabIndex returns the index of the tab, or 0 if none is selected\nexport function findSelectedTabIndex(\n  { params }: { params: RawParams },\n  tabs: Tab[]\n) {\n  const selectedTabParam = params.tab || tabs[0].selectedTabParam;\n  const currentTabIndex = tabs.findIndex(\n    (tab) => tab.selectedTabParam === selectedTabParam\n  );\n  return currentTabIndex || 0;\n}\n","import { ConfigMap, Pod } from 'kubernetes-types/core/v1';\n\nimport { Application } from '@/react/kubernetes/applications/types';\nimport { applicationIsKind } from '@/react/kubernetes/applications/utils';\n\n// getIsConfigMapInUse returns true if the configmap is referenced by any\n// application in the cluster\nexport function getIsConfigMapInUse(\n  configMap: ConfigMap,\n  applications: Application[]\n) {\n  return applications.some((app) => {\n    const appSpec = applicationIsKind<Pod>('Pod', app)\n      ? app?.spec\n      : app?.spec?.template?.spec;\n\n    const hasEnvVarReference = appSpec?.containers.some((container) => {\n      const valueFromEnv = container.env?.some(\n        (envVar) =>\n          envVar.valueFrom?.configMapKeyRef?.name === configMap.metadata?.name\n      );\n      const envFromEnv = container.envFrom?.some(\n        (envVar) => envVar.configMapRef?.name === configMap.metadata?.name\n      );\n      return valueFromEnv || envFromEnv;\n    });\n    const hasVolumeReference = appSpec?.volumes?.some(\n      (volume) => volume.configMap?.name === configMap.metadata?.name\n    );\n\n    return hasEnvVarReference || hasVolumeReference;\n  });\n}\n","export const configurationOwnerUsernameLabel =\n  'io.portainer.kubernetes.configuration.owner';\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { ConfigMapRowData } from '../types';\n\nexport const columnHelper = createColumnHelper<ConfigMapRowData>();\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { appOwnerLabel } from '@/react/kubernetes/applications/constants';\n\nimport { Link } from '@@/Link';\nimport { Badge } from '@@/Badge';\n\nimport { ConfigMapRowData } from '../types';\nimport { configurationOwnerUsernameLabel } from '../../../constants';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor(\n  (row) => {\n    const name = row.metadata?.name;\n\n    const isSystemToken = name?.includes('default-token-');\n    const isSystemConfigMap = isSystemToken || row.isSystem;\n\n    const hasConfigurationOwner = !!(\n      row.metadata?.labels?.[configurationOwnerUsernameLabel] ||\n      row.metadata?.labels?.[appOwnerLabel]\n    );\n\n    return `${name} ${isSystemConfigMap ? 'system' : ''} ${\n      !isSystemToken && !hasConfigurationOwner ? 'external' : ''\n    } ${!row.inUse && !isSystemConfigMap ? 'unused' : ''}`;\n  },\n  {\n    header: 'Name',\n    cell: Cell,\n    id: 'name',\n  }\n);\n\nfunction Cell({ row }: CellContext<ConfigMapRowData, string>) {\n  const name = row.original.metadata?.name;\n\n  const isSystemToken = name?.includes('default-token-');\n  const isSystemConfigMap = isSystemToken || row.original.isSystem;\n\n  const hasConfigurationOwner = !!(\n    row.original.metadata?.labels?.[configurationOwnerUsernameLabel] ||\n    row.original.metadata?.labels?.[appOwnerLabel]\n  );\n\n  return (\n    <Authorized authorizations=\"K8sConfigMapsR\" childrenUnauthorized={name}>\n      <div className=\"flex\">\n        <Link\n          to=\"kubernetes.configmaps.configmap\"\n          params={{\n            namespace: row.original.metadata?.namespace,\n            name,\n          }}\n          title={name}\n          className=\"w-fit max-w-xs truncate xl:max-w-sm 2xl:max-w-md\"\n        >\n          {name}\n        </Link>\n        {isSystemConfigMap && (\n          <Badge type=\"success\" className=\"ml-2\">\n            System\n          </Badge>\n        )}\n        {!isSystemToken && !hasConfigurationOwner && (\n          <Badge className=\"ml-2\">External</Badge>\n        )}\n        {!row.original.inUse && !isSystemConfigMap && (\n          <Badge type=\"warn\" className=\"ml-2\">\n            Unused\n          </Badge>\n        )}\n      </div>\n    </Authorized>\n  );\n}\n","import { Row } from '@tanstack/react-table';\n\nimport { filterHOC } from '@/react/components/datatables/Filter';\n\nimport { Link } from '@@/Link';\n\nimport { ConfigMapRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const namespace = columnHelper.accessor(\n  (row) => row.metadata?.namespace,\n  {\n    header: 'Namespace',\n    id: 'namespace',\n    cell: ({ getValue }) => {\n      const namespace = getValue();\n\n      return (\n        <Link\n          to=\"kubernetes.resourcePools.resourcePool\"\n          params={{\n            id: namespace,\n          }}\n          title={namespace}\n        >\n          {namespace}\n        </Link>\n      );\n    },\n    meta: {\n      filter: filterHOC('Filter by namespace'),\n    },\n    enableColumnFilter: true,\n    filterFn: (\n      row: Row<ConfigMapRowData>,\n      _columnId: string,\n      filterValue: string[]\n    ) =>\n      filterValue.length === 0 ||\n      filterValue.includes(row.original.metadata?.namespace ?? ''),\n  }\n);\n","import { formatDate } from '@/portainer/filters/filters';\nimport { appOwnerLabel } from '@/react/kubernetes/applications/constants';\n\nimport { ConfigMapRowData } from '../types';\nimport { configurationOwnerUsernameLabel } from '../../../constants';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor((row) => getCreatedAtText(row), {\n  header: 'Created',\n  id: 'created',\n  cell: ({ row }) => getCreatedAtText(row.original),\n});\n\nfunction getCreatedAtText(row: ConfigMapRowData) {\n  const owner =\n    row.metadata?.labels?.[configurationOwnerUsernameLabel] ||\n    row.metadata?.labels?.[appOwnerLabel];\n  const date = formatDate(row.metadata?.creationTimestamp);\n  return owner ? `${date} by ${owner}` : date;\n}\n","import { name } from './name';\nimport { namespace } from './namespace';\nimport { created } from './created';\n\nexport const columns = [name, namespace, created];\n","import { useMemo } from 'react';\nimport { FileCode, Plus, Trash2 } from 'lucide-react';\nimport { ConfigMap } from 'kubernetes-types/core/v1';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { Authorized, useAuthorizations } from '@/react/hooks/useUser';\nimport { DefaultDatatableSettings } from '@/react/kubernetes/datatables/DefaultDatatableSettings';\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\nimport { SystemResourceDescription } from '@/react/kubernetes/datatables/SystemResourceDescription';\nimport { useApplicationsQuery } from '@/react/kubernetes/applications/application.queries';\nimport { Application } from '@/react/kubernetes/applications/types';\nimport { pluralize } from '@/portainer/helpers/strings';\nimport { useNamespacesQuery } from '@/react/kubernetes/namespaces/queries/useNamespacesQuery';\nimport { Namespaces } from '@/react/kubernetes/namespaces/types';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport {\n  useConfigMapsForCluster,\n  useMutationDeleteConfigMaps,\n} from '../../configmap.service';\nimport { IndexOptional } from '../../types';\n\nimport { getIsConfigMapInUse } from './utils';\nimport { ConfigMapRowData } from './types';\nimport { columns } from './columns';\n\nconst storageKey = 'k8sConfigMapsDatatable';\nconst settingsStore = createStore(storageKey);\n\nexport function ConfigMapsDatatable() {\n  const tableState = useTableState(settingsStore, storageKey);\n  const { authorized: canWrite } = useAuthorizations(['K8sConfigMapsW']);\n  const readOnly = !canWrite;\n  const { authorized: canAccessSystemResources } = useAuthorizations(\n    'K8sAccessSystemNamespaces'\n  );\n\n  const environmentId = useEnvironmentId();\n  const { data: namespaces, ...namespacesQuery } = useNamespacesQuery(\n    environmentId,\n    {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n    }\n  );\n  const namespaceNames = Object.keys(namespaces || {});\n  const { data: configMaps, ...configMapsQuery } = useConfigMapsForCluster(\n    environmentId,\n    namespaceNames,\n    {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n    }\n  );\n  const { data: applications, ...applicationsQuery } = useApplicationsQuery(\n    environmentId,\n    namespaceNames\n  );\n\n  const filteredConfigMaps = useMemo(\n    () =>\n      configMaps?.filter(\n        (configMap) =>\n          (canAccessSystemResources && tableState.showSystemResources) ||\n          !namespaces?.[configMap.metadata?.namespace ?? '']?.IsSystem\n      ) || [],\n    [configMaps, tableState, canAccessSystemResources, namespaces]\n  );\n  const configMapRowData = useConfigMapRowData(\n    filteredConfigMaps,\n    applications ?? [],\n    applicationsQuery.isLoading,\n    namespaces\n  );\n\n  return (\n    <Datatable<IndexOptional<ConfigMapRowData>>\n      dataset={configMapRowData}\n      columns={columns}\n      settingsManager={tableState}\n      isLoading={configMapsQuery.isLoading || namespacesQuery.isLoading}\n      emptyContentLabel=\"No ConfigMaps found\"\n      title=\"ConfigMaps\"\n      titleIcon={FileCode}\n      getRowId={(row) => row.metadata?.uid ?? ''}\n      isRowSelectable={(row) =>\n        !namespaces?.[row.original.metadata?.namespace ?? ''].IsSystem\n      }\n      disableSelect={readOnly}\n      renderTableActions={(selectedRows) => (\n        <TableActions selectedItems={selectedRows} />\n      )}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <DefaultDatatableSettings settings={tableState} />\n        </TableSettingsMenu>\n      )}\n      description={\n        <SystemResourceDescription\n          showSystemResources={tableState.showSystemResources}\n        />\n      }\n    />\n  );\n}\n\n// useConfigMapRowData appends the `inUse` property to the ConfigMap data (for the unused badge in the name column)\n// and wraps with useMemo to prevent unnecessary calculations\nfunction useConfigMapRowData(\n  configMaps: ConfigMap[],\n  applications: Application[],\n  applicationsLoading: boolean,\n  namespaces?: Namespaces\n): ConfigMapRowData[] {\n  return useMemo(\n    () =>\n      configMaps.map((configMap) => ({\n        ...configMap,\n        inUse:\n          // if the apps are loading, set inUse to true to hide the 'unused' badge\n          applicationsLoading || getIsConfigMapInUse(configMap, applications),\n        isSystem: namespaces\n          ? namespaces?.[configMap.metadata?.namespace ?? '']?.IsSystem\n          : false,\n      })),\n    [configMaps, applicationsLoading, applications, namespaces]\n  );\n}\n\nfunction TableActions({\n  selectedItems,\n}: {\n  selectedItems: ConfigMapRowData[];\n}) {\n  const environmentId = useEnvironmentId();\n  const deleteConfigMapMutation = useMutationDeleteConfigMaps(environmentId);\n\n  async function handleRemoveClick(configMaps: ConfigMap[]) {\n    const confirmed = await confirmDelete(\n      `Are you sure you want to remove the selected ${pluralize(\n        configMaps.length,\n        'ConfigMap'\n      )}?`\n    );\n    if (!confirmed) {\n      return;\n    }\n\n    const configMapsToDelete = configMaps.map((configMap) => ({\n      namespace: configMap.metadata?.namespace ?? '',\n      name: configMap.metadata?.name ?? '',\n    }));\n\n    await deleteConfigMapMutation.mutateAsync(configMapsToDelete);\n  }\n\n  return (\n    <Authorized authorizations=\"K8sConfigMapsW\">\n      <Button\n        className=\"btn-wrapper\"\n        color=\"dangerlight\"\n        disabled={selectedItems.length === 0}\n        onClick={async () => {\n          handleRemoveClick(selectedItems);\n        }}\n        icon={Trash2}\n        data-cy=\"k8sConfig-removeConfigButton\"\n      >\n        Remove\n      </Button>\n      <Link to=\"kubernetes.configmaps.new\" className=\"ml-1\">\n        <Button\n          className=\"btn-wrapper\"\n          color=\"secondary\"\n          icon={Plus}\n          data-cy=\"k8sConfig-addConfigWithFormButton\"\n        >\n          Add with form\n        </Button>\n      </Link>\n      <Link\n        to=\"kubernetes.deploy\"\n        params={{\n          referrer: 'kubernetes.configurations',\n          tab: 'configmaps',\n        }}\n        className=\"ml-1\"\n        data-cy=\"k8sConfig-deployFromManifestButton\"\n      >\n        <Button className=\"btn-wrapper\" color=\"primary\" icon={Plus}>\n          Create from manifest\n        </Button>\n      </Link>\n    </Authorized>\n  );\n}\n","import { Secret, Pod } from 'kubernetes-types/core/v1';\n\nimport { Application } from '@/react/kubernetes/applications/types';\nimport { applicationIsKind } from '@/react/kubernetes/applications/utils';\n\n// getIsSecretInUse returns true if the secret is referenced by any\n// application in the cluster\nexport function getIsSecretInUse(secret: Secret, applications: Application[]) {\n  return applications.some((app) => {\n    const appSpec = applicationIsKind<Pod>('Pod', app)\n      ? app?.spec\n      : app?.spec?.template?.spec;\n\n    const hasEnvVarReference = appSpec?.containers.some((container) => {\n      const valueFromEnv = container.env?.some(\n        (envVar) =>\n          envVar.valueFrom?.secretKeyRef?.name === secret.metadata?.name\n      );\n      const envFromEnv = container.envFrom?.some(\n        (envVar) => envVar.secretRef?.name === secret.metadata?.name\n      );\n      return valueFromEnv || envFromEnv;\n    });\n    const hasVolumeReference = appSpec?.volumes?.some(\n      (volume) => volume.secret?.secretName === secret.metadata?.name\n    );\n\n    return hasEnvVarReference || hasVolumeReference;\n  });\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { SecretRowData } from '../types';\n\nexport const columnHelper = createColumnHelper<SecretRowData>();\n","import { CellContext } from '@tanstack/react-table';\n\nimport { Authorized } from '@/react/hooks/useUser';\nimport { appOwnerLabel } from '@/react/kubernetes/applications/constants';\n\nimport { Link } from '@@/Link';\nimport { Badge } from '@@/Badge';\n\nimport { SecretRowData } from '../types';\nimport { configurationOwnerUsernameLabel } from '../../../constants';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor(\n  (row) => {\n    const name = row.metadata?.name;\n    const isSystemToken = name?.includes('default-token-');\n\n    const isRegistrySecret =\n      row.metadata?.annotations?.['portainer.io/registry.id'];\n    const isSystemSecret = isSystemToken || row.isSystem || isRegistrySecret;\n\n    const hasConfigurationOwner = !!(\n      row.metadata?.labels?.[configurationOwnerUsernameLabel] ||\n      row.metadata?.labels?.[appOwnerLabel]\n    );\n    return `${name} ${isSystemSecret ? 'system' : ''} ${\n      !isSystemToken && !hasConfigurationOwner ? 'external' : ''\n    } ${!row.inUse && !isSystemSecret ? 'unused' : ''}`;\n  },\n  {\n    header: 'Name',\n    cell: Cell,\n    id: 'name',\n  }\n);\n\nfunction Cell({ row }: CellContext<SecretRowData, string>) {\n  const name = row.original.metadata?.name;\n\n  const isSystemToken = name?.includes('default-token-');\n  const isSystemSecret = isSystemToken || row.original.isSystem;\n\n  const hasConfigurationOwner = !!(\n    row.original.metadata?.labels?.[configurationOwnerUsernameLabel] ||\n    row.original.metadata?.labels?.[appOwnerLabel]\n  );\n\n  return (\n    <Authorized authorizations=\"K8sSecretsR\" childrenUnauthorized={name}>\n      <div className=\"flex w-fit\">\n        <Link\n          to=\"kubernetes.secrets.secret\"\n          params={{\n            namespace: row.original.metadata?.namespace,\n            name,\n          }}\n          title={name}\n          className=\"w-fit max-w-xs truncate xl:max-w-sm 2xl:max-w-md\"\n        >\n          {name}\n        </Link>\n        {isSystemSecret && (\n          <Badge type=\"success\" className=\"ml-2\">\n            System\n          </Badge>\n        )}\n        {!isSystemToken && !hasConfigurationOwner && (\n          <Badge className=\"ml-2\">External</Badge>\n        )}\n        {!row.original.inUse && !isSystemSecret && (\n          <Badge type=\"warn\" className=\"ml-2\">\n            Unused\n          </Badge>\n        )}\n      </div>\n    </Authorized>\n  );\n}\n","import { Row } from '@tanstack/react-table';\n\nimport { filterHOC } from '@/react/components/datatables/Filter';\n\nimport { Link } from '@@/Link';\n\nimport { SecretRowData } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const namespace = columnHelper.accessor(\n  (row) => row.metadata?.namespace,\n  {\n    header: 'Namespace',\n    id: 'namespace',\n    cell: ({ getValue }) => {\n      const namespace = getValue();\n\n      return (\n        <Link\n          to=\"kubernetes.resourcePools.resourcePool\"\n          params={{\n            id: namespace,\n          }}\n          title={namespace}\n        >\n          {namespace}\n        </Link>\n      );\n    },\n    meta: {\n      filter: filterHOC('Filter by namespace'),\n    },\n    enableColumnFilter: true,\n    filterFn: (\n      row: Row<SecretRowData>,\n      _columnId: string,\n      filterValue: string[]\n    ) =>\n      filterValue.length === 0 ||\n      filterValue.includes(row.original.metadata?.namespace ?? ''),\n  }\n);\n","import { formatDate } from '@/portainer/filters/filters';\nimport { appOwnerLabel } from '@/react/kubernetes/applications/constants';\n\nimport { SecretRowData } from '../types';\nimport { configurationOwnerUsernameLabel } from '../../../constants';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor((row) => getCreatedAtText(row), {\n  header: 'Created',\n  id: 'created',\n  cell: ({ row }) => getCreatedAtText(row.original),\n});\n\nfunction getCreatedAtText(row: SecretRowData) {\n  const owner =\n    row.metadata?.labels?.[configurationOwnerUsernameLabel] ||\n    row.metadata?.labels?.[appOwnerLabel];\n  const date = formatDate(row.metadata?.creationTimestamp);\n  return owner ? `${date} by ${owner}` : date;\n}\n","import { name } from './name';\nimport { namespace } from './namespace';\nimport { created } from './created';\n\nexport const columns = [name, namespace, created];\n","import { useMemo } from 'react';\nimport { Lock, Plus, Trash2 } from 'lucide-react';\nimport { Secret } from 'kubernetes-types/core/v1';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { Authorized, useAuthorizations } from '@/react/hooks/useUser';\nimport { DefaultDatatableSettings } from '@/react/kubernetes/datatables/DefaultDatatableSettings';\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\nimport { SystemResourceDescription } from '@/react/kubernetes/datatables/SystemResourceDescription';\nimport { useApplicationsQuery } from '@/react/kubernetes/applications/application.queries';\nimport { Application } from '@/react/kubernetes/applications/types';\nimport { pluralize } from '@/portainer/helpers/strings';\nimport { useNamespacesQuery } from '@/react/kubernetes/namespaces/queries/useNamespacesQuery';\nimport { Namespaces } from '@/react/kubernetes/namespaces/types';\n\nimport { Datatable, TableSettingsMenu } from '@@/datatables';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport {\n  useSecretsForCluster,\n  useMutationDeleteSecrets,\n} from '../../secret.service';\nimport { IndexOptional } from '../../types';\n\nimport { getIsSecretInUse } from './utils';\nimport { SecretRowData } from './types';\nimport { columns } from './columns';\n\nconst storageKey = 'k8sSecretsDatatable';\nconst settingsStore = createStore(storageKey);\n\nexport function SecretsDatatable() {\n  const tableState = useTableState(settingsStore, storageKey);\n  const { authorized: canWrite } = useAuthorizations(['K8sSecretsW']);\n  const readOnly = !canWrite;\n  const { authorized: canAccessSystemResources } = useAuthorizations(\n    'K8sAccessSystemNamespaces'\n  );\n\n  const environmentId = useEnvironmentId();\n  const { data: namespaces, ...namespacesQuery } = useNamespacesQuery(\n    environmentId,\n    {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n    }\n  );\n  const namespaceNames = Object.keys(namespaces || {});\n  const { data: secrets, ...secretsQuery } = useSecretsForCluster(\n    environmentId,\n    namespaceNames,\n    {\n      autoRefreshRate: tableState.autoRefreshRate * 1000,\n    }\n  );\n  const { data: applications, ...applicationsQuery } = useApplicationsQuery(\n    environmentId,\n    namespaceNames\n  );\n\n  const filteredSecrets = useMemo(\n    () =>\n      secrets?.filter(\n        (secret) =>\n          (canAccessSystemResources && tableState.showSystemResources) ||\n          !namespaces?.[secret.metadata?.namespace ?? '']?.IsSystem\n      ) || [],\n    [secrets, tableState, canAccessSystemResources, namespaces]\n  );\n  const secretRowData = useSecretRowData(\n    filteredSecrets,\n    applications ?? [],\n    applicationsQuery.isLoading,\n    namespaces\n  );\n\n  return (\n    <Datatable<IndexOptional<SecretRowData>>\n      dataset={secretRowData}\n      columns={columns}\n      settingsManager={tableState}\n      isLoading={secretsQuery.isLoading || namespacesQuery.isLoading}\n      emptyContentLabel=\"No secrets found\"\n      title=\"Secrets\"\n      titleIcon={Lock}\n      getRowId={(row) => row.metadata?.uid ?? ''}\n      isRowSelectable={(row) =>\n        !namespaces?.[row.original.metadata?.namespace ?? '']?.IsSystem\n      }\n      disableSelect={readOnly}\n      renderTableActions={(selectedRows) => (\n        <TableActions selectedItems={selectedRows} />\n      )}\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <DefaultDatatableSettings settings={tableState} />\n        </TableSettingsMenu>\n      )}\n      description={\n        <SystemResourceDescription\n          showSystemResources={tableState.showSystemResources}\n        />\n      }\n    />\n  );\n}\n\n// useSecretRowData appends the `inUse` property to the secret data (for the unused badge in the name column)\n// and wraps with useMemo to prevent unnecessary calculations\nfunction useSecretRowData(\n  secrets: Secret[],\n  applications: Application[],\n  applicationsLoading: boolean,\n  namespaces?: Namespaces\n): SecretRowData[] {\n  return useMemo(\n    () =>\n      secrets.map((secret) => ({\n        ...secret,\n        inUse:\n          // if the apps are loading, set inUse to true to hide the 'unused' badge\n          applicationsLoading || getIsSecretInUse(secret, applications),\n        isSystem: namespaces\n          ? namespaces?.[secret.metadata?.namespace ?? '']?.IsSystem\n          : false,\n      })),\n    [secrets, applicationsLoading, applications, namespaces]\n  );\n}\n\nfunction TableActions({ selectedItems }: { selectedItems: SecretRowData[] }) {\n  const environmentId = useEnvironmentId();\n  const deleteSecretMutation = useMutationDeleteSecrets(environmentId);\n\n  async function handleRemoveClick(secrets: SecretRowData[]) {\n    const confirmed = await confirmDelete(\n      `Are you sure you want to remove the selected ${pluralize(\n        secrets.length,\n        'secret'\n      )}?`\n    );\n    if (!confirmed) {\n      return;\n    }\n\n    const secretsToDelete = secrets.map((secret) => ({\n      namespace: secret.metadata?.namespace ?? '',\n      name: secret.metadata?.name ?? '',\n    }));\n\n    await deleteSecretMutation.mutateAsync(secretsToDelete);\n  }\n\n  return (\n    <Authorized authorizations=\"K8sSecretsW\">\n      <Button\n        className=\"btn-wrapper\"\n        color=\"dangerlight\"\n        disabled={selectedItems.length === 0}\n        onClick={async () => {\n          handleRemoveClick(selectedItems);\n        }}\n        icon={Trash2}\n        data-cy=\"k8sSecret-removeSecretButton\"\n      >\n        Remove\n      </Button>\n      <Link to=\"kubernetes.secrets.new\" className=\"ml-1\">\n        <Button\n          className=\"btn-wrapper\"\n          color=\"secondary\"\n          icon={Plus}\n          data-cy=\"k8sSecret-addSecretWithFormButton\"\n        >\n          Add with form\n        </Button>\n      </Link>\n      <Link\n        to=\"kubernetes.deploy\"\n        params={{\n          referrer: 'kubernetes.configurations',\n          tab: 'secrets',\n        }}\n        className=\"ml-1\"\n        data-cy=\"k8sSecret-deployFromManifestButton\"\n      >\n        <Button className=\"btn-wrapper\" color=\"primary\" icon={Plus}>\n          Create from manifest\n        </Button>\n      </Link>\n    </Authorized>\n  );\n}\n","import { FileCode, Lock } from 'lucide-react';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Tab, WidgetTabs, findSelectedTabIndex } from '@@/Widget/WidgetTabs';\n\nimport { ConfigMapsDatatable } from './ConfigMapsDatatable';\nimport { SecretsDatatable } from './SecretsDatatable';\n\nconst tabs: Tab[] = [\n  {\n    name: 'ConfigMaps',\n    icon: FileCode,\n    widget: <ConfigMapsDatatable />,\n    selectedTabParam: 'configmaps',\n  },\n  {\n    name: 'Secrets',\n    icon: Lock,\n    widget: <SecretsDatatable />,\n    selectedTabParam: 'secrets',\n  },\n];\n\nexport function ConfigmapsAndSecretsView() {\n  const currentTabIndex = findSelectedTabIndex(\n    useCurrentStateAndParams(),\n    tabs\n  );\n  return (\n    <>\n      <PageHeader\n        title=\"ConfigMap & Secret lists\"\n        breadcrumbs=\"ConfigMaps & Secrets\"\n        reload\n      />\n      <>\n        <WidgetTabs tabs={tabs} currentTabIndex={currentTabIndex} />\n        <div className=\"content\">{tabs[currentTabIndex].widget}</div>\n      </>\n    </>\n  );\n}\n","import { useRouter } from '@uirouter/react';\nimport { useEffect } from 'react';\n\nimport { useAuthorizations } from './useUser';\n\ntype AuthorizationOptions = {\n  authorizations: string | string[];\n  adminOnlyCE?: boolean;\n};\n\ntype RedirectOptions = {\n  to: string;\n  params: Record<string, unknown>;\n};\n\n/**\n * Redirects to the given route if the user is not authorized.\n * @param authorizations The authorizations to check.\n * @param adminOnlyCE Whether to allow non-admin users in CE.\n * @param to The route to redirect to.\n * @param params The params to pass to the route.\n */\nexport function useUnauthorizedRedirect(\n  { authorizations, adminOnlyCE = false }: AuthorizationOptions,\n  { to, params }: RedirectOptions\n) {\n  const router = useRouter();\n\n  const isAuthorizedQuery = useAuthorizations(\n    authorizations,\n    undefined,\n    adminOnlyCE\n  );\n\n  useEffect(() => {\n    if (!isAuthorizedQuery.isLoading && !isAuthorizedQuery.authorized) {\n      router.stateService.go(to, params);\n    }\n  }, [isAuthorizedQuery, params, to, router.stateService]);\n}\n","import Route from '@/assets/ico/route.svg?c';\n\nimport { confirm } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { Datatable } from '@@/datatables';\nimport { Button, ButtonGroup } from '@@/buttons';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { IngressControllerClassMap } from '../types';\n\nimport { columns } from './columns';\n\nconst storageKey = 'ingressClasses';\nconst settingsStore = createPersistedStore(storageKey, 'name');\n\ninterface Props {\n  onChange: (controllerClassMap: IngressControllerClassMap[]) => void; // angular function to save the ingress class list\n  description: string;\n  values: IngressControllerClassMap[] | undefined;\n  initialValues: IngressControllerClassMap[] | undefined;\n  isLoading: boolean;\n  noIngressControllerLabel: string;\n  view: string;\n}\n\nexport function IngressClassDatatable({\n  onChange,\n  description,\n  initialValues,\n  values,\n  isLoading,\n  noIngressControllerLabel,\n  view,\n}: Props) {\n  const tableState = useTableState(settingsStore, storageKey);\n\n  return (\n    <div className=\"-mx-[15px]\">\n      <Datatable\n        settingsManager={tableState}\n        dataset={values || []}\n        columns={columns}\n        isLoading={isLoading}\n        emptyContentLabel={noIngressControllerLabel}\n        title=\"Ingress Controllers\"\n        titleIcon={Route}\n        getRowId={(row) => `${row.Name}-${row.ClassName}-${row.Type}`}\n        renderTableActions={(selectedRows) => renderTableActions(selectedRows)}\n        description={renderIngressClassDescription()}\n      />\n    </div>\n  );\n\n  function renderTableActions(selectedRows: IngressControllerClassMap[]) {\n    return (\n      <div className=\"flex items-start\">\n        <ButtonGroup>\n          <Button\n            disabled={\n              selectedRows.filter((row) => row.Availability === true).length ===\n              0\n            }\n            color=\"dangerlight\"\n            size=\"small\"\n            onClick={() =>\n              updateIngressControllers(selectedRows, values || [], false)\n            }\n          >\n            Disallow selected\n          </Button>\n          <Button\n            disabled={\n              selectedRows.filter((row) => row.Availability === false)\n                .length === 0\n            }\n            color=\"default\"\n            size=\"small\"\n            onClick={() =>\n              updateIngressControllers(selectedRows, values || [], true)\n            }\n          >\n            Allow selected\n          </Button>\n        </ButtonGroup>\n      </div>\n    );\n  }\n\n  function renderIngressClassDescription() {\n    return (\n      <div className=\"text-muted flex w-full flex-col !text-xs\">\n        <div className=\"mt-1\">{description}</div>\n        {initialValues && values && isUnsavedChanges(initialValues, values) && (\n          <TextTip>Unsaved changes.</TextTip>\n        )}\n      </div>\n    );\n  }\n\n  async function updateIngressControllers(\n    selectedRows: IngressControllerClassMap[],\n    values: IngressControllerClassMap[],\n    availability: boolean\n  ) {\n    const updatedIngressControllers = getUpdatedIngressControllers(\n      selectedRows,\n      values || [],\n      availability\n    );\n\n    if (values && values.length) {\n      const newAllowed = updatedIngressControllers.map(\n        (ingController) => ingController.Availability\n      );\n      if (view === 'namespace') {\n        onChange(updatedIngressControllers);\n        return;\n      }\n\n      const usedControllersToDisallow = values.filter(\n        (ingController, index) => {\n          // if any of the current controllers are allowed, and are used, then become disallowed, then add the controller to a new list\n          if (\n            ingController.Availability &&\n            ingController.Used &&\n            !newAllowed[index]\n          ) {\n            return true;\n          }\n          return false;\n        }\n      );\n\n      if (usedControllersToDisallow.length > 0) {\n        const confirmed = await confirm({\n          title: 'Disallow in-use ingress controllers?',\n          modalType: ModalType.Warn,\n          message: (\n            <div>\n              <p>\n                There are ingress controllers you want to disallow that are in\n                use:\n              </p>\n              <ul className=\"ml-6\">\n                {usedControllersToDisallow.map((controller) => (\n                  <li key={controller.ClassName}>{controller.ClassName}</li>\n                ))}\n              </ul>\n              <p>\n                No new ingress rules can be created for the disallowed\n                controllers.\n              </p>\n            </div>\n          ),\n          confirmButton: buildConfirmButton('Disallow', 'warning'),\n        });\n\n        if (!confirmed) {\n          return;\n        }\n      }\n      onChange(updatedIngressControllers);\n    }\n  }\n}\n\nfunction isUnsavedChanges(\n  oldIngressControllers: IngressControllerClassMap[],\n  newIngressControllers: IngressControllerClassMap[]\n) {\n  if (oldIngressControllers.length !== newIngressControllers.length) {\n    return true;\n  }\n  for (let i = 0; i < newIngressControllers.length; i += 1) {\n    if (\n      oldIngressControllers[i]?.Availability !==\n      newIngressControllers[i]?.Availability\n    ) {\n      return true;\n    }\n  }\n  return false;\n}\n\nfunction getUpdatedIngressControllers(\n  selectedRows: IngressControllerClassMap[],\n  allRows: IngressControllerClassMap[],\n  allow: boolean\n) {\n  const selectedRowClassNames = selectedRows.map((row) => row.ClassName);\n  const updatedIngressControllers = allRows?.map((row) => {\n    if (selectedRowClassNames.includes(row.ClassName)) {\n      return { ...row, Availability: allow };\n    }\n    return row;\n  });\n  return updatedIngressControllers;\n}\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\n\nexport function LoadBalancerFormSection() {\n  return (\n    <FormSection title=\"Load balancers\">\n      <TextTip color=\"blue\">\n        You can set a quota on the number of external load balancers that can be\n        created inside this namespace. Set this quota to 0 to effectively\n        disable the use of load balancers in this namespace.\n      </TextTip>\n      <SwitchField\n        data-cy=\"k8sNamespaceCreate-loadBalancerQuotaToggle\"\n        label=\"Load balancer quota\"\n        labelClass=\"col-sm-3 col-lg-2\"\n        fieldClass=\"pt-2\"\n        checked={false}\n        featureId={FeatureId.K8S_RESOURCE_POOL_LB_QUOTA}\n        onChange={() => {}}\n      />\n    </FormSection>\n  );\n}\n","import _ from 'lodash';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { CreateNamespaceFormValues } from '../CreateView/types';\n\ninterface Props {\n  initialValues: CreateNamespaceFormValues;\n  values: CreateNamespaceFormValues;\n  isValid: boolean;\n}\n\nexport function NamespaceSummary({ initialValues, values, isValid }: Props) {\n  const hasChanges = !_.isEqual(values, initialValues);\n\n  if (!hasChanges || !isValid) {\n    return null;\n  }\n\n  return (\n    <FormSection title=\"Summary\" isFoldable defaultFolded={false}>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <TextTip color=\"blue\">\n            Portainer will execute the following Kubernetes actions.\n          </TextTip>\n        </div>\n      </div>\n      <div className=\"col-sm-12 small text-muted pt-1\">\n        <ul>\n          <li>\n            Create a <span className=\"bold\">Namespace</span> named{' '}\n            <code>{values.name}</code>\n          </li>\n          {values.resourceQuota.enabled && (\n            <li>\n              Create a <span className=\"bold\">ResourceQuota</span> named{' '}\n              <code>portainer-rq-{values.name}</code>\n            </li>\n          )}\n        </ul>\n      </div>\n    </FormSection>\n  );\n}\n","import { Database } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { Icon } from '@@/Icon';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nexport function StorageQuotaItem() {\n  return (\n    <div>\n      <FormSectionTitle>\n        <div className=\"vertical-center text-muted inline-flex gap-1 align-top\">\n          <Icon icon={Database} className=\"!mt-0.5 flex-none\" />\n          <span>standard</span>\n        </div>\n      </FormSectionTitle>\n      <hr className=\"mt-2 mb-0 w-full\" />\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            data-cy=\"k8sNamespaceEdit-storageClassQuota\"\n            disabled={false}\n            label=\"Enable quota\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            fieldClass=\"pt-2\"\n            checked={false}\n            onChange={() => {}}\n            featureId={FeatureId.K8S_RESOURCE_POOL_STORAGE_QUOTA}\n          />\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { StorageQuotaItem } from './StorageQuotaItem';\n\nexport function StorageQuotaFormSection() {\n  return (\n    <FormSection title=\"Storage\">\n      <TextTip color=\"blue\">\n        Quotas can be set on each storage option to prevent users from exceeding\n        a specific threshold when deploying applications. You can set a quota to\n        0 to effectively prevent the usage of a specific storage option inside\n        this namespace.\n      </TextTip>\n\n      <StorageQuotaItem />\n    </FormSection>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { notifyError } from '@/portainer/services/notifications';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\ntype K8sNodeLimits = {\n  CPU: number;\n  Memory: number;\n};\n\n/**\n * useClusterResourceLimitsQuery is used to retrieve the total resource limits for a cluster, minus the allocated resources taken by existing namespaces\n * @returns the available resource limits for the cluster\n * */\nexport function useClusterResourceLimitsQuery(environmentId: EnvironmentId) {\n  return useQuery(\n    ['environments', environmentId, 'kubernetes', 'max_resource_limits'],\n    () => getResourceLimits(environmentId),\n    {\n      onError: (err) => {\n        notifyError('Failure', err as Error, 'Unable to get resource limits');\n      },\n    }\n  );\n}\n\nasync function getResourceLimits(environmentId: EnvironmentId) {\n  try {\n    const { data: limits } = await axios.get<K8sNodeLimits>(\n      `/kubernetes/${environmentId}/max_resource_limits`\n    );\n    return limits;\n  } catch (e) {\n    throw parseAxiosError(e, 'Unable to retrieve resource limits');\n  }\n}\n","import { FormikErrors } from 'formik';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormError } from '@@/form-components/FormError';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { Slider } from '@@/form-components/Slider';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { SliderWithInput } from '@@/form-components/Slider/SliderWithInput';\n\nimport { useClusterResourceLimitsQuery } from '../../CreateView/queries/useResourceLimitsQuery';\n\nimport { ResourceQuotaFormValues } from './types';\n\ninterface Props {\n  values: ResourceQuotaFormValues;\n  onChange: (value: ResourceQuotaFormValues) => void;\n  enableResourceOverCommit?: boolean;\n  errors?: FormikErrors<ResourceQuotaFormValues>;\n}\n\nexport function ResourceQuotaFormSection({\n  values,\n  onChange,\n  errors,\n  enableResourceOverCommit,\n}: Props) {\n  const environmentId = useEnvironmentId();\n  const resourceLimitsQuery = useClusterResourceLimitsQuery(environmentId);\n  const cpuLimit = resourceLimitsQuery.data?.CPU ?? 0;\n  const memoryLimit = resourceLimitsQuery.data?.Memory ?? 0;\n\n  return (\n    <FormSection title=\"Resource Quota\">\n      <TextTip color=\"blue\">\n        A resource quota sets boundaries on the compute resources a namespace\n        can use. It&apos;s good practice to set a quota for a namespace to\n        manage resources effectively. Alternatively, you can disable assigning a\n        quota for unrestricted access (not recommended).\n      </TextTip>\n\n      <SwitchField\n        data-cy=\"k8sNamespaceCreate-resourceAssignmentToggle\"\n        disabled={!enableResourceOverCommit}\n        label=\"Resource assignment\"\n        labelClass=\"col-sm-3 col-lg-2\"\n        fieldClass=\"pt-2\"\n        checked={values.enabled || !enableResourceOverCommit}\n        onChange={(enabled) => onChange({ ...values, enabled })}\n      />\n\n      {(values.enabled || !enableResourceOverCommit) && (\n        <div className=\"pt-5\">\n          <div className=\"flex flex-row\">\n            <FormSectionTitle>Resource Limits</FormSectionTitle>\n          </div>\n\n          {(!cpuLimit || !memoryLimit) && (\n            <FormError>\n              Not enough resources available in the cluster to apply a resource\n              reservation.\n            </FormError>\n          )}\n\n          {/* keep the FormError component present, but invisible to avoid layout shift */}\n          {cpuLimit && memoryLimit ? (\n            <FormError\n              className={typeof errors === 'string' ? 'visible' : 'invisible'}\n            >\n              {/* 'error' keeps the formerror the exact same height while hidden so there is no layout shift */}\n              {typeof errors === 'string' ? errors : 'error'}\n            </FormError>\n          ) : null}\n\n          <FormControl\n            className=\"flex flex-row\"\n            label=\"Memory limit (MB)\"\n            inputId=\"memory-limit\"\n          >\n            <div className=\"col-xs-8\">\n              {memoryLimit >= 0 && (\n                <SliderWithInput\n                  value={Number(values.memory) ?? 0}\n                  onChange={(value) =>\n                    onChange({ ...values, memory: `${value}` })\n                  }\n                  max={memoryLimit}\n                  step={128}\n                  dataCy=\"k8sNamespaceCreate-memoryLimit\"\n                  visibleTooltip\n                  inputId=\"memory-limit\"\n                />\n              )}\n              {errors?.memory && (\n                <FormError className=\"pt-1\">{errors.memory}</FormError>\n              )}\n            </div>\n          </FormControl>\n\n          <FormControl className=\"flex flex-row\" label=\"CPU limit\">\n            <div className=\"col-xs-8\">\n              <Slider\n                min={0}\n                max={cpuLimit / 1000}\n                step={0.1}\n                value={Number(values.cpu) ?? 0}\n                onChange={(cpu) => {\n                  if (Array.isArray(cpu)) {\n                    return;\n                  }\n                  onChange({ ...values, cpu: cpu.toString() });\n                }}\n                dataCy=\"k8sNamespaceCreate-cpuLimitSlider\"\n                visibleTooltip\n              />\n            </div>\n          </FormControl>\n        </div>\n      )}\n    </FormSection>\n  );\n}\n","import { FormikErrors } from 'formik';\nimport { MultiValue } from 'react-select';\n\nimport { Registry } from '@/react/portainer/registries/types';\nimport { useEnvironmentRegistries } from '@/react/portainer/environments/queries/useEnvironmentRegistries';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { InlineLoader } from '@@/InlineLoader';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { RegistriesSelector } from './RegistriesSelector';\n\ntype Props = {\n  values: MultiValue<Registry>;\n  onChange: (value: MultiValue<Registry>) => void;\n  errors?: string | string[] | FormikErrors<Registry>[];\n};\n\nexport function RegistriesFormSection({ values, onChange, errors }: Props) {\n  const environmentId = useEnvironmentId();\n  const registriesQuery = useEnvironmentRegistries(environmentId, {\n    hideDefault: true,\n  });\n  return (\n    <FormSection title=\"Registries\">\n      <TextTip color=\"blue\" className=\"mb-2\">\n        Define which registries can be used by users who have access to this\n        namespace.\n      </TextTip>\n      <FormControl\n        inputId=\"registries\"\n        label=\"Select registries\"\n        errors={errors}\n      >\n        {registriesQuery.isLoading && (\n          <InlineLoader>Loading registries...</InlineLoader>\n        )}\n        {registriesQuery.data && (\n          <RegistriesSelector\n            value={values}\n            onChange={(registries) => onChange(registries)}\n            options={registriesQuery.data}\n            inputId=\"registries\"\n          />\n        )}\n      </FormControl>\n    </FormSection>\n  );\n}\n","import { Field, Form, FormikProps } from 'formik';\nimport { MultiValue } from 'react-select';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { Registry } from '@/react/portainer/registries/types';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Input } from '@@/form-components/Input';\nimport { FormActions } from '@@/form-components/FormActions';\n\nimport { IngressClassDatatable } from '../../cluster/ingressClass/IngressClassDatatable';\nimport { useIngressControllerClassMapQuery } from '../../cluster/ingressClass/useIngressControllerClassMap';\nimport { CreateNamespaceFormValues } from '../CreateView/types';\nimport { AnnotationsBeTeaser } from '../../annotations/AnnotationsBeTeaser';\n\nimport { LoadBalancerFormSection } from './LoadBalancerFormSection';\nimport { NamespaceSummary } from './NamespaceSummary';\nimport { StorageQuotaFormSection } from './StorageQuotaFormSection/StorageQuotaFormSection';\nimport { ResourceQuotaFormSection } from './ResourceQuotaFormSection';\nimport { RegistriesFormSection } from './RegistriesFormSection';\nimport { ResourceQuotaFormValues } from './ResourceQuotaFormSection/types';\n\nexport function NamespaceInnerForm({\n  errors,\n  isValid,\n  setFieldValue,\n  values,\n  isSubmitting,\n  initialValues,\n}: FormikProps<CreateNamespaceFormValues>) {\n  const environmentId = useEnvironmentId();\n  const environmentQuery = useCurrentEnvironment();\n  const ingressClassesQuery = useIngressControllerClassMapQuery({\n    environmentId,\n    allowedOnly: true,\n  });\n\n  if (environmentQuery.isLoading) {\n    return null;\n  }\n\n  const useLoadBalancer =\n    environmentQuery.data?.Kubernetes.Configuration.UseLoadBalancer;\n  const enableResourceOverCommit =\n    environmentQuery.data?.Kubernetes.Configuration.EnableResourceOverCommit;\n  const enableIngressControllersPerNamespace =\n    environmentQuery.data?.Kubernetes.Configuration\n      .IngressAvailabilityPerNamespace;\n  const storageClasses =\n    environmentQuery.data?.Kubernetes.Configuration.StorageClasses ?? [];\n\n  return (\n    <Form>\n      <FormControl\n        inputId=\"namespace\"\n        label=\"Name\"\n        required\n        errors={errors.name}\n      >\n        <Field\n          as={Input}\n          id=\"namespace\"\n          name=\"name\"\n          placeholder=\"e.g. my-namespace\"\n          data-cy=\"k8sNamespaceCreate-namespaceNameInput\"\n        />\n      </FormControl>\n      <AnnotationsBeTeaser />\n      <ResourceQuotaFormSection\n        enableResourceOverCommit={enableResourceOverCommit}\n        values={values.resourceQuota}\n        onChange={(resourceQuota: ResourceQuotaFormValues) =>\n          setFieldValue('resourceQuota', resourceQuota)\n        }\n        errors={errors.resourceQuota}\n      />\n      {useLoadBalancer && <LoadBalancerFormSection />}\n      {enableIngressControllersPerNamespace && (\n        <FormSection title=\"Networking\">\n          <IngressClassDatatable\n            onChange={(classes) => setFieldValue('ingressClasses', classes)}\n            values={values.ingressClasses}\n            description=\"Enable the ingress controllers that users can select when publishing applications in this namespace.\"\n            noIngressControllerLabel=\"No ingress controllers available in the cluster. Go to the cluster setup view to configure and allow the use of ingress controllers in the cluster.\"\n            view=\"namespace\"\n            isLoading={ingressClassesQuery.isLoading}\n            initialValues={initialValues.ingressClasses}\n          />\n        </FormSection>\n      )}\n      <RegistriesFormSection\n        values={values.registries}\n        onChange={(registries: MultiValue<Registry>) =>\n          setFieldValue('registries', registries)\n        }\n        errors={errors.registries}\n      />\n      {storageClasses.length > 0 && <StorageQuotaFormSection />}\n      <NamespaceSummary\n        initialValues={initialValues}\n        values={values}\n        isValid={isValid}\n      />\n      <FormActions\n        submitLabel=\"Create namespace\"\n        loadingText=\"Creating namespace\"\n        isLoading={isSubmitting}\n        isValid={isValid}\n        data-cy=\"k8sNamespaceCreate-submitButton\"\n      />\n    </Form>\n  );\n}\n","import { SchemaOf, array, object, number, string } from 'yup';\n\nimport { Registry } from '@/react/portainer/registries/types';\n\nexport const registriesValidationSchema: SchemaOf<Registry[]> = array(\n  object({\n    Id: number().required('Registry ID is required.'),\n    Name: string().required('Registry name is required.'),\n  })\n);\n","import { boolean, string, object, SchemaOf, TestContext } from 'yup';\n\nimport { ResourceQuotaFormValues } from './types';\n\nexport function getResourceQuotaValidationSchema(\n  memoryLimit: number\n): SchemaOf<ResourceQuotaFormValues> {\n  return object({\n    enabled: boolean().required('Resource quota enabled status is required.'),\n    memory: string().test(\n      'memory-validation',\n      `Value must be between 0 and ${memoryLimit}.`,\n      memoryValidation\n    ),\n    cpu: string().test(\n      'cpu-validation',\n      'CPU limit value is required.',\n      cpuValidation\n    ),\n  }).test(\n    'resource-quota-validation',\n    'At least a single limit must be set.',\n    oneLimitSet\n  );\n\n  function oneLimitSet({\n    enabled,\n    memory,\n    cpu,\n  }: Partial<ResourceQuotaFormValues>) {\n    return !enabled || (Number(memory) ?? 0) > 0 || (Number(cpu) ?? 0) > 0;\n  }\n\n  function memoryValidation(this: TestContext, memoryValue?: string) {\n    const memory = Number(memoryValue) ?? 0;\n    const { enabled } = this.parent;\n    return !enabled || (memory >= 0 && memory <= memoryLimit);\n  }\n\n  function cpuValidation(this: TestContext, cpuValue?: string) {\n    const cpu = Number(cpuValue) ?? 0;\n    const { enabled } = this.parent;\n    return !enabled || cpu >= 0;\n  }\n}\n","import { string, object, array, SchemaOf } from 'yup';\n\nimport { registriesValidationSchema } from '../components/RegistriesFormSection/registriesValidationSchema';\nimport { getResourceQuotaValidationSchema } from '../components/ResourceQuotaFormSection/getResourceQuotaValidationSchema';\n\nimport { CreateNamespaceFormValues } from './types';\n\nexport function getNamespaceValidationSchema(\n  memoryLimit: number,\n  namespaceNames: string[]\n): SchemaOf<CreateNamespaceFormValues> {\n  return object({\n    name: string()\n      .matches(\n        /^[a-z0-9](?:[-a-z0-9]{0,251}[a-z0-9])?$/,\n        \"This field must consist of lower case alphanumeric characters or '-', and contain at most 63 characters, and must start and end with an alphanumeric character.\"\n      )\n      .max(63, 'Name must be at most 63 characters.')\n      // must not have the same name as an existing namespace\n      .notOneOf(namespaceNames, 'Name must be unique.')\n      .required('Name is required.'),\n    resourceQuota: getResourceQuotaValidationSchema(memoryLimit),\n    // ingress classes table is constrained already, and doesn't need validation\n    ingressClasses: array(),\n    registries: registriesValidationSchema,\n  });\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { TeamId } from '@/react/portainer/users/teams/types';\nimport { UserId } from '@/portainer/users/types';\nimport { RegistryId, Registry } from '@/react/portainer/registries/types';\n\nimport { EnvironmentId } from '../types';\n\nimport { buildUrl } from './utils';\n\nexport type RoleId = number;\ninterface AccessPolicy {\n  RoleId: RoleId;\n}\n\ntype UserAccessPolicies = Record<UserId, AccessPolicy>; // map[UserID]AccessPolicy\ntype TeamAccessPolicies = Record<TeamId, AccessPolicy>;\n\ninterface RegistryAccess {\n  UserAccessPolicies: UserAccessPolicies;\n  TeamAccessPolicies: TeamAccessPolicies;\n  Namespaces: string[];\n}\n\nexport async function updateEnvironmentRegistryAccess(\n  environmentId: EnvironmentId,\n  registryId: RegistryId,\n  access: Partial<RegistryAccess>\n) {\n  try {\n    await axios.put<void>(buildRegistryUrl(environmentId, registryId), access);\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function getEnvironmentRegistries(\n  id: EnvironmentId,\n  namespace: string\n) {\n  try {\n    const { data } = await axios.get<Registry[]>(buildRegistryUrl(id), {\n      params: { namespace },\n    });\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nexport async function getEnvironmentRegistry(\n  endpointId: EnvironmentId,\n  registryId: RegistryId\n) {\n  try {\n    const { data } = await axios.get<Registry>(\n      buildRegistryUrl(endpointId, registryId)\n    );\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n\nfunction buildRegistryUrl(id: EnvironmentId, registryId?: RegistryId) {\n  let url = `${buildUrl(id)}/registries`;\n\n  if (registryId) {\n    url += `/${registryId}`;\n  }\n\n  return url;\n}\n","import { useMutation } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\nimport { updateEnvironmentRegistryAccess } from '@/react/portainer/environments/environment.service/registries';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { IngressControllerClassMap } from '../../../cluster/ingressClass/types';\nimport { updateIngressControllerClassMap } from '../../../cluster/ingressClass/useIngressControllerClassMap';\nimport { Namespaces } from '../../types';\nimport { CreateNamespacePayload, UpdateRegistryPayload } from '../types';\n\nexport function useCreateNamespaceMutation(environmentId: EnvironmentId) {\n  return useMutation(\n    async ({\n      createNamespacePayload,\n      updateRegistriesPayload,\n      namespaceIngressControllerPayload,\n    }: {\n      createNamespacePayload: CreateNamespacePayload;\n      updateRegistriesPayload: UpdateRegistryPayload[];\n      namespaceIngressControllerPayload: IngressControllerClassMap[];\n    }) => {\n      try {\n        // create the namespace first, so that it exists before referencing it in the registry access request\n        await createNamespace(environmentId, createNamespacePayload);\n      } catch (e) {\n        throw new Error(e as string);\n      }\n\n      // collect promises\n      const updateRegistriesPromises = updateRegistriesPayload.map(\n        ({ Id, Namespaces }) =>\n          updateEnvironmentRegistryAccess(environmentId, Id, {\n            Namespaces,\n          })\n      );\n      const updateIngressControllerPromise =\n        namespaceIngressControllerPayload.length > 0\n          ? updateIngressControllerClassMap(\n              environmentId,\n              namespaceIngressControllerPayload,\n              createNamespacePayload.Name\n            )\n          : Promise.resolve();\n\n      // return combined promises\n      return Promise.allSettled([\n        updateIngressControllerPromise,\n        ...updateRegistriesPromises,\n      ]);\n    },\n    {\n      ...withError('Unable to create namespace'),\n    }\n  );\n}\n\n// createNamespace is used to create a namespace using the Portainer backend\nasync function createNamespace(\n  environmentId: EnvironmentId,\n  payload: CreateNamespacePayload\n) {\n  try {\n    const { data: ns } = await axios.post<Namespaces>(\n      buildUrl(environmentId),\n      payload\n    );\n    return ns;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to create namespace');\n  }\n}\n\nfunction buildUrl(environmentId: EnvironmentId, namespace?: string) {\n  let url = `kubernetes/${environmentId}/namespaces`;\n\n  if (namespace) {\n    url += `/${namespace}`;\n  }\n\n  return url;\n}\n","import { Formik } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { useEnvironmentRegistries } from '@/react/portainer/environments/queries/useEnvironmentRegistries';\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { Widget, WidgetBody } from '@@/Widget';\n\nimport { useIngressControllerClassMapQuery } from '../../cluster/ingressClass/useIngressControllerClassMap';\nimport { NamespaceInnerForm } from '../components/NamespaceInnerForm';\nimport { useNamespacesQuery } from '../queries/useNamespacesQuery';\n\nimport {\n  CreateNamespaceFormValues,\n  CreateNamespacePayload,\n  UpdateRegistryPayload,\n} from './types';\nimport { useClusterResourceLimitsQuery } from './queries/useResourceLimitsQuery';\nimport { getNamespaceValidationSchema } from './CreateNamespaceForm.validation';\nimport { transformFormValuesToNamespacePayload } from './utils';\nimport { useCreateNamespaceMutation } from './queries/useCreateNamespaceMutation';\n\nexport function CreateNamespaceForm() {\n  const router = useRouter();\n  const environmentId = useEnvironmentId();\n  const { data: environment, ...environmentQuery } = useCurrentEnvironment();\n  const resourceLimitsQuery = useClusterResourceLimitsQuery(environmentId);\n  const { data: registries } = useEnvironmentRegistries(environmentId, {\n    hideDefault: true,\n  });\n  const { user } = useCurrentUser();\n  // for namespace create, show ingress classes that are allowed in the current environment.\n  // the ingressClasses show the none option, so we don't need to add it here.\n  const { data: ingressClasses } = useIngressControllerClassMapQuery({\n    environmentId,\n    allowedOnly: true,\n  });\n\n  const { data: namespaces } = useNamespacesQuery(environmentId);\n  const namespaceNames = Object.keys(namespaces || {});\n\n  const createNamespaceMutation = useCreateNamespaceMutation(environmentId);\n\n  if (resourceLimitsQuery.isLoading || environmentQuery.isLoading) {\n    return null;\n  }\n\n  const memoryLimit = resourceLimitsQuery.data?.Memory ?? 0;\n\n  const initialValues: CreateNamespaceFormValues = {\n    name: '',\n    ingressClasses: ingressClasses ?? [],\n    resourceQuota: {\n      enabled: false,\n      memory: '0',\n      cpu: '0',\n    },\n    registries: [],\n  };\n\n  return (\n    <Widget>\n      <WidgetBody>\n        <Formik\n          enableReinitialize\n          initialValues={initialValues}\n          onSubmit={(values) => handleSubmit(values, user.Username)}\n          validateOnMount\n          validationSchema={getNamespaceValidationSchema(\n            memoryLimit,\n            namespaceNames\n          )}\n        >\n          {NamespaceInnerForm}\n        </Formik>\n      </WidgetBody>\n    </Widget>\n  );\n\n  function handleSubmit(values: CreateNamespaceFormValues, userName: string) {\n    const createNamespacePayload: CreateNamespacePayload =\n      transformFormValuesToNamespacePayload(values, userName);\n    const updateRegistriesPayload: UpdateRegistryPayload[] =\n      values.registries.flatMap((registryFormValues) => {\n        // find the matching registry from the cluster registries\n        const selectedRegistry = registries?.find(\n          (registry) => registryFormValues.Id === registry.Id\n        );\n        if (!selectedRegistry) {\n          return [];\n        }\n        const envNamespacesWithAccess =\n          selectedRegistry.RegistryAccesses[`${environmentId}`]?.Namespaces ||\n          [];\n        return {\n          Id: selectedRegistry.Id,\n          Namespaces: [...envNamespacesWithAccess, values.name],\n        };\n      });\n\n    createNamespaceMutation.mutate(\n      {\n        createNamespacePayload,\n        updateRegistriesPayload,\n        namespaceIngressControllerPayload: values.ingressClasses,\n      },\n      {\n        onSuccess: () => {\n          notifySuccess(\n            'Success',\n            `Namespace '${values.name}' created successfully`\n          );\n          router.stateService.go('kubernetes.resourcePools');\n        },\n      }\n    );\n  }\n}\n","import { CreateNamespaceFormValues, CreateNamespacePayload } from './types';\n\nexport function transformFormValuesToNamespacePayload(\n  createNamespaceFormValues: CreateNamespaceFormValues,\n  owner: string\n): CreateNamespacePayload {\n  const memoryInBytes =\n    Number(createNamespaceFormValues.resourceQuota.memory) * 10 ** 6;\n  return {\n    Name: createNamespaceFormValues.name,\n    Owner: owner,\n    ResourceQuota: {\n      enabled: createNamespaceFormValues.resourceQuota.enabled,\n      cpu: createNamespaceFormValues.resourceQuota.cpu,\n      memory: `${memoryInBytes}`,\n    },\n  };\n}\n","import clsx from 'clsx';\nimport { Fragment } from 'react';\nimport { Taint } from 'kubernetes-types/core/v1';\n\nimport { nodeAffinityValues } from '@/kubernetes/filters/application';\nimport { useAuthorizations } from '@/react/hooks/useUser';\n\nimport { Affinity, Label, NodePlacementRowData } from '../types';\n\ninterface SubRowProps {\n  node: NodePlacementRowData;\n  cellCount: number;\n}\n\nexport function SubRow({ node, cellCount }: SubRowProps) {\n  const { authorized } = useAuthorizations(\n    'K8sApplicationErrorDetailsR',\n    undefined,\n    true\n  );\n\n  if (!authorized) {\n    <>\n      {isDefined(node.unmetTaints) && (\n        <tr\n          className={clsx({\n            'datatable-highlighted': node.highlighted,\n            'datatable-unhighlighted': !node.highlighted,\n          })}\n        >\n          <td colSpan={cellCount}>\n            Placement constraint not respected for that node.\n          </td>\n        </tr>\n      )}\n\n      {(isDefined(node.unmatchedNodeSelectorLabels) ||\n        isDefined(node.unmatchedNodeAffinities)) && (\n        <tr\n          className={clsx({\n            'datatable-highlighted': node.highlighted,\n            'datatable-unhighlighted': !node.highlighted,\n          })}\n        >\n          <td colSpan={cellCount}>\n            Placement label not respected for that node.\n          </td>\n        </tr>\n      )}\n    </>;\n  }\n\n  return (\n    <>\n      {isDefined(node.unmetTaints) && (\n        <UnmetTaintsInfo\n          taints={node.unmetTaints}\n          cellCount={cellCount}\n          isHighlighted={node.highlighted}\n        />\n      )}\n      {isDefined(node.unmatchedNodeSelectorLabels) && (\n        <UnmatchedLabelsInfo\n          labels={node.unmatchedNodeSelectorLabels}\n          cellCount={cellCount}\n          isHighlighted={node.highlighted}\n        />\n      )}\n      {isDefined(node.unmatchedNodeAffinities) && (\n        <UnmatchedAffinitiesInfo\n          affinities={node.unmatchedNodeAffinities}\n          cellCount={cellCount}\n          isHighlighted={node.highlighted}\n        />\n      )}\n    </>\n  );\n}\n\nfunction isDefined<T>(arr?: Array<T>): arr is Array<T> {\n  return !!arr && arr.length > 0;\n}\n\nfunction UnmetTaintsInfo({\n  taints,\n  isHighlighted,\n  cellCount,\n}: {\n  taints: Array<Taint>;\n  isHighlighted: boolean;\n  cellCount: number;\n}) {\n  return (\n    <>\n      {taints.map((taint) => (\n        <tr\n          className={clsx({\n            'datatable-highlighted': isHighlighted,\n            'datatable-unhighlighted': !isHighlighted,\n          })}\n          key={taint.key}\n        >\n          <td colSpan={cellCount}>\n            This application is missing a toleration for the taint\n            <code className=\"space-left\">\n              {taint.key}\n              {taint.value ? `=${taint.value}` : ''}:{taint.effect}\n            </code>\n          </td>\n        </tr>\n      ))}\n    </>\n  );\n}\n\nfunction UnmatchedLabelsInfo({\n  labels,\n  isHighlighted,\n  cellCount,\n}: {\n  labels: Array<Label>;\n  isHighlighted: boolean;\n  cellCount: number;\n}) {\n  return (\n    <>\n      {labels.map((label) => (\n        <tr\n          className={clsx({\n            'datatable-highlighted': isHighlighted,\n            'datatable-unhighlighted': !isHighlighted,\n          })}\n          key={label.key}\n        >\n          <td colSpan={cellCount}>\n            This application can only be scheduled on a node where the label{' '}\n            <code>{label.key}</code> is set to <code>{label.value}</code>\n          </td>\n        </tr>\n      ))}\n    </>\n  );\n}\n\nfunction UnmatchedAffinitiesInfo({\n  affinities,\n  isHighlighted,\n  cellCount,\n}: {\n  affinities: Array<Affinity>;\n  isHighlighted: boolean;\n  cellCount: number;\n}) {\n  return (\n    <>\n      <tr\n        className={clsx({\n          'datatable-highlighted': isHighlighted,\n          'datatable-unhighlighted': !isHighlighted,\n        })}\n      >\n        <td colSpan={cellCount}>\n          This application can only be scheduled on nodes respecting one of the\n          following labels combination:\n        </td>\n      </tr>\n      {affinities.map((aff) => (\n        <tr\n          className={clsx({\n            'datatable-highlighted': isHighlighted,\n            'datatable-unhighlighted': !isHighlighted,\n          })}\n          key={aff.map((term) => term.key).join('')}\n        >\n          <td />\n          <td colSpan={cellCount - 1}>\n            {aff.map((term, index) => (\n              <Fragment key={index}>\n                <code>\n                  {term.key} {term.operator}{' '}\n                  {nodeAffinityValues(term.values, term.operator)}\n                </code>\n                <span>{index === aff.length - 1 ? '' : ' + '}</span>\n              </Fragment>\n            ))}\n          </td>\n        </tr>\n      ))}\n    </>\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { NodePlacementRowData } from '../../types';\n\nexport const columnHelper = createColumnHelper<NodePlacementRowData>();\n","import { Check, X } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\nimport { columnHelper } from './helper';\n\nexport const status = columnHelper.accessor('acceptsApplication', {\n  header: '',\n  id: 'status',\n  enableSorting: false,\n  cell: ({ getValue }) => {\n    const acceptsApplication = getValue();\n    return (\n      <div className=\"flex items-center h-full\">\n        <Icon\n          icon={acceptsApplication ? Check : X}\n          mode={acceptsApplication ? 'success' : 'danger'}\n          size=\"sm\"\n        />\n      </div>\n    );\n  },\n  meta: {\n    width: 30,\n  },\n  enableResizing: false,\n});\n","import { buildExpandColumn } from '@@/datatables/expand-column';\n\nimport { NodePlacementRowData } from '../../types';\n\nimport { columnHelper } from './helper';\nimport { status } from './status';\n\nexport const columns = [\n  buildExpandColumn<NodePlacementRowData>(),\n  status,\n  columnHelper.accessor('name', {\n    header: 'Node',\n    id: 'node',\n  }),\n];\n","import { Minimize2 } from 'lucide-react';\n\nimport {\n  BasicTableSettings,\n  RefreshableTableSettings,\n} from '@@/datatables/types';\nimport { ExpandableDatatable } from '@@/datatables/ExpandableDatatable';\nimport { TableSettingsMenu } from '@@/datatables';\nimport { TableSettingsMenuAutoRefresh } from '@@/datatables/TableSettingsMenuAutoRefresh';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { NodePlacementRowData } from '../types';\n\nimport { SubRow } from './PlacementsDatatableSubRow';\nimport { columns } from './columns';\n\ninterface TableSettings extends BasicTableSettings, RefreshableTableSettings {}\n\ntype Props = {\n  isLoading: boolean;\n  dataset: NodePlacementRowData[];\n  hasPlacementWarning: boolean;\n  tableState: TableSettings & {\n    setSearch: (value: string) => void;\n    search: string;\n  };\n};\n\nexport function PlacementsDatatable({\n  isLoading,\n  dataset,\n  hasPlacementWarning,\n  tableState,\n}: Props) {\n  return (\n    <ExpandableDatatable\n      isLoading={isLoading}\n      getRowCanExpand={(row) => !row.original.acceptsApplication}\n      title=\"Placement constraints/preferences\"\n      titleIcon={Minimize2}\n      dataset={dataset}\n      settingsManager={tableState}\n      getRowId={(row) => row.name}\n      columns={columns}\n      disableSelect\n      description={\n        hasPlacementWarning ? (\n          <TextTip>\n            Based on the placement rules, the application pod can&apos;t be\n            scheduled on any nodes.\n          </TextTip>\n        ) : (\n          <TextTip color=\"blue\">\n            The placement table helps you understand whether or not this\n            application can be deployed on a specific node.\n          </TextTip>\n        )\n      }\n      renderTableSettings={() => (\n        <TableSettingsMenu>\n          <TableSettingsMenuAutoRefresh\n            value={tableState.autoRefreshRate}\n            onChange={tableState.setAutoRefreshRate}\n          />\n        </TableSettingsMenu>\n      )}\n      emptyContentLabel=\"No node available.\"\n      renderSubRow={(row) => (\n        <SubRow node={row.original} cellCount={row.getVisibleCells().length} />\n      )}\n    />\n  );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\nimport { useMemo } from 'react';\nimport { Pod, Taint, Node } from 'kubernetes-types/core/v1';\nimport _ from 'lodash';\n\nimport { useNodesQuery } from '@/react/kubernetes/cluster/HomeView/nodes.service';\nimport { KubernetesPodNodeAffinityNodeSelectorRequirementOperators } from '@/kubernetes/pod/models';\n\nimport {\n  BasicTableSettings,\n  RefreshableTableSettings,\n  createPersistedStore,\n  refreshableSettings,\n} from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useApplication, useApplicationPods } from '../../application.queries';\nimport { Affinity, Label, NodePlacementRowData } from '../types';\n\ninterface TableSettings extends BasicTableSettings, RefreshableTableSettings {}\n\nfunction createStore(storageKey: string) {\n  return createPersistedStore<TableSettings>(storageKey, 'node', (set) => ({\n    ...refreshableSettings(set),\n  }));\n}\n\nconst storageKey = 'kubernetes.application.placements';\nconst placementsSettingsStore = createStore(storageKey);\n\nexport function usePlacementTableState() {\n  return useTableState(placementsSettingsStore, storageKey);\n}\n\nexport function usePlacementTableData() {\n  const placementsTableState = usePlacementTableState();\n  const autoRefreshRate = placementsTableState.autoRefreshRate * 1000; // ms to seconds\n\n  const stateAndParams = useCurrentStateAndParams();\n  const {\n    params: {\n      namespace,\n      name,\n      'resource-type': resourceType,\n      endpointId: environmentId,\n    },\n  } = stateAndParams;\n  const { data: application, ...applicationQuery } = useApplication(\n    environmentId,\n    namespace,\n    name,\n    resourceType,\n    { autoRefreshRate }\n  );\n  const { data: pods, ...podsQuery } = useApplicationPods(\n    environmentId,\n    namespace,\n    name,\n    application,\n    { autoRefreshRate }\n  );\n  const { data: nodes, ...nodesQuery } = useNodesQuery(environmentId, {\n    autoRefreshRate,\n  });\n\n  const placementsData = useMemo(\n    () => (nodes && pods ? computePlacements(nodes, pods) : []),\n    [nodes, pods]\n  );\n\n  const isPlacementsTableLoading =\n    applicationQuery.isLoading || nodesQuery.isLoading || podsQuery.isLoading;\n\n  const hasPlacementWarning = useMemo(() => {\n    const notAllowedOnEveryNode = placementsData.every(\n      (nodePlacement) => !nodePlacement.acceptsApplication\n    );\n    return !isPlacementsTableLoading && notAllowedOnEveryNode;\n  }, [isPlacementsTableLoading, placementsData]);\n\n  return {\n    placementsData,\n    isPlacementsTableLoading,\n    hasPlacementWarning,\n  };\n}\n\nexport function computePlacements(\n  nodes: Node[],\n  pods: Pod[]\n): NodePlacementRowData[] {\n  const pod = pods?.[0];\n  if (!pod) {\n    return [];\n  }\n\n  const placementDataFromTolerations: NodePlacementRowData[] =\n    computeTolerations(nodes, pod);\n  const placementDataFromAffinities: NodePlacementRowData[] = computeAffinities(\n    nodes,\n    placementDataFromTolerations,\n    pod\n  );\n  return placementDataFromAffinities;\n}\n\nfunction computeTolerations(nodes: Node[], pod: Pod): NodePlacementRowData[] {\n  const tolerations = pod.spec?.tolerations || [];\n  const nodePlacements: NodePlacementRowData[] = nodes.map((node) => {\n    let acceptsApplication = true;\n    const unmetTaints: Taint[] = [];\n    const taints = node.spec?.taints || [];\n    taints.forEach((taint) => {\n      const matchKeyMatchValueMatchEffect = _.find(tolerations, {\n        key: taint.key,\n        operator: 'Equal',\n        value: taint.value,\n        effect: taint.effect,\n      });\n      const matchKeyAnyValueMatchEffect = _.find(tolerations, {\n        key: taint.key,\n        operator: 'Exists',\n        effect: taint.effect,\n      });\n      const matchKeyMatchValueAnyEffect = _.find(tolerations, {\n        key: taint.key,\n        operator: 'Equal',\n        value: taint.value,\n        effect: '',\n      });\n      const matchKeyAnyValueAnyEffect = _.find(tolerations, {\n        key: taint.key,\n        operator: 'Exists',\n        effect: '',\n      });\n      const anyKeyAnyValueAnyEffect = _.find(tolerations, {\n        key: '',\n        operator: 'Exists',\n        effect: '',\n      });\n      if (\n        !matchKeyMatchValueMatchEffect &&\n        !matchKeyAnyValueMatchEffect &&\n        !matchKeyMatchValueAnyEffect &&\n        !matchKeyAnyValueAnyEffect &&\n        !anyKeyAnyValueAnyEffect\n      ) {\n        acceptsApplication = false;\n        unmetTaints?.push(taint);\n      } else {\n        acceptsApplication = true;\n      }\n    });\n    return {\n      name: node.metadata?.name || '',\n      acceptsApplication,\n      unmetTaints,\n      highlighted: false,\n    };\n  });\n\n  return nodePlacements;\n}\n\nfunction getUnmatchedNodeSelectorLabels(node: Node, pod: Pod): Label[] {\n  const nodeLabels = node.metadata?.labels || {};\n  const podNodeSelectorLabels = pod.spec?.nodeSelector || {};\n\n  return Object.entries(podNodeSelectorLabels)\n    .filter(([key, value]) => nodeLabels[key] !== value)\n    .map(([key, value]) => ({\n      key,\n      value,\n    }));\n}\n\n// Function to get unmatched required node affinities\nfunction getUnmatchedRequiredNodeAffinities(node: Node, pod: Pod): Affinity[] {\n  const basicNodeAffinity =\n    pod.spec?.affinity?.nodeAffinity\n      ?.requiredDuringSchedulingIgnoredDuringExecution;\n\n  const unmatchedRequiredNodeAffinities: Affinity[] =\n    basicNodeAffinity?.nodeSelectorTerms\n      .map(\n        (selectorTerm) =>\n          selectorTerm.matchExpressions?.flatMap((matchExpression) => {\n            const exists = !!node.metadata?.labels?.[matchExpression.key];\n            const isIn =\n              exists &&\n              _.includes(\n                matchExpression.values,\n                node.metadata?.labels?.[matchExpression.key]\n              );\n\n            // Check if the match expression is satisfied\n            if (\n              (matchExpression.operator === 'Exists' && exists) ||\n              (matchExpression.operator === 'DoesNotExist' && !exists) ||\n              (matchExpression.operator === 'In' && isIn) ||\n              (matchExpression.operator === 'NotIn' && !isIn) ||\n              (matchExpression.operator === 'Gt' &&\n                exists &&\n                parseInt(\n                  node.metadata?.labels?.[matchExpression.key] || '',\n                  10\n                ) > parseInt(matchExpression.values?.[0] || '', 10)) ||\n              (matchExpression.operator === 'Lt' &&\n                exists &&\n                parseInt(\n                  node.metadata?.labels?.[matchExpression.key] || '',\n                  10\n                ) < parseInt(matchExpression.values?.[0] || '', 10))\n            ) {\n              return [];\n            }\n\n            // Return the unmatched affinity\n            return [\n              {\n                key: matchExpression.key,\n                operator:\n                  matchExpression.operator as KubernetesPodNodeAffinityNodeSelectorRequirementOperators,\n                values: matchExpression.values?.join(', ') || '',\n              },\n            ];\n          }) || []\n      )\n      .filter((unmatchedAffinity) => unmatchedAffinity.length > 0) || [];\n  return unmatchedRequiredNodeAffinities;\n}\n\n// Node requirement depending on the operator value\n// https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity\nfunction computeAffinities(\n  nodes: Node[],\n  nodePlacements: NodePlacementRowData[],\n  pod: Pod\n): NodePlacementRowData[] {\n  const nodePlacementsFromAffinities: NodePlacementRowData[] = nodes.map(\n    (node, nodeIndex) => {\n      let { acceptsApplication } = nodePlacements[nodeIndex];\n\n      // check node selectors for unmatched labels\n      const unmatchedNodeSelectorLabels = getUnmatchedNodeSelectorLabels(\n        node,\n        pod\n      );\n\n      // check node affinities that are required during scheduling\n      const unmatchedRequiredNodeAffinities =\n        getUnmatchedRequiredNodeAffinities(node, pod);\n\n      // If there are any unmatched affinities or node labels, the node does not accept the application\n      if (\n        unmatchedRequiredNodeAffinities.length ||\n        unmatchedNodeSelectorLabels.length\n      ) {\n        acceptsApplication = false;\n      }\n\n      const nodePlacementRowData: NodePlacementRowData = {\n        ...nodePlacements[nodeIndex],\n        acceptsApplication,\n        unmatchedNodeSelectorLabels,\n        unmatchedNodeAffinities: unmatchedRequiredNodeAffinities,\n      };\n\n      return nodePlacementRowData;\n    }\n  );\n  return nodePlacementsFromAffinities;\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\nimport { useMemo } from 'react';\n\nimport { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store';\n\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport {\n  useApplication,\n  useApplicationPods,\n  useApplicationServices,\n} from '../application.queries';\n\nimport { useNamespaceEventsQuery } from './useNamespaceEventsQuery';\n\nconst storageKey = 'k8sAppEventsDatatable';\nconst settingsStore = createStore(storageKey, { id: 'Date', desc: true });\n\nexport function useApplicationEventsTableState() {\n  return useTableState(settingsStore, storageKey);\n}\n\nexport function useApplicationEventsTableData() {\n  const appEventsTableState = useTableState(settingsStore, storageKey);\n  const {\n    params: {\n      namespace,\n      name,\n      'resource-type': resourceType,\n      endpointId: environmentId,\n    },\n  } = useCurrentStateAndParams();\n\n  const { data: application, ...applicationQuery } = useApplication(\n    environmentId,\n    namespace,\n    name,\n    resourceType\n  );\n  const { data: services, ...servicesQuery } = useApplicationServices(\n    environmentId,\n    namespace,\n    name,\n    application\n  );\n  const { data: pods, ...podsQuery } = useApplicationPods(\n    environmentId,\n    namespace,\n    name,\n    application\n  );\n  const { data: events, ...eventsQuery } = useNamespaceEventsQuery(\n    environmentId,\n    namespace,\n    {\n      autoRefreshRate: appEventsTableState.autoRefreshRate * 1000,\n    }\n  );\n\n  // related events are events that have the application id, or the id of a service or pod from the application\n  const appEventsData = useMemo(() => {\n    const serviceIds = services?.map((service) => service?.metadata?.uid);\n    const podIds = pods?.map((pod) => pod?.metadata?.uid);\n    return (\n      events?.filter(\n        (event) =>\n          event.involvedObject.uid === application?.metadata?.uid ||\n          serviceIds?.includes(event.involvedObject.uid) ||\n          podIds?.includes(event.involvedObject.uid)\n      ) || []\n    );\n  }, [application?.metadata?.uid, events, pods, services]);\n\n  const appEventWarningCount = useMemo(\n    () => appEventsData.filter((event) => event.type === 'Warning').length,\n    [appEventsData]\n  );\n\n  return {\n    appEventsData,\n    appEventWarningCount,\n    isAppEventsTableLoading:\n      applicationQuery.isLoading ||\n      servicesQuery.isLoading ||\n      podsQuery.isLoading ||\n      eventsQuery.isLoading,\n  };\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\nimport { useMemo } from 'react';\n\nimport { useServicesQuery } from '@/react/kubernetes/services/service';\n\nimport {\n  useApplication,\n  useApplicationHorizontalPodAutoscaler,\n  useApplicationServices,\n} from '../../application.queries';\nimport { useHorizontalAutoScalarQuery } from '../../autoscaling.service';\n\nexport function useApplicationYAML() {\n  const {\n    params: {\n      namespace,\n      name,\n      'resource-type': resourceType,\n      endpointId: environmentId,\n    },\n  } = useCurrentStateAndParams();\n  // find the application and the yaml for it\n  const { data: application, ...applicationQuery } = useApplication(\n    environmentId,\n    namespace,\n    name,\n    resourceType\n  );\n  const { data: applicationYAML, ...applicationYAMLQuery } =\n    useApplication<string>(environmentId, namespace, name, resourceType, {\n      yaml: true,\n    });\n\n  // find the matching services, then get the yaml for them\n  const { data: services, ...servicesQuery } = useApplicationServices(\n    environmentId,\n    namespace,\n    name,\n    application\n  );\n  const serviceNames =\n    services?.flatMap((service) => service.metadata?.name || []) || [];\n  const { data: servicesYAML, ...servicesYAMLQuery } = useServicesQuery<string>(\n    environmentId,\n    namespace,\n    serviceNames,\n    { yaml: true }\n  );\n\n  // find the matching autoscalar, then get the yaml for it\n  const { data: autoScalar, ...autoScalarsQuery } =\n    useApplicationHorizontalPodAutoscaler(\n      environmentId,\n      namespace,\n      name,\n      application\n    );\n  const { data: autoScalarYAML, ...autoScalarYAMLQuery } =\n    useHorizontalAutoScalarQuery<string>(\n      environmentId,\n      namespace,\n      autoScalar?.metadata?.name || '',\n      { yaml: true }\n    );\n\n  const fullApplicationYaml = useMemo(() => {\n    const yamlArray = [\n      applicationYAML,\n      ...(servicesYAML || []),\n      autoScalarYAML,\n    ].flatMap((yaml) => yaml || []);\n\n    const yamlString = yamlArray.join('\\n---\\n');\n    return yamlString;\n  }, [applicationYAML, autoScalarYAML, servicesYAML]);\n\n  const isApplicationYAMLLoading =\n    applicationQuery.isLoading ||\n    servicesQuery.isLoading ||\n    autoScalarsQuery.isLoading ||\n    applicationYAMLQuery.isLoading ||\n    servicesYAMLQuery.isLoading ||\n    autoScalarYAMLQuery.isLoading;\n\n  return { fullApplicationYaml, isApplicationYAMLLoading };\n}\n","import { InlineLoader } from '@@/InlineLoader';\nimport { Widget } from '@@/Widget/Widget';\nimport { WidgetBody } from '@@/Widget';\n\nimport { YAMLInspector } from '../../../components/YAMLInspector';\n\nimport { useApplicationYAML } from './useApplicationYAML';\n\n// the yaml currently has the yaml from the app, related services and horizontal pod autoscalers\n// TODO: this could be extended to include other related resources like ingresses, etc.\nexport function ApplicationYAMLEditor() {\n  const { fullApplicationYaml, isApplicationYAMLLoading } =\n    useApplicationYAML();\n\n  if (isApplicationYAMLLoading) {\n    return (\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetBody>\n              <InlineLoader>Loading application YAML...</InlineLoader>\n            </WidgetBody>\n          </Widget>\n        </div>\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-sm-12\">\n        <Widget>\n          <WidgetBody>\n            <YAMLInspector\n              identifier=\"application-yaml\"\n              data={fullApplicationYaml}\n              hideMessage\n            />\n          </WidgetBody>\n        </Widget>\n      </div>\n    </div>\n  );\n}\n","import { IngressControllerClassMap } from '../types';\n\nexport function getIngressClassesFormValues(\n  allowNoneIngressClass: boolean,\n  ingressClasses?: IngressControllerClassMap[]\n) {\n  const ingressClassesFormValues = ingressClasses ? [...ingressClasses] : [];\n  const noneIngressClassIndex = ingressClassesFormValues.findIndex(\n    (ingressClass) =>\n      ingressClass.Name === 'none' &&\n      ingressClass.ClassName === 'none' &&\n      ingressClass.Type === 'custom'\n  );\n  // add the none ingress class if it doesn't exist\n  if (allowNoneIngressClass && noneIngressClassIndex === -1) {\n    return [\n      ...ingressClassesFormValues,\n      {\n        Name: 'none',\n        ClassName: 'none',\n        Type: 'custom',\n        Availability: true,\n        New: false,\n        Used: false,\n      },\n    ];\n  }\n  // remove the none ingress class if it exists\n  if (!allowNoneIngressClass && noneIngressClassIndex > -1) {\n    return [\n      ...ingressClassesFormValues.slice(0, noneIngressClassIndex),\n      ...ingressClassesFormValues.slice(noneIngressClassIndex + 1),\n    ];\n  }\n  // otherwise return the ingress classes as is\n  return ingressClassesFormValues;\n}\n","import { useQuery } from 'react-query';\nimport { StorageClass, StorageClassList } from 'kubernetes-types/storage/v1';\n\nimport axios from '@/portainer/services/axios';\nimport {\n  Environment,\n  EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { withError } from '@/react-tools/react-query';\n\nimport { parseKubernetesAxiosError } from '../../../axiosError';\n\nimport { AccessMode, StorageClassFormValues } from './types';\n\nexport const availableStorageClassPolicies = [\n  {\n    Name: 'RWO',\n    Description: 'Allow read-write from a single pod only (RWO)',\n    selected: true,\n  },\n  {\n    Name: 'RWX',\n    Description:\n      'Allow read-write access from one or more pods concurrently (RWX)',\n    selected: false,\n  },\n];\n\nexport function useStorageClasses(environment?: Environment | null) {\n  return useQuery(\n    [\n      'environments',\n      environment?.Id,\n      'kubernetes',\n      'storageclasses',\n      // include the storage classes in the cache key to force a refresh when the storage classes change in the environment object\n      JSON.stringify(environment?.Kubernetes.Configuration.StorageClasses),\n    ],\n    async () => {\n      if (!environment) {\n        return [];\n      }\n      const storageClasses = await getStorageClasses(environment.Id);\n      return storageClasses;\n    },\n    {\n      ...withError('Failure', `Unable to get Storage Classes`),\n      enabled: !!environment,\n    }\n  );\n}\n\nexport function useStorageClassesFormValues(environment?: Environment | null) {\n  return useQuery(\n    [\n      'environments',\n      environment?.Id,\n      'kubernetes',\n      'storageclasses',\n      // include the storage classes in the cache key to force a refresh when the storage classes change in the environment object\n      JSON.stringify(environment?.Kubernetes.Configuration.StorageClasses),\n    ],\n    async () => {\n      if (!environment) {\n        return [];\n      }\n      const storageClasses = await getStorageClasses(environment.Id);\n      const storageClassFormValues = transformStorageClassesToFormValues(\n        storageClasses,\n        environment\n      );\n      return storageClassFormValues;\n    },\n    {\n      ...withError('Failure', `Unable to get Storage Classes`),\n      enabled: !!environment,\n    }\n  );\n}\n\nasync function getStorageClasses(\n  environmentId: EnvironmentId\n): Promise<StorageClass[]> {\n  try {\n    const { data: storageClassList } = await axios.get<StorageClassList>(\n      `/endpoints/${environmentId}/kubernetes/apis/storage.k8s.io/v1/storageclasses`\n    );\n    return storageClassList.items;\n  } catch (e) {\n    throw parseKubernetesAxiosError(e, 'Unable to retrieve Storage Classes');\n  }\n}\n\nfunction transformStorageClassesToFormValues(\n  storageClasses: StorageClass[],\n  environment: Environment\n) {\n  const storageClassFormValues: StorageClassFormValues[] = storageClasses.map(\n    (storageClass) => {\n      const enabledStorage =\n        environment.Kubernetes.Configuration.StorageClasses?.find(\n          (sc) => sc.Name === storageClass.metadata?.name\n        );\n      let selected = false;\n      let AccessModes: AccessMode[] = [];\n      if (enabledStorage) {\n        selected = true;\n        AccessModes =\n          enabledStorage.AccessModes.flatMap(\n            (name) =>\n              availableStorageClassPolicies.find(\n                (accessMode) => accessMode.Name === name\n              ) || []\n          ) || [];\n      } else {\n        // set a default access mode if the storage class is not enabled and there are available access modes\n        AccessModes = [availableStorageClassPolicies[0]];\n      }\n\n      return {\n        Name: storageClass.metadata?.name || '',\n        Provisioner: storageClass.provisioner,\n        AllowVolumeExpansion: !!storageClass.allowVolumeExpansion,\n        selected,\n        AccessModes,\n      };\n    }\n  );\n  return storageClassFormValues;\n}\n","import { object, string, boolean, array, number, SchemaOf } from 'yup';\n\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { IngressControllerClassMap } from '../../ingressClass/types';\n\nimport { ConfigureFormValues } from './types';\n\n// Define Yup schema for AccessMode\nconst accessModeSchema = object().shape({\n  Description: string().required(),\n  Name: string().required(),\n  selected: boolean().required(),\n});\n\n// Define Yup schema for StorageClassFormValues\nconst storageClassFormValuesSchema = array()\n  .of(\n    object().shape({\n      Name: string().required(),\n      AccessModes: array().of(accessModeSchema).required(),\n      Provisioner: string().required(),\n      AllowVolumeExpansion: boolean().required(),\n      selected: boolean().required(),\n    })\n  )\n  .test(\n    // invalid if any storage class is not selected or\n    // if it's selected and at least one access mode is selected\n    'accessModes',\n    'Shared access policy configuration required.',\n    (storageClasses) => {\n      const isValid = storageClasses?.every(\n        (value) =>\n          !value.selected ||\n          (value.AccessModes && value.AccessModes?.length > 0)\n      );\n      return isValid || false;\n    }\n  );\n\n// Define Yup schema for EndpointChangeWindow\nconst endpointChangeWindowSchema = object().shape({\n  Enabled: boolean().required(),\n  StartTime: string().test(\n    'startTime should not be the same as endTime',\n    'The chosen time configuration is invalid.',\n    (value, context) => {\n      const { EndTime, Enabled } = context.parent;\n      return !Enabled || value !== EndTime;\n    }\n  ),\n  EndTime: string(),\n});\n\n// Define Yup schema for IngressControllerClassMap\nconst ingressControllerClassMapSchema: SchemaOf<IngressControllerClassMap> =\n  object().shape({\n    Name: string().required(),\n    ClassName: string().required(),\n    Type: string().required(),\n    Availability: boolean().required(),\n    New: boolean().required(),\n    Used: boolean().required(),\n  });\n\n// Define Yup schema for ConfigureFormValues\nexport const configureValidationSchema: SchemaOf<ConfigureFormValues> = object({\n  useLoadBalancer: boolean().required(),\n  useServerMetrics: boolean().required(),\n  enableResourceOverCommit: boolean().required(),\n  resourceOverCommitPercentage: number().required(),\n  restrictDefaultNamespace: boolean().required(),\n  restrictStandardUserIngressW: boolean().required(),\n  ingressAvailabilityPerNamespace: boolean().required(),\n  allowNoneIngressClass: boolean().required(),\n  changeWindow: isBE ? endpointChangeWindowSchema.required() : undefined,\n  storageClasses: storageClassFormValuesSchema.required(),\n  ingressClasses: array().of(ingressControllerClassMapSchema).required(),\n});\n","import { Alert } from '@@/Alert';\n\nexport function RBACAlert() {\n  return (\n    <Alert color=\"warn\" className=\"mb-4\">\n      <div className=\"flex-flex-col\">\n        <p>\n          Your cluster does not have Kubernetes role-based access control (RBAC)\n          enabled.\n        </p>\n        <p>\n          This means you can&apos;t use Portainer RBAC functionality to regulate\n          access to environment resources based on user roles.\n        </p>\n        <p className=\"mb-0\">\n          To enable RBAC, start the&nbsp;\n          <a\n            className=\"th-highcontrast:text-blue-4 th-dark:text-blue-7\"\n            href=\"https://kubernetes.io/docs/concepts/overview/components/#kube-apiserver\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            API server\n          </a>\n          &nbsp;with the&nbsp;\n          <code className=\"bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black\">\n            --authorization-mode\n          </code>\n          &nbsp;flag set to a comma-separated list that includes&nbsp;\n          <code className=\"bg-gray-4 th-highcontrast:bg-black th-dark:bg-black\">\n            RBAC\n          </code>\n          , for example:&nbsp;\n          <code className=\"bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black\">\n            kube-apiserver --authorization-mode=Example1,RBAC,Example2\n          </code>\n          .\n        </p>\n      </div>\n    </Alert>\n  );\n}\n","import { Field, useFormikContext } from 'formik';\nimport { useState } from 'react';\nimport { CheckCircle, XCircle } from 'lucide-react';\n\nimport { useGetMetricsMutation } from '@/react/kubernetes/queries/useGetMetricsMutation';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Switch } from '@@/form-components/SwitchField/Switch';\nimport { InlineLoader } from '@@/InlineLoader';\n\nimport { ConfigureFormValues } from './types';\n\ntype Props = {\n  environmentId: number;\n  value: boolean;\n  error?: string;\n};\n\nexport function EnableMetricsInput({ value, error, environmentId }: Props) {\n  const { setFieldValue } = useFormikContext<ConfigureFormValues>();\n  const [metricsFound, setMetricsFound] = useState<boolean>();\n  const getMetricsMutation = useGetMetricsMutation();\n  return (\n    <div className=\"mb-4\">\n      <TextTip color=\"blue\">\n        <p>\n          Enabling the metrics feature allows users to use horizontal pod\n          autoscaling and to see container and node resource usage. This\n          requires{' '}\n          <a\n            href=\"https://kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline/#metrics-server\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            metrics server\n          </a>{' '}\n          or{' '}\n          <a\n            href=\"https://github.com/kubernetes-sigs/prometheus-adapter\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            prometheus\n          </a>{' '}\n          to be running in your cluster.\n        </p>\n        <p>\n          On any subsequent disabling of the feature, existing deployed\n          applications with autoscaling will still autoscale (you would have to\n          remove their autoscaler definitions to stop this).\n        </p>\n      </TextTip>\n      <FormControl\n        label=\"Enable features using the metrics API\"\n        className=\"mb-0\"\n        size=\"large\"\n        errors={error}\n        inputId=\"kubeSetup-metricsToggle\"\n      >\n        <Field\n          name=\"useServerMetrics\"\n          as={Switch}\n          checked={value}\n          id=\"kubeSetup-metricsToggle\"\n          onChange={(checked: boolean) => {\n            // if turning off, just set the value\n            if (!checked) {\n              setFieldValue('useServerMetrics', checked);\n              return;\n            }\n            // if turning on, see if the metrics server is available, then set the value to on if it is\n            getMetricsMutation.mutate(environmentId, {\n              onSuccess: () => {\n                setMetricsFound(true);\n                setFieldValue('useServerMetrics', checked);\n              },\n              onError: () => {\n                setMetricsFound(false);\n              },\n            });\n          }}\n          data-cy=\"kubeSetup-metricsToggle\"\n        />\n      </FormControl>\n      {getMetricsMutation.isLoading && (\n        <InlineLoader size=\"sm\">Checking metrics API...</InlineLoader>\n      )}\n      {!getMetricsMutation.isLoading && (\n        <>\n          {metricsFound === false && (\n            <TextTip color=\"red\" icon={XCircle}>\n              Unable to reach metrics API, make sure metrics server is properly\n              deployed inside that cluster.\n            </TextTip>\n          )}\n          {metricsFound === true && (\n            <TextTip color=\"green\" icon={CheckCircle}>\n              Successfully reached metrics API\n            </TextTip>\n          )}\n        </>\n      )}\n    </div>\n  );\n}\n","import { useMutation } from 'react-query';\n\nimport { getMetricsForAllNodes } from '../services/service';\n\n// use this as a mutation because the metrics request should be manually fired when the user clicks to turn the metrics toggle on\nexport function useGetMetricsMutation() {\n  return useMutation(getMetricsForAllNodes);\n}\n","import { components, MultiValueGenericProps } from 'react-select';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\ninterface Option {\n  Name: string;\n  Description: string;\n}\n\ninterface Props {\n  value: Option[];\n  onChange(value: readonly Option[]): void;\n  options: Option[];\n  inputId?: string;\n  storageClassName: string;\n}\n\nexport function StorageAccessModeSelector({\n  value,\n  onChange,\n  options,\n  inputId,\n  storageClassName,\n}: Props) {\n  return (\n    <Select\n      isMulti\n      getOptionLabel={(option) => option.Description}\n      getOptionValue={(option) => option.Name}\n      components={{ MultiValueLabel }}\n      options={options}\n      value={value}\n      closeMenuOnSelect={false}\n      onChange={(value) => onChange(value)}\n      inputId={inputId}\n      placeholder=\"Not configured\"\n      data-cy={`kubeSetup-storageAccessSelect${storageClassName}`}\n    />\n  );\n}\n\nfunction MultiValueLabel({\n  data,\n  innerProps,\n  selectProps,\n}: MultiValueGenericProps<Option>) {\n  if (!data || !data.Name) {\n    throw new Error('missing option name');\n  }\n\n  return (\n    <components.MultiValueLabel\n      data={data}\n      innerProps={innerProps}\n      selectProps={selectProps}\n    >\n      {data.Name}\n    </components.MultiValueLabel>\n  );\n}\n","import { useFormikContext } from 'formik';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Switch } from '@@/form-components/SwitchField/Switch';\n\nimport { StorageAccessModeSelector } from './StorageAccessModeSelector';\nimport { ConfigureFormValues, StorageClassFormValues } from './types';\nimport { availableStorageClassPolicies } from './useStorageClasses';\n\ntype Props = {\n  storageClassValues: StorageClassFormValues[];\n};\n\nexport function StorageClassDatatable({ storageClassValues }: Props) {\n  const { setFieldValue } = useFormikContext<ConfigureFormValues>();\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12 mt-2.5\">\n        <table className=\"table table-fixed\">\n          <tbody>\n            <tr className=\"text-muted\">\n              <td>Storage</td>\n              <td>Shared access policy</td>\n              <td>Volume expansion</td>\n            </tr>\n            {storageClassValues.map((storageClassValue, index) => (\n              <tr\n                key={`${storageClassValue.Name}${storageClassValue.Provisioner}`}\n              >\n                <td>\n                  <div className=\"flex h-full flex-row items-center\">\n                    <Switch\n                      checked={storageClassValue.selected}\n                      onChange={(checked) =>\n                        setFieldValue(\n                          `storageClasses.${index}.selected`,\n                          checked\n                        )\n                      }\n                      className=\"mr-2 mb-0\"\n                      id={`kubeSetup-storageToggle${storageClassValue.Name}`}\n                      name={`kubeSetup-storageToggle${storageClassValue.Name}`}\n                      data-cy={`kubeSetup-storageToggle${storageClassValue.Name}`}\n                    />\n                    <span>{storageClassValue.Name}</span>\n                  </div>\n                </td>\n                <td>\n                  <StorageAccessModeSelector\n                    options={availableStorageClassPolicies}\n                    value={storageClassValue.AccessModes}\n                    onChange={(accessModes) => {\n                      setFieldValue(\n                        `storageClasses.${index}.AccessModes`,\n                        accessModes\n                      );\n                    }}\n                    storageClassName={storageClassValue.Name}\n                  />\n                </td>\n                <td>\n                  <div className=\"flex h-full flex-row items-center\">\n                    <Switch\n                      checked={storageClassValue.AllowVolumeExpansion}\n                      onChange={(checked) =>\n                        setFieldValue(\n                          `storageClasses.${index}.AllowVolumeExpansion`,\n                          checked\n                        )\n                      }\n                      className=\"mr-2 mb-0\"\n                      data-cy={`kubeSetup-storageExpansionToggle${storageClassValue.Name}`}\n                      id={`kubeSetup-storageExpansionToggle${storageClassValue.Name}`}\n                      name={`kubeSetup-storageExpansionToggle${storageClassValue.Name}`}\n                    />\n                  </div>\n                </td>\n              </tr>\n            ))}\n          </tbody>\n        </table>\n      </div>\n      {!hasValidStorageConfiguration(storageClassValues) && (\n        <div className=\"col-sm-12\">\n          <TextTip color=\"orange\">\n            Shared access policy configuration required.\n          </TextTip>\n        </div>\n      )}\n    </div>\n  );\n}\n\nfunction hasValidStorageConfiguration(\n  storageClassValues: StorageClassFormValues[]\n) {\n  return storageClassValues.every(\n    (storageClassValue) =>\n      // if the storage class is not selected, it's valid\n      !storageClassValue.selected ||\n      // if the storage class is selected, it must have at least one access mode\n      storageClassValue.AccessModes.length > 0\n  );\n}\n","import { useMutation, useQueryClient } from 'react-query';\nimport { Operation } from 'fast-json-patch';\nimport _ from 'lodash';\n\nimport { withError, withInvalidate } from '@/react-tools/react-query';\nimport { environmentQueryKeys } from '@/react/portainer/environments/queries/query-keys';\nimport {\n  UpdateEnvironmentPayload,\n  updateEnvironment,\n} from '@/react/portainer/environments/queries/useUpdateEnvironmentMutation';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { updateIngressControllerClassMap } from '../../ingressClass/useIngressControllerClassMap';\nimport { IngressControllerClassMap } from '../../ingressClass/types';\n\nexport type ConfigureClusterPayloads = {\n  id: number;\n  updateEnvironmentPayload: Partial<UpdateEnvironmentPayload>;\n  initialIngressControllers: IngressControllerClassMap[];\n  ingressControllers: IngressControllerClassMap[];\n  storageClassPatches: {\n    name: string;\n    patch: Operation[];\n  }[];\n};\n\n// useConfigureClusterMutation updates the environment, the ingress classes and the storage classes\nexport function useConfigureClusterMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    async ({\n      id,\n      updateEnvironmentPayload,\n      initialIngressControllers,\n      ingressControllers,\n      storageClassPatches,\n    }: ConfigureClusterPayloads) => {\n      await updateEnvironment({ id, payload: updateEnvironmentPayload });\n      await Promise.all(\n        storageClassPatches.map(({ name, patch }) =>\n          patchStorageClass(id, name, patch)\n        )\n      );\n      // only update the ingress classes if they have changed\n      if (!_.isEqual(initialIngressControllers, ingressControllers)) {\n        await updateIngressControllerClassMap(id, ingressControllers);\n      }\n    },\n    {\n      ...withInvalidate(queryClient, [environmentQueryKeys.base()], {\n        skipRefresh: true,\n      }),\n      ...withError('Unable to apply configuration', 'Failure'),\n    }\n  );\n}\n\nasync function patchStorageClass(\n  environmentId: number,\n  name: string,\n  storageClassPatch: Operation[]\n) {\n  try {\n    await axios.patch(\n      `/endpoints/${environmentId}/kubernetes/apis/storage.k8s.io/v1/storageclasses/${name}`,\n      storageClassPatch,\n      {\n        headers: {\n          'Content-Type': 'application/json-patch+json',\n        },\n      }\n    );\n  } catch (e) {\n    throw parseAxiosError(e, `Unable to patch StorageClass ${name}`);\n  }\n}\n","import { FormikHelpers } from 'formik';\nimport { StorageClass } from 'kubernetes-types/storage/v1';\nimport { compare } from 'fast-json-patch';\nimport { UseMutationResult } from 'react-query';\n\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { UpdateEnvironmentPayload } from '@/react/portainer/environments/queries/useUpdateEnvironmentMutation';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { TrackEventProps } from '@/angulartics.matomo/analytics-services';\n\nimport { ConfigureFormValues, StorageClassFormValues } from './types';\nimport { ConfigureClusterPayloads } from './useConfigureClusterMutation';\n\n// handle the form submission\nexport async function handleSubmitConfigureCluster(\n  values: ConfigureFormValues,\n  initialValues: ConfigureFormValues | undefined,\n  configureClusterMutation: UseMutationResult<\n    void,\n    unknown,\n    ConfigureClusterPayloads,\n    unknown\n  >,\n  { resetForm }: FormikHelpers<ConfigureFormValues>,\n  trackEvent: (action: string, properties: TrackEventProps) => void,\n  environment?: Environment\n) {\n  if (!environment) {\n    notifyError('Unable to save configuration: environment not found');\n    return;\n  }\n\n  // send metrics if needed\n  if (\n    values.restrictDefaultNamespace &&\n    !initialValues?.restrictDefaultNamespace\n  ) {\n    trackEvent('kubernetes-configure', {\n      category: 'kubernetes',\n      metadata: {\n        restrictAccessToDefaultNamespace: values.restrictDefaultNamespace,\n      },\n    });\n  }\n\n  // transform the form values into the environment object\n  const selectedStorageClasses = values.storageClasses.filter(\n    (storageClass) => storageClass.selected\n  );\n  const updatedEnvironment = assignFormValuesToEnvironment(\n    environment,\n    values,\n    selectedStorageClasses\n  );\n  const storageClassPatches = createStorageClassPatches(\n    selectedStorageClasses,\n    initialValues?.storageClasses\n  );\n\n  // update the environment using a react query mutation\n  await configureClusterMutation.mutateAsync(\n    {\n      id: environment.Id,\n      updateEnvironmentPayload: updatedEnvironment,\n      initialIngressControllers: initialValues?.ingressClasses ?? [],\n      ingressControllers: values.ingressClasses,\n      storageClassPatches,\n    },\n    {\n      onSuccess: () => {\n        notifySuccess('Success', 'Configuration successfully applied');\n        resetForm();\n      },\n    }\n  );\n}\n\nfunction createStorageClassPatches(\n  storageClasses: StorageClassFormValues[],\n  oldStorageClasses?: StorageClassFormValues[]\n) {\n  const storageClassPatches = storageClasses.flatMap((storageClass) => {\n    const oldStorageClass = oldStorageClasses?.find(\n      (sc) => sc.Name === storageClass.Name\n    );\n    if (!oldStorageClass) {\n      return [];\n    }\n    const newPayload = createStorageClassPayload(storageClass);\n    const oldPayload = createStorageClassPayload(oldStorageClass);\n    const patch = compare(oldPayload, newPayload);\n    return [{ name: storageClass.Name, patch }];\n  });\n  return storageClassPatches;\n}\n\nfunction createStorageClassPayload(storageClass: StorageClassFormValues) {\n  const payload: StorageClass = {\n    provisioner: storageClass.Provisioner,\n    allowVolumeExpansion: storageClass.AllowVolumeExpansion,\n    metadata: {\n      uid: '',\n      name: storageClass.Name,\n      namespace: '',\n      labels: {},\n      annotations: {},\n    },\n  };\n  return payload;\n}\n\nfunction assignFormValuesToEnvironment(\n  environment: Environment,\n  values: ConfigureFormValues,\n  selectedStorageClasses: StorageClassFormValues[]\n) {\n  // note that the ingress datatable form values are omitted and included in another call\n  const updatedEnvironment: Partial<UpdateEnvironmentPayload> = {\n    Kubernetes: {\n      ...environment.Kubernetes,\n      Configuration: {\n        ...environment.Kubernetes.Configuration,\n        UseLoadBalancer: values.useLoadBalancer,\n        UseServerMetrics: values.useServerMetrics,\n        EnableResourceOverCommit: values.enableResourceOverCommit,\n        ResourceOverCommitPercentage: values.resourceOverCommitPercentage,\n        RestrictDefaultNamespace: values.restrictDefaultNamespace,\n        RestrictStandardUserIngressW: values.restrictStandardUserIngressW,\n        IngressAvailabilityPerNamespace: values.ingressAvailabilityPerNamespace,\n        AllowNoneIngressClass: values.allowNoneIngressClass,\n        StorageClasses: selectedStorageClasses.map((storageClass) => ({\n          Name: storageClass.Name,\n          AccessModes: storageClass.AccessModes.map(\n            (accessMode) => accessMode.Name\n          ),\n          AllowVolumeExpansion: storageClass.AllowVolumeExpansion,\n          Provisioner: storageClass.Provisioner,\n        })),\n      },\n    },\n  };\n  return updatedEnvironment;\n}\n","import { Formik, Form, FormikProps, FormikHelpers } from 'formik';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport _ from 'lodash';\nimport { useTransitionHook } from '@uirouter/react';\n\nimport { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { IngressClassDatatable } from '@/react/kubernetes/cluster/ingressClass/IngressClassDatatable';\nimport {\n  Environment,\n  EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { FormActions } from '@@/form-components/FormActions';\nimport { confirm } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { InsightsBox } from '@@/InsightsBox';\n\nimport { useIngressControllerClassMapQuery } from '../../ingressClass/useIngressControllerClassMap';\nimport { IngressControllerClassMap } from '../../ingressClass/types';\nimport { useIsRBACEnabledQuery } from '../../getIsRBACEnabled';\nimport { getIngressClassesFormValues } from '../../ingressClass/IngressClassDatatable/utils';\n\nimport { useStorageClassesFormValues } from './useStorageClasses';\nimport { ConfigureFormValues, StorageClassFormValues } from './types';\nimport { configureValidationSchema } from './validation';\nimport { RBACAlert } from './RBACAlert';\nimport { EnableMetricsInput } from './EnableMetricsInput';\nimport { StorageClassDatatable } from './StorageClassDatatable';\nimport { useConfigureClusterMutation } from './useConfigureClusterMutation';\nimport { handleSubmitConfigureCluster } from './handleSubmitConfigureCluster';\n\nexport function ConfigureForm() {\n  const { trackEvent } = useAnalytics();\n  const configureClusterMutation = useConfigureClusterMutation();\n  // get the initial values\n  const { data: environment } = useCurrentEnvironment();\n  const { data: storageClassFormValues } =\n    useStorageClassesFormValues(environment);\n  const { data: ingressClasses, ...ingressClassesQuery } =\n    useIngressControllerClassMapQuery({\n      environmentId: environment?.Id,\n    });\n  const initialValues = useInitialValues(\n    environment,\n    storageClassFormValues,\n    ingressClasses\n  );\n\n  if (!initialValues || !environment) {\n    return null;\n  }\n\n  return (\n    <Formik<ConfigureFormValues>\n      initialValues={initialValues}\n      onSubmit={(\n        values: ConfigureFormValues,\n        formikHelpers: FormikHelpers<ConfigureFormValues>\n      ) => {\n        handleSubmitConfigureCluster(\n          values,\n          initialValues,\n          configureClusterMutation,\n          formikHelpers,\n          trackEvent,\n          environment\n        );\n      }}\n      validationSchema={configureValidationSchema}\n      validateOnMount\n      enableReinitialize // enableReinitialize is needed to update the form values when the ingress classes data is fetched\n    >\n      {(formikProps) => (\n        <InnerForm\n          // eslint-disable-next-line react/jsx-props-no-spreading\n          {...formikProps}\n          isIngressClassesLoading={ingressClassesQuery.isLoading}\n          environmentId={environment.Id}\n        />\n      )}\n    </Formik>\n  );\n}\n\nfunction InnerForm({\n  initialValues,\n  setFieldValue,\n  isValid,\n  isSubmitting,\n  values,\n  errors,\n  isIngressClassesLoading,\n  environmentId,\n}: FormikProps<ConfigureFormValues> & {\n  isIngressClassesLoading: boolean;\n  environmentId: EnvironmentId;\n}) {\n  const { data: isRBACEnabled, ...isRBACEnabledQuery } =\n    useIsRBACEnabledQuery(environmentId);\n\n  const onChangeControllers = useCallback(\n    (controllerClassMap: IngressControllerClassMap[]) =>\n      setFieldValue('ingressClasses', controllerClassMap),\n    [setFieldValue]\n  );\n\n  // when navigating away from the page with unsaved changes, show a portainer prompt to confirm\n  useTransitionHook('onBefore', {}, async () => {\n    if (!isFormChanged(values, initialValues)) {\n      return true;\n    }\n    const confirmed = await confirm({\n      modalType: ModalType.Warn,\n      title: 'Are you sure?',\n      message:\n        'You currently have unsaved changes in the cluster setup view. Are you sure you want to leave?',\n      confirmButton: buildConfirmButton('Yes', 'danger'),\n    });\n    return confirmed;\n  });\n\n  // when reloading or exiting the page with unsaved changes, show a browser prompt to confirm\n  useEffect(() => {\n    // the handler for showing the prompt\n    // https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload\n    function handler(event: BeforeUnloadEvent) {\n      event.preventDefault();\n      // eslint-disable-next-line no-param-reassign\n      event.returnValue = '';\n    }\n\n    // if the form is changed, then set the onbeforeunload\n    if (isFormChanged(values, initialValues)) {\n      window.addEventListener('beforeunload', handler);\n      return () => {\n        window.removeEventListener('beforeunload', handler);\n      };\n    }\n    return () => {};\n  }, [values, initialValues]);\n\n  return (\n    <Form className=\"form-horizontal\">\n      <div className=\"flex flex-col\">\n        <FormSection title=\"Networking - Services\">\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\" inline={false}>\n                Enabling the load balancer feature will allow users to expose\n                applications they deploy over an external IP address assigned by\n                the cloud provider.\n              </TextTip>\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"orange\" inline={false}>\n                If you want to use this feature, ensure your cloud provider\n                allows you to create load balancers. This may incur costs.\n              </TextTip>\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"useLoadBalancer\"\n                data-cy=\"kubeSetup-loadBalancerToggle\"\n                label=\"Allow users to use external load balancers\"\n                labelClass=\"col-sm-5 col-lg-4\"\n                checked={values.useLoadBalancer}\n                onChange={(checked) =>\n                  setFieldValue('useLoadBalancer', checked)\n                }\n              />\n            </div>\n          </div>\n        </FormSection>\n        <FormSection title=\"Networking - Ingresses\">\n          <IngressClassDatatable\n            onChange={onChangeControllers}\n            description=\"Enabling ingress controllers in your cluster allows them to be available in the Portainer UI for users to publish applications over HTTP/HTTPS. A controller must have a class name for it to be included here.\"\n            values={values.ingressClasses}\n            initialValues={initialValues.ingressClasses}\n            isLoading={isIngressClassesLoading}\n            noIngressControllerLabel=\"No supported ingress controllers found.\"\n            view=\"cluster\"\n          />\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"allowNoneIngressClass\"\n                data-cy=\"kubeSetup-allowNoneIngressClass\"\n                label='Allow ingress class to be set to \"none\"'\n                tooltip='This allows users setting up ingresses to select \"none\" as the ingress class.'\n                labelClass=\"col-sm-5 col-lg-4\"\n                checked={values.allowNoneIngressClass}\n                onChange={(checked) => {\n                  setFieldValue('allowNoneIngressClass', checked);\n                  // add or remove the none ingress class from the ingress classes list\n                  if (checked) {\n                    setFieldValue(\n                      'ingressClasses',\n                      getIngressClassesFormValues(\n                        checked,\n                        initialValues.ingressClasses\n                      )\n                    );\n                  }\n                }}\n              />\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"ingressAvailabilityPerNamespace\"\n                data-cy=\"kubeSetup-ingressAvailabilityPerNamespace\"\n                label=\"Configure ingress controller availability per namespace\"\n                tooltip=\"This allows an administrator to configure, in each namespace, which ingress controllers will be available for users to select when setting up ingresses for applications.\"\n                labelClass=\"col-sm-5 col-lg-4\"\n                checked={values.ingressAvailabilityPerNamespace}\n                onChange={(checked) =>\n                  setFieldValue('ingressAvailabilityPerNamespace', checked)\n                }\n              />\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"restrictStandardUserIngressW\"\n                data-cy=\"kubeSetup-restrictStandardUserIngressWToggle\"\n                label=\"Only allow admins to deploy ingresses\"\n                featureId={FeatureId.K8S_ADM_ONLY_USR_INGRESS_DEPLY}\n                tooltip=\"Enforces only allowing admins to deploy ingresses (and disallows standard users from doing so).\"\n                labelClass=\"col-sm-5 col-lg-4\"\n                checked={values.restrictStandardUserIngressW}\n                onChange={(checked) =>\n                  setFieldValue('restrictStandardUserIngressW', checked)\n                }\n              />\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\" inline={false}>\n                You may set up ingress defaults (hostnames and annotations) via\n                Create/Edit ingress. Users may then select them via the hostname\n                dropdown in Create/Edit application.\n              </TextTip>\n            </div>\n          </div>\n        </FormSection>\n        <FormSection title=\"Change Window Settings\">\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"changeWindow.Enabled\"\n                data-cy=\"kubeSetup-changeWindowEnabledToggle\"\n                label=\"Enable Change Window\"\n                tooltip=\"GitOps updates to stacks or applications outside the defined change window will not occur.\"\n                labelClass=\"col-sm-5 col-lg-4\"\n                checked={false}\n                featureId={FeatureId.HIDE_AUTO_UPDATE_WINDOW}\n                onChange={() => {}}\n              />\n            </div>\n          </div>\n        </FormSection>\n        <FormSection title=\"Security\">\n          {!isRBACEnabled && isRBACEnabledQuery.isSuccess && <RBACAlert />}\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\" inline={false}>\n                <p>\n                  By default, all the users have access to the default\n                  namespace. Enable this option to set accesses on the default\n                  namespace.\n                </p>\n              </TextTip>\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"restrictDefaultNamespace\"\n                data-cy=\"kubeSetup-restrictDefaultNsToggle\"\n                label=\"Restrict access to the default namespace\"\n                labelClass=\"col-sm-5 col-lg-4\"\n                checked={values.restrictDefaultNamespace}\n                onChange={(checked) =>\n                  setFieldValue('restrictDefaultNamespace', checked)\n                }\n              />\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                name=\"restrictSecrets\"\n                data-cy=\"kubeSetup-restrictSecretsToggle\"\n                label=\"Restrict secret contents access for non-admins (UI only)\"\n                tooltip=\"This hides the ability to view or edit in the UI the contents of secrets that a non-admin user did not create themselves but does not prevent it via the command line.\"\n                labelClass=\"col-sm-5 col-lg-4\"\n                checked={false}\n                featureId={FeatureId.K8S_ADM_ONLY_SECRETS}\n                onChange={() => {}}\n              />\n            </div>\n          </div>\n        </FormSection>\n        <FormSection title=\"Resources and Metrics\">\n          <InsightsBox\n            insightCloseId=\"resourceOverCommit\"\n            className=\"mb-4\"\n            header=\"Allow resource over-commit - UI-only change in 2.20\"\n            content=\"Resource over-commit has always been ENABLED in Portainer CE. However, the toggle was incorrectly shown as OFF. This has now been corrected but please note that no functionality has been removed.\"\n          />\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\" inline={false}>\n                <p>\n                  By DISABLING resource over-commit (highly recommended), you\n                  can ONLY assign namespaces CPU and memory resources that are\n                  less (in aggregate) than the cluster total minus any system\n                  resource reservation.\n                </p>\n              </TextTip>\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"orange\" inline={false}>\n                <p>\n                  By ENABLING resource over-commit, you can assign namespaces\n                  more resources than are physically available in the cluster.\n                  This may lead to unexpected deployment failures if there are\n                  insufficient resources to service demand.\n                </p>\n              </TextTip>\n            </div>\n          </div>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <SwitchField\n                label=\"Allow resource over-commit\"\n                labelClass=\"col-sm-5 col-lg-4\"\n                name=\"resourceOverCommitPercentage\"\n                checked\n                featureId={FeatureId.K8S_SETUP_DEFAULT}\n                onChange={(checked: boolean) => {\n                  setFieldValue('enableResourceOverCommit', checked);\n                  // set 20% as the default resourceOverCommitPercentage value\n                  if (!checked) {\n                    setFieldValue('resourceOverCommitPercentage', 20);\n                  }\n                }}\n                data-cy=\"kubeSetup-resourceOverCommitToggle\"\n              />\n            </div>\n          </div>\n          <EnableMetricsInput\n            environmentId={environmentId}\n            error={errors.useServerMetrics}\n            value={values.useServerMetrics}\n          />\n        </FormSection>\n        <FormSection title=\"Available storage options\">\n          {initialValues.storageClasses.length === 0 && (\n            <div className=\"form-group\">\n              <div className=\"col-sm-12\">\n                <TextTip color=\"orange\" inline={false}>\n                  Unable to detect any storage class available to persist data.\n                  Users won&apos;t be able to persist application data inside\n                  this cluster.\n                </TextTip>\n              </div>\n            </div>\n          )}\n          {initialValues.storageClasses.length > 0 && (\n            <>\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <TextTip color=\"blue\" inline={false}>\n                    <p>\n                      Select which storage options will be available for use\n                      when deploying applications. Have a look at your storage\n                      driver documentation to figure out which access policy to\n                      configure and if the volume expansion capability is\n                      supported.\n                    </p>\n                    <p>\n                      You can find more information about access modes{' '}\n                      <a\n                        href=\"https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes\"\n                        target=\"_blank\"\n                        rel=\"noreferrer\"\n                      >\n                        in the official Kubernetes documentation\n                      </a>\n                      .\n                    </p>\n                  </TextTip>\n                </div>\n              </div>\n              <StorageClassDatatable\n                storageClassValues={values.storageClasses}\n              />\n            </>\n          )}\n        </FormSection>\n        <FormActions\n          submitLabel=\"Save configuration\"\n          loadingText=\"Saving configuration\"\n          isLoading={isSubmitting}\n          isValid={\n            isValid &&\n            !isIngressClassesLoading &&\n            isFormChanged(values, initialValues)\n          }\n          data-cy=\"kubeSetup-saveConfigurationButton\"\n        />\n      </div>\n    </Form>\n  );\n}\n\nfunction useInitialValues(\n  environment?: Environment | null,\n  storageClassFormValues?: StorageClassFormValues[],\n  ingressClasses?: IngressControllerClassMap[]\n): ConfigureFormValues | undefined {\n  return useMemo(() => {\n    if (!environment) {\n      return undefined;\n    }\n    const allowNoneIngressClass =\n      !!environment.Kubernetes.Configuration.AllowNoneIngressClass;\n\n    return {\n      storageClasses: storageClassFormValues || [],\n      useLoadBalancer: !!environment.Kubernetes.Configuration.UseLoadBalancer,\n      useServerMetrics: !!environment.Kubernetes.Configuration.UseServerMetrics,\n      enableResourceOverCommit:\n        !!environment.Kubernetes.Configuration.EnableResourceOverCommit,\n      resourceOverCommitPercentage:\n        environment.Kubernetes.Configuration.ResourceOverCommitPercentage || 20,\n      restrictDefaultNamespace:\n        !!environment.Kubernetes.Configuration.RestrictDefaultNamespace,\n      restrictStandardUserIngressW:\n        !!environment.Kubernetes.Configuration.RestrictStandardUserIngressW,\n      ingressAvailabilityPerNamespace:\n        !!environment.Kubernetes.Configuration.IngressAvailabilityPerNamespace,\n      allowNoneIngressClass,\n      ingressClasses:\n        getIngressClassesFormValues(allowNoneIngressClass, ingressClasses) ||\n        [],\n    };\n  }, [environment, ingressClasses, storageClassFormValues]);\n}\n\nfunction isFormChanged(\n  values: ConfigureFormValues,\n  initialValues: ConfigureFormValues\n) {\n  // check if the form values are different from the initial values\n  return !_.isEqual(values, initialValues);\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { IngressesDatatableView } from '@/react/kubernetes/ingresses/IngressDatatable';\nimport { CreateIngressView } from '@/react/kubernetes/ingresses/CreateIngressView';\nimport { DashboardView } from '@/react/kubernetes/dashboard/DashboardView';\nimport { ServicesView } from '@/react/kubernetes/services/ServicesView';\nimport { ConsoleView } from '@/react/kubernetes/applications/ConsoleView';\nimport { ConfigmapsAndSecretsView } from '@/react/kubernetes/configs/ListView/ConfigmapsAndSecretsView';\nimport { CreateNamespaceView } from '@/react/kubernetes/namespaces/CreateView/CreateNamespaceView';\nimport { ApplicationDetailsView } from '@/react/kubernetes/applications/DetailsView/ApplicationDetailsView';\nimport { ConfigureView } from '@/react/kubernetes/cluster/ConfigureView';\n\nexport const viewsModule = angular\n  .module('portainer.kubernetes.react.views', [])\n  .component(\n    'kubernetesCreateNamespaceView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(CreateNamespaceView))), [])\n  )\n  .component(\n    'kubernetesServicesView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ServicesView))), [])\n  )\n  .component(\n    'kubernetesIngressesView',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(IngressesDatatableView))),\n      []\n    )\n  )\n  .component(\n    'kubernetesIngressesCreateView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(CreateIngressView))), [])\n  )\n  .component(\n    'kubernetesConfigMapsAndSecretsView',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(ConfigmapsAndSecretsView))),\n      []\n    )\n  )\n  .component(\n    'applicationDetailsView',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(ApplicationDetailsView))),\n      []\n    )\n  )\n  .component(\n    'kubernetesConfigureView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ConfigureView))), [])\n  )\n  .component(\n    'kubernetesDashboardView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(DashboardView))), [])\n  )\n  .component(\n    'kubernetesConsoleView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ConsoleView))), [])\n  ).name;\n","import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { useUnauthorizedRedirect } from '@/react/hooks/useUnauthorizedRedirect';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { CreateNamespaceForm } from './CreateNamespaceForm';\n\nexport function CreateNamespaceView() {\n  const environmentId = useEnvironmentId();\n\n  useUnauthorizedRedirect(\n    {\n      authorizations: 'K8sResourcePoolsW',\n      adminOnlyCE: !isBE,\n    },\n    {\n      to: 'kubernetes.resourcePools',\n      params: {\n        id: environmentId,\n      },\n    }\n  );\n\n  return (\n    <div className=\"form-horizontal\">\n      <PageHeader\n        title=\"Create a namespace\"\n        breadcrumbs={[\n          { label: 'Namespaces', link: 'kubernetes.resourcePools' },\n          'Create a namespace',\n        ]}\n        reload\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <CreateNamespaceForm />\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { PageHeader } from '@@/PageHeader';\n\nimport { ServicesDatatable } from './ServicesDatatable';\n\nexport function ServicesView() {\n  return (\n    <>\n      <PageHeader title=\"Service list\" breadcrumbs=\"Services\" reload />\n      <ServicesDatatable />\n    </>\n  );\n}\n","import { PageHeader } from '@@/PageHeader';\n\nimport { IngressDatatable } from './IngressDatatable';\n\nexport function IngressesDatatableView() {\n  return (\n    <>\n      <PageHeader\n        title=\"Ingress list\"\n        breadcrumbs={[\n          {\n            label: 'Ingresses',\n          },\n        ]}\n        reload\n      />\n      <IngressDatatable />\n    </>\n  );\n}\n","import { useState, useEffect, useMemo, useCallback, ReactNode } from 'react';\nimport { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { debounce } from 'lodash';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport { useSecrets } from '@/react/kubernetes/configs/secret.service';\nimport { useNamespaceServices } from '@/react/kubernetes/networks/services/queries';\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { useAuthorizations } from '@/react/hooks/useUser';\nimport { Annotation } from '@/react/kubernetes/annotations/types';\nimport { prepareAnnotations } from '@/react/kubernetes/utils';\n\nimport { Link } from '@@/Link';\nimport { PageHeader } from '@@/PageHeader';\nimport { Option } from '@@/form-components/Input/Select';\nimport { Button } from '@@/buttons';\n\nimport { useNamespacesQuery } from '../../namespaces/queries/useNamespacesQuery';\nimport { Ingress, IngressController } from '../types';\nimport {\n  useCreateIngress,\n  useIngresses,\n  useUpdateIngress,\n  useIngressControllers,\n} from '../queries';\n\nimport {\n  Rule,\n  Path,\n  Host,\n  GroupedServiceOptions,\n  IngressErrors,\n} from './types';\nimport { IngressForm } from './IngressForm';\nimport {\n  prepareTLS,\n  preparePaths,\n  prepareRuleFromIngress,\n  checkIfPathExistsWithHost,\n} from './utils';\n\nexport function CreateIngressView() {\n  const environmentId = useEnvironmentId();\n  const { params } = useCurrentStateAndParams();\n  const { authorized: isAuthorizedToAddEdit } = useAuthorizations([\n    'K8sIngressesW',\n  ]);\n\n  const router = useRouter();\n  const isEdit = !!params.namespace;\n\n  useEffect(() => {\n    if (!isAuthorizedToAddEdit) {\n      const message = `Not authorized to ${isEdit ? 'edit' : 'add'} ingresses`;\n      notifyError('Error', new Error(message));\n      router.stateService.go('kubernetes.ingresses');\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isAuthorizedToAddEdit, isEdit]);\n\n  const [namespace, setNamespace] = useState<string>(params.namespace || '');\n  const [ingressRule, setIngressRule] = useState<Rule>({} as Rule);\n  // isEditClassNameSet is used to prevent premature validation of the classname in the edit view\n  const [isEditClassNameSet, setIsEditClassNameSet] = useState<boolean>(false);\n\n  const [errors, setErrors] = useState<IngressErrors>({});\n\n  const { data: namespaces, ...namespacesQuery } =\n    useNamespacesQuery(environmentId);\n\n  const { data: allServices } = useNamespaceServices(environmentId, namespace);\n  const secretsResults = useSecrets(environmentId, namespace);\n  const ingressesResults = useIngresses(\n    environmentId,\n    namespaces ? Object.keys(namespaces || {}) : []\n  );\n  const { data: ingressControllers, ...ingressControllersQuery } =\n    useIngressControllers(environmentId, namespace);\n\n  const createIngressMutation = useCreateIngress();\n  const updateIngressMutation = useUpdateIngress();\n\n  const [ingressNames, ingresses, ruleCounterByNamespace, hostWithTLS] =\n    useMemo((): [\n      string[],\n      Ingress[],\n      Record<string, number>,\n      Record<string, string>,\n    ] => {\n      const ruleCounterByNamespace: Record<string, number> = {};\n      const hostWithTLS: Record<string, string> = {};\n      ingressesResults.data?.forEach((ingress) => {\n        ingress.TLS?.forEach((tls) => {\n          tls.Hosts.forEach((host) => {\n            hostWithTLS[host] = tls.SecretName;\n          });\n        });\n      });\n      const ingressNames: string[] = [];\n      ingressesResults.data?.forEach((ing) => {\n        ruleCounterByNamespace[ing.Namespace] =\n          ruleCounterByNamespace[ing.Namespace] || 0;\n        const n = ing.Name.match(/^(.*)-(\\d+)$/);\n        if (n?.length === 3) {\n          ruleCounterByNamespace[ing.Namespace] = Math.max(\n            ruleCounterByNamespace[ing.Namespace],\n            Number(n[2])\n          );\n        }\n        if (ing.Namespace === namespace) {\n          ingressNames.push(ing.Name);\n        }\n      });\n      return [\n        ingressNames || [],\n        ingressesResults.data || [],\n        ruleCounterByNamespace,\n        hostWithTLS,\n      ];\n    }, [ingressesResults.data, namespace]);\n\n  const namespaceOptions = useMemo(\n    () =>\n      Object.entries(namespaces || {})\n        .filter(([, nsValue]) => !nsValue.IsSystem)\n        .map(([nsKey]) => ({\n          label: nsKey,\n          value: nsKey,\n        })),\n    [namespaces]\n  );\n\n  const serviceOptions: GroupedServiceOptions = useMemo(() => {\n    const groupedOptions: GroupedServiceOptions = (\n      allServices?.reduce<GroupedServiceOptions>(\n        (groupedOptions, service) => {\n          // add a new option to the group that matches the service type\n          const newGroupedOptions = groupedOptions.map((group) => {\n            if (group.label === service.Type) {\n              return {\n                ...group,\n                options: [\n                  ...group.options,\n                  {\n                    label: service.Name,\n                    selectedLabel: `${service.Name} (${service.Type})`,\n                    value: service.Name,\n                  },\n                ],\n              };\n            }\n            return group;\n          });\n          return newGroupedOptions;\n        },\n        [\n          { label: 'ClusterIP', options: [] },\n          { label: 'NodePort', options: [] },\n          { label: 'LoadBalancer', options: [] },\n        ] as GroupedServiceOptions\n      ) || []\n    ).filter((group) => group.options.length > 0);\n    return groupedOptions;\n  }, [allServices]);\n\n  const servicePorts = useMemo(\n    () =>\n      allServices\n        ? Object.fromEntries(\n            allServices?.map((service) => [\n              service.Name,\n              service.Ports.map((port) => ({\n                label: String(port.Port),\n                value: String(port.Port),\n              })),\n            ])\n          )\n        : {},\n    [allServices]\n  );\n\n  const existingIngressClass = useMemo(\n    () =>\n      ingressControllers?.find(\n        (controller) =>\n          controller.ClassName === ingressRule.IngressClassName ||\n          (controller.Type === 'custom' && ingressRule.IngressClassName === '')\n      ),\n    [ingressControllers, ingressRule.IngressClassName]\n  );\n\n  const ingressClassOptions: Option<string>[] = useMemo(() => {\n    const allowedIngressClassOptions =\n      ingressControllers\n        ?.filter((controller) => !!controller.Availability)\n        .map((cls) => ({\n          label: cls.ClassName,\n          value: cls.ClassName,\n        })) || [];\n\n    // if the ingress class is not set, return only the allowed ingress classes\n    if (ingressRule.IngressClassName === '' || !isEdit) {\n      return allowedIngressClassOptions;\n    }\n\n    // if the ingress class is set and it exists (even if disallowed), return the allowed ingress classes + the disallowed option\n    const disallowedIngressClasses =\n      ingressControllers\n        ?.filter(\n          (controller) =>\n            !controller.Availability &&\n            existingIngressClass?.ClassName === controller.ClassName\n        )\n        .map((controller) => ({\n          label: `${controller.ClassName} - DISALLOWED`,\n          value: controller.ClassName,\n        })) || [];\n\n    const existingIngressClassFound = ingressControllers?.find(\n      (controller) => existingIngressClass?.ClassName === controller.ClassName\n    );\n    if (existingIngressClassFound) {\n      return [...allowedIngressClassOptions, ...disallowedIngressClasses];\n    }\n\n    // if the ingress class is set and it doesn't exist, return the allowed ingress classes + the not found option\n    const notFoundIngressClassOption = {\n      label: `${ingressRule.IngressClassName} - NOT FOUND`,\n      value: ingressRule.IngressClassName || '',\n    };\n    return [...allowedIngressClassOptions, notFoundIngressClassOption];\n  }, [\n    existingIngressClass?.ClassName,\n    ingressControllers,\n    ingressRule.IngressClassName,\n    isEdit,\n  ]);\n\n  const handleIngressChange = useCallback(\n    (key: string, val: string) => {\n      setIngressRule((prevRules) => {\n        const rule = { ...prevRules, [key]: val };\n        if (key === 'IngressClassName') {\n          rule.IngressType = ingressControllers?.find(\n            (c) => c.ClassName === val\n          )?.Type;\n        }\n        return rule;\n      });\n    },\n    [ingressControllers]\n  );\n\n  // when them selected ingress class option update is no longer available set to an empty value\n  useEffect(() => {\n    const ingressClasses = ingressClassOptions.map((option) => option.value);\n    if (\n      !ingressClasses.includes(ingressRule.IngressClassName) &&\n      ingressControllersQuery.isSuccess\n    ) {\n      handleIngressChange('IngressClassName', '');\n    }\n  }, [\n    handleIngressChange,\n    ingressClassOptions,\n    ingressControllersQuery.isSuccess,\n    ingressRule.IngressClassName,\n  ]);\n\n  const secrets = secretsResults?.data?.filter(\n    (config) =>\n      config.type === 'kubernetes.io/tls' &&\n      config.metadata?.namespace === namespace\n  );\n  const tlsOptions: Option<string>[] = useMemo(\n    () => [\n      { label: 'No TLS', value: '' },\n      ...(secrets?.map((config) => ({\n        label: config.metadata?.name as string,\n        value: config.metadata?.name as string,\n      })) || []),\n    ],\n    [secrets]\n  );\n\n  useEffect(() => {\n    if (\n      !!params.name &&\n      ingressesResults.data &&\n      !ingressRule.IngressName &&\n      !ingressControllersQuery.isLoading &&\n      !ingressControllersQuery.isLoading\n    ) {\n      // if it is an edit screen, prepare the rule from the ingress\n      const ing = ingressesResults.data?.find(\n        (ing) => ing.Name === params.name && ing.Namespace === params.namespace\n      );\n      if (ing) {\n        const type = ingressControllers?.find(\n          (c) =>\n            c.ClassName === ing.ClassName ||\n            (c.Type === 'custom' && !ing.ClassName)\n        )?.Type;\n        const r = prepareRuleFromIngress(ing, type);\n        r.IngressType = type || r.IngressType;\n        setIngressRule(r);\n        setIsEditClassNameSet(true);\n      }\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [\n    params.name,\n    ingressesResults.data,\n    ingressControllers,\n    ingressRule.IngressName,\n    params.namespace,\n  ]);\n\n  useEffect(() => {\n    // for each host, if the tls selection doesn't exist as an option, change it to the first option\n    if (ingressRule?.Hosts?.length) {\n      ingressRule.Hosts.forEach((host, hIndex) => {\n        const secret = host.Secret || '';\n        const tlsOptionVals = tlsOptions.map((o) => o.value);\n        if (tlsOptions?.length && !tlsOptionVals?.includes(secret)) {\n          handleTLSChange(hIndex, tlsOptionVals[0]);\n        }\n      });\n    }\n  }, [tlsOptions, ingressRule.Hosts]);\n\n  useEffect(() => {\n    // for each path in each host, if the service port doesn't exist as an option, change it to the first option\n    if (ingressRule?.Hosts?.length) {\n      ingressRule.Hosts.forEach((host, hIndex) => {\n        host?.Paths?.forEach((path, pIndex) => {\n          const serviceName = path.ServiceName;\n          const currentServicePorts = servicePorts[serviceName]?.map(\n            (p) => p.value\n          );\n          if (\n            currentServicePorts?.length &&\n            !currentServicePorts?.includes(String(path.ServicePort))\n          ) {\n            handlePathChange(\n              hIndex,\n              pIndex,\n              'ServicePort',\n              currentServicePorts[0]\n            );\n          }\n        });\n      });\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [ingressRule, servicePorts]);\n\n  const validate = useCallback(\n    (\n      ingressRule: Rule,\n      ingressNames: string[],\n      groupedServiceOptions: GroupedServiceOptions,\n      existingIngressClass?: IngressController\n    ) => {\n      const errors: Record<string, ReactNode> = {};\n      const rule = { ...ingressRule };\n\n      // User cannot edit the namespace and the ingress name\n      if (!isEdit) {\n        if (!rule.Namespace) {\n          errors.namespace = 'Namespace is required';\n        }\n\n        const nameRegex = /^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/;\n        if (!rule.IngressName) {\n          errors.ingressName = 'Ingress name is required';\n        } else if (!nameRegex.test(rule.IngressName)) {\n          errors.ingressName =\n            \"This field must consist of lower case alphanumeric characters or '-', contain at most 63 characters, start with an alphabetic character, and end with an alphanumeric character (e.g. 'my-name', or 'abc-123').\";\n        } else if (ingressNames.includes(rule.IngressName)) {\n          errors.ingressName = 'Ingress name already exists';\n        }\n\n        if (\n          (!ingressClassOptions.length || !rule.IngressClassName) &&\n          ingressControllersQuery.isSuccess\n        ) {\n          errors.className = 'Ingress class is required';\n        }\n      }\n\n      if (isEdit && !ingressRule.IngressClassName && isEditClassNameSet) {\n        errors.className =\n          'No ingress class is currently set for this ingress - use of the Portainer UI requires one to be set.';\n      }\n\n      if (\n        isEdit &&\n        (!existingIngressClass ||\n          (existingIngressClass && !existingIngressClass.Availability)) &&\n        ingressRule.IngressClassName\n      ) {\n        if (!rule.IngressType) {\n          errors.className =\n            'Currently set to an ingress class that cannot be found in the cluster - you must select a valid class.';\n        } else {\n          errors.className =\n            'Currently set to an ingress class that you do not have access to - you must select a valid class.';\n        }\n      }\n\n      const duplicatedAnnotations: string[] = [];\n      const re = /^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$/;\n      rule.Annotations?.forEach((a, i) => {\n        if (!a.Key) {\n          errors[`annotations.key[${i}]`] = 'Key is required.';\n        } else if (duplicatedAnnotations.includes(a.Key)) {\n          errors[`annotations.key[${i}]`] =\n            'Key is a duplicate of an existing one.';\n        } else {\n          const key = a.Key.split('/');\n          if (key.length > 2) {\n            errors[`annotations.key[${i}]`] =\n              'Two segments are allowed, separated by a slash (/): a prefix (optional) and a name.';\n          } else if (key.length === 2) {\n            if (key[0].length > 253) {\n              errors[`annotations.key[${i}]`] =\n                \"Prefix (before the slash) can't exceed 253 characters.\";\n            } else if (key[1].length > 63) {\n              errors[`annotations.key[${i}]`] =\n                \"Name (after the slash) can't exceed 63 characters.\";\n            } else if (!re.test(key[1])) {\n              errors[`annotations.key[${i}]`] =\n                'Start and end with alphanumeric characters only, limiting characters in between to dashes, underscores, and alphanumerics.';\n            }\n          } else if (key.length === 1) {\n            if (key[0].length > 63) {\n              errors[`annotations.key[${i}]`] =\n                \"Name (the segment after a slash (/), or only segment if no slash) can't exceed 63 characters.\";\n            } else if (!re.test(key[0])) {\n              errors[`annotations.key[${i}]`] =\n                'Start and end with alphanumeric characters only, limiting characters in between to dashes, underscores, and alphanumerics.';\n            }\n          }\n        }\n        if (!a.Value) {\n          errors[`annotations.value[${i}]`] = 'Value is required.';\n        }\n        duplicatedAnnotations.push(a.Key);\n      });\n\n      const duplicatedHosts: string[] = [];\n      // Check if the paths are duplicates\n      rule.Hosts?.forEach((host, hi) => {\n        if (!host.NoHost) {\n          if (!host.Host) {\n            errors[`hosts[${hi}].host`] = 'Host is required';\n          } else if (duplicatedHosts.includes(host.Host)) {\n            errors[`hosts[${hi}].host`] = 'Host cannot be duplicated';\n          }\n          duplicatedHosts.push(host.Host);\n        }\n\n        // Validate service\n        host.Paths?.forEach((path, pi) => {\n          if (!path.ServiceName) {\n            errors[`hosts[${hi}].paths[${pi}].servicename`] =\n              'Service name is required';\n          }\n\n          const availableServiceNames = groupedServiceOptions.flatMap(\n            (optionGroup) => optionGroup.options.map((option) => option.value)\n          );\n\n          if (\n            isEdit &&\n            path.ServiceName &&\n            !availableServiceNames.find((sn) => sn === path.ServiceName)\n          ) {\n            errors[`hosts[${hi}].paths[${pi}].servicename`] = (\n              <span>\n                Currently set to {path.ServiceName}, which does not exist. You\n                can create a service with this name for a particular deployment\n                via{' '}\n                <Link\n                  to=\"kubernetes.applications\"\n                  params={{ id: environmentId }}\n                  className=\"text-primary\"\n                  target=\"_blank\"\n                >\n                  Applications\n                </Link>\n                , and on returning here it will be picked up.\n              </span>\n            );\n          }\n\n          if (!path.ServicePort) {\n            errors[`hosts[${hi}].paths[${pi}].serviceport`] =\n              'Service port is required';\n          }\n        });\n        // Validate paths\n        const paths = host.Paths.map((path) => path.Route);\n        paths.forEach((item, idx) => {\n          if (!item) {\n            errors[`hosts[${hi}].paths[${idx}].path`] = 'Path cannot be empty';\n          } else if (paths.indexOf(item) !== idx) {\n            errors[`hosts[${hi}].paths[${idx}].path`] =\n              'Paths cannot be duplicated';\n          } else {\n            // Validate host and path combination globally\n            const isExists = checkIfPathExistsWithHost(\n              ingresses,\n              host.Host,\n              item,\n              params.name\n            );\n            if (isExists) {\n              errors[`hosts[${hi}].paths[${idx}].path`] =\n                'Path is already in use with the same host';\n            }\n          }\n        });\n      });\n\n      setErrors(errors);\n      if (Object.keys(errors).length > 0) {\n        return false;\n      }\n      return true;\n    },\n    [\n      isEdit,\n      isEditClassNameSet,\n      ingressClassOptions.length,\n      ingressControllersQuery.isSuccess,\n      environmentId,\n      ingresses,\n      params.name,\n    ]\n  );\n\n  const debouncedValidate = useMemo(() => debounce(validate, 500), [validate]);\n\n  useEffect(() => {\n    if (namespace.length > 0) {\n      debouncedValidate(\n        ingressRule,\n        ingressNames || [],\n        serviceOptions || [],\n        existingIngressClass\n      );\n    }\n  }, [\n    ingressRule,\n    namespace,\n    ingressNames,\n    serviceOptions,\n    existingIngressClass,\n    debouncedValidate,\n  ]);\n\n  return (\n    <>\n      <PageHeader\n        title={isEdit ? 'Edit ingress' : 'Create ingress'}\n        breadcrumbs={[\n          {\n            link: 'kubernetes.ingresses',\n            label: 'Ingresses',\n          },\n          {\n            label: isEdit ? 'Edit ingress' : 'Create ingress',\n          },\n        ]}\n        reload\n      />\n      <div className=\"row ingress-rules\">\n        <div className=\"col-sm-12\">\n          <IngressForm\n            environmentID={environmentId}\n            isEdit={isEdit}\n            rule={ingressRule}\n            ingressClassOptions={ingressClassOptions}\n            isIngressClassOptionsLoading={ingressControllersQuery.isLoading}\n            errors={errors}\n            servicePorts={servicePorts}\n            tlsOptions={tlsOptions}\n            serviceOptions={serviceOptions}\n            addNewIngressHost={addNewIngressHost}\n            handleTLSChange={handleTLSChange}\n            handleHostChange={handleHostChange}\n            handleIngressChange={handleIngressChange}\n            handlePathChange={handlePathChange}\n            addNewIngressRoute={addNewIngressRoute}\n            removeIngressHost={removeIngressHost}\n            removeIngressRoute={removeIngressRoute}\n            addNewAnnotation={addNewAnnotation}\n            removeAnnotation={removeAnnotation}\n            reloadTLSCerts={reloadTLSCerts}\n            handleAnnotationChange={handleAnnotationChange}\n            namespace={namespace}\n            handleNamespaceChange={handleNamespaceChange}\n            namespacesOptions={namespaceOptions}\n            isNamespaceOptionsLoading={namespacesQuery.isLoading}\n            // wait for ingress results too to set a name that's not taken with handleNamespaceChange()\n            isIngressNamesLoading={ingressesResults.isLoading}\n          />\n        </div>\n        {namespace && (\n          <div className=\"col-sm-12\">\n            <Button\n              onClick={() => handleCreateIngressRules()}\n              disabled={Object.keys(errors).length > 0}\n            >\n              {isEdit ? 'Update' : 'Create'}\n            </Button>\n          </div>\n        )}\n      </div>\n    </>\n  );\n\n  function handleNamespaceChange(ns: string) {\n    setNamespace(ns);\n    if (!isEdit) {\n      addNewIngress(ns);\n    }\n  }\n\n  function handleTLSChange(hostIndex: number, tls: string) {\n    setIngressRule((prevRules) => {\n      const rule = { ...prevRules };\n      rule.Hosts[hostIndex] = { ...rule.Hosts[hostIndex], Secret: tls };\n      return rule;\n    });\n  }\n\n  function handleHostChange(hostIndex: number, val: string) {\n    setIngressRule((prevRules) => {\n      const rule = { ...prevRules };\n      rule.Hosts[hostIndex] = { ...rule.Hosts[hostIndex], Host: val };\n      rule.Hosts[hostIndex].Secret =\n        hostWithTLS[val] || rule.Hosts[hostIndex].Secret;\n      return rule;\n    });\n  }\n\n  function handlePathChange(\n    hostIndex: number,\n    pathIndex: number,\n    key: 'Route' | 'PathType' | 'ServiceName' | 'ServicePort',\n    val: string\n  ) {\n    setIngressRule((prevRules) => {\n      const rule = { ...prevRules };\n      const h = { ...rule.Hosts[hostIndex] };\n      h.Paths[pathIndex] = {\n        ...h.Paths[pathIndex],\n        [key]: key === 'ServicePort' ? Number(val) : val,\n      };\n\n      // set the first port of the service as the default port\n      if (\n        key === 'ServiceName' &&\n        servicePorts[val] &&\n        servicePorts[val].length > 0\n      ) {\n        h.Paths[pathIndex].ServicePort = Number(servicePorts[val][0].value);\n      }\n\n      rule.Hosts[hostIndex] = h;\n      return rule;\n    });\n  }\n\n  function handleAnnotationChange(\n    index: number,\n    key: 'Key' | 'Value',\n    val: string\n  ) {\n    setIngressRule((prevRules) => {\n      const rules = { ...prevRules };\n\n      rules.Annotations = rules.Annotations || [];\n      rules.Annotations[index] = rules.Annotations[index] || {\n        Key: '',\n        Value: '',\n      };\n      rules.Annotations[index][key] = val;\n\n      return rules;\n    });\n  }\n\n  function addNewIngress(namespace: string) {\n    const newKey = `${namespace}-ingress-${\n      (ruleCounterByNamespace[namespace] || 0) + 1\n    }`;\n\n    const host: Host = {\n      Host: '',\n      Secret: '',\n      Paths: [],\n      Key: uuidv4(),\n    };\n\n    const rule: Rule = {\n      Key: uuidv4(),\n      Namespace: namespace,\n      IngressName: newKey,\n      IngressClassName: ingressRule.IngressClassName || '',\n      IngressType: ingressRule.IngressType || '',\n      Hosts: [host],\n    };\n\n    setIngressRule(rule);\n  }\n\n  function addNewIngressHost(noHost = false) {\n    const rule = { ...ingressRule };\n\n    const path: Path = {\n      Key: uuidv4(),\n      ServiceName: '',\n      ServicePort: 0,\n      Route: '',\n      PathType: 'Prefix',\n    };\n\n    const host: Host = {\n      Host: '',\n      Secret: '',\n      Paths: noHost ? [path] : [],\n      NoHost: noHost,\n      Key: uuidv4(),\n    };\n\n    rule.Hosts.push(host);\n    setIngressRule(rule);\n  }\n\n  function addNewIngressRoute(hostIndex: number) {\n    const rule = { ...ingressRule };\n\n    const path: Path = {\n      ServiceName: '',\n      ServicePort: 0,\n      Route: '',\n      PathType: 'Prefix',\n      Key: uuidv4(),\n    };\n\n    rule.Hosts[hostIndex].Paths.push(path);\n    setIngressRule(rule);\n  }\n\n  function addNewAnnotation(type?: 'rewrite' | 'regex' | 'ingressClass') {\n    const rule = { ...ingressRule };\n\n    const annotation: Annotation = {\n      Key: '',\n      Value: '',\n      ID: uuidv4(),\n    };\n    switch (type) {\n      case 'rewrite':\n        annotation.Key = 'nginx.ingress.kubernetes.io/rewrite-target';\n        annotation.Value = '/$1';\n        break;\n      case 'regex':\n        annotation.Key = 'nginx.ingress.kubernetes.io/use-regex';\n        annotation.Value = 'true';\n        break;\n      case 'ingressClass':\n        annotation.Key = 'kubernetes.io/ingress.class';\n        annotation.Value = '';\n        break;\n      default:\n        break;\n    }\n    rule.Annotations = rule.Annotations || [];\n    rule.Annotations?.push(annotation);\n    setIngressRule(rule);\n  }\n\n  function removeAnnotation(index: number) {\n    const rule = { ...ingressRule };\n\n    if (index > -1) {\n      rule.Annotations?.splice(index, 1);\n    }\n\n    setIngressRule(rule);\n  }\n\n  function removeIngressRoute(hostIndex: number, pathIndex: number) {\n    const rule = { ...ingressRule, Hosts: [...ingressRule.Hosts] };\n    if (hostIndex > -1 && pathIndex > -1) {\n      rule.Hosts[hostIndex].Paths.splice(pathIndex, 1);\n    }\n    setIngressRule(rule);\n  }\n\n  function removeIngressHost(hostIndex: number) {\n    const rule = { ...ingressRule, Hosts: [...ingressRule.Hosts] };\n    if (hostIndex > -1) {\n      rule.Hosts.splice(hostIndex, 1);\n    }\n    setIngressRule(rule);\n  }\n\n  function reloadTLSCerts() {\n    secretsResults.refetch();\n  }\n\n  function handleCreateIngressRules() {\n    const rule = { ...ingressRule };\n\n    const classNameToSend =\n      rule.IngressClassName === 'none' ? '' : rule.IngressClassName;\n\n    const ingress: Ingress = {\n      Namespace: namespace,\n      Name: rule.IngressName,\n      ClassName: classNameToSend,\n      Hosts: rule.Hosts.map((host) => host.Host),\n      Paths: preparePaths(rule.IngressName, rule.Hosts),\n      TLS: prepareTLS(rule.Hosts),\n      Annotations: prepareAnnotations(rule.Annotations || []),\n      Labels: rule.Labels,\n    };\n\n    if (isEdit) {\n      updateIngressMutation.mutate(\n        { environmentId, ingress },\n        {\n          onSuccess: () => {\n            notifySuccess('Success', 'Ingress updated successfully');\n            router.stateService.go('kubernetes.ingresses');\n          },\n        }\n      );\n    } else {\n      createIngressMutation.mutate(\n        { environmentId, ingress },\n        {\n          onSuccess: () => {\n            notifySuccess('Success', 'Ingress created successfully');\n            router.stateService.go('kubernetes.ingresses');\n          },\n        }\n      );\n    }\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { error as notifyError } from '@/portainer/services/notifications';\n\nimport { getServices } from './service';\nimport { Service } from './types';\n\nexport function useNamespaceServices(\n  environmentId: EnvironmentId,\n  namespace: string\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'kubernetes',\n      'namespaces',\n      namespace,\n      'services',\n    ],\n    () =>\n      namespace ? getServices(environmentId, namespace) : ([] as Service[]),\n    {\n      onError: (err) => {\n        notifyError('Failure', err as Error, 'Unable to get services');\n      },\n    }\n  );\n}\n","import { AlertTriangle, Code, History, Minimize2 } from 'lucide-react';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport LaptopCode from '@/assets/ico/laptop-code.svg?c';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Tab, WidgetTabs, findSelectedTabIndex } from '@@/Widget/WidgetTabs';\nimport { Icon } from '@@/Icon';\nimport { Badge } from '@@/Badge';\n\nimport { EventsDatatable } from '../../components/KubernetesEventsDatatable';\n\nimport {\n  PlacementsDatatable,\n  usePlacementTableData,\n  usePlacementTableState,\n} from './PlacementsDatatable';\nimport { ApplicationDetailsWidget } from './ApplicationDetailsWidget';\nimport { ApplicationSummaryWidget } from './ApplicationSummaryWidget';\nimport { ApplicationContainersDatatable } from './ApplicationContainersDatatable';\nimport {\n  useApplicationEventsTableData,\n  useApplicationEventsTableState,\n} from './useApplicationEventsTableData';\nimport { ApplicationYAMLEditor } from './AppYAMLEditor/ApplicationYAMLEditor';\nimport { useApplicationYAML } from './AppYAMLEditor/useApplicationYAML';\n\nexport function ApplicationDetailsView() {\n  const stateAndParams = useCurrentStateAndParams();\n  const {\n    params: { namespace, name },\n  } = stateAndParams;\n\n  // placements table data\n  const { placementsData, isPlacementsTableLoading, hasPlacementWarning } =\n    usePlacementTableData();\n  const placementsTableState = usePlacementTableState();\n\n  // events table data\n  const { appEventsData, appEventWarningCount, isAppEventsTableLoading } =\n    useApplicationEventsTableData();\n  const appEventsTableState = useApplicationEventsTableState();\n\n  // load app yaml data early to load from cache later\n  useApplicationYAML();\n\n  const tabs: Tab[] = [\n    {\n      name: 'Application',\n      icon: LaptopCode,\n      widget: <ApplicationSummaryWidget />,\n      selectedTabParam: 'application',\n    },\n    {\n      name: (\n        <div className=\"flex items-center gap-x-2\">\n          Placement\n          {hasPlacementWarning && (\n            <Badge type=\"warnSecondary\">\n              <Icon icon={AlertTriangle} className=\"!mr-1\" />1\n            </Badge>\n          )}\n        </div>\n      ),\n      icon: Minimize2,\n      widget: (\n        <PlacementsDatatable\n          hasPlacementWarning={hasPlacementWarning}\n          tableState={placementsTableState}\n          dataset={placementsData}\n          isLoading={isPlacementsTableLoading}\n        />\n      ),\n      selectedTabParam: 'placement',\n    },\n    {\n      name: (\n        <div className=\"flex items-center gap-x-2\">\n          Events\n          {appEventWarningCount >= 1 && (\n            <Badge type=\"warnSecondary\">\n              <Icon icon={AlertTriangle} className=\"!mr-1\" />\n              {appEventWarningCount}\n            </Badge>\n          )}\n        </div>\n      ),\n      icon: History,\n      widget: (\n        <EventsDatatable\n          dataset={appEventsData}\n          tableState={appEventsTableState}\n          isLoading={isAppEventsTableLoading}\n          data-cy=\"k8sAppDetail-eventsTable\"\n        />\n      ),\n      selectedTabParam: 'events',\n    },\n    {\n      name: 'YAML',\n      icon: Code,\n      widget: <ApplicationYAMLEditor />,\n      selectedTabParam: 'YAML',\n    },\n  ];\n  const currentTabIndex = findSelectedTabIndex(stateAndParams, tabs);\n\n  return (\n    <>\n      <PageHeader\n        title=\"Application details\"\n        breadcrumbs={[\n          { label: 'Namespaces', link: 'kubernetes.resourcePools' },\n          {\n            label: namespace,\n            link: 'kubernetes.resourcePools.resourcePool',\n            linkParams: { id: namespace },\n          },\n          { label: 'Applications', link: 'kubernetes.applications' },\n          name,\n        ]}\n        reload\n      />\n      <>\n        <WidgetTabs tabs={tabs} currentTabIndex={currentTabIndex} />\n        {tabs[currentTabIndex].widget}\n        <ApplicationDetailsWidget />\n        <ApplicationContainersDatatable />\n      </>\n    </>\n  );\n}\n","import { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';\nimport { useUnauthorizedRedirect } from '@/react/hooks/useUnauthorizedRedirect';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody } from '@@/Widget';\n\nimport { ConfigureForm } from './ConfigureForm';\n\nexport function ConfigureView() {\n  const { data: environment } = useCurrentEnvironment();\n\n  useUnauthorizedRedirect(\n    {\n      authorizations: 'K8sClusterW',\n      adminOnlyCE: false,\n    },\n    {\n      params: {\n        id: environment?.Id,\n      },\n      to: 'kubernetes.dashboard',\n    }\n  );\n\n  return (\n    <>\n      <PageHeader\n        title=\"Kubernetes features configuration\"\n        breadcrumbs={[\n          { label: 'Environments', link: 'portainer.endpoints' },\n          {\n            label: environment?.Name || '',\n            link: 'portainer.endpoints.endpoint',\n            linkParams: { id: environment?.Id },\n          },\n          'Kubernetes configuration',\n        ]}\n        reload\n      />\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetBody>\n              <ConfigureForm />\n            </WidgetBody>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n}\n","import { Box, Database, FileCode, Layers, Lock, Shuffle } from 'lucide-react';\nimport { useQueryClient } from 'react-query';\n\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\nimport Route from '@/assets/ico/route.svg?c';\n\nimport { DashboardGrid } from '@@/DashboardItem/DashboardGrid';\nimport { DashboardItem } from '@@/DashboardItem/DashboardItem';\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useApplicationsQuery } from '../applications/application.queries';\nimport { usePVCsQuery } from '../volumes/usePVCsQuery';\nimport { useServicesForCluster } from '../services/service';\nimport { useIngresses } from '../ingresses/queries';\nimport { useConfigMapsForCluster } from '../configs/configmap.service';\nimport { useSecretsForCluster } from '../configs/secret.service';\nimport { useNamespacesQuery } from '../namespaces/queries/useNamespacesQuery';\n\nimport { EnvironmentInfo } from './EnvironmentInfo';\n\nexport function DashboardView() {\n  const queryClient = useQueryClient();\n  const environmentId = useEnvironmentId();\n  const { data: namespaces, ...namespacesQuery } =\n    useNamespacesQuery(environmentId);\n  const namespaceNames = namespaces && Object.keys(namespaces);\n  const { data: applications, ...applicationsQuery } = useApplicationsQuery(\n    environmentId,\n    namespaceNames\n  );\n  const { data: pvcs, ...pvcsQuery } = usePVCsQuery(\n    environmentId,\n    namespaceNames\n  );\n  const { data: services, ...servicesQuery } = useServicesForCluster(\n    environmentId,\n    namespaceNames,\n    { lookupApplications: false }\n  );\n  const { data: ingresses, ...ingressesQuery } = useIngresses(\n    environmentId,\n    namespaceNames\n  );\n  const { data: configMaps, ...configMapsQuery } = useConfigMapsForCluster(\n    environmentId,\n    namespaceNames\n  );\n  const { data: secrets, ...secretsQuery } = useSecretsForCluster(\n    environmentId,\n    namespaceNames\n  );\n\n  return (\n    <>\n      <PageHeader\n        title=\"Dashboard\"\n        breadcrumbs={[{ label: 'Environment summary' }]}\n        reload\n        onReload={() =>\n          queryClient.invalidateQueries(['environments', environmentId])\n        }\n      />\n      <div className=\"col-sm-12 flex flex-col gap-y-5\">\n        <EnvironmentInfo />\n        <DashboardGrid>\n          <DashboardItem\n            value={namespaceNames?.length}\n            isLoading={namespacesQuery.isLoading}\n            isRefetching={namespacesQuery.isRefetching}\n            icon={Layers}\n            to=\"kubernetes.resourcePools\"\n            type=\"Namespace\"\n            dataCy=\"dashboard-namespace\"\n          />\n          <DashboardItem\n            value={applications?.length}\n            isLoading={applicationsQuery.isLoading || namespacesQuery.isLoading}\n            isRefetching={\n              applicationsQuery.isRefetching || namespacesQuery.isRefetching\n            }\n            icon={Box}\n            to=\"kubernetes.applications\"\n            type=\"Application\"\n            dataCy=\"dashboard-application\"\n          />\n          <DashboardItem\n            value={services?.length}\n            isLoading={servicesQuery.isLoading || namespacesQuery.isLoading}\n            isRefetching={\n              servicesQuery.isRefetching || namespacesQuery.isRefetching\n            }\n            icon={Shuffle}\n            to=\"kubernetes.services\"\n            type=\"Service\"\n            dataCy=\"dashboard-service\"\n          />\n          <DashboardItem\n            value={ingresses?.length}\n            isLoading={ingressesQuery.isLoading || namespacesQuery.isLoading}\n            isRefetching={\n              ingressesQuery.isRefetching || namespacesQuery.isRefetching\n            }\n            icon={Route}\n            to=\"kubernetes.ingresses\"\n            type=\"Ingress\"\n            pluralType=\"Ingresses\"\n            dataCy=\"dashboard-ingress\"\n          />\n          <DashboardItem\n            value={configMaps?.length}\n            isLoading={configMapsQuery.isLoading || namespacesQuery.isLoading}\n            isRefetching={\n              configMapsQuery.isRefetching || namespacesQuery.isRefetching\n            }\n            icon={FileCode}\n            to=\"kubernetes.configurations\"\n            params={{ tab: 'configmaps' }}\n            type=\"ConfigMap\"\n            dataCy=\"dashboard-configmaps\"\n          />\n          <DashboardItem\n            value={secrets?.length}\n            isLoading={secretsQuery.isLoading || namespacesQuery.isLoading}\n            isRefetching={\n              secretsQuery.isRefetching || namespacesQuery.isRefetching\n            }\n            icon={Lock}\n            to=\"kubernetes.configurations\"\n            params={{ tab: 'secrets' }}\n            type=\"Secret\"\n            dataCy=\"dashboard-secrets\"\n          />\n          <DashboardItem\n            value={pvcs?.length}\n            isLoading={pvcsQuery.isLoading || namespacesQuery.isLoading}\n            isRefetching={\n              pvcsQuery.isRefetching || namespacesQuery.isRefetching\n            }\n            icon={Database}\n            to=\"kubernetes.volumes\"\n            type=\"Volume\"\n            dataCy=\"dashboard-volume\"\n          />\n        </DashboardGrid>\n      </div>\n    </>\n  );\n}\n","import { useState, useCallback, useEffect } from 'react';\nimport { useCurrentStateAndParams } from '@uirouter/react';\nimport { Terminal as TerminalIcon } from 'lucide-react';\nimport { Terminal } from 'xterm';\n\nimport { baseHref } from '@/portainer/helpers/pathHelper';\nimport { notifyError } from '@/portainer/services/notifications';\nimport { TerminalTooltip } from '@/react/components/TerminalTooltip';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody } from '@@/Widget';\nimport { Icon } from '@@/Icon';\nimport { Button } from '@@/buttons';\n\ninterface StringDictionary {\n  [index: string]: string;\n}\n\nexport function ConsoleView() {\n  const {\n    params: {\n      endpointId: environmentId,\n      container,\n      name: appName,\n      namespace,\n      pod: podID,\n    },\n  } = useCurrentStateAndParams();\n\n  const [command, setCommand] = useState('/bin/sh');\n  const [connectionStatus, setConnectionStatus] = useState('closed');\n  const [terminal, setTerminal] = useState(null as Terminal | null);\n  const [socket, setSocket] = useState(null as WebSocket | null);\n\n  const breadcrumbs = [\n    {\n      label: 'Namespaces',\n      link: 'kubernetes.resourcePools',\n    },\n    {\n      label: namespace,\n      link: 'kubernetes.resourcePools.resourcePool',\n      linkParams: { id: namespace },\n    },\n    {\n      label: 'Applications',\n      link: 'kubernetes.applications',\n    },\n    {\n      label: appName,\n      link: 'kubernetes.applications.application',\n      linkParams: { name: appName, namespace },\n    },\n    'Pods',\n    podID,\n    'Containers',\n    container,\n    'Console',\n  ];\n\n  const disconnectConsole = useCallback(() => {\n    socket?.close();\n    terminal?.dispose();\n    setTerminal(null);\n    setSocket(null);\n    setConnectionStatus('closed');\n  }, [socket, terminal, setConnectionStatus]);\n\n  useEffect(() => {\n    if (socket) {\n      socket.onopen = () => {\n        const terminalContainer = document.getElementById('terminal-container');\n        if (terminalContainer) {\n          terminal?.open(terminalContainer);\n          terminal?.setOption('cursorBlink', true);\n          terminal?.focus();\n          setConnectionStatus('open');\n          socket.send('export LANG=C.UTF-8\\n');\n          socket.send('export LC_ALL=C.UTF-8\\n');\n          socket.send('clear\\n');\n        }\n      };\n\n      socket.onmessage = (msg) => {\n        const encoded = new TextEncoder().encode(msg.data);\n        terminal?.writeUtf8(encoded);\n      };\n\n      socket.onerror = () => {\n        disconnectConsole();\n        notifyError('Websocket connection error');\n      };\n\n      socket.onclose = () => {\n        disconnectConsole();\n      };\n    }\n  }, [disconnectConsole, setConnectionStatus, socket, terminal]);\n\n  useEffect(() => {\n    terminal?.onData((data) => {\n      socket?.send(data);\n    });\n  }, [terminal, socket]);\n\n  return (\n    <>\n      <PageHeader\n        title=\"Application console\"\n        breadcrumbs={breadcrumbs}\n        reload\n      />\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetBody>\n              <div className=\"row\">\n                <div className=\"col-sm-12 form-section-title\">Console</div>\n              </div>\n              <div className=\"form-row flex\">\n                <label\n                  htmlFor=\"consoleCommand\"\n                  className=\"col-sm-3 col-lg-2 control-label m-0 p-0 text-left\"\n                >\n                  Command\n                  <TerminalTooltip />\n                </label>\n                <div className=\"col-sm-8 input-group p-0\">\n                  <span className=\"input-group-addon\">\n                    <Icon icon={TerminalIcon} className=\"mr-1\" />\n                  </span>\n                  <input\n                    type=\"text\"\n                    className=\"form-control\"\n                    placeholder=\"/bin/bash\"\n                    value={command}\n                    onChange={(e) => setCommand(e.target.value)}\n                    id=\"consoleCommand\"\n                    // disable eslint because we want to autofocus\n                    // this is ok because we only have one input on the page\n                    // https://portainer.atlassian.net/browse/EE-5752\n                    // eslint-disable-next-line jsx-a11y/no-autofocus\n                    autoFocus\n                  />\n                </div>\n              </div>\n              <div className=\"row mt-4\">\n                <Button\n                  className=\"btn btn-primary !ml-0\"\n                  onClick={\n                    connectionStatus === 'closed'\n                      ? connectConsole\n                      : disconnectConsole\n                  }\n                  disabled={connectionStatus === 'connecting'}\n                >\n                  {connectionStatus === 'open' && 'Disconnect'}\n                  {connectionStatus === 'connecting' && 'Connecting'}\n                  {connectionStatus !== 'connecting' &&\n                    connectionStatus !== 'open' &&\n                    'Connect'}\n                </Button>\n              </div>\n            </WidgetBody>\n          </Widget>\n          <div className=\"row\">\n            <div className=\"col-sm-12 p-0\">\n              <div id=\"terminal-container\" className=\"terminal-container\" />\n            </div>\n          </div>\n        </div>\n      </div>\n    </>\n  );\n\n  function connectConsole() {\n    const params: StringDictionary = {\n      endpointId: environmentId,\n      namespace,\n      podName: podID,\n      containerName: container,\n      command,\n    };\n\n    const queryParams = Object.keys(params)\n      .map((k) => `${k}=${params[k]}`)\n      .join('&');\n\n    let url = `${\n      window.location.origin\n    }${baseHref()}api/websocket/pod?${queryParams}`;\n    if (url.indexOf('https') > -1) {\n      url = url.replace('https://', 'wss://');\n    } else {\n      url = url.replace('http://', 'ws://');\n    }\n\n    setConnectionStatus('connecting');\n    const term = new Terminal();\n    setTerminal(term);\n    const socket = new WebSocket(url);\n    setSocket(socket);\n  }\n}\n","import angular from 'angular';\n\nimport { componentsModule } from './components';\nimport { viewsModule } from './views';\n\nexport const reactModule = angular.module('portainer.kubernetes.react', [\n  viewsModule,\n  componentsModule,\n]).name;\n","const autoNgTemplateLoaderTemplate1 = require('../kubernetes/views/security-constraint/constraint.html');\n\nimport { EnvironmentStatus } from '@/react/portainer/environments/types';\nimport { getSelfSubjectAccessReview } from '@/react/kubernetes/namespaces/getSelfSubjectAccessReview';\n\nimport { updateAxiosAdapter } from '@/portainer/services/axios';\nimport { PortainerEndpointTypes } from 'Portainer/models/endpoint/models';\nimport { CACHE_REFRESH_EVENT, CACHE_DURATION } from '../portainer/services/http-request.helper';\nimport { cache } from '../portainer/services/axios';\n\nimport registriesModule from './registries';\nimport customTemplateModule from './custom-templates';\nimport { reactModule } from './react';\nimport './views/kubernetes.css';\n\n// The angular-cache npm package didn't have exclude options, so implement a custom cache\n// with an added check to only cache kubernetes requests\nclass ExpirationCache {\n  constructor() {\n    this.store = new Map();\n    this.timeout = CACHE_DURATION;\n  }\n\n  get(key) {\n    return this.store.get(key);\n  }\n\n  put(key, val) {\n    // only cache requests with 'kubernetes' in the url\n    if (key.includes('kubernetes')) {\n      this.store.set(key, val);\n      // remove it once it's expired\n      setTimeout(() => {\n        this.remove(key);\n      }, this.timeout);\n    }\n  }\n\n  remove(key) {\n    this.store.delete(key);\n  }\n\n  removeAll() {\n    this.store = new Map();\n  }\n\n  delete() {\n    // skip because this is standalone, not a part of $cacheFactory\n  }\n}\n\nangular.module('portainer.kubernetes', ['portainer.app', registriesModule, customTemplateModule, reactModule]).config([\n  '$stateRegistryProvider',\n  function ($stateRegistryProvider) {\n    'use strict';\n\n    const kubernetes = {\n      name: 'kubernetes',\n      url: '/kubernetes',\n      parent: 'endpoint',\n      abstract: true,\n\n      onEnter: /* @ngInject */ function onEnter(\n        $async,\n        $state,\n        endpoint,\n        KubernetesHealthService,\n        Notifications,\n        StateManager,\n        $http,\n        Authentication,\n        UserService,\n        EndpointService,\n        EndpointProvider\n      ) {\n        return $async(async () => {\n          // if the user wants to use front end cache for performance, set the angular caching settings\n          const userDetails = Authentication.getUserDetails();\n          const user = await UserService.user(userDetails.ID);\n          updateAxiosAdapter(user.UseCache);\n          if (user.UseCache) {\n            $http.defaults.cache = new ExpirationCache();\n            window.addEventListener(CACHE_REFRESH_EVENT, () => {\n              $http.defaults.cache.removeAll();\n              cache.store.clear();\n            });\n          }\n\n          const kubeTypes = [\n            PortainerEndpointTypes.KubernetesLocalEnvironment,\n            PortainerEndpointTypes.AgentOnKubernetesEnvironment,\n            PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment,\n          ];\n\n          if (!kubeTypes.includes(endpoint.Type)) {\n            $state.go('portainer.home');\n            return;\n          }\n\n          try {\n            const status = await checkEndpointStatus(\n              endpoint.Type === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment\n                ? KubernetesHealthService.ping(endpoint.Id)\n                : // use selfsubject access review to check if we can connect to the kubernetes environment\n                  // because it gets a fast response, and is accessible to all users\n                  getSelfSubjectAccessReview(endpoint.Id, 'default')\n            );\n\n            if (endpoint.Type !== PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment) {\n              await updateEndpointStatus(endpoint, status);\n            }\n            endpoint.Status = status;\n\n            if (endpoint.Status === EnvironmentStatus.Down) {\n              throw new Error(\n                endpoint.Type === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment\n                  ? 'Unable to contact Edge agent, please ensure that the agent is properly running on the remote environment.'\n                  : `The environment named ${endpoint.Name} is unreachable.`\n              );\n            }\n\n            await StateManager.updateEndpointState(endpoint);\n          } catch (e) {\n            let params = {};\n\n            if (endpoint.Type == PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment) {\n              params = { redirect: true, environmentId: endpoint.Id, environmentName: endpoint.Name, route: 'kubernetes.dashboard' };\n            } else {\n              EndpointProvider.clean();\n              Notifications.error('Failed loading environment', e);\n            }\n            $state.go('portainer.home', params, { reload: true, inherit: false });\n            return false;\n          }\n\n          async function checkEndpointStatus(promise) {\n            try {\n              await promise;\n              return EnvironmentStatus.Up;\n            } catch (e) {\n              return EnvironmentStatus.Down;\n            }\n          }\n\n          async function updateEndpointStatus(endpoint, status) {\n            if (endpoint.Status === status) {\n              return;\n            }\n            await EndpointService.updateEndpoint(endpoint.Id, { Status: status });\n          }\n        });\n      },\n    };\n\n    const helmApplication = {\n      name: 'kubernetes.helm',\n      url: '/helm/:namespace/:name',\n      views: {\n        'content@': {\n          component: 'kubernetesHelmApplicationView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/inspect-helm',\n      },\n    };\n\n    const services = {\n      name: 'kubernetes.services',\n      url: '/services',\n      views: {\n        'content@': {\n          component: 'kubernetesServicesView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/networking/services',\n      },\n    };\n\n    const ingresses = {\n      name: 'kubernetes.ingresses',\n      url: '/ingresses',\n      views: {\n        'content@': {\n          component: 'kubernetesIngressesView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/networking/ingresses',\n      },\n    };\n\n    const ingressesCreate = {\n      name: 'kubernetes.ingresses.create',\n      url: '/add',\n      views: {\n        'content@': {\n          component: 'kubernetesIngressesCreateView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/networking/ingresses/add',\n      },\n    };\n\n    const ingressesEdit = {\n      name: 'kubernetes.ingresses.edit',\n      url: '/:namespace/:name/edit',\n      views: {\n        'content@': {\n          component: 'kubernetesIngressesCreateView',\n        },\n      },\n    };\n\n    const applications = {\n      name: 'kubernetes.applications',\n      url: '/applications',\n      views: {\n        'content@': {\n          component: 'kubernetesApplicationsView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/applications',\n      },\n    };\n\n    const applicationCreation = {\n      name: 'kubernetes.applications.new',\n      url: '/new',\n      views: {\n        'content@': {\n          component: 'kubernetesCreateApplicationView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/applications/add',\n      },\n    };\n\n    const application = {\n      name: 'kubernetes.applications.application',\n      url: '/:namespace/:name?resource-type&tab',\n      views: {\n        'content@': {\n          component: 'applicationDetailsView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/applications/inspect',\n      },\n    };\n\n    const applicationEdit = {\n      name: 'kubernetes.applications.application.edit',\n      url: '/edit',\n      views: {\n        'content@': {\n          component: 'kubernetesCreateApplicationView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/applications/edit',\n      },\n    };\n\n    const applicationConsole = {\n      name: 'kubernetes.applications.application.console',\n      url: '/:pod/:container/console',\n      views: {\n        'content@': {\n          component: 'kubernetesConsoleView',\n        },\n      },\n    };\n\n    const applicationLogs = {\n      name: 'kubernetes.applications.application.logs',\n      url: '/:pod/:container/logs',\n      views: {\n        'content@': {\n          component: 'kubernetesApplicationLogsView',\n        },\n      },\n    };\n\n    const applicationStats = {\n      name: 'kubernetes.applications.application.stats',\n      url: '/:pod/:container/stats',\n      views: {\n        'content@': {\n          component: 'kubernetesApplicationStatsView',\n        },\n      },\n    };\n\n    const stacks = {\n      name: 'kubernetes.stacks',\n      url: '/stacks',\n      abstract: true,\n    };\n\n    const stack = {\n      name: 'kubernetes.stacks.stack',\n      url: '/:namespace/:name',\n      abstract: true,\n    };\n\n    const stackLogs = {\n      name: 'kubernetes.stacks.stack.logs',\n      url: '/logs',\n      views: {\n        'content@': {\n          component: 'kubernetesStackLogsView',\n        },\n      },\n    };\n\n    const configurations = {\n      name: 'kubernetes.configurations',\n      url: '/configurations?tab',\n      views: {\n        'content@': {\n          component: 'kubernetesConfigMapsAndSecretsView',\n        },\n      },\n      params: {\n        tab: null,\n      },\n      data: {\n        docs: '/user/kubernetes/configurations',\n      },\n    };\n    const configmaps = {\n      name: 'kubernetes.configmaps',\n      url: '/configmaps',\n      abstract: true,\n      data: {\n        docs: '/user/kubernetes/configurations',\n      },\n    };\n\n    const configMapCreation = {\n      name: 'kubernetes.configmaps.new',\n      url: '/new',\n      views: {\n        'content@': {\n          component: 'kubernetesCreateConfigMapView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/configurations/add-configmap',\n      },\n    };\n\n    const configMap = {\n      name: 'kubernetes.configmaps.configmap',\n      url: '/:namespace/:name',\n      views: {\n        'content@': {\n          component: 'kubernetesConfigMapView',\n        },\n      },\n    };\n\n    const secrets = {\n      name: 'kubernetes.secrets',\n      url: '/secrets',\n      abstract: true,\n      data: {\n        docs: '/user/kubernetes/configurations',\n      },\n    };\n\n    const secretCreation = {\n      name: 'kubernetes.secrets.new',\n      url: '/new',\n      views: {\n        'content@': {\n          component: 'kubernetesCreateSecretView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/configurations/add-secret',\n      },\n    };\n\n    const secret = {\n      name: 'kubernetes.secrets.secret',\n      url: '/:namespace/:name',\n      views: {\n        'content@': {\n          component: 'kubernetesSecretView',\n        },\n      },\n    };\n\n    const cluster = {\n      name: 'kubernetes.cluster',\n      url: '/cluster',\n      views: {\n        'content@': {\n          component: 'kubernetesClusterView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/cluster/details',\n      },\n    };\n\n    const node = {\n      name: 'kubernetes.cluster.node',\n      url: '/:nodeName',\n      views: {\n        'content@': {\n          component: 'kubernetesNodeView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/cluster/node',\n      },\n    };\n\n    const nodeStats = {\n      name: 'kubernetes.cluster.node.stats',\n      url: '/stats',\n      views: {\n        'content@': {\n          component: 'kubernetesNodeStatsView',\n        },\n      },\n    };\n\n    const dashboard = {\n      name: 'kubernetes.dashboard',\n      url: '/dashboard',\n      views: {\n        'content@': {\n          component: 'kubernetesDashboardView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/dashboard',\n      },\n    };\n\n    const deploy = {\n      name: 'kubernetes.deploy',\n      url: '/deploy?templateId&referrer&tab&buildMethod&chartName',\n      views: {\n        'content@': {\n          component: 'kubernetesDeployView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/applications/manifest',\n      },\n    };\n\n    const resourcePools = {\n      name: 'kubernetes.resourcePools',\n      url: '/pools',\n      views: {\n        'content@': {\n          component: 'kubernetesResourcePoolsView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/namespaces',\n      },\n    };\n\n    const namespaceCreation = {\n      name: 'kubernetes.resourcePools.new',\n      url: '/new',\n      views: {\n        'content@': {\n          component: 'kubernetesCreateNamespaceView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/namespaces/add',\n      },\n    };\n\n    const resourcePool = {\n      name: 'kubernetes.resourcePools.resourcePool',\n      url: '/:id',\n      views: {\n        'content@': {\n          component: 'kubernetesResourcePoolView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/namespaces/manage',\n      },\n    };\n\n    const resourcePoolAccess = {\n      name: 'kubernetes.resourcePools.resourcePool.access',\n      url: '/access',\n      views: {\n        'content@': {\n          component: 'kubernetesResourcePoolAccessView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/namespaces/access',\n      },\n    };\n\n    const volumes = {\n      name: 'kubernetes.volumes',\n      url: '/volumes',\n      views: {\n        'content@': {\n          component: 'kubernetesVolumesView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/volumes',\n      },\n    };\n\n    const volume = {\n      name: 'kubernetes.volumes.volume',\n      url: '/:namespace/:name',\n      views: {\n        'content@': {\n          component: 'kubernetesVolumeView',\n        },\n      },\n    };\n\n    const registries = {\n      name: 'kubernetes.registries',\n      url: '/registries',\n      views: {\n        'content@': {\n          component: 'endpointRegistriesView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/cluster/registries',\n      },\n    };\n\n    const registriesAccess = {\n      name: 'kubernetes.registries.access',\n      url: '/:id/access',\n      views: {\n        'content@': {\n          component: 'kubernetesRegistryAccessView',\n        },\n      },\n    };\n\n    const endpointKubernetesConfiguration = {\n      name: 'kubernetes.cluster.setup',\n      url: '/configure',\n      views: {\n        'content@': {\n          component: 'kubernetesConfigureView',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/cluster/setup',\n      },\n    };\n\n    const endpointKubernetesSecurityConstraint = {\n      name: 'kubernetes.cluster.securityConstraint',\n      url: '/securityConstraint',\n      views: {\n        'content@': {\n          templateUrl: autoNgTemplateLoaderTemplate1,\n          controller: 'KubernetesSecurityConstraintController',\n        },\n      },\n      data: {\n        docs: '/user/kubernetes/cluster/security',\n      },\n    };\n\n    $stateRegistryProvider.register(kubernetes);\n    $stateRegistryProvider.register(helmApplication);\n    $stateRegistryProvider.register(applications);\n    $stateRegistryProvider.register(applicationCreation);\n    $stateRegistryProvider.register(application);\n    $stateRegistryProvider.register(applicationEdit);\n    $stateRegistryProvider.register(applicationConsole);\n    $stateRegistryProvider.register(applicationLogs);\n    $stateRegistryProvider.register(applicationStats);\n    $stateRegistryProvider.register(stacks);\n    $stateRegistryProvider.register(stack);\n    $stateRegistryProvider.register(stackLogs);\n    $stateRegistryProvider.register(configurations);\n    $stateRegistryProvider.register(configmaps);\n    $stateRegistryProvider.register(configMapCreation);\n    $stateRegistryProvider.register(secrets);\n    $stateRegistryProvider.register(secretCreation);\n    $stateRegistryProvider.register(configMap);\n    $stateRegistryProvider.register(secret);\n    $stateRegistryProvider.register(cluster);\n    $stateRegistryProvider.register(dashboard);\n    $stateRegistryProvider.register(deploy);\n    $stateRegistryProvider.register(node);\n    $stateRegistryProvider.register(nodeStats);\n    $stateRegistryProvider.register(resourcePools);\n    $stateRegistryProvider.register(namespaceCreation);\n    $stateRegistryProvider.register(resourcePool);\n    $stateRegistryProvider.register(resourcePoolAccess);\n    $stateRegistryProvider.register(volumes);\n    $stateRegistryProvider.register(volume);\n    $stateRegistryProvider.register(registries);\n    $stateRegistryProvider.register(registriesAccess);\n    $stateRegistryProvider.register(endpointKubernetesConfiguration);\n    $stateRegistryProvider.register(endpointKubernetesSecurityConstraint);\n\n    $stateRegistryProvider.register(services);\n    $stateRegistryProvider.register(ingresses);\n    $stateRegistryProvider.register(ingressesCreate);\n    $stateRegistryProvider.register(ingressesEdit);\n  },\n]);\n","import { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\n\nexport default class {\n  $onInit() {\n    const secrets = (this.configurations || [])\n      .filter((config) => config.Data && config.Kind === KubernetesConfigurationKinds.SECRET)\n      .flatMap((config) => Object.entries(config.Data))\n      .map(([key, value]) => ({ key, value }));\n\n    this.state = { secrets };\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./applications-datatable-details.html');\n\nimport angular from 'angular';\nimport controller from './applications-datatable-details.controller';\n\nangular.module('portainer.kubernetes').component('kubernetesApplicationsDatatableDetails', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    configurations: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./applicationsDatatable.html');\n\nimport './applicationsDatatable.css';\n\nangular.module('portainer.kubernetes').component('kubernetesApplicationsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesApplicationsDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    settingsKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n    refreshCallback: '<',\n    onPublishingModeClick: '<',\n    isPrimary: '<',\n    namespaces: '<',\n    namespace: '<',\n    onChangeNamespaceDropdown: '<',\n    isAppsLoading: '<',\n    isSystemResources: '<',\n    isVisible: '<',\n    setSystemResources: '<',\n    hideStacksFunctionality: '<',\n  },\n});\n","import _ from 'lodash-es';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\nimport { KubernetesApplicationDeploymentTypes, KubernetesApplicationTypes } from 'Kubernetes/models/application/models/appConstants';\n\nimport { getSchemeFromPort } from '@/react/common/network-utils';\n\nangular.module('portainer.kubernetes').controller('KubernetesApplicationsDatatableController', [\n  '$scope',\n  '$controller',\n  'DatatableService',\n  'Authentication',\n  function ($scope, $controller, DatatableService, Authentication) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    const ctrl = this;\n\n    this.settings = Object.assign(this.settings, {\n      showSystem: false,\n    });\n\n    this.state = Object.assign(this.state, {\n      expandAll: false,\n      expandedItems: [],\n      namespace: '',\n      namespaces: [],\n    });\n\n    this.filters = {\n      state: {\n        open: false,\n        enabled: false,\n        values: [],\n      },\n    };\n\n    this.expandAll = function () {\n      this.state.expandAll = !this.state.expandAll;\n      this.state.filteredDataSet.forEach((item) => this.expandItem(item, this.state.expandAll));\n    };\n\n    this.isItemExpanded = function (item) {\n      return this.state.expandedItems.includes(item.Id);\n    };\n\n    this.isExpandable = function (item) {\n      return item.KubernetesApplications || this.hasConfigurationSecrets(item) || !!this.getPublishedUrls(item).length;\n    };\n\n    this.expandItem = function (item, expanded) {\n      // collapse item\n      if (!expanded) {\n        this.state.expandedItems = this.state.expandedItems.filter((id) => id !== item.Id);\n        // expanded item\n      } else if (expanded && !this.state.expandedItems.includes(item.Id)) {\n        this.state.expandedItems = [...this.state.expandedItems, item.Id];\n      }\n      DatatableService.setDataTableExpandedItems(this.tableKey, this.state.expandedItems);\n    };\n\n    this.expandItems = function (storedExpandedItems) {\n      this.state.expandedItems = storedExpandedItems;\n      if (this.state.expandedItems.length === this.dataset.length) {\n        this.state.expandAll = true;\n      }\n    };\n\n    this.onDataRefresh = function () {\n      const storedExpandedItems = DatatableService.getDataTableExpandedItems(this.tableKey);\n      if (storedExpandedItems !== null) {\n        this.expandItems(storedExpandedItems);\n      }\n    };\n\n    this.onSettingsShowSystemChange = function () {\n      this.updateNamespace();\n      this.setSystemResources(this.settings.showSystem);\n      DatatableService.setDataTableSettings(this.tableKey, this.settings);\n    };\n\n    this.isExternalApplication = function (item) {\n      return KubernetesApplicationHelper.isExternalApplication(item);\n    };\n\n    this.isSystemNamespace = function (item) {\n      // if all charts in a helm app/release are in the system namespace\n      if (item.KubernetesApplications && item.KubernetesApplications.length > 0) {\n        return item.KubernetesApplications.some((app) => KubernetesNamespaceHelper.isSystemNamespace(app.ResourcePool));\n      }\n      return KubernetesNamespaceHelper.isSystemNamespace(item.ResourcePool);\n    };\n\n    this.isDisplayed = function (item) {\n      return !ctrl.isSystemNamespace(item) || ctrl.settings.showSystem;\n    };\n\n    this.getPublishedUrls = function (item) {\n      // Map all ingress rules in published ports to their respective URLs\n      const ingressUrls = item.PublishedPorts.flatMap((pp) => pp.IngressRules)\n        .filter(({ Host, IP }) => Host || IP)\n        .map(({ Host, IP, Path, TLS }) => {\n          let scheme = TLS && TLS.filter((tls) => tls.hosts && tls.hosts.includes(Host)).length > 0 ? 'https' : 'http';\n          return `${scheme}://${Host || IP}${Path}`;\n        });\n\n      // Map all load balancer service ports to ip address\n      let loadBalancerURLs = [];\n      if (item.LoadBalancerIPAddress) {\n        loadBalancerURLs = item.PublishedPorts.map((pp) => {\n          const scheme = getSchemeFromPort(pp.Port);\n          return `${scheme}://${item.LoadBalancerIPAddress}:${pp.Port}`;\n        });\n      }\n\n      // combine ingress urls\n      const publishedUrls = [...ingressUrls, ...loadBalancerURLs];\n\n      // Return the first URL - priority given to ingress urls, then services (load balancers)\n      return publishedUrls.length > 0 ? publishedUrls : '';\n    };\n\n    this.hasConfigurationSecrets = function (item) {\n      return item.Configurations && item.Configurations.some((config) => config.Data && config.Kind === KubernetesConfigurationKinds.SECRET);\n    };\n\n    /**\n     * Do not allow applications in system namespaces to be selected\n     */\n    this.allowSelection = function (item) {\n      return !this.isSystemNamespace(item);\n    };\n\n    this.applyFilters = function (item) {\n      return ctrl.filters.state.values.some((filter) => item.ApplicationType === filter.type && filter.display);\n    };\n\n    this.onStateFilterChange = function () {\n      this.filters.state.enabled = this.filters.state.values.some((filter) => !filter.display);\n    };\n\n    this.prepareTableFromDataset = function () {\n      const availableTypeFilters = this.dataset.map((item) => ({ type: item.ApplicationType, display: true }));\n      this.filters.state.values = _.uniqBy(availableTypeFilters, 'type');\n    };\n\n    this.onChangeNamespace = function () {\n      this.onChangeNamespaceDropdown(this.state.namespace);\n    };\n\n    this.updateNamespace = function () {\n      if (this.namespaces && this.settingsLoaded) {\n        const allNamespacesOption = { Name: 'All namespaces', Value: '', IsSystem: false };\n        const visibleNamespaceOptions = this.namespaces\n          .filter((ns) => {\n            if (!this.settings.showSystem && ns.IsSystem) {\n              return false;\n            }\n            return true;\n          })\n          .map((ns) => ({ Name: ns.Name, Value: ns.Name, IsSystem: ns.IsSystem }));\n        this.state.namespaces = [allNamespacesOption, ...visibleNamespaceOptions];\n\n        if (this.state.namespace && !this.state.namespaces.find((ns) => ns.Name === this.state.namespace)) {\n          if (this.state.namespaces.length > 1) {\n            let defaultNS = this.state.namespaces.find((ns) => ns.Name === 'default');\n            defaultNS = defaultNS || this.state.namespaces[1];\n            this.state.namespace = defaultNS.Value;\n          } else {\n            this.state.namespace = this.state.namespaces[0].Value;\n          }\n        }\n      }\n    };\n\n    this.$onChanges = function (changes) {\n      if (this.settingsLoaded) {\n        // when the table is visible, sync the show system setting with the stack show system setting\n        if (changes.isVisible && changes.isVisible.currentValue) {\n          const storedStacksSettings = DatatableService.getDataTableSettings('kubernetes.applications.stacks');\n          if (storedStacksSettings && storedStacksSettings.state) {\n            this.settings.showSystem = storedStacksSettings.state.showSystemResources;\n            DatatableService.setDataTableSettings(this.settingsKey, this.settings);\n          }\n        } else if (typeof this.isSystemResources !== 'undefined') {\n          this.settings.showSystem = this.isSystemResources;\n          DatatableService.setDataTableSettings(this.settingsKey, this.settings);\n        }\n        this.state.namespace = this.namespace;\n        this.updateNamespace();\n        this.prepareTableFromDataset();\n      }\n    };\n\n    this.$onInit = function () {\n      this.isAdmin = Authentication.isAdmin();\n      this.KubernetesApplicationDeploymentTypes = KubernetesApplicationDeploymentTypes;\n      this.KubernetesApplicationTypes = KubernetesApplicationTypes;\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      this.state.orderBy = this.orderBy;\n      const storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      const textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      const storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      const storedExpandedItems = DatatableService.getDataTableExpandedItems(this.tableKey);\n      if (storedExpandedItems !== null) {\n        this.expandItems(storedExpandedItems);\n      }\n\n      const storedSettings = DatatableService.getDataTableSettings(this.settingsKey);\n      if (storedSettings !== null) {\n        this.settings = storedSettings;\n        this.settings.open = false;\n\n        // make show system in sync with the stack show system settings\n        const storedStacksSettings = DatatableService.getDataTableSettings('kubernetes.applications.stacks');\n        if (storedStacksSettings && storedStacksSettings.state) {\n          this.settings.showSystem = storedStacksSettings.state.showSystemResources || this.settings.showSystem;\n        }\n\n        this.setSystemResources && this.setSystemResources(this.settings.showSystem);\n      }\n      this.settingsLoaded = true;\n      // Set the default selected namespace\n      if (!this.state.namespace) {\n        this.state.namespace = this.namespace;\n      }\n\n      this.updateNamespace();\n      this.onSettingsRepeaterChange();\n    };\n  },\n]);\n","import KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\n\nangular.module('portainer.docker').controller('KubernetesConfigurationsDatatableController', [\n  '$scope',\n  '$controller',\n  'DatatableService',\n  'Authentication',\n  function ($scope, $controller, DatatableService, Authentication) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    const ctrl = this;\n\n    this.settings = Object.assign(this.settings, {\n      showSystem: false,\n    });\n\n    this.onSettingsShowSystemChange = function () {\n      DatatableService.setDataTableSettings(this.tableKey, this.settings);\n    };\n\n    this.isSystemNamespace = function (item) {\n      return KubernetesNamespaceHelper.isSystemNamespace(item.Namespace);\n    };\n\n    this.isSystemToken = function (item) {\n      return KubernetesConfigurationHelper.isSystemToken(item);\n    };\n\n    this.isSystemConfig = function (item) {\n      return ctrl.isSystemNamespace(item) || ctrl.isSystemToken(item) || item.IsRegistrySecret;\n    };\n\n    this.isExternalConfiguration = function (item) {\n      return KubernetesConfigurationHelper.isExternalConfiguration(item);\n    };\n\n    this.isDisplayed = function (item) {\n      return !ctrl.isSystemConfig(item) || (ctrl.settings.showSystem && ctrl.isAdmin);\n    };\n\n    /**\n     * Do not allow configurations in system namespaces to be selected\n     */\n    this.allowSelection = function (item) {\n      return !this.isSystemConfig(item) && !item.Used;\n    };\n\n    this.$onInit = function () {\n      this.isAdmin = Authentication.isAdmin();\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      this.state.orderBy = this.orderBy;\n      var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n      if (storedSettings !== null) {\n        this.settings = storedSettings;\n        this.settings.open = false;\n      }\n      this.onSettingsRepeaterChange();\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./eventsDatatable.html');\n\nangular.module('portainer.kubernetes').component('kubernetesEventsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    loading: '<',\n    refreshCallback: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./integratedApplicationsDatatable.html');\n\nangular.module('portainer.kubernetes').component('kubernetesIntegratedApplicationsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    refreshCallback: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./nodeApplicationsDatatable.html');\n\nangular.module('portainer.kubernetes').component('kubernetesNodeApplicationsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesNodeApplicationsDatatableController',\n  bindings: {\n    titleText: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    refreshCallback: '<',\n  },\n});\n","import { KubernetesApplicationDeploymentTypes } from 'Kubernetes/models/application/models/appConstants';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { getDeploymentOptions } from '@/react/portainer/environments/environment.service';\n\nangular.module('portainer.docker').controller('KubernetesNodeApplicationsDatatableController', [\n  '$scope',\n  '$controller',\n  '$async',\n  'DatatableService',\n  function ($scope, $controller, $async, DatatableService) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    this.isSystemNamespace = function (item) {\n      return KubernetesNamespaceHelper.isSystemNamespace(item.ResourcePool);\n    };\n\n    this.isExternalApplication = function (item) {\n      return KubernetesApplicationHelper.isExternalApplication(item);\n    };\n\n    this.$onInit = function () {\n      return $async(async () => {\n        this.KubernetesApplicationDeploymentTypes = KubernetesApplicationDeploymentTypes;\n        this.setDefaults();\n        this.prepareTableFromDataset();\n\n        this.deploymentOptions = await getDeploymentOptions();\n\n        this.state.orderBy = this.orderBy;\n        var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n        if (storedOrder !== null) {\n          this.state.reverseOrder = storedOrder.reverse;\n          this.state.orderBy = storedOrder.orderBy;\n        }\n\n        var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n        if (textFilter !== null) {\n          this.state.textFilter = textFilter;\n          this.onTextFilterChange();\n        }\n\n        var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n        if (storedFilters !== null) {\n          this.filters = storedFilters;\n        }\n        if (this.filters && this.filters.state) {\n          this.filters.state.open = false;\n        }\n\n        var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n        if (storedSettings !== null) {\n          this.settings = storedSettings;\n          this.settings.open = false;\n        }\n        this.onSettingsRepeaterChange();\n      });\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./resourcePoolApplicationsDatatable.html');\n\nangular.module('portainer.kubernetes').component('kubernetesResourcePoolApplicationsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesResourcePoolApplicationsDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    refreshCallback: '<',\n  },\n});\n","import KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport { getDeploymentOptions } from '@/react/portainer/environments/environment.service';\n\nangular.module('portainer.docker').controller('KubernetesResourcePoolApplicationsDatatableController', [\n  '$scope',\n  '$controller',\n  '$async',\n  'DatatableService',\n  function ($scope, $controller, $async, DatatableService) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    this.isExternalApplication = function (item) {\n      return KubernetesApplicationHelper.isExternalApplication(item);\n    };\n\n    this.$onInit = function () {\n      return $async(async () => {\n        this.setDefaults();\n        this.prepareTableFromDataset();\n\n        this.deploymentOptions = await getDeploymentOptions();\n\n        this.state.orderBy = this.orderBy;\n        var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n        if (storedOrder !== null) {\n          this.state.reverseOrder = storedOrder.reverse;\n          this.state.orderBy = storedOrder.orderBy;\n        }\n\n        var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n        if (textFilter !== null) {\n          this.state.textFilter = textFilter;\n          this.onTextFilterChange();\n        }\n\n        var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n        if (storedFilters !== null) {\n          this.filters = storedFilters;\n        }\n        if (this.filters && this.filters.state) {\n          this.filters.state.open = false;\n        }\n\n        var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n        if (storedSettings !== null) {\n          this.settings = storedSettings;\n          this.settings.open = false;\n        }\n        this.onSettingsRepeaterChange();\n      });\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./resourcePoolsDatatable.html');\n\nangular.module('portainer.kubernetes').component('kubernetesResourcePoolsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesResourcePoolsDatatableController',\n  bindings: {\n    restrictDefaultNamespace: '<',\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n    refreshCallback: '<',\n  },\n});\n","import KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\n\nangular.module('portainer.docker').controller('KubernetesResourcePoolsDatatableController', [\n  '$scope',\n  '$controller',\n  'Authentication',\n  'DatatableService',\n  function ($scope, $controller, Authentication, DatatableService) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    var ctrl = this;\n\n    this.settings = Object.assign(this.settings, {\n      showSystem: false,\n    });\n\n    this.onSettingsShowSystemChange = function () {\n      DatatableService.setDataTableSettings(this.tableKey, this.settings);\n    };\n\n    this.canManageAccess = function (item) {\n      if (!this.restrictDefaultNamespace) {\n        return !KubernetesNamespaceHelper.isDefaultNamespace(item.Namespace.Name) && !this.isSystemNamespace(item);\n      } else {\n        return !this.isSystemNamespace(item);\n      }\n    };\n\n    this.disableRemove = function (item) {\n      return this.isSystemNamespace(item) || KubernetesNamespaceHelper.isDefaultNamespace(item.Namespace.Name);\n    };\n\n    this.isSystemNamespace = function (item) {\n      return KubernetesNamespaceHelper.isSystemNamespace(item.Namespace.Name);\n    };\n\n    this.isDisplayed = function (item) {\n      return !ctrl.isSystemNamespace(item) || (ctrl.settings.showSystem && ctrl.isAdmin);\n    };\n\n    this.namespaceStatusColor = function (status) {\n      switch (status.toLowerCase()) {\n        case 'active':\n          return 'success';\n        case 'terminating':\n          return 'danger';\n        default:\n          return 'primary';\n      }\n    };\n\n    /**\n     * Do not allow system namespaces to be selected\n     */\n    this.allowSelection = function (item) {\n      return !this.disableRemove(item);\n    };\n\n    this.$onInit = function () {\n      this.isAdmin = Authentication.isAdmin();\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      this.state.orderBy = this.orderBy;\n      var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n      if (storedSettings !== null) {\n        this.settings = storedSettings;\n        this.settings.open = false;\n      }\n      this.onSettingsRepeaterChange();\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./volumesDatatable.html');\n\nangular.module('portainer.kubernetes').component('kubernetesVolumesDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesVolumesDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n    refreshCallback: '<',\n  },\n});\n","import angular from 'angular';\nimport KubernetesVolumeHelper from 'Kubernetes/helpers/volumeHelper';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\n\n// TODO: review - refactor to use `extends GenericDatatableController`\nclass KubernetesVolumesDatatableController {\n  /* @ngInject */\n  constructor($async, $controller, Authentication, DatatableService) {\n    this.$async = $async;\n    this.$controller = $controller;\n    this.Authentication = Authentication;\n    this.DatatableService = DatatableService;\n\n    this.onInit = this.onInit.bind(this);\n    this.allowSelection = this.allowSelection.bind(this);\n    this.isDisplayed = this.isDisplayed.bind(this);\n  }\n\n  onSettingsShowSystemChange() {\n    this.DatatableService.setDataTableSettings(this.tableKey, this.settings);\n  }\n\n  disableRemove(item) {\n    return this.isSystemNamespace(item) || this.isUsed(item);\n  }\n\n  isUsed(item) {\n    return KubernetesVolumeHelper.isUsed(item);\n  }\n\n  isSystemNamespace(item) {\n    return KubernetesNamespaceHelper.isSystemNamespace(item.ResourcePool.Namespace.Name);\n  }\n\n  isDisplayed(item) {\n    return !this.isSystemNamespace(item) || this.settings.showSystem;\n  }\n\n  isExternalVolume(item) {\n    return KubernetesVolumeHelper.isExternalVolume(item);\n  }\n\n  allowSelection(item) {\n    return !this.disableRemove(item);\n  }\n\n  async onInit() {\n    this.setDefaults();\n    this.prepareTableFromDataset();\n    this.isAdmin = this.Authentication.isAdmin();\n    this.settings.showSystem = false;\n\n    this.state.orderBy = this.orderBy;\n    var storedOrder = this.DatatableService.getDataTableOrder(this.tableKey);\n    if (storedOrder !== null) {\n      this.state.reverseOrder = storedOrder.reverse;\n      this.state.orderBy = storedOrder.orderBy;\n    }\n\n    var textFilter = this.DatatableService.getDataTableTextFilters(this.tableKey);\n    if (textFilter !== null) {\n      this.state.textFilter = textFilter;\n      this.onTextFilterChange();\n    }\n\n    var storedFilters = this.DatatableService.getDataTableFilters(this.tableKey);\n    if (storedFilters !== null) {\n      this.filters = storedFilters;\n    }\n    if (this.filters && this.filters.state) {\n      this.filters.state.open = false;\n    }\n\n    var storedSettings = this.DatatableService.getDataTableSettings(this.tableKey);\n    if (storedSettings !== null) {\n      this.settings = storedSettings;\n      this.settings.open = false;\n    }\n    this.onSettingsRepeaterChange();\n  }\n\n  $onInit() {\n    const ctrl = angular.extend({}, this.$controller('GenericDatatableController'), this);\n    angular.extend(this, ctrl);\n    return this.$async(this.onInit);\n  }\n}\n\nexport default KubernetesVolumesDatatableController;\nangular.module('portainer.kubernetes').controller('KubernetesVolumesDatatableController', KubernetesVolumesDatatableController);\n","const autoNgTemplateLoaderTemplate1 = require('./helm-templates-list-item.html');\n\nimport angular from 'angular';\nimport './helm-templates-list-item.css';\nimport { HelmIcon } from '../../HelmIcon';\n\nangular.module('portainer.kubernetes').component('helmTemplatesListItem', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '<',\n    onSelect: '<',\n  },\n  transclude: {\n    actions: '?templateItemActions',\n  },\n  controller() {\n    this.fallbackIcon = HelmIcon;\n  },\n});\n","export default class HelmTemplatesListController {\n  /* @ngInject */\n  constructor($async, $scope, HelmService, Notifications) {\n    this.$async = $async;\n    this.$scope = $scope;\n    this.HelmService = HelmService;\n    this.Notifications = Notifications;\n\n    this.state = {\n      textFilter: '',\n      selectedCategory: '',\n      categories: [],\n    };\n\n    this.updateCategories = this.updateCategories.bind(this);\n    this.onCategoryChange = this.onCategoryChange.bind(this);\n  }\n\n  async updateCategories() {\n    try {\n      const annotationCategories = this.charts\n        .map((t) => t.annotations) // get annotations\n        .filter((a) => a) // filter out undefined/nulls\n        .map((c) => c.category); // get annotation category\n      const availableCategories = [...new Set(annotationCategories)].sort(); // unique and sort\n      this.state.categories = availableCategories.map((cat) => ({ label: cat, value: cat }));\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve helm charts categories');\n    }\n  }\n\n  onCategoryChange(value) {\n    return this.$scope.$evalAsync(() => {\n      this.state.selectedCategory = value || '';\n    });\n  }\n\n  $onChanges() {\n    if (this.charts.length > 0) {\n      this.updateCategories();\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./helm-templates-list.html');\n\nimport angular from 'angular';\nimport controller from './helm-templates-list.controller';\n\nangular.module('portainer.kubernetes').component('helmTemplatesList', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    loading: '<',\n    titleText: '@',\n    charts: '<',\n    tableKey: '@',\n    selectAction: '<',\n  },\n});\n","import _ from 'lodash-es';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { HelmIcon } from './HelmIcon';\nexport default class HelmTemplatesController {\n  /* @ngInject */\n  constructor($analytics, $async, $state, $window, $anchorScroll, Authentication, HelmService, KubernetesResourcePoolService, Notifications) {\n    this.$analytics = $analytics;\n    this.$async = $async;\n    this.$window = $window;\n    this.$state = $state;\n    this.$anchorScroll = $anchorScroll;\n    this.Authentication = Authentication;\n    this.HelmService = HelmService;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.Notifications = Notifications;\n\n    this.fallbackIcon = HelmIcon;\n\n    this.editorUpdate = this.editorUpdate.bind(this);\n    this.uiCanExit = this.uiCanExit.bind(this);\n    this.installHelmchart = this.installHelmchart.bind(this);\n    this.getHelmValues = this.getHelmValues.bind(this);\n    this.selectHelmChart = this.selectHelmChart.bind(this);\n    this.getHelmRepoURLs = this.getHelmRepoURLs.bind(this);\n    this.getLatestCharts = this.getLatestCharts.bind(this);\n    this.getResourcePools = this.getResourcePools.bind(this);\n    this.clearHelmChart = this.clearHelmChart.bind(this);\n\n    $window.onbeforeunload = () => {\n      if (this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  clearHelmChart() {\n    this.state.chart = null;\n    this.onSelectHelmChart('');\n  }\n\n  editorUpdate(contentvalues) {\n    if (this.state.originalvalues === contentvalues) {\n      this.state.isEditorDirty = false;\n    } else {\n      this.state.values = contentvalues;\n      this.state.isEditorDirty = true;\n    }\n  }\n\n  async uiCanExit() {\n    if (this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  async installHelmchart() {\n    this.state.actionInProgress = true;\n    try {\n      const payload = {\n        Name: this.name,\n        Repo: this.state.chart.repo,\n        Chart: this.state.chart.name,\n        Values: this.state.values,\n        Namespace: this.namespace,\n      };\n      await this.HelmService.install(this.endpoint.Id, payload);\n      this.Notifications.success('Success', 'Helm chart successfully installed');\n      this.$analytics.eventTrack('kubernetes-helm-install', { category: 'kubernetes', metadata: { 'chart-name': this.state.chart.name } });\n      this.state.isEditorDirty = false;\n      this.$state.go('kubernetes.applications');\n    } catch (err) {\n      this.Notifications.error('Installation error', err);\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  async getHelmValues() {\n    this.state.loadingValues = true;\n    try {\n      const { values } = await this.HelmService.values(this.state.chart.repo, this.state.chart.name);\n      this.state.values = values;\n      this.state.originalvalues = values;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve helm chart values.');\n    } finally {\n      this.state.loadingValues = false;\n    }\n  }\n\n  async selectHelmChart(chart) {\n    window.scrollTo(0, 0);\n    this.state.showCustomValues = false;\n    this.state.chart = chart;\n    this.onSelectHelmChart(chart.name);\n    await this.getHelmValues();\n  }\n\n  /**\n   * @description This function is used to get the helm repo urls for the endpoint and user\n   * @returns {Promise<string[]>} list of helm repo urls\n   */\n  async getHelmRepoURLs() {\n    this.state.reposLoading = true;\n    try {\n      // fetch globally set helm repo and user helm repos (parallel)\n      const { GlobalRepository, UserRepositories } = await this.HelmService.getHelmRepositories(this.user.ID);\n      this.state.globalRepository = GlobalRepository;\n      const userHelmReposUrls = UserRepositories.map((repo) => repo.URL);\n      const uniqueHelmRepos = [...new Set([GlobalRepository, ...userHelmReposUrls])].map((url) => url.toLowerCase()).filter((url) => url); // remove duplicates and blank, to lowercase\n      this.state.repos = uniqueHelmRepos;\n      return uniqueHelmRepos;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve helm repo urls.');\n    } finally {\n      this.state.reposLoading = false;\n    }\n  }\n\n  /**\n   * @description This function is used to fetch the respective index.yaml files for the provided helm repo urls\n   * @param {string[]} helmRepos list of helm repositories\n   * @param {bool} append append charts returned from repo to existing list of helm charts\n   */\n  async getLatestCharts(helmRepos) {\n    this.state.chartsLoading = true;\n    try {\n      const promiseList = helmRepos.map((repo) => this.HelmService.search(repo));\n      // fetch helm charts from all the provided helm repositories (parallel)\n      // Promise.allSettled is used to account for promise failure(s) - in cases the  user has provided invalid helm repo\n      const chartPromises = await Promise.allSettled(promiseList);\n      const latestCharts = chartPromises\n        .filter((tp) => tp.status === 'fulfilled') // remove failed promises\n        .map((tp) => ({ entries: tp.value.entries, repo: helmRepos[chartPromises.indexOf(tp)] })) // extract chart entries with respective repo data\n        .flatMap(\n          ({ entries, repo }) => Object.values(entries).map((charts) => ({ ...charts[0], repo })) // flatten chart entries to single array with respective repo\n        );\n\n      this.state.charts = latestCharts;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve helm repo charts.');\n    } finally {\n      this.state.chartsLoading = false;\n    }\n  }\n\n  async getResourcePools() {\n    this.state.resourcePoolsLoading = true;\n    try {\n      const resourcePools = await this.KubernetesResourcePoolService.get();\n\n      const nonSystemNamespaces = resourcePools.filter(\n        (resourcePool) => !KubernetesNamespaceHelper.isSystemNamespace(resourcePool.Namespace.Name) && resourcePool.Namespace.Status === 'Active'\n      );\n      this.state.resourcePools = _.sortBy(nonSystemNamespaces, ({ Namespace }) => (Namespace.Name === 'default' ? 0 : 1));\n      this.state.resourcePool = this.state.resourcePools[0];\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve initial helm data.');\n    } finally {\n      this.state.resourcePoolsLoading = false;\n    }\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.user = this.Authentication.getUserDetails();\n\n      this.state = {\n        appName: '',\n        chart: null,\n        showCustomValues: false,\n        actionInProgress: false,\n        resourcePools: [],\n        resourcePool: '',\n        values: null,\n        originalvalues: null,\n        repos: [],\n        charts: [],\n        loadingValues: false,\n        isEditorDirty: false,\n        chartsLoading: false,\n        resourcePoolsLoading: false,\n        viewReady: false,\n        isAdmin: this.Authentication.isAdmin(),\n        globalRepository: undefined,\n      };\n\n      const helmRepos = await this.getHelmRepoURLs();\n      if (helmRepos) {\n        await Promise.all([this.getLatestCharts(helmRepos), this.getResourcePools()]);\n      }\n      if (this.state.charts.length > 0 && this.$state.params.chartName) {\n        const chart = this.state.charts.find((chart) => chart.name === this.$state.params.chartName);\n        if (chart) {\n          this.selectHelmChart(chart);\n        }\n      }\n\n      this.state.viewReady = true;\n    });\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./helm-templates.html');\n\nimport angular from 'angular';\nimport controller from './helm-templates.controller';\n\nangular.module('portainer.kubernetes').component('helmTemplatesView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    endpoint: '<',\n    namespace: '<',\n    stackName: '<',\n    onSelectHelmChart: '<',\n    name: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./kubernetesConfigurationData.html');\n\nangular.module('portainer.kubernetes').component('kubernetesConfigurationData', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesConfigurationDataController',\n  bindings: {\n    formValues: '=',\n    isDockerConfig: '=',\n    onChangeValidation: '&',\n    isValid: '=',\n    isCreation: '=',\n    isEditorDirty: '=',\n    type: '<',\n  },\n});\n","import { Buffer } from 'buffer';\nimport angular from 'angular';\nimport _ from 'lodash-es';\nimport chardet from 'chardet';\nimport { Base64 } from 'js-base64';\nimport KubernetesFormValidationHelper from 'Kubernetes/helpers/formValidationHelper';\nimport KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\nimport { KubernetesConfigurationFormValuesEntry } from 'Kubernetes/models/configuration/formvalues';\nimport { KubernetesConfigurationKinds, KubernetesSecretTypeOptions } from 'Kubernetes/models/configuration/models';\n\nclass KubernetesConfigurationDataController {\n  /* @ngInject */\n  constructor($async, Notifications) {\n    Object.assign(this, { $async, Notifications });\n\n    this.editorUpdate = this.editorUpdate.bind(this);\n    this.editorUpdateAsync = this.editorUpdateAsync.bind(this);\n    this.onFileLoad = this.onFileLoad.bind(this);\n    this.onFileLoadAsync = this.onFileLoadAsync.bind(this);\n    this.showSimpleMode = this.showSimpleMode.bind(this);\n    this.showAdvancedMode = this.showAdvancedMode.bind(this);\n    this.KubernetesConfigurationKinds = KubernetesConfigurationKinds;\n    this.KubernetesSecretTypeOptions = KubernetesSecretTypeOptions;\n  }\n\n  onChangeKey(entry) {\n    if (entry && entry.Used) {\n      return;\n    }\n\n    this.onChangeValidation();\n\n    this.state.duplicateKeys = KubernetesFormValidationHelper.getDuplicates(_.map(this.formValues.Data, (data) => data.Key));\n    this.state.invalidKeys = KubernetesFormValidationHelper.getInvalidKeys(_.map(this.formValues.Data, (data) => data.Key));\n    this.isValid = Object.keys(this.state.duplicateKeys).length === 0 && Object.keys(this.state.invalidKeys).length === 0;\n  }\n\n  addEntry() {\n    this.formValues.Data.push(new KubernetesConfigurationFormValuesEntry());\n\n    // logic for setting required keys for new entries, based on the secret type\n    if (this.formValues.Kind === this.KubernetesConfigurationKinds.SECRET) {\n      const newDataIndex = this.formValues.Data.length - 1;\n      switch (this.formValues.Type) {\n        case this.KubernetesSecretTypeOptions.DOCKERCFG.value:\n          this.addMissingKeys(['dockercfg'], newDataIndex);\n          break;\n        case this.KubernetesSecretTypeOptions.DOCKERCONFIGJSON.value:\n          this.addMissingKeys(['.dockerconfigjson'], newDataIndex);\n          break;\n        case this.KubernetesSecretTypeOptions.BASICAUTH.value:\n          // only add a required key if there is no required key out of username and password\n          if (!this.formValues.Data.some((entry) => entry.Key === 'username' || entry.Key === 'password')) {\n            this.addMissingKeys(['username', 'password'], newDataIndex);\n          }\n          break;\n        case this.KubernetesSecretTypeOptions.SSHAUTH.value:\n          this.addMissingKeys(['ssh-privatekey'], newDataIndex);\n          break;\n        case this.KubernetesSecretTypeOptions.TLS.value:\n          this.addMissingKeys(['tls.crt', 'tls.key'], newDataIndex);\n          break;\n        case this.KubernetesSecretTypeOptions.BOOTSTRAPTOKEN.value:\n          this.addMissingKeys(['token-id', 'token-secret'], newDataIndex);\n          break;\n        default:\n          break;\n      }\n    }\n\n    this.onChangeValidation();\n  }\n\n  // addMissingKeys adds the keys in the keys array to the entry at the index provided and stops when the first one is added\n  addMissingKeys(keys, newDataIndex) {\n    for (let key of keys) {\n      if (this.formValues.Data.every((entry) => entry.Key !== key)) {\n        this.formValues.Data[newDataIndex].Key = key;\n        return;\n      }\n    }\n  }\n\n  isRequiredKey(key) {\n    if (this.formValues.Kind === this.KubernetesConfigurationKinds.SECRET) {\n      switch (this.formValues.Type) {\n        case this.KubernetesSecretTypeOptions.DOCKERCONFIGJSON.value:\n          if (key === '.dockerconfigjson') {\n            return true;\n          }\n          break;\n        case this.KubernetesSecretTypeOptions.DOCKERCFG.value:\n          if (key === '.dockercfg') {\n            return true;\n          }\n          break;\n        case this.KubernetesSecretTypeOptions.SSHAUTH.value:\n          if (key === 'ssh-privatekey') {\n            return true;\n          }\n          break;\n        case this.KubernetesSecretTypeOptions.TLS.value:\n          if (key === 'tls.crt' || key === 'tls.key') {\n            return true;\n          }\n          break;\n        case this.KubernetesSecretTypeOptions.BOOTSTRAPTOKEN.value:\n          if (key === 'token-id' || key === 'token-secret') {\n            return true;\n          }\n          break;\n        default:\n          break;\n      }\n    }\n    return false;\n  }\n\n  removeEntry(index, entry) {\n    if (entry.Used) {\n      return;\n    }\n\n    this.formValues.Data.splice(index, 1);\n    this.onChangeKey();\n  }\n\n  async editorUpdateAsync(value) {\n    if (this.formValues.DataYaml !== value) {\n      this.formValues.DataYaml = value;\n      this.isEditorDirty = true;\n    }\n  }\n\n  editorUpdate(value) {\n    return this.$async(this.editorUpdateAsync, value);\n  }\n\n  async onFileLoadAsync(event) {\n    // exit if the file is too big\n    const maximumFileSizeBytes = 1024 * 1024; // 1MB\n    if (event.target.result.byteLength > maximumFileSizeBytes) {\n      this.Notifications.error('File size is too big', 'File size is too big', 'Select a file that is 1MB or smaller.');\n      return;\n    }\n\n    const entry = new KubernetesConfigurationFormValuesEntry();\n    try {\n      const encoding = chardet.detect(Buffer.from(event.target.result));\n      const decoder = new TextDecoder(encoding);\n\n      entry.IsBinary = KubernetesConfigurationHelper.isBinary(encoding);\n\n      if (!entry.IsBinary) {\n        entry.Value = decoder.decode(event.target.result);\n      } else {\n        const stringValue = decoder.decode(event.target.result);\n        entry.Value = Base64.encode(stringValue);\n      }\n    } catch (error) {\n      this.Notifications.error('Failed to upload file', error, 'Failed to upload file');\n      return;\n    }\n\n    entry.Key = event.target.fileName;\n\n    if (this.formValues.Kind === this.KubernetesConfigurationKinds.SECRET) {\n      if (this.isDockerConfig) {\n        if (this.formValues.Type === this.KubernetesSecretTypeOptions.DOCKERCFG.value) {\n          entry.Key = '.dockercfg';\n        } else {\n          entry.Key = '.dockerconfigjson';\n        }\n      }\n\n      if (this.formValues.Type === this.KubernetesSecretTypeOptions.TLS.value) {\n        const isCrt = entry.Value.indexOf('BEGIN CERTIFICATE') !== -1;\n        if (isCrt) {\n          entry.Key = 'tls.crt';\n        }\n        const isKey = entry.Value.indexOf('PRIVATE KEY') !== -1;\n        if (isKey) {\n          entry.Key = 'tls.key';\n        }\n      }\n    }\n\n    // if this.formValues.Data has a key that matches an existing key, then replace it\n    const existingEntryIndex = this.formValues.Data.findIndex((data) => data.Key === entry.Key || (data.Value === '' && data.Key === ''));\n    if (existingEntryIndex !== -1) {\n      this.formValues.Data[existingEntryIndex] = entry;\n    } else {\n      this.formValues.Data.push(entry);\n    }\n\n    this.onChangeKey();\n  }\n\n  isEntryRequired() {\n    if (this.formValues.Kind === this.KubernetesConfigurationKinds.SECRET) {\n      if (this.formValues.Data.length === 1) {\n        if (this.formValues.Type !== this.KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n\n  onFileLoad(event) {\n    return this.$async(this.onFileLoadAsync, event);\n  }\n\n  addEntryFromFile(file) {\n    if (file) {\n      const temporaryFileReader = new FileReader();\n      temporaryFileReader.fileName = file.name;\n      temporaryFileReader.onload = this.onFileLoad;\n      temporaryFileReader.readAsArrayBuffer(file);\n    }\n  }\n\n  showSimpleMode() {\n    this.formValues.IsSimple = true;\n    this.formValues.Data = KubernetesConfigurationHelper.parseYaml(this.formValues);\n    this.onChangeKey();\n  }\n\n  showAdvancedMode() {\n    this.formValues.IsSimple = false;\n    this.formValues.DataYaml = KubernetesConfigurationHelper.parseData(this.formValues);\n  }\n\n  $onInit() {\n    this.state = {\n      duplicateKeys: [],\n      invalidKeys: {},\n    };\n  }\n}\n\nexport default KubernetesConfigurationDataController;\nangular.module('portainer.kubernetes').controller('KubernetesConfigurationDataController', KubernetesConfigurationDataController);\n","const autoNgTemplateLoaderTemplate1 = require('./resourceReservation.html');\n\nangular.module('portainer.kubernetes').component('kubernetesResourceReservation', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesResourceReservationController',\n  bindings: {\n    description: '@',\n    cpuReservation: '<',\n    cpuUsage: '<',\n    cpuLimit: '<',\n    memoryReservation: '<',\n    memoryUsage: '<',\n    memoryLimit: '<',\n    displayUsage: '<',\n  },\n});\n","import angular from 'angular';\n\nclass KubernetesResourceReservationController {\n  usageValues() {\n    if (this.cpuLimit) {\n      this.cpuReservationPercent = Math.round((this.cpuReservation / this.cpuLimit) * 100);\n    }\n    if (this.memoryLimit) {\n      this.memoryReservationPercent = Math.round((this.memoryReservation / this.memoryLimit) * 100);\n    }\n\n    if (this.displayUsage && this.cpuLimit && this.memoryLimit) {\n      this.cpuUsagePercent = Math.round((this.cpuUsage / this.cpuLimit) * 100);\n      this.memoryUsagePercent = Math.round((this.memoryUsage / this.memoryLimit) * 100);\n    }\n  }\n\n  $onInit() {\n    this.usageValues();\n  }\n\n  $onChanges() {\n    this.usageValues();\n  }\n}\n\nexport default KubernetesResourceReservationController;\nangular.module('portainer.kubernetes').controller('KubernetesResourceReservationController', KubernetesResourceReservationController);\n","const autoNgTemplateLoaderTemplate1 = require('./viewLoading.html');\n\nangular.module('portainer.kubernetes').component('kubernetesViewLoading', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    viewReady: '<',\n  },\n});\n","import _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\n\nimport { KubernetesApplicationDataAccessPolicies, KubernetesApplicationDeploymentTypes, KubernetesApplicationTypes } from 'Kubernetes/models/application/models/appConstants';\nimport {\n  KubernetesApplication,\n  KubernetesApplicationConfigurationVolume,\n  KubernetesApplicationPersistedFolder,\n  KubernetesApplicationPort,\n  KubernetesPortainerApplicationNameLabel,\n  KubernetesPortainerApplicationNote,\n  KubernetesPortainerApplicationOwnerLabel,\n  KubernetesPortainerApplicationStackNameLabel,\n  KubernetesPortainerApplicationStackIdLabel,\n  KubernetesPortainerApplicationKindLabel,\n} from 'Kubernetes/models/application/models';\nimport { KubernetesServiceTypes } from 'Kubernetes/models/service/models';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesApplicationFormValues } from 'Kubernetes/models/application/formValues';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\n\nimport KubernetesDeploymentConverter from 'Kubernetes/converters/deployment';\nimport KubernetesDaemonSetConverter from 'Kubernetes/converters/daemonSet';\nimport KubernetesStatefulSetConverter from 'Kubernetes/converters/statefulSet';\nimport KubernetesPodConverter from 'Kubernetes/pod/converter';\nimport KubernetesServiceConverter from 'Kubernetes/converters/service';\nimport KubernetesPersistentVolumeClaimConverter from 'Kubernetes/converters/persistentVolumeClaim';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesIngressHelper } from 'Kubernetes/ingress/helper';\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\n\nfunction _apiPortsToPublishedPorts(pList, pRefs) {\n  const ports = _.map(pList, (item) => {\n    const res = new KubernetesApplicationPort();\n    res.Port = item.port;\n    res.TargetPort = item.targetPort;\n    res.NodePort = item.nodePort;\n    res.Protocol = item.protocol;\n    return res;\n  });\n  _.forEach(ports, (port) => {\n    if (isNaN(port.TargetPort)) {\n      const targetPort = _.find(pRefs, { name: port.TargetPort });\n      if (targetPort) {\n        port.TargetPort = targetPort.containerPort;\n      }\n    }\n  });\n  return ports;\n}\n\nclass KubernetesApplicationConverter {\n  static applicationCommon(res, data, pods, service, ingresses) {\n    const containers = data.spec.template ? _.without(_.concat(data.spec.template.spec.containers, data.spec.template.spec.initContainers), undefined) : data.spec.containers;\n    res.Id = data.metadata.uid;\n    res.Name = data.metadata.name;\n    res.Metadata = data.metadata;\n    res.ApplicationType = data.kind;\n    res.Labels = data.metadata.labels || {};\n\n    if (data.metadata.labels) {\n      const { labels } = data.metadata;\n      res.StackId = labels[KubernetesPortainerApplicationStackIdLabel] ? parseInt(labels[KubernetesPortainerApplicationStackIdLabel], 10) : null;\n      res.StackName = labels[KubernetesPortainerApplicationStackNameLabel] || '';\n      res.ApplicationKind = labels[KubernetesPortainerApplicationKindLabel] || '';\n      res.ApplicationOwner = labels[KubernetesPortainerApplicationOwnerLabel] || '';\n      res.ApplicationName = labels[KubernetesPortainerApplicationNameLabel] || res.Name;\n    }\n\n    res.Note = data.metadata.annotations ? data.metadata.annotations[KubernetesPortainerApplicationNote] || '' : '';\n    res.ResourcePool = data.metadata.namespace;\n    if (containers.length) {\n      res.Image = containers[0].image;\n    }\n    if (data.spec.template && data.spec.template.spec && data.spec.template.spec.imagePullSecrets && data.spec.template.spec.imagePullSecrets.length) {\n      res.RegistryId = parseInt(data.spec.template.spec.imagePullSecrets[0].name.replace('registry-', ''), 10);\n    }\n    res.CreationDate = data.metadata.creationTimestamp;\n    res.Env = _.without(_.flatMap(_.map(containers, 'env')), undefined);\n    res.Pods = data.spec.selector ? KubernetesApplicationHelper.associatePodsAndApplication(pods, data.spec.selector) : [data];\n\n    const limits = {\n      Cpu: 0,\n      Memory: 0,\n    };\n    res.Limits = _.reduce(\n      containers,\n      (acc, item) => {\n        if (item.resources.limits && item.resources.limits.cpu) {\n          acc.Cpu += KubernetesResourceReservationHelper.parseCPU(item.resources.limits.cpu);\n        }\n        if (item.resources.limits && item.resources.limits.memory) {\n          acc.Memory += filesizeParser(item.resources.limits.memory, { base: 10 });\n        }\n        return acc;\n      },\n      limits\n    );\n\n    const requests = {\n      Cpu: 0,\n      Memory: 0,\n    };\n    res.Requests = _.reduce(\n      containers,\n      (acc, item) => {\n        if (item.resources.requests && item.resources.requests.cpu) {\n          acc.Cpu += KubernetesResourceReservationHelper.parseCPU(item.resources.requests.cpu);\n        }\n        if (item.resources.requests && item.resources.requests.memory) {\n          acc.Memory += filesizeParser(item.resources.requests.memory, { base: 10 });\n        }\n        return acc;\n      },\n      requests\n    );\n\n    if (service) {\n      const serviceType = service.spec.type;\n      res.ServiceType = serviceType;\n      res.ServiceId = service.metadata.uid;\n      res.ServiceName = service.metadata.name;\n      res.ClusterIp = service.spec.clusterIP;\n      res.ExternalIp = service.spec.externalIP;\n\n      if (serviceType === KubernetesServiceTypes.LOAD_BALANCER) {\n        if (service.status.loadBalancer.ingress && service.status.loadBalancer.ingress.length > 0) {\n          res.LoadBalancerIPAddress = service.status.loadBalancer.ingress[0].ip || service.status.loadBalancer.ingress[0].hostname;\n        }\n      }\n\n      const portsRefs = _.concat(..._.map(containers, (container) => container.ports));\n      const ports = _apiPortsToPublishedPorts(service.spec.ports, portsRefs);\n      const rules = KubernetesIngressHelper.findSBoundServiceIngressesRules(ingresses, service.metadata.name);\n      _.forEach(ports, (port) => (port.IngressRules = _.filter(rules, (rule) => rule.Port === port.Port)));\n      res.PublishedPorts = ports;\n    }\n\n    if (data.spec.template) {\n      res.Volumes = data.spec.template.spec.volumes ? data.spec.template.spec.volumes : [];\n    } else {\n      res.Volumes = data.spec.volumes;\n    }\n\n    // TODO: review\n    // this if() fixs direct use of PVC reference inside spec.template.spec.containers[0].volumeMounts\n    // instead of referencing the PVC the \"good way\" using spec.template.spec.volumes array\n    // Basically it creates an \"in-memory\" reference for the PVC, as if it was saved in\n    // spec.template.spec.volumes and retrieved from here.\n    //\n    // FIX FOR SFS ONLY ; as far as we know it's not possible to do this with DEPLOYMENTS/DAEMONSETS\n    //\n    // This may lead to destructing behaviours when we will allow external apps to be edited.\n    // E.G. if we try to generate the formValues and patch the app, SFS reference will be created under\n    // spec.template.spec.volumes and not be referenced directly inside spec.template.spec.containers[0].volumeMounts\n    // As we preserve original SFS name and try to build around it, it SHOULD be fine, but we definitely need to test this\n    // before allowing external apps modification\n    if (data.spec.volumeClaimTemplates) {\n      const vcTemplates = _.map(data.spec.volumeClaimTemplates, (vc) => {\n        return {\n          name: vc.metadata.name,\n          persistentVolumeClaim: { claimName: vc.metadata.name },\n        };\n      });\n      const inexistingPVC = _.filter(vcTemplates, (vc) => {\n        return !_.find(res.Volumes, { persistentVolumeClaim: { claimName: vc.persistentVolumeClaim.claimName } });\n      });\n      res.Volumes = _.concat(res.Volumes, inexistingPVC);\n    }\n\n    const persistedFolders = _.filter(res.Volumes, (volume) => volume.persistentVolumeClaim || volume.hostPath);\n\n    res.PersistedFolders = _.map(persistedFolders, (volume) => {\n      const volumeMounts = _.uniq(_.flatMap(_.map(containers, 'volumeMounts')), 'name');\n      const matchingVolumeMount = _.find(volumeMounts, { name: volume.name });\n\n      if (matchingVolumeMount) {\n        const persistedFolder = new KubernetesApplicationPersistedFolder();\n        persistedFolder.MountPath = matchingVolumeMount.mountPath;\n\n        if (volume.persistentVolumeClaim) {\n          persistedFolder.persistentVolumeClaimName = volume.persistentVolumeClaim.claimName;\n        } else {\n          persistedFolder.HostPath = volume.hostPath.path;\n        }\n\n        return persistedFolder;\n      }\n    });\n\n    res.PersistedFolders = _.without(res.PersistedFolders, undefined);\n\n    res.ConfigurationVolumes = _.reduce(\n      res.Volumes,\n      (acc, volume) => {\n        if (volume.configMap || volume.secret) {\n          const matchingVolumeMount = _.find(_.flatMap(_.map(containers, 'volumeMounts')), { name: volume.name });\n\n          if (matchingVolumeMount) {\n            let items = [];\n            let configurationName = '';\n\n            if (volume.configMap) {\n              items = volume.configMap.items;\n              configurationName = volume.configMap.name;\n            } else {\n              items = volume.secret.items;\n              configurationName = volume.secret.secretName;\n            }\n\n            if (!items) {\n              const configurationVolume = new KubernetesApplicationConfigurationVolume();\n              configurationVolume.fileMountPath = matchingVolumeMount.mountPath;\n              configurationVolume.rootMountPath = matchingVolumeMount.mountPath;\n              configurationVolume.configurationName = configurationName;\n              configurationVolume.configurationType = volume.configMap ? KubernetesConfigurationKinds.CONFIGMAP : KubernetesConfigurationKinds.SECRET;\n\n              acc.push(configurationVolume);\n            } else {\n              _.forEach(items, (item) => {\n                const configurationVolume = new KubernetesApplicationConfigurationVolume();\n                configurationVolume.fileMountPath = matchingVolumeMount.mountPath + '/' + item.path;\n                configurationVolume.rootMountPath = matchingVolumeMount.mountPath;\n                configurationVolume.configurationKey = item.key;\n                configurationVolume.configurationName = configurationName;\n                configurationVolume.configurationType = volume.configMap ? KubernetesConfigurationKinds.CONFIGMAP : KubernetesConfigurationKinds.SECRET;\n\n                acc.push(configurationVolume);\n              });\n            }\n          }\n        }\n\n        return acc;\n      },\n      []\n    );\n  }\n\n  static apiPodToApplication(data, pods, service, ingresses) {\n    const res = new KubernetesApplication();\n    KubernetesApplicationConverter.applicationCommon(res, data, pods, service, ingresses);\n    res.ApplicationType = KubernetesApplicationTypes.Pod;\n    return res;\n  }\n\n  static apiDeploymentToApplication(data, pods, service, ingresses) {\n    const res = new KubernetesApplication();\n    KubernetesApplicationConverter.applicationCommon(res, data, pods, service, ingresses);\n    res.ApplicationType = KubernetesApplicationTypes.Deployment;\n    res.DeploymentType = KubernetesApplicationDeploymentTypes.Replicated;\n    res.DataAccessPolicy = KubernetesApplicationDataAccessPolicies.Shared;\n    res.RunningPodsCount = data.status.availableReplicas || data.status.replicas - data.status.unavailableReplicas || 0;\n    res.TotalPodsCount = data.spec.replicas;\n    return res;\n  }\n\n  static apiDaemonSetToApplication(data, pods, service, ingresses) {\n    const res = new KubernetesApplication();\n    KubernetesApplicationConverter.applicationCommon(res, data, pods, service, ingresses);\n    res.ApplicationType = KubernetesApplicationTypes.DaemonSet;\n    res.DeploymentType = KubernetesApplicationDeploymentTypes.Global;\n    res.DataAccessPolicy = KubernetesApplicationDataAccessPolicies.Shared;\n    res.RunningPodsCount = data.status.numberAvailable || data.status.desiredNumberScheduled - data.status.numberUnavailable || 0;\n    res.TotalPodsCount = data.status.desiredNumberScheduled;\n    return res;\n  }\n\n  static apiStatefulSetToapplication(data, pods, service, ingresses) {\n    const res = new KubernetesApplication();\n    KubernetesApplicationConverter.applicationCommon(res, data, pods, service, ingresses);\n    res.ApplicationType = KubernetesApplicationTypes.StatefulSet;\n    res.DeploymentType = KubernetesApplicationDeploymentTypes.Replicated;\n    res.DataAccessPolicy = KubernetesApplicationDataAccessPolicies.Isolated;\n    res.RunningPodsCount = data.status.readyReplicas || 0;\n    res.TotalPodsCount = data.spec.replicas;\n    res.HeadlessServiceName = data.spec.serviceName;\n    return res;\n  }\n\n  static applicationToFormValues(app, resourcePools, configurations, persistentVolumeClaims, nodesLabels, ingresses) {\n    const res = new KubernetesApplicationFormValues();\n    res.ApplicationType = app.ApplicationType;\n    res.ResourcePool = _.find(resourcePools, ['Namespace.Name', app.ResourcePool]);\n    res.Name = app.Name;\n    res.Labels = app.Labels;\n    res.Services = KubernetesApplicationHelper.generateServicesFormValuesFromServices(app, ingresses);\n    res.Selector = KubernetesApplicationHelper.generateSelectorFromService(app);\n    res.StackName = app.StackName;\n    res.ApplicationOwner = app.ApplicationOwner;\n    res.ImageModel.Image = app.Image;\n    res.ImageModel.Registry.Id = app.RegistryId;\n    res.ReplicaCount = app.TotalPodsCount;\n    res.MemoryLimit = KubernetesResourceReservationHelper.megaBytesValue(app.Limits.Memory);\n    res.CpuLimit = app.Limits.Cpu;\n    res.DeploymentType = app.DeploymentType;\n    res.DataAccessPolicy = app.DataAccessPolicy;\n    res.EnvironmentVariables = KubernetesApplicationHelper.generateEnvVariablesFromEnv(app.Env);\n    res.PersistedFolders = KubernetesApplicationHelper.generatePersistedFoldersFormValuesFromPersistedFolders(app.PersistedFolders, persistentVolumeClaims); // generate from PVC and app.PersistedFolders\n    res.Secrets = KubernetesApplicationHelper.generateConfigurationFormValuesFromEnvAndVolumes(\n      app.Env,\n      app.ConfigurationVolumes,\n      configurations,\n      KubernetesConfigurationKinds.SECRET\n    );\n    res.ConfigMaps = KubernetesApplicationHelper.generateConfigurationFormValuesFromEnvAndVolumes(\n      app.Env,\n      app.ConfigurationVolumes,\n      configurations,\n      KubernetesConfigurationKinds.CONFIGMAP\n    );\n    res.AutoScaler = KubernetesApplicationHelper.generateAutoScalerFormValueFromHorizontalPodAutoScaler(app.AutoScaler, res.ReplicaCount);\n    res.PublishedPorts = KubernetesApplicationHelper.generatePublishedPortsFormValuesFromPublishedPorts(app.ServiceType, app.PublishedPorts, ingresses);\n    res.Containers = app.Containers;\n\n    res.PublishingType = app.ServiceType;\n\n    if (app.Pods && app.Pods.length) {\n      KubernetesApplicationHelper.generatePlacementsFormValuesFromAffinity(res, app.Pods[0].Affinity);\n    }\n\n    return res;\n  }\n\n  static applicationFormValuesToApplication(formValues) {\n    formValues.ApplicationOwner = KubernetesCommonHelper.ownerToLabel(formValues.ApplicationOwner);\n\n    const claims = KubernetesPersistentVolumeClaimConverter.applicationFormValuesToVolumeClaims(formValues);\n    const rwx = KubernetesApplicationHelper.hasRWX(claims);\n\n    const deployment =\n      (formValues.DeploymentType === KubernetesApplicationDeploymentTypes.Replicated &&\n        (claims.length === 0 || (claims.length > 0 && formValues.DataAccessPolicy === KubernetesApplicationDataAccessPolicies.Shared))) ||\n      formValues.ApplicationType === KubernetesApplicationTypes.Deployment;\n\n    const statefulSet =\n      (formValues.DeploymentType === KubernetesApplicationDeploymentTypes.Replicated &&\n        claims.length > 0 &&\n        formValues.DataAccessPolicy === KubernetesApplicationDataAccessPolicies.Isolated) ||\n      formValues.ApplicationType === KubernetesApplicationTypes.StatefulSet;\n\n    const daemonSet =\n      (formValues.DeploymentType === KubernetesApplicationDeploymentTypes.Global &&\n        (claims.length === 0 || (claims.length > 0 && formValues.DataAccessPolicy === KubernetesApplicationDataAccessPolicies.Shared && rwx))) ||\n      formValues.ApplicationType === KubernetesApplicationTypes.DaemonSet;\n\n    const pod = formValues.ApplicationType === KubernetesApplicationTypes.Pod;\n\n    let app;\n    if (deployment) {\n      app = KubernetesDeploymentConverter.applicationFormValuesToDeployment(formValues, claims);\n    } else if (statefulSet) {\n      app = KubernetesStatefulSetConverter.applicationFormValuesToStatefulSet(formValues, claims);\n    } else if (daemonSet) {\n      app = KubernetesDaemonSetConverter.applicationFormValuesToDaemonSet(formValues, claims);\n    } else if (pod) {\n      app = KubernetesPodConverter.applicationFormValuesToPod(formValues, claims);\n    } else {\n      throw new PortainerError('Unable to determine which association to use to convert form');\n    }\n    app.ApplicationType = formValues.ApplicationType;\n\n    let headlessService;\n    if (statefulSet) {\n      headlessService = KubernetesServiceConverter.applicationFormValuesToHeadlessService(formValues);\n    }\n\n    let service = KubernetesServiceConverter.applicationFormValuesToService(formValues);\n    if (!service.Ports.length) {\n      service = undefined;\n    }\n\n    let services = KubernetesServiceConverter.applicationFormValuesToServices(formValues);\n\n    return [app, headlessService, services, service, claims];\n  }\n}\n\nexport default KubernetesApplicationConverter;\n","import _ from 'lodash-es';\nimport { KubernetesConfigMap, KubernetesPortainerAccessConfigMap } from 'Kubernetes/models/config-map/models';\nimport { KubernetesConfigMapCreatePayload, KubernetesConfigMapUpdatePayload } from 'Kubernetes/models/config-map/payloads';\nimport { KubernetesPortainerConfigurationOwnerLabel } from 'Kubernetes/models/configuration/models';\nimport { KubernetesConfigurationFormValuesEntry } from 'Kubernetes/models/configuration/formvalues';\n\nclass KubernetesConfigMapConverter {\n  static apiToPortainerAccessConfigMap(data) {\n    const res = new KubernetesPortainerAccessConfigMap();\n    res.Id = data.metadata.uid;\n    res.Data = data.data;\n    return res;\n  }\n\n  static createAccessPayload(data) {\n    const res = new KubernetesConfigMapCreatePayload();\n    _.unset(res, 'binaryData');\n    res.metadata.name = data.Name;\n    res.metadata.namespace = data.Namespace;\n    res.data = data.Data;\n    return res;\n  }\n\n  static updateAccessPayload(data) {\n    const res = KubernetesConfigMapConverter.createAccessPayload(data);\n    res.metadata.uid = data.Id;\n    return res;\n  }\n\n  /**\n   * API ConfigMap to front ConfigMap\n   */\n  static apiToConfigMap(data, yaml) {\n    const res = new KubernetesConfigMap();\n    res.Id = data.metadata.uid;\n    res.Name = data.metadata.name;\n    res.Namespace = data.metadata.namespace;\n    res.ConfigurationOwner = data.metadata.labels ? data.metadata.labels[KubernetesPortainerConfigurationOwnerLabel] : '';\n    res.CreationDate = data.metadata.creationTimestamp;\n    res.Yaml = yaml ? yaml.data : '';\n    res.Labels = data.metadata.labels;\n\n    res.Data = _.concat(\n      _.map(data.data, (value, key) => {\n        const entry = new KubernetesConfigurationFormValuesEntry();\n        entry.Key = key;\n        entry.Value = value;\n        return entry;\n      }),\n      _.map(data.binaryData, (value, key) => {\n        const entry = new KubernetesConfigurationFormValuesEntry();\n        entry.Key = key;\n        entry.Value = value;\n        entry.IsBinary = true;\n        return entry;\n      })\n    );\n\n    return res;\n  }\n\n  /**\n   * Generate a default ConfigMap Model\n   * with ID = 0 (showing it's a default)\n   * but setting his Namespace and Name\n   */\n  static defaultConfigMap(namespace, name) {\n    const res = new KubernetesConfigMap();\n    res.Name = name;\n    res.Namespace = namespace;\n    return res;\n  }\n\n  /**\n   * CREATE payload\n   */\n  static createPayload(data) {\n    const res = new KubernetesConfigMapCreatePayload();\n    res.metadata.name = data.Name;\n    res.metadata.namespace = data.Namespace;\n    const configurationOwner = _.truncate(data.ConfigurationOwner, { length: 63, omission: '' });\n    res.metadata.labels[KubernetesPortainerConfigurationOwnerLabel] = configurationOwner;\n\n    _.forEach(data.Data, (entry) => {\n      if (entry.IsBinary) {\n        res.binaryData[entry.Key] = entry.Value;\n      } else {\n        res.data[entry.Key] = entry.Value;\n      }\n    });\n    return res;\n  }\n\n  /**\n   * UPDATE payload\n   */\n  static updatePayload(data) {\n    const res = new KubernetesConfigMapUpdatePayload();\n    res.metadata.uid = data.Id;\n    res.metadata.name = data.Name;\n    res.metadata.namespace = data.Namespace;\n    res.metadata.labels = data.Labels || {};\n    res.metadata.labels[KubernetesPortainerConfigurationOwnerLabel] = data.ConfigurationOwner;\n    _.forEach(data.Data, (entry) => {\n      if (entry.IsBinary) {\n        res.binaryData[entry.Key] = entry.Value;\n      } else {\n        res.data[entry.Key] = entry.Value;\n      }\n    });\n    return res;\n  }\n\n  static configurationFormValuesToConfigMap(formValues) {\n    const res = new KubernetesConfigMap();\n    res.Id = formValues.Id;\n    res.Name = formValues.Name;\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.ConfigurationOwner = formValues.ConfigurationOwner;\n    res.Data = formValues.Data;\n    return res;\n  }\n}\n\nexport default KubernetesConfigMapConverter;\n","import _ from 'lodash-es';\nimport { KubernetesConfiguration, KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\n\nclass KubernetesConfigurationConverter {\n  static secretToConfiguration(secret) {\n    const res = new KubernetesConfiguration();\n    res.Kind = KubernetesConfigurationKinds.SECRET;\n    res.Id = secret.Id;\n    res.Name = secret.Name;\n    res.Type = secret.Type;\n    res.Namespace = secret.Namespace;\n    res.CreationDate = secret.CreationDate;\n    res.Yaml = secret.Yaml;\n    _.forEach(secret.Data, (entry) => {\n      res.Data[entry.Key] = entry.Value;\n    });\n    res.data = res.Data;\n    res.ConfigurationOwner = secret.ConfigurationOwner;\n    res.IsRegistrySecret = secret.IsRegistrySecret;\n    res.SecretType = secret.SecretType;\n    if (secret.Annotations) {\n      res.ServiceAccountName = secret.Annotations['kubernetes.io/service-account.name'];\n    }\n    res.Labels = secret.Labels;\n    return res;\n  }\n\n  static configMapToConfiguration(configMap) {\n    const res = new KubernetesConfiguration();\n    res.Kind = KubernetesConfigurationKinds.CONFIGMAP;\n    res.Id = configMap.Id;\n    res.Name = configMap.Name;\n    res.Namespace = configMap.Namespace;\n    res.CreationDate = configMap.CreationDate;\n    res.Yaml = configMap.Yaml;\n    _.forEach(configMap.Data, (entry) => {\n      res.Data[entry.Key] = entry.Value;\n    });\n    res.data = res.Data;\n    res.ConfigurationOwner = configMap.ConfigurationOwner;\n    res.Labels = configMap.Labels;\n    return res;\n  }\n}\n\nexport default KubernetesConfigurationConverter;\n","import * as JsonPatch from 'fast-json-patch';\nimport { KubernetesDaemonSet } from 'Kubernetes/models/daemon-set/models';\nimport { KubernetesDaemonSetCreatePayload } from 'Kubernetes/models/daemon-set/payloads';\nimport {\n  KubernetesPortainerApplicationStackNameLabel,\n  KubernetesPortainerApplicationNameLabel,\n  KubernetesPortainerApplicationNote,\n  KubernetesPortainerApplicationOwnerLabel,\n} from 'Kubernetes/models/application/models';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\nimport { buildImageFullURIFromModel } from '@/react/docker/images/utils';\n\nclass KubernetesDaemonSetConverter {\n  /**\n   * Generate KubernetesDaemonSet from KubernetesApplicationFormValues\n   * @param {KubernetesApplicationFormValues} formValues\n   */\n  static applicationFormValuesToDaemonSet(formValues, volumeClaims) {\n    const res = new KubernetesDaemonSet();\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.Name = formValues.Name;\n    if (formValues.StackName) {\n      res.StackName = formValues.StackName;\n    }\n    res.ApplicationOwner = formValues.ApplicationOwner;\n    res.ApplicationName = formValues.Name;\n    res.ImageModel = formValues.ImageModel;\n    res.CpuLimit = formValues.CpuLimit;\n    res.MemoryLimit = KubernetesResourceReservationHelper.bytesValue(formValues.MemoryLimit);\n    res.Env = KubernetesApplicationHelper.generateEnvFromEnvVariables(formValues.EnvironmentVariables);\n    KubernetesApplicationHelper.generateVolumesFromPersistentVolumClaims(res, volumeClaims);\n    KubernetesApplicationHelper.generateEnvOrVolumesFromConfigurations(res, formValues.ConfigMaps, formValues.Secrets);\n    KubernetesApplicationHelper.generateAffinityFromPlacements(res, formValues);\n    return res;\n  }\n\n  /**\n   * Generate CREATE payload from DaemonSet\n   * @param {KubernetesDaemonSetPayload} model DaemonSet to generate payload from\n   */\n  static createPayload(daemonSet) {\n    const payload = new KubernetesDaemonSetCreatePayload();\n    payload.metadata.name = daemonSet.Name;\n    payload.metadata.namespace = daemonSet.Namespace;\n    if (daemonSet.StackName) {\n      payload.metadata.labels[KubernetesPortainerApplicationStackNameLabel] = daemonSet.StackName;\n    }\n    payload.metadata.labels[KubernetesPortainerApplicationNameLabel] = daemonSet.ApplicationName;\n    payload.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = daemonSet.ApplicationOwner;\n    payload.metadata.annotations[KubernetesPortainerApplicationNote] = daemonSet.Note;\n    payload.spec.replicas = daemonSet.ReplicaCount;\n    payload.spec.selector.matchLabels.app = daemonSet.Name;\n    payload.spec.template.metadata.labels.app = daemonSet.Name;\n    payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = daemonSet.ApplicationName;\n    payload.spec.template.spec.containers[0].name = daemonSet.Name;\n    payload.spec.template.spec.containers[0].image = buildImageFullURIFromModel(daemonSet.ImageModel);\n    if (daemonSet.ImageModel.Registry && daemonSet.ImageModel.Registry.Authentication) {\n      payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${daemonSet.ImageModel.Registry.Id}` }];\n    }\n    payload.spec.template.spec.affinity = daemonSet.Affinity;\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].env', daemonSet.Env);\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].volumeMounts', daemonSet.VolumeMounts);\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.volumes', daemonSet.Volumes);\n    if (daemonSet.MemoryLimit) {\n      payload.spec.template.spec.containers[0].resources.limits.memory = daemonSet.MemoryLimit;\n      payload.spec.template.spec.containers[0].resources.requests.memory = daemonSet.MemoryLimit;\n    }\n    if (daemonSet.CpuLimit) {\n      payload.spec.template.spec.containers[0].resources.limits.cpu = daemonSet.CpuLimit;\n      payload.spec.template.spec.containers[0].resources.requests.cpu = daemonSet.CpuLimit;\n    }\n    if (!daemonSet.CpuLimit && !daemonSet.MemoryLimit) {\n      delete payload.spec.template.spec.containers[0].resources;\n    }\n    return payload;\n  }\n\n  static patchPayload(oldDaemonSet, newDaemonSet) {\n    const oldPayload = KubernetesDaemonSetConverter.createPayload(oldDaemonSet);\n    const newPayload = KubernetesDaemonSetConverter.createPayload(newDaemonSet);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nexport default KubernetesDaemonSetConverter;\n","import * as JsonPatch from 'fast-json-patch';\nimport { KubernetesDeployment } from 'Kubernetes/models/deployment/models';\nimport { KubernetesDeploymentCreatePayload } from 'Kubernetes/models/deployment/payloads';\nimport {\n  KubernetesPortainerApplicationStackNameLabel,\n  KubernetesPortainerApplicationNameLabel,\n  KubernetesPortainerApplicationOwnerLabel,\n  KubernetesPortainerApplicationNote,\n} from 'Kubernetes/models/application/models';\n\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\nimport { buildImageFullURIFromModel } from '@/react/docker/images/utils';\n\nclass KubernetesDeploymentConverter {\n  /**\n   * Generate KubernetesDeployment from KubernetesApplicationFormValues\n   * @param {KubernetesApplicationFormValues} formValues\n   */\n  static applicationFormValuesToDeployment(formValues, volumeClaims) {\n    const res = new KubernetesDeployment();\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.Name = formValues.Name;\n    if (formValues.StackName) {\n      res.StackName = formValues.StackName;\n    }\n    res.ApplicationOwner = formValues.ApplicationOwner;\n    res.ApplicationName = formValues.Name;\n    res.ReplicaCount = formValues.ReplicaCount;\n    res.ImageModel = formValues.ImageModel;\n    res.CpuLimit = formValues.CpuLimit;\n    res.MemoryLimit = KubernetesResourceReservationHelper.bytesValue(formValues.MemoryLimit);\n    res.Env = KubernetesApplicationHelper.generateEnvFromEnvVariables(formValues.EnvironmentVariables);\n    res.Containers = formValues.Containers;\n    KubernetesApplicationHelper.generateVolumesFromPersistentVolumClaims(res, volumeClaims);\n    KubernetesApplicationHelper.generateEnvOrVolumesFromConfigurations(res, formValues.ConfigMaps, formValues.Secrets);\n    KubernetesApplicationHelper.generateAffinityFromPlacements(res, formValues);\n    return res;\n  }\n\n  /**\n   * Generate CREATE payload from Deployment\n   * @param {KubernetesDeploymentPayload} model Deployment to genereate payload from\n   */\n  static createPayload(deployment) {\n    const payload = new KubernetesDeploymentCreatePayload();\n    payload.metadata.name = deployment.Name;\n    payload.metadata.namespace = deployment.Namespace;\n    if (deployment.StackName) {\n      payload.metadata.labels[KubernetesPortainerApplicationStackNameLabel] = deployment.StackName;\n    }\n    payload.metadata.labels[KubernetesPortainerApplicationNameLabel] = deployment.ApplicationName;\n    payload.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = deployment.ApplicationOwner;\n    payload.metadata.annotations[KubernetesPortainerApplicationNote] = deployment.Note;\n    payload.spec.replicas = deployment.ReplicaCount;\n    payload.spec.selector.matchLabels.app = deployment.Name;\n    payload.spec.template.metadata.labels.app = deployment.Name;\n    payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = deployment.ApplicationName;\n    payload.spec.template.spec.containers[0].name = deployment.Name;\n\n    if (deployment.ImageModel) {\n      payload.spec.template.spec.containers[0].image = buildImageFullURIFromModel(deployment.ImageModel);\n\n      if (deployment.ImageModel.Registry && deployment.ImageModel.Registry.Authentication) {\n        payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${deployment.ImageModel.Registry.Id}` }];\n      }\n    }\n\n    payload.spec.template.spec.affinity = deployment.Affinity;\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].env', deployment.Env);\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].volumeMounts', deployment.VolumeMounts);\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.volumes', deployment.Volumes);\n    if (deployment.MemoryLimit) {\n      payload.spec.template.spec.containers[0].resources.limits.memory = deployment.MemoryLimit;\n      payload.spec.template.spec.containers[0].resources.requests.memory = deployment.MemoryLimit;\n    }\n    if (deployment.CpuLimit) {\n      payload.spec.template.spec.containers[0].resources.limits.cpu = deployment.CpuLimit;\n      payload.spec.template.spec.containers[0].resources.requests.cpu = deployment.CpuLimit;\n    }\n    if (!deployment.CpuLimit && !deployment.MemoryLimit) {\n      delete payload.spec.template.spec.containers[0].resources;\n    }\n    return payload;\n  }\n\n  static patchPayload(oldDeployment, newDeployment) {\n    const oldPayload = KubernetesDeploymentConverter.createPayload(oldDeployment);\n    const newPayload = KubernetesDeploymentConverter.createPayload(newDeployment);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nexport default KubernetesDeploymentConverter;\n","import { KubernetesEvent } from 'Kubernetes/models/event/models';\n\nclass KubernetesEventConverter {\n  static apiToEvent(data) {\n    const res = new KubernetesEvent();\n    res.Id = data.metadata.uid;\n    res.Date = data.lastTimestamp || data.eventTime;\n    res.Type = data.type;\n    res.Message = data.message;\n    res.Involved = data.involvedObject;\n    return res;\n  }\n}\n\nexport default KubernetesEventConverter;\n","import _ from 'lodash-es';\nimport { KubernetesNamespace } from 'Kubernetes/models/namespace/models';\nimport { KubernetesNamespaceCreatePayload } from 'Kubernetes/models/namespace/payloads';\nimport {\n  KubernetesPortainerResourcePoolNameLabel,\n  KubernetesPortainerResourcePoolOwnerLabel,\n  KubernetesPortainerNamespaceSystemLabel,\n} from 'Kubernetes/models/resource-pool/models';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\n\nexport default class KubernetesNamespaceConverter {\n  static apiToNamespace(data, yaml) {\n    const res = new KubernetesNamespace();\n    res.Id = data.metadata.uid;\n    res.Name = data.metadata.name;\n    res.CreationDate = data.metadata.creationTimestamp;\n    res.Status = data.status.phase;\n    res.Yaml = yaml ? yaml.data : '';\n    res.ResourcePoolName = data.metadata.labels ? data.metadata.labels[KubernetesPortainerResourcePoolNameLabel] : '';\n    res.ResourcePoolOwner = data.metadata.labels ? data.metadata.labels[KubernetesPortainerResourcePoolOwnerLabel] : '';\n\n    res.IsSystem = KubernetesNamespaceHelper.isDefaultSystemNamespace(data.metadata.name);\n    if (data.metadata.labels) {\n      const systemLabel = data.metadata.labels[KubernetesPortainerNamespaceSystemLabel];\n      if (!_.isEmpty(systemLabel)) {\n        res.IsSystem = systemLabel === 'true';\n      }\n    }\n    return res;\n  }\n\n  static createPayload(namespace) {\n    const res = new KubernetesNamespaceCreatePayload();\n    res.metadata.name = namespace.Name;\n    res.metadata.labels[KubernetesPortainerResourcePoolNameLabel] = namespace.ResourcePoolName;\n\n    if (namespace.ResourcePoolOwner) {\n      const resourcePoolOwner = _.truncate(namespace.ResourcePoolOwner, { length: 63, omission: '' });\n      res.metadata.labels[KubernetesPortainerResourcePoolOwnerLabel] = resourcePoolOwner;\n    }\n    return res;\n  }\n}\n","import _ from 'lodash-es';\nimport * as JsonPatch from 'fast-json-patch';\n\nimport { KubernetesPersistentVolumeClaim } from 'Kubernetes/models/volume/models';\nimport { KubernetesPersistentVolumClaimCreatePayload } from 'Kubernetes/models/volume/payloads';\nimport { KubernetesPortainerApplicationOwnerLabel, KubernetesPortainerApplicationNameLabel } from 'Kubernetes/models/application/models';\n\nconst storageClassToPVCAccessModes = {\n  RWO: 'ReadWriteOnce',\n  RWX: 'ReadWriteMany',\n};\n\nclass KubernetesPersistentVolumeClaimConverter {\n  static apiToPersistentVolumeClaim(data, storageClasses, yaml) {\n    const res = new KubernetesPersistentVolumeClaim();\n    res.Id = data.metadata.uid;\n    res.Name = data.metadata.name;\n    res.Namespace = data.metadata.namespace;\n    res.CreationDate = data.metadata.creationTimestamp;\n    res.Storage = `${data.spec.resources.requests.storage}B`;\n    res.AccessModes = data.spec.accessModes || [];\n    res.storageClass = _.find(storageClasses, { Name: data.spec.storageClassName });\n    res.Yaml = yaml ? yaml.data : '';\n    res.ApplicationOwner = data.metadata.labels ? data.metadata.labels[KubernetesPortainerApplicationOwnerLabel] : '';\n    res.ApplicationName = data.metadata.labels ? data.metadata.labels[KubernetesPortainerApplicationNameLabel] : '';\n    return res;\n  }\n\n  /**\n   * Generate KubernetesPersistentVolumeClaim list from KubernetesApplicationFormValues\n   * @param {KubernetesApplicationFormValues} formValues\n   */\n  static applicationFormValuesToVolumeClaims(formValues) {\n    _.remove(formValues.PersistedFolders, (item) => item.needsDeletion);\n    const res = _.map(formValues.PersistedFolders, (item) => {\n      const pvc = new KubernetesPersistentVolumeClaim();\n      if (!_.isEmpty(item.existingVolume)) {\n        const existantPVC = item.existingVolume.PersistentVolumeClaim;\n        pvc.Name = existantPVC.Name;\n        if (item.persistentVolumeClaimName) {\n          pvc.PreviousName = item.persistentVolumeClaimName;\n        }\n        pvc.storageClass = existantPVC.storageClass;\n        pvc.Storage = existantPVC.Storage.charAt(0);\n        pvc.CreationDate = existantPVC.CreationDate;\n        pvc.Id = existantPVC.Id;\n      } else {\n        if (item.persistentVolumeClaimName) {\n          pvc.Name = item.persistentVolumeClaimName;\n          if (!item.useNewVolume) {\n            pvc.PreviousName = item.persistentVolumeClaimName;\n          }\n        } else {\n          pvc.Name = formValues.Name + '-' + pvc.Name;\n        }\n        pvc.Storage = '' + item.size + item.sizeUnit.charAt(0);\n        pvc.storageClass = item.storageClass;\n      }\n      pvc.MountPath = item.containerPath;\n      pvc.Namespace = formValues.ResourcePool.Namespace.Name;\n      pvc.ApplicationOwner = formValues.ApplicationOwner;\n      pvc.ApplicationName = formValues.Name;\n      return pvc;\n    });\n    return res;\n  }\n\n  static createPayload(pvc) {\n    const res = new KubernetesPersistentVolumClaimCreatePayload();\n    res.metadata.name = pvc.Name;\n    res.metadata.namespace = pvc.Namespace;\n    res.spec.resources.requests.storage = pvc.Storage;\n    res.spec.storageClassName = pvc.storageClass ? pvc.storageClass.Name : '';\n    const accessModes = pvc.storageClass && pvc.storageClass.AccessModes ? pvc.storageClass.AccessModes.map((accessMode) => storageClassToPVCAccessModes[accessMode]) : [];\n    res.spec.accessModes = accessModes;\n    res.metadata.labels.app = pvc.ApplicationName;\n    res.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = pvc.ApplicationOwner;\n    res.metadata.labels[KubernetesPortainerApplicationNameLabel] = pvc.ApplicationName;\n    return res;\n  }\n\n  static patchPayload(oldPVC, newPVC) {\n    const oldPayload = KubernetesPersistentVolumeClaimConverter.createPayload(oldPVC);\n    const newPayload = KubernetesPersistentVolumeClaimConverter.createPayload(newPVC);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nexport default KubernetesPersistentVolumeClaimConverter;\n","import _ from 'lodash-es';\n\nimport { KubernetesResourcePool } from 'Kubernetes/models/resource-pool/models';\nimport { KubernetesNamespace } from 'Kubernetes/models/namespace/models';\nimport { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';\nimport KubernetesResourceQuotaConverter from './resourceQuota';\n\nclass KubernetesResourcePoolConverter {\n  static apiToResourcePool(namespace) {\n    const res = new KubernetesResourcePool();\n    res.Namespace = namespace;\n    res.Yaml = namespace.Yaml;\n    return res;\n  }\n\n  static formValuesToResourcePool(formValues) {\n    const namespace = new KubernetesNamespace();\n    namespace.Name = formValues.Name;\n    namespace.ResourcePoolName = formValues.Name;\n    namespace.ResourcePoolOwner = formValues.Owner;\n    namespace.IsSystem = formValues.IsSystem;\n\n    const quota = KubernetesResourceQuotaConverter.resourcePoolFormValuesToResourceQuota(formValues);\n\n    const ingMap = _.map(formValues.IngressClasses, (c) => {\n      if (c.Selected) {\n        c.Namespace = namespace.Name;\n        return KubernetesIngressConverter.resourcePoolIngressClassFormValueToIngress(c);\n      }\n    });\n    const ingresses = _.without(ingMap, undefined);\n    const registries = _.map(formValues.Registries, (r) => {\n      if (!r.RegistryAccesses[formValues.EndpointId]) {\n        r.RegistryAccesses[formValues.EndpointId] = { Namespaces: [] };\n      }\n      if (!_.includes(r.RegistryAccesses[formValues.EndpointId].Namespaces, formValues.Name)) {\n        r.RegistryAccesses[formValues.EndpointId].Namespaces = [...r.RegistryAccesses[formValues.EndpointId].Namespaces, formValues.Name];\n      }\n      return r;\n    });\n    return [namespace, quota, ingresses, registries];\n  }\n}\n\nexport default KubernetesResourcePoolConverter;\n","import * as JsonPatch from 'fast-json-patch';\nimport filesizeParser from 'filesize-parser';\n\nimport {\n  KubernetesResourceQuota,\n  KubernetesPortainerResourceQuotaCPULimit,\n  KubernetesPortainerResourceQuotaMemoryLimit,\n  KubernetesPortainerResourceQuotaCPURequest,\n  KubernetesPortainerResourceQuotaMemoryRequest,\n  KubernetesResourceQuotaDefaults,\n} from 'Kubernetes/models/resource-quota/models';\nimport { KubernetesResourceQuotaCreatePayload } from 'Kubernetes/models/resource-quota/payloads';\nimport KubernetesResourceQuotaHelper from 'Kubernetes/helpers/resourceQuotaHelper';\nimport { KubernetesPortainerResourcePoolNameLabel, KubernetesPortainerResourcePoolOwnerLabel } from 'Kubernetes/models/resource-pool/models';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\nimport { KubernetesResourcePoolFormValues } from 'Kubernetes/models/resource-pool/formValues';\n\nclass KubernetesResourceQuotaConverter {\n  static apiToResourceQuota(data, yaml) {\n    const res = new KubernetesResourceQuota();\n    res.Id = data.metadata.uid;\n    res.Namespace = data.metadata.namespace;\n    res.Name = data.metadata.name;\n    res.CpuLimit = 0;\n    res.MemoryLimit = 0;\n    if (data.spec.hard && data.spec.hard[KubernetesPortainerResourceQuotaCPULimit]) {\n      res.CpuLimit = KubernetesResourceReservationHelper.parseCPU(data.spec.hard[KubernetesPortainerResourceQuotaCPULimit]);\n    }\n    if (data.spec.hard && data.spec.hard[KubernetesPortainerResourceQuotaMemoryLimit]) {\n      res.MemoryLimit = filesizeParser(data.spec.hard[KubernetesPortainerResourceQuotaMemoryLimit], { base: 10 });\n    }\n\n    res.MemoryLimitUsed = 0;\n    if (data.status.used && data.status.used[KubernetesPortainerResourceQuotaMemoryLimit]) {\n      res.MemoryLimitUsed = filesizeParser(data.status.used[KubernetesPortainerResourceQuotaMemoryLimit], { base: 10 });\n    }\n\n    res.CpuLimitUsed = 0;\n    if (data.status.used && data.status.used[KubernetesPortainerResourceQuotaCPULimit]) {\n      res.CpuLimitUsed = KubernetesResourceReservationHelper.parseCPU(data.status.used[KubernetesPortainerResourceQuotaCPULimit]);\n    }\n    res.Yaml = yaml ? yaml.data : '';\n    res.ResourcePoolName = data.metadata.labels ? data.metadata.labels[KubernetesPortainerResourcePoolNameLabel] : '';\n    res.ResourcePoolOwner = data.metadata.labels ? data.metadata.labels[KubernetesPortainerResourcePoolOwnerLabel] : '';\n    return res;\n  }\n\n  static createPayload(quota) {\n    const res = new KubernetesResourceQuotaCreatePayload();\n    res.metadata.name = KubernetesResourceQuotaHelper.generateResourceQuotaName(quota.Namespace);\n    res.metadata.namespace = quota.Namespace;\n    KubernetesCommonHelper.assignOrDeleteIfEmptyOrZero(res, `spec.hard['${KubernetesPortainerResourceQuotaCPURequest}']`, quota.CpuLimit);\n    KubernetesCommonHelper.assignOrDeleteIfEmptyOrZero(res, `spec.hard['${KubernetesPortainerResourceQuotaMemoryRequest}']`, quota.MemoryLimit);\n    KubernetesCommonHelper.assignOrDeleteIfEmptyOrZero(res, `spec.hard['${KubernetesPortainerResourceQuotaCPULimit}']`, quota.CpuLimit);\n    KubernetesCommonHelper.assignOrDeleteIfEmptyOrZero(res, `spec.hard['${KubernetesPortainerResourceQuotaMemoryLimit}']`, quota.MemoryLimit);\n    res.metadata.labels[KubernetesPortainerResourcePoolNameLabel] = quota.ResourcePoolName;\n    if (quota.ResourcePoolOwner) {\n      res.metadata.labels[KubernetesPortainerResourcePoolOwnerLabel] = quota.ResourcePoolOwner;\n    }\n    return res;\n  }\n\n  static updatePayload(quota) {\n    const res = KubernetesResourceQuotaConverter.createPayload(quota);\n    res.metadata.uid = quota.Id;\n    return res;\n  }\n\n  static patchPayload(oldQuota, newQuota) {\n    const oldPayload = KubernetesResourceQuotaConverter.createPayload(oldQuota);\n    const newPayload = KubernetesResourceQuotaConverter.createPayload(newQuota);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n\n  static quotaToResourcePoolFormValues(quota) {\n    const res = new KubernetesResourcePoolFormValues(KubernetesResourceQuotaDefaults);\n    res.Name = quota.Namespace;\n    res.CpuLimit = quota.CpuLimit;\n    res.MemoryLimit = KubernetesResourceReservationHelper.megaBytesValue(quota.MemoryLimit);\n    if (res.CpuLimit || res.MemoryLimit) {\n      res.HasQuota = true;\n    }\n    res.StorageClasses = quota.StorageRequests;\n    return res;\n  }\n\n  static resourcePoolFormValuesToResourceQuota(formValues) {\n    if (formValues.HasQuota) {\n      const quota = new KubernetesResourceQuota(formValues.Name);\n      if (formValues.HasQuota) {\n        quota.CpuLimit = formValues.CpuLimit;\n        quota.MemoryLimit = KubernetesResourceReservationHelper.bytesValue(formValues.MemoryLimit);\n      }\n      quota.ResourcePoolName = formValues.Name;\n      quota.ResourcePoolOwner = formValues.Owner;\n      return quota;\n    }\n  }\n}\n\nexport default KubernetesResourceQuotaConverter;\n","import _ from 'lodash-es';\nimport { KubernetesSecretCreatePayload, KubernetesSecretUpdatePayload } from 'Kubernetes/models/secret/payloads';\nimport { KubernetesApplicationSecret } from 'Kubernetes/models/secret/models';\nimport { KubernetesPortainerConfigurationDataAnnotation } from 'Kubernetes/models/configuration/models';\nimport { KubernetesPortainerConfigurationOwnerLabel } from 'Kubernetes/models/configuration/models';\nimport { KubernetesConfigurationFormValuesEntry } from 'Kubernetes/models/configuration/formvalues';\nimport { KubernetesSecretTypeOptions } from 'Kubernetes/models/configuration/models';\nclass KubernetesSecretConverter {\n  static createPayload(secret) {\n    const res = new KubernetesSecretCreatePayload();\n    res.metadata.name = secret.Name;\n    res.metadata.namespace = secret.Namespace;\n    res.type = secret.Type;\n    const configurationOwner = _.truncate(secret.ConfigurationOwner, { length: 63, omission: '' });\n    res.metadata.labels[KubernetesPortainerConfigurationOwnerLabel] = configurationOwner;\n\n    let annotation = '';\n    _.forEach(secret.Data, (entry) => {\n      if (entry.IsBinary) {\n        res.data[entry.Key] = entry.Value;\n        annotation += annotation !== '' ? '|' + entry.Key : entry.Key;\n      } else {\n        res.stringData[entry.Key] = entry.Value;\n      }\n    });\n    if (annotation !== '') {\n      res.metadata.annotations[KubernetesPortainerConfigurationDataAnnotation] = annotation;\n    }\n\n    _.forEach(secret.Annotations, (entry) => {\n      res.metadata.annotations[entry.name] = entry.value;\n    });\n\n    return res;\n  }\n\n  static updatePayload(secret) {\n    const res = new KubernetesSecretUpdatePayload();\n    res.metadata.name = secret.Name;\n    res.metadata.namespace = secret.Namespace;\n    res.type = secret.Type;\n    res.metadata.labels = secret.Labels || {};\n    res.metadata.labels[KubernetesPortainerConfigurationOwnerLabel] = secret.ConfigurationOwner;\n\n    let annotation = '';\n    _.forEach(secret.Data, (entry) => {\n      if (entry.IsBinary) {\n        res.data[entry.Key] = entry.Value;\n        annotation += annotation !== '' ? '|' + entry.Key : entry.Key;\n      } else {\n        res.stringData[entry.Key] = entry.Value;\n      }\n    });\n    if (annotation !== '') {\n      res.metadata.annotations[KubernetesPortainerConfigurationDataAnnotation] = annotation;\n    }\n\n    _.forEach(secret.Annotations, (entry) => {\n      res.metadata.annotations[entry.name] = entry.value;\n    });\n\n    return res;\n  }\n\n  static apiToSecret(payload, yaml) {\n    const res = new KubernetesApplicationSecret();\n    res.Id = payload.metadata.uid;\n    res.Name = payload.metadata.name;\n    res.Namespace = payload.metadata.namespace;\n    res.Type = payload.type;\n    res.Labels = payload.metadata.labels || {};\n    res.ConfigurationOwner = payload.metadata.labels ? payload.metadata.labels[KubernetesPortainerConfigurationOwnerLabel] : '';\n    res.CreationDate = payload.metadata.creationTimestamp;\n    res.Annotations = payload.metadata.annotations;\n\n    res.IsRegistrySecret = payload.metadata.annotations && !!payload.metadata.annotations['portainer.io/registry.id'];\n\n    res.Yaml = yaml ? yaml.data : '';\n\n    res.SecretType = payload.type;\n\n    res.Data = _.map(payload.data, (value, key) => {\n      const annotations = payload.metadata.annotations ? payload.metadata.annotations[KubernetesPortainerConfigurationDataAnnotation] : '';\n      const entry = new KubernetesConfigurationFormValuesEntry();\n      entry.Key = key;\n      entry.IsBinary = _.includes(annotations, entry.Key);\n\n      if (!entry.IsBinary) {\n        entry.Value = atob(value);\n      } else {\n        entry.Value = value;\n      }\n      return entry;\n    });\n    res.data = res.Data;\n\n    return res;\n  }\n\n  static configurationFormValuesToSecret(formValues) {\n    const res = new KubernetesApplicationSecret();\n    res.Name = formValues.Name;\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.Type = formValues.Type;\n    res.ConfigurationOwner = formValues.ConfigurationOwner;\n    res.Data = formValues.Data;\n\n    if (formValues.Type === KubernetesSecretTypeOptions.CUSTOM.value) {\n      res.Type = formValues.customType;\n    }\n    if (formValues.Type === KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value) {\n      res.Annotations = [{ name: 'kubernetes.io/service-account.name', value: formValues.ServiceAccountName }];\n    }\n    return res;\n  }\n}\n\nexport default KubernetesSecretConverter;\n","import _ from 'lodash-es';\nimport * as JsonPatch from 'fast-json-patch';\n\nimport { KubernetesServiceCreatePayload } from 'Kubernetes/models/service/payloads';\nimport {\n  KubernetesPortainerApplicationNameLabel,\n  KubernetesPortainerApplicationOwnerLabel,\n  KubernetesPortainerApplicationStackNameLabel,\n} from 'Kubernetes/models/application/models';\nimport { KubernetesService, KubernetesServiceHeadlessClusterIP, KubernetesServicePort, KubernetesServiceTypes } from 'Kubernetes/models/service/models';\nimport KubernetesServiceHelper from 'Kubernetes/helpers/serviceHelper';\n\nfunction _publishedPortToServicePort(formValues, publishedPort, type) {\n  if (publishedPort.IsNew || !publishedPort.NeedsDeletion) {\n    const name = formValues.Name;\n    const res = new KubernetesServicePort();\n    res.name = _.toLower(name + '-' + publishedPort.ContainerPort + '-' + publishedPort.Protocol);\n    res.port = type === KubernetesServiceTypes.LOAD_BALANCER ? publishedPort.LoadBalancerPort : publishedPort.ContainerPort;\n    res.targetPort = publishedPort.ContainerPort;\n    res.protocol = publishedPort.Protocol;\n    if (type === KubernetesServiceTypes.NODE_PORT && publishedPort.NodePort) {\n      res.nodePort = publishedPort.NodePort;\n    } else if (type === KubernetesServiceTypes.LOAD_BALANCER && publishedPort.LoadBalancerNodePort) {\n      res.nodePort = publishedPort.LoadBalancerNodePort;\n    } else {\n      delete res.nodePort;\n    }\n    return res;\n  }\n}\n\nclass KubernetesServiceConverter {\n  /**\n   * Generate KubernetesService from KubernetesApplicationFormValues\n   * @param {KubernetesApplicationFormValues} formValues\n   */\n  static applicationFormValuesToService(formValues) {\n    const res = new KubernetesService();\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.Name = formValues.Name;\n    res.StackName = formValues.StackName ? formValues.StackName : formValues.Name;\n    res.ApplicationOwner = formValues.ApplicationOwner;\n    res.ApplicationName = formValues.Name;\n    res.Type = formValues.PublishingType;\n    const ports = _.map(formValues.PublishedPorts, (item) => _publishedPortToServicePort(formValues, item, res.Type));\n    res.Ports = _.uniqBy(_.without(ports, undefined), (p) => p.targetPort + p.protocol);\n    return res;\n  }\n\n  static applicationFormValuesToServices(formValues) {\n    let services = [];\n    formValues.Services.forEach(function (service) {\n      const res = new KubernetesService();\n      res.Namespace = formValues.ResourcePool.Namespace.Name;\n      res.Name = service.Name;\n      res.StackName = formValues.StackName ? formValues.StackName : formValues.Name;\n      res.ApplicationOwner = formValues.ApplicationOwner;\n      res.ApplicationName = formValues.Name;\n      res.Type = service.Type;\n      res.Ingress = service.Ingress;\n\n      if (service.Selector !== undefined) {\n        res.Selector = service.Selector;\n      } else {\n        res.Selector = {\n          app: formValues.Name,\n        };\n      }\n\n      let ports = [];\n      service.Ports.forEach(function (port, index) {\n        const res = new KubernetesServicePort();\n        res.name = 'port-' + index;\n        res.port = port.port;\n        if (port.nodePort) {\n          res.nodePort = port.nodePort;\n        }\n        res.protocol = port.protocol;\n        res.targetPort = port.targetPort;\n        res.ingress = port.ingress;\n        ports.push(res);\n      });\n      res.Ports = ports;\n\n      services.push(res);\n    });\n    return services;\n  }\n\n  static applicationFormValuesToHeadlessService(formValues) {\n    const res = KubernetesServiceConverter.applicationFormValuesToService(formValues);\n    res.Name = KubernetesServiceHelper.generateHeadlessServiceName(formValues.Name);\n    res.Headless = true;\n    res.Selector = {\n      app: formValues.Name,\n    };\n    return res;\n  }\n\n  /**\n   * Generate CREATE payload from Service\n   * @param {KubernetesService} model Service to genereate payload from\n   */\n  static createPayload(service) {\n    const payload = new KubernetesServiceCreatePayload();\n    payload.metadata.name = service.Name;\n    payload.metadata.namespace = service.Namespace;\n    payload.metadata.labels[KubernetesPortainerApplicationStackNameLabel] = service.StackName;\n    payload.metadata.labels[KubernetesPortainerApplicationNameLabel] = service.ApplicationName;\n    payload.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = service.ApplicationOwner;\n\n    payload.spec.ports = service.Ports;\n    payload.spec.selector = service.Selector;\n    if (service.Headless) {\n      payload.spec.clusterIP = KubernetesServiceHeadlessClusterIP;\n      delete payload.spec.ports;\n    } else if (service.Type) {\n      payload.spec.type = service.Type;\n    }\n    return payload;\n  }\n\n  static patchPayload(oldService, newService) {\n    const oldPayload = KubernetesServiceConverter.createPayload(oldService);\n    const newPayload = KubernetesServiceConverter.createPayload(newService);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nexport default KubernetesServiceConverter;\n","import _ from 'lodash-es';\nimport * as JsonPatch from 'fast-json-patch';\n\nimport { KubernetesStatefulSet } from 'Kubernetes/models/stateful-set/models';\nimport { KubernetesStatefulSetCreatePayload } from 'Kubernetes/models/stateful-set/payloads';\nimport {\n  KubernetesPortainerApplicationStackNameLabel,\n  KubernetesPortainerApplicationNameLabel,\n  KubernetesPortainerApplicationOwnerLabel,\n  KubernetesPortainerApplicationNote,\n} from 'Kubernetes/models/application/models';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\nimport { buildImageFullURIFromModel } from '@/react/docker/images/utils';\nimport KubernetesPersistentVolumeClaimConverter from './persistentVolumeClaim';\n\nclass KubernetesStatefulSetConverter {\n  /**\n   * Generate KubernetesStatefulSet from KubernetesApplicationFormValues\n   * @param {KubernetesApplicationFormValues} formValues\n   */\n  static applicationFormValuesToStatefulSet(formValues, volumeClaims) {\n    const res = new KubernetesStatefulSet();\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.Name = formValues.Name;\n    if (formValues.StackName) {\n      res.StackName = formValues.StackName;\n    }\n    res.ApplicationOwner = formValues.ApplicationOwner;\n    res.ApplicationName = formValues.Name;\n    res.ReplicaCount = formValues.ReplicaCount;\n    res.ImageModel = formValues.ImageModel;\n    res.CpuLimit = formValues.CpuLimit;\n    res.MemoryLimit = KubernetesResourceReservationHelper.bytesValue(formValues.MemoryLimit);\n    res.Env = KubernetesApplicationHelper.generateEnvFromEnvVariables(formValues.EnvironmentVariables);\n    KubernetesApplicationHelper.generateVolumesFromPersistentVolumClaims(res, volumeClaims);\n    KubernetesApplicationHelper.generateEnvOrVolumesFromConfigurations(res, formValues.ConfigMaps, formValues.Secrets);\n    KubernetesApplicationHelper.generateAffinityFromPlacements(res, formValues);\n    return res;\n  }\n\n  /**\n   * Generate CREATE payload from StatefulSet\n   * @param {KubernetesStatefulSetPayload} model StatefulSet to genereate payload from\n   */\n  static createPayload(statefulSet) {\n    const payload = new KubernetesStatefulSetCreatePayload();\n    payload.metadata.name = statefulSet.Name;\n    payload.metadata.namespace = statefulSet.Namespace;\n    if (statefulSet.StackName) {\n      payload.metadata.labels[KubernetesPortainerApplicationStackNameLabel] = statefulSet.StackName;\n    }\n    payload.metadata.labels[KubernetesPortainerApplicationNameLabel] = statefulSet.ApplicationName;\n    payload.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = statefulSet.ApplicationOwner;\n    payload.metadata.annotations[KubernetesPortainerApplicationNote] = statefulSet.Note;\n    payload.spec.replicas = statefulSet.ReplicaCount;\n    payload.spec.serviceName = statefulSet.ServiceName;\n    payload.spec.selector.matchLabels.app = statefulSet.Name;\n    payload.spec.volumeClaimTemplates = _.map(statefulSet.VolumeClaims, (item) => KubernetesPersistentVolumeClaimConverter.createPayload(item));\n    payload.spec.template.metadata.labels.app = statefulSet.Name;\n    payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = statefulSet.ApplicationName;\n    payload.spec.template.spec.containers[0].name = statefulSet.Name;\n    if (statefulSet.ImageModel.Image) {\n      payload.spec.template.spec.containers[0].image = buildImageFullURIFromModel(statefulSet.ImageModel);\n      if (statefulSet.ImageModel.Registry && statefulSet.ImageModel.Registry.Authentication) {\n        payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${statefulSet.ImageModel.Registry.Id}` }];\n      }\n    }\n    payload.spec.template.spec.affinity = statefulSet.Affinity;\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].env', statefulSet.Env);\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].volumeMounts', statefulSet.VolumeMounts);\n    KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.volumes', statefulSet.Volumes);\n    if (statefulSet.MemoryLimit) {\n      payload.spec.template.spec.containers[0].resources.limits.memory = statefulSet.MemoryLimit;\n      payload.spec.template.spec.containers[0].resources.requests.memory = statefulSet.MemoryLimit;\n    }\n    if (statefulSet.CpuLimit) {\n      payload.spec.template.spec.containers[0].resources.limits.cpu = statefulSet.CpuLimit;\n      payload.spec.template.spec.containers[0].resources.requests.cpu = statefulSet.CpuLimit;\n    }\n    if (!statefulSet.CpuLimit && !statefulSet.MemoryLimit) {\n      delete payload.spec.template.spec.containers[0].resources;\n    }\n    return payload;\n  }\n\n  static patchPayload(oldSFS, newSFS) {\n    const oldPayload = KubernetesStatefulSetConverter.createPayload(oldSFS);\n    const newPayload = KubernetesStatefulSetConverter.createPayload(newSFS);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nexport default KubernetesStatefulSetConverter;\n","import * as JsonPatch from 'fast-json-patch';\n\nimport { KubernetesStorageClass } from 'Kubernetes/models/storage-class/models';\nimport { KubernetesStorageClassCreatePayload } from 'Kubernetes/models/storage-class/payload';\n\nclass KubernetesStorageClassConverter {\n  /**\n   * API storageClass to front storageClass\n   */\n  static apiToStorageClass(data) {\n    const res = new KubernetesStorageClass();\n    res.Name = data.metadata.name;\n    res.Provisioner = data.provisioner;\n    res.AllowVolumeExpansion = data.allowVolumeExpansion;\n    return res;\n  }\n\n  static createPayload(storageClass) {\n    const res = new KubernetesStorageClassCreatePayload();\n    res.metadata.name = storageClass.Name;\n    res.provisioner = storageClass.Provisioner;\n    res.allowVolumeExpansion = storageClass.AllowVolumeExpansion;\n    return res;\n  }\n\n  static patchPayload(oldStorageClass, newStorageClass) {\n    const oldPayload = KubernetesStorageClassConverter.createPayload(oldStorageClass);\n    const newPayload = KubernetesStorageClassConverter.createPayload(newStorageClass);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nexport default KubernetesStorageClassConverter;\n","import { KubernetesVolume } from 'Kubernetes/models/volume/models';\n\nclass KubernetesVolumeConverter {\n  static pvcToVolume(claim, pool) {\n    const res = new KubernetesVolume();\n    res.PersistentVolumeClaim = claim;\n    res.ResourcePool = pool;\n    return res;\n  }\n}\n\nexport default KubernetesVolumeConverter;\n","import angular from 'angular';\n\nimport { kubeCustomTemplatesView } from './kube-custom-templates-view';\n\nexport default angular.module('portainer.kubernetes.custom-templates', []).config(config).component('kubeCustomTemplatesView', kubeCustomTemplatesView).name;\n\nfunction config($stateRegistryProvider) {\n  const templates = {\n    name: 'kubernetes.templates',\n    url: '/templates',\n    abstract: true,\n  };\n\n  const customTemplates = {\n    name: 'kubernetes.templates.custom',\n    url: '/custom',\n\n    views: {\n      'content@': {\n        component: 'kubeCustomTemplatesView',\n      },\n    },\n    data: {\n      docs: '/user/kubernetes/templates',\n    },\n  };\n\n  const customTemplatesNew = {\n    name: 'kubernetes.templates.custom.new',\n    url: '/new?fileContent',\n\n    views: {\n      'content@': {\n        component: 'createCustomTemplatesView',\n      },\n    },\n    params: {\n      fileContent: '',\n    },\n    data: {\n      docs: '/user/kubernetes/templates/add',\n    },\n  };\n\n  const customTemplatesEdit = {\n    name: 'kubernetes.templates.custom.edit',\n    url: '/:id',\n\n    views: {\n      'content@': {\n        component: 'editCustomTemplatesView',\n      },\n    },\n  };\n\n  $stateRegistryProvider.register(templates);\n  $stateRegistryProvider.register(customTemplates);\n  $stateRegistryProvider.register(customTemplatesNew);\n  $stateRegistryProvider.register(customTemplatesEdit);\n}\n","const autoNgTemplateLoaderTemplate1 = require('./kube-custom-templates-view.html');\n\nimport controller from './kube-custom-templates-view.controller.js';\n\nexport const kubeCustomTemplatesView = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n};\n","import _ from 'lodash-es';\nimport { confirmDelete } from '@@/modals/confirm';\n\nexport default class KubeCustomTemplatesViewController {\n  /* @ngInject */\n  constructor($async, $state, Authentication, CustomTemplateService, FormValidator, Notifications) {\n    Object.assign(this, { $async, $state, Authentication, CustomTemplateService, FormValidator, Notifications });\n\n    this.state = {\n      selectedTemplate: null,\n      formValidationError: '',\n      actionInProgress: false,\n    };\n\n    this.currentUser = {\n      isAdmin: false,\n      id: null,\n    };\n\n    this.isEditAllowed = this.isEditAllowed.bind(this);\n    this.getTemplates = this.getTemplates.bind(this);\n    this.validateForm = this.validateForm.bind(this);\n    this.confirmDelete = this.confirmDelete.bind(this);\n    this.selectTemplate = this.selectTemplate.bind(this);\n  }\n\n  selectTemplate(templateId) {\n    this.$state.go('kubernetes.deploy', { templateId });\n  }\n\n  isEditAllowed(template) {\n    // todo - check if current user is admin/endpointadmin/owner\n    return this.currentUser.isAdmin || this.currentUser.id === template.CreatedByUserId;\n  }\n\n  getTemplates() {\n    return this.$async(async () => {\n      try {\n        const templates = await this.CustomTemplateService.customTemplates(3);\n        this.templates = templates.filter((t) => !t.EdgeTemplate);\n      } catch (err) {\n        this.Notifications.error('Failed loading templates', err, 'Unable to load custom templates');\n      }\n    });\n  }\n\n  validateForm(accessControlData, isAdmin) {\n    this.state.formValidationError = '';\n    const error = this.FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n    if (error) {\n      this.state.formValidationError = error;\n      return false;\n    }\n    return true;\n  }\n\n  confirmDelete(templateId) {\n    return this.$async(async () => {\n      const confirmed = await confirmDelete('Are you sure that you want to delete this template?');\n      if (!confirmed) {\n        return;\n      }\n\n      try {\n        var template = _.find(this.templates, { Id: templateId });\n        await this.CustomTemplateService.remove(templateId);\n        this.Notifications.success('Template successfully deleted', template && template.Title);\n        this.templates = this.templates.filter((template) => template.Id !== templateId);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Failed to delete template');\n      }\n    });\n  }\n\n  $onInit() {\n    this.getTemplates();\n\n    this.currentUser.isAdmin = this.Authentication.isAdmin();\n    const user = this.Authentication.getUserDetails();\n    this.currentUser.id = user.ID;\n  }\n}\n","import _ from 'lodash-es';\nimport { KubernetesEndpoint, KubernetesEndpointAnnotationLeader, KubernetesEndpointSubset } from 'Kubernetes/endpoint/models';\n\nclass KubernetesEndpointConverter {\n  static apiToEndpoint(data) {\n    const res = new KubernetesEndpoint();\n    res.Id = data.metadata.uid;\n    res.Name = data.metadata.name;\n    res.Namespace = data.metadata.namespace;\n    const leaderAnnotation = data.metadata.annotations ? data.metadata.annotations[KubernetesEndpointAnnotationLeader] : '';\n    if (leaderAnnotation) {\n      const parsedJson = JSON.parse(leaderAnnotation);\n      const split = _.split(parsedJson.holderIdentity, '_');\n      res.HolderIdentity = split[0];\n    }\n\n    if (data.subsets) {\n      res.Subsets = _.map(data.subsets, (item) => {\n        const subset = new KubernetesEndpointSubset();\n        subset.Ips = _.map(item.addresses, 'ip');\n        const port = _.find(item.ports, { name: 'https' });\n        subset.Port = port ? port.port : undefined;\n        return subset;\n      });\n    }\n    return res;\n  }\n}\n\nexport default KubernetesEndpointConverter;\n","export const KubernetesEndpointAnnotationLeader = 'control-plane.alpha.kubernetes.io/leader';\n\n/**\n * KubernetesEndpoint Model\n */\nconst _KubernetesEndpoint = Object.freeze({\n  Id: '',\n  Name: '',\n  Namespace: '',\n  HolderIdentity: '',\n  Subsets: [],\n});\n\nexport class KubernetesEndpoint {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesEndpoint)));\n  }\n}\n\nconst _KubernetesEndpointSubset = Object.freeze({\n  Ips: [],\n  Port: 0,\n});\n\nexport class KubernetesEndpointSubset {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesEndpointSubset)));\n  }\n}\n","angular.module('portainer.kubernetes').factory('KubernetesEndpoints', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesEndpointsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/endpoints/:id';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n        }\n      );\n    };\n  },\n]);\n","import _ from 'lodash-es';\nimport angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport KubernetesEndpointConverter from 'Kubernetes/endpoint/converter';\n\nclass KubernetesEndpointService {\n  /* @ngInject */\n  constructor($async, KubernetesEndpoints) {\n    this.$async = $async;\n    this.KubernetesEndpoints = KubernetesEndpoints;\n\n    this.getAllAsync = this.getAllAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesEndpoints(namespace).get().$promise;\n      return _.map(data.items, (item) => KubernetesEndpointConverter.apiToEndpoint(item));\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve environments', err);\n    }\n  }\n\n  get(namespace) {\n    return this.$async(this.getAllAsync, namespace);\n  }\n}\n\nexport default KubernetesEndpointService;\nangular.module('portainer.kubernetes').service('KubernetesEndpointService', KubernetesEndpointService);\n","import _ from 'lodash-es';\nimport { nodeAffinityValues } from './application';\n\nangular\n  .module('portainer.kubernetes')\n  .filter('kubernetesApplicationCPUValue', function () {\n    'use strict';\n    return function (value) {\n      return _.round(value, 2);\n    };\n  })\n  .filter('kubernetesApplicationDataAccessPolicyIcon', function () {\n    'use strict';\n    return function (value) {\n      switch (value) {\n        case 'Isolated':\n          return 'boxes';\n        case 'Shared':\n          return 'box';\n      }\n    };\n  })\n  .filter('kubernetesApplicationDataAccessPolicyTooltip', function () {\n    'use strict';\n    return function (value) {\n      switch (value) {\n        case 'Isolated':\n          return 'All the instances of this application are using their own data.';\n        case 'Shared':\n          return 'All the instances of this application are sharing the same data.';\n      }\n    };\n  })\n  .filter('kubernetesApplicationConstraintNodeAffinityValue', function () {\n    'use strict';\n    return nodeAffinityValues;\n  })\n  .filter('kubernetesNodeLabelHumanReadbleText', function () {\n    'use strict';\n    return function (text) {\n      const values = {\n        'kubernetes.io/os': 'Operating system',\n        'kubernetes.io/arch': 'Architecture',\n        'kubernetes.io/hostname': 'Node',\n      };\n      return values[text] || text;\n    };\n  })\n  .filter('kubernetesApplicationIngressEmptyHostname', function () {\n    'use strict';\n    return function (value) {\n      if (value === '') {\n        return '<use IP>';\n      } else {\n        return value;\n      }\n    };\n  });\n","import { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\n\nangular.module('portainer.kubernetes').filter('kubernetesConfigurationKindText', function () {\n  'use strict';\n  return function (type) {\n    switch (type) {\n      case KubernetesConfigurationKinds.SECRET:\n        return 'Secret';\n      case KubernetesConfigurationKinds.CONFIGMAP:\n        return 'ConfigMap';\n    }\n  };\n});\n","import _ from 'lodash-es';\n\nangular.module('portainer.kubernetes').filter('kubernetesEventTypeColor', function () {\n  'use strict';\n  return function (text) {\n    var status = _.toLower(text);\n    switch (status) {\n      case 'normal':\n        return 'info';\n      case 'warning':\n        return 'warning';\n      default:\n        return 'danger';\n    }\n  };\n});\n","angular.module('portainer.kubernetes').filter('kubernetesUsageLevelInfo', function () {\n  return function (usage) {\n    if (usage >= 80) {\n      return 'danger';\n    } else if (usage > 50 && usage < 80) {\n      return 'warning';\n    } else {\n      return 'success';\n    }\n  };\n});\n","import angular from 'angular';\n\nangular.module('portainer.kubernetes').factory('HelmFactory', HelmFactory);\n\n/* @ngInject */\nfunction HelmFactory($resource, API_ENDPOINT_ENDPOINTS, API_ENDPOINT_USERS) {\n  const helmUrl = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/helm';\n  const templatesUrl = 'api/templates/helm';\n  const userHelmUrl = API_ENDPOINT_USERS + '/:userId/helm';\n\n  return $resource(\n    helmUrl,\n    {},\n    {\n      templates: {\n        url: templatesUrl,\n        method: 'GET',\n        params: { repo: '@repo' },\n        cache: true,\n      },\n      show: {\n        url: `${templatesUrl}/:type`,\n        method: 'GET',\n        params: { repo: '@repo', chart: '@chart' },\n        transformResponse: function (data) {\n          return { values: data };\n        },\n      },\n      getHelmRepositories: {\n        method: 'GET',\n        url: `${userHelmUrl}/repositories`,\n      },\n      addHelmRepository: {\n        method: 'POST',\n        url: `${userHelmUrl}/repositories`,\n      },\n      list: {\n        method: 'GET',\n        isArray: true,\n        params: { namespace: '@namespace', selector: '@selector', filter: '@filter', output: '@output' },\n      },\n      install: { method: 'POST' },\n      uninstall: {\n        url: `${helmUrl}/:release`,\n        method: 'DELETE',\n        params: { namespace: '@namespace' },\n      },\n    }\n  );\n}\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\n\nangular.module('portainer.kubernetes').factory('HelmService', HelmService);\n\n/* @ngInject */\nexport function HelmService(HelmFactory) {\n  return {\n    search,\n    values,\n    getHelmRepositories,\n    addHelmRepository,\n    install,\n    uninstall,\n    listReleases,\n  };\n\n  /**\n   * @description: Searches for all helm charts in a helm repo\n   * @param {string} repo - repo url to search charts for\n   * @returns {Promise} - Resolves with `index.yaml` of helm charts for a repo\n   * @throws {PortainerError} - Rejects with error if searching for the `index.yaml` fails\n   */\n  async function search(repo) {\n    try {\n      return await HelmFactory.templates({ repo }).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve helm charts', err);\n    }\n  }\n\n  /**\n   * @description: Show values helm of a helm chart, this basically runs `helm show values`\n   * @param {string} repo - repo url to search charts values for\n   * @param {string} chart - chart within the repo to retrieve default values\n   * @returns {Promise} - Resolves with `values.yaml` of helm chart values for a repo\n   * @throws {PortainerError} - Rejects with error if helm show fails\n   */\n  async function values(repo, chart) {\n    try {\n      return await HelmFactory.show({ repo, chart, type: 'values' }).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve values from chart', err);\n    }\n  }\n\n  /**\n   * @description: Get a list of all the helm repositories available for the current user\n   * @returns {Promise} - Resolves with an object containing list of user helm repos and default/global settings helm repo\n   * @throws {PortainerError} - Rejects with error if helm show fails\n   */\n  async function getHelmRepositories(userId) {\n    return await HelmFactory.getHelmRepositories({ userId }).$promise;\n  }\n\n  /**\n   * @description: Adds a helm repo for the calling user\n   * @param {Object} payload - helm repo url to add for the user\n   * @returns {Promise} - Resolves with `values.yaml` of helm chart values for a repo\n   * @throws {PortainerError} - Rejects with error if helm show fails\n   */\n  async function addHelmRepository(endpointId, payload) {\n    return await HelmFactory.addHelmRepository({ endpointId }, payload).$promise;\n  }\n\n  /**\n   * @description: Installs a helm chart, this basically runs `helm install`\n   * @returns {Promise} - Resolves with `values.yaml` of helm chart values for a repo\n   * @throws {PortainerError} - Rejects with error if helm show fails\n   */\n  async function install(endpointId, payload) {\n    return await HelmFactory.install({ endpointId }, payload).$promise;\n  }\n\n  /**\n   * @description: Uninstall a helm chart, this basically runs `helm uninstall`\n   * @param {Object} options - Options object, release `Name` is the only required option\n   * @throws {PortainerError} - Rejects with error if helm show fails\n   */\n  async function uninstall(endpointId, { Name, ResourcePool }) {\n    try {\n      await HelmFactory.uninstall({ endpointId, release: Name, namespace: ResourcePool }).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to delete release', err);\n    }\n  }\n\n  /**\n   * @description: List all helm releases based on passed in options, this basically runs `helm list`\n   * @param {Object} options - Supported CLI flags to pass to Helm (binary) - flags to `helm list`\n   * @returns {Promise} - Resolves with list of helm releases\n   * @throws {PortainerError} - Rejects with error if helm list fails\n   */\n  async function listReleases(endpointId, { namespace, selector, filter, output }) {\n    try {\n      const releases = await HelmFactory.list({ endpointId, selector, namespace, filter, output }).$promise;\n      return releases;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve release list', err);\n    }\n  }\n}\n","import _ from 'lodash-es';\nimport { KubernetesPortMapping, KubernetesPortMappingPort } from 'Kubernetes/models/port/models';\nimport { KubernetesService, KubernetesServicePort, KubernetesServiceTypes } from 'Kubernetes/models/service/models';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\nimport {\n  KubernetesApplicationAutoScalerFormValue,\n  KubernetesApplicationConfigurationFormValue,\n  KubernetesApplicationConfigurationFormValueOverridenKey,\n  KubernetesApplicationEnvironmentVariableFormValue,\n  KubernetesApplicationPersistedFolderFormValue,\n  KubernetesApplicationPlacementFormValue,\n  KubernetesApplicationPublishedPortFormValue,\n} from 'Kubernetes/models/application/formValues';\nimport {\n  KubernetesApplicationEnvConfigMapPayload,\n  KubernetesApplicationEnvPayload,\n  KubernetesApplicationEnvSecretPayload,\n  KubernetesApplicationVolumeConfigMapPayload,\n  KubernetesApplicationVolumeEntryPayload,\n  KubernetesApplicationVolumeMountPayload,\n  KubernetesApplicationVolumePersistentPayload,\n  KubernetesApplicationVolumeSecretPayload,\n} from 'Kubernetes/models/application/payloads';\nimport KubernetesVolumeHelper from 'Kubernetes/helpers/volumeHelper';\nimport { HelmApplication } from 'Kubernetes/models/application/models';\nimport { KubernetesApplicationDeploymentTypes, KubernetesApplicationTypes } from 'Kubernetes/models/application/models/appConstants';\nimport { KubernetesPodAffinity, KubernetesPodNodeAffinityNodeSelectorRequirementOperators } from 'Kubernetes/pod/models';\nimport {\n  KubernetesNodeSelectorRequirementPayload,\n  KubernetesNodeSelectorTermPayload,\n  KubernetesPodNodeAffinityPayload,\n  KubernetesPreferredSchedulingTermPayload,\n} from 'Kubernetes/pod/payloads/affinities';\n\nexport const PodKubernetesInstanceLabel = 'app.kubernetes.io/instance';\nexport const PodManagedByLabel = 'app.kubernetes.io/managed-by';\n\nclass KubernetesApplicationHelper {\n  /* #region  UTILITY FUNCTIONS */\n  static isExternalApplication(application) {\n    return !application.ApplicationOwner;\n  }\n\n  static associatePodsAndApplication(pods, selector) {\n    return _.filter(pods, ['metadata.labels', selector.matchLabels]);\n  }\n\n  static associateContainerPersistedFoldersAndConfigurations(app, containers) {\n    _.forEach(containers, (container) => {\n      container.PersistedFolders = _.without(\n        _.map(app.PersistedFolders, (pf) => {\n          if (pf.MountPath && _.includes(_.map(container.VolumeMounts, 'mountPath'), pf.MountPath)) {\n            return pf;\n          }\n        }),\n        undefined\n      );\n\n      container.ConfigurationVolumes = _.without(\n        _.map(app.ConfigurationVolumes, (cv) => {\n          if (cv.rootMountPath && _.includes(_.map(container.VolumeMounts, 'mountPath'), cv.rootMountPath)) {\n            return cv;\n          }\n        }),\n        undefined\n      );\n    });\n  }\n\n  static associateContainersAndApplication(app) {\n    if (!app.Pods || app.Pods.length === 0) {\n      return [];\n    }\n    const containers = app.Pods[0].Containers;\n    KubernetesApplicationHelper.associateContainerPersistedFoldersAndConfigurations(app, containers);\n    return containers;\n  }\n\n  static portMappingsFromApplications(applications) {\n    const res = _.reduce(\n      applications,\n      (acc, app) => {\n        if (app.PublishedPorts.length > 0) {\n          const mapping = new KubernetesPortMapping();\n          mapping.Name = app.Name;\n          mapping.ResourcePool = app.ResourcePool;\n          mapping.ServiceType = app.ServiceType;\n          mapping.LoadBalancerIPAddress = app.LoadBalancerIPAddress;\n          mapping.ApplicationOwner = app.ApplicationOwner;\n\n          mapping.Ports = _.map(app.PublishedPorts, (item) => {\n            const port = new KubernetesPortMappingPort();\n            port.Port = mapping.ServiceType === KubernetesServiceTypes.NODE_PORT ? item.NodePort : item.Port;\n            port.TargetPort = item.TargetPort;\n            port.Protocol = item.Protocol;\n            port.IngressRules = item.IngressRules;\n            return port;\n          });\n          acc.push(mapping);\n        }\n        return acc;\n      },\n      []\n    );\n    return res;\n  }\n  /* #endregion */\n\n  /* #region  ENV VARIABLES FV <> ENV */\n  static generateEnvFromEnvVariables(envVariables) {\n    _.remove(envVariables, (item) => item.needsDeletion);\n    const env = _.map(envVariables, (item) => {\n      const res = new KubernetesApplicationEnvPayload();\n      res.name = item.name;\n      if (item.value === undefined) {\n        delete res.value;\n      } else {\n        res.value = item.value;\n      }\n      return res;\n    });\n    return env;\n  }\n\n  static generateEnvVariablesFromEnv(env) {\n    const envVariables = _.map(env, (item) => {\n      if (item.valueFrom) {\n        return;\n      }\n      const res = new KubernetesApplicationEnvironmentVariableFormValue();\n      res.name = item.name;\n      res.value = item.value;\n      res.isNew = false;\n      res.nameIndex = item.name;\n      return res;\n    });\n    return _.without(envVariables, undefined);\n  }\n  /* #endregion */\n\n  /* #region  CONFIGURATIONS FV <> ENV & VOLUMES */\n  static generateConfigurationFormValuesFromEnvAndVolumes(env, volumes, configurations, configurationKind) {\n    const filterCondition = configurationKind === KubernetesConfigurationKinds.CONFIGMAP ? 'valueFrom.configMapKeyRef.name' : 'valueFrom.secretKeyRef.name';\n    const finalRes = _.flatMap(configurations, (cfg) => {\n      const cfgEnv = _.filter(env, [filterCondition, cfg.Name]);\n      const cfgVol = volumes.filter((volume) => volume.configurationName === cfg.Name && volume.configurationType === configurationKind);\n      if (!cfgEnv.length && !cfgVol.length) {\n        return;\n      }\n      const keys = _.reduce(\n        _.keys(cfg.Data),\n        (acc, k) => {\n          const keyEnv = _.filter(cfgEnv, { name: k });\n          const keyVol = _.filter(cfgVol, { configurationKey: k });\n          const key = {\n            Key: k,\n            Count: keyEnv.length + keyVol.length,\n            Sum: _.concat(keyEnv, keyVol),\n            EnvCount: keyEnv.length,\n            VolCount: keyVol.length,\n          };\n          acc.push(key);\n          return acc;\n        },\n        []\n      );\n\n      const max = _.max(_.map(keys, 'Count'));\n      const overrideThreshold = max - _.max(_.map(keys, 'VolCount'));\n      const res = _.map(new Array(max), () => new KubernetesApplicationConfigurationFormValue());\n      _.forEach(res, (item, index) => {\n        item.selectedConfiguration = cfg;\n        // workaround to load configurations in the app in the select inputs\n        // this should be removed when the edit parent view is migrated to react\n        item.selectedConfiguration.metadata = {};\n        item.selectedConfiguration.metadata.name = cfg.Name;\n        const overriden = index >= overrideThreshold;\n        if (overriden) {\n          item.overriden = true;\n          item.overridenKeys = _.map(keys, (k) => {\n            const fvKey = new KubernetesApplicationConfigurationFormValueOverridenKey();\n            fvKey.key = k.Key;\n            if (!k.Count) {\n              // !k.Count indicates k.key is new added to the configuration and has not been loaded to the application yet\n              fvKey.type = 'NONE';\n            } else if (index < k.EnvCount) {\n              fvKey.type = 'ENVIRONMENT';\n            } else {\n              fvKey.type = 'FILESYSTEM';\n              fvKey.path = k.Sum[index].rootMountPath;\n            }\n            return fvKey;\n          });\n        }\n      });\n      return res;\n    });\n    return _.without(finalRes, undefined);\n  }\n\n  static generateEnvOrVolumesFromConfigurations(app, configMaps, secrets) {\n    const configurations = [...configMaps, ...secrets];\n    let finalEnv = [];\n    let finalVolumes = [];\n    let finalMounts = [];\n\n    _.forEach(configurations, (config) => {\n      const isBasic = config.selectedConfiguration.kind === 'ConfigMap';\n\n      if (!config.overriden) {\n        const envKeys = _.keys(config.selectedConfiguration.data);\n        _.forEach(envKeys, (item) => {\n          const res = isBasic ? new KubernetesApplicationEnvConfigMapPayload() : new KubernetesApplicationEnvSecretPayload();\n          res.name = item;\n          if (isBasic) {\n            res.valueFrom.configMapKeyRef.name = config.selectedConfiguration.metadata.name;\n            res.valueFrom.configMapKeyRef.key = item;\n          } else {\n            res.valueFrom.secretKeyRef.name = config.selectedConfiguration.metadata.name;\n            res.valueFrom.secretKeyRef.key = item;\n          }\n          finalEnv.push(res);\n        });\n      } else {\n        const envKeys = _.filter(config.overridenKeys, (item) => item.type === 'ENVIRONMENT');\n        _.forEach(envKeys, (item) => {\n          const res = isBasic ? new KubernetesApplicationEnvConfigMapPayload() : new KubernetesApplicationEnvSecretPayload();\n          res.name = item.key;\n          if (isBasic) {\n            res.valueFrom.configMapKeyRef.name = config.selectedConfiguration.metadata.name;\n            res.valueFrom.configMapKeyRef.key = item.key;\n          } else {\n            res.valueFrom.secretKeyRef.name = config.selectedConfiguration.metadata.name;\n            res.valueFrom.secretKeyRef.key = item.key;\n          }\n          finalEnv.push(res);\n        });\n\n        const volKeys = _.filter(config.overridenKeys, (item) => item.type === 'FILESYSTEM');\n        const groupedVolKeys = _.groupBy(volKeys, 'path');\n        _.forEach(groupedVolKeys, (items, path) => {\n          const volumeName = KubernetesVolumeHelper.generatedApplicationConfigVolumeName(app.Name);\n          const configurationName = config.selectedConfiguration.metadata.name;\n          const itemsMap = _.map(items, (item) => {\n            const entry = new KubernetesApplicationVolumeEntryPayload();\n            entry.key = item.key;\n            entry.path = item.key;\n            return entry;\n          });\n\n          const mount = isBasic ? new KubernetesApplicationVolumeMountPayload() : new KubernetesApplicationVolumeMountPayload(true);\n          const volume = isBasic ? new KubernetesApplicationVolumeConfigMapPayload() : new KubernetesApplicationVolumeSecretPayload();\n\n          mount.name = volumeName;\n          mount.mountPath = path;\n          volume.name = volumeName;\n          if (isBasic) {\n            volume.configMap.name = configurationName;\n            volume.configMap.items = itemsMap;\n          } else {\n            volume.secret.secretName = configurationName;\n            volume.secret.items = itemsMap;\n          }\n\n          finalMounts.push(mount);\n          finalVolumes.push(volume);\n        });\n      }\n    });\n    app.Env = _.concat(app.Env, finalEnv);\n    app.Volumes = _.concat(app.Volumes, finalVolumes);\n    app.VolumeMounts = _.concat(app.VolumeMounts, finalMounts);\n    return app;\n  }\n  /* #endregion */\n\n  /* #region  SERVICES -> SERVICES FORM VALUES */\n  static generateServicesFormValuesFromServices(app, ingresses) {\n    let services = [];\n    if (app.Services) {\n      app.Services.forEach(function (service) {\n        //skip generate formValues if service = headless service ( clusterIp === \"None\" )\n        if (service.spec.clusterIP !== 'None') {\n          const svc = new KubernetesService();\n          svc.Namespace = service.metadata.namespace;\n          svc.Name = service.metadata.name;\n          svc.StackName = service.StackName;\n          svc.ApplicationOwner = app.ApplicationOwner;\n          svc.ApplicationName = app.ApplicationName;\n          svc.Type = service.spec.type;\n\n          let ports = [];\n          service.spec.ports.forEach(function (port) {\n            const svcport = new KubernetesServicePort();\n            svcport.name = port.name;\n            svcport.port = port.port;\n            svcport.nodePort = port.nodePort || 0;\n            svcport.protocol = port.protocol;\n            svcport.targetPort = port.targetPort;\n            svcport.serviceName = service.metadata.name;\n            svcport.ingressPaths = [];\n\n            ingresses.forEach((ingress) => {\n              const matchingIngressPaths = ingress.Paths.filter((ingPath) => ingPath.ServiceName === service.metadata.name && ingPath.Port === port.port);\n              // only add ingress info to the port if the ingress serviceport and name matches\n              const newPaths = matchingIngressPaths.map((ingPath) => ({\n                IngressName: ingPath.IngressName,\n                Host: ingPath.Host,\n                Path: ingPath.Path,\n              }));\n              svcport.ingressPaths = [...svcport.ingressPaths, ...newPaths];\n              svc.Ingress = matchingIngressPaths.length > 0;\n            });\n\n            ports.push(svcport);\n          });\n          svc.Ports = ports;\n          // if the app is a pod (doesn't have a selector), then get the pod labels\n          if (app.Raw.spec.selector) {\n            svc.Selector = app.Raw.spec.selector.matchLabels;\n          } else {\n            svc.Selector = app.Raw.metadata.labels || { app: app.Name };\n          }\n          services.push(svc);\n        }\n      });\n\n      return services;\n    }\n  }\n  /* #endregion */\n  static generateSelectorFromService(app) {\n    if (app.Raw.kind !== 'Pod') {\n      const selector = app.Raw.spec.selector.matchLabels;\n      return selector;\n    }\n  }\n\n  /* #region  PUBLISHED PORTS FV <> PUBLISHED PORTS */\n  static generatePublishedPortsFormValuesFromPublishedPorts(serviceType, publishedPorts, ingress) {\n    const generatePort = (port, rule) => {\n      const res = new KubernetesApplicationPublishedPortFormValue();\n      res.IsNew = false;\n      if (rule) {\n        res.IngressName = rule.IngressName;\n        res.IngressRoute = rule.Path;\n        res.IngressHost = rule.Host;\n        res.IngressHosts = ingress && ingress.find((i) => i.Name === rule.IngressName).Hosts;\n      }\n      res.Protocol = port.Protocol;\n      res.ContainerPort = port.TargetPort;\n      if (serviceType === KubernetesServiceTypes.LOAD_BALANCER) {\n        res.LoadBalancerPort = port.Port;\n        res.LoadBalancerNodePort = port.NodePort;\n      } else if (serviceType === KubernetesServiceTypes.NODE_PORT) {\n        res.NodePort = port.NodePort;\n      }\n      return res;\n    };\n\n    const finalRes = _.flatMap(publishedPorts, (port) => {\n      if (port.IngressRules.length) {\n        return _.map(port.IngressRules, (rule) => generatePort(port, rule));\n      }\n      return generatePort(port);\n    });\n    return finalRes;\n  }\n  /* #endregion */\n\n  /* #region  AUTOSCALER FV <> HORIZONTAL POD AUTOSCALER */\n  static generateAutoScalerFormValueFromHorizontalPodAutoScaler(autoScaler, replicasCount) {\n    const res = new KubernetesApplicationAutoScalerFormValue();\n    if (autoScaler) {\n      res.isUsed = true;\n      res.minReplicas = autoScaler.MinReplicas;\n      res.maxReplicas = autoScaler.MaxReplicas;\n      res.targetCpuUtilizationPercentage = autoScaler.TargetCPUUtilization;\n      res.apiVersion = autoScaler.ApiVersion;\n    } else {\n      res.apiVersion = 'apps/v1';\n      res.minReplicas = replicasCount;\n      res.maxReplicas = replicasCount;\n    }\n    return res;\n  }\n\n  /* #endregion */\n\n  /* #region  PERSISTED FOLDERS FV <> VOLUMES */\n  static generatePersistedFoldersFormValuesFromPersistedFolders(persistedFolders, persistentVolumeClaims) {\n    const finalRes = _.map(persistedFolders, (folder) => {\n      const pvc = _.find(persistentVolumeClaims, (item) => _.startsWith(item.Name, folder.persistentVolumeClaimName));\n      const res = new KubernetesApplicationPersistedFolderFormValue(pvc.storageClass);\n      res.persistentVolumeClaimName = folder.persistentVolumeClaimName;\n      res.size = pvc.Storage.slice(0, -2); // remove trailing units\n      res.sizeUnit = pvc.Storage.slice(-2);\n      res.containerPath = folder.MountPath;\n      return res;\n    });\n    return finalRes;\n  }\n\n  static generateVolumesFromPersistentVolumClaims(app, volumeClaims) {\n    app.VolumeMounts = [];\n    app.Volumes = [];\n    _.forEach(volumeClaims, (item) => {\n      const volumeMount = new KubernetesApplicationVolumeMountPayload();\n      const name = item.Name;\n      volumeMount.name = name;\n      volumeMount.mountPath = item.MountPath;\n      app.VolumeMounts.push(volumeMount);\n\n      const volume = new KubernetesApplicationVolumePersistentPayload();\n      volume.name = name;\n      volume.persistentVolumeClaim.claimName = name;\n      app.Volumes.push(volume);\n    });\n  }\n\n  static hasRWOOnly(formValues) {\n    return _.find(formValues.PersistedFolders, (item) => item.storageClass && _.isEqual(item.storageClass.AccessModes, ['RWO']));\n  }\n\n  static hasRWX(claims) {\n    return _.find(claims, (item) => item.storageClass && _.includes(item.storageClass.AccessModes, 'RWX')) !== undefined;\n  }\n  /* #endregion */\n\n  /* #region  PLACEMENTS FV <> AFFINITY */\n  static generatePlacementsFormValuesFromAffinity(formValues, podAffinity) {\n    let placements = formValues.Placements;\n    let type = formValues.PlacementType;\n    const affinity = podAffinity.nodeAffinity;\n    if (affinity && affinity.requiredDuringSchedulingIgnoredDuringExecution) {\n      type = 'mandatory';\n      _.forEach(affinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms, (term) => {\n        _.forEach(term.matchExpressions, (exp) => {\n          const placement = new KubernetesApplicationPlacementFormValue();\n          placement.label = exp.key;\n          placement.value = exp.values[0];\n          placement.isNew = false;\n          placements.push(placement);\n        });\n      });\n    } else if (affinity && affinity.preferredDuringSchedulingIgnoredDuringExecution) {\n      type = 'preferred';\n      _.forEach(affinity.preferredDuringSchedulingIgnoredDuringExecution, (term) => {\n        _.forEach(term.preference.matchExpressions, (exp) => {\n          const placement = new KubernetesApplicationPlacementFormValue();\n          placement.label = exp.key;\n          placement.value = exp.values[0];\n          placement.isNew = false;\n          placements.push(placement);\n        });\n      });\n    }\n    formValues.Placements = placements;\n    formValues.PlacementType = type;\n  }\n\n  static generateAffinityFromPlacements(app, formValues) {\n    if (formValues.DeploymentType === KubernetesApplicationDeploymentTypes.Replicated) {\n      const placements = formValues.Placements;\n      const res = new KubernetesPodNodeAffinityPayload();\n      let expressions = _.map(placements, (p) => {\n        if (!p.needsDeletion) {\n          const exp = new KubernetesNodeSelectorRequirementPayload();\n          exp.key = p.label;\n          if (p.value) {\n            exp.operator = KubernetesPodNodeAffinityNodeSelectorRequirementOperators.IN;\n            exp.values = [p.value];\n          } else {\n            exp.operator = KubernetesPodNodeAffinityNodeSelectorRequirementOperators.EXISTS;\n            delete exp.values;\n          }\n          return exp;\n        }\n      });\n      expressions = _.without(expressions, undefined);\n      if (expressions.length) {\n        if (formValues.PlacementType === 'mandatory') {\n          const term = new KubernetesNodeSelectorTermPayload();\n          term.matchExpressions = expressions;\n          res.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.push(term);\n          delete res.preferredDuringSchedulingIgnoredDuringExecution;\n        } else if (formValues.PlacementType === 'preferred') {\n          const term = new KubernetesPreferredSchedulingTermPayload();\n          term.preference = new KubernetesNodeSelectorTermPayload();\n          term.preference.matchExpressions = expressions;\n          res.preferredDuringSchedulingIgnoredDuringExecution.push(term);\n          delete res.requiredDuringSchedulingIgnoredDuringExecution;\n        }\n        app.Affinity = new KubernetesPodAffinity();\n        app.Affinity.nodeAffinity = res;\n      }\n    }\n  }\n  /* #endregion */\n\n  /**\n   * Get Helm managed applications\n   * @param {KubernetesApplication[]} applications Application list\n   * @returns {Object} { [releaseName]: [app1, app2, ...], [releaseName2]: [app3, app4, ...] }\n   */\n  static getHelmApplications(applications) {\n    // filter out all the applications that are managed by helm\n    // to identify the helm managed applications, we need to check if the applications pod labels include\n    // `app.kubernetes.io/instance` and `app.kubernetes.io/managed-by` = `helm`\n    const helmManagedApps = applications.filter(\n      (app) => app.Metadata.labels && app.Metadata.labels[PodKubernetesInstanceLabel] && app.Metadata.labels[PodManagedByLabel] === 'Helm'\n    );\n\n    // groups the helm managed applications by helm release name\n    // the release name is retrieved from the `app.kubernetes.io/instance` label on the pods within the apps\n    // `namespacedHelmReleases` object structure:\n    // {\n    //   [namespace1]: {\n    //     [releaseName]: [app1, app2, ...],\n    //   },\n    //   [namespace2]: {\n    //     [releaseName2]: [app1, app2, ...],\n    //   }\n    // }\n    const namespacedHelmReleases = {};\n    helmManagedApps.forEach((app) => {\n      const namespace = app.ResourcePool;\n      const instanceLabel = app.Metadata.labels[PodKubernetesInstanceLabel];\n      if (namespacedHelmReleases[namespace]) {\n        namespacedHelmReleases[namespace][instanceLabel] = [...(namespacedHelmReleases[namespace][instanceLabel] || []), app];\n      } else {\n        namespacedHelmReleases[namespace] = { [instanceLabel]: [app] };\n      }\n    });\n\n    // `helmAppsEntriesList` object structure:\n    // [\n    //   [\"airflow-test\", Array(5)],\n    //   [\"traefik\", Array(1)],\n    //   [\"airflow-test\", Array(2)],\n    //   ...,\n    // ]\n    const helmAppsEntriesList = Object.values(namespacedHelmReleases).flatMap((r) => Object.entries(r));\n    const helmAppsList = helmAppsEntriesList.map(([helmInstance, applications]) => {\n      const helmApp = new HelmApplication();\n      helmApp.Name = helmInstance;\n      helmApp.ApplicationType = KubernetesApplicationTypes.Helm;\n      helmApp.ApplicationOwner = applications[0].ApplicationOwner;\n      helmApp.KubernetesApplications = applications;\n\n      // the status of helm app is `Ready` based on whether the underlying RunningPodsCount of the k8s app\n      // reaches the TotalPodsCount of the app\n      const appsNotReady = applications.some((app) => app.RunningPodsCount < app.TotalPodsCount);\n      helmApp.Status = appsNotReady ? 'Not ready' : 'Ready';\n\n      // use earliest date\n      helmApp.CreationDate = applications.map((app) => app.CreationDate).sort((a, b) => new Date(a) - new Date(b))[0];\n\n      // use first app namespace as helm app namespace\n      helmApp.ResourcePool = applications[0].ResourcePool;\n\n      // required for persisting table expansion state and differenting same named helm apps across different namespaces\n      helmApp.Id = helmApp.ResourcePool + '-' + helmApp.Name.toLowerCase().replaceAll(' ', '-');\n\n      return helmApp;\n    });\n\n    return helmAppsList;\n  }\n\n  /**\n   * Get nested applications -\n   * @param {KubernetesApplication[]} applications Application list\n   * @returns {Object} { helmApplications: [app1, app2, ...], nonHelmApplications: [app3, app4, ...] }\n   */\n  static getNestedApplications(applications) {\n    const helmApplications = KubernetesApplicationHelper.getHelmApplications(applications);\n\n    // filter out helm managed applications\n    const helmAppNames = [...new Set(helmApplications.map((hma) => hma.Name))]; // distinct helm app names\n    const nonHelmApplications = applications.filter((app) => {\n      if (app.Metadata.labels) {\n        return !helmAppNames.includes(app.Metadata.labels[PodKubernetesInstanceLabel]);\n      }\n      return true;\n    });\n\n    return { helmApplications, nonHelmApplications };\n  }\n}\nexport default KubernetesApplicationHelper;\n","import _ from 'lodash-es';\n\nclass KubernetesCommonHelper {\n  static assignOrDeleteIfEmpty(obj, path, value) {\n    if (!value || (value instanceof Array && !value.length)) {\n      _.unset(obj, path);\n    } else {\n      _.set(obj, path, value);\n    }\n  }\n\n  static ownerToLabel(owner) {\n    let label = _.replace(owner, /[^-A-Za-z0-9_.]/g, '.');\n    label = _.truncate(label, { length: 63, omission: '' });\n    label = _.replace(label, /^[-_.]*/g, '');\n    label = _.replace(label, /[-_.]*$/g, '');\n    return label;\n  }\n\n  static assignOrDeleteIfEmptyOrZero(obj, path, value) {\n    if (!value || value === 0 || (value instanceof Array && !value.length)) {\n      _.unset(obj, path);\n    } else {\n      _.set(obj, path, value);\n    }\n  }\n}\nexport default KubernetesCommonHelper;\n","import _ from 'lodash-es';\n\nimport { KubernetesPortainerConfigMapAccessKey } from 'Kubernetes/models/config-map/models';\nimport { UserAccessViewModel, TeamAccessViewModel } from 'Portainer/models/access';\n\nclass KubernetesConfigMapHelper {\n  static parseJSONData(configMap) {\n    _.forIn(configMap.Data, (value, key) => {\n      try {\n        configMap.Data[key] = JSON.parse(value);\n      } catch (err) {\n        configMap.Data[key] = value;\n      }\n    });\n    return configMap;\n  }\n\n  static modifiyNamespaceAccesses(configMap, namespace, accesses) {\n    configMap.Data[KubernetesPortainerConfigMapAccessKey][namespace] = {\n      UserAccessPolicies: {},\n      TeamAccessPolicies: {},\n    };\n    _.forEach(accesses, (item) => {\n      if (item instanceof UserAccessViewModel) {\n        configMap.Data[KubernetesPortainerConfigMapAccessKey][namespace].UserAccessPolicies[item.Id] = { RoleId: 0 };\n      } else if (item instanceof TeamAccessViewModel) {\n        configMap.Data[KubernetesPortainerConfigMapAccessKey][namespace].TeamAccessPolicies[item.Id] = { RoleId: 0 };\n      }\n    });\n    _.forIn(configMap.Data, (value, key) => {\n      configMap.Data[key] = JSON.stringify(value);\n    });\n    return configMap;\n  }\n}\nexport default KubernetesConfigMapHelper;\n","import _ from 'lodash-es';\nimport YAML from 'yaml';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\nimport { KubernetesConfigurationFormValuesEntry } from 'Kubernetes/models/configuration/formvalues';\n\nclass KubernetesConfigurationHelper {\n  static getUsingApplications(config, applications) {\n    return _.filter(applications, (app) => {\n      let envFind;\n      let volumeFind;\n      if (config.Kind === KubernetesConfigurationKinds.CONFIGMAP) {\n        envFind = _.find(app.Env, { valueFrom: { configMapKeyRef: { name: config.Name } } });\n        volumeFind = _.find(app.Volumes, { configMap: { name: config.Name } });\n      } else {\n        envFind = _.find(app.Env, { valueFrom: { secretKeyRef: { name: config.Name } } });\n        volumeFind = _.find(app.Volumes, { secret: { secretName: config.Name } });\n      }\n      return envFind || volumeFind;\n    });\n  }\n\n  static isSystemToken(config) {\n    return _.startsWith(config.Name, 'default-token-');\n  }\n\n  static isBinary(encoding) {\n    return encoding !== '' && !_.includes(encoding, 'ISO') && !_.includes(encoding, 'UTF');\n  }\n\n  static setConfigurationUsed(config) {\n    config.Used = config.Applications && config.Applications.length !== 0;\n  }\n\n  static setConfigurationsUsed(configurations, applications) {\n    _.forEach(configurations, (config) => {\n      config.Applications = KubernetesConfigurationHelper.getUsingApplications(config, applications);\n      KubernetesConfigurationHelper.setConfigurationUsed(config);\n    });\n  }\n\n  static getApplicationConfigurations(applications, configurations) {\n    const configurationsUsed = configurations.filter((config) => KubernetesConfigurationHelper.getUsingApplications(config, applications).length !== 0);\n    // set the configurations used for each application in the list\n    const configuredApps = applications.map((app) => {\n      const configMappedByName = configurationsUsed.filter((config) => app.ApplicationName === config.Name && app.ResourcePool === config.Namespace);\n      const configMappedByVolume = configurationsUsed\n        .filter((config) => app.ConfigurationVolumes.some((cv) => cv.configurationName === config.Name))\n        .filter((config) => !configMappedByName.some((c) => c.Name === config.Name)); // filter out duplicates that are mapped by name\n      app.Configurations = [...configMappedByName, ...configMappedByVolume];\n      return app;\n    });\n    return configuredApps;\n  }\n\n  static parseYaml(formValues) {\n    YAML.defaultOptions.customTags = ['binary'];\n    const data = _.map(YAML.parse(formValues.DataYaml), (value, key) => {\n      const entry = new KubernetesConfigurationFormValuesEntry();\n      entry.Key = key;\n      entry.Value = value;\n      const oldEntry = _.find(formValues.Data, { Key: entry.Key });\n      entry.IsBinary = oldEntry ? oldEntry.IsBinary : false;\n      return entry;\n    });\n    return data;\n  }\n\n  static parseData(formValues) {\n    if (!formValues.Data.length) return '';\n\n    const data = _.reduce(\n      formValues.Data,\n      (acc, entry) => {\n        acc[entry.Key] = entry.Value;\n        return acc;\n      },\n      {}\n    );\n    return YAML.stringify(data);\n  }\n\n  static isExternalConfiguration(configuration) {\n    return !configuration.ConfigurationOwner;\n  }\n}\n\nexport default KubernetesConfigurationHelper;\n","import _ from 'lodash-es';\n\nclass KubernetesEventHelper {\n  static warningCount(events) {\n    const warnings = _.filter(events, (event) => event.Type === 'Warning');\n    return warnings.length;\n  }\n}\n\nexport default KubernetesEventHelper;\n","import _ from 'lodash-es';\n\nclass KubernetesFormValidationHelper {\n  static getInvalidKeys(names) {\n    const res = {};\n    _.forEach(names, (name, index) => {\n      if (name) {\n        const valid = /^[-._a-zA-Z0-9]+$/.test(name);\n        if (!valid) {\n          res[index] = true;\n        }\n      }\n    });\n    return res;\n  }\n\n  static getDuplicates(names) {\n    const grouped = _.groupBy(names);\n    const res = {};\n    _.forEach(names, (name, index) => {\n      if (name && grouped[name].length > 1) {\n        res[index] = name;\n      }\n    });\n    return res;\n  }\n\n  static getDuplicateNodePorts(serviceNodePorts, allOtherNodePorts) {\n    const res = {};\n    serviceNodePorts.forEach((sNodePort, index) => {\n      if (allOtherNodePorts.includes(sNodePort) || serviceNodePorts.filter((snp) => snp === sNodePort).length > 1) {\n        res[index] = sNodePort;\n      }\n    });\n    return res;\n  }\n}\nexport default KubernetesFormValidationHelper;\n","import _ from 'lodash-es';\n\nimport { KUBERNETES_DEFAULT_NAMESPACE, KUBERNETES_DEFAULT_SYSTEM_NAMESPACES } from 'Kubernetes/models/namespace/models';\nimport { isSystem } from 'Kubernetes/store/namespace';\n\nexport default class KubernetesNamespaceHelper {\n  /**\n   * Check if namespace is system or not\n   * @param {String} namespace Namespace (string name) to evaluate\n   * @returns Boolean\n   */\n  static isSystemNamespace(namespace) {\n    return isSystem(namespace);\n  }\n\n  /**\n   * Check if namespace is default or not\n   * @param {String} namespace Namespace (string name) to evaluate\n   * @returns Boolean\n   */\n  static isDefaultNamespace(namespace) {\n    return namespace === KUBERNETES_DEFAULT_NAMESPACE;\n  }\n\n  /**\n   * Check if namespace is one of the default system namespaces\n   * @param {String} namespace Namespace (string name) to evaluate\n   * @returns Boolean\n   */\n  static isDefaultSystemNamespace(namespace) {\n    return _.includes(KUBERNETES_DEFAULT_SYSTEM_NAMESPACES, namespace);\n  }\n}\n","import { KubernetesPortainerResourceQuotaPrefix } from 'Kubernetes/models/resource-quota/models';\n\nclass KubernetesResourceQuotaHelper {\n  static generateResourceQuotaName(name) {\n    return KubernetesPortainerResourceQuotaPrefix + name;\n  }\n\n  static formatBytes(bytes, decimals = 0, base10 = true) {\n    const res = {\n      size: 0,\n      sizeUnit: 'B',\n    };\n\n    if (bytes === 0) {\n      return res;\n    }\n\n    const k = base10 ? 1000 : 1024;\n    const dm = decimals < 0 ? 0 : decimals;\n    const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n    const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n    return {\n      size: parseFloat((bytes / Math.pow(k, i)).toFixed(dm)),\n      sizeUnit: sizes[i],\n    };\n  }\n}\n\nexport default KubernetesResourceQuotaHelper;\n","import _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport { KubernetesResourceReservation } from 'Kubernetes/models/resource-reservation/models';\n\nclass KubernetesResourceReservationHelper {\n  static computeResourceReservation(pods) {\n    const containers = _.reduce(pods, (acc, pod) => _.concat(acc, pod.Containers), []);\n\n    return _.reduce(\n      containers,\n      (acc, container) => {\n        if (container.Requests) {\n          if (container.Requests.memory) {\n            acc.Memory += safeFilesizeParser(container.Requests.memory, { base: 10 });\n          }\n\n          if (container.Requests.cpu) {\n            acc.CPU += KubernetesResourceReservationHelper.parseCPU(container.Requests.cpu);\n          }\n        }\n\n        return acc;\n      },\n      new KubernetesResourceReservation()\n    );\n  }\n\n  static parseCPU(cpu) {\n    let res = parseInt(cpu, 10);\n    if (_.endsWith(cpu, 'm')) {\n      // milli\n      res /= 1000;\n    } else if (_.endsWith(cpu, 'u')) {\n      // micro\n      res /= 1000000;\n    } else if (_.endsWith(cpu, 'n')) {\n      // nano\n      res /= 1000000000;\n    } else if (_.endsWith(cpu, 'p')) {\n      // pico\n      res /= 1000000000000;\n    }\n    return res;\n  }\n\n  static megaBytesValue(value) {\n    return Math.floor(safeFilesizeParser(value) / 1000 / 1000);\n  }\n\n  static bytesValue(mem) {\n    return safeFilesizeParser(mem) * 1000 * 1000;\n  }\n}\nexport default KubernetesResourceReservationHelper;\n\nfunction safeFilesizeParser(value, options) {\n  if (!value || Number.isNaN(value)) {\n    return 0;\n  }\n\n  return filesizeParser(value, options);\n}\n","import _ from 'lodash-es';\nimport { KubernetesServiceHeadlessPrefix } from 'Kubernetes/models/service/models';\n\nclass KubernetesServiceHelper {\n  static generateHeadlessServiceName(name) {\n    return KubernetesServiceHeadlessPrefix + name;\n  }\n\n  static findApplicationBoundService(services, rawApp) {\n    if (!rawApp.spec.template) {\n      return undefined;\n    }\n    return _.find(services, (item) => item.spec.selector && _.isMatch(rawApp.spec.template.metadata.labels, item.spec.selector));\n  }\n\n  static findApplicationBoundServices(services, rawApp) {\n    // if the app is a naked pod (doesn't have a template), then get the pod labels\n    const appLabels = rawApp.spec.template ? rawApp.spec.template.metadata.labels : rawApp.metadata.labels;\n    if (!appLabels) {\n      return undefined;\n    }\n    return _.filter(services, (item) => item.spec.selector && _.isMatch(appLabels, item.spec.selector));\n  }\n}\nexport default KubernetesServiceHelper;\n","import _ from 'lodash-es';\nimport { KubernetesStack } from 'Kubernetes/models/stack/models';\n\nclass KubernetesStackHelper {\n  static stacksFromApplications(applications) {\n    const res = _.reduce(\n      applications,\n      (acc, app) => {\n        if (app.StackName) {\n          let stack = _.find(acc, { Name: app.StackName, ResourcePool: app.ResourcePool });\n          if (!stack) {\n            stack = new KubernetesStack();\n            stack.Name = app.StackName;\n            stack.ResourcePool = app.ResourcePool;\n            acc.push(stack);\n          }\n          stack.Applications.push(app);\n        }\n        return acc;\n      },\n      []\n    );\n    return res;\n  }\n}\nexport default KubernetesStackHelper;\n","import KubernetesStackHelper from './stackHelper';\n\ndescribe('stacksFromApplications', () => {\n  const { stacksFromApplications } = KubernetesStackHelper;\n  test('should return an empty array when passed an empty array', () => {\n    expect(stacksFromApplications([])).toHaveLength(0);\n  });\n\n  test('should return an empty array when passed a list of applications without stacks', () => {\n    expect(stacksFromApplications([{ StackName: '' }, { StackName: '' }, { StackName: '' }, { StackName: '' }])).toHaveLength(0);\n  });\n});\n","import _ from 'lodash-es';\nimport uuidv4 from 'uuid/v4';\nimport { KubernetesApplicationTypes } from 'Kubernetes/models/application/models/appConstants';\n\nclass KubernetesVolumeHelper {\n  // TODO: review\n  // the following condition\n  // && (app.ApplicationType === KubernetesApplicationTypes.StatefulSet ? _.includes(volume.PersistentVolumeClaim.Name, app.Name) : true);\n  // is made to enforce finding the good SFS when multiple SFS in the same namespace\n  // are referencing an internal PVC using the same internal name\n  // (PVC are not exposed to other apps so they can have the same name in differents SFS)\n  static getUsingApplications(volume, applications) {\n    return _.filter(applications, (app) => {\n      const names = _.without(_.map(app.Volumes, 'persistentVolumeClaim.claimName'), undefined);\n      const matchingNames = _.filter(names, (name) => _.startsWith(volume.PersistentVolumeClaim.Name, name));\n      return (\n        volume.ResourcePool.Namespace.Name === app.ResourcePool &&\n        matchingNames.length &&\n        (app.ApplicationType === KubernetesApplicationTypes.StatefulSet ? _.includes(volume.PersistentVolumeClaim.Name, app.Name) : true)\n      );\n    });\n  }\n\n  static isUsed(item) {\n    return item.Applications.length !== 0;\n  }\n\n  static generatedApplicationConfigVolumeName(name) {\n    return 'config-' + name + '-' + uuidv4();\n  }\n\n  static isExternalVolume(volume) {\n    return !volume.PersistentVolumeClaim.ApplicationOwner;\n  }\n}\n\nexport default KubernetesVolumeHelper;\n","import * as JsonPatch from 'fast-json-patch';\nimport { KubernetesHorizontalPodAutoScaler } from './models';\nimport { KubernetesHorizontalPodAutoScalerCreatePayload } from './payload';\n\nexport class KubernetesHorizontalPodAutoScalerConverter {\n  /**\n   * Convert API data to KubernetesHorizontalPodAutoScaler model\n   */\n  static apiToModel(data, yaml) {\n    const res = new KubernetesHorizontalPodAutoScaler();\n    res.Id = data.metadata.uid;\n    res.Namespace = data.metadata.namespace;\n    res.Name = data.metadata.name;\n    res.MinReplicas = data.spec.minReplicas;\n    res.MaxReplicas = data.spec.maxReplicas;\n    res.TargetCPUUtilization = data.spec.targetCPUUtilizationPercentage;\n\n    if (data.spec.scaleTargetRef) {\n      res.TargetEntity.ApiVersion = data.spec.scaleTargetRef.apiVersion;\n      res.TargetEntity.Kind = data.spec.scaleTargetRef.kind;\n      res.TargetEntity.Name = data.spec.scaleTargetRef.name;\n    }\n    res.Yaml = yaml ? yaml.data : '';\n    return res;\n  }\n\n  static createPayload(data) {\n    const payload = new KubernetesHorizontalPodAutoScalerCreatePayload();\n    payload.metadata.namespace = data.Namespace;\n    payload.metadata.name = data.TargetEntity.Name;\n    payload.spec.minReplicas = data.MinReplicas;\n    payload.spec.maxReplicas = data.MaxReplicas;\n    payload.spec.targetCPUUtilizationPercentage = data.targetCpuUtilizationPercentage;\n    payload.spec.scaleTargetRef.apiVersion = data.TargetEntity.ApiVersion;\n    payload.spec.scaleTargetRef.kind = data.TargetEntity.Kind;\n    payload.spec.scaleTargetRef.name = data.TargetEntity.Name;\n    return payload;\n  }\n\n  static patchPayload(oldScaler, newScaler) {\n    const oldPayload = KubernetesHorizontalPodAutoScalerConverter.createPayload(oldScaler);\n    const newPayload = KubernetesHorizontalPodAutoScalerConverter.createPayload(newScaler);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n\n  static applicationFormValuesToModel(formValues, kind) {\n    const res = new KubernetesHorizontalPodAutoScaler();\n    res.Name = formValues.Name;\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.MinReplicas = formValues.AutoScaler.minReplicas;\n    res.MaxReplicas = formValues.AutoScaler.maxReplicas;\n    res.targetCpuUtilizationPercentage = formValues.AutoScaler.targetCpuUtilizationPercentage;\n    res.TargetEntity.Name = formValues.Name;\n    res.TargetEntity.Kind = kind;\n    res.TargetEntity.ApiVersion = formValues.AutoScaler.apiVersion;\n    return res;\n  }\n}\n","import _ from 'lodash-es';\n\nexport class KubernetesHorizontalPodAutoScalerHelper {\n  static findApplicationBoundScaler(sList, app) {\n    const kind = app.ApplicationType;\n    return _.find(sList, (item) => item.TargetEntity.Kind === kind && item.TargetEntity.Name === app.Name);\n  }\n}\n","/**\n * KubernetesHorizontalPodAutoScaler Model\n */\nconst _KubernetesHorizontalPodAutoScaler = Object.freeze({\n  Id: '',\n  Namespace: '',\n  Name: '',\n  MinReplicas: 1,\n  MaxReplicas: 1,\n  targetCpuUtilizationPercentage: 0,\n  TargetEntity: {\n    ApiVersion: '',\n    Kind: '',\n    Name: '',\n  },\n  Yaml: '',\n});\n\nexport class KubernetesHorizontalPodAutoScaler {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesHorizontalPodAutoScaler)));\n  }\n}\n","/**\n * KubernetesHorizontalPodAutoScaler Create Payload Model\n */\nconst _KubernetesHorizontalPodAutoScalerCreatePayload = Object.freeze({\n  metadata: {\n    namespace: '',\n    name: '',\n  },\n  spec: {\n    maxReplicas: 0,\n    minReplicas: 0,\n    targetCPUUtilizationPercentage: 0,\n    scaleTargetRef: {\n      kind: '',\n      name: '',\n    },\n  },\n});\n\nexport class KubernetesHorizontalPodAutoScalerCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesHorizontalPodAutoScalerCreatePayload)));\n  }\n}\n\n/**\n * KubernetesHorizontalPodAutoScaler Create Payload Model for v2beta2\n * Include support of memory usage\n */\n\n// const _KubernetesHorizontalPodAutoScalerCreatePayload = Object.freeze({\n//   metadata: {\n//     namespace: '',\n//     name: ''\n//   },\n//   spec: {\n//     maxReplicas: 0,\n//     minReplicas: 0,\n//     targetCPUUtilizationPercentage: 0,\n//     scaleTargetRef: {\n//       kind: '',\n//       name: ''\n//     },\n//     metrics: []\n//   }\n// });\n\n// export class KubernetesHorizontalPodAutoScalerCreatePayload {\n//   constructor() {\n//     Object.assign(this, JSON.parse(JSON.stringify(_KubernetesHorizontalPodAutoScalerCreatePayload)));\n//   }\n// }\n\n// const _KubernetesHorizontalPodAutoScalerCPUMetric = Object.freeze({\n//   type: 'Resource',\n//   resource: {\n//     name: 'cpu',\n//     target: {\n//       type: 'Utilization',\n//       averageUtilization: 0\n//     }\n//   }\n// });\n\n// export class KubernetesHorizontalPodAutoScalerCPUMetric {\n//   constructor() {\n//     Object.assign(this, JSON.parse(JSON.stringify(_KubernetesHorizontalPodAutoScalerCPUMetric)));\n//   }\n// }\n\n// const _KubernetesHorizontalPodAutoScalerMemoryMetric = Object.freeze({\n//   type: 'Resource',\n//   resource: {\n//     name: 'memory',\n//     target: {\n//       type: 'AverageValue',\n//       averageValue: ''\n//     }\n//   }\n// });\n\n// export class KubernetesHorizontalPodAutoScalerMemoryMetric {\n//   constructor() {\n//     Object.assign(this, JSON.parse(JSON.stringify(_KubernetesHorizontalPodAutoScalerMemoryMetric)));\n//   }\n// }\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesHorizontalPodAutoScalers', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesHorizontalPodAutoScalersFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/apis/autoscaling/v1' + (namespace ? '/namespaces/:namespace' : '') + '/horizontalpodautoscalers/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          rollback: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport { KubernetesHorizontalPodAutoScalerConverter } from './converter';\n\nclass KubernetesHorizontalPodAutoScalerService {\n  /* @ngInject */\n  constructor($async, KubernetesHorizontalPodAutoScalers) {\n    this.$async = $async;\n    this.KubernetesHorizontalPodAutoScalers = KubernetesHorizontalPodAutoScalers;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    // this.rollbackAsync = this.rollbackAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([\n        this.KubernetesHorizontalPodAutoScalers(namespace).get(params).$promise,\n        this.KubernetesHorizontalPodAutoScalers(namespace).getYaml(params).$promise,\n      ]);\n      const res = KubernetesHorizontalPodAutoScalerConverter.apiToModel(raw, yaml);\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve HorizontalPodAutoScaler', err);\n    }\n  }\n\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesHorizontalPodAutoScalers(namespace).get().$promise;\n      const res = _.map(data.items, (item) => KubernetesHorizontalPodAutoScalerConverter.apiToModel(item));\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve HorizontalPodAutoScalers', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(horizontalPodAutoScaler) {\n    try {\n      const params = {};\n      const payload = KubernetesHorizontalPodAutoScalerConverter.createPayload(horizontalPodAutoScaler);\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesHorizontalPodAutoScalers(namespace).create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create horizontalPodAutoScaler', err);\n    }\n  }\n\n  create(horizontalPodAutoScaler) {\n    return this.$async(this.createAsync, horizontalPodAutoScaler);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(oldHorizontalPodAutoScaler, newHorizontalPodAutoScaler) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newHorizontalPodAutoScaler.Name;\n      const namespace = newHorizontalPodAutoScaler.Namespace;\n      const payload = KubernetesHorizontalPodAutoScalerConverter.patchPayload(oldHorizontalPodAutoScaler, newHorizontalPodAutoScaler);\n      if (!payload.length) {\n        return;\n      }\n      const data = await this.KubernetesHorizontalPodAutoScalers(namespace).patch(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to patch horizontalPodAutoScaler', err);\n    }\n  }\n\n  patch(oldHorizontalPodAutoScaler, newHorizontalPodAutoScaler) {\n    return this.$async(this.patchAsync, oldHorizontalPodAutoScaler, newHorizontalPodAutoScaler);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(horizontalPodAutoScaler) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = horizontalPodAutoScaler.Name;\n      const namespace = horizontalPodAutoScaler.Namespace;\n      await this.KubernetesHorizontalPodAutoScalers(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to remove horizontalPodAutoScaler', err);\n    }\n  }\n\n  delete(horizontalPodAutoScaler) {\n    return this.$async(this.deleteAsync, horizontalPodAutoScaler);\n  }\n}\n\nexport default KubernetesHorizontalPodAutoScalerService;\nangular.module('portainer.kubernetes').service('KubernetesHorizontalPodAutoScalerService', KubernetesHorizontalPodAutoScalerService);\n","export const KubernetesIngressClassAnnotation = 'kubernetes.io/ingress.class';\n\n// keys must match KubernetesIngressClassTypes values to map them quickly using the ingress type\n// KubernetesIngressClassRewriteTargetAnnotations[KubernetesIngressClassTypes.NGINX] for example\n\nexport const KubernetesNginxRewriteTargetAnnotations = {\n  Key: 'nginx.ingress.kubernetes.io/rewrite-target',\n  Value: '/$1',\n};\n\nexport const KubernetesTraefikRewriteTargetAnnotations = {\n  Key: 'traefik.ingress.kubernetes.io/rewrite-target',\n  Value: '/$1',\n};\n\nexport const KubernetesNginxUseregexAnnotations = {\n  Key: 'nginx.ingress.kubernetes.io/use-regex',\n  Value: 'true',\n};\n\nexport const KubernetesIngressClassTypes = Object.freeze({\n  NGINX: 'nginx',\n  TRAEFIK: 'traefik',\n});\n\nexport const PortainerIngressClassTypes = 'ingress.portainer.io/ingress-type';\n","import _ from 'lodash-es';\nimport * as JsonPatch from 'fast-json-patch';\n\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\nimport {\n  KubernetesResourcePoolIngressClassAnnotationFormValue,\n  KubernetesResourcePoolIngressClassFormValue,\n  KubernetesResourcePoolIngressClassHostFormValue,\n} from 'Kubernetes/models/resource-pool/formValues';\nimport { KubernetesIngress, KubernetesIngressRule } from './models';\nimport { KubernetesIngressCreatePayload, KubernetesIngressRuleCreatePayload, KubernetesIngressRulePathCreatePayload } from './payloads';\nimport { KubernetesIngressClassAnnotation, PortainerIngressClassTypes } from './constants';\n\nexport class KubernetesIngressConverter {\n  static apiToModel(data) {\n    const paths = _.flatMap(data.spec.rules, (rule) => {\n      return !rule.http\n        ? []\n        : _.map(rule.http.paths, (path) => {\n            const ingRule = new KubernetesIngressRule();\n            ingRule.IngressName = data.metadata.name;\n            ingRule.ServiceName = path.backend.service.name;\n            ingRule.Host = rule.host || '';\n            ingRule.IP = data.status.loadBalancer.ingress ? data.status.loadBalancer.ingress[0].ip : undefined;\n            ingRule.Port = path.backend.service.port.number;\n            ingRule.Path = path.path;\n            ingRule.TLS = data.spec.tls;\n            return ingRule;\n          });\n    });\n\n    const res = new KubernetesIngress();\n    res.Name = data.metadata.name;\n    res.Namespace = data.metadata.namespace;\n    res.Annotations = data.metadata.annotations || {};\n    res.IngressClassName =\n      data.metadata.annotations && data.metadata.annotations[KubernetesIngressClassAnnotation]\n        ? data.metadata.annotations[KubernetesIngressClassAnnotation]\n        : data.spec.ingressClassName;\n    res.Paths = paths;\n    res.Hosts = _.uniq(_.map(data.spec.rules, 'host'));\n    const idx = _.findIndex(res.Hosts, (h) => h === undefined);\n    if (idx >= 0) {\n      res.Hosts.splice(idx, 1, '');\n    }\n    res.TLS = data.spec.tls;\n    return res;\n  }\n\n  static applicationFormValuesToDeleteIngresses(formValues, application) {\n    const ingresses = angular.copy(formValues.OriginalIngresses);\n    application.Services.forEach((service) => {\n      ingresses.forEach((ingress) => {\n        const paths = _.filter(ingress.Paths, { ServiceName: service.metadata.name });\n        paths.forEach((path) => _.remove(ingress.Paths, path));\n      });\n    });\n    return ingresses;\n  }\n\n  static removeIngressesPaths(ingresses, services) {\n    const originalIngress = angular.copy(ingresses);\n    originalIngress.forEach((ingress) => {\n      services.forEach((service) => {\n        _.remove(ingress.Paths, { ServiceName: service.Name });\n      });\n    });\n    return originalIngress;\n  }\n\n  static generateNewIngresses(ingresses, services) {\n    const originalIngresses = angular.copy(ingresses);\n    services\n      .filter((s) => s.Ingress)\n      .forEach((service) => {\n        if (service.Ports.length !== 0) {\n          const matchedIngress = _.find(originalIngresses, { Name: service.Ports[0].ingress.IngressName });\n          if (matchedIngress) {\n            const rule = new KubernetesIngressRule();\n            rule.ServiceName = service.Name;\n            rule.IngressName = service.Ports[0].ingress.IngressName;\n            rule.Host = service.Ports[0].ingress.Host;\n            rule.Path = _.startsWith(service.Ports[0].ingress.Path, '/') ? service.Ports[0].ingress.Path : '/' + service.Ports[0].ingress.Path;\n            rule.Port = service.Ports[0].port;\n\n            matchedIngress.Paths.push(rule);\n          }\n        }\n      });\n    return originalIngresses;\n  }\n\n  // need this function for [ resource summary ] controller\n  static newApplicationFormValuesToIngresses(formValues, serviceName, servicePorts) {\n    const ingresses = angular.copy(formValues.OriginalIngresses);\n    servicePorts.forEach((port) => {\n      const ingress = port.ingress && _.find(ingresses, { Name: port.ingress.IngressName });\n      if (ingress) {\n        const rule = new KubernetesIngressRule();\n        rule.ServiceName = serviceName;\n        rule.IngressName = port.ingress.IngressName;\n        rule.Host = port.ingress.Host;\n        rule.Path = _.startsWith(port.ingress.Path, '/') ? port.ingress.Path : '/' + port.ingress.Path;\n        rule.Port = port.port;\n\n        ingress.Paths.push(rule);\n      }\n    });\n    return ingresses;\n  }\n\n  /**\n   *\n   * @param {KubernetesResourcePoolIngressClassFormValue[]} formValues\n   * @returns {KubernetesIngress} Ingress\n   */\n  static resourcePoolIngressClassFormValueToIngress(formValues) {\n    const res = new KubernetesIngress();\n    res.Name = formValues.IngressClass.Name;\n    res.Namespace = formValues.Namespace;\n    const pairs = _.map(formValues.Annotations, (a) => [a.Key, a.Value]);\n    res.Annotations = _.fromPairs(pairs);\n    res.Annotations[PortainerIngressClassTypes] = formValues.IngressClass.Name;\n    res.IngressClassName = formValues.IngressClass.Name;\n    res.Hosts = formValues.Hosts;\n    res.Paths = formValues.Paths;\n    return res;\n  }\n\n  /**\n   *\n   * @param {KubernetesIngressClass} ics Ingress classes (saved in Portainer DB)\n   * @param {KubernetesIngress[]} ingresses Existing Kubernetes ingresses. Must be empty for RP CREATE VIEW and filled for RP EDIT VIEW\n   */\n  static ingressClassesToFormValues(ics, ingresses) {\n    const res = _.map(ics, (ic) => {\n      const fv = new KubernetesResourcePoolIngressClassFormValue(ic);\n      const ingress = _.find(ingresses, { Name: ic.Name });\n      if (ingress) {\n        fv.Selected = true;\n        fv.WasSelected = true;\n        fv.Hosts = _.map(ingress.Hosts, (host) => {\n          const hfv = new KubernetesResourcePoolIngressClassHostFormValue();\n          hfv.Host = host;\n          hfv.PreviousHost = host;\n          hfv.IsNew = false;\n          return hfv;\n        });\n        const annotations = _.map(_.toPairs(ingress.Annotations), ([key, value]) => {\n          if (key !== PortainerIngressClassTypes) {\n            const annotation = new KubernetesResourcePoolIngressClassAnnotationFormValue();\n            annotation.Key = key;\n            annotation.Value = value;\n            return annotation;\n          }\n        });\n        fv.Annotations = _.without(annotations, undefined);\n        fv.AdvancedConfig = fv.Annotations.length > 0;\n        fv.Paths = ingress.Paths;\n      }\n      return fv;\n    });\n    return res;\n  }\n\n  static createPayload(data) {\n    const res = new KubernetesIngressCreatePayload();\n    res.metadata.name = data.Name;\n    res.metadata.namespace = data.Namespace;\n    res.metadata.annotations = data.Annotations;\n    res.spec.ingressClassName = data.IngressClassName;\n    if (data.Paths && data.Paths.length) {\n      _.forEach(data.Paths, (p) => {\n        if (p.Host === 'undefined' || p.Host === undefined) {\n          p.Host = '';\n        }\n      });\n      const hostsWithRules = [];\n      const groups = _.groupBy(data.Paths, 'Host');\n      let rules = _.map(groups, (paths, host) => {\n        const updatedHost = _.find(data.Hosts, (h) => {\n          return h === host || h.PreviousHost === host;\n        });\n        host = updatedHost.Host || updatedHost;\n        if (updatedHost.NeedsDeletion) {\n          return;\n        }\n        const rule = new KubernetesIngressRuleCreatePayload();\n        KubernetesCommonHelper.assignOrDeleteIfEmpty(rule, 'host', host);\n        rule.http.paths = _.map(paths, (p) => {\n          const path = new KubernetesIngressRulePathCreatePayload();\n          path.path = p.Path;\n          path.backend.service.name = p.ServiceName;\n          path.backend.service.port.number = p.Port;\n          return path;\n        });\n        hostsWithRules.push(host);\n        return rule;\n      });\n      rules = _.without(rules, undefined);\n      const keptHosts = _.without(\n        _.map(data.Hosts, (h) => (h.NeedsDeletion ? undefined : h.Host || h)),\n        undefined\n      );\n      const hostsWithoutRules = _.without(keptHosts, ...hostsWithRules);\n      const emptyRules = _.map(hostsWithoutRules, (host) => {\n        return { host: host };\n      });\n      rules = _.concat(rules, emptyRules);\n      KubernetesCommonHelper.assignOrDeleteIfEmpty(res, 'spec.rules', rules);\n    } else if (data.Hosts) {\n      res.spec.rules = [];\n      _.forEach(data.Hosts, (host) => {\n        if (!host.NeedsDeletion) {\n          res.spec.rules.push({ host: host.Host || host });\n        }\n      });\n    } else {\n      delete res.spec.rules;\n    }\n    return res;\n  }\n\n  static patchPayload(oldData, newData) {\n    const oldPayload = KubernetesIngressConverter.createPayload(oldData);\n    const newPayload = KubernetesIngressConverter.createPayload(newData);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n","import _ from 'lodash-es';\n\nexport class KubernetesIngressHelper {\n  static findSBoundServiceIngressesRules(ingresses, serviceName) {\n    const rules = _.flatMap(ingresses, 'Paths');\n    return _.filter(rules, { ServiceName: serviceName });\n  }\n}\n","export function KubernetesIngress() {\n  return {\n    Name: '',\n    Namespace: '',\n    Annotations: {},\n    // Host: undefined,\n    Hosts: [],\n    // PreviousHost: undefined, // only use for RP ingress host edit\n    Paths: [],\n    IngressClassName: '',\n    TLS: [],\n  };\n}\n\n// TODO: refactor @LP\n// rename this model to KubernetesIngressPath (and all it's references)\n// as it's conceptually not an ingress rule (element of ingress.spec.rules)\n// but a path (element of ingress.spec.rules[].paths)\nexport function KubernetesIngressRule() {\n  return {\n    IngressName: '',\n    ServiceName: '',\n    Host: '',\n    IP: '',\n    Port: '',\n    Path: '',\n  };\n}\n\nexport function KubernetesIngressClass() {\n  return {\n    Name: '',\n    Type: undefined,\n    NeedsDeletion: false,\n    IsNew: true,\n  };\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\nexport function KubernetesIngressCreatePayload() {\n  return {\n    metadata: new KubernetesCommonMetadataPayload(),\n    spec: {\n      ingressClassName: '',\n      rules: [],\n    },\n  };\n}\n\nexport function KubernetesIngressRuleCreatePayload() {\n  return {\n    host: '',\n    http: {\n      paths: [],\n    },\n  };\n}\n\nexport function KubernetesIngressRulePathCreatePayload() {\n  return {\n    path: '',\n    pathType: 'ImplementationSpecific',\n    backend: {\n      service: {\n        name: '',\n        port: {\n          number: 0,\n        },\n      },\n    },\n  };\n}\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesIngresses', factory);\n\nfunction factory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n  'use strict';\n  return function (namespace) {\n    const url = `${API_ENDPOINT_ENDPOINTS}/:endpointId/kubernetes/apis/networking.k8s.io/v1${namespace ? '/namespaces/:namespace' : ''}/ingresses/:id/:action`;\n    return $resource(\n      url,\n      {\n        endpointId: EndpointProvider.endpointID,\n        namespace: namespace,\n      },\n      {\n        get: {\n          method: 'GET',\n          ignoreLoadingBar: true,\n        },\n        getYaml: {\n          method: 'GET',\n          headers: {\n            Accept: 'application/yaml',\n          },\n          transformResponse: rawResponse,\n          ignoreLoadingBar: true,\n        },\n        create: { method: 'POST' },\n        update: { method: 'PUT' },\n        patch: {\n          method: 'PATCH',\n          headers: {\n            'Content-Type': 'application/json-patch+json',\n          },\n        },\n        rollback: {\n          method: 'PATCH',\n          headers: {\n            'Content-Type': 'application/json-patch+json',\n          },\n        },\n        delete: { method: 'DELETE' },\n      }\n    );\n  };\n}\n","import _ from 'lodash-es';\nimport angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport { KubernetesIngressConverter } from './converter';\n\n/* @ngInject */\nexport function KubernetesIngressService($async, KubernetesIngresses) {\n  return {\n    get,\n    create,\n    patch,\n    delete: _delete,\n  };\n\n  async function getOne(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([KubernetesIngresses(namespace).get(params).$promise, KubernetesIngresses(namespace).getYaml(params).$promise]);\n      const res = {\n        Raw: KubernetesIngressConverter.apiToModel(raw),\n        Yaml: yaml.data,\n      };\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve Ingress', err);\n    }\n  }\n\n  async function getAll(namespace) {\n    try {\n      const data = await KubernetesIngresses(namespace).get().$promise;\n      const res = _.reduce(data.items, (arr, item) => _.concat(arr, KubernetesIngressConverter.apiToModel(item)), []);\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve Ingresses', err);\n    }\n  }\n\n  function get(namespace, name) {\n    if (name) {\n      return $async(getOne, namespace, name);\n    }\n    return $async(getAll, namespace);\n  }\n\n  function create(ingress) {\n    return $async(async () => {\n      try {\n        const params = {};\n        const payload = KubernetesIngressConverter.createPayload(ingress);\n        const namespace = payload.metadata.namespace;\n        const data = await KubernetesIngresses(namespace).create(params, payload).$promise;\n        return data;\n      } catch (err) {\n        throw new PortainerError('Unable to create ingress', err);\n      }\n    });\n  }\n\n  function patch(oldIngress, newIngress) {\n    return $async(async () => {\n      try {\n        const params = new KubernetesCommonParams();\n        params.id = newIngress.Name;\n        const namespace = newIngress.Namespace;\n        const payload = KubernetesIngressConverter.patchPayload(oldIngress, newIngress);\n        if (!payload.length) {\n          return;\n        }\n        const data = await KubernetesIngresses(namespace).patch(params, payload).$promise;\n        return data;\n      } catch (err) {\n        throw new PortainerError('Unable to patch ingress', err);\n      }\n    });\n  }\n\n  function _delete(namespace, ingressClassName) {\n    return $async(async () => {\n      try {\n        const params = new KubernetesCommonParams();\n        params.id = ingressClassName;\n        await KubernetesIngresses(namespace).delete(params).$promise;\n      } catch (err) {\n        throw new PortainerError('Unable to delete ingress', err);\n      }\n    });\n  }\n}\n\nangular.module('portainer.kubernetes').service('KubernetesIngressService', KubernetesIngressService);\n","import { PorImageRegistryModel } from '@/docker/models/porImageRegistry';\nimport { KubernetesApplicationTypes, KubernetesApplicationDeploymentTypes, KubernetesApplicationDataAccessPolicies } from 'Kubernetes/models/application/models/appConstants';\n\n/**\n * KubernetesApplicationFormValues Model\n */\nexport function KubernetesApplicationFormValues() {\n  this.ApplicationType = KubernetesApplicationTypes.Deployment; // will only exist for formValues generated from Application (app edit situation;\n  this.ResourcePool = {};\n  this.Name = '';\n  this.StackName = '';\n  this.ApplicationOwner = '';\n  this.ImageModel = new PorImageRegistryModel();\n  this.Note = '';\n  this.MemoryLimit = 0;\n  this.CpuLimit = 0;\n  this.DeploymentType = KubernetesApplicationDeploymentTypes.Replicated;\n  this.ReplicaCount = 1;\n  this.AutoScaler = {};\n  this.Containers = [];\n  this.Services = [];\n  this.EnvironmentVariables = []; // KubernetesApplicationEnvironmentVariableFormValue lis;\n  this.DataAccessPolicy = KubernetesApplicationDataAccessPolicies.Isolated;\n  this.PersistedFolders = []; // KubernetesApplicationPersistedFolderFormValue lis;\n  this.ConfigMaps = [];\n  this.Secrets = [];\n  this.PublishedPorts = []; // KubernetesApplicationPublishedPortFormValue lis;\n  this.PlacementType = 'preferred';\n  this.Placements = []; // KubernetesApplicationPlacementFormValue lis;\n  this.OriginalIngresses = undefined;\n}\n\n/**\n * KubernetesApplicationConfigurationFormValueOverridenKey Model\n */\nconst _KubernetesApplicationConfigurationFormValueOverridenKey = Object.freeze({\n  key: '',\n  path: '',\n  type: 'ENVIRONMENT',\n});\n\nexport class KubernetesApplicationConfigurationFormValueOverridenKey {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationConfigurationFormValueOverridenKey)));\n  }\n}\n\n/**\n * KubernetesApplicationConfigurationFormValue Model\n */\nconst _KubernetesApplicationConfigurationFormValue = Object.freeze({\n  selectedConfiguration: undefined,\n  overriden: false,\n  overridenKeys: [],\n});\n\nexport class KubernetesApplicationConfigurationFormValue {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationConfigurationFormValue)));\n  }\n}\n\n/**\n * KubernetesApplicationEnvironmentVariableFormValue Model\n */\nconst _KubernetesApplicationEnvironmentVariableFormValue = Object.freeze({\n  name: '',\n  value: '',\n  needsDeletion: false,\n  isNew: true,\n  nameIndex: '', // keep the original name for sorting\n});\n\nexport class KubernetesApplicationEnvironmentVariableFormValue {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationEnvironmentVariableFormValue)));\n  }\n}\n\n/**\n * KubernetesApplicationPersistedFolderFormValue Model\n */\nconst _KubernetesApplicationPersistedFolderFormValue = Object.freeze({\n  persistentVolumeClaimName: '', // will be empty for new volumes (create/edit app) and filled for existing ones (edit)\n  needsDeletion: false,\n  containerPath: '',\n  size: '',\n  sizeUnit: 'GB',\n  storageClass: {},\n  existingVolume: null,\n  useNewVolume: true,\n});\n\nexport class KubernetesApplicationPersistedFolderFormValue {\n  constructor(storageClass) {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationPersistedFolderFormValue)));\n    this.storageClass = storageClass;\n  }\n}\n\n/**\n * KubernetesApplicationPublishedPortFormValue Model\n */\nexport function KubernetesApplicationPublishedPortFormValue() {\n  return {\n    NeedsDeletion: false,\n    IsNew: true,\n    ContainerPort: '',\n    NodePort: '',\n    LoadBalancerPort: '',\n    LoadBalancerNodePort: undefined, // only filled to save existing loadbalancer nodePort and drop it when moving app exposure from LB to Internal/NodePort\n    Protocol: 'TCP',\n    IngressName: undefined,\n    IngressRoute: undefined,\n    IngressHost: undefined,\n    IngressHosts: [],\n  };\n}\n\nexport function KubernetesApplicationPlacementFormValue() {\n  return {\n    label: {},\n    value: '',\n    needsDeletion: false,\n    isNew: true,\n  };\n}\n\n/**\n * KubernetesApplicationAutoScalerFormValue Model\n */\nconst _KubernetesApplicationAutoScalerFormValue = Object.freeze({\n  minReplicas: 0,\n  maxReplicas: 0,\n  targetCpuUtilizationPercentage: 50,\n  apiVersion: '',\n  isUsed: false,\n});\n\nexport class KubernetesApplicationAutoScalerFormValue {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationAutoScalerFormValue)));\n  }\n}\n\nexport function KubernetesFormValidationReferences() {\n  return {\n    refs: {},\n    hasRefs: false,\n  };\n}\n","export const KubernetesApplicationQuotaDefaults = {\n  CpuLimit: 0.1,\n  MemoryLimit: 128, // MB\n};\n\nexport const KubernetesPortainerApplicationStackNameLabel = 'io.portainer.kubernetes.application.stack';\n\nexport const KubernetesPortainerApplicationStackIdLabel = 'io.portainer.kubernetes.application.stackid';\n\nexport const KubernetesPortainerApplicationKindLabel = 'io.portainer.kubernetes.application.kind';\n\nexport const KubernetesPortainerApplicationNameLabel = 'io.portainer.kubernetes.application.name';\n\nexport const KubernetesPortainerApplicationOwnerLabel = 'io.portainer.kubernetes.application.owner';\n\nexport const KubernetesPortainerApplicationNote = 'io.portainer.kubernetes.application.note';\n","export * from './constants';\n\n/**\n * KubernetesApplication Model (Composite)\n */\nconst _KubernetesApplication = Object.freeze({\n  Id: '',\n  Name: '',\n  StackName: '',\n  StackId: '',\n  ApplicationKind: '',\n  ApplicationOwner: '',\n  ApplicationName: '',\n  ResourcePool: '',\n  Image: '',\n  CreationDate: 0,\n  Pods: [],\n  Containers: [],\n  Metadata: {},\n  Limits: {},\n  ServiceType: '',\n  ServiceId: '',\n  ServiceName: '',\n  HeadlessServiceName: undefined, // only used for StatefulSet\n  LoadBalancerIPAddress: undefined, // only filled when bound service is LoadBalancer and state is available\n  PublishedPorts: [],\n  Volumes: [],\n  Env: [],\n  PersistedFolders: [], // KubernetesApplicationPersistedFolder list\n  ConfigurationVolumes: [], // KubernetesApplicationConfigurationVolume list\n  DeploymentType: 'Unknown',\n  DataAccessPolicy: 'Unknown',\n  ApplicationType: 'Unknown',\n  RunningPodsCount: 0,\n  TotalPodsCount: 0,\n  Yaml: '',\n  Note: '',\n  Raw: undefined, // only filled when inspecting app details / create / edit view (never filled in multiple-apps views)\n  AutoScaler: undefined, // only filled if the application has an HorizontalPodAutoScaler bound to it\n});\n\nexport class KubernetesApplication {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplication)));\n  }\n}\n\n/**\n * HelmApplication Model (Composite)\n */\nexport class HelmApplication {\n  constructor() {\n    this.Id = '';\n    this.Name = '';\n    this.KubernetesApplications = [];\n    this.ApplicationOwner = '';\n    this.CreationDate = 0;\n    this.ApplicationType = 'Unknown';\n    this.Status = '';\n    this.StackName = '-';\n    this.ResourcePool = '-';\n    this.Image = '-';\n    this.PublishedPorts = [];\n  }\n}\n\n/**\n * KubernetesApplicationPersistedFolder Model\n */\nconst _KubernetesApplicationPersistedFolder = Object.freeze({\n  MountPath: '',\n  persistentVolumeClaimName: '',\n  HostPath: '',\n});\n\nexport class KubernetesApplicationPersistedFolder {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationPersistedFolder)));\n  }\n}\n\n/**\n * KubernetesApplicationConfigurationVolume Model\n */\nconst _KubernetesApplicationConfigurationVolume = Object.freeze({\n  fileMountPath: '',\n  rootMountPath: '',\n  configurationKey: '',\n  configurationName: '',\n});\n\nexport class KubernetesApplicationConfigurationVolume {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationConfigurationVolume)));\n  }\n}\n\n/**\n * KubernetesApplicationPort Model\n */\nconst _KubernetesApplicationPort = Object.freeze({\n  IngressRules: [], // KubernetesIngressRule[]\n  NodePort: 0,\n  TargetPort: 0,\n  Port: 0,\n  Protocol: '',\n});\n\nexport class KubernetesApplicationPort {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationPort)));\n  }\n}\n\nexport const KubernetesDeploymentTypes = Object.freeze({\n  GIT: 'git',\n  CONTENT: 'content',\n  APPLICATION_FORM: 'application form',\n  URL: 'url',\n});\n","/////////////////////////// VOLUME MOUNT ///////////////////////////////\n/**\n * KubernetesApplicationVolumeMount Model\n */\nconst _KubernetesApplicationVolumeMount = Object.freeze({\n  name: '',\n  mountPath: '',\n  readOnly: false,\n});\n\nexport class KubernetesApplicationVolumeMountPayload {\n  constructor(readOnly) {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationVolumeMount)));\n    if (readOnly) {\n      this.readOnly = true;\n    } else {\n      delete this.readOnly;\n    }\n  }\n}\n\n///////////////////////////////// PVC /////////////////////////////////\n/**\n * KubernetesApplicationVolumePersistentPayload Model\n */\nconst _KubernetesApplicationVolumePersistentPayload = Object.freeze({\n  name: '',\n  persistentVolumeClaim: {\n    claimName: '',\n  },\n});\n\nexport class KubernetesApplicationVolumePersistentPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationVolumePersistentPayload)));\n  }\n}\n\n/////////////////////////////// CONFIG AS VOLUME ////////////////////////\n/**\n * KubernetesApplicationVolumeConfigMapPayload Model\n */\nconst _KubernetesApplicationVolumeConfigMapPayload = Object.freeze({\n  name: '',\n  configMap: {\n    name: '',\n    items: [], // KubernetesApplicationVolumeEntryPayload\n  },\n});\n\nexport class KubernetesApplicationVolumeConfigMapPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationVolumeConfigMapPayload)));\n  }\n}\n\n//////////////////// SECRET AS VOLUME /////////////////////////////////////\n/**\n * KubernetesApplicationVolumeSecretPayload Model\n */\nconst _KubernetesApplicationVolumeSecretPayload = Object.freeze({\n  name: '',\n  secret: {\n    secretName: '',\n    items: [], // KubernetesApplicationVolumeEntryPayload\n  },\n});\n\nexport class KubernetesApplicationVolumeSecretPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationVolumeSecretPayload)));\n  }\n}\n\n/**\n * KubernetesApplicationVolumeEntryPayload Model\n */\nconst _KubernetesApplicationVolumeEntryPayload = Object.freeze({\n  key: '',\n  path: '',\n});\n\nexport class KubernetesApplicationVolumeEntryPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationVolumeEntryPayload)));\n  }\n}\n\n//////////////////////////// ENV ENTRY //////////////////////////////\n/**\n * KubernetesApplicationEnvPayload Model\n */\nconst _KubernetesApplicationEnvPayload = Object.freeze({\n  name: '',\n  value: '',\n});\n\nexport class KubernetesApplicationEnvPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationEnvPayload)));\n  }\n}\n\n///////////////////////// CONFIG AS ENV ////////////////////////////////\n/**\n * KubernetesApplicationEnvConfigMapPayload Model\n */\nconst _KubernetesApplicationEnvConfigMapPayload = Object.freeze({\n  name: '',\n  valueFrom: {\n    configMapKeyRef: {\n      name: '',\n      key: '',\n    },\n  },\n});\n\nexport class KubernetesApplicationEnvConfigMapPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationEnvConfigMapPayload)));\n  }\n}\n\n//////////////////////// SECRET AS ENV //////////////////////////////////\n/**\n * KubernetesApplicationEnvSecretPayload Model\n */\nconst _KubernetesApplicationEnvSecretPayload = Object.freeze({\n  name: '',\n  valueFrom: {\n    secretKeyRef: {\n      name: '',\n      key: '',\n    },\n  },\n});\n\nexport class KubernetesApplicationEnvSecretPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationEnvSecretPayload)));\n  }\n}\n","/**\n * Generic params\n */\nexport function KubernetesCommonParams() {\n  return {\n    id: '',\n  };\n}\n","/**\n * Generic metadata payload\n */\nconst _KubernetesCommonMetadataPayload = Object.freeze({\n  uid: '',\n  name: '',\n  namespace: '',\n  labels: {},\n  annotations: {},\n});\nexport class KubernetesCommonMetadataPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesCommonMetadataPayload)));\n  }\n}\n","export const KubernetesPortainerConfigMapNamespace = 'portainer';\nexport const KubernetesPortainerConfigMapConfigName = 'portainer-config';\nexport const KubernetesPortainerConfigMapAccessKey = 'NamespaceAccessPolicies';\n\nexport function KubernetesPortainerAccessConfigMap() {\n  return {\n    Id: 0,\n    Name: KubernetesPortainerConfigMapConfigName,\n    Namespace: KubernetesPortainerConfigMapNamespace,\n    Data: {},\n  };\n}\n\n/**\n * ConfigMap Model\n */\nconst _KubernetesConfigMap = Object.freeze({\n  Id: 0,\n  Name: '',\n  Namespace: '',\n  Yaml: '',\n  ConfigurationOwner: '',\n  Data: [],\n  Labels: {},\n});\n\nexport class KubernetesConfigMap {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesConfigMap)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * Payload for CREATE\n */\nconst _KubernetesConfigMapCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  data: {},\n  binaryData: {},\n});\nexport class KubernetesConfigMapCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesConfigMapCreatePayload)));\n  }\n}\n\n/**\n * Payload for UPDATE\n */\nconst _KubernetesConfigMapUpdatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  data: {},\n  binaryData: {},\n});\nexport class KubernetesConfigMapUpdatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesConfigMapUpdatePayload)));\n  }\n}\n","import { KubernetesConfigurationKinds, KubernetesSecretTypeOptions } from './models';\n\n/**\n * KubernetesConfigurationFormValues Model\n */\nconst _KubernetesConfigurationFormValues = Object.freeze({\n  Id: '',\n  ResourcePool: '',\n  Name: '',\n  ConfigurationOwner: '',\n  Kind: KubernetesConfigurationKinds.CONFIGMAP,\n  Data: [],\n  DataYaml: '',\n  IsSimple: true,\n  ServiceAccountName: '',\n  Type: KubernetesSecretTypeOptions.OPAQUE.value,\n  Labels: {},\n});\n\nexport class KubernetesConfigurationFormValues {\n  constructor() {\n    Object.assign(this, _KubernetesConfigurationFormValues);\n  }\n}\n\nconst _KubernetesConfigurationFormValuesEntry = Object.freeze({\n  Key: '',\n  Value: '',\n  IsBinary: false,\n});\n\nexport class KubernetesConfigurationFormValuesEntry {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesConfigurationFormValuesEntry)));\n  }\n}\n","export const KubernetesPortainerConfigurationOwnerLabel = 'io.portainer.kubernetes.configuration.owner';\nexport const KubernetesPortainerConfigurationDataAnnotation = 'io.portainer.kubernetes.configuration.data';\n\n/**\n * Configuration Model (Composite)\n */\nconst _KubernetesConfiguration = Object.freeze({\n  Id: 0,\n  Name: '',\n  Kind: '',\n  Namespace: '',\n  CreationDate: '',\n  ConfigurationOwner: '',\n  Used: false,\n  Applications: [],\n  Data: {},\n  SecretType: '',\n});\n\nexport class KubernetesConfiguration {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesConfiguration)));\n  }\n}\n\nexport const KubernetesConfigurationKinds = Object.freeze({\n  CONFIGMAP: 1,\n  SECRET: 2,\n});\n\nexport const KubernetesSecretTypeOptions = Object.freeze({\n  OPAQUE: { name: 'Opaque', value: 'Opaque' },\n  SERVICEACCOUNTTOKEN: { name: 'Service account token', value: 'kubernetes.io/service-account-token' },\n  DOCKERCFG: { name: 'Dockercfg', value: 'kubernetes.io/dockercfg' },\n  DOCKERCONFIGJSON: { name: 'Dockerconfigjson', value: 'kubernetes.io/dockerconfigjson' },\n  BASICAUTH: { name: 'Basic auth', value: 'kubernetes.io/basic-auth' },\n  SSHAUTH: { name: 'SSH auth', value: 'kubernetes.io/ssh-auth' },\n  TLS: { name: 'TLS', value: 'kubernetes.io/tls' },\n  BOOTSTRAPTOKEN: { name: 'Bootstrap token', value: 'bootstrap.kubernetes.io/token' },\n  CUSTOM: { name: 'Custom', value: 'Custom' },\n});\n","/**\n * KubernetesDaemonSet Model\n */\nconst _KubernetesDaemonSet = Object.freeze({\n  Namespace: '',\n  Name: '',\n  StackName: '',\n  ImageModel: null,\n  Env: [],\n  CpuLimit: 0,\n  MemoryLimit: 0,\n  VoluemMounts: [],\n  Volumes: [],\n  Secret: undefined,\n  ApplicationName: '',\n  ApplicationOwner: '',\n  Note: '',\n  Affinity: undefined, // KubernetesPodAffinity\n});\n\nexport class KubernetesDaemonSet {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesDaemonSet)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * KubernetesDaemonSetCreatePayload Model\n */\nconst _KubernetesDaemonSetCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  spec: {\n    replicas: 0,\n    selector: {\n      matchLabels: {\n        app: '',\n      },\n    },\n    updateStrategy: {\n      type: 'RollingUpdate',\n      rollingUpdate: {\n        maxUnavailable: 1,\n      },\n    },\n    template: {\n      metadata: {\n        labels: {\n          app: '',\n        },\n      },\n      spec: {\n        containers: [\n          {\n            name: '',\n            image: '',\n            env: [],\n            resources: {\n              limits: {},\n              requests: {},\n            },\n            volumeMounts: [],\n          },\n        ],\n        volumes: [],\n      },\n    },\n  },\n});\n\nexport class KubernetesDaemonSetCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesDaemonSetCreatePayload)));\n  }\n}\n","export const KubernetesDeployManifestTypes = Object.freeze({\n  KUBERNETES: 1,\n});\n\nexport const KubernetesDeployBuildMethods = Object.freeze({\n  GIT: 1,\n  WEB_EDITOR: 2,\n  CUSTOM_TEMPLATE: 3,\n  URL: 4,\n  HELM: 5,\n});\n\nexport const KubernetesDeployRequestMethods = Object.freeze({\n  REPOSITORY: 'repository',\n  STRING: 'string',\n  URL: 'url',\n});\n\nexport const RepositoryMechanismTypes = Object.freeze({\n  WEBHOOK: 'Webhook',\n  INTERVAL: 'Interval',\n});\n","/**\n * KubernetesDeployment Model\n */\nconst _KubernetesDeployment = Object.freeze({\n  Namespace: '',\n  Name: '',\n  StackName: '',\n  ReplicaCount: 0,\n  ImageModel: null,\n  Env: [],\n  CpuLimit: 0,\n  MemoryLimit: 0,\n  VolumeMounts: [],\n  Volumes: [],\n  Secret: undefined,\n  ApplicationName: '',\n  ApplicationOwner: '',\n  Note: '',\n  Affinity: undefined, // KubernetesPodAffinity\n});\n\nexport class KubernetesDeployment {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesDeployment)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * KubernetesDeploymentCreatePayload Model\n */\nconst _KubernetesDeploymentCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  spec: {\n    replicas: 0,\n    selector: {\n      matchLabels: {\n        app: '',\n      },\n    },\n    strategy: {\n      type: 'RollingUpdate',\n      rollingUpdate: {\n        maxSurge: 0,\n        maxUnavailable: '100%',\n      },\n    },\n    template: {\n      metadata: {\n        labels: {\n          app: '',\n        },\n      },\n      spec: {\n        affinity: {},\n        containers: [\n          {\n            name: '',\n            image: '',\n            env: [],\n            resources: {\n              limits: {},\n              requests: {},\n            },\n            volumeMounts: [],\n          },\n        ],\n        volumes: [],\n      },\n    },\n  },\n});\n\nexport class KubernetesDeploymentCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesDeploymentCreatePayload)));\n  }\n}\n","/**\n * KubernetesEvent Model\n */\nconst _KubernetesEvent = Object.freeze({\n  Id: '',\n  Date: 0,\n  Type: '',\n  Message: '',\n  Involved: {},\n});\n\nexport class KubernetesEvent {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesEvent)));\n  }\n}\n","export const KubernetesSystem_DefaultDeploymentUniqueLabelKey = 'pod-template-hash';\nexport const KubernetesSystem_RevisionAnnotation = 'deployment.kubernetes.io/revision';\nexport const KubernetesSystem_RevisionHistoryAnnotation = 'deployment.kubernetes.io/revision-history';\nexport const KubernetesSystem_DesiredReplicasAnnotation = 'deployment.kubernetes.io/desired-replicas';\nexport const KubernetesSystem_MaxReplicasAnnotation = 'deployment.kubernetes.io/max-replicas';\n\n// annotationsToSkip lists the annotations that should be preserved from the deployment and not\n// copied from the replicaset when rolling a deployment back\n// var annotationsToSkip = map[string]bool{\n//   corev1.LastAppliedConfigAnnotation:       true,\n//   deploymentutil.RevisionAnnotation:        true,\n//   deploymentutil.RevisionHistoryAnnotation: true,\n//   deploymentutil.DesiredReplicasAnnotation: true,\n//   deploymentutil.MaxReplicasAnnotation:     true,\n//   appsv1.DeprecatedRollbackTo:              true,\n// }\n\n// LastAppliedConfigAnnotation is the annotation used to store the previous\n// configuration of a resource for use in a three way diff by UpdateApplyAnnotation.\nconst LastAppliedConfigAnnotation = 'kubectl.kubernetes.io/last-applied-configuration';\n\nconst DeprecatedRollbackTo = 'deprecated.deployment.rollback.to';\n\nexport const KubernetesSystem_AnnotationsToSkip = {\n  [LastAppliedConfigAnnotation]: true,\n  [KubernetesSystem_RevisionAnnotation]: true,\n  [KubernetesSystem_RevisionHistoryAnnotation]: true,\n  [KubernetesSystem_DesiredReplicasAnnotation]: true,\n  [KubernetesSystem_MaxReplicasAnnotation]: true,\n  [DeprecatedRollbackTo]: true,\n};\n","export class KubernetesNamespace {\n  constructor() {\n    this.Id = '';\n    this.Name = '';\n    this.CreationDate = '';\n    this.Status = '';\n    this.Yaml = '';\n    this.ResourcePoolName = '';\n    this.ResourcePoolOwner = '';\n    this.IsSystem = false;\n  }\n}\n\nexport const KUBERNETES_DEFAULT_SYSTEM_NAMESPACES = ['kube-system', 'kube-public', 'kube-node-lease', 'portainer'];\nexport const KUBERNETES_DEFAULT_NAMESPACE = 'default';\n","import { KubernetesCommonMetadataPayload } from '../common/payloads';\n\n/**\n * KubernetesNamespaceCreatePayload Model\n */\nconst _KubernetesNamespaceCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n});\n\nexport class KubernetesNamespaceCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNamespaceCreatePayload)));\n  }\n}\n","import _ from 'lodash-es';\n\n/**\n * NodesLimits Model\n */\nexport class KubernetesNodesLimits {\n  constructor(nodesLimits) {\n    this.MaxCPU = 0;\n    this.MaxMemory = 0;\n    this.nodesLimits = this.convertCPU(nodesLimits);\n\n    this.calculateMaxCPUMemory();\n  }\n\n  convertCPU(nodesLimits) {\n    _.forEach(nodesLimits, (value) => {\n      if (value.CPU) {\n        value.CPU /= 1000.0;\n      }\n    });\n    return nodesLimits;\n  }\n\n  calculateMaxCPUMemory() {\n    const nodesLimitsArray = Object.values(this.nodesLimits);\n    this.MaxCPU = _.maxBy(nodesLimitsArray, 'CPU').CPU;\n    this.MaxMemory = _.maxBy(nodesLimitsArray, 'Memory').Memory;\n  }\n\n  // check if there is enough cpu and memory to allocate containers in replica mode\n  overflowForReplica(cpu, memory, instances) {\n    _.forEach(this.nodesLimits, (value) => {\n      instances -= Math.min(Math.floor(value.CPU / cpu), Math.floor(value.Memory / memory));\n    });\n\n    return instances > 0;\n  }\n\n  // check if there is enough cpu and memory to allocate containers in global mode\n  overflowForGlobal(cpu, memory) {\n    let overflow = false;\n\n    _.forEach(this.nodesLimits, (value) => {\n      if (cpu > value.CPU || memory > value.Memory) {\n        overflow = true;\n      }\n    });\n\n    return overflow;\n  }\n\n  excludesPods(pods, cpuLimit, memoryLimit) {\n    const nodesLimits = this.nodesLimits;\n\n    _.forEach(pods, (value) => {\n      const node = value.Node;\n      if (node && nodesLimits[node]) {\n        nodesLimits[node].CPU += cpuLimit;\n        nodesLimits[node].Memory += memoryLimit;\n      }\n    });\n\n    this.calculateMaxCPUMemory();\n  }\n}\n","/**\n * PortMappingPort Model\n */\nconst _KubernetesPortMappingPort = Object.freeze({\n  Port: 0,\n  TargetPort: 0,\n  Protocol: '',\n  IngressRules: [], // KubernetesIngressRule[]\n});\n\nexport class KubernetesPortMappingPort {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPortMappingPort)));\n  }\n}\n\n/**\n * PortMapping Model\n */\nconst _KubernetesPortMapping = Object.freeze({\n  Expanded: false,\n  Highlighted: false,\n  ResourcePool: '',\n  ServiceType: '',\n  ApplicationOwner: '',\n  LoadBalancerIPAddress: '',\n  Ports: [],\n});\n\nexport class KubernetesPortMapping {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPortMapping)));\n  }\n}\n","import { KubernetesNginxRewriteTargetAnnotations, KubernetesNginxUseregexAnnotations, KubernetesTraefikRewriteTargetAnnotations } from 'Kubernetes/ingress/constants';\n\nexport function KubernetesResourcePoolFormValues(defaults) {\n  this.Name = '';\n  this.MemoryLimit = defaults.MemoryLimit;\n  this.CpuLimit = defaults.CpuLimit;\n  this.HasQuota = false;\n  this.IngressClasses = []; // KubernetesResourcePoolIngressClassFormValue\n  this.Registries = []; // RegistryViewModel\n  this.EndpointId = 0;\n  this.IsSystem = false;\n}\n\n/**\n * @param {KubernetesIngressClass} ingressClass\n */\nexport function KubernetesResourcePoolIngressClassFormValue(ingressClass) {\n  return {\n    Namespace: undefined, // will be filled inside ResourcePoolService.create\n    IngressClass: ingressClass,\n    RewriteTarget: false,\n    Annotations: [], // KubernetesResourcePoolIngressClassAnnotationFormValue\n    Hosts: [],\n    Selected: false,\n    WasSelected: false,\n    AdvancedConfig: false,\n    Paths: [], // will be filled to save IngressClass.Paths inside ingressClassesToFormValues() on RP EDIT\n  };\n}\n\nexport function KubernetesResourcePoolIngressClassAnnotationFormValue() {\n  return {\n    Key: '',\n    Value: '',\n  };\n}\n\nexport function KubernetesResourcePoolIngressClassHostFormValue() {\n  return {\n    Host: '',\n    PreviousHost: '',\n    NeedsDeletion: false,\n    IsNew: true,\n  };\n}\n\nexport function KubernetesResourcePoolNginxRewriteAnnotationFormValue() {\n  return KubernetesNginxRewriteTargetAnnotations;\n}\n\nexport function KubernetesResourcePoolNginxUseregexAnnotationFormValue() {\n  return KubernetesNginxUseregexAnnotations;\n}\n\nexport function KubernetesResourcePoolTraefikRewriteAnnotationFormValue() {\n  return KubernetesTraefikRewriteTargetAnnotations;\n}\n","export const KubernetesPortainerResourcePoolNameLabel = 'io.portainer.kubernetes.resourcepool.name';\n\nexport const KubernetesPortainerResourcePoolOwnerLabel = 'io.portainer.kubernetes.resourcepool.owner';\n\nexport const KubernetesPortainerNamespaceSystemLabel = 'io.portainer.kubernetes.namespace.system';\n\n/**\n * KubernetesResourcePool Model\n */\nexport function KubernetesResourcePool() {\n  return {\n    Namespace: {}, // KubernetesNamespace\n    Quota: undefined, // KubernetesResourceQuota,\n    Ingresses: [], // KubernetesIngress[]\n    Yaml: '',\n  };\n}\n","import KubernetesResourceQuotaHelper from 'Kubernetes/helpers/resourceQuotaHelper';\n\nexport const KubernetesPortainerResourceQuotaPrefix = 'portainer-rq-';\nexport const KubernetesPortainerResourceQuotaCPULimit = 'limits.cpu';\nexport const KubernetesPortainerResourceQuotaMemoryLimit = 'limits.memory';\nexport const KubernetesPortainerResourceQuotaCPURequest = 'requests.cpu';\nexport const KubernetesPortainerResourceQuotaMemoryRequest = 'requests.memory';\n\nexport const KubernetesResourceQuotaDefaults = {\n  CpuLimit: 0,\n  MemoryLimit: 0,\n};\n\nexport function KubernetesResourceQuota(namespace) {\n  return {\n    Id: '',\n    Namespace: namespace ? namespace : '',\n    Name: namespace ? KubernetesResourceQuotaHelper.generateResourceQuotaName(namespace) : '',\n    CpuLimit: KubernetesResourceQuotaDefaults.CpuLimit,\n    MemoryLimit: KubernetesResourceQuotaDefaults.MemoryLimit,\n    CpuLimitUsed: KubernetesResourceQuotaDefaults.CpuLimit,\n    MemoryLimitUsed: KubernetesResourceQuotaDefaults.MemoryLimit,\n    Yaml: '',\n    ResourcePoolName: '',\n    ResourcePoolOwner: '',\n  };\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\nimport {\n  KubernetesPortainerResourceQuotaCPURequest,\n  KubernetesPortainerResourceQuotaMemoryRequest,\n  KubernetesPortainerResourceQuotaCPULimit,\n  KubernetesPortainerResourceQuotaMemoryLimit,\n} from './models';\n\nexport function KubernetesResourceQuotaCreatePayload() {\n  return {\n    metadata: new KubernetesCommonMetadataPayload(),\n    spec: {\n      hard: {\n        [KubernetesPortainerResourceQuotaCPURequest]: 0,\n        [KubernetesPortainerResourceQuotaMemoryRequest]: 0,\n        [KubernetesPortainerResourceQuotaCPULimit]: 0,\n        [KubernetesPortainerResourceQuotaMemoryLimit]: 0,\n      },\n    },\n  };\n}\n","/**\n * KubernetesResourceReservation Model\n */\nconst _KubernetesResourceReservation = Object.freeze({\n  Memory: 0,\n  CPU: 0,\n});\n\nexport class KubernetesResourceReservation {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesResourceReservation)));\n  }\n}\n","export const KubernetesResourceTypes = Object.freeze({\n  NAMESPACE: 'Namespace',\n  RESOURCEQUOTA: 'ResourceQuota',\n  CONFIGMAP: 'ConfigMap',\n  SECRET: 'Secret',\n  DEPLOYMENT: 'Deployment',\n  STATEFULSET: 'StatefulSet',\n  DAEMONSET: 'Daemonset',\n  PERSISTENT_VOLUME_CLAIM: 'PersistentVolumeClaim',\n  SERVICE: 'Service',\n  INGRESS: 'Ingress',\n  HORIZONTAL_POD_AUTOSCALER: 'HorizontalPodAutoscaler',\n});\n\nexport const KubernetesResourceActions = Object.freeze({\n  CREATE: 'Create',\n  UPDATE: 'Update',\n  DELETE: 'Delete',\n});\n","/**\n * KubernetesApplicationSecret Model\n */\nconst _KubernetesApplicationSecret = Object.freeze({\n  Id: 0,\n  Name: '',\n  Namespace: '',\n  Type: '',\n  CreationDate: '',\n  ConfigurationOwner: '',\n  Yaml: '',\n  Data: [],\n  SecretType: '',\n  Annotations: [],\n  Labels: {},\n});\n\nexport class KubernetesApplicationSecret {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationSecret)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * KubernetesSecretCreatePayload Model\n */\nconst _KubernetesSecretCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  type: '',\n  data: {},\n  stringData: {},\n});\n\nexport class KubernetesSecretCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesSecretCreatePayload)));\n  }\n}\n\n/**\n * KubernetesSecretUpdatePayload Model\n */\nconst _KubernetesSecretUpdatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  type: '',\n  data: {},\n  stringData: {},\n});\n\nexport class KubernetesSecretUpdatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesSecretUpdatePayload)));\n  }\n}\n","export const KubernetesServiceHeadlessPrefix = 'headless-';\nexport const KubernetesServiceHeadlessClusterIP = 'None';\nexport const KubernetesServiceTypes = Object.freeze({\n  LOAD_BALANCER: 'LoadBalancer',\n  NODE_PORT: 'NodePort',\n  CLUSTER_IP: 'ClusterIP',\n  INGRESS: 'Ingress',\n});\n\n/**\n * KubernetesService Model\n */\nconst _KubernetesService = Object.freeze({\n  Headless: false,\n  Namespace: '',\n  Name: '',\n  StackName: '',\n  Ports: [],\n  Type: '',\n  ClusterIP: '',\n  ApplicationName: '',\n  ApplicationOwner: '',\n  Note: '',\n  Ingress: false,\n  Selector: {},\n  nodePortError: false,\n  servicePortError: false,\n});\n\nexport class KubernetesService {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesService)));\n  }\n}\n\nconst _KubernetesIngressService = Object.freeze({\n  Headless: false,\n  Namespace: '',\n  Name: '',\n  StackName: '',\n  Ports: [],\n  Type: '',\n  ClusterIP: '',\n  ApplicationName: '',\n  ApplicationOwner: '',\n  Note: '',\n  Ingress: true,\n  IngressRoute: [],\n});\n\nexport class KubernetesIngressService {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesIngressService)));\n  }\n}\n\n/**\n * KubernetesServicePort Model\n */\nconst _KubernetesServicePort = Object.freeze({\n  name: '',\n  port: 0,\n  targetPort: 0,\n  protocol: '',\n  nodePort: 0,\n  ingress: '',\n});\n\nexport class KubernetesServicePort {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesServicePort)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * KubernetesServiceCreatePayload Model\n */\nconst _KubernetesServiceCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  spec: {\n    ports: [],\n    selector: {\n      app: '',\n    },\n    type: '',\n    clusterIP: '',\n  },\n});\n\nexport class KubernetesServiceCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesServiceCreatePayload)));\n  }\n}\n","/**\n * Stack Model\n */\nconst _KubernetesStack = Object.freeze({\n  Name: '',\n  ResourcePool: '',\n  Applications: [],\n});\n\nexport class KubernetesStack {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesStack)));\n  }\n}\n","/**\n * KubernetesStatefulSet Model\n */\nconst _KubernetesStatefulSet = Object.freeze({\n  Namespace: '',\n  Name: '',\n  StackName: '',\n  ReplicaCount: 0,\n  ImageModel: null,\n  Env: [],\n  CpuLimit: '',\n  MemoryLimit: '',\n  VolumeMounts: [],\n  Volumes: [],\n  Secret: undefined,\n  VolumeClaims: [],\n  ServiceName: '',\n  ApplicationName: '',\n  ApplicationOwner: '',\n  Note: '',\n  Affinity: undefined, // KubernetesPodAffinity\n});\n\nexport class KubernetesStatefulSet {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesStatefulSet)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * KubernetesStatefulSetCreatePayload Model\n */\nconst _KubernetesStatefulSetCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  spec: {\n    replicas: 0,\n    serviceName: '',\n    selector: {\n      matchLabels: {\n        app: '',\n      },\n    },\n    volumeClaimTemplates: [],\n    updateStrategy: {\n      type: 'RollingUpdate',\n      rollingUpdate: {\n        partition: 0,\n      },\n    },\n    template: {\n      metadata: {\n        labels: {\n          app: '',\n        },\n      },\n      spec: {\n        containers: [\n          {\n            name: '',\n            image: '',\n            env: [],\n            resources: {\n              limits: {},\n              requests: {},\n            },\n            volumeMounts: [],\n          },\n        ],\n        volumes: [],\n      },\n    },\n  },\n});\n\nexport class KubernetesStatefulSetCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesStatefulSetCreatePayload)));\n  }\n}\n","/**\n * KubernetesStorageClassAccessPolicies Model\n */\nconst _KubernetesStorageClassAccessPolicies = Object.freeze([\n  {\n    Name: 'ReadWriteOnce',\n    Description: 'Allow read-write from a single pod only (RWO)',\n    selected: true,\n  },\n  {\n    Name: 'ReadWriteMany',\n    Description: 'Allow read-write access from one or more pods concurrently (RWX)',\n    selected: false,\n  },\n]);\n\nexport function KubernetesStorageClassAccessPolicies() {\n  return JSON.parse(JSON.stringify(_KubernetesStorageClassAccessPolicies));\n}\n\n/**\n * KubernetesStorageClass Model\n */\nconst _KubernetesStorageClass = Object.freeze({\n  Name: '',\n  AccessModes: [],\n  Provisioner: '',\n  AllowVolumeExpansion: false,\n});\n\nexport class KubernetesStorageClass {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesStorageClass)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * KubernetesStorageClassCreatePayload Model\n */\nconst _KubernetesStorageClassCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  provisioner: '',\n  allowVolumeExpansion: false,\n});\n\nexport class KubernetesStorageClassCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesStorageClassCreatePayload)));\n  }\n}\n","import uuidv4 from 'uuid/v4';\n/**\n * KubernetesPersistentVolumeClaim Model\n */\nconst _KubernetesPersistentVolumeClaim = Object.freeze({\n  Id: '',\n  Name: '',\n  PreviousName: '',\n  Namespace: '',\n  Storage: 0,\n  storageClass: {}, // KubernetesStorageClass\n  CreationDate: '',\n  ApplicationOwner: '',\n  AccessModes: [],\n  ApplicationName: '',\n  MountPath: '', // used for Application creation from ApplicationFormValues | not used from API conversion\n  Yaml: '',\n});\n\nexport class KubernetesPersistentVolumeClaim {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPersistentVolumeClaim)));\n    this.Name = uuidv4();\n  }\n}\n\n/**\n * KubernetesVolume Model (Composite)\n */\nconst _KubernetesVolume = Object.freeze({\n  ResourcePool: {}, // KubernetesResourcePool\n  PersistentVolumeClaim: {}, // KubernetesPersistentVolumeClaim\n  Applications: [], // KubernetesApplication\n});\n\nexport class KubernetesVolume {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesVolume)));\n  }\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\n/**\n * KubernetesPersistentVolumClaimCreatePayload Model\n */\nconst _KubernetesPersistentVolumClaimCreatePayload = Object.freeze({\n  metadata: new KubernetesCommonMetadataPayload(),\n  spec: {\n    accessModes: ['ReadWriteOnce'],\n    resources: {\n      requests: {\n        storage: '',\n      },\n    },\n    storageClassName: '',\n  },\n});\n\nexport class KubernetesPersistentVolumClaimCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPersistentVolumClaimCreatePayload)));\n  }\n}\n","import _ from 'lodash-es';\n\nimport * as JsonPatch from 'fast-json-patch';\nimport { KubernetesNode, KubernetesNodeDetails, KubernetesNodeTaint, KubernetesNodeAvailabilities, KubernetesPortainerNodeDrainLabel } from 'Kubernetes/node/models';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesNodeFormValues, KubernetesNodeTaintFormValues, KubernetesNodeLabelFormValues } from 'Kubernetes/node/formValues';\nimport { KubernetesNodeCreatePayload, KubernetesNodeTaintPayload } from 'Kubernetes/node/payload';\n\nclass KubernetesNodeConverter {\n  static apiToNode(data, res) {\n    if (!res) {\n      res = new KubernetesNode();\n    }\n    res.Id = data.metadata.uid;\n    const hostName = _.find(data.status.addresses, { type: 'Hostname' });\n    res.Name = data.metadata.name ? data.metadata.name : hostName.address;\n    res.Labels = data.metadata.labels;\n    // most kube clusters set control-plane label, older clusters set master, microk8s doesn't have either but instead sets microk8s-controlplane\n    let masters = ['node-role.kubernetes.io/control-plane', 'node-role.kubernetes.io/master', 'node.kubernetes.io/microk8s-controlplane'];\n    res.Role = _.some(masters, (master) => _.has(data.metadata.labels, master)) ? 'Master' : 'Worker';\n\n    const ready = _.find(data.status.conditions, { type: KubernetesNodeConditionTypes.READY });\n    const memoryPressure = _.find(data.status.conditions, { type: KubernetesNodeConditionTypes.MEMORY_PRESSURE });\n    const PIDPressure = _.find(data.status.conditions, { type: KubernetesNodeConditionTypes.PID_PRESSURE });\n    const diskPressure = _.find(data.status.conditions, { type: KubernetesNodeConditionTypes.DISK_PRESSURE });\n    const networkUnavailable = _.find(data.status.conditions, { type: KubernetesNodeConditionTypes.NETWORK_UNAVAILABLE });\n\n    res.Conditions = {\n      MemoryPressure: memoryPressure && memoryPressure.status === 'True',\n      PIDPressure: PIDPressure && PIDPressure.status === 'True',\n      DiskPressure: diskPressure && diskPressure.status === 'True',\n      NetworkUnavailable: networkUnavailable && networkUnavailable.status === 'True',\n    };\n\n    res.Availability = KubernetesNodeAvailabilities.ACTIVE;\n    if (data.spec.unschedulable === true) {\n      res.Availability = _.has(data.metadata.labels, KubernetesPortainerNodeDrainLabel) ? KubernetesNodeAvailabilities.DRAIN : KubernetesNodeAvailabilities.PAUSE;\n    }\n\n    if (ready.status === 'False') {\n      res.Status = 'Unhealthy';\n    } else if (ready.status === 'Unknown' || res.Conditions.MemoryPressure || res.Conditions.PIDPressure || res.Conditions.DiskPressure || res.Conditions.NetworkUnavailable) {\n      res.Status = 'Warning';\n    } else {\n      res.Status = 'Ready';\n    }\n\n    res.CPU = KubernetesResourceReservationHelper.parseCPU(data.status.allocatable.cpu);\n    res.Memory = data.status.allocatable.memory;\n    res.Version = data.status.nodeInfo.kubeletVersion;\n    const internalIP = _.find(data.status.addresses, { type: 'InternalIP' });\n    res.IPAddress = internalIP ? internalIP.address : '-';\n    res.Taints = _.map(data.spec.taints, (taint) => {\n      const res = new KubernetesNodeTaint();\n      res.Key = taint.key;\n      res.Value = taint.value;\n      res.Effect = taint.effect;\n      return res;\n    });\n    return res;\n  }\n\n  static apiToNodeDetails(data, yaml) {\n    let res = new KubernetesNodeDetails();\n    res = KubernetesNodeConverter.apiToNode(data, res);\n    res.CreationDate = data.metadata.creationTimestamp;\n    res.OS.Architecture = data.status.nodeInfo.architecture;\n    res.OS.Platform = data.status.nodeInfo.operatingSystem;\n    res.OS.Image = data.status.nodeInfo.osImage;\n    res.Yaml = yaml ? yaml.data : '';\n    return res;\n  }\n\n  static nodeToFormValues(node) {\n    const res = new KubernetesNodeFormValues();\n\n    res.Availability = node.Availability;\n\n    res.Taints = _.map(node.Taints, (taint) => {\n      const res = new KubernetesNodeTaintFormValues();\n      res.Key = taint.Key;\n      res.Value = taint.Value;\n      res.Effect = taint.Effect;\n      res.NeedsDeletion = false;\n      res.IsNew = false;\n      return res;\n    });\n\n    res.Labels = _.map(node.Labels, (value, key) => {\n      const res = new KubernetesNodeLabelFormValues();\n      res.Key = key;\n      res.Value = value;\n      res.NeedsDeletion = false;\n      res.IsNew = false;\n      return res;\n    });\n\n    return res;\n  }\n\n  static formValuesToNode(node, formValues) {\n    const res = angular.copy(node);\n\n    res.Availability = formValues.Availability;\n\n    const filteredTaints = _.filter(formValues.Taints, (taint) => !taint.NeedsDeletion);\n    res.Taints = _.map(filteredTaints, (item) => {\n      const taint = new KubernetesNodeTaint();\n      taint.Key = item.Key;\n      taint.Value = item.Value;\n      taint.Effect = item.Effect;\n      return taint;\n    });\n\n    const filteredLabels = _.filter(formValues.Labels, (label) => !label.NeedsDeletion);\n    res.Labels = _.reduce(\n      filteredLabels,\n      (acc, item) => {\n        acc[item.Key] = item.Value ? item.Value : '';\n        return acc;\n      },\n      {}\n    );\n\n    return res;\n  }\n\n  static createPayload(node) {\n    const payload = new KubernetesNodeCreatePayload();\n    payload.metadata.name = node.Name;\n\n    const taints = _.map(node.Taints, (taint) => {\n      const res = new KubernetesNodeTaintPayload();\n      res.key = taint.Key;\n      res.value = taint.Value;\n      res.effect = taint.Effect;\n      return res;\n    });\n\n    payload.spec.taints = taints.length ? taints : undefined;\n\n    payload.metadata.labels = node.Labels;\n\n    if (node.Availability !== KubernetesNodeAvailabilities.ACTIVE) {\n      payload.spec.unschedulable = true;\n      if (node.Availability === KubernetesNodeAvailabilities.DRAIN) {\n        payload.metadata.labels[KubernetesPortainerNodeDrainLabel] = '';\n      } else {\n        delete payload.metadata.labels[KubernetesPortainerNodeDrainLabel];\n      }\n    }\n\n    return payload;\n  }\n\n  static patchPayload(oldNode, newNode) {\n    const oldPayload = KubernetesNodeConverter.createPayload(oldNode);\n    const newPayload = KubernetesNodeConverter.createPayload(newNode);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nexport const KubernetesNodeConditionTypes = Object.freeze({\n  READY: 'Ready',\n  MEMORY_PRESSURE: 'MemoryPressure',\n  PID_PRESSURE: 'PIDPressure',\n  DISK_PRESSURE: 'DiskPressure',\n  NETWORK_UNAVAILABLE: 'NetworkUnavailable',\n});\n\nexport default KubernetesNodeConverter;\n","import _ from 'lodash-es';\n\nangular\n  .module('portainer.kubernetes')\n  .filter('kubernetesNodeStatusColor', function () {\n    'use strict';\n    return function (text) {\n      var status = _.toLower(text);\n      switch (status) {\n        case 'ready':\n          return 'success';\n        case 'warning':\n          return 'warning';\n        default:\n          return 'danger';\n      }\n    };\n  })\n  .filter('kubernetesNodeConditionsMessage', function () {\n    'use strict';\n    return function (conditions) {\n      if (conditions.MemoryPressure) {\n        return 'Node memory is running low';\n      }\n      if (conditions.PIDPressure) {\n        return 'Too many processes running on the node';\n      }\n      if (conditions.DiskPressure) {\n        return 'Node disk capacity is running low';\n      }\n      if (conditions.NetworkUnavailable) {\n        return 'Incorrect node network configuration';\n      }\n    };\n  });\n","const _KubernetesNodeFormValues = Object.freeze({\n  Taints: [],\n  Labels: [],\n  Availability: '',\n});\n\nexport class KubernetesNodeFormValues {\n  constructor() {\n    Object.assign(JSON.parse(JSON.stringify(_KubernetesNodeFormValues)));\n  }\n}\n\nconst _KubernetesNodeTaintFormValues = Object.freeze({\n  Key: '',\n  Values: '',\n  Effect: '',\n  NeedsDeletion: false,\n  IsNew: false,\n  IsChanged: false,\n});\n\nexport class KubernetesNodeTaintFormValues {\n  constructor() {\n    Object.assign(JSON.parse(JSON.stringify(_KubernetesNodeTaintFormValues)));\n  }\n}\n\nconst _KubernetesNodeLabelFormValues = Object.freeze({\n  Key: '',\n  Values: '',\n  NeedsDeletion: false,\n  IsNew: false,\n  IsUsed: false,\n  IsChanged: false,\n});\n\nexport class KubernetesNodeLabelFormValues {\n  constructor() {\n    Object.assign(JSON.parse(JSON.stringify(_KubernetesNodeLabelFormValues)));\n  }\n}\n","import _ from 'lodash-es';\n\nexport class KubernetesNodeHelper {\n  static isSystemLabel(label) {\n    return !label.IsNew && (_.startsWith(label.Key, 'beta.kubernetes.io') || _.startsWith(label.Key, 'kubernetes.io') || label.Key === 'node-role.kubernetes.io/master');\n  }\n\n  static reorderLabels(labels) {\n    return _.sortBy(labels, (label) => {\n      return !KubernetesNodeHelper.isSystemLabel(label);\n    });\n  }\n\n  static computeUsedLabels(applications, labels) {\n    const pods = _.flatten(_.map(applications, 'Pods'));\n    const nodeSelectors = _.uniq(_.flatten(_.map(pods, 'NodeSelector')));\n\n    return _.map(labels, (label) => {\n      label.IsUsed = _.find(nodeSelectors, (ns) => ns && ns[label.Key] === label.Value) ? true : false;\n      return label;\n    });\n  }\n\n  static generateNodeLabelsFromNodes(nodes) {\n    const pairs = _.flatMap(nodes, (node) => {\n      return _.map(_.toPairs(node.Labels), ([k, v]) => {\n        return { key: k, value: v };\n      });\n    });\n    return _.map(_.groupBy(pairs, 'key'), (values, key) => {\n      return { Key: key, Values: _.uniq(_.map(values, 'value')) };\n    });\n  }\n}\n","export const KubernetesPortainerNodeDrainLabel = 'io.portainer/node-status-drain';\n\n/**\n * KubernetesNode Model\n */\nconst _KubernetesNode = Object.freeze({\n  Id: '',\n  Name: '',\n  Labels: {},\n  Role: '',\n  Status: '',\n  CPU: 0,\n  Memory: '',\n  Version: '',\n  IPAddress: '',\n  Api: false,\n  Taints: [],\n  Port: 0,\n  Availability: '',\n});\n\nexport class KubernetesNode {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNode)));\n  }\n}\n\n/**\n * KubernetesNodeDetails Model\n */\nconst _KubernetesNodeDetails = Object.freeze({\n  CreationDate: '',\n  OS: {\n    Architecture: '',\n    Platform: '',\n    Image: '',\n  },\n  Conditions: [],\n  Yaml: '',\n});\n\nexport class KubernetesNodeDetails {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNode)));\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNodeDetails)));\n  }\n}\n\n/**\n * KubernetesNodeTaint Model\n */\nconst _KubernetesNodeTaint = Object.freeze({\n  Key: '',\n  Value: '',\n  Effect: '',\n});\n\nexport class KubernetesNodeTaint {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNodeTaint)));\n  }\n}\n\nexport const KubernetesNodeAvailabilities = Object.freeze({\n  ACTIVE: 'Active',\n  PAUSE: 'Pause',\n  DRAIN: 'Drain',\n});\n\nexport const KubernetesNodeTaintEffects = Object.freeze({\n  NOSCHEDULE: 'NoSchedule',\n  PREFERNOSCHEDULE: 'PreferNoSchedule',\n  NOEXECUTE: 'NoExecute',\n});\n","/**\n * KubernetesNode Create Payload Model\n * Note: The current payload is here just to create patch payload.\n */\nconst _KubernetesNodeCreatePayload = Object.freeze({\n  metadata: {\n    name: '',\n    labels: {},\n  },\n  spec: {\n    taints: undefined,\n  },\n});\n\nexport class KubernetesNodeCreatePayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNodeCreatePayload)));\n  }\n}\n\nconst _KubernetesNodeTaintPayload = Object.freeze({\n  key: '',\n  value: '',\n  effect: '',\n});\n\nexport class KubernetesNodeTaintPayload {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNodeTaintPayload)));\n  }\n}\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesNodes', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesNodesFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function () {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1/nodes/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nimport PortainerError from 'Portainer/error';\nimport KubernetesNodeConverter from 'Kubernetes/node/converter';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\n\nclass KubernetesNodeService {\n  /* @ngInject */\n  constructor($async, KubernetesNodes) {\n    this.$async = $async;\n    this.KubernetesNodes = KubernetesNodes;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [details, yaml] = await Promise.all([this.KubernetesNodes().get(params).$promise, this.KubernetesNodes().getYaml(params).$promise]);\n      return KubernetesNodeConverter.apiToNodeDetails(details, yaml);\n    } catch (err) {\n      // changing the structure of error message to fix [object, Object] issue\n      const errData = err.data;\n      throw new PortainerError('Unable to retrieve node details', errData);\n    }\n  }\n\n  async getAllAsync() {\n    try {\n      const data = await this.KubernetesNodes().get().$promise;\n      return _.map(data.items, (item) => KubernetesNodeConverter.apiToNode(item));\n    } catch (err) {\n      throw { msg: 'Unable to retrieve nodes', err: err };\n    }\n  }\n\n  get(name) {\n    if (name) {\n      return this.$async(this.getAsync, name);\n    }\n    return this.$async(this.getAllAsync);\n  }\n\n  /**\n   * PATCH\n   */\n\n  async patchAsync(node, nodeFormValues) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = node.Name;\n      const newNode = KubernetesNodeConverter.formValuesToNode(node, nodeFormValues);\n      const payload = KubernetesNodeConverter.patchPayload(node, newNode);\n      const data = await this.KubernetesNodes().patch(params, payload).$promise;\n      const patchedNode = KubernetesNodeConverter.apiToNodeDetails(data);\n      return patchedNode;\n    } catch (err) {\n      throw { msg: 'Unable to patch node', err: err };\n    }\n  }\n\n  patch(node, nodeFormValues) {\n    return this.$async(this.patchAsync, node, nodeFormValues);\n  }\n}\n\nexport default KubernetesNodeService;\nangular.module('portainer.kubernetes').service('KubernetesNodeService', KubernetesNodeService);\n","import * as JsonPatch from 'fast-json-patch';\nimport _ from 'lodash-es';\n\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\nimport {\n  KubernetesPortainerApplicationStackNameLabel,\n  KubernetesPortainerApplicationNameLabel,\n  KubernetesPortainerApplicationOwnerLabel,\n  KubernetesPortainerApplicationNote,\n} from 'Kubernetes/models/application/models';\n\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesPod, KubernetesPodToleration, KubernetesPodAffinity, KubernetesPodContainer, KubernetesPodContainerTypes, KubernetesPodEviction } from 'Kubernetes/pod/models';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport { createPayloadFactory } from './payloads/create';\n\nfunction computeStatus(statuses) {\n  const containerStatuses = _.map(statuses, 'state');\n  const running = _.filter(containerStatuses, (s) => s.running).length;\n  const waiting = _.filter(containerStatuses, (s) => s.waiting).length;\n  if (waiting) {\n    return 'Waiting';\n  } else if (!running) {\n    return 'Terminated';\n  }\n  return 'Running';\n}\n\nfunction computeContainerStatus(statuses, name) {\n  const status = _.find(statuses, { name: name });\n  if (!status) {\n    return 'Terminated';\n  }\n  const state = status.state;\n  if (state.waiting) {\n    return 'Waiting';\n  }\n  if (!state.running) {\n    return 'Terminated';\n  }\n  return 'Running';\n}\n\nfunction computeAffinity(affinity) {\n  const res = new KubernetesPodAffinity();\n  if (affinity) {\n    res.nodeAffinity = affinity.nodeAffinity || {};\n  }\n  return res;\n}\n\nfunction computeTolerations(tolerations) {\n  return _.map(tolerations, (item) => {\n    const res = new KubernetesPodToleration();\n    res.Key = item.key;\n    res.Operator = item.operator;\n    res.Value = item.value;\n    res.TolerationSeconds = item.tolerationSeconds;\n    res.Effect = item.effect;\n    return res;\n  });\n}\n\nfunction computeContainers(data) {\n  const containers = data.spec.containers;\n  const initContainers = data.spec.initContainers;\n\n  return _.concat(\n    _.map(containers, (item) => {\n      const res = new KubernetesPodContainer();\n      res.Type = KubernetesPodContainerTypes.APP;\n      res.PodName = data.metadata.name;\n      res.PodIP = data.status.podIP;\n      res.Name = item.name;\n      res.Image = item.image;\n      res.ImagePullPolicy = item.imagePullPolicy;\n      res.Node = data.spec.nodeName;\n      res.CreationDate = data.status.startTime;\n      res.Status = computeContainerStatus(data.status.containerStatuses, item.name);\n      res.Limits = item.resources.limits;\n      res.Requests = item.resources.requests;\n      res.VolumeMounts = item.volumeMounts;\n      res.Env = item.env;\n      return res;\n    }),\n    _.map(initContainers, (item) => {\n      const res = new KubernetesPodContainer();\n      res.Type = KubernetesPodContainerTypes.INIT;\n      res.PodName = data.metadata.name;\n      res.Name = item.name;\n      res.Image = item.image;\n      res.Node = data.spec.nodeName;\n      res.CreationDate = data.status.startTime;\n      res.Status = computeContainerStatus(data.status.containerStatuses, item.name);\n      res.Limits = item.resources.limits;\n      res.Requests = item.resources.requests;\n      res.VolumeMounts = item.volumeMounts;\n      res.Env = item.env;\n      return res;\n    })\n  );\n}\n\nexport default class KubernetesPodConverter {\n  static applicationFormValuesToPod(formValues, volumeClaims) {\n    let serviceSelector = {};\n    if (formValues.Services.length) {\n      serviceSelector = formValues.Services[0].Selector || { app: formValues.Name };\n    }\n\n    const res = new KubernetesPod();\n    res.Namespace = formValues.ResourcePool.Namespace.Name;\n    res.Name = formValues.Name;\n    res.StackName = formValues.StackName ? formValues.StackName : formValues.Name;\n    res.ApplicationOwner = formValues.ApplicationOwner;\n    res.ApplicationName = formValues.Name;\n    res.ImageModel = formValues.ImageModel;\n    res.CpuLimit = formValues.CpuLimit;\n    res.MemoryLimit = KubernetesResourceReservationHelper.bytesValue(formValues.MemoryLimit);\n    res.Env = KubernetesApplicationHelper.generateEnvFromEnvVariables(formValues.EnvironmentVariables);\n    res.Containers = formValues.Containers;\n    res.ApplicationType = formValues.ApplicationType;\n    res.ServiceSelector = serviceSelector;\n    res.Labels = formValues.Labels;\n    KubernetesApplicationHelper.generateVolumesFromPersistentVolumClaims(res, volumeClaims);\n    KubernetesApplicationHelper.generateEnvOrVolumesFromConfigurations(res, formValues.ConfigMaps, formValues.Secrets);\n    KubernetesApplicationHelper.generateAffinityFromPlacements(res, formValues);\n    return res;\n  }\n\n  static apiToModel(data) {\n    const res = new KubernetesPod();\n    res.Id = data.metadata.uid;\n    res.Name = data.metadata.name;\n    res.Namespace = data.metadata.namespace;\n    res.Images = _.map(data.spec.containers, 'image');\n    res.Status = computeStatus(data.status.containerStatuses);\n    res.Restarts = _.sumBy(data.status.containerStatuses, 'restartCount');\n    res.Node = data.spec.nodeName;\n    res.CreationDate = data.status.startTime;\n    res.Containers = computeContainers(data);\n    res.Labels = data.metadata.labels;\n    res.Affinity = computeAffinity(data.spec.affinity);\n    res.NodeSelector = data.spec.nodeSelector;\n    res.Tolerations = computeTolerations(data.spec.tolerations);\n    res.Labels = data.metadata.labels;\n    return res;\n  }\n\n  static evictionPayload(pod) {\n    const res = new KubernetesPodEviction();\n    res.metadata.name = pod.Name;\n    res.metadata.namespace = pod.Namespace;\n    return res;\n  }\n\n  static patchPayload(oldPod, newPod) {\n    const oldPayload = createPayload(oldPod);\n    const newPayload = createPayload(newPod);\n    const payload = JsonPatch.compare(oldPayload, newPayload);\n    return payload;\n  }\n}\n\nfunction createPayload(pod) {\n  const payload = createPayloadFactory();\n  payload.metadata.name = pod.Name;\n  payload.metadata.namespace = pod.Namespace;\n  // it's possible for pods not to have labels. Keep labels empty in the oldpayload if there aren't any, otherwise patch will fail\n  // TODO: when migrating to react, the oldValues should just be the fetched manifest directly from the kube api\n  if (Object.keys(pod.Labels || {}).length || Object.keys(pod.ServiceSelector || {}).length) {\n    payload.metadata.labels[KubernetesPortainerApplicationStackNameLabel] = pod.StackName;\n    payload.metadata.labels[KubernetesPortainerApplicationNameLabel] = pod.ApplicationName;\n    payload.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = pod.ApplicationOwner;\n    payload.metadata.labels = { ...(pod.Labels || {}), ...(pod.ServiceSelector || {}), ...payload.metadata.labels };\n  } else {\n    payload.metadata.labels = undefined;\n  }\n  if (pod.Note) {\n    payload.metadata.annotations[KubernetesPortainerApplicationNote] = pod.Note;\n  } else {\n    payload.metadata.annotations = undefined;\n  }\n\n  payload.spec.replicas = pod.ReplicaCount;\n  payload.spec.selector.matchLabels.app = pod.Name;\n  payload.spec.template.metadata.labels.app = pod.Name;\n  payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = pod.ApplicationName;\n  payload.spec.template.spec.containers[0].name = pod.Name;\n  payload.spec.template.spec.containers[0].image = pod.Image;\n  payload.spec.template.spec.affinity = pod.Affinity;\n  KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].env', pod.Env);\n  KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.containers[0].volumeMounts', pod.VolumeMounts);\n  KubernetesCommonHelper.assignOrDeleteIfEmpty(payload, 'spec.template.spec.volumes', pod.Volumes);\n  if (pod.MemoryLimit) {\n    payload.spec.template.spec.containers[0].resources.limits.memory = pod.MemoryLimit;\n    payload.spec.template.spec.containers[0].resources.requests.memory = pod.MemoryLimit;\n  }\n  if (pod.CpuLimit) {\n    payload.spec.template.spec.containers[0].resources.limits.cpu = pod.CpuLimit;\n    payload.spec.template.spec.containers[0].resources.requests.cpu = pod.CpuLimit;\n  }\n  if (!pod.CpuLimit && !pod.MemoryLimit) {\n    delete payload.spec.template.spec.containers[0].resources;\n  }\n  return payload;\n}\n","export enum KubernetesPodNodeAffinityNodeSelectorRequirementOperators {\n  IN = 'In',\n  NOT_IN = 'NotIn',\n  EXISTS = 'Exists',\n  DOES_NOT_EXIST = 'DoesNotExist',\n  GREATER_THAN = 'Gt',\n  LOWER_THAN = 'Lt',\n}\n\n/**\n * KubernetesPodAffinity Model\n */\n// this model will contain non transformed data (raw payload data)\n// either during creation flow (model > api)\n// than during reading flow (api > model)\nexport function KubernetesPodAffinity() {\n  return {\n    nodeAffinity: {}, // KubernetesPodNodeAffinityPayload\n    // podAffinity: {},\n    // podAntiAffinity: {},\n  };\n}\n","export * from './affinities';\n\n/**\n * KubernetesPod Model\n */\nconst _KubernetesPod = Object.freeze({\n  Id: '',\n  Name: '',\n  Namespace: '',\n  Images: [],\n  Status: '',\n  Restarts: 0,\n  Node: '',\n  CreationDate: '',\n  Containers: [],\n  Labels: [],\n  Affinity: {}, // KubernetesPodAffinity\n  Tolerations: [], // KubernetesPodToleration[]\n  NodeSelector: undefined,\n});\n\nexport class KubernetesPod {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPod)));\n  }\n}\n\n/**\n * KubernetesPodToleration Model\n */\nconst _KubernetesPodToleration = Object.freeze({\n  Key: '',\n  Operator: '',\n  Value: '',\n  TolerationSeconds: 0,\n  Effect: '',\n});\n\nexport class KubernetesPodToleration {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPodToleration)));\n  }\n}\n\nconst _KubernetesPodContainer = Object.freeze({\n  Type: 0,\n  PodName: '',\n  Name: '',\n  Image: '',\n  ImagePullPolicy: '',\n  Node: '',\n  CreationDate: '',\n  Status: '',\n  Limits: {},\n  Requests: {},\n  VolumeMounts: {},\n  ConfigurationVolumes: [],\n  PersistedFolders: [],\n  Env: [],\n});\n\nexport class KubernetesPodContainer {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPodContainer)));\n  }\n}\n\nconst _KubernetesPodEviction = Object.freeze({\n  apiVersion: 'policy/v1beta1',\n  kind: 'Eviction',\n  metadata: {\n    name: '',\n    namespace: '',\n  },\n});\n\nexport class KubernetesPodEviction {\n  constructor() {\n    Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPodEviction)));\n  }\n}\n\nexport const KubernetesPodContainerTypes = {\n  INIT: 1,\n  APP: 2,\n};\n","export function KubernetesPodNodeAffinityPayload() {\n  return {\n    requiredDuringSchedulingIgnoredDuringExecution: {\n      nodeSelectorTerms: [], // []KubernetesNodeSelectorTermPayload\n    },\n    preferredDuringSchedulingIgnoredDuringExecution: [], // []KubernetesPreferredSchedulingTermPayload\n  };\n}\n\nexport function KubernetesPreferredSchedulingTermPayload() {\n  return {\n    weight: 1,\n    preference: {}, // KubernetesNodeSelectorTermPayload\n  };\n}\n\nexport function KubernetesNodeSelectorTermPayload() {\n  return {\n    matchExpressions: [], // []KubernetesNodeSelectorRequirementPayload\n  };\n}\n\nexport function KubernetesNodeSelectorRequirementPayload() {\n  return {\n    key: '', // string\n    operator: '', // KubernetesPodNodeAffinityNodeSelectorRequirementOperators\n    values: [], // []string\n  };\n}\n","import { KubernetesCommonMetadataPayload } from 'Kubernetes/models/common/payloads';\n\nexport function createPayloadFactory() {\n  return {\n    metadata: new KubernetesCommonMetadataPayload(),\n    spec: {\n      replicas: 0,\n      selector: {\n        matchLabels: {\n          app: '',\n        },\n      },\n      strategy: {\n        type: 'RollingUpdate',\n        rollingUpdate: {\n          maxSurge: 0,\n          maxUnavailable: '100%',\n        },\n      },\n      template: {\n        metadata: {\n          labels: {\n            app: '',\n          },\n        },\n        spec: {\n          affinity: {},\n          containers: [\n            {\n              name: '',\n              image: '',\n              env: [],\n              resources: {\n                limits: {},\n                requests: {},\n              },\n              volumeMounts: [],\n            },\n          ],\n          volumes: [],\n        },\n      },\n    },\n  };\n}\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\n\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport KubernetesPodConverter from 'Kubernetes/pod/converter';\n\nclass KubernetesPodService {\n  /* @ngInject */\n  constructor($async, KubernetesPods) {\n    this.$async = $async;\n    this.KubernetesPods = KubernetesPods;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.logsAsync = this.logsAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    this.evictionAsync = this.evictionAsync.bind(this);\n  }\n\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([this.KubernetesPods(namespace).get(params).$promise, this.KubernetesPods(namespace).getYaml(params).$promise]);\n      const res = {\n        Raw: raw,\n        Yaml: yaml.data,\n      };\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve pod', err);\n    }\n  }\n\n  /**\n   * GET ALL\n   */\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesPods(namespace).get().$promise;\n      return data.items;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve pods', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * Logs\n   *\n   * @param {string} namespace\n   * @param {string} podName\n   * @param {string} containerName\n   */\n  async logsAsync(namespace, podName, containerName) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = podName;\n      if (containerName) {\n        params.container = containerName;\n      }\n      const data = await this.KubernetesPods(namespace).logs(params).$promise;\n      return data.logs;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve pod logs', err);\n    }\n  }\n\n  logs(namespace, podName, containerName) {\n    return this.$async(this.logsAsync, namespace, podName, containerName);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(oldPod, newPod) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newPod.Name;\n      const namespace = newPod.Namespace;\n      const payload = KubernetesPodConverter.patchPayload(oldPod, newPod);\n      if (!payload.length) {\n        return;\n      }\n      const data = await this.KubernetesPods(namespace).patch(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to patch pod', err);\n    }\n  }\n\n  patch(oldPod, newPod) {\n    return this.$async(this.patchAsync, oldPod, newPod);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(pod) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = pod.Name;\n      const namespace = pod.Namespace;\n      await this.KubernetesPods(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to remove pod', err);\n    }\n  }\n\n  delete(pod) {\n    return this.$async(this.deleteAsync, pod);\n  }\n\n  /**\n   * EVICT\n   */\n  async evictionAsync(pod) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = pod.Name;\n      params.action = 'eviction';\n      const namespace = pod.Namespace;\n      const podEvictionPayload = KubernetesPodConverter.evictionPayload(pod);\n      await this.KubernetesPods(namespace).evict(params, podEvictionPayload).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to evict pod', err);\n    }\n  }\n\n  eviction(pod) {\n    return this.$async(this.evictionAsync, pod);\n  }\n}\n\nexport default KubernetesPodService;\nangular.module('portainer.kubernetes').service('KubernetesPodService', KubernetesPodService);\n","import angular from 'angular';\n\nimport { kubernetesRegistryAccessView } from './kube-registry-access-view';\n\nexport default angular.module('portainer.kubernetes.registries', []).component('kubernetesRegistryAccessView', kubernetesRegistryAccessView).name;\n","const autoNgTemplateLoaderTemplate1 = require('./kube-registry-access-view.html');\n\nimport controller from './kube-registry-access-view.controller';\n\nexport const kubernetesRegistryAccessView = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    endpoint: '<',\n  },\n};\n","import KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { confirmDeleteAccess } from '@/react/kubernetes/cluster/RegistryAccessView/ConfirmDeleteAccess';\n\nexport default class KubernetesRegistryAccessController {\n  /* @ngInject */\n  constructor($async, $scope, $state, EndpointService, Notifications, RegistryService, KubernetesResourcePoolService) {\n    this.$async = $async;\n    this.$scope = $scope;\n    this.$state = $state;\n    this.Notifications = Notifications;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.RegistryService = RegistryService;\n    this.EndpointService = EndpointService;\n\n    this.state = {\n      actionInProgress: false,\n    };\n\n    this.selectedResourcePools = [];\n    this.resourcePools = [];\n    this.savedResourcePools = [];\n\n    this.handleRemove = this.handleRemove.bind(this);\n    this.onChangeResourcePools = this.onChangeResourcePools.bind(this);\n  }\n\n  async submit() {\n    return this.updateNamespaces([...this.savedResourcePools.map(({ value }) => value), ...this.selectedResourcePools]);\n  }\n\n  handleRemove(namespaces) {\n    const removeNamespaces = namespaces.map(({ value }) => value);\n    const nsToUpdate = this.savedResourcePools.map(({ value }) => value).filter((value) => !removeNamespaces.includes(value));\n\n    confirmDeleteAccess().then((confirmed) => {\n      if (confirmed) {\n        return this.updateNamespaces(nsToUpdate);\n      }\n    });\n  }\n\n  updateNamespaces(namespaces) {\n    return this.$async(async () => {\n      try {\n        await this.EndpointService.updateRegistryAccess(this.endpoint.Id, this.registry.Id, {\n          namespaces,\n        });\n        this.$state.reload(this.$state.current);\n        this.Notifications.success('Success', 'Registry access updated');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Failed saving registry access');\n      }\n    });\n  }\n\n  onChangeResourcePools(resourcePools) {\n    return this.$scope.$evalAsync(() => {\n      this.selectedResourcePools = resourcePools;\n    });\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      try {\n        this.state = {\n          registryId: this.$state.params.id,\n        };\n        this.registry = await this.RegistryService.registry(this.state.registryId, this.endpoint.Id);\n        if (this.registry.RegistryAccesses && this.registry.RegistryAccesses[this.endpoint.Id]) {\n          this.savedResourcePools = this.registry.RegistryAccesses[this.endpoint.Id].Namespaces.map((value) => ({ value }));\n        }\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registry details');\n      }\n\n      try {\n        const resourcePools = await this.KubernetesResourcePoolService.get();\n\n        this.resourcePools = resourcePools\n          .filter((pool) => !KubernetesNamespaceHelper.isSystemNamespace(pool.Namespace.Name) && !this.savedResourcePools.find(({ value }) => value === pool.Namespace.Name))\n          .map((pool) => ({ name: pool.Namespace.Name, id: pool.Namespace.Id }));\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve namespaces');\n      }\n    });\n  }\n}\n","import { confirmDestructive } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport function confirmDeleteAccess() {\n  return confirmDestructive({\n    title: 'Are you sure?',\n    message: (\n      <>\n        <p>\n          This registry might be used by one or more applications inside this\n          environment. Removing the registry access could lead to a service\n          interruption for these applications.\n        </p>\n        <p>Are you sure you wish to continue?</p>\n      </>\n    ),\n    confirmButton: buildConfirmButton('Remove', 'danger'),\n  });\n}\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesConfigMaps', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesConfigMapsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/configmaps/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesControllerRevisions', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesControllerRevisionsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/apis/apps/v1' + (namespace ? '/namespaces/:namespace' : '') + '/controllerrevisions/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesDaemonSets', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesDaemonSetsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/apis/apps/v1' + (namespace ? '/namespaces/:namespace' : '') + '/daemonsets/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          rollback: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/strategic-merge-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesDeployments', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesDeploymentsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/apis/apps/v1' + (namespace ? '/namespaces/:namespace' : '') + '/deployments/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          rollback: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","angular.module('portainer.kubernetes').factory('KubernetesEndpoints', function KubernetesEndpointsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n  'use strict';\n  return function (namespace) {\n    const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/endpoints/:id';\n    return $resource(\n      url,\n      {\n        endpointId: EndpointProvider.endpointID,\n        namespace: namespace,\n      },\n      {\n        get: {\n          method: 'GET',\n          ignoreLoadingBar: true,\n        },\n      }\n    );\n  };\n});\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesEvents', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesEventsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/events/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","angular.module('portainer.kubernetes').factory('KubernetesHealth', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  function KubernetesHealthFactory($resource, API_ENDPOINT_ENDPOINTS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:id/kubernetes/healthz',\n      {},\n      {\n        ping: { method: 'GET', params: { id: 'id' } },\n      }\n    );\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesNamespaces', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesNamespacesFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function () {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1/namespaces/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          getJSON: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/json',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          delete: { method: 'DELETE' },\n          status: {\n            method: 'GET',\n            params: { action: 'status' },\n            ignoreLoadingBar: true,\n          },\n        }\n      );\n    };\n  },\n]);\n","import angular from 'angular';\n\nangular.module('portainer.kubernetes').factory('KubernetesNodesLimits', KubernetesNodesLimitsFactory);\n\n/* @ngInject */\nfunction KubernetesNodesLimitsFactory($resource, API_ENDPOINT_KUBERNETES, EndpointProvider) {\n  const url = API_ENDPOINT_KUBERNETES + '/:endpointId/nodes_limits';\n  return $resource(\n    url,\n    {\n      endpointId: EndpointProvider.endpointID,\n    },\n    {\n      get: {\n        method: 'GET',\n        ignoreLoadingBar: true,\n        transformResponse: (data) => ({ data: JSON.parse(data) }),\n      },\n    }\n  );\n}\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesPersistentVolumeClaims', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesPersistentVolumeClaimsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/persistentvolumeclaims/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\nimport { logsHandler } from 'Docker/rest/response/handlers';\n\nangular.module('portainer.kubernetes').factory('KubernetesPods', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesPodsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/pods/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          delete: { method: 'DELETE' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          logs: {\n            method: 'GET',\n            params: { action: 'log' },\n            transformResponse: logsHandler,\n          },\n          evict: { method: 'POST' },\n        }\n      );\n    };\n  },\n]);\n","angular.module('portainer.kubernetes').factory('KubernetesPortainerNamespaces', KubernetesPortainerNamespacesFactory);\n\nfunction KubernetesPortainerNamespacesFactory($resource) {\n  const url = '/api/kubernetes/:endpointId/namespaces/:namespaceName/:action';\n  return $resource(\n    url,\n    {},\n    {\n      toggleSystem: { method: 'PUT', params: { action: 'system' } },\n    }\n  );\n}\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesReplicaSets', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesReplicaSetsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/apis/apps/v1' + (namespace ? '/namespaces/:namespace' : '') + '/replicasets/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesResourceQuotas', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesResourceQuotasFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/resourcequotas/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","// Returns the raw response without JSON parsing\nexport function rawResponse(data) {\n  const response = {\n    data: data,\n  };\n  return response;\n}\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesSecrets', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesSecretsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/secrets/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesServices', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesServicesFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/api/v1' + (namespace ? '/namespaces/:namespace' : '') + '/services/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nexport async function getServiceAccounts(environmentId, namespaceId) {\n  try {\n    const {\n      data: { items },\n    } = await axios.get(urlBuilder(environmentId, namespaceId));\n    return items;\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n\nfunction urlBuilder(environmentId, namespaceId) {\n  return `endpoints/${environmentId}/kubernetes/api/v1/namespaces/${namespaceId}/serviceaccounts`;\n}\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesStatefulSets', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesStatefulSetsFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function (namespace) {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/apis/apps/v1' + (namespace ? '/namespaces/:namespace' : '') + '/statefulsets/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n          namespace: namespace,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          rollback: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/strategic-merge-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import { rawResponse } from 'Kubernetes/rest/response/transform';\n\nangular.module('portainer.kubernetes').factory('KubernetesStorage', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  'EndpointProvider',\n  function KubernetesStorageFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) {\n    'use strict';\n    return function () {\n      const url = API_ENDPOINT_ENDPOINTS + '/:endpointId/kubernetes/apis/storage.k8s.io/v1/storageclasses/:id/:action';\n      return $resource(\n        url,\n        {\n          endpointId: EndpointProvider.endpointID,\n        },\n        {\n          get: {\n            method: 'GET',\n            ignoreLoadingBar: true,\n          },\n          getYaml: {\n            method: 'GET',\n            headers: {\n              Accept: 'application/yaml',\n            },\n            transformResponse: rawResponse,\n            ignoreLoadingBar: true,\n          },\n          create: { method: 'POST' },\n          update: { method: 'PUT' },\n          patch: {\n            method: 'PATCH',\n            headers: {\n              'Content-Type': 'application/json-patch+json',\n            },\n          },\n          delete: { method: 'DELETE' },\n        }\n      );\n    };\n  },\n]);\n","import _ from 'lodash-es';\nimport angular from 'angular';\nimport PortainerError from 'Portainer/error';\n\nimport { KubernetesApplicationDeploymentTypes, KubernetesApplicationTypes } from 'Kubernetes/models/application/models/appConstants';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport KubernetesApplicationConverter from 'Kubernetes/converters/application';\nimport { KubernetesStatefulSet } from 'Kubernetes/models/stateful-set/models';\nimport KubernetesServiceHelper from 'Kubernetes/helpers/serviceHelper';\nimport { KubernetesHorizontalPodAutoScalerHelper } from 'Kubernetes/horizontal-pod-auto-scaler/helper';\nimport { KubernetesHorizontalPodAutoScalerConverter } from 'Kubernetes/horizontal-pod-auto-scaler/converter';\nimport KubernetesPodConverter from 'Kubernetes/pod/converter';\nimport { notifyError } from '@/portainer/services/notifications';\nimport { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';\nimport { generateNewIngressesFromFormPaths } from '@/react/kubernetes/applications/CreateView/application-services/utils';\nimport { KubernetesPod } from '../pod/models';\nimport { KubernetesApplication } from '../models/application/models';\n\nclass KubernetesApplicationService {\n  /* #region  CONSTRUCTOR */\n  /* @ngInject */\n  constructor(\n    $async,\n    Authentication,\n    KubernetesDeploymentService,\n    KubernetesDaemonSetService,\n    KubernetesStatefulSetService,\n    KubernetesServiceService,\n    KubernetesSecretService,\n    KubernetesPersistentVolumeClaimService,\n    KubernetesNamespaceService,\n    KubernetesPodService,\n    KubernetesHorizontalPodAutoScalerService,\n    KubernetesIngressService\n  ) {\n    this.$async = $async;\n    this.Authentication = Authentication;\n    this.KubernetesDeploymentService = KubernetesDeploymentService;\n    this.KubernetesDaemonSetService = KubernetesDaemonSetService;\n    this.KubernetesStatefulSetService = KubernetesStatefulSetService;\n    this.KubernetesServiceService = KubernetesServiceService;\n    this.KubernetesSecretService = KubernetesSecretService;\n    this.KubernetesPersistentVolumeClaimService = KubernetesPersistentVolumeClaimService;\n    this.KubernetesNamespaceService = KubernetesNamespaceService;\n    this.KubernetesPodService = KubernetesPodService;\n    this.KubernetesHorizontalPodAutoScalerService = KubernetesHorizontalPodAutoScalerService;\n    this.KubernetesIngressService = KubernetesIngressService;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    this.patchPartialAsync = this.patchPartialAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n  /* #endregion */\n\n  /* #region  UTILS */\n  _getApplicationApiService(app) {\n    let apiService;\n    if (app.ApplicationType === KubernetesApplicationTypes.Deployment) {\n      apiService = this.KubernetesDeploymentService;\n    } else if (app.ApplicationType === KubernetesApplicationTypes.DaemonSet) {\n      apiService = this.KubernetesDaemonSetService;\n    } else if (app.ApplicationType === KubernetesApplicationTypes.StatefulSet) {\n      apiService = this.KubernetesStatefulSetService;\n    } else if (app instanceof KubernetesPod || (app instanceof KubernetesApplication && app.ApplicationType === KubernetesApplicationTypes.Pod)) {\n      apiService = this.KubernetesPodService;\n    } else {\n      throw new PortainerError('Unable to determine which association to use to retrieve API Service');\n    }\n    return apiService;\n  }\n\n  _generateIngressPatchPromises(oldIngresses, newIngresses) {\n    return _.map(newIngresses, (newIng) => {\n      const oldIng = _.find(oldIngresses, { Name: newIng.Name });\n      return this.KubernetesIngressService.patch(oldIng, newIng);\n    });\n  }\n  /* #endregion */\n\n  /* #region  GET */\n  async getAsync(namespace, name) {\n    const [deployment, daemonSet, statefulSet, pod, pods, autoScalers, ingresses] = await Promise.allSettled([\n      this.KubernetesDeploymentService.get(namespace, name),\n      this.KubernetesDaemonSetService.get(namespace, name),\n      this.KubernetesStatefulSetService.get(namespace, name),\n      this.KubernetesPodService.get(namespace, name),\n      this.KubernetesPodService.get(namespace),\n      this.KubernetesHorizontalPodAutoScalerService.get(namespace),\n      this.KubernetesIngressService.get(namespace),\n    ]);\n\n    let rootItem;\n    let converterFunc;\n    if (deployment.status === 'fulfilled') {\n      rootItem = deployment;\n      converterFunc = KubernetesApplicationConverter.apiDeploymentToApplication;\n    } else if (daemonSet.status === 'fulfilled') {\n      rootItem = daemonSet;\n      converterFunc = KubernetesApplicationConverter.apiDaemonSetToApplication;\n    } else if (statefulSet.status === 'fulfilled') {\n      rootItem = statefulSet;\n      converterFunc = KubernetesApplicationConverter.apiStatefulSetToapplication;\n    } else if (pod.status === 'fulfilled') {\n      rootItem = pod;\n      converterFunc = KubernetesApplicationConverter.apiPodToApplication;\n    } else {\n      throw new PortainerError('Unable to determine which association to use to convert application');\n    }\n\n    const services = await this.KubernetesServiceService.get(namespace);\n    const boundService = KubernetesServiceHelper.findApplicationBoundService(services, rootItem.value.Raw);\n    const service = boundService ? await this.KubernetesServiceService.get(namespace, boundService.metadata.name) : {};\n    const boundServices = KubernetesServiceHelper.findApplicationBoundServices(services, rootItem.value.Raw);\n\n    const application = converterFunc(rootItem.value.Raw, pods.value, service.Raw, ingresses.value);\n    application.Yaml = rootItem.value.Yaml;\n    application.Raw = rootItem.value.Raw;\n    application.Pods = _.map(application.Pods, (item) => KubernetesPodConverter.apiToModel(item));\n    application.Containers = KubernetesApplicationHelper.associateContainersAndApplication(application);\n    application.Services = boundServices;\n\n    const boundScaler = KubernetesHorizontalPodAutoScalerHelper.findApplicationBoundScaler(autoScalers.value, application);\n    const scaler = boundScaler ? await this.KubernetesHorizontalPodAutoScalerService.get(namespace, boundScaler.Name) : undefined;\n    application.AutoScaler = scaler;\n\n    if (service.Yaml) {\n      application.Yaml += '---\\n' + service.Yaml;\n    }\n    if (scaler && scaler.Yaml) {\n      application.Yaml += '---\\n' + scaler.Yaml;\n    }\n    // TODO: refactor @LP\n    // append ingress yaml ?\n    return application;\n  }\n\n  async getAllAsync(namespace) {\n    const namespaces = namespace ? [namespace] : _.map(await this.KubernetesNamespaceService.get(), 'Name');\n\n    const convertToApplication = (item, converterFunc, services, pods, ingresses) => {\n      const service = KubernetesServiceHelper.findApplicationBoundService(services, item);\n      const servicesFound = KubernetesServiceHelper.findApplicationBoundServices(services, item);\n      const application = converterFunc(item, pods, service, ingresses);\n      application.Containers = KubernetesApplicationHelper.associateContainersAndApplication(application);\n      application.Services = servicesFound;\n      return application;\n    };\n\n    const res = await Promise.all(\n      _.map(namespaces, async (ns) => {\n        const [deployments, daemonSets, statefulSets, services, pods, ingresses, autoScalers] = await Promise.all([\n          this.KubernetesDeploymentService.get(ns),\n          this.KubernetesDaemonSetService.get(ns),\n          this.KubernetesStatefulSetService.get(ns),\n          this.KubernetesServiceService.get(ns),\n          this.KubernetesPodService.get(ns),\n          this.KubernetesIngressService.get(ns),\n          this.KubernetesHorizontalPodAutoScalerService.get(ns),\n        ]);\n\n        const deploymentApplications = _.map(deployments, (item) =>\n          convertToApplication(item, KubernetesApplicationConverter.apiDeploymentToApplication, services, pods, ingresses)\n        );\n        const daemonSetApplications = _.map(daemonSets, (item) => convertToApplication(item, KubernetesApplicationConverter.apiDaemonSetToApplication, services, pods, ingresses));\n        const statefulSetApplications = _.map(statefulSets, (item) =>\n          convertToApplication(item, KubernetesApplicationConverter.apiStatefulSetToapplication, services, pods, ingresses)\n        );\n\n        const boundPods = _.concat(_.flatMap(deploymentApplications, 'Pods'), _.flatMap(daemonSetApplications, 'Pods'), _.flatMap(statefulSetApplications, 'Pods'));\n        const unboundPods = _.without(pods, ...boundPods);\n        const nakedPodsApplications = _.map(unboundPods, (item) => convertToApplication(item, KubernetesApplicationConverter.apiPodToApplication, services, pods, ingresses));\n\n        const applications = _.concat(deploymentApplications, daemonSetApplications, statefulSetApplications, nakedPodsApplications);\n        _.forEach(applications, (app) => {\n          app.Pods = _.map(app.Pods, (item) => KubernetesPodConverter.apiToModel(item));\n        });\n        await Promise.all(\n          _.forEach(applications, async (application) => {\n            const boundScaler = KubernetesHorizontalPodAutoScalerHelper.findApplicationBoundScaler(autoScalers, application);\n            const scaler = boundScaler ? await this.KubernetesHorizontalPodAutoScalerService.get(ns, boundScaler.Name) : undefined;\n            application.AutoScaler = scaler;\n          })\n        );\n        return applications;\n      })\n    );\n    return _.flatten(res);\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n  /* #endregion */\n\n  /* #region  CREATE */\n  // TODO: review\n  // resource creation flow\n  // should we keep formValues > Resource_1 || Resource_2\n  // or should we switch to formValues > Composite > Resource_1 || Resource_2\n  /**\n   * NOTE: Keep this method flow in sync with `getCreatedApplicationResources` method in the `applicationService` file\n   *    To synchronise with kubernetes resource creation summary output, any new resources created in this method should\n   *    also be displayed in the summary output (getCreatedApplicationResources)\n   */\n  async createAsync(formValues, hideStacks) {\n    // formValues -> Application\n    let [app, headlessService, services, , claims] = KubernetesApplicationConverter.applicationFormValuesToApplication(formValues);\n\n    if (hideStacks) {\n      app.StackName = '';\n    }\n\n    if (services) {\n      services.forEach(async (service) => {\n        try {\n          await this.KubernetesServiceService.create(service);\n        } catch (error) {\n          notifyError('Unable to create service', error);\n        }\n      });\n\n      try {\n        //Generate all ingresses from current form by passing services object\n        const newServicePorts = formValues.Services.flatMap((service) => service.Ports);\n        const newIngresses = generateNewIngressesFromFormPaths(formValues.OriginalIngresses, newServicePorts);\n        if (newIngresses) {\n          //Update original ingress with current ingress\n          await Promise.all(this._generateIngressPatchPromises(formValues.OriginalIngresses, newIngresses));\n        }\n      } catch (error) {\n        notifyError('Unable to update service', error);\n      }\n    }\n\n    const apiService = this._getApplicationApiService(app);\n\n    if (app instanceof KubernetesStatefulSet) {\n      app.VolumeClaims = claims;\n      try {\n        headlessService = await this.KubernetesServiceService.create(headlessService);\n      } catch (error) {\n        notifyError('Unable to create service', error);\n      }\n      app.ServiceName = headlessService.metadata.name;\n    } else {\n      const claimPromises = _.map(claims, (item) => {\n        if (!item.PreviousName && !item.Id) {\n          return this.KubernetesPersistentVolumeClaimService.create(item);\n        }\n      });\n      await Promise.all(_.without(claimPromises, undefined));\n    }\n\n    if (formValues.AutoScaler.isUsed && formValues.DeploymentType !== KubernetesApplicationDeploymentTypes.Global) {\n      const kind = app.ApplicationType;\n      const autoScaler = KubernetesHorizontalPodAutoScalerConverter.applicationFormValuesToModel(formValues, kind);\n      await this.KubernetesHorizontalPodAutoScalerService.create(autoScaler);\n    }\n\n    await apiService.create(app);\n  }\n\n  create(formValues, _, hideStacks) {\n    return this.$async(this.createAsync, formValues, hideStacks);\n  }\n  /* #endregion */\n\n  /* #region  PATCH */\n  // this function accepts KubernetesApplicationFormValues as parameters\n  /**\n   * NOTE: Keep this method flow in sync with `getUpdatedApplicationResources` method in the `applicationService` file\n   *    To synchronise with kubernetes resource creation, update and delete summary output, any new resources created\n   *    in this method should also be displayed in the summary output (getUpdatedApplicationResources)\n   */\n  async patchAsync(oldFormValues, newFormValues, originalServicePorts) {\n    const [oldApp, oldHeadlessService, oldServices, , oldClaims] = KubernetesApplicationConverter.applicationFormValuesToApplication(oldFormValues);\n    const [newApp, newHeadlessService, newServices, , newClaims] = KubernetesApplicationConverter.applicationFormValuesToApplication(newFormValues);\n    const oldApiService = this._getApplicationApiService(oldApp);\n    const newApiService = this._getApplicationApiService(newApp);\n\n    if (oldApiService !== newApiService) {\n      // delete services first\n      if (oldServices) {\n        await this.KubernetesServiceService.delete(oldServices);\n      }\n\n      // delete the app\n      await this.delete(oldApp);\n\n      // sleep for 5 seconds to allow the app/services to be deleted\n      await new Promise((r) => setTimeout(r, 5000));\n\n      // create the app\n      return await this.create(newFormValues);\n    }\n\n    if (newApp instanceof KubernetesStatefulSet) {\n      try {\n        await this.KubernetesServiceService.patch(oldHeadlessService, newHeadlessService);\n      } catch (error) {\n        notifyError('Unable to update service', error);\n      }\n    } else {\n      const claimPromises = _.map(newClaims, (newClaim) => {\n        if (!newClaim.PreviousName && !newClaim.Id) {\n          return this.KubernetesPersistentVolumeClaimService.create(newClaim);\n        } else if (!newClaim.Id) {\n          const oldClaim = _.find(oldClaims, { Name: newClaim.PreviousName });\n          return this.KubernetesPersistentVolumeClaimService.patch(oldClaim, newClaim);\n        }\n      });\n      await Promise.all(claimPromises);\n    }\n\n    await newApiService.patch(oldApp, newApp);\n\n    // Create services\n    if (oldServices.length === 0 && newServices.length !== 0) {\n      newServices.forEach(async (service) => {\n        try {\n          await this.KubernetesServiceService.create(service);\n        } catch (error) {\n          notifyError('Unable to create service', error);\n        }\n      });\n    }\n\n    // Delete services ( only called when all services been deleted )\n    if (oldServices.length !== 0 && newServices.length === 0) {\n      await this.KubernetesServiceService.deleteAll(oldServices);\n    }\n\n    // Patch services ( Action including: Delete, Update, Create )\n    if (oldServices.length !== 0 && newServices.length !== 0) {\n      oldServices.forEach(async (oldService) => {\n        const newServiceMatched = _.find(newServices, { Name: oldService.Name });\n        if (!newServiceMatched) {\n          await this.KubernetesServiceService.deleteSingle(oldService);\n        }\n      });\n\n      newServices.forEach(async (newService) => {\n        const oldServiceMatched = _.find(oldServices, { Name: newService.Name });\n        if (oldServiceMatched) {\n          try {\n            await this.KubernetesServiceService.patch(oldServiceMatched, newService);\n          } catch (error) {\n            notifyError('Unable to update service', error);\n          }\n        } else {\n          try {\n            await this.KubernetesServiceService.create(newService);\n          } catch (error) {\n            notifyError('Unable to create service', error);\n          }\n        }\n      });\n    }\n\n    // Update ingresses\n    if (newServices) {\n      try {\n        //Generate all ingresses from current form by passing services object\n        const newServicePorts = newFormValues.Services.flatMap((service) => service.Ports);\n        const newIngresses = generateNewIngressesFromFormPaths(newFormValues.OriginalIngresses, newServicePorts, originalServicePorts);\n        if (newIngresses) {\n          //Update original ingress with current ingress\n          await Promise.all(this._generateIngressPatchPromises(newFormValues.OriginalIngresses, newIngresses));\n        }\n      } catch (error) {\n        notifyError('Unable to update service', error);\n      }\n    }\n\n    const newKind = newApp.ApplicationType;\n    const newAutoScaler = KubernetesHorizontalPodAutoScalerConverter.applicationFormValuesToModel(newFormValues, newKind);\n    if (!oldFormValues.AutoScaler.isUsed) {\n      if (newFormValues.AutoScaler.isUsed) {\n        await this.KubernetesHorizontalPodAutoScalerService.create(newAutoScaler);\n      }\n    } else {\n      const oldKind = oldApp.ApplicationType;\n      const oldAutoScaler = KubernetesHorizontalPodAutoScalerConverter.applicationFormValuesToModel(oldFormValues, oldKind);\n      if (newFormValues.AutoScaler.isUsed) {\n        await this.KubernetesHorizontalPodAutoScalerService.patch(oldAutoScaler, newAutoScaler);\n      } else {\n        await this.KubernetesHorizontalPodAutoScalerService.delete(oldAutoScaler);\n      }\n    }\n  }\n\n  // this function accepts KubernetesApplication as parameters\n  async patchPartialAsync(oldApp, newApp) {\n    const oldAppPayload = {\n      Name: oldApp.Name,\n      Namespace: oldApp.ResourcePool,\n      StackName: oldApp.StackName,\n      Note: oldApp.Note,\n    };\n    const newAppPayload = {\n      Name: newApp.Name,\n      Namespace: newApp.ResourcePool,\n      StackName: newApp.StackName,\n      Note: newApp.Note,\n    };\n    const apiService = this._getApplicationApiService(oldApp);\n    await apiService.patch(oldAppPayload, newAppPayload);\n  }\n\n  // accept either formValues or applications as parameters depending on partial value\n  // true = KubernetesApplication\n  // false = KubernetesApplicationFormValues\n  //\n  // e.g. signatures are\n  //\n  // patch(oldValues: KubernetesApplication, newValues: KubernetesApplication, partial: (undefined | false)): Promise<unknown>\n  // patch(oldValues: KubernetesApplicationFormValues, newValues: KubernetesApplicationFormValues, partial: true): Promise<unknown>\n  patch(oldValues, newValues, partial = false, originalServicePorts) {\n    if (partial) {\n      return this.$async(this.patchPartialAsync, oldValues, newValues);\n    }\n    return this.$async(this.patchAsync, oldValues, newValues, originalServicePorts);\n  }\n  /* #endregion */\n\n  /* #region  DELETE */\n  async deleteAsync(application) {\n    const payload = {\n      Namespace: application.ResourcePool || application.Namespace,\n      Name: application.Name,\n    };\n    const servicePayload = angular.copy(payload);\n    servicePayload.Name = application.Name;\n\n    const apiService = this._getApplicationApiService(application);\n    await apiService.delete(payload);\n\n    if (apiService === this.KubernetesStatefulSetService) {\n      const headlessServicePayload = angular.copy(payload);\n      headlessServicePayload.Name = application instanceof KubernetesStatefulSet ? application.ServiceName : application.HeadlessServiceName;\n    }\n\n    if (application.ServiceType) {\n      // delete headless service && non-headless service\n      await this.KubernetesServiceService.delete(application.Services);\n      const appHasIngressPath = application.PublishedPorts && application.PublishedPorts.flatMap((pp) => pp.IngressRules).length >= 1;\n      if (appHasIngressPath) {\n        const originalIngresses = await this.KubernetesIngressService.get(payload.Namespace);\n        const formValues = {\n          OriginalIngresses: originalIngresses,\n          PublishedPorts: KubernetesApplicationHelper.generatePublishedPortsFormValuesFromPublishedPorts(application.ServiceType, application.PublishedPorts),\n        };\n        const ingresses = KubernetesIngressConverter.applicationFormValuesToDeleteIngresses(formValues, application);\n\n        await Promise.all(this._generateIngressPatchPromises(formValues.OriginalIngresses, ingresses));\n      }\n    }\n    if (!_.isEmpty(application.AutoScaler)) {\n      await this.KubernetesHorizontalPodAutoScalerService.delete(application.AutoScaler);\n    }\n  }\n\n  delete(application) {\n    return this.$async(this.deleteAsync, application);\n  }\n  /* #endregion */\n}\n\nexport default KubernetesApplicationService;\nangular.module('portainer.kubernetes').service('KubernetesApplicationService', KubernetesApplicationService);\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport PortainerError from 'Portainer/error';\nimport KubernetesConfigMapConverter from 'Kubernetes/converters/configMap';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport { KubernetesPortainerAccessConfigMap } from 'Kubernetes/models/config-map/models';\n\nclass KubernetesConfigMapService {\n  /* @ngInject */\n  constructor($async, KubernetesConfigMaps) {\n    this.$async = $async;\n    this.KubernetesConfigMaps = KubernetesConfigMaps;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.updateAsync = this.updateAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  getAccess(namespace, name) {\n    return this.$async(async () => {\n      try {\n        const params = new KubernetesCommonParams();\n        params.id = name;\n        const raw = await this.KubernetesConfigMaps(namespace).get(params).$promise;\n        return KubernetesConfigMapConverter.apiToPortainerAccessConfigMap(raw);\n      } catch (err) {\n        if (err.status === 404) {\n          return new KubernetesPortainerAccessConfigMap();\n        }\n        throw new PortainerError('Unable to retrieve Portainer accesses', err);\n      }\n    });\n  }\n\n  createAccess(config) {\n    return this.$async(async () => {\n      try {\n        const payload = KubernetesConfigMapConverter.createAccessPayload(config);\n        const params = {};\n        const namespace = payload.metadata.namespace;\n        const data = await this.KubernetesConfigMaps(namespace).create(params, payload).$promise;\n        return KubernetesConfigMapConverter.apiToPortainerAccessConfigMap(data);\n      } catch (err) {\n        throw new PortainerError('Unable to create Portainer accesses', err);\n      }\n    });\n  }\n\n  updateAccess(config) {\n    return this.$async(async () => {\n      try {\n        if (!config.Id) {\n          return await this.createAccess(config);\n        }\n        const payload = KubernetesConfigMapConverter.updateAccessPayload(config);\n        const params = new KubernetesCommonParams();\n        params.id = payload.metadata.name;\n        const namespace = payload.metadata.namespace;\n        const data = await this.KubernetesConfigMaps(namespace).update(params, payload).$promise;\n        return KubernetesConfigMapConverter.apiToPortainerAccessConfigMap(data);\n      } catch (err) {\n        throw new PortainerError('Unable to update Portainer accesses', err);\n      }\n    });\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [rawPromise, yamlPromise] = await Promise.allSettled([\n        this.KubernetesConfigMaps(namespace).get(params).$promise,\n        this.KubernetesConfigMaps(namespace).getYaml(params).$promise,\n      ]);\n\n      if (_.get(rawPromise, 'reason.status') === 404 && _.get(yamlPromise, 'reason.status') === 404) {\n        return KubernetesConfigMapConverter.defaultConfigMap(namespace, name);\n      }\n\n      // Saving binary data to 'data' field in configMap Object is not allowed by kubernetes and getYaml() may get\n      // an error. We should keep binary data to 'binaryData' field instead of 'data'. Before that, we\n      // use response from get() and ignore 500 error as a workaround.\n      if (rawPromise.value) {\n        return KubernetesConfigMapConverter.apiToConfigMap(rawPromise.value, yamlPromise.value);\n      }\n\n      throw new PortainerError('Unable to retrieve config map ', name);\n    } catch (err) {\n      if (err.status === 404) {\n        return KubernetesConfigMapConverter.defaultConfigMap(namespace, name);\n      }\n      throw new PortainerError('Unable to retrieve config map', err);\n    }\n  }\n\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesConfigMaps(namespace).get().$promise;\n      return _.map(data.items, (item) => KubernetesConfigMapConverter.apiToConfigMap(item));\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve config maps', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(config) {\n    try {\n      const payload = KubernetesConfigMapConverter.createPayload(config);\n      const params = {};\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesConfigMaps(namespace).create(params, payload).$promise;\n      return KubernetesConfigMapConverter.apiToConfigMap(data);\n    } catch (err) {\n      throw new PortainerError('Unable to create config map', err);\n    }\n  }\n\n  create(config) {\n    return this.$async(this.createAsync, config);\n  }\n\n  /**\n   * UPDATE\n   */\n  async updateAsync(config) {\n    try {\n      if (!config.Id) {\n        return await this.create(config);\n      }\n      const payload = KubernetesConfigMapConverter.updatePayload(config);\n      const params = new KubernetesCommonParams();\n      params.id = payload.metadata.name;\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesConfigMaps(namespace).update(params, payload).$promise;\n      return KubernetesConfigMapConverter.apiToConfigMap(data);\n    } catch (err) {\n      throw new PortainerError('Unable to update config map', err);\n    }\n  }\n  update(config) {\n    return this.$async(this.updateAsync, config);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(config) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = config.Name;\n      const namespace = config.Namespace;\n      await this.KubernetesConfigMaps(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to delete config map', err);\n    }\n  }\n\n  delete(config) {\n    return this.$async(this.deleteAsync, config);\n  }\n}\n\nexport default KubernetesConfigMapService;\nangular.module('portainer.kubernetes').service('KubernetesConfigMapService', KubernetesConfigMapService);\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport KubernetesConfigurationConverter from 'Kubernetes/converters/configuration';\nimport KubernetesConfigMapConverter from 'Kubernetes/converters/configMap';\nimport KubernetesSecretConverter from 'Kubernetes/converters/secret';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\nimport KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';\n\nclass KubernetesConfigurationService {\n  /* @ngInject */\n  constructor($async, Authentication, KubernetesNamespaceService, KubernetesConfigMapService, KubernetesSecretService) {\n    this.$async = $async;\n    this.Authentication = Authentication;\n    this.KubernetesNamespaceService = KubernetesNamespaceService;\n    this.KubernetesConfigMapService = KubernetesConfigMapService;\n    this.KubernetesSecretService = KubernetesSecretService;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.updateAsync = this.updateAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    const [configMap, secret] = await Promise.allSettled([this.KubernetesConfigMapService.get(namespace, name), this.KubernetesSecretService.get(namespace, name)]);\n    let configuration;\n    if (secret.status === 'fulfilled') {\n      configuration = KubernetesConfigurationConverter.secretToConfiguration(secret.value);\n      return configuration;\n    }\n    configuration = KubernetesConfigurationConverter.configMapToConfiguration(configMap.value);\n    return configuration;\n  }\n\n  async getAllAsync(namespace) {\n    const namespaces = namespace ? [namespace] : _.map(await this.KubernetesNamespaceService.get(), 'Name');\n    const res = await Promise.all(\n      _.map(namespaces, async (ns) => {\n        const [configMaps, secrets] = await Promise.all([this.KubernetesConfigMapService.get(ns), this.KubernetesSecretService.get(ns)]);\n        const secretsConfigurations = _.map(secrets, (secret) => KubernetesConfigurationConverter.secretToConfiguration(secret));\n        const configMapsConfigurations = _.map(configMaps, (configMap) => KubernetesConfigurationConverter.configMapToConfiguration(configMap));\n        return _.concat(configMapsConfigurations, secretsConfigurations);\n      })\n    );\n    return _.flatten(res);\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(formValues) {\n    formValues.ConfigurationOwner = KubernetesCommonHelper.ownerToLabel(formValues.ConfigurationOwner);\n\n    if (formValues.Kind === KubernetesConfigurationKinds.CONFIGMAP) {\n      const configMap = KubernetesConfigMapConverter.configurationFormValuesToConfigMap(formValues);\n      await this.KubernetesConfigMapService.create(configMap);\n    } else {\n      const secret = KubernetesSecretConverter.configurationFormValuesToSecret(formValues);\n      await this.KubernetesSecretService.create(secret);\n    }\n  }\n\n  create(formValues) {\n    return this.$async(this.createAsync, formValues);\n  }\n\n  /**\n   * UPDATE\n   */\n  async updateAsync(formValues, configuration) {\n    if (formValues.Kind === KubernetesConfigurationKinds.CONFIGMAP) {\n      const configMap = KubernetesConfigMapConverter.configurationFormValuesToConfigMap(formValues);\n      configMap.ConfigurationOwner = configuration.ConfigurationOwner;\n      configMap.Labels = configuration.Labels;\n      await this.KubernetesConfigMapService.update(configMap);\n    } else {\n      const secret = KubernetesSecretConverter.configurationFormValuesToSecret(formValues);\n      secret.ConfigurationOwner = configuration.ConfigurationOwner;\n      secret.Labels = configuration.Labels;\n      await this.KubernetesSecretService.update(secret);\n    }\n  }\n\n  update(formValues, configuration) {\n    return this.$async(this.updateAsync, formValues, configuration);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(config) {\n    if (config.Kind == KubernetesConfigurationKinds.CONFIGMAP) {\n      await this.KubernetesConfigMapService.delete(config);\n    } else {\n      await this.KubernetesSecretService.delete(config);\n    }\n  }\n\n  delete(config) {\n    return this.$async(this.deleteAsync, config);\n  }\n}\n\nexport default KubernetesConfigurationService;\nangular.module('portainer.kubernetes').service('KubernetesConfigurationService', KubernetesConfigurationService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\n\nclass KubernetesControllerRevisionService {\n  /* @ngInject */\n  constructor($async, KubernetesControllerRevisions) {\n    this.$async = $async;\n    this.KubernetesControllerRevisions = KubernetesControllerRevisions;\n\n    this.getAllAsync = this.getAllAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesControllerRevisions(namespace).get().$promise;\n      return data.items;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve ControllerRevisions', err);\n    }\n  }\n\n  get(namespace) {\n    return this.$async(this.getAllAsync, namespace);\n  }\n}\n\nexport default KubernetesControllerRevisionService;\nangular.module('portainer.kubernetes').service('KubernetesControllerRevisionService', KubernetesControllerRevisionService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport KubernetesDaemonSetConverter from 'Kubernetes/converters/daemonSet';\n\nclass KubernetesDaemonSetService {\n  /* @ngInject */\n  constructor($async, KubernetesDaemonSets) {\n    this.$async = $async;\n    this.KubernetesDaemonSets = KubernetesDaemonSets;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([this.KubernetesDaemonSets(namespace).get(params).$promise, this.KubernetesDaemonSets(namespace).getYaml(params).$promise]);\n      const res = {\n        Raw: raw,\n        Yaml: yaml.data,\n      };\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve DaemonSet', err);\n    }\n  }\n\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesDaemonSets(namespace).get().$promise;\n      return data.items;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve DaemonSets', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(daemonSet) {\n    try {\n      const params = {};\n      const payload = KubernetesDaemonSetConverter.createPayload(daemonSet);\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesDaemonSets(namespace).create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create daemonset', err);\n    }\n  }\n\n  create(daemonSet) {\n    return this.$async(this.createAsync, daemonSet);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(oldDaemonSet, newDaemonSet) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newDaemonSet.Name;\n      const namespace = newDaemonSet.Namespace;\n      const payload = KubernetesDaemonSetConverter.patchPayload(oldDaemonSet, newDaemonSet);\n      if (!payload.length) {\n        return;\n      }\n      const data = await this.KubernetesDaemonSets(namespace).patch(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to patch daemonSet', err);\n    }\n  }\n\n  patch(oldDaemonSet, newDaemonSet) {\n    return this.$async(this.patchAsync, oldDaemonSet, newDaemonSet);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(daemonSet) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = daemonSet.Name;\n      const namespace = daemonSet.Namespace;\n      await this.KubernetesDaemonSets(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to remove daemonset', err);\n    }\n  }\n\n  delete(daemonSet) {\n    return this.$async(this.deleteAsync, daemonSet);\n  }\n}\n\nexport default KubernetesDaemonSetService;\nangular.module('portainer.kubernetes').service('KubernetesDaemonSetService', KubernetesDaemonSetService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport KubernetesDeploymentConverter from 'Kubernetes/converters/deployment';\n\nclass KubernetesDeploymentService {\n  /* @ngInject */\n  constructor($async, KubernetesDeployments) {\n    this.$async = $async;\n    this.KubernetesDeployments = KubernetesDeployments;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([this.KubernetesDeployments(namespace).get(params).$promise, this.KubernetesDeployments(namespace).getYaml(params).$promise]);\n      const res = {\n        Raw: raw,\n        Yaml: yaml.data,\n      };\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve Deployment', err);\n    }\n  }\n\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesDeployments(namespace).get().$promise;\n      return data.items;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve Deployments', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(deployment) {\n    try {\n      const params = {};\n      const payload = KubernetesDeploymentConverter.createPayload(deployment);\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesDeployments(namespace).create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create deployment', err);\n    }\n  }\n\n  create(deployment) {\n    return this.$async(this.createAsync, deployment);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(oldDeployment, newDeployment) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newDeployment.Name;\n      const namespace = newDeployment.Namespace;\n      const payload = KubernetesDeploymentConverter.patchPayload(oldDeployment, newDeployment);\n      if (!payload.length) {\n        return;\n      }\n      const data = await this.KubernetesDeployments(namespace).patch(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to patch deployment', err);\n    }\n  }\n\n  patch(oldDeployment, newDeployment) {\n    return this.$async(this.patchAsync, oldDeployment, newDeployment);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(deployment) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = deployment.Name;\n      const namespace = deployment.Namespace;\n      await this.KubernetesDeployments(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to remove deployment', err);\n    }\n  }\n\n  delete(deployment) {\n    return this.$async(this.deleteAsync, deployment);\n  }\n}\n\nexport default KubernetesDeploymentService;\nangular.module('portainer.kubernetes').service('KubernetesDeploymentService', KubernetesDeploymentService);\n","import _ from 'lodash-es';\nimport angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport KubernetesEventConverter from 'Kubernetes/converters/event';\n\nclass KubernetesEventService {\n  /* @ngInject */\n  constructor($async, KubernetesEvents) {\n    this.$async = $async;\n    this.KubernetesEvents = KubernetesEvents;\n\n    this.getAllAsync = this.getAllAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesEvents(namespace).get().$promise;\n      const res = _.map(data.items, (item) => KubernetesEventConverter.apiToEvent(item));\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve events', err);\n    }\n  }\n\n  get(namespace) {\n    return this.$async(this.getAllAsync, namespace);\n  }\n}\n\nexport default KubernetesEventService;\nangular.module('portainer.kubernetes').service('KubernetesEventService', KubernetesEventService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\n\nclass KubernetesHealthService {\n  /* @ngInject */\n  constructor($async, KubernetesHealth) {\n    this.$async = $async;\n    this.KubernetesHealth = KubernetesHealth;\n\n    this.pingAsync = this.pingAsync.bind(this);\n  }\n\n  /**\n   * PING\n   */\n  async pingAsync(endpointID) {\n    try {\n      return await this.KubernetesHealth.ping({ id: endpointID }).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve environment health', err);\n    }\n  }\n\n  ping(endpointID) {\n    return this.$async(this.pingAsync, endpointID);\n  }\n}\n\nexport default KubernetesHealthService;\nangular.module('portainer.kubernetes').service('KubernetesHealthService', KubernetesHealthService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport KubernetesNamespaceConverter from 'Kubernetes/converters/namespace';\nimport { updateNamespaces } from 'Kubernetes/store/namespace';\nimport $allSettled from 'Portainer/services/allSettled';\nimport { getSelfSubjectAccessReview } from '@/react/kubernetes/namespaces/getSelfSubjectAccessReview';\n\nclass KubernetesNamespaceService {\n  /* @ngInject */\n  constructor($async, KubernetesNamespaces, LocalStorage, $state) {\n    this.$async = $async;\n    this.$state = $state;\n    this.KubernetesNamespaces = KubernetesNamespaces;\n    this.LocalStorage = LocalStorage;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n    this.getJSONAsync = this.getJSONAsync.bind(this);\n    this.updateFinalizeAsync = this.updateFinalizeAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      await this.KubernetesNamespaces().status(params).$promise;\n      const [raw, yaml] = await Promise.all([this.KubernetesNamespaces().get(params).$promise, this.KubernetesNamespaces().getYaml(params).$promise]);\n      const ns = KubernetesNamespaceConverter.apiToNamespace(raw, yaml);\n      updateNamespaces([ns]);\n      return ns;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve namespace', err);\n    }\n  }\n\n  /**\n   * GET namesspace in JSON format\n   */\n  async getJSONAsync(name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      await this.KubernetesNamespaces().status(params).$promise;\n      return await this.KubernetesNamespaces().getJSON(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve namespace', err);\n    }\n  }\n\n  /**\n   * Update finalize\n   */\n  async updateFinalizeAsync(namespace) {\n    try {\n      return await this.KubernetesNamespaces().update({ id: namespace.metadata.name, action: 'finalize' }, namespace).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to update namespace', err);\n    }\n  }\n\n  async getAllAsync() {\n    try {\n      // get the list of all namespaces (RBAC allows users to see the list of namespaces)\n      const data = await this.KubernetesNamespaces().get().$promise;\n      // get the status of each namespace with accessReviews (to avoid failed forbidden responses, which aren't cached)\n      const accessReviews = await Promise.all(data.items.map((namespace) => getSelfSubjectAccessReview(this.$state.params.endpointId, namespace.metadata.name)));\n      const allowedNamespaceNames = accessReviews.filter((ar) => ar.status.allowed).map((ar) => ar.spec.resourceAttributes.namespace);\n      const promises = allowedNamespaceNames.map((name) => this.KubernetesNamespaces().status({ id: name }).$promise);\n      const namespaces = await $allSettled(promises);\n      // only return namespaces if the user has access to namespaces\n      const allNamespaces = namespaces.fulfilled.map((item) => {\n        return KubernetesNamespaceConverter.apiToNamespace(item);\n      });\n      updateNamespaces(allNamespaces);\n      return allNamespaces;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve namespaces', err);\n    }\n  }\n\n  async get(name) {\n    if (name) {\n      return this.$async(this.getAsync, name);\n    }\n    const allowedNamespaces = await this.getAllAsync();\n    updateNamespaces(allowedNamespaces);\n    return allowedNamespaces;\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(namespace) {\n    try {\n      const payload = KubernetesNamespaceConverter.createPayload(namespace);\n      const params = {};\n      const data = await this.KubernetesNamespaces().create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create namespace', err);\n    }\n  }\n\n  create(namespace) {\n    return this.$async(this.createAsync, namespace);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(namespace) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = namespace.Name;\n      await this.KubernetesNamespaces().delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to delete namespace', err);\n    }\n  }\n\n  delete(namespace) {\n    return this.$async(this.deleteAsync, namespace);\n  }\n}\n\nexport default KubernetesNamespaceService;\nangular.module('portainer.kubernetes').service('KubernetesNamespaceService', KubernetesNamespaceService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesNodesLimits } from 'Kubernetes/models/nodes-limits/models';\n\nclass KubernetesNodesLimitsService {\n  /* @ngInject */\n  constructor(KubernetesNodesLimits) {\n    this.KubernetesNodesLimits = KubernetesNodesLimits;\n  }\n\n  /**\n   * GET\n   */\n  async get() {\n    try {\n      const nodesLimits = await this.KubernetesNodesLimits.get().$promise;\n      return new KubernetesNodesLimits(nodesLimits.data);\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve nodes limits', err);\n    }\n  }\n}\n\nexport default KubernetesNodesLimitsService;\nangular.module('portainer.kubernetes').service('KubernetesNodesLimitsService', KubernetesNodesLimitsService);\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport PortainerError from 'Portainer/error';\nimport KubernetesPersistentVolumeClaimConverter from 'Kubernetes/converters/persistentVolumeClaim';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\n\nclass KubernetesPersistentVolumeClaimService {\n  /* @ngInject */\n  constructor($async, KubernetesPersistentVolumeClaims) {\n    this.$async = $async;\n    this.KubernetesPersistentVolumeClaims = KubernetesPersistentVolumeClaims;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  async getAsync(namespace, storageClasses, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([\n        this.KubernetesPersistentVolumeClaims(namespace).get(params).$promise,\n        this.KubernetesPersistentVolumeClaims(namespace).getYaml(params).$promise,\n      ]);\n\n      return KubernetesPersistentVolumeClaimConverter.apiToPersistentVolumeClaim(raw, storageClasses, yaml);\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve persistent volume claim', err);\n    }\n  }\n\n  async getAllAsync(namespace, storageClasses) {\n    try {\n      const data = await this.KubernetesPersistentVolumeClaims(namespace).get().$promise;\n\n      return _.map(data.items, (item) => KubernetesPersistentVolumeClaimConverter.apiToPersistentVolumeClaim(item, storageClasses));\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve persistent volume claims', err);\n    }\n  }\n\n  get(namespace, storageClasses, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, storageClasses, name);\n    }\n    return this.$async(this.getAllAsync, namespace, storageClasses);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(claim) {\n    try {\n      const params = {};\n      const payload = KubernetesPersistentVolumeClaimConverter.createPayload(claim);\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesPersistentVolumeClaims(namespace).create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create persistent volume claim', err);\n    }\n  }\n\n  create(claim) {\n    return this.$async(this.createAsync, claim);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(oldPVC, newPVC) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newPVC.Name;\n      const namespace = newPVC.Namespace;\n      const payload = KubernetesPersistentVolumeClaimConverter.patchPayload(oldPVC, newPVC);\n      if (!payload.length) {\n        return;\n      }\n      const data = await this.KubernetesPersistentVolumeClaims(namespace).patch(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to patch persistent volume claim', err);\n    }\n  }\n\n  patch(oldPVC, newPVC) {\n    return this.$async(this.patchAsync, oldPVC, newPVC);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(pvc) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = pvc.Name;\n      const namespace = pvc.Namespace;\n      await this.KubernetesPersistentVolumeClaims(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to delete persistent volume claim', err);\n    }\n  }\n\n  delete(pvc) {\n    return this.$async(this.deleteAsync, pvc);\n  }\n}\n\nexport default KubernetesPersistentVolumeClaimService;\nangular.module('portainer.kubernetes').service('KubernetesPersistentVolumeClaimService', KubernetesPersistentVolumeClaimService);\n","import _ from 'lodash-es';\n\nimport angular from 'angular';\nimport KubernetesResourcePoolConverter from 'Kubernetes/converters/resourcePool';\nimport KubernetesResourceQuotaHelper from 'Kubernetes/helpers/resourceQuotaHelper';\n\n/* @ngInject */\nexport function KubernetesResourcePoolService(\n  $async,\n  EndpointService,\n  KubernetesNamespaceService,\n  KubernetesResourceQuotaService,\n  KubernetesIngressService,\n  KubernetesPortainerNamespaces\n) {\n  return {\n    get,\n    create,\n    patch,\n    delete: _delete,\n    toggleSystem,\n  };\n\n  // getting quota isn't a costly operation for one namespace, so we can get it by default\n  async function getOne(name, { getQuota = true }) {\n    const namespace = await KubernetesNamespaceService.get(name);\n    const pool = KubernetesResourcePoolConverter.apiToResourcePool(namespace);\n    if (getQuota) {\n      const [quotaAttempt] = await Promise.allSettled([KubernetesResourceQuotaService.get(name, KubernetesResourceQuotaHelper.generateResourceQuotaName(name))]);\n      if (quotaAttempt.status === 'fulfilled') {\n        pool.Quota = quotaAttempt.value;\n        pool.Yaml += '---\\n' + quotaAttempt.value.Yaml;\n      }\n    }\n    return pool;\n  }\n\n  // getting the quota for all namespaces is costly by default, so disable getting it by default\n  async function getAll({ getQuota = false }) {\n    const namespaces = await KubernetesNamespaceService.get();\n    const pools = await Promise.all(\n      _.map(namespaces, async (namespace) => {\n        const name = namespace.Name;\n        const pool = KubernetesResourcePoolConverter.apiToResourcePool(namespace);\n        if (getQuota) {\n          const [quotaAttempt] = await Promise.allSettled([KubernetesResourceQuotaService.get(name, KubernetesResourceQuotaHelper.generateResourceQuotaName(name))]);\n          if (quotaAttempt.status === 'fulfilled') {\n            pool.Quota = quotaAttempt.value;\n            pool.Yaml += '---\\n' + quotaAttempt.value.Yaml;\n          }\n        }\n        return pool;\n      })\n    );\n    return pools;\n  }\n\n  function get(name, options = {}) {\n    if (name) {\n      return $async(getOne, name, options);\n    }\n    return $async(getAll, options);\n  }\n\n  function create(formValues) {\n    return $async(async () => {\n      const [namespace, quota, ingresses, registries] = KubernetesResourcePoolConverter.formValuesToResourcePool(formValues);\n      await KubernetesNamespaceService.create(namespace);\n\n      if (quota) {\n        await KubernetesResourceQuotaService.create(quota);\n      }\n      const ingressPromises = _.map(ingresses, (i) => KubernetesIngressService.create(i));\n      await Promise.all(ingressPromises);\n\n      const endpointId = formValues.EndpointId;\n      const registriesPromises = _.map(registries, (r) => EndpointService.updateRegistryAccess(endpointId, r.Id, r.RegistryAccesses[endpointId]));\n      await Promise.all(registriesPromises);\n    });\n  }\n\n  function patch(oldFormValues, newFormValues) {\n    return $async(async () => {\n      const [, oldQuota, oldIngresses, oldRegistries] = KubernetesResourcePoolConverter.formValuesToResourcePool(oldFormValues);\n      const [, newQuota, newIngresses, newRegistries] = KubernetesResourcePoolConverter.formValuesToResourcePool(newFormValues);\n\n      if (oldQuota && newQuota) {\n        await KubernetesResourceQuotaService.patch(oldQuota, newQuota);\n      } else if (!oldQuota && newQuota) {\n        await KubernetesResourceQuotaService.create(newQuota);\n      } else if (oldQuota && !newQuota) {\n        await KubernetesResourceQuotaService.delete(oldQuota);\n      }\n\n      const create = _.filter(newIngresses, (ing) => !_.find(oldIngresses, { Name: ing.Name }));\n      const del = _.filter(oldIngresses, (ing) => !_.find(newIngresses, { Name: ing.Name }));\n      const patch = _.without(newIngresses, ...create);\n\n      const createPromises = _.map(create, (i) => KubernetesIngressService.create(i));\n      const delPromises = _.map(del, (i) => KubernetesIngressService.delete(i.Namespace, i.Name));\n      const patchPromises = _.map(patch, (ing) => {\n        const old = _.find(oldIngresses, { Name: ing.Name });\n        ing.Paths = angular.copy(old.Paths);\n        ing.PreviousHost = old.Host;\n        return KubernetesIngressService.patch(old, ing);\n      });\n\n      const promises = _.flatten([createPromises, delPromises, patchPromises]);\n      await Promise.all(promises);\n\n      const endpointId = newFormValues.EndpointId;\n      const keptRegistries = _.intersectionBy(oldRegistries, newRegistries, 'Id');\n      const removedRegistries = _.without(oldRegistries, ...keptRegistries);\n\n      const newRegistriesPromises = _.map(newRegistries, (r) => EndpointService.updateRegistryAccess(endpointId, r.Id, r.RegistryAccesses[endpointId]));\n      const removedRegistriesPromises = _.map(removedRegistries, (r) => {\n        _.pull(r.RegistryAccesses[endpointId].Namespaces, newFormValues.Name);\n        return EndpointService.updateRegistryAccess(endpointId, r.Id, r.RegistryAccesses[endpointId]);\n      });\n\n      await Promise.all(_.concat(newRegistriesPromises, removedRegistriesPromises));\n    });\n  }\n\n  function _delete(pool) {\n    return $async(async () => {\n      await KubernetesNamespaceService.delete(pool.Namespace);\n    });\n  }\n\n  function toggleSystem(endpointId, namespaceName, system) {\n    return KubernetesPortainerNamespaces.toggleSystem({ namespaceName, endpointId }, { system }).$promise;\n  }\n}\n\nangular.module('portainer.kubernetes').service('KubernetesResourcePoolService', KubernetesResourcePoolService);\n","import _ from 'lodash-es';\n\nimport angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport KubernetesResourceQuotaConverter from 'Kubernetes/converters/resourceQuota';\n\n/* @ngInject */\nexport function KubernetesResourceQuotaService($async, KubernetesResourceQuotas) {\n  return {\n    get,\n    create,\n    patch,\n    delete: _delete,\n  };\n\n  async function getOne(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([KubernetesResourceQuotas(namespace).get(params).$promise, KubernetesResourceQuotas(namespace).getYaml(params).$promise]);\n      return KubernetesResourceQuotaConverter.apiToResourceQuota(raw, yaml);\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve resource quota', err);\n    }\n  }\n\n  async function getAll(namespace) {\n    try {\n      const data = await KubernetesResourceQuotas(namespace).get().$promise;\n      return _.map(data.items, (item) => KubernetesResourceQuotaConverter.apiToResourceQuota(item));\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve resource quotas', err);\n    }\n  }\n\n  function get(namespace, name) {\n    if (name) {\n      return $async(getOne, namespace, name);\n    }\n    return $async(getAll, namespace);\n  }\n\n  function create(quota) {\n    return $async(async () => {\n      try {\n        const payload = KubernetesResourceQuotaConverter.createPayload(quota);\n        const namespace = payload.metadata.namespace;\n        const params = {};\n        const data = await KubernetesResourceQuotas(namespace).create(params, payload).$promise;\n        return KubernetesResourceQuotaConverter.apiToResourceQuota(data);\n      } catch (err) {\n        throw new PortainerError('Unable to create quota', err);\n      }\n    });\n  }\n\n  function patch(oldQuota, newQuota) {\n    return $async(async () => {\n      try {\n        const params = new KubernetesCommonParams();\n        params.id = newQuota.Name;\n        const namespace = newQuota.Namespace;\n        const payload = KubernetesResourceQuotaConverter.patchPayload(oldQuota, newQuota);\n        if (!payload.length) {\n          return;\n        }\n        const data = await KubernetesResourceQuotas(namespace).patch(params, payload).$promise;\n        return data;\n      } catch (err) {\n        throw new PortainerError('Unable to update resource quota', err);\n      }\n    });\n  }\n\n  function _delete(quota) {\n    return $async(async () => {\n      try {\n        const params = new KubernetesCommonParams();\n        params.id = quota.Name;\n        await KubernetesResourceQuotas(quota.Namespace).delete(params).$promise;\n      } catch (err) {\n        throw new PortainerError('Unable to delete quota', err);\n      }\n    });\n  }\n}\n\nangular.module('portainer.kubernetes').service('KubernetesResourceQuotaService', KubernetesResourceQuotaService);\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport PortainerError from 'Portainer/error';\nimport KubernetesSecretConverter from 'Kubernetes/converters/secret';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\n\nclass KubernetesSecretService {\n  /* @ngInject */\n  constructor($async, KubernetesSecrets) {\n    this.$async = $async;\n    this.KubernetesSecrets = KubernetesSecrets;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.updateAsync = this.updateAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([this.KubernetesSecrets(namespace).get(params).$promise, this.KubernetesSecrets(namespace).getYaml(params).$promise]);\n      const secret = KubernetesSecretConverter.apiToSecret(raw, yaml);\n      return secret;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve secret', err);\n    }\n  }\n\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesSecrets(namespace).get().$promise;\n      return _.map(data.items, (item) => KubernetesSecretConverter.apiToSecret(item));\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve secrets', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(secret) {\n    try {\n      const payload = KubernetesSecretConverter.createPayload(secret);\n      const namespace = payload.metadata.namespace;\n      const params = {};\n      const data = await this.KubernetesSecrets(namespace).create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create secret', err);\n    }\n  }\n\n  create(secret) {\n    return this.$async(this.createAsync, secret);\n  }\n\n  /**\n   * UPDATE\n   */\n  async updateAsync(secret) {\n    try {\n      const payload = KubernetesSecretConverter.updatePayload(secret);\n      const params = new KubernetesCommonParams();\n      params.id = payload.metadata.name;\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesSecrets(namespace).update(params, payload).$promise;\n      return KubernetesSecretConverter.apiToSecret(data);\n    } catch (err) {\n      throw new PortainerError('Unable to update secret', err);\n    }\n  }\n\n  update(secret) {\n    return this.$async(this.updateAsync, secret);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(secret) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = secret.Name;\n      const namespace = secret.Namespace;\n      await this.KubernetesSecrets(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to delete secret', err);\n    }\n  }\n\n  delete(secret) {\n    return this.$async(this.deleteAsync, secret);\n  }\n}\n\nexport default KubernetesSecretService;\nangular.module('portainer.kubernetes').service('KubernetesSecretService', KubernetesSecretService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport KubernetesServiceConverter from 'Kubernetes/converters/service';\n\nclass KubernetesServiceService {\n  /* @ngInject */\n  constructor($async, KubernetesServices) {\n    this.$async = $async;\n    this.KubernetesServices = KubernetesServices;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n    this.deleteSingleAsync = this.deleteSingleAsync.bind(this);\n    this.deleteAllAsync = this.deleteAllAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([this.KubernetesServices(namespace).get(params).$promise, this.KubernetesServices(namespace).getYaml(params).$promise]);\n      const res = {\n        Raw: raw,\n        Yaml: yaml.data,\n      };\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve service', err);\n    }\n  }\n\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesServices(namespace).get().$promise;\n      return data.items;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve services', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(service) {\n    try {\n      const params = {};\n      const payload = KubernetesServiceConverter.createPayload(service);\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesServices(namespace).create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create service', err);\n    }\n  }\n\n  create(service) {\n    return this.$async(this.createAsync, service);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(oldService, newService) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newService.Name;\n      const namespace = newService.Namespace;\n      const payload = KubernetesServiceConverter.patchPayload(oldService, newService);\n      if (!payload.length) {\n        return;\n      }\n      const data = await this.KubernetesServices(namespace).patch(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to patch service', err);\n    }\n  }\n\n  patch(oldService, newService) {\n    return this.$async(this.patchAsync, oldService, newService);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(services) {\n    services.forEach(async (service) => {\n      try {\n        const params = new KubernetesCommonParams();\n        params.id = (service.metadata && service.metadata.name) || service.Name;\n        const namespace = (service.metadata && service.metadata.namespace) || service.Namespace;\n        await this.KubernetesServices(namespace).delete(params).$promise;\n      } catch (err) {\n        // eslint-disable-next-line no-console\n        console.error('unable to remove service', err);\n      }\n    });\n  }\n\n  delete(services) {\n    return this.$async(this.deleteAsync, services);\n  }\n\n  async deleteAllAsync(formValuesServices) {\n    formValuesServices.forEach(async (service) => {\n      try {\n        const params = new KubernetesCommonParams();\n        params.id = service.Name;\n        const namespace = service.Namespace;\n        await this.KubernetesServices(namespace).delete(params).$promise;\n      } catch (err) {\n        // eslint-disable-next-line no-console\n        console.error('unable to remove service', err);\n      }\n    });\n  }\n\n  deleteAll(formValuesServices) {\n    return this.$async(this.deleteAllAsync, formValuesServices);\n  }\n\n  async deleteSingleAsync(service) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = service.Name;\n      const namespace = service.Namespace;\n      await this.KubernetesServices(namespace).delete(params).$promise;\n    } catch (err) {\n      // eslint-disable-next-line no-console\n      console.error('unable to remove service', err);\n    }\n  }\n\n  deleteSingle(service) {\n    return this.$async(this.deleteSingleAsync, service);\n  }\n}\n\nexport default KubernetesServiceService;\nangular.module('portainer.kubernetes').service('KubernetesServiceService', KubernetesServiceService);\n","import _ from 'lodash-es';\nimport angular from 'angular';\n\nclass KubernetesStackService {\n  /* @ngInject */\n  constructor($async, KubernetesApplicationService) {\n    this.$async = $async;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n\n    this.getAllAsync = this.getAllAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAllAsync(namespace) {\n    const applications = await this.KubernetesApplicationService.get(namespace);\n    const stacks = _.map(applications, (item) => item.StackName);\n    return _.uniq(_.without(stacks, '-', ''));\n  }\n\n  get(namespace) {\n    return this.$async(this.getAllAsync, namespace);\n  }\n}\n\nexport default KubernetesStackService;\nangular.module('portainer.kubernetes').service('KubernetesStackService', KubernetesStackService);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\nimport KubernetesStatefulSetConverter from 'Kubernetes/converters/statefulSet';\n\nclass KubernetesStatefulSetService {\n  /* @ngInject */\n  constructor($async, KubernetesStatefulSets, KubernetesServiceService) {\n    this.$async = $async;\n    this.KubernetesStatefulSets = KubernetesStatefulSets;\n    this.KubernetesServiceService = KubernetesServiceService;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.createAsync = this.createAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, name) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = name;\n      const [raw, yaml] = await Promise.all([this.KubernetesStatefulSets(namespace).get(params).$promise, this.KubernetesStatefulSets(namespace).getYaml(params).$promise]);\n      const res = {\n        Raw: raw,\n        Yaml: yaml.data,\n      };\n      const headlessServiceName = raw.spec.serviceName;\n      if (headlessServiceName) {\n        try {\n          const headlessService = await this.KubernetesServiceService.get(namespace, headlessServiceName);\n          res.Yaml += '---\\n' + headlessService.Yaml;\n        } catch (error) {\n          // if has error means headless service does not exist\n          // skip error as we don't care in this case\n        }\n      }\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve StatefulSet', err);\n    }\n  }\n\n  async getAllAsync(namespace) {\n    try {\n      const data = await this.KubernetesStatefulSets(namespace).get().$promise;\n      return data.items;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve StatefulSets', err);\n    }\n  }\n\n  get(namespace, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, name);\n    }\n    return this.$async(this.getAllAsync, namespace);\n  }\n\n  /**\n   * CREATE\n   */\n  async createAsync(statefulSet) {\n    try {\n      const params = {};\n      const payload = KubernetesStatefulSetConverter.createPayload(statefulSet);\n      const namespace = payload.metadata.namespace;\n      const data = await this.KubernetesStatefulSets(namespace).create(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to create statefulSet', err);\n    }\n  }\n\n  create(statefulSet) {\n    return this.$async(this.createAsync, statefulSet);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(oldStatefulSet, newStatefulSet) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newStatefulSet.Name;\n      const namespace = newStatefulSet.Namespace;\n      const payload = KubernetesStatefulSetConverter.patchPayload(oldStatefulSet, newStatefulSet);\n      if (!payload.length) {\n        return;\n      }\n\n      const data = await this.KubernetesStatefulSets(namespace).patch(params, payload).$promise;\n      return data;\n    } catch (err) {\n      throw new PortainerError('Unable to patch statefulSet', err);\n    }\n  }\n\n  patch(oldStatefulSet, newStatefulSet) {\n    return this.$async(this.patchAsync, oldStatefulSet, newStatefulSet);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(statefulSet) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = statefulSet.Name;\n      const namespace = statefulSet.Namespace;\n      await this.KubernetesStatefulSets(namespace).delete(params).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to remove statefulSet', err);\n    }\n  }\n\n  delete(statefulSet) {\n    return this.$async(this.deleteAsync, statefulSet);\n  }\n}\n\nexport default KubernetesStatefulSetService;\nangular.module('portainer.kubernetes').service('KubernetesStatefulSetService', KubernetesStatefulSetService);\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport PortainerError from 'Portainer/error';\nimport KubernetesStorageClassConverter from 'Kubernetes/converters/storageClass';\nimport { KubernetesCommonParams } from 'Kubernetes/models/common/params';\n\nclass KubernetesStorageService {\n  /* @ngInject */\n  constructor($async, KubernetesStorage) {\n    this.$async = $async;\n    this.KubernetesStorage = KubernetesStorage;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.patchAsync = this.patchAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(endpointId) {\n    try {\n      const params = {\n        endpointId: endpointId,\n      };\n      const classes = await this.KubernetesStorage().get(params).$promise;\n      const res = _.map(classes.items, (item) => KubernetesStorageClassConverter.apiToStorageClass(item));\n      return res;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve storage classes', err);\n    }\n  }\n\n  get(endpointId) {\n    return this.$async(this.getAsync, endpointId);\n  }\n\n  /**\n   * PATCH\n   */\n  async patchAsync(endpointId, oldStorageClass, newStorageClass) {\n    try {\n      const params = new KubernetesCommonParams();\n      params.id = newStorageClass.Name;\n      params.endpointId = endpointId;\n      const payload = KubernetesStorageClassConverter.patchPayload(oldStorageClass, newStorageClass);\n      await this.KubernetesStorage().patch(params, payload).$promise;\n    } catch (err) {\n      throw new PortainerError('Unable to patch storage class', err);\n    }\n  }\n\n  patch(endpointId, oldStorageClass, newStorageClass) {\n    return this.$async(this.patchAsync, endpointId, oldStorageClass, newStorageClass);\n  }\n}\n\nexport default KubernetesStorageService;\nangular.module('portainer.kubernetes').service('KubernetesStorageService', KubernetesStorageService);\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nimport KubernetesVolumeConverter from 'Kubernetes/converters/volume';\n\nclass KubernetesVolumeService {\n  /* @ngInject */\n  constructor($async, KubernetesResourcePoolService, KubernetesApplicationService, KubernetesPersistentVolumeClaimService) {\n    this.$async = $async;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesPersistentVolumeClaimService = KubernetesPersistentVolumeClaimService;\n\n    this.getAsync = this.getAsync.bind(this);\n    this.getAllAsync = this.getAllAsync.bind(this);\n    this.deleteAsync = this.deleteAsync.bind(this);\n  }\n\n  /**\n   * GET\n   */\n  async getAsync(namespace, storageClasses, name) {\n    const [pvc, pool] = await Promise.all([this.KubernetesPersistentVolumeClaimService.get(namespace, storageClasses, name), this.KubernetesResourcePoolService.get(namespace)]);\n    return KubernetesVolumeConverter.pvcToVolume(pvc, pool);\n  }\n\n  async getAllAsync(namespace, storageClasses) {\n    const data = await this.KubernetesResourcePoolService.get(namespace);\n    const pools = data instanceof Array ? data : [data];\n    const res = await Promise.all(\n      _.map(pools, async (pool) => {\n        const pvcs = await this.KubernetesPersistentVolumeClaimService.get(pool.Namespace.Name, storageClasses);\n        return _.map(pvcs, (pvc) => KubernetesVolumeConverter.pvcToVolume(pvc, pool));\n      })\n    );\n    return _.flatten(res);\n  }\n\n  get(namespace, storageClasses, name) {\n    if (name) {\n      return this.$async(this.getAsync, namespace, storageClasses, name);\n    }\n    return this.$async(this.getAllAsync, namespace, storageClasses);\n  }\n\n  /**\n   * DELETE\n   */\n  async deleteAsync(volume) {\n    await this.KubernetesPersistentVolumeClaimService.delete(volume.PersistentVolumeClaim);\n  }\n\n  delete(volume) {\n    return this.$async(this.deleteAsync, volume);\n  }\n}\n\nexport default KubernetesVolumeService;\nangular.module('portainer.kubernetes').service('KubernetesVolumeService', KubernetesVolumeService);\n","// singleton pattern as:\n// * we don't want to use AngularJS DI to fetch the single instance\n// * we need to use the Store in static functions / non-instanciated classes\nconst storeNamespaces = {};\n\n/**\n * Check if a namespace of the store is system or not\n * @param {String} name Namespace name\n * @returns Boolean\n */\nexport function isSystem(name) {\n  return storeNamespaces[name] && storeNamespaces[name].IsSystem;\n}\n\n/**\n * Called from KubernetesNamespaceService.get()\n * @param {KubernetesNamespace[]} namespaces list of namespaces to update in Store\n */\nexport function updateNamespaces(namespaces) {\n  namespaces.forEach((ns) => (storeNamespaces[ns.Name] = ns));\n}\n","const autoNgTemplateLoaderTemplate1 = require('./applications.html');\n\nangular.module('portainer.kubernetes').component('kubernetesApplicationsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesApplicationsController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n    endpoint: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport KubernetesStackHelper from 'Kubernetes/helpers/stackHelper';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application';\nimport KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\nimport { KubernetesApplicationTypes } from 'Kubernetes/models/application/models/appConstants';\nimport { KubernetesPortainerApplicationStackNameLabel } from 'Kubernetes/models/application/models';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { getDeploymentOptions } from '@/react/portainer/environments/environment.service';\n\nclass KubernetesApplicationsController {\n  /* @ngInject */\n  constructor(\n    $async,\n    $state,\n    $scope,\n    Authentication,\n    Notifications,\n    KubernetesApplicationService,\n    HelmService,\n    KubernetesConfigurationService,\n    LocalStorage,\n    StackService,\n    KubernetesNamespaceService\n  ) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$scope = $scope;\n    this.Authentication = Authentication;\n    this.Notifications = Notifications;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.HelmService = HelmService;\n    this.KubernetesConfigurationService = KubernetesConfigurationService;\n    this.Authentication = Authentication;\n    this.LocalStorage = LocalStorage;\n    this.StackService = StackService;\n    this.KubernetesNamespaceService = KubernetesNamespaceService;\n\n    this.onInit = this.onInit.bind(this);\n    this.getApplications = this.getApplications.bind(this);\n    this.getApplicationsAsync = this.getApplicationsAsync.bind(this);\n    this.removeAction = this.removeAction.bind(this);\n    this.removeActionAsync = this.removeActionAsync.bind(this);\n    this.removeStacksAction = this.removeStacksAction.bind(this);\n    this.removeStacksActionAsync = this.removeStacksActionAsync.bind(this);\n    this.onPublishingModeClick = this.onPublishingModeClick.bind(this);\n    this.onChangeNamespaceDropdown = this.onChangeNamespaceDropdown.bind(this);\n    this.setSystemResources = this.setSystemResources.bind(this);\n  }\n\n  selectTab(index) {\n    this.LocalStorage.storeActiveTab('applications', index);\n  }\n\n  async removeStacksActionAsync(selectedItems) {\n    let actionCount = selectedItems.length;\n    for (const stack of selectedItems) {\n      try {\n        const isAppFormCreated = stack.Applications.some((x) => !x.ApplicationKind);\n\n        if (isAppFormCreated) {\n          const promises = _.map(stack.Applications, (app) => this.KubernetesApplicationService.delete(app));\n          await Promise.all(promises);\n        }\n\n        await this.StackService.removeKubernetesStacksByName(stack.Name, stack.ResourcePool, false, this.endpoint.Id);\n\n        this.Notifications.success('Stack successfully removed', stack.Name);\n        _.remove(this.state.stacks, { Name: stack.Name });\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to remove stack');\n      } finally {\n        --actionCount;\n        if (actionCount === 0) {\n          this.$state.reload(this.$state.current);\n        }\n      }\n    }\n  }\n\n  removeStacksAction(selectedItems) {\n    confirmDelete('Are you sure that you want to remove the selected stack(s) ? This will remove all the applications associated to the stack(s).').then((confirmed) => {\n      if (confirmed) {\n        return this.$async(this.removeStacksActionAsync, selectedItems);\n      }\n    });\n  }\n\n  async removeActionAsync(selectedItems) {\n    let actionCount = selectedItems.length;\n    for (const application of selectedItems) {\n      try {\n        if (application.ApplicationType === KubernetesApplicationTypes.Helm) {\n          await this.HelmService.uninstall(this.endpoint.Id, application);\n        } else {\n          await this.KubernetesApplicationService.delete(application);\n\n          if (application.Metadata.labels && application.Metadata.labels[KubernetesPortainerApplicationStackNameLabel]) {\n            // Update applications in stack\n            const stack = this.state.stacks.find((x) => x.Name === application.StackName);\n            const index = stack.Applications.indexOf(application);\n            stack.Applications.splice(index, 1);\n\n            // remove stack if no app left in the stack\n            if (stack.Applications.length === 0 && application.StackId) {\n              await this.StackService.remove({ Id: application.StackId }, false, this.endpoint.Id);\n            }\n          }\n        }\n        this.Notifications.success('Application successfully removed', application.Name);\n        const index = this.state.applications.indexOf(application);\n        this.state.applications.splice(index, 1);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to remove application');\n      } finally {\n        --actionCount;\n        if (actionCount === 0) {\n          this.$state.reload(this.$state.current);\n        }\n      }\n    }\n  }\n\n  removeAction(selectedItems) {\n    confirmDelete('Do you want to remove the selected application(s)?').then((confirmed) => {\n      if (confirmed) {\n        return this.$async(this.removeActionAsync, selectedItems);\n      }\n    });\n  }\n\n  onPublishingModeClick(application) {\n    this.state.activeTab = 1;\n    _.forEach(this.state.ports, (item) => {\n      item.Expanded = false;\n      item.Highlighted = false;\n      if (item.Name === application.Name && item.Ports.length > 1) {\n        item.Expanded = true;\n        item.Highlighted = true;\n      }\n    });\n  }\n\n  onChangeNamespaceDropdown(namespaceName) {\n    return this.$async(async () => {\n      this.state.namespaceName = namespaceName;\n      // save the selected namespaceName in local storage with the key 'kubernetes_namespace_filter_${environmentId}_${userID}'\n      this.LocalStorage.storeNamespaceFilter(this.endpoint.Id, this.user.ID, namespaceName);\n      return this.getApplicationsAsync();\n    });\n  }\n\n  async getApplicationsAsync() {\n    try {\n      this.state.isAppsLoading = true;\n      const [applications, configurations] = await Promise.all([\n        this.KubernetesApplicationService.get(this.state.namespaceName),\n        this.KubernetesConfigurationService.get(this.state.namespaceName),\n      ]);\n      const configuredApplications = KubernetesConfigurationHelper.getApplicationConfigurations(applications, configurations);\n      const { helmApplications, nonHelmApplications } = KubernetesApplicationHelper.getNestedApplications(configuredApplications);\n\n      this.state.applications = [...helmApplications, ...nonHelmApplications];\n      this.state.stacks = KubernetesStackHelper.stacksFromApplications(applications);\n      this.state.ports = KubernetesApplicationHelper.portMappingsFromApplications(applications);\n\n      this.$scope.$apply();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve applications');\n    } finally {\n      this.state.isAppsLoading = false;\n    }\n  }\n\n  setSystemResources(flag) {\n    this.state.isSystemResources = flag;\n  }\n\n  getApplications() {\n    return this.$async(this.getApplicationsAsync);\n  }\n\n  async onInit() {\n    this.state = {\n      activeTab: this.LocalStorage.getActiveTab('applications'),\n      currentName: this.$state.$current.name,\n      isAdmin: this.Authentication.isAdmin(),\n      viewReady: false,\n      applications: [],\n      stacks: [],\n      ports: [],\n      namespaces: [],\n      namespaceName: '',\n      isSystemResources: undefined,\n    };\n\n    this.deploymentOptions = await getDeploymentOptions();\n\n    this.user = this.Authentication.getUserDetails();\n    this.state.namespaces = await this.KubernetesNamespaceService.get();\n\n    const savedNamespace = this.LocalStorage.getNamespaceFilter(this.endpoint.Id, this.user.ID); // could be null if not found, and '' if all namepsaces is selected\n    const preferredNamespace = savedNamespace === null ? 'default' : savedNamespace;\n\n    this.state.namespaces = this.state.namespaces.filter((n) => n.Status === 'Active');\n    this.state.namespaces = _.sortBy(this.state.namespaces, 'Name');\n    // set all namespaces ('') if there are no namespaces, or if all namespaces is selected\n    if (!this.state.namespaces.length || preferredNamespace === '') {\n      this.state.namespaceName = '';\n    } else {\n      // otherwise, set the preferred namespaceName if it exists, otherwise set the first namespaceName\n      this.state.namespaceName = this.state.namespaces.find((n) => n.Name === preferredNamespace) ? preferredNamespace : this.state.namespaces[0].Name;\n    }\n\n    await this.getApplications();\n\n    this.state.viewReady = true;\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    if (this.state.currentName !== this.$state.$current.name) {\n      this.LocalStorage.storeActiveTab('applications', 0);\n    }\n  }\n}\n\nexport default KubernetesApplicationsController;\nangular.module('portainer.kubernetes').controller('KubernetesApplicationsController', KubernetesApplicationsController);\n","const autoNgTemplateLoaderTemplate1 = require('./createApplication.html');\n\nangular.module('portainer.kubernetes').component('kubernetesCreateApplicationView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesCreateApplicationController',\n  controllerAs: 'ctrl',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import { useState } from 'react';\n\nimport { Modal, openModal } from '@@/modals';\nimport { Button } from '@@/buttons';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nfunction UpdateIngressPrompt({\n  onSubmit,\n  title,\n  hasOneIngress,\n  hasOnePort,\n}: {\n  onSubmit: (value?: { noMatch: boolean }) => void;\n  title: string;\n  hasOneIngress: boolean;\n  hasOnePort: boolean;\n}) {\n  const [value, setValue] = useState(false);\n\n  const rulePlural = !hasOneIngress ? 'rules' : 'rule';\n  const noMatchSentence = !hasOnePort\n    ? `Service ports in this application no longer match the ingress ${rulePlural}.`\n    : `A service port in this application no longer matches the ingress ${rulePlural} which may break ingress rule paths.`;\n  const inputLabel = `Update ingress ${rulePlural} to match the service port changes`;\n\n  return (\n    <Modal onDismiss={() => onSubmit()} aria-label={title}>\n      <Modal.Header title={title} />\n\n      <Modal.Body>\n        <ul className=\"ml-3\">\n          <li>Updating the application may cause a service interruption.</li>\n          <li>{noMatchSentence}</li>\n        </ul>\n\n        <SwitchField\n          name=\"noMatch\"\n          label={inputLabel}\n          checked={value}\n          onChange={setValue}\n        />\n      </Modal.Body>\n      <Modal.Footer>\n        <Button onClick={() => onSubmit({ noMatch: value })} color=\"primary\">\n          Update\n        </Button>\n      </Modal.Footer>\n    </Modal>\n  );\n}\n\nexport function confirmUpdateAppIngress(\n  ingressesToUpdate: Array<unknown>,\n  servicePortsToUpdate: Array<unknown>\n) {\n  const hasOneIngress = ingressesToUpdate.length === 1;\n  const hasOnePort = servicePortsToUpdate.length === 1;\n\n  return openModal(UpdateIngressPrompt, {\n    title: 'Are you sure?',\n    hasOneIngress,\n    hasOnePort,\n  });\n}\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport * as JsonPatch from 'fast-json-patch';\nimport { RegistryTypes } from '@/portainer/models/registryTypes';\nimport { getServices } from '@/react/kubernetes/networks/services/service';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\nimport { getGlobalDeploymentOptions } from '@/react/portainer/settings/settings.service';\n\nimport {\n  KubernetesApplicationDataAccessPolicies,\n  KubernetesApplicationDeploymentTypes,\n  KubernetesApplicationServiceTypes,\n  KubernetesApplicationTypes,\n} from 'Kubernetes/models/application/models/appConstants';\nimport { KubernetesApplicationQuotaDefaults, KubernetesDeploymentTypes } from 'Kubernetes/models/application/models';\nimport { KubernetesApplicationEnvironmentVariableFormValue, KubernetesApplicationFormValues, KubernetesFormValidationReferences } from 'Kubernetes/models/application/formValues';\nimport KubernetesFormValidationHelper from 'Kubernetes/helpers/formValidationHelper';\nimport KubernetesApplicationConverter from 'Kubernetes/converters/application';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesServiceTypes } from 'Kubernetes/models/service/models';\nimport KubernetesApplicationHelper from 'Kubernetes/helpers/application/index';\nimport KubernetesVolumeHelper from 'Kubernetes/helpers/volumeHelper';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { KubernetesNodeHelper } from 'Kubernetes/node/helper';\nimport { updateIngress, getIngresses } from '@/react/kubernetes/ingresses/service';\nimport { confirmUpdateAppIngress } from '@/react/kubernetes/applications/CreateView/UpdateIngressPrompt';\nimport { confirm, confirmUpdate, confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { ModalType } from '@@/modals';\nimport { KUBE_STACK_NAME_VALIDATION_REGEX } from '@/react/kubernetes/DeployView/StackName/constants';\n\nclass KubernetesCreateApplicationController {\n  /* #region  CONSTRUCTOR */\n\n  /* @ngInject */\n  constructor(\n    $scope,\n    $async,\n    $state,\n    $timeout,\n    $window,\n    Notifications,\n    Authentication,\n    KubernetesResourcePoolService,\n    KubernetesApplicationService,\n    KubernetesStackService,\n    KubernetesConfigurationService,\n    KubernetesNodeService,\n    KubernetesIngressService,\n    KubernetesPersistentVolumeClaimService,\n    KubernetesVolumeService,\n    RegistryService,\n    StackService,\n    KubernetesNodesLimitsService,\n    EndpointService,\n    StateManager\n  ) {\n    this.$scope = $scope;\n    this.$async = $async;\n    this.$state = $state;\n    this.$timeout = $timeout;\n    this.$window = $window;\n    this.Notifications = Notifications;\n    this.Authentication = Authentication;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesStackService = KubernetesStackService;\n    this.KubernetesConfigurationService = KubernetesConfigurationService;\n    this.KubernetesNodeService = KubernetesNodeService;\n    this.KubernetesVolumeService = KubernetesVolumeService;\n    this.KubernetesIngressService = KubernetesIngressService;\n    this.KubernetesPersistentVolumeClaimService = KubernetesPersistentVolumeClaimService;\n    this.RegistryService = RegistryService;\n    this.StackService = StackService;\n    this.KubernetesNodesLimitsService = KubernetesNodesLimitsService;\n    this.EndpointService = EndpointService;\n    this.StateManager = StateManager;\n\n    this.ApplicationDeploymentTypes = KubernetesApplicationDeploymentTypes;\n    this.ApplicationDataAccessPolicies = KubernetesApplicationDataAccessPolicies;\n    this.KubernetesApplicationServiceTypes = KubernetesApplicationServiceTypes;\n    this.ApplicationTypes = KubernetesApplicationTypes;\n    this.ServiceTypes = KubernetesServiceTypes;\n    this.KubernetesDeploymentTypes = KubernetesDeploymentTypes;\n\n    this.state = {\n      appType: this.KubernetesDeploymentTypes.APPLICATION_FORM,\n      updateWebEditorInProgress: false,\n      actionInProgress: false,\n      useLoadBalancer: false,\n      useServerMetrics: false,\n      sliders: {\n        cpu: {\n          min: 0,\n          max: 0,\n        },\n        memory: {\n          min: 0,\n          max: 0,\n        },\n      },\n      nodes: {\n        memory: 0,\n        cpu: 0,\n      },\n      namespaceLimits: {\n        memory: 0,\n        cpu: 0,\n      },\n      resourcePoolHasQuota: false,\n      viewReady: false,\n      availableSizeUnits: ['MB', 'GB', 'TB'],\n      alreadyExists: false,\n      duplicates: {\n        environmentVariables: new KubernetesFormValidationReferences(),\n        persistedFolders: new KubernetesFormValidationReferences(),\n        configMapPaths: new KubernetesFormValidationReferences(),\n        secretPaths: new KubernetesFormValidationReferences(),\n        existingVolumes: new KubernetesFormValidationReferences(),\n        placements: new KubernetesFormValidationReferences(),\n      },\n      isEdit: this.$state.params.namespace && this.$state.params.name,\n      persistedFoldersUseExistingVolumes: false,\n      pullImageValidity: false,\n      nodePortServices: [],\n      // when the namespace available resources changes, and the existing app not has a resource limit that exceeds whats available,\n      // a validation message will be shown. isExistingCPUReservationUnchanged and isExistingMemoryReservationUnchanged (with available resources being exceeded) is used to decide whether to show the message or not.\n      isExistingCPUReservationUnchanged: false,\n      isExistingMemoryReservationUnchanged: false,\n      stackNameError: '',\n    };\n\n    this.isAdmin = this.Authentication.isAdmin();\n\n    this.editChanges = [];\n\n    this.storageClasses = [];\n    this.state.useLoadBalancer = false;\n    this.state.useServerMetrics = false;\n\n    this.formValues = new KubernetesApplicationFormValues();\n\n    this.updateApplicationAsync = this.updateApplicationAsync.bind(this);\n    this.deployApplicationAsync = this.deployApplicationAsync.bind(this);\n    this.setPullImageValidity = this.setPullImageValidity.bind(this);\n    this.onChangeFileContent = this.onChangeFileContent.bind(this);\n    this.checkIngressesToUpdate = this.checkIngressesToUpdate.bind(this);\n    this.confirmUpdateApplicationAsync = this.confirmUpdateApplicationAsync.bind(this);\n    this.onDataAccessPolicyChange = this.onDataAccessPolicyChange.bind(this);\n    this.onChangeDeploymentType = this.onChangeDeploymentType.bind(this);\n    this.supportGlobalDeployment = this.supportGlobalDeployment.bind(this);\n    this.onServicesChange = this.onServicesChange.bind(this);\n    this.onEnvironmentVariableChange = this.onEnvironmentVariableChange.bind(this);\n    this.onConfigMapsChange = this.onConfigMapsChange.bind(this);\n    this.onSecretsChange = this.onSecretsChange.bind(this);\n    this.onChangePersistedFolder = this.onChangePersistedFolder.bind(this);\n    this.onChangeResourceReservation = this.onChangeResourceReservation.bind(this);\n    this.onChangeReplicaCount = this.onChangeReplicaCount.bind(this);\n    this.onAutoScaleChange = this.onAutoScaleChange.bind(this);\n    this.onChangePlacements = this.onChangePlacements.bind(this);\n    this.updateApplicationType = this.updateApplicationType.bind(this);\n    this.getAppType = this.getAppType.bind(this);\n    this.showDataAccessPolicySection = this.showDataAccessPolicySection.bind(this);\n    this.refreshReactComponent = this.refreshReactComponent.bind(this);\n    this.onChangeNamespaceName = this.onChangeNamespaceName.bind(this);\n    this.canSupportSharedAccess = this.canSupportSharedAccess.bind(this);\n    this.isUpdateApplicationViaWebEditorButtonDisabled = this.isUpdateApplicationViaWebEditorButtonDisabled.bind(this);\n\n    this.$scope.$watch(\n      () => this.formValues,\n      () => {\n        this.refreshReactComponent();\n      },\n      _.isEqual\n    );\n  }\n  /* #endregion */\n\n  refreshReactComponent() {\n    this.isTemporaryRefresh = true;\n\n    this.$timeout(() => {\n      this.isTemporaryRefresh = false;\n    }, 10);\n    this.onChangeStackName = this.onChangeStackName.bind(this);\n    this.onChangeAppName = this.onChangeAppName.bind(this);\n  }\n  /* #endregion */\n\n  onChangeStackName(name) {\n    return this.$async(async () => {\n      if (KUBE_STACK_NAME_VALIDATION_REGEX.test(name) || name === '') {\n        this.state.stackNameError = '';\n      } else {\n        this.state.stackNameError =\n          \"Stack must consist of alphanumeric characters, '-', '_' or '.', must start and end with an alphanumeric character and must be 63 characters or less (e.g. 'my-name', or 'abc-123').\";\n      }\n\n      this.formValues.StackName = name;\n    });\n  }\n\n  onChangePlacements(values) {\n    return this.$async(async () => {\n      this.formValues.Placements = values.placements;\n      this.formValues.PlacementType = values.placementType;\n    });\n  }\n\n  onChangeDeploymentType(value) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.DeploymentType = value;\n    });\n    this.updateApplicationType();\n  }\n\n  getAppType() {\n    if (this.formValues.DeploymentType === this.ApplicationDeploymentTypes.Global) {\n      return this.ApplicationTypes.DaemonSet;\n    }\n    const persistedFolders = this.formValues.PersistedFolders && this.formValues.PersistedFolders.filter((pf) => !pf.NeedsDeletion);\n    if (persistedFolders && persistedFolders.length && this.formValues.DataAccessPolicy === this.ApplicationDataAccessPolicies.Isolated) {\n      return this.ApplicationTypes.StatefulSet;\n    }\n    return this.ApplicationTypes.Deployment;\n  }\n\n  // keep the application type up to date\n  updateApplicationType() {\n    return this.$scope.$evalAsync(() => {\n      this.formValues.ApplicationType = this.getAppType();\n      this.validatePersistedFolders();\n    });\n  }\n\n  onChangeFileContent(value) {\n    this.$scope.$evalAsync(() => {\n      if (this.oldStackFileContent.replace(/(\\r\\n|\\n|\\r)/gm, '') !== value.replace(/(\\r\\n|\\n|\\r)/gm, '')) {\n        this.state.isEditorDirty = true;\n      } else {\n        this.state.isEditorDirty = false;\n      }\n      this.stackFileContent = value;\n    });\n  }\n\n  onDataAccessPolicyChange(value) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.DataAccessPolicy = value;\n      this.resetDeploymentType();\n      this.updateApplicationType();\n    });\n  }\n\n  async updateApplicationViaWebEditor() {\n    return this.$async(async () => {\n      try {\n        const confirmed = await confirm({\n          title: 'Are you sure?',\n          message: 'Any changes to this application will be overridden and may cause a service interruption. Do you wish to continue?',\n          confirmButton: buildConfirmButton('Update', 'warning'),\n          modalType: ModalType.Warn,\n        });\n        if (!confirmed) {\n          return;\n        }\n\n        this.state.updateWebEditorInProgress = true;\n        await this.StackService.updateKubeStack(\n          { EndpointId: this.endpoint.Id, Id: this.application.StackId },\n          { stackFile: this.stackFileContent, stackName: this.formValues.StackName }\n        );\n        this.state.isEditorDirty = false;\n        this.$window.location.reload();\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Failed redeploying application');\n      } finally {\n        this.state.updateWebEditorInProgress = false;\n      }\n    });\n  }\n\n  async uiCanExit() {\n    if (this.stackFileContent && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  setPullImageValidity(validity) {\n    this.state.pullImageValidity = validity;\n  }\n\n  imageValidityIsValid() {\n    return (\n      this.isExternalApplication() || this.state.pullImageValidity || (this.formValues.registryDetails && this.formValues.registryDetails.Registry.Type !== RegistryTypes.DOCKERHUB)\n    );\n  }\n\n  onChangeAppName(appName) {\n    return this.$async(async () => {\n      this.formValues.Name = appName;\n    });\n  }\n\n  /* #region  AUTO SCALER UI MANAGEMENT */\n  onAutoScaleChange(values) {\n    return this.$async(async () => {\n      this.formValues.AutoScaler = values;\n\n      // reset it to previous form values if the user disables the auto scaler\n      if (!this.oldFormValues.AutoScaler.isUsed && !values.isUsed) {\n        this.formValues.AutoScaler = this.oldFormValues.AutoScaler;\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region CONFIGMAP UI MANAGEMENT */\n  onConfigMapsChange(configMaps) {\n    return this.$async(async () => {\n      this.formValues.ConfigMaps = configMaps;\n    });\n  }\n\n  clearConfigMaps() {\n    this.formValues.ConfigMaps = [];\n  }\n  /* #endregion */\n\n  /* #region SECRET UI MANAGEMENT */\n  onSecretsChange(secrets) {\n    return this.$async(async () => {\n      this.formValues.Secrets = secrets;\n    });\n  }\n\n  clearSecrets() {\n    this.formValues.Secrets = [];\n  }\n  /* #endregion */\n\n  /* #region  ENVIRONMENT UI MANAGEMENT */\n  onEnvironmentVariableChange(enviromnentVariables) {\n    return this.$async(async () => {\n      const newEnvVars = enviromnentVariables.map((envVar) => {\n        const newEnvVar = new KubernetesApplicationEnvironmentVariableFormValue();\n        return { newEnvVar, ...envVar };\n      });\n      this.formValues.EnvironmentVariables = newEnvVars;\n    });\n  }\n  /* #endregion */\n\n  /* #region  PERSISTENT FOLDERS UI MANAGEMENT */\n  resetPersistedFolders() {\n    this.formValues.PersistedFolders = _.forEach(this.formValues.PersistedFolders, (persistedFolder) => {\n      persistedFolder.existingVolume = null;\n      persistedFolder.useNewVolume = true;\n    });\n    this.validatePersistedFolders();\n    this.updateApplicationType();\n  }\n  /* #endregion */\n\n  /* #region  PERSISTENT FOLDERS ON CHANGE VALIDATION */\n  validatePersistedFolders() {\n    this.onChangePersistedFolderPath();\n    this.onChangeExistingVolumeSelection();\n  }\n\n  onChangePersistedFolderPath() {\n    this.state.duplicates.persistedFolders.refs = KubernetesFormValidationHelper.getDuplicates(\n      _.map(this.formValues.PersistedFolders, (persistedFolder) => {\n        if (persistedFolder.needsDeletion) {\n          return undefined;\n        }\n        return persistedFolder.containerPath;\n      })\n    );\n    this.state.duplicates.persistedFolders.hasRefs = Object.keys(this.state.duplicates.persistedFolders.refs).length > 0;\n  }\n\n  onChangePersistedFolder(values) {\n    this.$scope.$evalAsync(() => {\n      this.state.persistedFoldersUseExistingVolumes = values.some((pf) => pf.existingVolume);\n      if (!this.state.isEdit && this.state.persistedFoldersUseExistingVolumes) {\n        this.formValues.DataAccessPolicy = this.ApplicationDataAccessPolicies.Shared;\n      }\n      this.formValues.PersistedFolders = values;\n      if (values && values.length && !this.supportGlobalDeployment()) {\n        this.onChangeDeploymentType(this.ApplicationDeploymentTypes.Replicated);\n      }\n      this.updateApplicationType();\n    });\n  }\n\n  onChangeExistingVolumeSelection() {\n    this.state.duplicates.existingVolumes.refs = KubernetesFormValidationHelper.getDuplicates(\n      _.map(this.formValues.PersistedFolders, (persistedFolder) => {\n        if (persistedFolder.needsDeletion) {\n          return undefined;\n        }\n        return persistedFolder.existingVolume ? persistedFolder.existingVolume.PersistentVolumeClaim.Name : '';\n      })\n    );\n    this.state.duplicates.existingVolumes.hasRefs = Object.keys(this.state.duplicates.existingVolumes.refs).length > 0;\n  }\n  /* #endregion */\n\n  /* #region SERVICES UI MANAGEMENT */\n  onServicesChange(services) {\n    return this.$async(async () => {\n      // if the ingress isn't found in the currently loaded ingresses, then refresh the ingresses\n      const ingressNamesUsed = services.flatMap((s) => s.Ports.flatMap((p) => (p.ingressPaths ? p.ingressPaths.flatMap((ip) => ip.IngressName || []) : [])));\n      if (ingressNamesUsed.length) {\n        const uniqueIngressNamesUsed = Array.from(new Set(ingressNamesUsed)); // get the unique ingress names used\n        const ingressNamesLoaded = this.ingresses.map((i) => i.Name);\n        const areAllIngressesLoaded = uniqueIngressNamesUsed.every((ingressNameUsed) => ingressNamesLoaded.includes(ingressNameUsed));\n        if (!areAllIngressesLoaded) {\n          this.refreshIngresses();\n        }\n      }\n      // update the services\n      this.formValues.Services = services;\n    });\n  }\n  /* #endregion */\n\n  /* #region  STATE VALIDATION FUNCTIONS */\n  isValid() {\n    return (\n      !this.state.duplicates.environmentVariables.hasRefs &&\n      !this.state.duplicates.persistedFolders.hasRefs &&\n      !this.state.duplicates.configMapPaths.hasRefs &&\n      !this.state.duplicates.secretPaths.hasRefs &&\n      !this.state.duplicates.existingVolumes.hasRefs\n    );\n  }\n\n  storageClassAvailable() {\n    return this.storageClasses && this.storageClasses.length > 0;\n  }\n\n  resetDeploymentType() {\n    this.formValues.DeploymentType = this.ApplicationDeploymentTypes.Replicated;\n  }\n\n  // // The data access policy panel is shown when a persisted folder is specified\n  showDataAccessPolicySection() {\n    return this.formValues.PersistedFolders.length > 0;\n  }\n\n  // A global deployment is not available when either:\n  // * For each persisted folder specified, if one of the storage object only supports the RWO access mode\n  // * The data access policy is set to ISOLATED\n  supportGlobalDeployment() {\n    const hasFolders = this.formValues.PersistedFolders.length !== 0;\n    const hasRWOOnly = KubernetesApplicationHelper.hasRWOOnly(this.formValues);\n    const isIsolated = this.formValues.DataAccessPolicy === this.ApplicationDataAccessPolicies.Isolated;\n\n    if (hasFolders && (hasRWOOnly || isIsolated)) {\n      return false;\n    }\n\n    return true;\n  }\n\n  // from the pvcs in the form values, get all selected storage classes and find if they are all support RWX\n  canSupportSharedAccess() {\n    const formStorageClasses = this.formValues.PersistedFolders.map((pf) => pf.storageClass);\n    const isRWXSupported = formStorageClasses.every((sc) => sc.AccessModes.includes('RWX'));\n    return isRWXSupported;\n  }\n\n  // A StatefulSet is defined by DataAccessPolicy === 'Isolated'\n  isEditAndStatefulSet() {\n    return this.state.isEdit && this.formValues.DataAccessPolicy === this.ApplicationDataAccessPolicies.Isolated;\n  }\n\n  // A scalable deployment is available when either:\n  // * No persisted folders are specified\n  // * The access policy is set to shared and for each persisted folders specified, all the associated\n  //   storage objects support at least RWX access mode (no RWO only)\n  // * The access policy is set to isolated\n  supportScalableReplicaDeployment() {\n    const hasFolders = this.formValues.PersistedFolders.length !== 0;\n    const hasRWOOnly = KubernetesApplicationHelper.hasRWOOnly(this.formValues);\n    const isIsolated = this.formValues.DataAccessPolicy === this.ApplicationDataAccessPolicies.Isolated;\n\n    if (!hasFolders || isIsolated || (hasFolders && !hasRWOOnly)) {\n      return true;\n    }\n    return false;\n  }\n\n  onChangeReplicaCount(values) {\n    return this.$async(async () => {\n      this.formValues.ReplicaCount = values.replicaCount;\n    });\n  }\n\n  // For each persisted folders, returns the non scalable deployments options (storage class that only supports RWO)\n  getNonScalableStorage() {\n    let storageOptions = [];\n\n    for (let i = 0; i < this.formValues.PersistedFolders.length; i++) {\n      const folder = this.formValues.PersistedFolders[i];\n\n      if (folder.storageClass && _.isEqual(folder.storageClass.AccessModes, ['RWO'])) {\n        storageOptions.push(folder.storageClass.Name);\n      } else {\n        storageOptions.push('<no storage option available>');\n      }\n    }\n\n    return _.uniq(storageOptions).join(', ');\n  }\n\n  enforceReplicaCountMinimum() {\n    if (this.formValues.ReplicaCount === null) {\n      this.formValues.ReplicaCount = 1;\n    }\n  }\n\n  onChangeResourceReservation(values) {\n    return this.$async(async () => {\n      this.formValues.MemoryLimit = values.memoryLimit;\n      this.formValues.CpuLimit = values.cpuLimit;\n\n      if (this.oldFormValues.CpuLimit !== this.formValues.CpuLimit && this.state.isExistingCPUReservationUnchanged) {\n        this.state.isExistingCPUReservationUnchanged = false;\n      }\n      if (this.oldFormValues.MemoryLimit !== this.formValues.MemoryLimit && this.state.isExistingMemoryReservationUnchanged) {\n        this.state.isExistingMemoryReservationUnchanged = false;\n      }\n    });\n  }\n\n  resourceQuotaCapacityExceeded() {\n    return !this.state.sliders.memory.max || !this.state.sliders.cpu.max;\n  }\n\n  nodeLimitsOverflow() {\n    const cpu = this.formValues.CpuLimit;\n    const memory = KubernetesResourceReservationHelper.bytesValue(this.formValues.MemoryLimit);\n\n    const overflow = this.nodesLimits.overflowForReplica(cpu, memory, 1);\n\n    return overflow;\n  }\n\n  effectiveInstances() {\n    return this.formValues.DeploymentType === this.ApplicationDeploymentTypes.Global ? this.nodeNumber : this.formValues.ReplicaCount;\n  }\n\n  hasPortErrors() {\n    const portError = this.formValues.Services.some((service) => service.nodePortError || service.servicePortError);\n    return portError;\n  }\n\n  resourceReservationsOverflow() {\n    const instances = this.effectiveInstances();\n    const cpu = this.formValues.CpuLimit;\n    const maxCpu = this.state.namespaceLimits.cpu;\n    const memory = KubernetesResourceReservationHelper.bytesValue(this.formValues.MemoryLimit);\n    const maxMemory = this.state.namespaceLimits.memory;\n\n    // multiply 1000 can avoid 0.1 * 3 > 0.3\n    if (cpu * 1000 * instances > maxCpu * 1000) {\n      return true;\n    }\n\n    if (memory * instances > maxMemory) {\n      return true;\n    }\n\n    if (this.formValues.DeploymentType === this.ApplicationDeploymentTypes.Replicated) {\n      return this.nodesLimits.overflowForReplica(cpu, memory, instances);\n    }\n\n    // DeploymentType == 'Global'\n    return this.nodesLimits.overflowForGlobal(cpu, memory);\n  }\n\n  autoScalerOverflow() {\n    const instances = this.formValues.AutoScaler.MaxReplicas;\n    const cpu = this.formValues.CpuLimit;\n    const maxCpu = this.state.namespaceLimits.cpu;\n    const memory = KubernetesResourceReservationHelper.bytesValue(this.formValues.MemoryLimit);\n    const maxMemory = this.state.namespaceLimits.memory;\n\n    // multiply 1000 can avoid 0.1 * 3 > 0.3\n    if (cpu * 1000 * instances > maxCpu * 1000) {\n      return true;\n    }\n\n    if (memory * instances > maxMemory) {\n      return true;\n    }\n\n    return this.nodesLimits.overflowForReplica(cpu, memory, instances);\n  }\n\n  publishViaIngressEnabled() {\n    return this.ingresses.length;\n  }\n\n  isEditAndNoChangesMade() {\n    if (!this.state.isEdit) return false;\n    const changes = JsonPatch.compare(this.savedFormValues, this.formValues);\n    this.editChanges = _.filter(changes, (change) => !_.includes(change.path, '$$hashKey') && change.path !== '/ApplicationType');\n    return !this.editChanges.length;\n  }\n\n  /* #region  PERSISTED FOLDERS */\n  /* #region  BUTTONS STATES */\n  isAddPersistentFolderButtonShown() {\n    return !this.isEditAndStatefulSet() && this.formValues.Containers.length <= 1;\n  }\n\n  isNewVolumeButtonDisabled(index) {\n    return this.isEditAndExistingPersistedFolder(index);\n  }\n\n  isExistingVolumeButtonDisabled() {\n    return !this.hasAvailableVolumes() || (this.isEdit && this.application.ApplicationType === this.ApplicationTypes.StatefulSet);\n  }\n  /* #endregion */\n\n  hasAvailableVolumes() {\n    return this.availableVolumes.length > 0;\n  }\n\n  isEditAndExistingPersistedFolder(index) {\n    return this.state.isEdit && this.formValues.PersistedFolders[index].persistentVolumeClaimName;\n  }\n  /* #endregion */\n\n  isNonScalable() {\n    const scalable = this.supportScalableReplicaDeployment();\n    const global = this.supportGlobalDeployment();\n    const replica = this.formValues.ReplicaCount > 1;\n    const replicated = this.formValues.DeploymentType === this.ApplicationDeploymentTypes.Replicated;\n    const res = (replicated && !scalable && replica) || (!replicated && !global);\n    return res;\n  }\n\n  isDeployUpdateButtonDisabled() {\n    const overflow = this.resourceReservationsOverflow();\n    const autoScalerOverflow = this.autoScalerOverflow();\n    const inProgress = this.state.actionInProgress;\n    const invalid = !this.isValid();\n    const hasNoChanges = this.isEditAndNoChangesMade();\n    const nonScalable = this.isNonScalable();\n    const stackNameInvalid = this.state.stackNameError !== '';\n    return overflow || autoScalerOverflow || inProgress || invalid || hasNoChanges || nonScalable || stackNameInvalid;\n  }\n\n  isUpdateApplicationViaWebEditorButtonDisabled() {\n    return (this.savedFormValues.StackName === this.formValues.StackName && !this.state.isEditorDirty) || this.state.updateWebEditorInProgress;\n  }\n\n  isExternalApplication() {\n    if (this.application) {\n      return KubernetesApplicationHelper.isExternalApplication(this.application);\n    } else {\n      return false;\n    }\n  }\n  /* #endregion */\n\n  /* #region  DATA AUTO REFRESH */\n  updateSliders(namespaceWithQuota) {\n    const quota = namespaceWithQuota.Quota;\n    let minCpu = 0,\n      minMemory = 0,\n      maxCpu = this.state.namespaceLimits.cpu,\n      maxMemory = this.state.namespaceLimits.memory;\n\n    if (quota) {\n      if (quota.CpuLimit) {\n        minCpu = KubernetesApplicationQuotaDefaults.CpuLimit;\n      }\n      if (quota.MemoryLimit) {\n        minMemory = KubernetesResourceReservationHelper.bytesValue(KubernetesApplicationQuotaDefaults.MemoryLimit);\n      }\n    }\n\n    maxCpu = Math.min(maxCpu, this.nodesLimits.MaxCPU);\n    maxMemory = Math.min(maxMemory, this.nodesLimits.MaxMemory);\n\n    if (maxMemory < minMemory) {\n      minMemory = 0;\n      maxMemory = 0;\n    }\n\n    this.state.sliders.memory.min = KubernetesResourceReservationHelper.megaBytesValue(minMemory);\n    this.state.sliders.memory.max = KubernetesResourceReservationHelper.megaBytesValue(maxMemory);\n    this.state.sliders.cpu.min = minCpu;\n    this.state.sliders.cpu.max = _.floor(maxCpu, 2);\n    if (!this.state.isEdit) {\n      this.formValues.CpuLimit = minCpu;\n      this.formValues.MemoryLimit = KubernetesResourceReservationHelper.megaBytesValue(minMemory);\n    }\n  }\n\n  updateNamespaceLimits(namespaceWithQuota) {\n    return this.$async(async () => {\n      let maxCpu = this.state.nodes.cpu;\n      let maxMemory = this.state.nodes.memory;\n\n      const quota = namespaceWithQuota.Quota;\n\n      this.state.resourcePoolHasQuota = false;\n\n      if (quota) {\n        if (quota.CpuLimit) {\n          this.state.resourcePoolHasQuota = true;\n          maxCpu = quota.CpuLimit - quota.CpuLimitUsed;\n          if (this.state.isEdit && this.savedFormValues.CpuLimit) {\n            maxCpu += this.savedFormValues.CpuLimit * this.effectiveInstances();\n          }\n        }\n\n        if (quota.MemoryLimit) {\n          this.state.resourcePoolHasQuota = true;\n          maxMemory = quota.MemoryLimit - quota.MemoryLimitUsed;\n          if (this.state.isEdit && this.savedFormValues.MemoryLimit) {\n            maxMemory += KubernetesResourceReservationHelper.bytesValue(this.savedFormValues.MemoryLimit) * this.effectiveInstances();\n          }\n        }\n      }\n\n      this.state.namespaceLimits.cpu = maxCpu;\n      this.state.namespaceLimits.memory = maxMemory;\n    });\n  }\n\n  refreshStacks(namespace) {\n    return this.$async(async () => {\n      try {\n        this.stacks = await this.KubernetesStackService.get(namespace);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve stacks');\n      }\n    });\n  }\n\n  refreshConfigurations(namespace) {\n    return this.$async(async () => {\n      try {\n        this.configurations = await this.KubernetesConfigurationService.get(namespace);\n        this.configMaps = this.configurations.filter((configuration) => configuration.Kind === KubernetesConfigurationKinds.CONFIGMAP);\n        this.secrets = this.configurations.filter((configuration) => configuration.Kind === KubernetesConfigurationKinds.SECRET);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve configurations');\n      }\n    });\n  }\n\n  refreshApplications(namespace) {\n    return this.$async(async () => {\n      try {\n        this.applications = await this.KubernetesApplicationService.get(namespace);\n        this.applicationNames = _.map(this.applications, 'Name');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve applications');\n      }\n    });\n  }\n\n  refreshVolumes(namespace) {\n    return this.$async(async () => {\n      try {\n        const storageClasses = this.endpoint.Kubernetes.Configuration.StorageClasses;\n        const volumes = await this.KubernetesVolumeService.get(namespace, storageClasses);\n        _.forEach(volumes, (volume) => {\n          volume.Applications = KubernetesVolumeHelper.getUsingApplications(volume, this.applications);\n        });\n        this.volumes = volumes;\n        const filteredVolumes = _.filter(this.volumes, (volume) => {\n          const isUnused = !KubernetesVolumeHelper.isUsed(volume);\n          const isRWX = volume.PersistentVolumeClaim.storageClass && _.includes(volume.PersistentVolumeClaim.storageClass.AccessModes, 'RWX');\n          return isUnused || isRWX;\n        });\n        this.availableVolumes = filteredVolumes;\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve volumes');\n      }\n    });\n  }\n\n  refreshIngresses(namespace) {\n    return this.$async(async () => {\n      try {\n        this.ingresses = await this.KubernetesIngressService.get(namespace);\n        this.ingressPaths = this.ingresses.flatMap((ingress) => ingress.Paths);\n        this.ingressHostnames = this.ingresses.length ? this.ingresses[0].Hosts : [];\n        if (!this.publishViaIngressEnabled()) {\n          if (this.savedFormValues) {\n            this.formValues.PublishingType = this.savedFormValues.PublishingType;\n          } else {\n            this.formValues.PublishingType = this.KubernetesApplicationServiceTypes.ClusterIP;\n          }\n        }\n        this.formValues.OriginalIngresses = this.ingresses;\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve ingresses');\n      }\n    });\n  }\n\n  refreshNamespaceData(namespace) {\n    return this.$async(async () => {\n      await Promise.all([\n        this.refreshStacks(namespace),\n        this.refreshConfigurations(namespace),\n        this.refreshApplications(namespace),\n        this.refreshIngresses(namespace),\n        this.refreshVolumes(namespace),\n      ]);\n    });\n  }\n\n  resetFormValues() {\n    this.clearConfigMaps();\n    this.clearSecrets();\n    this.resetPersistedFolders();\n  }\n\n  onChangeNamespaceName(namespaceName) {\n    return this.$async(async () => {\n      this.formValues.ResourcePool.Namespace.Name = namespaceName;\n      const namespaceWithQuota = await this.KubernetesResourcePoolService.get(namespaceName);\n      this.updateNamespaceLimits(namespaceWithQuota);\n      this.updateSliders(namespaceWithQuota);\n      await this.refreshNamespaceData(namespaceName);\n      this.resetFormValues();\n    });\n  }\n  /* #endregion */\n\n  /* #region  ACTIONS */\n  async deployApplicationAsync() {\n    this.state.actionInProgress = true;\n    try {\n      this.formValues.ApplicationOwner = this.Authentication.getUserDetails().username;\n      // combine the secrets and configmap form values when submitting the form\n      _.remove(this.formValues.Configurations, (item) => item.selectedConfiguration === undefined);\n      await this.KubernetesApplicationService.create(this.formValues, this.originalServicePorts, this.deploymentOptions.hideStacksFunctionality);\n      this.Notifications.success('Request to deploy application successfully submitted', this.formValues.Name);\n      this.$state.go('kubernetes.applications');\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to create application');\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  async updateApplicationAsync(ingressesToUpdate) {\n    if (ingressesToUpdate.length) {\n      try {\n        await Promise.all(ingressesToUpdate.map((ing) => updateIngress(this.endpoint.Id, ing)));\n        this.Notifications.success('Success', `Ingress ${ingressesToUpdate.length > 1 ? 'rules' : 'rule'} successfully updated`);\n      } catch (error) {\n        this.Notifications.error('Failure', error, 'Unable to update ingress');\n      }\n    }\n\n    try {\n      this.state.actionInProgress = true;\n      await this.KubernetesApplicationService.patch(this.savedFormValues, this.formValues, false, this.originalServicePorts);\n      this.Notifications.success('Success', 'Request to update application successfully submitted');\n      this.$state.go(\n        'kubernetes.applications.application',\n        { name: this.application.Name, namespace: this.application.ResourcePool, endpointId: this.endpoint.Id },\n        { inherit: false }\n      );\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to update application');\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  async confirmUpdateApplicationAsync() {\n    const [ingressesToUpdate, servicePortsToUpdate] = await this.checkIngressesToUpdate();\n    // if there is an ingressesToUpdate, then show a warning modal with asking if they want to update the ingresses\n    if (ingressesToUpdate.length) {\n      const result = await confirmUpdateAppIngress(ingressesToUpdate, servicePortsToUpdate);\n      if (!result) {\n        return;\n      }\n\n      const { noMatch } = result;\n      if (!noMatch) {\n        return this.$async(this.updateApplicationAsync, []);\n      }\n      if (noMatch) {\n        return this.$async(this.updateApplicationAsync, ingressesToUpdate);\n      }\n    } else {\n      confirmUpdate('Updating the application may cause a service interruption. Do you wish to continue?', (confirmed) => {\n        if (confirmed) {\n          return this.$async(this.updateApplicationAsync, []);\n        }\n      });\n    }\n  }\n\n  // check if service ports with ingresses have changed and allow the user to update the ingress to the new port values with a modal\n  async checkIngressesToUpdate() {\n    let ingressesToUpdate = [];\n    let servicePortsToUpdate = [];\n    const fullIngresses = await getIngresses(this.endpoint.Id, this.formValues.ResourcePool.Namespace.Name);\n    this.formValues.Services.forEach((updatedService) => {\n      const oldServiceIndex = this.oldFormValues.Services.findIndex((oldService) => oldService.Name === updatedService.Name);\n      const numberOfPortsInOldService = this.oldFormValues.Services[oldServiceIndex] && this.oldFormValues.Services[oldServiceIndex].Ports.length;\n      // if the service has an ingress and there is the same number of ports or more in the updated service\n      if (updatedService.Ingress && numberOfPortsInOldService && numberOfPortsInOldService <= updatedService.Ports.length) {\n        const updatedOldPorts = updatedService.Ports.slice(0, numberOfPortsInOldService);\n        const ingressesForService = fullIngresses.filter((ing) => {\n          if (ing.Paths) {\n            const ingServiceNames = ing.Paths.map((path) => path.ServiceName);\n            if (ingServiceNames.includes(updatedService.Name)) {\n              return true;\n            }\n          }\n        });\n        ingressesForService.forEach((ingressForService) => {\n          updatedOldPorts.forEach((servicePort, pIndex) => {\n            if (servicePort.ingressPaths) {\n              // if there isn't a ingress path that has a matching service name and port\n              const doesIngressPathMatchServicePort = ingressForService.Paths.find((ingPath) => ingPath.ServiceName === updatedService.Name && ingPath.Port === servicePort.port);\n              if (!doesIngressPathMatchServicePort) {\n                // then find the ingress path index to update by looking for the matching port in the old form values\n                const oldServicePort = this.oldFormValues.Services[oldServiceIndex].Ports[pIndex].port;\n                const newServicePort = servicePort.port;\n\n                const ingressPathIndex = ingressForService.Paths.findIndex((ingPath) => {\n                  return ingPath.ServiceName === updatedService.Name && ingPath.Port === oldServicePort;\n                });\n                if (ingressPathIndex !== -1) {\n                  // if the ingress to update isn't in the ingressesToUpdate list\n                  const ingressUpdateIndex = ingressesToUpdate.findIndex((ing) => ing.Name === ingressForService.Name);\n                  if (ingressUpdateIndex === -1) {\n                    // then add it to the list with the new port\n                    const ingressToUpdate = angular.copy(ingressForService);\n                    ingressToUpdate.Paths[ingressPathIndex].Port = newServicePort;\n                    ingressesToUpdate.push(ingressToUpdate);\n                  } else {\n                    // if the ingress is already in the list, then update the path with the new port\n                    ingressesToUpdate[ingressUpdateIndex].Paths[ingressPathIndex].Port = newServicePort;\n                  }\n                  if (!servicePortsToUpdate.includes(newServicePort)) {\n                    servicePortsToUpdate.push(newServicePort);\n                  }\n                }\n              }\n            }\n          });\n        });\n      }\n    });\n    return [ingressesToUpdate, servicePortsToUpdate];\n  }\n\n  deployApplication() {\n    if (this.state.isEdit) {\n      return this.$async(this.confirmUpdateApplicationAsync);\n    } else {\n      return this.$async(this.deployApplicationAsync);\n    }\n  }\n  /* #endregion */\n\n  /* #region  APPLICATION - used on edit context only */\n  getApplication() {\n    return this.$async(async () => {\n      try {\n        const namespace = this.$state.params.namespace;\n        const storageClasses = this.endpoint.Kubernetes.Configuration.StorageClasses;\n\n        [this.application, this.persistentVolumeClaims] = await Promise.all([\n          this.KubernetesApplicationService.get(namespace, this.$state.params.name),\n          this.KubernetesPersistentVolumeClaimService.get(namespace, storageClasses),\n        ]);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve application details');\n      }\n    });\n  }\n\n  async parseImageConfiguration(imageModel) {\n    return this.$async(async () => {\n      try {\n        return await this.RegistryService.retrievePorRegistryModelFromRepository(imageModel.Image, this.endpoint.Id, imageModel.Registry.Id, this.$state.params.namespace);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registry');\n        return imageModel;\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  ON INIT */\n  $onInit() {\n    return this.$async(async () => {\n      try {\n        this.endpoint = await this.EndpointService.endpoint(this.endpoint.Id);\n        await this.StateManager.updateEndpointState(this.endpoint);\n\n        this.storageClasses = this.endpoint.Kubernetes.Configuration.StorageClasses;\n        this.state.useLoadBalancer = this.endpoint.Kubernetes.Configuration.UseLoadBalancer;\n        this.state.useServerMetrics = this.endpoint.Kubernetes.Configuration.UseServerMetrics;\n\n        this.deploymentOptions = await getGlobalDeploymentOptions();\n\n        const [resourcePools, nodes, nodesLimits] = await Promise.all([\n          this.KubernetesResourcePoolService.get(),\n          this.KubernetesNodeService.get(),\n          this.KubernetesNodesLimitsService.get(),\n        ]);\n        this.nodesLimits = nodesLimits;\n\n        const nonSystemNamespaces = _.filter(\n          resourcePools,\n          (resourcePool) => !KubernetesNamespaceHelper.isSystemNamespace(resourcePool.Namespace.Name) && resourcePool.Namespace.Status === 'Active'\n        );\n\n        this.allNamespaces = resourcePools.map(({ Namespace }) => Namespace.Name);\n        this.resourcePools = _.sortBy(nonSystemNamespaces, ({ Namespace }) => (Namespace.Name === 'default' ? 0 : 1));\n\n        // this.state.nodes.memory and this.state.nodes.cpu are used to calculate the slider limits, so set them before calling updateSliders()\n        _.forEach(nodes, (item) => {\n          this.state.nodes.memory += filesizeParser(item.Memory);\n          this.state.nodes.cpu += item.CPU;\n        });\n\n        var namespace = '';\n        this.formValues.ResourcePool = this.resourcePools[0];\n\n        if (this.resourcePools.length) {\n          if (this.state.isEdit) {\n            namespace = this.$state.params.namespace;\n            this.formValues.ResourcePool = _.find(this.resourcePools, ['Namespace.Name', namespace]);\n          }\n\n          namespace = this.formValues.ResourcePool.Namespace.Name;\n          this.namespaceWithQuota = await this.KubernetesResourcePoolService.get(namespace);\n          this.formValues.ResourcePool.Quota = this.namespaceWithQuota.Quota;\n\n          // this.savedFormValues is being used in updateNamespaceLimits behind a check to see isEdit\n          if (this.state.isEdit) {\n            this.savedFormValues = angular.copy(this.formValues);\n          }\n\n          this.updateNamespaceLimits(this.namespaceWithQuota);\n          this.updateSliders(this.namespaceWithQuota);\n        }\n\n        if (!this.formValues.ResourcePool) {\n          return;\n        }\n\n        this.nodesLabels = KubernetesNodeHelper.generateNodeLabelsFromNodes(nodes);\n        this.nodeNumber = nodes.length;\n\n        await this.refreshNamespaceData(namespace);\n\n        if (this.state.isEdit) {\n          await this.getApplication();\n          this.formValues = KubernetesApplicationConverter.applicationToFormValues(\n            this.application,\n            this.resourcePools,\n            this.configurations,\n            this.persistentVolumeClaims,\n            this.nodesLabels,\n            this.ingresses\n          );\n\n          this.formValues.Services = this.formValues.Services || [];\n          this.originalServicePorts = structuredClone(this.formValues.Services.flatMap((service) => service.Ports));\n          this.originalIngressPaths = structuredClone(this.originalServicePorts.flatMap((port) => port.ingressPaths).filter((ingressPath) => ingressPath.Host));\n\n          if (this.formValues.CpuLimit) {\n            this.state.isExistingCPUReservationUnchanged = true;\n          }\n          if (this.formValues.MemoryLimit) {\n            this.state.isExistingMemoryReservationUnchanged = true;\n          }\n\n          if (this.application.ApplicationKind) {\n            this.state.appType = KubernetesDeploymentTypes[this.application.ApplicationKind.toUpperCase()];\n            if (this.application.ApplicationKind === KubernetesDeploymentTypes.URL) {\n              this.state.appType = KubernetesDeploymentTypes.CONTENT;\n            }\n\n            if (this.application.StackId) {\n              this.stack = await this.StackService.stack(this.application.StackId);\n              if (this.state.appType === KubernetesDeploymentTypes.CONTENT) {\n                this.stackFileContent = await this.StackService.getStackFile(this.application.StackId);\n                this.oldStackFileContent = this.stackFileContent;\n              }\n            }\n          }\n\n          this.formValues.OriginalIngresses = this.ingresses;\n          this.formValues.ImageModel = await this.parseImageConfiguration(this.formValues.ImageModel);\n\n          if (this.application.ApplicationType !== KubernetesApplicationTypes.StatefulSet) {\n            _.forEach(this.formValues.PersistedFolders, (persistedFolder) => {\n              const volume = _.find(this.availableVolumes, ['PersistentVolumeClaim.Name', persistedFolder.persistentVolumeClaimName]);\n              if (volume) {\n                persistedFolder.useNewVolume = false;\n                persistedFolder.existingVolume = volume;\n              }\n            });\n          }\n          this.formValues.OriginalPersistedFolders = this.formValues.PersistedFolders;\n          await this.refreshNamespaceData(namespace);\n\n          this.savedFormValues = angular.copy(this.formValues);\n          this.updateNamespaceLimits(this.namespaceWithQuota);\n          this.updateSliders(this.namespaceWithQuota);\n        } else {\n          this.formValues.AutoScaler = KubernetesApplicationHelper.generateAutoScalerFormValueFromHorizontalPodAutoScaler(null, this.formValues.ReplicaCount);\n        }\n\n        if (this.state.isEdit) {\n          this.nodesLimits.excludesPods(this.application.Pods, this.formValues.CpuLimit, KubernetesResourceReservationHelper.bytesValue(this.formValues.MemoryLimit));\n\n          // Workaround for EE-6118\n          if (this.stack && !this.stack.EndpointId) {\n            this.stack.EndpointId = this.endpoint.Id;\n          }\n        }\n\n        this.oldFormValues = angular.copy(this.formValues);\n        this.savedFormValues = angular.copy(this.formValues);\n        this.updateNamespaceLimits(this.namespaceWithQuota);\n        this.updateSliders(this.namespaceWithQuota);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to load view data');\n      } finally {\n        this.state.viewReady = true;\n      }\n      // get all nodeport services in the cluster, to validate unique nodeports in the form\n      // this is below the try catch, to not block the page rendering\n      const allSettledServices = await Promise.allSettled(this.resourcePools.map((namespace) => getServices(this.endpoint.Id, namespace.Namespace.Name)));\n      const allServices = allSettledServices\n        .filter((settledService) => settledService.status === 'fulfilled' && settledService.value)\n        .map((fulfilledService) => fulfilledService.value)\n        .flat();\n      this.state.nodePortServices = allServices.filter((service) => service.Type === 'NodePort');\n    });\n  }\n\n  /* #endregion */\n}\n\nexport default KubernetesCreateApplicationController;\nangular.module('portainer.kubernetes').controller('KubernetesCreateApplicationController', KubernetesCreateApplicationController);\n","import PortainerError from 'Portainer/error';\n\nexport default class KubernetesHelmApplicationController {\n  /* @ngInject */\n  constructor($async, $state, Authentication, Notifications, HelmService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Authentication = Authentication;\n    this.Notifications = Notifications;\n    this.HelmService = HelmService;\n  }\n\n  /**\n   * APPLICATION\n   */\n  async getHelmApplication() {\n    try {\n      this.state.dataLoading = true;\n      const releases = await this.HelmService.listReleases(this.endpoint.Id, { filter: `^${this.state.params.name}$`, namespace: this.state.params.namespace });\n      if (releases.length > 0) {\n        this.state.release = releases[0];\n      } else {\n        throw new PortainerError(`Release ${this.state.params.name} not found`);\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve helm application details');\n    } finally {\n      this.state.dataLoading = false;\n    }\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.state = {\n        dataLoading: true,\n        viewReady: false,\n        params: {\n          name: this.$state.params.name,\n          namespace: this.$state.params.namespace,\n        },\n        release: {\n          name: undefined,\n          chart: undefined,\n          app_version: undefined,\n        },\n      };\n\n      await this.getHelmApplication();\n      this.state.viewReady = true;\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./helm.html');\n\nimport angular from 'angular';\nimport controller from './helm.controller';\nimport './helm.css';\n\nangular.module('portainer.kubernetes').component('kubernetesHelmApplicationView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    endpoint: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./logs.html');\n\nangular.module('portainer.kubernetes').component('kubernetesApplicationLogsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesApplicationLogsController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import angular from 'angular';\n\nimport { concatLogsToString, formatLogs } from '@/docker/helpers/logHelper';\n\nclass KubernetesApplicationLogsController {\n  /* @ngInject */\n  constructor($async, $state, $interval, Notifications, KubernetesApplicationService, KubernetesPodService, Blob, FileSaver) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$interval = $interval;\n    this.Notifications = Notifications;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesPodService = KubernetesPodService;\n    this.Blob = Blob;\n    this.FileSaver = FileSaver;\n\n    this.onInit = this.onInit.bind(this);\n    this.stopRepeater = this.stopRepeater.bind(this);\n    this.getApplicationLogsAsync = this.getApplicationLogsAsync.bind(this);\n  }\n\n  updateAutoRefresh() {\n    if (this.state.autoRefresh) {\n      this.setUpdateRepeater();\n      return;\n    }\n\n    this.stopRepeater();\n  }\n\n  stopRepeater() {\n    if (angular.isDefined(this.repeater)) {\n      this.$interval.cancel(this.repeater);\n      this.repeater = null;\n    }\n  }\n\n  setUpdateRepeater() {\n    this.repeater = this.$interval(this.getApplicationLogsAsync, this.state.refreshRate);\n  }\n\n  downloadLogs() {\n    const logsAsString = concatLogsToString(this.applicationLogs);\n    const data = new this.Blob([logsAsString]);\n    this.FileSaver.saveAs(data, this.podName + '_logs.txt');\n  }\n\n  async getApplicationLogsAsync() {\n    try {\n      const rawLogs = await this.KubernetesPodService.logs(this.application.ResourcePool, this.podName, this.containerName);\n      this.applicationLogs = formatLogs(rawLogs);\n    } catch (err) {\n      this.stopRepeater();\n      this.Notifications.error('Failure', err, 'Unable to retrieve application logs');\n    }\n  }\n\n  async onInit() {\n    this.state = {\n      autoRefresh: false,\n      refreshRate: 5000, // 5 seconds\n      search: '',\n      viewReady: false,\n    };\n\n    const podName = this.$transition$.params().pod;\n    const applicationName = this.$transition$.params().name;\n    const namespace = this.$transition$.params().namespace;\n    const containerName = this.$transition$.params().container;\n\n    this.applicationLogs = [];\n    this.podName = podName;\n    this.containerName = containerName;\n\n    try {\n      this.application = await this.KubernetesApplicationService.get(namespace, applicationName);\n      await this.getApplicationLogsAsync();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve application logs');\n    } finally {\n      this.state.viewReady = true;\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    this.stopRepeater();\n  }\n}\n\nexport default KubernetesApplicationLogsController;\nangular.module('portainer.kubernetes').controller('KubernetesApplicationLogsController', KubernetesApplicationLogsController);\n","const autoNgTemplateLoaderTemplate1 = require('./stats.html');\n\nangular.module('portainer.kubernetes').component('kubernetesApplicationStatsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesApplicationStatsController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import angular from 'angular';\nimport moment from 'moment';\nimport _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport KubernetesPodConverter from 'Kubernetes/pod/converter';\nimport { getMetricsForPod } from '@/react/kubernetes/services/service.ts';\n\nclass KubernetesApplicationStatsController {\n  /* @ngInject */\n  constructor($async, $state, $interval, $document, Notifications, KubernetesPodService, KubernetesNodeService, ChartService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$interval = $interval;\n    this.$document = $document;\n    this.Notifications = Notifications;\n    this.KubernetesPodService = KubernetesPodService;\n    this.KubernetesNodeService = KubernetesNodeService;\n    this.ChartService = ChartService;\n\n    this.onInit = this.onInit.bind(this);\n    this.initCharts = this.initCharts.bind(this);\n  }\n\n  changeUpdateRepeater() {\n    var cpuChart = this.cpuChart;\n    var memoryChart = this.memoryChart;\n\n    this.stopRepeater();\n    this.setUpdateRepeater(cpuChart, memoryChart);\n    $('#refreshRateChange').show();\n    $('#refreshRateChange').fadeOut(1500);\n  }\n\n  updateCPUChart() {\n    const label = moment(this.stats.read).format('HH:mm:ss');\n\n    this.ChartService.UpdateCPUChart(label, this.stats.CPUUsage, this.cpuChart);\n  }\n\n  updateMemoryChart() {\n    const label = moment(this.stats.read).format('HH:mm:ss');\n\n    this.ChartService.UpdateMemoryChart(label, this.stats.MemoryUsage, this.stats.MemoryCache, this.memoryChart);\n  }\n\n  stopRepeater() {\n    var repeater = this.repeater;\n    if (angular.isDefined(repeater)) {\n      this.$interval.cancel(repeater);\n      repeater = undefined;\n    }\n  }\n\n  setUpdateRepeater() {\n    const refreshRate = this.state.refreshRate;\n\n    this.repeater = this.$interval(async () => {\n      try {\n        await this.getStats();\n\n        this.updateCPUChart();\n        this.updateMemoryChart();\n      } catch (error) {\n        this.stopRepeater();\n        this.Notifications.error('Failure', error);\n      }\n    }, refreshRate * 1000);\n  }\n\n  initCharts() {\n    let i = 0;\n    const findCharts = setInterval(() => {\n      let cpuChartCtx = $('#cpuChart');\n      let memoryChartCtx = $('#memoryChart');\n      if (cpuChartCtx.length !== 0 && memoryChartCtx.length !== 0) {\n        const cpuChart = this.ChartService.CreateCPUChart(cpuChartCtx);\n        this.cpuChart = cpuChart;\n        const memoryChart = this.ChartService.CreateMemoryChart(memoryChartCtx);\n        this.memoryChart = memoryChart;\n        this.updateCPUChart();\n        this.updateMemoryChart();\n        this.setUpdateRepeater();\n        clearInterval(findCharts);\n        return;\n      }\n      i++;\n      if (i >= 10) {\n        clearInterval(findCharts);\n      }\n    }, 200);\n  }\n\n  getStats() {\n    return this.$async(async () => {\n      try {\n        const stats = await getMetricsForPod(this.$state.params.endpointId, this.state.transition.namespace, this.state.transition.podName);\n        const container = _.find(stats.containers, { name: this.state.transition.containerName });\n        if (container) {\n          const memory = filesizeParser(container.usage.memory);\n          const cpu = KubernetesResourceReservationHelper.parseCPU(container.usage.cpu);\n          this.stats = {\n            read: stats.timestamp,\n            preread: '',\n            MemoryCache: 0,\n            MemoryUsage: memory,\n            NumProcs: '',\n            isWindows: false,\n            PreviousCPUTotalUsage: 0,\n            CPUUsage: (cpu / this.nodeCPU) * 100,\n            CPUCores: 0,\n          };\n        }\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve application stats');\n      }\n    });\n  }\n\n  $onDestroy() {\n    this.stopRepeater();\n  }\n\n  async onInit() {\n    this.state = {\n      autoRefresh: false,\n      refreshRate: '30',\n      viewReady: false,\n      transition: {\n        podName: this.$transition$.params().pod,\n        containerName: this.$transition$.params().container,\n        namespace: this.$transition$.params().namespace,\n        applicationName: this.$transition$.params().name,\n      },\n      getMetrics: false,\n    };\n\n    try {\n      await getMetricsForPod(this.$state.params.endpointId, this.state.transition.namespace, this.state.transition.podName);\n    } catch (error) {\n      this.state.getMetrics = false;\n      this.state.viewReady = true;\n      return;\n    }\n\n    try {\n      const podRaw = await this.KubernetesPodService.get(this.state.transition.namespace, this.state.transition.podName);\n      const pod = KubernetesPodConverter.apiToModel(podRaw.Raw);\n      if (pod) {\n        const node = await this.KubernetesNodeService.get(pod.Node);\n        this.nodeCPU = node.CPU;\n      } else {\n        throw new Error('Unable to find pod');\n      }\n      await this.getStats();\n      this.state.getMetrics = true;\n\n      this.$document.ready(() => {\n        this.initCharts();\n      });\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve application stats');\n    } finally {\n      this.state.viewReady = true;\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n}\n\nexport default KubernetesApplicationStatsController;\nangular.module('portainer.kubernetes').controller('KubernetesApplicationStatsController', KubernetesApplicationStatsController);\n","const autoNgTemplateLoaderTemplate1 = require('./cluster.html');\n\nangular.module('portainer.kubernetes').component('kubernetesClusterView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesClusterController',\n  controllerAs: 'ctrl',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesResourceReservation } from 'Kubernetes/models/resource-reservation/models';\nimport { getMetricsForAllNodes } from '@/react/kubernetes/services/service.ts';\n\nclass KubernetesClusterController {\n  /* @ngInject */\n  constructor($async, $state, Notifications, LocalStorage, Authentication, KubernetesNodeService, KubernetesApplicationService, KubernetesEndpointService, EndpointService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Authentication = Authentication;\n    this.Notifications = Notifications;\n    this.LocalStorage = LocalStorage;\n    this.KubernetesNodeService = KubernetesNodeService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesEndpointService = KubernetesEndpointService;\n    this.EndpointService = EndpointService;\n\n    this.onInit = this.onInit.bind(this);\n    this.getNodes = this.getNodes.bind(this);\n    this.getNodesAsync = this.getNodesAsync.bind(this);\n    this.getApplicationsAsync = this.getApplicationsAsync.bind(this);\n    this.getEndpointsAsync = this.getEndpointsAsync.bind(this);\n    this.hasResourceUsageAccess = this.hasResourceUsageAccess.bind(this);\n  }\n\n  async getEndpointsAsync() {\n    try {\n      const endpoints = await this.KubernetesEndpointService.get();\n      const systemEndpoints = _.filter(endpoints, { Namespace: 'kube-system' });\n      this.systemEndpoints = _.filter(systemEndpoints, (ep) => ep.HolderIdentity);\n\n      const kubernetesEndpoint = _.find(endpoints, { Name: 'kubernetes' });\n      if (kubernetesEndpoint && kubernetesEndpoint.Subsets) {\n        const ips = _.flatten(_.map(kubernetesEndpoint.Subsets, 'Ips'));\n        _.forEach(this.nodes, (node) => {\n          node.Api = _.includes(ips, node.IPAddress);\n        });\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve environments');\n    }\n  }\n\n  getEndpoints() {\n    return this.$async(this.getEndpointsAsync);\n  }\n\n  async getNodesAsync() {\n    try {\n      const nodes = await this.KubernetesNodeService.get();\n      _.forEach(nodes, (node) => (node.Memory = filesizeParser(node.Memory)));\n      this.nodes = nodes;\n      this.CPULimit = _.reduce(this.nodes, (acc, node) => node.CPU + acc, 0);\n      this.CPULimit = Math.round(this.CPULimit * 10000) / 10000;\n      this.MemoryLimit = _.reduce(this.nodes, (acc, node) => KubernetesResourceReservationHelper.megaBytesValue(node.Memory) + acc, 0);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve nodes');\n    }\n  }\n\n  getNodes() {\n    return this.$async(this.getNodesAsync);\n  }\n\n  async getApplicationsAsync() {\n    try {\n      this.state.applicationsLoading = true;\n      this.applications = await this.KubernetesApplicationService.get();\n      const nodeNames = _.map(this.nodes, (node) => node.Name);\n      this.resourceReservation = _.reduce(\n        this.applications,\n        (acc, app) => {\n          app.Pods = _.filter(app.Pods, (pod) => nodeNames.includes(pod.Node));\n          const resourceReservation = KubernetesResourceReservationHelper.computeResourceReservation(app.Pods);\n          acc.CPU += resourceReservation.CPU;\n          acc.Memory += resourceReservation.Memory;\n          return acc;\n        },\n        new KubernetesResourceReservation()\n      );\n      this.resourceReservation.Memory = KubernetesResourceReservationHelper.megaBytesValue(this.resourceReservation.Memory);\n\n      if (this.hasResourceUsageAccess()) {\n        await this.getResourceUsage(this.endpoint.Id);\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve applications');\n    } finally {\n      this.state.applicationsLoading = false;\n    }\n  }\n\n  getApplications() {\n    return this.$async(this.getApplicationsAsync);\n  }\n\n  async getResourceUsage(endpointId) {\n    try {\n      const nodeMetrics = await getMetricsForAllNodes(endpointId);\n      const resourceUsageList = nodeMetrics.items.map((i) => i.usage);\n      const clusterResourceUsage = resourceUsageList.reduce((total, u) => {\n        total.CPU += KubernetesResourceReservationHelper.parseCPU(u.cpu);\n        total.Memory += KubernetesResourceReservationHelper.megaBytesValue(u.memory);\n        return total;\n      }, new KubernetesResourceReservation());\n      this.resourceUsage = clusterResourceUsage;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve cluster resource usage');\n    }\n  }\n\n  /**\n   * Check if resource usage stats can be displayed\n   * @returns {boolean}\n   */\n  hasResourceUsageAccess() {\n    return this.isAdmin && this.state.useServerMetrics;\n  }\n\n  async onInit() {\n    this.endpoint = await this.EndpointService.endpoint(this.endpoint.Id);\n    this.isAdmin = this.Authentication.isAdmin();\n    const useServerMetrics = this.endpoint.Kubernetes.Configuration.UseServerMetrics;\n\n    this.state = {\n      applicationsLoading: true,\n      viewReady: false,\n      useServerMetrics,\n    };\n\n    await this.getNodes();\n    if (this.isAdmin) {\n      await this.getEndpoints();\n      await this.getApplications();\n    }\n\n    this.state.viewReady = true;\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n}\n\nexport default KubernetesClusterController;\nangular.module('portainer.kubernetes').controller('KubernetesClusterController', KubernetesClusterController);\n","const autoNgTemplateLoaderTemplate1 = require('./node.html');\n\nangular.module('portainer.kubernetes').component('kubernetesNodeView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesNodeController',\n  controllerAs: 'ctrl',\n  bindings: {\n    endpoint: '<',\n    $transition$: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesResourceReservation } from 'Kubernetes/models/resource-reservation/models';\nimport KubernetesEventHelper from 'Kubernetes/helpers/eventHelper';\nimport KubernetesNodeConverter from 'Kubernetes/node/converter';\nimport { KubernetesNodeLabelFormValues, KubernetesNodeTaintFormValues } from 'Kubernetes/node/formValues';\nimport { KubernetesNodeTaintEffects, KubernetesNodeAvailabilities } from 'Kubernetes/node/models';\nimport KubernetesFormValidationHelper from 'Kubernetes/helpers/formValidationHelper';\nimport { KubernetesNodeHelper } from 'Kubernetes/node/helper';\nimport { confirmUpdateNode } from '@/react/kubernetes/cluster/NodeView/ConfirmUpdateNode';\nimport { getMetricsForNode } from '@/react/kubernetes/services/service.ts';\n\nclass KubernetesNodeController {\n  /* @ngInject */\n  constructor(\n    $async,\n    $state,\n    Notifications,\n    LocalStorage,\n    KubernetesNodeService,\n    KubernetesEventService,\n    KubernetesPodService,\n    KubernetesApplicationService,\n    KubernetesEndpointService,\n    Authentication\n  ) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Notifications = Notifications;\n    this.LocalStorage = LocalStorage;\n    this.KubernetesNodeService = KubernetesNodeService;\n    this.KubernetesEventService = KubernetesEventService;\n    this.KubernetesPodService = KubernetesPodService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesEndpointService = KubernetesEndpointService;\n    this.Authentication = Authentication;\n\n    this.onInit = this.onInit.bind(this);\n    this.getNodesAsync = this.getNodesAsync.bind(this);\n    this.getEvents = this.getEvents.bind(this);\n    this.getEventsAsync = this.getEventsAsync.bind(this);\n    this.getApplicationsAsync = this.getApplicationsAsync.bind(this);\n    this.getEndpointsAsync = this.getEndpointsAsync.bind(this);\n    this.updateNodeAsync = this.updateNodeAsync.bind(this);\n    this.drainNodeAsync = this.drainNodeAsync.bind(this);\n    this.hasResourceUsageAccess = this.hasResourceUsageAccess.bind(this);\n    this.getNodeUsageAsync = this.getNodeUsageAsync.bind(this);\n  }\n\n  selectTab(index) {\n    this.LocalStorage.storeActiveTab('node', index);\n  }\n\n  /* #region taint */\n\n  onChangeTaintKey(index) {\n    this.state.duplicateTaintKeys = KubernetesFormValidationHelper.getDuplicates(\n      _.map(this.formValues.Taints, (taint) => {\n        if (taint.NeedsDeletion) {\n          return undefined;\n        }\n        return taint.Key;\n      })\n    );\n    this.state.hasDuplicateTaintKeys = Object.keys(this.state.duplicateTaintKeys).length > 0;\n    this.onChangeTaint(index);\n  }\n\n  onChangeTaint(index) {\n    if (this.formValues.Taints[index]) {\n      this.formValues.Taints[index].IsChanged = true;\n    }\n  }\n\n  addTaint() {\n    const taint = new KubernetesNodeTaintFormValues();\n    taint.IsNew = true;\n    taint.Effect = KubernetesNodeTaintEffects.NOSCHEDULE;\n    this.formValues.Taints.push(taint);\n  }\n\n  removeTaint(index) {\n    const taint = this.formValues.Taints[index];\n    if (taint.IsNew) {\n      this.formValues.Taints.splice(index, 1);\n    } else {\n      taint.NeedsDeletion = true;\n    }\n    this.onChangeTaintKey();\n  }\n\n  restoreTaint(index) {\n    this.formValues.Taints[index].NeedsDeletion = false;\n    this.onChangeTaintKey();\n  }\n\n  computeTaintsWarning() {\n    return _.filter(this.formValues.Taints, (taint) => {\n      return taint.Effect === KubernetesNodeTaintEffects.NOEXECUTE && (taint.IsNew || taint.IsChanged);\n    }).length;\n  }\n\n  /* #endregion */\n\n  /* #region label */\n\n  onChangeLabelKey(index) {\n    this.state.duplicateLabelKeys = KubernetesFormValidationHelper.getDuplicates(\n      _.map(this.formValues.Labels, (label) => {\n        if (label.NeedsDeletion) {\n          return undefined;\n        }\n        return label.Key;\n      })\n    );\n    this.state.hasDuplicateLabelKeys = Object.keys(this.state.duplicateLabelKeys).length > 0;\n    this.onChangeLabel(index);\n  }\n\n  onChangeLabel(index) {\n    if (this.formValues.Labels[index]) {\n      this.formValues.Labels[index].IsChanged = true;\n    }\n  }\n\n  addLabel() {\n    const label = new KubernetesNodeLabelFormValues();\n    label.IsNew = true;\n    this.formValues.Labels.push(label);\n  }\n\n  removeLabel(index) {\n    const label = this.formValues.Labels[index];\n    if (label.IsNew) {\n      this.formValues.Labels.splice(index, 1);\n    } else {\n      label.NeedsDeletion = true;\n    }\n    this.onChangeLabelKey();\n  }\n\n  restoreLabel(index) {\n    this.formValues.Labels[index].NeedsDeletion = false;\n    this.onChangeLabelKey();\n  }\n\n  isSystemLabel(index) {\n    return KubernetesNodeHelper.isSystemLabel(this.formValues.Labels[index]);\n  }\n\n  computeLabelsWarning() {\n    return _.filter(this.formValues.Labels, (label) => {\n      return label.IsUsed && (label.NeedsDeletion || label.IsChanged);\n    }).length;\n  }\n\n  /* #endregion */\n\n  /* #region cordon */\n\n  computeCordonWarning() {\n    return this.formValues.Availability === this.availabilities.PAUSE;\n  }\n\n  /* #endregion */\n\n  /* #region drain */\n\n  computeDrainWarning() {\n    return this.formValues.Availability === this.availabilities.DRAIN;\n  }\n\n  async drainNodeAsync() {\n    const pods = _.flatten(_.map(this.applications, (app) => app.Pods));\n    let actionCount = pods.length;\n    for (const pod of pods) {\n      try {\n        await this.KubernetesPodService.eviction(pod);\n        this.Notifications.success('Pod successfully evicted', pod.Name);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to evict pod');\n        this.formValues.Availability = this.availabilities.PAUSE;\n        await this.KubernetesNodeService.patch(this.node, this.formValues);\n      } finally {\n        --actionCount;\n        if (actionCount === 0) {\n          this.formValues.Availability = this.availabilities.PAUSE;\n          await this.KubernetesNodeService.patch(this.node, this.formValues);\n        }\n      }\n    }\n  }\n\n  drainNode() {\n    return this.$async(this.drainNodeAsync);\n  }\n\n  /* #endregion */\n\n  /* #region actions */\n\n  isNoChangesMade() {\n    const newNode = KubernetesNodeConverter.formValuesToNode(this.node, this.formValues);\n    const payload = KubernetesNodeConverter.patchPayload(this.node, newNode);\n    return !payload.length;\n  }\n\n  isDrainError() {\n    return (this.state.isDrainOperation || this.state.isContainPortainer) && this.formValues.Availability === this.availabilities.DRAIN;\n  }\n\n  isFormValid() {\n    return !this.state.hasDuplicateTaintKeys && !this.state.hasDuplicateLabelKeys && !this.isNoChangesMade() && !this.isDrainError();\n  }\n\n  resetFormValues() {\n    this.formValues = KubernetesNodeConverter.nodeToFormValues(this.node);\n  }\n\n  /* #endregion */\n\n  async getEndpointsAsync() {\n    try {\n      const endpoints = await this.KubernetesEndpointService.get();\n      this.endpoint = _.find(endpoints, { Name: 'kubernetes' });\n      if (this.endpoint && this.endpoint.Subsets) {\n        _.forEach(this.endpoint.Subsets, (subset) => {\n          return _.forEach(subset.Ips, (ip) => {\n            if (ip === this.node.IPAddress) {\n              this.node.Api = true;\n              this.node.Port = subset.Port;\n              return false;\n            }\n          });\n        });\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve environments');\n    }\n  }\n\n  getEndpoints() {\n    return this.$async(this.getEndpointsAsync);\n  }\n\n  async updateNodeAsync() {\n    try {\n      this.node = await this.KubernetesNodeService.patch(this.node, this.formValues);\n      if (this.formValues.Availability === 'Drain') {\n        await this.drainNode();\n      }\n      this.Notifications.success('Success', 'Node updated successfully');\n      this.$state.reload(this.$state.current);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to update node');\n    }\n  }\n\n  updateNode() {\n    const taintsWarning = this.computeTaintsWarning();\n    const labelsWarning = this.computeLabelsWarning();\n    const cordonWarning = this.computeCordonWarning();\n    const drainWarning = this.computeDrainWarning();\n\n    if (taintsWarning || labelsWarning || cordonWarning || drainWarning) {\n      confirmUpdateNode(taintsWarning, labelsWarning, cordonWarning, drainWarning).then((confirmed) => {\n        if (confirmed) {\n          return this.$async(this.updateNodeAsync);\n        }\n      });\n    } else {\n      return this.$async(this.updateNodeAsync);\n    }\n  }\n\n  async getNodesAsync() {\n    try {\n      this.state.dataLoading = true;\n      const nodeName = this.$transition$.params().nodeName;\n      this.nodes = await this.KubernetesNodeService.get();\n      this.node = _.find(this.nodes, { Name: nodeName });\n      this.state.isDrainOperation = _.find(this.nodes, { Availability: this.availabilities.DRAIN });\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve node');\n    } finally {\n      this.state.dataLoading = false;\n    }\n  }\n\n  getNodes() {\n    return this.$async(this.getNodesAsync);\n  }\n\n  hasResourceUsageAccess() {\n    return this.state.isAdmin && this.state.useServerMetrics;\n  }\n\n  async getNodeUsageAsync() {\n    try {\n      const nodeName = this.$transition$.params().nodeName;\n      const node = await getMetricsForNode(this.$state.params.endpointId, nodeName);\n      this.resourceUsage = new KubernetesResourceReservation();\n      this.resourceUsage.CPU = KubernetesResourceReservationHelper.parseCPU(node.usage.cpu);\n      this.resourceUsage.Memory = KubernetesResourceReservationHelper.megaBytesValue(node.usage.memory);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve node resource usage');\n    }\n  }\n\n  getNodeUsage() {\n    return this.$async(this.getNodeUsageAsync);\n  }\n\n  hasEventWarnings() {\n    return this.state.eventWarningCount;\n  }\n\n  async getEventsAsync() {\n    try {\n      this.state.eventsLoading = true;\n      const events = await this.KubernetesEventService.get();\n      this.events = events.filter((item) => item.Involved.kind === 'Node');\n      this.state.eventWarningCount = KubernetesEventHelper.warningCount(this.events);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve node events');\n    } finally {\n      this.state.eventsLoading = false;\n    }\n  }\n\n  getEvents() {\n    return this.$async(this.getEventsAsync);\n  }\n\n  showEditor() {\n    this.state.showEditorTab = true;\n    this.selectTab(2);\n  }\n\n  async getApplicationsAsync() {\n    try {\n      this.state.applicationsLoading = true;\n      this.applications = await this.KubernetesApplicationService.get();\n\n      this.resourceReservation = new KubernetesResourceReservation();\n      this.applications = _.map(this.applications, (app) => {\n        app.Pods = _.filter(app.Pods, (pod) => pod.Node === this.node.Name);\n        return app;\n      });\n      this.applications = _.filter(this.applications, (app) => app.Pods.length !== 0);\n      this.applications = _.map(this.applications, (app) => {\n        const resourceReservation = KubernetesResourceReservationHelper.computeResourceReservation(app.Pods);\n        app.CPU = resourceReservation.CPU;\n        app.Memory = resourceReservation.Memory;\n        this.resourceReservation.CPU += resourceReservation.CPU;\n        this.resourceReservation.Memory += resourceReservation.Memory;\n        return app;\n      });\n      this.resourceReservation.Memory = KubernetesResourceReservationHelper.megaBytesValue(this.resourceReservation.Memory);\n      this.memoryLimit = KubernetesResourceReservationHelper.megaBytesValue(this.node.Memory);\n      this.state.isContainPortainer = _.find(this.applications, { ApplicationName: 'portainer' });\n\n      if (this.hasResourceUsageAccess()) {\n        await this.getNodeUsage();\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve applications');\n    } finally {\n      this.state.applicationsLoading = false;\n    }\n  }\n\n  getApplications() {\n    return this.$async(this.getApplicationsAsync);\n  }\n\n  async onInit() {\n    this.availabilities = KubernetesNodeAvailabilities;\n\n    this.state = {\n      isAdmin: this.Authentication.isAdmin(),\n      activeTab: this.LocalStorage.getActiveTab('node'),\n      currentName: this.$state.$current.name,\n      dataLoading: true,\n      eventsLoading: true,\n      applicationsLoading: true,\n      showEditorTab: false,\n      viewReady: false,\n      eventWarningCount: 0,\n      duplicateTaintKeys: [],\n      hasDuplicateTaintKeys: false,\n      duplicateLabelKeys: [],\n      hasDuplicateLabelKeys: false,\n      isDrainOperation: false,\n      isContainPortainer: false,\n      useServerMetrics: this.endpoint.Kubernetes.Configuration.UseServerMetrics,\n    };\n\n    await this.getNodes();\n    await this.getEvents();\n    await this.getApplications();\n    await this.getEndpoints();\n\n    this.availableEffects = _.values(KubernetesNodeTaintEffects);\n    this.formValues = KubernetesNodeConverter.nodeToFormValues(this.node);\n    this.formValues.Labels = KubernetesNodeHelper.computeUsedLabels(this.applications, this.formValues.Labels);\n    this.formValues.Labels = KubernetesNodeHelper.reorderLabels(this.formValues.Labels);\n\n    this.state.viewReady = true;\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    if (this.state.currentName !== this.$state.$current.name) {\n      this.LocalStorage.storeActiveTab('node', 0);\n    }\n  }\n}\n\nexport default KubernetesNodeController;\nangular.module('portainer.kubernetes').controller('KubernetesNodeController', KubernetesNodeController);\n","import { ModalType } from '@@/modals';\nimport { confirm } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport function confirmUpdateNode(\n  taintsWarning: boolean,\n  labelsWarning: boolean,\n  cordonWarning: boolean,\n  drainWarning: boolean\n) {\n  let message;\n  if (taintsWarning && !labelsWarning) {\n    message =\n      'Changes to taints will immediately deschedule applications running on this node without the corresponding tolerations. Do you wish to continue?';\n  } else if (!taintsWarning && labelsWarning) {\n    message =\n      'Removing or changing a label that is used might prevent applications from being scheduled on this node in the future. Do you wish to continue?';\n  } else if (taintsWarning && labelsWarning) {\n    message = (\n      <>\n        <p>\n          Changes to taints will immediately deschedule applications running on\n          this node without the corresponding tolerations.\n        </p>\n        <p>\n          Removing or changing a label that is used might prevent applications\n          from scheduling on this node in the future.\n        </p>\n        <p>Do you wish to continue?</p>\n      </>\n    );\n  } else if (cordonWarning) {\n    message =\n      'Marking this node as unschedulable will effectively cordon the node and prevent any new workload from being scheduled on that node. Are you sure?';\n  } else if (drainWarning) {\n    message =\n      'Draining this node will cause all workloads to be evicted from that node. This might lead to some service interruption. Are you sure?';\n  }\n\n  return confirm({\n    title: 'Are you sure?',\n    modalType: ModalType.Warn,\n    message,\n    confirmButton: buildConfirmButton('Update', 'primary'),\n  });\n}\n","const autoNgTemplateLoaderTemplate1 = require('./stats.html');\n\nangular.module('portainer.kubernetes').component('kubernetesNodeStatsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesNodeStatsController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import angular from 'angular';\nimport moment from 'moment';\nimport filesizeParser from 'filesize-parser';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { PORTAINER_FADEOUT } from '@/constants';\nimport { getMetricsForNode } from '@/react/kubernetes/services/service.ts';\n\nclass KubernetesNodeStatsController {\n  /* @ngInject */\n  constructor($async, $state, $interval, $document, Notifications, KubernetesNodeService, ChartService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$interval = $interval;\n    this.$document = $document;\n    this.Notifications = Notifications;\n    this.KubernetesNodeService = KubernetesNodeService;\n    this.ChartService = ChartService;\n\n    this.onInit = this.onInit.bind(this);\n    this.initCharts = this.initCharts.bind(this);\n  }\n\n  changeUpdateRepeater() {\n    var cpuChart = this.cpuChart;\n    var memoryChart = this.memoryChart;\n\n    this.stopRepeater();\n    this.setUpdateRepeater(cpuChart, memoryChart);\n    $('#refreshRateChange').show();\n    $('#refreshRateChange').fadeOut(PORTAINER_FADEOUT);\n  }\n\n  updateCPUChart() {\n    const label = moment(this.stats.read).format('HH:mm:ss');\n    this.ChartService.UpdateCPUChart(label, this.stats.CPUUsage, this.cpuChart);\n  }\n\n  updateMemoryChart() {\n    const label = moment(this.stats.read).format('HH:mm:ss');\n    this.ChartService.UpdateMemoryChart(label, this.stats.MemoryUsage, 0, this.memoryChart);\n  }\n\n  stopRepeater() {\n    var repeater = this.repeater;\n    if (angular.isDefined(repeater)) {\n      this.$interval.cancel(repeater);\n      this.repeater = undefined;\n    }\n  }\n\n  setUpdateRepeater() {\n    const refreshRate = this.state.refreshRate;\n\n    this.repeater = this.$interval(async () => {\n      try {\n        await this.getStats();\n        this.updateCPUChart();\n        this.updateMemoryChart();\n      } catch (error) {\n        this.stopRepeater();\n        this.Notifications.error('Failure', error);\n      }\n    }, refreshRate * 1000);\n  }\n\n  initCharts() {\n    const findCharts = setInterval(() => {\n      let cpuChartCtx = $('#cpuChart');\n      let memoryChartCtx = $('#memoryChart');\n      if (cpuChartCtx.length !== 0 && memoryChartCtx.length !== 0) {\n        const cpuChart = this.ChartService.CreateCPUChart(cpuChartCtx);\n        this.cpuChart = cpuChart;\n        const memoryChart = this.ChartService.CreateMemoryChart(memoryChartCtx);\n        this.memoryChart = memoryChart;\n        this.updateCPUChart();\n        this.updateMemoryChart();\n        this.setUpdateRepeater();\n        clearInterval(findCharts);\n      }\n    }, 200);\n  }\n\n  getStats() {\n    return this.$async(async () => {\n      try {\n        const stats = await getMetricsForNode(this.$state.params.endpointId, this.state.transition.nodeName);\n        if (stats) {\n          const memory = filesizeParser(stats.usage.memory);\n          const cpu = KubernetesResourceReservationHelper.parseCPU(stats.usage.cpu);\n          this.stats = {\n            read: stats.metadata.creationTimestamp,\n            MemoryUsage: memory,\n            CPUUsage: (cpu / this.nodeCPU) * 100,\n          };\n        }\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve node stats');\n      }\n    });\n  }\n\n  $onDestroy() {\n    this.stopRepeater();\n  }\n\n  async onInit() {\n    this.state = {\n      autoRefresh: false,\n      refreshRate: '30',\n      viewReady: false,\n      transition: {\n        nodeName: this.$transition$.params().nodeName,\n      },\n      getMetrics: true,\n    };\n\n    try {\n      const nodeMetrics = await getMetricsForNode(this.$state.params.endpointId, this.state.transition.nodeName);\n\n      if (nodeMetrics) {\n        const node = await this.KubernetesNodeService.get(this.state.transition.nodeName);\n        this.nodeCPU = node.CPU || 1;\n\n        await this.getStats();\n      } else {\n        this.state.getMetrics = false;\n      }\n    } catch (err) {\n      this.state.getMetrics = false;\n      this.Notifications.error('Failure', err, 'Unable to retrieve node stats');\n    } finally {\n      this.state.viewReady = true;\n      if (this.state.getMetrics) {\n        this.$document.ready(() => {\n          this.initCharts();\n        });\n      }\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n}\n\nexport default KubernetesNodeStatsController;\nangular.module('portainer.kubernetes').controller('KubernetesNodeStatsController', KubernetesNodeStatsController);\n","const autoNgTemplateLoaderTemplate1 = require('./createConfigMap.html');\n\nangular.module('portainer.kubernetes').component('kubernetesCreateConfigMapView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesCreateConfigMapController',\n  controllerAs: 'ctrl',\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport { KubernetesConfigurationFormValues, KubernetesConfigurationFormValuesEntry } from 'Kubernetes/models/configuration/formvalues';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\nimport KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { getServiceAccounts } from 'Kubernetes/rest/serviceAccount';\nimport { typeOptions } from '@/react/kubernetes/configs/CreateView/options';\n\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { isConfigurationFormValid } from '../../validation';\n\nclass KubernetesCreateConfigMapController {\n  /* @ngInject */\n  constructor($async, $state, $scope, $window, Notifications, Authentication, KubernetesConfigurationService, KubernetesResourcePoolService, EndpointProvider) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$scope = $scope;\n    this.$window = $window;\n    this.EndpointProvider = EndpointProvider;\n    this.Notifications = Notifications;\n    this.Authentication = Authentication;\n    this.KubernetesConfigurationService = KubernetesConfigurationService;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesConfigurationKinds = KubernetesConfigurationKinds;\n\n    this.typeOptions = typeOptions;\n\n    this.onInit = this.onInit.bind(this);\n    this.createConfigurationAsync = this.createConfigurationAsync.bind(this);\n    this.getConfigurationsAsync = this.getConfigurationsAsync.bind(this);\n    this.onResourcePoolSelectionChangeAsync = this.onResourcePoolSelectionChangeAsync.bind(this);\n  }\n\n  onChangeName() {\n    const filteredConfigurations = _.filter(\n      this.configurations,\n      (config) => config.Namespace === this.formValues.ResourcePool.Namespace.Name && config.Kind === this.formValues.Kind\n    );\n    this.state.alreadyExist = _.find(filteredConfigurations, (config) => config.Name === this.formValues.Name) !== undefined;\n  }\n\n  async onResourcePoolSelectionChangeAsync() {\n    try {\n      this.onChangeName();\n      this.availableServiceAccounts = await getServiceAccounts(this.environmentId, this.formValues.ResourcePool.Namespace.Name);\n      this.formValues.ServiceAccountName = this.availableServiceAccounts.length > 0 ? this.availableServiceAccounts[0].metadata.name : '';\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load service accounts');\n    }\n  }\n  onResourcePoolSelectionChange() {\n    this.$async(this.onResourcePoolSelectionChangeAsync);\n  }\n\n  addRequiredKeysToForm(keys) {\n    // remove data entries that have an empty value\n    this.formValues.Data = this.formValues.Data.filter((entry) => entry.Value);\n\n    keys.forEach((key) => {\n      // if the key doesn't exist on the form, add a new formValues.Data entry\n      if (!this.formValues.Data.some((data) => data.Key === key)) {\n        this.formValues.Data.push(new KubernetesConfigurationFormValuesEntry());\n        const index = this.formValues.Data.length - 1;\n        this.formValues.Data[index].Key = key;\n      }\n    });\n  }\n\n  isFormValid() {\n    const [isValid] = isConfigurationFormValid(this.state.alreadyExist, this.state.isDataValid, this.formValues);\n    return isValid;\n  }\n\n  async createConfigurationAsync() {\n    try {\n      this.state.actionInProgress = true;\n      this.formValues.ConfigurationOwner = this.Authentication.getUserDetails().username;\n      if (!this.formValues.IsSimple) {\n        this.formValues.Data = KubernetesConfigurationHelper.parseYaml(this.formValues);\n      }\n\n      await this.KubernetesConfigurationService.create(this.formValues);\n      this.Notifications.success('Success', `ConfigMap successfully created`);\n      this.state.isEditorDirty = false;\n      this.$state.go('kubernetes.configurations', { tab: 'configmaps' });\n    } catch (err) {\n      this.Notifications.error('Failure', err, `Unable to create ConfigMap`);\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  createConfiguration() {\n    return this.$async(this.createConfigurationAsync);\n  }\n\n  async getConfigurationsAsync() {\n    try {\n      this.configurations = await this.KubernetesConfigurationService.get();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve ConfigMaps');\n    }\n  }\n\n  getConfigurations() {\n    return this.$async(this.getConfigurationsAsync);\n  }\n\n  async uiCanExit() {\n    if (!this.formValues.IsSimple && this.formValues.DataYaml && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  async onInit() {\n    this.state = {\n      actionInProgress: false,\n      viewReady: false,\n      alreadyExist: false,\n      isDataValid: true,\n      isEditorDirty: false,\n      isDockerConfig: false,\n    };\n\n    this.formValues = new KubernetesConfigurationFormValues();\n    this.formValues.Kind = KubernetesConfigurationKinds.CONFIGMAP;\n    this.formValues.Data = [new KubernetesConfigurationFormValuesEntry()];\n\n    try {\n      const resourcePools = await this.KubernetesResourcePoolService.get();\n      this.resourcePools = _.filter(\n        resourcePools,\n        (resourcePool) => !KubernetesNamespaceHelper.isSystemNamespace(resourcePool.Namespace.Name) && resourcePool.Namespace.Status === 'Active'\n      );\n\n      this.formValues.ResourcePool = this.resourcePools[0];\n      if (!this.formValues.ResourcePool) {\n        return;\n      }\n\n      await this.getConfigurations();\n\n      this.environmentId = this.EndpointProvider.endpointID();\n      this.availableServiceAccounts = await getServiceAccounts(this.environmentId, this.resourcePools[0].Namespace.Name);\n      this.formValues.ServiceAccountName = this.availableServiceAccounts.length > 0 ? this.availableServiceAccounts[0].metadata.name : '';\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load view data');\n    } finally {\n      this.state.viewReady = true;\n    }\n\n    this.$window.onbeforeunload = () => {\n      if (!this.formValues.IsSimple && this.formValues.DataYaml && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n}\n\nexport default KubernetesCreateConfigMapController;\nangular.module('portainer.kubernetes').controller('KubernetesCreateConfigMapController', KubernetesCreateConfigMapController);\n","const autoNgTemplateLoaderTemplate1 = require('./configMap.html');\n\nangular.module('portainer.kubernetes').component('kubernetesConfigMapView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesConfigMapController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nimport { KubernetesConfigurationFormValues } from 'Kubernetes/models/configuration/formvalues';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\nimport KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\nimport KubernetesConfigurationConverter from 'Kubernetes/converters/configuration';\nimport KubernetesEventHelper from 'Kubernetes/helpers/eventHelper';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\n\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { confirmUpdate, confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { isConfigurationFormValid } from '../../validation';\n\nclass KubernetesConfigMapController {\n  /* @ngInject */\n  constructor(\n    $async,\n    $state,\n    $window,\n    clipboard,\n    EndpointProvider,\n    Notifications,\n    LocalStorage,\n    Authentication,\n    KubernetesConfigurationService,\n    KubernetesConfigMapService,\n    KubernetesResourcePoolService,\n    KubernetesApplicationService,\n    KubernetesEventService\n  ) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$window = $window;\n    this.clipboard = clipboard;\n    this.EndpointProvider = EndpointProvider;\n    this.Notifications = Notifications;\n    this.LocalStorage = LocalStorage;\n    this.Authentication = Authentication;\n    this.KubernetesConfigurationService = KubernetesConfigurationService;\n    this.KubernetesConfigMapService = KubernetesConfigMapService;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesEventService = KubernetesEventService;\n    this.KubernetesConfigurationKinds = KubernetesConfigurationKinds;\n\n    this.onInit = this.onInit.bind(this);\n    this.getConfigurationAsync = this.getConfigurationAsync.bind(this);\n    this.getEvents = this.getEvents.bind(this);\n    this.getEventsAsync = this.getEventsAsync.bind(this);\n    this.getApplications = this.getApplications.bind(this);\n    this.getApplicationsAsync = this.getApplicationsAsync.bind(this);\n    this.getConfigurationsAsync = this.getConfigurationsAsync.bind(this);\n    this.updateConfiguration = this.updateConfiguration.bind(this);\n    this.updateConfigurationAsync = this.updateConfigurationAsync.bind(this);\n  }\n\n  isSystemNamespace() {\n    return KubernetesNamespaceHelper.isSystemNamespace(this.configuration.Namespace);\n  }\n\n  isSystemConfig() {\n    return this.isSystemNamespace();\n  }\n\n  selectTab(index) {\n    this.LocalStorage.storeActiveTab('configuration', index);\n  }\n\n  showEditor() {\n    this.state.showEditorTab = true;\n    this.selectTab(2);\n  }\n\n  copyConfigurationValue(idx) {\n    this.clipboard.copyText(this.formValues.Data[idx].Value);\n    $('#copyValueNotification_' + idx)\n      .show()\n      .fadeOut(2500);\n  }\n\n  isFormValid() {\n    const [isValid] = isConfigurationFormValid(this.state.alreadyExist, this.state.isDataValid, this.formValues);\n    return isValid;\n  }\n\n  // TODO: refactor\n  // It looks like we're still doing a create/delete process but we've decided to get rid of this\n  // approach.\n  async updateConfigurationAsync() {\n    try {\n      this.state.actionInProgress = true;\n      if (\n        this.formValues.Kind !== this.configuration.Kind ||\n        this.formValues.ResourcePool.Namespace.Name !== this.configuration.Namespace ||\n        this.formValues.Name !== this.configuration.Name\n      ) {\n        await this.KubernetesConfigurationService.create(this.formValues);\n        await this.KubernetesConfigurationService.delete(this.configuration);\n        this.Notifications.success('Success', `ConfigMap successfully updated`);\n        this.$state.go(\n          'kubernetes.configurations.configmap',\n          {\n            namespace: this.formValues.ResourcePool.Namespace.Name,\n            name: this.formValues.Name,\n          },\n          { reload: true }\n        );\n      } else {\n        await this.KubernetesConfigurationService.update(this.formValues, this.configuration);\n        this.Notifications.success('Success', `ConfigMap successfully updated`);\n        this.$state.reload(this.$state.current);\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, `Unable to update ConfigMap`);\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  updateConfiguration() {\n    if (this.configuration.Used) {\n      confirmUpdate(\n        `The changes will be propagated to ${this.configuration.Applications.length} running ${pluralize(\n          this.configuration.Applications.length,\n          'application'\n        )}. Are you sure you want to update this ConfigMap?`,\n        (confirmed) => {\n          if (confirmed) {\n            return this.$async(this.updateConfigurationAsync);\n          }\n        }\n      );\n    } else {\n      return this.$async(this.updateConfigurationAsync);\n    }\n  }\n\n  async getConfigurationAsync() {\n    try {\n      this.state.configurationLoading = true;\n      const name = this.$transition$.params().name;\n      const namespace = this.$transition$.params().namespace;\n      try {\n        const configMap = await this.KubernetesConfigMapService.get(namespace, name);\n        this.configuration = KubernetesConfigurationConverter.configMapToConfiguration(configMap);\n        this.formValues.Data = configMap.Data;\n      } catch (err) {\n        if (err.status === 403) {\n          this.$state.go('kubernetes.configurations', { tab: 'configmaps' });\n          throw new Error('Not authorized to edit ConfigMap');\n        }\n      }\n\n      this.formValues.ResourcePool = _.find(this.resourcePools, (resourcePool) => resourcePool.Namespace.Name === this.configuration.Namespace);\n      this.formValues.Id = this.configuration.Id;\n      this.formValues.Name = this.configuration.Name;\n      this.formValues.Type = this.configuration.Type;\n      this.formValues.Kind = this.configuration.Kind;\n      this.oldDataYaml = this.formValues.DataYaml;\n      this.formValues.Labels = this.configuration.Labels;\n\n      return this.configuration;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve ConfigMap');\n    } finally {\n      this.state.configurationLoading = false;\n    }\n  }\n\n  getConfiguration() {\n    return this.$async(this.getConfigurationAsync);\n  }\n\n  async getApplicationsAsync(namespace) {\n    try {\n      this.state.applicationsLoading = true;\n      const applications = await this.KubernetesApplicationService.get(namespace);\n      this.configuration.Applications = KubernetesConfigurationHelper.getUsingApplications(this.configuration, applications);\n      KubernetesConfigurationHelper.setConfigurationUsed(this.configuration);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve applications');\n    } finally {\n      this.state.applicationsLoading = false;\n    }\n  }\n\n  getApplications(namespace) {\n    return this.$async(this.getApplicationsAsync, namespace);\n  }\n\n  hasEventWarnings() {\n    return this.state.eventWarningCount;\n  }\n\n  async getEventsAsync(namespace) {\n    try {\n      this.state.eventsLoading = true;\n      this.events = await this.KubernetesEventService.get(namespace);\n      this.events = _.filter(this.events, (event) => event.Involved.uid === this.configuration.Id);\n      this.state.eventWarningCount = KubernetesEventHelper.warningCount(this.events);\n    } catch (err) {\n      this.Notifications('Failure', err, 'Unable to retrieve events');\n    } finally {\n      this.state.eventsLoading = false;\n    }\n  }\n\n  getEvents(namespace) {\n    return this.$async(this.getEventsAsync, namespace);\n  }\n\n  async getConfigurationsAsync() {\n    try {\n      this.configurations = await this.KubernetesConfigurationService.get();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve configurations');\n    }\n  }\n\n  getConfigurations() {\n    return this.$async(this.getConfigurationsAsync);\n  }\n\n  tagUsedDataKeys() {\n    const configName = this.$transition$.params().name;\n    const usedDataKeys = _.uniq(\n      this.configuration.Applications.flatMap((app) =>\n        app.Env.filter((e) => e.valueFrom && e.valueFrom.configMapKeyRef && e.valueFrom.configMapKeyRef.name === configName).map((e) => e.name)\n      )\n    );\n\n    this.formValues.Data = this.formValues.Data.map((variable) => {\n      if (!usedDataKeys.includes(variable.Key)) {\n        return variable;\n      }\n\n      return { ...variable, Used: true };\n    });\n  }\n\n  async uiCanExit() {\n    if (!this.formValues.IsSimple && this.formValues.DataYaml !== this.oldDataYaml && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  async onInit() {\n    try {\n      this.state = {\n        actionInProgress: false,\n        configurationLoading: true,\n        applicationsLoading: true,\n        eventsLoading: true,\n        showEditorTab: false,\n        viewReady: false,\n        eventWarningCount: 0,\n        activeTab: 0,\n        currentName: this.$state.$current.name,\n        isDataValid: true,\n        isEditorDirty: false,\n      };\n\n      this.state.activeTab = this.LocalStorage.getActiveTab('configuration');\n\n      this.formValues = new KubernetesConfigurationFormValues();\n\n      this.resourcePools = await this.KubernetesResourcePoolService.get();\n\n      const configuration = await this.getConfiguration();\n      if (configuration) {\n        await this.getApplications(this.configuration.Namespace);\n        await this.getEvents(this.configuration.Namespace);\n        await this.getConfigurations();\n      }\n\n      this.tagUsedDataKeys();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load view data');\n    } finally {\n      this.state.viewReady = true;\n    }\n\n    this.$window.onbeforeunload = () => {\n      if (!this.formValues.IsSimple && this.formValues.DataYaml !== this.oldDataYaml && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    if (this.state.currentName !== this.$state.$current.name) {\n      this.LocalStorage.storeActiveTab('configuration', 0);\n    }\n    this.state.isEditorDirty = false;\n  }\n}\n\nexport default KubernetesConfigMapController;\nangular.module('portainer.kubernetes').controller('KubernetesConfigMapController', KubernetesConfigMapController);\n","import angular from 'angular';\nimport { confirmDelete } from '@@/modals/confirm';\nimport KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\n\nclass KubernetesConfigurationsController {\n  /* @ngInject */\n  constructor($async, $state, Notifications, Authentication, KubernetesConfigurationService, KubernetesApplicationService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Notifications = Notifications;\n    this.Authentication = Authentication;\n    this.KubernetesConfigurationService = KubernetesConfigurationService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n\n    this.onInit = this.onInit.bind(this);\n    this.getConfigurations = this.getConfigurations.bind(this);\n    this.getConfigurationsAsync = this.getConfigurationsAsync.bind(this);\n    this.getApplicationsAsync = this.getApplicationsAsync.bind(this);\n    this.removeAction = this.removeAction.bind(this);\n    this.removeActionAsync = this.removeActionAsync.bind(this);\n    this.refreshCallback = this.refreshCallback.bind(this);\n    this.refreshCallbackAsync = this.refreshCallbackAsync.bind(this);\n  }\n\n  async getConfigurationsAsync() {\n    try {\n      this.state.configurationsLoading = true;\n      this.configurations = await this.KubernetesConfigurationService.get();\n      KubernetesConfigurationHelper.setConfigurationsUsed(this.configurations, this.applications);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve ConfigMaps & Secrets');\n    } finally {\n      this.state.configurationsLoading = false;\n    }\n  }\n\n  getConfigurations() {\n    return this.$async(this.getConfigurationsAsync);\n  }\n\n  async removeActionAsync(selectedItems) {\n    let actionCount = selectedItems.length;\n    for (const configuration of selectedItems) {\n      try {\n        await this.KubernetesConfigurationService.delete(configuration);\n        this.Notifications.success('ConfigMaps/Secrets successfully removed', configuration.Name);\n        const index = this.configurations.indexOf(configuration);\n        this.configurations.splice(index, 1);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to remove ConfigMaps/Secrets');\n      } finally {\n        --actionCount;\n        if (actionCount === 0) {\n          this.$state.reload(this.$state.current);\n        }\n      }\n    }\n  }\n\n  removeAction(selectedItems) {\n    confirmDelete('Do you want to remove the selected ConfigMap(s) & Secret(s)?').then((confirmed) => {\n      if (confirmed) {\n        return this.$async(this.removeActionAsync, selectedItems);\n      }\n    });\n  }\n\n  async getApplicationsAsync() {\n    try {\n      this.state.applicationsLoading = true;\n      this.applications = await this.KubernetesApplicationService.get();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve applications');\n    } finally {\n      this.state.applicationsLoading = false;\n    }\n  }\n\n  getApplications() {\n    return this.$async(this.getApplicationsAsync);\n  }\n\n  async refreshCallbackAsync() {\n    await this.getConfigurations();\n    await this.getApplications();\n  }\n\n  refreshCallback() {\n    return this.$async(this.refreshCallbackAsync);\n  }\n\n  async onInit() {\n    this.state = {\n      configurationsLoading: true,\n      applicationsLoading: true,\n      viewReady: false,\n      isAdmin: this.Authentication.isAdmin(),\n    };\n\n    await this.getApplications();\n    await this.getConfigurations();\n\n    this.state.viewReady = true;\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n}\n\nexport default KubernetesConfigurationsController;\nangular.module('portainer.kubernetes').controller('KubernetesConfigurationsController', KubernetesConfigurationsController);\n","const autoNgTemplateLoaderTemplate1 = require('./createSecret.html');\n\nangular.module('portainer.kubernetes').component('kubernetesCreateSecretView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesCreateSecretController',\n  controllerAs: 'ctrl',\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport { KubernetesConfigurationFormValues, KubernetesConfigurationFormValuesEntry } from 'Kubernetes/models/configuration/formvalues';\nimport { KubernetesConfigurationKinds, KubernetesSecretTypeOptions } from 'Kubernetes/models/configuration/models';\nimport KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { getServiceAccounts } from 'Kubernetes/rest/serviceAccount';\nimport { typeOptions } from '@/react/kubernetes/configs/CreateView/options';\n\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { isConfigurationFormValid } from '../../validation';\n\nclass KubernetesCreateSecretController {\n  /* @ngInject */\n  constructor($async, $state, $scope, $window, Notifications, Authentication, KubernetesConfigurationService, KubernetesResourcePoolService, EndpointProvider) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$scope = $scope;\n    this.$window = $window;\n    this.EndpointProvider = EndpointProvider;\n    this.Notifications = Notifications;\n    this.Authentication = Authentication;\n    this.KubernetesConfigurationService = KubernetesConfigurationService;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesConfigurationKinds = KubernetesConfigurationKinds;\n    this.KubernetesSecretTypeOptions = KubernetesSecretTypeOptions;\n\n    this.typeOptions = typeOptions;\n\n    this.onInit = this.onInit.bind(this);\n    this.createConfigurationAsync = this.createConfigurationAsync.bind(this);\n    this.getConfigurationsAsync = this.getConfigurationsAsync.bind(this);\n    this.onResourcePoolSelectionChangeAsync = this.onResourcePoolSelectionChangeAsync.bind(this);\n    this.onSecretTypeChange = this.onSecretTypeChange.bind(this);\n  }\n\n  onChangeName() {\n    const filteredConfigurations = _.filter(\n      this.configurations,\n      (config) => config.Namespace === this.formValues.ResourcePool.Namespace.Name && config.Kind === this.formValues.Kind\n    );\n    this.state.alreadyExist = _.find(filteredConfigurations, (config) => config.Name === this.formValues.Name) !== undefined;\n  }\n\n  async onResourcePoolSelectionChangeAsync() {\n    try {\n      this.onChangeName();\n      this.availableServiceAccounts = await getServiceAccounts(this.environmentId, this.formValues.ResourcePool.Namespace.Name);\n      this.formValues.ServiceAccountName = this.availableServiceAccounts.length > 0 ? this.availableServiceAccounts[0].metadata.name : '';\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load service accounts');\n    }\n  }\n  onResourcePoolSelectionChange() {\n    this.$async(this.onResourcePoolSelectionChangeAsync);\n  }\n\n  onSecretTypeChange() {\n    switch (this.formValues.Type) {\n      case KubernetesSecretTypeOptions.OPAQUE.value:\n      case KubernetesSecretTypeOptions.CUSTOM.value:\n        this.formValues.Data = this.formValues.Data.filter((entry) => entry.Value !== '');\n        if (this.formValues.Data.length === 0) {\n          this.addRequiredKeysToForm(['']);\n        }\n        this.state.isDockerConfig = false;\n        break;\n      case KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value:\n        // data isn't required for service account tokens, so remove the data fields if they are empty\n        this.addRequiredKeysToForm([]);\n        this.state.isDockerConfig = false;\n        break;\n      case KubernetesSecretTypeOptions.DOCKERCONFIGJSON.value:\n        this.addRequiredKeysToForm(['.dockerconfigjson']);\n        this.state.isDockerConfig = true;\n        break;\n      case KubernetesSecretTypeOptions.DOCKERCFG.value:\n        this.addRequiredKeysToForm(['.dockercfg']);\n        this.state.isDockerConfig = true;\n        break;\n      case KubernetesSecretTypeOptions.BASICAUTH.value:\n        this.addRequiredKeysToForm(['username', 'password']);\n        this.state.isDockerConfig = false;\n        break;\n      case KubernetesSecretTypeOptions.SSHAUTH.value:\n        this.addRequiredKeysToForm(['ssh-privatekey']);\n        this.state.isDockerConfig = false;\n        break;\n      case KubernetesSecretTypeOptions.TLS.value:\n        this.addRequiredKeysToForm(['tls.crt', 'tls.key']);\n        this.state.isDockerConfig = false;\n        break;\n      case KubernetesSecretTypeOptions.BOOTSTRAPTOKEN.value:\n        this.addRequiredKeysToForm(['token-id', 'token-secret']);\n        this.state.isDockerConfig = false;\n        break;\n      default:\n        this.state.isDockerConfig = false;\n        break;\n    }\n    this.isFormValid();\n  }\n\n  addRequiredKeysToForm(keys) {\n    // remove data entries that have an empty value\n    this.formValues.Data = this.formValues.Data.filter((entry) => entry.Value);\n\n    keys.forEach((key) => {\n      // if the key doesn't exist on the form, add a new formValues.Data entry\n      if (!this.formValues.Data.some((data) => data.Key === key)) {\n        this.formValues.Data.push(new KubernetesConfigurationFormValuesEntry());\n        const index = this.formValues.Data.length - 1;\n        this.formValues.Data[index].Key = key;\n      }\n    });\n  }\n\n  isFormValid() {\n    const [isValid, warningMessage] = isConfigurationFormValid(this.state.alreadyExist, this.state.isDataValid, this.formValues);\n    this.state.secretWarningMessage = warningMessage;\n    return isValid;\n  }\n\n  async createConfigurationAsync() {\n    try {\n      this.state.actionInProgress = true;\n      this.formValues.ConfigurationOwner = this.Authentication.getUserDetails().username;\n      if (!this.formValues.IsSimple) {\n        this.formValues.Data = KubernetesConfigurationHelper.parseYaml(this.formValues);\n      }\n\n      await this.KubernetesConfigurationService.create(this.formValues);\n\n      this.Notifications.success('Success', `Secret successfully created`);\n      this.state.isEditorDirty = false;\n      this.$state.go('kubernetes.configurations', { tab: 'secrets' });\n    } catch (err) {\n      this.Notifications.error('Failure', err, `Unable to create secret`);\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  createConfiguration() {\n    return this.$async(this.createConfigurationAsync);\n  }\n\n  async getConfigurationsAsync() {\n    try {\n      this.configurations = await this.KubernetesConfigurationService.get();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve Secrets');\n    }\n  }\n\n  getConfigurations() {\n    return this.$async(this.getConfigurationsAsync);\n  }\n\n  async uiCanExit() {\n    if (!this.formValues.IsSimple && this.formValues.DataYaml && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  async onInit() {\n    this.state = {\n      actionInProgress: false,\n      viewReady: false,\n      alreadyExist: false,\n      isDataValid: true,\n      isEditorDirty: false,\n      isDockerConfig: false,\n      secretWarningMessage: '',\n    };\n\n    this.formValues = new KubernetesConfigurationFormValues();\n    this.formValues.Kind = KubernetesConfigurationKinds.SECRET;\n    this.formValues.Data = [new KubernetesConfigurationFormValuesEntry()];\n\n    try {\n      const resourcePools = await this.KubernetesResourcePoolService.get();\n      this.resourcePools = _.filter(\n        resourcePools,\n        (resourcePool) => !KubernetesNamespaceHelper.isSystemNamespace(resourcePool.Namespace.Name) && resourcePool.Namespace.Status === 'Active'\n      );\n\n      this.formValues.ResourcePool = this.resourcePools[0];\n      await this.getConfigurations();\n\n      this.environmentId = this.EndpointProvider.endpointID();\n      this.availableServiceAccounts = await getServiceAccounts(this.environmentId, this.resourcePools[0].Namespace.Name);\n      this.formValues.ServiceAccountName = this.availableServiceAccounts.length > 0 ? this.availableServiceAccounts[0].metadata.name : '';\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load view data');\n    } finally {\n      this.state.viewReady = true;\n    }\n\n    this.$window.onbeforeunload = () => {\n      if (!this.formValues.IsSimple && this.formValues.DataYaml && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n}\n\nexport default KubernetesCreateSecretController;\nangular.module('portainer.kubernetes').controller('KubernetesCreateSecretController', KubernetesCreateSecretController);\n","const autoNgTemplateLoaderTemplate1 = require('./secret.html');\n\nangular.module('portainer.kubernetes').component('kubernetesSecretView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesSecretController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nimport { KubernetesConfigurationFormValues } from 'Kubernetes/models/configuration/formvalues';\nimport { KubernetesConfigurationKinds, KubernetesSecretTypeOptions } from 'Kubernetes/models/configuration/models';\nimport KubernetesConfigurationHelper from 'Kubernetes/helpers/configurationHelper';\nimport KubernetesConfigurationConverter from 'Kubernetes/converters/configuration';\nimport KubernetesEventHelper from 'Kubernetes/helpers/eventHelper';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\n\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { confirmUpdate, confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { isConfigurationFormValid } from '../../validation';\n\nclass KubernetesSecretController {\n  /* @ngInject */\n  constructor(\n    $async,\n    $state,\n    $window,\n    clipboard,\n    Notifications,\n    LocalStorage,\n    KubernetesConfigurationService,\n    KubernetesSecretService,\n    KubernetesResourcePoolService,\n    KubernetesApplicationService,\n    KubernetesEventService\n  ) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$window = $window;\n    this.clipboard = clipboard;\n    this.Notifications = Notifications;\n    this.LocalStorage = LocalStorage;\n    this.KubernetesConfigurationService = KubernetesConfigurationService;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesEventService = KubernetesEventService;\n    this.KubernetesConfigurationKinds = KubernetesConfigurationKinds;\n    this.KubernetesSecretTypeOptions = KubernetesSecretTypeOptions;\n    this.KubernetesSecretService = KubernetesSecretService;\n\n    this.onInit = this.onInit.bind(this);\n    this.getConfigurationAsync = this.getConfigurationAsync.bind(this);\n    this.getEvents = this.getEvents.bind(this);\n    this.getEventsAsync = this.getEventsAsync.bind(this);\n    this.getApplications = this.getApplications.bind(this);\n    this.getApplicationsAsync = this.getApplicationsAsync.bind(this);\n    this.updateConfiguration = this.updateConfiguration.bind(this);\n    this.updateConfigurationAsync = this.updateConfigurationAsync.bind(this);\n  }\n\n  isSystemNamespace() {\n    return KubernetesNamespaceHelper.isSystemNamespace(this.configuration.Namespace);\n  }\n\n  isSystemConfig() {\n    return this.isSystemNamespace() || this.configuration.IsRegistrySecret;\n  }\n\n  selectTab(index) {\n    this.LocalStorage.storeActiveTab('configuration', index);\n  }\n\n  showEditor() {\n    this.state.showEditorTab = true;\n    this.selectTab(2);\n  }\n\n  copyConfigurationValue(idx) {\n    this.clipboard.copyText(this.formValues.Data[idx].Value);\n    $('#copyValueNotification_' + idx)\n      .show()\n      .fadeOut(2500);\n  }\n\n  isFormValid() {\n    const [isValid, warningMessage] = isConfigurationFormValid(this.state.alreadyExist, this.state.isDataValid, this.formValues);\n    this.state.secretWarningMessage = warningMessage;\n    return isValid;\n  }\n\n  // TODO: refactor\n  // It looks like we're still doing a create/delete process but we've decided to get rid of this\n  // approach.\n  async updateConfigurationAsync() {\n    try {\n      this.state.actionInProgress = true;\n      if (\n        this.formValues.Kind !== this.configuration.Kind ||\n        this.formValues.ResourcePool.Namespace.Name !== this.configuration.Namespace ||\n        this.formValues.Name !== this.configuration.Name\n      ) {\n        await this.KubernetesConfigurationService.create(this.formValues);\n        await this.KubernetesConfigurationService.delete(this.configuration);\n        this.Notifications.success('Success', `Secret successfully updated`);\n        this.$state.go(\n          'kubernetes.secrets.secret',\n          {\n            namespace: this.formValues.ResourcePool.Namespace.Name,\n            name: this.formValues.Name,\n          },\n          { reload: true }\n        );\n      } else {\n        await this.KubernetesConfigurationService.update(this.formValues, this.configuration);\n        this.Notifications.success('Success', `Secret successfully updated`);\n        this.$state.reload(this.$state.current);\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, `Unable to update Secret`);\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  updateConfiguration() {\n    if (this.configuration.Used) {\n      confirmUpdate(\n        `The changes will be propagated to ${this.configuration.Applications.length} running ${pluralize(\n          this.configuration.Applications.length,\n          'application'\n        )}. Are you sure you want to update this Secret?`,\n        (confirmed) => {\n          if (confirmed) {\n            return this.$async(this.updateConfigurationAsync);\n          }\n        }\n      );\n    } else {\n      return this.$async(this.updateConfigurationAsync);\n    }\n  }\n\n  async getConfigurationAsync() {\n    try {\n      this.state.configurationLoading = true;\n      const name = this.$transition$.params().name;\n      const namespace = this.$transition$.params().namespace;\n      try {\n        const secret = await this.KubernetesSecretService.get(namespace, name);\n        this.configuration = KubernetesConfigurationConverter.secretToConfiguration(secret);\n        this.formValues.Data = secret.Data;\n      } catch (err) {\n        if (err.status === 403) {\n          this.$state.go('kubernetes.configurations', { tab: 'secrets' });\n          throw new Error('Not authorized to edit secret');\n        }\n      }\n      this.formValues.ResourcePool = _.find(this.resourcePools, (resourcePool) => resourcePool.Namespace.Name === this.configuration.Namespace);\n      this.formValues.Id = this.configuration.Id;\n      this.formValues.Name = this.configuration.Name;\n      this.formValues.Type = this.configuration.Type;\n      this.formValues.Kind = this.configuration.Kind;\n      this.oldDataYaml = this.formValues.DataYaml;\n      this.formValues.Labels = this.configuration.Labels;\n\n      return this.configuration;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve secret');\n    } finally {\n      this.state.configurationLoading = false;\n    }\n  }\n\n  getConfiguration() {\n    return this.$async(this.getConfigurationAsync);\n  }\n\n  async getApplicationsAsync(namespace) {\n    try {\n      this.state.applicationsLoading = true;\n      const applications = await this.KubernetesApplicationService.get(namespace);\n      this.configuration.Applications = KubernetesConfigurationHelper.getUsingApplications(this.configuration, applications);\n      KubernetesConfigurationHelper.setConfigurationUsed(this.configuration);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve applications');\n    } finally {\n      this.state.applicationsLoading = false;\n    }\n  }\n\n  getApplications(namespace) {\n    return this.$async(this.getApplicationsAsync, namespace);\n  }\n\n  hasEventWarnings() {\n    return this.state.eventWarningCount;\n  }\n\n  async getEventsAsync(namespace) {\n    try {\n      this.state.eventsLoading = true;\n      this.events = await this.KubernetesEventService.get(namespace);\n      this.events = _.filter(this.events, (event) => event.Involved.uid === this.configuration.Id);\n      this.state.eventWarningCount = KubernetesEventHelper.warningCount(this.events);\n    } catch (err) {\n      this.Notifications('Failure', err, 'Unable to retrieve events');\n    } finally {\n      this.state.eventsLoading = false;\n    }\n  }\n\n  getEvents(namespace) {\n    return this.$async(this.getEventsAsync, namespace);\n  }\n\n  tagUsedDataKeys() {\n    const configName = this.$transition$.params().name;\n    const usedDataKeys = _.uniq(\n      this.configuration.Applications.flatMap((app) =>\n        app.Env.filter((e) => e.valueFrom && e.valueFrom.configMapKeyRef && e.valueFrom.configMapKeyRef.name === configName).map((e) => e.name)\n      )\n    );\n\n    this.formValues.Data = this.formValues.Data.map((variable) => {\n      if (!usedDataKeys.includes(variable.Key)) {\n        return variable;\n      }\n\n      return { ...variable, Used: true };\n    });\n  }\n\n  async uiCanExit() {\n    if (!this.formValues.IsSimple && this.formValues.DataYaml !== this.oldDataYaml && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  async onInit() {\n    try {\n      this.state = {\n        actionInProgress: false,\n        configurationLoading: true,\n        applicationsLoading: true,\n        eventsLoading: true,\n        showEditorTab: false,\n        viewReady: false,\n        eventWarningCount: 0,\n        activeTab: 0,\n        currentName: this.$state.$current.name,\n        isDataValid: true,\n        isEditorDirty: false,\n        isDockerConfig: false,\n        secretWarningMessage: '',\n      };\n\n      this.state.activeTab = this.LocalStorage.getActiveTab('configuration');\n\n      this.formValues = new KubernetesConfigurationFormValues();\n\n      this.resourcePools = await this.KubernetesResourcePoolService.get();\n      const configuration = await this.getConfiguration();\n      if (configuration) {\n        await this.getApplications(this.configuration.Namespace);\n        await this.getEvents(this.configuration.Namespace);\n      }\n\n      // after loading the configuration, check if it is a docker config secret type\n      if (\n        this.formValues.Kind === this.KubernetesConfigurationKinds.SECRET &&\n        (this.formValues.Type === this.KubernetesSecretTypeOptions.DOCKERCONFIGJSON.value || this.formValues.Type === this.KubernetesSecretTypeOptions.DOCKERCFG.value)\n      ) {\n        this.state.isDockerConfig = true;\n      }\n      // convert the secret type to a human readable value\n      if (this.formValues.Type) {\n        const secretTypeValues = Object.values(this.KubernetesSecretTypeOptions);\n        const secretType = secretTypeValues.find((secretType) => secretType.value === this.formValues.Type);\n        this.secretTypeName = secretType ? secretType.name : this.formValues.Type;\n      } else {\n        this.secretTypeName = '';\n      }\n\n      if (this.formValues.Type === this.KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value) {\n        this.formValues.ServiceAccountName = configuration.ServiceAccountName;\n      }\n\n      this.tagUsedDataKeys();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load view data');\n    } finally {\n      this.state.viewReady = true;\n    }\n\n    this.$window.onbeforeunload = () => {\n      if (!this.formValues.IsSimple && this.formValues.DataYaml !== this.oldDataYaml && this.state.isEditorDirty) {\n        return '';\n      }\n    };\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    if (this.state.currentName !== this.$state.$current.name) {\n      this.LocalStorage.storeActiveTab('configuration', 0);\n    }\n    this.state.isEditorDirty = false;\n  }\n}\n\nexport default KubernetesSecretController;\nangular.module('portainer.kubernetes').controller('KubernetesSecretController', KubernetesSecretController);\n","import { KubernetesSecretTypeOptions } from '@/kubernetes/models/configuration/models';\nimport { KubernetesConfigurationKinds } from '@/kubernetes/models/configuration/models';\n\nexport function isConfigurationFormValid(alreadyExist, isDataValid, formValues) {\n  const uniqueCheck = !alreadyExist && isDataValid;\n  let secretWarningMessage = '';\n  let isFormValid = false;\n\n  if (formValues.IsSimple) {\n    if (formValues.Kind === KubernetesConfigurationKinds.SECRET) {\n      let isSecretDataValid = true;\n\n      switch (formValues.Type) {\n        case KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value:\n          // data isn't required for service account tokens\n          isFormValid = uniqueCheck && formValues.ResourcePool;\n          return [isFormValid, ''];\n        case KubernetesSecretTypeOptions.DOCKERCFG.value:\n          // needs to contain a .dockercfg key\n          isSecretDataValid = formValues.Data.some((entry) => entry.Key === '.dockercfg');\n          secretWarningMessage = isSecretDataValid ? '' : 'A data entry with a .dockercfg key is required.';\n          break;\n        case KubernetesSecretTypeOptions.DOCKERCONFIGJSON.value:\n          // needs to contain a .dockerconfigjson key\n          isSecretDataValid = formValues.Data.some((entry) => entry.Key === '.dockerconfigjson');\n          secretWarningMessage = isSecretDataValid ? '' : 'A data entry with a .dockerconfigjson key. is required.';\n          break;\n        case KubernetesSecretTypeOptions.BASICAUTH.value:\n          isSecretDataValid = formValues.Data.some((entry) => entry.Key === 'username' || entry.Key === 'password');\n          secretWarningMessage = isSecretDataValid ? '' : 'A data entry with a username or password key is required.';\n          break;\n        case KubernetesSecretTypeOptions.SSHAUTH.value:\n          isSecretDataValid = formValues.Data.some((entry) => entry.Key === 'ssh-privatekey');\n          secretWarningMessage = isSecretDataValid ? '' : `A data entry with a 'ssh-privatekey' key is required.`;\n          break;\n        case KubernetesSecretTypeOptions.TLS.value:\n          isSecretDataValid = formValues.Data.some((entry) => entry.Key === 'tls.crt') && formValues.Data.some((entry) => entry.Key === 'tls.key');\n          secretWarningMessage = isSecretDataValid ? '' : `Data entries containing a 'tls.crt' key and a 'tls.key' key are required.`;\n          break;\n        case KubernetesSecretTypeOptions.BOOTSTRAPTOKEN.value:\n          isSecretDataValid = formValues.Data.some((entry) => entry.Key === 'token-id') && formValues.Data.some((entry) => entry.Key === 'token-secret');\n          secretWarningMessage = isSecretDataValid ? '' : `Data entries containing a 'token-id' key and a 'token-secret' key are required.`;\n          break;\n        default:\n          break;\n      }\n\n      isFormValid = uniqueCheck && formValues.ResourcePool && formValues.Data.length >= 1 && isSecretDataValid;\n      return [isFormValid, secretWarningMessage];\n    }\n\n    isFormValid = formValues.Data.length > 0 && uniqueCheck && formValues.ResourcePool;\n    return [isFormValid, secretWarningMessage];\n  }\n\n  isFormValid = uniqueCheck && formValues.ResourcePool;\n  return [isFormValid, secretWarningMessage];\n}\n","const autoNgTemplateLoaderTemplate1 = require('./deploy.html');\n\nangular.module('portainer.kubernetes').component('kubernetesDeployView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesDeployController',\n  controllerAs: 'ctrl',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport stripAnsi from 'strip-ansi';\n\nimport PortainerError from '@/portainer/error';\nimport { KubernetesDeployManifestTypes, KubernetesDeployBuildMethods, KubernetesDeployRequestMethods, RepositoryMechanismTypes } from 'Kubernetes/models/deploy';\nimport { isTemplateVariablesEnabled, renderTemplate } from '@/react/portainer/custom-templates/components/utils';\nimport { getDeploymentOptions } from '@/react/portainer/environments/environment.service';\nimport { kubernetes } from '@@/BoxSelector/common-options/deployment-methods';\nimport { editor, git, customTemplate, url, helm } from '@@/BoxSelector/common-options/build-methods';\nimport { parseAutoUpdateResponse, transformAutoUpdateViewModel } from '@/react/portainer/gitops/AutoUpdateFieldset/utils';\nimport { baseStackWebhookUrl, createWebhookId } from '@/portainer/helpers/webhookHelper';\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { getVariablesFieldDefaultValues } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesField';\nimport { KUBE_STACK_NAME_VALIDATION_REGEX } from '@/react/kubernetes/DeployView/StackName/constants';\n\nclass KubernetesDeployController {\n  /* @ngInject */\n  constructor($async, $state, $window, Authentication, Notifications, KubernetesResourcePoolService, StackService, CustomTemplateService, KubernetesApplicationService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$window = $window;\n    this.Authentication = Authentication;\n    this.Notifications = Notifications;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.StackService = StackService;\n    this.CustomTemplateService = CustomTemplateService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n\n    this.isTemplateVariablesEnabled = isTemplateVariablesEnabled;\n\n    this.deployOptions = [{ ...kubernetes, value: KubernetesDeployManifestTypes.KUBERNETES }];\n\n    this.methodOptions = [\n      { ...git, value: KubernetesDeployBuildMethods.GIT },\n      { ...editor, value: KubernetesDeployBuildMethods.WEB_EDITOR },\n      { ...url, value: KubernetesDeployBuildMethods.URL },\n      { ...customTemplate, value: KubernetesDeployBuildMethods.CUSTOM_TEMPLATE },\n      { ...helm, value: KubernetesDeployBuildMethods.HELM },\n    ];\n\n    let buildMethod = Number(this.$state.params.buildMethod) || KubernetesDeployBuildMethods.GIT;\n    if (buildMethod > Object.keys(KubernetesDeployBuildMethods).length) {\n      buildMethod = KubernetesDeployBuildMethods.GIT;\n    }\n\n    this.state = {\n      DeployType: buildMethod,\n      BuildMethod: KubernetesDeployBuildMethods.GIT,\n      tabLogsDisabled: true,\n      activeTab: 0,\n      viewReady: false,\n      isEditorDirty: false,\n      templateId: null,\n      template: null,\n      baseWebhookUrl: baseStackWebhookUrl(),\n      webhookId: createWebhookId(),\n      templateLoadFailed: false,\n      isEditorReadOnly: false,\n      selectedHelmChart: '',\n      stackNameError: '',\n    };\n\n    this.currentUser = {\n      isAdmin: false,\n      id: null,\n    };\n\n    this.formValues = {\n      StackName: '',\n      RepositoryURL: '',\n      RepositoryReferenceName: '',\n      RepositoryAuthentication: false,\n      RepositoryUsername: '',\n      RepositoryPassword: '',\n      AdditionalFiles: [],\n      ComposeFilePathInRepository: '',\n      Variables: [],\n      AutoUpdate: parseAutoUpdateResponse(),\n      TLSSkipVerify: false,\n      Name: '',\n    };\n\n    this.stacks = [];\n\n    this.ManifestDeployTypes = KubernetesDeployManifestTypes;\n    this.BuildMethods = KubernetesDeployBuildMethods;\n\n    this.onSelectHelmChart = this.onSelectHelmChart.bind(this);\n    this.onChangeTemplateId = this.onChangeTemplateId.bind(this);\n    this.deployAsync = this.deployAsync.bind(this);\n    this.onChangeFileContent = this.onChangeFileContent.bind(this);\n    this.getNamespacesAsync = this.getNamespacesAsync.bind(this);\n    this.onChangeFormValues = this.onChangeFormValues.bind(this);\n    this.buildAnalyticsProperties = this.buildAnalyticsProperties.bind(this);\n    this.onChangeMethod = this.onChangeMethod.bind(this);\n    this.onChangeDeployType = this.onChangeDeployType.bind(this);\n    this.onChangeTemplateVariables = this.onChangeTemplateVariables.bind(this);\n    this.setStackName = this.setStackName.bind(this);\n    this.onChangeNamespace = this.onChangeNamespace.bind(this);\n  }\n\n  onChangeNamespace() {\n    return this.$async(async () => {\n      const applications = await this.KubernetesApplicationService.get(this.formValues.Namespace);\n      const stacks = _.map(applications, (item) => item.StackName).filter((item) => item !== '');\n      this.stacks = _.uniq(stacks);\n    });\n  }\n\n  onSelectHelmChart(chart) {\n    this.state.selectedHelmChart = chart;\n  }\n\n  onChangeTemplateVariables(value) {\n    this.onChangeFormValues({ Variables: value });\n\n    this.renderTemplate();\n  }\n\n  setStackName(name) {\n    return this.$async(async () => {\n      if (KUBE_STACK_NAME_VALIDATION_REGEX.test(name) || name === '') {\n        this.state.stackNameError = '';\n      } else {\n        this.state.stackNameError =\n          \"Stack must consist of alphanumeric characters, '-', '_' or '.', must start and end with an alphanumeric character and must be 63 characters or less (e.g. 'my-name', or 'abc-123').\";\n      }\n\n      this.formValues.StackName = name;\n    });\n  }\n\n  renderTemplate() {\n    if (!this.isTemplateVariablesEnabled) {\n      return;\n    }\n\n    const rendered = renderTemplate(this.state.templateContent, this.formValues.Variables, this.state.template.Variables);\n    this.onChangeFormValues({ EditorContent: rendered });\n  }\n\n  buildAnalyticsProperties() {\n    const metadata = {\n      type: buildLabel(this.state.BuildMethod),\n      format: formatLabel(this.state.DeployType),\n      role: roleLabel(this.currentUser.isAdmin),\n      'automatic-updates': automaticUpdatesLabel(this.formValues.RepositoryAutomaticUpdates, this.formValues.RepositoryMechanism),\n    };\n\n    if (this.state.BuildMethod === KubernetesDeployBuildMethods.GIT) {\n      metadata.auth = this.formValues.RepositoryAuthentication;\n    }\n\n    return { metadata };\n\n    function automaticUpdatesLabel(repositoryAutomaticUpdates, repositoryMechanism) {\n      switch (repositoryAutomaticUpdates && repositoryMechanism) {\n        case RepositoryMechanismTypes.INTERVAL:\n          return 'polling';\n        case RepositoryMechanismTypes.WEBHOOK:\n          return 'webhook';\n        default:\n          return 'off';\n      }\n    }\n\n    function roleLabel(isAdmin) {\n      if (isAdmin) {\n        return 'admin';\n      }\n\n      return 'standard';\n    }\n\n    function buildLabel(buildMethod) {\n      switch (buildMethod) {\n        case KubernetesDeployBuildMethods.GIT:\n          return 'git';\n        case KubernetesDeployBuildMethods.WEB_EDITOR:\n          return 'web-editor';\n      }\n    }\n\n    function formatLabel(format) {\n      switch (format) {\n        case KubernetesDeployManifestTypes.COMPOSE:\n          return 'compose';\n        case KubernetesDeployManifestTypes.KUBERNETES:\n          return 'manifest';\n      }\n    }\n  }\n\n  onChangeMethod(method) {\n    return this.$async(async () => {\n      this.state.BuildMethod = method;\n    });\n  }\n\n  onChangeDeployType(type) {\n    return this.$async(async () => {\n      this.state.DeployType = type;\n    });\n  }\n\n  disableDeploy() {\n    const isWebEditorInvalid = this.state.BuildMethod === KubernetesDeployBuildMethods.WEB_EDITOR && _.isEmpty(this.formValues.EditorContent);\n    const isURLFormInvalid = this.state.BuildMethod === KubernetesDeployBuildMethods.URL && _.isEmpty(this.formValues.ManifestURL);\n    const isCustomTemplateInvalid = this.state.BuildMethod === KubernetesDeployBuildMethods.CUSTOM_TEMPLATE && _.isEmpty(this.formValues.EditorContent);\n    const isStackNameInvalid = this.state.stackNameError !== '';\n    const isNamespaceInvalid = _.isEmpty(this.formValues.Namespace);\n    return isWebEditorInvalid || isURLFormInvalid || isCustomTemplateInvalid || this.state.actionInProgress || isNamespaceInvalid || isStackNameInvalid;\n  }\n\n  onChangeFormValues(newValues) {\n    return this.$async(async () => {\n      this.formValues = {\n        ...this.formValues,\n        ...newValues,\n      };\n    });\n  }\n\n  onChangeTemplateId(templateId, template) {\n    return this.$async(async () => {\n      if (!template || (this.state.templateId === templateId && this.state.template === template)) {\n        return;\n      }\n\n      this.state.templateId = templateId;\n      this.state.template = template;\n\n      try {\n        try {\n          this.state.templateContent = await this.CustomTemplateService.customTemplateFile(templateId, template.GitConfig !== null);\n          this.onChangeFileContent(this.state.templateContent);\n\n          this.state.isEditorReadOnly = false;\n        } catch (err) {\n          this.state.templateLoadFailed = true;\n          throw err;\n        }\n\n        if (template.Variables && template.Variables.length > 0) {\n          const variables = getVariablesFieldDefaultValues(template.Variables);\n          this.onChangeTemplateVariables(variables);\n        }\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to load template file');\n      }\n    });\n  }\n\n  onChangeFileContent(value) {\n    this.formValues.EditorContent = value;\n    this.state.isEditorDirty = true;\n  }\n\n  displayErrorLog(log) {\n    this.errorLog = stripAnsi(log);\n    this.state.tabLogsDisabled = false;\n    this.state.activeTab = 1;\n  }\n\n  async deployAsync() {\n    this.errorLog = '';\n    this.state.actionInProgress = true;\n\n    try {\n      let method;\n      let composeFormat = this.state.DeployType === this.ManifestDeployTypes.COMPOSE;\n\n      switch (this.state.BuildMethod) {\n        case this.BuildMethods.GIT:\n          method = KubernetesDeployRequestMethods.REPOSITORY;\n          break;\n        case this.BuildMethods.WEB_EDITOR:\n          method = KubernetesDeployRequestMethods.STRING;\n          break;\n        case KubernetesDeployBuildMethods.CUSTOM_TEMPLATE:\n          method = KubernetesDeployRequestMethods.STRING;\n          composeFormat = false;\n          break;\n        case this.BuildMethods.URL:\n          method = KubernetesDeployRequestMethods.URL;\n          break;\n        default:\n          throw new PortainerError('Unable to determine build method');\n      }\n\n      let deployNamespace = '';\n\n      if (this.formValues.namespace_toggle) {\n        deployNamespace = '';\n      } else {\n        deployNamespace = this.formValues.Namespace;\n      }\n\n      const payload = {\n        ComposeFormat: composeFormat,\n        Namespace: deployNamespace,\n        StackName: this.formValues.StackName,\n      };\n\n      if (method === KubernetesDeployRequestMethods.REPOSITORY) {\n        payload.TLSSkipVerify = this.formValues.TLSSkipVerify;\n        payload.RepositoryURL = this.formValues.RepositoryURL;\n        payload.RepositoryReferenceName = this.formValues.RepositoryReferenceName;\n        payload.RepositoryAuthentication = this.formValues.RepositoryAuthentication ? true : false;\n        if (payload.RepositoryAuthentication) {\n          payload.RepositoryUsername = this.formValues.RepositoryUsername;\n          payload.RepositoryPassword = this.formValues.RepositoryPassword;\n        }\n        payload.ManifestFile = this.formValues.ComposeFilePathInRepository;\n        payload.AdditionalFiles = this.formValues.AdditionalFiles;\n        payload.AutoUpdate = transformAutoUpdateViewModel(this.formValues.AutoUpdate, this.state.webhookId);\n      } else if (method === KubernetesDeployRequestMethods.STRING) {\n        payload.StackFileContent = this.formValues.EditorContent;\n      } else {\n        payload.ManifestURL = this.formValues.ManifestURL;\n      }\n\n      await this.StackService.kubernetesDeploy(this.endpoint.Id, method, payload);\n\n      this.Notifications.success('Success', 'Request to deploy manifest successfully submitted');\n      this.state.isEditorDirty = false;\n\n      if (this.$state.params.referrer && this.$state.params.tab) {\n        this.$state.go(this.$state.params.referrer, { tab: this.$state.params.tab });\n        return;\n      }\n\n      if (this.$state.params.referrer) {\n        this.$state.go(this.$state.params.referrer);\n        return;\n      }\n\n      this.$state.go('kubernetes.applications');\n    } catch (err) {\n      this.Notifications.error('Unable to deploy manifest', err, 'Unable to deploy resources');\n      this.displayErrorLog(err.err.data.details);\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  deploy() {\n    return this.$async(this.deployAsync);\n  }\n\n  async getNamespacesAsync() {\n    try {\n      const pools = await this.KubernetesResourcePoolService.get();\n      let namespaces = pools.filter((pool) => pool.Namespace.Status === 'Active');\n      namespaces = _.map(namespaces, 'Namespace').sort((a, b) => {\n        if (a.Name === 'default') {\n          return -1;\n        }\n        if (b.Name === 'default') {\n          return 1;\n        }\n        return 0;\n      });\n\n      this.namespaces = namespaces;\n      if (this.namespaces.length > 0) {\n        this.formValues.Namespace = this.namespaces[0].Name;\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load namespaces data');\n    }\n  }\n\n  getNamespaces() {\n    return this.$async(this.getNamespacesAsync);\n  }\n\n  async uiCanExit() {\n    if (this.formValues.EditorContent && this.state.isEditorDirty) {\n      return confirmWebEditorDiscard();\n    }\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.currentUser.isAdmin = this.Authentication.isAdmin();\n      this.currentUser.id = this.Authentication.getUserDetails().ID;\n\n      this.formValues.namespace_toggle = false;\n      await this.getNamespaces();\n\n      this.deploymentOptions = await getDeploymentOptions(this.endpoint.Id);\n\n      if (this.$state.params.templateId) {\n        const templateId = parseInt(this.$state.params.templateId, 10);\n        if (templateId && !Number.isNaN(templateId)) {\n          this.state.BuildMethod = KubernetesDeployBuildMethods.CUSTOM_TEMPLATE;\n          this.state.templateId = templateId;\n        }\n      }\n\n      this.onChangeNamespace();\n      this.state.viewReady = true;\n\n      this.$window.onbeforeunload = () => {\n        if (this.formValues.EditorContent && this.state.isEditorDirty) {\n          return '';\n        }\n      };\n    });\n  }\n\n  $onDestroy() {\n    this.state.isEditorDirty = false;\n  }\n}\n\nexport default KubernetesDeployController;\nangular.module('portainer.kubernetes').controller('KubernetesDeployController', KubernetesDeployController);\n","const autoNgTemplateLoaderTemplate1 = require('./resourcePoolAccess.html');\n\nangular.module('portainer.kubernetes').component('kubernetesResourcePoolAccessView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesResourcePoolAccessController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n    endpoint: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport { KubernetesPortainerConfigMapConfigName, KubernetesPortainerConfigMapNamespace, KubernetesPortainerConfigMapAccessKey } from 'Kubernetes/models/config-map/models';\nimport { UserAccessViewModel, TeamAccessViewModel } from 'Portainer/models/access';\nimport KubernetesConfigMapHelper from 'Kubernetes/helpers/configMapHelper';\nimport { getIsRBACEnabled } from '@/react/kubernetes/cluster/getIsRBACEnabled';\n\nclass KubernetesResourcePoolAccessController {\n  /* @ngInject */\n  constructor($async, $state, $scope, Notifications, KubernetesResourcePoolService, KubernetesConfigMapService, GroupService, AccessService, EndpointProvider) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$scope = $scope;\n    this.EndpointProvider = EndpointProvider;\n    this.Notifications = Notifications;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesConfigMapService = KubernetesConfigMapService;\n\n    this.GroupService = GroupService;\n    this.AccessService = AccessService;\n\n    this.onInit = this.onInit.bind(this);\n    this.authorizeAccessAsync = this.authorizeAccessAsync.bind(this);\n    this.unauthorizeAccessAsync = this.unauthorizeAccessAsync.bind(this);\n    this.onUsersAndTeamsChange = this.onUsersAndTeamsChange.bind(this);\n    this.unauthorizeAccess = this.unauthorizeAccess.bind(this);\n  }\n\n  initAccessConfigMap(configMap) {\n    configMap.Name = KubernetesPortainerConfigMapConfigName;\n    configMap.Namespace = KubernetesPortainerConfigMapNamespace;\n    configMap.Data[KubernetesPortainerConfigMapAccessKey] = {};\n    return configMap;\n  }\n\n  /**\n   * Init\n   */\n  async onInit() {\n    const endpoint = this.endpoint;\n    this.state = {\n      actionInProgress: false,\n      viewReady: false,\n    };\n\n    this.formValues = {\n      multiselectOutput: [],\n    };\n\n    // default to true if error is thrown\n    this.isRBACEnabled = true;\n\n    try {\n      const name = this.$transition$.params().id;\n      let [pool, configMap] = await Promise.all([\n        this.KubernetesResourcePoolService.get(name),\n        this.KubernetesConfigMapService.getAccess(KubernetesPortainerConfigMapNamespace, KubernetesPortainerConfigMapConfigName),\n      ]);\n      this.isRBACEnabled = await getIsRBACEnabled(this.EndpointProvider.endpointID());\n      const group = await this.GroupService.group(endpoint.GroupId);\n      const roles = [];\n      const endpointAccesses = await this.AccessService.accesses(endpoint, group, roles);\n      this.pool = pool;\n      if (configMap.Id === 0) {\n        configMap = this.initAccessConfigMap(configMap);\n      }\n      configMap = KubernetesConfigMapHelper.parseJSONData(configMap);\n\n      this.authorizedUsersAndTeams = [];\n      this.accessConfigMap = configMap;\n      const poolAccesses = configMap.Data[KubernetesPortainerConfigMapAccessKey][name];\n      if (poolAccesses) {\n        this.authorizedUsersAndTeams = _.filter(endpointAccesses.authorizedUsersAndTeams, (item) => {\n          if (item instanceof UserAccessViewModel && poolAccesses.UserAccessPolicies) {\n            return poolAccesses.UserAccessPolicies[item.Id] !== undefined;\n          } else if (item instanceof TeamAccessViewModel && poolAccesses.TeamAccessPolicies) {\n            return poolAccesses.TeamAccessPolicies[item.Id] !== undefined;\n          }\n          return false;\n        });\n      }\n\n      this.availableUsersAndTeams = _.without(endpointAccesses.authorizedUsersAndTeams, ...this.authorizedUsersAndTeams);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve namespace information');\n    } finally {\n      this.state.viewReady = true;\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  /**\n   * Authorize access\n   */\n  async authorizeAccessAsync() {\n    try {\n      this.state.actionInProgress = true;\n      const newAccesses = _.concat(this.authorizedUsersAndTeams, this.formValues.multiselectOutput);\n      const accessConfigMap = KubernetesConfigMapHelper.modifiyNamespaceAccesses(angular.copy(this.accessConfigMap), this.pool.Namespace.Name, newAccesses);\n      await this.KubernetesConfigMapService.updateAccess(accessConfigMap);\n      this.Notifications.success('Success', 'Access successfully created');\n      this.$state.reload(this.$state.current);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to create accesses');\n    }\n  }\n\n  onUsersAndTeamsChange(value) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.multiselectOutput = value;\n    });\n  }\n\n  authorizeAccess() {\n    return this.$async(this.authorizeAccessAsync);\n  }\n\n  /**\n   *\n   */\n  async unauthorizeAccessAsync(selectedItems) {\n    try {\n      this.state.actionInProgress = true;\n      const newAccesses = _.without(this.authorizedUsersAndTeams, ...selectedItems);\n      const accessConfigMap = KubernetesConfigMapHelper.modifiyNamespaceAccesses(angular.copy(this.accessConfigMap), this.pool.Namespace.Name, newAccesses);\n      await this.KubernetesConfigMapService.updateAccess(accessConfigMap);\n      this.Notifications.success('Success', 'Access successfully removed');\n      this.$state.reload(this.$state.current);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to remove accesses');\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  unauthorizeAccess(selectedItems) {\n    return this.$async(this.unauthorizeAccessAsync, selectedItems);\n  }\n}\n\nexport default KubernetesResourcePoolAccessController;\nangular.module('portainer.kubernetes').controller('KubernetesResourcePoolAccessController', KubernetesResourcePoolAccessController);\n","const autoNgTemplateLoaderTemplate1 = require('./storage-class-switch.html');\n\nimport angular from 'angular';\nimport controller from './storage-class-switch.controller.js';\n\nexport const storageClassSwitch = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    value: '<',\n    onChange: '<',\n    name: '<',\n  },\n};\n\nangular.module('portainer.kubernetes').component('storageClassSwitch', storageClassSwitch);\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nclass StorageClassSwitchController {\n  /* @ngInject */\n  constructor() {\n    this.featureId = FeatureId.K8S_RESOURCE_POOL_STORAGE_QUOTA;\n\n    this.handleChange = this.handleChange.bind(this);\n  }\n\n  handleChange(value) {\n    this.onChange(this.name, value);\n  }\n}\n\nexport default StorageClassSwitchController;\n","import _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport { KubernetesResourceQuotaDefaults } from 'Kubernetes/models/resource-quota/models';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesResourcePoolFormValues, KubernetesResourcePoolIngressClassHostFormValue } from 'Kubernetes/models/resource-pool/formValues';\nimport { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';\nimport { KubernetesFormValidationReferences } from 'Kubernetes/models/application/formValues';\nimport { KubernetesIngressClassTypes } from 'Kubernetes/ingress/constants';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { getIngressControllerClassMap, updateIngressControllerClassMap } from '@/react/kubernetes/cluster/ingressClass/useIngressControllerClassMap';\n\nclass KubernetesCreateResourcePoolController {\n  /* #region  CONSTRUCTOR */\n  /* @ngInject */\n  constructor($async, $state, $scope, Notifications, KubernetesNodeService, KubernetesResourcePoolService, KubernetesIngressService, Authentication, EndpointService) {\n    Object.assign(this, {\n      $async,\n      $state,\n      $scope,\n      Notifications,\n      KubernetesNodeService,\n      KubernetesResourcePoolService,\n      KubernetesIngressService,\n      Authentication,\n      EndpointService,\n    });\n\n    this.IngressClassTypes = KubernetesIngressClassTypes;\n    this.EndpointService = EndpointService;\n    this.LBQuotaFeatureId = FeatureId.K8S_RESOURCE_POOL_LB_QUOTA;\n\n    this.onToggleStorageQuota = this.onToggleStorageQuota.bind(this);\n    this.onToggleLoadBalancerQuota = this.onToggleLoadBalancerQuota.bind(this);\n    this.onToggleResourceQuota = this.onToggleResourceQuota.bind(this);\n    this.onChangeIngressControllerAvailability = this.onChangeIngressControllerAvailability.bind(this);\n    this.onRegistriesChange = this.onRegistriesChange.bind(this);\n    this.handleMemoryLimitChange = this.handleMemoryLimitChange.bind(this);\n    this.handleCpuLimitChange = this.handleCpuLimitChange.bind(this);\n  }\n  /* #endregion */\n\n  onRegistriesChange(registries) {\n    return this.$scope.$evalAsync(() => {\n      this.formValues.Registries = registries;\n    });\n  }\n\n  onToggleStorageQuota(storageClassName, enabled) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.StorageClasses = this.formValues.StorageClasses.map((sClass) => (sClass.Name !== storageClassName ? sClass : { ...sClass, Selected: enabled }));\n    });\n  }\n\n  onToggleLoadBalancerQuota(enabled) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.UseLoadBalancersQuota = enabled;\n    });\n  }\n\n  onToggleResourceQuota(enabled) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.HasQuota = enabled;\n    });\n  }\n\n  /* #region  INGRESS MANAGEMENT */\n  onChangeIngressControllerAvailability(controllerClassMap) {\n    this.ingressControllers = controllerClassMap;\n  }\n  /* #endregion */\n\n  isCreateButtonDisabled() {\n    return (\n      this.state.actionInProgress ||\n      (this.formValues.HasQuota && !this.isQuotaValid()) ||\n      this.state.isAlreadyExist ||\n      this.state.hasPrefixKube ||\n      this.state.duplicates.ingressHosts.hasRefs\n    );\n  }\n\n  onChangeName() {\n    this.state.isAlreadyExist = _.find(this.resourcePools, (resourcePool) => resourcePool.Namespace.Name === this.formValues.Name) !== undefined;\n    this.state.hasPrefixKube = /^kube-/.test(this.formValues.Name);\n  }\n\n  isQuotaValid() {\n    if (\n      this.state.sliderMaxCpu < this.formValues.CpuLimit ||\n      this.state.sliderMaxMemory < this.formValues.MemoryLimit ||\n      (this.formValues.CpuLimit === 0 && this.formValues.MemoryLimit === 0)\n    ) {\n      return false;\n    }\n    return true;\n  }\n\n  checkDefaults() {\n    if (this.formValues.CpuLimit < this.defaults.CpuLimit) {\n      this.formValues.CpuLimit = this.defaults.CpuLimit;\n    }\n    if (this.formValues.MemoryLimit < KubernetesResourceReservationHelper.megaBytesValue(this.defaults.MemoryLimit)) {\n      this.formValues.MemoryLimit = KubernetesResourceReservationHelper.megaBytesValue(this.defaults.MemoryLimit);\n    }\n  }\n\n  handleMemoryLimitChange(memoryLimit) {\n    return this.$async(async () => {\n      this.formValues.MemoryLimit = memoryLimit;\n    });\n  }\n\n  handleCpuLimitChange(cpuLimit) {\n    return this.$async(async () => {\n      this.formValues.CpuLimit = cpuLimit;\n    });\n  }\n\n  /* #region  CREATE NAMESPACE */\n  createResourcePool() {\n    return this.$async(async () => {\n      this.state.actionInProgress = true;\n      try {\n        this.checkDefaults();\n        this.formValues.Owner = this.Authentication.getUserDetails().username;\n        await this.KubernetesResourcePoolService.create(this.formValues);\n        await updateIngressControllerClassMap(this.endpoint.Id, this.ingressControllers || [], this.formValues.Name);\n        this.Notifications.success('Namespace successfully created', this.formValues.Name);\n        this.$state.go('kubernetes.resourcePools');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to create namespace');\n      } finally {\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  GET INGRESSES */\n  getIngresses() {\n    return this.$async(async () => {\n      try {\n        this.allIngresses = await this.KubernetesIngressService.get();\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve ingresses.');\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  GET NAMESPACES */\n  getResourcePools() {\n    return this.$async(async () => {\n      try {\n        this.resourcePools = await this.KubernetesResourcePoolService.get('', { getQuota: true });\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve namespaces');\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  GET REGISTRIES */\n  getRegistries() {\n    return this.$async(async () => {\n      try {\n        this.registries = await this.EndpointService.registries(this.endpoint.Id);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registries');\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  ON INIT */\n  $onInit() {\n    return this.$async(async () => {\n      try {\n        const endpoint = await this.EndpointService.endpoint(this.endpoint.Id);\n        this.defaults = KubernetesResourceQuotaDefaults;\n        this.formValues = new KubernetesResourcePoolFormValues(this.defaults);\n        this.formValues.EndpointId = this.endpoint.Id;\n        this.formValues.HasQuota = false;\n\n        this.state = {\n          actionInProgress: false,\n          sliderMaxMemory: 0,\n          sliderMaxCpu: 0,\n          viewReady: false,\n          isAlreadyExist: false,\n          hasPrefixKube: false,\n          canUseIngress: false,\n          duplicates: {\n            ingressHosts: new KubernetesFormValidationReferences(),\n          },\n          isAdmin: this.Authentication.isAdmin(),\n          ingressAvailabilityPerNamespace: endpoint.Kubernetes.Configuration.IngressAvailabilityPerNamespace,\n        };\n\n        const nodes = await this.KubernetesNodeService.get();\n\n        this.ingressControllers = [];\n        if (this.state.ingressAvailabilityPerNamespace) {\n          this.ingressControllers = await getIngressControllerClassMap({ environmentId: this.endpoint.Id, allowedOnly: true });\n          this.initialIngressControllers = structuredClone(this.ingressControllers);\n        }\n\n        _.forEach(nodes, (item) => {\n          this.state.sliderMaxMemory += filesizeParser(item.Memory);\n          this.state.sliderMaxCpu += item.CPU;\n        });\n        this.state.sliderMaxMemory = KubernetesResourceReservationHelper.megaBytesValue(this.state.sliderMaxMemory);\n        await this.getResourcePools();\n        if (this.state.canUseIngress) {\n          await this.getIngresses();\n          const ingressClasses = endpoint.Kubernetes.Configuration.IngressClasses;\n          this.formValues.IngressClasses = KubernetesIngressConverter.ingressClassesToFormValues(ingressClasses);\n        }\n        _.forEach(this.formValues.IngressClasses, (ic) => {\n          if (ic.Hosts.length === 0) {\n            ic.Hosts.push(new KubernetesResourcePoolIngressClassHostFormValue());\n          }\n        });\n\n        await this.getRegistries();\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to load view data');\n      } finally {\n        this.state.viewReady = true;\n      }\n    });\n  }\n  /* #endregion */\n}\n\nexport default KubernetesCreateResourcePoolController;\n","import _ from 'lodash-es';\n\nangular.module('portainer.kubernetes').controller('KubernetesResourcePoolIngressesDatatableController', function ($scope, $controller, DatatableService) {\n  angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n  this.state = Object.assign(this.state, {\n    expandedItems: [],\n    expandAll: false,\n  });\n\n  this.onSettingsRepeaterChange = function () {\n    DatatableService.setDataTableSettings(this.tableKey, this.settings);\n  };\n\n  this.expandItem = function (item, expanded) {\n    if (!this.itemCanExpand(item)) {\n      return;\n    }\n\n    item.Expanded = expanded;\n    if (!expanded) {\n      item.Highlighted = false;\n    }\n  };\n\n  this.itemCanExpand = function (item) {\n    return item.Paths.length > 0;\n  };\n\n  this.hasExpandableItems = function () {\n    return _.filter(this.state.filteredDataSet, (item) => this.itemCanExpand(item)).length;\n  };\n\n  this.expandAll = function () {\n    this.state.expandAll = !this.state.expandAll;\n    _.forEach(this.state.filteredDataSet, (item) => {\n      if (this.itemCanExpand(item)) {\n        this.expandItem(item, this.state.expandAll);\n      }\n    });\n  };\n\n  this.$onInit = function () {\n    this.setDefaults();\n    this.prepareTableFromDataset();\n\n    this.state.orderBy = this.orderBy;\n    var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n    if (storedOrder !== null) {\n      this.state.reverseOrder = storedOrder.reverse;\n      this.state.orderBy = storedOrder.orderBy;\n    }\n\n    var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n    if (textFilter !== null) {\n      this.state.textFilter = textFilter;\n      this.onTextFilterChange();\n    }\n\n    var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n    if (storedFilters !== null) {\n      this.filters = storedFilters;\n    }\n    if (this.filters && this.filters.state) {\n      this.filters.state.open = false;\n    }\n\n    var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n    if (storedSettings !== null) {\n      this.settings = storedSettings;\n      this.settings.open = false;\n    }\n    this.onSettingsRepeaterChange();\n  };\n});\n","const autoNgTemplateLoaderTemplate1 = require('./template.html');\n\nangular.module('portainer.kubernetes').component('kubernetesResourcePoolIngressesDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesResourcePoolIngressesDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    refreshCallback: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./resourcePool.html');\n\nangular.module('portainer.kubernetes').component('kubernetesResourcePoolView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesResourcePoolController',\n  controllerAs: 'ctrl',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport { KubernetesResourceQuotaDefaults } from 'Kubernetes/models/resource-quota/models';\nimport KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';\nimport { KubernetesResourceReservation } from 'Kubernetes/models/resource-reservation/models';\nimport KubernetesEventHelper from 'Kubernetes/helpers/eventHelper';\n\nimport { KubernetesResourcePoolFormValues, KubernetesResourcePoolIngressClassHostFormValue } from 'Kubernetes/models/resource-pool/formValues';\nimport { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';\nimport { KubernetesFormValidationReferences } from 'Kubernetes/models/application/formValues';\nimport { KubernetesIngressClassTypes } from 'Kubernetes/ingress/constants';\nimport KubernetesResourceQuotaConverter from 'Kubernetes/converters/resourceQuota';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { updateIngressControllerClassMap, getIngressControllerClassMap } from '@/react/kubernetes/cluster/ingressClass/useIngressControllerClassMap';\nimport { confirmUpdate } from '@@/modals/confirm';\nimport { confirmUpdateNamespace } from '@/react/kubernetes/namespaces/ItemView/ConfirmUpdateNamespace';\nimport { getMetricsForAllPods } from '@/react/kubernetes/services/service.ts';\n\nclass KubernetesResourcePoolController {\n  /* #region  CONSTRUCTOR */\n  /* @ngInject */\n  constructor(\n    $async,\n    $state,\n    $scope,\n    Authentication,\n    Notifications,\n    LocalStorage,\n    EndpointService,\n    KubernetesResourceQuotaService,\n    KubernetesResourcePoolService,\n    KubernetesEventService,\n    KubernetesPodService,\n    KubernetesApplicationService,\n    KubernetesIngressService,\n    KubernetesVolumeService,\n    KubernetesNamespaceService,\n    KubernetesNodeService\n  ) {\n    Object.assign(this, {\n      $async,\n      $state,\n      $scope,\n      Authentication,\n      Notifications,\n      LocalStorage,\n      EndpointService,\n      KubernetesResourceQuotaService,\n      KubernetesResourcePoolService,\n      KubernetesEventService,\n      KubernetesPodService,\n      KubernetesApplicationService,\n      KubernetesIngressService,\n      KubernetesVolumeService,\n      KubernetesNamespaceService,\n      KubernetesNodeService,\n    });\n\n    this.IngressClassTypes = KubernetesIngressClassTypes;\n    this.ResourceQuotaDefaults = KubernetesResourceQuotaDefaults;\n    this.EndpointService = EndpointService;\n\n    this.LBQuotaFeatureId = FeatureId.K8S_RESOURCE_POOL_LB_QUOTA;\n    this.StorageQuotaFeatureId = FeatureId.K8S_RESOURCE_POOL_STORAGE_QUOTA;\n    this.StorageQuotaFeatureId = FeatureId.K8S_RESOURCE_POOL_STORAGE_QUOTA;\n\n    this.updateResourcePoolAsync = this.updateResourcePoolAsync.bind(this);\n    this.getEvents = this.getEvents.bind(this);\n    this.onToggleLoadBalancersQuota = this.onToggleLoadBalancersQuota.bind(this);\n    this.onToggleStorageQuota = this.onToggleStorageQuota.bind(this);\n    this.onChangeIngressControllerAvailability = this.onChangeIngressControllerAvailability.bind(this);\n    this.onRegistriesChange = this.onRegistriesChange.bind(this);\n    this.handleMemoryLimitChange = this.handleMemoryLimitChange.bind(this);\n    this.handleCpuLimitChange = this.handleCpuLimitChange.bind(this);\n  }\n  /* #endregion */\n\n  onRegistriesChange(registries) {\n    return this.$scope.$evalAsync(() => {\n      this.formValues.Registries = registries;\n    });\n  }\n\n  onToggleLoadBalancersQuota(checked) {\n    return this.$scope.$evalAsync(() => {\n      this.formValues.UseLoadBalancersQuota = checked;\n    });\n  }\n\n  onToggleStorageQuota(storageClassName, enabled) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.StorageClasses = this.formValues.StorageClasses.map((sClass) => (sClass.Name !== storageClassName ? sClass : { ...sClass, Selected: enabled }));\n    });\n  }\n\n  onChangeIngressControllerAvailability(controllerClassMap) {\n    this.ingressControllers = controllerClassMap;\n  }\n\n  selectTab(index) {\n    this.LocalStorage.storeActiveTab('resourcePool', index);\n  }\n\n  isUpdateButtonDisabled() {\n    return this.state.actionInProgress || (this.formValues.HasQuota && !this.isQuotaValid()) || this.state.duplicates.ingressHosts.hasRefs;\n  }\n\n  isQuotaValid() {\n    if (\n      this.state.sliderMaxCpu < this.formValues.CpuLimit ||\n      this.state.sliderMaxMemory < this.formValues.MemoryLimit ||\n      (this.formValues.CpuLimit === 0 && this.formValues.MemoryLimit === 0)\n    ) {\n      return false;\n    }\n    return true;\n  }\n\n  checkDefaults() {\n    if (this.formValues.CpuLimit < KubernetesResourceQuotaDefaults.CpuLimit) {\n      this.formValues.CpuLimit = KubernetesResourceQuotaDefaults.CpuLimit;\n    }\n    if (this.formValues.MemoryLimit < KubernetesResourceReservationHelper.megaBytesValue(KubernetesResourceQuotaDefaults.MemoryLimit)) {\n      this.formValues.MemoryLimit = KubernetesResourceReservationHelper.megaBytesValue(KubernetesResourceQuotaDefaults.MemoryLimit);\n    }\n  }\n\n  handleMemoryLimitChange(memoryLimit) {\n    return this.$async(async () => {\n      this.formValues.MemoryLimit = memoryLimit;\n    });\n  }\n\n  handleCpuLimitChange(cpuLimit) {\n    return this.$async(async () => {\n      this.formValues.CpuLimit = cpuLimit;\n    });\n  }\n\n  showEditor() {\n    this.state.showEditorTab = true;\n    this.selectTab(2);\n  }\n\n  hasResourceQuotaBeenReduced() {\n    if (this.formValues.HasQuota && this.oldQuota) {\n      const cpuLimit = this.formValues.CpuLimit;\n      const memoryLimit = KubernetesResourceReservationHelper.bytesValue(this.formValues.MemoryLimit);\n      if (cpuLimit < this.oldQuota.CpuLimit || memoryLimit < this.oldQuota.MemoryLimit) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /* #region  UPDATE NAMESPACE */\n  async updateResourcePoolAsync(oldFormValues, newFormValues) {\n    this.state.actionInProgress = true;\n    try {\n      this.checkDefaults();\n      await this.KubernetesResourcePoolService.patch(oldFormValues, newFormValues);\n      await updateIngressControllerClassMap(this.endpoint.Id, this.ingressControllers || [], this.formValues.Name);\n      this.Notifications.success('Namespace successfully updated', this.pool.Namespace.Name);\n      this.$state.reload(this.$state.current);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to create namespace');\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  updateResourcePool() {\n    const ingressesToDelete = _.filter(this.formValues.IngressClasses, { WasSelected: true, Selected: false });\n    const registriesToDelete = _.filter(this.registries, { WasChecked: true, Checked: false });\n    const warnings = {\n      quota: this.hasResourceQuotaBeenReduced(),\n      ingress: ingressesToDelete.length !== 0,\n      registries: registriesToDelete.length !== 0,\n    };\n\n    if (warnings.quota || warnings.registries) {\n      confirmUpdateNamespace(warnings.quota, warnings.ingress, warnings.registries).then((confirmed) => {\n        if (confirmed) {\n          return this.$async(this.updateResourcePoolAsync, this.savedFormValues, this.formValues);\n        }\n      });\n    } else {\n      return this.$async(this.updateResourcePoolAsync, this.savedFormValues, this.formValues);\n    }\n  }\n\n  async confirmMarkUnmarkAsSystem() {\n    const message = this.isSystem\n      ? 'Unmarking this namespace as system will allow non administrator users to manage it and the resources in contains depending on the access control settings. Are you sure?'\n      : 'Marking this namespace as a system namespace will prevent non administrator users from managing it and the resources it contains. Are you sure?';\n\n    return new Promise((resolve) => {\n      confirmUpdate(message, resolve);\n    });\n  }\n\n  markUnmarkAsSystem() {\n    return this.$async(async () => {\n      try {\n        const namespaceName = this.$state.params.id;\n        this.state.actionInProgress = true;\n\n        const confirmed = await this.confirmMarkUnmarkAsSystem();\n        if (!confirmed) {\n          return;\n        }\n        await this.KubernetesResourcePoolService.toggleSystem(this.endpoint.Id, namespaceName, !this.isSystem);\n\n        this.Notifications.success('Namespace successfully updated', namespaceName);\n        this.$state.reload(this.$state.current);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to create namespace');\n      } finally {\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n  /* #endregion */\n\n  hasEventWarnings() {\n    return this.state.eventWarningCount;\n  }\n\n  /* #region  GET EVENTS */\n  getEvents() {\n    return this.$async(async () => {\n      try {\n        this.state.eventsLoading = true;\n        this.events = await this.KubernetesEventService.get(this.pool.Namespace.Name);\n        this.state.eventWarningCount = KubernetesEventHelper.warningCount(this.events);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve namespace related events');\n      } finally {\n        this.state.eventsLoading = false;\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  GET APPLICATIONS */\n  getApplications() {\n    return this.$async(async () => {\n      try {\n        this.state.applicationsLoading = true;\n        this.applications = await this.KubernetesApplicationService.get(this.pool.Namespace.Name);\n        this.applications = _.map(this.applications, (app) => {\n          const resourceReservation = KubernetesResourceReservationHelper.computeResourceReservation(app.Pods);\n          app.CPU = resourceReservation.CPU;\n          app.Memory = resourceReservation.Memory;\n          return app;\n        });\n\n        if (this.state.useServerMetrics) {\n          await this.getResourceUsage(this.pool.Namespace.Name);\n        }\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve applications.');\n      } finally {\n        this.state.applicationsLoading = false;\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  GET INGRESSES */\n  getIngresses() {\n    return this.$async(async () => {\n      this.state.ingressesLoading = true;\n      try {\n        const namespace = this.pool.Namespace.Name;\n        this.allIngresses = await this.KubernetesIngressService.get(this.state.hasWriteAuthorization ? '' : namespace);\n        this.ingresses = _.filter(this.allIngresses, { Namespace: namespace });\n        _.forEach(this.ingresses, (ing) => {\n          ing.Namespace = namespace;\n          _.forEach(ing.Paths, (path) => {\n            const application = _.find(this.applications, { ServiceName: path.ServiceName });\n            path.ApplicationName = application && application.Name ? application.Name : '-';\n          });\n        });\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve ingresses.');\n      } finally {\n        this.state.ingressesLoading = false;\n      }\n    });\n  }\n  /* #endregion */\n\n  /* #region  GET REGISTRIES */\n  getRegistries() {\n    return this.$async(async () => {\n      try {\n        const namespace = this.$state.params.id;\n\n        if (this.isAdmin) {\n          this.registries = await this.EndpointService.registries(this.endpoint.Id);\n          this.registries.forEach((reg) => {\n            if (reg.RegistryAccesses && reg.RegistryAccesses[this.endpoint.Id] && reg.RegistryAccesses[this.endpoint.Id].Namespaces.includes(namespace)) {\n              reg.Checked = true;\n              reg.WasChecked = true;\n              this.formValues.Registries.push(reg);\n            }\n          });\n          this.selectedRegistries = this.formValues.Registries.map((r) => r.Name).join(', ');\n          return;\n        }\n\n        const registries = await this.EndpointService.registries(this.endpoint.Id, namespace);\n        this.selectedRegistries = registries.map((r) => r.Name).join(', ');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registries');\n      }\n    });\n  }\n  /* #endregion */\n\n  async getResourceUsage(namespace) {\n    try {\n      const namespaceMetrics = await getMetricsForAllPods(this.$state.params.endpointId, namespace);\n      // extract resource usage of all containers within each pod of the namespace\n      const containerResourceUsageList = namespaceMetrics.items.flatMap((i) => i.containers.map((c) => c.usage));\n      const namespaceResourceUsage = containerResourceUsageList.reduce((total, u) => {\n        total.CPU += KubernetesResourceReservationHelper.parseCPU(u.cpu);\n        total.Memory += KubernetesResourceReservationHelper.megaBytesValue(u.memory);\n        return total;\n      }, new KubernetesResourceReservation());\n      this.state.resourceUsage = namespaceResourceUsage;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve namespace resource usage');\n    }\n  }\n\n  /* #region  ON INIT */\n  $onInit() {\n    return this.$async(async () => {\n      try {\n        this.endpoint = await this.EndpointService.endpoint(this.endpoint.Id);\n        this.isAdmin = this.Authentication.isAdmin();\n\n        this.state = {\n          actionInProgress: false,\n          sliderMaxMemory: 0,\n          sliderMaxCpu: 0,\n          cpuUsage: 0,\n          memoryUsage: 0,\n          resourceReservation: { CPU: 0, Memory: 0 },\n          activeTab: 0,\n          currentName: this.$state.$current.name,\n          showEditorTab: false,\n          eventsLoading: true,\n          applicationsLoading: true,\n          ingressesLoading: true,\n          viewReady: false,\n          eventWarningCount: 0,\n          canUseIngress: false,\n          useServerMetrics: this.endpoint.Kubernetes.Configuration.UseServerMetrics,\n          duplicates: {\n            ingressHosts: new KubernetesFormValidationReferences(),\n          },\n          ingressAvailabilityPerNamespace: this.endpoint.Kubernetes.Configuration.IngressAvailabilityPerNamespace,\n        };\n\n        this.state.activeTab = this.LocalStorage.getActiveTab('resourcePool');\n\n        const name = this.$state.params.id;\n\n        const [nodes, pools] = await Promise.all([this.KubernetesNodeService.get(), this.KubernetesResourcePoolService.get('', { getQuota: true })]);\n\n        this.ingressControllers = [];\n        if (this.state.ingressAvailabilityPerNamespace) {\n          this.ingressControllers = await getIngressControllerClassMap({ environmentId: this.endpoint.Id, namespace: name });\n          this.initialIngressControllers = structuredClone(this.ingressControllers);\n        }\n\n        this.pool = _.find(pools, { Namespace: { Name: name } });\n        this.formValues = new KubernetesResourcePoolFormValues(KubernetesResourceQuotaDefaults);\n        this.formValues.Name = this.pool.Namespace.Name;\n        this.formValues.EndpointId = this.endpoint.Id;\n        this.formValues.IsSystem = this.pool.Namespace.IsSystem;\n\n        _.forEach(nodes, (item) => {\n          this.state.sliderMaxMemory += filesizeParser(item.Memory);\n          this.state.sliderMaxCpu += item.CPU;\n        });\n        this.state.sliderMaxMemory = KubernetesResourceReservationHelper.megaBytesValue(this.state.sliderMaxMemory);\n\n        const quota = this.pool.Quota;\n        if (quota) {\n          this.oldQuota = angular.copy(quota);\n          this.formValues = KubernetesResourceQuotaConverter.quotaToResourcePoolFormValues(quota);\n          this.formValues.EndpointId = this.endpoint.Id;\n\n          this.state.resourceReservation.CPU = quota.CpuLimitUsed;\n          this.state.resourceReservation.Memory = KubernetesResourceReservationHelper.megaBytesValue(quota.MemoryLimitUsed);\n        }\n        this.isSystem = KubernetesNamespaceHelper.isSystemNamespace(this.pool.Namespace.Name);\n        this.isDefaultNamespace = KubernetesNamespaceHelper.isDefaultNamespace(this.pool.Namespace.Name);\n        this.isEditable = !this.isSystem && !this.isDefaultNamespace;\n\n        await this.getEvents();\n        await this.getApplications();\n\n        if (this.state.canUseIngress) {\n          await this.getIngresses();\n          const ingressClasses = this.endpoint.Kubernetes.Configuration.IngressClasses;\n          this.formValues.IngressClasses = KubernetesIngressConverter.ingressClassesToFormValues(ingressClasses, this.ingresses);\n          _.forEach(this.formValues.IngressClasses, (ic) => {\n            if (ic.Hosts.length === 0) {\n              ic.Hosts.push(new KubernetesResourcePoolIngressClassHostFormValue());\n            }\n          });\n        }\n\n        await this.getRegistries();\n\n        this.savedFormValues = angular.copy(this.formValues);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to load view data');\n      } finally {\n        this.state.viewReady = true;\n      }\n    });\n  }\n\n  /* #endregion */\n\n  $onDestroy() {\n    if (this.state.currentName !== this.$state.$current.name) {\n      this.LocalStorage.storeActiveTab('resourcePool', 0);\n    }\n  }\n}\n\nexport default KubernetesResourcePoolController;\nangular.module('portainer.kubernetes').controller('KubernetesResourcePoolController', KubernetesResourcePoolController);\n","import { ModalType } from '@@/modals';\nimport { confirm } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport function confirmUpdateNamespace(\n  quotaWarning: boolean,\n  ingressWarning: boolean,\n  registriesWarning: boolean\n) {\n  const message = (\n    <>\n      {quotaWarning && (\n        <p>\n          Reducing the quota assigned to an &quot;in-use&quot; namespace may\n          have unintended consequences, including preventing running\n          applications from functioning correctly and potentially even blocking\n          them from running at all.\n        </p>\n      )}\n      {ingressWarning && (\n        <p>\n          Deactivating ingresses may cause applications to be unaccessible. All\n          ingress configurations from affected applications will be removed.\n        </p>\n      )}\n      {registriesWarning && (\n        <p>\n          Some registries you removed might be used by one or more applications\n          inside this environment. Removing the registries access could lead to\n          a service interruption for these applications.\n        </p>\n      )}\n      <p>Are you sure you want to continue?</p>\n    </>\n  );\n\n  return confirm({\n    title: 'Are you sure?',\n    modalType: ModalType.Warn,\n    message,\n    confirmButton: buildConfirmButton('Update', 'primary'),\n  });\n}\n","const autoNgTemplateLoaderTemplate1 = require('./resourcePools.html');\n\nangular.module('portainer.kubernetes').component('kubernetesResourcePoolsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesResourcePoolsController',\n  controllerAs: 'ctrl',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import angular from 'angular';\nimport { confirm } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { dispatchCacheRefreshEvent } from '@/portainer/services/http-request.helper';\n\nclass KubernetesResourcePoolsController {\n  /* @ngInject */\n  constructor($async, $state, Notifications, KubernetesResourcePoolService, KubernetesNamespaceService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Notifications = Notifications;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n    this.KubernetesNamespaceService = KubernetesNamespaceService;\n\n    this.onInit = this.onInit.bind(this);\n    this.getResourcePools = this.getResourcePools.bind(this);\n    this.getResourcePoolsAsync = this.getResourcePoolsAsync.bind(this);\n    this.removeAction = this.removeAction.bind(this);\n    this.removeActionAsync = this.removeActionAsync.bind(this);\n    this.onReload = this.onReload.bind(this);\n  }\n\n  async onReload() {\n    this.$state.reload(this.$state.current);\n  }\n\n  async removeActionAsync(selectedItems) {\n    let actionCount = selectedItems.length;\n    for (const pool of selectedItems) {\n      try {\n        const isTerminating = pool.Namespace.Status === 'Terminating';\n        if (isTerminating) {\n          const ns = await this.KubernetesNamespaceService.getJSONAsync(pool.Namespace.Name);\n          ns.$promise.then(async (namespace) => {\n            const n = JSON.parse(namespace.data);\n            if (n.spec && n.spec.finalizers) {\n              delete n.spec.finalizers;\n            }\n            await this.KubernetesNamespaceService.updateFinalizeAsync(n);\n          });\n        } else {\n          await this.KubernetesResourcePoolService.delete(pool);\n        }\n        this.Notifications.success('Namespace successfully removed', pool.Namespace.Name);\n        const index = this.resourcePools.indexOf(pool);\n        this.resourcePools.splice(index, 1);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to remove namespace');\n      } finally {\n        --actionCount;\n        if (actionCount === 0) {\n          this.$state.reload(this.$state.current);\n        }\n      }\n    }\n  }\n\n  removeAction(selectedItems) {\n    const isTerminatingNS = selectedItems.some((pool) => pool.Namespace.Status === 'Terminating');\n    const message = isTerminatingNS\n      ? 'At least one namespace is in a terminating state. For terminating state namespaces, you may continue and force removal, but doing so without having properly cleaned up may lead to unstable and unpredictable behavior. Are you sure you wish to proceed?'\n      : 'Do you want to remove the selected namespace(s)? All the resources associated to the selected namespace(s) will be removed too. Are you sure you wish to proceed?';\n    confirm({\n      title: isTerminatingNS ? 'Force namespace removal' : 'Are you sure?',\n      message,\n      confirmButton: buildConfirmButton('Remove', 'danger'),\n\n      modalType: ModalType.Destructive,\n    }).then((confirmed) => {\n      if (confirmed) {\n        return this.$async(this.removeActionAsync, selectedItems);\n      }\n    });\n  }\n\n  async getResourcePoolsAsync() {\n    try {\n      this.resourcePools = await this.KubernetesResourcePoolService.get('', { getQuota: true });\n      // make sure table refreshes with fresh data when namespaces are in a terminating state\n      if (this.resourcePools.some((namespace) => namespace.Namespace.Status === 'Terminating')) {\n        dispatchCacheRefreshEvent();\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retreive namespaces');\n    }\n  }\n\n  getResourcePools() {\n    return this.$async(this.getResourcePoolsAsync);\n  }\n\n  async onInit() {\n    this.state = {\n      viewReady: false,\n    };\n\n    await this.getResourcePools();\n\n    this.state.viewReady = true;\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n}\n\nexport default KubernetesResourcePoolsController;\nangular.module('portainer.kubernetes').controller('KubernetesResourcePoolsController', KubernetesResourcePoolsController);\n","import angular from 'angular';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nangular.module('portainer.kubernetes').controller('KubernetesSecurityConstraintController', [\n  '$scope',\n  'EndpointProvider',\n  'EndpointService',\n  function ($scope, EndpointProvider, EndpointService) {\n    $scope.limitedFeaturePodSecurityPolicy = FeatureId.POD_SECURITY_POLICY_CONSTRAINT;\n    $scope.state = {\n      viewReady: false,\n      actionInProgress: false,\n    };\n\n    async function initView() {\n      const endpointID = EndpointProvider.endpointID();\n      EndpointService.endpoint(endpointID).then((endpoint) => {\n        $scope.endpoint = endpoint;\n        $scope.state.viewReady = true;\n      });\n    }\n\n    initView();\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./logs.html');\n\nangular.module('portainer.kubernetes').component('kubernetesStackLogsView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesStackLogsController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import { filter, flatMap, map } from 'lodash';\nimport angular from 'angular';\nimport $allSettled from 'Portainer/services/allSettled';\nimport { concatLogsToString, formatLogs } from '@/docker/helpers/logHelper';\n\nconst colors = ['red', 'orange', 'lime', 'green', 'darkgreen', 'cyan', 'turquoise', 'teal', 'deepskyblue', 'blue', 'darkblue', 'slateblue', 'magenta', 'darkviolet'];\n\nclass KubernetesStackLogsController {\n  /* @ngInject */\n  constructor($async, $state, $interval, Notifications, KubernetesApplicationService, KubernetesPodService, FileSaver, Blob) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$interval = $interval;\n    this.Notifications = Notifications;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesPodService = KubernetesPodService;\n    this.Blob = Blob;\n    this.FileSaver = FileSaver;\n\n    this.onInit = this.onInit.bind(this);\n    this.stopRepeater = this.stopRepeater.bind(this);\n    this.generateLogsPromise = this.generateLogsPromise.bind(this);\n    this.generateAppPromise = this.generateAppPromise.bind(this);\n    this.getStackLogsAsync = this.getStackLogsAsync.bind(this);\n  }\n\n  updateAutoRefresh() {\n    if (this.state.autoRefresh) {\n      this.setUpdateRepeater();\n      return;\n    }\n\n    this.stopRepeater();\n  }\n\n  stopRepeater() {\n    if (angular.isDefined(this.repeater)) {\n      this.$interval.cancel(this.repeater);\n      this.repeater = null;\n    }\n  }\n\n  setUpdateRepeater() {\n    this.repeater = this.$interval(this.getStackLogsAsync, this.state.refreshRate);\n  }\n\n  async generateLogsPromise(pod, container) {\n    const res = {\n      Pod: pod,\n      Logs: [],\n    };\n    res.Logs = await this.KubernetesPodService.logs(pod.Namespace, pod.Name, container.Name);\n    return res;\n  }\n\n  async generateAppPromise(app) {\n    const res = {\n      Application: app,\n      Pods: [],\n    };\n\n    const promises = flatMap(map(app.Pods, (pod) => map(pod.Containers, (container) => this.generateLogsPromise(pod, container))));\n    const result = await $allSettled(promises);\n    res.Pods = result.fulfilled;\n    return res;\n  }\n\n  async getStackLogsAsync() {\n    try {\n      const applications = await this.KubernetesApplicationService.get(this.state.transition.namespace);\n      const filteredApplications = filter(applications, (app) => app.StackName === this.state.transition.name);\n      const logsPromises = map(filteredApplications, this.generateAppPromise);\n      const data = await Promise.all(logsPromises);\n      const logs = flatMap(data, (app, index) =>\n        flatMap(app.Pods, (pod) => formatLogs(pod.Logs).map((line) => ({ ...line, appColor: colors[index % colors.length], appName: pod.Pod.Name })))\n      );\n      this.stackLogs = logs;\n    } catch (err) {\n      this.stopRepeater();\n      this.Notifications.error('Failure', err, 'Unable to retrieve application logs');\n    }\n  }\n\n  downloadLogs() {\n    const logsAsString = concatLogsToString(this.state.filteredLogs, (line) => `${line.appName} ${line.line}`);\n    const data = new this.Blob([logsAsString]);\n    this.FileSaver.saveAs(data, this.state.transition.name + '_logs.txt');\n  }\n\n  async onInit() {\n    this.state = {\n      autoRefresh: false,\n      refreshRate: 30000, // 30 seconds\n      search: '',\n      viewReady: false,\n      transition: {\n        namespace: this.$transition$.params().namespace,\n        name: this.$transition$.params().name,\n      },\n    };\n\n    this.stackLogs = [];\n    try {\n      await this.getStackLogsAsync();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve stack logs');\n    } finally {\n      this.state.viewReady = true;\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    this.stopRepeater();\n  }\n}\n\nexport default KubernetesStackLogsController;\nangular.module('portainer.kubernetes').controller('KubernetesStackLogsController', KubernetesStackLogsController);\n","import _ from 'lodash-es';\nimport { KubernetesResourceTypes, KubernetesResourceActions } from 'Kubernetes/models/resource-types/models';\nimport { KubernetesApplicationFormValues } from 'Kubernetes/models/application/formValues';\nimport { KubernetesStatefulSet } from 'Kubernetes/models/stateful-set/models';\nimport { KubernetesService, KubernetesServiceTypes } from 'Kubernetes/models/service/models';\nimport { KubernetesApplicationDeploymentTypes } from 'Kubernetes/models/application/models/appConstants';\nimport { KubernetesHorizontalPodAutoScalerConverter } from 'Kubernetes/horizontal-pod-auto-scaler/converter';\nimport KubernetesApplicationConverter from 'Kubernetes/converters/application';\nimport KubernetesServiceConverter from 'Kubernetes/converters/service';\nimport { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';\nimport KubernetesPersistentVolumeClaimConverter from 'Kubernetes/converters/persistentVolumeClaim';\nimport { generateNewIngressesFromFormPaths } from '@/react/kubernetes/applications/CreateView/application-services/utils';\n\nconst { CREATE, UPDATE, DELETE } = KubernetesResourceActions;\n\n/**\n * Get summary of Kubernetes resources to be created, updated or deleted\n * @param {KubernetesApplicationFormValues} formValues\n */\nexport function getApplicationResources(formValues, oldFormValues = {}) {\n  if (oldFormValues instanceof KubernetesApplicationFormValues) {\n    const resourceSummary = getUpdatedApplicationResources(oldFormValues, formValues);\n    return resourceSummary;\n  }\n  const resourceSummary = getCreatedApplicationResources(formValues);\n  return resourceSummary;\n}\n\n/**\n * Get summary of Kubernetes resources to be created\n * @param {KubernetesApplicationFormValues} formValues\n */\nexport function getCreatedApplicationResources(formValues) {\n  const resources = [];\n\n  let [app, headlessService, services, service, claims] = KubernetesApplicationConverter.applicationFormValuesToApplication(formValues);\n\n  if (services) {\n    services.forEach((service) => {\n      resources.push({ action: CREATE, kind: KubernetesResourceTypes.SERVICE, name: service.Name, type: service.Type || KubernetesServiceTypes.CLUSTER_IP });\n      // Ingress\n      const newServicePorts = formValues.Services.flatMap((service) => service.Ports);\n      const newIngresses = generateNewIngressesFromFormPaths(formValues.OriginalIngresses, newServicePorts);\n      resources.push(...getIngressUpdateSummary(formValues.OriginalIngresses, newIngresses));\n    });\n  }\n\n  if (service) {\n    // Service\n    resources.push({ action: CREATE, kind: KubernetesResourceTypes.SERVICE, name: service.Name, type: service.Type || KubernetesServiceTypes.CLUSTER_IP });\n  }\n\n  if (app instanceof KubernetesStatefulSet) {\n    // Service\n    resources.push({ action: CREATE, kind: KubernetesResourceTypes.SERVICE, name: headlessService.Name, type: headlessService.Type || KubernetesServiceTypes.CLUSTER_IP });\n  } else {\n    // Persistent volume claims\n    const persistentVolumeClaimResources = claims\n      .filter((pvc) => !pvc.PreviousName && !pvc.Id)\n      .map((pvc) => ({ action: CREATE, kind: KubernetesResourceTypes.PERSISTENT_VOLUME_CLAIM, name: pvc.Name }));\n    resources.push(...persistentVolumeClaimResources);\n  }\n\n  // Horizontal pod autoscalers\n  if (formValues.AutoScaler.IsUsed && formValues.DeploymentType !== KubernetesApplicationDeploymentTypes.Global) {\n    const kind = app.ApplicationType;\n    const autoScaler = KubernetesHorizontalPodAutoScalerConverter.applicationFormValuesToModel(formValues, kind);\n    resources.push({ action: CREATE, kind: KubernetesResourceTypes.HORIZONTAL_POD_AUTOSCALER, name: autoScaler.Name });\n  }\n\n  // Deployment\n  const appResourceType = app.ApplicationType;\n  if (appResourceType !== null) {\n    resources.push({ action: CREATE, kind: appResourceType, name: app.Name });\n  }\n\n  return resources;\n}\n\n/**\n * Get summary of Kubernetes resources to be created, updated and/or deleted\n * @param {KubernetesApplicationFormValues} oldFormValues\n * @param {KubernetesApplicationFormValues} newFormValues\n */\nexport function getUpdatedApplicationResources(oldFormValues, newFormValues) {\n  const resources = [];\n\n  const [oldApp, oldHeadlessService, oldServices, oldService, oldClaims] = KubernetesApplicationConverter.applicationFormValuesToApplication(oldFormValues);\n  const [newApp, newHeadlessService, newServices, newService, newClaims] = KubernetesApplicationConverter.applicationFormValuesToApplication(newFormValues);\n  const oldAppResourceType = oldApp.ApplicationType;\n  const newAppResourceType = newApp.ApplicationType;\n\n  if (oldAppResourceType !== newAppResourceType) {\n    // Deployment\n    resources.push({ action: DELETE, kind: oldAppResourceType, name: oldApp.Name });\n    if (oldService && oldServices) {\n      // Service\n      resources.push({ action: DELETE, kind: KubernetesResourceTypes.SERVICE, name: oldService.Name, type: oldService.Type || KubernetesServiceTypes.CLUSTER_IP });\n    }\n    // re-creation of resources\n    const createdApplicationResourceSummary = getCreatedApplicationResources(newFormValues);\n    resources.push(...createdApplicationResourceSummary);\n    return resources;\n  }\n\n  if (newApp instanceof KubernetesStatefulSet) {\n    const headlessServiceUpdateResourceSummary = getServiceUpdateResourceSummary(oldHeadlessService, newHeadlessService);\n    if (headlessServiceUpdateResourceSummary) {\n      resources.push(headlessServiceUpdateResourceSummary);\n    }\n  } else {\n    // Persistent volume claims\n    const claimSummaries = newClaims\n      .map((pvc) => {\n        if (!pvc.PreviousName && !pvc.Id) {\n          return { action: CREATE, kind: KubernetesResourceTypes.PERSISTENT_VOLUME_CLAIM, name: pvc.Name };\n        } else if (!pvc.Id) {\n          const oldClaim = _.find(oldClaims, { Name: pvc.PreviousName });\n          return getVolumeClaimUpdateResourceSummary(oldClaim, pvc);\n        }\n      })\n      .filter((pvc) => pvc); // remove nulls\n    resources.push(...claimSummaries);\n  }\n\n  // Deployment\n  resources.push({ action: UPDATE, kind: oldAppResourceType, name: oldApp.Name });\n\n  if (oldServices && newServices) {\n    // Service\n    const serviceUpdateResourceSummary = getServiceUpdateResourceSummary(oldServices, newServices);\n    if (serviceUpdateResourceSummary !== null) {\n      serviceUpdateResourceSummary.forEach((updateSummary) => {\n        resources.push(updateSummary);\n      });\n    }\n\n    // Ingress\n    const oldServicePorts = oldFormValues.Services.flatMap((service) => service.Ports);\n    const oldIngresses = generateNewIngressesFromFormPaths(oldFormValues.OriginalIngresses, oldServicePorts, oldServicePorts);\n    const newServicePorts = newFormValues.Services.flatMap((service) => service.Ports);\n    const newIngresses = generateNewIngressesFromFormPaths(newFormValues.OriginalIngresses, newServicePorts, oldServicePorts);\n    resources.push(...getIngressUpdateSummary(oldIngresses, newIngresses));\n  } else if (!oldService && newService) {\n    // Service\n    resources.push({ action: CREATE, kind: KubernetesResourceTypes.SERVICE, name: newService.Name, type: newService.Type || KubernetesServiceTypes.CLUSTER_IP });\n  } else if (oldService && !newService) {\n    // Service\n    resources.push({ action: DELETE, kind: KubernetesResourceTypes.SERVICE, name: oldService.Name, type: oldService.Type || KubernetesServiceTypes.CLUSTER_IP });\n  }\n\n  const newKind = newApp.ApplicationType;\n  const newAutoScaler = KubernetesHorizontalPodAutoScalerConverter.applicationFormValuesToModel(newFormValues, newKind);\n  if (!oldFormValues.AutoScaler.IsUsed) {\n    if (newFormValues.AutoScaler.IsUsed) {\n      // Horizontal pod autoscalers\n      resources.push({ action: CREATE, kind: KubernetesResourceTypes.HORIZONTAL_POD_AUTOSCALER, name: newAutoScaler.Name });\n    }\n  } else {\n    // Horizontal pod autoscalers\n    const oldKind = oldApp.ApplicationType;\n    const oldAutoScaler = KubernetesHorizontalPodAutoScalerConverter.applicationFormValuesToModel(oldFormValues, oldKind);\n    if (newFormValues.AutoScaler.IsUsed) {\n      const hpaUpdateSummary = getHorizontalPodAutoScalerUpdateResourceSummary(oldAutoScaler, newAutoScaler);\n      if (hpaUpdateSummary) {\n        resources.push(hpaUpdateSummary);\n      }\n    } else {\n      resources.push({ action: DELETE, kind: KubernetesResourceTypes.HORIZONTAL_POD_AUTOSCALER, name: oldAutoScaler.Name });\n    }\n  }\n\n  return resources;\n}\n\nfunction getIngressUpdateSummary(oldIngresses, newIngresses) {\n  const ingressesSummaries = newIngresses\n    .map((newIng) => {\n      const oldIng = oldIngresses.find((oldIng) => oldIng.Name === newIng.Name);\n      return getIngressUpdateResourceSummary(oldIng, newIng);\n    })\n    .filter((s) => s); // remove nulls\n  return ingressesSummaries;\n}\n\n// getIngressUpdateResourceSummary replicates KubernetesIngressService.patch\nfunction getIngressUpdateResourceSummary(oldIngress, newIngress) {\n  const payload = KubernetesIngressConverter.patchPayload(oldIngress, newIngress);\n  if (payload.length) {\n    return { action: UPDATE, kind: KubernetesResourceTypes.INGRESS, name: oldIngress.Name };\n  }\n  return null;\n}\n\n// getVolumeClaimUpdateResourceSummary replicates KubernetesPersistentVolumeClaimService.patch\nfunction getVolumeClaimUpdateResourceSummary(oldPVC, newPVC) {\n  const payload = KubernetesPersistentVolumeClaimConverter.patchPayload(oldPVC, newPVC);\n  if (payload.length) {\n    return { action: UPDATE, kind: KubernetesResourceTypes.PERSISTENT_VOLUME_CLAIM, name: oldPVC.Name };\n  }\n  return null;\n}\n\n// getServiceUpdateResourceSummary replicates KubernetesServiceService.patch\nfunction getServiceUpdateResourceSummary(oldServices, newServices) {\n  let summary = [];\n  // skip update summary when service is headless service\n  if (!oldServices.Headless) {\n    newServices.forEach((newService) => {\n      const oldServiceMatched = _.find(oldServices, { Name: newService.Name });\n      if (oldServiceMatched) {\n        const payload = KubernetesServiceConverter.patchPayload(oldServiceMatched, newService);\n        if (payload.length) {\n          const serviceUpdate = {\n            action: UPDATE,\n            kind: KubernetesResourceTypes.SERVICE,\n            name: oldServiceMatched.Name,\n            type: oldServiceMatched.Type || KubernetesServiceTypes.CLUSTER_IP,\n          };\n          summary.push(serviceUpdate);\n        }\n      } else {\n        const emptyService = new KubernetesService();\n        const payload = KubernetesServiceConverter.patchPayload(emptyService, newService);\n        if (payload.length) {\n          const serviceCreate = { action: CREATE, kind: KubernetesResourceTypes.SERVICE, name: newService.Name, type: newService.Type || KubernetesServiceTypes.CLUSTER_IP };\n          summary.push(serviceCreate);\n        }\n      }\n    });\n\n    oldServices.forEach((oldService) => {\n      const newServiceMatched = _.find(newServices, { Name: oldService.Name });\n      if (!newServiceMatched) {\n        const serviceDelete = { action: DELETE, kind: KubernetesResourceTypes.SERVICE, name: oldService.Name, type: oldService.Type || KubernetesServiceTypes.CLUSTER_IP };\n        summary.push(serviceDelete);\n      }\n    });\n  }\n  if (summary.length !== 0) {\n    return summary;\n  }\n  return null;\n}\n\n// getHorizontalPodAutoScalerUpdateResourceSummary replicates KubernetesHorizontalPodAutoScalerService.patch\nfunction getHorizontalPodAutoScalerUpdateResourceSummary(oldHorizontalPodAutoScaler, newHorizontalPodAutoScaler) {\n  const payload = KubernetesHorizontalPodAutoScalerConverter.patchPayload(oldHorizontalPodAutoScaler, newHorizontalPodAutoScaler);\n  if (payload.length) {\n    return { action: UPDATE, kind: KubernetesResourceTypes.HORIZONTAL_POD_AUTOSCALER, name: oldHorizontalPodAutoScaler.Name };\n  }\n  return null;\n}\n","import { KubernetesResourceTypes, KubernetesResourceActions } from 'Kubernetes/models/resource-types/models';\nimport { KubernetesConfigurationKinds } from 'Kubernetes/models/configuration/models';\n\nconst { CREATE, UPDATE } = KubernetesResourceActions;\n\nexport default function (formValues) {\n  const action = formValues.Id ? UPDATE : CREATE;\n  if (formValues.Kind === KubernetesConfigurationKinds.CONFIGMAP) {\n    return [{ action, kind: KubernetesResourceTypes.CONFIGMAP, name: formValues.Name }];\n  } else if (formValues.Kind === KubernetesConfigurationKinds.SECRET) {\n    let type = formValues.Type;\n    if (formValues.customType) {\n      type = formValues.customType;\n    }\n    return [{ action, kind: KubernetesResourceTypes.SECRET, name: formValues.Name, type }];\n  }\n}\n","import _ from 'lodash-es';\nimport * as JsonPatch from 'fast-json-patch';\nimport { KubernetesResourceActions } from 'Kubernetes/models/resource-types/models';\n\nfunction findCreateResources(newResources, oldResources) {\n  return _.differenceBy(newResources, oldResources, 'Name');\n}\n\nfunction findDeleteResources(newResources, oldResources) {\n  return _.differenceBy(oldResources, newResources, 'Name');\n}\n\nfunction findUpdateResources(newResources, oldResources) {\n  const updateResources = _.intersectionWith(newResources, oldResources, (newResource, oldResource) => {\n    // find out resources with same name but content changed\n    if (newResource.Name != oldResource.Name) {\n      return false;\n    }\n    return !isEqual(newResource, oldResource);\n  });\n\n  return updateResources;\n}\n\nfunction isEqual(newResource, oldResource) {\n  let patches = JsonPatch.compare(newResource, oldResource);\n  patches = _.filter(patches, (change) => {\n    return !_.includes(change.path, '$$hashKey') && !_.includes(change.path, 'Duplicate');\n  });\n\n  return !patches.length;\n}\n\nfunction doGetResourcesSummary(newResources, oldResources, kind, action, actionFilter) {\n  const filteredResources = actionFilter(newResources, oldResources);\n  const summary = filteredResources.map((resource) => ({ name: resource.Name, action, kind }));\n\n  return summary;\n}\n\nexport function getResourcesSummary(newResources, oldResources, kind) {\n  if (!Array.isArray(newResources)) {\n    newResources = newResources ? [newResources] : [];\n    oldResources = oldResources ? [oldResources] : [];\n  }\n\n  const summary = [\n    ...doGetResourcesSummary(newResources, oldResources, kind, KubernetesResourceActions.CREATE, findCreateResources),\n    ...doGetResourcesSummary(newResources, oldResources, kind, KubernetesResourceActions.UPDATE, findUpdateResources),\n    ...doGetResourcesSummary(newResources, oldResources, kind, KubernetesResourceActions.DELETE, findDeleteResources),\n  ];\n\n  return summary;\n}\n","import KubernetesResourcePoolConverter from 'Kubernetes/converters/resourcePool';\nimport { KubernetesResourcePoolFormValues } from 'Kubernetes/models/resource-pool/formValues';\nimport { KubernetesResourceQuotaDefaults } from 'Kubernetes/models/resource-quota/models';\nimport { KubernetesResourceTypes } from 'Kubernetes/models/resource-types/models';\nimport { getResourcesSummary } from 'Kubernetes/views/summary/resources/helpers';\n\nexport default function (newFormValues, oldFormValues) {\n  const [newNamespace, newQuota, newIngresses] = KubernetesResourcePoolConverter.formValuesToResourcePool(newFormValues);\n\n  if (!(oldFormValues instanceof KubernetesResourcePoolFormValues)) {\n    oldFormValues = new KubernetesResourcePoolFormValues(KubernetesResourceQuotaDefaults);\n  }\n\n  const [oldNamespace, oldQuota, oldIngresses] = KubernetesResourcePoolConverter.formValuesToResourcePool(oldFormValues);\n\n  const resources = [\n    ...getResourcesSummary(newNamespace, oldNamespace, KubernetesResourceTypes.NAMESPACE),\n    ...getResourcesSummary(newQuota, oldQuota, KubernetesResourceTypes.RESOURCEQUOTA),\n    ...getResourcesSummary(newIngresses, oldIngresses, KubernetesResourceTypes.INGRESS),\n  ];\n\n  return resources;\n}\n","const autoNgTemplateLoaderTemplate1 = require('./summary.html');\n\nangular.module('portainer.kubernetes').component('kubernetesSummaryView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesSummaryController',\n  controllerAs: '$ctrl',\n  bindings: {\n    formValues: '<',\n    oldFormValues: '<',\n  },\n});\n","import angular from 'angular';\nimport { KubernetesConfigurationFormValues } from 'Kubernetes/models/configuration/formvalues';\nimport { KubernetesResourcePoolFormValues } from 'Kubernetes/models/resource-pool/formValues';\nimport { KubernetesApplicationFormValues } from 'Kubernetes/models/application/formValues';\nimport { KubernetesResourceActions, KubernetesResourceTypes } from 'Kubernetes/models/resource-types/models';\nimport { getApplicationResources } from './resources/applicationResources';\nimport getNamespaceResources from './resources/namespaceResources';\nimport getConfigurationResources from './resources/configurationResources';\n\nclass KubernetesSummaryController {\n  /* @ngInject */\n  constructor($scope, LocalStorage, KubernetesResourcePoolService) {\n    this.LocalStorage = LocalStorage;\n    this.KubernetesResourcePoolService = KubernetesResourcePoolService;\n\n    this.toggleSummary = this.toggleSummary.bind(this);\n    this.generateResourceSummaryList = this.generateResourceSummaryList.bind(this);\n\n    // Deep-watch changes on formValues property\n    $scope.$watch(\n      '$ctrl.formValues',\n      (formValues) => {\n        this.state.resources = this.generateResourceSummaryList(angular.copy(formValues));\n      },\n      true\n    );\n  }\n\n  getArticle(resourceType, resourceAction) {\n    let article = 'a';\n    if (resourceAction === KubernetesResourceActions.CREATE) {\n      if (resourceType === KubernetesResourceTypes.INGRESS) {\n        article = 'an';\n      }\n    } else {\n      article = 'the';\n    }\n\n    return article;\n  }\n\n  /**\n   * toggleSummary toggles the summary panel state and persists it to browser localstorage\n   */\n  toggleSummary() {\n    this.state.expandedTemplate = !this.state.expandedTemplate;\n    this.LocalStorage.storeKubernetesSummaryToggle(this.state.expandedTemplate);\n  }\n\n  /**\n   * generateResourceSummaryList maps formValues to custom object\n   * @param {object} formValues\n   * @returns {object} => { action: \"string\", kind: \"string\", name: \"string\" }\n   */\n  generateResourceSummaryList(formValues) {\n    const oldFormValues = this.oldFormValues;\n\n    if (formValues instanceof KubernetesConfigurationFormValues) {\n      // Configuration\n      return getConfigurationResources(formValues);\n    } else if (formValues instanceof KubernetesResourcePoolFormValues) {\n      // Namespaces\n      return getNamespaceResources(formValues, oldFormValues);\n    } else if (formValues instanceof KubernetesApplicationFormValues) {\n      // Applications\n\n      // extract cpu and memory requests & limits for pod\n      this.state.limits = { cpu: formValues.CpuLimit, memory: formValues.MemoryLimit };\n\n      return getApplicationResources(formValues, oldFormValues);\n    }\n\n    return [];\n  }\n\n  $onInit() {\n    const toggleValue = this.LocalStorage.getKubernetesSummaryToggle();\n    const expanded = typeof toggleValue === 'boolean' ? toggleValue : true;\n\n    this.state = {\n      expandedTemplate: expanded,\n      resources: [],\n      limits: { cpu: null, memory: null },\n    };\n  }\n}\n\nexport default KubernetesSummaryController;\nangular.module('portainer.kubernetes').controller('KubernetesSummaryController', KubernetesSummaryController);\n","import _ from 'lodash-es';\n\nangular.module('portainer.kubernetes').controller('KubernetesVolumesStoragesDatatableController', [\n  '$scope',\n  '$controller',\n  'DatatableService',\n  function ($scope, $controller, DatatableService) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n    this.state = Object.assign(this.state, {\n      expandedItems: [],\n      expandAll: false,\n    });\n\n    this.onSettingsRepeaterChange = function () {\n      DatatableService.setDataTableSettings(this.tableKey, this.settings);\n    };\n\n    this.expandItem = function (item, expanded) {\n      if (!this.itemCanExpand(item)) {\n        return;\n      }\n\n      item.Expanded = expanded;\n      if (!expanded) {\n        item.Highlighted = false;\n      }\n    };\n\n    this.itemCanExpand = function (item) {\n      return item.Volumes.length > 0;\n    };\n\n    this.hasExpandableItems = function () {\n      return _.filter(this.state.filteredDataSet, (item) => this.itemCanExpand(item)).length;\n    };\n\n    this.expandAll = function () {\n      this.state.expandAll = !this.state.expandAll;\n      _.forEach(this.state.filteredDataSet, (item) => {\n        if (this.itemCanExpand(item)) {\n          this.expandItem(item, this.state.expandAll);\n        }\n      });\n    };\n\n    this.$onInit = function () {\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      this.state.orderBy = this.orderBy;\n      var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n      if (storedSettings !== null) {\n        this.settings = storedSettings;\n        this.settings.open = false;\n      }\n      this.onSettingsRepeaterChange();\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./template.html');\n\nangular.module('portainer.kubernetes').component('kubernetesVolumesStoragesDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesVolumesStoragesDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    refreshCallback: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./volume.html');\n\nangular.module('portainer.kubernetes').component('kubernetesVolumeView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesVolumeController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n    endpoint: '<',\n  },\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport KubernetesVolumeHelper from 'Kubernetes/helpers/volumeHelper';\nimport KubernetesEventHelper from 'Kubernetes/helpers/eventHelper';\nimport { KubernetesStorageClassAccessPolicies } from 'Kubernetes/models/storage-class/models';\nimport KubernetesNamespaceHelper from 'Kubernetes/helpers/namespaceHelper';\nimport { confirmRedeploy } from '@/react/kubernetes/volumes/ItemView/ConfirmRedeployModal';\n\nclass KubernetesVolumeController {\n  /* @ngInject */\n  constructor(\n    $async,\n    $state,\n    Notifications,\n    LocalStorage,\n    KubernetesVolumeService,\n    KubernetesEventService,\n    KubernetesApplicationService,\n    KubernetesPersistentVolumeClaimService,\n    KubernetesPodService\n  ) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Notifications = Notifications;\n    this.LocalStorage = LocalStorage;\n\n    this.KubernetesVolumeService = KubernetesVolumeService;\n    this.KubernetesEventService = KubernetesEventService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n    this.KubernetesPersistentVolumeClaimService = KubernetesPersistentVolumeClaimService;\n    this.KubernetesPodService = KubernetesPodService;\n\n    this.onInit = this.onInit.bind(this);\n    this.getVolume = this.getVolume.bind(this);\n    this.getVolumeAsync = this.getVolumeAsync.bind(this);\n    this.updateVolumeAsync = this.updateVolumeAsync.bind(this);\n    this.getEvents = this.getEvents.bind(this);\n    this.getEventsAsync = this.getEventsAsync.bind(this);\n  }\n\n  selectTab(index) {\n    this.LocalStorage.storeActiveTab('volume', index);\n  }\n\n  showEditor() {\n    this.state.showEditorTab = true;\n    this.selectTab(2);\n  }\n\n  isExternalVolume() {\n    return KubernetesVolumeHelper.isExternalVolume(this.volume);\n  }\n\n  isSystemNamespace() {\n    return KubernetesNamespaceHelper.isSystemNamespace(this.volume.ResourcePool.Namespace.Name);\n  }\n\n  isUsed() {\n    return KubernetesVolumeHelper.isUsed(this.volume);\n  }\n\n  onChangeSize() {\n    if (this.state.volumeSize) {\n      const size = filesizeParser(this.state.volumeSize + this.state.volumeSizeUnit, { base: 10 });\n      if (this.state.oldVolumeSize > size) {\n        this.state.errors.volumeSize = true;\n      } else {\n        this.state.errors.volumeSize = false;\n      }\n    }\n  }\n\n  sizeIsValid() {\n    return !this.state.errors.volumeSize && this.state.volumeSize && this.state.oldVolumeSize !== filesizeParser(this.state.volumeSize + this.state.volumeSizeUnit, { base: 10 });\n  }\n\n  /**\n   * VOLUME\n   */\n\n  async updateVolumeAsync(redeploy) {\n    try {\n      this.volume.PersistentVolumeClaim.Storage = this.state.volumeSize + this.state.volumeSizeUnit.charAt(0);\n      await this.KubernetesPersistentVolumeClaimService.patch(this.oldVolume.PersistentVolumeClaim, this.volume.PersistentVolumeClaim);\n      this.Notifications.success('Success', 'Volume successfully updated');\n\n      if (redeploy) {\n        const promises = _.flatten(\n          _.map(this.volume.Applications, (app) => {\n            return _.map(app.Pods, (item) => this.KubernetesPodService.delete(item));\n          })\n        );\n        await Promise.all(promises);\n        this.Notifications.success('Success', 'Applications successfully redeployed');\n      }\n\n      this.$state.reload(this.$state.current);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to update volume.');\n    }\n  }\n\n  updateVolume() {\n    if (KubernetesVolumeHelper.isUsed(this.volume)) {\n      confirmRedeploy().then((redeploy) => {\n        return this.$async(this.updateVolumeAsync, redeploy);\n      });\n    } else {\n      return this.$async(this.updateVolumeAsync, false);\n    }\n  }\n\n  async getVolumeAsync() {\n    const storageClasses = this.endpoint.Kubernetes.Configuration.StorageClasses;\n    try {\n      const [volume, applications] = await Promise.all([\n        this.KubernetesVolumeService.get(this.state.namespace, storageClasses, this.state.name),\n        this.KubernetesApplicationService.get(this.state.namespace),\n      ]);\n      volume.Applications = KubernetesVolumeHelper.getUsingApplications(volume, applications);\n      this.volume = volume;\n      this.oldVolume = angular.copy(volume);\n      this.state.volumeSize = parseInt(volume.PersistentVolumeClaim.Storage.slice(0, -2), 10);\n      this.state.volumeSizeUnit = volume.PersistentVolumeClaim.Storage.slice(-2);\n      this.state.oldVolumeSize = filesizeParser(volume.PersistentVolumeClaim.Storage, { base: 10 });\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve volume');\n    }\n  }\n\n  getVolume() {\n    return this.$async(this.getVolumeAsync);\n  }\n\n  /**\n   * EVENTS\n   */\n  hasEventWarnings() {\n    return this.state.eventWarningCount;\n  }\n\n  async getEventsAsync() {\n    try {\n      this.state.eventsLoading = true;\n      const events = await this.KubernetesEventService.get(this.state.namespace);\n      this.events = _.filter(events, (event) => event.Involved.uid === this.volume.PersistentVolumeClaim.Id);\n      this.state.eventWarningCount = KubernetesEventHelper.warningCount(this.events);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve application related events');\n    } finally {\n      this.state.eventsLoading = false;\n    }\n  }\n\n  getEvents() {\n    return this.$async(this.getEventsAsync);\n  }\n\n  /**\n   * ON INIT\n   */\n  async onInit() {\n    this.state = {\n      activeTab: 0,\n      currentName: this.$state.$current.name,\n      showEditorTab: false,\n      eventsLoading: true,\n      viewReady: false,\n      namespace: this.$transition$.params().namespace,\n      name: this.$transition$.params().name,\n      eventWarningCount: 0,\n      availableSizeUnits: ['MB', 'GB', 'TB'],\n      increaseSize: false,\n      volumeSize: 0,\n      volumeSizeUnit: 'GB',\n      volumeSharedAccessPolicies: [],\n      volumeSharedAccessPolicyTooltips: '',\n      errors: {\n        volumeSize: false,\n      },\n    };\n\n    this.state.activeTab = this.LocalStorage.getActiveTab('volume');\n\n    try {\n      await this.getVolume();\n      await this.getEvents();\n      if (this.volume.PersistentVolumeClaim.storageClass !== undefined) {\n        this.state.volumeSharedAccessPolicies = this.volume.PersistentVolumeClaim.AccessModes;\n        let policies = KubernetesStorageClassAccessPolicies();\n        this.state.volumeSharedAccessPolicyTooltips = this.state.volumeSharedAccessPolicies.map((policy) => {\n          const matchingPolicy = policies.find((p) => p.Name === policy);\n          return matchingPolicy ? matchingPolicy.Description : undefined;\n        });\n      }\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to load view data');\n    } finally {\n      this.state.viewReady = true;\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    if (this.state.currentName !== this.$state.$current.name) {\n      this.LocalStorage.storeActiveTab('volume', 0);\n    }\n  }\n}\n\nexport default KubernetesVolumeController;\nangular.module('portainer.kubernetes').controller('KubernetesVolumeController', KubernetesVolumeController);\n","import { confirm } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport function confirmRedeploy() {\n  return confirm({\n    title: '',\n    message: (\n      <>\n        One or multiple applications are currently using this volume.\n        <br /> For the change to be taken into account these applications will\n        need to be redeployed. Do you want us to reschedule it now?\n      </>\n    ),\n    confirmButton: buildConfirmButton('Redeploy the applications'),\n    cancelButtonLabel: \"I'll do it later\",\n  });\n}\n","const autoNgTemplateLoaderTemplate1 = require('./volumes.html');\n\nangular.module('portainer.kubernetes').component('kubernetesVolumesView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'KubernetesVolumesController',\n  controllerAs: 'ctrl',\n  bindings: {\n    $transition$: '<',\n    endpoint: '<',\n  },\n});\n","import _ from 'lodash-es';\nimport filesizeParser from 'filesize-parser';\nimport angular from 'angular';\nimport KubernetesVolumeHelper from 'Kubernetes/helpers/volumeHelper';\nimport KubernetesResourceQuotaHelper from 'Kubernetes/helpers/resourceQuotaHelper';\nimport { confirmDelete } from '@@/modals/confirm';\n\nfunction buildStorages(storages, volumes) {\n  _.forEach(storages, (s) => {\n    const filteredVolumes = _.filter(volumes, ['PersistentVolumeClaim.storageClass.Name', s.Name, 'PersistentVolumeClaim.storageClass.Provisioner', s.Provisioner]);\n    s.Volumes = filteredVolumes;\n    s.size = computeSize(filteredVolumes);\n  });\n  return storages;\n}\n\nfunction computeSize(volumes) {\n  const size = _.sumBy(volumes, (v) => filesizeParser(v.PersistentVolumeClaim.Storage, { base: 10 }));\n  const format = KubernetesResourceQuotaHelper.formatBytes(size);\n  return `${format.size}${format.sizeUnit}`;\n}\n\nclass KubernetesVolumesController {\n  /* @ngInject */\n  constructor($async, $state, Notifications, Authentication, LocalStorage, KubernetesStorageService, KubernetesVolumeService, KubernetesApplicationService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.Notifications = Notifications;\n    this.Authentication = Authentication;\n    this.LocalStorage = LocalStorage;\n    this.KubernetesStorageService = KubernetesStorageService;\n    this.KubernetesVolumeService = KubernetesVolumeService;\n    this.KubernetesApplicationService = KubernetesApplicationService;\n\n    this.onInit = this.onInit.bind(this);\n    this.getVolumes = this.getVolumes.bind(this);\n    this.getVolumesAsync = this.getVolumesAsync.bind(this);\n    this.removeAction = this.removeAction.bind(this);\n    this.removeActionAsync = this.removeActionAsync.bind(this);\n  }\n\n  selectTab(index) {\n    this.LocalStorage.storeActiveTab('volumes', index);\n  }\n\n  async removeActionAsync(selectedItems) {\n    let actionCount = selectedItems.length;\n    for (const volume of selectedItems) {\n      try {\n        await this.KubernetesVolumeService.delete(volume);\n        this.Notifications.success('Volume successfully removed', volume.PersistentVolumeClaim.Name);\n        const index = this.volumes.indexOf(volume);\n        this.volumes.splice(index, 1);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to remove volume');\n      } finally {\n        --actionCount;\n        if (actionCount === 0) {\n          this.$state.reload(this.$state.current);\n        }\n      }\n    }\n  }\n\n  removeAction(selectedItems) {\n    confirmDelete('Do you want to remove the selected volume(s)?').then((confirmed) => {\n      if (confirmed) {\n        return this.$async(this.removeActionAsync, selectedItems);\n      }\n    });\n  }\n\n  async getVolumesAsync() {\n    const storageClasses = this.endpoint.Kubernetes.Configuration.StorageClasses;\n    try {\n      const [volumes, applications, storages] = await Promise.all([\n        this.KubernetesVolumeService.get(undefined, storageClasses),\n        this.KubernetesApplicationService.get(),\n        this.KubernetesStorageService.get(this.endpoint.Id),\n      ]);\n\n      this.volumes = _.map(volumes, (volume) => {\n        volume.Applications = KubernetesVolumeHelper.getUsingApplications(volume, applications);\n        return volume;\n      });\n      this.storages = buildStorages(storages, volumes);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retreive namespaces');\n    }\n  }\n\n  getVolumes() {\n    return this.$async(this.getVolumesAsync);\n  }\n\n  async onInit() {\n    this.state = {\n      viewReady: false,\n      currentName: this.$state.$current.name,\n      activeTab: this.LocalStorage.getActiveTab('volumes'),\n      isAdmin: this.Authentication.isAdmin(),\n    };\n\n    await this.getVolumes();\n\n    this.state.viewReady = true;\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  $onDestroy() {\n    if (this.state.currentName !== this.$state.$current.name) {\n      this.LocalStorage.storeActiveTab('volumes', 0);\n    }\n  }\n}\n\nexport default KubernetesVolumesController;\nangular.module('portainer.kubernetes').controller('KubernetesVolumesController', KubernetesVolumesController);\n","const _paq = (window._paq = window._paq || []);\n/* tracker methods like \"setCustomDimension\" should be called before \"trackPageView\" */\n\nvar u = 'https://portainer-ce.matomo.cloud/';\n_paq.push(['setTrackerUrl', u + 'matomo.php']);\n_paq.push(['setSiteId', '1']);\nvar d = document,\n  g = d.createElement('script'),\n  s = d.getElementsByTagName('script')[0];\ng.type = 'text/javascript';\ng.async = true;\ng.src = '//cdn.matomo.cloud/portainer-ce.matomo.cloud/matomo.js';\ns.parentNode.insertBefore(g, s);\n","import _ from 'lodash';\nimport { IAttributes, IDirective, IScope } from 'angular';\n\nimport { FeatureState } from '@/react/portainer/feature-flags/enums';\n\nimport { selectShow } from './feature-flags.service';\n\nconst BASENAME = 'limitedFeature';\n\n/* @ngInject */\nexport function limitedFeatureDirective(): IDirective {\n  return {\n    restrict: 'A',\n    link,\n  };\n\n  function link(scope: IScope, elem: JQLite, attrs: IAttributes) {\n    const { limitedFeatureDir: featureId } = attrs;\n\n    if (!featureId) {\n      return;\n    }\n\n    const limitedFeatureAttrs = Object.keys(attrs)\n      .filter((attr) => attr.startsWith(BASENAME) && attr !== `${BASENAME}Dir`)\n      .map((attr) => [_.kebabCase(attr.replace(BASENAME, '')), attrs[attr]]);\n\n    const state = selectShow(featureId);\n\n    if (state === FeatureState.HIDDEN) {\n      elem.hide();\n      return;\n    }\n\n    if (state === FeatureState.VISIBLE) {\n      return;\n    }\n\n    limitedFeatureAttrs.forEach(([attr, value = attr]) => {\n      const currentValue = elem.attr(attr) || '';\n      elem.attr(attr, `${currentValue} ${value}`.trim());\n    });\n  }\n}\n","import angular from 'angular';\n\nimport { limitedFeatureDirective } from './limited-feature.directive';\nimport './feature-flags.css';\n\nexport default angular\n  .module('portainer.feature-flags', [])\n  .directive('limitedFeatureDir', limitedFeatureDirective).name;\n","import angular from 'angular';\n\nimport { UserService } from './userService';\n\nexport const apiServicesModule = angular\n  .module('portainer.app.services.api', [])\n  .factory('UserService', UserService).name;\n","import { createStore } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\n\nimport { EnvironmentId } from '../portainer/environments/types';\n\nexport const environmentStore = createStore<{\n  environmentId?: number;\n  setEnvironmentId(id: EnvironmentId): void;\n  clear(): void;\n}>()(\n  persist(\n    (set) => ({\n      environmentId: undefined,\n      setEnvironmentId: (id: EnvironmentId) => set({ environmentId: id }),\n      clear: () => set({ environmentId: undefined }),\n    }),\n    {\n      name: keyBuilder('environmentId'),\n      getStorage: () => sessionStorage,\n    }\n  )\n);\n","import { ping } from '@/docker/services/ping';\nimport { environmentStore } from '@/react/hooks/current-environment-store';\nimport {\n  Environment,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\n\ninterface State {\n  currentEndpoint: Environment | null;\n  pingInterval: NodeJS.Timer | null;\n}\n\nconst DEFAULT_TITLE = 'Portainer';\n\n/* @ngInject */\nexport function EndpointProvider() {\n  const state: State = {\n    currentEndpoint: null,\n    pingInterval: null,\n  };\n\n  environmentStore.subscribe((state) => {\n    if (!state.environmentId) {\n      setCurrentEndpoint(null);\n    }\n  });\n\n  return { endpointID, setCurrentEndpoint, currentEndpoint, clean };\n\n  function endpointID() {\n    return state.currentEndpoint?.Id;\n  }\n\n  function setCurrentEndpoint(endpoint: Environment | null) {\n    state.currentEndpoint = endpoint;\n\n    if (state.pingInterval) {\n      clearInterval(state.pingInterval);\n      state.pingInterval = null;\n    }\n\n    if (endpoint && endpoint.Type === EnvironmentType.EdgeAgentOnDocker) {\n      state.pingInterval = setInterval(() => ping(endpoint.Id), 60 * 1000);\n    }\n\n    if (endpoint === null) {\n      sessionStorage.setItem(\n        'portainer.environmentId',\n        JSON.stringify(undefined)\n      );\n    }\n\n    document.title = endpoint\n      ? `${DEFAULT_TITLE} | ${endpoint.Name}`\n      : `${DEFAULT_TITLE}`;\n  }\n\n  function currentEndpoint() {\n    return state.currentEndpoint;\n  }\n\n  function clean() {\n    setCurrentEndpoint(null);\n    environmentStore.getState().clear();\n  }\n}\n\nexport type EndpointProviderInterface = ReturnType<typeof EndpointProvider>;\n","import angular from 'angular';\n\nimport { apiServicesModule } from './api';\nimport { Notifications } from './notifications';\nimport { HttpRequestHelperAngular } from './http-request.helper';\nimport { EndpointProvider } from './endpointProvider';\n\nexport default angular\n  .module('portainer.app.services', [apiServicesModule])\n  .factory('Notifications', Notifications)\n  .factory('EndpointProvider', EndpointProvider)\n  .factory('HttpRequestHelper', HttpRequestHelperAngular).name;\n","import { createColumnHelper } from '@tanstack/react-table';\nimport { truncate } from 'lodash';\nimport { useState } from 'react';\n\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { EnvironmentsQueryParams } from '@/react/portainer/environments/environment.service';\nimport { AutomationTestingProps } from '@/types';\n\nimport { useTableStateWithoutStorage } from '@@/datatables/useTableState';\nimport { Datatable, TableRow } from '@@/datatables';\n\nconst columHelper = createColumnHelper<Environment>();\n\nconst columns = [\n  columHelper.accessor('Name', {\n    header: 'Name',\n    id: 'Name',\n    cell: ({ getValue }) => truncate(getValue(), { length: 64 }),\n  }),\n];\n\nexport function GroupAssociationTable({\n  title,\n  query,\n  emptyContentLabel,\n  onClickRow,\n  'data-cy': dataCy,\n}: {\n  title: string;\n  query: EnvironmentsQueryParams;\n  emptyContentLabel: string;\n  onClickRow?: (env: Environment) => void;\n} & AutomationTestingProps) {\n  const tableState = useTableStateWithoutStorage('Name');\n  const [page, setPage] = useState(0);\n  const environmentsQuery = useEnvironmentList({\n    pageLimit: tableState.pageSize,\n    page: page + 1,\n    search: tableState.search,\n    sort: tableState.sortBy?.id as 'Name',\n    order: tableState.sortBy?.desc ? 'desc' : 'asc',\n    ...query,\n  });\n\n  const { environments } = environmentsQuery;\n\n  return (\n    <Datatable<Environment>\n      title={title}\n      columns={columns}\n      settingsManager={tableState}\n      dataset={environments}\n      isServerSidePagination\n      page={page}\n      onPageChange={setPage}\n      totalCount={environmentsQuery.totalCount}\n      renderRow={(row) => (\n        <TableRow<Environment>\n          cells={row.getVisibleCells()}\n          onClick={onClickRow ? () => onClickRow(row.original) : undefined}\n        />\n      )}\n      emptyContentLabel={emptyContentLabel}\n      data-cy={dataCy}\n      disableSelect\n    />\n  );\n}\n","import { url } from './url';\n\nexport const columns = [url];\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { HelmRepository } from '../types';\n\nexport const columnHelper = createColumnHelper<HelmRepository>();\n","import { Badge } from '@@/Badge';\n\nimport { columnHelper } from './helper';\n\nexport const url = columnHelper.accessor('URL', {\n  id: 'url',\n  cell: ({ row }) => (\n    <div className=\"flex\">\n      {row.original.URL}\n      {row.original.Global && (\n        <Badge type=\"success\" className=\"ml-2\">\n          Globally-set\n        </Badge>\n      )}\n    </div>\n  ),\n});\n","import { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { success as notifySuccess } from '@/portainer/services/notifications';\nimport { withError } from '@/react-tools/react-query';\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport {\n  CreateHelmRepositoryPayload,\n  HelmRepository,\n  HelmRepositories,\n} from './types';\n\nexport async function createHelmRepository(\n  helmRepository: CreateHelmRepositoryPayload\n) {\n  try {\n    const { data } = await axios.post<{ helmRepository: HelmRepository }>(\n      buildUrl(helmRepository.UserId),\n      helmRepository\n    );\n    return data.helmRepository;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to create Helm repository');\n  }\n}\n\nexport async function getHelmRepositories(userId: number) {\n  try {\n    const { data } = await axios.get<HelmRepositories>(buildUrl(userId));\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to get Helm repositories');\n  }\n}\n\nexport async function deleteHelmRepository(repo: HelmRepository) {\n  try {\n    await axios.delete<HelmRepository[]>(buildUrl(repo.UserId, repo.Id));\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete Helm repository');\n  }\n}\n\nexport async function deleteHelmRepositories(repos: HelmRepository[]) {\n  try {\n    await Promise.all(repos.map((repo) => deleteHelmRepository(repo)));\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to delete Helm repositories');\n  }\n}\n\nexport function useDeleteHelmRepositoryMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(deleteHelmRepository, {\n    onSuccess: (_, helmRepository) => {\n      notifySuccess('Helm repository deleted successfully', helmRepository.URL);\n      return queryClient.invalidateQueries(['helmrepositories']);\n    },\n    ...withError('Unable to delete Helm repository'),\n  });\n}\n\nexport function useDeleteHelmRepositoriesMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(deleteHelmRepositories, {\n    onSuccess: () => {\n      notifySuccess(\n        'Success',\n        `Helm ${pluralize(\n          deleteHelmRepositories.length,\n          'repository',\n          'repositories'\n        )} deleted successfully`\n      );\n      return queryClient.invalidateQueries(['helmrepositories']);\n    },\n    ...withError('Unable to delete Helm repositories'),\n  });\n}\n\nexport function useHelmRepositories(userId: number) {\n  return useQuery('helmrepositories', () => getHelmRepositories(userId), {\n    staleTime: 20,\n    ...withError('Unable to retrieve Helm repositories'),\n  });\n}\n\nexport function useCreateHelmRepositoryMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(createHelmRepository, {\n    onSuccess: (_, payload) => {\n      notifySuccess('Helm repository created successfully', payload.URL);\n      return queryClient.invalidateQueries(['helmrepositories']);\n    },\n    ...withError('Unable to create Helm repository'),\n  });\n}\n\nfunction buildUrl(userId: number, helmRepositoryId?: number) {\n  if (helmRepositoryId) {\n    return `/users/${userId}/helm/repositories/${helmRepositoryId}`;\n  }\n  return `/users/${userId}/helm/repositories`;\n}\n","import { useRouter } from '@uirouter/react';\nimport { Trash2 } from 'lucide-react';\n\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { AddButton, Button } from '@@/buttons';\n\nimport { HelmRepository } from './types';\nimport { useDeleteHelmRepositoriesMutation } from './helm-repositories.service';\n\ninterface Props {\n  selectedItems: HelmRepository[];\n}\n\nexport function HelmRepositoryDatatableActions({ selectedItems }: Props) {\n  const router = useRouter();\n  const deleteHelmRepoMutation = useDeleteHelmRepositoriesMutation();\n\n  return (\n    <div className=\"flex gap-2\">\n      <Button\n        disabled={selectedItems.length < 1}\n        color=\"dangerlight\"\n        onClick={() => onDeleteClick(selectedItems)}\n        data-cy=\"credentials-deleteButton\"\n        icon={Trash2}\n      >\n        Remove\n      </Button>\n\n      <AddButton to=\"portainer.account.createHelmRepository\">\n        Add Helm repository\n      </AddButton>\n    </div>\n  );\n\n  async function onDeleteClick(selectedItems: HelmRepository[]) {\n    const confirmed = await confirmDestructive({\n      title: 'Confirm action',\n      message: `Are you sure you want to remove the selected Helm ${pluralize(\n        selectedItems.length,\n        'repository',\n        'repositories'\n      )}?`,\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    deleteHelmRepoMutation.mutate(selectedItems, {\n      onSuccess: () => {\n        router.stateService.reload();\n      },\n    });\n  }\n}\n","import { useMemo, useEffect } from 'react';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport helm from '@/assets/ico/vendor/helm.svg?c';\nimport { isPureAdmin } from '@/portainer/users/user.helpers';\n\nimport { Link } from '@@/Link';\nimport { Datatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { columns } from './columns';\nimport { HelmRepositoryDatatableActions } from './HelmRepositoryDatatableActions';\nimport { useHelmRepositories } from './helm-repositories.service';\nimport { HelmRepository } from './types';\n\nconst storageKey = 'helmRepository';\n\nconst settingsStore = createPersistedStore(storageKey);\n\nexport function HelmRepositoryDatatable() {\n  const { user } = useCurrentUser();\n  const helmReposQuery = useHelmRepositories(user.Id);\n\n  const isAdminUser = isPureAdmin(user);\n\n  const tableState = useTableState(settingsStore, storageKey);\n\n  const helmRepos = useMemo(() => {\n    const helmRepos = [];\n    if (helmReposQuery.data?.GlobalRepository) {\n      const helmrepository: HelmRepository = {\n        Global: true,\n        URL: helmReposQuery.data.GlobalRepository,\n        Id: 0,\n        UserId: 0,\n      };\n      helmRepos.push(helmrepository);\n    }\n    return [...helmRepos, ...(helmReposQuery.data?.UserRepositories ?? [])];\n  }, [\n    helmReposQuery.data?.GlobalRepository,\n    helmReposQuery.data?.UserRepositories,\n  ]);\n\n  useEffect(() => {\n    // window.location.hash will get everything after the hashbang\n    // the regex will match the the content after each hash\n    const timeout = setTimeout(() => {\n      const regEx = /#!.*#(.*)/;\n      const match = window.location.hash.match(regEx);\n      if (match && match[1]) {\n        document.getElementById(match[1])?.scrollIntoView();\n      }\n    }, 1000);\n    return () => clearTimeout(timeout);\n  }, []);\n\n  return (\n    <Datatable\n      getRowId={(row) => String(row.Id)}\n      dataset={helmRepos}\n      description={<HelmDatatableDescription isAdmin={isAdminUser} />}\n      settingsManager={tableState}\n      columns={columns}\n      title=\"Helm repositories\"\n      titleIcon={helm}\n      titleId=\"helm-repositories\"\n      renderTableActions={(selectedRows) => (\n        <HelmRepositoryDatatableActions selectedItems={selectedRows} />\n      )}\n      emptyContentLabel=\"No Helm repository found\"\n      isLoading={helmReposQuery.isLoading}\n      isRowSelectable={(row) => !row.original.Global}\n    />\n  );\n}\n\nfunction HelmDatatableDescription({ isAdmin }: { isAdmin: boolean }) {\n  return (\n    <TextTip color=\"blue\" className=\"mb-3\">\n      Adding a Helm repo here only makes it available in your own user\n      account&apos;s Portainer UI. Helm charts are pulled down from these repos\n      (plus the{' '}\n      {isAdmin ? (\n        <Link to=\"portainer.settings\" params={{ '#': 'kubernetes-settings' }}>\n          <span>globally-set Helm repo</span>\n        </Link>\n      ) : (\n        <span>globally-set Helm repo</span>\n      )}\n      ) and shown in the Create from Manifest screen&apos;s Helm charts list.\n    </TextTip>\n  );\n}\n","import { r2a } from '@/react-tools/react2angular';\n\nimport { FileUploadField } from '@@/form-components/FileUpload';\n\nexport const fileUploadField = r2a(FileUploadField, [\n  'onChange',\n  'value',\n  'title',\n  'required',\n  'accept',\n  'inputId',\n  'color',\n  'name',\n]);\n","import { r2a } from '@/react-tools/react2angular';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nexport const switchField = r2a(SwitchField, [\n  'tooltip',\n  'checked',\n  'index',\n  'label',\n  'name',\n  'labelClass',\n  'fieldClass',\n  'data-cy',\n  'disabled',\n  'onChange',\n  'featureId',\n  'switchClass',\n  'setTooltipHtmlMessage',\n  'valueExplanation',\n]);\n","import {\n  IComponentOptions,\n  IComponentController,\n  IFormController,\n  IScope,\n  IOnChangesObject,\n} from 'angular';\n\nimport { VariableDefinition } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField';\n\nclass VariablesFieldController implements IComponentController {\n  formCtrl!: IFormController;\n\n  value!: Record<string, string>;\n\n  definitions!: VariableDefinition[];\n\n  onChange!: (value: Record<string, string>) => void;\n\n  $scope: IScope;\n\n  /* @ngInject */\n  constructor($scope: IScope) {\n    this.handleChange = this.handleChange.bind(this);\n\n    this.$scope = $scope;\n  }\n\n  handleChange(value: Record<string, string>) {\n    this.$scope.$evalAsync(() => {\n      this.onChange(value);\n    });\n  }\n\n  $onChanges({ value }: IOnChangesObject) {\n    if (value?.currentValue) {\n      this.checkValidity(value.currentValue);\n    }\n  }\n\n  checkValidity(value: Record<string, string>) {\n    this.formCtrl.$setValidity(\n      'templateVariables',\n      Object.entries(value).every(\n        ([name, value]) =>\n          !!value ||\n          this.definitions.some(\n            (def) => def.name === name && !!def.defaultValue\n          )\n      ),\n      this.formCtrl\n    );\n  }\n}\n\nexport const VariablesFieldAngular: IComponentOptions = {\n  template: `<custom-templates-variables-field-react\n    value=\"$ctrl.value\"\n    on-change=\"$ctrl.handleChange\"\n    definitions=\"$ctrl.definitions\"\n  ></custom-templates-variables-field-react>`,\n  bindings: {\n    value: '<',\n    definitions: '<',\n    onChange: '<',\n  },\n  require: {\n    formCtrl: '^form',\n  },\n  controller: VariablesFieldController,\n};\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { CustomTemplatesVariablesDefinitionField } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField';\nimport { CustomTemplatesVariablesField } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesField';\nimport { withControlledInput } from '@/react-tools/withControlledInput';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport {\n  CommonFields,\n  validation as commonFieldsValidation,\n} from '@/react/portainer/custom-templates/components/CommonFields';\nimport { PlatformField } from '@/react/portainer/custom-templates/components/PlatformSelector';\nimport { TemplateTypeSelector } from '@/react/portainer/custom-templates/components/TemplateTypeSelector';\nimport { withFormValidation } from '@/react-tools/withFormValidation';\nimport { AppTemplatesList } from '@/react/portainer/templates/app-templates/AppTemplatesList';\nimport { CustomTemplatesList } from '@/react/portainer/templates/custom-templates/ListView/CustomTemplatesList';\n\nimport { VariablesFieldAngular } from './variables-field';\n\nexport const ngModule = angular\n  .module('portainer.app.react.components.custom-templates', [])\n  .component(\n    'customTemplatesVariablesFieldReact',\n    r2a(withControlledInput(CustomTemplatesVariablesField), [\n      'value',\n      'onChange',\n      'definitions',\n      'errors',\n    ])\n  )\n  .component('customTemplatesVariablesField', VariablesFieldAngular)\n  .component(\n    'customTemplatesVariablesDefinitionField',\n    r2a(withControlledInput(CustomTemplatesVariablesDefinitionField), [\n      'onChange',\n      'value',\n      'errors',\n      'isVariablesNamesFromParent',\n    ])\n  )\n  .component(\n    'appTemplatesList',\n    r2a(withUIRouter(withCurrentUser(AppTemplatesList)), [\n      'onSelect',\n      'templates',\n      'selectedId',\n      'disabledTypes',\n      'fixedCategories',\n      'storageKey',\n      'templateLinkParams',\n    ])\n  )\n  .component(\n    'customTemplatesList',\n    r2a(withUIRouter(withCurrentUser(CustomTemplatesList)), [\n      'onDelete',\n      'onSelect',\n      'templates',\n      'selectedId',\n      'templateLinkParams',\n      'storageKey',\n    ])\n  )\n  .component(\n    'customTemplatesPlatformSelector',\n    r2a(PlatformField, ['onChange', 'value'])\n  )\n  .component(\n    'customTemplatesTypeSelector',\n    r2a(TemplateTypeSelector, ['onChange', 'value'])\n  );\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(CommonFields, { values: 'onChange' }),\n  'customTemplatesCommonFields',\n  [],\n  commonFieldsValidation\n);\n\nexport const customTemplatesModule = ngModule.name;\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AutoUpdateFieldset } from '@/react/portainer/gitops/AutoUpdateFieldset';\nimport { GitForm } from '@/react/portainer/gitops/GitForm';\nimport { AuthFieldset } from '@/react/portainer/gitops/AuthFieldset';\nimport { InfoPanel } from '@/react/portainer/gitops/InfoPanel';\nimport { RefField } from '@/react/portainer/gitops/RefField';\nimport { TimeWindowDisplay } from '@/react/portainer/gitops/TimeWindowDisplay';\n\nexport const gitFormModule = angular\n  .module('portainer.app.components.forms.git', [])\n  .component(\n    'reactGitForm',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(GitForm))), [\n      'value',\n      'onChange',\n      'environmentType',\n      'isDockerStandalone',\n      'deployMethod',\n      'isAdditionalFilesFieldVisible',\n      'isForcePullVisible',\n      'isAuthExplanationVisible',\n      'errors',\n      'baseWebhookUrl',\n      'webhookId',\n      'webhooksDocs',\n      'createdFromCustomTemplateId',\n    ])\n  )\n  .component(\n    'gitFormInfoPanel',\n    r2a(InfoPanel, [\n      'additionalFiles',\n      'className',\n      'configFilePath',\n      'type',\n      'url',\n    ])\n  )\n  .component(\n    'reactGitFormAutoUpdateFieldset',\n    r2a(withUIRouter(withReactQuery(AutoUpdateFieldset)), [\n      'value',\n      'onChange',\n      'environmentType',\n      'isForcePullVisible',\n      'errors',\n      'baseWebhookUrl',\n      'webhookId',\n      'webhooksDocs',\n    ])\n  )\n  .component(\n    'reactGitFormAuthFieldset',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(AuthFieldset))), [\n      'value',\n      'isAuthExplanationVisible',\n      'onChange',\n      'errors',\n    ])\n  )\n  .component(\n    'reactGitFormRefField',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(RefField))), [\n      'error',\n      'model',\n      'onChange',\n      'stackId',\n      'createdFromCustomTemplateId',\n      'value',\n      'isUrlValid',\n    ])\n  )\n  .component(\n    'timeWindowDisplay',\n    r2a(withReactQuery(withUIRouter(TimeWindowDisplay)), [])\n  ).name;\n","import { usePublicSettings } from '../settings/queries';\n\nexport enum FeatureFlag {\n  FDO = 'fdo',\n}\n\nexport function useFeatureFlag(\n  flag: FeatureFlag,\n  {\n    onSuccess,\n    enabled = true,\n  }: { onSuccess?: (isEnabled: boolean) => void; enabled?: boolean } = {}\n) {\n  return usePublicSettings<boolean>({\n    select: (settings) => settings.Features[flag],\n    onSuccess,\n    enabled,\n  });\n}\n","import { isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor('dateCreated', {\n  header: 'Created',\n  id: 'created',\n  cell: ({ getValue }) => {\n    const value = getValue();\n    return isoDateFromTimestamp(value);\n  },\n});\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { Profile } from '@/portainer/hostmanagement/fdo/model';\n\nexport const columnHelper = createColumnHelper<Profile>();\n","import { Profile } from '@/portainer/hostmanagement/fdo/model';\n\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\n\nimport { created } from './created';\n\nexport const columns = [\n  buildNameColumn<Profile>('name', 'portainer.endpoints.profile.edit'),\n  created,\n];\n","import { useQueryClient } from 'react-query';\nimport { useRouter } from '@uirouter/react';\nimport { PlusCircle, Trash2 } from 'lucide-react';\n\nimport { Profile } from '@/portainer/hostmanagement/fdo/model';\nimport * as notifications from '@/portainer/services/notifications';\nimport {\n  deleteProfile,\n  duplicateProfile,\n} from '@/portainer/hostmanagement/fdo/fdo.service';\n\nimport { confirm, confirmDestructive } from '@@/modals/confirm';\nimport { Link } from '@@/Link';\nimport { Button } from '@@/buttons';\nimport { buildConfirmButton } from '@@/modals/utils';\n\ninterface Props {\n  isFDOEnabled: boolean;\n  selectedItems: Profile[];\n}\n\nexport function FDOProfilesDatatableActions({\n  isFDOEnabled,\n  selectedItems,\n}: Props) {\n  const router = useRouter();\n  const queryClient = useQueryClient();\n\n  return (\n    <div className=\"actionBar\">\n      <Link to=\"portainer.endpoints.profile\" className=\"space-left\">\n        <Button disabled={!isFDOEnabled} icon={PlusCircle}>\n          Add Profile\n        </Button>\n      </Link>\n\n      <Button\n        disabled={!isFDOEnabled || selectedItems.length !== 1}\n        onClick={() => onDuplicateProfileClick()}\n        icon={PlusCircle}\n      >\n        Duplicate\n      </Button>\n\n      <Button\n        disabled={!isFDOEnabled || selectedItems.length < 1}\n        color=\"danger\"\n        onClick={() => onDeleteProfileClick()}\n        icon={Trash2}\n      >\n        Remove\n      </Button>\n    </div>\n  );\n\n  async function onDuplicateProfileClick() {\n    const confirmed = await confirm({\n      title: 'Are you sure ?',\n      message: 'This action will duplicate the selected profile. Continue?',\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    try {\n      const profile = selectedItems[0];\n      const newProfile = await duplicateProfile(profile.id);\n      notifications.success('Profile successfully duplicated', profile.name);\n      router.stateService.go('portainer.endpoints.profile.edit', {\n        id: newProfile.id,\n      });\n    } catch (err) {\n      notifications.error(\n        'Failure',\n        err as Error,\n        'Unable to duplicate profile'\n      );\n    }\n  }\n\n  async function onDeleteProfileClick() {\n    const confirmed = await confirmDestructive({\n      title: 'Are you sure?',\n      message: 'This action will delete the selected profile(s). Continue?',\n      confirmButton: buildConfirmButton('Remove', 'danger'),\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    await Promise.all(\n      selectedItems.map(async (profile) => {\n        try {\n          await deleteProfile(profile.id);\n\n          notifications.success('Profile successfully removed', profile.name);\n        } catch (err) {\n          notifications.error(\n            'Failure',\n            err as Error,\n            'Unable to remove profile'\n          );\n        }\n      })\n    );\n\n    await queryClient.invalidateQueries('fdo_profiles');\n  }\n}\n","import { List } from 'lucide-react';\n\nimport { Datatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { columns } from './columns';\nimport { FDOProfilesDatatableActions } from './FDOProfilesDatatableActions';\nimport { useFDOProfiles } from './useFDOProfiles';\n\nconst storageKey = 'fdoProfiles';\n\nconst settingsStore = createPersistedStore(storageKey, 'name');\n\nexport interface FDOProfilesDatatableProps {\n  isFDOEnabled: boolean;\n}\n\nexport function FDOProfilesDatatable({\n  isFDOEnabled,\n}: FDOProfilesDatatableProps) {\n  const tableState = useTableState(settingsStore, storageKey);\n\n  const { isLoading, profiles } = useFDOProfiles();\n\n  return (\n    <Datatable\n      columns={columns}\n      dataset={profiles}\n      settingsManager={tableState}\n      title=\"Device Profiles\"\n      titleIcon={List}\n      disableSelect={!isFDOEnabled}\n      emptyContentLabel=\"No profiles found\"\n      getRowId={(row) => row.id.toString()}\n      isLoading={isLoading}\n      renderTableActions={(selectedItems) => (\n        <FDOProfilesDatatableActions\n          isFDOEnabled={isFDOEnabled}\n          selectedItems={selectedItems}\n        />\n      )}\n    />\n  );\n}\n","import { useEffect, useMemo } from 'react';\nimport { useQuery } from 'react-query';\n\nimport PortainerError from '@/portainer/error';\nimport * as notifications from '@/portainer/services/notifications';\nimport { getProfiles } from '@/portainer/hostmanagement/fdo/fdo.service';\n\nexport function useFDOProfiles() {\n  const { isLoading, data, isError, error } = useQuery('fdo_profiles', () =>\n    getProfiles()\n  );\n\n  useEffect(() => {\n    if (isError) {\n      notifications.error(\n        'Failure',\n        error as Error,\n        'Failed retrieving FDO profiles'\n      );\n    }\n  }, [isError, error]);\n\n  const profiles = useMemo(() => data || [], [data]);\n\n  return {\n    isLoading,\n    profiles,\n    error: isError ? (error as PortainerError) : undefined,\n  };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"fdoTable\":\"app-react-portainer-settings-EdgeComputeView-SettingsFDO-SettingsFDO-module__fdo-table\"};","import { useEffect, useState } from 'react';\nimport { Formik, Field, Form } from 'formik';\nimport { FlaskConical, Laptop } from 'lucide-react';\n\nimport { FDOConfiguration } from '@/portainer/hostmanagement/fdo/model';\nimport {\n  FeatureFlag,\n  useFeatureFlag,\n} from '@/react/portainer/feature-flags/useFeatureFlag';\n\nimport { Switch } from '@@/form-components/SwitchField/Switch';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Input } from '@@/form-components/Input';\n\nimport { FDOProfilesDatatable } from '../FDOProfilesDatatable';\n\nimport styles from './SettingsFDO.module.css';\nimport { validationSchema } from './SettingsFDO.validation';\n\nexport interface Settings {\n  fdoConfiguration: FDOConfiguration;\n  EnableEdgeComputeFeatures: boolean;\n}\n\ninterface Props {\n  settings: Settings;\n  onSubmit(values: FDOConfiguration): void;\n}\n\nexport function SettingsFDO({ settings, onSubmit }: Props) {\n  const flagEnabledQuery = useFeatureFlag(FeatureFlag.FDO);\n\n  if (!flagEnabledQuery.data) {\n    return (\n      <Widget>\n        <Widget.Body>\n          <TextTip color=\"blue\" icon={FlaskConical}>\n            Since FDO is still an experimental feature that requires additional\n            infrastructure, it has been temporarily hidden in the UI.\n          </TextTip>\n        </Widget.Body>\n      </Widget>\n    );\n  }\n\n  return <SettingsFDOForm settings={settings} onSubmit={onSubmit} />;\n}\n\nexport function SettingsFDOForm({ settings, onSubmit }: Props) {\n  const fdoConfiguration = settings ? settings.fdoConfiguration : null;\n  const initialFDOEnabled = fdoConfiguration ? fdoConfiguration.enabled : false;\n\n  const [isFDOEnabled, setIsFDOEnabled] = useState(initialFDOEnabled);\n  useEffect(() => {\n    setIsFDOEnabled(settings?.fdoConfiguration?.enabled);\n  }, [settings]);\n\n  const initialValues = {\n    enabled: initialFDOEnabled,\n    ownerURL: fdoConfiguration ? fdoConfiguration.ownerURL : '',\n    ownerUsername: fdoConfiguration ? fdoConfiguration.ownerUsername : '',\n    ownerPassword: fdoConfiguration ? fdoConfiguration.ownerPassword : '',\n  };\n\n  const edgeComputeFeaturesEnabled = settings\n    ? settings.EnableEdgeComputeFeatures\n    : false;\n\n  return (\n    <div className=\"row\">\n      <Widget>\n        <WidgetTitle icon={Laptop} title=\"FDO\" />\n        <WidgetBody>\n          <Formik\n            initialValues={initialValues}\n            onSubmit={onSubmit}\n            enableReinitialize\n            validationSchema={() => validationSchema()}\n            validateOnChange\n            validateOnMount\n          >\n            {({\n              values,\n              errors,\n              handleSubmit,\n              setFieldValue,\n              isSubmitting,\n              isValid,\n              dirty,\n            }) => (\n              <Form className=\"form-horizontal\" onSubmit={handleSubmit}>\n                <FormControl\n                  inputId=\"edge_enableFDO\"\n                  label=\"Enable FDO Management Service\"\n                  size=\"small\"\n                  errors={errors.enabled}\n                >\n                  <Switch\n                    id=\"edge_enableFDO\"\n                    name=\"edge_enableFDO\"\n                    className=\"space-right\"\n                    disabled={!edgeComputeFeaturesEnabled}\n                    checked={edgeComputeFeaturesEnabled && values.enabled}\n                    onChange={(e) => onChangedEnabled(e, setFieldValue)}\n                  />\n                </FormControl>\n\n                <TextTip color=\"blue\" className=\"mb-2\">\n                  When enabled, this will allow Portainer to interact with FDO\n                  Services.\n                </TextTip>\n\n                {edgeComputeFeaturesEnabled && values.enabled && (\n                  <>\n                    <hr />\n\n                    <FormControl\n                      inputId=\"owner_url\"\n                      label=\"Owner Service Server\"\n                      errors={errors.ownerURL}\n                    >\n                      <Field\n                        as={Input}\n                        name=\"ownerURL\"\n                        id=\"owner_url\"\n                        placeholder=\"http://127.0.0.1:8042\"\n                        value={values.ownerURL}\n                        data-cy=\"fdo-serverInput\"\n                      />\n                    </FormControl>\n\n                    <FormControl\n                      inputId=\"owner_username\"\n                      label=\"Owner Service Username\"\n                      errors={errors.ownerUsername}\n                    >\n                      <Field\n                        as={Input}\n                        name=\"ownerUsername\"\n                        id=\"owner_username\"\n                        placeholder=\"username\"\n                        value={values.ownerUsername}\n                        data-cy=\"fdo-usernameInput\"\n                      />\n                    </FormControl>\n\n                    <FormControl\n                      inputId=\"owner_password\"\n                      label=\"Owner Service Password\"\n                      errors={errors.ownerPassword}\n                    >\n                      <Field\n                        as={Input}\n                        type=\"password\"\n                        name=\"ownerPassword\"\n                        id=\"owner_password\"\n                        placeholder=\"password\"\n                        value={values.ownerPassword}\n                        data-cy=\"fdo-passwordInput\"\n                      />\n                    </FormControl>\n                  </>\n                )}\n\n                <div className=\"form-group mt-5\">\n                  <div className=\"col-sm-12\">\n                    <LoadingButton\n                      disabled={!isValid || !dirty}\n                      data-cy=\"settings-fdoButton\"\n                      isLoading={isSubmitting}\n                      loadingText=\"Saving settings...\"\n                    >\n                      Save settings\n                    </LoadingButton>\n                  </div>\n                </div>\n              </Form>\n            )}\n          </Formik>\n\n          {edgeComputeFeaturesEnabled && isFDOEnabled && (\n            <div className={styles.fdoTable}>\n              <FormSectionTitle>Device Profiles</FormSectionTitle>\n              <TextTip color=\"blue\" className=\"mb-2\">\n                Add, Edit and Manage the list of device profiles available\n                during FDO device setup\n              </TextTip>\n              <FDOProfilesDatatable isFDOEnabled={initialFDOEnabled} />\n            </div>\n          )}\n        </WidgetBody>\n      </Widget>\n    </div>\n  );\n\n  async function onChangedEnabled(\n    e: boolean,\n    setFieldValue: (\n      field: string,\n      value: unknown,\n      shouldValidate?: boolean\n    ) => void\n  ) {\n    setIsFDOEnabled(e);\n    setFieldValue('enabled', e);\n  }\n}\n","import { object, string } from 'yup';\n\nexport function validationSchema() {\n  return object().shape({\n    ownerURL: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    ownerUsername: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    ownerPassword: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n  });\n}\n","import { useState } from 'react';\nimport { Formik, Field, Form } from 'formik';\nimport { Laptop } from 'lucide-react';\n\nimport { OpenAMTConfiguration } from '@/react/edge/edge-devices/open-amt/types';\n\nimport { Switch } from '@@/form-components/SwitchField/Switch';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Input } from '@@/form-components/Input';\nimport { FileUploadField } from '@@/form-components/FileUpload';\n\nimport { validationSchema } from './SettingsOpenAMT.validation';\n\nexport interface Settings {\n  openAMTConfiguration: OpenAMTConfiguration;\n  EnableEdgeComputeFeatures: boolean;\n}\n\ninterface Props {\n  settings: Settings;\n  onSubmit(values: OpenAMTConfiguration): void;\n}\n\nexport function SettingsOpenAMT({ settings, onSubmit }: Props) {\n  const [certFile, setCertFile] = useState<File>();\n  async function handleFileUpload(\n    file: File,\n    setFieldValue: (\n      field: string,\n      value: unknown,\n      shouldValidate?: boolean\n    ) => void\n  ) {\n    if (file) {\n      setCertFile(file);\n      const fileContent = await readFileContent(file);\n      setFieldValue('certFileContent', fileContent);\n      setFieldValue('certFileName', file.name);\n    }\n  }\n\n  function readFileContent(file: File) {\n    return new Promise((resolve, reject) => {\n      const fileReader = new FileReader();\n      fileReader.onload = (e) => {\n        if (e.target == null || e.target.result == null) {\n          resolve('');\n          return;\n        }\n        const base64 = e.target.result.toString();\n        // remove prefix of \"data:application/x-pkcs12;base64,\" returned by \"readAsDataURL()\"\n        const index = base64.indexOf('base64,');\n        const cert = base64.substring(index + 7, base64.length);\n        resolve(cert);\n      };\n      fileReader.onerror = () => {\n        reject(new Error('error reading provisioning certificate file'));\n      };\n      fileReader.readAsDataURL(file);\n    });\n  }\n\n  const openAMTConfiguration = settings ? settings.openAMTConfiguration : null;\n  const initialValues = {\n    enabled: openAMTConfiguration ? openAMTConfiguration.enabled : false,\n    mpsServer: openAMTConfiguration ? openAMTConfiguration.mpsServer : '',\n    mpsUser: openAMTConfiguration ? openAMTConfiguration.mpsUser : '',\n    mpsPassword: openAMTConfiguration ? openAMTConfiguration.mpsPassword : '',\n    domainName: openAMTConfiguration ? openAMTConfiguration.domainName : '',\n    certFileContent: openAMTConfiguration\n      ? openAMTConfiguration.certFileContent\n      : '',\n    certFileName: openAMTConfiguration ? openAMTConfiguration.certFileName : '',\n    certFilePassword: openAMTConfiguration\n      ? openAMTConfiguration.certFilePassword\n      : '',\n  };\n\n  if (\n    initialValues.certFileContent &&\n    initialValues.certFileName &&\n    !certFile\n  ) {\n    setCertFile(new File([], initialValues.certFileName));\n  }\n\n  const edgeComputeFeaturesEnabled = settings\n    ? settings.EnableEdgeComputeFeatures\n    : false;\n\n  return (\n    <div className=\"row\">\n      <Widget>\n        <WidgetTitle icon={Laptop} title=\"Intel OpenAMT\" />\n        <WidgetBody>\n          <Formik\n            initialValues={initialValues}\n            onSubmit={onSubmit}\n            enableReinitialize\n            validationSchema={() => validationSchema()}\n            validateOnChange\n            validateOnMount\n          >\n            {({\n              values,\n              errors,\n              handleSubmit,\n              setFieldValue,\n              isSubmitting,\n              isValid,\n              dirty,\n            }) => (\n              <Form className=\"form-horizontal\" onSubmit={handleSubmit}>\n                <FormControl\n                  inputId=\"edge_enableOpenAMT\"\n                  label=\"Enable OpenAMT\"\n                  errors={errors.enabled}\n                  size=\"small\"\n                >\n                  <Switch\n                    id=\"edge_enableOpenAMT\"\n                    name=\"edge_enableOpenAMT\"\n                    className=\"space-right\"\n                    disabled={!edgeComputeFeaturesEnabled}\n                    checked={edgeComputeFeaturesEnabled && values.enabled}\n                    onChange={(e) => setFieldValue('enabled', e)}\n                  />\n                </FormControl>\n\n                <TextTip color=\"blue\" className=\"mb-2\">\n                  When enabled, this will allow Portainer to interact with an\n                  OpenAMT MPS API.\n                </TextTip>\n\n                {edgeComputeFeaturesEnabled && values.enabled && (\n                  <>\n                    <hr />\n\n                    <FormControl\n                      inputId=\"mps_server\"\n                      label=\"MPS Server\"\n                      size=\"medium\"\n                      errors={errors.mpsServer}\n                    >\n                      <Field\n                        as={Input}\n                        name=\"mpsServer\"\n                        id=\"mps_server\"\n                        placeholder=\"Enter the MPS Server\"\n                        value={values.mpsServer}\n                        data-cy=\"openAMT-serverInput\"\n                      />\n                    </FormControl>\n\n                    <FormControl\n                      inputId=\"mps_username\"\n                      label=\"MPS User\"\n                      size=\"medium\"\n                      errors={errors.mpsUser}\n                    >\n                      <Field\n                        as={Input}\n                        name=\"mpsUser\"\n                        id=\"mps_username\"\n                        placeholder=\"Enter the MPS User\"\n                        value={values.mpsUser}\n                        data-cy=\"openAMT-usernameInput\"\n                      />\n                    </FormControl>\n\n                    <FormControl\n                      inputId=\"mps_password\"\n                      label=\"MPS Password\"\n                      size=\"medium\"\n                      tooltip=\"Needs to be 8-32 characters including one uppercase, one lowercase letters, one base-10 digit and one special character.\"\n                      errors={errors.mpsPassword}\n                    >\n                      <Field\n                        as={Input}\n                        type=\"password\"\n                        name=\"mpsPassword\"\n                        id=\"mps_password\"\n                        placeholder=\"Enter the MPS Password\"\n                        value={values.mpsPassword}\n                        data-cy=\"openAMT-passwordInput\"\n                      />\n                    </FormControl>\n\n                    <hr />\n\n                    <FormControl\n                      inputId=\"domain_name\"\n                      label=\"Domain Name\"\n                      size=\"medium\"\n                      tooltip=\"Enter the FQDN that is associated with the provisioning certificate (i.e amtdomain.com)\"\n                      errors={errors.domainName}\n                    >\n                      <Field\n                        as={Input}\n                        name=\"domainName\"\n                        id=\"domain_name\"\n                        placeholder=\"Enter the Domain Name\"\n                        value={values.domainName}\n                        data-cy=\"openAMT-domainInput\"\n                      />\n                    </FormControl>\n\n                    <FormControl\n                      inputId=\"certificate_file\"\n                      label=\"Provisioning Certificate File (.pfx)\"\n                      size=\"medium\"\n                      tooltip=\"Supported CAs are Comodo, DigiCert, Entrust and GoDaddy.<br>The certificate must contain the private key.<br>On AMT 15 based devices you need to use SHA2.\"\n                      errors={errors.certFileContent}\n                      setTooltipHtmlMessage\n                    >\n                      <FileUploadField\n                        inputId=\"certificate_file\"\n                        title=\"Upload file\"\n                        accept=\".pfx\"\n                        value={certFile}\n                        onChange={(file) =>\n                          handleFileUpload(file, setFieldValue)\n                        }\n                      />\n                    </FormControl>\n\n                    <FormControl\n                      inputId=\"certificate_password\"\n                      label=\"Provisioning Certificate Password\"\n                      size=\"medium\"\n                      tooltip=\"Needs to be 8-32 characters including one uppercase, one lowercase letters, one base-10 digit and one special character.\"\n                      errors={errors.certFilePassword}\n                    >\n                      <Field\n                        as={Input}\n                        type=\"password\"\n                        name=\"certFilePassword\"\n                        id=\"certificate_password\"\n                        placeholder=\"**********\"\n                        value={values.certFilePassword}\n                        data-cy=\"openAMT-certPasswordInput\"\n                      />\n                    </FormControl>\n                  </>\n                )}\n\n                <div className=\"form-group mt-5\">\n                  <div className=\"col-sm-12\">\n                    <LoadingButton\n                      disabled={!isValid || !dirty}\n                      data-cy=\"settings-fdoButton\"\n                      isLoading={isSubmitting}\n                      loadingText=\"Saving settings...\"\n                    >\n                      Save settings\n                    </LoadingButton>\n                  </div>\n                </div>\n              </Form>\n            )}\n          </Formik>\n        </WidgetBody>\n      </Widget>\n    </div>\n  );\n}\n","import { ReactNode } from 'react';\n\nexport interface Props {\n  value: string;\n  icon?: ReactNode;\n  color: string;\n}\n\n// Helper function used as workaround to add opacity to the background color\nfunction setOpacity(hex: string, alpha: number) {\n  return `${hex}${Math.floor(alpha * 255)\n    .toString(16)\n    .padStart(2, '0')}`;\n}\n\nexport function Badge({ icon, value, color }: Props) {\n  return (\n    <span\n      className=\"badge inline-flex items-center\"\n      style={{\n        backgroundColor: setOpacity(color, 0.1),\n        color,\n        padding: '5px 10px',\n      }}\n    >\n      {icon}\n      {value}\n    </span>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"sliderBadge\":\"app-react-portainer-settings-AuthenticationView-InternalAuth-PasswordLengthSlider-PasswordLengthSlider-module__slider-badge\",\"root\":\"app-react-portainer-settings-AuthenticationView-InternalAuth-PasswordLengthSlider-PasswordLengthSlider-module__root\"};","import { useCallback } from 'react';\nimport RcSlider from 'rc-slider';\nimport clsx from 'clsx';\nimport { Lock, XCircle, CheckCircle } from 'lucide-react';\n\nimport { SliderTooltip } from '@@/Tip/SliderTooltip';\n\nimport 'rc-slider/assets/index.css';\n\nimport { Badge } from '../Badge';\n\nimport styles from './PasswordLengthSlider.module.css';\n\nexport interface Props {\n  min: number;\n  max: number;\n  step: number;\n  value: number;\n  onChange(value: number | number[]): void;\n}\n\ntype Strength = 'weak' | 'good' | 'strong' | 'veryStrong';\n\nconst sliderProperties: Record<\n  Strength,\n  { strength: string; color: string; text: string }\n> = {\n  weak: {\n    strength: 'weak',\n    color: '#F04438',\n    text: 'Weak password',\n  },\n  good: {\n    strength: 'good',\n    color: '#F79009',\n    text: 'Good password',\n  },\n  strong: {\n    strength: 'strong',\n    color: '#12B76A',\n    text: 'Strong password',\n  },\n  veryStrong: {\n    strength: 'veryStrong',\n    color: '#0BA5EC',\n    text: 'Very strong password',\n  },\n};\n\nexport function PasswordLengthSlider({\n  min,\n  max,\n  step,\n  value,\n  onChange,\n}: Props) {\n  const sliderProps = getSliderProps(value);\n\n  function getSliderProps(value: number) {\n    if (value < 10) {\n      return sliderProperties.weak;\n    }\n\n    if (value < 12) {\n      return sliderProperties.good;\n    }\n\n    if (value < 14) {\n      return sliderProperties.strong;\n    }\n\n    return sliderProperties.veryStrong;\n  }\n\n  function getBadgeIcon(strength: string) {\n    switch (strength) {\n      case 'weak':\n        return <XCircle size=\"13\" className=\"space-right\" strokeWidth=\"3px\" />;\n      case 'good':\n      case 'strong':\n        return (\n          <CheckCircle size=\"13\" className=\"space-right\" strokeWidth=\"3px\" />\n        );\n      default:\n        return <Lock size=\"13\" className=\"space-right\" strokeWidth=\"3px\" />;\n    }\n  }\n\n  function handleChange(sliderValue: number | number[]) {\n    onChange(sliderValue);\n  }\n\n  const sliderTooltip = useCallback(\n    (node, handleProps) => (\n      <SliderTooltip\n        value={`${handleProps.value} characters`}\n        child={node}\n        delay={800}\n      />\n    ),\n    []\n  );\n\n  return (\n    <div className={clsx(styles.root, styles[sliderProps.strength])}>\n      <div className=\"col-sm-4\">\n        <RcSlider\n          handleRender={sliderTooltip}\n          min={min}\n          max={max}\n          step={step}\n          defaultValue={12}\n          value={value}\n          onChange={handleChange}\n        />\n      </div>\n\n      <div className={clsx('col-sm-2', styles.sliderBadge)}>\n        <Badge\n          icon={getBadgeIcon(sliderProps.strength)}\n          value={sliderProps.text}\n          color={sliderProps.color}\n        />\n      </div>\n    </div>\n  );\n}\n","import { LoadingButton } from '@@/buttons/LoadingButton';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\n\nexport interface Props {\n  onSubmit(): void;\n  isLoading: boolean;\n}\n\nexport function SaveAuthSettingsButton({ onSubmit, isLoading }: Props) {\n  return (\n    <>\n      <FormSectionTitle>Actions</FormSectionTitle>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <LoadingButton\n            loadingText=\"Saving...\"\n            isLoading={isLoading}\n            onClick={() => onSubmit()}\n          >\n            Save settings\n          </LoadingButton>\n        </div>\n      </div>\n    </>\n  );\n}\n","import { Settings } from '@/react/portainer/settings/types';\n\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nimport { PasswordLengthSlider } from './PasswordLengthSlider/PasswordLengthSlider';\nimport { SaveAuthSettingsButton } from './SaveAuthSettingsButton';\n\nexport interface Props {\n  onSaveSettings(): void;\n  isLoading: boolean;\n  value: Settings['InternalAuthSettings'];\n  onChange(value: number): void;\n}\n\nexport function InternalAuth({\n  onSaveSettings,\n  isLoading,\n  value,\n  onChange,\n}: Props) {\n  async function onSubmit() {\n    if (value.RequiredPasswordLength < 10) {\n      const confirmed = await confirmDestructive({\n        title: 'Allow weak passwords?',\n        message:\n          'You have set an insecure minimum password length. This could leave your system vulnerable to attack, are you sure?',\n        confirmButton: buildConfirmButton('Yes', 'danger'),\n      });\n\n      if (confirmed) {\n        onSaveSettings();\n      }\n    } else {\n      onSaveSettings();\n    }\n  }\n\n  return (\n    <>\n      <FormSectionTitle>Information</FormSectionTitle>\n      <div className=\"form-group col-sm-12 text-muted small\">\n        When using internal authentication, Portainer will encrypt user\n        passwords and store credentials locally.\n      </div>\n\n      <FormSectionTitle>Password rules</FormSectionTitle>\n      <div className=\"form-group col-sm-12 text-muted small\">\n        Define minimum length for user-generated passwords.\n      </div>\n\n      <div className=\"form-group\">\n        <PasswordLengthSlider\n          min={1}\n          max={18}\n          step={1}\n          value={value.RequiredPasswordLength}\n          onChange={onChange}\n        />\n      </div>\n\n      <SaveAuthSettingsButton onSubmit={onSubmit} isLoading={isLoading} />\n    </>\n  );\n}\n","export function isValidUrl(\n  value: string | undefined,\n  additionalCheck: (url: URL) => boolean = () => true\n) {\n  if (!value) {\n    return false;\n  }\n\n  try {\n    const url = new URL(value);\n    return additionalCheck(url);\n  } catch {\n    return false;\n  }\n}\n","import { SchemaOf, bool, boolean, number, object, string } from 'yup';\n\nimport { isValidUrl } from '@@/form-components/validate-url';\n\nimport { Values } from './types';\n\nexport function validation(): SchemaOf<Values> {\n  return object({\n    edgeAgentCheckinInterval: number().required(),\n    enableTelemetry: bool().default(false),\n    loginBannerEnabled: boolean().default(false),\n    loginBanner: string()\n      .default('')\n      .when('loginBannerEnabled', {\n        is: true,\n        then: (schema) =>\n          schema.required('Login banner is required when enabled'),\n      }),\n    logoEnabled: boolean().default(false),\n    logo: string()\n      .default('')\n      .when('logoEnabled', {\n        is: true,\n        then: (schema) =>\n          schema\n            .required('Logo url is required when enabled')\n            .test('valid-url', 'Must be a valid URL', (value) =>\n              isValidUrl(value)\n            ),\n      }),\n    snapshotInterval: string().required('Snapshot interval is required'),\n    templatesUrl: string()\n      .default('')\n      .test(\n        'valid-url',\n        'Must be a valid URL',\n        (value) => !value || isValidUrl(value)\n      ),\n  });\n}\n","import { useField } from 'formik';\nimport { useState } from 'react';\n\nexport function useToggledValue(\n  fieldName: string,\n  toggleFieldName = `${fieldName}Enabled`\n) {\n  const [, { value }, { setValue }] = useField<string>(fieldName);\n  const [, { value: isEnabled }, { setValue: setIsEnabled }] =\n    useField<boolean>(toggleFieldName);\n  const [oldValue, setOldValue] = useState(value);\n\n  async function handleIsEnabledChange(enabled: boolean) {\n    setOldValue(enabled ? '' : value);\n    // `setValue` is async, formik types are wrong for this version\n    await setIsEnabled(enabled);\n    await setValue(enabled ? oldValue : '', true);\n  }\n\n  return [isEnabled, handleIsEnabledChange] as const;\n}\n","import { useIsDemo } from '@/react/portainer/system/useSystemStatus';\n\nexport function DemoAlert() {\n  const isDemoQuery = useIsDemo();\n  if (!isDemoQuery.data) {\n    return null;\n  }\n\n  return (\n    <div className=\"col-sm-12 mt-2\">\n      <span className=\"small text-muted\">\n        You cannot use this feature in the demo version of Portainer.\n      </span>\n    </div>\n  );\n}\n","import { useField, Field } from 'formik';\n\nimport { useIsDemo } from '@/react/portainer/system/useSystemStatus';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { useToggledValue } from '../useToggledValue';\n\nimport { DemoAlert } from './DemoAlert';\n\nexport function LogoFieldset() {\n  const [{ name }, { error }] = useField<string>('logo');\n  const isDemoQuery = useIsDemo();\n\n  const [isEnabled, setIsEnabled] = useToggledValue('logo');\n\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"Use custom logo\"\n            checked={isEnabled}\n            name=\"toggle_logo\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            disabled={isDemoQuery.data}\n            onChange={(checked) => setIsEnabled(checked)}\n          />\n        </div>\n\n        <DemoAlert />\n      </div>\n\n      {isEnabled && (\n        <div>\n          <div className=\"form-group\">\n            <span className=\"col-sm-12 text-muted small\">\n              You can specify the URL to your logo here. For an optimal display,\n              logo dimensions should be 155px by 55px.\n            </span>\n          </div>\n          <FormControl label=\"URL\" inputId=\"logo_url\" errors={error} required>\n            <Field\n              as={Input}\n              name={name}\n              id=\"logo_url\"\n              placeholder=\"https://mycompany.com/logo.png\"\n            />\n          </FormControl>\n        </div>\n      )}\n    </>\n  );\n}\n","import clsx from 'clsx';\nimport { TextareaHTMLAttributes } from 'react';\n\nexport function TextArea({\n  className,\n  ...props\n}: TextareaHTMLAttributes<HTMLTextAreaElement>) {\n  return (\n    <textarea\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n      className={clsx('form-control', className)}\n    />\n  );\n}\n","import { useField, Field } from 'formik';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { useIsDemo } from '@/react/portainer/system/useSystemStatus';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { TextArea } from '@@/form-components/Input/Textarea';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { useToggledValue } from '../useToggledValue';\n\nimport { DemoAlert } from './DemoAlert';\n\nexport function ScreenBannerFieldset() {\n  const isDemoQuery = useIsDemo();\n  const [{ name }, { error }] = useField<string>('loginBanner');\n  const [isEnabled, setIsEnabled] = useToggledValue('loginBanner');\n\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            labelClass=\"col-sm-3 col-lg-2\"\n            label=\"Login screen banner\"\n            checked={isEnabled}\n            name=\"toggle_login_banner\"\n            disabled={isDemoQuery.data}\n            onChange={(checked) => setIsEnabled(checked)}\n            featureId={FeatureId.CUSTOM_LOGIN_BANNER}\n          />\n        </div>\n\n        <DemoAlert />\n\n        <div className=\"col-sm-12 text-muted small mt-2\">\n          You can set a custom banner that will be shown to all users during\n          login.\n        </div>\n      </div>\n\n      {isEnabled && (\n        <FormControl\n          label=\"Details\"\n          inputId=\"custom_login_banner\"\n          errors={error}\n          required\n        >\n          <Field\n            as={TextArea}\n            name={name}\n            rows=\"5\"\n            id=\"custom_login_banner\"\n            placeholder=\"Banner details\"\n          />\n        </FormControl>\n      )}\n    </>\n  );\n}\n","import { useField, Field } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Input } from '@@/form-components/Input';\nimport { useDocsUrl } from '@@/PageHeader/ContextHelp/ContextHelp';\n\n// this value is taken from https://github.com/portainer/portainer/blob/develop/api/portainer.go#L1628\nconst DEFAULT_URL =\n  'https://raw.githubusercontent.com/portainer/templates/v3/templates.json';\n\nexport function TemplatesUrlSection() {\n  const [{ name }, { error }] = useField<string>('templatesUrl');\n\n  const buildTemplateDocUrl = useDocsUrl('/advanced/app-templates/build');\n\n  return (\n    <FormSection title=\"App Templates\">\n      <div className=\"form-group\">\n        <div className=\"col-sm-12 text-muted small\">\n          <p>\n            You can specify the URL to your own template definitions file here.\n            See{' '}\n            <a href={buildTemplateDocUrl} target=\"_blank\" rel=\"noreferrer\">\n              Portainer documentation\n            </a>{' '}\n            for more details.\n          </p>\n          <p>\n            The default value is <a href={DEFAULT_URL}>{DEFAULT_URL}</a>\n          </p>\n        </div>\n      </div>\n\n      <FormControl label=\"URL\" inputId=\"templates_url\" errors={error}>\n        <Field\n          as={Input}\n          id=\"templates_url\"\n          placeholder={DEFAULT_URL}\n          data-cy=\"settings-templateUrl\"\n          name={name}\n        />\n      </FormControl>\n    </FormSection>\n  );\n}\n","import { useField } from 'formik';\n\nimport { useIsDemo } from '@/react/portainer/system/useSystemStatus';\n\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { DemoAlert } from './DemoAlert';\n\nexport function EnableTelemetryField() {\n  const isDemoQuery = useIsDemo();\n  const [{ value }, , { setValue }] = useField<boolean>('enableTelemetry');\n\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <SwitchField\n          labelClass=\"col-sm-3 col-lg-2\"\n          label=\"Allow the collection of anonymous statistics\"\n          checked={value}\n          name=\"toggle_enableTelemetry\"\n          onChange={(checked) => setValue(checked)}\n          disabled={isDemoQuery.data}\n        />\n      </div>\n\n      <DemoAlert />\n\n      <div className=\"col-sm-12 text-muted small mt-2\">\n        You can find more information about this in our{' '}\n        <a\n          href=\"https://www.portainer.io/documentation/in-app-analytics-and-privacy-policy/\"\n          target=\"_blank\"\n          rel=\"noreferrer\"\n        >\n          privacy policy\n        </a>\n        .\n      </div>\n    </div>\n  );\n}\n","import { Settings as SettingsIcon } from 'lucide-react';\nimport { Field, Form, Formik, useFormikContext } from 'formik';\n\nimport { EdgeCheckinIntervalField } from '@/react/edge/components/EdgeCheckInIntervalField';\nimport { useUpdateSettingsMutation } from '@/react/portainer/settings/queries';\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { type Settings } from '../../types';\n\nimport { validation } from './validation';\nimport { Values } from './types';\nimport { LogoFieldset } from './LogoFieldset';\nimport { ScreenBannerFieldset } from './ScreenBannerFieldset';\nimport { TemplatesUrlSection } from './TemplatesUrlSection';\nimport { EnableTelemetryField } from './EnableTelemetryField';\n\nexport function ApplicationSettingsPanel({\n  onSuccess,\n  settings,\n}: {\n  onSuccess(settings: Settings): void;\n  settings: Settings;\n}) {\n  const mutation = useUpdateSettingsMutation();\n\n  const initialValues: Values = {\n    edgeAgentCheckinInterval: settings.EdgeAgentCheckinInterval,\n    enableTelemetry: settings.EnableTelemetry,\n    loginBannerEnabled: !!settings.CustomLoginBanner,\n    loginBanner: settings.CustomLoginBanner,\n    logoEnabled: !!settings.LogoURL,\n    logo: settings.LogoURL,\n    snapshotInterval: settings.SnapshotInterval,\n    templatesUrl: settings.TemplatesURL,\n  };\n\n  return (\n    <Widget>\n      <Widget.Title icon={SettingsIcon} title=\"Application settings\" />\n      <Widget.Body>\n        <Formik\n          initialValues={initialValues}\n          onSubmit={handleSubmit}\n          validationSchema={validation}\n          validateOnMount\n        >\n          <InnerForm isLoading={mutation.isLoading} />\n        </Formik>\n      </Widget.Body>\n    </Widget>\n  );\n\n  function handleSubmit(values: Values) {\n    mutation.mutate(\n      {\n        SnapshotInterval: values.snapshotInterval,\n        LogoURL: values.logo,\n        EnableTelemetry: values.enableTelemetry,\n        CustomLoginBanner: values.loginBanner,\n        TemplatesURL: values.templatesUrl,\n        EdgeAgentCheckinInterval: values.edgeAgentCheckinInterval,\n      },\n      {\n        onSuccess(settings) {\n          notifySuccess('Success', 'Application settings updated');\n          onSuccess(settings);\n        },\n      }\n    );\n  }\n}\n\nfunction InnerForm({ isLoading }: { isLoading: boolean }) {\n  const { values, setFieldValue, isValid, errors } = useFormikContext<Values>();\n\n  return (\n    <Form className=\"form-horizontal\">\n      <FormControl\n        label=\"Snapshot interval\"\n        inputId=\"snapshot_interval\"\n        errors={errors.snapshotInterval}\n        required\n      >\n        <Field\n          as={Input}\n          id=\"snapshot_interval\"\n          placeholder=\"e.g. 15m\"\n          name=\"snapshotInterval\"\n        />\n      </FormControl>\n\n      <EdgeCheckinIntervalField\n        value={values.edgeAgentCheckinInterval}\n        label=\"Edge agent default poll frequency\"\n        isDefaultHidden\n        onChange={(value) => setFieldValue('edgeAgentCheckinInterval', value)}\n      />\n\n      <LogoFieldset />\n\n      <EnableTelemetryField />\n\n      <ScreenBannerFieldset />\n\n      <TemplatesUrlSection />\n\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <LoadingButton\n            isLoading={isLoading}\n            disabled={!isValid}\n            data-cy=\"settings-saveSettingsButton\"\n            loadingText=\"Saving...\"\n          >\n            Save application settings\n          </LoadingButton>\n        </div>\n      </div>\n    </Form>\n  );\n}\n","import { Field, useField } from 'formik';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Input } from '@@/form-components/Input';\n\nexport function HelmSection() {\n  const [{ name }, { error }] = useField<string>('helmRepositoryUrl');\n\n  return (\n    <FormSection title=\"Helm repository\">\n      <div className=\"mb-2\">\n        <TextTip color=\"blue\">\n          You can specify the URL to your own Helm repository here. See the{' '}\n          <a\n            href=\"https://helm.sh/docs/topics/chart_repository/\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            official documentation\n          </a>{' '}\n          for more details.\n        </TextTip>\n      </div>\n\n      <FormControl label=\"URL\" errors={error} inputId=\"helm-repo-url\">\n        <Field\n          as={Input}\n          id=\"helm-repo-url\"\n          name={name}\n          placeholder=\"https://charts.bitnami.com/bitnami\"\n        />\n      </FormControl>\n    </FormSection>\n  );\n}\n","import { useField } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\nconst options = [\n  {\n    label: '1 day',\n    value: '24h',\n  },\n  {\n    label: '7 days',\n    value: `${24 * 7}h`,\n  },\n  {\n    label: '30 days',\n    value: `${24 * 30}h`,\n  },\n  {\n    label: '1 year',\n    value: `${24 * 30 * 12}h`,\n  },\n  {\n    label: 'No expiry',\n    value: '0',\n  },\n] as const;\n\nexport function KubeConfigSection() {\n  const [{ value }, { error }, { setValue }] =\n    useField<string>('kubeconfigExpiry');\n\n  return (\n    <FormSection title=\"Kubeconfig\">\n      <FormControl label=\"Kubeconfig expiry\" errors={error}>\n        <PortainerSelect\n          value={value}\n          options={options}\n          onChange={(value) => value && setValue(value)}\n        />\n      </FormControl>\n    </FormSection>\n  );\n}\n","import { useField } from 'formik';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { Input } from '@@/form-components/Input';\n\nimport { useToggledValue } from '../useToggledValue';\n\nexport function KubeNoteMinimumCharacters() {\n  const [{ value }, { error }, { setValue }] = useField<number>(\n    'globalDeploymentOptions.minApplicationNoteLength'\n  );\n  const [isEnabled, setIsEnabled] = useToggledValue(\n    'globalDeploymentOptions.minApplicationNoteLength',\n    'globalDeploymentOptions.requireNoteOnApplications'\n  );\n\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"Require a note on applications\"\n            checked={isEnabled}\n            name=\"toggle_requireNoteOnApplications\"\n            onChange={(value) => setIsEnabled(value)}\n            featureId={FeatureId.K8S_REQUIRE_NOTE_ON_APPLICATIONS}\n            labelClass=\"col-sm-3 col-lg-2\"\n            tooltip={`${\n              isBE ? '' : 'BE allows entry of notes in Add/Edit application. '\n            }Using this will enforce entry of a note in Add/Edit application (and prevent complete clearing of it in Application details).`}\n          />\n        </div>\n      </div>\n      {isEnabled && (\n        <FormControl\n          label={\n            <span className=\"pl-4\">\n              Minimum number of characters note must have\n            </span>\n          }\n          errors={error}\n        >\n          <Input\n            name=\"minNoteLength\"\n            type=\"number\"\n            placeholder=\"50\"\n            min=\"1\"\n            max=\"9999\"\n            value={value}\n            onChange={(e) => setValue(e.target.valueAsNumber)}\n            className=\"w-1/4\"\n          />\n        </FormControl>\n      )}\n    </>\n  );\n}\n","import { useFormikContext } from 'formik';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { KubeNoteMinimumCharacters } from './KubeNoteMinimumCharacters';\nimport { FormValues } from './types';\n\nexport function DeploymentOptionsSection() {\n  const {\n    values: { globalDeploymentOptions: values },\n    setFieldValue,\n  } = useFormikContext<FormValues>();\n\n  const limitedFeature = isLimitedToBE(FeatureId.ENFORCE_DEPLOYMENT_OPTIONS);\n  return (\n    <FormSection title=\"Deployment options\">\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"Enforce code-based deployment\"\n            checked={values.hideAddWithForm}\n            name=\"toggle_hideAddWithForm\"\n            featureId={FeatureId.ENFORCE_DEPLOYMENT_OPTIONS}\n            onChange={(value) => handleToggleAddWithForm(value)}\n            labelClass=\"col-sm-3 col-lg-2\"\n            tooltip=\"Hides the 'Add with form' buttons and prevents adding/editing of resources via forms\"\n          />\n        </div>\n      </div>\n      {values.hideAddWithForm && (\n        <div className=\"form-group flex flex-col gap-y-1\">\n          <div className=\"col-sm-12\">\n            <SwitchField\n              label=\"Allow web editor and custom template use\"\n              checked={!values.hideWebEditor}\n              name=\"toggle_hideWebEditor\"\n              onChange={(value) =>\n                setFieldValue('globalDeploymentOptions.hideWebEditor', !value)\n              }\n              labelClass=\"col-sm-2 !pl-4\"\n            />\n          </div>\n          <div className=\"col-sm-12\">\n            <SwitchField\n              label=\"Allow specifying of a manifest via a URL\"\n              checked={!values.hideFileUpload}\n              name=\"toggle_hideFileUpload\"\n              onChange={(value) =>\n                setFieldValue('globalDeploymentOptions.hideFileUpload', !value)\n              }\n              labelClass=\"col-sm-2 !pl-4\"\n            />\n          </div>\n        </div>\n      )}\n      {!limitedFeature && (\n        <div className=\"form-group\">\n          <div className=\"col-sm-12\">\n            <SwitchField\n              label=\"Allow per environment override\"\n              checked={values.perEnvOverride}\n              onChange={(value) =>\n                setFieldValue('globalDeploymentOptions.perEnvOverride', value)\n              }\n              name=\"toggle_perEnvOverride\"\n              labelClass=\"col-sm-3 col-lg-2\"\n              tooltip=\"Allows overriding of deployment options in the Cluster setup screen of each environment\"\n            />\n          </div>\n        </div>\n      )}\n\n      <KubeNoteMinimumCharacters />\n\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            label=\"Allow stacks functionality with Kubernetes environments\"\n            checked={!values.hideStacksFunctionality}\n            onChange={(value) =>\n              setFieldValue(\n                'globalDeploymentOptions.hideStacksFunctionality',\n                !value\n              )\n            }\n            name=\"toggle_stacksFunctionality\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            tooltip=\"This allows you to group your applications/workloads into a single ‘stack’, and then view or delete an entire stack. If disabled, stacks functionality will not show in the UI.\"\n          />\n        </div>\n      </div>\n    </FormSection>\n  );\n\n  async function handleToggleAddWithForm(checked: boolean) {\n    await setFieldValue('globalDeploymentOptions.hideWebEditor', checked);\n    await setFieldValue('globalDeploymentOptions.hideFileUpload', checked);\n    await setFieldValue('globalDeploymentOptions.hideAddWithForm', checked);\n  }\n}\n","import { SchemaOf, object, string, boolean } from 'yup';\n\nimport { nanNumberSchema } from '@/react-tools/yup-schemas';\n\nimport { isValidUrl } from '@@/form-components/validate-url';\n\nimport { FormValues } from './types';\n\nexport function validation(): SchemaOf<FormValues> {\n  return object().shape({\n    helmRepositoryUrl: string()\n      .default('')\n      .test('valid-url', 'Invalid URL', (value) => !value || isValidUrl(value)),\n    kubeconfigExpiry: string().required(),\n    globalDeploymentOptions: object().shape({\n      hideAddWithForm: boolean().required(),\n      perEnvOverride: boolean().required(),\n      hideWebEditor: boolean().required(),\n      hideFileUpload: boolean().required(),\n      requireNoteOnApplications: boolean().required(),\n      hideStacksFunctionality: boolean().required(),\n      minApplicationNoteLength: nanNumberSchema('Must be a number')\n        .default(0)\n        .when('requireNoteOnApplications', {\n          is: true,\n          then: (schema) =>\n            schema\n              .required()\n              .min(1, 'Value should be between 1 to 9999')\n              .max(9999, 'Value should be between 1 to 9999'),\n        }),\n    }),\n  });\n}\n","import { Form, Formik } from 'formik';\nimport { useQueryClient } from 'react-query';\n\nimport kubeIcon from '@/assets/ico/kube.svg?c';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useEnvironmentId } from '@/react/hooks/useEnvironmentId';\n\nimport { LoadingButton } from '@@/buttons';\nimport { Widget } from '@@/Widget';\n\nimport { useUpdateSettingsMutation } from '../../queries';\nimport { Settings } from '../../types';\n\nimport { HelmSection } from './HelmSection';\nimport { KubeConfigSection } from './KubeConfigSection';\nimport { FormValues } from './types';\nimport { DeploymentOptionsSection } from './DeploymentOptionsSection';\nimport { validation } from './validation';\n\nexport function KubeSettingsPanel({ settings }: { settings: Settings }) {\n  const queryClient = useQueryClient();\n  const environmentId = useEnvironmentId(false);\n  const mutation = useUpdateSettingsMutation();\n\n  const initialValues: FormValues = {\n    helmRepositoryUrl: settings.HelmRepositoryURL || '',\n    kubeconfigExpiry: settings.KubeconfigExpiry || '0',\n    globalDeploymentOptions: {\n      ...{\n        requireNoteOnApplications: false,\n        minApplicationNoteLength: 0,\n        hideAddWithForm: false,\n        hideFileUpload: false,\n        hideWebEditor: false,\n        perEnvOverride: false,\n        hideStacksFunctionality: false,\n      },\n      ...settings.GlobalDeploymentOptions,\n    },\n  };\n\n  return (\n    <Widget id=\"kubernetes-settings\">\n      <Widget.Title icon={kubeIcon} title=\"Kubernetes settings\" />\n      <Widget.Body>\n        <Formik\n          initialValues={initialValues}\n          onSubmit={handleSubmit}\n          validationSchema={validation}\n          validateOnMount\n        >\n          {() => (\n            <Form className=\"form-horizontal\">\n              <HelmSection />\n              <KubeConfigSection />\n              <DeploymentOptionsSection />\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <LoadingButton\n                    isLoading={mutation.isLoading}\n                    loadingText=\"Saving\"\n                    className=\"!ml-0\"\n                  >\n                    Save Kubernetes settings\n                  </LoadingButton>\n                </div>\n              </div>\n            </Form>\n          )}\n        </Formik>\n      </Widget.Body>\n    </Widget>\n  );\n\n  function handleSubmit(values: FormValues) {\n    mutation.mutate(\n      {\n        HelmRepositoryURL: values.helmRepositoryUrl,\n        KubeconfigExpiry: values.kubeconfigExpiry,\n        GlobalDeploymentOptions: {\n          ...values.globalDeploymentOptions,\n          requireNoteOnApplications:\n            values.globalDeploymentOptions.requireNoteOnApplications,\n          minApplicationNoteLength: values.globalDeploymentOptions\n            .requireNoteOnApplications\n            ? values.globalDeploymentOptions.minApplicationNoteLength\n            : 0,\n        },\n      },\n      {\n        async onSuccess() {\n          if (environmentId) {\n            await queryClient.invalidateQueries([\n              'environments',\n              environmentId,\n              'deploymentOptions',\n            ]);\n          }\n          notifySuccess('Success', 'Kubernetes settings updated');\n        },\n      }\n    );\n  }\n}\n","import clsx from 'clsx';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { BEFeatureIndicator } from './BEFeatureIndicator';\n\ntype Variants = 'form-section' | 'widget' | 'multi-widget';\n\ntype OverlayClasses = {\n  beLinkContainerClassName: string;\n  contentClassName: string;\n};\n\nconst variantClassNames: Record<Variants, OverlayClasses> = {\n  'form-section': {\n    beLinkContainerClassName: '',\n    contentClassName: '',\n  },\n  widget: {\n    beLinkContainerClassName: '',\n    // no padding so that the border overlaps the widget border\n    contentClassName: '!p-0',\n  },\n  'multi-widget': {\n    beLinkContainerClassName: 'm-4',\n    // widgets have a mx of 15px and mb of 15px - match this at the top with padding\n    contentClassName: '!p-0 !pt-[15px]',\n  },\n};\n\nexport function BEOverlay({\n  featureId,\n  children,\n  variant = 'form-section',\n}: {\n  featureId: FeatureId;\n  children: React.ReactNode;\n  variant?: 'form-section' | 'widget' | 'multi-widget';\n}) {\n  const isLimited = isLimitedToBE(featureId);\n  if (!isLimited) {\n    return <>{children}</>;\n  }\n\n  return (\n    <div className=\"be-indicator-container limited-be\">\n      <div\n        className={clsx(\n          'limited-be-link vertical-center',\n          variantClassNames[variant].beLinkContainerClassName\n        )}\n      >\n        <BEFeatureIndicator featureId={featureId} />\n      </div>\n      <div\n        className={clsx(\n          'limited-be-content',\n          variantClassNames[variant].contentClassName\n        )}\n      >\n        {children}\n      </div>\n    </div>\n  );\n}\n","import { useMutation } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { mutationOptions, withError } from '@/react-tools/react-query';\n\nexport function useUpdateSSLConfigMutation() {\n  return useMutation(\n    updateSSLConfig,\n    mutationOptions(withError('Unable to update SSL configuration'))\n  );\n}\n\ninterface SSLConfig {\n  // SSL Certificates\n  certFile?: File;\n  keyFile?: File;\n  httpEnabled?: boolean;\n\n  // SSL Client Certificates\n  clientCertFile?: File;\n}\n\nasync function updateSSLConfig({\n  certFile,\n  keyFile,\n  clientCertFile,\n  ...payload\n}: SSLConfig) {\n  try {\n    const cert = certFile ? await certFile.text() : undefined;\n    const key = keyFile ? await keyFile.text() : undefined;\n    const clientCert = clientCertFile ? await clientCertFile.text() : undefined;\n\n    await axios.put('/ssl', {\n      ...payload,\n      cert,\n      key,\n      clientCert,\n    });\n  } catch (error) {\n    throw parseAxiosError(error, 'Unable to update SSL configuration');\n  }\n}\n","import { Form, Formik, useFormikContext } from 'formik';\nimport { Key } from 'lucide-react';\nimport { SchemaOf, object } from 'yup';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { Widget } from '@@/Widget';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FileUploadField } from '@@/form-components/FileUpload';\nimport { FormControl } from '@@/form-components/FormControl';\nimport {\n  file,\n  withFileExtension,\n} from '@@/form-components/yup-file-validation';\nimport { FormActions } from '@@/form-components/FormActions';\nimport { BEOverlay } from '@@/BEFeatureIndicator/BEOverlay';\n\nimport { FeatureId } from '../../feature-flags/enums';\n\nimport { useUpdateSSLConfigMutation } from './useUpdateSSLConfigMutation';\n\ninterface FormValues {\n  clientCertFile: File | null;\n}\n\nexport function HelmCertPanel() {\n  const mutation = useUpdateSSLConfigMutation();\n  const initialValues = {\n    clientCertFile: null,\n  };\n\n  return (\n    <BEOverlay featureId={FeatureId.CA_FILE} variant=\"widget\">\n      <Widget>\n        <Widget.Title\n          icon={Key}\n          title=\"Certificate Authority file for Kubernetes Helm repositories\"\n        />\n        <Widget.Body>\n          <Formik\n            initialValues={initialValues}\n            validationSchema={validation}\n            onSubmit={handleSubmit}\n            validateOnMount\n          >\n            <InnerForm isLoading={mutation.isLoading} />\n          </Formik>\n        </Widget.Body>\n      </Widget>\n    </BEOverlay>\n  );\n\n  function handleSubmit({ clientCertFile }: FormValues) {\n    if (!clientCertFile) {\n      return;\n    }\n\n    mutation.mutate(\n      { clientCertFile },\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Helm certificate updated');\n        },\n      }\n    );\n  }\n}\n\nfunction InnerForm({ isLoading }: { isLoading: boolean }) {\n  const { values, setFieldValue, errors, isValid } =\n    useFormikContext<FormValues>();\n\n  return (\n    <Form className=\"form-horizontal\">\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <TextTip color=\"blue\">\n            Provide an additional CA file containing certificate(s) for HTTPS\n            connections to Helm repositories.\n          </TextTip>\n        </div>\n      </div>\n\n      <FormControl\n        label=\"CA file\"\n        tooltip=\"Select a CA file containing your X.509 certificate(s), commonly a crt, cer or pem file.\"\n        inputId=\"ca-cert-field\"\n        errors={errors?.clientCertFile}\n      >\n        <FileUploadField\n          required\n          inputId=\"ca-cert-field\"\n          name=\"clientCertFile\"\n          onChange={(file) => setFieldValue('clientCertFile', file)}\n          value={values.clientCertFile}\n        />\n      </FormControl>\n\n      <FormActions\n        isValid={isValid}\n        isLoading={isLoading}\n        submitLabel=\"Apply changes\"\n        loadingText=\"Saving in progress...\"\n      />\n    </Form>\n  );\n}\n\nfunction validation(): SchemaOf<FormValues> {\n  return object({\n    clientCertFile: withFileExtension(file(), [\n      'pem',\n      'crt',\n      'cer',\n      'cert',\n    ]).required(''),\n  });\n}\n","import { Formik, Form, Field } from 'formik';\nimport { Plus } from 'lucide-react';\nimport { SchemaOf, object, string } from 'yup';\nimport { useReducer } from 'react';\n\nimport { Button } from '@@/buttons';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nexport function AddLabelForm({\n  onSubmit,\n  isLoading,\n}: {\n  onSubmit: (name: string, value: string) => void;\n  isLoading: boolean;\n}) {\n  const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n\n  const initialValues = {\n    name: '',\n    value: '',\n  };\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      key={formKey}\n    >\n      {({ errors, isValid, dirty }) => (\n        <Form className=\"form-horizontal\">\n          <div className=\"flex w-full items-start gap-4\">\n            <FormControl label=\"Name\" errors={errors.name} className=\"flex-1\">\n              <Field\n                as={Input}\n                name=\"name\"\n                placeholder=\"e.g. com.example.foo\"\n              />\n            </FormControl>\n\n            <FormControl label=\"Value\" errors={errors.value} className=\"flex-1\">\n              <Field as={Input} name=\"value\" placeholder=\"e.g. bar\" />\n            </FormControl>\n\n            <Button\n              type=\"submit\"\n              icon={Plus}\n              disabled={!dirty || !isValid || isLoading}\n            >\n              Add filter\n            </Button>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit(values: typeof initialValues) {\n    clearForm();\n    onSubmit(values.name, values.value);\n  }\n}\n\nfunction validation(): SchemaOf<{ name: string; value: string }> {\n  return object({\n    name: string().required('Name is required'),\n    value: string().default(''),\n  });\n}\n","import { Trash2 } from 'lucide-react';\n\nimport { DetailsTable } from '@@/DetailsTable';\nimport { Button } from '@@/buttons';\n\nimport { Pair } from '../../types';\n\nexport function HiddenContainersTable({\n  labels,\n  isLoading,\n  onDelete,\n}: {\n  labels: Pair[];\n  isLoading: boolean;\n  onDelete: (name: string) => void;\n}) {\n  return (\n    <DetailsTable\n      headers={['Name', 'Value', '']}\n      className=\"table-hover\"\n      emptyMessage=\"No filter available.\"\n    >\n      {labels.map((label, index) => (\n        <DetailsTable.Row\n          key={index}\n          label={label.name}\n          columns={[\n            <Button\n              color=\"danger\"\n              size=\"xsmall\"\n              icon={Trash2}\n              onClick={() => onDelete(label.name)}\n              disabled={isLoading}\n            >\n              Remove\n            </Button>,\n          ]}\n        >\n          {label.value}\n        </DetailsTable.Row>\n      ))}\n    </DetailsTable>\n  );\n}\n","import { Box } from 'lucide-react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Widget } from '@@/Widget';\n\nimport { useSettings, useUpdateSettingsMutation } from '../../queries';\nimport { Pair } from '../../types';\n\nimport { AddLabelForm } from './AddLabelForm';\nimport { HiddenContainersTable } from './HiddenContainersTable';\n\nexport function HiddenContainersPanel() {\n  const settingsQuery = useSettings((settings) => settings.BlackListedLabels);\n  const mutation = useUpdateSettingsMutation();\n\n  if (!settingsQuery.data) {\n    return null;\n  }\n\n  const labels = settingsQuery.data;\n  return (\n    <Widget>\n      <Widget.Title icon={Box} title=\"Hidden containers\" />\n      <Widget.Body>\n        <div className=\"mb-3\">\n          <TextTip color=\"blue\">\n            You can hide containers with specific labels from Portainer UI. You\n            need to specify the label name and value.\n          </TextTip>\n        </div>\n\n        <AddLabelForm\n          isLoading={mutation.isLoading}\n          onSubmit={(name, value) => handleSubmit([...labels, { name, value }])}\n        />\n\n        <HiddenContainersTable\n          labels={labels}\n          isLoading={mutation.isLoading}\n          onDelete={(name) =>\n            handleSubmit(labels.filter((label) => label.name !== name))\n          }\n        />\n      </Widget.Body>\n    </Widget>\n  );\n\n  function handleSubmit(labels: Pair[]) {\n    mutation.mutate(\n      {\n        BlackListedLabels: labels,\n      },\n      {\n        onSuccess: () => {\n          notifySuccess('Success', 'Hidden container settings updated');\n        },\n      }\n    );\n  }\n}\n","import { ComponentType } from 'react';\n\n/**\n * Hides the wrapped component if portainer is running as a docker extension.\n */\nexport function withHideOnExtension<T>(\n  WrappedComponent: ComponentType<T>\n): ComponentType<T> {\n  // Try to create a nice displayName for React Dev Tools.\n  const displayName =\n    WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n    if (window.ddExtension) {\n      return null;\n    }\n\n    return <WrappedComponent {...props} />;\n  }\n\n  WrapperComponent.displayName = `withHideOnExtension(${displayName})`;\n\n  return WrapperComponent;\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\ninterface SSLSettings {\n  certPath: string;\n  keyPath: string;\n  caCertPath: string;\n  selfSigned: boolean;\n  httpEnabled: boolean;\n}\n\nexport function useSSLSettings() {\n  return useQuery<SSLSettings>(['sslSettings'], async () => getSSLSettings());\n}\n\nasync function getSSLSettings() {\n  try {\n    const response = await axios.get<SSLSettings>('/ssl');\n    return response.data;\n  } catch (error) {\n    throw parseAxiosError(error, 'Unable to retrieve SSL settings');\n  }\n}\n","import { Form, Formik } from 'formik';\nimport { Key } from 'lucide-react';\nimport { useState } from 'react';\nimport { SchemaOf, bool, object } from 'yup';\n\nimport { withHideOnExtension } from '@/react/hooks/withHideOnExtension';\n\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport {\n  file,\n  withFileExtension,\n} from '@@/form-components/yup-file-validation';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FileUploadField } from '@@/form-components/FileUpload';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { useUpdateSSLConfigMutation } from '../useUpdateSSLConfigMutation';\nimport { useSSLSettings } from '../../queries/useSSLSettings';\n\ninterface FormValues {\n  certFile?: File;\n  keyFile?: File;\n  forceHTTPS: boolean;\n}\n\nexport const SSLSettingsPanelWrapper = withHideOnExtension(SSLSettingsPanel);\n\nfunction SSLSettingsPanel() {\n  const settingsQuery = useSSLSettings();\n  const [reloadingPage, setReloadingPage] = useState(false);\n  const mutation = useUpdateSSLConfigMutation();\n\n  if (!settingsQuery.data) {\n    return null;\n  }\n\n  const initialValues: FormValues = {\n    certFile: undefined,\n    keyFile: undefined,\n    forceHTTPS: !settingsQuery.data.httpEnabled,\n  };\n\n  return (\n    <Widget>\n      <Widget.Title icon={Key} title=\"SSL certificate\" />\n      <Widget.Body>\n        <Formik\n          initialValues={initialValues}\n          onSubmit={handleSubmit}\n          validationSchema={validation}\n          validateOnMount\n        >\n          {({ values, setFieldValue, isValid, errors, dirty }) => (\n            <Form className=\"form-horizontal\">\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <TextTip color=\"orange\">\n                    Forcing HTTPs only will cause Portainer to stop listening on\n                    the HTTP port. Any edge agent environment that is using HTTP\n                    will no longer be available.\n                  </TextTip>\n                </div>\n              </div>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <SwitchField\n                    checked={values.forceHTTPS}\n                    label=\"Force HTTPS only\"\n                    labelClass=\"col-sm-3 col-lg-2\"\n                    name=\"forceHTTPS\"\n                    onChange={(value) => setFieldValue('forceHTTPS', value)}\n                  />\n                </div>\n              </div>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <TextTip color=\"blue\">\n                    Provide a new SSL Certificate to replace the existing one\n                    that is used for HTTPS connections.\n                  </TextTip>\n                </div>\n              </div>\n\n              <FormControl\n                label=\"SSL/TLS certificate\"\n                tooltip=\"Select an X.509 certificate file, commonly a crt, cer or pem file.\"\n                inputId=\"ca-cert-field\"\n                errors={errors.certFile}\n              >\n                <FileUploadField\n                  inputId=\"ca-cert-field\"\n                  name=\"certFile\"\n                  onChange={(file) => setFieldValue('certFile', file)}\n                  value={values.certFile}\n                />\n              </FormControl>\n\n              <FormControl\n                label=\"SSL/TLS private key\"\n                tooltip=\"Select a private key file, commonly a key, or pem file.\"\n                inputId=\"ca-cert-field\"\n                errors={errors.keyFile}\n              >\n                <FileUploadField\n                  inputId=\"ca-cert-field\"\n                  name=\"keyFile\"\n                  onChange={(file) => setFieldValue('keyFile', file)}\n                  value={values.keyFile}\n                />\n              </FormControl>\n\n              <div className=\"form-group\">\n                <div className=\"col-sm-12\">\n                  <LoadingButton\n                    isLoading={mutation.isLoading || reloadingPage}\n                    disabled={!dirty || !isValid}\n                    loadingText={reloadingPage ? 'Reloading' : 'Saving'}\n                    className=\"!ml-0\"\n                  >\n                    Save SSL settings\n                  </LoadingButton>\n                </div>\n              </div>\n            </Form>\n          )}\n        </Formik>\n      </Widget.Body>\n    </Widget>\n  );\n\n  function handleSubmit({ certFile, forceHTTPS, keyFile }: FormValues) {\n    mutation.mutate(\n      { certFile, httpEnabled: !forceHTTPS, keyFile },\n      {\n        async onSuccess() {\n          await new Promise((resolve) => {\n            setTimeout(resolve, 10000);\n          });\n          window.location.reload();\n          setReloadingPage(true);\n        },\n      }\n    );\n  }\n}\n\nfunction validation(): SchemaOf<FormValues> {\n  return object({\n    certFile: withFileExtension(file(), [\n      'pem',\n      'crt',\n      'cer',\n      'cert',\n    ]).optional(),\n    keyFile: withFileExtension(file(), ['pem', 'key']).optional(),\n    forceHTTPS: bool().required(),\n  });\n}\n","import { Options } from '@/react/edge/components/useIntervalOptions';\nimport { OAuthStyle } from '@/react/portainer/settings/types';\n\nimport { FormControl, Size } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\n\ninterface Props {\n  value: OAuthStyle;\n  onChange(value: OAuthStyle): void;\n  label?: string;\n  tooltip?: string;\n  readonly?: boolean;\n  size?: Size;\n}\n\n// The options are based on oauth2 lib definition @https://pkg.go.dev/golang.org/x/oauth2#AuthStyle\nexport const authStyleOptions: Options = [\n  { label: 'Auto Detect', value: OAuthStyle.AutoDetect, isDefault: true },\n  { label: 'In Params', value: OAuthStyle.InParams },\n  { label: 'In Header', value: OAuthStyle.InHeader },\n];\n\nexport function AuthStyleField({\n  value,\n  readonly = false,\n  onChange,\n  label = 'Auth Style',\n  tooltip = 'Auth Style specifies how the endpoint wants the client ID & client secret sent.',\n  size = 'small',\n}: Props) {\n  return (\n    <FormControl\n      inputId=\"oauth_authstyle\"\n      label={label}\n      tooltip={tooltip}\n      size={size}\n    >\n      <Select\n        value={value}\n        onChange={(e) => {\n          onChange(parseInt(e.currentTarget.value, 10));\n        }}\n        options={authStyleOptions}\n        disabled={readonly}\n        id=\"oauth_authstyle\"\n      />\n    </FormControl>\n  );\n}\n","import angular from 'angular';\n\nimport { SettingsFDO } from '@/react/portainer/settings/EdgeComputeView/SettingsFDO';\nimport { SettingsOpenAMT } from '@/react/portainer/settings/EdgeComputeView/SettingsOpenAMT';\nimport { InternalAuth } from '@/react/portainer/settings/AuthenticationView/InternalAuth';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { ApplicationSettingsPanel } from '@/react/portainer/settings/SettingsView/ApplicationSettingsPanel';\nimport { KubeSettingsPanel } from '@/react/portainer/settings/SettingsView/KubeSettingsPanel';\nimport { HelmCertPanel } from '@/react/portainer/settings/SettingsView/HelmCertPanel';\nimport { HiddenContainersPanel } from '@/react/portainer/settings/SettingsView/HiddenContainersPanel/HiddenContainersPanel';\nimport { SSLSettingsPanelWrapper } from '@/react/portainer/settings/SettingsView/SSLSettingsPanel/SSLSettingsPanel';\nimport { AuthStyleField } from '@/react/portainer/settings/AuthenticationView/OAuth';\n\nexport const settingsModule = angular\n  .module('portainer.app.react.components.settings', [])\n  .component(\n    'settingsFdo',\n    r2a(withUIRouter(withReactQuery(SettingsFDO)), ['onSubmit', 'settings'])\n  )\n  .component('settingsOpenAmt', r2a(SettingsOpenAMT, ['onSubmit', 'settings']))\n  .component(\n    'internalAuth',\n    r2a(InternalAuth, ['onSaveSettings', 'isLoading', 'value', 'onChange'])\n  )\n  .component(\n    'applicationSettingsPanel',\n    r2a(withReactQuery(ApplicationSettingsPanel), ['onSuccess', 'settings'])\n  )\n  .component(\n    'sslSettingsPanel',\n    r2a(withReactQuery(SSLSettingsPanelWrapper), [])\n  )\n  .component('helmCertPanel', r2a(withReactQuery(HelmCertPanel), []))\n  .component(\n    'hiddenContainersPanel',\n    r2a(withUIRouter(withReactQuery(HiddenContainersPanel)), [])\n  )\n  .component(\n    'kubeSettingsPanel',\n    r2a(withUIRouter(withReactQuery(KubeSettingsPanel)), ['settings'])\n  )\n  .component(\n    'oauthAuthStyle',\n    r2a(AuthStyleField, [\n      'value',\n      'onChange',\n      'label',\n      'tooltip',\n      'readonly',\n      'size',\n    ])\n  ).name;\n","import { object, string } from 'yup';\n\nexport function validationSchema() {\n  return object().shape({\n    mpsServer: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    mpsUser: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    mpsPassword: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    domainName: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    certFileContent: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    certFileName: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n    certFilePassword: string().when('enabled', {\n      is: true,\n      then: string().required('Field is required'),\n    }),\n  });\n}\n","import { User as UserIcon, Users as TeamIcon } from 'lucide-react';\nimport { OptionProps, components, MultiValueGenericProps } from 'react-select';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\ntype Option = { Type: 'user' | 'team'; Id: number; Name: string };\n\ninterface Props {\n  value: Option[];\n  onChange(value: readonly Option[]): void;\n  options: Option[];\n}\n\nexport function PorAccessManagementUsersSelector({\n  options,\n  value,\n  onChange,\n}: Props) {\n  return (\n    <div className=\"form-group\">\n      <label\n        className=\"col-sm-3 col-lg-2 control-label text-left\"\n        htmlFor=\"users-selector\"\n      >\n        Select user(s) and/or team(s)\n      </label>\n      <div className=\"col-sm-9 col-lg-4\">\n        {options.length === 0 ? (\n          <span className=\"small text-muted\">No users or teams available.</span>\n        ) : (\n          <Select\n            isMulti\n            getOptionLabel={(option) => option.Name}\n            getOptionValue={(option) => `${option.Id}-${option.Type}`}\n            options={options}\n            value={value}\n            closeMenuOnSelect={false}\n            onChange={onChange}\n            data-cy=\"component-selectUser\"\n            inputId=\"users-selector\"\n            placeholder=\"Select one or more users and/or teams\"\n            components={{ MultiValueLabel, Option: OptionComponent }}\n          />\n        )}\n      </div>\n    </div>\n  );\n}\n\nfunction isOption(option: unknown): option is Option {\n  return !!option && typeof option === 'object' && 'Type' in option;\n}\n\nfunction OptionComponent({ data, ...props }: OptionProps<Option, true>) {\n  return (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <components.Option data={data} {...props}>\n      {isOption(data) && <Label option={data} />}\n    </components.Option>\n  );\n}\n\nfunction MultiValueLabel({\n  data,\n  ...props\n}: MultiValueGenericProps<Option, true>) {\n  return (\n    // eslint-disable-next-line react/jsx-props-no-spreading\n    <components.MultiValueLabel data={data} {...props}>\n      {isOption(data) && <Label option={data} />}\n    </components.MultiValueLabel>\n  );\n}\n\nfunction Label({ option }: { option: Option }) {\n  const Icon = option.Type === 'user' ? UserIcon : TeamIcon;\n\n  return (\n    <div className=\"flex items-center gap-1\">\n      <Icon />\n      <span>{option.Name}</span>\n    </div>\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { PorAccessControlFormTeamSelector } from '@/react/portainer/access-control/PorAccessControlForm/TeamsSelector';\nimport { PorAccessControlFormUserSelector } from '@/react/portainer/access-control/PorAccessControlForm/UsersSelector';\nimport { PorAccessManagementUsersSelector } from '@/react/portainer/access-control/AccessManagement/PorAccessManagementUsersSelector';\nimport { AccessTypeSelector } from '@/react/portainer/access-control/EditDetails/AccessTypeSelector';\nimport { AccessControlPanel } from '@/react/portainer/access-control';\n\nexport const accessControlModule = angular\n  .module('portainer.app.react.components.access-control', [])\n  .component(\n    'accessControlPanel',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(AccessControlPanel))), [\n      'disableOwnershipChange',\n      'onUpdateSuccess',\n      'resourceControl',\n      'resourceId',\n      'resourceType',\n      'environmentId',\n    ])\n  )\n  .component(\n    'accessTypeSelector',\n    r2a(AccessTypeSelector, [\n      'isAdmin',\n      'isPublicVisible',\n      'name',\n      'onChange',\n      'value',\n      'teams',\n    ])\n  )\n  .component(\n    'porAccessControlFormTeamSelector',\n    r2a(PorAccessControlFormTeamSelector, [\n      'inputId',\n      'onChange',\n      'options',\n      'value',\n    ])\n  )\n  .component(\n    'porAccessControlFormUserSelector',\n    r2a(PorAccessControlFormUserSelector, [\n      'inputId',\n      'onChange',\n      'options',\n      'value',\n    ])\n  )\n  .component(\n    'porAccessManagementUsersSelector',\n    r2a(PorAccessManagementUsersSelector, ['onChange', 'options', 'value'])\n  ).name;\n","import { Team } from '@/react/portainer/users/teams/types';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\ninterface Props {\n  value: Team[];\n  onChange(value: readonly Team[]): void;\n  options: Team[];\n  inputId?: string;\n}\n\n// to be removed with the angularjs app/portainer/components/accessControlForm\nexport function PorAccessControlFormTeamSelector({\n  value,\n  onChange,\n  options,\n  inputId,\n}: Props) {\n  return (\n    <Select\n      isMulti\n      getOptionLabel={(option) => option.Name}\n      getOptionValue={(option) => String(option.Id)}\n      options={options}\n      value={value}\n      closeMenuOnSelect={false}\n      onChange={onChange}\n      data-cy=\"portainer-selectTeamAccess\"\n      inputId={inputId}\n      placeholder=\"Select one or more teams\"\n    />\n  );\n}\n","import { User } from '@/portainer/users/types';\n\nimport { Select } from '@@/form-components/ReactSelect';\n\ninterface Props {\n  value: User[];\n  onChange(value: readonly User[]): void;\n  options: User[];\n  inputId?: string;\n}\n\n// to be removed with the angularjs app/portainer/components/accessControlForm\nexport function PorAccessControlFormUserSelector({\n  value,\n  onChange,\n  options,\n  inputId,\n}: Props) {\n  return (\n    <Select\n      isMulti\n      getOptionLabel={(option) => option.Username}\n      getOptionValue={(option) => String(option.Id)}\n      options={options}\n      value={value}\n      closeMenuOnSelect={false}\n      onChange={onChange}\n      data-cy=\"portainer-selectUserAccess\"\n      inputId={inputId}\n      placeholder=\"Select one or more users\"\n    />\n  );\n}\n","import { CopyButton } from '@@/buttons';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Code } from '@@/Code';\n\nexport function EdgeKeyDisplay({ edgeKey }: { edgeKey: string }) {\n  return (\n    <FormSection title=\"Join token\">\n      <TextTip color=\"blue\">\n        For those pre-staging the edge agent, use the following join token to\n        associate the Edge agent with this environment.\n      </TextTip>\n\n      <p className=\"small text-muted mt-2\">\n        You can read more about pre-staging in the user-guide available{' '}\n        <a href=\"https://downloads.portainer.io/edge_agent_guide.pdf\">here.</a>\n      </p>\n\n      <Code>{edgeKey}</Code>\n\n      <CopyButton copyText={edgeKey} className=\"mt-2\">\n        Copy token\n      </CopyButton>\n    </FormSection>\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { EdgeKeyDisplay } from '@/react/portainer/environments/ItemView/EdgeKeyDisplay';\nimport { KVMControl } from '@/react/portainer/environments/KvmView/KVMControl';\n\nexport const environmentsModule = angular\n  .module('portainer.app.react.components.environments', [])\n  .component('edgeKeyDisplay', r2a(EdgeKeyDisplay, ['edgeKey']))\n  .component(\n    'kvmControl',\n    r2a(KVMControl, ['deviceId', 'server', 'token'])\n  ).name;\n","import { KVM } from '@open-amt-cloud-toolkit/ui-toolkit-react/reactjs/src/kvm.bundle';\n\nimport './KVMControl.css';\n\nexport interface KVMControlProps {\n  deviceId: string;\n  server: string;\n  token: string;\n}\n\nexport function KVMControl({ deviceId, server, token }: KVMControlProps) {\n  if (!deviceId || !server || !token) return <div>Loading...</div>;\n\n  return (\n    <KVM\n      deviceId={deviceId}\n      mpsServer={`https://${server}/mps/ws/relay`}\n      authToken={token}\n      mouseDebounceTime=\"200\"\n      canvasHeight=\"100%\"\n      canvasWidth=\"100%\"\n    />\n  );\n}\n","import { useQuery } from 'react-query';\nimport _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport axios from '@/portainer/services/axios';\n\nimport { Registry } from '../../types/registry';\nimport { buildUrl } from '../../queries/build-url';\nimport { queryKeys } from '../../queries/query-keys';\n\nexport function useRepositoryTags({\n  registryId,\n  ...params\n}: {\n  registryId: Registry['Id'];\n  repository: string;\n  environmentId?: Environment['Id'];\n}) {\n  return useQuery({\n    queryKey: [...queryKeys.item(registryId), params] as const,\n    queryFn: () =>\n      getRepositoryTags({\n        ...params,\n        registryId,\n        n: 100,\n        last: '',\n      }),\n    staleTime: 1 * 60 * 1000, // 1 minute\n  });\n}\n\nexport async function getRepositoryTags(\n  {\n    environmentId,\n    registryId,\n    repository,\n    n,\n    last,\n  }: {\n    registryId: Registry['Id'];\n    repository: string;\n    environmentId?: Environment['Id'];\n    n?: number;\n    last?: string;\n  },\n  acc: { name: string; tags: string[] } = { name: '', tags: [] }\n): Promise<{ name: string; tags: string[] }> {\n  const { data, headers } = await axios.get<{ name: string; tags: string[] }>(\n    `${buildUrl(registryId)}/v2/${repository}/tags/list`,\n    {\n      params: {\n        id: registryId,\n        endpointId: environmentId,\n        repository,\n        n,\n        last,\n      },\n    }\n  );\n  acc.name = data.name;\n  acc.tags = _.concat(acc.tags, data.tags);\n\n  if (headers.link) {\n    const last = data.tags[data.tags.length - 1];\n    return getRepositoryTags(\n      { registryId, repository, n, last, environmentId },\n      acc\n    );\n  }\n\n  return acc;\n}\n","import { createColumnHelper, CellContext } from '@tanstack/react-table';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { Link } from '@@/Link';\n\nimport { useRepositoryTags } from './useRepositoryTags';\nimport { Repository } from './types';\n\nconst helper = createColumnHelper<Repository>();\n\nexport const columns = [\n  helper.accessor('Name', {\n    header: 'Repository',\n    cell: NameCell,\n  }),\n  helper.display({\n    header: 'Tags count',\n    cell: TagsCell,\n  }),\n];\n\nfunction useParams() {\n  const {\n    params: { endpointId, id },\n  } = useCurrentStateAndParams();\n\n  const registryId = number(id);\n\n  if (!registryId) {\n    throw new Error('Missing registry id');\n  }\n\n  return {\n    environmentId: number(endpointId),\n    registryId,\n  };\n}\n\nfunction number(value: string | undefined) {\n  const num = parseInt(value || '', 10);\n  return Number.isNaN(num) ? undefined : num;\n}\n\nfunction NameCell({ getValue }: CellContext<Repository, string>) {\n  const { environmentId } = useParams();\n  const name = getValue();\n  return (\n    <Link\n      to=\"portainer.registries.registry.repository\"\n      params={{ repository: name, endpointId: environmentId }}\n      title={name}\n    >\n      {name}\n    </Link>\n  );\n}\n\nfunction TagsCell({ row }: CellContext<Repository, unknown>) {\n  const { environmentId, registryId } = useParams();\n\n  const tagsQuery = useRepositoryTags({\n    environmentId,\n    registryId,\n    repository: row.original.Name,\n  });\n\n  return tagsQuery.data?.tags.length || 0;\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport {\n  DefaultRegistryAction,\n  DefaultRegistryDomain,\n  DefaultRegistryName,\n} from '@/react/portainer/registries/ListView/DefaultRegistry';\nimport { RepositoriesDatatable } from '@/react/portainer/registries/repositories/ListView/RepositoriesDatatable';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\n\nexport const registriesModule = angular\n  .module('portainer.app.react.components.registries', [])\n  .component(\n    'defaultRegistryName',\n    r2a(withReactQuery(DefaultRegistryName), [])\n  )\n  .component(\n    'defaultRegistryAction',\n    r2a(withReactQuery(DefaultRegistryAction), [])\n  )\n  .component(\n    'defaultRegistryDomain',\n    r2a(withReactQuery(DefaultRegistryDomain), [])\n  )\n  .component(\n    'registryRepositoriesDatatable',\n    r2a(withUIRouter(withReactQuery(RepositoriesDatatable)), ['dataset'])\n  ).name;\n","import clsx from 'clsx';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nexport function DefaultRegistryName() {\n  const settingsQuery = usePublicSettings({\n    select: (settings) => settings.DefaultRegistry?.Hide,\n  });\n\n  return (\n    <span\n      className={clsx({\n        'cm-strikethrough': settingsQuery.isSuccess && settingsQuery.data,\n      })}\n    >\n      Docker Hub (anonymous)\n    </span>\n  );\n}\n","import { Eye, EyeOff } from 'lucide-react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport {\n  usePublicSettings,\n  useUpdateDefaultRegistrySettingsMutation,\n} from '@/react/portainer/settings/queries';\n\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { Button } from '@@/buttons';\nimport { BEFeatureIndicator } from '@@/BEFeatureIndicator';\n\nexport function DefaultRegistryAction() {\n  const settingsQuery = usePublicSettings({\n    select: (settings) => settings.DefaultRegistry?.Hide,\n  });\n  const defaultRegistryMutation = useUpdateDefaultRegistrySettingsMutation();\n\n  if (!settingsQuery.isSuccess) {\n    return null;\n  }\n  const hideDefaultRegistry = settingsQuery.data;\n\n  const isLimited = isLimitedToBE(FeatureId.HIDE_DOCKER_HUB_ANONYMOUS);\n\n  return (\n    <>\n      {!hideDefaultRegistry ? (\n        <div className=\"vertical-center\">\n          <Button\n            color=\"danger\"\n            icon={EyeOff}\n            onClick={() => handleShowOrHide(true)}\n            disabled={isLimited}\n          >\n            Hide for all users\n          </Button>\n          <BEFeatureIndicator featureId={FeatureId.HIDE_DOCKER_HUB_ANONYMOUS} />\n          {isLimited ? null : (\n            <Tooltip\n              message=\"This hides the option in any registry dropdown prompts but does not prevent a user from deploying anonymously from Docker Hub directly via YAML.\n            Note: Docker Hub (anonymous) will continue to show as the ONLY option if there are NO other registries available to the user.\"\n            />\n          )}\n        </div>\n      ) : (\n        <div className=\"vertical-center\">\n          <Button icon={Eye} onClick={() => handleShowOrHide(false)}>\n            Show for all users\n          </Button>\n          <Tooltip\n            message=\"This reveals the option in any registry dropdown prompts.\n                    (but note that the Docker Hub (anonymous) option only shows if there is no credentialled Docker Hub option available to the user).\"\n          />\n        </div>\n      )}\n    </>\n  );\n\n  function handleShowOrHide(hideDefaultRegistry: boolean) {\n    defaultRegistryMutation.mutate(\n      {\n        Hide: hideDefaultRegistry,\n      },\n      {\n        onSuccess() {\n          notifySuccess(\n            'Success',\n            'Default registry Settings updated successfully'\n          );\n        },\n      }\n    );\n  }\n}\n","import clsx from 'clsx';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nexport function DefaultRegistryDomain() {\n  const settingsQuery = usePublicSettings({\n    select: (settings) => settings.DefaultRegistry?.Hide,\n  });\n\n  return (\n    <span\n      className={clsx({\n        'cm-strikethrough': settingsQuery.isSuccess && settingsQuery.data,\n      })}\n    >\n      docker.io\n    </span>\n  );\n}\n","import { Book } from 'lucide-react';\n\nimport { Datatable } from '@@/datatables';\nimport { useTableStateWithStorage } from '@@/datatables/useTableState';\n\nimport { Repository } from './types';\nimport { columns } from './columns';\n\nexport function RepositoriesDatatable({ dataset }: { dataset?: Repository[] }) {\n  const tableState = useTableStateWithStorage('registryRepositories');\n  return (\n    <Datatable\n      title=\"Repositories\"\n      titleIcon={Book}\n      columns={columns}\n      dataset={dataset || []}\n      isLoading={!dataset}\n      settingsManager={tableState}\n      emptyContentLabel=\"No repository available.\"\n      disableSelect\n    />\n  );\n}\n","import { useMutation } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { User } from '@/portainer/users/types';\nimport {\n  mutationOptions,\n  withInvalidate,\n  queryClient,\n} from '@/react-tools/react-query';\nimport { userQueryKeys } from '@/portainer/users/queries/queryKeys';\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nexport function useUpdateUserMutation() {\n  const {\n    user: { Id: userId },\n  } = useCurrentUser();\n\n  return useMutation(\n    (user: Partial<User>) => updateUser(user, userId),\n    mutationOptions(withInvalidate(queryClient, [userQueryKeys.base()]))\n    // error notification should be handled by the caller\n  );\n}\n\nasync function updateUser(user: Partial<User>, userId: number) {\n  try {\n    const { data } = await axios.put(`/users/${userId}`, user);\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error);\n  }\n}\n","import { Form, Formik } from 'formik';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { updateAxiosAdapter } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { LoadingButton } from '@@/buttons';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { useUpdateUserMutation } from '../../useUpdateUserMutation';\n\ntype FormValues = {\n  useCache: boolean;\n};\n\nexport function ApplicationSettingsForm() {\n  const { user } = useCurrentUser();\n  const updateSettingsMutation = useUpdateUserMutation();\n\n  const initialValues = {\n    useCache: user.UseCache,\n  };\n\n  return (\n    <Formik<FormValues>\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validateOnMount\n      enableReinitialize\n    >\n      {({ isValid, dirty, values, setFieldValue }) => (\n        <Form className=\"form-horizontal\">\n          <TextTip color=\"orange\" className=\"mb-3\">\n            Enabling front-end data caching can mean that changes to Kubernetes\n            clusters made by other users or outside of Portainer may take up to\n            five minutes to show in your session. This caching only applies to\n            Kubernetes environments.\n          </TextTip>\n          <SwitchField\n            label=\"Enable front-end data caching for Kubernetes environments\"\n            checked={values.useCache}\n            onChange={(value) => setFieldValue('useCache', value)}\n            labelClass=\"col-lg-2 col-sm-3\" // match the label width of the other fields in the page\n            fieldClass=\"!mb-4\"\n          />\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                loadingText=\"Saving...\"\n                isLoading={updateSettingsMutation.isLoading}\n                disabled={!isValid || !dirty}\n                className=\"!ml-0\"\n                data-cy=\"account-applicationSettingsSaveButton\"\n              >\n                Save\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit(values: FormValues) {\n    updateSettingsMutation.mutate(\n      {\n        Id: user.Id,\n        UseCache: values.useCache,\n      },\n      {\n        onSuccess() {\n          updateAxiosAdapter(values.useCache);\n          notifySuccess(\n            'Success',\n            'Successfully updated application settings.'\n          );\n          // a full reload is required to update the angular $http cache setting\n          setTimeout(() => window.location.reload(), 2000); // allow 2s to show the success notification\n        },\n        ...withError('Unable to update application settings'),\n      }\n    );\n  }\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { ApplicationSettingsWidget } from '@/react/portainer/account/AccountView/ApplicationSettings';\n\nexport const accountModule = angular\n  .module('portainer.app.react.components.account', [])\n  .component(\n    'applicationSettingsWidget',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(ApplicationSettingsWidget))),\n      []\n    )\n  ).name;\n","import { Settings } from 'lucide-react';\n\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\n\nimport { ApplicationSettingsForm } from './ApplicationSettingsForm';\n\nexport function ApplicationSettingsWidget() {\n  return (\n    <div className=\"row\">\n      <div className=\"col-sm-12\">\n        <Widget>\n          <WidgetTitle icon={Settings} title=\"Application settings\" />\n          <WidgetBody>\n            <ApplicationSettingsForm />\n          </WidgetBody>\n        </Widget>\n      </div>\n    </div>\n  );\n}\n","import angular from 'angular';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AnnotationsBeTeaser } from '@/react/kubernetes/annotations/AnnotationsBeTeaser';\nimport { withFormValidation } from '@/react-tools/withFormValidation';\nimport { GroupAssociationTable } from '@/react/portainer/environments/environment-groups/components/GroupAssociationTable';\nimport { AssociatedEnvironmentsSelector } from '@/react/portainer/environments/environment-groups/components/AssociatedEnvironmentsSelector';\nimport { HelmRepositoryDatatable } from '@/react/portainer/account/AccountView/HelmRepositoryDatatable';\nimport { withControlledInput } from '@/react-tools/withControlledInput';\n\nimport {\n  EnvironmentVariablesFieldset,\n  EnvironmentVariablesPanel,\n  StackEnvironmentVariablesPanel,\n  envVarValidation,\n} from '@@/form-components/EnvironmentVariablesFieldset';\nimport { Icon } from '@@/Icon';\nimport { ReactQueryDevtoolsWrapper } from '@@/ReactQueryDevtoolsWrapper';\nimport { PageHeader } from '@@/PageHeader';\nimport { TagSelector } from '@@/TagSelector';\nimport { Loading } from '@@/Widget/Loading';\nimport { PasswordCheckHint } from '@@/PasswordCheckHint';\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { Badge } from '@@/Badge';\nimport { TableColumnHeaderAngular } from '@@/datatables/TableHeaderCell';\nimport { DashboardItem } from '@@/DashboardItem';\nimport { SearchBar } from '@@/datatables/SearchBar';\nimport { FallbackImage } from '@@/FallbackImage';\nimport { BadgeIcon } from '@@/BadgeIcon';\nimport { TeamsSelector } from '@@/TeamsSelector';\nimport { TerminalTooltip } from '@@/TerminalTooltip';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\nimport { Slider } from '@@/form-components/Slider';\nimport { TagButton } from '@@/TagButton';\nimport { BETeaserButton } from '@@/BETeaserButton';\nimport { CodeEditor } from '@@/CodeEditor';\nimport { HelpLink } from '@@/HelpLink';\n\nimport { fileUploadField } from './file-upload-field';\nimport { switchField } from './switch-field';\nimport { customTemplatesModule } from './custom-templates';\nimport { gitFormModule } from './git-form';\nimport { settingsModule } from './settings';\nimport { accessControlModule } from './access-control';\nimport { environmentsModule } from './environments';\nimport { registriesModule } from './registries';\nimport { accountModule } from './account';\n\nexport const ngModule = angular\n  .module('portainer.app.react.components', [\n    accessControlModule,\n    customTemplatesModule,\n    environmentsModule,\n    gitFormModule,\n    registriesModule,\n    settingsModule,\n    accountModule,\n  ])\n  .component(\n    'tagSelector',\n    r2a(withUIRouter(withReactQuery(TagSelector)), [\n      'allowCreate',\n      'onChange',\n      'value',\n    ])\n  )\n  .component(\n    'beTeaserButton',\n    r2a(BETeaserButton, [\n      'featureId',\n      'heading',\n      'message',\n      'buttonText',\n      'className',\n      'buttonClassName',\n    ])\n  )\n  .component(\n    'tagButton',\n    r2a(TagButton, ['value', 'label', 'title', 'onRemove'])\n  )\n\n  .component(\n    'portainerTooltip',\n    r2a(Tooltip, ['message', 'position', 'className', 'setHtmlMessage', 'size'])\n  )\n  .component('terminalTooltip', r2a(TerminalTooltip, []))\n  .component('badge', r2a(Badge, ['type', 'className']))\n  .component('fileUploadField', fileUploadField)\n  .component('porSwitchField', switchField)\n  .component(\n    'passwordCheckHint',\n    r2a(withReactQuery(PasswordCheckHint), [\n      'forceChangePassword',\n      'passwordValid',\n    ])\n  )\n  .component('rdLoading', r2a(Loading, []))\n  .component(\n    'tableColumnHeader',\n    r2a(TableColumnHeaderAngular, [\n      'colTitle',\n      'canSort',\n      'isSorted',\n      'isSortedDesc',\n    ])\n  )\n  .component(\n    'pageHeader',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(PageHeader))), [\n      'title',\n      'breadcrumbs',\n      'loading',\n      'onReload',\n      'reload',\n      'id',\n    ])\n  )\n  .component(\n    'fallbackImage',\n    r2a(FallbackImage, ['src', 'fallbackIcon', 'alt', 'className'])\n  )\n  .component('prIcon', r2a(Icon, ['className', 'icon', 'mode', 'size', 'spin']))\n  .component(\n    'reactQueryDevTools',\n    r2a(withReactQuery(ReactQueryDevtoolsWrapper), [])\n  )\n  .component(\n    'helpLink',\n    r2a(withUIRouter(withReactQuery(HelpLink)), [\n      'docLink',\n      'target',\n      'children',\n    ])\n  )\n  .component(\n    'dashboardItem',\n    r2a(DashboardItem, [\n      'icon',\n      'type',\n      'value',\n      'to',\n      'params',\n      'children',\n      'pluralType',\n      'isLoading',\n      'isRefetching',\n      'dataCy',\n      'iconClass',\n    ])\n  )\n  .component(\n    'datatableSearchbar',\n    r2a(SearchBar, [\n      'data-cy',\n      'onChange',\n      'value',\n      'placeholder',\n      'children',\n      'className',\n    ])\n  )\n  .component('badgeIcon', r2a(BadgeIcon, ['icon', 'size', 'iconClass']))\n  .component(\n    'teamsSelector',\n    r2a(TeamsSelector, [\n      'onChange',\n      'value',\n      'dataCy',\n      'inputId',\n      'name',\n      'placeholder',\n      'teams',\n      'disabled',\n    ])\n  )\n  .component(\n    'porSelect',\n    r2a(PortainerSelect, [\n      'name',\n      'inputId',\n      'placeholder',\n      'disabled',\n      'data-cy',\n      'bindToBody',\n      'value',\n      'onChange',\n      'options',\n      'isMulti',\n      'isClearable',\n      'components',\n      'isLoading',\n      'noOptionsMessage',\n      'aria-label',\n    ])\n  )\n  .component(\n    'porSlider',\n    r2a(Slider, [\n      'min',\n      'max',\n      'step',\n      'value',\n      'onChange',\n      'visibleTooltip',\n      'dataCy',\n      'disabled',\n    ])\n  )\n  .component(\n    'reactCodeEditor',\n    r2a(CodeEditor, [\n      'id',\n      'placeholder',\n      'yaml',\n      'dockerFile',\n      'shell',\n      'readonly',\n      'onChange',\n      'value',\n      'height',\n    ])\n  )\n  .component(\n    'groupAssociationTable',\n    r2a(withReactQuery(GroupAssociationTable), [\n      'emptyContentLabel',\n      'onClickRow',\n      'query',\n      'title',\n      'data-cy',\n    ])\n  )\n  .component('annotationsBeTeaser', r2a(AnnotationsBeTeaser, []))\n  .component(\n    'associatedEndpointsSelector',\n    r2a(withReactQuery(AssociatedEnvironmentsSelector), ['onChange', 'value'])\n  )\n  .component(\n    'helmRepositoryDatatable',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(HelmRepositoryDatatable))),\n      []\n    )\n  );\n\nexport const componentsModule = ngModule.name;\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(EnvironmentVariablesFieldset, { values: 'onChange' }),\n  'environmentVariablesFieldset',\n  ['canUndoDelete'],\n  envVarValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withControlledInput(EnvironmentVariablesPanel, { values: 'onChange' }),\n  'environmentVariablesPanel',\n  ['explanation', 'showHelpMessage', 'isFoldable'],\n  envVarValidation\n);\n\nwithFormValidation(\n  ngModule,\n  withUIRouter(\n    withReactQuery(\n      withControlledInput(StackEnvironmentVariablesPanel, {\n        values: 'onChange',\n      })\n    )\n  ),\n  'stackEnvironmentVariablesPanel',\n  ['showHelpMessage', 'isFoldable'],\n  envVarValidation\n);\n","import { AlertTriangle, Check } from 'lucide-react';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport { Icon } from '@@/Icon';\n\ninterface Props {\n  passwordValid: boolean;\n  forceChangePassword?: boolean;\n}\n\nexport function PasswordCheckHint({\n  passwordValid,\n  forceChangePassword,\n}: Props) {\n  const settingsQuery = usePublicSettings();\n  const minPasswordLength = settingsQuery.data?.RequiredPasswordLength;\n\n  return (\n    <div>\n      <p className=\"text-warning vertical-center\">\n        <Icon icon={AlertTriangle} className=\"icon-warning\" />\n        {forceChangePassword &&\n          'An administrator has changed your password requirements, '}\n        The password must be at least {minPasswordLength} characters long.\n        {passwordValid && (\n          <Icon icon={Check} className=\"!ml-1\" mode=\"success\" />\n        )}\n      </p>\n    </div>\n  );\n}\n","import { ReactQueryDevtools } from 'react-query/devtools';\n\nexport function ReactQueryDevtoolsWrapper() {\n  const showReactQueryDevtools =\n    process.env.SHOW_REACT_QUERY_DEV_TOOLS === 'true';\n\n  return <>{showReactQueryDevtools && <ReactQueryDevtools />}</>;\n}\n","import { EnvironmentId } from '../../types';\n\nimport { GroupAssociationTable } from './GroupAssociationTable';\n\nexport function AssociatedEnvironmentsSelector({\n  onChange,\n  value,\n}: {\n  onChange: (\n    value: EnvironmentId[],\n    meta: { type: 'add' | 'remove'; value: EnvironmentId }\n  ) => void;\n  value: EnvironmentId[];\n}) {\n  return (\n    <>\n      <div className=\"col-sm-12 small text-muted\">\n        You can select which environment should be part of this group by moving\n        them to the associated environments table. Simply click on any\n        environment entry to move it from one table to the other.\n      </div>\n\n      <div className=\"col-sm-12 mt-4\">\n        <div className=\"flex\">\n          <div className=\"w-1/2\">\n            <GroupAssociationTable\n              title=\"Available environments\"\n              emptyContentLabel=\"No environment available\"\n              query={{\n                groupIds: [1],\n                excludeIds: value,\n              }}\n              onClickRow={(env) => {\n                if (!value.includes(env.Id)) {\n                  onChange([...value, env.Id], { type: 'add', value: env.Id });\n                }\n              }}\n              data-cy=\"edgeGroupCreate-availableEndpoints\"\n            />\n          </div>\n          <div className=\"w-1/2\">\n            <GroupAssociationTable\n              title=\"Associated environments\"\n              emptyContentLabel=\"No associated environment'\"\n              query={{\n                endpointIds: value,\n              }}\n              onClickRow={(env) => {\n                if (value.includes(env.Id)) {\n                  onChange(\n                    value.filter((id) => id !== env.Id),\n                    { type: 'remove', value: env.Id }\n                  );\n                }\n              }}\n            />\n          </div>\n        </div>\n      </div>\n    </>\n  );\n}\n","import { useLocalStorage } from './useLocalStorage';\n\nexport function usePaginationLimitState(\n  key: string\n): [number, (value: number) => void] {\n  const paginationKey = paginationKeyBuilder(key);\n  const [pageLimit, setPageLimit] = useLocalStorage(paginationKey, 10);\n\n  return [pageLimit, setPageLimit];\n\n  function paginationKeyBuilder(key: string) {\n    return `datatable_pagination_${key}`;\n  }\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHeartbeatUp = function SvgHeartbeatUp(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 16 15\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#039855\",\n    d: \"M7.919 2.193C6.335.34 3.693-.157 1.707 1.538-.278 3.234-.557 6.07 1.002 8.076c1.177 1.515 4.522 4.557 6.089 5.955.288.257.432.385.6.436.147.044.31.044.456 0 .168-.05.312-.18.6-.436 1.566-1.398 4.912-4.44 6.089-5.955 1.559-2.006 1.314-4.86-.706-6.538C12.111-.14 9.503.34 7.92 2.193Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"#fff\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M8.038 4.94v4.773m0-4.773 2.136 2.137M8.038 4.94 5.9 7.077\"\n  })));\n};\nexport default SvgHeartbeatUp;","export interface Filter<T = number> {\n  value: T;\n  label: string;\n}\n\nexport enum ConnectionType {\n  API,\n  Agent,\n  EdgeAgentStandard,\n  EdgeAgentAsync,\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHeartbeatDown = function SvgHeartbeatDown(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 16 15\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#D92D20\",\n    d: \"M7.919 2.193C6.335.34 3.693-.157 1.707 1.538-.278 3.234-.557 6.07 1.002 8.076c1.177 1.515 4.522 4.557 6.089 5.955.288.257.432.385.6.436.147.044.31.044.456 0 .168-.05.312-.18.6-.436 1.566-1.398 4.912-4.44 6.089-5.955 1.559-2.006 1.314-4.86-.706-6.538C12.111-.14 9.503.34 7.92 2.193Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"#fff\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M8.038 9.713V4.94m0 4.773L5.9 7.577m2.137 2.136 2.136-2.136\"\n  })));\n};\nexport default SvgHeartbeatDown;","import clsx from 'clsx';\nimport { AriaAttributes, PropsWithChildren } from 'react';\n\nimport { Icon, IconProps } from '@@/Icon';\n\nexport function EnvironmentStatusBadgeItem({\n  className,\n  children,\n  color = 'default',\n  icon,\n  ...aria\n}: PropsWithChildren<\n  {\n    className?: string;\n    color?: 'success' | 'danger' | 'default';\n    icon?: IconProps['icon'];\n  } & AriaAttributes\n>) {\n  return (\n    <span\n      className={clsx(\n        'flex items-center gap-1',\n        'rounded border-2 border-solid',\n        'w-fit px-1 py-px',\n        'text-xs font-semibold text-gray-7',\n        {\n          'border-green-3 bg-green-2': color === 'success',\n          'border-error-3 bg-error-2': color === 'danger',\n        },\n        className\n      )}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...aria}\n    >\n      {icon && (\n        <Icon\n          icon={icon}\n          className={clsx({\n            '!text-green-7': color === 'success',\n            '!text-error-7': color === 'danger',\n          })}\n        />\n      )}\n\n      {children}\n    </span>\n  );\n}\n","import { Activity } from 'lucide-react';\n\nimport { isoDateFromTimestamp } from '@/portainer/filters/filters';\nimport { Environment } from '@/react/portainer/environments/types';\nimport heartbeatup from '@/assets/ico/heartbeat-up.svg?c';\nimport heartbeatdown from '@/assets/ico/heartbeat-down.svg?c';\n\nimport { EnvironmentStatusBadgeItem } from './EnvironmentStatusBadgeItem';\n\ninterface Props {\n  showLastCheckInDate?: boolean;\n  environment: Environment;\n}\n\nexport function EdgeIndicator({\n  environment,\n  showLastCheckInDate = false,\n}: Props) {\n  const heartbeat = environment.Heartbeat;\n\n  const associated = !!environment.EdgeID;\n  if (!associated) {\n    return (\n      <span role=\"status\" aria-label=\"edge-status\">\n        <EnvironmentStatusBadgeItem aria-label=\"unassociated\">\n          <span className=\"whitespace-nowrap\">Not associated</span>\n        </EnvironmentStatusBadgeItem>\n      </span>\n    );\n  }\n\n  return (\n    <span\n      role=\"status\"\n      aria-label=\"edge-status\"\n      className=\"flex items-center gap-1\"\n    >\n      <EnvironmentStatusBadgeItem\n        color={heartbeat ? 'success' : 'danger'}\n        icon={heartbeat ? heartbeatup : heartbeatdown}\n        aria-label=\"edge-heartbeat\"\n      >\n        heartbeat\n      </EnvironmentStatusBadgeItem>\n\n      {showLastCheckInDate && !!environment.LastCheckInDate && (\n        <span\n          className=\"small text-muted vertical-center\"\n          aria-label=\"edge-last-checkin\"\n          title=\"Last edge check-in\"\n        >\n          <Activity className=\"icon icon-sm space-right\" aria-hidden=\"true\" />\n          {isoDateFromTimestamp(environment.LastCheckInDate)}\n        </span>\n      )}\n    </span>\n  );\n}\n","import { CheckCircle, XCircle } from 'lucide-react';\n\nimport { EnvironmentStatus } from '@/react/portainer/environments/types';\n\nimport { EnvironmentStatusBadgeItem } from './EnvironmentStatusBadgeItem';\n\ninterface Props {\n  status: EnvironmentStatus;\n}\n\nexport function EnvironmentStatusBadge({ status }: Props) {\n  return status === EnvironmentStatus.Up ? (\n    <EnvironmentStatusBadgeItem color=\"success\" icon={CheckCircle}>\n      Up\n    </EnvironmentStatusBadgeItem>\n  ) : (\n    <EnvironmentStatusBadgeItem color=\"danger\" icon={XCircle}>\n      Down\n    </EnvironmentStatusBadgeItem>\n  );\n}\n","import { environmentTypeIcon } from '@/portainer/filters/filters';\nimport dockerEdge from '@/assets/images/edge_endpoint.png';\nimport kube from '@/assets/images/kubernetes_endpoint.png';\nimport kubeEdge from '@/assets/images/kubernetes_edge_endpoint.png';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport azure from '@/assets/ico/vendor/azure.svg';\nimport docker from '@/assets/ico/vendor/docker.svg';\n\nimport { Icon } from '@@/Icon';\n\ninterface Props {\n  type: EnvironmentType;\n}\n\nexport function EnvironmentIcon({ type }: Props) {\n  switch (type) {\n    case EnvironmentType.AgentOnDocker:\n    case EnvironmentType.Docker:\n      return (\n        <img src={docker} width=\"60\" alt=\"docker endpoint\" aria-hidden=\"true\" />\n      );\n    case EnvironmentType.Azure:\n      return (\n        <img src={azure} width=\"60\" alt=\"azure endpoint\" aria-hidden=\"true\" />\n      );\n    case EnvironmentType.EdgeAgentOnDocker:\n      return (\n        <img src={dockerEdge} alt=\"docker edge endpoint\" aria-hidden=\"true\" />\n      );\n    case EnvironmentType.KubernetesLocal:\n    case EnvironmentType.AgentOnKubernetes:\n      return <img src={kube} alt=\"kubernetes endpoint\" aria-hidden=\"true\" />;\n    case EnvironmentType.EdgeAgentOnKubernetes:\n      return (\n        <img src={kubeEdge} alt=\"kubernetes edge endpoint\" aria-hidden=\"true\" />\n      );\n    default:\n      return (\n        <Icon\n          icon={environmentTypeIcon(type)}\n          className=\"blue-icon !h-16 !w-16\"\n        />\n      );\n  }\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nimport { Icon, IconProps } from '@/react/components/Icon';\n\ninterface Props extends IconProps {\n  value: string | number;\n  icon: IconProps['icon'];\n  iconClass?: string;\n}\n\nexport function StatsItem({\n  value,\n  icon,\n  children,\n  iconClass,\n}: PropsWithChildren<Props>) {\n  return (\n    <span className=\"flex items-center gap-1\">\n      <Icon className={clsx('icon icon-sm', iconClass)} icon={icon} />\n      <span>{value}</span>\n      {children && (\n        <span className=\"ml-1 flex items-center gap-2\">{children}</span>\n      )}\n    </span>\n  );\n}\n","import {\n  Box,\n  Cpu,\n  Database,\n  HardDrive,\n  Heart,\n  Layers,\n  List,\n  Power,\n  Shuffle,\n} from 'lucide-react';\n\nimport Memory from '@/assets/ico/memory.svg?c';\nimport { addPlural } from '@/portainer/helpers/strings';\nimport { DockerSnapshot } from '@/react/docker/snapshots/types';\nimport { humanize } from '@/portainer/filters/filters';\n\nimport { StatsItem } from '@@/StatsItem';\n\ninterface Props {\n  snapshot?: DockerSnapshot;\n}\n\nexport function EnvironmentStatsDocker({ snapshot }: Props) {\n  if (!snapshot) {\n    return <>No snapshot available</>;\n  }\n\n  return (\n    <>\n      <StatsItem\n        value={addPlural(snapshot.StackCount, 'stack')}\n        icon={Layers}\n      />\n\n      {!!snapshot.Swarm && (\n        <StatsItem\n          value={addPlural(snapshot.ServiceCount, 'service')}\n          icon={Shuffle}\n        />\n      )}\n\n      <ContainerStats\n        total={snapshot.ContainerCount}\n        running={snapshot.RunningContainerCount}\n        stopped={snapshot.StoppedContainerCount}\n        healthy={snapshot.HealthyContainerCount}\n        unhealthy={snapshot.UnhealthyContainerCount}\n      />\n      <StatsItem\n        value={addPlural(snapshot.VolumeCount, 'volume')}\n        icon={Database}\n      />\n      <StatsItem value={addPlural(snapshot.ImageCount, 'image')} icon={List} />\n\n      <StatsItem icon={Cpu} value={`${snapshot.TotalCPU} CPU`} />\n\n      <StatsItem\n        icon={Memory}\n        value={`${humanize(snapshot.TotalMemory)} RAM`}\n      />\n\n      {snapshot.Swarm && (\n        <StatsItem\n          value={addPlural(snapshot.NodeCount, 'node')}\n          icon={HardDrive}\n        />\n      )}\n    </>\n  );\n}\n\ninterface ContainerStatsProps {\n  total: number;\n  running: number;\n  stopped: number;\n  healthy: number;\n  unhealthy: number;\n}\n\nfunction ContainerStats({\n  total,\n  running,\n  stopped,\n  healthy,\n  unhealthy,\n}: ContainerStatsProps) {\n  const actualTotal = total || running + stopped;\n  return (\n    <StatsItem value={addPlural(actualTotal, 'container')} icon={Box}>\n      {actualTotal > 0 && (\n        <>\n          <StatsItem value={running} icon={Power} iconClass=\"icon-success\" />\n          <StatsItem value={stopped} icon={Power} iconClass=\"icon-danger\" />\n          <StatsItem value={healthy} icon={Heart} iconClass=\"icon-success\" />\n          <StatsItem value={unhealthy} icon={Heart} iconClass=\"icon-warning\" />\n        </>\n      )}\n    </StatsItem>\n  );\n}\n","import { Cpu, HardDrive } from 'lucide-react';\n\nimport { KubernetesSnapshot } from '@/react/portainer/environments/types';\nimport { humanize } from '@/portainer/filters/filters';\nimport { addPlural } from '@/portainer/helpers/strings';\nimport Memory from '@/assets/ico/memory.svg?c';\n\nimport { StatsItem } from '@@/StatsItem';\n\ninterface Props {\n  snapshot?: KubernetesSnapshot;\n}\n\nexport function EnvironmentStatsKubernetes({ snapshot }: Props) {\n  if (!snapshot) {\n    return <>No snapshot available</>;\n  }\n\n  return (\n    <>\n      <StatsItem icon={Cpu} value={`${snapshot.TotalCPU} CPU`} />\n\n      <StatsItem\n        icon={Memory}\n        value={`${humanize(snapshot.TotalMemory)} RAM`}\n      />\n\n      <StatsItem\n        value={addPlural(snapshot.NodeCount, 'node')}\n        icon={HardDrive}\n      />\n    </>\n  );\n}\n","import {\n  Environment,\n  PlatformType,\n} from '@/react/portainer/environments/types';\nimport { getPlatformType } from '@/react/portainer/environments/utils';\n\nimport { EnvironmentStatsDocker } from './EnvironmentStatsDocker';\nimport { EnvironmentStatsKubernetes } from './EnvironmentStatsKubernetes';\n\ninterface Props {\n  environment: Environment;\n}\n\nexport function EnvironmentStats({ environment }: Props) {\n  const platform = getPlatformType(environment.Type);\n\n  const component = getComponent(platform, environment);\n\n  return (\n    <span className=\"blocklist-item-desc flex flex-wrap items-center gap-x-10 gap-y-2\">\n      {component}\n    </span>\n  );\n}\n\nfunction getComponent(platform: PlatformType, environment: Environment) {\n  switch (platform) {\n    case PlatformType.Kubernetes:\n      return (\n        <EnvironmentStatsKubernetes\n          snapshot={environment.Kubernetes.Snapshots?.[0]}\n        />\n      );\n    case PlatformType.Docker:\n      return <EnvironmentStatsDocker snapshot={environment.Snapshots?.[0]} />;\n    default:\n      return null;\n  }\n}\n","import { DockerSnapshot } from '@/react/docker/snapshots/types';\nimport {\n  Environment,\n  PlatformType,\n  KubernetesSnapshot,\n} from '@/react/portainer/environments/types';\nimport { getPlatformType } from '@/react/portainer/environments/utils';\n\nexport function EngineVersion({ environment }: { environment: Environment }) {\n  const platform = getPlatformType(environment.Type);\n\n  switch (platform) {\n    case PlatformType.Docker:\n      return <DockerEngineVersion snapshot={environment.Snapshots[0]} />;\n    case PlatformType.Kubernetes:\n      return (\n        <KubernetesEngineVersion\n          snapshot={environment.Kubernetes.Snapshots?.[0]}\n        />\n      );\n    default:\n      return null;\n  }\n}\n\nfunction DockerEngineVersion({ snapshot }: { snapshot?: DockerSnapshot }) {\n  if (!snapshot) {\n    return null;\n  }\n\n  return (\n    <span className=\"small text-muted vertical-center\">\n      {snapshot.Swarm ? 'Swarm' : 'Standalone'} {snapshot.DockerVersion}\n    </span>\n  );\n}\n\nfunction KubernetesEngineVersion({\n  snapshot,\n}: {\n  snapshot?: KubernetesSnapshot;\n}) {\n  if (!snapshot) {\n    return null;\n  }\n\n  return (\n    <span className=\"small text-muted vertical-center\">\n      Kubernetes {snapshot.KubernetesVersion}\n    </span>\n  );\n}\n","import { Zap } from 'lucide-react';\n\nimport {\n  Environment,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport {\n  isEdgeEnvironment,\n  isLocalEnvironment,\n  isAgentEnvironment,\n} from '@/react/portainer/environments/utils';\n\nexport function EnvironmentTypeTag({\n  environment,\n}: {\n  environment: Environment;\n}) {\n  const typeLabel = getTypeLabel(environment);\n\n  if (!typeLabel) {\n    return null;\n  }\n\n  return (\n    <span className=\"vertical-center gap-1\">\n      <Zap className=\"icon icon-xs vertical-center\" aria-hidden=\"true\" />\n\n      <span>{typeLabel}</span>\n    </span>\n  );\n}\n\nfunction getTypeLabel(environment: Environment) {\n  if (isEdgeEnvironment(environment.Type)) {\n    return environment.Edge.AsyncMode\n      ? 'Edge Agent Async'\n      : 'Edge Agent Standard';\n  }\n\n  if (isLocalEnvironment(environment)) {\n    return 'Local';\n  }\n\n  if (environment.Type === EnvironmentType.Azure) {\n    return 'ACI';\n  }\n\n  if (isAgentEnvironment(environment.Type)) {\n    return 'Agent';\n  }\n\n  return '';\n}\n","import clsx from 'clsx';\nimport { ComponentProps } from 'react';\n\nimport { Button } from './buttons';\nimport { Link } from './Link';\n\nexport function LinkButton({\n  to,\n  params,\n  disabled,\n  className,\n  children,\n  title = '',\n  ...props\n}: ComponentProps<typeof Button> & ComponentProps<typeof Link>) {\n  return (\n    <Button\n      title={title}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...props}\n      className={clsx(className, 'no-link !m-0')}\n      disabled={disabled}\n      as={disabled ? 'span' : Link}\n      props={{\n        to,\n        params,\n      }}\n    >\n      {children}\n    </Button>\n  );\n}\n","import { History, Wifi, WifiOff, X } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport {\n  getDashboardRoute,\n  isEdgeAsync as checkEdgeAsync,\n} from '@/react/portainer/environments/utils';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { Icon } from '@@/Icon';\nimport { LinkButton } from '@@/LinkButton';\nimport { Button } from '@@/buttons';\n\ntype BrowseStatus = 'snapshot' | 'connected' | 'disconnected';\n\nexport function EnvironmentBrowseButtons({\n  environment,\n  onClickBrowse,\n  onClickDisconnect,\n  isActive,\n}: {\n  environment: Environment;\n  onClickBrowse(): void;\n  onClickDisconnect(): void;\n  isActive: boolean;\n}) {\n  const isEdgeAsync = checkEdgeAsync(environment);\n  const browseStatus = getStatus(isActive, isEdgeAsync);\n\n  const dashboardRoute = getDashboardRoute(environment);\n  return (\n    <div className=\"flex h-24 w-full flex-col justify-center gap-2 [&>*]:h-1/3\">\n      {isBE &&\n        (browseStatus !== 'snapshot' ? (\n          <LinkButton\n            icon={History}\n            disabled={!isEdgeAsync}\n            to=\"edge.browse.dashboard\"\n            params={{\n              environmentId: environment.Id,\n            }}\n            size=\"medium\"\n            color=\"light\"\n            className=\"!m-0 w-full !py-0\"\n            title={\n              !isEdgeAsync\n                ? 'Browse snapshot is only available for async environments'\n                : ''\n            }\n          >\n            Browse snapshot\n          </LinkButton>\n        ) : (\n          <Button\n            icon={X}\n            onClick={onClickDisconnect}\n            className=\"!m-0 w-full !py-0 opacity-60\"\n            size=\"medium\"\n            color=\"light\"\n          >\n            Close snapshot\n          </Button>\n        ))}\n\n      {browseStatus !== 'connected' ? (\n        <LinkButton\n          title={\n            isEdgeAsync\n              ? 'Live connection is not available for async environments'\n              : ''\n          }\n          icon={Wifi}\n          disabled={isEdgeAsync}\n          to={dashboardRoute.to}\n          params={dashboardRoute.params}\n          size=\"medium\"\n          onClick={onClickBrowse}\n          color=\"primary\"\n          className=\"!m-0 w-full !py-0\"\n        >\n          Live connect\n        </LinkButton>\n      ) : (\n        <Button\n          icon={WifiOff}\n          onClick={onClickDisconnect}\n          className=\"!m-0 w-full !py-0 opacity-60\"\n          size=\"medium\"\n          color=\"primary\"\n        >\n          Disconnect\n        </Button>\n      )}\n\n      <BrowseStatusTag status={browseStatus} />\n    </div>\n  );\n}\n\nfunction getStatus(isActive: boolean, isEdgeAsync: boolean) {\n  if (!isActive) {\n    return 'disconnected';\n  }\n\n  if (isEdgeAsync) {\n    return 'snapshot';\n  }\n\n  return 'connected';\n}\n\nfunction BrowseStatusTag({ status }: { status: BrowseStatus }) {\n  switch (status) {\n    case 'snapshot':\n      return <Snapshot />;\n    case 'connected':\n      return <Connected />;\n    case 'disconnected':\n      return <Disconnected />;\n    default:\n      return null;\n  }\n}\n\nfunction Disconnected() {\n  return (\n    <div className=\"flex items-center justify-center gap-2\">\n      <Icon icon={WifiOff} />\n      Disconnected\n    </div>\n  );\n}\n\nfunction Connected() {\n  return (\n    <div\n      className={clsx(\n        'flex items-center justify-center gap-2 rounded-lg',\n        'text-green-8 th-dark:text-green-4',\n        'bg-green-3 th-dark:bg-green-3/30'\n      )}\n    >\n      <div className=\"h-2 w-2 rounded-full bg-green-8 th-dark:bg-green-4\" />\n      Connected\n    </div>\n  );\n}\n\nfunction Snapshot() {\n  return (\n    <div\n      className={clsx(\n        'flex items-center justify-center gap-2 rounded-lg',\n        'text-warning-7 th-dark:text-warning-4',\n        'bg-warning-3 th-highcontrast:bg-warning-3/30 th-dark:bg-warning-3/10'\n      )}\n    >\n      <div className=\"h-2 w-2 rounded-full bg-warning-7\" />\n      Browsing Snapshot\n    </div>\n  );\n}\n","import { Edit2, Settings } from 'lucide-react';\nimport { ReactNode } from 'react';\nimport clsx from 'clsx';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport {\n  Environment,\n  PlatformType,\n} from '@/react/portainer/environments/types';\nimport {\n  isEdgeAsync as checkEdgeAsync,\n  getPlatformType,\n} from '@/react/portainer/environments/utils';\n\nimport { LinkButton } from '@@/LinkButton';\n\nexport function EditButtons({ environment }: { environment: Environment }) {\n  const { isPureAdmin } = useCurrentUser();\n\n  const isEdgeAsync = checkEdgeAsync(environment);\n\n  const configRoute = getConfigRoute(environment);\n\n  const buttonsClasses = clsx(\n    'w-full h-full !ml-0 !rounded-none',\n    'hover:bg-gray-3',\n    'th-dark:hover:bg-gray-9',\n    'th-highcontrast:hover:bg-white th-highcontrast:hover:text-black'\n  );\n\n  return (\n    <ButtonsGrid className=\"ml-3 w-11\">\n      <LinkButton\n        disabled={!isPureAdmin}\n        to=\"portainer.endpoints.endpoint\"\n        params={{ id: environment.Id, redirectTo: 'portainer.home' }}\n        color=\"none\"\n        icon={Edit2}\n        size=\"medium\"\n        className={buttonsClasses}\n        title=\"Edit\"\n      />\n\n      <LinkButton\n        disabled={!configRoute || isEdgeAsync || !isPureAdmin}\n        to={configRoute}\n        params={{ endpointId: environment.Id }}\n        color=\"none\"\n        icon={Settings}\n        size=\"medium\"\n        className={buttonsClasses}\n        title=\"Configuration\"\n      />\n    </ButtonsGrid>\n  );\n}\n\nfunction getConfigRoute(environment: Environment) {\n  const platform = getPlatformType(environment.Type);\n\n  switch (platform) {\n    case PlatformType.Docker:\n      return getDockerConfigRoute(environment);\n    case PlatformType.Kubernetes:\n      return 'kubernetes.cluster.setup';\n    default:\n      return '';\n  }\n}\n\nfunction getDockerConfigRoute(environment: Environment) {\n  const snapshot = environment.Snapshots?.[0];\n  if (!snapshot) {\n    return '';\n  }\n\n  return snapshot.Swarm ? 'docker.swarm' : 'docker.host';\n}\n\nfunction ButtonsGrid({\n  children,\n  className,\n}: {\n  children: ReactNode[];\n  className?: string;\n}) {\n  return (\n    <div\n      className={clsx(\n        'grid',\n        // trace borders but make them transparent so\n        // * hovering the env item won't make env box borders clip with the grid borders\n        // * hovering the buttons won't make the button's icon flicker\n        'rounded-r-lg border border-solid',\n        'border-y-transparent border-r-transparent',\n        'border-l-gray-5 th-highcontrast:border-l-white th-dark:border-l-gray-9',\n        'overflow-hidden',\n        className\n      )}\n    >\n      {children.map((child, index) => (\n        <div\n          key={index}\n          className={clsx({\n            'border-0 border-b border-solid border-b-gray-5 th-highcontrast:border-b-white th-dark:border-b-gray-9':\n              index < children.length - 1,\n          })}\n        >\n          {child}\n        </div>\n      ))}\n    </div>\n  );\n}\n","import { AlertTriangle } from 'lucide-react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport {\n  isAgentEnvironment,\n  isEdgeEnvironment,\n} from '@/react/portainer/environments/utils';\nimport { isVersionSmaller } from '@/react/common/semver-utils';\nimport { useSystemStatus } from '@/react/portainer/system/useSystemStatus';\n\nimport { Tooltip } from '@@/Tip/Tooltip';\nimport { Icon } from '@@/Icon';\n\nexport function AgentDetails({ environment }: { environment: Environment }) {\n  if (!isAgentEnvironment(environment.Type)) {\n    return null;\n  }\n\n  if (isEdgeEnvironment(environment.Type)) {\n    return <EdgeAgentDetails environment={environment} />;\n  }\n\n  return <span>{environment.Agent.Version}</span>;\n}\n\nfunction EdgeAgentDetails({ environment }: { environment: Environment }) {\n  const { data: systemStatus } = useSystemStatus();\n  const associated = !!environment.EdgeID;\n\n  if (!systemStatus || !associated) {\n    return null;\n  }\n\n  const agentVersion = environment.Agent.Version;\n\n  const { Version } = systemStatus;\n  const isSmaller =\n    !agentVersion || // agents before 2.15 don't send the version so it will be empty\n    isVersionSmaller(agentVersion, Version);\n\n  if (!isSmaller) {\n    return <span>{agentVersion}</span>;\n  }\n\n  return (\n    <span className=\"flex items-center gap-1\">\n      <Icon icon={AlertTriangle} className=\"icon-warning\" />\n      <span className=\"icon-warning\">{agentVersion || '< 2.15'}</span>\n      <Tooltip message=\"Features and bug fixes in your current Portainer Server release may not be available to this Edge Agent until it is upgraded.\" />\n    </span>\n  );\n}\n","import _ from 'lodash';\nimport { Tag, Activity } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport {\n  isoDateFromTimestamp,\n  stripProtocol,\n} from '@/portainer/filters/filters';\nimport {\n  type Environment,\n  PlatformType,\n} from '@/react/portainer/environments/types';\nimport {\n  getDashboardRoute,\n  getPlatformType,\n  isEdgeEnvironment,\n} from '@/react/portainer/environments/utils';\nimport type { TagId } from '@/portainer/tags/types';\nimport { useTags } from '@/portainer/tags/queries';\n\nimport { EdgeIndicator } from '@@/EdgeIndicator';\nimport { EnvironmentStatusBadge } from '@@/EnvironmentStatusBadge';\nimport { Link } from '@@/Link';\nimport { BlocklistItem } from '@@/Blocklist/BlocklistItem';\n\nimport { EnvironmentIcon } from './EnvironmentIcon';\nimport { EnvironmentStats } from './EnvironmentStats';\nimport { EngineVersion } from './EngineVersion';\nimport { EnvironmentTypeTag } from './EnvironmentTypeTag';\nimport { EnvironmentBrowseButtons } from './EnvironmentBrowseButtons';\nimport { EditButtons } from './EditButtons';\nimport { AgentDetails } from './AgentDetails';\n\ninterface Props {\n  environment: Environment;\n  groupName?: string;\n  onClickBrowse(): void;\n  onClickDisconnect(): void;\n  isActive: boolean;\n}\n\nexport function EnvironmentItem({\n  environment,\n  onClickBrowse,\n  onClickDisconnect,\n  groupName,\n  isActive,\n}: Props) {\n  const isEdge = isEdgeEnvironment(environment.Type);\n\n  const snapshotTime = getSnapshotTime(environment);\n\n  const tags = useEnvironmentTagNames(environment.TagIds);\n  const dashboardRoute = getDashboardRoute(environment);\n\n  return (\n    <div className=\"relative\">\n      <BlocklistItem\n        as={dashboardRoute.to ? Link : 'button'}\n        className={clsx('!m-0 min-h-[110px] !pr-56', {\n          'cursor-default': !dashboardRoute.to,\n          'no-link': dashboardRoute.to,\n        })}\n        onClick={onClickBrowse}\n        to={dashboardRoute.to}\n        params={dashboardRoute.params}\n      >\n        <div className=\"ml-2 flex justify-center self-center\">\n          <EnvironmentIcon type={environment.Type} />\n        </div>\n        <div className=\"ml-3 mr-auto flex flex-col items-start justify-center gap-3\">\n          <div className=\"flex flex-wrap items-center gap-x-4 gap-y-2\">\n            <span className=\"font-bold\">{environment.Name}</span>\n            {isEdge ? (\n              <EdgeIndicator environment={environment} showLastCheckInDate />\n            ) : (\n              <>\n                <EnvironmentStatusBadge status={environment.Status} />\n                {snapshotTime && (\n                  <span\n                    className=\"small text-muted vertical-center gap-1\"\n                    title=\"Last snapshot time\"\n                  >\n                    <Activity className=\"icon icon-sm\" aria-hidden=\"true\" />\n                    {snapshotTime}\n                  </span>\n                )}\n              </>\n            )}\n            <EngineVersion environment={environment} />\n            {!isEdge && (\n              <span className=\"text-muted small vertical-center\">\n                {stripProtocol(environment.URL)}\n              </span>\n            )}\n          </div>\n          <div className=\"small text-muted flex flex-wrap items-center gap-x-4 gap-y-2\">\n            {groupName && (\n              <span className=\"font-semibold\">\n                <span>Group: </span>\n                <span>{groupName}</span>\n              </span>\n            )}\n            <span className=\"vertical-center gap-1\">\n              <Tag className=\"icon icon-sm\" aria-hidden=\"true\" />\n              {tags}\n            </span>\n            <EnvironmentTypeTag environment={environment} />\n            <AgentDetails environment={environment} />\n          </div>\n          <EnvironmentStats environment={environment} />\n        </div>\n      </BlocklistItem>\n      {/* \n      Buttons are extracted out of the main button because it causes errors with react and accessibility issues\n      see https://stackoverflow.com/questions/66409964/warning-validatedomnesting-a-cannot-appear-as-a-descendant-of-a\n      */}\n      <div className=\"absolute inset-y-0 right-0 flex w-56 justify-end\">\n        <div className=\"flex flex-1 items-center py-3\">\n          <EnvironmentBrowseButtons\n            environment={environment}\n            onClickBrowse={onClickBrowse}\n            onClickDisconnect={onClickDisconnect}\n            isActive={isActive}\n          />\n        </div>\n        <EditButtons environment={environment} />\n      </div>\n    </div>\n  );\n}\n\nfunction useEnvironmentTagNames(tagIds?: TagId[]) {\n  const tagsQuery = useTags({\n    select: (tags) => {\n      if (!tagIds) {\n        return [];\n      }\n      return _.compact(\n        tagIds\n          .map((id) => tags.find((tag) => tag.ID === id))\n          .map((tag) => tag?.Name)\n      );\n    },\n  });\n\n  const { data: tags, isLoading } = tagsQuery;\n\n  if (tags && tags.length > 0) {\n    return tags.join(', ');\n  }\n\n  if (isLoading) {\n    return 'Loading tags...';\n  }\n\n  return 'No tags';\n}\n\nfunction getSnapshotTime(environment: Environment) {\n  const platform = getPlatformType(environment.Type);\n\n  switch (platform) {\n    case PlatformType.Docker:\n      return environment.Snapshots.length > 0\n        ? isoDateFromTimestamp(environment.Snapshots[0].Time)\n        : null;\n    case PlatformType.Kubernetes:\n      return environment.Kubernetes.Snapshots &&\n        environment.Kubernetes.Snapshots.length > 0\n        ? isoDateFromTimestamp(environment.Kubernetes.Snapshots[0].Time)\n        : null;\n    default:\n      return null;\n  }\n}\n","import { saveAs } from 'file-saver';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nconst baseUrl = 'kubernetes';\n\nexport async function downloadKubeconfigFile(environmentIds: EnvironmentId[]) {\n  try {\n    const { headers, data } = await axios.get<Blob>(`${baseUrl}/config`, {\n      params: { ids: JSON.stringify(environmentIds) },\n      responseType: 'blob',\n      headers: {\n        Accept: 'text/yaml',\n      },\n    });\n    const contentDispositionHeader = headers['content-disposition'];\n    const filename = contentDispositionHeader.replace('attachment;', '').trim();\n    saveAs(data, filename);\n  } catch (e) {\n    throw parseAxiosError(e as Error, '');\n  }\n}\n","import { useState } from 'react';\n\nexport function useListSelection<T>(\n  initialValue: Array<T> = [],\n  compareFn: (a: T, b: T) => boolean = (a, b) => a === b\n) {\n  const [selectedItems, setSelectedItems] = useState<Array<T>>(initialValue);\n\n  function handleChangeSelect(currentItem: T, selected: boolean) {\n    if (selected) {\n      setSelectedItems((items) => [...items, currentItem]);\n    } else {\n      setSelectedItems((items) =>\n        items.filter((item) => !compareFn(item, currentItem))\n      );\n    }\n  }\n\n  return [selectedItems, handleChangeSelect] as const;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"checkbox\":\"app-react-portainer-HomeView-EnvironmentList-KubeconfigButton-KubeconfigPrompt-module__checkbox\",\"checkboxList\":\"app-react-portainer-HomeView-EnvironmentList-KubeconfigButton-KubeconfigPrompt-module__checkbox-list\"};","import clsx from 'clsx';\nimport { useState } from 'react';\n\nimport { downloadKubeconfigFile } from '@/react/portainer/HomeView/EnvironmentList/KubeconfigButton/kubeconfig.service';\nimport * as notifications from '@/portainer/services/notifications';\nimport {\n  Environment,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport { usePaginationLimitState } from '@/react/hooks/usePaginationLimitState';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport {\n  Query,\n  useEnvironmentList,\n} from '@/react/portainer/environments/queries/useEnvironmentList';\nimport { useListSelection } from '@/react/hooks/useListSelection';\n\nimport { Modal } from '@@/modals';\nimport { PaginationControls } from '@@/PaginationControls';\nimport { Checkbox } from '@@/form-components/Checkbox';\nimport { Button } from '@@/buttons';\n\nimport styles from './KubeconfigPrompt.module.css';\n\nexport interface KubeconfigPromptProps {\n  envQueryParams: Query;\n  onClose: () => void;\n  selectedItems: Array<Environment['Id']>;\n}\nconst storageKey = 'home_endpoints';\n\nexport function KubeconfigPrompt({\n  envQueryParams,\n  onClose,\n  selectedItems,\n}: KubeconfigPromptProps) {\n  const [page, setPage] = useState(1);\n  const [pageLimit, setPageLimit] = usePaginationLimitState(storageKey);\n\n  const expiryQuery = usePublicSettings({\n    select: (settings) => expiryMessage(settings.KubeconfigExpiry),\n  });\n\n  const [selection, toggleSelection] =\n    useListSelection<Environment['Id']>(selectedItems);\n\n  const { environments, totalCount, isLoading } = useEnvironmentList({\n    ...envQueryParams,\n    page,\n    pageLimit,\n    types: [\n      EnvironmentType.KubernetesLocal,\n      EnvironmentType.AgentOnKubernetes,\n      EnvironmentType.EdgeAgentOnKubernetes,\n    ],\n  });\n  const isAllPageSelected =\n    !isLoading &&\n    environments\n      .filter((env) => env.Status <= 2)\n      .every((env) => selection.includes(env.Id));\n\n  return (\n    <Modal aria-label=\"Kubeconfig View\" onDismiss={onClose}>\n      <Modal.Header title=\"Download kubeconfig file\" />\n\n      <Modal.Body>\n        <div>\n          <span>\n            Select the kubernetes environments to add to the kubeconfig file.\n            You may select across multiple pages.\n          </span>\n          <span className=\"space-left\">{expiryQuery.data}</span>\n        </div>\n\n        <div className=\"mt-2 flex h-8 items-center\">\n          <Checkbox\n            id=\"settings-container-truncate-name\"\n            label=\"Select all (in this page)\"\n            checked={isAllPageSelected}\n            onChange={handleSelectAll}\n          />\n        </div>\n        <div className=\"datatable\">\n          <div className={styles.checkboxList}>\n            {environments\n              .filter((env) => env.Status <= 2)\n              .map((env) => (\n                <div\n                  key={env.Id}\n                  className={clsx(\n                    styles.checkbox,\n                    'flex h-8 items-center pt-1'\n                  )}\n                >\n                  <Checkbox\n                    id={`${env.Id}`}\n                    label={`${env.Name} (${env.URL})`}\n                    checked={selection.includes(env.Id)}\n                    onChange={() =>\n                      toggleSelection(env.Id, !selection.includes(env.Id))\n                    }\n                  />\n                </div>\n              ))}\n          </div>\n          <div className=\"flex w-full justify-end pt-3\">\n            <PaginationControls\n              showAll={totalCount <= 100}\n              page={page}\n              onPageChange={setPage}\n              pageLimit={pageLimit}\n              onPageLimitChange={setPageLimit}\n              pageCount={Math.ceil(totalCount / pageLimit)}\n            />\n          </div>\n        </div>\n      </Modal.Body>\n\n      <Modal.Footer>\n        <Button onClick={onClose} color=\"default\">\n          Cancel\n        </Button>\n        <Button onClick={handleDownload} disabled={selection.length === 0}>\n          Download File\n        </Button>\n      </Modal.Footer>\n    </Modal>\n  );\n\n  function handleSelectAll() {\n    environments.forEach((env) => toggleSelection(env.Id, !isAllPageSelected));\n  }\n\n  function handleDownload() {\n    confirmKubeconfigSelection();\n  }\n\n  async function confirmKubeconfigSelection() {\n    if (selection.length === 0) {\n      notifications.warning('No environment was selected', '');\n      return;\n    }\n    try {\n      await downloadKubeconfigFile(selection);\n      onClose();\n    } catch (e) {\n      notifications.error('Failed downloading kubeconfig file', e as Error);\n    }\n  }\n}\n\nexport function expiryMessage(expiry: string) {\n  const prefix = 'The kubeconfig file will';\n  switch (expiry) {\n    case '24h':\n      return `${prefix} expire in 1 day.`;\n    case '168h':\n      return `${prefix} expire in 7 days.`;\n    case '720h':\n      return `${prefix} expire in 30 days.`;\n    case '8640h':\n      return `${prefix} expire in 1 year.`;\n    case '0':\n    default:\n      return `${prefix} not expire.`;\n  }\n}\n","import { useState } from 'react';\nimport { Download } from 'lucide-react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { isKubernetesEnvironment } from '@/react/portainer/environments/utils';\nimport { trackEvent } from '@/angulartics.matomo/analytics-services';\nimport { Query } from '@/react/portainer/environments/queries/useEnvironmentList';\n\nimport { Button } from '@@/buttons';\n\nimport { KubeconfigPrompt } from './KubeconfigPrompt';\n\nimport '@reach/dialog/styles.css';\n\nexport interface Props {\n  environments: Environment[];\n  envQueryParams: Query;\n}\nexport function KubeconfigButton({ environments, envQueryParams }: Props) {\n  const [isOpen, setIsOpen] = useState(false);\n\n  const kubeEnvs = environments.filter((env) =>\n    isKubernetesEnvironment(env.Type)\n  );\n\n  if (!isKubeconfigButtonVisible()) {\n    return null;\n  }\n\n  return (\n    <>\n      <Button\n        onClick={handleClick}\n        size=\"medium\"\n        className=\"!m-0\"\n        icon={Download}\n        disabled={kubeEnvs.length === 0}\n        color=\"light\"\n      >\n        Kubeconfig\n      </Button>\n      {prompt()}\n    </>\n  );\n\n  function handleClick() {\n    if (!environments) {\n      return;\n    }\n\n    trackEvent('kubernetes-kubectl-kubeconfig-multi', {\n      category: 'kubernetes',\n    });\n\n    setIsOpen(true);\n  }\n\n  function handleClose() {\n    setIsOpen(false);\n  }\n\n  function isKubeconfigButtonVisible() {\n    return window.location.protocol === 'https:';\n  }\n\n  function prompt() {\n    return (\n      isOpen && (\n        <KubeconfigPrompt\n          envQueryParams={envQueryParams}\n          onClose={handleClose}\n          selectedItems={kubeEnvs.map((env) => env.Id)}\n        />\n      )\n    );\n  }\n}\n","import { InformationPanel } from '@@/InformationPanel';\nimport { Link } from '@@/Link';\nimport { TextTip } from '@@/Tip/TextTip';\n\nexport function NoEnvironmentsInfoPanel({ isAdmin }: { isAdmin: boolean }) {\n  return (\n    <InformationPanel title=\"Information\">\n      <TextTip>\n        {isAdmin ? (\n          <span>\n            No environment available for management. Please head over the{' '}\n            <Link to=\"portainer.wizard.endpoints\">environment wizard</Link> to\n            add an environment.\n          </span>\n        ) : (\n          <span>\n            You do not have access to any environment. Please contact your\n            administrator.\n          </span>\n        )}\n      </TextTip>\n    </InformationPanel>\n  );\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { EdgeUpdateSchedule } from '../types';\n\nexport const queryKeys = {\n  base: () => ['edge', 'update_schedules'] as const,\n  list: (includeEdgeStacks?: boolean) =>\n    [...queryKeys.base(), { includeEdgeStacks }] as const,\n  item: (id: EdgeUpdateSchedule['id']) => [...queryKeys.base(), id] as const,\n  activeSchedules: (environmentIds: EnvironmentId[]) =>\n    [...queryKeys.base(), 'active', { environmentIds }] as const,\n  supportedAgentVersions: () =>\n    [...queryKeys.base(), 'agent_versions'] as const,\n  previousVersions: () => [...queryKeys.base(), 'previous_versions'] as const,\n};\n","import { EdgeUpdateSchedule } from '../types';\n\nexport const BASE_URL = '/edge_update_schedules';\n\nexport function buildUrl(id?: EdgeUpdateSchedule['id'], action?: string) {\n  let url = BASE_URL;\n\n  if (id) {\n    url += `/${id}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\nimport { semverCompare } from '@/react/common/semver-utils';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nexport function useSupportedAgentVersions(\n  minVersion?: string,\n  { onSuccess }: { onSuccess?(data: string[]): void } = {}\n) {\n  return useQuery(\n    [...queryKeys.supportedAgentVersions(), { minVersion }],\n    getSupportedAgentVersions,\n    {\n      select(versions) {\n        if (!minVersion) {\n          return versions;\n        }\n\n        return versions.filter(\n          (version) => semverCompare(version, minVersion) > 0\n        );\n      },\n      onSuccess,\n      ...withError('failed fetching available agent versions'),\n    }\n  );\n}\n\nasync function getSupportedAgentVersions() {\n  try {\n    const { data } = await axios.get<string[]>(\n      buildUrl(undefined, 'agent_versions')\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Failed to get list of edge update schedules'\n    );\n  }\n}\n","import _ from 'lodash';\nimport clsx from 'clsx';\n\nimport { useSupportedAgentVersions } from '@/react/portainer/environments/update-schedules/queries/useSupportedAgentVersions';\n\nimport { Link } from '@@/Link';\n\nexport function UpdateBadge() {\n  const version = useAgentLatestVersion();\n\n  return (\n    <span\n      className={clsx(\n        'inline-flex h-fit items-center gap-2 rounded-3xl border border-solid border-transparent p-1 font-normal',\n        'bg-blue-3 text-blue-8',\n        'th-dark:bg-blue-8 th-dark:text-white',\n        'th-highcontrast:border-white th-highcontrast:bg-transparent th-highcontrast:text-white'\n      )}\n    >\n      <span className=\"hidden text-sm 2xl:!inline\">\n        Update Available: Edge Agent {version}\n      </span>\n      <Link\n        to=\"portainer.endpoints.updateSchedules.create\"\n        className={clsx(\n          'badge border border-solid border-transparent font-normal',\n          'bg-blue-8 text-blue-3',\n          'th-dark:bg-blue-3 th-dark:text-blue-8 th-dark:hover:bg-blue-5 th-dark:hover:text-blue-8',\n          'th-highcontrast:border-white th-highcontrast:bg-transparent th-highcontrast:text-white th-highcontrast:hover:bg-gray-warm-7 th-highcontrast:hover:text-white'\n        )}\n      >\n        Schedule Update\n      </Link>\n    </span>\n  );\n}\n\nfunction useAgentLatestVersion() {\n  const supportedAgentVersionsQuery = useSupportedAgentVersions();\n\n  return _.last(supportedAgentVersionsQuery.data) || '';\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"sortByContainer\":\"app-react-portainer-HomeView-EnvironmentList-SortbySelector-module__sort-by-container\",\"sortButton\":\"app-react-portainer-HomeView-EnvironmentList-SortbySelector-module__sort-button\",\"sortByElement\":\"app-react-portainer-HomeView-EnvironmentList-SortbySelector-module__sort-by-element\"};","import clsx from 'clsx';\n\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\nimport { TableHeaderSortIcons } from '@@/datatables/TableHeaderSortIcons';\n\nimport {\n  SortOptions,\n  SortType,\n} from '../../environments/queries/useEnvironmentList';\n\nimport styles from './SortbySelector.module.css';\n\nexport type ListSortType = Exclude<SortType, 'LastCheckIn' | 'EdgeID'>;\n\nconst sortByOptions = SortOptions.filter(\n  (v): v is ListSortType => !['LastCheckIn', 'EdgeID'].includes(v)\n).map((v) => ({\n  value: v,\n  label: v,\n}));\n\ninterface Props {\n  onChange: (value: ListSortType) => void;\n  onDescending: () => void;\n  placeHolder: string;\n  sortByDescending: boolean;\n  sortByButton: boolean;\n  value?: ListSortType;\n}\n\nexport function SortbySelector({\n  onChange,\n  onDescending,\n  placeHolder,\n  sortByDescending,\n  sortByButton,\n  value,\n}: Props) {\n  const sorted = sortByButton && !!value;\n  return (\n    <div className=\"flex items-center justify-end gap-1\">\n      <PortainerSelect\n        placeholder={placeHolder}\n        options={sortByOptions}\n        onChange={(option: ListSortType) => onChange(option)}\n        isClearable\n        value={value}\n      />\n\n      <button\n        className={clsx(styles.sortButton, '!m-0 h-[34px]')}\n        type=\"button\"\n        disabled={!sorted}\n        onClick={(e) => {\n          e.preventDefault();\n          onDescending();\n        }}\n      >\n        <TableHeaderSortIcons sorted={sorted} descending={sortByDescending} />\n      </button>\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"actionBar\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__actionBar\",\"description\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__description\",\"refreshEnvironmentsButton\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__refresh-environments-button\",\"filterContainer\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__filter-container\",\"filterLeft\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__filter-left\",\"filterRight\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__filter-right\",\"filterButton\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__filter-button\",\"clearButton\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__clear-button\",\"actionButton\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__action-button\",\"kubeconfigButton\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__kubeconfig-button\",\"refreshButton\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__refresh-button\",\"filterSearchbar\":\"app-react-portainer-HomeView-EnvironmentList-EnvironmentList-module__filterSearchbar\"};","import _ from 'lodash';\n\nimport { useTags } from '@/portainer/tags/queries';\n\nimport { useAgentVersionsList } from '../../environments/queries/useAgentVersionsList';\nimport { EnvironmentStatus, PlatformType } from '../../environments/types';\nimport { useGroups } from '../../environments/environment-groups/queries';\n\nimport { HomepageFilter } from './HomepageFilter';\nimport { ListSortType, SortbySelector } from './SortbySelector';\nimport { ConnectionType } from './types';\nimport styles from './EnvironmentList.module.css';\n\nconst status = [\n  { value: EnvironmentStatus.Up, label: 'Up' },\n  { value: EnvironmentStatus.Down, label: 'Down' },\n];\n\nexport function EnvironmentListFilters({\n  agentVersions,\n  clearFilter,\n  connectionTypes,\n  groupOnChange,\n  groupState,\n  platformTypes,\n  setAgentVersions,\n  setConnectionTypes,\n  setPlatformTypes,\n  sortByButton,\n  sortByDescending,\n  sortByState,\n  sortOnDescending,\n  sortOnChange,\n  statusOnChange,\n  statusState,\n  tagOnChange,\n  tagState,\n}: {\n  platformTypes: PlatformType[];\n  setPlatformTypes: (value: PlatformType[]) => void;\n\n  connectionTypes: ConnectionType[];\n  setConnectionTypes: (value: ConnectionType[]) => void;\n\n  statusState: number[];\n  statusOnChange: (value: number[]) => void;\n\n  tagOnChange: (value: number[]) => void;\n  tagState: number[];\n\n  groupOnChange: (value: number[]) => void;\n  groupState: number[];\n\n  setAgentVersions: (value: string[]) => void;\n  agentVersions: string[];\n\n  sortByState?: ListSortType;\n  sortOnChange: (value: ListSortType) => void;\n\n  sortOnDescending: () => void;\n  sortByDescending: boolean;\n\n  sortByButton: boolean;\n\n  clearFilter: () => void;\n}) {\n  const agentVersionsQuery = useAgentVersionsList();\n  const connectionTypeOptions = getConnectionTypeOptions(platformTypes);\n  const platformTypeOptions = getPlatformTypeOptions(connectionTypes);\n\n  const groupsQuery = useGroups();\n  const groupOptions = [...(groupsQuery.data || [])];\n  const uniqueGroup = [\n    ...new Map(groupOptions.map((item) => [item.Id, item])).values(),\n  ].map(({ Id: value, Name: label }) => ({\n    value,\n    label,\n  }));\n\n  const tagsQuery = useTags();\n  const tagOptions = [...(tagsQuery.data || [])];\n  const uniqueTag = [\n    ...new Map(tagOptions.map((item) => [item.ID, item])).values(),\n  ].map(({ ID: value, Name: label }) => ({\n    value,\n    label,\n  }));\n\n  return (\n    <div className=\"flex gap-2\">\n      <div className={styles.filterLeft}>\n        <HomepageFilter\n          filterOptions={platformTypeOptions}\n          onChange={setPlatformTypes}\n          placeHolder=\"Platform\"\n          value={platformTypes}\n        />\n      </div>\n      <div className={styles.filterLeft}>\n        <HomepageFilter\n          filterOptions={connectionTypeOptions}\n          onChange={setConnectionTypes}\n          placeHolder=\"Connection Type\"\n          value={connectionTypes}\n        />\n      </div>\n      <div className={styles.filterLeft}>\n        <HomepageFilter\n          filterOptions={status}\n          onChange={statusOnChange}\n          placeHolder=\"Status\"\n          value={statusState}\n        />\n      </div>\n      <div className={styles.filterLeft}>\n        <HomepageFilter\n          filterOptions={uniqueTag}\n          onChange={tagOnChange}\n          placeHolder=\"Tags\"\n          value={tagState}\n        />\n      </div>\n      <div className={styles.filterLeft}>\n        <HomepageFilter\n          filterOptions={uniqueGroup}\n          onChange={groupOnChange}\n          placeHolder=\"Groups\"\n          value={groupState}\n        />\n      </div>\n      <div className={styles.filterLeft}>\n        <HomepageFilter\n          filterOptions={\n            agentVersionsQuery.data?.map((v) => ({\n              label: v,\n              value: v,\n            })) || []\n          }\n          onChange={setAgentVersions}\n          placeHolder=\"Agent Version\"\n          value={agentVersions}\n        />\n      </div>\n      <button\n        type=\"button\"\n        className={styles.clearButton}\n        onClick={clearFilter}\n      >\n        Clear all\n      </button>\n\n      <div className={styles.filterRight}>\n        <SortbySelector\n          onChange={sortOnChange}\n          onDescending={sortOnDescending}\n          placeHolder=\"Sort By\"\n          sortByDescending={sortByDescending}\n          sortByButton={sortByButton}\n          value={sortByState}\n        />\n      </div>\n    </div>\n  );\n}\n\nfunction getConnectionTypeOptions(platformTypes: PlatformType[]) {\n  const platformTypeConnectionType = {\n    [PlatformType.Docker]: [\n      ConnectionType.API,\n      ConnectionType.Agent,\n      ConnectionType.EdgeAgentStandard,\n      ConnectionType.EdgeAgentAsync,\n    ],\n    [PlatformType.Azure]: [ConnectionType.API],\n    [PlatformType.Kubernetes]: [\n      ConnectionType.Agent,\n      ConnectionType.EdgeAgentStandard,\n      ConnectionType.EdgeAgentAsync,\n    ],\n  };\n\n  const connectionTypesDefaultOptions = [\n    { value: ConnectionType.API, label: 'API' },\n    { value: ConnectionType.Agent, label: 'Agent' },\n    { value: ConnectionType.EdgeAgentStandard, label: 'Edge Agent Standard' },\n    { value: ConnectionType.EdgeAgentAsync, label: 'Edge Agent Async' },\n  ];\n\n  if (platformTypes.length === 0) {\n    return connectionTypesDefaultOptions;\n  }\n\n  return _.compact(\n    _.intersection(\n      ...platformTypes.map((p) => platformTypeConnectionType[p])\n    ).map((c) => connectionTypesDefaultOptions.find((o) => o.value === c))\n  );\n}\n\nfunction getPlatformTypeOptions(connectionTypes: ConnectionType[]) {\n  const platformDefaultOptions = [\n    { value: PlatformType.Docker, label: 'Docker' },\n    { value: PlatformType.Azure, label: 'Azure' },\n    { value: PlatformType.Kubernetes, label: 'Kubernetes' },\n  ];\n\n  if (connectionTypes.length === 0) {\n    return platformDefaultOptions;\n  }\n\n  const connectionTypePlatformType = {\n    [ConnectionType.API]: [PlatformType.Docker, PlatformType.Azure],\n    [ConnectionType.Agent]: [PlatformType.Docker, PlatformType.Kubernetes],\n    [ConnectionType.EdgeAgentStandard]: [\n      PlatformType.Kubernetes,\n      PlatformType.Docker,\n    ],\n    [ConnectionType.EdgeAgentAsync]: [\n      PlatformType.Docker,\n      PlatformType.Kubernetes,\n    ],\n  };\n\n  return _.compact(\n    _.intersection(\n      ...connectionTypes.map((p) => connectionTypePlatformType[p])\n    ).map((c) => platformDefaultOptions.find((o) => o.value === c))\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport { getAgentVersions } from '../environment.service';\n\nimport { environmentQueryKeys } from './query-keys';\n\nexport function useAgentVersionsList() {\n  return useQuery([...environmentQueryKeys.base(), 'agentVersions'], () =>\n    getAgentVersions()\n  );\n}\n","import { useMutation } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { mutationOptions, withError } from '@/react-tools/react-query';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nexport function useActivateDevicesMutation() {\n  return useMutation(\n    (environmentIds: EnvironmentId[]) =>\n      promiseSequence(environmentIds.map((id) => () => activateDevice(id))),\n    mutationOptions(withError('Unable to associate with OpenAMT'))\n  );\n}\n\nasync function activateDevice(environmentId: EnvironmentId) {\n  try {\n    await axios.post(`/open_amt/${environmentId}/activate`);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to activate device');\n  }\n}\n","import { useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useActivateDevicesMutation } from '@/react/edge/edge-devices/open-amt/useActivateDevicesMutation';\nimport { usePaginationLimitState } from '@/react/hooks/usePaginationLimitState';\nimport { Query } from '@/react/portainer/environments/queries/useEnvironmentList';\nimport { EdgeTypes, Environment } from '@/react/portainer/environments/types';\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport { useListSelection } from '@/react/hooks/useListSelection';\n\nimport { Checkbox } from '@@/form-components/Checkbox';\nimport { Modal } from '@@/modals/Modal';\nimport { PaginationControls } from '@@/PaginationControls';\nimport { Button, LoadingButton } from '@@/buttons';\n\ninterface Props {\n  envQueryParams: Query;\n  onClose: () => void;\n  selectedItems: Array<Environment['Id']>;\n}\n\nconst storageKey = 'home_endpoints';\n\nexport function AssociateAMTDialog({\n  selectedItems,\n  onClose,\n  envQueryParams,\n}: Props) {\n  const activateDeviceMutation = useActivateDevicesMutation();\n  const [page, setPage] = useState(1);\n  const [pageLimit, setPageLimit] = usePaginationLimitState(storageKey);\n\n  const [selection, toggleSelection] =\n    useListSelection<Environment['Id']>(selectedItems);\n\n  const { environments, totalCount, isLoading } = useEnvironmentList({\n    ...envQueryParams,\n    page,\n    pageLimit,\n    types: EdgeTypes,\n  });\n  const isAllPageSelected =\n    !isLoading && environments.every((env) => selection.includes(env.Id));\n\n  return (\n    <Modal onDismiss={onClose} aria-label=\"Associate with OpenAMT\">\n      <Modal.Header title=\"Associate with OpenAMT\" />\n      <Modal.Body>\n        <span>\n          Select the environments to add to associate to OpenAMT. You may select\n          across multiple pages.\n        </span>\n        <div className=\"flex h-8 items-center\">\n          <Checkbox\n            id=\"settings-container-truncate-name\"\n            label=\"Select all (in this page)\"\n            checked={isAllPageSelected}\n            onChange={handleSelectAll}\n          />\n        </div>\n        <div className=\"datatable\">\n          <div className=\"bootbox-checkbox-list\">\n            {environments.map((env) => (\n              <div\n                key={env.Id}\n                className={clsx('flex h-8 items-center pl-2 pt-1')}\n              >\n                <Checkbox\n                  id={`${env.Id}`}\n                  label={`${env.Name} (${env.URL})`}\n                  checked={selection.includes(env.Id)}\n                  onChange={() =>\n                    toggleSelection(env.Id, !selection.includes(env.Id))\n                  }\n                />\n              </div>\n            ))}\n          </div>\n          <div className=\"flex w-full justify-end pt-3\">\n            <PaginationControls\n              showAll={totalCount <= 100}\n              page={page}\n              onPageChange={setPage}\n              pageLimit={pageLimit}\n              onPageLimitChange={setPageLimit}\n              pageCount={Math.ceil(totalCount / pageLimit)}\n            />\n          </div>\n        </div>\n      </Modal.Body>\n      <Modal.Footer>\n        <Button onClick={onClose} color=\"default\">\n          Cancel\n        </Button>\n        <LoadingButton\n          onClick={handleSubmit}\n          disabled={selection.length === 0}\n          loadingText=\"Associating...\"\n          isLoading={activateDeviceMutation.isLoading}\n        >\n          Associate Devices\n        </LoadingButton>\n      </Modal.Footer>\n    </Modal>\n  );\n\n  function handleSelectAll() {\n    environments.forEach((env) => toggleSelection(env.Id, !isAllPageSelected));\n  }\n\n  function handleSubmit() {\n    activateDeviceMutation.mutate(selection, {\n      onSuccess() {\n        onClose();\n      },\n    });\n  }\n}\n","import { Link } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport { Query } from '@/react/portainer/environments/queries/useEnvironmentList';\nimport { isEdgeEnvironment } from '@/react/portainer/environments/utils';\n\nimport { Button } from '@@/buttons';\n\nimport { AssociateAMTDialog } from './AssociateAMTDialog';\n\nexport function AMTButton({\n  environments,\n  envQueryParams,\n}: {\n  environments: Environment[];\n  envQueryParams: Query;\n}) {\n  const [isOpenDialog, setOpenDialog] = useState(false);\n  const isOpenAmtEnabledQuery = usePublicSettings({\n    select: (settings) =>\n      settings.EnableEdgeComputeFeatures && settings.IsAMTEnabled,\n  });\n\n  const isOpenAMTEnabled = !!isOpenAmtEnabledQuery.data;\n\n  if (!isOpenAMTEnabled) {\n    return null;\n  }\n\n  const edgeEnvironments = environments.filter((env) =>\n    isEdgeEnvironment(env.Type)\n  );\n\n  return (\n    <>\n      <Button onClick={openDialog} icon={Link} color=\"light\">\n        Associate with OpenAMT\n      </Button>\n      {isOpenDialog && (\n        <AssociateAMTDialog\n          selectedItems={edgeEnvironments.map((env) => env.Id)}\n          onClose={() => setOpenDialog(false)}\n          envQueryParams={envQueryParams}\n        />\n      )}\n    </>\n  );\n\n  function openDialog() {\n    setOpenDialog(true);\n  }\n}\n","import { ReactNode, useEffect, useState } from 'react';\nimport { HardDrive, RefreshCcw } from 'lucide-react';\nimport _ from 'lodash';\nimport { useStore } from 'zustand';\n\nimport { usePaginationLimitState } from '@/react/hooks/usePaginationLimitState';\nimport {\n  Environment,\n  EnvironmentType,\n  EnvironmentStatus,\n  PlatformType,\n  EdgeTypes,\n} from '@/react/portainer/environments/types';\nimport { EnvironmentGroupId } from '@/react/portainer/environments/environment-groups/types';\nimport {\n  refetchIfAnyOffline,\n  useEnvironmentList,\n} from '@/react/portainer/environments/queries/useEnvironmentList';\nimport { useGroups } from '@/react/portainer/environments/environment-groups/queries';\nimport { EnvironmentsQueryParams } from '@/react/portainer/environments/environment.service';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { environmentStore } from '@/react/hooks/current-environment-store';\n\nimport { TableFooter } from '@@/datatables/TableFooter';\nimport { TableContainer, TableTitle } from '@@/datatables';\nimport { Button } from '@@/buttons';\nimport { PaginationControls } from '@@/PaginationControls';\nimport { SearchBar, useSearchBarState } from '@@/datatables/SearchBar';\n\nimport { useHomePageFilter } from './HomepageFilter';\nimport { ConnectionType } from './types';\nimport { EnvironmentItem } from './EnvironmentItem';\nimport { KubeconfigButton } from './KubeconfigButton';\nimport { NoEnvironmentsInfoPanel } from './NoEnvironmentsInfoPanel';\nimport { UpdateBadge } from './UpdateBadge';\nimport { EnvironmentListFilters } from './EnvironmentListFilters';\nimport { AMTButton } from './AMTButton/AMTButton';\nimport { ListSortType } from './SortbySelector';\n\ninterface Props {\n  onClickBrowse(environment: Environment): void;\n  onRefresh(): void;\n}\n\nconst storageKey = 'home_endpoints';\n\nexport function EnvironmentList({ onClickBrowse, onRefresh }: Props) {\n  const isPureAdmin = useIsPureAdmin();\n  const currentEnvStore = useStore(environmentStore);\n\n  const [platformTypes, setPlatformTypes] = useHomePageFilter<PlatformType[]>(\n    'platformType',\n    []\n  );\n  const [searchBarValue, setSearchBarValue] = useSearchBarState(storageKey);\n  const [pageLimit, setPageLimit] = usePaginationLimitState(storageKey);\n  const [page, setPage] = useState(1);\n\n  const [connectionTypes, setConnectionTypes] = useHomePageFilter<\n    ConnectionType[]\n  >('connectionTypes', []);\n\n  const [statusFilter, setStatusFilter] = useHomePageFilter<\n    EnvironmentStatus[]\n  >('status', []);\n  const [tagFilter, setTagFilter] = useHomePageFilter<number[]>('tag', []);\n  const [groupFilter, setGroupFilter] = useHomePageFilter<EnvironmentGroupId[]>(\n    'group',\n    []\n  );\n  const [sortByFilter, setSortByFilter] = useHomePageFilter<\n    ListSortType | undefined\n  >('sortBy', undefined);\n  const [sortByDescending, setSortByDescending] = useHomePageFilter(\n    'sortOrder',\n    false\n  );\n  const [sortByButton, setSortByButton] = useHomePageFilter(\n    'sortByButton',\n    false\n  );\n\n  const [statusState, setStatusState] = useHomePageFilter<number[]>(\n    'status_state',\n    []\n  );\n  const [tagState, setTagState] = useHomePageFilter<number[]>('tag_state', []);\n  const [groupState, setGroupState] = useHomePageFilter<number[]>(\n    'group_state',\n    []\n  );\n\n  const [agentVersions, setAgentVersions] = useHomePageFilter<string[]>(\n    'agentVersions',\n    []\n  );\n\n  const groupsQuery = useGroups();\n\n  const environmentsQueryParams: EnvironmentsQueryParams = {\n    types: getTypes(platformTypes, connectionTypes),\n    search: searchBarValue,\n    status: statusFilter,\n    tagIds: tagFilter?.length ? tagFilter : undefined,\n    groupIds: groupFilter,\n    provisioned: true,\n    tagsPartialMatch: true,\n    agentVersions,\n    updateInformation: isBE,\n    edgeAsync: getEdgeAsyncValue(connectionTypes),\n  };\n\n  const queryWithSort = {\n    ...environmentsQueryParams,\n    sort: sortByFilter,\n    order: sortByDescending ? 'desc' : ('asc' as 'desc' | 'asc'),\n  };\n\n  const {\n    isLoading,\n    environments,\n    totalCount,\n    totalAvailable,\n    updateAvailable,\n  } = useEnvironmentList(\n    {\n      page,\n      pageLimit,\n      ...queryWithSort,\n    },\n    { refetchInterval: refetchIfAnyOffline }\n  );\n\n  useEffect(() => {\n    setPage(1);\n  }, [searchBarValue]);\n\n  return (\n    <>\n      {totalAvailable === 0 && (\n        <NoEnvironmentsInfoPanel isAdmin={isPureAdmin} />\n      )}\n\n      <TableContainer>\n        <div className=\"px-4\">\n          <TableTitle\n            className=\"!px-0\"\n            icon={HardDrive}\n            label=\"Environments\"\n            description={\n              <div className=\"w-full text-sm text-gray-7\">\n                Click on an environment to manage\n              </div>\n            }\n          >\n            <div className=\"flex items-center gap-4\">\n              <SearchBar\n                className=\"!m-0 !min-w-[350px] !bg-transparent\"\n                value={searchBarValue}\n                onChange={setSearchBarValue}\n                placeholder=\"Search by name, group, tag, status, URL...\"\n                data-cy=\"home-endpointsSearchInput\"\n              />\n              {isPureAdmin && (\n                <Button\n                  onClick={onRefresh}\n                  data-cy=\"home-refreshEndpointsButton\"\n                  size=\"medium\"\n                  color=\"light\"\n                  icon={RefreshCcw}\n                  className=\"!m-0\"\n                >\n                  Refresh\n                </Button>\n              )}\n              <KubeconfigButton\n                environments={environments}\n                envQueryParams={queryWithSort}\n              />\n\n              <AMTButton\n                environments={environments}\n                envQueryParams={queryWithSort}\n              />\n\n              {updateAvailable && <UpdateBadge />}\n            </div>\n          </TableTitle>\n          <div className=\"-mt-3\">\n            <EnvironmentListFilters\n              setPlatformTypes={setPlatformTypes}\n              platformTypes={platformTypes}\n              setConnectionTypes={setConnectionTypes}\n              connectionTypes={connectionTypes}\n              statusOnChange={statusOnChange}\n              statusState={statusState}\n              tagOnChange={tagOnChange}\n              tagState={tagState}\n              groupOnChange={groupOnChange}\n              groupState={groupState}\n              setAgentVersions={setAgentVersions}\n              agentVersions={agentVersions}\n              clearFilter={clearFilter}\n              sortOnChange={sortOnchange}\n              sortOnDescending={sortOnDescending}\n              sortByDescending={sortByDescending}\n              sortByButton={sortByButton}\n              sortByState={sortByFilter}\n            />\n          </div>\n          <div\n            className=\"blocklist mt-5 !space-y-2 !p-0\"\n            data-cy=\"home-endpointList\"\n            role=\"list\"\n          >\n            {renderItems(\n              isLoading,\n              totalCount,\n              environments.map((env) => (\n                <EnvironmentItem\n                  key={env.Id}\n                  environment={env}\n                  groupName={\n                    groupsQuery.data?.find((g) => g.Id === env.GroupId)?.Name\n                  }\n                  onClickBrowse={() => onClickBrowse(env)}\n                  onClickDisconnect={() =>\n                    env.Id === currentEnvStore.environmentId\n                      ? currentEnvStore.clear()\n                      : null\n                  }\n                  isActive={env.Id === currentEnvStore.environmentId}\n                />\n              ))\n            )}\n          </div>\n          <TableFooter className=\"!border-t-0\">\n            <PaginationControls\n              className=\"!mr-0\"\n              showAll={totalCount <= 100}\n              pageLimit={pageLimit}\n              page={page}\n              onPageChange={setPage}\n              pageCount={Math.ceil(totalCount / pageLimit)}\n              onPageLimitChange={setPageLimit}\n            />\n          </TableFooter>\n        </div>\n      </TableContainer>\n    </>\n  );\n\n  function getTypes(\n    platformTypes: PlatformType[],\n    connectionTypes: ConnectionType[]\n  ) {\n    if (platformTypes.length === 0 && connectionTypes.length === 0) {\n      return [];\n    }\n\n    const typesByPlatform = {\n      [PlatformType.Docker]: [\n        EnvironmentType.Docker,\n        EnvironmentType.AgentOnDocker,\n        EnvironmentType.EdgeAgentOnDocker,\n      ],\n      [PlatformType.Azure]: [EnvironmentType.Azure],\n      [PlatformType.Kubernetes]: [\n        EnvironmentType.KubernetesLocal,\n        EnvironmentType.AgentOnKubernetes,\n        EnvironmentType.EdgeAgentOnKubernetes,\n      ],\n    };\n\n    const typesByConnection = {\n      [ConnectionType.API]: [\n        EnvironmentType.Azure,\n        EnvironmentType.KubernetesLocal,\n        EnvironmentType.Docker,\n      ],\n      [ConnectionType.Agent]: [\n        EnvironmentType.AgentOnDocker,\n        EnvironmentType.AgentOnKubernetes,\n      ],\n      [ConnectionType.EdgeAgentStandard]: EdgeTypes,\n      [ConnectionType.EdgeAgentAsync]: EdgeTypes,\n    };\n\n    const selectedTypesByPlatform = platformTypes.flatMap(\n      (platformType) => typesByPlatform[platformType]\n    );\n    const selectedTypesByConnection = connectionTypes.flatMap(\n      (connectionType) => typesByConnection[connectionType]\n    );\n\n    if (selectedTypesByPlatform.length === 0) {\n      return selectedTypesByConnection;\n    }\n\n    if (selectedTypesByConnection.length === 0) {\n      return selectedTypesByPlatform;\n    }\n\n    return _.intersection(selectedTypesByConnection, selectedTypesByPlatform);\n  }\n\n  function statusOnChange(value: number[]) {\n    setStatusState(value);\n    if (value.length === 0) {\n      setStatusFilter([]);\n    } else {\n      const filteredStatus = [...new Set(value)];\n      setStatusFilter(filteredStatus);\n    }\n  }\n\n  function groupOnChange(value: number[]) {\n    setGroupState(value);\n    if (value.length === 0) {\n      setGroupFilter([]);\n    } else {\n      const filteredGroups = [...new Set(value)];\n      setGroupFilter(filteredGroups);\n    }\n  }\n\n  function tagOnChange(value: number[]) {\n    setTagState(value);\n    if (value.length === 0) {\n      setTagFilter([]);\n    } else {\n      const filteredTags = [...new Set(value)];\n      setTagFilter(filteredTags);\n    }\n  }\n\n  function clearFilter() {\n    setPlatformTypes([]);\n    setStatusState([]);\n    setStatusFilter([]);\n    setTagState([]);\n    setTagFilter([]);\n    setGroupState([]);\n    setGroupFilter([]);\n    setAgentVersions([]);\n    setConnectionTypes([]);\n  }\n\n  function sortOnchange(value?: 'Name' | 'Group' | 'Status') {\n    setSortByFilter(value);\n    setSortByButton(!!value);\n  }\n\n  function sortOnDescending() {\n    setSortByDescending(!sortByDescending);\n  }\n}\n\nfunction renderItems(\n  isLoading: boolean,\n  totalCount: number,\n\n  items: ReactNode\n) {\n  if (isLoading) {\n    return (\n      <div className=\"text-muted text-center\" data-cy=\"home-loadingEndpoints\">\n        Loading...\n      </div>\n    );\n  }\n\n  if (!totalCount) {\n    return (\n      <div className=\"text-muted text-center\" data-cy=\"home-noEndpoints\">\n        No environments available.\n      </div>\n    );\n  }\n\n  return items;\n}\n\nfunction getEdgeAsyncValue(connectionTypes: ConnectionType[]) {\n  const hasEdgeAsync = connectionTypes.some(\n    (connectionType) => connectionType === ConnectionType.EdgeAgentAsync\n  );\n\n  const hasEdgeStandard = connectionTypes.some(\n    (connectionType) => connectionType === ConnectionType.EdgeAgentStandard\n  );\n\n  // If both are selected, we don't want to filter on either, and same for if both are not selected\n  if (hasEdgeAsync === hasEdgeStandard) {\n    return undefined;\n  }\n\n  return hasEdgeAsync;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-portainer-HomeView-EdgeLoadingSpinner-module__root\"};","import clsx from 'clsx';\nimport { Settings } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\n\nimport styles from './EdgeLoadingSpinner.module.css';\n\nexport function EdgeLoadingSpinner() {\n  return (\n    <div className={clsx('row', styles.root)}>\n      Connecting to the Edge environment...\n      <Icon icon={Settings} className=\"!ml-1 animate-spin-slow\" />\n    </div>\n  );\n}\n","import create from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\n\ninterface UIState {\n  dismissedInfoPanels: Record<string, boolean>;\n  dismissInfoPanel(id: string): void;\n\n  dismissedInfoHash: string;\n  dismissMotd(hash: string): void;\n\n  dismissedUpdateVersion: string;\n  dismissUpdateVersion(version: string): void;\n}\n\nexport const useUIState = create<UIState>()(\n  persist(\n    (set) => ({\n      dismissedInfoPanels: {},\n      dismissInfoPanel(id: string) {\n        set((state) => ({\n          dismissedInfoPanels: { ...state.dismissedInfoPanels, [id]: true },\n        }));\n      },\n      dismissedInfoHash: '',\n      dismissMotd(hash: string) {\n        set({ dismissedInfoHash: hash });\n      },\n      dismissedUpdateVersion: '',\n      dismissUpdateVersion(version: string) {\n        set({ dismissedUpdateVersion: version });\n      },\n    }),\n    { name: keyBuilder('NEW_UI_STATE') }\n  )\n);\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { Motd } from './types';\n\nexport async function getMotd() {\n  try {\n    const { data } = await axios.get<Motd>('/motd');\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Unable to retrieve information message'\n    );\n  }\n}\n","import { useQuery } from 'react-query';\nimport _ from 'lodash';\n\nimport { useUIState } from '@/react/hooks/useUIState';\n\nimport { InformationPanel } from '@@/InformationPanel';\n\nimport { getMotd } from './home.service';\n\nexport function MotdPanel() {\n  const motd = useMotd();\n\n  const uiStateStore = useUIState();\n\n  if (\n    !motd ||\n    motd.Message === '' ||\n    motd.Hash === uiStateStore.dismissedInfoHash\n  ) {\n    return null;\n  }\n\n  return (\n    <>\n      {!!motd.Style && <style>{motd.Style}</style>}\n      <InformationPanel\n        onDismiss={() => onDismiss(motd.Hash)}\n        title={motd.Title}\n        wrapperStyle={camelCaseKeys(motd.ContentLayout)}\n        bodyClassName=\"motd-body\"\n      >\n        <span className=\"text-muted\">\n          {/* eslint-disable-next-line react/no-danger */}\n          <p dangerouslySetInnerHTML={{ __html: motd.Message }} />\n        </span>\n      </InformationPanel>\n    </>\n  );\n\n  function onDismiss(hash: string) {\n    uiStateStore.dismissMotd(hash);\n  }\n}\n\nfunction useMotd() {\n  const { data } = useQuery('motd', () => getMotd());\n  return data;\n}\n\nfunction camelCaseKeys(obj: Record<string, string> = {}) {\n  return Object.fromEntries(\n    Object.entries(obj).map(([key, value]) => {\n      const camelCased = _.camelCase(key);\n      return [camelCased, value];\n    })\n  );\n}\n","import { useStore } from 'zustand';\nimport { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { useEffect, useState } from 'react';\n\nimport { environmentStore } from '@/react/hooks/current-environment-store';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { snapshotEndpoints } from '@/react/portainer/environments/environment.service';\nimport { isEdgeEnvironment } from '@/react/portainer/environments/utils';\nimport * as notifications from '@/portainer/services/notifications';\n\nimport { confirm } from '@@/modals/confirm';\nimport { PageHeader } from '@@/PageHeader';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nimport { EnvironmentList } from './EnvironmentList';\nimport { EdgeLoadingSpinner } from './EdgeLoadingSpinner';\nimport { MotdPanel } from './MotdPanel';\nimport { LicenseNodePanel } from './LicenseNodePanel';\nimport { BackupFailedPanel } from './BackupFailedPanel';\n\nexport function HomeView() {\n  const { clear: clearStore } = useStore(environmentStore);\n\n  const { params } = useCurrentStateAndParams();\n  const [connectingToEdgeEndpoint, setConnectingToEdgeEndpoint] = useState(\n    !!params.redirect\n  );\n\n  const router = useRouter();\n\n  useEffect(() => {\n    async function redirect() {\n      const options = {\n        title: `Failed connecting to ${params.environmentName}`,\n        message: `There was an issue connecting to edge agent via tunnel. Click 'Retry' below to retry now, or wait 10 seconds to automatically retry.`,\n        confirmButton: buildConfirmButton('Retry', 'primary', 10),\n        modalType: ModalType.Destructive,\n      };\n\n      if (await confirm(options)) {\n        setConnectingToEdgeEndpoint(true);\n        router.stateService.go(params.route, {\n          endpointId: params.environmentId,\n        });\n      } else {\n        clearStore();\n        router.stateService.go(\n          'portainer.home',\n          {},\n          { reload: true, inherit: false }\n        );\n      }\n    }\n\n    if (params.redirect) {\n      redirect();\n    }\n  }, [params, setConnectingToEdgeEndpoint, router, clearStore]);\n\n  return (\n    <>\n      <PageHeader\n        reload\n        title=\"Home\"\n        breadcrumbs={[{ label: 'Environments' }]}\n      />\n\n      {process.env.PORTAINER_EDITION !== 'CE' && <LicenseNodePanel />}\n\n      <MotdPanel />\n\n      {process.env.PORTAINER_EDITION !== 'CE' && <BackupFailedPanel />}\n\n      {connectingToEdgeEndpoint ? (\n        <EdgeLoadingSpinner />\n      ) : (\n        <EnvironmentList\n          onClickBrowse={handleBrowseClick}\n          onRefresh={confirmTriggerSnapshot}\n        />\n      )}\n    </>\n  );\n\n  async function confirmTriggerSnapshot() {\n    const result = await confirmEndpointSnapshot();\n    if (!result) {\n      return;\n    }\n    try {\n      await snapshotEndpoints();\n      notifications.success('Success', 'Environments updated');\n      router.stateService.reload();\n    } catch (err) {\n      notifications.error(\n        'Failure',\n        err as Error,\n        'An error occurred during environment snapshot'\n      );\n    }\n  }\n\n  function handleBrowseClick(environment: Environment) {\n    if (isEdgeEnvironment(environment.Type)) {\n      setConnectingToEdgeEndpoint(true);\n    }\n  }\n}\n\nasync function confirmEndpointSnapshot() {\n  return confirm({\n    title: 'Are you sure?',\n    modalType: ModalType.Warn,\n    message:\n      'Triggering a manual refresh will poll each environment to retrieve its information, this may take a few moments.',\n  });\n}\n","import { SchemaOf, object, string } from 'yup';\n\nimport { ApiKeyFormValues } from './types';\n\nexport function getAPITokenValidationSchema(\n  requirePassword: boolean\n): SchemaOf<ApiKeyFormValues> {\n  if (requirePassword) {\n    return object({\n      password: string().required('Password is required.'),\n      description: string()\n        .max(128, 'Description must be at most 128 characters')\n        .required('Description is required.'),\n    });\n  }\n\n  return object({\n    password: string().optional(),\n    description: string()\n      .max(128, 'Description must be at most 128 characters')\n      .required('Description is required.'),\n  });\n}\n","import { useMutation } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { ApiKeyFormValues } from './types';\n\nexport interface ApiKeyResponse {\n  rawAPIKey: string;\n}\n\nexport function useCreateUserAccessTokenMutation() {\n  return useMutation(createUserAccessToken, {\n    ...withError('Unable to create access token'),\n    onSuccess: () => {\n      notifySuccess('Success', 'Access token successfully created');\n      // TODO: invalidate query when user page migrated to react.\n    },\n  });\n}\n\nasync function createUserAccessToken({\n  values,\n  userid,\n}: {\n  values: ApiKeyFormValues;\n  userid: number;\n}) {\n  try {\n    const response = await axios.post<ApiKeyResponse>(\n      `/users/${userid}/tokens`,\n      values\n    );\n    return response.data.rawAPIKey;\n  } catch (e) {\n    throw parseAxiosError(e);\n  }\n}\n","import { Field, Form, useFormikContext } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { LoadingButton } from '@@/buttons';\n\nimport { ApiKeyFormValues } from './types';\n\ninterface Props {\n  showAuthentication: boolean;\n}\n\nexport function CreateUserAccessTokenInnerForm({ showAuthentication }: Props) {\n  const { errors, values, handleSubmit, isValid, dirty } =\n    useFormikContext<ApiKeyFormValues>();\n\n  return (\n    <Form\n      className=\"form-horizontal\"\n      onSubmit={handleSubmit}\n      autoComplete=\"off\"\n    >\n      {showAuthentication && (\n        <FormControl\n          inputId=\"password\"\n          label=\"Current password\"\n          required\n          errors={errors.password}\n        >\n          <Field\n            as={Input}\n            type=\"password\"\n            id=\"password\"\n            name=\"password\"\n            value={values.password}\n            autoComplete=\"new-password\"\n          />\n        </FormControl>\n      )}\n      <FormControl\n        inputId=\"description\"\n        label=\"Description\"\n        required\n        errors={errors.description}\n      >\n        <Field\n          as={Input}\n          id=\"description\"\n          name=\"description\"\n          value={values.description}\n        />\n      </FormControl>\n      <LoadingButton\n        disabled={!isValid || !dirty}\n        isLoading={false}\n        loadingText=\"Adding access token...\"\n      >\n        Add access token\n      </LoadingButton>\n    </Form>\n  );\n}\n","import { useRouter } from '@uirouter/react';\n\nimport { Button, CopyButton } from '@@/buttons';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { TextTip } from '@@/Tip/TextTip';\n\nexport function DisplayUserAccessToken({ apikey }: { apikey: string }) {\n  const router = useRouter();\n  return (\n    <>\n      <FormSectionTitle>New access token</FormSectionTitle>\n      <TextTip>\n        Please copy the new access token. You won&#39;t be able to view the\n        token again.\n      </TextTip>\n      <div className=\"pt-5\">\n        <div className=\"inline-flex\">\n          <div className=\"\">{apikey}</div>\n          <div>\n            <CopyButton copyText={apikey} color=\"link\" />\n          </div>\n        </div>\n        <hr />\n      </div>\n      <Button\n        type=\"button\"\n        onClick={() => router.stateService.go('portainer.account')}\n      >\n        Done\n      </Button>\n    </>\n  );\n}\n","import { Formik } from 'formik';\nimport { useState } from 'react';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\nimport { AuthenticationMethod } from '@/react/portainer/settings/types';\n\nimport { Widget } from '@@/Widget';\nimport { PageHeader } from '@@/PageHeader';\n\nimport { usePublicSettings } from '../../settings/queries/usePublicSettings';\n\nimport { ApiKeyFormValues } from './types';\nimport { getAPITokenValidationSchema } from './CreateUserAcccessToken.validation';\nimport { useCreateUserAccessTokenMutation } from './useCreateUserAccessTokenMutation';\nimport { CreateUserAccessTokenInnerForm } from './CreateUserAccessTokenInnerForm';\nimport { DisplayUserAccessToken } from './DisplayUserAccessToken';\n\nconst initialValues: ApiKeyFormValues = {\n  password: '',\n  description: '',\n};\n\nexport function CreateUserAccessToken() {\n  const mutation = useCreateUserAccessTokenMutation();\n  const { user } = useCurrentUser();\n  const [newAPIToken, setNewAPIToken] = useState('');\n  const { trackEvent } = useAnalytics();\n  const settings = usePublicSettings();\n\n  const requirePassword =\n    settings.data?.AuthenticationMethod === AuthenticationMethod.Internal ||\n    user.Id === 1;\n\n  return (\n    <>\n      <PageHeader\n        title=\"Create access token\"\n        breadcrumbs={[\n          { label: 'My account', link: 'portainer.account' },\n          'Add access token',\n        ]}\n        reload\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <Widget.Body>\n              {newAPIToken === '' ? (\n                <Formik\n                  initialValues={initialValues}\n                  onSubmit={onSubmit}\n                  validationSchema={getAPITokenValidationSchema(\n                    requirePassword\n                  )}\n                >\n                  <CreateUserAccessTokenInnerForm\n                    showAuthentication={requirePassword}\n                  />\n                </Formik>\n              ) : (\n                <DisplayUserAccessToken apikey={newAPIToken} />\n              )}\n            </Widget.Body>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n\n  async function onSubmit(values: ApiKeyFormValues) {\n    mutation.mutate(\n      { values, userid: user.Id },\n      {\n        onSuccess(response) {\n          setNewAPIToken(response);\n        },\n      }\n    );\n\n    trackEvent('portainer-account-access-token-create', {\n      category: 'portainer',\n    });\n  }\n}\n","import { Field, useField } from 'formik';\nimport { string } from 'yup';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { isValidUrl } from '@@/form-components/validate-url';\n\ninterface Props {\n  fieldName: string;\n  readonly?: boolean;\n  required?: boolean;\n  tooltip?: string;\n}\n\nexport function PortainerUrlField({\n  fieldName,\n  readonly,\n  required,\n  tooltip = 'URL of the Portainer instance that the agent will use to initiate the communications.',\n}: Props) {\n  const [, metaProps] = useField(fieldName);\n  const id = `${fieldName}-input`;\n\n  return (\n    <FormControl\n      label=\"Portainer API server URL\"\n      tooltip={tooltip}\n      required\n      errors={metaProps.error}\n      inputId={id}\n    >\n      <Field\n        id={id}\n        name={fieldName}\n        as={Input}\n        placeholder=\"https://portainer.mydomain.tld\"\n        required={required}\n        data-cy=\"endpointCreate-portainerServerUrlInput\"\n        readOnly={readonly}\n      />\n    </FormControl>\n  );\n}\n\nexport function validation() {\n  return string()\n    .required('API server URL is required')\n    .test(\n      'valid API server URL',\n      'The API server URL must be a valid URL (localhost cannot be used)',\n      (value) =>\n        isValidUrl(\n          value,\n          (url) => !!url.hostname && url.hostname !== 'localhost'\n        )\n    );\n}\n\n/**\n * Returns a URL that can be used as a default value for the Portainer server API URL\n * based on the current window location.\n * Used for Edge Compute.\n *\n */\nexport function buildDefaultValue() {\n  return `${window.location.protocol}//${window.location.host}`;\n}\n","import { Field, useField } from 'formik';\nimport { string } from 'yup';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\ninterface Props {\n  fieldName: string;\n  readonly?: boolean;\n  required?: boolean;\n}\n\nexport function PortainerTunnelAddrField({\n  fieldName,\n  readonly,\n  required,\n}: Props) {\n  const [, metaProps] = useField(fieldName);\n  const id = `${fieldName}-input`;\n\n  return (\n    <FormControl\n      label=\"Portainer tunnel server address\"\n      tooltip=\"Address of this Portainer instance that will be used by Edge agents to establish a reverse tunnel.\"\n      required\n      errors={metaProps.error}\n      inputId={id}\n    >\n      <Field\n        id={id}\n        name={fieldName}\n        as={Input}\n        placeholder=\"portainer.mydomain.tld\"\n        required={required}\n        readOnly={readonly}\n      />\n    </FormControl>\n  );\n}\n\nexport function validation() {\n  return string()\n    .required('Tunnel server address is required')\n    .test(\n      'valid tunnel server URL',\n      'The tunnel server address must be a valid address (localhost cannot be used)',\n      (value) => {\n        if (!value) {\n          return false;\n        }\n\n        return !value.startsWith('localhost');\n      }\n    );\n}\n\n/**\n * Returns an address that can be used as a default value for the Portainer tunnel server address\n * based on the current window location.\n * Used for Edge Compute.\n *\n */\nexport function buildDefaultValue() {\n  return `${window.location.hostname}:8000`;\n}\n","import { Formik, Form } from 'formik';\nimport { Laptop } from 'lucide-react';\n\nimport { Settings } from '@/react/portainer/settings/types';\nimport { PortainerUrlField } from '@/react/portainer/common/PortainerUrlField';\nimport { PortainerTunnelAddrField } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { Switch } from '@@/form-components/SwitchField/Switch';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { validationSchema } from './EdgeComputeSettings.validation';\nimport { FormValues } from './types';\n\ninterface Props {\n  settings?: Settings;\n  onSubmit(values: FormValues): void;\n}\n\nexport function EdgeComputeSettings({ settings, onSubmit }: Props) {\n  if (!settings) {\n    return null;\n  }\n\n  const initialValues: FormValues = {\n    EnableEdgeComputeFeatures: settings.EnableEdgeComputeFeatures,\n    EdgePortainerUrl: settings.EdgePortainerUrl,\n    Edge: {\n      TunnelServerAddress: settings.Edge?.TunnelServerAddress,\n    },\n    EnforceEdgeID: settings.EnforceEdgeID,\n  };\n\n  return (\n    <div className=\"row\">\n      <Widget>\n        <WidgetTitle icon={Laptop} title=\"Edge Compute settings\" />\n\n        <WidgetBody>\n          <Formik\n            initialValues={initialValues}\n            enableReinitialize\n            validationSchema={() => validationSchema()}\n            onSubmit={onSubmit}\n            validateOnMount\n          >\n            {({\n              values,\n              errors,\n              handleSubmit,\n              setFieldValue,\n              isSubmitting,\n              isValid,\n              dirty,\n            }) => (\n              <Form\n                className=\"form-horizontal\"\n                onSubmit={handleSubmit}\n                noValidate\n              >\n                <FormControl\n                  inputId=\"edge_enable\"\n                  label=\"Enable Edge Compute features\"\n                  size=\"small\"\n                  errors={errors.EnableEdgeComputeFeatures}\n                >\n                  <Switch\n                    id=\"edge_enable\"\n                    name=\"edge_enable\"\n                    className=\"space-right\"\n                    checked={values.EnableEdgeComputeFeatures}\n                    onChange={(e) =>\n                      setFieldValue('EnableEdgeComputeFeatures', e)\n                    }\n                  />\n                </FormControl>\n\n                <TextTip color=\"blue\" className=\"mb-2\">\n                  Enable this setting to use Portainer Edge Compute\n                  capabilities.\n                </TextTip>\n\n                {isBE && values.EnableEdgeComputeFeatures && (\n                  <>\n                    <PortainerUrlField\n                      fieldName=\"EdgePortainerUrl\"\n                      tooltip=\"URL of this Portainer instance that will be used by Edge agents to initiate the communications.\"\n                    />\n\n                    <PortainerTunnelAddrField fieldName=\"Edge.TunnelServerAddress\" />\n                  </>\n                )}\n\n                <FormControl\n                  inputId=\"edge_enforce_id\"\n                  label=\"Enforce use of Portainer generated Edge ID\"\n                  size=\"small\"\n                  tooltip=\"This setting only applies to manually created environments.\"\n                  errors={errors.EnforceEdgeID}\n                >\n                  <Switch\n                    id=\"edge_enforce_id\"\n                    name=\"edge_enforce_id\"\n                    className=\"space-right\"\n                    checked={values.EnforceEdgeID}\n                    onChange={(e) =>\n                      setFieldValue('EnforceEdgeID', e.valueOf())\n                    }\n                  />\n                </FormControl>\n\n                <div className=\"form-group mt-5\">\n                  <div className=\"col-sm-12\">\n                    <LoadingButton\n                      disabled={!isValid || !dirty}\n                      data-cy=\"settings-edgeComputeButton\"\n                      isLoading={isSubmitting}\n                      loadingText=\"Saving settings...\"\n                    >\n                      Save settings\n                    </LoadingButton>\n                  </div>\n                </div>\n              </Form>\n            )}\n          </Formik>\n        </WidgetBody>\n      </Widget>\n    </div>\n  );\n}\n","import { boolean, object, SchemaOf, string } from 'yup';\n\nimport { validation as tunnelValidation } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { validation as urlValidation } from '@/react/portainer/common/PortainerUrlField';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { FormValues } from './types';\n\nexport function validationSchema(): SchemaOf<FormValues> {\n  return object()\n    .shape({\n      EnableEdgeComputeFeatures: boolean().required('This field is required.'),\n      EnforceEdgeID: boolean().required('This field is required.'),\n    })\n    .concat(\n      isBE\n        ? object({\n            EdgePortainerUrl: urlValidation(),\n            Edge: object({\n              TunnelServerAddress: tunnelValidation(),\n            }),\n          })\n        : object({\n            EdgePortainerUrl: string().default(''),\n            Edge: object({\n              TunnelServerAddress: string().default(''),\n            }),\n          })\n    );\n}\n","import { Form, Formik } from 'formik';\nimport { useReducer } from 'react';\nimport { Laptop } from 'lucide-react';\n\nimport { EdgeCheckinIntervalField } from '@/react/edge/components/EdgeCheckInIntervalField';\nimport { EdgeAsyncIntervalsForm } from '@/react/edge/components/EdgeAsyncIntervalsForm';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { useSettings, useUpdateSettingsMutation } from '../../queries';\n\nimport { FormValues } from './types';\n\nconst asyncIntervalFieldSettings = {\n  ping: {\n    label: 'Edge agent default ping frequency',\n    tooltip:\n      'Interval used by default by each Edge agent to ping the Portainer instance. Affects Edge environment management and Edge compute features.',\n  },\n  snapshot: {\n    label: 'Edge agent default snapshot frequency',\n    tooltip:\n      'Interval used by default by each Edge agent to snapshot the agent state.',\n  },\n  command: {\n    label: 'Edge agent default command frequency',\n    tooltip: 'Interval used by default by each Edge agent to execute commands.',\n  },\n};\n\nexport function DeploymentSyncOptions() {\n  const settingsQuery = useSettings();\n  const settingsMutation = useUpdateSettingsMutation();\n  const [formKey, resetForm] = useReducer((state) => state + 1, 0);\n\n  if (!settingsQuery.data) {\n    return null;\n  }\n\n  const initialValues: FormValues = {\n    Edge: {\n      CommandInterval: settingsQuery.data.Edge.CommandInterval,\n      PingInterval: settingsQuery.data.Edge.PingInterval,\n      SnapshotInterval: settingsQuery.data.Edge.SnapshotInterval,\n    },\n    EdgeAgentCheckinInterval: settingsQuery.data.EdgeAgentCheckinInterval,\n  };\n\n  return (\n    <div className=\"row\">\n      <Widget>\n        <WidgetTitle icon={Laptop} title=\"Deployment sync options\" />\n        <WidgetBody>\n          <Formik<FormValues>\n            initialValues={initialValues}\n            onSubmit={handleSubmit}\n            key={formKey}\n          >\n            {({ setFieldValue, values, isValid, dirty }) => (\n              <Form className=\"form-horizontal\">\n                <TextTip color=\"blue\">\n                  Default values set here will be available to choose as an\n                  option for edge environment creation\n                </TextTip>\n\n                <FormSection title=\"Check-in Intervals\">\n                  <EdgeCheckinIntervalField\n                    value={values.EdgeAgentCheckinInterval}\n                    onChange={(value) =>\n                      setFieldValue('EdgeAgentCheckinInterval', value)\n                    }\n                    isDefaultHidden\n                    label=\"Edge agent default poll frequency\"\n                    tooltip=\"Interval used by default by each Edge agent to check in with the Portainer instance. Affects Edge environment management and Edge compute features.\"\n                  />\n                </FormSection>\n\n                {isBE && (\n                  <FormSection title=\"Async Check-in Intervals\">\n                    <EdgeAsyncIntervalsForm\n                      values={values.Edge}\n                      onChange={(value) => setFieldValue('Edge', value)}\n                      isDefaultHidden\n                      fieldSettings={asyncIntervalFieldSettings}\n                    />\n                  </FormSection>\n                )}\n\n                <div className=\"form-group mt-5\">\n                  <div className=\"col-sm-12\">\n                    <LoadingButton\n                      disabled={!isValid || !dirty}\n                      className=\"!ml-0\"\n                      data-cy=\"settings-deploySyncOptionsButton\"\n                      isLoading={settingsMutation.isLoading}\n                      loadingText=\"Saving settings...\"\n                    >\n                      Save settings\n                    </LoadingButton>\n                  </div>\n                </div>\n              </Form>\n            )}\n          </Formik>\n        </WidgetBody>\n      </Widget>\n    </div>\n  );\n\n  function handleSubmit(values: FormValues) {\n    settingsMutation.mutate(\n      {\n        Edge: values.Edge,\n        EdgeAgentCheckinInterval: values.EdgeAgentCheckinInterval,\n      },\n      {\n        onSuccess() {\n          notifySuccess('Success', 'Settings updated successfully');\n          resetForm();\n        },\n      }\n    );\n  }\n}\n","import { useField } from 'formik';\n\nimport { confirm } from '@@/modals/confirm';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Switch } from '@@/form-components/SwitchField/Switch';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { ModalType } from '@@/modals';\n\nexport function EnabledWaitingRoomSwitch() {\n  const [inputProps, meta, helpers] = useField<boolean>('EnableWaitingRoom');\n\n  return (\n    <FormControl\n      inputId=\"edge_waiting_room\"\n      label=\"Enable Edge Environment Waiting Room\"\n      size=\"medium\"\n      errors={meta.error}\n    >\n      <Switch\n        id=\"edge_waiting_room\"\n        name=\"EnableWaitingRoom\"\n        className=\"space-right\"\n        checked={inputProps.value}\n        onChange={handleChange}\n      />\n    </FormControl>\n  );\n\n  async function handleChange(enable: boolean) {\n    if (enable) {\n      helpers.setValue(true);\n      return;\n    }\n\n    const confirmed = await confirm({\n      modalType: ModalType.Warn,\n      title: 'Disable Edge Environment Waiting Room',\n      message:\n        'By disabling the waiting room feature, all devices requesting association will be automatically associated and could pose a security risk. Are you sure?',\n      confirmButton: buildConfirmButton('Confirm', 'danger'),\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    helpers.setValue(false);\n  }\n}\n","import { Form, Formik } from 'formik';\nimport * as yup from 'yup';\nimport { useCallback } from 'react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useUpdateSettingsMutation } from '@/react/portainer/settings/queries';\nimport { Settings } from '@/react/portainer/settings/types';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\n\nimport { EnabledWaitingRoomSwitch } from './EnableWaitingRoomSwitch';\n\ninterface FormValues {\n  EnableWaitingRoom: boolean;\n}\nconst validation = yup.object({\n  EnableWaitingRoom: yup.boolean(),\n});\n\ninterface Props {\n  settings: Settings;\n}\n\nexport function AutoEnvCreationSettingsForm({ settings }: Props) {\n  const initialValues: FormValues = {\n    EnableWaitingRoom: !settings.TrustOnFirstConnect,\n  };\n\n  const mutation = useUpdateSettingsMutation();\n\n  const { mutate: updateSettings } = mutation;\n\n  const handleSubmit = useCallback(\n    (variables: Partial<FormValues>) => {\n      updateSettings(\n        { TrustOnFirstConnect: !variables.EnableWaitingRoom },\n        {\n          onSuccess() {\n            notifySuccess(\n              'Success',\n              'Successfully updated Automatic Environment Creation settings'\n            );\n          },\n        }\n      );\n    },\n    [updateSettings]\n  );\n\n  return (\n    <Formik<FormValues>\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      validateOnMount\n      enableReinitialize\n    >\n      {({ isValid, dirty }) => (\n        <Form className=\"form-horizontal\">\n          <EnabledWaitingRoomSwitch />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                loadingText=\"generating...\"\n                isLoading={mutation.isLoading}\n                disabled={!isValid || !dirty}\n                className=\"!ml-0\"\n              >\n                Save settings\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n}\n","import { Laptop } from 'lucide-react';\n\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\n\nimport { useSettings } from '../../queries';\n\nimport { AutoEnvCreationSettingsForm } from './AutoEnvCreationSettingsForm';\n\nexport function AutomaticEdgeEnvCreation() {\n  const settingsQuery = useSettings();\n\n  if (!settingsQuery.data) {\n    return null;\n  }\n\n  const settings = settingsQuery.data;\n\n  return (\n    <Widget>\n      <WidgetTitle icon={Laptop} title=\"Automatic Edge Environment Creation\" />\n      <WidgetBody>\n        <AutoEnvCreationSettingsForm settings={settings} />\n      </WidgetBody>\n    </Widget>\n  );\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\ninterface GenerateUrlResponse {\n  edgeKey: string;\n}\n\nexport async function generateKey() {\n  try {\n    const { data } = await axios.post<GenerateUrlResponse>(\n      `/endpoints/edge/generate-key`\n    );\n    return data.edgeKey;\n  } catch (err) {\n    throw parseAxiosError(err as Error, 'Unable to generate key');\n  }\n}\n","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgEdgeAgentStandard = function SvgEdgeAgentStandard(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#edge-agent-standard_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    fillRule: \"evenodd\",\n    d: \"M6.606 6.647a5.597 5.597 0 0 1 10.794 0 4.397 4.397 0 0 1-.996 8.678h-.418v3.753c0 .146.119.265.265.265h1.657a2.123 2.123 0 1 1 .06 1.06h-1.717a1.325 1.325 0 0 1-1.325-1.325v-3.753h-2.391v4.498a2.123 2.123 0 1 1-1.06-.002v-4.496H9.027v3.753c0 .731-.593 1.324-1.325 1.324h-1.67a2.123 2.123 0 1 1 .06-1.06h1.61a.265.265 0 0 0 .265-.264v-3.753h-.365a4.395 4.395 0 0 1-.996-8.678Zm5.397-2.524a4.007 4.007 0 0 0-3.953 3.35.795.795 0 0 1-.71.663 2.806 2.806 0 0 0 .262 5.599h8.802a2.806 2.806 0 0 0 .262-5.6.795.795 0 0 1-.71-.662 4.007 4.007 0 0 0-3.953-3.35ZM9.439 9.266a3.845 3.845 0 0 1 5.126 0 .331.331 0 0 0 .442-.494 4.507 4.507 0 0 0-6.01 0 .331.331 0 1 0 .442.494Zm.846 1.154a2.453 2.453 0 0 1 3.434 0 .331.331 0 0 0 .464-.473 3.115 3.115 0 0 0-4.362 0 .331.331 0 0 0 .464.473Zm.974.974a1.06 1.06 0 0 1 1.486 0 .331.331 0 0 0 .463-.473 1.723 1.723 0 0 0-2.412 0 .331.331 0 1 0 .463.473Zm.743.407a.331.331 0 0 0 0 .662h.003a.331.331 0 0 0 0-.662h-.003Zm-6.93 7.954a1.063 1.063 0 1 1-2.125 0 1.063 1.063 0 0 1 2.126 0Zm6.93 3.185a1.063 1.063 0 1 0 0-2.125 1.063 1.063 0 0 0 0 2.125Zm9.05-3.185a1.063 1.063 0 1 1-2.125 0 1.063 1.063 0 0 1 2.126 0Z\",\n    clipRule: \"evenodd\"\n  }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"edge-agent-standard_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M0 0h24v24H0z\"\n  })))));\n};\nexport default SvgEdgeAgentStandard;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgEdgeAgentAsync = function SvgEdgeAgentAsync(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#edge-agent-async_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    fillRule: \"evenodd\",\n    d: \"M17.888 1.145c0-.124.1-.225.225-.225h2.99l-.5-.5a.225.225 0 1 1 .319-.318l.883.884a.225.225 0 0 1 0 .318l-.883.883a.225.225 0 1 1-.319-.318l.5-.5h-2.99a.225.225 0 0 1-.225-.224Zm3.984 2.615c0 .124-.1.225-.225.225h-2.99l.5.5a.225.225 0 1 1-.319.317l-.883-.883a.225.225 0 0 1 0-.318l.883-.883a.225.225 0 0 1 .318.318l-.499.499h2.99c.124 0 .225.1.225.225Zm-9.87-1.227a5.597 5.597 0 0 0-5.396 4.114 4.397 4.397 0 0 0 .996 8.678h.365v3.753a.265.265 0 0 1-.265.265h-1.61a2.123 2.123 0 1 0-.06 1.06h1.67c.732 0 1.325-.594 1.325-1.325v-3.753h2.448v4.496a2.123 2.123 0 1 0 1.06.002v-4.498h2.391v3.753c0 .731.593 1.324 1.325 1.324h1.717a2.123 2.123 0 1 0-.06-1.06H16.25a.265.265 0 0 1-.265-.264v-3.753h.418a4.395 4.395 0 0 0 .996-8.678 5.597 5.597 0 0 0-5.397-4.114ZM8.05 7.473a4.007 4.007 0 0 1 7.905 0c.059.357.351.63.711.663a2.806 2.806 0 0 1-.262 5.599H7.602a2.806 2.806 0 0 1-.263-5.6.795.795 0 0 0 .711-.662Zm3.952.814c-.946 0-1.859.349-2.563.98a.331.331 0 0 1-.442-.495 4.507 4.507 0 0 1 6.01 0 .331.331 0 1 1-.442.494 3.845 3.845 0 0 0-2.563-.979Zm0 1.431c-.642 0-1.259.252-1.717.702a.331.331 0 0 1-.464-.473 3.115 3.115 0 0 1 4.362 0 .331.331 0 0 1-.464.473 2.453 2.453 0 0 0-1.717-.702Zm0 1.373a1.06 1.06 0 0 0-.743.303.331.331 0 0 1-.463-.473 1.723 1.723 0 0 1 2.412 0 .331.331 0 1 1-.463.473 1.06 1.06 0 0 0-.743-.303Zm-.331 1.041c0-.183.148-.331.331-.331h.003a.331.331 0 0 1 0 .662h-.003a.331.331 0 0 1-.331-.331Zm-7.66 8.686a1.063 1.063 0 1 0 0-2.126 1.063 1.063 0 0 0 0 2.126Zm9.053 1.06a1.063 1.063 0 1 1-2.125 0 1.063 1.063 0 0 1 2.125 0Zm6.926-1.06a1.063 1.063 0 1 0 0-2.126 1.063 1.063 0 0 0 0 2.126Z\",\n    clipRule: \"evenodd\"\n  }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"edge-agent-async_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M0 0h24v24H0z\"\n  })))));\n};\nexport default SvgEdgeAgentAsync;","import { useMutation } from 'react-query';\nimport { useEffect, useState } from 'react';\nimport { Laptop } from 'lucide-react';\n\nimport { generateKey } from '@/react/portainer/environments/environment.service/edge';\nimport { EdgeScriptForm } from '@/react/edge/components/EdgeScriptForm';\nimport { commandsTabs } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { useSettings } from '@/react/portainer/settings/queries';\nimport EdgeAgentStandardIcon from '@/react/edge/components/edge-agent-standard.svg?c';\nimport EdgeAgentAsyncIcon from '@/react/edge/components/edge-agent-async.svg?c';\n\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { BoxSelector } from '@@/BoxSelector';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { CopyButton } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nconst commands = {\n  linux: [\n    commandsTabs.k8sLinux,\n    commandsTabs.swarmLinux,\n    commandsTabs.standaloneLinux,\n  ],\n  win: [commandsTabs.swarmWindows, commandsTabs.standaloneWindow],\n};\n\nconst asyncModeOptions = [\n  {\n    icon: EdgeAgentStandardIcon,\n    id: 'standard',\n    label: 'Edge Agent Standard',\n    value: false,\n    iconType: 'badge',\n  },\n  {\n    icon: EdgeAgentAsyncIcon,\n    id: 'async',\n    label: 'Edge Agent Async',\n    value: true,\n    iconType: 'badge',\n  },\n] as const;\n\nexport function AutomaticEdgeEnvCreation() {\n  const edgeKeyMutation = useGenerateKeyMutation();\n  const { mutate: generateKey, reset: resetKey } = edgeKeyMutation;\n  const settingsQuery = useSettings();\n  const [asyncMode, setAsyncMode] = useState(false);\n\n  const url = settingsQuery.data?.EdgePortainerUrl;\n\n  const settings = settingsQuery.data;\n  const edgeKey = edgeKeyMutation.data;\n  const edgeComputeConfigurationOK = validateConfiguration();\n\n  useEffect(() => {\n    if (edgeComputeConfigurationOK) {\n      generateKey();\n    } else {\n      resetKey();\n    }\n  }, [generateKey, edgeComputeConfigurationOK, resetKey]);\n\n  if (!settingsQuery.data) {\n    return null;\n  }\n\n  return (\n    <Widget>\n      <WidgetTitle icon={Laptop} title=\"Automatic Edge Environment Creation\" />\n      <WidgetBody className=\"form-horizontal\">\n        {!edgeComputeConfigurationOK ? (\n          <TextTip color=\"orange\">\n            In order to use this feature, please turn on Edge Compute features{' '}\n            <Link to=\"portainer.settings.edgeCompute\">here</Link> and have\n            Portainer API server URL and tunnel server address properly\n            configured.\n          </TextTip>\n        ) : (\n          <>\n            <BoxSelector\n              slim\n              radioName=\"async-mode-selector\"\n              value={asyncMode}\n              onChange={handleChangeAsyncMode}\n              options={asyncModeOptions}\n            />\n\n            <EdgeKeyInfo\n              asyncMode={asyncMode}\n              edgeKey={edgeKey}\n              isLoading={edgeKeyMutation.isLoading}\n              url={url}\n              tunnelUrl={settings?.Edge.TunnelServerAddress}\n            />\n          </>\n        )}\n      </WidgetBody>\n    </Widget>\n  );\n\n  function handleChangeAsyncMode(asyncMode: boolean) {\n    setAsyncMode(asyncMode);\n  }\n\n  function validateConfiguration() {\n    return !!(\n      settings &&\n      settings.EnableEdgeComputeFeatures &&\n      settings.EdgePortainerUrl &&\n      settings.Edge.TunnelServerAddress\n    );\n  }\n}\n\n// using mutation because we want this action to run only when required\nfunction useGenerateKeyMutation() {\n  return useMutation(generateKey);\n}\n\nfunction EdgeKeyInfo({\n  isLoading,\n  edgeKey,\n  url,\n  tunnelUrl,\n  asyncMode,\n}: {\n  isLoading: boolean;\n  edgeKey?: string;\n  url?: string;\n  tunnelUrl?: string;\n  asyncMode: boolean;\n}) {\n  if (isLoading || !edgeKey) {\n    return <div>Generating key for {url} ... </div>;\n  }\n\n  return (\n    <>\n      <hr />\n\n      <FormSection title=\"Edge key\">\n        <div className=\"break-words\">\n          <code>{edgeKey}</code>\n        </div>\n\n        <CopyButton copyText={edgeKey}>Copy token</CopyButton>\n      </FormSection>\n\n      <hr />\n\n      <EdgeScriptForm\n        edgeInfo={{ key: edgeKey }}\n        commands={commands}\n        asyncMode={asyncMode}\n        showMetaFields\n      >\n        <FormControl label=\"Portainer API server URL\">\n          <Input value={url} readOnly />\n        </FormControl>\n\n        {!asyncMode && (\n          <FormControl label=\"Portainer tunnel server address\">\n            <Input value={tunnelUrl} readOnly />\n          </FormControl>\n        )}\n\n        <TextTip color=\"blue\">\n          Portainer Server URL{' '}\n          {!asyncMode ? 'and tunnel server address are' : 'is'} set{' '}\n          <Link to=\"portainer.settings.edgeCompute\">here</Link>\n        </TextTip>\n      </EdgeScriptForm>\n    </>\n  );\n}\n","import { withLimitToBE } from '@/react/hooks/useLimitToBE';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { AutomaticEdgeEnvCreation } from './AutomaticEdgeEnvCreation';\n\nexport const EdgeAutoCreateScriptViewWrapper = withLimitToBE(\n  EdgeAutoCreateScriptView\n);\n\nfunction EdgeAutoCreateScriptView() {\n  return (\n    <>\n      <PageHeader\n        title=\"Automatic Edge Environment Creation\"\n        breadcrumbs={[\n          { label: 'Environments', link: 'portainer.endpoints' },\n          'Automatic Edge Environment Creation',\n        ]}\n        reload\n      />\n\n      <div className=\"mx-3\">\n        <AutomaticEdgeEnvCreation />\n      </div>\n    </>\n  );\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { EnvironmentListItem } from '../types';\n\nexport const columnHelper = createColumnHelper<EnvironmentListItem>();\n","import { CellContext } from '@tanstack/react-table';\nimport { Users } from 'lucide-react';\n\nimport { EnvironmentStatus } from '@/react/portainer/environments/types';\n\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\n\nimport { EnvironmentListItem } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const actions = columnHelper.display({\n  header: 'Actions',\n  cell: Cell,\n});\n\nfunction Cell({\n  row: { original: environment },\n}: CellContext<EnvironmentListItem, unknown>) {\n  if (\n    environment.Status === EnvironmentStatus.Provisioning ||\n    environment.Status === EnvironmentStatus.Error\n  ) {\n    return <>-</>;\n  }\n\n  return (\n    <Button\n      as={Link}\n      props={{\n        to: 'portainer.endpoints.endpoint.access',\n        params: { id: environment.Id },\n      }}\n      color=\"link\"\n      icon={Users}\n    >\n      Manage access\n    </Button>\n  );\n}\n","import { EnvironmentStatus } from '@/react/portainer/environments/types';\n\nimport { Link } from '@@/Link';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Name', {\n  header: 'Name',\n  cell: ({ getValue, row: { original: environment } }) => {\n    const name = getValue();\n    if (environment.Status === EnvironmentStatus.Provisioning) {\n      return name;\n    }\n\n    return (\n      <Link to=\"portainer.endpoints.endpoint\" params={{ id: environment.Id }}>\n        {name}\n      </Link>\n    );\n  },\n});\n","import { CellContext } from '@tanstack/react-table';\n\nimport { environmentTypeIcon } from '@/portainer/filters/filters';\nimport {\n  Environment,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport { getPlatformTypeName } from '@/react/portainer/environments/utils';\n\nimport { Icon } from '@@/Icon';\n\nimport { columnHelper } from './helper';\n\nexport const type = columnHelper.accessor('Type', {\n  header: 'Type',\n  cell: Cell,\n});\n\nfunction Cell({ getValue }: CellContext<Environment, EnvironmentType>) {\n  const type = getValue();\n\n  return (\n    <span className=\"flex items-center gap-1\">\n      <Icon icon={environmentTypeIcon(type)} />\n      {getPlatformTypeName(type)}\n    </span>\n  );\n}\n","import { actions } from './actions';\nimport { columnHelper } from './helper';\nimport { name } from './name';\nimport { type } from './type';\nimport { url } from './url';\n\nexport const columns = [\n  name,\n  type,\n  url,\n  columnHelper.accessor('GroupName', {\n    header: 'Group Name',\n  }),\n  actions,\n];\n","import { CellContext } from '@tanstack/react-table';\nimport { AlertCircle, HelpCircle, Loader2 } from 'lucide-react';\n\nimport {\n  EnvironmentStatus,\n  EnvironmentStatusMessage,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\nimport { EnvironmentListItem } from '../types';\nimport { useUpdateEnvironmentMutation } from '../../queries/useUpdateEnvironmentMutation';\n\nimport { columnHelper } from './helper';\n\nexport const url = columnHelper.accessor('URL', {\n  header: 'URL',\n  cell: Cell,\n});\n\nfunction Cell({\n  row: { original: environment },\n}: CellContext<EnvironmentListItem, string>) {\n  const mutation = useUpdateEnvironmentMutation();\n\n  if (\n    environment.Type !== EnvironmentType.EdgeAgentOnDocker &&\n    environment.Status !== EnvironmentStatus.Provisioning\n  ) {\n    return (\n      <>\n        {environment.URL}\n        {environment.StatusMessage?.summary &&\n          environment.StatusMessage?.detail && (\n            <div className=\"ml-2 inline-block\">\n              <span className=\"text-danger vertical-center inline-flex\">\n                <AlertCircle className=\"lucide\" aria-hidden=\"true\" />\n                <span>{environment.StatusMessage.summary}</span>\n              </span>\n              <TooltipWithChildren\n                message={\n                  <div>\n                    {environment.StatusMessage.detail}\n                    {environment.URL && (\n                      <div className=\"mt-2 text-right\">\n                        <Button\n                          color=\"link\"\n                          className=\"small !ml-0 p-0\"\n                          onClick={handleDismissButton}\n                        >\n                          <span className=\"text-muted-light\">\n                            Dismiss error (still visible in logs)\n                          </span>\n                        </Button>\n                      </div>\n                    )}\n                  </div>\n                }\n                position=\"bottom\"\n              >\n                <span className=\"vertical-center inline-flex text-base\">\n                  <HelpCircle className=\"lucide ml-1\" aria-hidden=\"true\" />\n                </span>\n              </TooltipWithChildren>\n            </div>\n          )}\n      </>\n    );\n  }\n\n  if (environment.Type === EnvironmentType.EdgeAgentOnDocker) {\n    return <>-</>;\n  }\n\n  if (environment.Status === EnvironmentStatus.Provisioning) {\n    return (\n      <div className=\"inline-flex items-center text-base\">\n        <Icon icon={Loader2} className=\"!mr-1 animate-spin-slow\" />\n        {environment.StatusMessage?.summary}\n        {environment.StatusMessage?.detail && (\n          <Tooltip message={environment.StatusMessage?.detail} />\n        )}\n      </div>\n    );\n  }\n\n  return <>-</>;\n\n  function handleDismissButton() {\n    mutation.mutate(\n      {\n        id: environment.Id,\n        payload: {\n          IsSetStatusMessage: true,\n          StatusMessage: {} as EnvironmentStatusMessage,\n        },\n      },\n      {\n        onSuccess: () => {\n          notifySuccess('Success', 'Error dismissed successfully');\n        },\n      }\n    );\n  }\n}\n","import { Plus } from 'lucide-react';\n\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\n\nimport { useSettings } from '../../settings/queries';\nimport {\n  FeatureFlag,\n  useFeatureFlag,\n} from '../../feature-flags/useFeatureFlag';\n\nexport function ImportFdoDeviceButton() {\n  const flagEnabledQuery = useFeatureFlag(FeatureFlag.FDO);\n\n  const isFDOEnabledQuery = useSettings(\n    (settings) => settings.fdoConfiguration.enabled,\n    flagEnabledQuery.data\n  );\n\n  if (!isFDOEnabledQuery.data || !flagEnabledQuery.data) {\n    return null;\n  }\n\n  return (\n    <Button\n      type=\"button\"\n      color=\"secondary\"\n      icon={Plus}\n      as={Link}\n      props={{ to: 'portainer.endpoints.importDevice' }}\n      className=\"ml-[5px]\"\n    >\n      Import FDO device\n    </Button>\n  );\n}\n","import { HardDrive, Plus, Trash2 } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { useEnvironmentList } from '@/react/portainer/environments/queries';\nimport { useGroups } from '@/react/portainer/environments/environment-groups/queries';\n\nimport { Datatable } from '@@/datatables';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\nimport { isSortType } from '../queries/useEnvironmentList';\nimport { EnvironmentStatus } from '../types';\n\nimport { columns } from './columns';\nimport { EnvironmentListItem } from './types';\nimport { ImportFdoDeviceButton } from './ImportFdoDeviceButton';\n\nconst tableKey = 'environments';\nconst settingsStore = createPersistedStore(tableKey, 'Name');\n\nexport function EnvironmentsDatatable({\n  onRemove,\n}: {\n  onRemove: (environments: Array<EnvironmentListItem>) => void;\n}) {\n  const tableState = useTableState(settingsStore, tableKey);\n\n  const [page, setPage] = useState(0);\n\n  const groupsQuery = useGroups();\n  const { environments, isLoading, totalCount } = useEnvironmentList(\n    {\n      search: tableState.search,\n      excludeSnapshots: true,\n      page: page + 1,\n      pageLimit: tableState.pageSize,\n      sort: isSortType(tableState.sortBy?.id)\n        ? tableState.sortBy?.id\n        : undefined,\n      order: tableState.sortBy?.desc ? 'desc' : 'asc',\n    },\n    { enabled: groupsQuery.isSuccess, refetchInterval: 30 * 1000 }\n  );\n\n  const environmentsWithGroups = environments.map<EnvironmentListItem>(\n    (env) => {\n      const groupId = env.GroupId;\n      const group = groupsQuery.data?.find((g) => g.Id === groupId);\n      return {\n        ...env,\n        GroupName: group?.Name,\n      };\n    }\n  );\n\n  return (\n    <Datatable\n      title=\"Environments\"\n      titleIcon={HardDrive}\n      dataset={environmentsWithGroups}\n      columns={columns}\n      settingsManager={tableState}\n      isServerSidePagination\n      page={page}\n      onPageChange={setPage}\n      totalCount={totalCount}\n      isLoading={isLoading}\n      isRowSelectable={(row) =>\n        row.original.Status !== EnvironmentStatus.Provisioning\n      }\n      renderTableActions={(selectedRows) => (\n        <div className=\"flex items-center gap-2\">\n          <Button\n            color=\"dangerlight\"\n            disabled={selectedRows.length === 0}\n            onClick={() => onRemove(selectedRows)}\n            icon={Trash2}\n            className=\"!m-0\"\n          >\n            Remove\n          </Button>\n\n          <ImportFdoDeviceButton />\n\n          {isBE && (\n            <Button\n              as={Link}\n              color=\"secondary\"\n              icon={Plus}\n              props={{ to: 'portainer.endpoints.edgeAutoCreateScript' }}\n            >\n              Auto onboarding\n            </Button>\n          )}\n          <Link to=\"portainer.wizard.endpoints\">\n            <Button\n              onClick={() =>\n                localStorage.setItem('wizardReferrer', 'environments')\n              }\n              icon={Plus}\n              className=\"!m-0\"\n            >\n              Add environment\n            </Button>\n          </Link>\n        </div>\n      )}\n    />\n  );\n}\n","import { useStore } from 'zustand';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { environmentStore } from '@/react/hooks/current-environment-store';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { confirmDelete } from '@@/modals/confirm';\n\nimport { Environment } from '../types';\n\nimport { EnvironmentsDatatable } from './EnvironmentsDatatable';\nimport { useDeleteEnvironmentsMutation } from './useDeleteEnvironmentsMutation';\n\nexport function ListView() {\n  const constCurrentEnvironmentStore = useStore(environmentStore);\n  const deletionMutation = useDeleteEnvironmentsMutation();\n\n  return (\n    <>\n      <PageHeader\n        title=\"Environments\"\n        breadcrumbs=\"Environment management\"\n        reload\n      />\n\n      <EnvironmentsDatatable onRemove={handleRemove} />\n    </>\n  );\n\n  async function handleRemove(environmentsToDelete: Array<Environment>) {\n    const confirmed = await confirmDelete(\n      'This action will remove all configurations associated to your environment(s). Continue?'\n    );\n\n    if (!confirmed) {\n      return;\n    }\n\n    const id = constCurrentEnvironmentStore.environmentId;\n    // If the current endpoint was deleted, then clean endpoint store\n    if (environmentsToDelete.some((e) => e.Id === id)) {\n      constCurrentEnvironmentStore.clear();\n    }\n\n    deletionMutation.mutate(\n      environmentsToDelete.map((e) => ({\n        id: e.Id,\n        deleteCluster: false,\n        name: e.Name,\n      })),\n      {\n        onSuccess() {\n          notifySuccess(\n            'Environments successfully removed',\n            environmentsToDelete.map((e) => e.Name).join(', ')\n          );\n        },\n      }\n    );\n  }\n}\n","import { DownloadCloud, UploadCloud } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nexport enum BackupFormType {\n  S3 = 's3',\n  File = 'file',\n}\n\nexport const options = [\n  {\n    id: 'backup_file',\n    icon: <BadgeIcon icon={DownloadCloud} />,\n    label: 'Download backup file',\n    value: BackupFormType.File,\n  },\n  {\n    id: 'backup_s3',\n    icon: <BadgeIcon icon={UploadCloud} />,\n    label: 'Store in S3',\n    description: 'Define a cron schedule',\n    value: BackupFormType.S3,\n    feature: FeatureId.S3_BACKUP_SETTING,\n  },\n];\n","export function buildUrl(subResource?: string, action?: string) {\n  let url = 'backup';\n  if (subResource) {\n    url += `/${subResource}`;\n  }\n\n  if (action) {\n    url += `/${action}`;\n  }\n\n  return url;\n}\n","export const queryKeys = {\n  base: () => ['settings'] as const,\n  backupS3Settings: () => [...queryKeys.base(), 'backupS3Settings'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { BackupS3Model } from '../types';\n\nimport { buildUrl } from './backupSettings.service';\nimport { queryKeys } from './queryKeys';\n\nexport function useBackupS3Settings<T = BackupS3Model>({\n  select,\n  enabled,\n  onSuccess,\n}: {\n  select?: (settings: BackupS3Model) => T;\n  enabled?: boolean;\n  onSuccess?: (data: T) => void;\n} = {}) {\n  return useQuery(queryKeys.backupS3Settings(), getBackupS3Settings, {\n    select,\n    enabled,\n    ...withError('Unable to retrieve s3 backup settings'),\n    onSuccess,\n  });\n}\n\nasync function getBackupS3Settings() {\n  try {\n    const { data } = await axios.get<BackupS3Model>(buildUrl('s3', 'settings'));\n\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to retrieve s3 backup settings');\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withGlobalError } from '@/react-tools/react-query';\n\nimport { BackupS3Model } from '../types';\n\nimport { buildUrl } from './backupSettings.service';\nimport { queryKeys } from './queryKeys';\n\nexport function useUpdateBackupS3SettingsMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(updateBackupS3Settings, {\n    onSuccess: () =>\n      queryClient.invalidateQueries(queryKeys.backupS3Settings()),\n    ...withGlobalError('Unable to save s3 backup settings'),\n  });\n}\n\nasync function updateBackupS3Settings(payload: BackupS3Model) {\n  try {\n    const response = await axios.post(buildUrl('s3', 'settings'), payload);\n\n    return response.data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to save s3 backup settings');\n  }\n}\n","import { useMutation } from 'react-query';\nimport { saveAs } from 'file-saver';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withGlobalError } from '@/react-tools/react-query';\n\nimport { buildUrl } from './backupSettings.service';\n\nexport interface DownloadBackupPayload {\n  password: string;\n}\n\nexport function useDownloadBackupMutation() {\n  return useMutation(downloadBackup, {\n    ...withGlobalError('Unable to download backup'),\n  });\n}\n\nasync function downloadBackup(payload: DownloadBackupPayload) {\n  try {\n    const response = await axios.post(buildUrl(), payload, {\n      responseType: 'arraybuffer',\n    });\n\n    const file = response.data;\n    const filename = response.headers['content-disposition'].replace(\n      'attachment; filename=',\n      ''\n    );\n    const blob = new Blob([file], { type: 'application/zip' });\n    return saveAs(blob, filename);\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to download backup');\n  }\n}\n","import { useMutation } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withGlobalError } from '@/react-tools/react-query';\n\nimport { BackupS3Model } from '../types';\n\nimport { buildUrl } from './backupSettings.service';\n\nexport function useExportS3BackupMutation() {\n  return useMutation(exportS3Backup, {\n    ...withGlobalError('Unable to export backup to S3'),\n  });\n}\n\nasync function exportS3Backup(payload: BackupS3Model) {\n  try {\n    const response = await axios.post(buildUrl('s3', 'execute'), payload, {});\n\n    return response.data;\n  } catch (e) {\n    throw parseAxiosError(e as Error, 'Unable to export s3 backup');\n  }\n}\n","import { SchemaOf, object, string, boolean } from 'yup';\n\nimport { BackupFileSettings } from './types';\n\nexport function validationSchema(): SchemaOf<BackupFileSettings> {\n  return object({\n    passwordProtect: boolean().default(false),\n    password: string()\n      .default('')\n      .when('passwordProtect', {\n        is: true,\n        then: (schema) => schema.required('This field is required.'),\n      }),\n  });\n}\n","import { useField, Field } from 'formik';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\ninterface Props {\n  switchDataCy: string;\n  inputDataCy: string;\n  disabled?: boolean;\n}\n\nexport function SecurityFieldset({\n  switchDataCy,\n  inputDataCy,\n  disabled,\n}: Props) {\n  const [{ value: passwordProtect }, , { setValue: setPasswordProtect }] =\n    useField<boolean>('passwordProtect');\n\n  const [{ name }, { error }] = useField<string>('password');\n\n  return (\n    <FormSection title=\"Security settings\">\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            name=\"password-switch\"\n            labelClass=\"col-sm-3 col-lg-2\"\n            label=\"Password Protect\"\n            checked={passwordProtect}\n            data-cy={switchDataCy}\n            onChange={(checked) => setPasswordProtect(checked)}\n            disabled={disabled}\n          />\n        </div>\n      </div>\n\n      {passwordProtect && (\n        <FormControl\n          inputId=\"password\"\n          label=\"Password\"\n          size=\"small\"\n          errors={error}\n          required\n        >\n          <Field\n            id=\"password\"\n            name={name}\n            type=\"password\"\n            as={Input}\n            data-cy={inputDataCy}\n            required\n          />\n        </FormControl>\n      )}\n    </FormSection>\n  );\n}\n","import { Download } from 'lucide-react';\nimport { Formik, Form } from 'formik';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\n\nimport { DownloadBackupPayload } from './queries/useDownloadBackupMutation';\nimport { useDownloadBackupMutation } from './queries';\nimport { validationSchema } from './BackupFileForm.validation';\nimport { SecurityFieldset } from './SecurityFieldset';\nimport { BackupFileSettings } from './types';\n\nexport function BackupFileForm() {\n  const downloadMutate = useDownloadBackupMutation();\n\n  const settings: BackupFileSettings = {\n    password: '',\n    passwordProtect: false,\n  };\n\n  return (\n    <Formik<BackupFileSettings>\n      initialValues={settings}\n      validationSchema={validationSchema}\n      onSubmit={onSubmit}\n      validateOnMount\n    >\n      {({ isSubmitting, isValid }) => (\n        <Form className=\"form-horizontal\">\n          <SecurityFieldset\n            switchDataCy=\"settings-passwordProtectLocal\"\n            inputDataCy=\"settings-backupLocalPassword\"\n          />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                loadingText=\"Downloading settings...\"\n                isLoading={isSubmitting}\n                disabled={!isValid}\n                className=\"!ml-0\"\n                icon={Download}\n              >\n                Download backup\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  async function onSubmit(values: BackupFileSettings) {\n    const payload: DownloadBackupPayload = {\n      password: '',\n    };\n    if (values.passwordProtect) {\n      payload.password = values.password;\n    }\n\n    downloadMutate.mutate(payload, {\n      onSuccess() {\n        notifySuccess('Success', 'Downloaded backup successfully');\n      },\n    });\n  }\n}\n","import { SchemaOf, object, string, boolean } from 'yup';\n\nimport { BackupS3Settings } from './types';\n\nexport function validationSchema(): SchemaOf<BackupS3Settings> {\n  return object({\n    passwordProtect: boolean().default(false),\n    password: string()\n      .default('')\n      .when('passwordProtect', {\n        is: true,\n        then: (schema) => schema.required('This field is required.'),\n      }),\n    scheduleAutomaticBackup: boolean().default(false),\n    cronRule: string()\n      .default('')\n      .when('scheduleAutomaticBackup', {\n        is: true,\n        then: (schema) =>\n          schema.required('This field is required.').when('cronRule', {\n            is: (val: string) => val !== '',\n            then: (schema) =>\n              schema.matches(\n                /^(\\*(\\/[1-9][0-9]*)?|([0-5]?[0-9]|6[0-9]|7[0-9])(-[0-5]?[0-9])?)(\\s+(\\*(\\/[1-9][0-9]*)?|([0-5]?[0-9]|6[0-9]|7[0-9])(-[0-5]?[0-9])?)){4}$/,\n                'Please enter a valid cron rule.'\n              ),\n          }),\n      }),\n    accessKeyID: string()\n      .default('')\n      .when('scheduleAutomaticBackup', {\n        is: true,\n        then: (schema) => schema.required('This field is required.'),\n      }),\n    secretAccessKey: string()\n      .default('')\n      .when('scheduleAutomaticBackup', {\n        is: true,\n        then: (schema) => schema.required('This field is required.'),\n      }),\n    region: string().default('').optional(),\n    bucketName: string()\n      .default('')\n      .when('scheduleAutomaticBackup', {\n        is: true,\n        then: (schema) => schema.required('This field is required.'),\n      }),\n    s3CompatibleHost: string()\n      .default('')\n      .when({\n        is: (val: string) => val !== '',\n        then: (schema) =>\n          schema.matches(\n            /^https?:\\/\\//,\n            'S3 host must begin with http:// or https://.'\n          ),\n      }),\n  });\n}\n","import { Formik, Form, Field } from 'formik';\nimport { Upload } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport {\n  isLimitedToBE,\n  isBE,\n} from '@/react/portainer/feature-flags/feature-flags.service';\nimport { success as notifySuccess } from '@/portainer/services/notifications';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { Input } from '@@/form-components/Input';\nimport { SwitchField } from '@@/form-components/SwitchField';\nimport { BEOverlay } from '@@/BEFeatureIndicator/BEOverlay';\n\nimport {\n  useBackupS3Settings,\n  useExportS3BackupMutation,\n  useUpdateBackupS3SettingsMutation,\n} from './queries';\nimport { BackupS3Model, BackupS3Settings } from './types';\nimport { validationSchema } from './BackupS3Form.validation';\nimport { SecurityFieldset } from './SecurityFieldset';\n\nexport function BackupS3Form() {\n  const limitedToBE = isLimitedToBE(FeatureId.S3_BACKUP_SETTING);\n\n  const exportS3Mutate = useExportS3BackupMutation();\n\n  const updateS3Mutate = useUpdateBackupS3SettingsMutation();\n\n  const settingsQuery = useBackupS3Settings({ enabled: isBE });\n  if (settingsQuery.isLoading) {\n    return null;\n  }\n\n  const settings = settingsQuery.data;\n\n  const backupS3Settings = {\n    password: settings?.password || '',\n    cronRule: settings?.cronRule || '',\n    accessKeyID: settings?.accessKeyID || '',\n    secretAccessKey: settings?.secretAccessKey || '',\n    region: settings?.region || '',\n    bucketName: settings?.bucketName || '',\n    s3CompatibleHost: settings?.s3CompatibleHost || '',\n    scheduleAutomaticBackup: !!settings?.cronRule,\n    passwordProtect: !!settings?.password,\n  };\n\n  return (\n    <Formik<BackupS3Settings>\n      initialValues={backupS3Settings}\n      validationSchema={validationSchema}\n      onSubmit={onSubmit}\n      validateOnMount\n    >\n      {({ values, errors, isSubmitting, setFieldValue, isValid }) => (\n        <BEOverlay\n          featureId={FeatureId.S3_BACKUP_SETTING}\n          variant=\"form-section\"\n        >\n          <Form className=\"form-horizontal\">\n            <div className=\"form-group\">\n              <div className=\"col-sm-12\">\n                <SwitchField\n                  name=\"schedule-automatic-backup\"\n                  labelClass=\"col-sm-3 col-lg-2\"\n                  label=\"Schedule automatic backups\"\n                  checked={values.scheduleAutomaticBackup}\n                  onChange={(e) => setFieldValue('scheduleAutomaticBackup', e)}\n                />\n              </div>\n            </div>\n\n            {values.scheduleAutomaticBackup && (\n              <FormControl\n                inputId=\"cron_rule\"\n                label=\"Cron rule\"\n                size=\"small\"\n                errors={errors.cronRule}\n                required\n              >\n                <Field\n                  id=\"cron_rule\"\n                  name=\"cronRule\"\n                  type=\"text\"\n                  as={Input}\n                  placeholder=\"0 2 * * *\"\n                  data-cy=\"settings-backupCronRuleInput\"\n                  className={clsx({ 'limited-be': limitedToBE })}\n                  disabled={limitedToBE}\n                />\n              </FormControl>\n            )}\n\n            <FormControl\n              label=\"Access key ID\"\n              inputId=\"access_key_id\"\n              errors={errors.accessKeyID}\n            >\n              <Field\n                id=\"access_key_id\"\n                name=\"accessKeyID\"\n                type=\"text\"\n                as={Input}\n                data-cy=\"settings-accessKeyIdInput\"\n                className={clsx({ 'limited-be': limitedToBE })}\n                disabled={limitedToBE}\n              />\n            </FormControl>\n\n            <FormControl\n              label=\"Secret access key\"\n              inputId=\"secret_access_key\"\n              errors={errors.secretAccessKey}\n            >\n              <Field\n                id=\"secret_access_key\"\n                name=\"secretAccessKey\"\n                type=\"password\"\n                as={Input}\n                data-cy=\"settings-secretAccessKeyInput\"\n                className={clsx({ 'limited-be': limitedToBE })}\n                disabled={limitedToBE}\n              />\n            </FormControl>\n\n            <FormControl label=\"Region\" inputId=\"region\" errors={errors.region}>\n              <Field\n                id=\"region\"\n                name=\"region\"\n                type=\"text\"\n                as={Input}\n                placeholder=\"default region is us-east-1 if left empty\"\n                data-cy=\"settings-backupRegionInput\"\n                className={clsx({ 'limited-be': limitedToBE })}\n                disabled={limitedToBE}\n              />\n            </FormControl>\n\n            <FormControl\n              label=\"Bucket name\"\n              inputId=\"bucket_name\"\n              errors={errors.bucketName}\n            >\n              <Field\n                id=\"bucket_name\"\n                name=\"bucketName\"\n                type=\"text\"\n                as={Input}\n                data-cy=\"settings-backupBucketNameInput\"\n                className={clsx({ 'limited-be': limitedToBE })}\n                disabled={limitedToBE}\n              />\n            </FormControl>\n\n            <FormControl\n              label=\"S3 compatible host\"\n              inputId=\"s3_compatible_host\"\n              tooltip=\"Hostname of a S3 service\"\n              errors={errors.s3CompatibleHost}\n            >\n              <Field\n                id=\"s3_compatible_host\"\n                name=\"s3CompatibleHost\"\n                type=\"text\"\n                as={Input}\n                placeholder=\"leave empty for AWS S3\"\n                data-cy=\"settings-backupS3CompatibleHostInput\"\n                className={clsx({ 'limited-be': limitedToBE })}\n                disabled={limitedToBE}\n              />\n            </FormControl>\n\n            <SecurityFieldset\n              switchDataCy=\"settings-passwordProtectToggleS3\"\n              inputDataCy=\"settings-backups3pw\"\n              disabled={limitedToBE}\n            />\n\n            <div className=\"form-group\">\n              <div className=\"col-sm-12\">\n                <LoadingButton\n                  type=\"button\"\n                  loadingText=\"Exporting...\"\n                  isLoading={isSubmitting}\n                  className={clsx('!ml-0', { 'limited-be': limitedToBE })}\n                  disabled={!isValid || limitedToBE}\n                  data-cy=\"settings-exportBackupS3Button\"\n                  icon={Upload}\n                  onClick={() => {\n                    handleExport(values);\n                  }}\n                >\n                  Export backup\n                </LoadingButton>\n              </div>\n            </div>\n            <div className=\"form-group\">\n              <div className=\"col-sm-12\">\n                <LoadingButton\n                  loadingText=\"Saving settings...\"\n                  isLoading={isSubmitting}\n                  className={clsx('!ml-0', { 'limited-be': limitedToBE })}\n                  disabled={!isValid || limitedToBE}\n                  data-cy=\"settings-saveBackupSettingsButton\"\n                >\n                  Save backup settings\n                </LoadingButton>\n              </div>\n            </div>\n          </Form>\n        </BEOverlay>\n      )}\n    </Formik>\n  );\n\n  function handleExport(values: BackupS3Settings) {\n    const payload: BackupS3Model = {\n      password: values.passwordProtect ? values.password : '',\n      cronRule: values.scheduleAutomaticBackup ? values.cronRule : '',\n      accessKeyID: values.accessKeyID,\n      secretAccessKey: values.secretAccessKey,\n      region: values.region,\n      bucketName: values.bucketName,\n      s3CompatibleHost: values.s3CompatibleHost,\n    };\n    exportS3Mutate.mutate(payload, {\n      onSuccess() {\n        notifySuccess('Success', 'Exported backup to S3 successfully');\n      },\n    });\n  }\n\n  async function onSubmit(values: BackupS3Settings) {\n    const payload: BackupS3Model = {\n      password: values.passwordProtect ? values.password : '',\n      cronRule: values.scheduleAutomaticBackup ? values.cronRule : '',\n      accessKeyID: values.accessKeyID,\n      secretAccessKey: values.secretAccessKey,\n      region: values.region,\n      bucketName: values.bucketName,\n      s3CompatibleHost: values.s3CompatibleHost,\n    };\n\n    updateS3Mutate.mutate(payload, {\n      onSuccess() {\n        notifySuccess('Success', 'S3 backup settings saved successfully');\n      },\n    });\n  }\n}\n","import { Download } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { BoxSelector } from '@@/BoxSelector';\n\nimport { BackupFormType, options } from './backup-options';\nimport { BackupFileForm } from './BackupFileForm';\nimport { BackupS3Form } from './BackupS3Form';\n\nexport function BackupSettingsPanel() {\n  const [backupType, setBackupType] = useState(options[0].value);\n\n  return (\n    <Widget>\n      <WidgetTitle icon={Download} title=\"Back up Portainer\" />\n      <WidgetBody>\n        <div className=\"form-horizontal\">\n          <FormSection title=\"Backup configuration\">\n            <div className=\"form-group col-sm-12 text-muted small\">\n              This will back up your Portainer server configuration and does not\n              include containers.\n            </div>\n            <BoxSelector\n              slim\n              options={options}\n              value={backupType}\n              onChange={(v) => setBackupType(v)}\n              radioName=\"backup-type\"\n            />\n\n            {backupType === BackupFormType.S3 ? (\n              <BackupS3Form />\n            ) : (\n              <BackupFileForm />\n            )}\n          </FormSection>\n        </div>\n      </WidgetBody>\n    </Widget>\n  );\n}\n","import { useField } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Switch } from '@@/form-components/SwitchField/Switch';\n\nconst fieldKey = 'OpenAIIntegration';\n\nexport function EnableOpenAIIntegrationSwitch() {\n  const [inputProps, meta, helpers] = useField<boolean>(fieldKey);\n\n  return (\n    <FormControl\n      inputId=\"experimental_openAI\"\n      label=\"Enable OpenAI integration\"\n      size=\"medium\"\n      errors={meta.error}\n    >\n      <Switch\n        id=\"experimental_openAI\"\n        name={fieldKey}\n        className=\"space-right\"\n        checked={inputProps.value}\n        onChange={handleChange}\n      />\n    </FormControl>\n  );\n\n  function handleChange(enable: boolean) {\n    helpers.setValue(enable);\n  }\n}\n","import { Form, Formik } from 'formik';\nimport * as yup from 'yup';\nimport { useCallback } from 'react';\nimport { FlaskConical } from 'lucide-react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { ExperimentalFeatures } from '@/react/portainer/settings/types';\nimport { useUpdateExperimentalSettingsMutation } from '@/react/portainer/settings/queries';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { EnableOpenAIIntegrationSwitch } from './EnableOpenAIIntegrationSwitch';\n\ninterface FormValues {\n  OpenAIIntegration: boolean;\n}\nconst validation = yup.object({\n  OpenAIIntegration: yup.boolean(),\n});\n\ninterface Props {\n  settings: ExperimentalFeatures;\n}\n\nexport function ExperimentalFeaturesSettingsForm({ settings }: Props) {\n  const initialValues: FormValues = settings;\n\n  const mutation = useUpdateExperimentalSettingsMutation();\n\n  const { mutate: updateSettings } = mutation;\n\n  const handleSubmit = useCallback(\n    (variables: FormValues) => {\n      updateSettings(\n        {\n          OpenAIIntegration: variables.OpenAIIntegration,\n        },\n        {\n          onSuccess() {\n            notifySuccess(\n              'Success',\n              'Successfully updated experimental features settings'\n            );\n          },\n        }\n      );\n    },\n    [updateSettings]\n  );\n\n  return (\n    <Formik<FormValues>\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      validateOnMount\n      enableReinitialize\n    >\n      {({ isValid, dirty }) => (\n        <Form className=\"form-horizontal\">\n          <TextTip color=\"blue\" icon={FlaskConical}>\n            Experimental features may be discontinued without notice.\n          </TextTip>\n\n          <br />\n          <br />\n\n          <div className=\"form-group col-sm-12 text-muted small\">\n            In Portainer releases, we may introduce features that we&apos;re\n            experimenting with. These will be items in the early phases of\n            development with limited testing.\n            <br />\n            Our goal is to gain early user feedback, so we can refine, enhance\n            and ultimately make our features the best they can be. Disabling an\n            experimental feature will prevent access to it.\n          </div>\n\n          <EnableOpenAIIntegrationSwitch />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                loadingText=\"Saving settings...\"\n                isLoading={mutation.isLoading}\n                disabled={!isValid || !dirty}\n                className=\"!ml-0\"\n                data-cy=\"settings-experimentalButton\"\n              >\n                Save experimental settings\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n}\n","import { FlaskConical } from 'lucide-react';\n\nimport { useExperimentalSettings } from '@/react/portainer/settings/queries';\n\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\n\nimport { ExperimentalFeaturesSettingsForm } from './ExperimentalFeaturesForm';\n\nexport function ExperimentalFeatures() {\n  const settingsQuery = useExperimentalSettings();\n\n  if (!settingsQuery.data) {\n    return null;\n  }\n\n  const settings = settingsQuery.data;\n\n  return (\n    <Widget>\n      <WidgetTitle icon={FlaskConical} title=\"Experimental features\" />\n      <WidgetBody>\n        <ExperimentalFeaturesSettingsForm\n          settings={settings.experimentalFeatures}\n        />\n      </WidgetBody>\n    </Widget>\n  );\n}\n","import { useEffect } from 'react';\nimport angular from 'angular';\n\nimport { StateManager } from '@/portainer/services/types';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useSettings } from '../queries';\nimport { Settings } from '../types';\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { ApplicationSettingsPanel } from './ApplicationSettingsPanel';\nimport { BackupSettingsPanel } from './BackupSettingsView';\nimport { HelmCertPanel } from './HelmCertPanel';\nimport { HiddenContainersPanel } from './HiddenContainersPanel/HiddenContainersPanel';\nimport { KubeSettingsPanel } from './KubeSettingsPanel';\nimport { SSLSettingsPanelWrapper } from './SSLSettingsPanel/SSLSettingsPanel';\nimport { ExperimentalFeatures } from './ExperimentalFeatures';\n\nexport function SettingsView() {\n  const settingsQuery = useSettings();\n\n  useEffect(() => {\n    if (settingsQuery.data) {\n      const regEx = /#!.*#(.*)/;\n      const match = window.location.hash.match(regEx);\n      if (match && match[1]) {\n        document.getElementById(match[1])?.scrollIntoView();\n      }\n    }\n  }, [settingsQuery.data]);\n\n  return (\n    <>\n      <PageHeader title=\"Settings\" breadcrumbs=\"Settings\" reload />\n\n      <div className=\"mx-4 space-y-4\">\n        {settingsQuery.data && (\n          <>\n            <ApplicationSettingsPanel\n              onSuccess={handleSuccess}\n              settings={settingsQuery.data}\n            />\n\n            <KubeSettingsPanel settings={settingsQuery.data} />\n          </>\n        )}\n\n        <HelmCertPanel />\n\n        <SSLSettingsPanelWrapper />\n\n        {isBE && <ExperimentalFeatures />}\n\n        <HiddenContainersPanel />\n\n        <BackupSettingsPanel />\n      </div>\n    </>\n  );\n}\n\nfunction handleSuccess(settings: Settings) {\n  // to sync \"outside state\" - for angularjs\n  // this is a hack, but it works\n  // state manager should be replaced with a non angular solution, maybe using zustand\n  const $injector = angular.element(document).injector();\n  $injector.invoke(\n    /* @ngInject */ (StateManager: StateManager) => {\n      StateManager?.updateLogo(settings.LogoURL);\n      StateManager?.updateSnapshotInterval(settings.SnapshotInterval);\n      StateManager?.updateEnableTelemetry(settings.EnableTelemetry);\n    }\n  );\n}\n","import { object, string } from 'yup';\n\nimport { isValidUrl } from '@@/form-components/validate-url';\n\nexport function noDuplicateURLsSchema(urls: string[]) {\n  return string()\n    .required('URL is required')\n    .test('not existing name', 'URL is already added', (newName) =>\n      urls.every((name) => name !== newName)\n    );\n}\n\nexport function validationSchema(urls: string[]) {\n  return object().shape({\n    URL: noDuplicateURLsSchema(urls)\n      .test('valid-url', 'Invalid URL', (value) => !value || isValidUrl(value))\n      .required('URL is required'),\n  });\n}\n","import { Field, Form, Formik } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { Button } from '@@/buttons';\n\nimport { HelmRepositoryFormValues } from '../../AccountView/HelmRepositoryDatatable/types';\n\nimport { validationSchema } from './CreateHelmRepositoryForm.validation';\n\ntype Props = {\n  isEditing?: boolean;\n  isLoading: boolean;\n  onSubmit: (formValues: HelmRepositoryFormValues) => void;\n  URLs: string[];\n};\n\nconst defaultInitialValues: HelmRepositoryFormValues = {\n  URL: '',\n};\n\nexport function HelmRepositoryForm({\n  isEditing = false,\n  isLoading,\n  onSubmit,\n  URLs,\n}: Props) {\n  const router = useRouter();\n\n  return (\n    <Formik<HelmRepositoryFormValues>\n      initialValues={defaultInitialValues}\n      enableReinitialize\n      validationSchema={() => validationSchema(URLs)}\n      onSubmit={(values) => onSubmit(values)}\n      validateOnMount\n    >\n      {({ values, errors, handleSubmit, isValid, dirty }) => (\n        <Form className=\"form-horizontal\" onSubmit={handleSubmit} noValidate>\n          <FormControl\n            inputId=\"url-field\"\n            label=\"URL\"\n            errors={errors.URL}\n            required\n          >\n            <Field\n              as={Input}\n              name=\"URL\"\n              value={values.URL}\n              autoComplete=\"off\"\n              id=\"url-field\"\n            />\n          </FormControl>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12 mt-3\">\n              <LoadingButton\n                disabled={!isValid || !dirty}\n                isLoading={isLoading}\n                loadingText=\"Saving Helm repository...\"\n              >\n                {isEditing ? 'Update Helm repository' : 'Save Helm repository'}\n              </LoadingButton>\n              {isEditing && (\n                <Button\n                  color=\"default\"\n                  onClick={() => router.stateService.go('portainer.account')}\n                >\n                  Cancel\n                </Button>\n              )}\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n}\n","import { useRouter } from '@uirouter/react';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport {\n  CreateHelmRepositoryPayload,\n  HelmRepositoryFormValues,\n} from '../../AccountView/HelmRepositoryDatatable/types';\nimport {\n  useHelmRepositories,\n  useCreateHelmRepositoryMutation,\n} from '../../AccountView/HelmRepositoryDatatable/helm-repositories.service';\nimport { HelmRepositoryForm } from '../components/HelmRepositoryForm';\n\nexport function CreateHelmRepositoryForm() {\n  const router = useRouter();\n  const currentUser = useCurrentUser();\n\n  const createHelmRepositoryMutation = useCreateHelmRepositoryMutation();\n  const helmReposQuery = useHelmRepositories(currentUser.user.Id);\n\n  const allRepositories =\n    helmReposQuery.data?.UserRepositories.map((x) => x.URL) || [];\n  if (helmReposQuery.data?.GlobalRepository) {\n    allRepositories.push(helmReposQuery.data?.GlobalRepository);\n  }\n\n  return (\n    <HelmRepositoryForm\n      isLoading={createHelmRepositoryMutation.isLoading}\n      onSubmit={onSubmit}\n      URLs={allRepositories}\n    />\n  );\n\n  function onSubmit(values: HelmRepositoryFormValues) {\n    const payload: CreateHelmRepositoryPayload = {\n      ...values,\n      UserId: currentUser.user.Id,\n    };\n    createHelmRepositoryMutation.mutate(payload, {\n      onSuccess: () => {\n        router.stateService.go('portainer.account');\n      },\n    });\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-portainer-environments-wizard-components-Option-Option-module__root\",\"feature\":\"app-react-portainer-environments-wizard-components-Option-Option-module__feature\",\"teaser\":\"app-react-portainer-environments-wizard-components-Option-Option-module__teaser\",\"active\":\"app-react-portainer-environments-wizard-components-Option-Option-module__active\",\"iconComponent\":\"app-react-portainer-environments-wizard-components-Option-Option-module__icon-component\"};","import clsx from 'clsx';\nimport { ComponentType } from 'react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { BEFeatureIndicator } from '@@/BEFeatureIndicator';\n\nimport styles from './Option.module.css';\n\nexport interface SelectorItemType {\n  icon: string | ComponentType<{ selected?: boolean; className?: string }>;\n  title: string;\n  description: string;\n}\n\ninterface Props extends SelectorItemType {\n  active?: boolean;\n  onClick?(): void;\n  featureId?: FeatureId;\n}\n\nexport function Option({\n  icon,\n  active,\n  description,\n  title,\n  onClick = () => {},\n  featureId,\n}: Props) {\n  const IconComponent = icon;\n  const isLimited = isLimitedToBE(featureId);\n  return (\n    <button\n      className={clsx(\n        styles.root,\n        isLimited ? styles.teaser : styles.feature,\n        'border-0',\n        {\n          [styles.active]: active,\n        }\n      )}\n      type=\"button\"\n      disabled={isLimited}\n      onClick={onClick}\n    >\n      <div className=\"mt-2 flex items-end justify-center text-center\">\n        <IconComponent selected={active} className={styles.iconComponent} />\n      </div>\n\n      <div className=\"mt-3 flex flex-col text-center\">\n        <h3>{title}</h3>\n        <h5>{description}</h5>\n        {isLimited && (\n          <BEFeatureIndicator\n            showIcon={false}\n            featureId={featureId}\n            className=\"!whitespace-normal\"\n          />\n        )}\n      </div>\n    </button>\n  );\n}\n","import axios, {\n  parseAxiosError,\n  json2formData,\n  arrayToJson,\n} from '@/portainer/services/axios';\nimport { type EnvironmentGroupId } from '@/react/portainer/environments/environment-groups/types';\nimport { type TagId } from '@/portainer/tags/types';\nimport { EdgeAsyncIntervalsValues } from '@/react/edge/components/EdgeAsyncIntervalsForm';\n\nimport { type Environment, EnvironmentCreationTypes } from '../types';\n\nimport { buildUrl } from './utils';\n\nexport interface EnvironmentMetadata {\n  groupId?: EnvironmentGroupId;\n  tagIds?: TagId[];\n}\n\ninterface CreateLocalDockerEnvironment {\n  name: string;\n  socketPath?: string;\n  publicUrl?: string;\n  meta?: EnvironmentMetadata;\n}\n\nexport async function createLocalDockerEnvironment({\n  name,\n  socketPath = '',\n  publicUrl = '',\n  meta = { tagIds: [] },\n}: CreateLocalDockerEnvironment) {\n  const url = prefixPath(socketPath);\n\n  return createEnvironment(\n    name,\n    EnvironmentCreationTypes.LocalDockerEnvironment,\n    {\n      url,\n      publicUrl,\n      meta,\n    }\n  );\n\n  function prefixPath(path: string) {\n    if (path === '') {\n      return path;\n    }\n\n    // Windows named pipe\n    if (path.startsWith('//./pipe/')) {\n      return `npipe://${path}`;\n    }\n\n    return `unix://${path}`;\n  }\n}\n\ninterface CreateLocalKubernetesEnvironment {\n  name: string;\n  meta?: EnvironmentMetadata;\n}\n\nexport async function createLocalKubernetesEnvironment({\n  name,\n  meta = { tagIds: [] },\n}: CreateLocalKubernetesEnvironment) {\n  return createEnvironment(\n    name,\n    EnvironmentCreationTypes.LocalKubernetesEnvironment,\n    { meta, tls: { skipClientVerify: true, skipVerify: true } }\n  );\n}\n\ninterface AzureSettings {\n  applicationId: string;\n  tenantId: string;\n  authenticationKey: string;\n}\n\ninterface CreateAzureEnvironment {\n  name: string;\n  azure: AzureSettings;\n  meta?: EnvironmentMetadata;\n}\n\nexport async function createAzureEnvironment({\n  name,\n  azure,\n  meta = { tagIds: [] },\n}: CreateAzureEnvironment) {\n  return createEnvironment(name, EnvironmentCreationTypes.AzureEnvironment, {\n    meta,\n    azure,\n  });\n}\n\ninterface TLSSettings {\n  skipVerify?: boolean;\n  skipClientVerify?: boolean;\n  caCertFile?: File;\n  certFile?: File;\n  keyFile?: File;\n}\n\ninterface EdgeSettings extends EdgeAsyncIntervalsValues {\n  asyncMode: boolean;\n}\n\nexport interface EnvironmentOptions {\n  url?: string;\n  publicUrl?: string;\n  meta?: EnvironmentMetadata;\n  azure?: AzureSettings;\n  tls?: TLSSettings;\n  pollFrequency?: number;\n  edge?: EdgeSettings;\n  tunnelServerAddr?: string;\n}\n\ninterface CreateRemoteEnvironment {\n  name: string;\n  creationType: Exclude<\n    EnvironmentCreationTypes,\n    EnvironmentCreationTypes.EdgeAgentEnvironment\n  >;\n  url: string;\n  options?: Omit<EnvironmentOptions, 'url'>;\n}\n\nexport async function createRemoteEnvironment({\n  creationType,\n  name,\n  url,\n  options = {},\n}: CreateRemoteEnvironment) {\n  return createEnvironment(name, creationType, {\n    ...options,\n    url: `tcp://${url}`,\n  });\n}\n\nexport interface CreateAgentEnvironmentValues {\n  name: string;\n  environmentUrl: string;\n  meta: EnvironmentMetadata;\n}\n\nexport function createAgentEnvironment({\n  name,\n  environmentUrl,\n  meta = { tagIds: [] },\n}: CreateAgentEnvironmentValues) {\n  return createRemoteEnvironment({\n    name,\n    url: environmentUrl,\n    creationType: EnvironmentCreationTypes.AgentEnvironment,\n    options: {\n      meta,\n      tls: {\n        skipVerify: true,\n        skipClientVerify: true,\n      },\n    },\n  });\n}\n\ninterface CreateEdgeAgentEnvironment {\n  name: string;\n  portainerUrl: string;\n  tunnelServerAddr?: string;\n  meta?: EnvironmentMetadata;\n  pollFrequency: number;\n  edge: EdgeSettings;\n}\n\nexport function createEdgeAgentEnvironment({\n  name,\n  portainerUrl,\n  meta = { tagIds: [] },\n  pollFrequency,\n  edge,\n}: CreateEdgeAgentEnvironment) {\n  return createEnvironment(\n    name,\n    EnvironmentCreationTypes.EdgeAgentEnvironment,\n    {\n      url: portainerUrl,\n      tls: {\n        skipVerify: true,\n        skipClientVerify: true,\n      },\n      pollFrequency,\n      edge,\n      meta,\n    }\n  );\n}\n\nasync function createEnvironment(\n  name: string,\n  creationType: EnvironmentCreationTypes,\n  options?: EnvironmentOptions\n) {\n  let payload: Record<string, unknown> = {\n    Name: name,\n    EndpointCreationType: creationType,\n  };\n\n  if (options) {\n    const { groupId, tagIds = [] } = options.meta || {};\n\n    payload = {\n      ...payload,\n      URL: options.url,\n      PublicURL: options.publicUrl,\n      GroupID: groupId,\n      TagIds: arrayToJson(tagIds),\n      EdgeCheckinInterval: options.pollFrequency,\n    };\n\n    const { tls, azure } = options;\n\n    if (tls) {\n      payload = {\n        ...payload,\n        TLS: true,\n        TLSSkipVerify: tls.skipVerify,\n        TLSSkipClientVerify: tls.skipClientVerify,\n        TLSCACertFile: tls.caCertFile,\n        TLSCertFile: tls.certFile,\n        TLSKeyFile: tls.keyFile,\n      };\n    }\n\n    if (azure) {\n      payload = {\n        ...payload,\n        AzureApplicationID: azure.applicationId,\n        AzureTenantID: azure.tenantId,\n        AzureAuthenticationKey: azure.authenticationKey,\n      };\n    }\n\n    if (options.edge?.asyncMode) {\n      payload = {\n        ...payload,\n        EdgeAsyncMode: true,\n        EdgePingInterval: options.edge?.PingInterval,\n        EdgeSnapshotInterval: options.edge?.SnapshotInterval,\n        EdgeCommandInterval: options.edge?.CommandInterval,\n      };\n    }\n  }\n\n  const formPayload = json2formData(payload);\n  try {\n    const { data } = await axios.post<Environment>(buildUrl(), formPayload);\n\n    return data;\n  } catch (e) {\n    throw parseAxiosError(e as Error);\n  }\n}\n","import { useEffect, useState } from 'react';\nimport { useMutation } from 'react-query';\n\nimport { useEnvironmentList } from '@/react/portainer/environments/queries/useEnvironmentList';\nimport {\n  Environment,\n  EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport {\n  createLocalDockerEnvironment,\n  createLocalKubernetesEnvironment,\n} from '@/react/portainer/environments/environment.service/create';\n\nexport function useConnectLocalEnvironment(): {\n  status: 'error' | 'loading' | 'success';\n  type?: EnvironmentType;\n} {\n  const [localEnvironment, setLocalEnvironment] = useState<Environment>();\n\n  const { isLoading, environment } = useFetchLocalEnvironment();\n\n  const createLocalEnvironmentMutation = useMutation(createLocalEnvironment);\n\n  const { mutate } = createLocalEnvironmentMutation;\n\n  useEffect(() => {\n    if (isLoading || localEnvironment) {\n      return;\n    }\n\n    if (environment) {\n      setLocalEnvironment(environment);\n      return;\n    }\n\n    mutate(undefined, {\n      onSuccess(environment) {\n        setLocalEnvironment(environment);\n      },\n    });\n  }, [environment, isLoading, localEnvironment, mutate]);\n\n  return {\n    status: getStatus(isLoading, createLocalEnvironmentMutation.status),\n    type: localEnvironment?.Type,\n  };\n}\n\nfunction getStatus(\n  isLoading: boolean,\n  mutationStatus: 'loading' | 'error' | 'success' | 'idle'\n): 'loading' | 'error' | 'success' {\n  if (isLoading || mutationStatus === 'loading') {\n    return 'loading';\n  }\n\n  if (mutationStatus === 'error') {\n    return 'error';\n  }\n\n  return 'success';\n}\n\nasync function createLocalEnvironment() {\n  try {\n    return await createLocalKubernetesEnvironment({ name: 'local' });\n  } catch (err) {\n    return await createLocalDockerEnvironment({ name: 'local' });\n  }\n}\n\nfunction useFetchLocalEnvironment() {\n  const { environments, isLoading } = useEnvironmentList(\n    {\n      page: 0,\n      pageLimit: 1,\n      types: [\n        EnvironmentType.Docker,\n        EnvironmentType.AgentOnDocker,\n        EnvironmentType.KubernetesLocal,\n      ],\n    },\n    {\n      refetchInterval: false,\n      staleTime: Infinity,\n    }\n  );\n\n  let environment: Environment | undefined;\n  environments.forEach((value) => {\n    if (!environment) {\n      if (value.Type === EnvironmentType.AgentOnDocker) {\n        if (value.Name === 'primary' && value.Id === 1) {\n          environment = value;\n        }\n      } else {\n        environment = value;\n      }\n    }\n  });\n\n  return {\n    isLoading,\n    environment,\n  };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wizardButton\":\"app-react-portainer-environments-wizard-HomeView-HomeView-module__wizard-button\",\"link\":\"app-react-portainer-environments-wizard-HomeView-HomeView-module__link\"};","import { Wand2, Plug2 } from 'lucide-react';\n\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\nimport DockerIcon from '@/assets/ico/vendor/docker-icon.svg?c';\nimport Kube from '@/assets/ico/kube.svg?c';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { Link } from '@@/Link';\n\nimport { Option } from '../components/Option';\n\nimport { useConnectLocalEnvironment } from './useFetchOrCreateLocalEnvironment';\nimport styles from './HomeView.module.css';\n\nexport function HomeView() {\n  const localEnvironmentAdded = useConnectLocalEnvironment();\n  const { trackEvent } = useAnalytics();\n  return (\n    <>\n      <PageHeader\n        title=\"Quick Setup\"\n        breadcrumbs={[{ label: 'Environment Wizard' }]}\n        reload\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetTitle title=\"Environment Wizard\" icon={Wand2} />\n            <WidgetBody>\n              <div className=\"row\">\n                <div className=\"col-sm-12 form-section-title\">\n                  Welcome to Portainer\n                </div>\n                <div className=\"text-muted small\">\n                  {localEnvironmentAdded.status === 'success' && (\n                    <p>\n                      We have connected your local environment of{' '}\n                      {getTypeLabel(localEnvironmentAdded.type)} to Portainer.\n                    </p>\n                  )}\n\n                  {localEnvironmentAdded.status === 'error' && (\n                    <p>\n                      We could not connect your local environment to Portainer.\n                      <br />\n                      Please ensure your environment is correctly exposed. For\n                      help with installation visit{' '}\n                      <a\n                        href=\"https://documentation.portainer.io/quickstart/\"\n                        target=\"_blank\"\n                        rel=\"noopener noreferrer\"\n                      >\n                        https://documentation.portainer.io/quickstart\n                      </a>\n                    </p>\n                  )}\n\n                  <p>\n                    Get started below with your local portainer or connect more\n                    container environments.\n                  </p>\n                </div>\n\n                <div className=\"flex flex-wrap gap-4\">\n                  {localEnvironmentAdded.status === 'success' && (\n                    <Link to=\"portainer.home\" className={styles.link}>\n                      <Option\n                        icon={\n                          localEnvironmentAdded.type === EnvironmentType.Docker\n                            ? DockerIcon\n                            : Kube\n                        }\n                        title=\"Get Started\"\n                        description=\"Proceed using the local environment which Portainer is running in\"\n                        onClick={() => trackLocalEnvironmentAnalytics()}\n                      />\n                    </Link>\n                  )}\n                  <Link to=\"portainer.wizard.endpoints\" className={styles.link}>\n                    <Option\n                      title=\"Add Environments\"\n                      icon={Plug2}\n                      description=\"Connect to other environments\"\n                    />\n                  </Link>\n                </div>\n              </div>\n            </WidgetBody>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n\n  function trackLocalEnvironmentAnalytics() {\n    trackEvent('endpoint-wizard-endpoint-select', {\n      category: 'portainer',\n      metadata: { environment: 'Get-started-local-environment' },\n    });\n  }\n}\n\nfunction getTypeLabel(type?: EnvironmentType) {\n  switch (type) {\n    case EnvironmentType.Docker:\n      return 'Docker';\n    case EnvironmentType.AgentOnDocker:\n      return 'Docker Agent';\n    case EnvironmentType.KubernetesLocal:\n      return 'Kubernetes';\n    default:\n      return '';\n  }\n}\n","import { BoxSelector } from '@@/BoxSelector';\n\nimport { EnvironmentOption, EnvironmentOptionValue } from './environment-types';\n\ninterface Props {\n  value: EnvironmentOptionValue[];\n  onChange(value: EnvironmentOptionValue[]): void;\n  options: EnvironmentOption[];\n  hiddenSpacingCount?: number;\n}\n\nexport function EnvironmentSelector({\n  value,\n  onChange,\n  options,\n  hiddenSpacingCount,\n}: Props) {\n  return (\n    <BoxSelector\n      options={options}\n      isMulti\n      value={value}\n      onChange={onChange}\n      radioName=\"type-selector\"\n      hiddenSpacingCount={hiddenSpacingCount}\n    />\n  );\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKaasIcon = function SvgKaasIcon(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 37 32\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#326DE6\",\n    fillRule: \"evenodd\",\n    d: \"M9.626 28.14a7.623 7.623 0 0 1-3.111-14.502c.684-5.81 5.626-10.316 11.62-10.316 5.886 0 10.757 4.347 11.578 10.006a7.623 7.623 0 0 1-2.714 14.812v.001H9.626v-.002Z\",\n    clipRule: \"evenodd\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M26.042 18.12c-.024 0-.049 0-.049-.026 0-.025-.048-.025-.097-.025-.098-.025-.196-.025-.294-.025-.048 0-.097 0-.146-.025h-.024a4.816 4.816 0 0 1-.831-.15.299.299 0 0 1-.171-.176l-.195-.05c.097-.727.048-1.48-.098-2.207a6.889 6.889 0 0 0-.855-2.056l.146-.15v-.025c0-.076.025-.176.074-.226.22-.2.44-.351.684-.502l.146-.075c.098-.05.171-.1.269-.15.024-.025.049-.025.073-.05.025-.025 0-.025 0-.05a.499.499 0 0 0 .098-.703.463.463 0 0 0-.342-.175.575.575 0 0 0-.342.125l-.024.025c-.025.025-.05.05-.074.05-.073.076-.146.15-.195.226-.025.05-.073.075-.098.1-.17.201-.39.402-.61.552-.05.025-.098.05-.147.05-.024 0-.073 0-.098-.025h-.024l-.196.125c-.195-.2-.415-.4-.61-.601a6.17 6.17 0 0 0-3.176-1.304l-.024-.2v.024c-.074-.05-.098-.125-.122-.2 0-.276 0-.552.048-.853v-.025c0-.05.025-.1.025-.15.024-.1.024-.2.049-.301v-.15c.024-.251-.171-.502-.416-.527-.146-.025-.293.05-.415.175a.502.502 0 0 0-.146.351v.126c0 .1.024.2.049.3.024.05.024.1.024.151v.025c.049.276.049.552.049.853-.025.075-.05.15-.122.2v.05l-.025.201c-.268.025-.537.075-.83.125-1.148.251-2.199.878-3.005 1.756l-.146-.1h-.025c-.024 0-.049.024-.098.024-.048 0-.097-.025-.146-.05a4.553 4.553 0 0 1-.61-.576c-.025-.05-.074-.076-.098-.1-.074-.076-.123-.151-.196-.227-.024-.025-.049-.025-.073-.05l-.025-.025a.575.575 0 0 0-.342-.125c-.146 0-.268.05-.342.175a.55.55 0 0 0 .098.703c.025 0 .025.025.025.025s.048.05.073.05c.073.05.17.1.268.15l.147.075c.244.15.489.301.684.502.049.05.098.15.073.226v-.025l.147.15c-.024.05-.049.075-.073.125a6.082 6.082 0 0 0-.855 4.112l-.196.05c0 .026-.024.026-.024.026-.025.075-.098.125-.171.175a4.427 4.427 0 0 1-.83.15c-.05 0-.098 0-.147.026-.098 0-.196.025-.293.025-.025 0-.05.025-.098.025-.024 0-.024 0-.049.025-.269.05-.44.3-.39.577a.455.455 0 0 0 .488.35c.049 0 .073 0 .122-.024.024 0 .024 0 .024-.025s.074 0 .098 0c.098-.025.196-.076.269-.1.049-.026.097-.05.146-.05h.025c.268-.101.513-.176.806-.227h.024c.073 0 .147.026.196.076.024 0 .024.025.024.025l.22-.025a6.055 6.055 0 0 0 2.003 2.933c.22.176.415.326.66.452l-.123.175c0 .025.025.025.025.025a.303.303 0 0 1 .024.251c-.098.25-.244.502-.39.727v.025c-.025.05-.05.076-.098.126-.05.05-.098.15-.171.25-.025.026-.025.05-.05.076 0 0 0 .025-.024.025a.523.523 0 0 0 .196.677c.049.025.122.05.17.05.196 0 .367-.125.465-.3 0 0 0-.026.024-.026 0-.025.025-.05.05-.075.024-.1.073-.176.097-.276l.049-.15c.073-.276.195-.527.317-.778a.382.382 0 0 1 .196-.15c.024 0 .024 0 .024-.025l.098-.2a5.62 5.62 0 0 0 2.125.4c.44 0 .88-.05 1.32-.175.268-.05.537-.15.78-.226l.098.176c.025 0 .025 0 .025.025a.38.38 0 0 1 .195.15c.123.25.245.502.318.777v.025l.049.15c.024.101.049.201.098.277.024.025.024.05.048.075 0 0 0 .025.025.025.098.176.268.3.464.3.073 0 .122-.024.195-.05a.417.417 0 0 0 .22-.275.66.66 0 0 0-.024-.376c0-.025-.025-.025-.025-.025 0-.025-.024-.05-.049-.075a.9.9 0 0 0-.17-.251.439.439 0 0 0-.098-.126v-.05a2.986 2.986 0 0 1-.391-.727.304.304 0 0 1 .024-.25c0-.026.025-.026.025-.026l-.073-.2a6.173 6.173 0 0 0 2.638-3.41l.195.025c.024 0 .024-.025.024-.025a.273.273 0 0 1 .196-.076h.024c.269.05.538.126.782.226h.024a.34.34 0 0 0 .147.05c.098.05.17.1.269.126.024 0 .048.025.097.025.025 0 .025 0 .05.025.048.025.073.025.121.025.22 0 .416-.15.489-.351a.586.586 0 0 0-.44-.527Zm-7.06-.778-.659.326-.66-.326-.17-.727.464-.602h.733l.464.602-.171.727Zm3.982-1.63c.123.527.147 1.053.098 1.58l-2.32-.677c-.22-.05-.343-.276-.294-.502a.406.406 0 0 1 .098-.175l1.832-1.705c.269.451.464.952.586 1.479Zm-1.319-2.407-2.003 1.454c-.17.1-.415.075-.537-.1a.23.23 0 0 1-.073-.176l-.147-2.532a4.55 4.55 0 0 1 2.76 1.354Zm-4.421-1.279.488-.1-.122 2.507a.412.412 0 0 1-.415.401c-.073 0-.122-.025-.195-.05l-2.028-1.48a4.816 4.816 0 0 1 2.272-1.278Zm-2.98 2.207 1.808 1.655a.41.41 0 0 1 .048.576c-.049.076-.097.1-.195.126l-2.37.702a5.39 5.39 0 0 1 .709-3.06Zm-.415 4.237 2.418-.426c.195 0 .39.125.415.326a.304.304 0 0 1-.024.25l-.929 2.307a4.914 4.914 0 0 1-1.88-2.457Zm5.545 3.11a4.823 4.823 0 0 1-1.05.125c-.514 0-1.051-.1-1.54-.25l1.197-2.232c.122-.151.318-.201.489-.1.073.05.122.1.195.175l1.173 2.181c-.147.025-.293.05-.464.1Zm2.98-2.182a4.728 4.728 0 0 1-1.466 1.504l-.953-2.357a.411.411 0 0 1 .22-.476c.073-.025.147-.05.22-.05l2.443.426a3.805 3.805 0 0 1-.464.953Z\"\n  })));\n};\nexport default SvgKaasIcon;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgInstallKubernetes = function SvgInstallKubernetes(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 32\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#326DE6\",\n    d: \"M26.186 14.647c.195.89.231 1.78.147 2.67l-4.22-1.205c-.399-.09-.621-.49-.532-.892a.722.722 0 0 1 .177-.312l1.616-1.47a7.45 7.45 0 0 1-1.734-1.709l-1.525 1.083c-.31.178-.755.134-.977-.179a.405.405 0 0 1-.133-.312l-.267-4.504a8.71 8.71 0 0 1 1.529.316 7.392 7.392 0 0 1 .148-2.392 11.5 11.5 0 0 0-1.766-.332l-.044-.357v.045c-.134-.09-.178-.223-.222-.357 0-.49 0-.981.088-1.516v-.045c0-.089.045-.178.045-.267.044-.179.044-.357.09-.536V2.11c.044-.446-.312-.892-.756-.937-.266-.044-.533.09-.755.312a.882.882 0 0 0-.266.625v.223c0 .178.044.357.089.535.044.09.044.178.044.268v.044c.09.49.09.981.09 1.517-.045.133-.09.267-.223.356v.09l-.044.356c-.489.045-.978.134-1.51.223-2.088.446-3.998 1.56-5.464 3.122l-.267-.179H9.5c-.045 0-.09.045-.178.045a.63.63 0 0 1-.267-.09 8.2 8.2 0 0 1-1.11-1.025c-.044-.09-.133-.134-.178-.179-.133-.133-.222-.267-.355-.401-.044-.045-.089-.045-.133-.09l-.044-.044a1.058 1.058 0 0 0-.622-.223c-.267 0-.488.09-.622.312a.962.962 0 0 0 .178 1.25c.044 0 .044.044.044.044s.089.089.133.089c.133.09.31.178.488.268l.267.133c.444.268.888.536 1.244.892.08.082.16.236.14.365l.26.26c-.046.089-.09.133-.134.223-1.377 2.184-1.955 4.771-1.554 7.312l-.356.09c0 .044-.044.044-.044.044-.044.134-.178.223-.31.313a8.217 8.217 0 0 1-1.511.267c-.089 0-.178 0-.267.045-.177 0-.355.044-.533.044-.044 0-.088.045-.177.045-.03 0-.06.015-.09.045a.87.87 0 0 0-.71 1.025.825.825 0 0 0 .889.625c.088 0 .133 0 .221-.045.03 0 .044-.015.044-.045 0-.044.133 0 .178 0 .178-.044.356-.133.489-.178a.63.63 0 0 1 .266-.09h.044a7.884 7.884 0 0 1 1.466-.4H6.7c.133 0 .266.044.355.133.044 0 .044.045.044.045l.4-.045c.666 2.051 1.91 3.88 3.642 5.217.4.312.755.58 1.2.803l-.223.312c0 .045.045.045.045.045a.53.53 0 0 1 .044.445c-.177.446-.444.892-.71 1.294v.045c-.045.089-.09.133-.178.223-.089.089-.178.267-.31.445-.045.045-.045.09-.09.134 0 0 0 .045-.044.045a.92.92 0 0 0 .355 1.204.82.82 0 0 0 .31.09c.356 0 .667-.224.844-.536 0 0 0-.045.044-.045 0-.044.045-.089.09-.133.043-.179.132-.313.177-.49l.089-.269c.133-.49.355-.936.577-1.382a.69.69 0 0 1 .355-.268c.03 0 .045-.015.045-.044l.178-.357a10.42 10.42 0 0 0 3.864.713c.8 0 1.6-.089 2.4-.312.488-.089.977-.267 1.421-.401l.178.312c.03 0 .044.015.044.045a.693.693 0 0 1 .356.267c.222.446.444.892.577 1.383v.044l.089.268c.044.178.089.357.178.49.044.045.044.09.088.134 0 0 0 .045.045.045.177.312.488.535.843.535.133 0 .222-.044.356-.089.177-.09.355-.268.4-.49a1.143 1.143 0 0 0-.045-.67c0-.044-.045-.044-.045-.044 0-.045-.044-.09-.088-.134a1.608 1.608 0 0 0-.311-.446.79.79 0 0 0-.178-.223v-.09a5.285 5.285 0 0 1-.71-1.293.528.528 0 0 1 .044-.445c0-.045.044-.045.044-.045l-.133-.357c2.266-1.382 3.998-3.523 4.797-6.064l.356.045c.045 0 .045-.045.045-.045a.503.503 0 0 1 .355-.134h.044c.49.09.977.223 1.422.402h.044a.63.63 0 0 0 .267.089c.178.09.31.178.488.223.045 0 .09.044.178.044.03 0 .06.015.089.045.089.045.133.045.222.045.4 0 .755-.268.888-.625a1.05 1.05 0 0 0-.8-.936c-.044 0-.088 0-.088-.045 0-.044-.09-.044-.178-.044-.178-.045-.355-.045-.533-.045-.089 0-.178 0-.267-.045h-.044a8.958 8.958 0 0 1-1.51-.267.537.537 0 0 1-.311-.313l-.356-.089c.144-1.049.113-2.127-.046-3.188a7.442 7.442 0 0 1-2.232-.105Zm-9.137.395h1.333l.844 1.07-.31 1.294-1.2.58-1.2-.58-.31-1.293.843-1.07Zm-1.332-7.09.888-.178-.222 4.46c0 .4-.356.713-.755.713-.133 0-.222-.045-.356-.09l-3.687-2.63c1.155-1.115 2.576-1.918 4.131-2.275Zm-5.42 3.925 3.287 2.942c.31.268.356.714.089 1.026-.089.134-.178.178-.355.223l-4.309 1.249a9.418 9.418 0 0 1 1.288-5.44Zm4.353 7.803-1.688 4.102c-1.554-1.025-2.798-2.586-3.42-4.37l4.397-.758c.355 0 .71.223.755.58a.53.53 0 0 1-.045.446h.001Zm4.975 5.261a8.956 8.956 0 0 1-1.91.223c-.932 0-1.91-.178-2.798-.446l2.176-3.968c.222-.268.578-.357.889-.179.133.09.222.179.355.313l2.133 3.879c-.267.044-.534.09-.845.178Zm5.42-3.88a8.498 8.498 0 0 1-2.665 2.676l-1.733-4.191a.726.726 0 0 1 .4-.848c.133-.044.266-.09.4-.09l4.441.76c-.222.623-.488 1.203-.844 1.694Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#344054\",\n    d: \"M27.655 13.757c3.528 0 6.388-2.85 6.388-6.366 0-3.516-2.86-6.367-6.388-6.367s-6.388 2.85-6.388 6.367c0 3.516 2.86 6.366 6.388 6.366Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M29.5 9.79h-3.63a.778.778 0 0 1-.78-.775V7.98a.259.259 0 0 1 .52 0v1.035c0 .142.116.258.26.258h3.63c.144 0 .26-.116.26-.258V7.98a.259.259 0 0 1 .52 0v1.035a.778.778 0 0 1-.78.775Z\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M29.165 6.505a.26.26 0 0 0-.367 0l-.854.85V4.879a.259.259 0 0 0-.519 0v2.478l-.854-.851a.26.26 0 0 0-.367 0 .258.258 0 0 0 0 .366L27.5 8.163a.276.276 0 0 0 .04.033l.018.009.027.014.026.008.023.007a.268.268 0 0 0 .101 0l.024-.007.025-.008c.01-.004.018-.01.027-.014l.018-.01a.276.276 0 0 0 .04-.032l1.296-1.292a.259.259 0 0 0 0-.366Z\"\n  })));\n};\nexport default SvgInstallKubernetes;","import { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport Docker from '@/assets/ico/vendor/docker.svg?c';\nimport Kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport Azure from '@/assets/ico/vendor/azure.svg?c';\nimport KaaS from '@/assets/ico/vendor/kaas-icon.svg?c';\nimport InstallK8s from '@/assets/ico/vendor/install-kubernetes.svg?c';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport type EnvironmentOptionValue =\n  | 'dockerStandalone'\n  | 'dockerSwarm'\n  | 'kubernetes'\n  | 'aci'\n  | 'kaas'\n  | 'k8sInstall';\n\nexport interface EnvironmentOption\n  extends BoxSelectorOption<EnvironmentOptionValue> {\n  id: EnvironmentOptionValue;\n  value: EnvironmentOptionValue;\n}\n\nexport const existingEnvironmentTypes: EnvironmentOption[] = [\n  {\n    id: 'dockerStandalone',\n    value: 'dockerStandalone',\n    label: 'Docker Standalone',\n    icon: Docker,\n    iconType: 'logo',\n    description: 'Connect to Docker Standalone via URL/IP, API or Socket',\n  },\n  {\n    id: 'dockerSwarm',\n    value: 'dockerSwarm',\n    label: 'Docker Swarm',\n    icon: Docker,\n    iconType: 'logo',\n    description: 'Connect to Docker Swarm via URL/IP, API or Socket',\n  },\n  {\n    id: 'kubernetes',\n    value: 'kubernetes',\n    label: 'Kubernetes',\n    icon: Kubernetes,\n    iconType: 'logo',\n    description: 'Connect to a Kubernetes environment via URL/IP',\n  },\n  {\n    id: 'aci',\n    value: 'aci',\n    label: 'ACI',\n    description: 'Connect to ACI environment via API',\n    iconType: 'logo',\n    icon: Azure,\n  },\n];\n\nexport const newEnvironmentTypes: EnvironmentOption[] = [\n  {\n    id: 'kaas',\n    value: 'kaas',\n    label: 'Provision KaaS Cluster',\n    description:\n      \"Provision a Kubernetes cluster via a cloud provider's Kubernetes as a Service\",\n    icon: KaaS,\n    iconType: 'logo',\n    feature: FeatureId.KAAS_PROVISIONING,\n    disabledWhenLimited: true,\n  },\n  {\n    id: 'k8sInstall',\n    value: 'k8sInstall',\n    label: 'Create Kubernetes cluster',\n    description: 'Create a Kubernetes cluster on existing infrastructure',\n    icon: InstallK8s,\n    iconType: 'logo',\n    feature: FeatureId.K8SINSTALL,\n    disabledWhenLimited: true,\n  },\n];\n\nexport const environmentTypes = [\n  ...existingEnvironmentTypes,\n  ...newEnvironmentTypes,\n];\n\nexport const formTitles: Record<EnvironmentOptionValue, string> = {\n  dockerStandalone: 'Connect to your Docker Standalone environment',\n  dockerSwarm: 'Connect to your Docker Swarm environment',\n  kubernetes: 'Connect to your Kubernetes environment',\n  aci: 'Connect to your ACI environment',\n  kaas: 'Provision a KaaS environment',\n  k8sInstall: 'Create a Kubernetes cluster',\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"stepperWrapper\":\"app-react-components-Stepper-Stepper-module__stepper-wrapper\",\"stepWrapper\":\"app-react-components-Stepper-Stepper-module__step-wrapper\",\"step\":\"app-react-components-Stepper-Stepper-module__step\",\"stepName\":\"app-react-components-Stepper-Stepper-module__step-name\",\"active\":\"app-react-components-Stepper-Stepper-module__active\",\"stepCounter\":\"app-react-components-Stepper-Stepper-module__step-counter\",\"completed\":\"app-react-components-Stepper-Stepper-module__completed\"};","import clsx from 'clsx';\n\nimport styles from './Stepper.module.css';\n\nexport interface Step {\n  label: string;\n}\n\ninterface Props {\n  currentStep: number;\n  steps: Step[];\n}\n\nexport function Stepper({ currentStep, steps }: Props) {\n  return (\n    <div className={styles.stepperWrapper}>\n      {steps.map((step, index) => (\n        <div\n          key={step.label}\n          className={clsx(styles.stepWrapper, {\n            [styles.active]: index + 1 === currentStep,\n            [styles.completed]: index + 1 < currentStep,\n          })}\n        >\n          <div className={styles.step}>\n            <div className={styles.stepCounter}>{index + 1}</div>\n            <div className={styles.stepName}>{step.label}</div>\n          </div>\n        </div>\n      ))}\n    </div>\n  );\n}\n","import { useQueryClient, useMutation, MutationFunction } from 'react-query';\n\nimport {\n  createRemoteEnvironment,\n  createLocalDockerEnvironment,\n  createAzureEnvironment,\n  createAgentEnvironment,\n  createEdgeAgentEnvironment,\n  createLocalKubernetesEnvironment,\n} from '../environment.service/create';\n\nexport function useCreateAzureEnvironmentMutation() {\n  return useGenericCreationMutation(createAzureEnvironment);\n}\n\nexport function useCreateLocalDockerEnvironmentMutation() {\n  return useGenericCreationMutation(createLocalDockerEnvironment);\n}\n\nexport function useCreateLocalKubernetesEnvironmentMutation() {\n  return useGenericCreationMutation(createLocalKubernetesEnvironment);\n}\n\nexport function useCreateRemoteEnvironmentMutation(\n  creationType: Parameters<typeof createRemoteEnvironment>[0]['creationType']\n) {\n  return useGenericCreationMutation(\n    (\n      params: Omit<\n        Parameters<typeof createRemoteEnvironment>[0],\n        'creationType'\n      >\n    ) => createRemoteEnvironment({ creationType, ...params })\n  );\n}\n\nexport function useCreateAgentEnvironmentMutation() {\n  return useGenericCreationMutation(createAgentEnvironment);\n}\n\nexport function useCreateEdgeAgentEnvironmentMutation() {\n  return useGenericCreationMutation(createEdgeAgentEnvironment);\n}\n\nfunction useGenericCreationMutation<TData = unknown, TVariables = void>(\n  mutation: MutationFunction<TData, TVariables>\n) {\n  const queryClient = useQueryClient();\n\n  return useMutation(mutation, {\n    onSuccess() {\n      return queryClient.invalidateQueries(['environments']);\n    },\n    meta: {\n      error: {\n        title: 'Failure',\n        message: 'Unable to create environment',\n      },\n    },\n  });\n}\n","import { useField } from 'formik';\nimport { PropsWithChildren } from 'react';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { TagSelector } from '@@/TagSelector';\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { GroupField } from './GroupsField';\n\nexport function MetadataFieldset({ children }: PropsWithChildren<unknown>) {\n  const [tagProps, , tagHelpers] = useField('meta.tagIds');\n\n  const { isPureAdmin } = useCurrentUser();\n\n  return (\n    <FormSection title=\"Metadata\">\n      {children}\n\n      <GroupField />\n\n      <TagSelector\n        value={tagProps.value}\n        allowCreate={isPureAdmin}\n        onChange={(value) => tagHelpers.setValue(value)}\n      />\n    </FormSection>\n  );\n}\n","import { PropsWithChildren } from 'react';\n\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { MetadataFieldset } from './MetadataFieldset';\n\nexport function MoreSettingsSection({ children }: PropsWithChildren<unknown>) {\n  return (\n    <FormSection title=\"More settings\" className=\"ml-0\" isFoldable>\n      <div className=\"ml-8\">\n        {children}\n\n        <MetadataFieldset />\n      </div>\n    </FormSection>\n  );\n}\n","import { useField } from 'formik';\nimport { string } from 'yup';\n\nimport { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport { useDebounce } from '@/react/hooks/useDebounce';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { useCachedValidation } from '@@/form-components/useCachedTest';\n\ninterface Props {\n  readonly?: boolean;\n  tooltip?: string;\n  placeholder?: string;\n}\n\nexport function NameField({\n  readonly,\n  tooltip,\n  placeholder = 'e.g. docker-prod01 / kubernetes-cluster01',\n}: Props) {\n  const [{ value }, meta, { setValue }] = useField('name');\n\n  const id = 'name-input';\n\n  const [debouncedValue, setDebouncedValue] = useDebounce(value, setValue);\n\n  return (\n    <FormControl\n      label=\"Name\"\n      required\n      errors={meta.error}\n      inputId={id}\n      tooltip={tooltip}\n    >\n      <Input\n        id={id}\n        name=\"name\"\n        onChange={(e) => setDebouncedValue(e.target.value)}\n        value={debouncedValue}\n        data-cy=\"endpointCreate-nameInput\"\n        placeholder={placeholder}\n        readOnly={readonly}\n      />\n    </FormControl>\n  );\n}\n\nexport async function isNameUnique(name = '') {\n  if (!name) {\n    return true;\n  }\n\n  try {\n    const result = await getEnvironments({\n      limit: 1,\n      query: { name, excludeSnapshots: true },\n    });\n    return (\n      result.totalCount === 0 || result.value.every((e) => e.Name !== name)\n    );\n  } catch (e) {\n    // if backend fails to respond, assume name is unique, name validation happens also in the backend\n    return true;\n  }\n}\n\nexport function useNameValidation() {\n  const uniquenessTest = useCachedValidation(isNameUnique);\n\n  return string()\n    .required('Name is required')\n    .test('unique-name', 'Name should be unique', uniquenessTest);\n}\n","import { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { PortainerTunnelAddrField } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { PortainerUrlField } from '@/react/portainer/common/PortainerUrlField';\n\nimport { NameField } from '../../NameField';\n\ninterface EdgeAgentFormProps {\n  readonly?: boolean;\n  asyncMode?: boolean;\n}\n\nexport function EdgeAgentFieldset({ readonly, asyncMode }: EdgeAgentFormProps) {\n  return (\n    <>\n      <NameField readonly={readonly} />\n      <PortainerUrlField\n        fieldName=\"portainerUrl\"\n        readonly={readonly}\n        required\n      />\n      {isBE && !asyncMode && (\n        <PortainerTunnelAddrField\n          fieldName=\"tunnelServerAddr\"\n          readonly={readonly}\n          required\n        />\n      )}\n    </>\n  );\n}\n","import { object, number, array, SchemaOf } from 'yup';\n\nimport { EnvironmentMetadata } from '@/react/portainer/environments/environment.service/create';\n\nexport function metadataValidation(): SchemaOf<EnvironmentMetadata> {\n  return object({\n    groupId: number(),\n    tagIds: array().of(number()).default([]),\n  });\n}\n","import { Formik, Form } from 'formik';\nimport { Plug2 } from 'lucide-react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { useCreateEdgeAgentEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { Settings } from '@/react/portainer/settings/types';\nimport { EdgeCheckinIntervalField } from '@/react/edge/components/EdgeCheckInIntervalField';\nimport {\n  EdgeAsyncIntervalsForm,\n  EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n} from '@/react/edge/components/EdgeAsyncIntervalsForm';\nimport { useSettings } from '@/react/portainer/settings/queries';\nimport { buildDefaultValue as buildTunnelDefaultValue } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { buildDefaultValue as buildApiUrlDefaultValue } from '@/react/portainer/common/PortainerUrlField';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\n\nimport { MoreSettingsSection } from '../../MoreSettingsSection';\n\nimport { EdgeAgentFieldset } from './EdgeAgentFieldset';\nimport { useValidationSchema } from './EdgeAgentForm.validation';\nimport { FormValues } from './types';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n  readonly: boolean;\n  asyncMode: boolean;\n}\n\nexport function EdgeAgentForm({ onCreate, readonly, asyncMode }: Props) {\n  const settingsQuery = useSettings();\n\n  const createMutation = useCreateEdgeAgentEnvironmentMutation();\n  const validation = useValidationSchema();\n\n  if (!settingsQuery.data) {\n    return null;\n  }\n\n  const settings = settingsQuery.data;\n\n  const initialValues = buildInitialValues(settings);\n\n  return (\n    <Formik<FormValues>\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validateOnMount\n      validationSchema={validation}\n    >\n      {({ isValid, setFieldValue, values }) => (\n        <Form>\n          <EdgeAgentFieldset readonly={readonly} asyncMode={asyncMode} />\n\n          <MoreSettingsSection>\n            <FormSection title=\"Check-in Intervals\">\n              {asyncMode ? (\n                <EdgeAsyncIntervalsForm\n                  values={values.edge}\n                  readonly={readonly}\n                  onChange={(values) => setFieldValue('edge', values)}\n                />\n              ) : (\n                <EdgeCheckinIntervalField\n                  readonly={readonly}\n                  onChange={(value) => setFieldValue('pollFrequency', value)}\n                  value={values.pollFrequency}\n                />\n              )}\n            </FormSection>\n          </MoreSettingsSection>\n\n          {!readonly && (\n            <div className=\"row\">\n              <div className=\"col-sm-12\">\n                <LoadingButton\n                  className=\"vertical-center\"\n                  isLoading={createMutation.isLoading}\n                  loadingText=\"Creating environment...\"\n                  disabled={!isValid}\n                  icon={Plug2}\n                >\n                  Create\n                </LoadingButton>\n              </div>\n            </div>\n          )}\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit(values: typeof initialValues) {\n    createMutation.mutate(\n      {\n        ...values,\n        edge: {\n          ...values.edge,\n          asyncMode,\n        },\n      },\n      {\n        onSuccess(environment) {\n          onCreate(environment);\n        },\n      }\n    );\n  }\n}\n\nexport function buildInitialValues(settings: Settings): FormValues {\n  return {\n    name: '',\n    portainerUrl: settings.EdgePortainerUrl || buildApiUrlDefaultValue(),\n    tunnelServerAddr:\n      settings.Edge.TunnelServerAddress || buildTunnelDefaultValue(),\n    pollFrequency: 0,\n    meta: {\n      groupId: 1,\n      tagIds: [],\n    },\n    edge: {\n      CommandInterval: EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n      PingInterval: EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n      SnapshotInterval: EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n    },\n  };\n}\n","import { number, object, SchemaOf, string } from 'yup';\n\nimport {\n  edgeAsyncIntervalsValidation,\n  EdgeAsyncIntervalsValues,\n} from '@/react/edge/components/EdgeAsyncIntervalsForm';\nimport { validation as urlValidation } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { metadataValidation } from '../../MetadataFieldset/validation';\nimport { useNameValidation } from '../../NameField';\n\nimport { FormValues } from './types';\n\nexport function useValidationSchema(): SchemaOf<FormValues> {\n  const nameValidation = useNameValidation();\n\n  return object().shape({\n    name: nameValidation,\n    portainerUrl: urlValidation(),\n    tunnelServerAddr: string(),\n    pollFrequency: number().required(),\n    meta: metadataValidation(),\n    edge: isBE\n      ? edgeAsyncIntervalsValidation()\n      : (null as unknown as SchemaOf<EdgeAsyncIntervalsValues>),\n  });\n}\n","import { v4 as uuid } from 'uuid';\nimport { useReducer, useState } from 'react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { EdgeScriptForm } from '@/react/edge/components/EdgeScriptForm';\nimport { CommandTab } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { OS, EdgeInfo } from '@/react/edge/components/EdgeScriptForm/types';\nimport { EdgeKeyDisplay } from '@/react/portainer/environments/ItemView/EdgeKeyDisplay';\n\nimport { Button } from '@@/buttons';\n\nimport { EdgeAgentForm } from './EdgeAgentForm';\n\ninterface Props {\n  onCreate: (environment: Environment) => void;\n  commands: CommandTab[] | Partial<Record<OS, CommandTab[]>>;\n  asyncMode?: boolean;\n}\n\nexport function EdgeAgentTab({ onCreate, commands, asyncMode = false }: Props) {\n  const [edgeInfo, setEdgeInfo] = useState<EdgeInfo>();\n  const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n\n  return (\n    <>\n      <EdgeAgentForm\n        onCreate={handleCreate}\n        readonly={!!edgeInfo}\n        key={formKey}\n        asyncMode={asyncMode}\n      />\n\n      {edgeInfo && (\n        <>\n          <div className=\"clear-both\" />\n\n          <hr />\n\n          <EdgeKeyDisplay edgeKey={edgeInfo.key} />\n\n          <hr />\n\n          <EdgeScriptForm\n            edgeInfo={edgeInfo}\n            commands={commands}\n            asyncMode={asyncMode}\n          />\n\n          <hr />\n\n          <div className=\"row\">\n            <div className=\"flex justify-end\">\n              <Button color=\"primary\" type=\"reset\" onClick={handleReset}>\n                Add another environment\n              </Button>\n            </div>\n          </div>\n        </>\n      )}\n    </>\n  );\n\n  function handleCreate(environment: Environment) {\n    setEdgeInfo({ key: environment.EdgeKey, id: environment.EdgeID || uuid() });\n    onCreate(environment);\n  }\n\n  function handleReset() {\n    setEdgeInfo(undefined);\n    clearForm();\n  }\n}\n","import { Field, useField } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nexport function EnvironmentUrlField() {\n  const [, meta] = useField('environmentUrl');\n\n  return (\n    <FormControl\n      label=\"Environment address\"\n      errors={meta.error}\n      required\n      inputId=\"environment-url-field\"\n      tooltip=\"<HOST>:<PORT> or <IP>:<PORT>\"\n    >\n      <Field\n        id=\"environment-url-field\"\n        name=\"environmentUrl\"\n        as={Input}\n        placeholder=\"e.g. 10.0.0.10:9001 or tasks.portainer_agent:9001\"\n        data-cy=\"endpointCreate-endpointUrlAgentInput\"\n      />\n    </FormControl>\n  );\n}\n","import { object, SchemaOf, string } from 'yup';\n\nimport { CreateAgentEnvironmentValues } from '@/react/portainer/environments/environment.service/create';\n\nimport { metadataValidation } from '../MetadataFieldset/validation';\nimport { useNameValidation } from '../NameField';\n\nexport function useValidation(): SchemaOf<CreateAgentEnvironmentValues> {\n  return object({\n    name: useNameValidation(),\n    environmentUrl: environmentValidation(),\n    meta: metadataValidation(),\n  });\n}\n\nfunction environmentValidation() {\n  return string()\n    .required('This field is required')\n    .test(\n      'address',\n      'Environment address must be of the form <IP>:<PORT> or <HOST>:<PORT>.',\n      (environmentUrl) => validateAddress(environmentUrl)\n    );\n}\n\nexport function validateAddress(address: string | undefined) {\n  if (typeof address === 'undefined') {\n    return false;\n  }\n\n  if (address.indexOf('://') > -1) {\n    return false;\n  }\n\n  const [host, port] = address.split(':');\n\n  if (\n    host.length === 0 ||\n    Number.isNaN(parseInt(port, 10)) ||\n    port.match(/^[0-9]+$/) == null ||\n    parseInt(port, 10) < 1 ||\n    parseInt(port, 10) > 65535\n  ) {\n    return false;\n  }\n\n  return true;\n}\n","import { Form, Formik } from 'formik';\nimport { useReducer } from 'react';\nimport { Plug2 } from 'lucide-react';\n\nimport { useCreateAgentEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { CreateAgentEnvironmentValues } from '@/react/portainer/environments/environment.service/create';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\n\nimport { NameField } from '../NameField';\nimport { MoreSettingsSection } from '../MoreSettingsSection';\n\nimport { EnvironmentUrlField } from './EnvironmentUrlField';\nimport { useValidation } from './AgentForm.validation';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n}\n\nconst initialValues: CreateAgentEnvironmentValues = {\n  environmentUrl: '',\n  name: '',\n  meta: {\n    groupId: 1,\n    tagIds: [],\n  },\n};\n\nexport function AgentForm({ onCreate }: Props) {\n  const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n\n  const mutation = useCreateAgentEnvironmentMutation();\n  const validation = useValidation();\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      validateOnMount\n      key={formKey}\n    >\n      {({ isValid, dirty }) => (\n        <Form>\n          <NameField />\n          <EnvironmentUrlField />\n\n          <MoreSettingsSection />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                className=\"wizard-connect-button vertical-center\"\n                loadingText=\"Connecting environment...\"\n                isLoading={mutation.isLoading}\n                disabled={!dirty || !isValid}\n                icon={Plug2}\n              >\n                Connect\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit(values: CreateAgentEnvironmentValues) {\n    mutation.mutate(values, {\n      onSuccess(environment) {\n        notifySuccess('Environment created', environment.Name);\n        clearForm();\n        onCreate(environment);\n      },\n    });\n  }\n}\n","import { useState } from 'react';\n\nimport { useAgentDetails } from '@/react/portainer/environments/queries/useAgentDetails';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\nimport { Code } from '@@/Code';\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nconst deploymentsStandalone = [\n  {\n    id: 'linux',\n    label: 'Linux & Windows WSL',\n    command: linuxStandaloneCommand,\n  },\n  {\n    id: 'win',\n    label: 'Windows WCS',\n    command: winStandaloneCommand,\n  },\n];\n\nconst deploymentsSwarm = [\n  {\n    id: 'linux',\n    label: 'Linux & Windows WSL',\n    command: linuxSwarmCommand,\n  },\n  {\n    id: 'win',\n    label: 'Windows WCS',\n    command: winSwarmCommand,\n  },\n];\n\ninterface Props {\n  isDockerStandalone?: boolean;\n}\n\nexport function DeploymentScripts({ isDockerStandalone }: Props) {\n  const deployments = isDockerStandalone\n    ? deploymentsStandalone\n    : deploymentsSwarm;\n  const [deployType, setDeployType] = useState(deployments[0].id);\n\n  const agentDetailsQuery = useAgentDetails();\n\n  if (!agentDetailsQuery) {\n    return null;\n  }\n\n  const { agentVersion, agentSecret } = agentDetailsQuery;\n\n  const options = deployments.map((c) => {\n    const code = c.command(agentVersion, agentSecret);\n\n    return {\n      id: c.id,\n      label: c.label,\n      children: <DeployCode code={code} />,\n    };\n  });\n\n  return (\n    <NavContainer>\n      <NavTabs\n        options={options}\n        onSelect={(id: string) => setDeployType(id)}\n        selectedId={deployType}\n      />\n    </NavContainer>\n  );\n}\n\ninterface DeployCodeProps {\n  code: string;\n}\n\nfunction DeployCode({ code }: DeployCodeProps) {\n  return (\n    <>\n      <div className=\"code-script\">\n        <Code>{code}</Code>\n      </div>\n      <div className=\"mt-2\">\n        <CopyButton copyText={code}>Copy command</CopyButton>\n      </div>\n    </>\n  );\n}\n\nfunction linuxStandaloneCommand(agentVersion: string, agentSecret: string) {\n  const secret =\n    agentSecret === '' ? '' : `\\\\\\n  -e AGENT_SECRET=${agentSecret} `;\n\n  return `docker run -d \\\\\n  -p 9001:9001 ${secret}\\\\\n  --name portainer_agent \\\\\n  --restart=always \\\\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\\\n  -v /var/lib/docker/volumes:/var/lib/docker/volumes \\\\\n  -v /:/host \\\\\n  portainer/agent:${agentVersion}\n`;\n}\n\nfunction linuxSwarmCommand(agentVersion: string, agentSecret: string) {\n  const secret =\n    agentSecret === '' ? '' : `\\\\\\n  -e AGENT_SECRET=${agentSecret} `;\n\n  return `docker network create \\\\\n--driver overlay \\\\\n  portainer_agent_network\n\ndocker service create \\\\\n  --name portainer_agent \\\\\n  --network portainer_agent_network \\\\\n  -p 9001:9001/tcp ${secret}\\\\\n  --mode global \\\\\n  --constraint 'node.platform.os == linux' \\\\\n  --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \\\\\n  --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes \\\\\n  --mount type=bind,src=//,dst=/host \\\\\n  portainer/agent:${agentVersion}\n`;\n}\n\nfunction winStandaloneCommand(agentVersion: string, agentSecret: string) {\n  const secret =\n    agentSecret === '' ? '' : `\\\\\\n  -e AGENT_SECRET=${agentSecret} `;\n\n  return `docker run -d \\\\\n  -p 9001:9001 ${secret}\\\\\n  --name portainer_agent \\\\\n  --restart=always \\\\\n  -v C:\\\\:C:\\\\host \\\\\n  -v C:\\\\ProgramData\\\\docker\\\\volumes:C:\\\\ProgramData\\\\docker\\\\volumes \\\\\n  -v \\\\\\\\.\\\\pipe\\\\docker_engine:\\\\\\\\.\\\\pipe\\\\docker_engine \\\\\n  portainer/agent:${agentVersion}\n`;\n}\n\nfunction winSwarmCommand(agentVersion: string, agentSecret: string) {\n  const secret =\n    agentSecret === '' ? '' : `\\\\\\n  -e AGENT_SECRET=${agentSecret} `;\n\n  return `docker network create \\\\\n--driver overlay \\\\\n  portainer_agent_network && \\\\\ndocker service create \\\\\n  --name portainer_agent \\\\\n  --network portainer_agent_network \\\\\n  -p 9001:9001/tcp ${secret}\\\\\n  --mode global \\\\\n  --constraint 'node.platform.os == windows' \\\\\n  --mount type=npipe,src=\\\\\\\\.\\\\pipe\\\\docker_engine,dst=\\\\\\\\.\\\\pipe\\\\docker_engine \\\\\n  --mount type=bind,src=C:\\\\ProgramData\\\\docker\\\\volumes,dst=C:\\\\ProgramData\\\\docker\\\\volumes \\\\\n  portainer/agent:${agentVersion}\n`;\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { AgentForm } from '../../shared/AgentForm/AgentForm';\n\nimport { DeploymentScripts } from './DeploymentScripts';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n  isDockerStandalone?: boolean;\n}\n\nexport function AgentTab({ onCreate, isDockerStandalone }: Props) {\n  return (\n    <>\n      <DeploymentScripts isDockerStandalone={isDockerStandalone} />\n\n      <div className=\"mt-5\">\n        <AgentForm onCreate={onCreate} />\n      </div>\n    </>\n  );\n}\n","import { Field, Form, Formik } from 'formik';\nimport { useReducer } from 'react';\nimport { Plug2 } from 'lucide-react';\n\nimport { useCreateRemoteEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n  Environment,\n  EnvironmentCreationTypes,\n} from '@/react/portainer/environments/types';\nimport { TLSFieldset } from '@/react/components/TLSFieldset/TLSFieldset';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { NameField } from '../../shared/NameField';\nimport { MoreSettingsSection } from '../../shared/MoreSettingsSection';\n\nimport { useValidation } from './APIForm.validation';\nimport { FormValues } from './types';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n}\n\nexport function APIForm({ onCreate }: Props) {\n  const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n  const initialValues: FormValues = {\n    url: '',\n    name: '',\n    tlsConfig: {\n      tls: false,\n      skipVerify: false,\n    },\n    meta: {\n      groupId: 1,\n      tagIds: [],\n    },\n  };\n\n  const mutation = useCreateRemoteEnvironmentMutation(\n    EnvironmentCreationTypes.LocalDockerEnvironment\n  );\n\n  const validation = useValidation();\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      validateOnMount\n      key={formKey}\n    >\n      {({ values, errors, setFieldValue, isValid, dirty }) => (\n        <Form>\n          <NameField />\n\n          <FormControl\n            inputId=\"url-field\"\n            label=\"Docker API URL\"\n            required\n            tooltip=\"URL or IP address of a Docker host. The Docker API must be exposed over a TCP port. Please refer to the Docker documentation to configure it.\"\n          >\n            <Field\n              as={Input}\n              id=\"url-field\"\n              name=\"url\"\n              placeholder=\"e.g. 10.0.0.10:2375 or mydocker.mydomain.com:2375\"\n            />\n          </FormControl>\n\n          <TLSFieldset\n            values={values.tlsConfig}\n            onChange={(value) =>\n              Object.entries(value).forEach(([key, value]) =>\n                setFieldValue(`tlsConfig.${key}`, value)\n              )\n            }\n            errors={errors.tlsConfig}\n          />\n\n          <MoreSettingsSection />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                className=\"wizard-connect-button vertical-center\"\n                loadingText=\"Connecting environment...\"\n                isLoading={mutation.isLoading}\n                disabled={!dirty || !isValid}\n                icon={Plug2}\n              >\n                Connect\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit(values: FormValues) {\n    const tls = getTlsValues();\n\n    mutation.mutate(\n      {\n        name: values.name,\n        url: values.url,\n        options: {\n          tls,\n          meta: values.meta,\n        },\n      },\n      {\n        onSuccess(environment) {\n          notifySuccess('Environment created', environment.Name);\n          clearForm();\n          onCreate(environment);\n        },\n      }\n    );\n    function getTlsValues() {\n      if (!values.tlsConfig.tls) {\n        return undefined;\n      }\n\n      return {\n        skipVerify: values.tlsConfig.skipVerify,\n        ...getCertFiles(),\n      };\n\n      function getCertFiles() {\n        if (values.tlsConfig.skipVerify) {\n          return {};\n        }\n\n        return {\n          caCertFile: values.tlsConfig.caCertFile,\n          certFile: values.tlsConfig.certFile,\n          keyFile: values.tlsConfig.keyFile,\n        };\n      }\n    }\n  }\n}\n","import { object, SchemaOf, string } from 'yup';\n\nimport { tlsConfigValidation } from '@/react/components/TLSFieldset/TLSFieldset';\n\nimport { metadataValidation } from '../../shared/MetadataFieldset/validation';\nimport { useNameValidation } from '../../shared/NameField';\n\nimport { FormValues } from './types';\n\nexport function useValidation(): SchemaOf<FormValues> {\n  return object({\n    name: useNameValidation(),\n    url: string().required('This field is required.'),\n    tlsConfig: tlsConfigValidation(),\n    meta: metadataValidation(),\n  });\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { APIForm } from './APIForm';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n}\n\nexport function APITab({ onCreate }: Props) {\n  return (\n    <div className=\"mt-5\">\n      <APIForm onCreate={onCreate} />\n    </div>\n  );\n}\n","import { useState } from 'react';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\nimport { Code } from '@@/Code';\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nconst deployments = [\n  {\n    id: 'linux',\n    label: 'Linux',\n    command: `-v \"/var/run/docker.sock:/var/run/docker.sock\"`,\n  },\n  {\n    id: 'win',\n    label: 'Windows',\n    command: '-v \\\\.\\\\pipe\\\\docker_engine:\\\\.\\\\pipe\\\\docker_engine',\n  },\n];\n\nexport function DeploymentScripts() {\n  const [deployType, setDeployType] = useState(deployments[0].id);\n\n  const options = deployments.map((c) => ({\n    id: c.id,\n    label: c.label,\n    children: <DeployCode code={c.command} />,\n  }));\n\n  return (\n    <NavContainer>\n      <NavTabs\n        options={options}\n        onSelect={(id: string) => setDeployType(id)}\n        selectedId={deployType}\n      />\n    </NavContainer>\n  );\n}\n\ninterface DeployCodeProps {\n  code: string;\n}\n\nfunction DeployCode({ code }: DeployCodeProps) {\n  return (\n    <>\n      <span className=\"text-muted small\">\n        When using the socket, ensure that you have started the Portainer\n        container with the following Docker flag:\n      </span>\n\n      <Code>{code}</Code>\n      <div className=\"mt-2\">\n        <CopyButton copyText={code}>Copy command</CopyButton>\n      </div>\n    </>\n  );\n}\n","import { Field, Form, Formik, useFormikContext } from 'formik';\nimport { useReducer } from 'react';\nimport { Plug2 } from 'lucide-react';\n\nimport { useCreateLocalDockerEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { Environment } from '@/react/portainer/environments/types';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { NameField } from '../../shared/NameField';\nimport { MoreSettingsSection } from '../../shared/MoreSettingsSection';\n\nimport { useValidation } from './SocketForm.validation';\nimport { FormValues } from './types';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n}\n\nexport function SocketForm({ onCreate }: Props) {\n  const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n  const initialValues: FormValues = {\n    name: '',\n    socketPath: '',\n    overridePath: false,\n    meta: { groupId: 1, tagIds: [] },\n  };\n\n  const mutation = useCreateLocalDockerEnvironmentMutation();\n  const validation = useValidation();\n\n  return (\n    <Formik\n      initialValues={initialValues}\n      onSubmit={handleSubmit}\n      validationSchema={validation}\n      validateOnMount\n      key={formKey}\n    >\n      {({ isValid, dirty }) => (\n        <Form>\n          <NameField />\n\n          <OverrideSocketFieldset />\n\n          <MoreSettingsSection />\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                className=\"wizard-connect-button vertical-center\"\n                loadingText=\"Connecting environment...\"\n                isLoading={mutation.isLoading}\n                disabled={!dirty || !isValid}\n                icon={Plug2}\n              >\n                Connect\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n\n  function handleSubmit(values: FormValues) {\n    mutation.mutate(\n      {\n        name: values.name,\n        socketPath: values.overridePath ? values.socketPath : '',\n        meta: values.meta,\n      },\n      {\n        onSuccess(environment) {\n          notifySuccess('Environment created', environment.Name);\n          clearForm();\n          onCreate(environment);\n        },\n      }\n    );\n  }\n}\n\nfunction OverrideSocketFieldset() {\n  const { values, setFieldValue, errors } = useFormikContext<FormValues>();\n\n  return (\n    <>\n      <div className=\"form-group\">\n        <div className=\"col-sm-12\">\n          <SwitchField\n            checked={values.overridePath}\n            onChange={(checked) => setFieldValue('overridePath', checked)}\n            label=\"Override default socket path\"\n            labelClass=\"col-sm-3 col-lg-2\"\n          />\n        </div>\n      </div>\n      {values.overridePath && (\n        <FormControl\n          label=\"Socket Path\"\n          tooltip=\"Path to the Docker socket. Remember to bind-mount the socket, see the important notice above for more information.\"\n          errors={errors.socketPath}\n        >\n          <Field\n            name=\"socketPath\"\n            as={Input}\n            placeholder=\"e.g. /var/run/docker.sock (on Linux) or //./pipe/docker_engine (on Windows)\"\n          />\n        </FormControl>\n      )}\n    </>\n  );\n}\n","import { boolean, object, SchemaOf, string } from 'yup';\n\nimport { metadataValidation } from '../../shared/MetadataFieldset/validation';\nimport { useNameValidation } from '../../shared/NameField';\n\nimport { FormValues } from './types';\n\nexport function useValidation(): SchemaOf<FormValues> {\n  return object({\n    name: useNameValidation(),\n    meta: metadataValidation(),\n    overridePath: boolean().default(false),\n    socketPath: string()\n      .default('')\n      .when('overridePath', (overridePath, schema) =>\n        overridePath\n          ? schema.required(\n              'Socket Path is required when override path is enabled'\n            )\n          : schema\n      ),\n  });\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { DeploymentScripts } from '../APITab/DeploymentScripts';\n\nimport { SocketForm } from './SocketForm';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n}\n\nexport function SocketTab({ onCreate }: Props) {\n  return (\n    <>\n      <DeploymentScripts />\n\n      <div className=\"mt-5\">\n        <SocketForm onCreate={onCreate} />\n      </div>\n    </>\n  );\n}\n","import { useState } from 'react';\nimport { Zap, Network, Plug2 } from 'lucide-react';\nimport _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { commandsTabs } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport EdgeAgentStandardIcon from '@/react/edge/components/edge-agent-standard.svg?c';\nimport EdgeAgentAsyncIcon from '@/react/edge/components/edge-agent-async.svg?c';\n\nimport { BoxSelector, type BoxSelectorOption } from '@@/BoxSelector';\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nimport { AnalyticsStateKey } from '../types';\nimport { EdgeAgentTab } from '../shared/EdgeAgentTab';\n\nimport { AgentTab } from './AgentTab';\nimport { APITab } from './APITab';\nimport { SocketTab } from './SocketTab';\n\ninterface Props {\n  onCreate(environment: Environment, analytics: AnalyticsStateKey): void;\n  isDockerStandalone?: boolean;\n}\n\nconst options: BoxSelectorOption<\n  'agent' | 'api' | 'socket' | 'edgeAgentStandard' | 'edgeAgentAsync'\n>[] = _.compact([\n  {\n    id: 'agent',\n    icon: <BadgeIcon icon={Zap} size=\"3xl\" />,\n    label: 'Agent',\n    description: '',\n    value: 'agent',\n  },\n  {\n    id: 'api',\n    icon: <BadgeIcon icon={Network} size=\"3xl\" />,\n    label: 'API',\n    description: '',\n    value: 'api',\n  },\n  {\n    id: 'socket',\n    icon: <BadgeIcon icon={Plug2} size=\"3xl\" />,\n    label: 'Socket',\n    description: '',\n    value: 'socket',\n  },\n  {\n    id: 'edgeAgentStandard',\n    icon: <BadgeIcon icon={EdgeAgentStandardIcon} size=\"3xl\" />,\n    label: 'Edge Agent Standard',\n    description: '',\n    value: 'edgeAgentStandard',\n  },\n  isBE && {\n    id: 'edgeAgentAsync',\n    icon: <BadgeIcon icon={EdgeAgentAsyncIcon} size=\"3xl\" />,\n    label: 'Edge Agent Async',\n    description: '',\n    value: 'edgeAgentAsync',\n  },\n]);\n\nexport function WizardDocker({ onCreate, isDockerStandalone }: Props) {\n  const [creationType, setCreationType] = useState(options[0].value);\n\n  const tab = getTab(creationType);\n\n  return (\n    <div className=\"form-horizontal\">\n      <BoxSelector\n        onChange={(v) => setCreationType(v)}\n        options={options}\n        value={creationType}\n        radioName=\"creation-type\"\n      />\n\n      {tab}\n    </div>\n  );\n\n  function getTab(\n    creationType:\n      | 'agent'\n      | 'api'\n      | 'socket'\n      | 'edgeAgentStandard'\n      | 'edgeAgentAsync'\n  ) {\n    switch (creationType) {\n      case 'agent':\n        return (\n          <AgentTab\n            onCreate={(environment) => onCreate(environment, 'dockerAgent')}\n            isDockerStandalone={isDockerStandalone}\n          />\n        );\n      case 'api':\n        return (\n          <APITab\n            onCreate={(environment) => onCreate(environment, 'dockerApi')}\n          />\n        );\n      case 'socket':\n        return (\n          <SocketTab\n            onCreate={(environment) => onCreate(environment, 'localEndpoint')}\n          />\n        );\n      case 'edgeAgentStandard':\n        return (\n          <EdgeAgentTab\n            onCreate={(environment) =>\n              onCreate(environment, 'dockerEdgeAgentStandard')\n            }\n            commands={{\n              linux: isDockerStandalone\n                ? [commandsTabs.standaloneLinux]\n                : [commandsTabs.swarmLinux],\n              win: isDockerStandalone\n                ? [commandsTabs.standaloneWindow]\n                : [commandsTabs.swarmWindows],\n            }}\n          />\n        );\n      case 'edgeAgentAsync':\n        return (\n          <EdgeAgentTab\n            asyncMode\n            onCreate={(environment) =>\n              onCreate(environment, 'dockerEdgeAgentAsync')\n            }\n            commands={{\n              linux: isDockerStandalone\n                ? [commandsTabs.standaloneLinux]\n                : [commandsTabs.swarmLinux],\n              win: isDockerStandalone\n                ? [commandsTabs.standaloneWindow]\n                : [commandsTabs.swarmWindows],\n            }}\n          />\n        );\n      default:\n        return null;\n    }\n  }\n}\n","import { Field, Form, Formik } from 'formik';\nimport { useReducer, useState } from 'react';\nimport { object, SchemaOf, string } from 'yup';\nimport { Network, Plug2 } from 'lucide-react';\n\nimport { useCreateAzureEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { EnvironmentMetadata } from '@/react/portainer/environments/environment.service/create';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { Input } from '@@/form-components/Input';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { BoxSelector, BoxSelectorOption } from '@@/BoxSelector';\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nimport { NameField, useNameValidation } from '../shared/NameField';\nimport { AnalyticsStateKey } from '../types';\nimport { metadataValidation } from '../shared/MetadataFieldset/validation';\nimport { MoreSettingsSection } from '../shared/MoreSettingsSection';\n\ninterface FormValues {\n  name: string;\n  applicationId: string;\n  tenantId: string;\n  authenticationKey: string;\n  meta: EnvironmentMetadata;\n}\n\nconst initialValues: FormValues = {\n  name: '',\n  applicationId: '',\n  tenantId: '',\n  authenticationKey: '',\n  meta: {\n    groupId: 1,\n    tagIds: [],\n  },\n};\n\nconst options: Array<BoxSelectorOption<'api'>> = [\n  {\n    description: '',\n    icon: <BadgeIcon icon={Network} size=\"3xl\" />,\n    id: 'api',\n    label: 'API',\n    value: 'api',\n  },\n];\n\ninterface Props {\n  onCreate(environment: Environment, analytics: AnalyticsStateKey): void;\n}\n\nexport function WizardAzure({ onCreate }: Props) {\n  const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n\n  const [creationType, setCreationType] = useState(options[0].id);\n  const mutation = useCreateAzureEnvironmentMutation();\n  const validation = useValidation();\n\n  return (\n    <div className=\"form-horizontal\">\n      <BoxSelector\n        options={options}\n        radioName=\"creation-type\"\n        onChange={(value) => setCreationType(value)}\n        value={creationType}\n      />\n\n      <Formik<FormValues>\n        initialValues={initialValues}\n        onSubmit={handleSubmit}\n        key={formKey}\n        validateOnMount\n        validationSchema={validation}\n      >\n        {({ errors, dirty, isValid }) => (\n          <Form>\n            <NameField />\n\n            <FormControl\n              label=\"Application ID\"\n              errors={errors.applicationId}\n              inputId=\"applicationId-input\"\n              required\n            >\n              <Field\n                name=\"applicationId\"\n                id=\"applicationId-input\"\n                as={Input}\n                placeholder=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n              />\n            </FormControl>\n\n            <FormControl\n              label=\"Tenant ID\"\n              errors={errors.tenantId}\n              inputId=\"tenantId-input\"\n              required\n            >\n              <Field\n                name=\"tenantId\"\n                id=\"tenantId-input\"\n                as={Input}\n                placeholder=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n              />\n            </FormControl>\n\n            <FormControl\n              label=\"Authentication Key\"\n              errors={errors.authenticationKey}\n              inputId=\"authenticationKey-input\"\n              required\n            >\n              <Field\n                name=\"authenticationKey\"\n                id=\"authenticationKey-input\"\n                as={Input}\n                placeholder=\"cOrXoK/1D35w8YQ8nH1/8ZGwzz45JIYD5jxHKXEQknk=\"\n              />\n            </FormControl>\n\n            <MoreSettingsSection />\n\n            <div className=\"row\">\n              <div className=\"col-sm-12\">\n                <LoadingButton\n                  className=\"vertical-center\"\n                  loadingText=\"Connecting environment...\"\n                  isLoading={mutation.isLoading}\n                  disabled={!dirty || !isValid}\n                  icon={Plug2}\n                >\n                  Connect\n                </LoadingButton>\n              </div>\n            </div>\n          </Form>\n        )}\n      </Formik>\n    </div>\n  );\n\n  function handleSubmit({\n    applicationId,\n    authenticationKey,\n    meta,\n    name,\n    tenantId,\n  }: typeof initialValues) {\n    mutation.mutate(\n      {\n        name,\n        azure: {\n          applicationId,\n          authenticationKey,\n          tenantId,\n        },\n        meta,\n      },\n      {\n        onSuccess(environment) {\n          notifySuccess('Environment created', environment.Name);\n          clearForm();\n          onCreate(environment, 'aciApi');\n        },\n      }\n    );\n  }\n}\n\nfunction useValidation(): SchemaOf<FormValues> {\n  return object({\n    name: useNameValidation(),\n    applicationId: string().required('Application ID is required'),\n    tenantId: string().required('Tenant ID is required'),\n    authenticationKey: string().required('Authentication Key is required'),\n    meta: metadataValidation(),\n  });\n}\n","import { useState } from 'react';\nimport { Info } from 'lucide-react';\n\nimport { getAgentShortVersion } from '@/portainer/views/endpoints/helpers';\nimport { useAgentDetails } from '@/react/portainer/environments/queries/useAgentDetails';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\nimport { Code } from '@@/Code';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { NavTabs } from '@@/NavTabs';\nimport { Icon } from '@@/Icon';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nconst deployments = [\n  {\n    id: 'k8sLoadBalancer',\n    label: 'Kubernetes via load balancer',\n    command: kubeLoadBalancerCommand,\n    showAgentSecretMessage: true,\n  },\n  {\n    id: 'k8sNodePort',\n    label: 'Kubernetes via node port',\n    command: kubeNodePortCommand,\n    showAgentSecretMessage: true,\n  },\n];\n\nexport function DeploymentScripts() {\n  const [deployType, setDeployType] = useState(deployments[0].id);\n\n  const agentDetailsQuery = useAgentDetails();\n\n  if (!agentDetailsQuery) {\n    return null;\n  }\n\n  const { agentVersion, agentSecret } = agentDetailsQuery;\n\n  const options = deployments.map((c) => {\n    const code = c.command(agentVersion);\n\n    return {\n      id: c.id,\n      label: c.label,\n      children: (\n        <DeployCode\n          agentSecret={agentSecret}\n          showAgentSecretMessage={c.showAgentSecretMessage}\n          code={code}\n        />\n      ),\n    };\n  });\n\n  return (\n    <>\n      <FormSectionTitle>Information</FormSectionTitle>\n\n      <div className=\"form-group\">\n        <span className=\"col-sm-12 text-muted small\">\n          Ensure that you have deployed the Portainer agent in your cluster\n          first. Refer to the platform related command below to deploy it.\n        </span>\n      </div>\n\n      <NavContainer>\n        <NavTabs\n          options={options}\n          onSelect={(id: string) => setDeployType(id)}\n          selectedId={deployType}\n        />\n      </NavContainer>\n    </>\n  );\n}\n\nfunction kubeNodePortCommand(agentVersion: string) {\n  const agentShortVersion = getAgentShortVersion(agentVersion);\n\n  return `kubectl apply -f https://downloads.portainer.io/ce${agentShortVersion}/portainer-agent-k8s-nodeport.yaml`;\n}\n\nfunction kubeLoadBalancerCommand(agentVersion: string) {\n  const agentShortVersion = getAgentShortVersion(agentVersion);\n\n  return `kubectl apply -f https://downloads.portainer.io/ce${agentShortVersion}/portainer-agent-k8s-lb.yaml`;\n}\n\ninterface LoadBalancerProps {\n  agentSecret?: string;\n  showAgentSecretMessage?: boolean;\n  code: string;\n}\n\nfunction DeployCode({\n  agentSecret,\n  showAgentSecretMessage,\n  code,\n}: LoadBalancerProps) {\n  return (\n    <>\n      {showAgentSecretMessage && agentSecret && (\n        <p className=\"text-muted small my-6\">\n          <Icon icon={Info} mode=\"primary\" className=\"mr-1\" />\n          Note that the environment variable AGENT_SECRET will need to be set to\n          <code>{agentSecret}</code>. Please update the manifest that will be\n          downloaded from the following script.\n        </p>\n      )}\n      <Code>{code}</Code>\n      <div className=\"mt-2\">\n        <CopyButton copyText={code}>Copy command</CopyButton>\n      </div>\n    </>\n  );\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { AgentForm } from '../shared/AgentForm';\n\nimport { DeploymentScripts } from './DeploymentScripts';\n\ninterface Props {\n  onCreate(environment: Environment): void;\n}\n\nexport function AgentPanel({ onCreate }: Props) {\n  return (\n    <>\n      <DeploymentScripts />\n\n      <div className=\"mt-5\">\n        <AgentForm onCreate={onCreate} />\n      </div>\n    </>\n  );\n}\n","import { Field, Form, Formik } from 'formik';\nimport { Plug2 } from 'lucide-react';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { Input } from '@@/form-components/Input';\nimport { Button } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { useDocsUrl } from '@@/PageHeader/ContextHelp/ContextHelp';\n\nconst initialValues = {\n  kubeConfig: '',\n  name: '',\n  meta: {\n    groupId: 1,\n    tagIds: [],\n  },\n};\n\nexport function KubeConfigTeaserForm() {\n  const kubeConfigImportDocUrl = useDocsUrl(\n    '/admin/environments/add/kubernetes/import'\n  );\n\n  return (\n    <Formik initialValues={initialValues} onSubmit={() => {}} validateOnMount>\n      {() => (\n        <Form>\n          <FormSectionTitle>Environment details</FormSectionTitle>\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <TextTip color=\"blue\">\n                <span className=\"text-muted\">\n                  <a\n                    href={kubeConfigImportDocUrl}\n                    target=\"_blank\"\n                    rel=\"noreferrer\"\n                  >\n                    Import the kubeconfig file\n                  </a>{' '}\n                  of an existing Kubernetes cluster located on-premise or on a\n                  cloud platform. This will create a corresponding environment\n                  in Portainer and install the agent on the cluster. Please\n                  ensure:\n                </span>\n              </TextTip>\n            </div>\n            <div className=\"col-sm-12 text-muted text-xs\">\n              <ul className=\"p-2 pl-4\">\n                <li>You have a load balancer enabled in your cluster</li>\n                <li>You specify current-context in your kubeconfig</li>\n                <li>\n                  The kubeconfig is self-contained - including any required\n                  credentials.\n                </li>\n              </ul>\n              <p>\n                Note: Officially supported cloud providers are Civo, Akamai\n                Connected Cloud, DigitalOcean and Microsoft Azure (others are\n                not guaranteed to work at present)\n              </p>\n            </div>\n          </div>\n\n          <FormControl label=\"Name\" required>\n            <Field\n              name=\"name\"\n              as={Input}\n              data-cy=\"endpointCreate-nameInput\"\n              placeholder=\"e.g. docker-prod01 / kubernetes-cluster01\"\n              readOnly\n            />\n          </FormControl>\n\n          <FormControl\n            label=\"Kubeconfig file\"\n            required\n            inputId=\"kubeconfig_file\"\n          >\n            <Button disabled>Select a file</Button>\n          </FormControl>\n\n          <div className=\"form-group\">\n            <div className=\"col-sm-12\">\n              <LoadingButton\n                className=\"wizard-connect-button !ml-0\"\n                loadingText=\"Connecting environment...\"\n                isLoading={false}\n                disabled\n                icon={Plug2}\n              >\n                Connect\n              </LoadingButton>\n            </div>\n          </div>\n        </Form>\n      )}\n    </Formik>\n  );\n}\n","import { useState } from 'react';\nimport { Zap, UploadCloud } from 'lucide-react';\nimport _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { commandsTabs } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport EdgeAgentStandardIcon from '@/react/edge/components/edge-agent-standard.svg?c';\nimport EdgeAgentAsyncIcon from '@/react/edge/components/edge-agent-async.svg?c';\n\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport { BoxSelector } from '@@/BoxSelector';\nimport { BEOverlay } from '@@/BEFeatureIndicator/BEOverlay';\n\nimport { AnalyticsStateKey } from '../types';\nimport { EdgeAgentTab } from '../shared/EdgeAgentTab';\n\nimport { AgentPanel } from './AgentPanel';\nimport { KubeConfigTeaserForm } from './KubeConfigTeaserForm';\n\ninterface Props {\n  onCreate(environment: Environment, analytics: AnalyticsStateKey): void;\n}\n\ntype CreationType =\n  | 'agent'\n  | 'edgeAgentStandard'\n  | 'edgeAgentAsync'\n  | 'kubeconfig';\n\nconst options: BoxSelectorOption<CreationType>[] = _.compact([\n  {\n    id: 'agent_endpoint',\n    icon: Zap,\n    iconType: 'badge',\n    label: 'Agent',\n    value: 'agent',\n    description: '',\n  },\n  {\n    id: 'edgeAgentStandard',\n    icon: EdgeAgentStandardIcon,\n    iconType: 'badge',\n    label: 'Edge Agent Standard',\n    description: '',\n    value: 'edgeAgentStandard',\n  },\n  isBE && {\n    id: 'edgeAgentAsync',\n    icon: EdgeAgentAsyncIcon,\n    iconType: 'badge',\n    label: 'Edge Agent Async',\n    description: '',\n    value: 'edgeAgentAsync',\n  },\n  {\n    id: 'kubeconfig_endpoint',\n    icon: UploadCloud,\n    iconType: 'badge',\n    label: 'Import',\n    value: 'kubeconfig',\n    description: 'Import an existing Kubernetes config',\n    feature: FeatureId.K8S_CREATE_FROM_KUBECONFIG,\n  },\n]);\n\nexport function WizardKubernetes({ onCreate }: Props) {\n  const [creationType, setCreationType] = useState(options[0].value);\n\n  const tab = getTab(creationType);\n\n  return (\n    <div className=\"form-horizontal\">\n      <BoxSelector\n        onChange={(v) => setCreationType(v)}\n        options={options}\n        value={creationType}\n        radioName=\"creation-type\"\n      />\n\n      {tab}\n    </div>\n  );\n\n  function getTab(type: CreationType) {\n    switch (type) {\n      case 'agent':\n        return (\n          <AgentPanel\n            onCreate={(environment) => onCreate(environment, 'kubernetesAgent')}\n          />\n        );\n      case 'edgeAgentStandard':\n        return (\n          <EdgeAgentTab\n            onCreate={(environment) =>\n              onCreate(environment, 'kubernetesEdgeAgentStandard')\n            }\n            commands={[{ ...commandsTabs.k8sLinux, label: 'Linux' }]}\n          />\n        );\n      case 'edgeAgentAsync':\n        return (\n          <EdgeAgentTab\n            asyncMode\n            onCreate={(environment) =>\n              onCreate(environment, 'kubernetesEdgeAgentAsync')\n            }\n            commands={[{ ...commandsTabs.k8sLinux, label: 'Linux' }]}\n          />\n        );\n      case 'kubeconfig':\n        return (\n          <div className=\"mb-3\">\n            <BEOverlay featureId={FeatureId.K8S_CREATE_FROM_KUBECONFIG}>\n              <KubeConfigTeaserForm />\n            </BEOverlay>\n          </div>\n        );\n      default:\n        throw new Error('Creation type not supported');\n    }\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wizardStepAction\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-EnvironmentsCreationView-module__wizard-step-action\",\"wizardWrapper\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-EnvironmentsCreationView-module__wizard-wrapper\"};","// extracted by mini-css-extract-plugin\nexport default {\"wizardListWrapper\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-wrapper\",\"wizardListEdgeStatus\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-edge-status\",\"wizardListImage\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-image\",\"wizardListTitle\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-title\",\"wizardListSubtitle\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-subtitle\",\"wizardListType\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-type\"};","import { Plug2 } from 'lucide-react';\n\nimport {\n  environmentTypeIcon,\n  endpointTypeName,\n  stripProtocol,\n} from '@/portainer/filters/filters';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  isEdgeEnvironment,\n  isUnassociatedEdgeEnvironment,\n} from '@/react/portainer/environments/utils';\nimport {\n  ENVIRONMENTS_POLLING_INTERVAL,\n  useEnvironmentList,\n} from '@/react/portainer/environments/queries/useEnvironmentList';\n\nimport { EdgeIndicator } from '@@/EdgeIndicator';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { Icon } from '@@/Icon';\n\nimport styles from './WizardEndpointsList.module.css';\n\ninterface Props {\n  environmentIds: EnvironmentId[];\n}\n\nexport function WizardEndpointsList({ environmentIds }: Props) {\n  const { environments } = useEnvironmentList(\n    { endpointIds: environmentIds },\n    {\n      refetchInterval: (environments) => {\n        if (!environments) {\n          return false;\n        }\n\n        if (!environments.value.some(isUnassociatedEdgeEnvironment)) {\n          return false;\n        }\n\n        return ENVIRONMENTS_POLLING_INTERVAL;\n      },\n\n      enabled: environmentIds.length > 0,\n    }\n  );\n\n  return (\n    <Widget>\n      <WidgetTitle icon={Plug2} title=\"New Environments\" />\n      <WidgetBody>\n        {environments.map((environment) => (\n          <div className={styles.wizardListWrapper} key={environment.Id}>\n            <div className={styles.wizardListImage}>\n              <Icon\n                icon={environmentTypeIcon(environment.Type)}\n                className=\"mr-1\"\n              />\n            </div>\n            <div className={styles.wizardListTitle}>{environment.Name}</div>\n            <div className={styles.wizardListSubtitle}>\n              URL: {stripProtocol(environment.URL)}\n            </div>\n            <div className={styles.wizardListType}>\n              Type: {endpointTypeName(environment.Type)}\n            </div>\n            {isEdgeEnvironment(environment.Type) && (\n              <div className={styles.wizardListEdgeStatus}>\n                <EdgeIndicator environment={environment} />\n              </div>\n            )}\n          </div>\n        ))}\n      </WidgetBody>\n    </Widget>\n  );\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport {\n  EnvironmentCreationView,\n  EnvironmentTypeSelectView,\n  HomeView,\n} from '@/react/portainer/environments/wizard';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AccessHeaders } from '@/portainer/authorization-guard';\n\nexport const wizardModule = angular\n  .module('portainer.app.react.views.wizard', [])\n  .component(\n    'wizardEnvironmentCreationView',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(EnvironmentCreationView))),\n      []\n    )\n  )\n  .component(\n    'wizardEnvironmentTypeSelectView',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(EnvironmentTypeSelectView))),\n      []\n    )\n  )\n  .component(\n    'wizardMainView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(HomeView))), [])\n  )\n  .config(config).name;\n\nfunction config($stateRegistryProvider: StateRegistry) {\n  $stateRegistryProvider.register({\n    name: 'portainer.wizard',\n    url: '/wizard',\n    views: {\n      'content@': {\n        component: 'wizardMainView',\n      },\n    },\n    data: {\n      access: AccessHeaders.Admin,\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'portainer.wizard.endpoints',\n    url: '/endpoints',\n    views: {\n      'content@': {\n        component: 'wizardEnvironmentTypeSelectView',\n      },\n    },\n    params: {\n      localEndpointId: 0,\n    },\n    data: {\n      docs: '/admin/environments/add',\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'portainer.wizard.endpoints.create',\n    url: '/create?envType',\n    views: {\n      'content@': {\n        component: 'wizardEnvironmentCreationView',\n      },\n    },\n    params: {\n      envType: '',\n    },\n  });\n}\n","import { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { useState } from 'react';\nimport _ from 'lodash';\nimport clsx from 'clsx';\nimport { ArrowLeft, ArrowRight, Wand2 } from 'lucide-react';\n\nimport { notifyError } from '@/portainer/services/notifications';\nimport {\n  Environment,\n  EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Stepper } from '@@/Stepper';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { PageHeader } from '@@/PageHeader';\nimport { Button } from '@@/buttons';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Icon } from '@@/Icon';\n\nimport {\n  EnvironmentOptionValue,\n  environmentTypes,\n  formTitles,\n} from '../EnvironmentTypeSelectView/environment-types';\n\nimport { WizardDocker } from './WizardDocker';\nimport { WizardAzure } from './WizardAzure';\nimport { WizardKubernetes } from './WizardKubernetes';\nimport { AnalyticsState, AnalyticsStateKey } from './types';\nimport styles from './EnvironmentsCreationView.module.css';\nimport { WizardEndpointsList } from './WizardEndpointsList';\n\nexport function EnvironmentCreationView() {\n  const {\n    params: { localEndpointId: localEndpointIdParam },\n  } = useCurrentStateAndParams();\n\n  const [environmentIds, setEnvironmentIds] = useState<EnvironmentId[]>(() => {\n    const localEndpointId = parseInt(localEndpointIdParam, 10);\n\n    if (!localEndpointId || Number.isNaN(localEndpointId)) {\n      return [];\n    }\n\n    return [localEndpointId];\n  });\n\n  const envTypes = useParamEnvironmentTypes();\n  const { trackEvent } = useAnalytics();\n  const router = useRouter();\n  const steps = _.compact(\n    envTypes.map((id) => environmentTypes.find((eType) => eType.id === id))\n  );\n  const { analytics, setAnalytics } = useAnalyticsState();\n\n  const {\n    currentStep,\n    onNextClick,\n    onPreviousClick,\n    currentStepIndex,\n    Component,\n    isFirstStep,\n    isLastStep,\n  } = useStepper(steps, handleFinish);\n\n  const isDockerStandalone = currentStep.id === 'dockerStandalone';\n\n  return (\n    <>\n      <PageHeader\n        title=\"Quick Setup\"\n        breadcrumbs={[{ label: 'Environment Wizard' }]}\n        reload\n      />\n\n      <div className={styles.wizardWrapper}>\n        <Widget>\n          <WidgetTitle icon={Wand2} title=\"Environment Wizard\" />\n          <WidgetBody>\n            <Stepper steps={steps} currentStep={currentStepIndex + 1} />\n\n            <div className=\"mt-12\">\n              <FormSection title={formTitles[currentStep.id]}>\n                <Component\n                  onCreate={handleCreateEnvironment}\n                  isDockerStandalone={isDockerStandalone}\n                />\n\n                <div\n                  className={clsx(\n                    styles.wizardStepAction,\n                    'flex justify-between'\n                  )}\n                >\n                  <Button disabled={isFirstStep} onClick={onPreviousClick}>\n                    <Icon icon={ArrowLeft} /> Previous\n                  </Button>\n                  <Button onClick={onNextClick}>\n                    {isLastStep ? 'Close' : 'Next'}\n                    <Icon icon={ArrowRight} />\n                  </Button>\n                </div>\n              </FormSection>\n            </div>\n          </WidgetBody>\n        </Widget>\n        <div>\n          <WizardEndpointsList environmentIds={environmentIds} />\n        </div>\n      </div>\n    </>\n  );\n\n  function handleCreateEnvironment(\n    environment: Environment,\n    analytics: AnalyticsStateKey\n  ) {\n    setEnvironmentIds((prev) => [...prev, environment.Id]);\n    setAnalytics(analytics);\n  }\n\n  function handleFinish() {\n    trackEvent('endpoint-wizard-environment-add-finish', {\n      category: 'portainer',\n      metadata: Object.fromEntries(\n        Object.entries(analytics).map(([key, value]) => [\n          _.kebabCase(key),\n          value,\n        ])\n      ),\n    });\n    if (localStorage.getItem('wizardReferrer') === 'environments') {\n      localStorage.removeItem('wizardReferrer');\n      router.stateService.go('portainer.endpoints');\n      return;\n    }\n    router.stateService.go('portainer.home');\n  }\n}\n\nfunction useParamEnvironmentTypes(): EnvironmentOptionValue[] {\n  const {\n    params: { envType },\n  } = useCurrentStateAndParams();\n  const router = useRouter();\n\n  if (!envType) {\n    notifyError('No environment type provided');\n    router.stateService.go('portainer.wizard.endpoints');\n    return [];\n  }\n\n  return Array.isArray(envType) ? envType : [envType];\n}\n\nfunction useStepper(\n  steps: (typeof environmentTypes)[number][],\n  onFinish: () => void\n) {\n  const [currentStepIndex, setCurrentStepIndex] = useState(0);\n  const isFirstStep = currentStepIndex === 0;\n  const isLastStep = currentStepIndex === steps.length - 1;\n  const currentStep = steps[currentStepIndex];\n\n  return {\n    currentStep,\n    onNextClick,\n    onPreviousClick,\n    isFirstStep,\n    isLastStep,\n    currentStepIndex,\n    Component: getComponent(currentStep.id),\n  };\n\n  function onNextClick() {\n    if (!isLastStep) {\n      setCurrentStepIndex(currentStepIndex + 1);\n      return;\n    }\n\n    onFinish();\n  }\n\n  function onPreviousClick() {\n    setCurrentStepIndex(currentStepIndex - 1);\n  }\n\n  function getComponent(id: EnvironmentOptionValue) {\n    switch (id) {\n      case 'dockerStandalone':\n      case 'dockerSwarm':\n        return WizardDocker;\n      case 'aci':\n        return WizardAzure;\n      case 'kubernetes':\n        return WizardKubernetes;\n      default:\n        throw new Error(`Unknown environment type ${id}`);\n    }\n  }\n}\n\nfunction useAnalyticsState() {\n  const [analytics, setAnalyticsState] = useState<AnalyticsState>({\n    dockerAgent: 0,\n    dockerApi: 0,\n    kubernetesAgent: 0,\n    kubernetesEdgeAgentAsync: 0,\n    kubernetesEdgeAgentStandard: 0,\n    kaasAgent: 0,\n    aciApi: 0,\n    localEndpoint: 0,\n    dockerEdgeAgentAsync: 0,\n    dockerEdgeAgentStandard: 0,\n  });\n\n  return { analytics, setAnalytics };\n\n  function setAnalytics(key: AnalyticsStateKey) {\n    setAnalyticsState((prevState) => ({\n      ...prevState,\n      [key]: prevState[key] + 1,\n    }));\n  }\n}\n","import { useState } from 'react';\nimport { useRouter } from '@uirouter/react';\nimport _ from 'lodash';\nimport { Wand2 } from 'lucide-react';\n\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Button } from '@@/buttons';\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { EnvironmentSelector } from './EnvironmentSelector';\nimport {\n  EnvironmentOptionValue,\n  existingEnvironmentTypes,\n  newEnvironmentTypes,\n} from './environment-types';\n\nexport function EnvironmentTypeSelectView() {\n  const [types, setTypes] = useState<EnvironmentOptionValue[]>([]);\n  const { trackEvent } = useAnalytics();\n  const router = useRouter();\n\n  return (\n    <>\n      <PageHeader\n        title=\"Quick Setup\"\n        breadcrumbs={[{ label: 'Environment Wizard' }]}\n        reload\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetTitle icon={Wand2} title=\"Environment Wizard\" />\n            <WidgetBody>\n              <div className=\"form-horizontal\">\n                <FormSection title=\"Select your environment(s)\">\n                  <p className=\"text-muted small\">\n                    You can onboard different types of environments, select all\n                    that apply.\n                  </p>\n                  <p className=\"control-label !mb-2\">\n                    Connect to existing environments\n                  </p>\n                  <EnvironmentSelector\n                    value={types}\n                    onChange={setTypes}\n                    options={existingEnvironmentTypes}\n                  />\n                  <p className=\"control-label !mb-2\">Set up new environments</p>\n                  <EnvironmentSelector\n                    value={types}\n                    onChange={setTypes}\n                    options={newEnvironmentTypes}\n                    hiddenSpacingCount={\n                      existingEnvironmentTypes.length -\n                      newEnvironmentTypes.length\n                    }\n                  />\n                </FormSection>\n              </div>\n              <Button\n                disabled={types.length === 0}\n                onClick={() => startWizard()}\n              >\n                Start Wizard\n              </Button>\n            </WidgetBody>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n\n  function startWizard() {\n    if (types.length === 0) {\n      return;\n    }\n\n    const environmentTypes = [\n      ...existingEnvironmentTypes,\n      ...newEnvironmentTypes,\n    ];\n\n    const steps = _.compact(\n      types.map((id) => environmentTypes.find((eType) => eType.id === id))\n    );\n\n    trackEvent('endpoint-wizard-endpoint-select', {\n      category: 'portainer',\n      metadata: {\n        environment: steps.map((step) => step.label).join('/'),\n      },\n    });\n\n    router.stateService.go('portainer.wizard.endpoints.create', {\n      envType: types,\n    });\n  }\n}\n","import { useRouter } from '@uirouter/react';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { Trash2, Users } from 'lucide-react';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Button } from '@@/buttons';\nimport { Widget } from '@@/Widget';\n\nimport { Team, TeamId, TeamMembership, TeamRole } from '../types';\nimport { deleteTeam } from '../teams.service';\n\ninterface Props {\n  team: Team;\n  memberships: TeamMembership[];\n  isAdmin: boolean;\n}\n\nexport function Details({ team, memberships, isAdmin }: Props) {\n  const deleteMutation = useDeleteTeam();\n  const router = useRouter();\n  const teamSyncQuery = usePublicSettings<boolean>({\n    select: (settings) => settings.TeamSync,\n  });\n\n  const leaderCount = memberships.filter(\n    (m) => m.Role === TeamRole.Leader\n  ).length;\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-lg-12 col-md-12 col-xs-12\">\n        <Widget>\n          <Widget.Title title=\"Team details\" icon={Users} />\n\n          <Widget.Body className=\"no-padding\">\n            <table className=\"table\">\n              <tbody>\n                <tr>\n                  <td>Name</td>\n                  <td>\n                    {!teamSyncQuery.data && team.Name}\n                    {isAdmin && (\n                      <Button\n                        color=\"danger\"\n                        size=\"xsmall\"\n                        onClick={handleDeleteClick}\n                        icon={Trash2}\n                      >\n                        Delete this team\n                      </Button>\n                    )}\n                  </td>\n                </tr>\n                <tr>\n                  <td>Leaders</td>\n                  <td>{!teamSyncQuery.data && leaderCount}</td>\n                </tr>\n                <tr>\n                  <td>Total users in team</td>\n                  <td>{memberships.length}</td>\n                </tr>\n              </tbody>\n            </table>\n          </Widget.Body>\n        </Widget>\n      </div>\n    </div>\n  );\n\n  async function handleDeleteClick() {\n    const confirmed = await confirmDelete(\n      `Do you want to delete this team? Users in this team will not be deleted.`\n    );\n    if (!confirmed) {\n      return;\n    }\n\n    deleteMutation.mutate(team.Id, {\n      onSuccess() {\n        router.stateService.go('portainer.teams');\n      },\n    });\n  }\n}\n\nfunction useDeleteTeam() {\n  const queryClient = useQueryClient();\n  return useMutation(\n    (id: TeamId) => deleteTeam(id),\n\n    mutationOptions(\n      withError('Unable to delete team'),\n      withInvalidate(queryClient, [['teams']])\n    )\n  );\n}\n","import { TeamId } from '@/react/portainer/users/teams/types';\n\nimport { createRowContext } from '@@/datatables/RowContext';\n\ninterface RowContext {\n  disabled?: boolean;\n  teamId: TeamId;\n}\n\nconst { RowProvider, useRowContext } = createRowContext<RowContext>();\n\nexport { RowProvider, useRowContext };\n","import { PlusCircle } from 'lucide-react';\nimport { CellContext, ColumnDef } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAddMemberMutation } from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\n\nimport { useRowContext } from './RowContext';\n\nexport const name: ColumnDef<User, string> = {\n  header: 'Name',\n  accessorFn: (row) => row.Username,\n  id: 'name',\n  cell: NameCell,\n};\n\nexport function NameCell({\n  getValue,\n  row: { original: user },\n}: CellContext<User, string>) {\n  const name = getValue();\n  const { disabled, teamId } = useRowContext();\n\n  const addMemberMutation = useAddMemberMutation(teamId);\n\n  return (\n    <>\n      {name}\n\n      <Button\n        color=\"link\"\n        className=\"space-left nopadding\"\n        disabled={disabled}\n        icon={PlusCircle}\n        onClick={() => handleAddMember()}\n      >\n        Add\n      </Button>\n    </>\n  );\n\n  function handleAddMember() {\n    addMemberMutation.mutate([user.Id], {\n      onSuccess() {\n        notifySuccess('User added to team', name);\n      },\n    });\n  }\n}\n","import { useMemo, useState } from 'react';\nimport { UserPlus, Users } from 'lucide-react';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAddMemberMutation } from '@/react/portainer/users/teams/queries';\nimport { TeamId } from '@/react/portainer/users/teams/types';\n\nimport { Button } from '@@/buttons';\nimport { Datatable } from '@@/datatables';\n\nimport { name } from './name-column';\nimport { RowProvider } from './RowContext';\n\nconst columns = [name];\n\ninterface Props {\n  users: User[];\n  disabled?: boolean;\n  teamId: TeamId;\n}\n\nexport function UsersList({ users, disabled, teamId }: Props) {\n  const [search, setSearch] = useState('');\n  const [pageSize, setPageSize] = useState(10);\n  const addMemberMutation = useAddMemberMutation(teamId);\n  const [sortBy, setSortBy] = useState<\n    { id: string; desc: boolean } | undefined\n  >({ id: 'name', desc: false });\n\n  const { isPureAdmin } = useCurrentUser();\n\n  const rowContext = useMemo(() => ({ disabled, teamId }), [disabled, teamId]);\n\n  return (\n    <RowProvider context={rowContext}>\n      <Datatable<User>\n        dataset={users}\n        columns={columns}\n        titleIcon={Users}\n        title=\"Users\"\n        renderTableActions={() =>\n          isPureAdmin && (\n            <Button\n              onClick={() => handleAddAllMembers(users.map((u) => u.Id))}\n              disabled={disabled || users.length === 0}\n              icon={UserPlus}\n            >\n              Add all users\n            </Button>\n          )\n        }\n        disableSelect\n        settingsManager={{\n          pageSize,\n          setPageSize,\n          sortBy,\n          setSortBy: handleSetSort,\n          search,\n          setSearch,\n        }}\n      />\n    </RowProvider>\n  );\n\n  function handleSetSort(colId: string | undefined, desc: boolean) {\n    setSortBy(colId ? { id: colId, desc } : undefined);\n  }\n\n  function handleAddAllMembers(userIds: UserId[]) {\n    addMemberMutation.mutate(userIds, {\n      onSuccess() {\n        notifySuccess('Success', 'All users successfully added');\n      },\n    });\n  }\n}\n","import { TeamRole, TeamId } from '@/react/portainer/users/teams/types';\nimport { UserId } from '@/portainer/users/types';\n\nimport { createRowContext } from '@@/datatables/RowContext';\n\nexport interface RowContext {\n  getRole(userId: UserId): TeamRole;\n  disabled?: boolean;\n  teamId: TeamId;\n}\n\nconst { RowProvider, useRowContext } = createRowContext<RowContext>();\n\nexport { RowProvider, useRowContext };\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\n\nexport const columnHelper = createColumnHelper<User>();\n","import { MinusCircle } from 'lucide-react';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n  useRemoveMemberMutation,\n  useTeamMemberships,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\n\nimport { useRowContext } from '../RowContext';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Username', {\n  header: 'Name',\n  id: 'name',\n  cell: NameCell,\n});\n\nexport function NameCell({\n  getValue,\n  row: { original: user },\n}: CellContext<User, string>) {\n  const name = getValue();\n  const { disabled, teamId } = useRowContext();\n\n  const membershipsQuery = useTeamMemberships(teamId);\n\n  const removeMemberMutation = useRemoveMemberMutation(\n    teamId,\n    membershipsQuery.data\n  );\n\n  return (\n    <>\n      {name}\n\n      <Button\n        color=\"link\"\n        className=\"space-left !p-0\"\n        onClick={() => handleRemoveMember(user.Id)}\n        disabled={disabled}\n        icon={MinusCircle}\n      >\n        Remove\n      </Button>\n    </>\n  );\n\n  function handleRemoveMember(userId: UserId) {\n    removeMemberMutation.mutate([userId], {\n      onSuccess() {\n        notifySuccess('User removed from team', name);\n      },\n    });\n  }\n}\n","import { User as UserIcon, UserPlus, UserX } from 'lucide-react';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { TeamRole } from '@/react/portainer/users/teams/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n  useTeamMemberships,\n  useUpdateRoleMutation,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\n\nimport { useRowContext } from '../RowContext';\n\nimport { columnHelper } from './helper';\n\nexport const teamRole = columnHelper.accessor('Id', {\n  header: 'Team Role',\n  id: 'role',\n  cell: RoleCell,\n});\n\nfunction RoleCell({\n  row: { original: user },\n  getValue,\n}: CellContext<User, User['Id']>) {\n  const id = getValue();\n\n  const { getRole, disabled, teamId } = useRowContext();\n  const membershipsQuery = useTeamMemberships(teamId);\n  const updateRoleMutation = useUpdateRoleMutation(\n    teamId,\n    membershipsQuery.data\n  );\n\n  const role = getRole(id);\n\n  const { isPureAdmin } = useCurrentUser();\n\n  const Cell = role === TeamRole.Leader ? LeaderCell : MemberCell;\n\n  return (\n    <Cell\n      isAdmin={isPureAdmin}\n      onClick={handleUpdateRole}\n      disabled={disabled}\n    />\n  );\n\n  function handleUpdateRole(role: TeamRole, onSuccessMessage: string) {\n    updateRoleMutation.mutate(\n      { userId: user.Id, role },\n      {\n        onSuccess() {\n          notifySuccess(onSuccessMessage, user.Username);\n        },\n      }\n    );\n  }\n}\n\ninterface LeaderCellProps {\n  isAdmin: boolean;\n  onClick: (role: TeamRole, onSuccessMessage: string) => void;\n  disabled?: boolean;\n}\n\nfunction LeaderCell({ isAdmin, onClick, disabled }: LeaderCellProps) {\n  return (\n    <div className=\"flex items-center\">\n      <Icon className=\"space-right\" icon={UserPlus} mode=\"secondary-alt\" />\n\n      {isAdmin && (\n        <Button\n          color=\"link\"\n          className=\"nopadding\"\n          onClick={() => onClick(TeamRole.Member, 'User is now team member')}\n          disabled={disabled}\n          icon={UserX}\n        >\n          Member\n        </Button>\n      )}\n    </div>\n  );\n}\n\ninterface MemberCellProps {\n  onClick: (role: TeamRole, onSuccessMessage: string) => void;\n  disabled?: boolean;\n}\n\nfunction MemberCell({ onClick, disabled }: MemberCellProps) {\n  return (\n    <div className=\"flex items-center\">\n      <Icon className=\"space-right\" icon={UserIcon} mode=\"secondary-alt\" />\n      <Button\n        color=\"link\"\n        className=\"nopadding\"\n        onClick={() => onClick(TeamRole.Leader, 'User is now team leader')}\n        disabled={disabled}\n        icon={UserPlus}\n      >\n        Leader\n      </Button>\n    </div>\n  );\n}\n","import { name } from './name-column';\nimport { teamRole } from './team-role-column';\n\nexport const columns = [name, teamRole];\n","import { useMemo, useState } from 'react';\nimport { Users, UserX } from 'lucide-react';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { TeamId, TeamRole } from '@/react/portainer/users/teams/types';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n  useRemoveMemberMutation,\n  useTeamMemberships,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\nimport { Datatable } from '@@/datatables';\n\nimport { RowContext, RowProvider } from './RowContext';\nimport { columns } from './columns';\n\ninterface Props {\n  users: User[];\n  roles: Record<UserId, TeamRole>;\n  disabled?: boolean;\n  teamId: TeamId;\n}\n\nexport function TeamMembersList({ users, roles, disabled, teamId }: Props) {\n  const membershipsQuery = useTeamMemberships(teamId);\n\n  const removeMemberMutation = useRemoveMemberMutation(\n    teamId,\n    membershipsQuery.data\n  );\n\n  const [search, setSearch] = useState('');\n  const [pageSize, setPageSize] = useState(10);\n  const [sortBy, setSortBy] = useState<\n    { id: string; desc: boolean } | undefined\n  >({ id: 'name', desc: false });\n\n  const isPureAdmin = useIsPureAdmin();\n  const rowContext = useMemo<RowContext>(\n    () => ({\n      getRole(userId: UserId) {\n        return roles[userId];\n      },\n      disabled,\n      teamId,\n    }),\n    [roles, disabled, teamId]\n  );\n\n  return (\n    <RowProvider context={rowContext}>\n      <Datatable<User>\n        dataset={users}\n        columns={columns}\n        titleIcon={Users}\n        title=\"Team members\"\n        renderTableActions={() =>\n          isPureAdmin && (\n            <Button\n              onClick={() => handleRemoveMembers(users.map((user) => user.Id))}\n              disabled={disabled || users.length === 0}\n              icon={UserX}\n            >\n              Remove all users\n            </Button>\n          )\n        }\n        disableSelect\n        settingsManager={{\n          pageSize,\n          setPageSize,\n          sortBy,\n          setSortBy: handleSetSort,\n          search,\n          setSearch,\n        }}\n      />\n    </RowProvider>\n  );\n\n  function handleSetSort(colId: string | undefined, desc: boolean) {\n    setSortBy(colId ? { id: colId, desc } : undefined);\n  }\n\n  function handleRemoveMembers(userIds: UserId[]) {\n    removeMemberMutation.mutate(userIds, {\n      onSuccess() {\n        notifySuccess('Success', 'All users successfully removed');\n      },\n    });\n  }\n}\n","import _ from 'lodash';\n\nimport { User } from '@/portainer/users/types';\n\nimport { TeamId, TeamMembership } from '../../types';\n\nimport { UsersList } from './UsersList';\nimport { TeamMembersList } from './TeamMembersList';\n\ninterface Props {\n  users: User[];\n  memberships: TeamMembership[];\n  disabled?: boolean;\n  teamId: TeamId;\n}\n\nexport function TeamAssociationSelector({\n  users,\n  memberships,\n  disabled,\n  teamId,\n}: Props) {\n  const teamUsers = _.compact(\n    memberships.map((m) => users.find((user) => user.Id === m.UserID))\n  );\n  const usersNotInTeam = users.filter(\n    (user) => !memberships.some((m) => m.UserID === user.Id)\n  );\n  const userRoles = Object.fromEntries(\n    memberships.map((m) => [m.UserID, m.Role])\n  );\n\n  return (\n    <div className=\"flex\">\n      <div className=\"w-1/2\">\n        <UsersList users={usersNotInTeam} disabled={disabled} teamId={teamId} />\n      </div>\n      <div className=\"w-1/2\">\n        <TeamMembersList\n          teamId={teamId}\n          disabled={disabled}\n          users={teamUsers}\n          roles={userRoles}\n        />\n      </div>\n    </div>\n  );\n}\n","import { Formik, Field, Form } from 'formik';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useReducer } from 'react';\nimport { Plus } from 'lucide-react';\n\nimport { User } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Widget } from '@@/Widget';\nimport { Input } from '@@/form-components/Input';\nimport { UsersSelector } from '@@/UsersSelector';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { createTeam } from '../../teams.service';\nimport { Team } from '../../types';\n\nimport { FormValues } from './types';\nimport { validationSchema } from './CreateTeamForm.validation';\n\ninterface Props {\n  users: User[];\n  teams: Team[];\n}\n\nexport function CreateTeamForm({ users, teams }: Props) {\n  const addTeamMutation = useAddTeamMutation();\n  const [formKey, incFormKey] = useReducer((state: number) => state + 1, 0);\n  const teamSyncQuery = usePublicSettings<boolean>({\n    select: (settings) => settings.TeamSync,\n  });\n\n  const initialValues = {\n    name: '',\n    leaders: [],\n  };\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-lg-12 col-md-12 col-xs-12\">\n        <Widget>\n          <Widget.Title\n            icon={Plus}\n            title=\"Add a new team\"\n            className=\"vertical-center\"\n          />\n          <Widget.Body>\n            <Formik\n              initialValues={initialValues}\n              validationSchema={() => validationSchema(teams)}\n              onSubmit={handleAddTeamClick}\n              validateOnMount\n              key={formKey}\n            >\n              {({\n                values,\n                errors,\n                handleSubmit,\n                setFieldValue,\n                isSubmitting,\n                isValid,\n              }) => (\n                <Form\n                  className=\"form-horizontal\"\n                  onSubmit={handleSubmit}\n                  noValidate\n                >\n                  <FormControl\n                    inputId=\"team_name\"\n                    label=\"Name\"\n                    errors={errors.name}\n                    required\n                  >\n                    <Field\n                      as={Input}\n                      name=\"name\"\n                      id=\"team_name\"\n                      required\n                      placeholder=\"e.g. development\"\n                      data-cy=\"team-teamNameInput\"\n                    />\n                  </FormControl>\n\n                  {users.length > 0 && (\n                    <FormControl\n                      inputId=\"users-input\"\n                      label=\"Select team leader(s)\"\n                      tooltip=\"You can assign one or more leaders to this team. Team leaders can manage their teams users and resources.\"\n                      errors={errors.leaders}\n                    >\n                      <UsersSelector\n                        value={values.leaders}\n                        onChange={(leaders) =>\n                          setFieldValue('leaders', leaders)\n                        }\n                        users={users}\n                        dataCy=\"team-teamLeaderSelect\"\n                        inputId=\"users-input\"\n                        placeholder=\"Select one or more team leaders\"\n                        disabled={teamSyncQuery.data}\n                      />\n                    </FormControl>\n                  )}\n\n                  {teamSyncQuery.data && (\n                    <div className=\"form-group\">\n                      <div className=\"col-sm-12\">\n                        <TextTip color=\"orange\">\n                          The team leader feature is disabled as external\n                          authentication is currently enabled with team sync.\n                        </TextTip>\n                      </div>\n                    </div>\n                  )}\n\n                  <div className=\"form-group\">\n                    <div className=\"col-sm-12\">\n                      <LoadingButton\n                        disabled={!isValid}\n                        data-cy=\"team-createTeamButton\"\n                        isLoading={isSubmitting || addTeamMutation.isLoading}\n                        loadingText=\"Creating team...\"\n                        icon={Plus}\n                      >\n                        Create team\n                      </LoadingButton>\n                    </div>\n                  </div>\n                </Form>\n              )}\n            </Formik>\n          </Widget.Body>\n        </Widget>\n      </div>\n    </div>\n  );\n\n  async function handleAddTeamClick(values: FormValues) {\n    addTeamMutation.mutate(values, {\n      onSuccess() {\n        incFormKey();\n        notifySuccess('Team successfully added', '');\n      },\n    });\n  }\n}\n\nexport function useAddTeamMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    (values: FormValues) => createTeam(values.name, values.leaders),\n    {\n      meta: {\n        error: {\n          title: 'Failure',\n          message: 'Failed to create team',\n        },\n      },\n      onSuccess() {\n        return queryClient.invalidateQueries(['teams']);\n      },\n    }\n  );\n}\n","import { object, string, array, number } from 'yup';\n\nimport { Team } from '@/react/portainer/users/teams/types';\n\nexport function validationSchema(teams: Team[]) {\n  return object().shape({\n    name: string()\n      .required('This field is required.')\n      .test(\n        'is-unique',\n        'This team already exists.',\n        (name) => !!name && teams.every((team) => team.Name !== name)\n      ),\n    leaders: array().of(number()),\n  });\n}\n","import { useMutation, useQueryClient } from 'react-query';\nimport { Trash2, Users } from 'lucide-react';\nimport { ColumnDef } from '@tanstack/react-table';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { Team, TeamId } from '@/react/portainer/users/teams/types';\nimport { deleteTeam } from '@/react/portainer/users/teams/teams.service';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable } from '@@/datatables';\nimport { Button } from '@@/buttons';\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nconst storageKey = 'teams';\n\nconst columns: ColumnDef<Team>[] = [\n  buildNameColumn<Team>('Name', 'portainer.teams.team'),\n];\n\ninterface Props {\n  teams: Team[];\n  isAdmin: boolean;\n}\n\nconst settingsStore = createPersistedStore(storageKey, 'name');\n\nexport function TeamsDatatable({ teams, isAdmin }: Props) {\n  const { handleRemove } = useRemoveMutation();\n  const tableState = useTableState(settingsStore, storageKey);\n\n  return (\n    <Datatable<Team>\n      dataset={teams}\n      columns={columns}\n      settingsManager={tableState}\n      title=\"Teams\"\n      titleIcon={Users}\n      renderTableActions={(selectedRows) =>\n        isAdmin && (\n          <Button\n            color=\"dangerlight\"\n            onClick={() => handleRemoveClick(selectedRows)}\n            disabled={selectedRows.length === 0}\n            icon={Trash2}\n          >\n            Remove\n          </Button>\n        )\n      }\n      emptyContentLabel=\"No teams found\"\n    />\n  );\n\n  function handleRemoveClick(selectedRows: Team[]) {\n    const ids = selectedRows.map((row) => row.Id);\n    handleRemove(ids);\n  }\n}\n\nfunction useRemoveMutation() {\n  const queryClient = useQueryClient();\n\n  const deleteMutation = useMutation(\n    async (ids: TeamId[]) =>\n      promiseSequence(ids.map((id) => () => deleteTeam(id))),\n    {\n      meta: {\n        error: { title: 'Failure', message: 'Unable to remove team' },\n      },\n      onSuccess() {\n        return queryClient.invalidateQueries(['teams']);\n      },\n    }\n  );\n\n  return { handleRemove };\n\n  async function handleRemove(teams: TeamId[]) {\n    const confirmed = await confirmDelete(\n      'Are you sure you want to remove the selected teams?'\n    );\n\n    if (!confirmed) {\n      return;\n    }\n\n    deleteMutation.mutate(teams, {\n      onSuccess: () => {\n        notifySuccess('Teams successfully removed', '');\n      },\n    });\n  }\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { ItemView, ListView } from '@/react/portainer/users/teams';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AccessHeaders } from '@/portainer/authorization-guard';\n\nexport const teamsModule = angular\n  .module('portainer.app.teams', [])\n  .config(config)\n  .component(\n    'teamView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ItemView))), [])\n  )\n  .component(\n    'teamsView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), [])\n  ).name;\n\n/* @ngInject */\nfunction config($stateRegistryProvider: StateRegistry) {\n  $stateRegistryProvider.register({\n    name: 'portainer.teams',\n    url: '/teams',\n    views: {\n      'content@': {\n        component: 'teamsView',\n      },\n    },\n    data: {\n      docs: '/admin/user/teams',\n      access: AccessHeaders.Restricted, // allow for team leaders\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'portainer.teams.team',\n    url: '/:id',\n    views: {\n      'content@': {\n        component: 'teamView',\n      },\n    },\n  });\n}\n","import { useRouter } from '@uirouter/react';\n\nimport { useUsers } from '@/portainer/users/queries';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useTeam, useTeamMemberships } from '../queries';\n\nimport { Details } from './Details';\nimport { TeamAssociationSelector } from './TeamAssociationSelector';\nimport { useTeamIdParam } from './useTeamIdParam';\n\nexport function ItemView() {\n  const teamId = useTeamIdParam();\n\n  const isPureAdmin = useIsPureAdmin();\n  const router = useRouter();\n  const teamQuery = useTeam(teamId, () =>\n    router.stateService.go('portainer.teams')\n  );\n  const usersQuery = useUsers();\n  const membershipsQuery = useTeamMemberships(teamId);\n  const teamSyncQuery = usePublicSettings<boolean>({\n    select: (settings) => settings.TeamSync,\n  });\n\n  if (!teamQuery.data) {\n    return null;\n  }\n\n  const team = teamQuery.data;\n\n  return (\n    <>\n      <PageHeader\n        title=\"Team details\"\n        breadcrumbs={[{ label: 'Teams' }, { label: team.Name }]}\n        reload\n      />\n\n      {membershipsQuery.data && (\n        <Details\n          team={team}\n          memberships={membershipsQuery.data}\n          isAdmin={isPureAdmin}\n        />\n      )}\n\n      {teamSyncQuery.data && (\n        <div className=\"row\">\n          <div className=\"col-sm-12\">\n            <TextTip color=\"orange\">\n              The team leader feature is disabled as external authentication is\n              currently enabled with team sync.\n            </TextTip>\n          </div>\n        </div>\n      )}\n\n      {usersQuery.data && membershipsQuery.data && (\n        <TeamAssociationSelector\n          teamId={teamId}\n          memberships={membershipsQuery.data}\n          users={usersQuery.data}\n          disabled={teamSyncQuery.data}\n        />\n      )}\n    </>\n  );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nexport function useTeamIdParam() {\n  const {\n    params: { id: teamIdParam },\n  } = useCurrentStateAndParams();\n  const teamId = parseInt(teamIdParam, 10);\n\n  if (!teamIdParam || Number.isNaN(teamId)) {\n    throw new Error('Team ID is missing');\n  }\n\n  return teamId;\n}\n","import { useUsers } from '@/portainer/users/queries';\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useTeams } from '../queries';\n\nimport { CreateTeamForm } from './CreateTeamForm';\nimport { TeamsDatatable } from './TeamsDatatable';\n\nexport function ListView() {\n  const { isPureAdmin } = useCurrentUser();\n\n  const usersQuery = useUsers(false);\n  const teamsQuery = useTeams(!isPureAdmin, 0);\n\n  return (\n    <>\n      <PageHeader\n        title=\"Teams\"\n        breadcrumbs={[{ label: 'Teams management' }]}\n        reload\n      />\n\n      {isPureAdmin && usersQuery.data && teamsQuery.data && (\n        <CreateTeamForm users={usersQuery.data} teams={teamsQuery.data} />\n      )}\n\n      {teamsQuery.data && (\n        <TeamsDatatable teams={teamsQuery.data} isAdmin={isPureAdmin} />\n      )}\n    </>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeUpdateResponse, StatusType } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nexport type EdgeUpdateListItemResponse = EdgeUpdateResponse & {\n  status: StatusType;\n  statusMessage: string;\n};\n\nasync function getList(includeEdgeStacks?: boolean) {\n  try {\n    const { data } = await axios.get<EdgeUpdateListItemResponse[]>(buildUrl(), {\n      params: { includeEdgeStacks },\n    });\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Failed to get list of edge update schedules'\n    );\n  }\n}\n\nexport function useList(includeEdgeStacks?: boolean) {\n  return useQuery(queryKeys.list(includeEdgeStacks), () =>\n    getList(includeEdgeStacks)\n  );\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\nimport { UserId } from '@/portainer/users/types';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nexport enum ScheduleType {\n  Update = 1,\n  Rollback,\n}\n\nexport enum StatusType {\n  Pending,\n  Failed,\n  Success,\n  Sent,\n}\n\nexport type EdgeUpdateSchedule = {\n  id: number;\n  name: string;\n\n  type: ScheduleType;\n\n  created: number;\n  createdBy: UserId;\n  version: string;\n  environmentsPreviousVersions: Record<EnvironmentId, string>;\n};\n\nexport type EdgeUpdateResponse = EdgeUpdateSchedule & {\n  // from edge stack:\n  edgeGroupIds: EdgeGroup['Id'][];\n  scheduledTime: string;\n};\n","import { useQueryClient, useMutation } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n  mutationOptions,\n  withError,\n  withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\n\nimport { buildUrl } from './urls';\nimport { queryKeys } from './query-keys';\n\nexport function useRemoveMutation() {\n  const queryClient = useQueryClient();\n\n  return useMutation(\n    (schedules: EdgeUpdateSchedule[]) =>\n      promiseSequence(\n        schedules.map((schedule) => () => deleteUpdateSchedule(schedule.id))\n      ),\n\n    mutationOptions(\n      withInvalidate(queryClient, [queryKeys.base()]),\n      withError()\n    )\n  );\n}\n\nasync function deleteUpdateSchedule(id: EdgeUpdateSchedule['id']) {\n  try {\n    const { data } = await axios.delete<EdgeUpdateSchedule[]>(buildUrl(id));\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Failed to delete edge update schedule'\n    );\n  }\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DecoratedItem } from '../types';\n\nexport const columnHelper = createColumnHelper<DecoratedItem>();\n","import { isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor('created', {\n  id: 'created',\n  header: 'Created',\n  cell: ({ getValue }) => {\n    const value = getValue();\n    return isoDateFromTimestamp(value);\n  },\n});\n","import { CellContext } from '@tanstack/react-table';\n\nimport { DecoratedItem } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const groups = columnHelper.accessor('edgeGroupNames', {\n  header: 'Edge Groups',\n  cell: GroupsCell,\n});\n\nexport function GroupsCell({\n  getValue,\n}: CellContext<DecoratedItem, Array<string>>) {\n  const groups = getValue();\n\n  return groups.join(', ');\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { StatusType } from '../../types';\nimport { DecoratedItem } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const scheduleStatus = columnHelper.accessor('status', {\n  header: 'Status',\n  cell: StatusCell,\n});\n\nfunction StatusCell({\n  getValue,\n  row: {\n    original: { statusMessage },\n  },\n}: CellContext<DecoratedItem, DecoratedItem['status']>) {\n  const status = getValue();\n\n  switch (status) {\n    case StatusType.Failed:\n      return statusMessage;\n    default:\n      return StatusType[status];\n  }\n}\n","import DateTimePicker from 'react-datetime-picker';\nimport { Calendar, X } from 'lucide-react';\nimport { useMemo } from 'react';\nimport { string } from 'yup';\nimport { useField } from 'formik';\n\nimport {\n  isoDate,\n  parseIsoDate,\n  TIME_FORMAT,\n} from '@/portainer/filters/filters';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { FormValues } from './types';\n\ninterface Props {\n  disabled?: boolean;\n}\n\nexport const FORMAT = 'YYYY-MM-DD HH:mm';\n\nexport function ScheduledTimeField({ disabled }: Props) {\n  const [{ name, value }, { error }, { setValue }] =\n    useField<FormValues['scheduledTime']>('scheduledTime');\n\n  const dateValue = useMemo(() => parseIsoDate(value, FORMAT), [value]);\n\n  if (!value) {\n    return null;\n  }\n\n  return (\n    <>\n      <FormControl label=\"Schedule date & time\" errors={error}>\n        {!disabled ? (\n          <DateTimePicker\n            format=\"y-MM-dd HH:mm\"\n            className=\"form-control [&>div]:border-0\"\n            onChange={(date) => {\n              const dateToSave =\n                date || new Date(Date.now() + 24 * 60 * 60 * 1000);\n              setValue(isoDate(dateToSave.valueOf(), FORMAT));\n            }}\n            name={name}\n            value={dateValue}\n            calendarIcon={<Calendar className=\"lucide\" />}\n            clearIcon={<X className=\"lucide\" />}\n            disableClock\n            minDate={new Date(Date.now() - 24 * 60 * 60 * 1000)}\n          />\n        ) : (\n          <Input defaultValue={value} disabled />\n        )}\n      </FormControl>\n      {!disabled && value && (\n        <TextTip color=\"blue\">\n          If time zone is not set on edge agent then UTC+0 will be used.\n        </TextTip>\n      )}\n    </>\n  );\n}\n\nexport function timeValidation() {\n  return string()\n    .required('Scheduled time is required')\n    .test(\n      'validFormat',\n      `Scheduled time must be in the format ${TIME_FORMAT}`,\n      (value) => isValidDate(parseIsoDate(value))\n    )\n    .test(\n      'validDate',\n      `Scheduled time must be bigger then ${\n        (isoDate(Date.now() - 24 * 60 * 60 * 1000), FORMAT)\n      }`,\n      (value) =>\n        parseIsoDate(value).valueOf() > Date.now() - 24 * 60 * 60 * 1000\n    );\n}\n\nexport function defaultValue() {\n  return isoDate(Date.now(), FORMAT);\n}\n\nfunction isValidDate(date: Date) {\n  return date instanceof Date && !Number.isNaN(date.valueOf());\n}\n","import { formatDate } from '@/portainer/filters/filters';\n\nimport { FORMAT } from '../../common/ScheduledTimeField';\n\nimport { columnHelper } from './helper';\n\nexport const scheduledTime = columnHelper.accessor('scheduledTime', {\n  header: 'Scheduled Time & Date',\n  // make sure the value has the right format\n  cell: ({ getValue }) => formatDate(getValue(), FORMAT, FORMAT),\n  id: 'time',\n});\n","import { ScheduleType } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const scheduleType = columnHelper.accessor('type', {\n  header: 'Type',\n  cell: ({ getValue }) => {\n    const value = getValue();\n\n    return ScheduleType[value];\n  },\n});\n","import { buildNameColumn } from '@@/datatables/buildNameColumn';\n\nimport { DecoratedItem } from '../types';\n\nimport { created } from './created';\nimport { groups } from './groups';\nimport { scheduleStatus } from './schedule-status';\nimport { scheduledTime } from './scheduled-time';\nimport { scheduleType } from './type';\n\nexport const columns = [\n  buildNameColumn<DecoratedItem>('name', '.item'),\n  scheduledTime,\n  groups,\n  scheduleType,\n  scheduleStatus,\n  created,\n];\n","import { Clock, Trash2 } from 'lucide-react';\nimport { useMemo } from 'react';\nimport _ from 'lodash';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable } from '@@/datatables';\nimport { PageHeader } from '@@/PageHeader';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useList } from '../queries/list';\nimport { EdgeUpdateSchedule, StatusType } from '../types';\nimport { useRemoveMutation } from '../queries/useRemoveMutation';\nimport { BetaAlert } from '../common/BetaAlert';\n\nimport { columns } from './columns';\nimport { createStore } from './datatable-store';\nimport { DecoratedItem } from './types';\n\nconst storageKey = 'update-schedules-list';\nconst settingsStore = createStore(storageKey);\n\nexport default withLimitToBE(ListView);\n\nexport function ListView() {\n  const tableState = useTableState(settingsStore, storageKey);\n\n  const listQuery = useList(true);\n  const groupsQuery = useEdgeGroups({\n    select: (groups) => Object.fromEntries(groups.map((g) => [g.Id, g.Name])),\n  });\n\n  const items: Array<DecoratedItem> = useMemo(() => {\n    if (!listQuery.data || !groupsQuery.data) {\n      return [];\n    }\n\n    return listQuery.data.map((item) => ({\n      ...item,\n      edgeGroupNames: _.compact(\n        item.edgeGroupIds.map((id) => groupsQuery.data[id])\n      ),\n    }));\n  }, [listQuery.data, groupsQuery.data]);\n\n  if (!listQuery.data || !groupsQuery.data) {\n    return null;\n  }\n\n  return (\n    <>\n      <PageHeader\n        title=\"Update & Rollback\"\n        breadcrumbs=\"Update and rollback\"\n        reload\n      />\n\n      <BetaAlert\n        className=\"mb-2 ml-[15px]\"\n        message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n      />\n\n      <Datatable\n        dataset={items}\n        columns={columns}\n        settingsManager={tableState}\n        title=\"Update & rollback\"\n        titleIcon={Clock}\n        emptyContentLabel=\"No schedules found\"\n        isLoading={listQuery.isLoading}\n        renderTableActions={(selectedRows) => (\n          <TableActions selectedRows={selectedRows} />\n        )}\n        isRowSelectable={(row) => row.original.status === StatusType.Pending}\n      />\n    </>\n  );\n}\n\nfunction TableActions({\n  selectedRows,\n}: {\n  selectedRows: EdgeUpdateSchedule[];\n}) {\n  const removeMutation = useRemoveMutation();\n  return (\n    <>\n      <Button\n        icon={Trash2}\n        color=\"dangerlight\"\n        onClick={() => handleRemove()}\n        disabled={selectedRows.length === 0}\n      >\n        Remove\n      </Button>\n\n      <Link to=\".create\">\n        <Button>Add update & rollback schedule</Button>\n      </Link>\n    </>\n  );\n\n  async function handleRemove() {\n    const confirmed = await confirmDelete(\n      'Are you sure you want to remove these?'\n    );\n    if (!confirmed) {\n      return;\n    }\n\n    removeMutation.mutate(selectedRows, {\n      onSuccess: () => {\n        notifySuccess('Success', 'Schedules successfully removed');\n      },\n    });\n  }\n}\n","import {\n  refreshableSettings,\n  hiddenColumnsSettings,\n  RefreshableTableSettings,\n  SettableColumnsTableSettings,\n  createPersistedStore,\n  BasicTableSettings,\n} from '@/react/components/datatables/types';\n\ninterface TableSettings\n  extends BasicTableSettings,\n    SettableColumnsTableSettings,\n    RefreshableTableSettings {}\n\nexport function createStore(storageKey: string) {\n  return createPersistedStore<TableSettings>(\n    storageKey,\n    'time',\n\n    (set) => ({\n      ...hiddenColumnsSettings(set),\n      ...refreshableSettings(set),\n    })\n  );\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError, withInvalidate } from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nasync function create(schedule: FormValues) {\n  try {\n    const { data } = await axios.post<EdgeUpdateSchedule>(buildUrl(), schedule);\n\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Failed to create edge update schedule'\n    );\n  }\n}\n\nexport function useCreateMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(create, {\n    ...withInvalidate(queryClient, [queryKeys.base()]),\n    ...withError(),\n  });\n}\n","import { Field, useField } from 'formik';\nimport { string } from 'yup';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { EdgeUpdateSchedule } from '../types';\n\nimport { FormValues } from './types';\n\nexport function NameField() {\n  const [{ name }, { error }] = useField<FormValues['name']>('name');\n\n  return (\n    <FormControl\n      label=\"Name\"\n      required\n      inputId=\"name-input\"\n      errors={error}\n      tooltip=\"A descriptive name helps identify the update or roll back schedule when you have more than one\"\n    >\n      <Field as={Input} name={name} id=\"name-input\" />\n    </FormControl>\n  );\n}\n\nexport function nameValidation(\n  schedules: EdgeUpdateSchedule[],\n  currentId?: EdgeUpdateSchedule['id']\n) {\n  return string()\n    .required('This field is required')\n    .test('unique', 'Name must be unique', (value) =>\n      schedules.every((s) => s.id === currentId || s.name !== value)\n    );\n}\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nexport function useEdgeGroupsEnvironmentIds(\n  edgeGroupsIds: Array<EdgeGroup['Id']>\n) {\n  const groupsQuery = useEdgeGroups({\n    select: (groups) =>\n      Object.fromEntries(groups.map((g) => [g.Id, g.Endpoints])),\n  });\n\n  const envIds = useMemo(\n    () =>\n      _.uniq(\n        _.compact(\n          edgeGroupsIds.flatMap((id) =>\n            groupsQuery.data ? groupsQuery.data[id] : []\n          )\n        )\n      ),\n    [edgeGroupsIds, groupsQuery.data]\n  );\n\n  return useMemo(\n    () => ({\n      data: groupsQuery.data ? envIds : null,\n      isLoading: groupsQuery.isLoading,\n    }),\n    [envIds, groupsQuery.data, groupsQuery.isLoading]\n  );\n}\n","import { Field, useField } from 'formik';\nimport _ from 'lodash';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { useSupportedAgentVersions } from '../queries/useSupportedAgentVersions';\n\nimport { FormValues } from './types';\n\n/**\n * in-case agents don't have any version field, it means they are version less then 2.15.x or that they still not associated.\n */\nconst DEFAULT_MIN_VERSION = '2.14.10';\n\nexport function VersionSelect({\n  minVersion = DEFAULT_MIN_VERSION,\n}: {\n  minVersion?: string;\n}) {\n  const [{ value: version }, { error }, { setValue }] =\n    useField<FormValues['version']>('version');\n  const supportedAgentVersionsQuery = useSupportedAgentVersions(minVersion, {\n    onSuccess(versions) {\n      if (versions.includes(version)) {\n        return;\n      }\n\n      setValue(_.last(versions) || '');\n    },\n  });\n\n  if (!supportedAgentVersionsQuery.data) {\n    return null;\n  }\n\n  if (!supportedAgentVersionsQuery.data.length) {\n    return (\n      <FormControl label=\"Version\">\n        <TextTip>No supported versions available</TextTip>\n      </FormControl>\n    );\n  }\n\n  const supportedVersions = supportedAgentVersionsQuery.data.map((version) => ({\n    label: version,\n    value: version,\n  }));\n\n  return (\n    <FormControl label=\"Version\" errors={error} inputId=\"version-input\">\n      <Field\n        id=\"version-input\"\n        name=\"version\"\n        as={Select}\n        className=\"form-control\"\n        placeholder=\"Version\"\n        options={supportedVersions}\n      />\n    </FormControl>\n  );\n}\n","import _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { semverCompare } from '@/react/common/semver-utils';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { VersionSelect } from './VersionSelect';\nimport { ScheduledTimeField } from './ScheduledTimeField';\n\ninterface Props {\n  environments: Environment[];\n  hasTimeZone: boolean;\n  hasNoTimeZone: boolean;\n  hasGroupSelected: boolean;\n  version: string;\n}\n\nexport function UpdateScheduleDetailsFieldset({\n  environments,\n  hasTimeZone,\n  hasNoTimeZone,\n  hasGroupSelected,\n  version,\n}: Props) {\n  const minVersion = _.first(\n    _.compact<string>(environments.map((env) => env.Agent.Version)).sort(\n      (a, b) => semverCompare(a, b)\n    )\n  );\n\n  return (\n    <>\n      {environments.length > 0 ? (\n        !!version && (\n          <TextTip color=\"blue\">\n            {environments.length} environment(s) will be updated to {version}\n          </TextTip>\n        )\n      ) : (\n        <TextTip color=\"orange\">\n          No environments options for the selected edge groups\n        </TextTip>\n      )}\n      <VersionSelect minVersion={minVersion} />\n\n      {hasTimeZone && hasGroupSelected && <ScheduledTimeField />}\n      {hasNoTimeZone && (\n        <TextTip>\n          These edge groups have older versions of the edge agent that do not\n          support scheduling, these will happen immediately\n        </TextTip>\n      )}\n    </>\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\ninterface Options<T> {\n  select?: (data: Record<EnvironmentId, string>) => T;\n  onSuccess?(data: T): void;\n  enabled?: boolean;\n}\n\nexport function usePreviousVersions<T = Record<EnvironmentId, string>>({\n  select,\n  onSuccess,\n  enabled,\n}: Options<T> = {}) {\n  return useQuery(queryKeys.previousVersions(), getPreviousVersions, {\n    select,\n    onSuccess,\n    enabled,\n  });\n}\n\nasync function getPreviousVersions() {\n  try {\n    const { data } = await axios.get<Record<EnvironmentId, string>>(\n      buildUrl(undefined, 'previous_versions')\n    );\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Failed to get list of edge update schedules'\n    );\n  }\n}\n","import { useFormikContext } from 'formik';\nimport _ from 'lodash';\nimport { useMemo, useEffect } from 'react';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { usePreviousVersions } from '../queries/usePreviousVersions';\n\nimport { FormValues } from './types';\nimport { useEdgeGroupsEnvironmentIds } from './useEdgeGroupsEnvironmentIds';\n\nexport function RollbackOptions() {\n  const { isLoading, count, version, versionError } = useSelectVersionOnMount();\n\n  const groupNames = useGroupNames();\n\n  if (versionError) {\n    return <TextTip>{versionError}</TextTip>;\n  }\n\n  if (!count) {\n    return (\n      <TextTip>\n        There are no rollback options available for your selected groups(s)\n      </TextTip>\n    );\n  }\n\n  if (isLoading || !groupNames) {\n    return null;\n  }\n\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        {count} edge device(s) from {groupNames} will rollback to version{' '}\n        {version}\n      </div>\n    </div>\n  );\n}\n\nfunction useSelectVersionOnMount() {\n  const {\n    values: { groupIds, version },\n    setFieldValue,\n    setFieldError,\n    errors: { version: versionError },\n  } = useFormikContext<FormValues>();\n\n  const environmentIdsQuery = useEdgeGroupsEnvironmentIds(groupIds);\n\n  const previousVersionsQuery = usePreviousVersions<string[]>({\n    enabled: !!environmentIdsQuery.data,\n  });\n\n  const previousVersions = useMemo(\n    () =>\n      previousVersionsQuery.data\n        ? _.uniq(\n            _.compact(\n              environmentIdsQuery.data?.map(\n                (envId) => previousVersionsQuery.data[envId]\n              )\n            )\n          )\n        : [],\n    [environmentIdsQuery.data, previousVersionsQuery.data]\n  );\n\n  useEffect(() => {\n    switch (previousVersions.length) {\n      case 0:\n        setFieldValue('version', '');\n        setFieldError('version', 'No rollback options available');\n        break;\n      case 1:\n        setFieldValue('version', previousVersions[0]);\n        break;\n      default:\n        setFieldError(\n          'version',\n          'Rollback is not available for these edge group as there are multiple version types to rollback to'\n        );\n    }\n  }, [previousVersions, setFieldError, setFieldValue]);\n\n  return {\n    isLoading: previousVersionsQuery.isLoading,\n    versionError,\n    version,\n    count: environmentIdsQuery.data?.length,\n  };\n}\n\nfunction useGroupNames() {\n  const {\n    values: { groupIds },\n  } = useFormikContext<FormValues>();\n\n  const groupsQuery = useEdgeGroups({\n    select: (groups) => Object.fromEntries(groups.map((g) => [g.Id, g.Name])),\n  });\n\n  if (!groupsQuery.data) {\n    return null;\n  }\n\n  return groupIds.map((id) => groupsQuery.data[id]).join(', ');\n}\n","import { RollbackOptions } from './RollbackOptions';\nimport { ScheduledTimeField } from './ScheduledTimeField';\n\ninterface Props {\n  hasTimeZone: boolean;\n  hasGroupSelected: boolean;\n}\n\nexport function RollbackScheduleDetailsFieldset({\n  hasTimeZone,\n  hasGroupSelected,\n}: Props) {\n  return (\n    <div className=\"mt-3\">\n      <RollbackOptions />\n      {hasTimeZone && hasGroupSelected && <ScheduledTimeField />}\n    </div>\n  );\n}\n","import { useFormikContext } from 'formik';\nimport { number } from 'yup';\nimport { useEffect } from 'react';\n\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nimport { ScheduleType } from '../types';\n\nimport { useEdgeGroupsEnvironmentIds } from './useEdgeGroupsEnvironmentIds';\nimport { useEnvironments } from './useEnvironments';\nimport { defaultValue } from './ScheduledTimeField';\nimport { FormValues } from './types';\nimport { UpdateScheduleDetailsFieldset } from './UpdateScheduleDetailsFieldset';\nimport { RollbackScheduleDetailsFieldset } from './RollbackScheduleDetailsFieldset';\n\nexport function ScheduleTypeSelector() {\n  const { values, setFieldValue } = useFormikContext<FormValues>();\n\n  const environmentIdsQuery = useEdgeGroupsEnvironmentIds(values.groupIds);\n\n  const edgeGroupsEnvironmentIds = environmentIdsQuery.data || [];\n  const environments = useEnvironments(edgeGroupsEnvironmentIds);\n\n  // old version is version that doesn't support scheduling of updates\n  const hasNoTimeZone = environments.some((env) => !env.LocalTimeZone);\n  const hasTimeZone = environments.some((env) => env.LocalTimeZone);\n  const hasGroupSelected = values.groupIds.length > 0;\n\n  useEffect(() => {\n    if (!hasTimeZone || !hasGroupSelected) {\n      setFieldValue('scheduledTime', '');\n    } else if (!values.scheduledTime) {\n      setFieldValue('scheduledTime', defaultValue());\n    }\n  }, [setFieldValue, hasTimeZone, values.scheduledTime, hasGroupSelected]);\n\n  return (\n    <div className=\"form-group\">\n      <div className=\"col-sm-12\">\n        <NavContainer>\n          <NavTabs\n            options={[\n              {\n                id: ScheduleType.Update,\n                label: 'Update',\n                children: (\n                  <UpdateScheduleDetailsFieldset\n                    environments={environments}\n                    hasTimeZone={hasTimeZone}\n                    hasNoTimeZone={hasNoTimeZone}\n                    hasGroupSelected={hasGroupSelected}\n                    version={values.version}\n                  />\n                ),\n              },\n              {\n                id: ScheduleType.Rollback,\n                label: 'Rollback',\n                children: (\n                  <RollbackScheduleDetailsFieldset\n                    hasTimeZone={hasTimeZone}\n                    hasGroupSelected={hasGroupSelected}\n                  />\n                ),\n              },\n            ]}\n            selectedId={values.type}\n            onSelect={handleChangeType}\n          />\n        </NavContainer>\n      </div>\n    </div>\n  );\n\n  function handleChangeType(scheduleType: ScheduleType) {\n    setFieldValue('type', scheduleType);\n    setFieldValue('version', '');\n  }\n}\n\nexport function typeValidation() {\n  return number()\n    .oneOf([ScheduleType.Rollback, ScheduleType.Update])\n    .default(ScheduleType.Update);\n}\n","import { useEnvironmentList } from '@/react/portainer/environments/queries/useEnvironmentList';\nimport { EdgeTypes, EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function useEnvironments(environmentsIds: Array<EnvironmentId>) {\n  const environmentsQuery = useEnvironmentList(\n    { endpointIds: environmentsIds, types: EdgeTypes, pageLimit: 0 },\n    {\n      enabled: environmentsIds.length > 0,\n    }\n  );\n\n  return environmentsQuery.environments;\n}\n","import { array, object, SchemaOf, string, number } from 'yup';\n\nimport { parseIsoDate } from '@/portainer/filters/filters';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nimport { EdgeUpdateSchedule, ScheduleType } from '../types';\n\nimport { nameValidation } from './NameField';\nimport { typeValidation } from './ScheduleTypeSelector';\nimport { FormValues } from './types';\n\nexport function validation(\n  schedules: EdgeUpdateSchedule[],\n  edgeGroups: Array<EdgeGroup> | undefined,\n  currentId?: EdgeUpdateSchedule['id']\n): SchemaOf<FormValues> {\n  return object({\n    groupIds: array()\n      .of(number().default(0))\n      .min(1, 'At least one group is required')\n      .test(\n        'At least one group must have endpoints',\n        (groupIds) =>\n          !!(\n            groupIds &&\n            edgeGroups &&\n            groupIds?.flatMap(\n              (id) => edgeGroups?.find((group) => group.Id === id)?.Endpoints\n            ).length > 0\n          )\n      ),\n    name: nameValidation(schedules, currentId),\n    type: typeValidation(),\n    scheduledTime: string()\n      .default('')\n      .test('valid', (value) => !value || parseIsoDate(value) !== null),\n    version: string()\n      .default('')\n      .when('type', {\n        is: ScheduleType.Update,\n        // update type\n        then: (schema) => schema.required('Version is required'),\n        // rollback\n        otherwise: (schema) => schema.required('No rollback options available'),\n      }),\n    registryId: number().default(0),\n  });\n}\n","import { FormikErrors, FormikHandlers } from 'formik';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/ReactSelect';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { FormValues } from './types';\n\ninterface Props {\n  disabled?: boolean;\n  onBlur: FormikHandlers['handleBlur'];\n  value: FormValues['groupIds'];\n  error?: FormikErrors<FormValues>['groupIds'];\n  onChange(value: FormValues['groupIds']): void;\n}\n\nexport function EdgeGroupsField({\n  disabled,\n  onBlur,\n  value,\n  error,\n  onChange,\n}: Props) {\n  const groupsQuery = useEdgeGroups();\n\n  const selectedGroups = groupsQuery.data?.filter((group) =>\n    value.includes(group.Id)\n  );\n\n  return (\n    <div>\n      <FormControl\n        label=\"Groups\"\n        required\n        inputId=\"groups-select\"\n        errors={error}\n        tooltip=\"Updates are done based on groups, allowing you to choose multiple devices at the same time and the ability to roll out progressively across all environments by scheduling them for different days.\"\n      >\n        <Select\n          name=\"groupIds\"\n          onBlur={onBlur}\n          value={selectedGroups}\n          inputId=\"groups-select\"\n          placeholder=\"Select one or multiple group(s)\"\n          onChange={(selectedGroups) =>\n            onChange(selectedGroups.map((g) => g.Id))\n          }\n          isMulti\n          options={groupsQuery.data || []}\n          getOptionLabel={(group) => group.Name}\n          getOptionValue={(group) => group.Id.toString()}\n          closeMenuOnSelect={false}\n          isDisabled={disabled}\n        />\n      </FormControl>\n      <TextTip color=\"blue\">\n        Select groups of Edge environments to update\n      </TextTip>\n    </div>\n  );\n}\n","import { useMemo } from 'react';\nimport { Settings } from 'lucide-react';\nimport { Formik, Form as FormikForm } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Link } from '@@/Link';\n\nimport { ScheduleType } from '../types';\nimport { useCreateMutation } from '../queries/create';\nimport { FormValues } from '../common/types';\nimport { validation } from '../common/validation';\nimport { ScheduleTypeSelector } from '../common/ScheduleTypeSelector';\nimport { useList } from '../queries/list';\nimport { NameField } from '../common/NameField';\nimport { EdgeGroupsField } from '../common/EdgeGroupsField';\nimport { BetaAlert } from '../common/BetaAlert';\nimport { defaultValue } from '../common/ScheduledTimeField';\n\nexport default withLimitToBE(CreateView);\n\nfunction CreateView() {\n  const initialValues = useMemo<FormValues>(\n    () => ({\n      name: '',\n      groupIds: [],\n      type: ScheduleType.Update,\n      version: '',\n      scheduledTime: defaultValue(),\n    }),\n    []\n  );\n  const edgeGroupsQuery = useEdgeGroups();\n  const schedulesQuery = useList();\n\n  const createMutation = useCreateMutation();\n  const router = useRouter();\n\n  if (!schedulesQuery.data) {\n    return null;\n  }\n\n  const schedules = schedulesQuery.data;\n\n  return (\n    <>\n      <PageHeader\n        title=\"Update & Rollback\"\n        breadcrumbs=\"Edge agent update and rollback\"\n        reload\n      />\n\n      <BetaAlert\n        className=\"mb-2 ml-[15px]\"\n        message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <Widget.Title title=\"Update & Rollback Scheduler\" icon={Settings} />\n            <Widget.Body>\n              <TextTip color=\"blue\" className=\"mb-2\">\n                Devices need to be allocated to an Edge group, visit the{' '}\n                <Link to=\"edge.groups\">Edge Groups</Link> page to assign\n                environments and create groups.\n              </TextTip>\n\n              <Formik\n                initialValues={initialValues}\n                onSubmit={handleSubmit}\n                validateOnMount\n                validationSchema={() =>\n                  validation(schedules, edgeGroupsQuery.data)\n                }\n              >\n                {({ isValid, setFieldValue, values, handleBlur, errors }) => (\n                  <FormikForm className=\"form-horizontal\">\n                    <NameField />\n                    <EdgeGroupsField\n                      onChange={(value) => setFieldValue('groupIds', value)}\n                      value={values.groupIds}\n                      onBlur={handleBlur}\n                      error={errors.groupIds}\n                    />\n\n                    <TextTip color=\"blue\">\n                      You can upgrade from any agent version to 2.17 or later\n                      only. You can not upgrade to an agent version prior to\n                      2.17 . The ability to rollback to originating version is\n                      for 2.15.0+ only.\n                    </TextTip>\n\n                    <div className=\"mt-2\">\n                      <ScheduleTypeSelector />\n                    </div>\n\n                    <div className=\"form-group\">\n                      <div className=\"col-sm-12\">\n                        <LoadingButton\n                          disabled={!isValid}\n                          isLoading={createMutation.isLoading}\n                          loadingText=\"Creating...\"\n                        >\n                          Create Schedule\n                        </LoadingButton>\n                      </div>\n                    </div>\n                  </FormikForm>\n                )}\n              </Formik>\n            </Widget.Body>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n\n  function handleSubmit(values: FormValues) {\n    createMutation.mutate(values, {\n      onSuccess() {\n        notifySuccess('Success', 'Created schedule successfully');\n        router.stateService.go('^');\n      },\n    });\n  }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeUpdateResponse, EdgeUpdateSchedule } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nexport function useItem(id: EdgeUpdateSchedule['id']) {\n  return useQuery(queryKeys.item(id), () => getItem(id));\n}\n\ntype EdgeUpdateItemResponse = EdgeUpdateResponse & {\n  isActive: boolean;\n};\n\nasync function getItem(id: EdgeUpdateSchedule['id']) {\n  try {\n    const { data } = await axios.get<EdgeUpdateItemResponse>(buildUrl(id), {\n      params: { includeEdgeStack: true },\n    });\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Failed to get list of edge update schedules'\n    );\n  }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError, withInvalidate } from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\ninterface Update {\n  id: EdgeUpdateSchedule['id'];\n  values: Partial<FormValues>;\n}\n\nasync function update({ id, values }: Update) {\n  try {\n    const { data } = await axios.put<EdgeUpdateSchedule>(buildUrl(id), values);\n\n    return data;\n  } catch (err) {\n    throw parseAxiosError(\n      err as Error,\n      'Failed to update edge update schedule'\n    );\n  }\n}\n\nexport function useUpdateMutation() {\n  const queryClient = useQueryClient();\n  return useMutation(update, {\n    ...withInvalidate(queryClient, [queryKeys.base()]),\n    ...withError(),\n  });\n}\n","import { Settings } from 'lucide-react';\nimport { Formik, Form as FormikForm } from 'formik';\nimport { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { object, SchemaOf } from 'yup';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { InformationPanel } from '@@/InformationPanel';\nimport { Link } from '@@/Link';\n\nimport { useItem } from '../queries/useItem';\nimport { validation } from '../common/validation';\nimport { useUpdateMutation } from '../queries/useUpdateMutation';\nimport { useList } from '../queries/list';\nimport { NameField, nameValidation } from '../common/NameField';\nimport { EdgeGroupsField } from '../common/EdgeGroupsField';\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\nimport { ScheduleTypeSelector } from '../common/ScheduleTypeSelector';\nimport { BetaAlert } from '../common/BetaAlert';\n\nexport default withLimitToBE(ItemView);\n\nfunction ItemView() {\n  const {\n    params: { id: idParam },\n  } = useCurrentStateAndParams();\n\n  const id = parseInt(idParam, 10);\n  const edgeGroupsQuery = useEdgeGroups();\n\n  if (!idParam || Number.isNaN(id)) {\n    throw new Error('id is a required path param');\n  }\n\n  const updateMutation = useUpdateMutation();\n  const router = useRouter();\n  const itemQuery = useItem(id);\n  const schedulesQuery = useList();\n\n  if (!itemQuery.data || !schedulesQuery.data) {\n    return null;\n  }\n\n  const item = itemQuery.data;\n  const isScheduleActive = item.isActive;\n\n  const schedules = schedulesQuery.data;\n\n  const initialValuesActive: Partial<FormValues> = {\n    name: item.name,\n  };\n\n  const initialValues: FormValues = {\n    name: item.name,\n    groupIds: item.edgeGroupIds,\n    type: item.type,\n    version: item.version,\n    scheduledTime: item.scheduledTime,\n  };\n\n  const environmentsCount = Object.keys(\n    item.environmentsPreviousVersions\n  ).length;\n\n  return (\n    <>\n      <PageHeader\n        title=\"Update & Rollback\"\n        breadcrumbs={[\n          { label: 'Edge agent update and rollback', link: '^' },\n          item.name,\n        ]}\n        reload\n      />\n\n      <BetaAlert\n        className=\"mb-2 ml-[15px]\"\n        message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <Widget.Title title=\"Update & Rollback Scheduler\" icon={Settings} />\n            <Widget.Body>\n              <TextTip color=\"blue\">\n                Devices need to be allocated to an Edge group, visit the{' '}\n                <Link to=\"edge.groups\">Edge Groups</Link> page to assign\n                environments and create groups.\n              </TextTip>\n\n              <Formik\n                initialValues={\n                  !isScheduleActive ? initialValues : initialValuesActive\n                }\n                onSubmit={(values) => {\n                  updateMutation.mutate(\n                    { id, values },\n                    {\n                      onSuccess() {\n                        notifySuccess(\n                          'Success',\n                          'Updated schedule successfully'\n                        );\n                        router.stateService.go('^');\n                      },\n                    }\n                  );\n                }}\n                validateOnMount\n                validationSchema={() =>\n                  updateValidation(\n                    item.id,\n                    schedules,\n                    edgeGroupsQuery.data,\n                    isScheduleActive\n                  )\n                }\n              >\n                {({ isValid, setFieldValue, values, handleBlur, errors }) => (\n                  <FormikForm className=\"form-horizontal\">\n                    <NameField />\n\n                    <EdgeGroupsField\n                      disabled={isScheduleActive}\n                      onChange={(value) => setFieldValue('groupIds', value)}\n                      value={\n                        isScheduleActive\n                          ? item.edgeGroupIds\n                          : values.groupIds || []\n                      }\n                      onBlur={handleBlur}\n                      error={errors.groupIds}\n                    />\n\n                    <div className=\"mt-2\">\n                      {isScheduleActive ? (\n                        <InformationPanel>\n                          <TextTip color=\"blue\">\n                            {environmentsCount} environment(s) will be updated\n                            to version {item.version} on {item.scheduledTime}{' '}\n                            (local time)\n                          </TextTip>\n                        </InformationPanel>\n                      ) : (\n                        <ScheduleTypeSelector />\n                      )}\n                    </div>\n\n                    <div className=\"form-group\">\n                      <div className=\"col-sm-12\">\n                        <LoadingButton\n                          disabled={!isValid}\n                          isLoading={updateMutation.isLoading}\n                          loadingText=\"Updating...\"\n                        >\n                          Update Schedule\n                        </LoadingButton>\n                      </div>\n                    </div>\n                  </FormikForm>\n                )}\n              </Formik>\n            </Widget.Body>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n}\n\nfunction updateValidation(\n  itemId: EdgeUpdateSchedule['id'],\n  schedules: EdgeUpdateSchedule[],\n  edgeGroups: Array<EdgeGroup> | undefined,\n  isScheduleActive: boolean\n): SchemaOf<{ name: string } | FormValues> {\n  return !isScheduleActive\n    ? validation(schedules, edgeGroups, itemId)\n    : object({ name: nameValidation(schedules, itemId) });\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport {\n  ListView,\n  CreateView,\n  ItemView,\n} from '@/react/portainer/environments/update-schedules';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\n\nexport const updateSchedulesModule = angular\n  .module('portainer.edge.updateSchedules', [])\n  .component(\n    'updateSchedulesListView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), [])\n  )\n  .component(\n    'updateSchedulesCreateView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(CreateView))), [])\n  )\n  .component(\n    'updateSchedulesItemView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(ItemView))), [])\n  )\n  .config(config).name;\n\nfunction config($stateRegistryProvider: StateRegistry) {\n  $stateRegistryProvider.register({\n    name: 'portainer.endpoints.updateSchedules',\n    url: '/update-schedules',\n    views: {\n      'content@': {\n        component: 'updateSchedulesListView',\n      },\n    },\n    data: {\n      docs: '/admin/environments/update',\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'portainer.endpoints.updateSchedules.create',\n    url: '/update-schedules/new',\n    views: {\n      'content@': {\n        component: 'updateSchedulesCreateView',\n      },\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'portainer.endpoints.updateSchedules.item',\n    url: '/update-schedules/:id',\n    views: {\n      'content@': {\n        component: 'updateSchedulesItemView',\n      },\n    },\n  });\n}\n","import angular from 'angular';\n\nimport { HomeView } from '@/react/portainer/HomeView';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { CreateUserAccessToken } from '@/react/portainer/account/CreateAccessTokenView';\nimport { EdgeComputeSettingsView } from '@/react/portainer/settings/EdgeComputeView/EdgeComputeSettingsView';\nimport { EdgeAutoCreateScriptView } from '@/react/portainer/environments/EdgeAutoCreateScriptView';\nimport { ListView as EnvironmentsListView } from '@/react/portainer/environments/ListView';\nimport { BackupSettingsPanel } from '@/react/portainer/settings/SettingsView/BackupSettingsView/BackupSettingsPanel';\nimport { SettingsView } from '@/react/portainer/settings/SettingsView/SettingsView';\nimport { CreateHelmRepositoriesView } from '@/react/portainer/account/helm-repositories/CreateHelmRepositoryView';\n\nimport { wizardModule } from './wizard';\nimport { teamsModule } from './teams';\nimport { updateSchedulesModule } from './update-schedules';\n\nexport const viewsModule = angular\n  .module('portainer.app.react.views', [\n    wizardModule,\n    teamsModule,\n    updateSchedulesModule,\n  ])\n  .component(\n    'homeView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(HomeView))), [])\n  )\n  .component(\n    'edgeAutoCreateScriptView',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(EdgeAutoCreateScriptView))),\n      []\n    )\n  )\n  .component(\n    'createUserAccessToken',\n    r2a(\n      withReactQuery(withCurrentUser(withUIRouter(CreateUserAccessToken))),\n      []\n    )\n  )\n  .component(\n    'settingsEdgeCompute',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(EdgeComputeSettingsView))),\n      ['onSubmit', 'settings']\n    )\n  )\n  .component(\n    'environmentsListView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(EnvironmentsListView))), [])\n  )\n  .component(\n    'backupSettingsPanel',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(BackupSettingsPanel))), [])\n  )\n  .component(\n    'settingsView',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(SettingsView))), [])\n  )\n  .component(\n    'createHelmRepositoryView',\n    r2a(\n      withUIRouter(withReactQuery(withCurrentUser(CreateHelmRepositoriesView))),\n      []\n    )\n  ).name;\n","import { Settings } from '@/react/portainer/settings/types';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { EdgeComputeSettings } from './EdgeComputeSettings';\nimport { DeploymentSyncOptions } from './DeploymentSyncOptions/DeploymentSyncOptions';\nimport { AutomaticEdgeEnvCreation } from './AutomaticEdgeEnvCreation';\n\ninterface Props {\n  settings: Settings;\n  onSubmit(values: Settings): void;\n}\n\nexport function EdgeComputeSettingsView({ settings, onSubmit }: Props) {\n  return (\n    <div className=\"row\">\n      <EdgeComputeSettings settings={settings} onSubmit={onSubmit} />\n\n      <DeploymentSyncOptions />\n\n      {isBE && <AutomaticEdgeEnvCreation />}\n    </div>\n  );\n}\n","import { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody } from '@@/Widget';\n\nimport { CreateHelmRepositoryForm } from './CreateHelmRespositoriesForm';\n\nexport function CreateHelmRepositoriesView() {\n  return (\n    <>\n      <PageHeader\n        title=\"Create Helm repository\"\n        breadcrumbs={[\n          { label: 'My account', link: 'portainer.account' },\n          { label: 'Create Helm repository' },\n        ]}\n        reload\n      />\n\n      <div className=\"row\">\n        <div className=\"col-sm-12\">\n          <Widget>\n            <WidgetBody>\n              <CreateHelmRepositoryForm />\n            </WidgetBody>\n          </Widget>\n        </div>\n      </div>\n    </>\n  );\n}\n","import angular from 'angular';\n\nimport { componentsModule } from './components';\nimport { viewsModule } from './views';\n\nexport const reactModule = angular.module('portainer.app.react', [\n  viewsModule,\n  componentsModule,\n]).name;\n","import {\n  createContext,\n  PropsWithChildren,\n  useCallback,\n  useContext,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n  useReducer,\n} from 'react';\nimport angular, { IScope } from 'angular';\nimport _ from 'lodash';\n\nimport * as storage from '@/react/hooks/useLocalStorage';\n\n// using bootstrap breakpoint - https://getbootstrap.com/docs/5.0/layout/breakpoints/#min-width\nconst mobileWidth = 992;\nconst storageKey = 'toolbar_toggle';\n\ninterface State {\n  isOpen: boolean;\n  toggle(): void;\n}\n\nexport const Context = createContext<State | null>(null);\nContext.displayName = 'SidebarContext';\n\nexport function useSidebarState() {\n  const context = useContext(Context);\n\n  if (!context) {\n    throw new Error('useSidebarContext must be used within a SidebarProvider');\n  }\n\n  return context;\n}\n\nexport function SidebarProvider({ children }: { children: React.ReactNode }) {\n  const state = useSidebarStateLocal();\n\n  return <Context.Provider value={state}> {children} </Context.Provider>;\n}\n\nexport function TestSidebarProvider({ children }: PropsWithChildren<unknown>) {\n  const [isOpen, toggle] = useReducer((state) => !state, true);\n\n  const state = useMemo(\n    () => ({ isOpen, toggle: () => toggle() }),\n    [isOpen, toggle]\n  );\n\n  return <Context.Provider value={state}> {children} </Context.Provider>;\n}\n\n/* @ngInject */\nexport function AngularSidebarService($rootScope: IScope) {\n  const state = {\n    isOpen: false,\n  };\n\n  function isSidebarOpen() {\n    return state.isOpen;\n  }\n\n  function setIsOpen(isOpen: boolean) {\n    $rootScope.$evalAsync(() => {\n      state.isOpen = isOpen;\n    });\n  }\n\n  return { isSidebarOpen, setIsOpen };\n}\n\nfunction useSidebarStateLocal() {\n  const [storageIsOpen, setIsOpenInStorage] = storage.useLocalStorage(\n    storageKey,\n    true\n  );\n  const [isOpen, setIsOpen, undoIsOpenChange] = useStateWithUndo(\n    initialState()\n  );\n\n  const onResize = useMemo(\n    () =>\n      _.debounce(() => {\n        if (isMobile()) {\n          if (isOpen) {\n            setIsOpen(false);\n          }\n        } else {\n          undoIsOpenChange();\n        }\n      }, 50),\n    [setIsOpen, undoIsOpenChange, isOpen]\n  );\n\n  useUpdateAngularService(isOpen);\n\n  useEffect(() => {\n    if (window.ddExtension) {\n      return undefined;\n    }\n\n    window.addEventListener('resize', onResize);\n    return () => window.removeEventListener('resize', onResize);\n  }, [onResize]);\n\n  return {\n    isOpen,\n    toggle,\n  };\n\n  function toggle(value = !isOpen) {\n    setIsOpenInStorage(value);\n    setIsOpen(value);\n  }\n\n  function initialState() {\n    if (isMobile() || window.ddExtension) {\n      return false;\n    }\n\n    return storageIsOpen;\n  }\n}\n\nfunction useStateWithUndo<T>(\n  initialState: T\n): [T, (value: T) => void, () => void] {\n  const [state, setState] = useState(initialState);\n  const prevState = useRef<T>();\n\n  const undo = useCallback(() => {\n    if (!prevState.current) {\n      return;\n    }\n\n    setState(prevState.current);\n    prevState.current = undefined;\n  }, [prevState]);\n\n  const handleSetState = useCallback(\n    (newState: T) => {\n      prevState.current = state;\n      setState(newState);\n    },\n    [state]\n  );\n\n  return [state, handleSetState, undo];\n}\n\nfunction useUpdateAngularService(isOpen: boolean) {\n  useEffect(() => {\n    // to sync \"outside state\" - for angularjs\n    const $injector = angular.element(document).injector();\n    $injector.invoke(\n      /* @ngInject */ (\n        SidebarService: ReturnType<typeof AngularSidebarService>\n      ) => {\n        SidebarService.setIsOpen(isOpen);\n      }\n    );\n  }, [isOpen]);\n}\n\nfunction isMobile() {\n  const width = window.innerWidth;\n\n  return width < mobileWidth;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-Sidebar-module__root\",\"nav\":\"app-react-sidebar-Sidebar-module__nav\",\"navListContainer\":\"app-react-sidebar-Sidebar-module__nav-list-container\"};","import { PropsWithChildren, AriaAttributes } from 'react';\nimport clsx from 'clsx';\n\ninterface Props {\n  className?: string;\n  label?: string;\n}\n\nexport function Wrapper({\n  className,\n  children,\n  label,\n  ...ariaProps\n}: PropsWithChildren<Props> & AriaAttributes) {\n  return (\n    <li\n      className={clsx(\n        className,\n        'flex min-h-8 text-gray-3 th-highcontrast:text-white [&>a]:text-inherit [&>a]:hover:text-inherit [&>a]:hover:no-underline'\n      )}\n      aria-label={label}\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      {...ariaProps}\n    >\n      {children}\n    </li>\n  );\n}\n","import Tippy, { TippyProps } from '@tippyjs/react';\n\ntype Props = {\n  content: React.ReactNode;\n  children?: TippyProps['children'];\n};\n\nexport function SidebarTooltip({ children, content }: Props) {\n  return (\n    <Tippy\n      className=\"sidebar !rounded-md bg-blue-9 p-3 !opacity-100 be:bg-gray-9 th-dark:bg-gray-true-9 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white\"\n      content={content}\n      delay={[0, 0]}\n      duration={[0, 0]}\n      zIndex={1000}\n      placement=\"right\"\n      arrow\n      allowHTML\n      interactive\n    >\n      {children}\n    </Tippy>\n  );\n}\n","import {\n  TransitionOptions,\n  useCurrentStateAndParams,\n  useSrefActive,\n} from '@uirouter/react';\n\nexport type PathOptions = {\n  ignorePaths?: string[];\n  includePaths?: string[];\n};\n\n/**\n * Extends useSrefActive by ignoring or including paths and updating the classNames field returned when a child route is active.\n * @param to The route to match\n * @param activeClassName The active class names to return\n * @param params The route params\n * @param options The transition options\n * @param pathOptions The paths to ignore/include\n */\nexport function useSidebarSrefActive(\n  to: string,\n  // default values are the classes used in the sidebar for an active item\n  activeClassName: string = 'bg-blue-5/25 be:bg-gray-5/25 th-dark:bg-gray-true-5/25',\n  params: Partial<Record<string, string>> = {},\n  options: TransitionOptions = {},\n  pathOptions: PathOptions = {\n    ignorePaths: [],\n    includePaths: [],\n  }\n) {\n  const { state: { name: stateName = '' } = {} } = useCurrentStateAndParams();\n  const anchorProps = useSrefActive(to, params || {}, activeClassName, options);\n\n  // overwrite the className to '' if the the current route is in ignorePaths\n  const isIgnorePathInRoute = pathOptions.ignorePaths?.some((path) =>\n    stateName.includes(path)\n  );\n  if (isIgnorePathInRoute) {\n    return { ...anchorProps, className: '' };\n  }\n\n  // overwrite the className to activeClassName if the the current route is in includePaths\n  const isIncludePathInRoute = pathOptions.includePaths?.some((path) =>\n    stateName.includes(path)\n  );\n  if (isIncludePathInRoute) {\n    return { ...anchorProps, className: activeClassName };\n  }\n\n  return anchorProps;\n}\n","import { Icon as IconTest } from 'lucide-react';\nimport clsx from 'clsx';\nimport { MouseEventHandler, PropsWithChildren } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Icon } from '@@/Icon';\n\nimport { useSidebarState } from '../useSidebarState';\n\nimport { Wrapper } from './Wrapper';\nimport { SidebarTooltip } from './SidebarTooltip';\nimport { useSidebarSrefActive } from './useSidebarSrefActive';\n\ninterface Props extends AutomationTestingProps {\n  icon?: IconTest;\n  to: string;\n  params?: object;\n  label: string;\n  isSubMenu?: boolean;\n  ignorePaths?: string[];\n  includePaths?: string[];\n}\n\nexport function SidebarItem({\n  icon,\n  to,\n  params,\n  label,\n  isSubMenu = false,\n  ignorePaths = [],\n  includePaths = [],\n  'data-cy': dataCy,\n}: Props) {\n  const { isOpen } = useSidebarState();\n  const anchorProps = useSidebarSrefActive(to, undefined, params, undefined, {\n    ignorePaths,\n    includePaths,\n  });\n\n  const sidebarAnchor = (\n    <Wrapper label={label}>\n      <ItemAnchor\n        href={anchorProps.href}\n        onClick={anchorProps.onClick}\n        className={anchorProps.className}\n        dataCy={dataCy}\n        isOpen={isOpen}\n        isSubMenu={isSubMenu}\n      >\n        {!!icon && <Icon icon={icon} className={clsx('flex [&>svg]:w-4')} />}\n        {(isOpen || isSubMenu) && <span>{label}</span>}\n      </ItemAnchor>\n    </Wrapper>\n  );\n\n  if (isOpen || isSubMenu) return sidebarAnchor;\n\n  return (\n    <SidebarTooltip\n      content={\n        <div className=\"bg-blue-8 be:bg-gray-8 th-dark:bg-gray-true-8 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white rounded\">\n          <Wrapper label={label}>\n            <ItemAnchor\n              href={anchorProps.href}\n              onClick={anchorProps.onClick}\n              className={anchorProps.className}\n              dataCy={dataCy}\n              isOpen={isOpen}\n              isSubMenu={isSubMenu}\n            >\n              <span className=\"px-3\">{label}</span>\n            </ItemAnchor>\n          </Wrapper>\n        </div>\n      }\n    >\n      <span className=\"w-full\">{sidebarAnchor}</span>\n    </SidebarTooltip>\n  );\n}\n\ntype ItemAnchorProps = {\n  href?: string;\n  onClick: MouseEventHandler<unknown>;\n  className: string;\n  isOpen: boolean;\n  isSubMenu: boolean;\n  dataCy?: string;\n};\n\nfunction ItemAnchor({\n  href,\n  onClick,\n  className,\n  isOpen,\n  isSubMenu,\n  dataCy,\n  children,\n}: PropsWithChildren<ItemAnchorProps>) {\n  return (\n    <a\n      href={href}\n      onClick={onClick}\n      className={clsx(\n        className,\n        'text-inherit no-underline hover:text-inherit hover:no-underline focus:text-inherit focus:no-underline',\n        'flex h-8 w-full flex-1 items-center space-x-4 rounded-md text-sm',\n        'transition-colors duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20',\n        {\n          // submenu items are always expanded (in a tooltip or in the sidebar)\n          'w-full justify-start px-3': isOpen || isSubMenu,\n          'w-8 justify-center': !isOpen && !isSubMenu,\n        }\n      )}\n      data-cy={dataCy}\n    >\n      {children}\n    </a>\n  );\n}\n","import { SidebarItem as MainComponent } from './SidebarItem';\nimport { Wrapper } from './Wrapper';\n\ninterface SubComponents {\n  Wrapper: typeof Wrapper;\n}\n\nexport const SidebarItem: typeof MainComponent & SubComponents =\n  MainComponent as typeof MainComponent & SubComponents;\n\nSidebarItem.Wrapper = Wrapper;\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport { useSidebarState } from './useSidebarState';\n\ninterface Props {\n  title: ReactNode;\n  showTitleWhenOpen?: boolean;\n  'aria-label'?: string;\n}\n\nexport function SidebarSection({\n  title,\n  children,\n  showTitleWhenOpen,\n  'aria-label': ariaLabel,\n}: PropsWithChildren<Props>) {\n  return (\n    <div>\n      <SidebarSectionTitle showWhenOpen={showTitleWhenOpen}>\n        {title}\n      </SidebarSectionTitle>\n\n      <nav\n        aria-label={typeof title === 'string' ? title : ariaLabel}\n        className=\"mt-4\"\n      >\n        <ul>{children}</ul>\n      </nav>\n    </div>\n  );\n}\n\ninterface TitleProps {\n  showWhenOpen?: boolean;\n}\n\nexport function SidebarSectionTitle({\n  showWhenOpen,\n  children,\n}: PropsWithChildren<TitleProps>) {\n  const { isOpen } = useSidebarState();\n\n  if (!isOpen && !showWhenOpen) {\n    return null;\n  }\n\n  return (\n    <li className=\"ml-3 text-sm text-gray-3 transition-all duration-500 ease-in-out be:text-gray-6\">\n      {children}\n    </li>\n  );\n}\n","import clsx from 'clsx';\nimport { ChevronDown } from 'lucide-react';\nimport { PropsWithChildren, useState } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\nimport { useSidebarState } from '../useSidebarState';\n\nimport { Wrapper } from './Wrapper';\nimport { PathOptions, useSidebarSrefActive } from './useSidebarSrefActive';\nimport { SidebarTooltip } from './SidebarTooltip';\n\ntype Props = {\n  label: string;\n  icon: React.ReactNode;\n  to: string;\n  pathOptions?: PathOptions;\n  params?: object;\n  listId: string;\n};\n\nexport function SidebarParent({\n  children,\n  icon,\n  label: title,\n  to,\n  params,\n  pathOptions,\n  listId,\n  'data-cy': dataCy,\n}: PropsWithChildren<Props & AutomationTestingProps>) {\n  const anchorProps = useSidebarSrefActive(\n    to,\n    undefined,\n    params,\n    {},\n    pathOptions\n  );\n\n  const hasActiveChild = !!anchorProps.className;\n\n  const { isOpen: isSidebarOpen } = useSidebarState();\n\n  const [isExpanded, setIsExpanded] = useState(hasActiveChild);\n\n  const parentItem = (\n    <Wrapper className=\"flex flex-col\">\n      <div\n        className={clsx(\n          'w-full h-8 items-center ease-in-out transition-colors flex duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20 rounded-md',\n          isSidebarOpen && 'pl-3',\n          // only highlight the parent when the sidebar is closed/contracted and a child item is selected\n          (!isSidebarOpen || !isExpanded) && anchorProps.className\n        )}\n        data-cy={dataCy}\n      >\n        <button\n          type=\"button\"\n          className=\"flex-1 h-full cursor-pointer flex items-center border-none bg-transparent\"\n          onClick={() => setIsExpanded(true)}\n        >\n          <Link\n            to={to}\n            params={params}\n            className={clsx(\n              'w-full h-full items-center flex list-none border-none text-inherit hover:text-inherit hover:no-underline focus:text-inherit focus:no-underline',\n              {\n                'justify-start': isSidebarOpen,\n                'justify-center': !isSidebarOpen,\n              }\n            )}\n          >\n            <Icon icon={icon} />\n            {isSidebarOpen && <span className=\"pl-4\">{title}</span>}\n          </Link>\n        </button>\n        {isSidebarOpen && (\n          <button\n            type=\"button\"\n            className=\"flex-none border-none bg-transparent flex items-center group p-0 px-3 h-8\"\n            onClick={(e) => {\n              e.preventDefault();\n              e.stopPropagation();\n              setIsExpanded((isExpanded) => !isExpanded);\n            }}\n            title={isExpanded ? 'Collapse' : 'Expand'}\n            aria-expanded={isExpanded}\n            aria-controls={listId}\n          >\n            <div className=\"flex items-center group-hover:bg-blue-5 be:group-hover:bg-gray-5 group-hover:th-dark:bg-gray-true-7 group-hover:bg-opacity-10 be:group-hover:bg-opacity-10 rounded-full p-[3px] transition ease-in-out\">\n              <Icon\n                icon={ChevronDown}\n                size=\"md\"\n                className={clsx('transition ease-in-out', {\n                  'rotate-180': isExpanded,\n                  'rotate-0': !isExpanded,\n                })}\n              />\n            </div>\n          </button>\n        )}\n      </div>\n    </Wrapper>\n  );\n\n  const childList = (\n    <ul\n      id={listId}\n      // pl-11 must be important because it needs to avoid the padding from '.root ul' in sidebar.module.css\n      className={clsx('text-white !pl-11', {\n        hidden: !isExpanded,\n        block: isExpanded,\n      })}\n    >\n      {children}\n    </ul>\n  );\n\n  if (isSidebarOpen)\n    return (\n      <>\n        {parentItem}\n        {childList}\n      </>\n    );\n\n  return (\n    <SidebarTooltip\n      content={\n        <ul>\n          <li className=\"flex items-center space-x-2 text-sm mb-1\">\n            <span>{title}</span>\n          </li>\n          <div className=\"bg-blue-8 be:bg-gray-8 th-dark:bg-gray-true-8 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white rounded\">\n            {children}\n          </div>\n        </ul>\n      }\n    >\n      <span>{parentItem}</span>\n    </SidebarTooltip>\n  );\n}\n","import { Box, Clock, LayoutGrid, Layers, Puzzle, Edit } from 'lucide-react';\n\nimport { isBE } from '../portainer/feature-flags/feature-flags.service';\nimport { useSettings } from '../portainer/settings/queries';\n\nimport { SidebarItem } from './SidebarItem';\nimport { SidebarSection } from './SidebarSection';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\nexport function EdgeComputeSidebar() {\n  // this sidebar is rendered only for admins, so we can safely assume that settingsQuery will succeed\n  const settingsQuery = useSettings();\n\n  if (!settingsQuery.data || !settingsQuery.data.EnableEdgeComputeFeatures) {\n    return null;\n  }\n\n  const settings = settingsQuery.data;\n\n  return (\n    <SidebarSection title=\"Edge compute\">\n      <SidebarItem\n        to=\"edge.groups\"\n        label=\"Edge Groups\"\n        icon={LayoutGrid}\n        data-cy=\"portainerSidebar-edgeGroups\"\n      />\n      <SidebarItem\n        to=\"edge.stacks\"\n        label=\"Edge Stacks\"\n        icon={Layers}\n        data-cy=\"portainerSidebar-edgeStacks\"\n      />\n      <SidebarItem\n        to=\"edge.jobs\"\n        label=\"Edge Jobs\"\n        icon={Clock}\n        data-cy=\"portainerSidebar-edgeJobs\"\n      />\n      {isBE && (\n        <SidebarItem\n          to=\"edge.configurations\"\n          label=\"Edge Configurations\"\n          icon={Puzzle}\n          data-cy=\"portainerSidebar-edgeConfigurations\"\n        />\n      )}\n      {isBE && !settings.TrustOnFirstConnect && (\n        <SidebarItem\n          to=\"edge.devices.waiting-room\"\n          label=\"Waiting Room\"\n          icon={Box}\n          data-cy=\"portainerSidebar-edgeDevicesWaitingRoom\"\n        />\n      )}\n      <SidebarParent\n        icon={Edit}\n        label=\"Edge Templates\"\n        to=\"edge.templates\"\n        data-cy=\"edgeSidebar-templates\"\n        listId=\"edgeSidebar-templates\"\n      >\n        <SidebarItem\n          label=\"Application\"\n          to=\"edge.templates\"\n          ignorePaths={['edge.templates.custom']}\n          isSubMenu\n          data-cy=\"edgeSidebar-appTemplates\"\n        />\n        <SidebarItem\n          label=\"Custom\"\n          to=\"edge.templates.custom\"\n          isSubMenu\n          data-cy=\"edgeSidebar-customTemplates\"\n        />\n      </SidebarParent>\n    </SidebarSection>\n  );\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDocker = function SvgDocker(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 105 95\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0091E2\",\n    d: \"M102.014 39.337c-.27-.229-2.695-2.11-7.902-2.11-1.347 0-2.74.138-4.085.369-.989-7.02-6.69-10.416-6.914-10.598l-1.393-.826-.898 1.33a19.85 19.85 0 0 0-2.469 5.874c-.942 3.993-.36 7.754 1.617 10.966-2.381 1.376-6.242 1.697-7.05 1.744H9.16c-1.66 0-3.009 1.376-3.009 3.074a47.34 47.34 0 0 0 2.783 16.747c2.2 5.874 5.477 10.232 9.699 12.894 4.76 2.983 12.527 4.68 21.282 4.68 3.951 0 7.902-.369 11.81-1.103a48.094 48.094 0 0 0 15.446-5.734 42.497 42.497 0 0 0 10.507-8.809c5.073-5.826 8.082-12.341 10.283-18.123h.898c5.524 0 8.935-2.248 10.821-4.174 1.257-1.194 2.201-2.662 2.873-4.314l.404-1.193-.942-.69-.002-.004Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0091E2\",\n    d: \"M15.086 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c.044.458.36.78.764.78ZM26.851 44.2h8.53c.405 0 .763-.32.763-.78v-7.8a.764.764 0 0 0-.763-.778h-8.53a.765.765 0 0 0-.764.779v7.799c.044.458.36.78.764.78ZM38.842 44.2h8.53c.404 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.765-.778h-8.53a.765.765 0 0 0-.764.779v7.799c0 .458.314.78.764.78ZM50.647 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c0 .458.36.78.764.78ZM26.851 33.05h8.53c.405 0 .763-.367.763-.78v-7.799c0-.413-.314-.781-.763-.781h-8.53a.766.766 0 0 0-.764.781v7.799c.044.413.36.78.764.78ZM38.842 33.05h8.53c.404 0 .765-.367.765-.78v-7.799a.766.766 0 0 0-.765-.781h-8.53a.766.766 0 0 0-.764.781v7.799c0 .413.314.78.764.78ZM50.647 33.05h8.53c.405 0 .765-.367.765-.78v-7.799c0-.413-.36-.781-.764-.781h-8.53a.766.766 0 0 0-.765.781v7.799c0 .413.36.78.764.78ZM50.647 21.856h8.53c.405 0 .765-.32.765-.78v-7.8c0-.413-.36-.78-.764-.78h-8.53a.766.766 0 0 0-.765.78v7.8c0 .412.36.78.764.78ZM62.551 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c.044.458.36.78.764.78Z\"\n  })));\n};\nexport default SvgDocker;","var _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAzure = function SvgAzure(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 105 95\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#azure_svg__a)\",\n    d: \"M40.041 11.192h21.975l-22.81 69.066a3.565 3.565 0 0 1-1.278 1.763 3.455 3.455 0 0 1-2.043.672h-17.1a3.444 3.444 0 0 1-1.599-.394 3.538 3.538 0 0 1-1.245-1.095 3.603 3.603 0 0 1-.618-1.556 3.658 3.658 0 0 1 .144-1.673l21.255-64.346c.235-.71.68-1.326 1.278-1.763a3.455 3.455 0 0 1 2.043-.671l-.002-.003Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#0078D4\",\n    d: \"M71.975 57.518H37.13c-.325 0-.64.098-.909.284a1.637 1.637 0 0 0-.592.758c-.12.308-.145.646-.074.967.072.323.237.616.474.84L58.42 81.725c.65.622 1.51.967 2.401.967h19.73l-8.576-25.178v.005Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#azure_svg__b)\",\n    d: \"M40.042 11.193a3.44 3.44 0 0 0-2.062.682 3.54 3.54 0 0 0-1.265 1.8l-21.22 64.244a3.63 3.63 0 0 0 .434 3.265c.325.469.754.852 1.252 1.115.499.263 1.052.4 1.613.398h17.542a3.705 3.705 0 0 0 1.77-.854 3.816 3.816 0 0 0 1.107-1.647l4.232-12.742L58.56 81.861a3.529 3.529 0 0 0 2.25.838H80.47l-8.623-25.177-25.133.007 15.384-46.337H40.042Z\"\n  })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#azure_svg__c)\",\n    d: \"M68.109 13.625a3.579 3.579 0 0 0-1.275-1.76 3.448 3.448 0 0 0-2.04-.673h-24.49c.733 0 1.445.236 2.04.672a3.577 3.577 0 0 1 1.275 1.761l21.255 64.352c.178.537.228 1.11.144 1.673a3.602 3.602 0 0 1-.617 1.556c-.325.46-.75.836-1.246 1.095a3.437 3.437 0 0 1-1.598.394h24.49c.555 0 1.104-.135 1.598-.394a3.512 3.512 0 0 0 1.243-1.095c.325-.46.536-.995.618-1.556a3.658 3.658 0 0 0-.144-1.673L68.109 13.625Z\"\n  })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"azure_svg__a\",\n    x1: 48.052,\n    x2: 24.328,\n    y1: 16.492,\n    y2: 85.073,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#114A8B\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#0669BC\"\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"azure_svg__b\",\n    x1: 55.179,\n    x2: 49.877,\n    y1: 48.598,\n    y2: 50.351,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopOpacity: 0.3\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.07,\n    stopOpacity: 0.2\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.32,\n    stopOpacity: 0.1\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.62,\n    stopOpacity: 0.05\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopOpacity: 0\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"azure_svg__c\",\n    x1: 52.44,\n    x2: 78.457,\n    y1: 14.419,\n    y2: 82.248,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#3CCBF4\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#2892DF\"\n  })))));\n};\nexport default SvgAzure;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKubernetes = function SvgKubernetes(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 105 95\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#326CE4\",\n    d: \"M52.958 88.267c-5.243 0-10.485-.044-15.724.02-2.383.026-4.221-.819-5.716-2.694-6.63-8.317-13.299-16.6-19.966-24.89-1.337-1.661-1.862-3.43-1.352-5.608 2.448-10.471 4.806-20.967 7.202-31.456.479-2.1 1.694-3.543 3.661-4.476 9.69-4.605 19.357-9.246 29.019-13.907 2.022-.977 3.947-.917 5.954.046 9.602 4.63 19.211 9.251 28.844 13.822 2.037.968 3.276 2.447 3.77 4.616 2.39 10.491 4.765 20.985 7.198 31.463.466 2.01.044 3.707-1.213 5.268-6.734 8.399-13.473 16.796-20.186 25.215-1.449 1.82-3.272 2.614-5.565 2.594-5.305-.04-10.614-.01-15.92-.01l-.008-.005.002.002ZM51.61 21.251c.094 2.704-.234 3.12-2.717 3.607-4.407.867-8.387 2.678-11.614 5.846-1.217 1.198-2.242.944-3.326.17-.835-.592-1.509-1.413-2.263-2.122-.515-.483-.998-1.038-1.589-1.41-.865-.537-1.772-.46-2.406.411-.575.784-.43 1.631.218 2.303.444.457 1.01.797 1.548 1.152.804.538 1.668.995 2.441 1.577 1.574 1.183 1.718 1.986.785 3.677-2.153 3.894-3.117 8.067-2.962 12.521.086 2.428-.625 3.197-3.062 3.473-1.093.125-2.192.191-3.276.376-1.224.206-2.095.886-1.83 2.256.254 1.32 1.325 1.522 2.422 1.254 1.185-.297 2.317-.793 3.486-1.153 2.394-.733 3.202-.346 4.206 1.943 1.757 4.024 4.435 7.284 8.008 9.813 1.535 1.089 1.784 2.022.895 3.732-.416.799-.956 1.54-1.43 2.313-.304.497-.619.988-.885 1.504-.534 1.028-.306 1.928.645 2.538 1.057.678 1.969.151 2.441-.773.638-1.26 1.008-2.654 1.52-3.978.819-2.127 1.671-2.553 3.776-1.962 4.271 1.19 8.547 1.205 12.822.02 2.083-.578 2.853-.23 3.677 1.826.48 1.199.78 2.474 1.318 3.649.48 1.064 1.29 1.927 2.597 1.233 1.213-.643 1.259-1.732.633-2.834-.605-1.069-1.344-2.066-1.951-3.134-1.19-2.104-1.019-2.821.898-4.229 3.587-2.627 6.24-5.986 7.939-10.109.785-1.907 1.532-2.287 3.547-1.69 1.235.367 2.422.909 3.666 1.223 1.115.28 2.262.241 2.693-1.155.35-1.135-.415-2.068-1.952-2.322-1.209-.203-2.448-.231-3.661-.418-1.935-.3-2.643-1.152-2.562-3.07.194-4.587-.78-8.89-3.036-12.889-.864-1.53-.726-2.443.69-3.556.814-.637 1.738-1.118 2.6-1.686.535-.356 1.108-.692 1.55-1.148.653-.668.788-1.5.22-2.303-.584-.823-1.453-.898-2.254-.5-.614.305-1.114.862-1.632 1.345-.709.663-1.34 1.414-2.08 2.037-1.468 1.24-2.358 1.214-3.754-.026-3.421-3.045-7.388-4.95-11.878-5.774-1.803-.331-2.352-.922-2.278-2.783.05-1.293.285-2.575.4-3.864.14-1.506-.703-2.728-1.842-2.724-1.139.004-1.978 1.223-1.828 2.733.105 1.03.28 2.053.429 3.08h-.009.007Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FDFDFE\",\n    d: \"M51.608 21.25c-.144-1.026-.323-2.047-.428-3.079-.15-1.51.689-2.729 1.827-2.733 1.14-.005 1.983 1.218 1.843 2.724-.12 1.293-.354 2.573-.4 3.864-.07 1.861.474 2.452 2.278 2.783 4.49.824 8.456 2.725 11.877 5.774 1.395 1.24 2.284 1.269 3.755.026.74-.623 1.373-1.374 2.08-2.037.515-.483 1.018-1.043 1.632-1.346.8-.397 1.672-.325 2.254.5.568.804.43 1.632-.221 2.304-.444.456-1.014.788-1.55 1.148-.859.573-1.788 1.053-2.599 1.686-1.418 1.113-1.554 2.026-.69 3.556 2.253 4 3.23 8.302 3.036 12.888-.081 1.917.63 2.769 2.561 3.071 1.213.187 2.448.216 3.662.418 1.538.256 2.303 1.187 1.951 2.322-.43 1.398-1.578 1.436-2.692 1.155-1.244-.312-2.433-.854-3.666-1.223-2.013-.597-2.758-.22-3.548 1.69-1.698 4.123-4.351 7.482-7.938 10.11-1.917 1.404-2.092 2.122-.899 4.228.606 1.069 1.34 2.065 1.952 3.134.625 1.105.58 2.189-.634 2.834-1.305.694-2.114-.17-2.597-1.233-.533-1.17-.834-2.452-1.318-3.649-.828-2.057-1.593-2.404-3.676-1.826-4.276 1.187-8.551 1.17-12.822-.02-2.11-.586-2.962-.16-3.777 1.962-.51 1.329-.883 2.72-1.52 3.978-.465.924-1.383 1.451-2.44.773-.95-.608-1.175-1.51-.646-2.538.27-.516.58-1.007.886-1.503.474-.773 1.01-1.51 1.43-2.314.889-1.71.64-2.646-.895-3.732-3.572-2.53-6.254-5.789-8.009-9.813-1.003-2.292-1.812-2.674-4.205-1.943-1.17.36-2.302.854-3.486 1.153-1.096.272-2.165.07-2.422-1.254-.265-1.37.605-2.046 1.83-2.256 1.079-.185 2.183-.25 3.276-.376 2.441-.272 3.147-1.043 3.062-3.473-.155-4.454.809-8.625 2.962-12.521.933-1.69.789-2.494-.785-3.677-.774-.582-1.637-1.039-2.442-1.576-.535-.356-1.103-.694-1.547-1.153-.65-.672-.794-1.52-.219-2.303.639-.87 1.544-.948 2.407-.41.59.37 1.073.922 1.589 1.41.754.71 1.43 1.53 2.262 2.122 1.084.773 2.107 1.027 3.327-.171 3.222-3.17 7.202-4.981 11.613-5.846 2.483-.488 2.81-.902 2.717-3.607h.009-.007ZM50.59 31.84h.105c0-.515-.026-1.038.009-1.553.045-.712-.219-.879-.91-.742-3.366.658-6.363 2.065-8.996 4.278-.726.608-.584.953.12 1.434 2.078 1.429 4.107 2.928 6.183 4.355 1.878 1.288 3.032.718 3.178-1.554.132-2.068.21-4.145.31-6.217ZM34.445 47.45c-.017 1.6.678 2.195 2.088 1.787 2.162-.628 4.337-1.223 6.485-1.89 1.968-.613 2.27-1.835.77-3.256-1.828-1.732-3.777-3.337-5.59-5.09-.963-.934-1.313-.468-1.757.432-1.279 2.595-1.884 5.347-1.998 8.012l.003.005Zm18.508 19.015c1.69.046 3.33-.254 4.964-.663.664-.167 1.093-.272.614-1.109-1.38-2.412-2.638-4.895-4.061-7.279-.796-1.335-2.134-1.32-2.918.02-1.408 2.397-2.689 4.862-4.046 7.288-.354.632-.21.863.49 1.038 1.632.41 3.267.734 4.959.703v.004l-.002-.002Zm18.636-18.958c-.15-2.603-.708-5.308-1.952-7.85-.505-1.03-1.073-1.381-2.048-.466-1.744 1.636-3.572 3.186-5.314 4.826-1.563 1.47-1.235 2.698.864 3.332 2.157.656 4.33 1.26 6.494 1.886 1.987.573 1.993.57 1.954-1.73l.002.002Zm-9.515 5.282c-2.798.125-3.143.652-2.197 2.99.9 2.221 1.854 4.42 2.724 6.653.295.758.535 1.129 1.34.523 2.747-2.077 4.855-4.652 6.18-7.846.163-.395.463-.924-.285-1.054-2.669-.456-5.349-.873-7.764-1.268l.002.002ZM55.342 31.61h.065c.11 2.127.21 4.255.33 6.386.132 2.294 1.268 2.9 3.126 1.625 2.018-1.386 3.948-2.9 6.005-4.22 1.1-.706.854-1.1.03-1.771a19.363 19.363 0 0 0-8.448-4.013c-1.113-.23-1.218.15-1.12 1.027.036.32.005.644.005.969h.009l-.002-.003Zm-8.593 22.725c-.303-.658-.264-1.525-1.403-1.484-2.863.106-5.655.73-8.476 1.12-.995.136-1.198.566-.81 1.43 1.365 3.009 3.358 5.503 6.005 7.478.68.507 1.034.516 1.36-.397.586-1.64 1.324-3.225 1.989-4.836.444-1.074.87-2.154 1.333-3.306v-.005h.002Zm6.363-8.965c-1.982-.004-3.152.784-3.198 2.158-.054 1.65 1.55 3.506 3.067 3.537 1.443.03 3.093-1.717 3.102-3.287.009-1.46-1.154-2.408-2.973-2.412l.005.004h-.003Z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#326CE4\",\n    d: \"M50.594 31.84c-.1 2.073-.18 4.145-.31 6.218-.15 2.276-1.306 2.845-3.179 1.554-2.079-1.43-4.105-2.93-6.184-4.355-.703-.483-.843-.824-.12-1.434 2.634-2.213 5.63-3.618 8.997-4.278.695-.137.955.035.91.742-.036.515-.01 1.038-.01 1.556h-.104v-.004.002ZM34.448 47.45c.116-2.666.72-5.419 1.998-8.014.444-.902.793-1.37 1.757-.432 1.808 1.752 3.762 3.352 5.59 5.09 1.499 1.425 1.197 2.646-.77 3.256-2.149.668-4.322 1.26-6.485 1.89-1.408.409-2.103-.186-2.088-1.787l-.002-.004ZM52.96 66.46c-1.69.03-3.327-.297-4.96-.707-.7-.176-.84-.406-.49-1.038 1.358-2.424 2.639-4.896 4.046-7.289.785-1.339 2.123-1.354 2.918-.02 1.423 2.385 2.687 4.867 4.062 7.28.478.834.045.94-.615 1.108-1.632.411-3.272.712-4.964.663l.003.003ZM71.588 47.504c.04 2.298.03 2.307-1.954 1.73-2.164-.628-4.337-1.234-6.494-1.886-2.098-.637-2.424-1.857-.863-3.332 1.742-1.64 3.567-3.19 5.313-4.826.975-.913 1.543-.566 2.048.466 1.244 2.54 1.8 5.247 1.952 7.85l-.002-.002ZM62.079 52.783c2.413.391 5.09.813 7.764 1.27.743.124.445.656.284 1.053-1.33 3.196-3.432 5.773-6.18 7.846-.804.608-1.044.235-1.34-.523-.87-2.232-1.822-4.434-2.723-6.654-.949-2.337-.599-2.864 2.197-2.99l-.002-.002ZM55.348 31.606c0-.325.03-.648-.004-.968-.096-.878.009-1.254 1.119-1.028 3.16.652 5.95 1.983 8.448 4.013.824.672 1.073 1.063-.03 1.772-2.057 1.324-3.987 2.834-6.005 4.22-1.858 1.274-2.997.67-3.126-1.625-.12-2.128-.22-4.26-.33-6.386h-.074l.002.002ZM46.749 54.329c-.464 1.152-.89 2.232-1.334 3.306-.664 1.611-1.398 3.196-1.989 4.836-.325.913-.68.909-1.36.397-2.646-1.975-4.635-4.47-6.004-7.479-.393-.863-.19-1.293.809-1.429 2.822-.386 5.611-1.014 8.477-1.12 1.138-.044 1.1.828 1.403 1.484v.005h-.002ZM53.115 45.364c1.814.004 2.981.948 2.973 2.412-.011 1.57-1.66 3.317-3.102 3.286-1.515-.035-3.121-1.885-3.067-3.536.046-1.374 1.218-2.167 3.198-2.158l-.004-.005h.002Z\"\n  })));\n};\nexport default SvgKubernetes;","import { getPlatformType } from '@/react/portainer/environments/utils';\nimport {\n  EnvironmentType,\n  PlatformType,\n} from '@/react/portainer/environments/types';\n\nimport Docker from './docker.svg?c';\nimport Azure from './azure.svg?c';\nimport Kubernetes from './kubernetes.svg?c';\n\nconst icons: {\n  [key in PlatformType]: SvgrComponent;\n} = {\n  [PlatformType.Docker]: Docker,\n  [PlatformType.Kubernetes]: Kubernetes,\n  [PlatformType.Azure]: Azure,\n};\n\nexport function getPlatformIcon(type: EnvironmentType) {\n  const platform = getPlatformType(type);\n\n  return icons[platform];\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-EnvironmentSidebar-module__root\",\"closeBtn\":\"app-react-sidebar-EnvironmentSidebar-module__closeBtn\"};","import { Layout } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { AutomationTestingProps } from '@/types';\n\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props extends AutomationTestingProps {\n  environmentId: EnvironmentId;\n  platformPath: string;\n}\n\nexport function DashboardLink({\n  environmentId,\n  platformPath,\n  'data-cy': dataCy,\n}: Props) {\n  return (\n    <SidebarItem\n      to={`${platformPath}.dashboard`}\n      params={{ endpointId: environmentId }}\n      icon={Layout}\n      label=\"Dashboard\"\n      data-cy={dataCy}\n    />\n  );\n}\n","import { Box } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { DashboardLink } from '../items/DashboardLink';\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props {\n  environmentId: EnvironmentId;\n}\n\nexport function AzureSidebar({ environmentId }: Props) {\n  return (\n    <>\n      <DashboardLink\n        environmentId={environmentId}\n        platformPath=\"azure\"\n        data-cy=\"azureSidebar-dashboard\"\n      />\n      <SidebarItem\n        to=\"azure.containerinstances\"\n        params={{ endpointId: environmentId }}\n        icon={Box}\n        label=\"Container instances\"\n        data-cy=\"azureSidebar-containerInstances\"\n      />\n    </>\n  );\n}\n","import { Database } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { AutomationTestingProps } from '@/types';\n\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props extends AutomationTestingProps {\n  environmentId: EnvironmentId;\n  platformPath: string;\n}\n\nexport function VolumesLink({\n  environmentId,\n  platformPath,\n  'data-cy': dataCy,\n}: Props) {\n  return (\n    <SidebarItem\n      to={`${platformPath}.volumes`}\n      params={{ endpointId: environmentId }}\n      icon={Database}\n      label=\"Volumes\"\n      data-cy={dataCy}\n    />\n  );\n}\n","import {\n  Box,\n  Clock,\n  Layers,\n  List,\n  Lock,\n  Shuffle,\n  Trello,\n  Clipboard,\n  Edit,\n  Network,\n} from 'lucide-react';\n\nimport {\n  type Environment,\n  type EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { Authorized, useIsEnvironmentAdmin } from '@/react/hooks/useUser';\nimport { useInfo } from '@/react/docker/proxy/queries/useInfo';\nimport { useApiVersion } from '@/react/docker/proxy/queries/useVersion';\n\nimport { SidebarItem } from './SidebarItem';\nimport { DashboardLink } from './items/DashboardLink';\nimport { VolumesLink } from './items/VolumesLink';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\ninterface Props {\n  environmentId: EnvironmentId;\n  environment: Environment;\n}\n\nexport function DockerSidebar({ environmentId, environment }: Props) {\n  const { authorized: isEnvironmentAdmin } = useIsEnvironmentAdmin({\n    adminOnlyCE: true,\n  });\n\n  const areStacksVisible =\n    isEnvironmentAdmin ||\n    environment.SecuritySettings.allowStackManagementForRegularUsers;\n\n  const envInfoQuery = useInfo(\n    environmentId,\n    (info) => !!info.Swarm?.NodeID && !!info.Swarm?.ControlAvailable\n  );\n\n  const apiVersion = useApiVersion(environmentId);\n\n  const isSwarmManager = envInfoQuery.data;\n\n  const setupSubMenuProps = isSwarmManager\n    ? {\n        label: 'Swarm',\n        icon: Trello,\n        to: 'docker.swarm',\n        dataCy: 'portainerSidebar-swarm',\n      }\n    : {\n        label: 'Host',\n        icon: Trello,\n        to: 'docker.host',\n        dataCy: 'portainerSidebar-host',\n      };\n\n  const featSubMenuTo = isSwarmManager\n    ? 'docker.swarm.featuresConfiguration'\n    : 'docker.host.featuresConfiguration';\n  const registrySubMenuTo = isSwarmManager\n    ? 'docker.swarm.registries'\n    : 'docker.host.registries';\n\n  return (\n    <>\n      <DashboardLink\n        environmentId={environmentId}\n        platformPath=\"docker\"\n        data-cy=\"dockerSidebar-dashboard\"\n      />\n      <SidebarParent\n        icon={Edit}\n        label=\"Templates\"\n        to=\"docker.templates\"\n        params={{ endpointId: environmentId }}\n        data-cy=\"portainerSidebar-templates\"\n        listId=\"dockerSidebar-templates\"\n      >\n        <SidebarItem\n          label=\"Application\"\n          to=\"docker.templates\"\n          ignorePaths={['docker.templates.custom']}\n          params={{ endpointId: environmentId }}\n          isSubMenu\n          data-cy=\"portainerSidebar-appTemplates\"\n        />\n        <SidebarItem\n          label=\"Custom\"\n          to=\"docker.templates.custom\"\n          params={{ endpointId: environmentId }}\n          isSubMenu\n          data-cy=\"dockerSidebar-customTemplates\"\n        />\n      </SidebarParent>\n\n      {areStacksVisible && (\n        <SidebarItem\n          to=\"docker.stacks\"\n          params={{ endpointId: environmentId }}\n          icon={Layers}\n          label=\"Stacks\"\n          data-cy=\"dockerSidebar-stacks\"\n        />\n      )}\n\n      {isSwarmManager && (\n        <SidebarItem\n          to=\"docker.services\"\n          params={{ endpointId: environmentId }}\n          icon={Shuffle}\n          label=\"Services\"\n          data-cy=\"dockerSidebar-services\"\n        />\n      )}\n\n      <SidebarItem\n        to=\"docker.containers\"\n        params={{ endpointId: environmentId }}\n        icon={Box}\n        label=\"Containers\"\n        data-cy=\"dockerSidebar-containers\"\n      />\n\n      <SidebarItem\n        to=\"docker.images\"\n        params={{ endpointId: environmentId }}\n        icon={List}\n        label=\"Images\"\n        data-cy=\"dockerSidebar-images\"\n      />\n\n      <SidebarItem\n        to=\"docker.networks\"\n        params={{ endpointId: environmentId }}\n        icon={Network}\n        label=\"Networks\"\n        data-cy=\"dockerSidebar-networks\"\n      />\n\n      <VolumesLink\n        environmentId={environmentId}\n        platformPath=\"docker\"\n        data-cy=\"dockerSidebar-volumes\"\n      />\n\n      {apiVersion >= 1.3 && isSwarmManager && (\n        <SidebarItem\n          to=\"docker.configs\"\n          params={{ endpointId: environmentId }}\n          icon={Clipboard}\n          label=\"Configs\"\n          data-cy=\"dockerSidebar-configs\"\n        />\n      )}\n\n      {apiVersion >= 1.25 && isSwarmManager && (\n        <SidebarItem\n          to=\"docker.secrets\"\n          params={{ endpointId: environmentId }}\n          icon={Lock}\n          label=\"Secrets\"\n          data-cy=\"dockerSidebar-secrets\"\n        />\n      )}\n\n      {!isSwarmManager && isEnvironmentAdmin && (\n        <SidebarItem\n          to=\"docker.events\"\n          params={{ endpointId: environmentId }}\n          icon={Clock}\n          label=\"Events\"\n          data-cy=\"dockerSidebar-events\"\n        />\n      )}\n\n      <SidebarParent\n        label={setupSubMenuProps.label}\n        icon={setupSubMenuProps.icon}\n        to={setupSubMenuProps.to}\n        params={{ endpointId: environmentId }}\n        data-cy=\"portainerSidebar-host-area\"\n        listId=\"portainerSidebar-host-area\"\n      >\n        <SidebarItem\n          label=\"Details\"\n          isSubMenu\n          to={setupSubMenuProps.to}\n          params={{ endpointId: environmentId }}\n          ignorePaths={[featSubMenuTo, registrySubMenuTo]}\n          data-cy={setupSubMenuProps.dataCy}\n        />\n\n        <Authorized\n          authorizations=\"PortainerEndpointUpdateSettings\"\n          adminOnlyCE\n          environmentId={environmentId}\n        >\n          <SidebarItem\n            label=\"Setup\"\n            isSubMenu\n            to={featSubMenuTo}\n            params={{ endpointId: environmentId }}\n          />\n        </Authorized>\n\n        <SidebarItem\n          label=\"Registries\"\n          isSubMenu\n          to={registrySubMenuTo}\n          params={{ endpointId: environmentId }}\n        />\n      </SidebarParent>\n    </>\n  );\n}\n","const terminalHeight = 495;\n\nexport function terminalClose() {\n  update('100%', 'initial');\n}\n\nexport function terminalResize() {\n  const contentWrapperHeight = window.innerHeight;\n  const newContentWrapperHeight = contentWrapperHeight - terminalHeight;\n  update(`${newContentWrapperHeight}px`, 'auto');\n}\n\nfunction update(height: string, overflowY: string) {\n  const pageWrapper = document.getElementById('pageWrapper-wrapper');\n\n  if (pageWrapper) {\n    pageWrapper.style.height = height;\n    pageWrapper.style.overflowY = overflowY;\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__root\",\"header\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__header\",\"minimized\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__minimized\",\"title\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__title\",\"actions\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__actions\",\"terminalContainer\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__terminal-container\",\"loadingMessage\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__loading-message\"};","import { Terminal } from 'xterm';\nimport { fit } from 'xterm/lib/addons/fit/fit';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { RotateCw, X, Terminal as TerminalIcon } from 'lucide-react';\n\nimport { baseHref } from '@/portainer/helpers/pathHelper';\nimport {\n  terminalClose,\n  terminalResize,\n} from '@/portainer/services/terminal-window';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { error as notifyError } from '@/portainer/services/notifications';\n\nimport { Icon } from '@@/Icon';\nimport { Button } from '@@/buttons';\n\nimport styles from './KubectlShell.module.css';\n\ninterface ShellState {\n  socket: WebSocket | null;\n  minimized: boolean;\n}\n\ninterface Props {\n  environmentId: EnvironmentId;\n  onClose(): void;\n}\n\nexport function KubeCtlShell({ environmentId, onClose }: Props) {\n  const [terminal] = useState(new Terminal());\n\n  const [shell, setShell] = useState<ShellState>({\n    socket: null,\n    minimized: false,\n  });\n\n  const { socket } = shell;\n\n  const terminalElem = useRef(null);\n\n  const handleClose = useCallback(() => {\n    terminalClose(); // only css trick\n    socket?.close();\n    terminal.dispose();\n    onClose();\n  }, [onClose, terminal, socket]);\n\n  const openTerminal = useCallback(() => {\n    if (!terminalElem.current) {\n      return;\n    }\n\n    terminal.open(terminalElem.current);\n    terminal.setOption('cursorBlink', true);\n    terminal.focus();\n    fit(terminal);\n    terminal.writeln('#Run kubectl commands inside here');\n    terminal.writeln('#e.g. kubectl get all');\n    terminal.writeln('');\n  }, [terminal]);\n\n  // refresh socket listeners on socket updates\n  useEffect(() => {\n    if (!socket) {\n      return () => {};\n    }\n    function onOpen() {\n      openTerminal();\n    }\n    function onMessage(e: MessageEvent) {\n      const encoded = new TextEncoder().encode(e.data);\n      terminal.writeUtf8(encoded);\n    }\n    function onClose() {\n      handleClose();\n    }\n    function onError(e: Event) {\n      handleClose();\n      if (socket?.readyState !== WebSocket.CLOSED) {\n        notifyError(\n          'Failure',\n          e as unknown as Error,\n          'Websocket connection error'\n        );\n      }\n    }\n\n    socket.addEventListener('open', onOpen);\n    socket.addEventListener('message', onMessage);\n    socket.addEventListener('close', onClose);\n    socket.addEventListener('error', onError);\n\n    return () => {\n      socket.removeEventListener('open', onOpen);\n      socket.removeEventListener('message', onMessage);\n      socket.removeEventListener('close', onClose);\n      socket.removeEventListener('error', onError);\n    };\n  }, [handleClose, openTerminal, socket, terminal]);\n\n  // on component load/destroy\n  useEffect(() => {\n    const socket = new WebSocket(buildUrl(environmentId));\n    setShell((shell) => ({ ...shell, socket }));\n\n    terminal.onData((data) => socket.send(data));\n    terminal.onKey(({ domEvent }) => {\n      if (domEvent.ctrlKey && domEvent.code === 'KeyD') {\n        close();\n      }\n    });\n\n    window.addEventListener('resize', () => terminalResize());\n\n    function close() {\n      socket.close();\n      terminal.dispose();\n      window.removeEventListener('resize', terminalResize);\n    }\n\n    return close;\n  }, [environmentId, terminal]);\n\n  return (\n    <div className={clsx(styles.root, { [styles.minimized]: shell.minimized })}>\n      <div className={styles.header}>\n        <div className={clsx(styles.title, 'vertical-center')}>\n          <Icon icon={TerminalIcon} />\n          kubectl shell\n        </div>\n        <div className={clsx(styles.actions, 'space-x-8')}>\n          <Button\n            color=\"link\"\n            onClick={clearScreen}\n            data-cy=\"k8sShell-refreshButton\"\n          >\n            <Icon icon={RotateCw} size=\"md\" />\n          </Button>\n          <Button\n            color=\"link\"\n            onClick={toggleMinimize}\n            data-cy={shell.minimized ? 'k8sShell-restore' : 'k8sShell-minimise'}\n          >\n            <Icon\n              icon={shell.minimized ? 'maximize-2' : 'minimize-2'}\n              size=\"md\"\n              data-cy={\n                shell.minimized ? 'k8sShell-restore' : 'k8sShell-minimise'\n              }\n            />\n          </Button>\n          <Button\n            color=\"link\"\n            onClick={handleClose}\n            data-cy=\"k8sShell-closeButton\"\n          >\n            <Icon icon={X} size=\"md\" />\n          </Button>\n        </div>\n      </div>\n\n      <div className={styles.terminalContainer} ref={terminalElem}>\n        <div className={styles.loadingMessage}>Loading Terminal...</div>\n      </div>\n    </div>\n  );\n\n  function clearScreen() {\n    terminal.clear();\n  }\n\n  function toggleMinimize() {\n    if (shell.minimized) {\n      terminalResize();\n      setShell((shell) => ({ ...shell, minimized: false }));\n    } else {\n      terminalClose();\n      setShell((shell) => ({ ...shell, minimized: true }));\n    }\n  }\n\n  function buildUrl(environmentId: EnvironmentId) {\n    const params = {\n      endpointId: environmentId,\n    };\n\n    const wsProtocol =\n      window.location.protocol === 'https:' ? 'wss://' : 'ws://';\n    const path = `${baseHref()}api/websocket/kubernetes-shell`;\n    const base = path.startsWith('http')\n      ? path.replace(/^https?:\\/\\//i, '')\n      : window.location.host + path;\n\n    const queryParams = Object.entries(params)\n      .map(([k, v]) => `${k}=${v}`)\n      .join('&');\n    return `${wsProtocol}${base}?${queryParams}`;\n  }\n}\n","import { useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Terminal } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Button } from '@@/buttons';\n\nimport { useSidebarState } from '../../useSidebarState';\nimport { SidebarTooltip } from '../../SidebarItem/SidebarTooltip';\n\nimport { KubeCtlShell } from './KubectlShell';\n\ninterface Props {\n  environmentId: EnvironmentId;\n}\nexport function KubectlShellButton({ environmentId }: Props) {\n  const { isOpen: isSidebarOpen } = useSidebarState();\n\n  const [open, setOpen] = useState(false);\n  const { trackEvent } = useAnalytics();\n\n  const button = (\n    <Button\n      color=\"primary\"\n      size=\"small\"\n      disabled={open}\n      data-cy=\"k8sSidebar-shellButton\"\n      onClick={() => handleOpen()}\n      className={clsx('sidebar', !isSidebarOpen && '!p-1')}\n      icon={Terminal}\n    >\n      {isSidebarOpen ? 'kubectl shell' : ''}\n    </Button>\n  );\n\n  return (\n    <>\n      {!isSidebarOpen && (\n        <SidebarTooltip\n          content={\n            <span className=\"text-sm whitespace-nowrap\">Kubectl Shell</span>\n          }\n        >\n          <span className=\"flex w-full justify-center\">{button}</span>\n        </SidebarTooltip>\n      )}\n      {isSidebarOpen && button}\n      {open &&\n        createPortal(\n          <KubeCtlShell\n            environmentId={environmentId}\n            onClose={() => setOpen(false)}\n          />,\n          document.body\n        )}\n    </>\n  );\n\n  function handleOpen() {\n    setOpen(true);\n\n    trackEvent('kubernetes-kubectl-shell', { category: 'kubernetes' });\n  }\n}\n","import { Box, Edit, Layers, Lock, Network, Server } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { Authorized } from '@/react/hooks/useUser';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { DashboardLink } from '../items/DashboardLink';\nimport { SidebarItem } from '../SidebarItem';\nimport { VolumesLink } from '../items/VolumesLink';\nimport { SidebarParent } from '../SidebarItem/SidebarParent';\n\nimport { KubectlShellButton } from './KubectlShell';\n\ninterface Props {\n  environmentId: EnvironmentId;\n}\n\nexport function KubernetesSidebar({ environmentId }: Props) {\n  return (\n    <>\n      <div className=\"w-full flex mb-2 justify-center -mt-2\">\n        <KubectlShellButton environmentId={environmentId} />\n      </div>\n\n      <DashboardLink\n        environmentId={environmentId}\n        platformPath=\"kubernetes\"\n        data-cy=\"k8sSidebar-dashboard\"\n      />\n\n      <SidebarItem\n        to=\"kubernetes.templates.custom\"\n        params={{ endpointId: environmentId }}\n        icon={Edit}\n        label=\"Custom Templates\"\n        data-cy=\"k8sSidebar-customTemplates\"\n      />\n\n      <SidebarItem\n        to=\"kubernetes.resourcePools\"\n        params={{ endpointId: environmentId }}\n        icon={Layers}\n        label=\"Namespaces\"\n        data-cy=\"k8sSidebar-namespaces\"\n      />\n\n      <SidebarItem\n        to=\"kubernetes.applications\"\n        params={{ endpointId: environmentId }}\n        icon={Box}\n        label=\"Applications\"\n        data-cy=\"k8sSidebar-applications\"\n      />\n\n      <SidebarParent\n        label=\"Networking\"\n        icon={Network}\n        to=\"kubernetes.services\"\n        params={{ endpointId: environmentId }}\n        pathOptions={{ includePaths: ['kubernetes.ingresses'] }}\n        data-cy=\"k8sSidebar-networking\"\n        listId=\"k8sSidebar-networking\"\n      >\n        <SidebarItem\n          to=\"kubernetes.services\"\n          params={{ endpointId: environmentId }}\n          label=\"Services\"\n          isSubMenu\n          data-cy=\"k8sSidebar-services\"\n        />\n\n        <SidebarItem\n          to=\"kubernetes.ingresses\"\n          params={{ endpointId: environmentId }}\n          label=\"Ingresses\"\n          isSubMenu\n          data-cy=\"k8sSidebar-ingresses\"\n        />\n      </SidebarParent>\n\n      <SidebarItem\n        to=\"kubernetes.configurations\"\n        params={{ endpointId: environmentId }}\n        icon={Lock}\n        label=\"ConfigMaps & Secrets\"\n        data-cy=\"k8sSidebar-configurations\"\n      />\n\n      <VolumesLink\n        environmentId={environmentId}\n        platformPath=\"kubernetes\"\n        data-cy=\"k8sSidebar-volumes\"\n      />\n\n      <SidebarParent\n        label=\"Cluster\"\n        icon={Server}\n        to=\"kubernetes.cluster\"\n        params={{ endpointId: environmentId }}\n        pathOptions={{ includePaths: ['kubernetes.registries'] }}\n        data-cy=\"k8sSidebar-cluster-area\"\n        listId=\"k8sSidebar-cluster-area\"\n      >\n        <SidebarItem\n          label=\"Details\"\n          to=\"kubernetes.cluster\"\n          ignorePaths={[\n            'kubernetes.cluster.setup',\n            'kubernetes.cluster.securityConstraint',\n          ]}\n          params={{ endpointId: environmentId }}\n          isSubMenu\n          data-cy=\"k8sSidebar-cluster\"\n        />\n        <Authorized\n          authorizations=\"K8sClusterSetupRW\"\n          adminOnlyCE\n          environmentId={environmentId}\n        >\n          <SidebarItem\n            to=\"kubernetes.cluster.setup\"\n            params={{ endpointId: environmentId }}\n            label=\"Setup\"\n            isSubMenu\n            data-cy=\"k8sSidebar-setup\"\n          />\n        </Authorized>\n\n        <Authorized\n          authorizations=\"K8sClusterSetupRW\"\n          adminOnlyCE\n          environmentId={environmentId}\n        >\n          <SidebarItem\n            to=\"kubernetes.cluster.securityConstraint\"\n            params={{ endpointId: environmentId }}\n            label=\"Security constraints\"\n            isSubMenu\n            data-cy=\"k8sSidebar-securityConstraints\"\n          />\n        </Authorized>\n\n        {isBE && (\n          <Authorized\n            authorizations=\"K8sClusterSetupRW\"\n            adminOnlyCE\n            environmentId={environmentId}\n          >\n            <SidebarItem\n              to=\"kubernetes.cluster.securityConstraint\"\n              params={{ endpointId: environmentId }}\n              label=\"Security Constraints\"\n              isSubMenu\n              data-cy=\"k8sSidebar-securityConstraints\"\n            />\n          </Authorized>\n        )}\n\n        <SidebarItem\n          to=\"kubernetes.registries\"\n          params={{ endpointId: environmentId }}\n          label=\"Registries\"\n          isSubMenu\n          data-cy=\"k8sSidebar-registries\"\n        />\n      </SidebarParent>\n    </>\n  );\n}\n","import { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { useEffect } from 'react';\nimport { X, Slash } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useStore } from 'zustand';\n\nimport {\n  PlatformType,\n  EnvironmentId,\n  Environment,\n} from '@/react/portainer/environments/types';\nimport { getPlatformType } from '@/react/portainer/environments/utils';\nimport { useEnvironment } from '@/react/portainer/environments/queries/useEnvironment';\nimport { environmentStore } from '@/react/hooks/current-environment-store';\n\nimport { Icon } from '@@/Icon';\n\nimport { getPlatformIcon } from '../portainer/environments/utils/get-platform-icon';\n\nimport styles from './EnvironmentSidebar.module.css';\nimport { AzureSidebar } from './AzureSidebar';\nimport { DockerSidebar } from './DockerSidebar';\nimport { KubernetesSidebar } from './KubernetesSidebar';\nimport { SidebarSection, SidebarSectionTitle } from './SidebarSection';\nimport { useSidebarState } from './useSidebarState';\n\nexport function EnvironmentSidebar() {\n  const { query: currentEnvironmentQuery, clearEnvironment } =\n    useCurrentEnvironment();\n  const environment = currentEnvironmentQuery.data;\n\n  const { isOpen } = useSidebarState();\n\n  if (!isOpen && !environment) {\n    return null;\n  }\n\n  return (\n    <div className={clsx(styles.root, 'rounded border border-dotted py-2')}>\n      {environment ? (\n        <Content environment={environment} onClear={clearEnvironment} />\n      ) : (\n        <SidebarSectionTitle>\n          <div className=\"flex items-center gap-1\">\n            <span>Environment:</span>\n            <Icon icon={Slash} className=\"text-xl !text-gray-6\" />\n            <span className=\"text-sm text-gray-6\">None selected</span>\n          </div>\n        </SidebarSectionTitle>\n      )}\n    </div>\n  );\n}\n\ninterface ContentProps {\n  environment: Environment;\n  onClear: () => void;\n}\n\nfunction Content({ environment, onClear }: ContentProps) {\n  const platform = getPlatformType(environment.Type);\n  const Sidebar = getSidebar(platform);\n\n  return (\n    <SidebarSection\n      title={<Title environment={environment} onClear={onClear} />}\n      aria-label={environment.Name}\n      showTitleWhenOpen\n    >\n      <div className=\"mt-2\">\n        {Sidebar && (\n          <Sidebar environmentId={environment.Id} environment={environment} />\n        )}\n      </div>\n    </SidebarSection>\n  );\n\n  function getSidebar(platform: PlatformType) {\n    const sidebar: {\n      [key in PlatformType]: React.ComponentType<{\n        environmentId: EnvironmentId;\n        environment: Environment;\n      }> | null;\n    } = {\n      [PlatformType.Azure]: AzureSidebar,\n      [PlatformType.Docker]: DockerSidebar,\n      [PlatformType.Kubernetes]: KubernetesSidebar,\n    };\n\n    return sidebar[platform];\n  }\n}\n\nfunction useCurrentEnvironment() {\n  const { params } = useCurrentStateAndParams();\n  const router = useRouter();\n\n  const envStore = useStore(environmentStore);\n  const { setEnvironmentId } = envStore;\n  useEffect(() => {\n    const environmentId = parseInt(params.endpointId, 10);\n    if (params.endpointId && !Number.isNaN(environmentId)) {\n      setEnvironmentId(environmentId);\n    }\n  }, [setEnvironmentId, params.endpointId, params.environmentId]);\n\n  return { query: useEnvironment(envStore.environmentId), clearEnvironment };\n\n  function clearEnvironment() {\n    if (params.endpointId || params.environmentId) {\n      router.stateService.go('portainer.home');\n    }\n\n    envStore.clear();\n  }\n}\n\ninterface TitleProps {\n  environment: Environment;\n  onClear(): void;\n}\n\nfunction Title({ environment, onClear }: TitleProps) {\n  const { isOpen } = useSidebarState();\n\n  const EnvironmentIcon = getPlatformIcon(environment.Type);\n\n  if (!isOpen) {\n    return (\n      <div className=\"-ml-3 flex w-8 justify-center\" title={environment.Name}>\n        <EnvironmentIcon className=\"text-2xl\" />\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"flex items-center\">\n      <EnvironmentIcon className=\"mr-3 text-2xl\" />\n      <span className=\"overflow-hidden text-ellipsis whitespace-nowrap text-white\">\n        {environment.Name}\n      </span>\n\n      <button\n        title=\"Clear environment\"\n        type=\"button\"\n        onClick={onClear}\n        className={clsx(\n          styles.closeBtn,\n          'ml-auto mr-2 flex h-5 w-5 items-center justify-center rounded border-0 p-1 text-sm text-gray-5 transition-colors duration-200 hover:text-white be:text-gray-6 be:hover:text-white'\n        )}\n      >\n        <X />\n      </button>\n    </div>\n  );\n}\n","import {\n  Users,\n  Award,\n  Settings,\n  HardDrive,\n  Radio,\n  FileText,\n  Bell,\n} from 'lucide-react';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { SidebarItem } from './SidebarItem';\nimport { SidebarSection } from './SidebarSection';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\ninterface Props {\n  isPureAdmin: boolean;\n  isAdmin: boolean;\n  isTeamLeader?: boolean;\n}\n\nexport function SettingsSidebar({ isPureAdmin, isAdmin, isTeamLeader }: Props) {\n  const teamSyncQuery = usePublicSettings<boolean>({\n    select: (settings) => settings.TeamSync,\n  });\n\n  const isPureAdminOrTeamLeader =\n    isPureAdmin || (isTeamLeader && !teamSyncQuery.data && !isAdmin);\n  const showUsersSection = !window.ddExtension && isPureAdminOrTeamLeader;\n\n  return (\n    <SidebarSection title=\"Administration\">\n      {showUsersSection && (\n        <SidebarParent\n          label=\"User-related\"\n          icon={Users}\n          to=\"portainer.users\"\n          pathOptions={{ includePaths: ['portainer.teams', 'portainer.roles'] }}\n          data-cy=\"portainerSidebar-userRelated\"\n          listId=\"portainerSidebar-userRelated\"\n        >\n          <SidebarItem\n            to=\"portainer.users\"\n            label=\"Users\"\n            isSubMenu\n            data-cy=\"portainerSidebar-users\"\n          />\n          <SidebarItem\n            to=\"portainer.teams\"\n            label=\"Teams\"\n            isSubMenu\n            data-cy=\"portainerSidebar-teams\"\n          />\n\n          {isPureAdmin && (\n            <SidebarItem\n              to=\"portainer.roles\"\n              label=\"Roles\"\n              isSubMenu\n              data-cy=\"portainerSidebar-roles\"\n            />\n          )}\n        </SidebarParent>\n      )}\n      {isPureAdmin && (\n        <>\n          <SidebarParent\n            label=\"Environment-related\"\n            icon={HardDrive}\n            to=\"portainer.endpoints\"\n            pathOptions={{\n              includePaths: [\n                'portainer.wizard.endpoints',\n                'portainer.groups',\n                'portainer.tags',\n              ],\n            }}\n            data-cy=\"portainerSidebar-environments-area\"\n            listId=\"portainer-environments\"\n          >\n            <SidebarItem\n              label=\"Environments\"\n              to=\"portainer.endpoints\"\n              ignorePaths={['portainer.endpoints.updateSchedules']}\n              includePaths={['portainer.wizard.endpoints']}\n              isSubMenu\n              data-cy=\"portainerSidebar-environments\"\n            />\n            <SidebarItem\n              to=\"portainer.groups\"\n              label=\"Groups\"\n              isSubMenu\n              data-cy=\"portainerSidebar-environmentGroups\"\n            />\n            <SidebarItem\n              to=\"portainer.tags\"\n              label=\"Tags\"\n              isSubMenu\n              data-cy=\"portainerSidebar-environmentTags\"\n            />\n            <EdgeUpdatesSidebarItem />\n          </SidebarParent>\n\n          <SidebarItem\n            label=\"Registries\"\n            to=\"portainer.registries\"\n            icon={Radio}\n            data-cy=\"portainerSidebar-registries\"\n          />\n\n          {isBE && (\n            <SidebarItem\n              to=\"portainer.licenses\"\n              label=\"Licenses\"\n              icon={Award}\n              data-cy=\"portainerSidebar-licenses\"\n            />\n          )}\n\n          <SidebarParent\n            label=\"Logs\"\n            to=\"portainer.authLogs\"\n            icon={FileText}\n            pathOptions={{\n              includePaths: ['portainer.activityLogs'],\n            }}\n            data-cy=\"k8sSidebar-logs\"\n            listId=\"k8sSidebar-logs\"\n          >\n            <SidebarItem\n              label=\"Authentication\"\n              to=\"portainer.authLogs\"\n              isSubMenu\n              data-cy=\"portainerSidebar-authLogs\"\n            />\n            <SidebarItem\n              to=\"portainer.activityLogs\"\n              label=\"Activity\"\n              isSubMenu\n              data-cy=\"portainerSidebar-activityLogs\"\n            />\n          </SidebarParent>\n        </>\n      )}\n      {isBE && !isPureAdmin && isAdmin && (\n        <SidebarParent\n          label=\"Environment-related\"\n          icon={HardDrive}\n          to=\"portainer.endpoints.updateSchedules\"\n          data-cy=\"portainerSidebar-environments-area\"\n          listId=\"portainer-environments-area\"\n        >\n          <EdgeUpdatesSidebarItem />\n        </SidebarParent>\n      )}\n\n      <SidebarItem\n        to=\"portainer.notifications\"\n        icon={Bell}\n        label=\"Notifications\"\n        data-cy=\"portainerSidebar-notifications\"\n      />\n      {isPureAdmin && (\n        <SidebarParent\n          to=\"portainer.settings\"\n          label=\"Settings\"\n          icon={Settings}\n          data-cy=\"portainerSidebar-settings\"\n          listId=\"portainer-settings\"\n        >\n          <SidebarItem\n            to=\"portainer.settings\"\n            label=\"General\"\n            isSubMenu\n            ignorePaths={[\n              'portainer.settings.authentication',\n              'portainer.settings.sharedcredentials',\n              'portainer.settings.edgeCompute',\n            ]}\n            data-cy=\"portainerSidebar-generalSettings\"\n          />\n          {!window.ddExtension && (\n            <SidebarItem\n              to=\"portainer.settings.authentication\"\n              label=\"Authentication\"\n              isSubMenu\n              data-cy=\"portainerSidebar-authentication\"\n            />\n          )}\n          {isBE && (\n            <SidebarItem\n              to=\"portainer.settings.sharedcredentials\"\n              label=\"Shared Credentials\"\n              isSubMenu\n              data-cy=\"portainerSidebar-cloud\"\n            />\n          )}\n\n          <SidebarItem\n            to=\"portainer.settings.edgeCompute\"\n            label=\"Edge Compute\"\n            isSubMenu\n            data-cy=\"portainerSidebar-edgeCompute\"\n          />\n\n          <SidebarItem.Wrapper label=\"Help / About\">\n            <a\n              href={\n                process.env.PORTAINER_EDITION === 'CE'\n                  ? 'https://www.portainer.io/community_help'\n                  : 'https://documentation.portainer.io/r/business-support'\n              }\n              target=\"_blank\"\n              rel=\"noreferrer\"\n              className=\"hover:!underline focus:no-underline text-sm flex h-8 w-full items-center rounded px-3 transition-colors duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20\"\n            >\n              Help / About\n            </a>\n          </SidebarItem.Wrapper>\n        </SidebarParent>\n      )}\n    </SidebarSection>\n  );\n}\n\nfunction EdgeUpdatesSidebarItem() {\n  const settingsQuery = usePublicSettings();\n\n  if (!isBE || !settingsQuery.data?.EnableEdgeComputeFeatures) {\n    return null;\n  }\n\n  return (\n    <SidebarItem\n      to=\"portainer.endpoints.updateSchedules\"\n      label=\"Update & Rollback\"\n      isSubMenu\n      data-cy=\"portainerSidebar-updateSchedules\"\n    />\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-Footer-UpdateNotifications-module__root\",\"dismissTitle\":\"app-react-sidebar-Footer-UpdateNotifications-module__dismissTitle\",\"dismissBtn\":\"app-react-sidebar-Footer-UpdateNotifications-module__dismissBtn\",\"actions\":\"app-react-sidebar-Footer-UpdateNotifications-module__actions\"};","import clsx from 'clsx';\nimport { DownloadCloud } from 'lucide-react';\n\nimport { useUIState } from '@/react/hooks/useUIState';\nimport { useSystemVersion } from '@/react/portainer/system/useSystemVersion';\n\nimport { Icon } from '@@/Icon';\n\nimport styles from './UpdateNotifications.module.css';\n\nexport function UpdateNotification() {\n  const uiStateStore = useUIState();\n  const query = useSystemVersion();\n\n  if (!query.data || !query.data.UpdateAvailable) {\n    return null;\n  }\n\n  const { LatestVersion } = query.data;\n\n  if (\n    !!uiStateStore.dismissedUpdateVersion &&\n    LatestVersion?.length > 0 &&\n    uiStateStore.dismissedUpdateVersion === LatestVersion\n  ) {\n    return null;\n  }\n\n  return (\n    <div\n      className={clsx(\n        styles.root,\n        'rounded border py-2',\n        'bg-blue-11 th-dark:bg-gray-warm-11',\n        'border-blue-9 th-dark:border-gray-warm-9'\n      )}\n    >\n      <div className={clsx(styles.dismissTitle, 'vertical-center')}>\n        <Icon icon={DownloadCloud} mode=\"primary\" size=\"md\" />\n        <span className=\"space-left\">\n          New version available {LatestVersion}\n        </span>\n      </div>\n\n      <div className={clsx(styles.actions)}>\n        <button\n          type=\"button\"\n          className={clsx(styles.dismissBtn, 'space-right')}\n          onClick={() => onDismiss(LatestVersion)}\n        >\n          Dismiss\n        </button>\n        <a\n          className=\"hyperlink space-left\"\n          target=\"_blank\"\n          href={`https://github.com/portainer/portainer/releases/tag/${LatestVersion}`}\n          rel=\"noreferrer\"\n        >\n          See what&apos;s new\n        </a>\n      </div>\n    </div>\n  );\n\n  function onDismiss(version: string) {\n    uiStateStore.dismissUpdateVersion(version);\n  }\n}\n","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgPortainerLogo = function SvgPortainerLogo(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 190 47\"\n  }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#portainer_logo_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#13BEF9\",\n    fillRule: \"evenodd\",\n    d: \"M10.893 10.604h-.698v3.658h.698v-3.658ZM13.895 10.604h-.698v3.658h.698v-3.658ZM17.997 3.623 17.28 2.37 5.342 9.349l.716 1.255 11.939-6.98Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#13BEF9\",\n    fillRule: \"evenodd\",\n    d: \"m17.927 3.623.715-1.254 11.94 6.98-.716 1.255-11.94-6.98Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#13BEF9\",\n    fillRule: \"evenodd\",\n    d: \"M32.693 10.622v-1.45H-.017v1.45h32.71Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#13BEF9\",\n    fillRule: \"evenodd\",\n    d: \"M19.742 31.087V9.614h1.431V32.13c-.384-.442-.872-.76-1.43-1.043ZM17.299 30.716V.425h1.43v30.468c-.4-.195-1.378-.177-1.43-.177ZM3.737 33.738a7.19 7.19 0 0 1-2.898-5.761c0-1.255.332-2.492.943-3.57H14a7.085 7.085 0 0 1 .942 3.57c0 1.095-.14 2.12-.576 3.04-.925-.902-2.286-1.29-3.665-1.29-2.444 0-4.538 1.537-5.08 3.834-.191-.017-.313-.035-.505-.035a6.054 6.054 0 0 0-1.38.212ZM9.74 15.888h-3.7v3.765h3.7v-3.765ZM5.57 15.888H1.868v3.765h3.7v-3.765ZM5.57 20.077H1.868v3.764h3.7v-3.764ZM9.74 20.077h-3.7v3.764h3.7v-3.764ZM13.895 20.077h-3.7v3.764h3.7v-3.764ZM13.895 13.873h-3.7v3.765h3.7v-3.765Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#13BEF9\",\n    fillRule: \"evenodd\",\n    d: \"M6.232 34.303c.507-2.173 2.444-3.8 4.748-3.8 1.484 0 2.81.672 3.718 1.733a4.785 4.785 0 0 1 2.758-.866c2.688 0 4.87 2.209 4.87 4.93 0 .566-.088 1.096-.262 1.609.593.813.96 1.838.96 2.933 0 2.722-2.182 4.931-4.87 4.931a4.795 4.795 0 0 1-3.107-1.131c-.89 1.255-2.339 2.085-3.98 2.085-1.885 0-3.525-1.095-4.346-2.686-.331.07-.663.106-1.012.106-2.688 0-4.887-2.209-4.887-4.93 0-2.722 2.182-4.931 4.887-4.931.175-.018.349-.018.524.017Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M43.964 17.884c.503-.659 1.187-1.213 2.054-1.664.867-.45 1.846-.676 2.938-.676 1.248 0 2.383.312 3.406.936 1.04.607 1.855 1.465 2.444 2.574.59 1.11.884 2.383.884 3.822s-.295 2.73-.884 3.874c-.59 1.127-1.404 2.01-2.444 2.652-1.023.624-2.158.936-3.406.936-1.092 0-2.063-.217-2.912-.65-.85-.45-1.543-1.005-2.08-1.664v8.892H41V15.778h2.964v2.106Zm8.71 4.992c0-.988-.208-1.837-.624-2.548-.399-.728-.936-1.274-1.612-1.638a4.184 4.184 0 0 0-2.132-.572c-.745 0-1.456.19-2.132.572-.659.381-1.196.936-1.612 1.664-.399.728-.598 1.586-.598 2.574 0 .988.2 1.855.598 2.6.416.728.953 1.283 1.612 1.664a4.277 4.277 0 0 0 2.132.572c.763 0 1.473-.19 2.132-.572.676-.399 1.213-.97 1.612-1.716.416-.745.624-1.612.624-2.6ZM64.835 30.338c-1.352 0-2.574-.303-3.666-.91a6.746 6.746 0 0 1-2.574-2.6c-.624-1.127-.936-2.427-.936-3.9 0-1.456.32-2.747.962-3.874a6.645 6.645 0 0 1 2.626-2.6c1.11-.607 2.349-.91 3.718-.91 1.37 0 2.609.303 3.718.91a6.645 6.645 0 0 1 2.626 2.6c.641 1.127.962 2.418.962 3.874s-.33 2.747-.988 3.874a6.909 6.909 0 0 1-2.704 2.626c-1.127.607-2.375.91-3.744.91Zm0-2.574c.763 0 1.473-.182 2.132-.546.676-.364 1.222-.91 1.638-1.638.416-.728.624-1.612.624-2.652s-.2-1.915-.598-2.626c-.399-.728-.927-1.274-1.586-1.638a4.337 4.337 0 0 0-2.132-.546c-.763 0-1.473.182-2.132.546-.641.364-1.153.91-1.534 1.638-.381.71-.572 1.586-.572 2.626 0 1.543.39 2.739 1.17 3.588.797.832 1.794 1.248 2.99 1.248ZM78.165 17.858a4.584 4.584 0 0 1 1.716-1.69c.728-.416 1.586-.624 2.574-.624v3.068h-.754c-1.161 0-2.045.295-2.652.884-.59.59-.884 1.612-.884 3.068v7.54h-2.964V15.778h2.964v2.08ZM88.638 18.196v7.93c0 .537.121.927.364 1.17.26.225.693.338 1.3.338h1.82v2.47h-2.34c-1.335 0-2.358-.312-3.068-.936-.711-.624-1.066-1.638-1.066-3.042v-7.93h-1.69v-2.418h1.69v-3.562h2.99v3.562h3.484v2.418h-3.484ZM93.865 22.876c0-1.439.295-2.713.885-3.822.606-1.11 1.421-1.967 2.444-2.574a6.546 6.546 0 0 1 3.432-.936c1.126 0 2.106.225 2.938.676.849.433 1.525.98 2.028 1.638v-2.08h2.99v14.326h-2.99v-2.132c-.503.676-1.188 1.24-2.054 1.69-.867.45-1.855.676-2.964.676a6.362 6.362 0 0 1-3.38-.936c-1.023-.641-1.838-1.525-2.444-2.652-.59-1.144-.885-2.435-.885-3.874Zm11.727.052c0-.988-.208-1.846-.624-2.574-.399-.728-.928-1.283-1.586-1.664a4.186 4.186 0 0 0-2.132-.572c-.763 0-1.474.19-2.132.572-.659.364-1.196.91-1.612 1.638-.399.71-.598 1.56-.598 2.548s.199 1.855.598 2.6c.416.745.953 1.317 1.612 1.716a4.275 4.275 0 0 0 2.132.572c.762 0 1.473-.19 2.132-.572.658-.381 1.187-.936 1.586-1.664.416-.745.624-1.612.624-2.6ZM113.983 13.88c-.538 0-.988-.182-1.352-.546-.364-.364-.546-.815-.546-1.352 0-.537.182-.988.546-1.352.364-.364.814-.546 1.352-.546.52 0 .962.182 1.326.546.364.364.546.815.546 1.352 0 .537-.182.988-.546 1.352a1.805 1.805 0 0 1-1.326.546Zm1.456 1.898v14.326h-2.964V15.778h2.964ZM126.558 15.544c1.127 0 2.132.234 3.016.702a4.977 4.977 0 0 1 2.106 2.08c.503.919.754 2.028.754 3.328v8.45h-2.938v-8.008c0-1.283-.321-2.262-.962-2.938-.641-.693-1.517-1.04-2.626-1.04s-1.993.347-2.652 1.04c-.641.676-.962 1.655-.962 2.938v8.008h-2.964V15.778h2.964v1.638a4.928 4.928 0 0 1 1.846-1.378 6.038 6.038 0 0 1 2.418-.494ZM149.345 22.59c0 .537-.035 1.023-.104 1.456h-10.946c.087 1.144.511 2.063 1.274 2.756.763.693 1.699 1.04 2.808 1.04 1.595 0 2.721-.667 3.38-2.002h3.198c-.433 1.317-1.222 2.4-2.366 3.25-1.127.832-2.531 1.248-4.212 1.248-1.369 0-2.6-.303-3.692-.91a6.799 6.799 0 0 1-2.548-2.6c-.607-1.127-.91-2.427-.91-3.9 0-1.473.295-2.765.884-3.874.607-1.127 1.447-1.993 2.522-2.6 1.092-.607 2.34-.91 3.744-.91 1.352 0 2.557.295 3.614.884a6.224 6.224 0 0 1 2.47 2.496c.589 1.057.884 2.28.884 3.666Zm-3.094-.936c-.017-1.092-.407-1.967-1.17-2.626-.763-.659-1.707-.988-2.834-.988-1.023 0-1.898.33-2.626.988-.728.641-1.161 1.517-1.3 2.626h7.93ZM155.226 17.858a4.58 4.58 0 0 1 1.716-1.69c.728-.416 1.586-.624 2.574-.624v3.068h-.754c-1.162 0-2.046.295-2.652.884-.59.59-.884 1.612-.884 3.068v7.54h-2.964V15.778h2.964v2.08ZM163.436 30.286c-.537 0-.988-.182-1.352-.546-.364-.364-.546-.815-.546-1.352 0-.537.182-.988.546-1.352.364-.364.815-.546 1.352-.546.52 0 .962.182 1.326.546.364.364.546.815.546 1.352 0 .537-.182.988-.546 1.352a1.805 1.805 0 0 1-1.326.546ZM170.02 13.88c-.538 0-.988-.182-1.352-.546-.364-.364-.546-.815-.546-1.352 0-.537.182-.988.546-1.352.364-.364.814-.546 1.352-.546.52 0 .962.182 1.326.546.364.364.546.815.546 1.352 0 .537-.182.988-.546 1.352a1.805 1.805 0 0 1-1.326.546Zm1.456 1.898v14.326h-2.964V15.778h2.964ZM181.581 30.338c-1.352 0-2.574-.303-3.666-.91a6.746 6.746 0 0 1-2.574-2.6c-.624-1.127-.936-2.427-.936-3.9 0-1.456.321-2.747.962-3.874a6.651 6.651 0 0 1 2.626-2.6c1.11-.607 2.349-.91 3.718-.91 1.37 0 2.609.303 3.718.91a6.638 6.638 0 0 1 2.626 2.6c.642 1.127.962 2.418.962 3.874s-.329 2.747-.988 3.874a6.904 6.904 0 0 1-2.704 2.626c-1.126.607-2.374.91-3.744.91Zm0-2.574c.763 0 1.474-.182 2.132-.546.676-.364 1.222-.91 1.638-1.638.416-.728.624-1.612.624-2.652s-.199-1.915-.598-2.626c-.398-.728-.927-1.274-1.586-1.638a4.335 4.335 0 0 0-2.132-.546 4.34 4.34 0 0 0-2.132.546c-.641.364-1.152.91-1.534 1.638-.381.71-.572 1.586-.572 2.626 0 1.543.39 2.739 1.17 3.588.798.832 1.794 1.248 2.99 1.248Z\"\n  }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"portainer_logo_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M0 0h190v47H0z\"\n  })))));\n};\nexport default SvgPortainerLogo;","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-Footer-Footer-module__root\",\"dialog\":\"app-react-sidebar-Footer-Footer-module__dialog\",\"versionInfo\":\"app-react-sidebar-Footer-Footer-module__versionInfo\",\"toolsList\":\"app-react-sidebar-Footer-Footer-module__toolsList\",\"tools\":\"app-react-sidebar-Footer-Footer-module__tools\"};","import { useState } from 'react';\nimport {\n  Database,\n  GitCommit,\n  Hash,\n  Server,\n  Tag,\n  Variable,\n  Wrench,\n} from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { useSystemStatus } from '@/react/portainer/system/useSystemStatus';\nimport { useSystemVersion } from '@/react/portainer/system/useSystemVersion';\nimport { useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { Modal } from '@@/modals';\nimport { Button } from '@@/buttons';\n\nimport styles from './Footer.module.css';\n\nexport function BuildInfoModalButton() {\n  const [isBuildInfoVisible, setIsBuildInfoVisible] = useState(false);\n  const statusQuery = useSystemStatus();\n\n  if (!statusQuery.data) {\n    return null;\n  }\n\n  const { Version } = statusQuery.data;\n\n  return (\n    <>\n      <button\n        type=\"button\"\n        data-cy=\"portainerSidebar-versionNumber\"\n        className=\"btn-none\"\n        onClick={() => setIsBuildInfoVisible(true)}\n      >\n        {Version}\n      </button>\n      {isBuildInfoVisible && (\n        <BuildInfoModal closeModal={() => setIsBuildInfoVisible(false)} />\n      )}\n    </>\n  );\n}\n\nfunction BuildInfoModal({ closeModal }: { closeModal: () => void }) {\n  const { isAdmin } = useIsEdgeAdmin({ noEnvScope: true });\n  const versionQuery = useSystemVersion();\n  const statusQuery = useSystemStatus();\n\n  if (!statusQuery.data || !versionQuery.data) {\n    return null;\n  }\n\n  const { Edition } = statusQuery.data;\n  const { ServerVersion, DatabaseVersion, Build } = versionQuery.data;\n\n  return (\n    <Modal onDismiss={closeModal} aria-label=\"build-info-modal\">\n      <Modal.Header title={`Portainer ${Edition}`} />\n      <Modal.Body>\n        <div className={styles.versionInfo}>\n          <table>\n            <tbody>\n              <tr>\n                <td>\n                  <span className=\"inline-flex items-center\">\n                    <Server size=\"13\" className=\"space-right\" />\n                    Server Version: {ServerVersion}\n                  </span>\n                </td>\n                <td>\n                  <span className=\"inline-flex items-center\">\n                    <Database size=\"13\" className=\"space-right\" />\n                    Database Version: {DatabaseVersion}\n                  </span>\n                </td>\n              </tr>\n              <tr>\n                <td>\n                  <span className=\"inline-flex items-center\">\n                    <Hash size=\"13\" className=\"space-right\" />\n                    CI Build Number: {Build.BuildNumber}\n                  </span>\n                </td>\n                <td>\n                  <span>\n                    <Tag size=\"13\" className=\"space-right\" />\n                    Image Tag: {Build.ImageTag}\n                  </span>\n                </td>\n              </tr>\n              <tr>\n                <td>\n                  <GitCommit size=\"13\" className=\"space-right\" />\n                  Git Commit: {Build.GitCommit}\n                </td>\n                <td />\n              </tr>\n            </tbody>\n          </table>\n        </div>\n        <div className={styles.toolsList}>\n          <span className=\"inline-flex items-center\">\n            <Wrench size=\"13\" className=\"space-right\" />\n            Compilation tools:\n          </span>\n\n          <div className={styles.tools}>\n            <span className=\"text-muted small\">\n              Nodejs v{Build.NodejsVersion}\n            </span>\n            <span className=\"text-muted small\">Yarn v{Build.YarnVersion}</span>\n            <span className=\"text-muted small\">\n              Webpack v{Build.WebpackVersion}\n            </span>\n            <span className=\"text-muted small\">Go v{Build.GoVersion}</span>\n          </div>\n        </div>\n\n        {isAdmin && Build.Env && (\n          <div className={clsx(styles.toolsList, 'mt-3')}>\n            <span className=\"inline-flex items-center \">\n              <Variable size=\"13\" className=\"space-right\" />\n              Environment Variables\n            </span>\n\n            <div\n              className={clsx(styles.tools, 'max-h-32 overflow-auto space-y-2')}\n            >\n              {Build.Env.map((envVar) => (\n                <div key={envVar}>\n                  <code>{envVar}</code>\n                </div>\n              ))}\n            </div>\n          </div>\n        )}\n      </Modal.Body>\n      <Modal.Footer>\n        <Button className=\"w-full\" onClick={closeModal}>\n          Ok\n        </Button>\n      </Modal.Footer>\n    </Modal>\n  );\n}\n","import { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\n\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { UpdateNotification } from './UpdateNotifications';\nimport { BuildInfoModalButton } from './BuildInfoModal';\nimport '@reach/dialog/styles.css';\nimport styles from './Footer.module.css';\nimport Logo from './portainer_logo.svg?c';\n\nexport function Footer() {\n  return isBE ? <BEFooter /> : <CEFooter />;\n}\n\nfunction CEFooter() {\n  return (\n    <div className={clsx(styles.root, 'text-center')}>\n      <UpdateNotification />\n\n      <FooterContent>\n        <Logo width=\"90px\" height=\"100%\" />\n        <span>Community Edition</span>\n\n        <BuildInfoModalButton />\n      </FooterContent>\n    </div>\n  );\n}\n\nfunction BEFooter() {\n  return (\n    <div className={clsx(styles.root, 'text-center')}>\n      <FooterContent>\n        <span>&copy;</span>\n        <span>Portainer Business Edition</span>\n\n        <BuildInfoModalButton />\n      </FooterContent>\n    </div>\n  );\n}\n\nfunction FooterContent({ children }: PropsWithChildren<unknown>) {\n  return (\n    <div className=\"mx-auto flex items-center justify-center space-x-1 text-[10px] text-gray-5 be:text-gray-6\">\n      {children}\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"app-react-sidebar-Header-module__logo\",\"collapseBtn\":\"app-react-sidebar-Header-module__collapseBtn\"};","import { ChevronsLeft, ChevronsRight } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport smallLogo from '@/assets/ico/logomark.svg';\n\nimport { Link } from '@@/Link';\n\nimport fullLogoBE from './portainer_logo-BE.svg';\nimport fullLogoCE from './portainer_logo-CE.svg';\nimport { useSidebarState } from './useSidebarState';\nimport styles from './Header.module.css';\n\ninterface Props {\n  logo?: string;\n}\n\nexport function Header({ logo: customLogo }: Props) {\n  const { toggle, isOpen } = useSidebarState();\n\n  return (\n    <div className=\"flex\">\n      <div>\n        <Link\n          to=\"portainer.home\"\n          data-cy=\"portainerSidebar-homeImage\"\n          className=\"text-2xl text-white no-underline hover:text-white hover:no-underline focus:text-white focus:no-underline focus:outline-none\"\n        >\n          <Logo customLogo={customLogo} isOpen={isOpen} />\n        </Link>\n        {isOpen && customLogo && (\n          <div\n            className={clsx(\n              'space-x-1 pt-3 text-[9.4px] uppercase tracking-[.28em]',\n              'text-gray-3',\n              'th-dark:text-gray-warm-6'\n            )}\n          >\n            <span className=\"font-medium\">Powered by</span>\n            <span className=\"font-semibold\">\n              {isBE ? (\n                'portainer business'\n              ) : (\n                <a\n                  href=\"https://www.portainer.io/install-BE-now\"\n                  className={clsx(\n                    'hover:underline',\n                    'text-blue-6 hover:text-blue-8',\n                    'th-dark:text-blue-7 th-dark:hover:text-blue-9'\n                  )}\n                >\n                  portainer community\n                </a>\n              )}\n            </span>\n          </div>\n        )}\n      </div>\n\n      <button\n        type=\"button\"\n        onClick={() => toggle()}\n        className={clsx(\n          styles.collapseBtn,\n          'flex h-6 w-6 items-center justify-center rounded border-0',\n          'transition-all duration-200',\n          'text-sm text-gray-4 hover:text-white be:text-gray-5 be:hover:text-white',\n          'bg-blue-11 be:bg-gray-10',\n          'th-dark:bg-gray-warm-11',\n          'absolute',\n          { '-right-[10px]': !isOpen, 'right-6': isOpen }\n        )}\n        aria-label=\"Toggle Sidebar\"\n        title=\"Toggle Sidebar\"\n      >\n        {isOpen ? <ChevronsLeft /> : <ChevronsRight />}\n      </button>\n    </div>\n  );\n}\n\nfunction getLogo(isOpen: boolean, customLogo?: string) {\n  if (customLogo) {\n    return customLogo;\n  }\n\n  if (!isOpen) {\n    return smallLogo;\n  }\n\n  return isBE ? fullLogoBE : fullLogoCE;\n}\n\nfunction Logo({\n  customLogo,\n  isOpen,\n}: {\n  customLogo?: string;\n  isOpen: boolean;\n}) {\n  const logo = getLogo(isOpen, customLogo);\n\n  return (\n    <img\n      src={logo}\n      className={clsx('img-responsive', styles.logo)}\n      alt=\"Logo\"\n    />\n  );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from './build-url';\nimport { queryKeys } from './query-keys';\n\nexport const queryKey = [...queryKeys.base(), 'info'] as const;\n\nexport type ContainerPlatform =\n  | 'Docker Standalone'\n  | 'Docker Swarm'\n  | 'Kubernetes'\n  | 'Podman';\n\nexport interface SystemInfoResponse {\n  platform: ContainerPlatform;\n  agents: number;\n  edgeAgents: number;\n}\n\nasync function getSystemInfo() {\n  try {\n    const { data } = await axios.get<SystemInfoResponse>(buildUrl('info'));\n    return data;\n  } catch (error) {\n    throw parseAxiosError(error as Error);\n  }\n}\n\nexport function useSystemInfo() {\n  return useQuery(queryKey, getSystemInfo, {\n    ...withError('Unable to retrieve system info'),\n  });\n}\n","import { useMutation } from 'react-query';\n\nimport axios, {\n  isAxiosError,\n  parseAxiosError,\n} from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from './build-url';\n\nexport function useUpgradeEditionMutation() {\n  return useMutation(upgradeEdition, {\n    ...withError('Unable to upgrade edition'),\n  });\n}\n\nasync function upgradeEdition({ license }: { license: string }) {\n  try {\n    await axios.post(buildUrl('upgrade'), { license });\n  } catch (error) {\n    if (!isAxiosError(error)) {\n      throw error;\n    }\n\n    // if error is because the server disconnected, then everything went well\n    if (!error.response || !error.response.status) {\n      return;\n    }\n\n    throw parseAxiosError(error);\n  }\n}\n","import { Field, Form, Formik } from 'formik';\nimport { object, SchemaOf, string } from 'yup';\n\nimport { useUpgradeEditionMutation } from '@/react/portainer/system/useUpgradeEditionMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Button, LoadingButton } from '@@/buttons';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { Modal } from '@@/modals/Modal';\nimport { Alert } from '@@/Alert';\n\ninterface FormValues {\n  license: string;\n}\n\nconst initialValues: FormValues = {\n  license: '',\n};\n\nexport function UploadLicenseDialog({\n  onDismiss,\n  goToLoading,\n  goToGetLicense,\n  isGetLicenseSubmitted,\n}: {\n  onDismiss: () => void;\n  goToLoading: () => void;\n  goToGetLicense: () => void;\n  isGetLicenseSubmitted: boolean;\n}) {\n  const upgradeMutation = useUpgradeEditionMutation();\n  const { trackEvent } = useAnalytics();\n\n  return (\n    <Modal\n      onDismiss={onDismiss}\n      aria-label=\"Upgrade Portainer to Business Edition\"\n    >\n      <Modal.Header\n        title={<h4 className=\"text-xl font-medium\">Upgrade Portainer</h4>}\n      />\n      <Formik\n        initialValues={initialValues}\n        onSubmit={handleSubmit}\n        validationSchema={validation}\n        validateOnMount\n      >\n        {({ errors }) => (\n          <Form noValidate>\n            <Modal.Body>\n              {!isGetLicenseSubmitted ? (\n                <p className=\"font-semibold text-gray-7\">\n                  Please enter your Portainer License below\n                </p>\n              ) : (\n                <div className=\"mb-4\">\n                  <Alert color=\"success\" title=\"License successfully sent\">\n                    Please check your email and copy your license into the field\n                    below to upgrade Portainer.\n                  </Alert>\n                </div>\n              )}\n\n              <FormControl\n                label=\"License\"\n                errors={errors.license}\n                required\n                size=\"vertical\"\n              >\n                <Field name=\"license\" as={Input} required />\n              </FormControl>\n            </Modal.Body>\n            <Modal.Footer>\n              <div className=\"flex w-full gap-2 [&>*]:w-1/2\">\n                <Button\n                  color=\"default\"\n                  size=\"medium\"\n                  className=\"w-full\"\n                  onClick={goToGetLicense}\n                >\n                  Get a license\n                </Button>\n                <LoadingButton\n                  color=\"primary\"\n                  size=\"medium\"\n                  loadingText=\"Validating License\"\n                  isLoading={upgradeMutation.isLoading}\n                >\n                  Start upgrade\n                </LoadingButton>\n              </div>\n            </Modal.Footer>\n          </Form>\n        )}\n      </Formik>\n    </Modal>\n  );\n\n  function handleSubmit(values: FormValues) {\n    upgradeMutation.mutate(values, {\n      onSuccess() {\n        trackEvent('portainer-upgrade-license-key-provided', {\n          category: 'portainer',\n          metadata: {\n            Upgrade: 'true',\n          },\n        });\n\n        notifySuccess('Starting upgrade', 'License validated successfully');\n        goToLoading();\n      },\n    });\n  }\n}\n\nfunction validation(): SchemaOf<FormValues> {\n  return object().shape({\n    license: string()\n      .required('License is required')\n      .matches(/^\\d-.+/, 'License is invalid'),\n  });\n}\n","import { Loader2 } from 'lucide-react';\nimport { useEffect, useState } from 'react';\n\nimport { useSystemStatus } from '@/react/portainer/system/useSystemStatus';\n\nimport { Modal } from '@@/modals/Modal';\nimport { Icon } from '@@/Icon';\n\nexport function LoadingDialog() {\n  useWaitForServerStatus();\n\n  return (\n    <Modal aria-label=\"Upgrade Portainer to Business Edition\">\n      <Modal.Body>\n        <div className=\"flex w-full flex-col items-center justify-center\">\n          <Icon\n            icon={Loader2}\n            className=\"animate-spin-slow !text-8xl !text-blue-8\"\n            aria-label=\"loading\"\n          />\n\n          <h1 className=\"!text-2xl\">Upgrading Portainer...</h1>\n\n          <p className=\"text-center text-xl text-gray-6\">\n            Please wait while we upgrade your Portainer to Business Edition.\n          </p>\n        </div>\n      </Modal.Body>\n    </Modal>\n  );\n}\n\nfunction useWaitForServerStatus() {\n  const [enabled, setEnabled] = useState(false);\n  useSystemStatus({\n    enabled,\n    retry: true,\n    onSuccess() {\n      window.location.reload();\n    },\n  });\n\n  useEffect(() => {\n    const timeoutId = setTimeout(() => {\n      setEnabled(true);\n    }, 3000);\n\n    return () => {\n      clearTimeout(timeoutId);\n    };\n  });\n}\n","import { ExternalLink } from 'lucide-react';\n\nimport { Button } from '@@/buttons';\nimport { Modal } from '@@/modals/Modal';\nimport { ModalType } from '@@/modals/Modal/types';\n\nexport function NonAdminUpgradeDialog({\n  onDismiss,\n}: {\n  onDismiss: () => void;\n}) {\n  return (\n    <Modal aria-label=\"Upgrade Portainer to Business Edition\">\n      <Modal.Header\n        title=\"Contact your administrator\"\n        modalType={ModalType.Warn}\n      />\n      <Modal.Body>\n        You need to be logged in as an admin to upgrade Portainer to Business\n        Edition.\n      </Modal.Body>\n      <Modal.Footer>\n        <div className=\"flex w-full gap-2\">\n          <Button\n            color=\"default\"\n            size=\"medium\"\n            className=\"w-1/3\"\n            onClick={() => onDismiss()}\n          >\n            Cancel\n          </Button>\n\n          <a\n            href=\"https://www.portainer.io/take-5\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n            className=\"no-link w-2/3\"\n          >\n            <Button\n              color=\"primary\"\n              size=\"medium\"\n              className=\"w-full\"\n              icon={ExternalLink}\n            >\n              Learn about Business Edition\n            </Button>\n          </a>\n        </div>\n      </Modal.Footer>\n    </Modal>\n  );\n}\n","import { ReactNode, useRef } from 'react';\nimport { useQuery } from 'react-query';\n\nlet globalId = 0;\n\ninterface Props {\n  portalId: HubSpotCreateFormOptions['portalId'];\n  formId: HubSpotCreateFormOptions['formId'];\n  region: HubSpotCreateFormOptions['region'];\n\n  onSubmitted: () => void;\n\n  loading?: ReactNode;\n}\n\nexport function HubspotForm({\n  loading,\n  portalId,\n  region,\n  formId,\n  onSubmitted,\n}: Props) {\n  const elRef = useRef<HTMLDivElement>(null);\n  const id = useRef(`reactHubspotForm${globalId++}`);\n  const { isLoading } = useHubspotForm({\n    elId: id.current,\n    formId,\n    portalId,\n    region,\n    onSubmitted,\n  });\n\n  return (\n    <>\n      <div\n        ref={elRef}\n        id={id.current}\n        style={{ display: isLoading ? 'none' : 'block' }}\n      />\n      {isLoading && loading}\n    </>\n  );\n}\n\nfunction useHubspotForm({\n  elId,\n  formId,\n  portalId,\n  region,\n  onSubmitted,\n}: {\n  elId: string;\n  portalId: HubSpotCreateFormOptions['portalId'];\n  formId: HubSpotCreateFormOptions['formId'];\n  region: HubSpotCreateFormOptions['region'];\n\n  onSubmitted: () => void;\n}) {\n  return useQuery(\n    ['hubspot', { elId, formId, portalId, region }],\n    async () => {\n      await loadHubspot();\n      await createForm(`#${elId}`, {\n        formId,\n        portalId,\n        region,\n        onFormSubmitted: onSubmitted,\n      });\n    },\n    {\n      refetchOnWindowFocus: false,\n    }\n  );\n}\n\nasync function loadHubspot() {\n  return new Promise<void>((resolve) => {\n    if (window.hbspt) {\n      resolve();\n      return;\n    }\n\n    const script = document.createElement(`script`);\n\n    script.defer = true;\n    script.onload = () => {\n      resolve();\n    };\n    script.src = `//js.hsforms.net/forms/v2.js`;\n    document.head.appendChild(script);\n  });\n}\n\nasync function createForm(\n  target: string,\n  options: Omit<HubSpotCreateFormOptions, 'target'>\n) {\n  return new Promise<void>((resolve) => {\n    if (!window.hbspt) {\n      throw new Error('hbspt object is missing');\n    }\n\n    window.hbspt.forms.create({\n      ...options,\n      target,\n      onFormReady(...rest) {\n        options.onFormReady?.(...rest);\n        resolve();\n      },\n    });\n  });\n}\n","import { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { HubspotForm } from '@@/HubspotForm';\nimport { Modal } from '@@/modals/Modal';\n\nexport function GetLicenseDialog({\n  onDismiss,\n  goToUploadLicense,\n}: {\n  onDismiss: () => void;\n  goToUploadLicense: (isSubmitted: boolean) => void;\n}) {\n  // form is loaded from hubspot, so it won't have the same styling as the rest of the app\n  // since it won't support darkmode, we enforce a white background and black text for the components we use\n  // (Modal, CloseButton, loading text)\n  const { trackEvent } = useAnalytics();\n\n  return (\n    <Modal\n      onDismiss={onDismiss}\n      aria-label=\"Upgrade Portainer to Business Edition\"\n      size=\"lg\"\n      className=\"!bg-white [&>.close-button]:!text-black\"\n    >\n      <Modal.Body>\n        <div className=\"max-h-[80vh] overflow-auto\">\n          <HubspotForm\n            region=\"na1\"\n            portalId=\"4731999\"\n            formId=\"1ef8ea88-3e03-46c5-8aef-c1d9f48fd06b\"\n            onSubmitted={() => {\n              trackEvent('portainer-upgrade-license-key-requested', {\n                category: 'portainer',\n                metadata: { 'Upgrade-key-requested': true },\n              });\n\n              goToUploadLicense(true);\n            }}\n            loading={<div className=\"text-black\">Loading...</div>}\n          />\n        </div>\n      </Modal.Body>\n    </Modal>\n  );\n}\n","import { useState } from 'react';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { UploadLicenseDialog } from './UploadLicenseDialog';\nimport { LoadingDialog } from './LoadingDialog';\nimport { NonAdminUpgradeDialog } from './NonAdminUpgradeDialog';\nimport { GetLicenseDialog } from './GetLicenseDialog';\n\ntype Step = 'uploadLicense' | 'loading' | 'getLicense';\n\nexport function UpgradeDialog({ onDismiss }: { onDismiss: () => void }) {\n  const { isPureAdmin } = useCurrentUser();\n  const [currentStep, setCurrentStep] = useState<Step>('uploadLicense');\n  const [isGetLicenseSubmitted, setIsGetLicenseSubmitted] = useState(false);\n  const component = getDialog();\n\n  return component;\n\n  function getDialog() {\n    if (!isPureAdmin) {\n      return <NonAdminUpgradeDialog onDismiss={onDismiss} />;\n    }\n\n    switch (currentStep) {\n      case 'getLicense':\n        return (\n          <GetLicenseDialog\n            goToUploadLicense={(isSubmitted) => {\n              setCurrentStep('uploadLicense');\n              setIsGetLicenseSubmitted(isSubmitted);\n            }}\n            onDismiss={onDismiss}\n          />\n        );\n      case 'uploadLicense':\n        return (\n          <UploadLicenseDialog\n            goToLoading={() => setCurrentStep('loading')}\n            onDismiss={onDismiss}\n            goToGetLicense={() => setCurrentStep('getLicense')}\n            isGetLicenseSubmitted={isGetLicenseSubmitted}\n          />\n        );\n      case 'loading':\n        return <LoadingDialog />;\n      default:\n        throw new Error('step type not found');\n    }\n  }\n}\n","import { ArrowUpCircle } from 'lucide-react';\nimport { useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\nimport { useNodesCount } from '@/react/portainer/system/useNodesCount';\nimport {\n  ContainerPlatform,\n  useSystemInfo,\n} from '@/react/portainer/system/useSystemInfo';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { withEdition } from '@/react/portainer/feature-flags/withEdition';\nimport { withHideOnExtension } from '@/react/hooks/withHideOnExtension';\nimport { useUser } from '@/portainer/users/queries/useUser';\n\nimport { useSidebarState } from '../useSidebarState';\n\nimport { UpgradeDialog } from './UpgradeDialog';\n\nexport const UpgradeBEBannerWrapper = withHideOnExtension(\n  withEdition(UpgradeBEBanner, 'CE')\n);\n\nconst enabledPlatforms: Array<ContainerPlatform> = [\n  'Docker Standalone',\n  'Docker Swarm',\n  'Kubernetes',\n];\n\nfunction UpgradeBEBanner() {\n  const {\n    isPureAdmin,\n    user: { Id },\n  } = useCurrentUser();\n\n  const { trackEvent } = useAnalytics();\n  const { isOpen: isSidebarOpen } = useSidebarState();\n\n  const nodesCountQuery = useNodesCount();\n  const systemInfoQuery = useSystemInfo();\n  const userQuery = useUser(Id);\n\n  const [isOpen, setIsOpen] = useState(false);\n\n  if (!nodesCountQuery.isSuccess || !systemInfoQuery.data || !userQuery.data) {\n    return null;\n  }\n\n  const nodesCount = nodesCountQuery.data;\n  const systemInfo = systemInfoQuery.data;\n\n  const metadata = {\n    upgrade: false,\n    nodeCount: nodesCount,\n    platform: systemInfo.platform,\n    edgeAgents: systemInfo.edgeAgents,\n    agents: systemInfo.agents,\n  };\n\n  if (\n    !enabledPlatforms.includes(systemInfo.platform) &&\n    process.env.NODE_ENV !== 'development'\n  ) {\n    return null;\n  }\n\n  return (\n    <>\n      <button\n        type=\"button\"\n        className={clsx(\n          'flex w-full items-center justify-center gap-1 py-2 pr-2 hover:underline',\n          'border border-solid border-blue-9 bg-[#023959] font-medium text-white th-dark:border-[#343434] th-dark:bg-black',\n          'th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white th-highcontrast:bg-black th-highcontrast:font-medium th-highcontrast:text-white'\n        )}\n        onClick={handleClick}\n      >\n        <ArrowUpCircle\n          className={clsx(\n            'lucide text-lg',\n            'fill-gray-6 stroke-[#023959] th-dark:stroke-black th-highcontrast:stroke-black'\n          )}\n        />\n        {isSidebarOpen && <>Upgrade to Business Edition</>}\n      </button>\n\n      {isOpen && <UpgradeDialog onDismiss={() => setIsOpen(false)} />}\n    </>\n  );\n\n  function handleClick() {\n    trackEvent(\n      isPureAdmin ? 'portainer-upgrade-admin' : 'portainer-upgrade-non-admin',\n      {\n        category: 'portainer',\n        metadata,\n      }\n    );\n    setIsOpen(true);\n  }\n}\n","import clsx from 'clsx';\nimport { Home } from 'lucide-react';\n\nimport { useIsEdgeAdmin, useIsPureAdmin } from '@/react/hooks/useUser';\nimport { useIsCurrentUserTeamLeader } from '@/portainer/users/queries';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport styles from './Sidebar.module.css';\nimport { EdgeComputeSidebar } from './EdgeComputeSidebar';\nimport { EnvironmentSidebar } from './EnvironmentSidebar';\nimport { SettingsSidebar } from './SettingsSidebar';\nimport { SidebarItem } from './SidebarItem';\nimport { Footer } from './Footer';\nimport { Header } from './Header';\nimport { SidebarProvider, useSidebarState } from './useSidebarState';\nimport { UpgradeBEBannerWrapper } from './UpgradeBEBanner';\n\nexport function Sidebar() {\n  return (\n    /* in the future (when we remove r2a) this should wrap the whole app - to change root styles */\n    <SidebarProvider>\n      <InnerSidebar />\n    </SidebarProvider>\n  );\n}\n\nfunction InnerSidebar() {\n  const isPureAdmin = useIsPureAdmin();\n  const isAdminQuery = useIsEdgeAdmin({ noEnvScope: true });\n  const isTeamLeader = useIsCurrentUserTeamLeader();\n  const { isOpen } = useSidebarState();\n\n  const settingsQuery = usePublicSettings();\n\n  if (!settingsQuery.data || isAdminQuery.isLoading) {\n    return null;\n  }\n\n  const { isAdmin } = isAdminQuery;\n\n  const { LogoURL } = settingsQuery.data;\n\n  return (\n    <div className={clsx(styles.root, 'sidebar flex flex-col')}>\n      <UpgradeBEBannerWrapper />\n      <nav\n        className={clsx(\n          styles.nav,\n          'flex flex-1 flex-col overflow-y-auto py-5 pl-5',\n          { 'pr-5': isOpen }\n        )}\n        aria-label=\"Main\"\n      >\n        <Header logo={LogoURL} />\n        {/* negative margin + padding -> scrollbar won't hide the content */}\n        <div\n          className={clsx(\n            styles.navListContainer,\n            'mt-6 flex-1 overflow-y-auto [color-scheme:light] be:[color-scheme:dark] th-dark:[color-scheme:dark] th-highcontrast:[color-scheme:dark]',\n            { 'pr-5 -mr-5': isOpen }\n          )}\n        >\n          <ul className={clsx('space-y-5', { 'w-[32px]': !isOpen })}>\n            <SidebarItem\n              to=\"portainer.home\"\n              icon={Home}\n              label=\"Home\"\n              data-cy=\"portainerSidebar-home\"\n            />\n            <EnvironmentSidebar />\n            {isAdmin && <EdgeComputeSidebar />}\n            <SettingsSidebar\n              isPureAdmin={isPureAdmin}\n              isAdmin={isAdmin}\n              isTeamLeader={isTeamLeader}\n            />\n          </ul>\n        </div>\n        <div className=\"mt-auto pt-8\">\n          <Footer />\n        </div>\n      </nav>\n    </div>\n  );\n}\n","import angular from 'angular';\n\nimport { AngularSidebarService } from '@/react/sidebar/useSidebarState';\nimport { Sidebar } from '@/react/sidebar/Sidebar';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\n\nexport const sidebarModule = angular\n  .module('portainer.app.sidebar', [])\n  .component(\n    'sidebar',\n    r2a(withUIRouter(withReactQuery(withCurrentUser(Sidebar))), [])\n  )\n  .factory('SidebarService', AngularSidebarService).name;\n","import angular from 'angular';\n\nimport { azureEndpointConfig } from './azure-endpoint-config/azure-endpoint-config';\n\nexport default angular\n  .module('portainer.environments', [])\n  .component('azureEndpointConfig', azureEndpointConfig).name;\n","import angular from 'angular';\n\nimport { WebhookHelperFactory } from './webhookHelper';\n\nexport const helpersModule = angular\n  .module('portainer.app.helpers', [])\n  .factory('WebhookHelper', WebhookHelperFactory).name;\n","const autoNgTemplateLoaderTemplate1 = require('./views/account/account.html');\nconst autoNgTemplateLoaderTemplate2 = require('./views/auth/auth.html');\nconst autoNgTemplateLoaderTemplate3 = require('./views/logout/logout.html');\nconst autoNgTemplateLoaderTemplate4 = require('./views/endpoints/edit/endpoint.html');\nconst autoNgTemplateLoaderTemplate5 = require('./views/devices/import/importDevice.html');\nconst autoNgTemplateLoaderTemplate6 = require('./views/endpoints/access/endpointAccess.html');\nconst autoNgTemplateLoaderTemplate7 = require('./views/endpoints/kvm/endpointKVM.html');\nconst autoNgTemplateLoaderTemplate8 = require('./views/groups/groups.html');\nconst autoNgTemplateLoaderTemplate9 = require('./views/groups/edit/group.html');\nconst autoNgTemplateLoaderTemplate10 = require('./views/groups/create/creategroup.html');\nconst autoNgTemplateLoaderTemplate11 = require('./views/groups/access/groupAccess.html');\nconst autoNgTemplateLoaderTemplate12 = require('./views/init/admin/initAdmin.html');\nconst autoNgTemplateLoaderTemplate13 = require('./views/settings/authentication/settingsAuthentication.html');\nconst autoNgTemplateLoaderTemplate14 = require('./views/tags/tags.html');\nconst autoNgTemplateLoaderTemplate15 = require('./views/users/users.html');\nconst autoNgTemplateLoaderTemplate16 = require('./views/users/edit/user.html');\n\nimport featureFlagModule from '@/react/portainer/feature-flags';\n\nimport './rbac';\n\nimport componentsModule from './components';\nimport settingsModule from './settings';\nimport userActivityModule from './user-activity';\nimport servicesModule from './services';\nimport { reactModule } from './react';\nimport { sidebarModule } from './react/views/sidebar';\nimport environmentsModule from './environments';\nimport { helpersModule } from './helpers';\nimport { AccessHeaders, requiresAuthHook } from './authorization-guard';\n\nasync function initAuthentication(Authentication) {\n  return await Authentication.init();\n}\n\nangular\n  .module('portainer.app', [\n    'portainer.oauth',\n    'portainer.rbac',\n    'portainer.registrymanagement',\n    componentsModule,\n    settingsModule,\n    featureFlagModule,\n    userActivityModule,\n    'portainer.shared.datatable',\n    servicesModule,\n    reactModule,\n    sidebarModule,\n    environmentsModule,\n    helpersModule,\n  ])\n  .config([\n    '$stateRegistryProvider',\n    function ($stateRegistryProvider) {\n      var root = {\n        name: 'root',\n        abstract: true,\n        onEnter: /* @ngInject */ function onEnter($async, StateManager, Authentication, Notifications, $state) {\n          return $async(async () => {\n            const appState = StateManager.getState();\n            if (!appState.loading) {\n              return;\n            }\n            try {\n              const loggedIn = await initAuthentication(Authentication);\n              await StateManager.initialize();\n              if (!loggedIn && isTransitionRequiresAuthentication($state.transition)) {\n                $state.go('portainer.logout');\n                return Promise.reject('Unauthenticated');\n              }\n            } catch (err) {\n              Notifications.error('Failure', err, 'Unable to retrieve application settings');\n              throw err;\n            }\n          });\n        },\n        views: {\n          'sidebar@': {\n            component: 'sidebar',\n          },\n        },\n        data: {\n          access: AccessHeaders.Restricted,\n        },\n      };\n\n      var endpointRoot = {\n        name: 'endpoint',\n        url: '/:endpointId',\n        parent: 'root',\n        abstract: true,\n        resolve: {\n          endpoint: /* @ngInject */ function endpoint($async, $state, $transition$, EndpointProvider, EndpointService, Notifications) {\n            return $async(async () => {\n              try {\n                const endpointId = +$transition$.params().endpointId;\n\n                const endpoint = await EndpointService.endpoint(endpointId);\n                if ((endpoint.Type === 4 || endpoint.Type === 7) && !endpoint.EdgeID) {\n                  $state.go('portainer.endpoints.endpoint', { id: endpoint.Id });\n                  return;\n                }\n\n                EndpointProvider.setCurrentEndpoint(endpoint);\n\n                return endpoint;\n              } catch (e) {\n                Notifications.error('Failed loading environment', e);\n                $state.go('portainer.home', {}, { reload: true });\n                return;\n              }\n            });\n          },\n        },\n      };\n\n      var portainer = {\n        name: 'portainer',\n        parent: 'root',\n        abstract: true,\n      };\n\n      var account = {\n        name: 'portainer.account',\n        url: '/account',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate1,\n            controller: 'AccountController',\n          },\n        },\n        data: {\n          docs: '/user/account-settings',\n        },\n      };\n\n      const tokenCreation = {\n        name: 'portainer.account.new-access-token',\n        url: '/tokens/new',\n        views: {\n          'content@': {\n            component: 'createUserAccessToken',\n          },\n        },\n      };\n\n      const createHelmRepository = {\n        name: 'portainer.account.createHelmRepository',\n        url: '/helm-repository/new',\n        views: {\n          'content@': {\n            component: 'createHelmRepositoryView',\n          },\n        },\n      };\n\n      var authentication = {\n        name: 'portainer.auth',\n        url: '/auth',\n        params: {\n          reload: false,\n        },\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate2,\n            controller: 'AuthenticationController',\n            controllerAs: 'ctrl',\n          },\n          'sidebar@': {},\n        },\n        data: {\n          access: undefined,\n        },\n      };\n\n      const logout = {\n        name: 'portainer.logout',\n        url: '/logout',\n        params: {\n          error: '',\n        },\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate3,\n            controller: 'LogoutController',\n            controllerAs: 'ctrl',\n          },\n          'sidebar@': {},\n        },\n        data: {\n          access: undefined,\n        },\n      };\n\n      var endpoints = {\n        name: 'portainer.endpoints',\n        url: '/endpoints',\n        views: {\n          'content@': {\n            component: 'environmentsListView',\n          },\n        },\n        data: {\n          docs: '/admin/environments/environments',\n        },\n      };\n\n      var endpoint = {\n        name: 'portainer.endpoints.endpoint',\n        url: '/:id?redirectTo',\n        params: {\n          redirectTo: '',\n        },\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate4,\n            controller: 'EndpointController',\n          },\n        },\n      };\n\n      var deviceImport = {\n        name: 'portainer.endpoints.importDevice',\n        url: '/device',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate5,\n            controller: 'ImportDeviceController',\n          },\n        },\n      };\n\n      const edgeAutoCreateScript = {\n        name: 'portainer.endpoints.edgeAutoCreateScript',\n        url: '/aeec',\n        views: {\n          'content@': {\n            component: 'edgeAutoCreateScriptView',\n          },\n        },\n        data: {\n          docs: '/admin/environments/aeec',\n        },\n      };\n\n      var addFDOProfile = {\n        name: 'portainer.endpoints.profile',\n        url: '/profile',\n        views: {\n          'content@': {\n            component: 'addProfileView',\n          },\n        },\n      };\n\n      var editFDOProfile = {\n        name: 'portainer.endpoints.profile.edit',\n        url: '/:id',\n        views: {\n          'content@': {\n            component: 'editProfileView',\n          },\n        },\n      };\n\n      var endpointAccess = {\n        name: 'portainer.endpoints.endpoint.access',\n        url: '/access',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate6,\n            controller: 'EndpointAccessController',\n            controllerAs: 'ctrl',\n          },\n        },\n      };\n\n      var endpointKVM = {\n        name: 'portainer.endpoints.endpoint.kvm',\n        url: '/kvm?deviceId&deviceName',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate7,\n            controller: 'EndpointKVMController',\n          },\n        },\n      };\n\n      var groups = {\n        name: 'portainer.groups',\n        url: '/groups',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate8,\n            controller: 'GroupsController',\n          },\n        },\n        data: {\n          docs: '/admin/environments/groups',\n          access: AccessHeaders.Admin,\n        },\n      };\n\n      var group = {\n        name: 'portainer.groups.group',\n        url: '/:id',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate9,\n            controller: 'GroupController',\n          },\n        },\n      };\n\n      var groupCreation = {\n        name: 'portainer.groups.new',\n        url: '/new',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate10,\n            controller: 'CreateGroupController',\n          },\n        },\n      };\n\n      var groupAccess = {\n        name: 'portainer.groups.group.access',\n        url: '/access',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate11,\n            controller: 'GroupAccessController',\n          },\n        },\n      };\n\n      var home = {\n        name: 'portainer.home',\n        url: '/home?redirect&environmentId&environmentName&route',\n        views: {\n          'content@': {\n            component: 'homeView',\n          },\n        },\n        data: {\n          docs: '/user/home',\n        },\n      };\n\n      var init = {\n        name: 'portainer.init',\n        abstract: true,\n        url: '/init',\n        views: {\n          'sidebar@': {},\n        },\n        data: {\n          access: undefined,\n        },\n      };\n\n      var initAdmin = {\n        name: 'portainer.init.admin',\n        url: '/admin',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate12,\n            controller: 'InitAdminController',\n          },\n        },\n      };\n\n      var settings = {\n        name: 'portainer.settings',\n        url: '/settings',\n        views: {\n          'content@': {\n            component: 'settingsView',\n          },\n        },\n        data: {\n          docs: '/admin/settings',\n          access: AccessHeaders.Admin,\n        },\n      };\n\n      var settingsAuthentication = {\n        name: 'portainer.settings.authentication',\n        url: '/auth',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate13,\n            controller: 'SettingsAuthenticationController',\n          },\n        },\n        data: {\n          docs: '/admin/settings/authentication',\n        },\n      };\n\n      var settingsEdgeCompute = {\n        name: 'portainer.settings.edgeCompute',\n        url: '/edge',\n        views: {\n          'content@': {\n            component: 'settingsEdgeComputeView',\n          },\n        },\n        data: {\n          docs: '/admin/settings/edge',\n        },\n      };\n\n      var tags = {\n        name: 'portainer.tags',\n        url: '/tags',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate14,\n            controller: 'TagsController',\n          },\n        },\n        data: {\n          docs: '/admin/environments/tags',\n          access: AccessHeaders.Admin,\n        },\n      };\n\n      var users = {\n        name: 'portainer.users',\n        url: '/users',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate15,\n            controller: 'UsersController',\n          },\n        },\n        data: {\n          docs: '/admin/user/users',\n          access: AccessHeaders.Restricted, // allow for team leaders\n        },\n      };\n\n      var user = {\n        name: 'portainer.users.user',\n        url: '/:id',\n        views: {\n          'content@': {\n            templateUrl: autoNgTemplateLoaderTemplate16,\n            controller: 'UserController',\n          },\n        },\n      };\n\n      $stateRegistryProvider.register(root);\n      $stateRegistryProvider.register(endpointRoot);\n      $stateRegistryProvider.register(portainer);\n      $stateRegistryProvider.register(account);\n      $stateRegistryProvider.register(tokenCreation);\n      $stateRegistryProvider.register(authentication);\n      $stateRegistryProvider.register(logout);\n      $stateRegistryProvider.register(endpoints);\n      $stateRegistryProvider.register(endpoint);\n      $stateRegistryProvider.register(endpointAccess);\n      $stateRegistryProvider.register(endpointKVM);\n      $stateRegistryProvider.register(edgeAutoCreateScript);\n      $stateRegistryProvider.register(deviceImport);\n      $stateRegistryProvider.register(addFDOProfile);\n      $stateRegistryProvider.register(editFDOProfile);\n      $stateRegistryProvider.register(groups);\n      $stateRegistryProvider.register(group);\n      $stateRegistryProvider.register(groupAccess);\n      $stateRegistryProvider.register(groupCreation);\n      $stateRegistryProvider.register(home);\n      $stateRegistryProvider.register(init);\n      $stateRegistryProvider.register(initAdmin);\n      $stateRegistryProvider.register(settings);\n      $stateRegistryProvider.register(settingsAuthentication);\n      $stateRegistryProvider.register(settingsEdgeCompute);\n      $stateRegistryProvider.register(tags);\n      $stateRegistryProvider.register(users);\n      $stateRegistryProvider.register(user);\n      $stateRegistryProvider.register(createHelmRepository);\n    },\n  ])\n  .run(run);\n\nfunction isTransitionRequiresAuthentication(transition) {\n  const UNAUTHENTICATED_ROUTES = ['portainer.logout', 'portainer.auth'];\n  if (!transition) {\n    return true;\n  }\n  const nextTransition = transition && transition.to();\n  const nextTransitionName = nextTransition ? nextTransition.name : '';\n  return !UNAUTHENTICATED_ROUTES.some((route) => nextTransitionName.startsWith(route));\n}\n\n/* @ngInject */\nfunction run($transitions) {\n  requiresAuthHook($transitions);\n}\n","const autoNgTemplateLoaderTemplate1 = require('./InformationPanelAngular.html');\n\nexport const InformationPanelAngular = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    titleText: '@',\n    dismissAction: '&?',\n  },\n  transclude: true,\n};\n","const autoNgTemplateLoaderTemplate1 = require('./accessDatatable.html');\n\nangular.module('portainer.app').component('accessDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'AccessDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    roles: '<',\n    tableKey: '@',\n    orderBy: '@',\n    removeAction: '<',\n    updateAction: '<',\n    reverseOrder: '<',\n    inheritFrom: '<',\n  },\n});\n","angular.module('portainer.app').controller('AccessDatatableController', [\n  '$scope',\n  '$controller',\n  'DatatableService',\n  function ($scope, $controller, DatatableService) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    this.disableRemove = function (item) {\n      return item.Inherited && this.inheritFrom;\n    };\n\n    this.allowSelection = function (item) {\n      return !this.disableRemove(item);\n    };\n\n    this.$onInit = function () {\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      this.state.orderBy = this.orderBy;\n      var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n      if (storedSettings !== null) {\n        this.settings = storedSettings;\n        this.settings.open = false;\n      }\n      this.onSettingsRepeaterChange();\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./porAccessControlForm.html');\n\nangular.module('portainer.app').component('porAccessControlForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'porAccessControlFormController',\n  bindings: {\n    // This object will be populated with the form data.\n    // Model reference in porAccessControlFromModel.js\n    formData: '=',\n    // Optional. An existing resource control object that will be used to set\n    // the default values of the component.\n    resourceControl: '<',\n    hideTitle: '<',\n  },\n});\n","import _ from 'lodash-es';\nimport { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';\n\nangular.module('portainer.app').controller('porAccessControlFormController', [\n  '$q',\n  '$scope',\n  '$state',\n  'UserService',\n  'TeamService',\n  'Notifications',\n  'Authentication',\n  'ResourceControlService',\n  function ($q, $scope, $state, UserService, TeamService, Notifications, Authentication, ResourceControlService) {\n    var ctrl = this;\n\n    ctrl.RCO = RCO;\n\n    this.onAuthorizedTeamsChange = onAuthorizedTeamsChange.bind(this);\n    this.onAuthorizedUsersChange = onAuthorizedUsersChange.bind(this);\n\n    ctrl.availableTeams = [];\n    ctrl.availableUsers = [];\n\n    ctrl.onChangeEnablement = onChangeEnablement;\n    ctrl.onChangeOwnership = onChangeOwnership;\n\n    function onChangeOwnership(ownership) {\n      onChange({ Ownership: ownership });\n    }\n\n    function setOwnership(resourceControl, isAdmin) {\n      if (isAdmin && resourceControl.Ownership === RCO.PRIVATE) {\n        ctrl.formData.Ownership = RCO.RESTRICTED;\n      } else {\n        ctrl.formData.Ownership = resourceControl.Ownership;\n      }\n\n      if (ctrl.formData.Ownership === RCO.PUBLIC) {\n        ctrl.formData.AccessControlEnabled = false;\n      }\n    }\n\n    function setAuthorizedUsersAndTeams(authorizedUsers, authorizedTeams) {\n      ctrl.formData.AuthorizedTeams = authorizedTeams;\n      ctrl.formData.AuthorizedUsers = authorizedUsers;\n    }\n\n    function onAuthorizedTeamsChange(AuthorizedTeams) {\n      onChange({ AuthorizedTeams });\n    }\n\n    function onAuthorizedUsersChange(AuthorizedUsers) {\n      onChange({ AuthorizedUsers });\n    }\n\n    function onChange(formData) {\n      $scope.$evalAsync(() => {\n        ctrl.formData = {\n          ...ctrl.formData,\n          ...formData,\n        };\n      });\n    }\n\n    this.$onInit = $onInit;\n    function $onInit() {\n      var isAdmin = Authentication.isPureAdmin();\n      ctrl.isAdmin = isAdmin;\n\n      if (isAdmin) {\n        ctrl.formData.Ownership = ctrl.RCO.ADMINISTRATORS;\n      }\n\n      const environmentId = $state.params.endpointId;\n      $q.all({\n        availableTeams: TeamService.teams(environmentId),\n        availableUsers: isAdmin ? UserService.users(false, environmentId) : [],\n      })\n        .then(function success(data) {\n          ctrl.availableUsers = _.orderBy(data.availableUsers, 'Username', 'asc');\n          ctrl.availableTeams = _.orderBy(data.availableTeams, 'Name', 'asc');\n          if (!isAdmin && ctrl.availableTeams.length === 1) {\n            ctrl.formData.AuthorizedTeams = ctrl.availableTeams;\n          }\n          return $q.when(ctrl.resourceControl && ResourceControlService.retrieveOwnershipDetails(ctrl.resourceControl));\n        })\n        .then(function success(data) {\n          if (data) {\n            const authorizedTeams = !isAdmin && ctrl.availableTeams.length === 1 ? ctrl.availableTeams : data.authorizedTeams;\n            const authorizedUsers = !isAdmin && authorizedTeams.length === 1 ? [] : data.authorizedUsers;\n            setOwnership(ctrl.resourceControl, isAdmin);\n            setAuthorizedUsersAndTeams(authorizedUsers, authorizedTeams);\n          }\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve access control information');\n        });\n    }\n\n    function onChangeEnablement(enable) {\n      const isAdmin = Authentication.isAdmin();\n      onChange({ AccessControlEnabled: enable, Ownership: isAdmin ? RCO.ADMINISTRATORS : RCO.PRIVATE });\n    }\n  },\n]);\n","import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';\n\n/**\n * @deprecated use only for angularjs components. For react components use ./model.ts\n */\nexport function AccessControlFormData() {\n  this.AccessControlEnabled = true;\n  this.Ownership = RCO.PRIVATE;\n  this.AuthorizedUsers = [];\n  this.AuthorizedTeams = [];\n}\n","import angular from 'angular';\n\nimport { porAccessManagement } from './por-access-management';\n\nexport default angular.module('portainer.app.component.access-management', []).component('porAccessManagement', porAccessManagement).name;\n","const autoNgTemplateLoaderTemplate1 = require('./porAccessManagement.html');\n\nexport const porAccessManagement = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'porAccessManagementController',\n  controllerAs: 'ctrl',\n  bindings: {\n    accessControlledEntity: '<',\n    inheritFrom: '<',\n    entityType: '@',\n    updateAccess: '<',\n    actionInProgress: '<',\n    filterUsers: '<',\n    limitedFeature: '<',\n  },\n};\n","import _ from 'lodash-es';\nimport angular from 'angular';\n\nimport { RoleTypes } from '@/portainer/rbac/models/role';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nclass PorAccessManagementController {\n  /* @ngInject */\n  constructor($scope, $state, Notifications, AccessService, RoleService) {\n    Object.assign(this, { $scope, $state, Notifications, AccessService, RoleService });\n\n    this.limitedToBE = false;\n    this.$state = $state;\n\n    this.unauthorizeAccess = this.unauthorizeAccess.bind(this);\n    this.updateAction = this.updateAction.bind(this);\n    this.onChangeUsersAndTeams = this.onChangeUsersAndTeams.bind(this);\n  }\n\n  onChangeUsersAndTeams(value) {\n    this.$scope.$evalAsync(() => {\n      this.formValues.multiselectOutput = value;\n    });\n  }\n\n  updateAction() {\n    const entity = this.accessControlledEntity;\n    const oldUserAccessPolicies = entity.UserAccessPolicies;\n    const oldTeamAccessPolicies = entity.TeamAccessPolicies;\n    const updatedUserAccesses = _.filter(this.authorizedUsersAndTeams, { Updated: true, Type: 'user', Inherited: false });\n    const updatedTeamAccesses = _.filter(this.authorizedUsersAndTeams, { Updated: true, Type: 'team', Inherited: false });\n\n    const accessPolicies = this.AccessService.generateAccessPolicies(oldUserAccessPolicies, oldTeamAccessPolicies, updatedUserAccesses, updatedTeamAccesses);\n    this.accessControlledEntity.UserAccessPolicies = accessPolicies.userAccessPolicies;\n    this.accessControlledEntity.TeamAccessPolicies = accessPolicies.teamAccessPolicies;\n    this.updateAccess();\n  }\n\n  authorizeAccess() {\n    const entity = this.accessControlledEntity;\n    const oldUserAccessPolicies = entity.UserAccessPolicies;\n    const oldTeamAccessPolicies = entity.TeamAccessPolicies;\n    const selectedRoleId = this.formValues.selectedRole.Id;\n    const selectedUserAccesses = _.filter(this.formValues.multiselectOutput, (access) => access.Type === 'user');\n    const selectedTeamAccesses = _.filter(this.formValues.multiselectOutput, (access) => access.Type === 'team');\n\n    const accessPolicies = this.AccessService.generateAccessPolicies(oldUserAccessPolicies, oldTeamAccessPolicies, selectedUserAccesses, selectedTeamAccesses, selectedRoleId);\n    this.accessControlledEntity.UserAccessPolicies = accessPolicies.userAccessPolicies;\n    this.accessControlledEntity.TeamAccessPolicies = accessPolicies.teamAccessPolicies;\n    this.updateAccess();\n  }\n\n  unauthorizeAccess(selectedAccesses) {\n    const entity = this.accessControlledEntity;\n    const userAccessPolicies = entity.UserAccessPolicies;\n    const teamAccessPolicies = entity.TeamAccessPolicies;\n    const selectedUserAccesses = _.filter(selectedAccesses, (access) => access.Type === 'user');\n    const selectedTeamAccesses = _.filter(selectedAccesses, (access) => access.Type === 'team');\n\n    _.forEach(selectedUserAccesses, (access) => delete userAccessPolicies[access.Id]);\n    _.forEach(selectedTeamAccesses, (access) => delete teamAccessPolicies[access.Id]);\n    this.updateAccess();\n  }\n\n  isRoleLimitedToBE(role) {\n    if (!this.limitedToBE) {\n      return false;\n    }\n\n    return role.ID !== RoleTypes.STANDARD;\n  }\n\n  roleLabel(role) {\n    if (!this.limitedToBE) {\n      return role.Name;\n    }\n\n    if (this.isRoleLimitedToBE(role)) {\n      return `${role.Name} (Business Feature)`;\n    }\n\n    return `${role.Name} (Default)`;\n  }\n\n  async $onInit() {\n    try {\n      if (this.limitedFeature) {\n        this.limitedToBE = isLimitedToBE(this.limitedFeature);\n      }\n\n      const entity = this.accessControlledEntity;\n      const parent = this.inheritFrom;\n\n      const roles = await this.RoleService.roles();\n      this.roles = _.orderBy(roles, 'Priority', 'asc');\n      this.formValues = {\n        multiselectOutput: [],\n        selectedRole: this.roles.find((role) => !this.isRoleLimitedToBE(role)),\n      };\n\n      const data = await this.AccessService.accesses(entity, parent, this.roles);\n\n      if (this.filterUsers) {\n        data.availableUsersAndTeams = this.filterUsers(data.availableUsersAndTeams);\n      }\n\n      this.availableUsersAndTeams = _.orderBy(data.availableUsersAndTeams, 'Name', 'asc');\n      this.authorizedUsersAndTeams = data.authorizedUsersAndTeams;\n    } catch (err) {\n      this.$state.go('portainer.home');\n      this.availableUsersAndTeams = [];\n      this.authorizedUsersAndTeams = [];\n      this.Notifications.error('Failure', err, 'Unable to retrieve accesses');\n    }\n  }\n}\n\nexport default PorAccessManagementController;\nangular.module('portainer.app').controller('porAccessManagementController', PorAccessManagementController);\n","angular.module('portainer.app').directive('autoFocus', [\n  '$timeout',\n  function porAutoFocus($timeout) {\n    var directive = {\n      restrict: 'A',\n      link: function (scope, element) {\n        $timeout(function () {\n          element[0].focus();\n        });\n      },\n    };\n\n    return directive;\n  },\n]);\n","angular.module('portainer.app').directive('buttonSpinner', function buttonSpinner() {\n  var directive = {\n    restrict: 'A',\n    scope: {\n      spinning: '=buttonSpinner',\n    },\n    transclude: true,\n    template: '<ng-transclude></ng-transclude><span ng-show=\"spinning\"><pr-icon icon=\"\\'loader-2\\'\" class-name=\"\\'animate-spin-slow ml-0.5\\'\"></pr-icon>&nbsp;</span>',\n  };\n\n  return directive;\n});\n","/* @ngInject */\nexport default function CodeEditorController($scope) {\n  this.handleChange = (value) => {\n    $scope.$evalAsync(() => {\n      this.onChange(value);\n    });\n  };\n}\n","const autoNgTemplateLoaderTemplate1 = require('./code-editor.html');\n\nimport controller from './code-editor.controller';\n\nangular.module('portainer.app').component('codeEditor', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    identifier: '@',\n    placeholder: '@',\n    yml: '<',\n    dockerFile: '<',\n    shell: '<',\n    readOnly: '<',\n    onChange: '<',\n    value: '<',\n    height: '@',\n  },\n});\n","angular.module('portainer.app').controller('CodeEditorController', function CodeEditorController($document, CodeMirrorService, $scope) {\n  var ctrl = this;\n\n  this.$onChanges = function $onChanges({ value, readOnly }) {\n    if (!ctrl.editor) {\n      return;\n    }\n\n    if (readOnly && typeof readOnly.currentValue === 'boolean' && ctrl.editor.getValue('readOnly') !== ctrl.readOnly) {\n      ctrl.editor.setOption('readOnly', ctrl.readOnly);\n    }\n    if (value && value.currentValue && ctrl.editor.getValue() !== value.currentValue) {\n      ctrl.editor.setValue(value.currentValue);\n    }\n\n    if (ctrl.editor) {\n      ctrl.editor.setOption('readOnly', ctrl.readOnly);\n    }\n  };\n\n  this.$onInit = function () {\n    $document.ready(function () {\n      var editorElement = $document[0].getElementById(ctrl.identifier);\n      ctrl.editor = CodeMirrorService.applyCodeMirrorOnElement(editorElement, ctrl.yml, ctrl.readOnly);\n      if (ctrl.onChange) {\n        ctrl.editor.on('change', (...args) => $scope.$evalAsync(() => ctrl.onChange(...args)));\n      }\n      if (ctrl.value) {\n        ctrl.editor.setValue(ctrl.value);\n      }\n    });\n  };\n});\n","export default class CopyButtonController {\n  /* @ngInject */\n  constructor(clipboard) {\n    this.clipboard = clipboard;\n    this.state = { isFading: false };\n  }\n\n  copyValueText() {\n    this.clipboard.copyText(this.value);\n    this.state.isFading = true;\n    setTimeout(() => (this.state.isFading = false), 1000);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./copy-button.html');\n\nimport angular from 'angular';\nimport controller from './copy-button.controller';\nimport './copy-button.css';\n\nangular.module('portainer.app').component('copyButton', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    value: '<',\n  },\n});\n","class CustomTemplateSelectorController {\n  /* @ngInject */\n  constructor($async, CustomTemplateService, Notifications) {\n    Object.assign(this, { $async, CustomTemplateService, Notifications });\n\n    this.selectedTemplate = null;\n    this.templates = null;\n  }\n\n  async handleChangeTemplate(templateId) {\n    this.selectedTemplate = this.templates.find((t) => t.Id === templateId);\n    this.onChange(templateId, this.selectedTemplate);\n  }\n\n  $onChanges({ value }) {\n    if (value && value.currentValue && this.templates) {\n      this.handleChangeTemplate(value.currentValue);\n    }\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      try {\n        const templates = await this.CustomTemplateService.customTemplates(this.stackType);\n        this.templates = templates.map((template) => ({ ...template, label: `${template.Title} - ${template.Description}` }));\n        if (this.value) {\n          this.handleChangeTemplate(this.value);\n        }\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve Custom Templates');\n      }\n    });\n  }\n}\n\nexport default CustomTemplateSelectorController;\n","const autoNgTemplateLoaderTemplate1 = require('./custom-template-selector.html');\n\nimport angular from 'angular';\nimport controller from './custom-template-selector.controller.js';\n\nexport const customTemplateSelector = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    newTemplatePath: '@',\n    stackType: '<',\n\n    value: '<',\n    onChange: '<',\n  },\n};\n\nangular.module('portainer.app').component('customTemplateSelector', customTemplateSelector);\n","export default class AccessTokensDatatableController {\n  /* @ngInject*/\n  constructor($scope, $state, $controller, DatatableService) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    this.onClickAdd = () => {\n      if (this.uiCanExit()) {\n        $state.go('portainer.account.new-access-token');\n      }\n    };\n\n    this.$onInit = function () {\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      const storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      const textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      const storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      this.onSettingsRepeaterChange();\n    };\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./access-tokens-datatable.html');\n\nimport angular from 'angular';\nimport controller from './access-tokens-datatable.controller';\n\nangular.module('portainer.app').component('accessTokensDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    removeAction: '<',\n    uiCanExit: '<',\n  },\n});\n","export default class DatatableColumnsVisibilityController {\n  constructor() {\n    this.state = {\n      isOpen: false,\n    };\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./datatable-columns-visibility.html');\n\nimport angular from 'angular';\n\nimport controller from './datatable-columns-visibility.controller';\n\nangular.module('portainer.app').component('datatableColumnsVisibility', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    columns: '<',\n    onChange: '<',\n  },\n});\n","export default class DatatableFilterController {\n  isEnabled() {\n    return 0 < this.state.length && this.state.length < this.labels.length;\n  }\n\n  onChangeItem(filterValue) {\n    if (this.isChecked(filterValue)) {\n      return this.onChange(\n        this.filterKey,\n        this.state.filter((v) => v !== filterValue)\n      );\n    }\n    return this.onChange(this.filterKey, [...this.state, filterValue]);\n  }\n\n  isChecked(filterValue) {\n    return this.state.includes(filterValue);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./datatable-filter.html');\n\nimport controller from './datatable-filter.controller';\n\nexport const datatableFilter = {\n  bindings: {\n    labels: '<', // [{label, value}]\n    state: '<', // [filterValue]\n    filterKey: '@',\n    onChange: '<',\n  },\n  controller,\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  transclude: true,\n};\n","import _ from 'lodash-es';\nimport './datatable.css';\nimport { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nfunction isBetween(value, a, b) {\n  return (value >= a && value <= b) || (value >= b && value <= a);\n}\n\n// TODO: review - refactor to use a class that can be extended\nangular.module('portainer.app').controller('GenericDatatableController', [\n  '$interval',\n  'PaginationService',\n  'DatatableService',\n  'PAGINATION_MAX_ITEMS',\n  function ($interval, PaginationService, DatatableService, PAGINATION_MAX_ITEMS) {\n    this.RCO = RCO;\n    this.isBE = isBE;\n\n    this.state = {\n      selectAll: false,\n      orderBy: this.orderBy,\n      paginatedItemLimit: PAGINATION_MAX_ITEMS,\n      displayTextFilter: false,\n      get selectedItemCount() {\n        return this.selectedItems.length || 0;\n      },\n      selectedItems: [],\n    };\n\n    this.settings = {\n      open: false,\n      repeater: {\n        autoRefresh: false,\n        refreshRate: '30',\n      },\n    };\n\n    this.resetSelectionState = function () {\n      this.state.selectAll = false;\n      this.state.selectedItems = [];\n      _.map(this.state.filteredDataSet, (item) => (item.Checked = false));\n    };\n\n    this.onTextFilterChangeGeneric = onTextFilterChangeGeneric;\n\n    this.onTextFilterChange = function onTextFilterChange() {\n      return this.onTextFilterChangeGeneric();\n    };\n\n    function onTextFilterChangeGeneric() {\n      DatatableService.setDataTableTextFilters(this.tableKey, this.state.textFilter);\n    }\n\n    this.changeOrderBy = function changeOrderBy(orderField) {\n      this.state.reverseOrder = this.state.orderBy === orderField ? !this.state.reverseOrder : false;\n      this.state.orderBy = orderField;\n      DatatableService.setDataTableOrder(this.tableKey, orderField, this.state.reverseOrder);\n    };\n\n    this.selectItem = function (item, event) {\n      // Handle range select using shift\n      if (event && event.originalEvent.shiftKey && this.state.firstClickedItem) {\n        const firstItemIndex = this.state.filteredDataSet.indexOf(this.state.firstClickedItem);\n        const lastItemIndex = this.state.filteredDataSet.indexOf(item);\n        const itemsInRange = _.filter(this.state.filteredDataSet, (item, index) => {\n          return isBetween(index, firstItemIndex, lastItemIndex);\n        });\n        const value = this.state.firstClickedItem.Checked;\n\n        _.forEach(itemsInRange, (i) => {\n          if (!this.allowSelection(i)) {\n            return;\n          }\n          i.Checked = value;\n        });\n        this.state.firstClickedItem = item;\n      } else if (event) {\n        item.Checked = !item.Checked;\n        this.state.firstClickedItem = item;\n      }\n      this.state.selectedItems = this.uniq().filter((i) => i.Checked);\n      if (event && this.state.selectAll && this.state.selectedItems.length !== this.state.filteredDataSet.length) {\n        this.state.selectAll = false;\n      }\n      this.onSelectionChanged();\n    };\n\n    this.selectAll = function () {\n      this.state.firstClickedItem = null;\n      for (var i = 0; i < this.state.filteredDataSet.length; i++) {\n        var item = this.state.filteredDataSet[i];\n        if (this.allowSelection(item) && item.Checked !== this.state.selectAll) {\n          item.Checked = this.state.selectAll;\n          this.selectItem(item);\n        }\n      }\n      this.onSelectionChanged();\n    };\n\n    /**\n     * Override this method to change the uniqness filter when selecting items\n     */\n    this.uniq = function () {\n      return _.uniq(_.concat(this.state.filteredDataSet, this.state.selectedItems));\n    };\n\n    /**\n     * Override this method to allow/deny selection\n     */\n    this.allowSelection = function (/*item*/) {\n      return true;\n    };\n\n    /**\n     * Override this method to prepare data table\n     */\n    this.prepareTableFromDataset = function () {\n      return;\n    };\n\n    /**\n     * Override this method to execute code after selection changed on datatable\n     */\n    this.onSelectionChanged = function () {\n      return;\n    };\n\n    this.changePaginationLimit = function () {\n      PaginationService.setPaginationLimit(this.tableKey, this.state.paginatedItemLimit);\n    };\n\n    this.setDefaults = function () {\n      this.showTextFilter = this.showTextFilter ? this.showTextFilter : false;\n      this.state.reverseOrder = this.reverseOrder ? this.reverseOrder : false;\n      this.state.paginatedItemLimit = PaginationService.getPaginationLimit(this.tableKey);\n    };\n\n    /**\n     * Duplicate this function when extending GenericDatatableController\n     * Extending-controller's bindings are not accessible there\n     * For more details see the following comments\n     * https://github.com/portainer/portainer/pull/2877#issuecomment-503333425\n     * https://github.com/portainer/portainer/pull/2877#issuecomment-503537249\n     */\n    this.$onInit = function $onInit() {\n      this.$onInitGeneric();\n    };\n\n    this.$onInitGeneric = function $onInitGeneric() {\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      this.state.orderBy = this.orderBy;\n      var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n      if (storedSettings !== null) {\n        this.settings = storedSettings;\n        this.settings.open = false;\n      }\n      this.onSettingsRepeaterChange();\n\n      var storedColumnVisibility = DatatableService.getColumnVisibilitySettings(this.tableKey);\n      if (storedColumnVisibility !== null) {\n        this.columnVisibility = storedColumnVisibility;\n      }\n    };\n\n    /**\n     * REPEATER SECTION\n     */\n    this.repeater = undefined;\n\n    this.$onDestroy = function () {\n      this.stopRepeater();\n    };\n\n    this.stopRepeater = function () {\n      if (angular.isDefined(this.repeater)) {\n        $interval.cancel(this.repeater);\n        this.repeater = undefined;\n      }\n    };\n\n    this.startRepeater = function () {\n      this.repeater = $interval(async () => {\n        await this.refreshCallback();\n        this.onDataRefresh();\n      }, this.settings.repeater.refreshRate * 1000);\n    };\n\n    this.onSettingsRepeaterChange = function () {\n      this.stopRepeater();\n      if (angular.isDefined(this.refreshCallback) && this.settings.repeater.autoRefresh) {\n        this.startRepeater();\n        $('#refreshRateChange').show();\n        $('#refreshRateChange').fadeOut(1500);\n      }\n      DatatableService.setDataTableSettings(this.tableKey, this.settings);\n    };\n\n    /**\n     * Override this method to execute code after calling the refresh callback\n     */\n    this.onDataRefresh = function () {\n      return;\n    };\n\n    /**\n     * !REPEATER SECTION\n     */\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./groupsDatatable.html');\n\nangular.module('portainer.app').component('groupsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n  },\n});\n","import angular from 'angular';\nimport 'angular-utils-pagination';\n\nimport { datatableTitlebar } from './titlebar';\nimport { datatablePagination } from './pagination';\nimport { datatableFilter } from './filter';\n\nexport default angular\n  .module('portainer.shared.datatable', ['angularUtils.directives.dirPagination'])\n  .component('datatableTitlebar', datatableTitlebar)\n  .component('datatablePagination', datatablePagination)\n  .component('datatableFilter', datatableFilter).name;\n","const autoNgTemplateLoaderTemplate1 = require('./pagination.html');\n\nexport const datatablePagination = {\n  bindings: {\n    onChangeLimit: '<',\n    limit: '<',\n    enableNoLimit: '<',\n    onChangePage: '<',\n  },\n  templateUrl: autoNgTemplateLoaderTemplate1,\n};\n","const autoNgTemplateLoaderTemplate1 = require('./registriesDatatable.html');\n\nangular.module('portainer.app').component('registriesDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'RegistriesDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n    canBrowse: '<',\n    endpointType: '<',\n    canManageAccess: '<',\n  },\n});\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { PortainerEndpointTypes } from 'Portainer/models/endpoint/models';\n\nangular.module('portainer.docker').controller('RegistriesDatatableController', RegistriesDatatableController);\n\n/* @ngInject */\nfunction RegistriesDatatableController($scope, $controller, $state, Authentication, DatatableService) {\n  angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n  this.allowSelection = function (item) {\n    return item.Id;\n  };\n\n  this.enableGoToLink = (item) => {\n    return this.isAdmin && item.Id && !this.endpointType;\n  };\n\n  this.goToRegistry = function (item) {\n    if (\n      this.endpointType === PortainerEndpointTypes.KubernetesLocalEnvironment ||\n      this.endpointType === PortainerEndpointTypes.AgentOnKubernetesEnvironment ||\n      this.endpointType === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment\n    ) {\n      $state.go('kubernetes.registries.registry', { id: item.Id });\n    } else if (\n      this.endpointType === PortainerEndpointTypes.DockerEnvironment ||\n      this.endpointType === PortainerEndpointTypes.AgentOnDockerEnvironment ||\n      this.endpointType === PortainerEndpointTypes.EdgeAgentOnDockerEnvironment\n    ) {\n      $state.go('docker.host.registries.registry', { id: item.Id });\n    } else {\n      $state.go('portainer.registries.registry', { id: item.Id });\n    }\n  };\n\n  this.redirectToManageAccess = function (item) {\n    if (\n      this.endpointType === PortainerEndpointTypes.KubernetesLocalEnvironment ||\n      this.endpointType === PortainerEndpointTypes.AgentOnKubernetesEnvironment ||\n      this.endpointType === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment\n    ) {\n      $state.go('kubernetes.registries.access', { id: item.Id });\n    } else {\n      if (window.location.hash.endsWith('/docker/swarm/registries')) {\n        $state.go('docker.swarm.registries.access', { id: item.Id });\n      } else {\n        $state.go('docker.host.registries.access', { id: item.Id });\n      }\n    }\n  };\n\n  this.$onInit = function () {\n    this.limitedFeature = FeatureId.REGISTRY_MANAGEMENT;\n    this.isAdmin = Authentication.isAdmin();\n    this.setDefaults();\n    this.prepareTableFromDataset();\n\n    this.state.orderBy = this.orderBy;\n    var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n    if (storedOrder !== null) {\n      this.state.reverseOrder = storedOrder.reverse;\n      this.state.orderBy = storedOrder.orderBy;\n    }\n\n    var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n    if (textFilter !== null) {\n      this.state.textFilter = textFilter;\n      this.onTextFilterChange();\n    }\n\n    var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n    if (storedFilters !== null) {\n      this.filters = storedFilters;\n    }\n    if (this.filters && this.filters.state) {\n      this.filters.state.open = false;\n    }\n\n    var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n    if (storedSettings !== null) {\n      this.settings = storedSettings;\n      this.settings.open = false;\n    }\n    this.onSettingsRepeaterChange();\n\n    var storedColumnVisibility = DatatableService.getColumnVisibilitySettings(this.tableKey);\n    if (storedColumnVisibility !== null) {\n      this.columnVisibility = storedColumnVisibility;\n    }\n  };\n}\n","const autoNgTemplateLoaderTemplate1 = require('./strings-datatable.html');\n\nimport angular from 'angular';\n// import controller from './strings-datatable.controller.js';\n\nexport const stringsDatatable = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    emptyDatasetMessage: '@',\n\n    columnHeader: '@',\n    tableKey: '@',\n\n    onRemove: '<',\n  },\n};\n\nangular.module('portainer.app').component('stringsDatatable', stringsDatatable);\n","const autoNgTemplateLoaderTemplate1 = require('./tagsDatatable.html');\n\nangular.module('portainer.app').component('tagsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./datatable-titlebar.html');\n\nexport const datatableTitlebar = {\n  bindings: {\n    icon: '@',\n    title: '@',\n    feature: '@',\n  },\n  templateUrl: autoNgTemplateLoaderTemplate1,\n};\n","const autoNgTemplateLoaderTemplate1 = require('./usersDatatable.html');\n\nimport angular from 'angular';\nimport UsersDatatableController from './usersDatatableController';\n\nangular.module('portainer.app').component('usersDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: UsersDatatableController,\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    removeAction: '<',\n    authenticationMethod: '<',\n    isAdmin: '<',\n  },\n});\n","export default class UsersDatatableController {\n  /* @ngInject*/\n  constructor($controller, $scope) {\n    const allowSelection = this.allowSelection;\n    angular.extend(this, $controller('GenericDatatableController', { $scope }));\n    this.allowSelection = allowSelection.bind(this);\n  }\n\n  /**\n   * Override this method to allow/deny selection\n   */\n  allowSelection(item) {\n    return item.Id !== 1;\n  }\n}\n","class DemoFeatureIndicatorController {\n  /* @ngInject */\n  constructor(StateManager) {\n    Object.assign(this, { StateManager });\n\n    this.isDemo = false;\n  }\n\n  $onInit() {\n    const state = this.StateManager.getState();\n\n    this.isDemo = state.application.demoEnvironment.enabled;\n  }\n}\n\nexport default DemoFeatureIndicatorController;\n","const autoNgTemplateLoaderTemplate1 = require('./demo-feature-indicator.html');\n\nimport angular from 'angular';\nimport controller from './demo-feature-indicator.controller.js';\n\nexport const demoFeatureIndicator = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    content: '<',\n  },\n};\n\nangular.module('portainer.app').component('demoFeatureIndicator', demoFeatureIndicator);\n","const autoNgTemplateLoaderTemplate1 = require('./porEndpointSecurity.html');\n\nangular.module('portainer.app').component('porEndpointSecurity', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'porEndpointSecurityController',\n  bindings: {\n    // This object will be populated with the form data.\n    // Model reference in endpointSecurityModel.js\n    formData: '=',\n    // The component will use this object to initialize the default values\n    // if present.\n    endpoint: '<',\n  },\n});\n","import { Shield } from 'lucide-react';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport const tlsOptions: ReadonlyArray<BoxSelectorOption<string>> = [\n  {\n    id: 'tls_client_ca',\n    value: 'tls_client_ca',\n    icon: Shield,\n    iconType: 'badge',\n    label: 'TLS with server and client verification',\n    description: 'Use client certificates and server verification',\n  },\n  {\n    id: 'tls_client_noca',\n    value: 'tls_client_noca',\n    icon: Shield,\n    iconType: 'badge',\n    label: 'TLS with client verification only',\n    description: 'Use client certificates without server verification',\n  },\n  {\n    id: 'tls_ca',\n    value: 'tls_ca',\n    icon: Shield,\n    iconType: 'badge',\n    label: 'TLS with server verification only',\n    description: 'Only verify the server certificate',\n  },\n  {\n    id: 'tls_only',\n    value: 'tls_only',\n    icon: Shield,\n    iconType: 'badge',\n    label: 'TLS only',\n    description: 'No server/client verification',\n  },\n] as const;\n","import { tlsOptions } from '@/react/portainer/environments/ItemView/tls-options';\n\nangular.module('portainer.app').controller('porEndpointSecurityController', [\n  '$scope',\n  function ($scope) {\n    var ctrl = this;\n\n    this.tlsOptions = tlsOptions;\n\n    function onChange(values) {\n      $scope.$evalAsync(() => {\n        ctrl.formData = {\n          ...ctrl.formData,\n          ...values,\n        };\n      });\n    }\n\n    ctrl.onChangeTLSMode = onChangeTLSMode;\n    function onChangeTLSMode(mode) {\n      onChange({ TLSMode: mode });\n    }\n\n    ctrl.onToggleTLS = onToggleTLS;\n    function onToggleTLS(newValue) {\n      onChange({ TLS: newValue });\n    }\n\n    this.$onInit = $onInit;\n    function $onInit() {\n      if (ctrl.endpoint) {\n        var endpoint = ctrl.endpoint;\n        var TLS = endpoint.TLSConfig.TLS;\n        ctrl.formData.TLS = TLS;\n        var CACert = endpoint.TLSConfig.TLSCACert;\n        ctrl.formData.TLSCACert = CACert;\n        var cert = endpoint.TLSConfig.TLSCert;\n        ctrl.formData.TLSCert = cert;\n        var key = endpoint.TLSConfig.TLSKey;\n        ctrl.formData.TLSKey = key;\n\n        if (TLS) {\n          if (CACert && cert && key) {\n            ctrl.formData.TLSMode = 'tls_client_ca';\n          } else if (cert && key) {\n            ctrl.formData.TLSMode = 'tls_client_noca';\n          } else if (CACert) {\n            ctrl.formData.TLSMode = 'tls_ca';\n          } else {\n            ctrl.formData.TLSMode = 'tls_only';\n          }\n        }\n      }\n    }\n  },\n]);\n","export function EndpointSecurityFormData() {\n  this.TLS = false;\n  this.TLSMode = 'tls_client_ca';\n  this.TLSCACert = null;\n  this.TLSCert = null;\n  this.TLSKey = null;\n}\n","import angular from 'angular';\n// ng-focus-if pkg from: https://github.com/hiebj/ng-focus-if\nangular.module('portainer.app').directive('focusIf', function ($timeout) {\n  return {\n    restrict: 'A',\n    link: function ($scope, $element, $attrs) {\n      var dom = $element[0];\n      if ($attrs.focusIf) {\n        $scope.$watch($attrs.focusIf, focus);\n      } else {\n        focus(true);\n      }\n      function focus(condition) {\n        if (condition) {\n          $timeout(\n            function () {\n              dom.focus();\n            },\n            $scope.$eval($attrs.focusDelay) || 0\n          );\n        }\n      }\n    },\n  };\n});\n","const autoNgTemplateLoaderTemplate1 = require('./file-upload-form.html');\n\nexport const fileUploadForm = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n\n  bindings: {\n    file: '<',\n    ngRequired: '<',\n    onChange: '<',\n  },\n\n  transclude: {\n    description: '?fileUploadDescription',\n  },\n};\n","import angular from 'angular';\n\nimport { webEditorForm } from './web-editor-form';\nimport { fileUploadForm } from './file-upload-form';\n\nexport default angular.module('portainer.app.components.form', []).component('webEditorForm', webEditorForm).component('fileUploadForm', fileUploadForm).name;\n","const autoNgTemplateLoaderTemplate1 = require('./web-editor-form.html');\n\nimport controller from './web-editor-form.controller.js';\n\nexport const webEditorForm = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n\n  bindings: {\n    identifier: '@',\n    placeholder: '@',\n    yml: '<',\n    value: '<',\n    readOnly: '<',\n    onChange: '<',\n    hideTitle: '<',\n    height: '@',\n  },\n\n  transclude: {\n    description: '?editorDescription',\n  },\n};\n","class WebEditorFormController {\n  /* @ngInject */\n  constructor(BROWSER_OS_PLATFORM) {\n    this.BROWSER_OS_PLATFORM = BROWSER_OS_PLATFORM;\n  }\n}\n\nexport default WebEditorFormController;\n","const autoNgTemplateLoaderTemplate1 = require('./groupForm.html');\n\nimport angular from 'angular';\nimport GroupFormController from './groupFormController';\n\nangular.module('portainer.app').component('groupForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: GroupFormController,\n  bindings: {\n    loaded: '<',\n    model: '=',\n    associatedEndpoints: '=',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n\n    onChangeEnvironments: '<',\n  },\n});\n","import angular from 'angular';\n\nclass GroupFormController {\n  /* @ngInject */\n  constructor($async, $scope, GroupService, Notifications, Authentication) {\n    this.$async = $async;\n    this.$scope = $scope;\n    this.GroupService = GroupService;\n    this.Notifications = Notifications;\n    this.Authentication = Authentication;\n\n    this.state = {\n      allowCreateTag: this.Authentication.isAdmin(),\n    };\n\n    this.unassociatedQuery = {\n      groupIds: [1],\n    };\n\n    this.onChangeTags = this.onChangeTags.bind(this);\n  }\n\n  onChangeTags(value) {\n    return this.$scope.$evalAsync(() => {\n      this.model.TagIds = value;\n    });\n  }\n}\n\nangular.module('portainer.app').controller('GroupFormController', GroupFormController);\nexport default GroupFormController;\n","import { RepositoryMechanismTypes } from 'Kubernetes/models/deploy';\nimport { confirm } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { ModalType } from '@@/modals';\nimport { parseAutoUpdateResponse } from '@/react/portainer/gitops/AutoUpdateFieldset/utils';\nimport { baseStackWebhookUrl, createWebhookId } from '@/portainer/helpers/webhookHelper';\nimport { confirmEnableTLSVerify } from '@/react/portainer/gitops/utils';\n\nclass KubernetesRedeployAppGitFormController {\n  /* @ngInject */\n  constructor($async, $state, StackService, Notifications) {\n    this.$async = $async;\n    this.$state = $state;\n    this.StackService = StackService;\n    this.Notifications = Notifications;\n\n    this.state = {\n      saveGitSettingsInProgress: false,\n      redeployInProgress: false,\n      showConfig: false,\n      isEdit: false,\n\n      // isAuthEdit is used to preserve the editing state of the AuthFieldset component.\n      // Within the stack editing page, users have the option to turn the AuthFieldset on or off\n      // and save the stack setting. If the user enables the AuthFieldset, it implies that they\n      // must input new Git authentication, rather than edit existing authentication. Thus,\n      // a dedicated state tracker is required to differentiate between the editing state of\n      // AuthFieldset component and the whole stack\n      // When isAuthEdit is true, PAT field needs to be validated.\n      isAuthEdit: false,\n      hasUnsavedChanges: false,\n      baseWebhookUrl: baseStackWebhookUrl(),\n      webhookId: createWebhookId(),\n    };\n\n    this.formValues = {\n      RefName: '',\n      RepositoryAuthentication: false,\n      RepositoryUsername: '',\n      RepositoryPassword: '',\n      // auto update\n      AutoUpdate: parseAutoUpdateResponse(),\n    };\n\n    this.onChange = this.onChange.bind(this);\n    this.onChangeRef = this.onChangeRef.bind(this);\n    this.onChangeAutoUpdate = this.onChangeAutoUpdate.bind(this);\n    this.onChangeGitAuth = this.onChangeGitAuth.bind(this);\n    this.onChangeTLSSkipVerify = this.onChangeTLSSkipVerify.bind(this);\n  }\n\n  onChangeRef(value) {\n    this.onChange({ RefName: value });\n  }\n\n  async onChange(values) {\n    return this.$async(async () => {\n      this.formValues = {\n        ...this.formValues,\n        ...values,\n      };\n\n      this.state.hasUnsavedChanges = angular.toJson(this.savedFormValues) !== angular.toJson(this.formValues);\n    });\n  }\n\n  onChangeGitAuth(values) {\n    return this.$async(async () => {\n      this.onChange(values);\n    });\n  }\n\n  onChangeTLSSkipVerify(value) {\n    return this.$async(async () => {\n      if (this.stack.GitConfig.TLSSkipVerify && !value) {\n        const confirmed = await confirmEnableTLSVerify();\n\n        if (!confirmed) {\n          return;\n        }\n      }\n      this.onChange({ TLSSkipVerify: value });\n    });\n  }\n\n  async onChangeAutoUpdate(values) {\n    return this.$async(async () => {\n      await this.onChange({\n        AutoUpdate: {\n          ...this.formValues.AutoUpdate,\n          ...values,\n        },\n      });\n    });\n  }\n\n  buildAnalyticsProperties() {\n    const metadata = {\n      'automatic-updates': automaticUpdatesLabel(this.formValues.AutoUpdate.RepositoryAutomaticUpdates, this.formValues.AutoUpdate.RepositoryMechanism),\n    };\n\n    return { metadata };\n\n    function automaticUpdatesLabel(repositoryAutomaticUpdates, repositoryMechanism) {\n      switch (repositoryAutomaticUpdates && repositoryMechanism) {\n        case RepositoryMechanismTypes.INTERVAL:\n          return 'polling';\n        case RepositoryMechanismTypes.WEBHOOK:\n          return 'webhook';\n        default:\n          return 'off';\n      }\n    }\n  }\n\n  async pullAndRedeployApplication() {\n    return this.$async(async () => {\n      try {\n        const confirmed = await confirm({\n          title: 'Are you sure?',\n          message: 'Any changes to this application will be overridden by the definition in git and may cause a service interruption. Do you wish to continue?',\n          confirmButton: buildConfirmButton('Update', 'warning'),\n          modalType: ModalType.Warn,\n        });\n        if (!confirmed) {\n          return;\n        }\n\n        if (this.stack.Name !== this.stackName) {\n          this.formValues.StackName = this.stackName;\n        }\n\n        this.state.redeployInProgress = true;\n        await this.StackService.updateKubeGit(this.stack.Id, this.stack.EndpointId, this.namespace, this.formValues);\n        this.Notifications.success('Success', 'Pulled and redeployed stack successfully');\n        await this.$state.reload();\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Failed redeploying application');\n      } finally {\n        this.state.redeployInProgress = false;\n      }\n    });\n  }\n\n  async saveGitSettings() {\n    return this.$async(async () => {\n      try {\n        this.state.saveGitSettingsInProgress = true;\n        await this.StackService.updateKubeStack({ EndpointId: this.stack.EndpointId, Id: this.stack.Id }, { gitConfig: this.formValues, webhookId: this.state.webhookId });\n        this.savedFormValues = angular.copy(this.formValues);\n        this.state.hasUnsavedChanges = false;\n\n        if (!(this.stack.GitConfig && this.stack.GitConfig.Authentication)) {\n          // update the AuthFieldset setting\n          this.state.isAuthEdit = false;\n          this.formValues.RepositoryUsername = '';\n          this.formValues.RepositoryPassword = '';\n        }\n        this.Notifications.success('Success', 'Save stack settings successfully');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to save application settings');\n      } finally {\n        this.state.saveGitSettingsInProgress = false;\n      }\n    });\n  }\n\n  isSubmitButtonDisabled() {\n    return this.state.saveGitSettingsInProgress || this.state.redeployInProgress;\n  }\n\n  $onInit() {\n    this.formValues.RefName = this.stack.GitConfig.ReferenceName;\n    this.formValues.TLSSkipVerify = this.stack.GitConfig.TLSSkipVerify;\n\n    this.formValues.AutoUpdate = parseAutoUpdateResponse(this.stack.AutoUpdate);\n\n    if (this.stack.AutoUpdate && this.stack.AutoUpdate.Webhook) {\n      this.state.webhookId = this.stack.AutoUpdate.Webhook;\n    }\n\n    if (this.stack.GitConfig && this.stack.GitConfig.Authentication) {\n      this.formValues.RepositoryUsername = this.stack.GitConfig.Authentication.Username;\n      this.formValues.RepositoryPassword = this.stack.GitConfig.Authentication.Password;\n\n      this.formValues.RepositoryAuthentication = true;\n      this.state.isEdit = true;\n      this.state.isAuthEdit = true;\n    }\n\n    this.savedFormValues = angular.copy(this.formValues);\n  }\n}\n\nexport default KubernetesRedeployAppGitFormController;\n","const autoNgTemplateLoaderTemplate1 = require('./kubernetes-redeploy-app-git-form.html');\n\nimport angular from 'angular';\nimport controller from './kubernetes-redeploy-app-git-form.controller';\n\nconst kubernetesRedeployAppGitForm = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    stack: '<',\n    namespace: '<',\n    stackName: '<',\n  },\n};\n\nangular.module('portainer.app').component('kubernetesRedeployAppGitForm', kubernetesRedeployAppGitForm);\n","const autoNgTemplateLoaderTemplate1 = require('./registry-form-ecr.html');\n\nclass controller {\n  constructor($scope) {\n    this.$scope = $scope;\n    this.toggleAuthentication = this.toggleAuthentication.bind(this);\n  }\n\n  $postLink() {\n    this.registryFormEcr.registry_name.$validators.used = (modelValue) => !this.nameIsUsed(modelValue);\n  }\n\n  toggleAuthentication(newValue) {\n    this.$scope.$evalAsync(() => {\n      this.model.Authentication = newValue;\n    });\n  }\n}\n\nangular.module('portainer.app').component('registryFormEcr', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '=',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n    nameIsUsed: '<',\n  },\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registry-form-azure.html');\n\nclass controller {\n  $postLink() {\n    this.registryFormAzure.registry_name.$validators.used = (modelValue) => !this.nameIsUsed(modelValue);\n  }\n}\n\nangular.module('portainer.app').component('registryFormAzure', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '=',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n    nameIsUsed: '<',\n  },\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registry-form-custom.html');\n\nclass controller {\n  constructor($scope) {\n    this.$scope = $scope;\n    this.toggleAuthentication = this.toggleAuthentication.bind(this);\n  }\n\n  $postLink() {\n    this.registryFormCustom.registry_name.$validators.used = (modelValue) => !this.nameIsUsed(modelValue);\n  }\n\n  toggleAuthentication(newValue) {\n    this.$scope.$evalAsync(() => {\n      this.model.Authentication = newValue;\n    });\n  }\n}\n\nangular.module('portainer.app').component('registryFormCustom', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '=',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n    nameIsUsed: '<',\n  },\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registry-form-dockerhub.html');\n\nclass controller {\n  $postLink() {\n    this.registryFormDockerhub.registry_name.$validators.used = (modelValue) => !this.nameIsUsed(modelValue);\n  }\n}\n\nangular.module('portainer.app').component('registryFormDockerhub', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '=',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n    nameIsUsed: '<',\n  },\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./gitlabProjectsDatatable.html');\n\nangular.module('portainer.app').component('gitlabProjectsDatatable', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GitlabProjectsDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n    state: '=',\n  },\n});\n","angular.module('portainer.app').controller('GitlabProjectsDatatableController', [\n  '$scope',\n  '$controller',\n  'DatatableService',\n  function ($scope, $controller, DatatableService) {\n    angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));\n\n    this.disableSelection = function (item) {\n      return !this.allowSelection(item);\n    };\n\n    // based on RegistryGitlabProject model\n    this.allowSelection = function (item) {\n      return item.RegistryEnabled;\n    };\n\n    this.$onInit = function () {\n      this.setDefaults();\n      this.prepareTableFromDataset();\n\n      this.state.orderBy = this.orderBy;\n      var storedOrder = DatatableService.getDataTableOrder(this.tableKey);\n      if (storedOrder !== null) {\n        this.state.reverseOrder = storedOrder.reverse;\n        this.state.orderBy = storedOrder.orderBy;\n      }\n\n      var textFilter = DatatableService.getDataTableTextFilters(this.tableKey);\n      if (textFilter !== null) {\n        this.state.textFilter = textFilter;\n        this.onTextFilterChange();\n      }\n\n      var storedFilters = DatatableService.getDataTableFilters(this.tableKey);\n      if (storedFilters !== null) {\n        this.filters = storedFilters;\n      }\n      if (this.filters && this.filters.state) {\n        this.filters.state.open = false;\n      }\n\n      var storedSettings = DatatableService.getDataTableSettings(this.tableKey);\n      if (storedSettings !== null) {\n        this.settings = storedSettings;\n        this.settings.open = false;\n      }\n      this.onSettingsRepeaterChange();\n    };\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./registry-form-gitlab.html');\n\nangular.module('portainer.app').component('registryFormGitlab', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '=',\n    retrieveRegistries: '<',\n    createRegistries: '<',\n    actionInProgress: '<',\n    projects: '=',\n    state: '=',\n    resetDefaults: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registry-form-proget.html');\n\nclass controller {\n  $postLink() {\n    this.registryFormProGet.registry_name.$validators.used = (modelValue) => !this.nameIsUsed(modelValue);\n  }\n}\n\nangular.module('portainer.app').component('registryFormProget', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '=',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n    nameIsUsed: '<',\n  },\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registry-form-quay.html');\n\nclass controller {\n  constructor($scope) {\n    this.$scope = $scope;\n    this.toggleOrganisation = this.toggleOrganisation.bind(this);\n  }\n\n  $postLink() {\n    this.registryFormQuay.registry_name.$validators.used = (modelValue) => !this.nameIsUsed(modelValue);\n  }\n\n  toggleOrganisation(newValue) {\n    this.$scope.$evalAsync(() => {\n      this.model.Quay.useOrganisation = newValue;\n    });\n  }\n}\n\nangular.module('portainer.app').component('registryFormQuay', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '=',\n    formAction: '<',\n    formActionLabel: '@',\n    actionInProgress: '<',\n    nameIsUsed: '<',\n  },\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./stackFromTemplateForm.html');\n\nimport angular from 'angular';\n\nangular.module('portainer.app').component('stackFromTemplateForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    template: '=',\n    formValues: '=',\n    state: '=',\n    createTemplate: '<',\n    unselectTemplate: '<',\n    nameRegex: '<',\n  },\n  transclude: {\n    advanced: '?advancedForm',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./stack-redeploy-git-form.html');\n\nimport angular from 'angular';\nimport controller from './stack-redeploy-git-form.controller.js';\n\nexport const stackRedeployGitForm = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    model: '<',\n    stack: '<',\n    endpoint: '<',\n  },\n};\n\nangular.module('portainer.app').component('stackRedeployGitForm', stackRedeployGitForm);\n","import { RepositoryMechanismTypes } from 'Kubernetes/models/deploy';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { confirmStackUpdate } from '@/react/common/stacks/common/confirm-stack-update';\n\nimport { parseAutoUpdateResponse } from '@/react/portainer/gitops/AutoUpdateFieldset/utils';\nimport { baseStackWebhookUrl, createWebhookId } from '@/portainer/helpers/webhookHelper';\nimport { confirmEnableTLSVerify } from '@/react/portainer/gitops/utils';\n\nclass StackRedeployGitFormController {\n  /* @ngInject */\n  constructor($async, $state, $compile, $scope, StackService, Notifications, FormHelper) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$compile = $compile;\n    this.$scope = $scope;\n    this.StackService = StackService;\n    this.Notifications = Notifications;\n    this.FormHelper = FormHelper;\n    $scope.stackPullImageFeature = FeatureId.STACK_PULL_IMAGE;\n    this.state = {\n      inProgress: false,\n      redeployInProgress: false,\n      showConfig: false,\n      isEdit: false,\n\n      // isAuthEdit is used to preserve the editing state of the AuthFieldset component.\n      // Within the stack editing page, users have the option to turn the AuthFieldset on or off\n      // and save the stack setting. If the user enables the AuthFieldset, it implies that they\n      // must input new Git authentication, rather than edit existing authentication. Thus,\n      // a dedicated state tracker is required to differentiate between the editing state of\n      // AuthFieldset component and the whole stack\n      // When isAuthEdit is true, PAT field needs to be validated.\n      isAuthEdit: false,\n      hasUnsavedChanges: false,\n      baseWebhookUrl: baseStackWebhookUrl(),\n      webhookId: createWebhookId(),\n    };\n\n    this.formValues = {\n      RefName: '',\n      RepositoryAuthentication: false,\n      RepositoryUsername: '',\n      RepositoryPassword: '',\n      Env: [],\n      PullImage: false,\n      Option: {\n        Prune: false,\n      },\n      // auto update\n      AutoUpdate: parseAutoUpdateResponse(),\n    };\n\n    this.onChange = this.onChange.bind(this);\n    this.onChangeRef = this.onChangeRef.bind(this);\n    this.onChangeAutoUpdate = this.onChangeAutoUpdate.bind(this);\n    this.onChangeEnvVar = this.onChangeEnvVar.bind(this);\n    this.onChangeOption = this.onChangeOption.bind(this);\n    this.onChangeGitAuth = this.onChangeGitAuth.bind(this);\n    this.onChangeTLSSkipVerify = this.onChangeTLSSkipVerify.bind(this);\n  }\n\n  buildAnalyticsProperties() {\n    const metadata = {};\n\n    if (this.formValues.RepositoryAutomaticUpdates) {\n      metadata.automaticUpdates = autoSyncLabel(this.formValues.RepositoryMechanism);\n    }\n    return { metadata };\n\n    function autoSyncLabel(type) {\n      switch (type) {\n        case RepositoryMechanismTypes.INTERVAL:\n          return 'polling';\n        case RepositoryMechanismTypes.WEBHOOK:\n          return 'webhook';\n      }\n      return 'off';\n    }\n  }\n\n  onChange(values) {\n    return this.$async(async () => {\n      this.formValues = {\n        ...this.formValues,\n        ...values,\n      };\n      this.state.hasUnsavedChanges = angular.toJson(this.savedFormValues) !== angular.toJson(this.formValues);\n    });\n  }\n\n  onChangeRef(value) {\n    this.onChange({ RefName: value });\n  }\n\n  onChangeEnvVar(value) {\n    this.onChange({ Env: value });\n  }\n\n  async onChangeTLSSkipVerify(value) {\n    return this.$async(async () => {\n      if (this.model.TLSSkipVerify && !value) {\n        const confirmed = await confirmEnableTLSVerify();\n\n        if (!confirmed) {\n          return;\n        }\n      }\n      this.onChange({ TLSSkipVerify: value });\n    });\n  }\n\n  onChangeOption(values) {\n    this.onChange({\n      Option: {\n        ...this.formValues.Option,\n        ...values,\n      },\n    });\n  }\n\n  async submit() {\n    const isSwarmStack = this.stack.Type === 1;\n    const that = this;\n    confirmStackUpdate(\n      'Any changes to this stack or application made locally in Portainer will be overridden, which may cause service interruption. Do you wish to continue?',\n      isSwarmStack\n    ).then(async function (result) {\n      if (!result) {\n        return;\n      }\n      try {\n        that.state.redeployInProgress = true;\n        await that.StackService.updateGit(\n          that.stack.Id,\n          that.stack.EndpointId,\n          that.FormHelper.removeInvalidEnvVars(that.formValues.Env),\n          that.formValues.Option.Prune,\n          that.formValues,\n          result.pullImage\n        );\n\n        that.Notifications.success('Success', 'Pulled and redeployed stack successfully');\n        that.$state.reload();\n      } catch (err) {\n        that.Notifications.error('Failure', err, 'Failed redeploying stack');\n      } finally {\n        that.state.redeployInProgress = false;\n      }\n    });\n  }\n\n  async saveGitSettings() {\n    return this.$async(async () => {\n      try {\n        this.state.inProgress = true;\n        const stack = await this.StackService.updateGitStackSettings(\n          this.stack.Id,\n          this.stack.EndpointId,\n          this.FormHelper.removeInvalidEnvVars(this.formValues.Env),\n          this.formValues,\n          this.state.webhookId\n        );\n        this.savedFormValues = angular.copy(this.formValues);\n        this.state.hasUnsavedChanges = false;\n        this.Notifications.success('Success', 'Save stack settings successfully');\n\n        if (!(this.stack.GitConfig && this.stack.GitConfig.Authentication)) {\n          // update the AuthFieldset setting\n          this.state.isAuthEdit = false;\n          this.formValues.RepositoryUsername = '';\n          this.formValues.RepositoryPassword = '';\n        }\n        this.stack = stack;\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to save stack settings');\n      } finally {\n        this.state.inProgress = false;\n      }\n    });\n  }\n\n  disablePullAndRedeployButton() {\n    return this.isSubmitButtonDisabled() || this.state.hasUnsavedChanges || !this.redeployGitForm.$valid;\n  }\n\n  disableSaveSettingsButton() {\n    return this.isSubmitButtonDisabled() || !this.state.hasUnsavedChanges || !this.redeployGitForm.$valid;\n  }\n\n  isSubmitButtonDisabled() {\n    return this.state.inProgress || this.state.redeployInProgress;\n  }\n\n  isAutoUpdateChanged() {\n    const wasEnabled = !!(this.stack.AutoUpdate && (this.stack.AutoUpdate.Interval || this.stack.AutoUpdate.Webhook));\n    const isEnabled = this.formValues.AutoUpdate.RepositoryAutomaticUpdates;\n    return isEnabled !== wasEnabled;\n  }\n\n  onChangeGitAuth(values) {\n    this.onChange(values);\n  }\n\n  onChangeAutoUpdate(values) {\n    this.onChange({\n      AutoUpdate: {\n        ...this.formValues.AutoUpdate,\n        ...values,\n      },\n    });\n  }\n\n  async $onInit() {\n    this.formValues.RefName = this.model.ReferenceName;\n    this.formValues.TLSSkipVerify = this.model.TLSSkipVerify;\n    this.formValues.Env = this.stack.Env;\n\n    if (this.stack.Option) {\n      this.formValues.Option = this.stack.Option;\n    }\n\n    this.formValues.AutoUpdate = parseAutoUpdateResponse(this.stack.AutoUpdate);\n\n    if (this.stack.AutoUpdate && this.stack.AutoUpdate.Webhook) {\n      this.state.webhookId = this.stack.AutoUpdate.Webhook;\n    }\n\n    if (this.stack.GitConfig && this.stack.GitConfig.Authentication) {\n      this.formValues.RepositoryUsername = this.stack.GitConfig.Authentication.Username;\n      this.formValues.RepositoryPassword = this.stack.GitConfig.Authentication.Password;\n      this.formValues.RepositoryAuthentication = true;\n      this.state.isEdit = true;\n      this.state.isAuthEdit = true;\n    }\n\n    this.savedFormValues = angular.copy(this.formValues);\n  }\n}\n\nexport default StackRedeployGitFormController;\n","import angular from 'angular';\n\nimport { rdWidgetBody } from './rd-widget-body';\nimport { rdWidget } from './rd-widget';\nimport { rdWidgetCustomHeader } from './rd-widget-custom-header';\nimport { rdWidgetFooter } from './rd-widget-footer';\nimport { rdWidgetTaskbar } from './rd-widget-taskbar';\nimport { rdWidgetTitle } from './rd-widget-title';\n\nexport default angular\n  .module('portainer.app.components.widget', [])\n  .component('rdWidget', rdWidget)\n  .component('rdWidgetBody', rdWidgetBody)\n  .component('rdWidgetCustomHeader', rdWidgetCustomHeader)\n  .component('rdWidgetFooter', rdWidgetFooter)\n  .component('rdWidgetHeader', rdWidgetTitle)\n  .component('rdWidgetTaskbar', rdWidgetTaskbar).name;\n","export const rdWidget = {\n  transclude: true,\n  template: `<div class=\"widget\" ng-transclude></div>`,\n};\n","export const rdWidgetBody = {\n  requires: '^rdWidget',\n  bindings: {\n    loading: '@?',\n    classes: '@?',\n  },\n  transclude: true,\n  template: `\n    <div class=\"widget-body\" ng-class=\"$ctrl.classes\">\n      <rd-loading ng-show=\"$ctrl.loading\"></rd-loading>\n      <div ng-hide=\"$ctrl.loading\" class=\"widget-content\" ng-transclude></div>\n    </div>\n  `,\n};\n","export const rdWidgetCustomHeader = {\n  requires: '^rdWidget',\n  bindings: {\n    titleText: '=',\n    icon: '=',\n  },\n  transclude: true,\n  template: `\n    <div class=\"widget-header\">\n      <div class=\"row\">\n        <span class=\"pull-left\">\n          <img class=\"custom-header-ico space-right\" ng-src=\"{{$ctrl.icon}}\" ng-if=\"$ctrl.icon\" alt=\"header-icon\"></img>\n          <pr-icon ng-if=\"!$ctrl.icon\" icon=\"'rocket'\"></pr-icon>\n          <span class=\"text-muted\"> {{$ctrl.titleText}} </span>\n        </span>\n        <span class=\"pull-right col-xs-6 col-sm-4\" ng-transclude></span>\n      </div>\n    </div>\n  `,\n};\n\n// a react component wasn't created because WidgetTitle were adjusted to support a custom image\n","export const rdWidgetFooter = {\n  requires: '^rdWidget',\n  transclude: true,\n  template: `\n    <div class=\"widget-footer\" ng-transclude></div>\n  `,\n};\n","export const rdWidgetTitle = {\n  requires: '^rdWidget',\n  bindings: {\n    titleText: '@',\n    icon: '@',\n    classes: '@?',\n    parentClasses: '@?',\n  },\n  transclude: {\n    title: '?headerTitle',\n  },\n  template: `\n    <div class=\"widget-header\" ng-class=\"$ctrl.parentClasses\">\n      <div class=\"row\">\n        <span ng-class=\"$ctrl.classes\" class=\"pull-left vertical-center\">\n          <div class=\"widget-icon space-right\">\n            <pr-icon icon=\"$ctrl.icon\"></pr-icon>\n          </div>\n          <span ng-transclude=\"title\">{{ $ctrl.titleText }}</span>\n        </span>\n        <span ng-class=\"$ctrl.classes\" class=\"pull-right\" ng-transclude></span>\n      </div>\n    </div>\n`,\n};\n","export const rdWidgetTaskbar = {\n  requires: '^rdWidget',\n  bindings: {\n    classes: '@?',\n  },\n  transclude: true,\n  template: `\n    <div class=\"widget-header\">\n      <div class=\"row\">\n        <div ng-class=\"$ctrl.classes\" ng-transclude></div>\n      </div>\n    </div>\n  `,\n};\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { getFeatureDetails } from '@@/BEFeatureIndicator/utils';\n\nexport default class BeIndicatorController {\n  limitedToBE?: boolean;\n\n  url?: string;\n\n  feature?: FeatureId;\n\n  /* @ngInject */\n  constructor() {\n    this.limitedToBE = false;\n    this.url = '';\n  }\n\n  $onInit() {\n    const { url, limitedToBE } = getFeatureDetails(this.feature);\n\n    this.limitedToBE = limitedToBE;\n    this.url = url;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./BEFeatureIndicator.html');\n\nimport controller from './BEFeatureIndicator.controller';\n\nexport const beFeatureIndicator = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    feature: '<',\n  },\n  transclude: true,\n};\n","import { IFormController } from 'angular';\nimport { FormikErrors } from 'formik';\n\nimport { GitFormModel } from '@/react/portainer/gitops/types';\nimport { validateGitForm } from '@/react/portainer/gitops/GitForm';\nimport { notifyError } from '@/portainer/services/notifications';\nimport { IAuthenticationService } from '@/portainer/services/types';\nimport { getGitCredentials } from '@/react/portainer/account/git-credentials/git-credentials.service';\nimport { GitCredential } from '@/react/portainer/account/git-credentials/types';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nexport default class GitFormController {\n  errors?: FormikErrors<GitFormModel>;\n\n  $async: <T>(fn: () => Promise<T>) => Promise<T>;\n\n  gitForm?: IFormController;\n\n  gitCredentials: Array<GitCredential> = [];\n\n  Authentication: IAuthenticationService;\n\n  value?: GitFormModel;\n\n  onChange?: (value: GitFormModel) => void;\n\n  createdFromCustomTemplateId?: number;\n\n  /* @ngInject */\n  constructor(\n    $async: <T>(fn: () => Promise<T>) => Promise<T>,\n    Authentication: IAuthenticationService\n  ) {\n    this.$async = $async;\n    this.Authentication = Authentication;\n\n    this.handleChange = this.handleChange.bind(this);\n    this.runGitFormValidation = this.runGitFormValidation.bind(this);\n  }\n\n  async handleChange(newValues: Partial<GitFormModel>) {\n    // this should never happen, but just in case\n    if (!this.value) {\n      throw new Error('GitFormController: value is required');\n    }\n\n    const value = {\n      ...this.value,\n      ...newValues,\n    };\n    this.onChange?.(value);\n\n    const isCreatedFromCustomTemplate =\n      !!this.createdFromCustomTemplateId &&\n      this.createdFromCustomTemplateId > 0;\n    await this.runGitFormValidation(value, isCreatedFromCustomTemplate);\n  }\n\n  async runGitFormValidation(\n    value: GitFormModel,\n    isCreatedFromCustomTemplate: boolean\n  ) {\n    return this.$async(async () => {\n      this.errors = {};\n      this.gitForm?.$setValidity('gitForm', true, this.gitForm);\n\n      this.errors = await validateGitForm(\n        this.gitCredentials,\n        value,\n        isCreatedFromCustomTemplate\n      );\n      if (this.errors && Object.keys(this.errors).length > 0) {\n        this.gitForm?.$setValidity('gitForm', false, this.gitForm);\n      }\n    });\n  }\n\n  async $onInit() {\n    if (isBE) {\n      try {\n        this.gitCredentials = await getGitCredentials(\n          this.Authentication.getUserDetails().ID\n        );\n      } catch (err) {\n        notifyError(\n          'Failure',\n          err as Error,\n          'Unable to retrieve user saved git credentials'\n        );\n      }\n    }\n\n    // this should never happen, but just in case\n    if (!this.value) {\n      throw new Error('GitFormController: value is required');\n    }\n\n    const isCreatedFromCustomTemplate =\n      !!this.createdFromCustomTemplateId &&\n      this.createdFromCustomTemplateId > 0;\n    await this.runGitFormValidation(this.value, isCreatedFromCustomTemplate);\n  }\n}\n","import { IComponentOptions } from 'angular';\n\nimport controller from './git-form.controller';\n\nexport const gitForm: IComponentOptions = {\n  template: `\n<ng-form name=\"$ctrl.gitForm\">\n  <react-git-form \n    value=\"$ctrl.value\"\n    on-change=\"$ctrl.handleChange\"\n    environment-type=\"$ctrl.environmentType\"\n    is-docker-standalone=\"$ctrl.isDockerStandalone\"\n    deploy-method=\"$ctrl.deployMethod\"\n    is-additional-files-field-visible=\"$ctrl.isAdditionalFilesFieldVisible\"\n    is-force-pull-visible=\"$ctrl.isForcePullVisible\"\n    is-auth-explanation-visible=\"$ctrl.isAuthExplanationVisible\"\n    base-webhook-url=\"$ctrl.baseWebhookUrl\"\n    webhook-id=\"$ctrl.webhookId\"\n    webhooks-docs=\"$ctrl.webhooksDocs\"\n    created-from-custom-template-id=\"$ctrl.createdFromCustomTemplateId\"\n    errors=\"$ctrl.errors\">\n  </react-git-form>\n</ng-form>`,\n  bindings: {\n    value: '<',\n    onChange: '<',\n    environmentType: '@',\n    isDockerStandalone: '<',\n    deployMethod: '@',\n    baseWebhookUrl: '@',\n    isAdditionalFilesFieldVisible: '<',\n    isForcePullVisible: '<',\n    isAuthExplanationVisible: '<',\n    webhookId: '@',\n    webhooksDocs: '@',\n    createdFromCustomTemplateId: '<',\n  },\n  controller,\n};\n","import { IFormController } from 'angular';\nimport { FormikErrors } from 'formik';\n\nimport { notifyError } from '@/portainer/services/notifications';\nimport { IAuthenticationService } from '@/portainer/services/types';\nimport { GitAuthModel } from '@/react/portainer/gitops/types';\nimport { gitAuthValidation } from '@/react/portainer/gitops/AuthFieldset';\nimport { GitCredential } from '@/react/portainer/account/git-credentials/types';\nimport { getGitCredentials } from '@/react/portainer/account/git-credentials/git-credentials.service';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { validateForm } from '@@/form-components/validate-form';\n\nexport default class GitFormAuthFieldsetController {\n  errors?: FormikErrors<GitAuthModel> = {};\n\n  $async: <T>(fn: () => Promise<T>) => Promise<T>;\n\n  gitFormAuthFieldset?: IFormController;\n\n  gitCredentials: Array<GitCredential> = [];\n\n  Authentication: IAuthenticationService;\n\n  value?: GitAuthModel;\n\n  isAuthEdit: boolean;\n\n  onChange?: (value: GitAuthModel) => void;\n\n  /* @ngInject */\n  constructor(\n    $async: <T>(fn: () => Promise<T>) => Promise<T>,\n    Authentication: IAuthenticationService\n  ) {\n    this.$async = $async;\n    this.Authentication = Authentication;\n\n    this.isAuthEdit = false;\n    this.handleChange = this.handleChange.bind(this);\n    this.runGitValidation = this.runGitValidation.bind(this);\n  }\n\n  async handleChange(newValues: Partial<GitAuthModel>) {\n    // this should never happen, but just in case\n    if (!this.value) {\n      throw new Error('GitFormController: value is required');\n    }\n\n    const value = {\n      ...this.value,\n      ...newValues,\n    };\n    this.onChange?.(value);\n    await this.runGitValidation(value, this.isAuthEdit);\n  }\n\n  async runGitValidation(value: GitAuthModel, isAuthEdit: boolean) {\n    return this.$async(async () => {\n      this.errors = {};\n      this.gitFormAuthFieldset?.$setValidity(\n        'gitFormAuth',\n        true,\n        this.gitFormAuthFieldset\n      );\n\n      this.errors = await validateForm<GitAuthModel>(\n        () => gitAuthValidation(this.gitCredentials, isAuthEdit, false),\n        value\n      );\n      if (this.errors && Object.keys(this.errors).length > 0) {\n        this.gitFormAuthFieldset?.$setValidity(\n          'gitFormAuth',\n          false,\n          this.gitFormAuthFieldset\n        );\n      }\n    });\n  }\n\n  async $onInit() {\n    if (isBE) {\n      try {\n        // Only BE version support /gitcredentials\n        this.gitCredentials = await getGitCredentials(\n          this.Authentication.getUserDetails().ID\n        );\n      } catch (err) {\n        notifyError(\n          'Failure',\n          err as Error,\n          'Unable to retrieve user saved git credentials'\n        );\n      }\n    }\n    // this should never happen, but just in case\n    if (!this.value) {\n      throw new Error('GitFormController: value is required');\n    }\n    await this.runGitValidation(this.value, this.isAuthEdit);\n  }\n}\n","import { IComponentOptions } from 'angular';\n\nimport controller from './git-form-auth-fieldset.controller';\n\nexport const gitFormAuthFieldset: IComponentOptions = {\n  controller,\n  template: `\n<ng-form name=\"$ctrl.gitFormAuthFieldset\">\n  <react-git-form-auth-fieldset\n    value=\"$ctrl.value\"\n    on-change=\"$ctrl.handleChange\"\n    is-auth-explanation-visible=\"$ctrl.isAuthExplanationVisible\"\n    errors=\"$ctrl.errors\"\n    is-auth-edit=\"$ctrl.isAuthEdit\">\n  </react-git-form-auth-fieldset>\n</ng-form>`,\n  bindings: {\n    value: '<',\n    onChange: '<',\n    isAuthExplanationVisible: '<',\n    isAuthEdit: '<',\n  },\n};\n","import { IFormController } from 'angular';\nimport { FormikErrors } from 'formik';\n\nimport { IAuthenticationService } from '@/portainer/services/types';\nimport { AutoUpdateModel } from '@/react/portainer/gitops/types';\nimport { autoUpdateValidation } from '@/react/portainer/gitops/AutoUpdateFieldset/validation';\n\nimport { validateForm } from '@@/form-components/validate-form';\n\nexport default class GitFormAutoUpdateFieldsetController {\n  errors?: FormikErrors<AutoUpdateModel> = {};\n\n  $async: <T>(fn: () => Promise<T>) => Promise<T>;\n\n  gitFormAutoUpdate?: IFormController;\n\n  Authentication: IAuthenticationService;\n\n  value?: AutoUpdateModel;\n\n  onChange?: (value: AutoUpdateModel) => void;\n\n  /* @ngInject */\n  constructor(\n    $async: <T>(fn: () => Promise<T>) => Promise<T>,\n    Authentication: IAuthenticationService\n  ) {\n    this.$async = $async;\n    this.Authentication = Authentication;\n\n    this.handleChange = this.handleChange.bind(this);\n    this.runGitValidation = this.runGitValidation.bind(this);\n  }\n\n  async handleChange(newValues: Partial<AutoUpdateModel>) {\n    // this should never happen, but just in case\n    if (!this.value) {\n      throw new Error('GitFormController: value is required');\n    }\n\n    const value = {\n      ...this.value,\n      ...newValues,\n    };\n    this.onChange?.(value);\n    await this.runGitValidation(value);\n  }\n\n  async runGitValidation(value: AutoUpdateModel) {\n    return this.$async(async () => {\n      this.errors = {};\n      this.gitFormAutoUpdate?.$setValidity(\n        'gitFormAuth',\n        true,\n        this.gitFormAutoUpdate\n      );\n\n      this.errors = await validateForm<AutoUpdateModel>(\n        () => autoUpdateValidation(),\n        value\n      );\n      if (this.errors && Object.keys(this.errors).length > 0) {\n        this.gitFormAutoUpdate?.$setValidity(\n          'gitFormAuth',\n          false,\n          this.gitFormAutoUpdate\n        );\n      }\n    });\n  }\n\n  async $onInit() {\n    // this should never happen, but just in case\n    if (!this.value) {\n      throw new Error('GitFormController: value is required');\n    }\n\n    await this.runGitValidation(this.value);\n  }\n}\n","import { IComponentOptions } from 'angular';\n\nimport controller from './git-form-auto-update-fieldset.controller';\n\nexport const gitFormAutoUpdate: IComponentOptions = {\n  template: `<ng-form name=\"$ctrl.gitFormAutoUpdate\">\n    <react-git-form-auto-update-fieldset\n    value=\"$ctrl.value\"\n    on-change=\"$ctrl.handleChange\"\n    environment-type=\"$ctrl.environmentType\"\n    is-force-pull-visible=\"$ctrl.isForcePullVisible\"\n    base-webhook-url=\"$ctrl.baseWebhookUrl\"\n    webhook-id=\"$ctrl.webhookId\"\n    webhooks-docs=\"$ctrl.webhooksDocs\"\n    errors=\"$ctrl.errors\">\n    </react-git-form-auto-update-fieldset>\n  </ng-form>`,\n  bindings: {\n    value: '<',\n    onChange: '<',\n    environmentType: '@',\n    isForcePullVisible: '<',\n    baseWebhookUrl: '@',\n    webhookId: '@',\n    webhooksDocs: '@',\n  },\n  controller,\n};\n","import { IComponentOptions, IFormController } from 'angular';\n\nimport { GitFormModel } from '@/react/portainer/gitops/types';\nimport { AsyncService } from '@/portainer/services/types';\nimport { refFieldValidation } from '@/react/portainer/gitops/RefField/RefField';\n\nimport { validateForm } from '@@/form-components/validate-form';\n\nclass GitFormRefFieldController {\n  $async: AsyncService;\n\n  value?: string;\n\n  onChange?: (value: string) => void;\n\n  gitFormRefField?: IFormController;\n\n  error?: string = '';\n\n  model?: GitFormModel;\n\n  stackId?: number = 0;\n\n  /* @ngInject */\n  constructor($async: AsyncService) {\n    this.$async = $async;\n\n    this.handleChange = this.handleChange.bind(this);\n    this.runValidation = this.runValidation.bind(this);\n  }\n\n  async handleChange(value: string) {\n    return this.$async(async () => {\n      this.onChange?.(value);\n      await this.runValidation(value);\n    });\n  }\n\n  async runValidation(value: string) {\n    return this.$async(async () => {\n      this.error = '';\n      this.gitFormRefField?.$setValidity(\n        'gitFormRefField',\n        true,\n        this.gitFormRefField\n      );\n\n      this.error = await validateForm<string>(\n        () => refFieldValidation(),\n        value\n      );\n      if (this.error) {\n        this.gitFormRefField?.$setValidity(\n          'gitFormRefField',\n          false,\n          this.gitFormRefField\n        );\n      }\n    });\n  }\n}\n\nexport const gitFormRefField: IComponentOptions = {\n  controller: GitFormRefFieldController,\n  template: `\n<ng-form name=\"$ctrl.gitFormRefField\">\n  <react-git-form-ref-field\n    is-url-valid=\"$ctrl.isUrlValid\"\n    model=\"$ctrl.model\"\n    value=\"$ctrl.value\"\n    on-change=\"$ctrl.handleChange\"\n    stack-id=\"$ctrl.stackId\"\n    error=\"$ctrl.error\">\n  </react-git-form-ref-field>\n</ng-form>`,\n  bindings: {\n    isUrlValid: '<',\n    value: '<',\n    onChange: '<',\n    model: '<',\n    stackId: '<',\n  },\n};\n","import angular from 'angular';\n\nimport { gitForm } from './git-form';\nimport { gitFormAuthFieldset } from './git-form-auth-fieldset';\nimport { gitFormAutoUpdate } from './git-form-auto-update-fieldset';\nimport { gitFormRefField } from './git-form-ref-field';\n\nexport const gitFormModule = angular\n  .module('portainer.app.components.git-form', [])\n  .component('gitForm', gitForm)\n  .component('gitFormAuthFieldset', gitFormAuthFieldset)\n  .component('gitFormAutoUpdateFieldset', gitFormAutoUpdate)\n  .component('gitFormRefField', gitFormRefField).name;\n","import angular from 'angular';\n\nimport {\n  TLSFieldset,\n  tlsConfigValidation,\n} from '@/react/components/TLSFieldset';\nimport { withFormValidation } from '@/react-tools/withFormValidation';\n\nexport const ngModule = angular.module(\n  'portainer.app.components.tls-fieldset',\n  []\n);\n\nexport const tlsFieldsetModule = ngModule.name;\n\nwithFormValidation(\n  ngModule,\n  TLSFieldset,\n  'tlsFieldset',\n  [],\n  tlsConfigValidation\n);\n","import angular from 'angular';\n\nimport formComponentsModule from './form-components';\nimport porAccessManagementModule from './accessManagement';\nimport widgetModule from './widget';\nimport { boxSelectorModule } from './BoxSelector';\n\nimport { beFeatureIndicator } from './BEFeatureIndicator';\nimport { InformationPanelAngular } from './InformationPanel';\nimport { gitFormModule } from './forms/git-form';\nimport { tlsFieldsetModule } from './tls-fieldset';\n\nexport default angular\n  .module('portainer.app.components', [boxSelectorModule, widgetModule, gitFormModule, porAccessManagementModule, formComponentsModule, tlsFieldsetModule])\n  .component('informationPanel', InformationPanelAngular)\n  .component('beFeatureIndicator', beFeatureIndicator).name;\n","import angular from 'angular';\nimport parse from 'parse-duration';\n\nangular.module('portainer.app').directive('intervalFormat', function () {\n  return {\n    restrict: 'A',\n    require: 'ngModel',\n    link: function ($scope, $element, $attrs, ngModel) {\n      ngModel.$validators.invalidIntervalFormat = function (modelValue) {\n        try {\n          return modelValue && modelValue.toUpperCase().match(/^P?(?!$)(\\d+Y)?(\\d+M)?(\\d+W)?(\\d+D)?(T?(?=\\d+[HMS])(\\d+H)?(\\d+M)?(\\d+S)?)?$/gm) !== null;\n        } catch (error) {\n          return false;\n        }\n      };\n\n      ngModel.$validators.minimumInterval = function (modelValue) {\n        try {\n          return modelValue && parse(modelValue, 'minute') >= 1;\n        } catch (error) {\n          return false;\n        }\n      };\n    },\n  };\n});\n","angular.module('portainer.app').directive('onEnterKey', [\n  function porOnEnterKey() {\n    var directive = {\n      restrict: 'A',\n      link: function (scope, element, attrs) {\n        element.bind('keydown keypress', function (e) {\n          if (e.which === 13) {\n            e.preventDefault();\n            scope.$apply(function () {\n              scope.$eval(attrs.onEnterKey);\n            });\n          }\n        });\n      },\n    };\n\n    return directive;\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./option-panel.html');\n\nimport angular from 'angular';\n\nimport controller from './option-panel.controller.js';\n\nangular.module('portainer.app').component('optionPanel', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    ngModel: '<',\n    explanation: '@',\n    onChange: '<',\n  },\n});\n","export default class OptionPanelController {\n  /* @ngInject */\n  constructor() {\n    this.switchPruneService = this.switchPruneService.bind(this);\n  }\n\n  switchPruneService() {\n    this.onChange(this.ngModel);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./productItem.html');\n\nangular.module('portainer.app').component('productItem', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    model: '<',\n    goTo: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./productList.html');\n\nangular.module('portainer.app').component('productList', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    titleText: '@',\n    products: '<',\n    goTo: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registry-details.html');\n\nimport angular from 'angular';\n\nexport const registryDetails = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    registry: '<',\n  },\n};\n\nangular.module('portainer.app').component('registryDetails', registryDetails);\n","const autoNgTemplateLoaderTemplate1 = require('./sensitive-details.html');\n\nimport angular from 'angular';\nimport './sensitive-details.css';\n\nangular.module('portainer.app').component('sensitiveDetails', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    key: '@',\n    value: '@',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./show-hide.html');\n\nimport angular from 'angular';\n\nangular.module('portainer.app').component('showHide', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    value: '<',\n    useAsterisk: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./slider.html');\n\nangular.module('portainer.app').component('slider', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'SliderController',\n  bindings: {\n    model: '=',\n    onChange: '<',\n    floor: '<',\n    ceil: '<',\n    step: '<',\n    precision: '<',\n  },\n});\n","// TODO: k8s merge - TEST WITH EXISTING SLIDERS !\n// Not sure if this is not breaking existing sliders on docker views\n// Or sliders with onChange call (docker service update view)\nimport angular from 'angular';\n\nclass SliderController {\n  /* @ngInject */\n  constructor($scope) {\n    this.$scope = $scope;\n\n    this.buildOptions = this.buildOptions.bind(this);\n    this.translate = this.translate.bind(this);\n  }\n\n  $onChanges() {\n    this.buildOptions();\n  }\n\n  translate(value, sliderId, label) {\n    if ((label === 'floor' && this.floor === 0) || value === 0) {\n      return 'unlimited';\n    }\n    return value;\n  }\n\n  buildOptions() {\n    this.options = {\n      floor: this.floor,\n      ceil: this.ceil,\n      step: this.step,\n      precision: this.precision,\n      showSelectionBar: true,\n      enforceStep: false,\n      translate: this.translate,\n      onChange: () => this.onChange(),\n    };\n  }\n\n  $onInit() {\n    this.buildOptions();\n  }\n}\n\nexport default SliderController;\nangular.module('portainer.app').controller('SliderController', SliderController);\n","import { STACK_NAME_VALIDATION_REGEX } from '@/react/constants';\n\nangular.module('portainer.app').controller('StackDuplicationFormController', [\n  'Notifications',\n  '$scope',\n  function StackDuplicationFormController(Notifications, $scope) {\n    var ctrl = this;\n\n    ctrl.environmentSelectorOptions = null;\n\n    ctrl.state = {\n      duplicationInProgress: false,\n      migrationInProgress: false,\n    };\n\n    ctrl.formValues = {\n      endpointId: null,\n      newName: '',\n    };\n\n    ctrl.STACK_NAME_VALIDATION_REGEX = STACK_NAME_VALIDATION_REGEX;\n\n    ctrl.isFormValidForDuplication = isFormValidForDuplication;\n    ctrl.isFormValidForMigration = isFormValidForMigration;\n    ctrl.duplicateStack = duplicateStack;\n    ctrl.migrateStack = migrateStack;\n    ctrl.isMigrationButtonDisabled = isMigrationButtonDisabled;\n    ctrl.isEndpointSelected = isEndpointSelected;\n    ctrl.onChangeEnvironment = onChangeEnvironment;\n    ctrl.$onChanges = $onChanges;\n\n    function isFormValidForMigration() {\n      return ctrl.formValues.endpointId;\n    }\n\n    function isFormValidForDuplication() {\n      return isFormValidForMigration() && ctrl.formValues.newName && !ctrl.yamlError;\n    }\n\n    function onChangeEnvironment(endpointId) {\n      return $scope.$evalAsync(() => {\n        ctrl.formValues.endpointId = endpointId;\n      });\n    }\n\n    function duplicateStack() {\n      if (!ctrl.formValues.newName) {\n        Notifications.error('Failure', null, 'Stack name is required for duplication');\n        return;\n      }\n      ctrl.state.duplicationInProgress = true;\n      ctrl\n        .onDuplicate({\n          endpointId: ctrl.formValues.endpointId,\n          name: ctrl.formValues.newName ? ctrl.formValues.newName : undefined,\n        })\n        .finally(function () {\n          ctrl.state.duplicationInProgress = false;\n        });\n    }\n\n    function migrateStack() {\n      ctrl.state.migrationInProgress = true;\n      ctrl\n        .onMigrate({\n          endpointId: ctrl.formValues.endpointId,\n          name: ctrl.formValues.newName ? ctrl.formValues.newName : undefined,\n        })\n        .finally(function () {\n          ctrl.state.migrationInProgress = false;\n        });\n    }\n\n    function isMigrationButtonDisabled() {\n      return !ctrl.isFormValidForMigration() || ctrl.state.duplicationInProgress || ctrl.state.migrationInProgress || isTargetEndpointAndCurrentEquals();\n    }\n\n    function isTargetEndpointAndCurrentEquals() {\n      return ctrl.formValues.endpointId === ctrl.currentEndpointId;\n    }\n\n    function isEndpointSelected() {\n      return ctrl.formValues.endpointId;\n    }\n\n    function $onChanges() {\n      ctrl.environmentSelectorOptions = getOptions(ctrl.groups, ctrl.endpoints);\n    }\n  },\n]);\n\nfunction getOptions(groups, environments) {\n  if (!groups || !environments) {\n    return [];\n  }\n\n  const groupSet = environments.reduce((groupSet, environment) => {\n    const groupEnvironments = groupSet[environment.GroupId] || [];\n\n    return {\n      ...groupSet,\n      [environment.GroupId]: [...groupEnvironments, { label: environment.Name, value: environment.Id }],\n    };\n  }, {});\n\n  return Object.entries(groupSet).map(([groupId, environments]) => {\n    const group = groups.find((group) => group.Id === parseInt(groupId, 10));\n    if (!group) {\n      throw new Error('missing group');\n    }\n\n    return {\n      label: group.Name,\n      options: environments,\n    };\n  });\n}\n","const autoNgTemplateLoaderTemplate1 = require('./stack-duplication-form.html');\n\nangular.module('portainer.app').component('stackDuplicationForm', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'StackDuplicationFormController',\n  bindings: {\n    onDuplicate: '&',\n    onMigrate: '&',\n    endpoints: '<',\n    groups: '<',\n    currentEndpointId: '<',\n    yamlError: '<',\n  },\n});\n","const autoNgTemplateLoaderTemplate1 = require('./status-indicator.html');\n\nimport angular from 'angular';\n\nimport './status-indicator.css';\n\nexport const statusIndicator = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    ok: '<',\n  },\n};\n\nangular.module('portainer.app').component('statusIndicator', statusIndicator);\n","angular.module('portainer.app').directive('rdTemplateWidget', function rdWidget() {\n  var directive = {\n    scope: {\n      ngModel: '=',\n    },\n    transclude: true,\n    template: '<div class=\"widget template-widget\" id=\"template-widget\" ng-transclude></div>',\n    restrict: 'EA',\n  };\n  return directive;\n});\n","import { Eye, Moon, Sun, RefreshCw } from 'lucide-react';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nexport const options = [\n  {\n    id: 'light',\n    icon: <BadgeIcon icon={Sun} />,\n    label: 'Light Theme',\n    description: 'Default color mode',\n    value: 'light',\n  },\n  {\n    id: 'dark',\n    icon: <BadgeIcon icon={Moon} />,\n    label: 'Dark Theme',\n    description: 'Dark color mode',\n    value: 'dark',\n  },\n  {\n    id: 'highcontrast',\n    icon: <BadgeIcon icon={Eye} />,\n    label: 'High Contrast',\n    description: 'High contrast color mode',\n    value: 'highcontrast',\n  },\n  {\n    id: 'auto',\n    icon: <BadgeIcon icon={RefreshCw} />,\n    label: 'Auto',\n    description: 'Sync with system theme',\n    value: 'auto',\n  },\n];\n","import { notifyError, notifySuccess } from '@/portainer/services/notifications';\nimport { userQueryKeys } from '@/portainer/users/queries/queryKeys';\nimport { queryClient } from '@/react-tools/react-query';\nimport { options } from '@/react/portainer/account/AccountView/theme-options';\n\nexport default class ThemeSettingsController {\n  /* @ngInject */\n  constructor($async, Authentication, ThemeManager, StateManager, UserService) {\n    this.$async = $async;\n    this.Authentication = Authentication;\n    this.ThemeManager = ThemeManager;\n    this.StateManager = StateManager;\n    this.UserService = UserService;\n\n    this.setThemeColor = this.setThemeColor.bind(this);\n  }\n\n  async setThemeColor(color) {\n    return this.$async(async () => {\n      if (color === 'auto' || !color) {\n        this.ThemeManager.autoTheme();\n      } else {\n        this.ThemeManager.setTheme(color);\n      }\n\n      this.state.themeColor = color;\n      this.updateThemeSettings({ color });\n    });\n  }\n\n  async updateThemeSettings(theme) {\n    try {\n      if (!this.state.isDemo) {\n        await this.UserService.updateUserTheme(this.state.userId, theme);\n        await queryClient.invalidateQueries(userQueryKeys.user(this.state.userId));\n      }\n\n      notifySuccess('Success', 'User theme settings successfully updated');\n    } catch (err) {\n      notifyError('Failure', err, 'Unable to update user theme settings');\n    }\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      const state = this.StateManager.getState();\n\n      this.state = {\n        userId: null,\n        themeColor: 'auto',\n        isDemo: state.application.demoEnvironment.enabled,\n      };\n\n      this.state.availableThemes = options;\n\n      try {\n        this.state.userId = await this.Authentication.getUserDetails().ID;\n        const user = await this.UserService.user(this.state.userId);\n\n        this.state.themeColor = user.ThemeSettings.color || this.state.themeColor;\n      } catch (err) {\n        notifyError('Failure', err, 'Unable to get user details');\n      }\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./theme-settings.html');\n\nimport angular from 'angular';\nimport controller from './theme-settings.controller';\n\nangular.module('portainer.app').component('themeSettings', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./azureEndpointConfig.html');\n\nexport const azureEndpointConfig = {\n  bindings: {\n    applicationId: '=',\n    tenantId: '=',\n    authenticationKey: '=',\n  },\n  templateUrl: autoNgTemplateLoaderTemplate1,\n};\n","import moment from 'moment';\nimport _ from 'lodash-es';\nimport filesize from 'filesize';\nimport { Cloud } from 'lucide-react';\n\nimport Kube from '@/assets/ico/kube.svg?c';\nimport DockerIcon from '@/assets/ico/vendor/docker-icon.svg?c';\nimport MicrosoftIcon from '@/assets/ico/vendor/microsoft-icon.svg?c';\nimport { EnvironmentType } from '@/react/portainer/environments/types';\n\nexport function truncateLeftRight(text, max, left, right) {\n  max = isNaN(max) ? 50 : max;\n  left = isNaN(left) ? 25 : left;\n  right = isNaN(right) ? 25 : right;\n\n  if (text.length <= max) {\n    return text;\n  } else {\n    return text.substring(0, left) + '[...]' + text.substring(text.length - right, text.length);\n  }\n}\n\nexport function stripProtocol(url) {\n  return url.replace(/.*?:\\/\\//g, '');\n}\n\nexport function humanize(bytes, round, base) {\n  if (!round) {\n    round = 1;\n  }\n  if (!base) {\n    base = 10;\n  }\n  if (bytes || bytes === 0) {\n    return filesize(bytes, { base: base, round: round });\n  }\n}\nexport const TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';\n\nexport function isoDateFromTimestamp(timestamp) {\n  return moment.unix(timestamp).format(TIME_FORMAT);\n}\n\nexport function isoDate(date, format = TIME_FORMAT) {\n  return moment(date).format(format);\n}\n\nexport function parseIsoDate(date, format = TIME_FORMAT) {\n  return moment(date, format).toDate();\n}\n\nexport function formatDate(date, strFormat = 'YYYY-MM-DD HH:mm:ss Z', outFormat = TIME_FORMAT) {\n  return moment(date, strFormat).format(outFormat);\n}\n\nexport function getPairKey(pair, separator) {\n  if (!pair.includes(separator)) {\n    return pair;\n  }\n\n  return pair.slice(0, pair.indexOf(separator));\n}\n\nexport function getPairValue(pair, separator) {\n  if (!pair.includes(separator)) {\n    return '';\n  }\n\n  return pair.slice(pair.indexOf(separator) + 1);\n}\n\nexport function ipAddress(ip) {\n  return ip.slice(0, ip.indexOf('/'));\n}\n\nexport function arrayToStr(arr, separator) {\n  if (arr) {\n    return _.join(arr, separator);\n  }\n  return '';\n}\n\nexport function labelsToStr(arr, separator) {\n  if (arr) {\n    return _.join(\n      arr.map((item) => item.key + ':' + item.value),\n      separator\n    );\n  }\n  return '';\n}\n\nexport function endpointTypeName(type) {\n  if (type === 1) {\n    return 'Docker';\n  } else if (type === 2 || type === 6) {\n    return 'Agent';\n  } else if (type === 3) {\n    return 'Azure ACI';\n  } else if (type === 5) {\n    return 'Kubernetes';\n  } else if (type === 4 || type === 7) {\n    return 'Edge Agent';\n  }\n  return '';\n}\n\nexport function environmentTypeIcon(type) {\n  switch (type) {\n    case EnvironmentType.Azure:\n      return MicrosoftIcon;\n    case EnvironmentType.EdgeAgentOnDocker:\n      return Cloud;\n    case EnvironmentType.AgentOnKubernetes:\n    case EnvironmentType.EdgeAgentOnKubernetes:\n    case EnvironmentType.KubernetesLocal:\n      return Kube;\n    case EnvironmentType.AgentOnDocker:\n    case EnvironmentType.Docker:\n      return DockerIcon;\n    default:\n      throw new Error(`type ${type}-${EnvironmentType[type]} is not supported`);\n  }\n}\n\nexport function truncate(text, length, end) {\n  if (isNaN(length)) {\n    length = 10;\n  }\n\n  if (end === undefined) {\n    end = '...';\n  }\n\n  if (text.length <= length || text.length - end.length <= length) {\n    return text;\n  } else {\n    return String(text).substring(0, length - end.length) + end;\n  }\n}\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nimport { ownershipIcon } from '@/react/docker/components/datatable/createOwnershipColumn';\nimport {\n  arrayToStr,\n  environmentTypeIcon,\n  endpointTypeName,\n  getPairKey,\n  getPairValue,\n  humanize,\n  ipAddress,\n  isoDate,\n  isoDateFromTimestamp,\n  labelsToStr,\n  stripProtocol,\n  truncate,\n  truncateLeftRight,\n} from './filters';\n\nangular\n  .module('portainer.app')\n  .filter('truncate', () => truncate)\n  .filter('truncatelr', () => truncateLeftRight)\n  .filter('capitalize', () => _.capitalize)\n  .filter('stripprotocol', () => stripProtocol)\n  .filter('humansize', () => humanize)\n  .filter('getisodatefromtimestamp', () => isoDateFromTimestamp)\n  .filter('getisodate', () => isoDate)\n  .filter('key', () => getPairKey)\n  .filter('value', () => getPairValue)\n  .filter('emptyobject', () => _.isEmpty)\n  .filter('ipaddress', () => ipAddress)\n  .filter('arraytostr', () => arrayToStr)\n  .filter('labelsToStr', () => labelsToStr)\n  .filter('endpointtypename', () => endpointTypeName)\n  .filter('endpointtypeicon', () => environmentTypeIcon)\n  .filter('ownershipicon', () => ownershipIcon);\n","import _ from 'lodash-es';\nimport { PortainerEndpointTypes } from 'Portainer/models/endpoint/models';\n\nfunction findAssociatedGroup(endpoint, groups) {\n  return _.find(groups, function (group) {\n    return group.Id === endpoint.GroupId;\n  });\n}\n\nexport default class EndpointHelper {\n  static isDockerEndpoint(endpoint) {\n    return [PortainerEndpointTypes.DockerEnvironment, PortainerEndpointTypes.AgentOnDockerEnvironment, PortainerEndpointTypes.EdgeAgentOnDockerEnvironment].includes(endpoint.Type);\n  }\n\n  static isAgentEndpoint(endpoint) {\n    return [\n      PortainerEndpointTypes.AgentOnDockerEnvironment,\n      PortainerEndpointTypes.EdgeAgentOnDockerEnvironment,\n      PortainerEndpointTypes.AgentOnKubernetesEnvironment,\n      PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment,\n    ].includes(endpoint.Type);\n  }\n\n  static isEdgeEndpoint(endpoint) {\n    return [PortainerEndpointTypes.EdgeAgentOnDockerEnvironment, PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment].includes(endpoint.Type);\n  }\n\n  static mapGroupNameToEndpoint(endpoints, groups) {\n    for (var i = 0; i < endpoints.length; i++) {\n      var endpoint = endpoints[i];\n      var group = findAssociatedGroup(endpoint, groups);\n      if (group) {\n        endpoint.GroupName = group.Name;\n      }\n    }\n  }\n}\n","angular.module('portainer.app').factory('FormHelper', [\n  function FormHelperFactory() {\n    'use strict';\n    var helper = {};\n\n    helper.removeInvalidEnvVars = function (env) {\n      for (var i = env.length - 1; i >= 0; i--) {\n        var envvar = env[i];\n        if (!envvar.name) {\n          env.splice(i, 1);\n        }\n      }\n\n      return env;\n    };\n\n    return helper;\n  },\n]);\n","import _ from 'lodash-es';\n\nclass GenericHelper {\n  static findDeepAll(obj, target, res = []) {\n    if (typeof obj === 'object') {\n      _.forEach(obj, (child, key) => {\n        if (key === target) res.push(child);\n        if (typeof child === 'object') GenericHelper.findDeepAll(child, target, res);\n      });\n    }\n    return res;\n  }\n}\n\nexport default GenericHelper;\n","import _ from 'lodash-es';\nimport angular from 'angular';\n\nclass NetworkHelper {\n  /* @ngInject */\n  constructor(PREDEFINED_NETWORKS) {\n    this.PREDEFINED_NETWORKS = PREDEFINED_NETWORKS;\n  }\n\n  isSystemNetwork(item) {\n    return _.includes(this.PREDEFINED_NETWORKS, item.Name);\n  }\n}\n\nexport default NetworkHelper;\nangular.module('portainer.app').service('NetworkHelper', NetworkHelper);\n","/**\n * calculates baseHref\n *\n * return [string]\n *\n */\nexport function baseHref() {\n  const base = document.getElementById('base');\n  return base ? base.getAttribute('href') || '/' : '/';\n}\n","import _ from 'lodash-es';\nimport angular from 'angular';\nimport { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';\nimport { ResourceControlOwnershipParameters } from '../models/resourceControl/resourceControlOwnershipParameters';\n\nclass ResourceControlHelper {\n  /**\n   * Transform ResourceControlViewModel to ResourceControlOwnershipParameters\n   * @param {int} userId ID of User performing the action\n   * @param {ResourceControlViewModel} resourceControl ResourceControl view model\n   */\n  RCViewModelToOwnershipParameters(userId, resourceControl) {\n    if (!resourceControl) {\n      return new ResourceControlOwnershipParameters(true);\n    }\n    let adminOnly = false;\n    let publicOnly = false;\n    let users = [];\n    let teams = [];\n    switch (resourceControl.Ownership) {\n      case RCO.PUBLIC:\n        publicOnly = true;\n        break;\n      case RCO.PRIVATE:\n        users = [userId];\n        break;\n      case RCO.RESTRICTED:\n        users = _.map(resourceControl.UserAccesses, (user) => user.UserId);\n        teams = _.map(resourceControl.TeamAccesses, (team) => team.TeamId);\n        break;\n      default:\n        adminOnly = true;\n        break;\n    }\n    return new ResourceControlOwnershipParameters(adminOnly, publicOnly, users, teams);\n  }\n\n  /**\n   * Transform AccessControlFormData to ResourceControlOwnershipParameters\n   * @param {int} userId ID of user performing the operation\n   * @param {AccessControlFormData} formValues Form data (generated by AccessControlForm)\n   * @param {int[]} subResources Sub Resources restricted by the ResourceControl\n   */\n  RCFormDataToOwnershipParameters(userId, formValues, subResources = []) {\n    if (!formValues.AccessControlEnabled) {\n      formValues.Ownership = RCO.PUBLIC;\n    }\n\n    let adminOnly = false;\n    let publicOnly = false;\n    let users = [];\n    let teams = [];\n    switch (formValues.Ownership) {\n      case RCO.PUBLIC:\n        publicOnly = true;\n        break;\n      case RCO.PRIVATE:\n        users.push(userId);\n        break;\n      case RCO.RESTRICTED:\n        users = _.map(formValues.AuthorizedUsers, (user) => user.Id);\n        teams = _.map(formValues.AuthorizedTeams, (team) => team.Id);\n        break;\n      default:\n        adminOnly = true;\n        break;\n    }\n    return new ResourceControlOwnershipParameters(adminOnly, publicOnly, users, teams, subResources);\n  }\n\n  retrieveAuthorizedUsers(resourceControl, users) {\n    const authorizedUsers = [];\n    _.forEach(resourceControl.UserAccesses, (access) => {\n      const user = _.find(users, { Id: access.UserId });\n      if (user) {\n        authorizedUsers.push(user);\n      }\n    });\n    return authorizedUsers;\n  }\n\n  retrieveAuthorizedTeams(resourceControl, teams) {\n    const authorizedTeams = [];\n    _.forEach(resourceControl.TeamAccesses, (access) => {\n      const team = _.find(teams, { Id: access.TeamId });\n      if (team) {\n        authorizedTeams.push(team);\n      }\n    });\n    return authorizedTeams;\n  }\n}\n\nexport default ResourceControlHelper;\nangular.module('portainer.app').service('ResourceControlHelper', ResourceControlHelper);\n","import _ from 'lodash';\n\nimport { StackType } from '@/react/common/stacks/types';\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\n\nimport { IResource } from '../../components/datatable/createOwnershipColumn';\n\nexport class ExternalStackViewModel implements IResource {\n  Id: string;\n\n  Name: string;\n\n  ResourceControl?: ResourceControlViewModel;\n\n  Type: StackType;\n\n  CreationDate: number;\n\n  CreatedBy?: string;\n\n  UpdateDate?: number;\n\n  UpdatedBy?: string;\n\n  External: boolean;\n\n  constructor(name: string, type: StackType, creationDate: number) {\n    this.Id = `external-stack_${_.uniqueId()}`;\n    this.Name = name;\n    this.Type = type;\n    this.CreationDate = creationDate;\n\n    this.External = true;\n  }\n}\n","import _ from 'lodash-es';\nimport YAML from 'yaml';\nimport GenericHelper from '@/portainer/helpers/genericHelper';\nimport { ExternalStackViewModel } from '@/react/docker/stacks/view-models/external-stack';\n\nangular.module('portainer.app').factory('StackHelper', [\n  function StackHelperFactory() {\n    'use strict';\n    var helper = {};\n\n    helper.getExternalStacksFromContainers = function (containers) {\n      return getExternalStacksFromLabel(containers, 'com.docker.compose.project', 2);\n    };\n\n    helper.getExternalStacksFromServices = function (services) {\n      return getExternalStacksFromLabel(services, 'com.docker.stack.namespace', 1);\n    };\n\n    function getExternalStacksFromLabel(items, label, type) {\n      return _.uniqBy(\n        items.filter((item) => item.Labels && item.Labels[label]).map((item) => new ExternalStackViewModel(item.Labels[label], type, item.Created)),\n        'Name'\n      );\n    }\n\n    helper.validateYAML = validateYAML;\n\n    return helper;\n  },\n]);\n\nfunction validateYAML(yaml, containerNames, originalContainersNames = []) {\n  let yamlObject;\n\n  try {\n    yamlObject = YAML.parse(yaml, { mapAsMap: true, maxAliasCount: 10000 });\n  } catch (err) {\n    return 'There is an error in the yaml syntax: ' + err;\n  }\n\n  const names = _.uniq(GenericHelper.findDeepAll(yamlObject, 'container_name'));\n\n  const duplicateContainers = _.intersection(_.difference(containerNames, originalContainersNames), names);\n\n  if (duplicateContainers.length === 0) {\n    return '';\n  }\n\n  return (\n    (duplicateContainers.length === 1 ? 'This container name is' : 'These container names are') +\n    ' already used by another container running in this environment: ' +\n    _.join(duplicateContainers, ', ') +\n    '.'\n  );\n}\n\nexport function extractContainerNames(yaml = '') {\n  let yamlObject;\n\n  try {\n    yamlObject = YAML.parse(yaml, { maxAliasCount: 10000 });\n  } catch (err) {\n    return [];\n  }\n\n  return _.uniq(GenericHelper.findDeepAll(yamlObject, 'container_name'));\n}\n","import _ from 'lodash';\n\nexport function idsToTagNames(tags, ids) {\n  const filteredTags = _.filter(tags, (tag) => _.includes(ids, tag.ID));\n  const tagNames = _.map(filteredTags, 'Name');\n  return tagNames;\n}\n","import _ from 'lodash-es';\n\nangular.module('portainer.app').factory('TemplateHelper', [\n  function TemplateHelperFactory() {\n    'use strict';\n    var helper = {};\n\n    helper.getDefaultContainerConfiguration = function () {\n      return {\n        Env: [],\n        OpenStdin: false,\n        Tty: false,\n        ExposedPorts: {},\n        HostConfig: {\n          RestartPolicy: {\n            Name: 'no',\n          },\n          PortBindings: {},\n          Binds: [],\n          Privileged: false,\n          ExtraHosts: [],\n        },\n        Volumes: {},\n        Labels: {},\n      };\n    };\n\n    helper.portArrayToPortConfiguration = function (ports) {\n      var portConfiguration = {\n        bindings: {},\n        exposedPorts: {},\n      };\n      ports.forEach(function (p) {\n        if (p.containerPort) {\n          var key = p.containerPort + '/' + p.protocol;\n          var binding = {};\n          if (p.hostPort) {\n            binding.HostPort = p.hostPort;\n            if (p.hostPort.indexOf(':') > -1) {\n              var hostAndPort = p.hostPort.split(':');\n              binding.HostIp = hostAndPort[0];\n              binding.HostPort = hostAndPort[1];\n            }\n          }\n          portConfiguration.bindings[key] = [binding];\n          portConfiguration.exposedPorts[key] = {};\n        }\n      });\n      return portConfiguration;\n    };\n\n    helper.updateContainerConfigurationWithLabels = function (labelsArray) {\n      var labels = {};\n      labelsArray.forEach(function (l) {\n        if (l.name) {\n          if (l.value) {\n            labels[l.name] = l.value;\n          } else {\n            labels[l.name] = '';\n          }\n        }\n      });\n      return labels;\n    };\n\n    helper.EnvToStringArray = function (templateEnvironment) {\n      var env = [];\n      templateEnvironment.forEach(function (envvar) {\n        if (envvar.value || envvar.set) {\n          var value = envvar.set ? envvar.set : envvar.value;\n          env.push(envvar.name + '=' + value);\n        }\n      });\n      return env;\n    };\n\n    helper.getConsoleConfiguration = function (interactiveFlag) {\n      var consoleConfiguration = {\n        openStdin: false,\n        tty: false,\n      };\n      if (interactiveFlag === true) {\n        consoleConfiguration.openStdin = true;\n        consoleConfiguration.tty = true;\n      }\n      return consoleConfiguration;\n    };\n\n    helper.createVolumeBindings = function (volumes, generatedVolumesPile) {\n      volumes.forEach(function (volume) {\n        if (volume.container) {\n          var binding;\n          if (volume.type === 'auto') {\n            binding = generatedVolumesPile.pop().Id + ':' + volume.container;\n          } else if (volume.type !== 'auto' && volume.bind) {\n            binding = volume.bind + ':' + volume.container;\n          }\n          if (volume.readonly) {\n            binding += ':ro';\n          }\n          volume.binding = binding;\n        }\n      });\n    };\n\n    helper.determineRequiredGeneratedVolumeCount = function (volumes) {\n      var count = 0;\n      volumes.forEach(function (volume) {\n        if (volume.type === 'auto') {\n          ++count;\n        }\n      });\n      return count;\n    };\n\n    helper.getUniqueCategories = function (templates) {\n      var categories = [];\n      for (var i = 0; i < templates.length; i++) {\n        var template = templates[i];\n        categories = categories.concat(template.Categories);\n      }\n      return _.uniq(categories);\n    };\n\n    return helper;\n  },\n]);\n","angular.module('portainer.app').factory('URLHelper', [\n  '$window',\n  function URLHelperFactory($window) {\n    'use strict';\n    var helper = {};\n\n    helper.getParameter = getParameter;\n    helper.cleanParameters = cleanParameters;\n\n    function getParameter(param) {\n      var parameters = extractParameters();\n      return parameters[param];\n    }\n\n    function extractParameters() {\n      var queryString = $window.location.search.replace(/.*?\\?/, '').split('&');\n      return queryString.reduce(function (acc, keyValStr) {\n        var keyVal = keyValStr.split('=');\n        var key = keyVal[0];\n        var val = keyVal[1];\n        acc[key] = val;\n        return acc;\n      }, {});\n    }\n\n    function cleanParameters() {\n      $window.location.replace($window.location.origin + $window.location.pathname + $window.location.hash);\n    }\n\n    return helper;\n  },\n]);\n","// create UserAccessViewModel from UserViewModel\nexport function UserAccessViewModel(data) {\n  this.Id = data.Id;\n  this.Name = data.Username;\n  this.Type = 'user';\n  this.Inherited = false;\n  this.Override = false;\n  this.Role = { Id: 0, Name: '-' };\n}\n\n// create TeamAccessViewModel from TeamViewModel\nexport function TeamAccessViewModel(data) {\n  this.Id = data.Id;\n  this.Name = data.Name;\n  this.Type = 'team';\n  this.Inherited = false;\n  this.Override = false;\n  this.Role = { Id: 0, Name: '-' };\n}\n","import { RegistryTypes } from './registryTypes';\n\nexport function DockerHubViewModel() {\n  this.Id = 0;\n  this.Type = RegistryTypes.ANONYMOUS;\n  this.Name = 'Docker Hub (anonymous)';\n  this.URL = 'docker.io';\n}\n","import { PortainerEndpointConnectionTypes } from 'Portainer/models/endpoint/models';\n\nexport class PortainerEndpointInitFormValues {\n  constructor() {\n    this.ConnectionType = PortainerEndpointConnectionTypes.KUBERNETES_LOCAL;\n    this.Name = '';\n    this.URL = '';\n    this.TLS = false;\n    this.TLSSkipVerify = false;\n    this.TLSSKipClientVerify = false;\n    this.TLSCACert = null;\n    this.TLSCert = null;\n    this.TLSKey = null;\n    this.AzureApplicationId = '';\n    this.AzureTenantId = '';\n    this.AzureAuthenticationKey = '';\n  }\n}\n","/**\n * JS reference of portainer.go#EndpointType iota\n */\nexport const PortainerEndpointTypes = Object.freeze({\n  // DockerEnvironment represents an endpoint connected to a Docker environment\n  DockerEnvironment: 1,\n  // AgentOnDockerEnvironment represents an endpoint connected to a Portainer agent deployed on a Docker environment\n  AgentOnDockerEnvironment: 2,\n  // AzureEnvironment represents an endpoint connected to an Azure environment\n  AzureEnvironment: 3,\n  // EdgeAgentOnDockerEnvironment represents an endpoint connected to an Edge agent deployed on a Docker environment\n  EdgeAgentOnDockerEnvironment: 4,\n  // KubernetesLocalEnvironment represents an endpoint connected to a local Kubernetes environment\n  KubernetesLocalEnvironment: 5,\n  // AgentOnKubernetesEnvironment represents an endpoint connected to a Portainer agent deployed on a Kubernetes environment\n  AgentOnKubernetesEnvironment: 6,\n  // EdgeAgentOnKubernetesEnvironment represents an endpoint connected to an Edge agent deployed on a Kubernetes environment\n  EdgeAgentOnKubernetesEnvironment: 7,\n});\n\n/**\n * JS reference of endpoint_create.go#EndpointCreationType iota\n */\nexport const PortainerEndpointCreationTypes = Object.freeze({\n  LocalDockerEnvironment: 1,\n  AgentEnvironment: 2,\n  AzureEnvironment: 3,\n  EdgeAgentEnvironment: 4,\n  LocalKubernetesEnvironment: 5,\n});\n\nexport const PortainerEndpointConnectionTypes = Object.freeze({\n  DOCKER_LOCAL: 1,\n  KUBERNETES_LOCAL: 2,\n  REMOTE: 3,\n  AZURE: 4,\n  AGENT: 5,\n  EDGE: 6,\n});\n","export function RegistryGitlabProject(project) {\n  this.Id = project.id;\n  this.Description = project.description;\n  this.Name = project.name;\n  this.Namespace = project.namespace ? project.namespace.name : '';\n  this.PathWithNamespace = project.path_with_namespace;\n  this.RegistryEnabled = project.container_registry_enabled;\n}\n","export function EndpointGroupDefaultModel() {\n  this.Name = '';\n  this.Description = '';\n  this.TagIds = [];\n  this.AssociatedEndpoints = [];\n}\n\nexport function EndpointGroupModel(data) {\n  this.Id = data.Id;\n  this.Name = data.Name;\n  this.Description = data.Description;\n  this.TagIds = data.TagIds;\n  this.AuthorizedUsers = data.AuthorizedUsers;\n  this.AuthorizedTeams = data.AuthorizedTeams;\n  this.UserAccessPolicies = data.UserAccessPolicies;\n  this.TeamAccessPolicies = data.TeamAccessPolicies;\n}\n\nexport function EndpointGroupCreateRequest(model, endpoints) {\n  this.Name = model.Name;\n  this.Description = model.Description;\n  this.TagIds = model.TagIds;\n  this.AssociatedEndpoints = endpoints;\n}\n\nexport function EndpointGroupUpdateRequest(model, endpoints) {\n  this.id = model.Id;\n  this.Name = model.Name;\n  this.Description = model.Description;\n  this.TagIds = model.TagIds;\n  this.AssociatedEndpoints = endpoints;\n  this.UserAccessPolicies = model.UserAccessPolicies;\n  this.TeamAccessPolicies = model.TeamAccessPolicies;\n}\n","import _ from 'lodash-es';\nimport { RegistryTypes } from './registryTypes';\n\nexport function RegistryViewModel(data) {\n  this.Id = data.Id;\n  this.Type = data.Type;\n  this.Name = data.Name;\n  this.URL = data.URL;\n  this.BaseURL = data.BaseURL;\n  this.Authentication = data.Authentication;\n  this.Username = data.Username;\n  this.Password = data.Password;\n  this.RegistryAccesses = data.RegistryAccesses; // map[EndpointID]{UserAccessPolicies, TeamAccessPolicies, NamespaceAccessPolicies}\n  this.Checked = false;\n  this.Gitlab = data.Gitlab;\n  this.Quay = data.Quay;\n  this.Ecr = data.Ecr;\n}\n\nexport function RegistryManagementConfigurationDefaultModel(registry) {\n  this.Authentication = registry.Authentication;\n  this.Username = registry.Username;\n  this.Password = '';\n  this.TLS = false;\n  this.TLSSkipVerify = false;\n  this.TLSCACertFile = null;\n  this.TLSCertFile = null;\n  this.TLSKeyFile = null;\n\n  if (registry.Type === RegistryTypes.ECR) {\n    this.Region = registry.Ecr.Region;\n    this.TLSSkipVerify = true;\n  }\n\n  if (registry.Type === RegistryTypes.QUAY || registry.Type === RegistryTypes.ECR) {\n    this.Authentication = true;\n    this.Username = registry.Username;\n    this.TLS = true;\n  }\n\n  if ((registry.Type === RegistryTypes.CUSTOM || registry.Type === RegistryTypes.PROGET || registry.Type === RegistryTypes.AZURE) && registry.Authentication) {\n    this.Authentication = true;\n    this.Username = registry.Username;\n  }\n}\n\nexport function RegistryCreateFormValues() {\n  this.Type = RegistryTypes.CUSTOM;\n  this.URL = '';\n  this.Name = '';\n  this.Authentication = false;\n  this.Username = '';\n  this.Password = '';\n}\n\nexport function RegistryCreateRequest(model) {\n  this.Name = model.Name;\n  this.Type = model.Type;\n  this.URL = _.replace(model.URL, /^https?\\:\\/\\//i, '');\n  this.URL = _.replace(this.URL, /\\/$/, '');\n  this.Authentication = model.Authentication;\n  if (model.Authentication) {\n    this.Username = model.Username;\n    this.Password = model.Password;\n  }\n  if (model.Type === RegistryTypes.GITLAB) {\n    this.Gitlab = {\n      ProjectId: model.Gitlab.ProjectId,\n      InstanceURL: model.Gitlab.InstanceURL,\n      ProjectPath: model.Gitlab.ProjectPath,\n    };\n  }\n  if (model.Type === RegistryTypes.ECR) {\n    this.Ecr = model.Ecr;\n  }\n  if (model.Type === RegistryTypes.QUAY) {\n    this.Quay = {\n      useOrganisation: model.Quay.useOrganisation,\n      organisationName: model.Quay.organisationName,\n    };\n  }\n  if (model.Type === RegistryTypes.PROGET) {\n    this.BaseURL = _.replace(model.BaseURL, /^https?\\:\\/\\//i, '');\n    this.BaseURL = _.replace(this.BaseURL, /\\/$/, '');\n  }\n}\n","import _ from 'lodash-es';\n\nexport function RegistryRepositoryViewModel(item) {\n  if (item.name && item.tags) {\n    this.Name = item.name;\n    this.TagsCount = _.without(item.tags, null).length;\n  } else {\n    this.Name = item;\n    this.TagsCount = 0;\n  }\n}\n\nexport function RegistryRepositoryGitlabViewModel(data) {\n  this.Name = data.path;\n  this.TagsCount = data.tags.length;\n}\n","export const RegistryTypes = Object.freeze({\n  ANONYMOUS: 0, // not backend replicated, only for frontend\n  QUAY: 1,\n  AZURE: 2,\n  CUSTOM: 3,\n  GITLAB: 4,\n  PROGET: 5,\n  DOCKERHUB: 6,\n  ECR: 7,\n});\n","/**\n * Payload for resourceControleCreate operation\n * @param {string} resourceId ID of involved Resource\n * @param {ResourceControlResourceType} resourceType Type of involved Resource\n * @param {ResourceControlOwnershipParameters} data Transcient type from view data to payload\n */\nexport function ResourceControlCreatePayload(resourceId, resourceType, data) {\n  void data;\n\n  this.ResourceID = resourceId;\n  this.Type = resourceType;\n  this.Public = data.Public;\n  this.AdministratorsOnly = data.AdministratorsOnly;\n  this.Users = data.Users;\n  this.Teams = data.Teams;\n  this.SubResourceIDs = data.SubResourceIDs;\n}\n","/**\n * Transcient type from view data to payload\n * @param {bool} adminOnly is ResourceControl restricted to admin only\n * @param {bool} publicOnly is ResourceControl exposed to public\n * @param {[]int} users Authorized UserIDs array\n * @param {[]int} teams Authorized TeamIDs array\n * @param {[]int} subResources subResourceIDs array\n */\nexport function ResourceControlOwnershipParameters(adminOnly = false, publicOnly = false, users = [], teams = [], subResources = []) {\n  this.AdministratorsOnly = adminOnly;\n  this.Public = publicOnly;\n  this.Users = users;\n  this.Teams = teams;\n  this.SubResourceIDs = subResources;\n}\n","export function ScheduleCreateRequest(model) {\n  this.Name = model.Name;\n  this.Recurring = model.Recurring;\n  this.CronExpression = model.CronExpression;\n  this.Endpoints = model.Endpoints;\n  this.FileContent = model.FileContent;\n  this.File = model.File;\n  this.EdgeGroups = model.EdgeGroups;\n}\n\nexport function ScheduleUpdateRequest(model) {\n  this.id = model.Id;\n  this.Name = model.Name;\n  this.Recurring = model.Recurring;\n  this.CronExpression = model.CronExpression;\n  this.Endpoints = model.Endpoints;\n  this.FileContent = model.FileContent;\n  this.EdgeGroups = model.EdgeGroups;\n}\n","export function SettingsViewModel(data) {\n  this.LogoURL = data.LogoURL;\n  this.BlackListedLabels = data.BlackListedLabels;\n  this.AuthenticationMethod = data.AuthenticationMethod;\n  this.InternalAuthSettings = data.InternalAuthSettings;\n  this.LDAPSettings = data.LDAPSettings;\n  this.OAuthSettings = new OAuthSettingsViewModel(data.OAuthSettings);\n  this.openAMTConfiguration = data.openAMTConfiguration;\n  this.fdoConfiguration = data.fdoConfiguration;\n  this.SnapshotInterval = data.SnapshotInterval;\n  this.TemplatesURL = data.TemplatesURL;\n  this.EdgeAgentCheckinInterval = data.EdgeAgentCheckinInterval;\n  this.EnableEdgeComputeFeatures = data.EnableEdgeComputeFeatures;\n  this.FeatureFlagSettings = data.FeatureFlagSettings;\n  this.UserSessionTimeout = data.UserSessionTimeout;\n  this.EnableTelemetry = data.EnableTelemetry;\n  this.KubeconfigExpiry = data.KubeconfigExpiry;\n  this.HelmRepositoryURL = data.HelmRepositoryURL;\n  this.TrustOnFirstConnect = data.TrustOnFirstConnect;\n  this.EnforceEdgeID = data.EnforceEdgeID;\n  this.AgentSecret = data.AgentSecret;\n  this.EdgePortainerUrl = data.EdgePortainerUrl;\n}\n\nexport function PublicSettingsViewModel(settings) {\n  this.AuthenticationMethod = settings.AuthenticationMethod;\n  this.TeamSync = settings.TeamSync;\n  this.RequiredPasswordLength = settings.RequiredPasswordLength;\n  this.EnableEdgeComputeFeatures = settings.EnableEdgeComputeFeatures;\n  this.EnforceEdgeID = settings.EnforceEdgeID;\n  this.LogoURL = settings.LogoURL;\n  this.OAuthLoginURI = settings.OAuthLoginURI;\n  this.EnableTelemetry = settings.EnableTelemetry;\n  this.OAuthLogoutURI = settings.OAuthLogoutURI;\n  this.KubeconfigExpiry = settings.KubeconfigExpiry;\n  this.Features = settings.Features;\n  this.Edge = new EdgeSettingsViewModel(settings.Edge);\n  this.DefaultRegistry = settings.DefaultRegistry;\n  this.IsAMTEnabled = settings.IsAMTEnabled;\n  this.IsFDOEnabled = settings.IsFDOEnabled;\n}\n\nexport function InternalAuthSettingsViewModel(data) {\n  this.RequiredPasswordLength = data.RequiredPasswordLength;\n}\n\nexport function LDAPSettingsViewModel(data) {\n  this.ReaderDN = data.ReaderDN;\n  this.Password = data.Password;\n  this.URL = data.URL;\n  this.SearchSettings = data.SearchSettings;\n  this.GroupSearchSettings = data.GroupSearchSettings;\n  this.AutoCreateUsers = data.AutoCreateUsers;\n}\n\nexport function LDAPSearchSettings(BaseDN, UsernameAttribute, Filter) {\n  this.BaseDN = BaseDN;\n  this.UsernameAttribute = UsernameAttribute;\n  this.Filter = Filter;\n}\n\nexport function LDAPGroupSearchSettings(GroupBaseDN, GroupAttribute, GroupFilter) {\n  this.GroupBaseDN = GroupBaseDN;\n  this.GroupAttribute = GroupAttribute;\n  this.GroupFilter = GroupFilter;\n}\n\nexport function OAuthSettingsViewModel(data) {\n  this.ClientID = data.ClientID;\n  this.ClientSecret = data.ClientSecret;\n  this.AccessTokenURI = data.AccessTokenURI;\n  this.AuthorizationURI = data.AuthorizationURI;\n  this.ResourceURI = data.ResourceURI;\n  this.RedirectURI = data.RedirectURI;\n  this.UserIdentifier = data.UserIdentifier;\n  this.Scopes = data.Scopes;\n  this.OAuthAutoCreateUsers = data.OAuthAutoCreateUsers;\n  this.DefaultTeamID = data.DefaultTeamID;\n  this.SSO = data.SSO;\n  this.LogoutURI = data.LogoutURI;\n  this.AuthStyle = data.AuthStyle;\n}\n\nexport function EdgeSettingsViewModel(data = {}) {\n  this.CheckinInterval = data.CheckinInterval;\n  this.PingInterval = data.PingInterval;\n  this.SnapshotInterval = data.SnapshotInterval;\n  this.CommandInterval = data.CommandInterval;\n}\n","export function StatusViewModel(data) {\n  this.Authentication = data.Authentication;\n  this.Snapshot = data.Snapshot;\n  this.Version = data.Version;\n  this.Edition = data.Edition;\n  this.InstanceID = data.InstanceID;\n  this.DemoEnvironment = data.DemoEnvironment;\n}\n\nexport function StatusVersionViewModel(data) {\n  this.UpdateAvailable = data.UpdateAvailable;\n  this.LatestVersion = data.LatestVersion;\n}\n","import _ from 'lodash-es';\n\nexport function TagViewModel(data) {\n  this.Id = data.ID;\n  this.Name = _.escape(data.Name);\n}\n","import _ from 'lodash-es';\n\nexport function TeamViewModel(data) {\n  this.Id = data.Id;\n  this.Name = _.escape(data.Name);\n  this.Checked = false;\n}\n","export function TeamMembershipModel(data) {\n  this.Id = data.Id;\n  this.UserId = data.UserID;\n  this.TeamId = data.TeamID;\n  this.Role = data.Role;\n}\n","export function UserViewModel(data) {\n  this.Id = data.Id;\n  this.Username = data.Username;\n  this.Role = data.Role;\n  this.ThemeSettings = data.ThemeSettings;\n  this.EndpointAuthorizations = data.EndpointAuthorizations;\n  this.PortainerAuthorizations = data.PortainerAuthorizations;\n  if (data.Role === 1) {\n    this.RoleName = 'administrator';\n  } else {\n    this.RoleName = 'user';\n  }\n  this.AuthenticationMethod = data.AuthenticationMethod;\n  this.Checked = false;\n  this.UseCache = data.UseCache;\n}\n\nexport function UserTokenModel(data) {\n  this.id = data.id;\n  this.userId = data.userId;\n  this.description = data.description;\n  this.prefix = data.prefix;\n  this.dateCreated = data.dateCreated;\n  this.lastUsed = data.lastUsed;\n}\n","export function WebhookViewModel(data) {\n  this.Id = data.Id;\n  this.Token = data.Token;\n  this.ResourceId = data.ResourceID;\n  this.EndpointId = data.EndpointID;\n  this.WebhookType = data.WebhookType;\n}\n","angular.module('portainer.oauth', ['ngResource']).constant('API_ENDPOINT_OAUTH', 'api/auth/oauth');\n","const autoNgTemplateLoaderTemplate1 = require('./oauth-providers-selector.html');\n\nimport angular from 'angular';\nimport controller from './oauth-provider-selector.controller';\n\nangular.module('portainer.oauth').component('oauthProvidersSelector', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    onChange: '<',\n    value: '<',\n  },\n  controller,\n});\n","import { Edit } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport Microsoft from '@/assets/ico/vendor/microsoft.svg?c';\nimport Google from '@/assets/ico/vendor/google.svg?c';\nimport Github from '@/assets/ico/vendor/github.svg?c';\n\nexport const options = [\n  {\n    id: 'microsoft',\n    icon: Microsoft,\n    label: 'Microsoft',\n    description: 'Microsoft OAuth provider',\n    value: 'microsoft',\n    iconType: 'logo',\n    feature: FeatureId.HIDE_INTERNAL_AUTH,\n  },\n  {\n    id: 'google',\n    icon: Google,\n    label: 'Google',\n    description: 'Google OAuth provider',\n    value: 'google',\n    iconType: 'logo',\n    feature: FeatureId.HIDE_INTERNAL_AUTH,\n  },\n  {\n    id: 'github',\n    icon: Github,\n    label: 'Github',\n    description: 'Github OAuth provider',\n    value: 'github',\n    iconType: 'logo',\n    feature: FeatureId.HIDE_INTERNAL_AUTH,\n  },\n  {\n    id: 'custom',\n    icon: Edit,\n    iconType: 'badge',\n    label: 'Custom',\n    description: 'Custom OAuth provider',\n    value: 'custom',\n  },\n];\n","import { options } from '@/react/portainer/settings/AuthenticationView/oauth-options';\n\nexport default class OAuthProviderSelectorController {\n  constructor() {\n    this.options = options;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./oauth-settings.html');\n\nimport angular from 'angular';\nimport controller from './oauth-settings.controller';\n\nangular.module('portainer.oauth').component('oauthSettings', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    settings: '=',\n    teams: '<',\n    onSaveSettings: '<',\n    saveButtonState: '<',\n  },\n  controller,\n});\n","import { baseHref } from '@/portainer/helpers/pathHelper';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { ModalType } from '@@/modals';\nimport { confirm } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport providers, { getProviderByUrl } from './providers';\n\nconst MS_TENANT_ID_PLACEHOLDER = 'TENANT_ID';\n\nexport default class OAuthSettingsController {\n  /* @ngInject */\n  constructor($scope, $async) {\n    Object.assign(this, { $scope, $async });\n\n    this.limitedFeature = FeatureId.HIDE_INTERNAL_AUTH;\n    this.limitedFeatureClass = 'limited-be';\n\n    this.state = {\n      provider: 'custom',\n      overrideConfiguration: false,\n      microsoftTenantID: '',\n    };\n\n    this.$onInit = this.$onInit.bind(this);\n    this.onSelectProvider = this.onSelectProvider.bind(this);\n    this.onMicrosoftTenantIDChange = this.onMicrosoftTenantIDChange.bind(this);\n    this.useDefaultProviderConfiguration = this.useDefaultProviderConfiguration.bind(this);\n    this.updateSSO = this.updateSSO.bind(this);\n    this.addTeamMembershipMapping = this.addTeamMembershipMapping.bind(this);\n    this.removeTeamMembership = this.removeTeamMembership.bind(this);\n    this.onToggleAutoTeamMembership = this.onToggleAutoTeamMembership.bind(this);\n    this.onChangeAuthStyle = this.onChangeAuthStyle.bind(this);\n  }\n\n  onMicrosoftTenantIDChange() {\n    const tenantID = this.state.microsoftTenantID || MS_TENANT_ID_PLACEHOLDER;\n\n    this.settings.AuthorizationURI = `https://login.microsoftonline.com/${tenantID}/oauth2/v2.0/authorize`;\n    this.settings.AccessTokenURI = `https://login.microsoftonline.com/${tenantID}/oauth2/v2.0/token`;\n    this.settings.ResourceURI = `https://graph.microsoft.com/v1.0/me`;\n    this.settings.LogoutURI = `https://login.microsoftonline.com/${tenantID}/oauth2/v2.0/logout`;\n  }\n\n  useDefaultProviderConfiguration(providerId) {\n    const provider = providers[providerId];\n\n    this.state.overrideConfiguration = false;\n\n    if (!this.isLimitedToBE || providerId === 'custom') {\n      this.settings.AuthorizationURI = provider.authUrl;\n      this.settings.AccessTokenURI = provider.accessTokenUrl;\n      this.settings.ResourceURI = provider.resourceUrl;\n      this.settings.LogoutURI = provider.logoutUrl;\n      this.settings.UserIdentifier = provider.userIdentifier;\n      this.settings.Scopes = provider.scopes;\n      this.settings.AuthStyle = provider.authStyle;\n\n      if (providerId === 'microsoft' && this.state.microsoftTenantID !== '') {\n        this.onMicrosoftTenantIDChange();\n      }\n    } else {\n      this.settings.ClientID = '';\n      this.settings.ClientSecret = '';\n    }\n  }\n\n  onSelectProvider(provider) {\n    this.state.provider = provider;\n\n    this.useDefaultProviderConfiguration(provider);\n  }\n\n  updateSSO(checked) {\n    this.$scope.$evalAsync(() => {\n      this.settings.SSO = checked;\n      this.settings.HideInternalAuth = false;\n    });\n  }\n\n  onChangeAuthStyle(val) {\n    this.$scope.$evalAsync(() => {\n      this.settings.AuthStyle = val;\n    });\n  }\n\n  async onChangeHideInternalAuth(checked) {\n    this.$async(async () => {\n      if (this.isLimitedToBE) {\n        return;\n      }\n\n      if (checked) {\n        const confirmed = await confirm({\n          title: 'Hide internal authentication prompt',\n          message: 'By hiding internal authentication prompt, you will only be able to login via SSO. Are you sure?',\n          confirmButton: buildConfirmButton('Confirm', 'danger'),\n          modalType: ModalType.Warn,\n        });\n\n        if (!confirmed) {\n          return;\n        }\n      }\n\n      this.settings.HideInternalAuth = checked;\n    });\n  }\n\n  onToggleAutoTeamMembership(checked) {\n    this.$scope.$evalAsync(() => {\n      this.settings.OAuthAutoMapTeamMemberships = checked;\n    });\n  }\n\n  addTeamMembershipMapping() {\n    this.settings.TeamMemberships.OAuthClaimMappings.push({ ClaimValRegex: '', Team: this.settings.DefaultTeamID });\n  }\n\n  removeTeamMembership(index) {\n    this.settings.TeamMemberships.OAuthClaimMappings.splice(index, 1);\n  }\n\n  isOAuthTeamMembershipFormValid() {\n    if (this.settings.OAuthAutoMapTeamMemberships && this.settings.TeamMemberships) {\n      if (!this.settings.TeamMemberships.OAuthClaimName) {\n        return false;\n      }\n\n      const hasInvalidMapping = this.settings.TeamMemberships.OAuthClaimMappings.some((m) => !(m.ClaimValRegex && m.Team));\n      if (hasInvalidMapping) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  $onInit() {\n    this.isLimitedToBE = isLimitedToBE(this.limitedFeature);\n\n    if (this.isLimitedToBE) {\n      return;\n    }\n\n    if (this.settings.RedirectURI === '') {\n      this.settings.RedirectURI = window.location.origin + baseHref();\n    }\n\n    if (this.settings.AuthorizationURI) {\n      const authUrl = this.settings.AuthorizationURI;\n\n      this.state.provider = getProviderByUrl(authUrl);\n      if (this.state.provider === 'microsoft') {\n        const tenantID = authUrl.match(/login.microsoftonline.com\\/(.*?)\\//)[1];\n        if (tenantID !== MS_TENANT_ID_PLACEHOLDER) {\n          this.state.microsoftTenantID = tenantID;\n          this.onMicrosoftTenantIDChange();\n        }\n      }\n    }\n\n    if (this.settings.DefaultTeamID === 0) {\n      this.settings.DefaultTeamID = null;\n    }\n\n    if (this.settings.TeamMemberships == null) {\n      this.settings.TeamMemberships = {};\n    }\n\n    if (this.settings.TeamMemberships.OAuthClaimMappings === null) {\n      this.settings.TeamMemberships.OAuthClaimMappings = [];\n    }\n  }\n}\n","import { baseHref } from '@/portainer/helpers/pathHelper';\nimport { OAuthStyle } from '@/react/portainer/settings/types';\n\nexport default {\n  microsoft: {\n    authUrl: 'https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/authorize',\n    accessTokenUrl: 'https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token',\n    resourceUrl: 'https://graph.microsoft.com/v1.0/me',\n    logoutUrl: `https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/logout`,\n    userIdentifier: 'userPrincipalName',\n    scopes: 'profile openid',\n    authStyle: OAuthStyle.InParams,\n  },\n  google: {\n    authUrl: 'https://accounts.google.com/o/oauth2/auth',\n    accessTokenUrl: 'https://accounts.google.com/o/oauth2/token',\n    resourceUrl: 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json',\n    logoutUrl: `https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=${window.location.origin}${baseHref()}#!/auth`,\n    userIdentifier: 'email',\n    scopes: 'profile email',\n    authStyle: OAuthStyle.InParams,\n  },\n  github: {\n    authUrl: 'https://github.com/login/oauth/authorize',\n    accessTokenUrl: 'https://github.com/login/oauth/access_token',\n    resourceUrl: 'https://api.github.com/user',\n    logoutUrl: `https://github.com/logout`,\n    userIdentifier: 'login',\n    scopes: 'id email name',\n    authStyle: OAuthStyle.AutoDetect,\n  },\n  custom: { authUrl: '', accessTokenUrl: '', resourceUrl: '', logoutUrl: '', userIdentifier: '', scopes: '', authStyle: OAuthStyle.AutoDetect },\n};\n\nexport function getProviderByUrl(providerAuthURL = '') {\n  if (providerAuthURL.includes('login.microsoftonline.com')) {\n    return 'microsoft';\n  }\n\n  if (providerAuthURL.includes('accounts.google.com')) {\n    return 'google';\n  }\n\n  if (providerAuthURL.includes('github.com')) {\n    return 'github';\n  }\n\n  return 'custom';\n}\n","angular.module('portainer.oauth').factory('OAuth', [\n  '$resource',\n  'API_ENDPOINT_OAUTH',\n  function OAuthFactory($resource, API_ENDPOINT_OAUTH) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_OAUTH + '/:action',\n      {},\n      {\n        validate: {\n          method: 'POST',\n          ignoreLoadingBar: true,\n          params: {\n            action: 'validate',\n          },\n        },\n      }\n    );\n  },\n]);\n","const autoNgTemplateLoaderTemplate1 = require('./access-viewer-datatable.html');\n\nimport './access-viewer-datatable.css';\n\nexport const accessViewerDatatable = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    tableKey: '@',\n    orderBy: '@',\n    dataset: '<',\n    isAdmin: '<',\n  },\n};\n","import _ from 'lodash-es';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport AccessViewerPolicyModel from '../../models/access';\n\nexport default class AccessViewerController {\n  /* @ngInject */\n  constructor($scope, Notifications, RoleService, UserService, GroupService, TeamService, TeamMembershipService, Authentication) {\n    this.$scope = $scope;\n    this.Notifications = Notifications;\n    this.RoleService = RoleService;\n    this.UserService = UserService;\n    this.GroupService = GroupService;\n    this.TeamService = TeamService;\n    this.TeamMembershipService = TeamMembershipService;\n    this.Authentication = Authentication;\n\n    this.limitedFeature = 'rbac-roles';\n    this.users = [];\n    this.selectedUserId = null;\n\n    this.onUserSelect = this.onUserSelect.bind(this);\n  }\n\n  onUserSelect(selectedUserId) {\n    this.$scope.$evalAsync(() => {\n      this.userRoles = [];\n      this.selectedUserId = selectedUserId;\n\n      const userRoles = {};\n      const user = this.allUsers.find((user) => user.Id === selectedUserId);\n      if (!user) {\n        throw new Error('User not found');\n      }\n\n      const userMemberships = _.filter(this.teamMemberships, { UserId: user.Id });\n\n      for (const [, endpoint] of _.entries(this.endpoints)) {\n        let role = this.getRoleFromUserEndpointPolicy(user, endpoint);\n        if (role) {\n          userRoles[endpoint.Id] = role;\n          continue;\n        }\n\n        role = this.getRoleFromUserEndpointGroupPolicy(user, endpoint);\n        if (role) {\n          userRoles[endpoint.Id] = role;\n          continue;\n        }\n\n        role = this.getRoleFromTeamEndpointPolicies(userMemberships, endpoint);\n        if (role) {\n          userRoles[endpoint.Id] = role;\n          continue;\n        }\n\n        role = this.getRoleFromTeamEndpointGroupPolicies(userMemberships, endpoint);\n        if (role) {\n          userRoles[endpoint.Id] = role;\n        }\n      }\n\n      this.userRoles = _.values(userRoles);\n    });\n  }\n\n  findLowestRole(policies) {\n    return _.first(_.orderBy(policies, 'RolePriority', 'desc'));\n  }\n\n  getRoleFromUserEndpointPolicy(user, endpoint) {\n    const policyRoles = [];\n    const policy = (endpoint.UserAccessPolicies || {})[user.Id];\n    if (policy) {\n      const accessPolicy = new AccessViewerPolicyModel(policy, endpoint, this.roles, null, null);\n      policyRoles.push(accessPolicy);\n    }\n    return this.findLowestRole(policyRoles);\n  }\n\n  getRoleFromUserEndpointGroupPolicy(user, endpoint) {\n    const policyRoles = [];\n    const policy = this.groupUserAccessPolicies[endpoint.GroupId][user.Id];\n    if (policy) {\n      const accessPolicy = new AccessViewerPolicyModel(policy, endpoint, this.roles, this.groups[endpoint.GroupId], null);\n      policyRoles.push(accessPolicy);\n    }\n    return this.findLowestRole(policyRoles);\n  }\n\n  getRoleFromTeamEndpointPolicies(memberships, endpoint) {\n    const policyRoles = [];\n    for (const membership of memberships) {\n      const policy = (endpoint.TeamAccessPolicies || {})[membership.TeamId];\n      if (policy) {\n        const accessPolicy = new AccessViewerPolicyModel(policy, endpoint, this.roles, null, this.teams[membership.TeamId]);\n        policyRoles.push(accessPolicy);\n      }\n    }\n    return this.findLowestRole(policyRoles);\n  }\n\n  getRoleFromTeamEndpointGroupPolicies(memberships, endpoint) {\n    const policyRoles = [];\n    for (const membership of memberships) {\n      const policy = this.groupTeamAccessPolicies[endpoint.GroupId][membership.TeamId];\n      if (policy) {\n        const accessPolicy = new AccessViewerPolicyModel(policy, endpoint, this.roles, this.groups[endpoint.GroupId], this.teams[membership.TeamId]);\n        policyRoles.push(accessPolicy);\n      }\n    }\n    return this.findLowestRole(policyRoles);\n  }\n\n  // for admin, returns all users\n  // for team leader, only return all his/her team member users\n  async teamMemberUsers(users, teamMemberships) {\n    if (this.isAdmin) {\n      return users;\n    }\n\n    const filteredUsers = [];\n    const userId = this.Authentication.getUserDetails().ID;\n    const leadingTeams = await this.UserService.userLeadingTeams(userId);\n\n    const isMember = (userId, teamId) => {\n      return !!_.find(teamMemberships, { UserId: userId, TeamId: teamId });\n    };\n\n    for (const user of users) {\n      for (const leadingTeam of leadingTeams) {\n        if (isMember(user.Id, leadingTeam.Id)) {\n          filteredUsers.push(user);\n          break;\n        }\n      }\n    }\n\n    return filteredUsers;\n  }\n\n  async $onInit() {\n    try {\n      const limitedToBE = isLimitedToBE(this.limitedFeature);\n\n      if (limitedToBE) {\n        return;\n      }\n\n      this.isAdmin = this.Authentication.isAdmin();\n      this.allUsers = await this.UserService.users();\n      this.endpoints = _.keyBy((await getEnvironments()).value, 'Id');\n      const groups = await this.GroupService.groups();\n      this.groupUserAccessPolicies = {};\n      this.groupTeamAccessPolicies = {};\n      _.forEach(groups, (group) => {\n        this.groupUserAccessPolicies[group.Id] = group.UserAccessPolicies;\n        this.groupTeamAccessPolicies[group.Id] = group.TeamAccessPolicies;\n      });\n      this.groups = _.keyBy(groups, 'Id');\n      this.roles = _.keyBy(await this.RoleService.roles(), 'Id');\n      this.teams = _.keyBy(await this.TeamService.teams(), 'Id');\n      this.teamMemberships = await this.TeamMembershipService.memberships();\n      const teamUsers = await this.teamMemberUsers(this.allUsers, this.teamMemberships);\n      this.users = teamUsers.map((user) => ({ label: user.Username, value: user.Id }));\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve accesses');\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./access-viewer.html');\n\nimport controller from './access-viewer.controller';\n\nexport const accessViewer = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n};\n","const autoNgTemplateLoaderTemplate1 = require('./roles-datatable.html');\n\nimport controller from './roles-datatable.controller';\nimport './roles-datatable.css';\n\nexport const rolesDatatable = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    titleText: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n  },\n};\n","import angular from 'angular';\nimport { RoleTypes } from '../../models/role';\n\nexport default class RolesDatatableController {\n  /* @ngInject */\n  constructor($controller, $scope) {\n    this.limitedFeature = 'rbac-roles';\n\n    angular.extend(this, $controller('GenericDatatableController', { $scope }));\n  }\n\n  isDefaultItem(item) {\n    return item.ID === RoleTypes.STANDARD;\n  }\n}\n","import { AccessHeaders } from '../authorization-guard';\nimport { rolesView } from './views/roles';\nimport { accessViewer } from './components/access-viewer';\nimport { accessViewerDatatable } from './components/access-viewer/access-viewer-datatable';\nimport { rolesDatatable } from './components/roles-datatable';\n\nimport { RoleService } from './services/role.service';\nimport { RolesFactory } from './services/role.rest';\n\nangular\n  .module('portainer.rbac', ['ngResource'])\n  .constant('API_ENDPOINT_ROLES', 'api/roles')\n  .component('accessViewer', accessViewer)\n  .component('accessViewerDatatable', accessViewerDatatable)\n  .component('rolesDatatable', rolesDatatable)\n  .component('rolesView', rolesView)\n  .factory('RoleService', RoleService)\n  .factory('Roles', RolesFactory)\n  .config(config);\n\n/* @ngInject */\nfunction config($stateRegistryProvider) {\n  const roles = {\n    name: 'portainer.roles',\n    url: '/roles',\n    views: {\n      'content@': {\n        component: 'rolesView',\n      },\n    },\n    data: {\n      docs: '/admin/user/roles',\n      access: AccessHeaders.Admin,\n    },\n  };\n\n  $stateRegistryProvider.register(roles);\n}\n","export default function AccessViewerPolicyModel(policy, endpoint, roles, group, team) {\n  this.EndpointId = endpoint.Id;\n  this.EndpointName = endpoint.Name;\n  this.RoleId = policy.RoleId;\n  this.RoleName = roles[policy.RoleId].Name;\n  this.RolePriority = roles[policy.RoleId].Priority;\n  if (group) {\n    this.GroupId = group.Id;\n    this.GroupName = group.Name;\n  }\n  if (team) {\n    this.TeamId = team.Id;\n    this.TeamName = team.Name;\n  }\n  this.AccessLocation = group ? 'environment group' : 'environment';\n}\n","export function RoleViewModel(id, name, description, authorizations) {\n  this.ID = id;\n  this.Name = name;\n  this.Description = description;\n  this.Authorizations = authorizations;\n}\n\nexport const RoleTypes = Object.freeze({\n  ENDPOINT_ADMIN: 1,\n  HELPDESK: 2,\n  STANDARD: 3,\n  READ_ONLY: 4,\n  OPERATOR: 5,\n});\n","/* @ngInject */\nexport function RolesFactory($resource, API_ENDPOINT_ROLES) {\n  return $resource(\n    API_ENDPOINT_ROLES + '/:id',\n    {},\n    {\n      create: { method: 'POST', ignoreLoadingBar: true },\n      query: { method: 'GET', isArray: true },\n      get: { method: 'GET', params: { id: '@id' } },\n      update: { method: 'PUT', params: { id: '@id' } },\n      remove: { method: 'DELETE', params: { id: '@id' } },\n    }\n  );\n}\n","import { RoleViewModel, RoleTypes } from '../models/role';\n\nexport function RoleService() {\n  const rolesData = [\n    new RoleViewModel(RoleTypes.ENDPOINT_ADMIN, 'Environment administrator', 'Full control of all resources in an environment', []),\n    new RoleViewModel(RoleTypes.OPERATOR, 'Operator', 'Operational Control of all existing resources in an environment', []),\n    new RoleViewModel(RoleTypes.HELPDESK, 'Helpdesk', 'Read-only access of all resources in an environment', []),\n    new RoleViewModel(RoleTypes.READ_ONLY, 'Read-only user', 'Read-only access of assigned resources in an environment', []),\n    new RoleViewModel(RoleTypes.STANDARD, 'Standard user', 'Full control of assigned resources in an environment', []),\n  ];\n\n  return {\n    roles,\n  };\n\n  function roles() {\n    return rolesData;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./roles.html');\n\nimport controller from './roles.controller';\n\nexport const rolesView = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n};\n","import _ from 'lodash-es';\n\nexport default class RolesController {\n  /* @ngInject */\n  constructor(Notifications, RoleService) {\n    this.Notifications = Notifications;\n    this.RoleService = RoleService;\n  }\n\n  async $onInit() {\n    this.roles = [];\n\n    try {\n      this.roles = await this.RoleService.roles();\n      this.roles = _.orderBy(this.roles, 'Priority', 'asc');\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve roles');\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./views/list/registries.html');\n\nimport { AccessHeaders } from '../authorization-guard';\n\nangular.module('portainer.registrymanagement', []).config(config);\n\n/* @ngInject */\nfunction config($stateRegistryProvider) {\n  const registries = {\n    name: 'portainer.registries',\n    url: '/registries',\n    views: {\n      'content@': {\n        templateUrl: autoNgTemplateLoaderTemplate1,\n        controller: 'RegistriesController',\n      },\n    },\n    data: {\n      docs: '/admin/registries',\n      access: AccessHeaders.Admin,\n    },\n  };\n\n  const registryCreation = {\n    name: 'portainer.registries.new',\n    url: '/new',\n    views: {\n      'content@': {\n        component: 'createRegistry',\n      },\n    },\n    data: {\n      docs: '/admin/registries/add',\n    },\n  };\n\n  const registry = {\n    name: 'portainer.registries.registry',\n    url: '/:id',\n    views: {\n      'content@': {\n        component: 'editRegistry',\n      },\n    },\n    data: {\n      docs: '/admin/registries/edit',\n    },\n  };\n\n  $stateRegistryProvider.register(registries);\n  $stateRegistryProvider.register(registry);\n  $stateRegistryProvider.register(registryCreation);\n}\n","const autoNgTemplateLoaderTemplate1 = require('./createRegistry.html');\n\nimport angular from 'angular';\nimport CreateRegistryController from './createRegistryController';\n\nangular.module('portainer.app').component('createRegistry', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: CreateRegistryController,\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import { Edit } from 'lucide-react';\n\nimport Docker from '@/assets/ico/vendor/docker.svg?c';\nimport Ecr from '@/assets/ico/vendor/ecr.svg?c';\nimport Quay from '@/assets/ico/vendor/quay.svg?c';\nimport Proget from '@/assets/ico/vendor/proget.svg?c';\nimport Azure from '@/assets/ico/vendor/azure.svg?c';\nimport Gitlab from '@/assets/ico/vendor/gitlab.svg?c';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nexport const options = [\n  {\n    id: 'registry_dockerhub',\n    icon: Docker,\n    label: 'DockerHub',\n    description: 'DockerHub authenticated account',\n    value: '6',\n  },\n  {\n    id: 'registry_aws_ecr',\n    icon: Ecr,\n    label: 'AWS ECR',\n    description: 'Amazon elastic container registry',\n    value: '7',\n  },\n  {\n    id: 'registry_quay',\n    icon: Quay,\n    label: 'Quay.io',\n    description: 'Quay container registry',\n    value: '1',\n  },\n  {\n    id: 'registry_proget',\n    icon: Proget,\n    label: 'ProGet',\n    description: 'ProGet container registry',\n    value: '5',\n  },\n  {\n    id: 'registry_azure',\n    icon: Azure,\n    label: 'Azure',\n    description: 'Azure container registry',\n    value: '2',\n  },\n  {\n    id: 'registry_gitlab',\n    icon: Gitlab,\n    label: 'GitLab',\n    description: 'GitLab container registry',\n    value: '4',\n  },\n  {\n    id: 'registry_custom',\n    icon: <BadgeIcon icon={Edit} />,\n    label: 'Custom registry',\n    description: 'Define your own registry',\n    value: '3',\n  },\n];\n","import _ from 'lodash';\nimport { RegistryTypes } from 'Portainer/models/registryTypes';\nimport { RegistryCreateFormValues } from 'Portainer/models/registry';\nimport { options } from '@/react/portainer/registries/CreateView/options';\n\nclass CreateRegistryController {\n  /* @ngInject */\n  constructor($async, $state, Notifications, RegistryService, RegistryGitlabService) {\n    Object.assign(this, { $async, $state, Notifications, RegistryService, RegistryGitlabService });\n\n    this.RegistryTypes = RegistryTypes;\n    this.state = {\n      actionInProgress: false,\n      overrideConfiguration: false,\n      gitlab: {\n        get selectedItemCount() {\n          return this.selectedItems.length || 0;\n        },\n        selectedItems: [],\n      },\n      originViewReference: 'portainer.registries',\n      originalEndpointId: null,\n    };\n\n    this.createRegistry = this.createRegistry.bind(this);\n    this.getRegistries = this.getRegistries.bind(this);\n    this.nameIsUsed = this.nameIsUsed.bind(this);\n    this.retrieveGitlabRegistries = this.retrieveGitlabRegistries.bind(this);\n    this.createGitlabRegistries = this.createGitlabRegistries.bind(this);\n\n    this.selectDockerHub = this.selectDockerHub.bind(this);\n    this.selectEcr = this.selectEcr.bind(this);\n    this.selectQuayRegistry = this.selectQuayRegistry.bind(this);\n    this.selectProGetRegistry = this.selectProGetRegistry.bind(this);\n    this.selectAzureRegistry = this.selectAzureRegistry.bind(this);\n    this.selectGitlabRegistry = this.selectGitlabRegistry.bind(this);\n    this.selectCustomRegistry = this.selectCustomRegistry.bind(this);\n\n    this.setRegistry = this.setRegistry.bind(this);\n  }\n\n  useDefaultQuayConfiguration() {\n    this.model.Quay.useOrganisation = false;\n    this.model.Quay.organisationName = '';\n  }\n\n  selectQuayRegistry() {\n    this.model.Name = 'Quay';\n    this.model.URL = 'quay.io';\n    this.model.Authentication = true;\n    this.model.Quay = {};\n    this.useDefaultQuayConfiguration();\n    this.model.Type = RegistryTypes.QUAY;\n  }\n\n  useDefaultGitlabConfiguration() {\n    this.model.URL = 'https://registry.gitlab.com';\n    this.model.Gitlab.InstanceURL = 'https://gitlab.com';\n  }\n\n  selectGitlabRegistry() {\n    this.model.Name = '';\n    this.model.Authentication = true;\n    this.model.Gitlab = {};\n    this.useDefaultGitlabConfiguration();\n    this.model.Type = RegistryTypes.GITLAB;\n  }\n\n  selectAzureRegistry() {\n    this.model.Name = '';\n    this.model.URL = '';\n    this.model.Authentication = true;\n    this.model.Type = RegistryTypes.AZURE;\n  }\n\n  selectProGetRegistry() {\n    this.model.Name = '';\n    this.model.URL = '';\n    this.model.BaseURL = '';\n    this.model.Authentication = true;\n    this.model.Type = RegistryTypes.PROGET;\n  }\n\n  selectCustomRegistry() {\n    this.model.Name = '';\n    this.model.URL = '';\n    this.model.Authentication = false;\n    this.model.Type = RegistryTypes.CUSTOM;\n  }\n\n  selectDockerHub() {\n    this.model.Name = '';\n    this.model.URL = 'docker.io';\n    this.model.Authentication = true;\n    this.model.Type = RegistryTypes.DOCKERHUB;\n  }\n\n  useDefaultEcrConfiguration() {\n    this.model.Ecr.Region = '';\n  }\n\n  selectEcr() {\n    this.model.Name = '';\n    this.model.URL = '';\n    this.model.Authentication = false;\n    this.model.Ecr = {};\n    this.useDefaultEcrConfiguration();\n    this.model.Type = RegistryTypes.ECR;\n  }\n\n  retrieveGitlabRegistries() {\n    return this.$async(async () => {\n      this.state.actionInProgress = true;\n      try {\n        this.gitlabProjects = await this.RegistryGitlabService.projects(this.model.Gitlab.InstanceURL, this.model.Token);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve projects');\n      } finally {\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n\n  createGitlabRegistries() {\n    return this.$async(async () => {\n      try {\n        this.state.actionInProgress = true;\n        await this.RegistryService.createGitlabRegistries(this.model, this.state.gitlab.selectedItems);\n        this.Notifications.success('Success', 'Registries successfully created');\n        this.$state.go(this.state.originViewReference, { endpointId: this.state.originalEndpointId });\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to create registries');\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n\n  createRegistry() {\n    return this.$async(async () => {\n      try {\n        this.state.actionInProgress = true;\n        await this.RegistryService.createRegistry(this.model);\n        this.Notifications.success('Success', 'Registry successfully created');\n        this.$state.go(this.state.originViewReference, { endpointId: this.state.originalEndpointId });\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to create registry');\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n\n  nameIsUsed(name) {\n    return _.includes(this.registriesNames, name);\n  }\n\n  getRegistries() {\n    return this.$async(async () => {\n      try {\n        const registries = await this.RegistryService.registries();\n        this.registriesNames = _.map(registries, 'Name');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to fetch existing registries');\n      }\n    });\n  }\n\n  setRegistry(registry) {\n    this.state.registryValue = registry;\n\n    switch (registry) {\n      case '6':\n        this.selectDockerHub();\n        break;\n      case '7':\n        this.selectEcr();\n        break;\n      case '1':\n        this.selectQuayRegistry();\n        break;\n      case '5':\n        this.selectProGetRegistry();\n        break;\n      case '2':\n        this.selectAzureRegistry();\n        break;\n      case '4':\n        this.selectGitlabRegistry();\n        break;\n      case '3':\n        this.selectCustomRegistry();\n        break;\n    }\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.model = new RegistryCreateFormValues();\n      this.model.Type = RegistryTypes.DOCKERHUB;\n      this.selectDockerHub();\n      this.state.availableRegistry = options;\n      // Default registryValue is DockerHub, which is 6\n      this.state.registryValue = '6';\n\n      const from = this.$transition$.from();\n      const params = this.$transition$.params('from');\n\n      if (from.name && /^[a-z]+\\.registries$/.test(from.name)) {\n        this.state.originViewReference = from;\n        this.state.originalEndpointId = params.endpointId || null;\n      }\n      await this.getRegistries();\n    });\n  }\n}\n\nexport default CreateRegistryController;\n","const autoNgTemplateLoaderTemplate1 = require('./registry.html');\n\nimport angular from 'angular';\nimport controller from './registryController';\n\nangular.module('portainer.app').component('editRegistry', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    $transition$: '<',\n  },\n});\n","import _ from 'lodash';\nimport { RegistryTypes } from '@/portainer/models/registryTypes';\n\nexport default class RegistryController {\n  /* @ngInject */\n  constructor($scope, $async, $state, RegistryService, Notifications) {\n    this.$scope = $scope;\n    Object.assign(this, { $async, $state, RegistryService, Notifications });\n\n    this.RegistryTypes = RegistryTypes;\n\n    this.state = {\n      actionInProgress: false,\n      loading: false,\n    };\n\n    this.Password = '';\n\n    this.toggleAuthentication = this.toggleAuthentication.bind(this);\n    this.toggleQuayUseOrganisation = this.toggleQuayUseOrganisation.bind(this);\n  }\n\n  toggleAuthentication(newValue) {\n    this.$scope.$evalAsync(() => {\n      this.registry.Authentication = newValue;\n    });\n  }\n\n  toggleQuayUseOrganisation(newValue) {\n    this.$scope.$evalAsync(() => {\n      this.registry.Quay.UseOrganisation = newValue;\n    });\n  }\n\n  passwordLabel() {\n    const type = this.registry.Type;\n    switch (type) {\n      case RegistryTypes.ECR:\n        return 'AWS Secret Access Key';\n      case RegistryTypes.DOCKERHUB:\n        return 'Access token';\n      case RegistryTypes.GITLAB:\n        return 'Personal Access Token';\n      default:\n        return 'Password';\n    }\n  }\n\n  updateRegistry() {\n    return this.$async(async () => {\n      try {\n        this.state.actionInProgress = true;\n        const registry = this.registry;\n        registry.Password = this.Password;\n\n        await this.RegistryService.updateRegistry(registry);\n        this.Notifications.success('Success', 'Registry successfully updated');\n        this.$state.go('portainer.registries');\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to update registry');\n      } finally {\n        this.state.actionInProgress = false;\n      }\n    });\n  }\n\n  onChangeName() {\n    this.state.nameAlreadyExists = _.includes(this.registriesNames, this.registry.Name);\n  }\n\n  isUpdateButtonDisabled() {\n    return (\n      this.state.actionInProgress ||\n      this.state.nameAlreadyExists ||\n      !this.registry.Name ||\n      !this.registry.URL ||\n      (this.registry.Type == this.RegistryTypes.QUAY && this.registry.Quay.UseOrganisation && !this.registry.Quay.OrganisationName)\n    );\n  }\n\n  getRegistryProvider(registryType) {\n    switch (registryType) {\n      case RegistryTypes.QUAY:\n        return 'Quay.io';\n      case RegistryTypes.AZURE:\n        return 'Azure';\n      case RegistryTypes.CUSTOM:\n        return 'Custom';\n      case RegistryTypes.GITLAB:\n        return 'Gitlab';\n      case RegistryTypes.PROGET:\n        return 'ProGet';\n      case RegistryTypes.DOCKERHUB:\n        return 'Docker Hub';\n      case RegistryTypes.ECR:\n        return 'AWS ECR';\n      default:\n        return '';\n    }\n  }\n  async $onInit() {\n    try {\n      this.state.loading = true;\n\n      const registryId = this.$state.params.id;\n      const registry = await this.RegistryService.registry(registryId);\n      this.registry = registry;\n      this.provider = this.getRegistryProvider(registry.Type);\n\n      const registries = await this.RegistryService.registries();\n      _.pullAllBy(registries, [registry], 'Id');\n      this.registriesNames = _.map(registries, 'Name');\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve registry details');\n    } finally {\n      this.state.loading = false;\n    }\n  }\n}\n","import _ from 'lodash-es';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { RegistryTypes } from 'Portainer/models/registryTypes';\nimport { processItemsInBatches } from '@/react/common/processItemsInBatches';\n\nangular.module('portainer.app').controller('RegistriesController', [\n  '$q',\n  '$scope',\n  '$state',\n  'RegistryService',\n  'Notifications',\n  function ($q, $scope, $state, RegistryService, Notifications) {\n    $scope.state = {\n      actionInProgress: false,\n    };\n\n    const nonBrowsableTypes = [RegistryTypes.ANONYMOUS, RegistryTypes.DOCKERHUB, RegistryTypes.QUAY];\n\n    $scope.canBrowse = function (item) {\n      return !_.includes(nonBrowsableTypes, item.Type);\n    };\n\n    $scope.removeAction = function (selectedItems) {\n      const regAttrMsg = selectedItems.length > 1 ? 'hese' : 'his';\n      const registriesMsg = selectedItems.length > 1 ? 'registries' : 'registry';\n      const msg = `T${regAttrMsg} ${registriesMsg} might be used by applications inside one or more environments. Removing the ${registriesMsg} could lead to a service interruption for the applications using t${regAttrMsg} ${registriesMsg}. Do you want to remove the selected ${registriesMsg}?`;\n\n      confirmDelete(msg).then((confirmed) => {\n        if (!confirmed) {\n          return;\n        }\n        deleteSelectedRegistries(selectedItems);\n      });\n    };\n\n    async function deleteSelectedRegistries(selectedItems) {\n      async function doRemove(registry) {\n        return RegistryService.deleteRegistry(registry.Id)\n          .then(function success() {\n            Notifications.success('Registry successfully removed', registry.Name);\n            var index = $scope.registries.indexOf(registry);\n            $scope.registries.splice(index, 1);\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to remove registry');\n          });\n      }\n\n      await processItemsInBatches(selectedItems, doRemove);\n      $state.reload();\n    }\n\n    function initView() {\n      $q.all({\n        registries: RegistryService.registries(),\n      })\n        .then(function success(data) {\n          $scope.registries = data.registries;\n        })\n        .catch(function error(err) {\n          $scope.registries = [];\n          Notifications.error('Failure', err, 'Unable to retrieve registries');\n        });\n    }\n\n    initView();\n  },\n]);\n","angular.module('portainer.app').factory('Auth', [\n  '$resource',\n  'API_ENDPOINT_AUTH',\n  function AuthFactory($resource, API_ENDPOINT_AUTH) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_AUTH + '/:action',\n      {},\n      {\n        login: { method: 'POST', ignoreLoadingBar: true },\n        logout: { method: 'POST', params: { action: 'logout' }, ignoreLoadingBar: true },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('Backup', [\n  '$resource',\n  'API_ENDPOINT_BACKUP',\n  function BackupFactory($resource, API_ENDPOINT_BACKUP) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_BACKUP + '/:subResource/:action',\n      {},\n      {\n        download: {\n          method: 'POST',\n          responseType: 'arraybuffer',\n          ignoreLoadingBar: true,\n          transformResponse: (data, headersGetter, status) => {\n            if (status !== 200) {\n              const decoder = new TextDecoder('utf-8');\n              const str = decoder.decode(data);\n              return JSON.parse(str);\n            }\n\n            return {\n              file: data,\n              name: headersGetter('Content-Disposition').replace('attachment; filename=', ''),\n            };\n          },\n        },\n        getS3Settings: { method: 'GET', params: { subResource: 's3', action: 'settings' } },\n        saveS3Settings: { method: 'POST', params: { subResource: 's3', action: 'settings' } },\n        exportS3Backup: { method: 'POST', params: { subResource: 's3', action: 'execute' } },\n        restoreS3Backup: { method: 'POST', params: { subResource: 's3', action: 'restore' } },\n      }\n    );\n  },\n]);\n","import angular from 'angular';\n\nangular.module('portainer.app').factory('CustomTemplates', CustomTemplatesFactory);\n\nfunction CustomTemplatesFactory($resource, API_ENDPOINT_CUSTOM_TEMPLATES) {\n  return $resource(\n    API_ENDPOINT_CUSTOM_TEMPLATES + '/:id/:action',\n    {},\n    {\n      create: { method: 'POST', ignoreLoadingBar: true, params: { id: 'create', action: '@method' } },\n      query: { method: 'GET', isArray: true },\n      get: { method: 'GET', params: { id: '@id' } },\n      update: { method: 'PUT', params: { id: '@id' } },\n      remove: { method: 'DELETE', params: { id: '@id' } },\n      file: { method: 'GET', params: { id: '@id', action: 'file' } },\n      gitFetch: { method: 'PUT', params: { id: '@id', action: 'git_fetch' } },\n    }\n  );\n}\n","import getEndpointsTotalCount from './transform/getEndpointsTotalCount';\n\nangular.module('portainer.app').factory('Endpoints', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINTS',\n  function EndpointsFactory($resource, API_ENDPOINT_ENDPOINTS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINTS + '/:id/:action',\n      {},\n      {\n        query: {\n          method: 'GET',\n          params: { start: '@start', limit: '@limit', search: '@search', groupId: '@groupId' },\n          transformResponse: getEndpointsTotalCount,\n        },\n        get: { method: 'GET', params: { id: '@id' } },\n        update: { method: 'PUT', params: { id: '@id' } },\n        disassociate: { method: 'DELETE', params: { id: '@id', action: 'association' } },\n        updateAccess: { method: 'PUT', params: { id: '@id', action: 'access' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n        snapshots: { method: 'POST', params: { action: 'snapshot' } },\n        snapshot: { method: 'POST', params: { id: '@id', action: 'snapshot' } },\n        status: { method: 'GET', params: { id: '@id', action: 'status' } },\n        updateSecuritySettings: { method: 'PUT', params: { id: '@id', action: 'settings' } },\n        dockerhubLimits: {\n          method: 'GET',\n          url: `${API_ENDPOINT_ENDPOINTS}/:id/dockerhub/:registryId`,\n        },\n        registries: {\n          method: 'GET',\n          url: `${API_ENDPOINT_ENDPOINTS}/:id/registries`,\n          params: { id: '@id', namespace: '@namespace' },\n          isArray: true,\n        },\n        updateRegistryAccess: {\n          method: 'PUT',\n          url: `${API_ENDPOINT_ENDPOINTS}/:id/registries/:registryId`,\n          params: { id: '@id', registryId: '@registryId' },\n        },\n      }\n    );\n  },\n]);\n","import gitlabResponseGetLink from './transform/gitlabResponseGetLink';\n\nangular.module('portainer.app').factory('Gitlab', [\n  '$resource',\n  'API_ENDPOINT_REGISTRIES',\n  function GitlabFactory($resource, API_ENDPOINT_REGISTRIES) {\n    'use strict';\n    return function (env) {\n      const headers = {};\n      if (env) {\n        headers['Private-Token'] = env.token;\n        headers['X-Gitlab-Domain'] = env.url;\n      }\n\n      const baseUrl = API_ENDPOINT_REGISTRIES + '/:id/proxies/gitlab/api/v4/projects';\n\n      return $resource(\n        baseUrl,\n        { id: '@id' },\n        {\n          projects: {\n            method: 'GET',\n            params: { membership: 'true' },\n            transformResponse: gitlabResponseGetLink,\n            headers: headers,\n          },\n          repositories: {\n            method: 'GET',\n            url: baseUrl + '/:projectId/registry/repositories',\n            params: { tags: true },\n            headers: headers,\n            transformResponse: gitlabResponseGetLink,\n          },\n        }\n      );\n    };\n  },\n]);\n","angular.module('portainer.app').factory('EndpointGroups', [\n  '$resource',\n  'API_ENDPOINT_ENDPOINT_GROUPS',\n  function EndpointGroupsFactory($resource, API_ENDPOINT_ENDPOINT_GROUPS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_ENDPOINT_GROUPS + '/:id/:action',\n      {},\n      {\n        create: { method: 'POST', ignoreLoadingBar: true },\n        query: { method: 'GET', isArray: true },\n        get: { method: 'GET', params: { id: '@id' } },\n        update: { method: 'PUT', params: { id: '@id' } },\n        updateAccess: { method: 'PUT', params: { id: '@id', action: 'access' } },\n        addEndpoint: { method: 'PUT', params: { id: '@id', action: '@action' } },\n        removeEndpoint: { method: 'DELETE', params: { id: '@id', action: '@action' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('Registries', [\n  '$resource',\n  'API_ENDPOINT_REGISTRIES',\n  function RegistriesFactory($resource, API_ENDPOINT_REGISTRIES) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_REGISTRIES + '/:id/:action',\n      {},\n      {\n        create: { method: 'POST', ignoreLoadingBar: true },\n        query: { method: 'GET', isArray: true },\n        get: { method: 'GET', params: { id: '@id', action: '', endpointId: '@endpointId' } },\n        update: { method: 'PUT', params: { id: '@id' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n        configure: { method: 'POST', params: { id: '@id', action: 'configure' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('ResourceControl', [\n  '$resource',\n  'API_ENDPOINT_RESOURCE_CONTROLS',\n  function ResourceControlFactory($resource, API_ENDPOINT_RESOURCE_CONTROLS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_RESOURCE_CONTROLS + '/:id',\n      {},\n      {\n        update: { method: 'PUT', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('Settings', [\n  '$resource',\n  'API_ENDPOINT_SETTINGS',\n  function SettingsFactory($resource, API_ENDPOINT_SETTINGS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_SETTINGS + '/:subResource/:action',\n      {},\n      {\n        get: { method: 'GET' },\n        update: { method: 'PUT', ignoreLoadingBar: true },\n        publicSettings: { method: 'GET', params: { subResource: 'public' }, ignoreLoadingBar: true },\n        checkLDAPConnectivity: { method: 'PUT', params: { subResource: 'authentication', action: 'checkLDAP' } },\n      }\n    );\n  },\n]);\n","import angular from 'angular';\n\nconst API_ENDPOINT_SSL = 'api/ssl';\n\nangular.module('portainer.app').factory('SSL', SSLFactory);\n\n/* @ngInject */\nfunction SSLFactory($resource) {\n  return $resource(\n    API_ENDPOINT_SSL,\n    {},\n    {\n      get: { method: 'GET' },\n      upload: { method: 'PUT' },\n    }\n  );\n}\n","import angular from 'angular';\n\nangular.module('portainer.app').factory('Stack', StackFactory);\nangular.module('portainer.app').factory('StackByName', StackByNameFactory);\n\n/* @ngInject */\nfunction StackFactory($resource, API_ENDPOINT_STACKS) {\n  return $resource(\n    API_ENDPOINT_STACKS + '/:id/:action/:subaction',\n    {},\n    {\n      get: { method: 'GET', params: { id: '@id' } },\n      query: { method: 'GET', isArray: true },\n      create: { method: 'POST', ignoreLoadingBar: true, params: { id: 'create', subaction: '@method', action: '@type' } },\n      update: { method: 'PUT', params: { id: '@id' }, ignoreLoadingBar: true },\n      associate: { method: 'PUT', params: { id: '@id', swarmId: '@swarmId', endpointId: '@endpointId', orphanedRunning: '@orphanedRunning', action: 'associate' } },\n      remove: { method: 'DELETE', params: { id: '@id', external: '@external', endpointId: '@endpointId' } },\n      getStackFile: { method: 'GET', params: { id: '@id', action: 'file' } },\n      migrate: { method: 'POST', params: { id: '@id', action: 'migrate', endpointId: '@endpointId' }, ignoreLoadingBar: true },\n      start: { method: 'POST', params: { id: '@id', action: 'start', endpointId: '@endpointId' } },\n      stop: { method: 'POST', params: { id: '@id', action: 'stop', endpointId: '@endpointId' } },\n      updateGit: { method: 'PUT', params: { id: '@id', action: 'git', subaction: 'redeploy' } },\n      updateGitStackSettings: { method: 'POST', params: { id: '@id', action: 'git' }, ignoreLoadingBar: true },\n    }\n  );\n}\n\nfunction StackByNameFactory($resource, API_ENDPOINT_STACKS) {\n  return $resource(\n    API_ENDPOINT_STACKS + '/name/:name',\n    {},\n    {\n      remove: { method: 'DELETE', params: { name: '@name', external: '@external', endpointId: '@endpointId', namespace: '@namespace' } },\n    }\n  );\n}\n","angular.module('portainer.app').factory('Support', [\n  '$resource',\n  'API_ENDPOINT_SUPPORT',\n  function SupportFactory($resource, API_ENDPOINT_SUPPORT) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_SUPPORT,\n      {},\n      {\n        get: { method: 'GET', isArray: true },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('Tags', [\n  '$resource',\n  'API_ENDPOINT_TAGS',\n  function TagsFactory($resource, API_ENDPOINT_TAGS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_TAGS + '/:id',\n      {},\n      {\n        create: { method: 'POST' },\n        query: { method: 'GET', isArray: true },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('Teams', [\n  '$resource',\n  'API_ENDPOINT_TEAMS',\n  function TeamsFactory($resource, API_ENDPOINT_TEAMS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_TEAMS + '/:id/:entity/:entityId',\n      {},\n      {\n        create: { method: 'POST', ignoreLoadingBar: true },\n        query: { method: 'GET', isArray: true, params: { environmentId: '@environmentId' } },\n        get: { method: 'GET', params: { id: '@id' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n        queryMemberships: { method: 'GET', isArray: true, params: { id: '@id', entity: 'memberships' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('TeamMemberships', [\n  '$resource',\n  'API_ENDPOINT_TEAM_MEMBERSHIPS',\n  function TeamMembershipsFactory($resource, API_ENDPOINT_TEAM_MEMBERSHIPS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_TEAM_MEMBERSHIPS + '/:id/:action',\n      {},\n      {\n        create: { method: 'POST', ignoreLoadingBar: true },\n        query: { method: 'GET', isArray: true },\n        update: { method: 'PUT', params: { id: '@id' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('Templates', [\n  '$resource',\n  'API_ENDPOINT_TEMPLATES',\n  function TemplatesFactory($resource, API_ENDPOINT_TEMPLATES) {\n    return $resource(\n      API_ENDPOINT_TEMPLATES + '/:action',\n      {},\n      {\n        query: { method: 'GET' },\n        file: { method: 'POST', params: { action: 'file' } },\n      }\n    );\n  },\n]);\n","export default function getEndpointsTotalCount(data, headers) {\n  const response = {};\n  response.value = angular.fromJson(data);\n  response.totalCount = headers('X-Total-Count');\n  return response;\n}\n","export default function gitlabResponseGetLink(data, headers) {\n  let response = {};\n  try {\n    response.data = angular.fromJson(data);\n    response.next = headers('X-Next-Page');\n  } catch (error) {\n    response = data;\n  }\n  return response;\n}\n","angular.module('portainer.app').factory('Users', [\n  '$resource',\n  'API_ENDPOINT_USERS',\n  function UsersFactory($resource, API_ENDPOINT_USERS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_USERS + '/:id/:entity/:entityId',\n      {},\n      {\n        create: { method: 'POST', ignoreLoadingBar: true },\n        query: { method: 'GET', isArray: true },\n        get: { method: 'GET', params: { id: '@id' } },\n        update: { method: 'PUT', params: { id: '@id' }, ignoreLoadingBar: true },\n        updatePassword: { method: 'PUT', params: { id: '@id', entity: 'passwd' } },\n        updateTheme: { method: 'PUT', params: { id: '@id' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n        queryMemberships: { method: 'GET', isArray: true, params: { id: '@id', entity: 'memberships' } },\n        checkAdminUser: { method: 'GET', params: { id: 'admin', entity: 'check' }, isArray: true, ignoreLoadingBar: true },\n        initAdminUser: { method: 'POST', params: { id: 'admin', entity: 'init' }, ignoreLoadingBar: true },\n        getAccessTokens: { method: 'GET', params: { id: '@id', entity: 'tokens' }, isArray: true },\n        deleteAccessToken: { url: `${API_ENDPOINT_USERS}/:id/tokens/:tokenId`, method: 'DELETE', params: { id: '@id', entityId: '@tokenId' } },\n      }\n    );\n  },\n]);\n","angular.module('portainer.app').factory('Webhooks', [\n  '$resource',\n  'API_ENDPOINT_WEBHOOKS',\n  function WebhooksFactory($resource, API_ENDPOINT_WEBHOOKS) {\n    'use strict';\n    return $resource(\n      API_ENDPOINT_WEBHOOKS + '/:id',\n      {},\n      {\n        query: { method: 'GET', isArray: true },\n        create: { method: 'POST' },\n        update: { method: 'PUT', params: { id: '@id' } },\n        remove: { method: 'DELETE', params: { id: '@id' } },\n      }\n    );\n  },\n]);\n","import _ from 'lodash-es';\n\n/**\n *\n * @param {any[]} promises\n */\nexport default async function $allSettled(promises) {\n  const res = {\n    fulfilled: [],\n    rejected: [],\n  };\n  const data = await Promise.allSettled(promises);\n  res.fulfilled = _.reduce(\n    data,\n    (acc, item) => {\n      if (item.status === 'fulfilled') {\n        acc.push(item.value);\n      }\n      return acc;\n    },\n    []\n  );\n  res.rejected = _.reduce(\n    data,\n    (acc, item) => {\n      if (item.status === 'rejected') {\n        acc.push(item.reason);\n      }\n      return acc;\n    },\n    []\n  );\n  return res;\n}\n","import _ from 'lodash-es';\nimport { UserAccessViewModel } from '../../models/access';\nimport { TeamAccessViewModel } from '../../models/access';\n\nangular.module('portainer.app').factory('AccessService', [\n  '$q',\n  '$async',\n  'UserService',\n  'TeamService',\n  function AccessServiceFactory($q, $async, UserService, TeamService) {\n    'use strict';\n    return {\n      accesses,\n      generateAccessPolicies,\n    };\n\n    function _mapAccessData(accesses, authorizedPolicies, inheritedPolicies) {\n      var availableAccesses = [];\n      var authorizedAccesses = [];\n\n      for (var i = 0; i < accesses.length; i++) {\n        const access = accesses[i];\n\n        const authorized = authorizedPolicies && authorizedPolicies[access.Id];\n        const inherited = inheritedPolicies && inheritedPolicies[access.Id];\n\n        if (authorized && inherited) {\n          access.Override = true;\n          authorizedAccesses.push(access);\n        } else if (authorized && !inherited) {\n          authorizedAccesses.push(access);\n        } else if (!authorized && inherited) {\n          access.Inherited = true;\n          authorizedAccesses.push(access);\n          availableAccesses.push(access);\n        } else {\n          availableAccesses.push(access);\n        }\n      }\n\n      return {\n        available: availableAccesses,\n        authorized: authorizedAccesses,\n      };\n    }\n\n    function getAccesses(authorizedUserPolicies, authorizedTeamPolicies, inheritedUserPolicies, inheritedTeamPolicies) {\n      var deferred = $q.defer();\n\n      $q.all({\n        users: UserService.users(false),\n        teams: TeamService.teams(),\n      })\n        .then(function success(data) {\n          var userAccesses = data.users.map(function (user) {\n            return new UserAccessViewModel(user);\n          });\n          var teamAccesses = data.teams.map(function (team) {\n            return new TeamAccessViewModel(team);\n          });\n\n          var userAccessData = _mapAccessData(userAccesses, authorizedUserPolicies, inheritedUserPolicies);\n          var teamAccessData = _mapAccessData(teamAccesses, authorizedTeamPolicies, inheritedTeamPolicies);\n\n          var accessData = {\n            availableUsersAndTeams: userAccessData.available.concat(teamAccessData.available),\n            authorizedUsersAndTeams: userAccessData.authorized.concat(teamAccessData.authorized),\n          };\n\n          deferred.resolve(accessData);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve users and teams', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    async function accessesAsync(entity, parent) {\n      if (!entity) {\n        throw new Error('Unable to retrieve accesses');\n      }\n      if (!entity.UserAccessPolicies) {\n        entity.UserAccessPolicies = {};\n      }\n      if (!entity.TeamAccessPolicies) {\n        entity.TeamAccessPolicies = {};\n      }\n      if (parent && !parent.UserAccessPolicies) {\n        parent.UserAccessPolicies = {};\n      }\n      if (parent && !parent.TeamAccessPolicies) {\n        parent.TeamAccessPolicies = {};\n      }\n      return await getAccesses(entity.UserAccessPolicies, entity.TeamAccessPolicies, parent ? parent.UserAccessPolicies : {}, parent ? parent.TeamAccessPolicies : {});\n    }\n\n    function accesses(entity, parent) {\n      return $async(accessesAsync, entity, parent);\n    }\n\n    function generateAccessPolicies(userAccessPolicies, teamAccessPolicies, selectedUserAccesses, selectedTeamAccesses, selectedRoleId) {\n      const newUserPolicies = _.clone(userAccessPolicies);\n      const newTeamPolicies = _.clone(teamAccessPolicies);\n\n      _.forEach(selectedUserAccesses, (access) => (newUserPolicies[access.Id] = { RoleId: selectedRoleId ? selectedRoleId : access.Role.Id }));\n      _.forEach(selectedTeamAccesses, (access) => (newTeamPolicies[access.Id] = { RoleId: selectedRoleId ? selectedRoleId : access.Role.Id }));\n\n      const accessPolicies = {\n        userAccessPolicies: newUserPolicies,\n        teamAccessPolicies: newTeamPolicies,\n      };\n\n      return accessPolicies;\n    }\n  },\n]);\n","angular.module('portainer.app').factory('BackupService', [\n  '$q',\n  '$async',\n  'Backup',\n  'FileUploadService',\n  function BackupServiceFactory($q, $async, Backup, FileUploadService) {\n    'use strict';\n    const service = {};\n\n    service.downloadBackup = function (payload) {\n      return Backup.download({}, payload).$promise;\n    };\n\n    service.uploadBackup = function (file, password) {\n      return FileUploadService.uploadBackup(file, password);\n    };\n\n    service.getS3Settings = function () {\n      var deferred = $q.defer();\n\n      Backup.getS3Settings()\n        .$promise.then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve backup S3 settings', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.saveS3Settings = function (payload) {\n      var deferred = $q.defer();\n\n      Backup.saveS3Settings({}, payload)\n        .$promise.then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to save backup S3 settings', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.exportBackup = function (payload) {\n      var deferred = $q.defer();\n\n      Backup.exportS3Backup({}, payload)\n        .$promise.then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to export backup', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.restoreFromS3 = function (payload) {\n      var deferred = $q.defer();\n\n      Backup.restoreS3Backup({}, payload)\n        .$promise.then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to restore backup from S3', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import angular from 'angular';\nimport PortainerError from 'Portainer/error';\n\nangular.module('portainer.app').factory('CustomTemplateService', CustomTemplateServiceFactory);\n\n/* @ngInject */\nfunction CustomTemplateServiceFactory($sanitize, CustomTemplates, FileUploadService) {\n  var service = {};\n\n  service.customTemplate = function customTemplate(id) {\n    return CustomTemplates.get({ id }).$promise;\n  };\n\n  service.customTemplates = async function customTemplates(type, edge = false) {\n    const templates = await CustomTemplates.query({ type, edge }).$promise;\n    templates.forEach((template) => {\n      if (template.Note) {\n        template.Note = $('<p>').html($sanitize(template.Note)).find('img').remove().end().html();\n      }\n    });\n    return templates;\n  };\n\n  service.remove = function remove(id) {\n    return CustomTemplates.remove({ id }).$promise;\n  };\n\n  service.customTemplateFile = async function customTemplateFile(id, remote = false) {\n    try {\n      const { FileContent } = remote ? await CustomTemplates.gitFetch({ id }).$promise : await CustomTemplates.file({ id }).$promise;\n      return FileContent;\n    } catch (err) {\n      throw new PortainerError('Unable to retrieve custom template content', err);\n    }\n  };\n\n  service.updateCustomTemplate = async function updateCustomTemplate(id, customTemplate) {\n    return CustomTemplates.update({ id }, customTemplate).$promise;\n  };\n\n  service.createCustomTemplateFromFileContent = async function createCustomTemplateFromFileContent(payload) {\n    try {\n      return await CustomTemplates.create({}, { method: 'string', ...payload }).$promise;\n    } catch (err) {\n      throw { msg: 'Unable to create the customTemplate', err };\n    }\n  };\n\n  service.createCustomTemplateFromFileUpload = async function createCustomTemplateFromFileUpload(payload) {\n    try {\n      const { data } = await FileUploadService.createCustomTemplate(payload);\n      return data;\n    } catch (err) {\n      throw { msg: 'Unable to create the customTemplate', err };\n    }\n  };\n\n  service.createCustomTemplateFromGitRepository = async function createCustomTemplateFromGitRepository(payload) {\n    try {\n      return await CustomTemplates.create({}, { method: 'repository', ...payload }).$promise;\n    } catch (err) {\n      throw { msg: 'Unable to create the customTemplate', err };\n    }\n  };\n\n  return service;\n}\n","import { PortainerEndpointTypes } from '@/portainer/models/endpoint/models';\nimport { isLocalEnvironment } from '@/react/portainer/environments/utils';\n\nangular.module('portainer.app').factory('DockerHubService', DockerHubService);\n\n/* @ngInject */\nfunction DockerHubService(Endpoints, AgentDockerhub) {\n  return {\n    checkRateLimits,\n  };\n\n  function checkRateLimits(endpoint, registryId) {\n    if (isLocalEnvironment(endpoint)) {\n      return Endpoints.dockerhubLimits({ id: endpoint.Id, registryId }).$promise;\n    }\n\n    switch (endpoint.Type) {\n      case PortainerEndpointTypes.AgentOnDockerEnvironment:\n      case PortainerEndpointTypes.EdgeAgentOnDockerEnvironment:\n        return AgentDockerhub.limits({ endpointId: endpoint.Id, endpointType: 'docker', registryId }).$promise;\n\n      case PortainerEndpointTypes.AgentOnKubernetesEnvironment:\n      case PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment:\n        return AgentDockerhub.limits({ endpointId: endpoint.Id, endpointType: 'kubernetes', registryId }).$promise;\n    }\n  }\n}\n","import { PortainerEndpointCreationTypes } from 'Portainer/models/endpoint/models';\n\nangular.module('portainer.app').factory('EndpointService', [\n  '$q',\n  'Endpoints',\n  'FileUploadService',\n  function EndpointServiceFactory($q, Endpoints, FileUploadService) {\n    'use strict';\n    var service = {\n      updateSecuritySettings,\n      registries,\n      updateRegistryAccess,\n    };\n\n    service.endpoint = function (endpointID) {\n      return Endpoints.get({ id: endpointID }).$promise;\n    };\n\n    service.snapshotEndpoints = function () {\n      return Endpoints.snapshots({}, {}).$promise;\n    };\n\n    service.snapshotEndpoint = function (endpointID) {\n      return Endpoints.snapshot({ id: endpointID }, {}).$promise;\n    };\n\n    service.updateAccess = function (id, userAccessPolicies, teamAccessPolicies) {\n      return Endpoints.updateAccess({ id: id }, { UserAccessPolicies: userAccessPolicies, TeamAccessPolicies: teamAccessPolicies }).$promise;\n    };\n\n    service.disassociateEndpoint = function (endpointID) {\n      return Endpoints.disassociate({ id: endpointID }).$promise;\n    };\n\n    service.updateEndpoint = function (id, payload) {\n      var deferred = $q.defer();\n      FileUploadService.uploadTLSFilesForEndpoint(id, payload.TLSCACert, payload.TLSCert, payload.TLSKey)\n        .then(function success() {\n          deferred.notify({ upload: false });\n          return Endpoints.update({ id: id }, payload).$promise;\n        })\n        .then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.notify({ upload: false });\n          deferred.reject({ msg: 'Unable to update environment', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.deleteEndpoint = function (endpointID) {\n      return Endpoints.remove({ id: endpointID }).$promise;\n    };\n\n    service.createLocalEndpoint = function (name = 'local', URL = '', PublicURL = '', groupID = 1, tagIds = []) {\n      var deferred = $q.defer();\n\n      var endpointURL = URL;\n      if (endpointURL !== '') {\n        if (endpointURL.indexOf('//./pipe/') == 0) {\n          // Windows named pipe\n          endpointURL = 'npipe://' + URL;\n        } else {\n          endpointURL = 'unix://' + URL;\n        }\n      }\n\n      FileUploadService.createEndpoint(name, PortainerEndpointCreationTypes.LocalDockerEnvironment, endpointURL, PublicURL, groupID, tagIds, false)\n        .then(function success(response) {\n          deferred.resolve(response.data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create environment', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.createRemoteEndpoint = function (\n      name,\n      creationType,\n      URL,\n      PublicURL,\n      groupID,\n      tagIds,\n      TLS,\n      TLSSkipVerify,\n      TLSSkipClientVerify,\n      TLSCAFile,\n      TLSCertFile,\n      TLSKeyFile,\n      checkinInterval\n    ) {\n      var deferred = $q.defer();\n\n      var endpointURL = URL;\n      if (creationType !== PortainerEndpointCreationTypes.EdgeAgentEnvironment) {\n        endpointURL = 'tcp://' + URL;\n      }\n\n      FileUploadService.createEndpoint(\n        name,\n        creationType,\n        endpointURL,\n        PublicURL,\n        groupID,\n        tagIds,\n        TLS,\n        TLSSkipVerify,\n        TLSSkipClientVerify,\n        TLSCAFile,\n        TLSCertFile,\n        TLSKeyFile,\n        checkinInterval\n      )\n        .then(function success(response) {\n          deferred.resolve(response.data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create environment', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.createLocalKubernetesEndpoint = function (name = 'local', tagIds = []) {\n      var deferred = $q.defer();\n\n      FileUploadService.createEndpoint(name, PortainerEndpointCreationTypes.LocalKubernetesEnvironment, '', '', 1, tagIds, true, true, true)\n        .then(function success(response) {\n          deferred.resolve(response.data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create environment', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.createAzureEndpoint = function (name, applicationId, tenantId, authenticationKey, groupId, tagIds) {\n      var deferred = $q.defer();\n\n      FileUploadService.createAzureEndpoint(name, applicationId, tenantId, authenticationKey, groupId, tagIds)\n        .then(function success(response) {\n          deferred.resolve(response.data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to connect to Azure', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.trust = function (id) {\n      Endpoints.updateEndpoint({ id }, { UserTrusted: true }).$promise;\n    };\n\n    function updateRegistryAccess(id, registryId, endpointAccesses) {\n      return Endpoints.updateRegistryAccess({ registryId, id }, endpointAccesses).$promise;\n    }\n\n    function registries(id, namespace) {\n      return Endpoints.registries({ namespace, id }).$promise;\n    }\n\n    return service;\n\n    function updateSecuritySettings(id, securitySettings) {\n      return Endpoints.updateSecuritySettings({ id }, securitySettings).$promise;\n    }\n  },\n]);\n","import { EndpointGroupCreateRequest, EndpointGroupModel, EndpointGroupUpdateRequest } from '../../models/group';\n\nangular.module('portainer.app').factory('GroupService', [\n  '$q',\n  'EndpointGroups',\n  function GroupService($q, EndpointGroups) {\n    'use strict';\n    var service = {};\n\n    service.group = function (groupId) {\n      var deferred = $q.defer();\n\n      EndpointGroups.get({ id: groupId })\n        .$promise.then(function success(data) {\n          var group = new EndpointGroupModel(data);\n          deferred.resolve(group);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve group', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.groups = function () {\n      return EndpointGroups.query({}).$promise;\n    };\n\n    service.createGroup = function (model, endpoints) {\n      var payload = new EndpointGroupCreateRequest(model, endpoints);\n      return EndpointGroups.create(payload).$promise;\n    };\n\n    service.updateGroup = function (model, endpoints) {\n      var payload = new EndpointGroupUpdateRequest(model, endpoints);\n      return EndpointGroups.update(payload).$promise;\n    };\n\n    service.updateAccess = function (groupId, userAccessPolicies, teamAccessPolicies) {\n      return EndpointGroups.updateAccess({ id: groupId }, { UserAccessPolicies: userAccessPolicies, TeamAccessPolicies: teamAccessPolicies }).$promise;\n    };\n\n    service.addEndpoint = function (groupId, endpointId) {\n      return EndpointGroups.addEndpoint({ id: groupId, action: 'endpoints/' + endpointId }).$promise;\n    };\n\n    service.removeEndpoint = function (groupId, endpointId) {\n      return EndpointGroups.removeEndpoint({ id: groupId, action: 'endpoints/' + endpointId }).$promise;\n    };\n\n    service.deleteGroup = function (groupId) {\n      return EndpointGroups.remove({ id: groupId }).$promise;\n    };\n\n    return service;\n  },\n]);\n","import _ from 'lodash-es';\nimport { PorImageRegistryModel } from 'Docker/models/porImageRegistry';\nimport { RegistryTypes } from 'Portainer/models/registryTypes';\nimport { RegistryCreateRequest, RegistryViewModel } from 'Portainer/models/registry';\nimport { DockerHubViewModel } from 'Portainer/models/dockerhub';\n\nangular.module('portainer.app').factory('RegistryService', [\n  '$q',\n  '$async',\n  'EndpointService',\n  'Registries',\n  'ImageHelper',\n  'FileUploadService',\n  function RegistryServiceFactory($q, $async, EndpointService, Registries, ImageHelper, FileUploadService) {\n    return {\n      registries,\n      registry,\n      encodedCredentials,\n      deleteRegistry,\n      updateRegistry,\n      configureRegistry,\n      createRegistry,\n      createGitlabRegistries,\n      retrievePorRegistryModelFromRepository,\n      retrievePorRegistryModelFromRepositoryWithRegistries,\n      loadRegistriesForDropdown,\n    };\n\n    function registries() {\n      var deferred = $q.defer();\n\n      Registries.query()\n        .$promise.then(function success(data) {\n          var registries = data.map(function (item) {\n            return new RegistryViewModel(item);\n          });\n          deferred.resolve(registries);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve registries', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    function registry(id, endpointId) {\n      var deferred = $q.defer();\n\n      Registries.get({ id, endpointId })\n        .$promise.then(function success(data) {\n          var registry = new RegistryViewModel(data);\n          deferred.resolve(registry);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve registry details', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    function encodedCredentials(registry) {\n      var credentials = {\n        registryId: registry.Id,\n      };\n      return btoa(JSON.stringify(credentials));\n    }\n\n    function deleteRegistry(id) {\n      return Registries.remove({ id: id }).$promise;\n    }\n\n    function updateRegistry(registry) {\n      registry.URL = _.replace(registry.URL, /^https?\\:\\/\\//i, '');\n      registry.URL = _.replace(registry.URL, /\\/$/, '');\n      return Registries.update({ id: registry.Id }, registry).$promise;\n    }\n\n    function configureRegistry(id, registryManagementConfigurationModel) {\n      return FileUploadService.configureRegistry(id, registryManagementConfigurationModel);\n    }\n\n    function createRegistry(model) {\n      var payload = new RegistryCreateRequest(model);\n      return Registries.create(payload).$promise;\n    }\n\n    function createGitlabRegistries(model, projects) {\n      const promises = [];\n      _.forEach(projects, (p) => {\n        const m = model;\n        m.Name = p.PathWithNamespace;\n        m.Gitlab.ProjectPath = _.toLower(p.PathWithNamespace);\n        m.Gitlab.ProjectId = p.Id;\n        m.Password = m.Token;\n        const payload = new RegistryCreateRequest(m);\n        promises.push(Registries.create(payload).$promise);\n      });\n      return $q.all(promises);\n    }\n\n    function getURL(reg) {\n      let url = reg.URL;\n      if (reg.Type === RegistryTypes.GITLAB) {\n        url = reg.URL + '/' + reg.Gitlab.ProjectPath;\n      } else if (reg.Type === RegistryTypes.QUAY) {\n        const name = reg.Quay.UseOrganisation ? reg.Quay.OrganisationName : reg.Username;\n        url = reg.URL + '/' + name;\n      }\n      return url;\n    }\n\n    // findBestMatchRegistry finds out the best match registry for repository\n    // matching precedence:\n    // 1. registryId matched\n    // 2. both domain name and username matched (for dockerhub only)\n    // 3. only URL matched\n    // 4. pick up the first dockerhub registry\n    function findBestMatchRegistry(repository, registries, registryId) {\n      let match2, match3, match4;\n\n      for (const registry of registries) {\n        if (registry.Id == registryId) {\n          return registry;\n        }\n\n        if (registry.Type === RegistryTypes.DOCKERHUB) {\n          // try to match repository examples:\n          //   <USERNAME>/nginx:latest\n          //   docker.io/<USERNAME>/nginx:latest\n          if (repository.startsWith(registry.Username + '/') || repository.startsWith(getURL(registry) + '/' + registry.Username + '/')) {\n            match2 = registry;\n          }\n\n          // try to match repository examples:\n          //   portainer/portainer-ee:latest\n          //   <NON-USERNAME>/portainer-ee:latest\n          match4 = match4 || registry;\n        }\n\n        if (repository.startsWith(getURL(registry))) {\n          match3 = registry;\n        }\n      }\n\n      return match2 || match3 || match4;\n    }\n\n    function retrievePorRegistryModelFromRepositoryWithRegistries(repository, registries, registryId) {\n      const model = new PorImageRegistryModel();\n      const registry = findBestMatchRegistry(repository, registries, registryId);\n      if (registry) {\n        const url = getURL(registry);\n        let lastIndex = repository.lastIndexOf(url);\n        lastIndex = lastIndex === -1 ? 0 : lastIndex + url.length;\n        let image = repository.substring(lastIndex);\n        if (_.startsWith(image, '/')) {\n          image = image.substring(1);\n        }\n        model.Registry = registry;\n        model.Image = image;\n      } else {\n        if (ImageHelper.imageContainsURL(repository)) {\n          model.UseRegistry = false;\n        }\n        model.Registry = new DockerHubViewModel();\n        model.Image = repository;\n      }\n      return model;\n    }\n\n    function retrievePorRegistryModelFromRepository(repository, endpointId, registryId, namespace) {\n      return $async(async () => {\n        try {\n          const regs = await EndpointService.registries(endpointId, namespace);\n          return retrievePorRegistryModelFromRepositoryWithRegistries(repository, regs, registryId);\n        } catch (err) {\n          throw { msg: 'Unable to retrieve the registry associated to the repository', err: err };\n        }\n      });\n    }\n\n    function loadRegistriesForDropdown(endpointId, namespace) {\n      return $async(async () => {\n        try {\n          const registries = await EndpointService.registries(endpointId, namespace);\n\n          // hide default(anonymous) dockerhub registry if user has an authenticated one\n          if (!registries.some((registry) => registry.Type === RegistryTypes.DOCKERHUB)) {\n            registries.push(new DockerHubViewModel());\n          }\n\n          return registries;\n        } catch (err) {\n          throw { msg: 'Unable to retrieve the registries', err: err };\n        }\n      });\n    }\n  },\n]);\n","angular.module('portainer.app').factory('ResourceControlService', [\n  '$q',\n  'ResourceControl',\n  'UserService',\n  'TeamService',\n  'ResourceControlHelper',\n  function ResourceControlServiceFactory($q, ResourceControl, UserService, TeamService, ResourceControlHelper) {\n    'use strict';\n    const service = {};\n\n    service.duplicateResourceControl = duplicateResourceControl;\n    service.applyResourceControl = applyResourceControl;\n    service.retrieveOwnershipDetails = retrieveOwnershipDetails;\n\n    /**\n     * PRIVATE SECTION\n     */\n\n    /**\n     * Update a ResourceControl\n     * @param {String} rcID ID of involved resource\n     * @param {ResourceControlOwnershipParameters} ownershipParameters Transcient type from view data to payload\n     */\n    function updateResourceControl(rcID, ownershipParameters) {\n      const payload = {\n        AdministratorsOnly: ownershipParameters.AdministratorsOnly,\n        Public: ownershipParameters.Public,\n        Users: ownershipParameters.Users,\n        Teams: ownershipParameters.Teams,\n      };\n\n      return ResourceControl.update({ id: rcID }, payload).$promise;\n    }\n\n    /**\n     * END PRIVATE SECTION\n     */\n\n    /**\n     * PUBLIC SECTION\n     */\n\n    /**\n     * Apply a ResourceControl after Resource creation\n     * @param {int} userId ID of User performing the action\n     * @param {AccessControlFormData} accessControlData ResourceControl to apply\n     * @param {ResourceControlViewModel} resourceControl ResourceControl to update\n     * @param {[]int} subResources SubResources managed by the ResourceControl\n     */\n    function applyResourceControl(userId, accessControlData, resourceControl, subResources = []) {\n      const ownershipParameters = ResourceControlHelper.RCFormDataToOwnershipParameters(userId, accessControlData, subResources);\n      return updateResourceControl(resourceControl.Id, ownershipParameters);\n    }\n\n    /**\n     * Duplicate an existing ResourceControl (default to AdministratorsOnly if undefined)\n     * @param {int} userId ID of User performing the action\n     * @param {ResourceControlViewModel} oldResourceControl ResourceControl to duplicate\n     * @param {ResourceControlViewModel} newResourceControl ResourceControl to apply duplication to\n     */\n    function duplicateResourceControl(userId, oldResourceControl, newResourceControl) {\n      const ownershipParameters = ResourceControlHelper.RCViewModelToOwnershipParameters(userId, oldResourceControl);\n      return updateResourceControl(newResourceControl.Id, ownershipParameters);\n    }\n\n    /**\n     * Retrieve users and team details for ResourceControlViewModel\n     * @param {ResourceControlViewModel} resourceControl ResourceControl view model\n     */\n    function retrieveOwnershipDetails(resourceControl) {\n      var deferred = $q.defer();\n\n      if (!resourceControl) {\n        deferred.resolve({ authorizedUsers: [], authorizedTeams: [] });\n        return deferred.promise;\n      }\n\n      $q.all({\n        users: resourceControl.UserAccesses.length > 0 ? UserService.users(false) : [],\n        teams: resourceControl.TeamAccesses.length > 0 ? TeamService.teams() : [],\n      })\n        .then(function success(data) {\n          var authorizedUsers = ResourceControlHelper.retrieveAuthorizedUsers(resourceControl, data.users);\n          var authorizedTeams = ResourceControlHelper.retrieveAuthorizedTeams(resourceControl, data.teams);\n          deferred.resolve({ authorizedUsers: authorizedUsers, authorizedTeams: authorizedTeams });\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve user and team information', err: err });\n        });\n\n      return deferred.promise;\n    }\n\n    /**\n     * END PUBLIC SECTION\n     */\n\n    return service;\n  },\n]);\n","import { SettingsViewModel, PublicSettingsViewModel } from '../../models/settings';\n\nangular.module('portainer.app').factory('SettingsService', [\n  '$q',\n  'Settings',\n  function SettingsServiceFactory($q, Settings) {\n    'use strict';\n    var service = {};\n\n    service.settings = function () {\n      var deferred = $q.defer();\n\n      Settings.get()\n        .$promise.then(function success(data) {\n          var settings = new SettingsViewModel(data);\n          deferred.resolve(settings);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve application settings', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.update = function (settings) {\n      return Settings.update({}, settings).$promise;\n    };\n\n    service.publicSettings = function () {\n      var deferred = $q.defer();\n\n      Settings.publicSettings()\n        .$promise.then(function success(data) {\n          var settings = new PublicSettingsViewModel(data);\n          deferred.resolve(settings);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve application settings', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.checkLDAPConnectivity = function (settings) {\n      return Settings.checkLDAPConnectivity({}, settings).$promise;\n    };\n\n    return service;\n  },\n]);\n","import angular from 'angular';\n\nangular.module('portainer.app').service('SSLService', SSLServiceFactory);\n\n/* @ngInject */\nfunction SSLServiceFactory(SSL) {\n  return {\n    upload,\n    get,\n  };\n\n  function get() {\n    return SSL.get().$promise;\n  }\n\n  function upload(SSLPayload) {\n    return SSL.upload(SSLPayload).$promise;\n  }\n}\n","import { Stack, StackStatus, StackType } from '@/react/common/stacks/types';\nimport { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n  AutoUpdateResponse,\n  RepoConfigResponse,\n} from '@/react/portainer/gitops/types';\n\nimport { IResource } from '../../components/datatable/createOwnershipColumn';\n\nexport class StackViewModel implements IResource {\n  Id: number;\n\n  Type: StackType;\n\n  Name: string;\n\n  EndpointId: EnvironmentId;\n\n  SwarmId: string;\n\n  Env: { name: string; value: string }[];\n\n  Option: { Prune: boolean; Force: boolean } | undefined;\n\n  IsComposeFormat: boolean;\n\n  ResourceControl?: ResourceControlViewModel;\n\n  Status: StackStatus;\n\n  CreationDate: number;\n\n  CreatedBy: string;\n\n  UpdateDate: number;\n\n  UpdatedBy: string;\n\n  Regular: boolean;\n\n  External: boolean;\n\n  Orphaned: boolean;\n\n  OrphanedRunning: boolean;\n\n  GitConfig: RepoConfigResponse | undefined;\n\n  FromAppTemplate: boolean;\n\n  AdditionalFiles: string[] | undefined;\n\n  AutoUpdate: AutoUpdateResponse | undefined;\n\n  Webhook: string | undefined;\n\n  StackFileVersion: string;\n\n  PreviousDeploymentInfo: unknown;\n\n  SupportRelativePath: boolean;\n\n  FilesystemPath: string;\n\n  constructor(stack: Stack, orphaned = false) {\n    this.Id = stack.Id;\n    this.Type = stack.Type;\n    this.Name = stack.Name;\n    this.EndpointId = stack.EndpointID;\n    this.SwarmId = stack.SwarmID;\n    this.Env = stack.Env ? stack.Env : [];\n    this.Option = stack.Option;\n    this.IsComposeFormat = stack.IsComposeFormat;\n\n    if (stack.ResourceControl && stack.ResourceControl.Id !== 0) {\n      this.ResourceControl = new ResourceControlViewModel(\n        stack.ResourceControl\n      );\n    }\n\n    this.Status = stack.Status;\n\n    this.CreationDate = stack.CreationDate;\n    this.CreatedBy = stack.CreatedBy;\n\n    this.UpdateDate = stack.UpdateDate;\n    this.UpdatedBy = stack.UpdatedBy;\n\n    this.GitConfig = stack.GitConfig;\n    this.FromAppTemplate = stack.FromAppTemplate;\n    this.AdditionalFiles = stack.AdditionalFiles;\n    this.AutoUpdate = stack.AutoUpdate;\n    this.Webhook = stack.Webhook;\n    this.StackFileVersion = stack.StackFileVersion;\n    this.PreviousDeploymentInfo = stack.PreviousDeploymentInfo;\n\n    this.Regular = !orphaned;\n    this.External = false;\n    this.Orphaned = orphaned;\n    this.OrphanedRunning = false;\n\n    this.SupportRelativePath = stack.SupportRelativePath;\n    this.FilesystemPath = stack.FilesystemPath;\n  }\n}\n","import _ from 'lodash-es';\nimport { transformAutoUpdateViewModel } from '@/react/portainer/gitops/AutoUpdateFieldset/utils';\nimport { StackViewModel } from '@/react/docker/stacks/view-models/stack';\n\nangular.module('portainer.app').factory('StackService', [\n  '$q',\n  '$async',\n  'Stack',\n  'StackByName',\n  'FileUploadService',\n  'StackHelper',\n  'ServiceService',\n  'ContainerService',\n  'SwarmService',\n  function StackServiceFactory($q, $async, Stack, StackByName, FileUploadService, StackHelper, ServiceService, ContainerService, SwarmService) {\n    'use strict';\n    var service = {\n      updateGit,\n      updateKubeGit,\n    };\n\n    service.stack = function (id) {\n      var deferred = $q.defer();\n\n      Stack.get({ id: id })\n        .$promise.then(function success(data) {\n          var stack = new StackViewModel(data);\n          deferred.resolve(stack);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve stack details', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.getStackFile = function (id) {\n      var deferred = $q.defer();\n\n      Stack.getStackFile({ id: id })\n        .$promise.then(function success(data) {\n          deferred.resolve(data.StackFileContent);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve stack content', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.migrateSwarmStack = function (stack, targetEndpointId, newName) {\n      var deferred = $q.defer();\n\n      SwarmService.swarm(targetEndpointId)\n        .then(function success(data) {\n          var swarm = data;\n          if (swarm.Id === stack.SwarmId) {\n            deferred.reject({ msg: 'Target environment is located in the same Swarm cluster as the current environment', err: null });\n            return;\n          }\n          return Stack.migrate({ id: stack.Id, endpointId: stack.EndpointId }, { EndpointID: targetEndpointId, SwarmID: swarm.Id, Name: newName }).$promise;\n        })\n        .then(function success() {\n          deferred.resolve();\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to migrate stack', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.migrateComposeStack = function (stack, targetEndpointId, newName) {\n      var deferred = $q.defer();\n\n      Stack.migrate({ id: stack.Id, endpointId: stack.EndpointId }, { EndpointID: targetEndpointId, Name: newName })\n        .$promise.then(function success() {\n          deferred.resolve();\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to migrate stack', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.stacks = function (compose, swarm, endpointId, includeOrphanedStacks = false) {\n      var deferred = $q.defer();\n\n      var queries = [];\n      if (compose) {\n        queries.push(service.composeStacks(endpointId, true, { EndpointID: endpointId, IncludeOrphanedStacks: includeOrphanedStacks }));\n      }\n      if (swarm) {\n        queries.push(service.swarmStacks(endpointId, true, { IncludeOrphanedStacks: includeOrphanedStacks }));\n      }\n\n      $q.all(queries)\n        .then(function success(data) {\n          var stacks = [];\n          if (data[0]) {\n            stacks = stacks.concat(data[0]);\n          }\n          if (data[1]) {\n            stacks = stacks.concat(data[1]);\n          }\n          deferred.resolve(stacks);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve stacks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.externalSwarmStacks = function () {\n      var deferred = $q.defer();\n\n      ServiceService.services()\n        .then(function success(services) {\n          deferred.resolve(StackHelper.getExternalStacksFromServices(services));\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve external stacks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.externalComposeStacks = function (environmentId) {\n      var deferred = $q.defer();\n\n      ContainerService.containers(environmentId, 1)\n        .then(function success(containers) {\n          deferred.resolve(StackHelper.getExternalStacksFromContainers(containers));\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve external stacks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.unionStacks = function (stacks, externalStacks) {\n      stacks.forEach((stack) => {\n        externalStacks.forEach((externalStack) => {\n          if (stack.Orphaned && stack.Name == externalStack.Name) {\n            stack.OrphanedRunning = true;\n          }\n        });\n      });\n      const result = _.unionWith(stacks, externalStacks, function (a, b) {\n        return a.Name === b.Name;\n      });\n\n      return result;\n    };\n\n    service.composeStacks = function (endpointId, includeExternalStacks, filters) {\n      var deferred = $q.defer();\n\n      $q.all({\n        stacks: Stack.query({ filters: filters }).$promise,\n        externalStacks: includeExternalStacks ? service.externalComposeStacks(endpointId) : [],\n      })\n        .then(function success(data) {\n          var stacks = data.stacks.map(function (item) {\n            return new StackViewModel(item, item.EndpointId != endpointId);\n          });\n\n          var externalStacks = data.externalStacks;\n          const result = service.unionStacks(stacks, externalStacks);\n          deferred.resolve(result);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve stacks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.swarmStacks = function (endpointId, includeExternalStacks, filters = {}) {\n      var deferred = $q.defer();\n\n      SwarmService.swarm()\n        .then(function success(data) {\n          var swarm = data;\n          filters = { SwarmID: swarm.Id, ...filters };\n\n          return $q.all({\n            stacks: Stack.query({ filters: filters }).$promise,\n            externalStacks: includeExternalStacks ? service.externalSwarmStacks() : [],\n          });\n        })\n        .then(function success(data) {\n          var stacks = data.stacks.map(function (item) {\n            return new StackViewModel(item, item.EndpointId != endpointId);\n          });\n\n          var externalStacks = data.externalStacks;\n          const result = service.unionStacks(stacks, externalStacks);\n          deferred.resolve(result);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve stacks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.remove = function (stack, external, endpointId) {\n      var deferred = $q.defer();\n\n      Stack.remove({ id: stack.Id ? stack.Id : stack.Name, external: external, endpointId: endpointId })\n        .$promise.then(function success() {\n          deferred.resolve();\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to remove the stack', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.removeKubernetesStacksByName = function (name, namespace, external, endpointId) {\n      var deferred = $q.defer();\n      StackByName.remove({ name: name, external: external, endpointId: endpointId, namespace: namespace })\n        .$promise.then(function success() {\n          deferred.resolve();\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to remove the stack', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.associate = function (stack, endpointId, orphanedRunning) {\n      var deferred = $q.defer();\n\n      if (stack.Type == 1) {\n        SwarmService.swarm()\n          .then(function success(data) {\n            const swarm = data;\n            return Stack.associate({ id: stack.Id, endpointId: endpointId, swarmId: swarm.Id, orphanedRunning }).$promise;\n          })\n          .then(function success(data) {\n            deferred.resolve(data);\n          })\n          .catch(function error(err) {\n            deferred.reject({ msg: 'Unable to associate the stack', err: err });\n          });\n      } else {\n        Stack.associate({ id: stack.Id, endpointId: endpointId, orphanedRunning })\n          .$promise.then(function success(data) {\n            deferred.resolve(data);\n          })\n          .catch(function error(err) {\n            deferred.reject({ msg: 'Unable to associate the stack', err: err });\n          });\n      }\n\n      return deferred.promise;\n    };\n\n    service.updateStack = function (stack, stackFile, env, prune, pullImage) {\n      return Stack.update(\n        { endpointId: stack.EndpointId },\n        {\n          id: stack.Id,\n          StackFileContent: stackFile,\n          Env: env,\n          Prune: prune,\n          PullImage: pullImage,\n        }\n      ).$promise;\n    };\n\n    service.updateKubeStack = function (stack, { stackFile, gitConfig, webhookId, stackName }) {\n      let payload = {};\n\n      if (stackFile) {\n        payload = {\n          StackFileContent: stackFile,\n          StackName: stackName,\n        };\n      } else {\n        payload = {\n          AutoUpdate: transformAutoUpdateViewModel(gitConfig.AutoUpdate, webhookId),\n          RepositoryReferenceName: gitConfig.RefName,\n          RepositoryAuthentication: gitConfig.RepositoryAuthentication,\n          RepositoryUsername: gitConfig.RepositoryUsername,\n          RepositoryPassword: gitConfig.RepositoryPassword,\n          TLSSkipVerify: gitConfig.TLSSkipVerify,\n        };\n      }\n\n      return Stack.update({ id: stack.Id, endpointId: stack.EndpointId }, payload).$promise;\n    };\n\n    service.createComposeStackFromFileUpload = function (name, stackFile, env, endpointId) {\n      return FileUploadService.createComposeStack(name, stackFile, env, endpointId);\n    };\n\n    service.createSwarmStackFromFileUpload = function (name, stackFile, env, endpointId) {\n      var deferred = $q.defer();\n\n      SwarmService.swarm()\n        .then(function success(data) {\n          var swarm = data;\n          return FileUploadService.createSwarmStack(name, swarm.Id, stackFile, env, endpointId);\n        })\n        .then(function success(data) {\n          deferred.resolve(data.data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create the stack', err: err });\n        });\n\n      return deferred.promise;\n    };\n    service.createComposeStackFromFileContent = function (name, stackFileContent, env, endpointId) {\n      var payload = {\n        Name: name,\n        StackFileContent: stackFileContent,\n        Env: env,\n      };\n      return Stack.create({ endpointId: endpointId }, { method: 'string', type: 'standalone', ...payload }).$promise;\n    };\n\n    service.createSwarmStackFromFileContent = function (name, stackFileContent, env, endpointId) {\n      var deferred = $q.defer();\n\n      SwarmService.swarm(endpointId)\n        .then(function success(swarm) {\n          var payload = {\n            Name: name,\n            SwarmID: swarm.Id,\n            StackFileContent: stackFileContent,\n            Env: env,\n          };\n          return Stack.create({ endpointId: endpointId }, { method: 'string', type: 'swarm', ...payload }).$promise;\n        })\n        .then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create the stack', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.createComposeStackFromGitRepository = function (name, repositoryOptions, env, endpointId) {\n      var payload = {\n        Name: name,\n        RepositoryURL: repositoryOptions.RepositoryURL,\n        RepositoryReferenceName: repositoryOptions.RepositoryReferenceName,\n        ComposeFile: repositoryOptions.ComposeFilePathInRepository,\n        AdditionalFiles: repositoryOptions.AdditionalFiles,\n        RepositoryAuthentication: repositoryOptions.RepositoryAuthentication,\n        RepositoryUsername: repositoryOptions.RepositoryUsername,\n        RepositoryPassword: repositoryOptions.RepositoryPassword,\n        Env: env,\n        FromAppTemplate: repositoryOptions.FromAppTemplate,\n        TLSSkipVerify: repositoryOptions.TLSSkipVerify,\n      };\n\n      if (repositoryOptions.AutoUpdate) {\n        payload.AutoUpdate = repositoryOptions.AutoUpdate;\n      }\n\n      return Stack.create({ endpointId: endpointId }, { method: 'repository', type: 'standalone', ...payload }).$promise;\n    };\n\n    service.createSwarmStackFromGitRepository = function (name, repositoryOptions, env, endpointId) {\n      var deferred = $q.defer();\n\n      SwarmService.swarm()\n        .then(function success(data) {\n          var swarm = data;\n          var payload = {\n            Name: name,\n            SwarmID: swarm.Id,\n            RepositoryURL: repositoryOptions.RepositoryURL,\n            RepositoryReferenceName: repositoryOptions.RepositoryReferenceName,\n            ComposeFile: repositoryOptions.ComposeFilePathInRepository,\n            AdditionalFiles: repositoryOptions.AdditionalFiles,\n            RepositoryAuthentication: repositoryOptions.RepositoryAuthentication,\n            RepositoryUsername: repositoryOptions.RepositoryUsername,\n            RepositoryPassword: repositoryOptions.RepositoryPassword,\n            Env: env,\n            FromAppTemplate: repositoryOptions.FromAppTemplate,\n            TLSSkipVerify: repositoryOptions.TLSSkipVerify,\n          };\n\n          if (repositoryOptions.AutoUpdate) {\n            payload.AutoUpdate = repositoryOptions.AutoUpdate;\n          }\n\n          return Stack.create({ endpointId: endpointId }, { method: 'repository', type: 'swarm', ...payload }).$promise;\n        })\n        .then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create the stack', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.duplicateStack = function duplicateStack(name, stackFileContent, env, endpointId, type) {\n      var action = type === 1 ? service.createSwarmStackFromFileContent : service.createComposeStackFromFileContent;\n      return action(name, stackFileContent, env, endpointId);\n    };\n\n    async function kubernetesDeployAsync(endpointId, method, payload) {\n      try {\n        await Stack.create({ endpointId: endpointId }, { method, type: 'kubernetes', ...payload }).$promise;\n      } catch (err) {\n        throw { err: err };\n      }\n    }\n\n    service.kubernetesDeploy = function (endpointId, method, payload) {\n      return $async(kubernetesDeployAsync, endpointId, method, payload);\n    };\n\n    service.start = start;\n    function start(endpointId, id) {\n      return Stack.start({ id, endpointId }).$promise;\n    }\n\n    service.stop = stop;\n    function stop(endpointId, id) {\n      return Stack.stop({ endpointId, id }).$promise;\n    }\n\n    function updateGit(id, endpointId, env, prune, gitConfig, pullImage) {\n      return Stack.updateGit(\n        { endpointId, id },\n        {\n          env,\n          prune,\n          RepositoryReferenceName: gitConfig.RefName,\n          RepositoryAuthentication: gitConfig.RepositoryAuthentication,\n          RepositoryUsername: gitConfig.RepositoryUsername,\n          RepositoryPassword: gitConfig.RepositoryPassword,\n          PullImage: pullImage,\n        }\n      ).$promise;\n    }\n\n    function updateKubeGit(id, endpointId, namespace, gitConfig) {\n      return Stack.updateGit(\n        { endpointId, id },\n        {\n          Namespace: namespace,\n          RepositoryReferenceName: gitConfig.RefName,\n          RepositoryAuthentication: gitConfig.RepositoryAuthentication,\n          RepositoryUsername: gitConfig.RepositoryUsername,\n          RepositoryPassword: gitConfig.RepositoryPassword,\n          StackName: gitConfig.StackName,\n        }\n      ).$promise;\n    }\n\n    service.updateGitStackSettings = function (id, endpointId, env, gitConfig, webhookId) {\n      return Stack.updateGitStackSettings(\n        { endpointId, id },\n        {\n          AutoUpdate: transformAutoUpdateViewModel(gitConfig.AutoUpdate, webhookId),\n          Env: env,\n          RepositoryReferenceName: gitConfig.RefName,\n          RepositoryAuthentication: gitConfig.RepositoryAuthentication,\n          RepositoryUsername: gitConfig.RepositoryUsername,\n          RepositoryPassword: gitConfig.RepositoryPassword,\n          Prune: gitConfig.Option.Prune,\n          TLSSkipVerify: gitConfig.TLSSkipVerify,\n        }\n      ).$promise;\n    };\n\n    return service;\n  },\n]);\n","import { getSystemStatus } from '@/react/portainer/system/useSystemStatus';\nimport { StatusViewModel } from '../../models/status';\n\nangular.module('portainer.app').factory('StatusService', StatusServiceFactory);\n\n/* @ngInject */\nfunction StatusServiceFactory($q) {\n  'use strict';\n  var service = {};\n\n  service.status = function () {\n    var deferred = $q.defer();\n\n    getSystemStatus()\n      .then(function success(data) {\n        var status = new StatusViewModel(data);\n        deferred.resolve(status);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve application status', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  return service;\n}\n","angular.module('portainer.app').factory('SupportService', [\n  '$q',\n  'Support',\n  function SupportServiceFactory($q, Support) {\n    'use strict';\n    var service = {};\n\n    service.supportProducts = function () {\n      var deferred = $q.defer();\n\n      Support.get()\n        .$promise.then(function success(data) {\n          deferred.resolve(data);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve support options', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import { TagViewModel } from '../../models/tag';\n\nangular.module('portainer.app').factory('TagService', [\n  '$q',\n  '$async',\n  'Tags',\n  function TagServiceFactory($q, $async, Tags) {\n    'use strict';\n    var service = {};\n\n    service.tags = function () {\n      var deferred = $q.defer();\n      Tags.query()\n        .$promise.then(function success(data) {\n          var tags = data.map(function (item) {\n            return new TagViewModel(item);\n          });\n          deferred.resolve(tags);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve tags', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.tagNames = function () {\n      var deferred = $q.defer();\n      Tags.query()\n        .$promise.then(function success(data) {\n          var tags = data.map(function (item) {\n            return item.Name;\n          });\n          deferred.resolve(tags);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve tags', err: err });\n        });\n      return deferred.promise;\n    };\n\n    async function createTagAsync(name) {\n      var payload = {\n        Name: name,\n      };\n      try {\n        const tag = await Tags.create({}, payload).$promise;\n        return new TagViewModel(tag);\n      } catch (err) {\n        throw { msg: 'Unable to create tag', err };\n      }\n    }\n\n    function createTag(name) {\n      return $async(createTagAsync, name);\n    }\n    service.createTag = createTag;\n\n    service.deleteTag = function (id) {\n      return Tags.remove({ id: id }).$promise;\n    };\n\n    return service;\n  },\n]);\n","import { TeamMembershipModel } from '../../models/teamMembership';\n\nangular.module('portainer.app').factory('TeamMembershipService', [\n  '$q',\n  'TeamMemberships',\n  function TeamMembershipFactory($q, TeamMemberships) {\n    'use strict';\n    var service = {};\n\n    service.memberships = function () {\n      var deferred = $q.defer();\n      TeamMemberships.query()\n        .$promise.then(function success(data) {\n          var memberships = data.map(function (item) {\n            return new TeamMembershipModel(item);\n          });\n          deferred.resolve(memberships);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve team memberships', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.createMembership = function (userId, teamId, role) {\n      var payload = {\n        UserID: userId,\n        TeamID: teamId,\n        Role: role,\n      };\n      return TeamMemberships.create({}, payload).$promise;\n    };\n\n    service.deleteMembership = function (id) {\n      return TeamMemberships.remove({ id: id }).$promise;\n    };\n\n    service.updateMembership = function (id, userId, teamId, role) {\n      var payload = {\n        UserID: userId,\n        TeamID: teamId,\n        Role: role,\n      };\n      return TeamMemberships.update({ id: id }, payload).$promise;\n    };\n\n    return service;\n  },\n]);\n","import { TeamViewModel } from '../../models/team';\nimport { TeamMembershipModel } from '../../models/teamMembership';\n\nangular.module('portainer.app').factory('TeamService', [\n  '$q',\n  'Teams',\n  function TeamServiceFactory($q, Teams) {\n    'use strict';\n    var service = {};\n\n    service.teams = function (environmentId) {\n      var deferred = $q.defer();\n      Teams.query({ environmentId: environmentId })\n        .$promise.then(function success(data) {\n          var teams = data.map(function (item) {\n            return new TeamViewModel(item);\n          });\n          deferred.resolve(teams);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve teams', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.team = function (id) {\n      var deferred = $q.defer();\n      Teams.get({ id: id })\n        .$promise.then(function success(data) {\n          var team = new TeamViewModel(data);\n          deferred.resolve(team);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve team details', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.createTeam = function (name, leaderIds) {\n      var deferred = $q.defer();\n      var payload = {\n        Name: name,\n        TeamLeaders: leaderIds,\n      };\n      Teams.create({}, payload)\n        .$promise.then(function success() {\n          deferred.resolve();\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to create team', err: err });\n        });\n      return deferred.promise;\n    };\n\n    service.deleteTeam = function (id) {\n      return Teams.remove({ id: id }).$promise;\n    };\n\n    service.userMemberships = function (id) {\n      var deferred = $q.defer();\n      Teams.queryMemberships({ id: id })\n        .$promise.then(function success(data) {\n          var memberships = data.map(function (item) {\n            return new TeamMembershipModel(item);\n          });\n          deferred.resolve(memberships);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve user memberships for the team', err: err });\n        });\n      return deferred.promise;\n    };\n\n    return service;\n  },\n]);\n","import { commandStringToArray } from '@/docker/helpers/containers';\nimport { TemplateViewModel } from '@/react/portainer/templates/app-templates/view-model';\nimport { DockerHubViewModel } from 'Portainer/models/dockerhub';\n\nangular.module('portainer.app').factory('TemplateService', TemplateServiceFactory);\n\n/* @ngInject */\nfunction TemplateServiceFactory($q, Templates, TemplateHelper, ImageHelper, ContainerHelper, EndpointService) {\n  var service = {\n    templates,\n  };\n\n  function templates(endpointId) {\n    const deferred = $q.defer();\n\n    $q.all({\n      templates: Templates.query().$promise,\n      registries: EndpointService.registries(endpointId),\n    })\n      .then(function success({ templates, registries }) {\n        const version = templates.version;\n        deferred.resolve(\n          templates.templates.map((item) => {\n            try {\n              const template = new TemplateViewModel(item, version);\n              const registryURL = template.RegistryModel.Registry.URL;\n              const registry = registryURL ? registries.find((reg) => reg.URL === registryURL) : new DockerHubViewModel();\n              template.RegistryModel.Registry = registry;\n              return template;\n            } catch (err) {\n              deferred.reject({ msg: 'Unable to retrieve templates', err: err });\n            }\n          })\n        );\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve templates', err: err });\n      });\n\n    return deferred.promise;\n  }\n\n  service.templateFile = templateFile;\n  function templateFile(repositoryUrl, composeFilePathInRepository) {\n    return Templates.file({ repositoryUrl, composeFilePathInRepository }).$promise;\n  }\n\n  service.createTemplateConfiguration = function (template, containerName, network) {\n    var imageConfiguration = ImageHelper.createImageConfigForContainer(template.RegistryModel);\n    var containerConfiguration = createContainerConfiguration(template, containerName, network);\n    containerConfiguration.Image = imageConfiguration.fromImage;\n    return containerConfiguration;\n  };\n\n  function createContainerConfiguration(template, containerName, network) {\n    var configuration = TemplateHelper.getDefaultContainerConfiguration();\n    configuration.HostConfig.NetworkMode = network.Name;\n    configuration.HostConfig.Privileged = template.Privileged;\n    configuration.HostConfig.RestartPolicy = { Name: template.RestartPolicy };\n    configuration.HostConfig.ExtraHosts = template.Hosts ? template.Hosts : [];\n    configuration.name = containerName;\n    configuration.Hostname = template.Hostname;\n    configuration.Env = TemplateHelper.EnvToStringArray(template.Env);\n    configuration.Cmd = commandStringToArray(template.Command);\n    var portConfiguration = TemplateHelper.portArrayToPortConfiguration(template.Ports);\n    configuration.HostConfig.PortBindings = portConfiguration.bindings;\n    configuration.ExposedPorts = portConfiguration.exposedPorts;\n    var consoleConfiguration = TemplateHelper.getConsoleConfiguration(template.Interactive);\n    configuration.OpenStdin = consoleConfiguration.openStdin;\n    configuration.Tty = consoleConfiguration.tty;\n    configuration.Labels = TemplateHelper.updateContainerConfigurationWithLabels(template.Labels);\n    return configuration;\n  }\n\n  service.updateContainerConfigurationWithVolumes = function (configuration, template, generatedVolumesPile) {\n    var volumes = template.Volumes;\n    TemplateHelper.createVolumeBindings(volumes, generatedVolumesPile);\n    volumes.forEach(function (volume) {\n      if (volume.binding) {\n        configuration.Volumes[volume.container] = {};\n        configuration.HostConfig.Binds.push(volume.binding);\n      }\n    });\n  };\n\n  return service;\n}\n","import _ from 'lodash-es';\n\nimport { UserTokenModel, UserViewModel } from '@/portainer/models/user';\nimport { getUsers } from '@/portainer/users/user.service';\nimport { getUser } from '@/portainer/users/queries/useUser';\n\nimport { TeamMembershipModel } from '../../models/teamMembership';\n\n/* @ngInject */\nexport function UserService($q, Users, TeamService, TeamMembershipService) {\n  'use strict';\n  var service = {};\n\n  service.users = async function (includeAdministrators, environmentId) {\n    const users = await getUsers(includeAdministrators, environmentId);\n\n    return users.map((u) => new UserViewModel(u));\n  };\n\n  service.user = async function (userId) {\n    const user = await getUser(userId);\n\n    return new UserViewModel(user);\n  };\n\n  service.createUser = function (username, password, role, teamIds) {\n    var deferred = $q.defer();\n\n    var payload = {\n      username: username,\n      password: password,\n      role: role,\n    };\n\n    Users.create({}, payload)\n      .$promise.then(function success(data) {\n        var userId = data.Id;\n        var teamMembershipQueries = [];\n        angular.forEach(teamIds, function (teamId) {\n          teamMembershipQueries.push(TeamMembershipService.createMembership(userId, teamId, 2));\n        });\n        $q.all(teamMembershipQueries).then(function success() {\n          deferred.resolve();\n        });\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to create user', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  service.deleteUser = function (id) {\n    return Users.remove({ id: id }).$promise;\n  };\n\n  service.updateUser = function (id, { newPassword, role, username }) {\n    return Users.update({ id }, { newPassword, role, username }).$promise;\n  };\n\n  service.updateUserPassword = function (id, currentPassword, newPassword) {\n    var payload = {\n      Password: currentPassword,\n      NewPassword: newPassword,\n    };\n\n    return Users.updatePassword({ id: id }, payload).$promise;\n  };\n\n  service.updateUserTheme = function (id, theme) {\n    return Users.updateTheme({ id }, { theme }).$promise;\n  };\n\n  service.userMemberships = function (id) {\n    var deferred = $q.defer();\n\n    Users.queryMemberships({ id: id })\n      .$promise.then(function success(data) {\n        var memberships = data.map(function (item) {\n          return new TeamMembershipModel(item);\n        });\n        deferred.resolve(memberships);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve user memberships', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  service.userLeadingTeams = function (id) {\n    var deferred = $q.defer();\n\n    $q.all({\n      teams: TeamService.teams(),\n      memberships: service.userMemberships(id),\n    })\n      .then(function success(data) {\n        var memberships = data.memberships;\n        var teams = data.teams.filter(function (team) {\n          var membership = _.find(memberships, { TeamId: team.Id });\n          if (membership && membership.Role === 1) {\n            return team;\n          }\n        });\n        deferred.resolve(teams);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve user teams', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  service.getAccessTokens = function (id) {\n    var deferred = $q.defer();\n\n    Users.getAccessTokens({ id: id })\n      .$promise.then(function success(data) {\n        var userTokens = data.map(function (item) {\n          return new UserTokenModel(item);\n        });\n        deferred.resolve(userTokens);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve user tokens', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  service.deleteAccessToken = function (id, tokenId) {\n    return Users.deleteAccessToken({ id: id, tokenId: tokenId }).$promise;\n  };\n\n  service.initAdministrator = function (username, password) {\n    return Users.initAdminUser({ Username: username, Password: password }).$promise;\n  };\n\n  service.administratorExists = function () {\n    var deferred = $q.defer();\n\n    Users.checkAdminUser({})\n      .$promise.then(function success() {\n        deferred.resolve(true);\n      })\n      .catch(function error(err) {\n        if (err.status === 404) {\n          deferred.resolve(false);\n        }\n        deferred.reject({ msg: 'Unable to verify administrator account existence', err: err });\n      });\n\n    return deferred.promise;\n  };\n\n  return service;\n}\n","import { WebhookViewModel } from '../../models/webhook';\n\nangular.module('portainer.app').factory('WebhookService', [\n  '$q',\n  'Webhooks',\n  function WebhookServiceFactory($q, Webhooks) {\n    'use strict';\n    var service = {};\n\n    service.webhooks = function (serviceID, endpointID) {\n      var deferred = $q.defer();\n      var filters = { ResourceID: serviceID, EndpointID: endpointID };\n\n      Webhooks.query({ filters: filters })\n        .$promise.then(function success(data) {\n          var webhooks = data.map(function (item) {\n            return new WebhookViewModel(item);\n          });\n          deferred.resolve(webhooks);\n        })\n        .catch(function error(err) {\n          deferred.reject({ msg: 'Unable to retrieve webhooks', err: err });\n        });\n\n      return deferred.promise;\n    };\n\n    service.createServiceWebhook = function (serviceID, endpointID, registryID) {\n      return Webhooks.create({ ResourceID: serviceID, EndpointID: endpointID, WebhookType: 1, registryID }).$promise;\n    };\n\n    service.updateServiceWebhook = function (id, registryID) {\n      return Webhooks.update({ id, registryID }).$promise;\n    };\n\n    service.deleteWebhook = function (id) {\n      return Webhooks.remove({ id: id }).$promise;\n    };\n\n    return service;\n  },\n]);\n","/**\n * Look a the following PR for how to use the wrapper\n * and documentation about it\n * https://github.com/portainer/portainer/pull/2945\n */\n\nangular.module('portainer').factory('$async', [\n  '$q',\n  function ($q) {\n    return function (asyncFunc, ...args) {\n      const def = $q.defer();\n      const wrapper = function (params) {\n        const deferred = $q.defer();\n        asyncFunc(...params)\n          .then(deferred.resolve)\n          .catch(deferred.reject);\n        return deferred.promise;\n      };\n\n      wrapper(args).then(def.resolve).catch(def.reject);\n      return def.promise;\n    };\n  },\n]);\n","import { hasAuthorizations as useUserHasAuthorization } from '@/react/hooks/useUser';\nimport { getCurrentUser } from '../users/queries/useLoadCurrentUser';\nimport * as userHelpers from '../users/user.helpers';\nimport { clear as clearSessionStorage } from './session-storage';\nconst DEFAULT_USER = 'admin';\nconst DEFAULT_PASSWORD = 'K7yJPP5qNK4hf1QsRnfV';\n\nangular.module('portainer.app').factory('Authentication', [\n  '$async',\n  '$state',\n  'Auth',\n  'OAuth',\n  'LocalStorage',\n  'StateManager',\n  'EndpointProvider',\n  'ThemeManager',\n  function AuthenticationFactory($async, $state, Auth, OAuth, LocalStorage, StateManager, EndpointProvider, ThemeManager) {\n    'use strict';\n\n    var user = {};\n    if (process.env.NODE_ENV === 'development') {\n      window.login = loginAsync;\n    }\n\n    return {\n      init,\n      OAuthLogin,\n      login,\n      logout,\n      isAuthenticated,\n      getUserDetails,\n      isAdmin,\n      isEdgeAdmin,\n      isPureAdmin,\n      hasAuthorizations,\n      redirectIfUnauthorized,\n    };\n\n    async function initAsync() {\n      try {\n        const userId = LocalStorage.getUserId();\n        if (userId && user.ID === userId) {\n          return true;\n        }\n        await tryAutoLoginExtension();\n        await loadUserData();\n        return true;\n      } catch (error) {\n        return tryAutoLoginExtension();\n      }\n    }\n\n    async function logoutAsync() {\n      if (isAuthenticated()) {\n        await Auth.logout().$promise;\n      }\n\n      clearSessionStorage();\n      StateManager.clean();\n      EndpointProvider.clean();\n      LocalStorage.cleanAuthData();\n      LocalStorage.storeLoginStateUUID('');\n      tryAutoLoginExtension();\n      cleanUserData();\n    }\n\n    function logout() {\n      return $async(logoutAsync);\n    }\n\n    function init() {\n      return $async(initAsync);\n    }\n\n    async function OAuthLoginAsync(code) {\n      await OAuth.validate({ code: code }).$promise;\n      await loadUserData();\n    }\n\n    function OAuthLogin(code) {\n      return $async(OAuthLoginAsync, code);\n    }\n\n    async function loginAsync(username, password) {\n      await Auth.login({ username: username, password: password }).$promise;\n      await loadUserData();\n    }\n\n    function login(username, password) {\n      return $async(loginAsync, username, password);\n    }\n\n    function isAuthenticated() {\n      return !!user.ID;\n    }\n\n    function getUserDetails() {\n      return user;\n    }\n\n    function cleanUserData() {\n      user = {};\n    }\n\n    async function loadUserData() {\n      const userData = await getCurrentUser();\n      user.username = userData.Username;\n      user.ID = userData.Id;\n      user.role = userData.Role;\n      user.forceChangePassword = userData.forceChangePassword;\n      user.endpointAuthorizations = userData.EndpointAuthorizations;\n      user.portainerAuthorizations = userData.PortainerAuthorizations;\n\n      // Initialize user theme base on UserTheme from database\n      const userTheme = userData.ThemeSettings ? userData.ThemeSettings.color : 'auto';\n      if (userTheme === 'auto' || !userTheme) {\n        ThemeManager.autoTheme();\n      } else {\n        ThemeManager.setTheme(userTheme);\n      }\n\n      LocalStorage.storeUserId(userData.Id);\n    }\n\n    function tryAutoLoginExtension() {\n      if (!window.ddExtension) {\n        return false;\n      }\n\n      return login(DEFAULT_USER, DEFAULT_PASSWORD);\n    }\n\n    // To avoid creating divergence between CE and EE\n    // isAdmin checks if the user is a portainer admin or edge admin\n\n    function isEdgeAdmin(noEnvScope = false) {\n      const environment = EndpointProvider.currentEndpoint();\n      return userHelpers.isEdgeAdmin({ Role: user.role }, noEnvScope ? undefined : environment);\n    }\n\n    /**\n     * @deprecated use Authentication.isAdmin instead\n     */\n    function isAdmin(noEnvScope = false) {\n      return isEdgeAdmin(noEnvScope);\n    }\n\n    // To avoid creating divergence between CE and EE\n    // isPureAdmin checks if the user is portainer admin only\n    function isPureAdmin() {\n      return userHelpers.isPureAdmin({ Role: user.role });\n    }\n\n    function hasAuthorizations(authorizations) {\n      const endpointId = EndpointProvider.endpointID();\n\n      if (isEdgeAdmin()) {\n        return true;\n      }\n\n      return useUserHasAuthorization(\n        {\n          EndpointAuthorizations: user.endpointAuthorizations,\n        },\n        authorizations,\n        endpointId\n      );\n    }\n\n    function redirectIfUnauthorized(authorizations) {\n      const authorized = hasAuthorizations(authorizations);\n      if (!authorized) {\n        $state.go('portainer.home');\n      }\n    }\n  },\n]);\n","import Chart from 'chart.js';\nimport filesize from 'filesize';\n\nangular.module('portainer.app').factory('ChartService', [\n  function ChartService() {\n    'use strict';\n\n    // Max. number of items to display on a chart\n    var CHART_LIMIT = 600;\n\n    var service = {};\n\n    function defaultChartOptions(pos, tooltipCallback, scalesCallback, isStacked) {\n      return {\n        animation: { duration: 0 },\n        responsiveAnimationDuration: 0,\n        responsive: true,\n        tooltips: {\n          mode: 'index',\n          intersect: false,\n          position: pos,\n          callbacks: {\n            label: function (tooltipItem, data) {\n              var datasetLabel = data.datasets[tooltipItem.datasetIndex].label;\n              return tooltipCallback(datasetLabel, tooltipItem.yLabel);\n            },\n          },\n        },\n        layout: {\n          padding: {\n            left: 15,\n          },\n        },\n        hover: { animationDuration: 0 },\n        scales: {\n          yAxes: [\n            {\n              stacked: isStacked,\n              ticks: {\n                beginAtZero: true,\n                callback: scalesCallback,\n                precision: 0,\n              },\n            },\n          ],\n        },\n      };\n    }\n\n    function CreateChart(context, label, tooltipCallback, scalesCallback) {\n      return new Chart(context, {\n        type: 'line',\n        data: {\n          labels: [],\n          datasets: [\n            {\n              label: label,\n              data: [],\n              fill: true,\n              backgroundColor: 'rgba(151,187,205,0.4)',\n              borderColor: 'rgba(151,187,205,0.6)',\n              pointBackgroundColor: 'rgba(151,187,205,1)',\n              pointBorderColor: 'rgba(151,187,205,1)',\n              pointRadius: 2,\n              borderWidth: 2,\n            },\n          ],\n        },\n        options: defaultChartOptions('nearest', tooltipCallback, scalesCallback),\n      });\n    }\n\n    function CreateMemoryChart(context, tooltipCallback, scalesCallback) {\n      return new Chart(context, {\n        type: 'line',\n        data: {\n          labels: [],\n          datasets: [\n            {\n              label: 'Memory',\n              data: [],\n              fill: true,\n              backgroundColor: 'rgba(151,187,205,0.4)',\n              borderColor: 'rgba(151,187,205,0.6)',\n              pointBackgroundColor: 'rgba(151,187,205,1)',\n              pointBorderColor: 'rgba(151,187,205,1)',\n              pointRadius: 2,\n              borderWidth: 2,\n            },\n            {\n              label: 'Cache',\n              data: [],\n              fill: true,\n              backgroundColor: 'rgba(255,180,174,0.4)',\n              borderColor: 'rgba(255,180,174,0.6)',\n              pointBackgroundColor: 'rgba(255,180,174,1)',\n              pointBorderColor: 'rgba(255,180,174,1)',\n              pointRadius: 2,\n              borderWidth: 2,\n            },\n          ],\n        },\n        options: defaultChartOptions('nearest', tooltipCallback, scalesCallback, true),\n      });\n    }\n\n    function CreateIOChart(context, tooltipCallback, scalesCallback) {\n      return new Chart(context, {\n        type: 'line',\n        data: {\n          labels: [],\n          datasets: [\n            {\n              label: 'Read (Aggregate)',\n              data: [],\n              fill: true,\n              backgroundColor: 'rgba(151,187,205,0.4)',\n              borderColor: 'rgba(151,187,205,0.6)',\n              pointBackgroundColor: 'rgba(151,187,205,1)',\n              pointBorderColor: 'rgba(151,187,205,1)',\n              pointRadius: 2,\n              borderWidth: 2,\n            },\n            {\n              label: 'Write (Aggregate)',\n              data: [],\n              fill: true,\n              backgroundColor: 'rgba(255,180,174,0.4)',\n              borderColor: 'rgba(255,180,174,0.6)',\n              pointBackgroundColor: 'rgba(255,180,174,1)',\n              pointBorderColor: 'rgba(255,180,174,1)',\n              pointRadius: 2,\n              borderWidth: 2,\n            },\n          ],\n        },\n        options: defaultChartOptions('nearest', tooltipCallback, scalesCallback, true),\n      });\n    }\n\n    service.CreateCPUChart = function (context) {\n      return CreateChart(context, 'CPU', percentageBasedTooltipLabel, percentageBasedAxisLabel);\n    };\n\n    service.CreateIOChart = function (context) {\n      return CreateIOChart(context, byteBasedTooltipLabel, byteBasedAxisLabel);\n    };\n\n    service.CreateMemoryChart = function (context) {\n      return CreateMemoryChart(context, byteBasedTooltipLabel, byteBasedAxisLabel);\n    };\n\n    service.CreateNetworkChart = function (context) {\n      return new Chart(context, {\n        type: 'line',\n        data: {\n          labels: [],\n          datasets: [\n            {\n              label: 'RX on eth0',\n              data: [],\n              fill: false,\n              backgroundColor: 'rgba(151,187,205,0.4)',\n              borderColor: 'rgba(151,187,205,0.6)',\n              pointBackgroundColor: 'rgba(151,187,205,1)',\n              pointBorderColor: 'rgba(151,187,205,1)',\n              pointRadius: 2,\n              borderWidth: 2,\n            },\n            {\n              label: 'TX on eth0',\n              data: [],\n              fill: false,\n              backgroundColor: 'rgba(255,180,174,0.4)',\n              borderColor: 'rgba(255,180,174,0.6)',\n              pointBackgroundColor: 'rgba(255,180,174,1)',\n              pointBorderColor: 'rgba(255,180,174,1)',\n              pointRadius: 2,\n              borderWidth: 2,\n            },\n          ],\n        },\n        options: defaultChartOptions('average', byteBasedTooltipLabel, byteBasedAxisLabel),\n      });\n    };\n\n    function LimitChartItems(chart, CHART_LIMIT) {\n      if (chart.data.datasets[0].data.length > CHART_LIMIT) {\n        chart.data.labels.pop();\n        chart.data.datasets[0].data.pop();\n        chart.data.datasets[1].data.pop();\n      }\n    }\n\n    function UpdateChart(label, value, chart) {\n      chart.data.labels.push(label);\n      chart.data.datasets[0].data.push(value);\n\n      if (chart.data.datasets[0].data.length > CHART_LIMIT) {\n        chart.data.labels.pop();\n        chart.data.datasets[0].data.pop();\n      }\n\n      chart.update(0);\n    }\n\n    service.UpdateMemoryChart = function UpdateChart(label, memoryValue, cacheValue, chart) {\n      chart.data.labels.push(label);\n      chart.data.datasets[0].data.push(memoryValue);\n\n      if (cacheValue) {\n        chart.data.datasets[1].data.push(cacheValue);\n      } else {\n        // cache values are not available for Windows\n        chart.data.datasets.splice(1, 1);\n      }\n\n      LimitChartItems(chart);\n\n      chart.update(0);\n    };\n    service.UpdateCPUChart = UpdateChart;\n    service.UpdateIOChart = function (label, read, write, chart) {\n      chart.data.labels.push(label);\n      chart.data.datasets[0].data.push(read);\n      chart.data.datasets[1].data.push(write);\n      LimitChartItems(chart);\n      chart.update(0);\n    };\n\n    service.UpdateNetworkChart = function (label, rx, tx, chart) {\n      chart.data.labels.push(label);\n      chart.data.datasets[0].data.push(rx);\n      chart.data.datasets[1].data.push(tx);\n\n      LimitChartItems(chart);\n\n      chart.update(0);\n    };\n\n    function byteBasedTooltipLabel(label, value) {\n      var processedValue = 0;\n      if (value > 5) {\n        processedValue = filesize(value, { base: 10, round: 1 });\n      } else {\n        processedValue = value.toFixed(1) + 'B';\n      }\n      return label + ': ' + processedValue;\n    }\n\n    function byteBasedAxisLabel(value) {\n      if (value > 5) {\n        return filesize(value, { base: 10, round: 1 });\n      }\n      return value.toFixed(1) + 'B';\n    }\n\n    function percentageBasedAxisLabel(value) {\n      if (value > 1) {\n        return Math.round(value) + '%';\n      }\n      return value.toFixed(1) + '%';\n    }\n\n    function percentageBasedTooltipLabel(label, value) {\n      var processedValue = 0;\n      if (value > 1) {\n        processedValue = Math.round(value);\n      } else {\n        processedValue = value.toFixed(1);\n      }\n      return label + ': ' + processedValue + '%';\n    }\n\n    return service;\n  },\n]);\n","import angular from 'angular';\n\nimport * as sessionStorage from './session-storage';\n\nangular.module('portainer.app').factory('DatatableService', DatatableServiceFactory);\n\nconst DATATABLE_PREFIX = 'datatable_';\nconst TEXT_FILTER_KEY_PREFIX = `${DATATABLE_PREFIX}text_filter_`;\n\n/* @ngInject */\nfunction DatatableServiceFactory(LocalStorage) {\n  return {\n    setDataTableSettings,\n    getDataTableSettings,\n    setDataTableTextFilters,\n    getDataTableTextFilters,\n    setDataTableFilters,\n    getDataTableFilters,\n    getDataTableOrder,\n    setDataTableOrder,\n    setDataTableExpandedItems,\n    setColumnVisibilitySettings,\n    getDataTableExpandedItems,\n    setDataTableSelectedItems,\n    getDataTableSelectedItems,\n    getColumnVisibilitySettings,\n  };\n\n  function setDataTableSettings(key, settings) {\n    LocalStorage.storeDataTableSettings(key, settings);\n  }\n\n  function getDataTableSettings(key) {\n    return LocalStorage.getDataTableSettings(key);\n  }\n\n  function setDataTableTextFilters(key, filters) {\n    sessionStorage.save(TEXT_FILTER_KEY_PREFIX + key, filters);\n  }\n\n  function getDataTableTextFilters(key) {\n    return sessionStorage.get(TEXT_FILTER_KEY_PREFIX + key);\n  }\n\n  function setDataTableFilters(key, filters) {\n    LocalStorage.storeDataTableFilters(key, filters);\n  }\n\n  function getDataTableFilters(key) {\n    return LocalStorage.getDataTableFilters(key);\n  }\n\n  function getDataTableOrder(key) {\n    return LocalStorage.getDataTableOrder(key);\n  }\n\n  function setDataTableOrder(key, orderBy, reverse) {\n    var filter = {\n      orderBy: orderBy,\n      reverse: reverse,\n    };\n    LocalStorage.storeDataTableOrder(key, filter);\n  }\n\n  function setDataTableExpandedItems(key, expandedItems) {\n    LocalStorage.storeDataTableExpandedItems(key, expandedItems);\n  }\n\n  function setColumnVisibilitySettings(key, columnVisibility) {\n    LocalStorage.storeColumnVisibilitySettings(key, columnVisibility);\n  }\n\n  function getDataTableExpandedItems(key) {\n    return LocalStorage.getDataTableExpandedItems(key);\n  }\n\n  function setDataTableSelectedItems(key, selectedItems) {\n    LocalStorage.storeDataTableSelectedItems(key, selectedItems);\n  }\n\n  function getDataTableSelectedItems(key) {\n    return LocalStorage.getDataTableSelectedItems(key);\n  }\n\n  function getColumnVisibilitySettings(key) {\n    return LocalStorage.getColumnVisibilitySettings(key);\n  }\n}\n","import { PortainerEndpointCreationTypes } from 'Portainer/models/endpoint/models';\nimport { genericHandler, jsonObjectsToArrayHandler } from '../../docker/rest/response/handlers';\n\nangular.module('portainer.app').factory('FileUploadService', [\n  '$q',\n  'Upload',\n  'EndpointProvider',\n  function FileUploadFactory($q, Upload, EndpointProvider) {\n    'use strict';\n\n    var service = {};\n\n    function uploadFile(url, file) {\n      return Upload.upload({ url: url, data: { file: file } });\n    }\n\n    service.buildImage = function (endpointID, names, file, path) {\n      return Upload.http({\n        url: `api/endpoints/${endpointID}/docker/build`,\n        headers: {\n          'Content-Type': file.type,\n        },\n        data: file,\n        params: {\n          t: names,\n          dockerfile: path,\n        },\n        ignoreLoadingBar: true,\n        transformResponse: function (data) {\n          return jsonObjectsToArrayHandler(data);\n        },\n      });\n    };\n\n    service.buildImageFromFiles = function (endpointID, names, files) {\n      return Upload.upload({\n        url: `api/endpoints/${endpointID}/docker/build`,\n        headers: {\n          'Content-Type': 'multipart/form-data',\n        },\n        data: { file: files },\n        params: {\n          t: names,\n        },\n        transformResponse: function (data) {\n          return jsonObjectsToArrayHandler(data);\n        },\n      });\n    };\n\n    service.loadImages = function (file) {\n      var endpointID = EndpointProvider.endpointID();\n      return Upload.http({\n        url: 'api/endpoints/' + endpointID + '/docker/images/load',\n        headers: {\n          'Content-Type': file.type,\n        },\n        data: file,\n        ignoreLoadingBar: true,\n        transformResponse: genericHandler,\n      });\n    };\n\n    service.createSchedule = function (payload) {\n      return Upload.upload({\n        url: 'api/edge_jobs/create/file',\n        data: {\n          file: payload.File,\n          Name: payload.Name,\n          CronExpression: payload.CronExpression,\n          Image: payload.Image,\n          Endpoints: Upload.json(payload.Endpoints),\n          RetryCount: payload.RetryCount,\n          RetryInterval: payload.RetryInterval,\n        },\n      });\n    };\n\n    service.uploadBackup = function (file, password) {\n      return Upload.upload({\n        url: 'api/restore',\n        data: {\n          file,\n          password,\n        },\n      });\n    };\n\n    service.createSwarmStack = function (stackName, swarmId, file, env, endpointId) {\n      return Upload.upload({\n        url: `api/stacks/create/swarm/file?endpointId=${endpointId}`,\n        data: {\n          file: file,\n          Name: stackName,\n          SwarmID: swarmId,\n          Env: Upload.json(env),\n        },\n        ignoreLoadingBar: true,\n      });\n    };\n\n    service.createComposeStack = function (stackName, file, env, endpointId) {\n      return Upload.upload({\n        url: `api/stacks/create/standalone/file?endpointId=${endpointId}`,\n        data: {\n          file: file,\n          Name: stackName,\n          Env: Upload.json(env),\n        },\n        ignoreLoadingBar: true,\n      });\n    };\n\n    service.createEdgeStack = function createEdgeStack({ EdgeGroups, envVars, ...payload }, file) {\n      return Upload.upload({\n        url: `api/edge_stacks/create/file`,\n        data: {\n          file,\n          EdgeGroups: Upload.json(EdgeGroups),\n          EnvVars: Upload.json(envVars),\n          ...payload,\n        },\n        ignoreLoadingBar: true,\n      });\n    };\n\n    service.createCustomTemplate = function createCustomTemplate(data) {\n      return Upload.upload({\n        url: 'api/custom_templates/create/file',\n        data,\n        ignoreLoadingBar: true,\n      });\n    };\n\n    service.configureRegistry = function (registryId, registryManagementConfigurationModel) {\n      return Upload.upload({\n        url: 'api/registries/' + registryId + '/configure',\n        data: registryManagementConfigurationModel,\n      });\n    };\n\n    service.createEndpoint = function (\n      name,\n      creationType,\n      URL,\n      PublicURL,\n      groupID,\n      tagIds,\n      TLS,\n      TLSSkipVerify,\n      TLSSkipClientVerify,\n      TLSCAFile,\n      TLSCertFile,\n      TLSKeyFile,\n      checkinInterval\n    ) {\n      return Upload.upload({\n        url: 'api/endpoints',\n        data: {\n          Name: name,\n          EndpointCreationType: creationType,\n          URL: URL,\n          PublicURL: PublicURL,\n          GroupID: groupID,\n          TagIds: Upload.json(tagIds),\n          TLS: TLS,\n          TLSSkipVerify: TLSSkipVerify,\n          TLSSkipClientVerify: TLSSkipClientVerify,\n          TLSCACertFile: TLSCAFile,\n          TLSCertFile: TLSCertFile,\n          TLSKeyFile: TLSKeyFile,\n          CheckinInterval: checkinInterval,\n        },\n        ignoreLoadingBar: true,\n      });\n    };\n\n    service.createAzureEndpoint = function (name, applicationId, tenantId, authenticationKey, groupId, tagIds) {\n      return Upload.upload({\n        url: 'api/endpoints',\n        data: {\n          Name: name,\n          EndpointCreationType: PortainerEndpointCreationTypes.AzureEnvironment,\n          GroupID: groupId,\n          TagIds: Upload.json(tagIds),\n          AzureApplicationID: applicationId,\n          AzureTenantID: tenantId,\n          AzureAuthenticationKey: authenticationKey,\n        },\n        ignoreLoadingBar: true,\n      });\n    };\n\n    service.uploadLDAPTLSFiles = function (TLSCAFile, TLSCertFile, TLSKeyFile) {\n      var queue = [];\n\n      if (TLSCAFile) {\n        queue.push(uploadFile('api/upload/tls/ca?folder=ldap', TLSCAFile));\n      }\n      if (TLSCertFile) {\n        queue.push(uploadFile('api/upload/tls/cert?folder=ldap', TLSCertFile));\n      }\n      if (TLSKeyFile) {\n        queue.push(uploadFile('api/upload/tls/key?folder=ldap', TLSKeyFile));\n      }\n\n      return $q.all(queue);\n    };\n\n    service.uploadTLSFilesForEndpoint = function (endpointID, TLSCAFile, TLSCertFile, TLSKeyFile) {\n      var queue = [];\n\n      if (TLSCAFile) {\n        queue.push(uploadFile('api/upload/tls/ca?folder=' + endpointID, TLSCAFile));\n      }\n      if (TLSCertFile) {\n        queue.push(uploadFile('api/upload/tls/cert?folder=' + endpointID, TLSCertFile));\n      }\n      if (TLSKeyFile) {\n        queue.push(uploadFile('api/upload/tls/key?folder=' + endpointID, TLSKeyFile));\n      }\n\n      return $q.all(queue);\n    };\n\n    service.uploadOwnershipVoucher = function (voucherFile) {\n      return Upload.upload({\n        url: 'api/fdo/register',\n        data: {\n          voucher: voucherFile,\n        },\n        ignoreLoadingBar: true,\n      });\n    };\n\n    return service;\n  },\n]);\n","import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';\n\nangular.module('portainer.app').factory('FormValidator', [\n  function FormValidatorFactory() {\n    'use strict';\n\n    var validator = {};\n\n    validator.validateAccessControl = function (accessControlData, isAdmin) {\n      if (!accessControlData.AccessControlEnabled) {\n        return '';\n      }\n\n      if (isAdmin && accessControlData.Ownership === RCO.RESTRICTED && accessControlData.AuthorizedUsers.length === 0 && accessControlData.AuthorizedTeams.length === 0) {\n        return 'You must specify at least one team or user.';\n      } else if (!isAdmin && accessControlData.Ownership === RCO.RESTRICTED && accessControlData.AuthorizedTeams.length === 0) {\n        return 'You must specify at least a team.';\n      }\n      return '';\n    };\n\n    return validator;\n  },\n]);\n","angular.module('portainer.app').factory('LocalStorage', [\n  'localStorageService',\n  function LocalStorageFactory(localStorageService) {\n    return {\n      storeLoginStateUUID: function (uuid) {\n        localStorageService.set('LOGIN_STATE_UUID', uuid);\n      },\n      getLoginStateUUID: function () {\n        return localStorageService.get('LOGIN_STATE_UUID');\n      },\n      storeEndpointState: function (state) {\n        localStorageService.set('ENDPOINT_STATE', state);\n      },\n      getEndpointState: function () {\n        return localStorageService.get('ENDPOINT_STATE');\n      },\n      cleanEndpointState() {\n        localStorageService.remove('ENDPOINT_STATE');\n      },\n      storeApplicationState: function (state) {\n        localStorageService.set('APPLICATION_STATE', state);\n      },\n      getApplicationState: function () {\n        return localStorageService.get('APPLICATION_STATE');\n      },\n      storeUIState: function (state) {\n        localStorageService.set('UI_STATE', state);\n      },\n      getUIState: function () {\n        return localStorageService.get('UI_STATE');\n      },\n      getUserId() {\n        localStorageService.get('USER_ID');\n      },\n      storeUserId: function (userId) {\n        localStorageService.set('USER_ID', userId);\n      },\n      deleteUserId: function () {\n        localStorageService.remove('USER_ID');\n      },\n      storePaginationLimit: function (key, count) {\n        localStorageService.set('datatable_pagination_' + key, count);\n      },\n      getPaginationLimit: function (key) {\n        return localStorageService.get('datatable_pagination_' + key);\n      },\n      getDataTableOrder: function (key) {\n        return localStorageService.get('datatable_order_' + key);\n      },\n      storeDataTableOrder: function (key, data) {\n        localStorageService.set('datatable_order_' + key, data);\n      },\n      getDataTableTextFilters: function (key) {\n        return localStorageService.get('datatable_text_filter_' + key);\n      },\n      storeDataTableTextFilters: function (key, data) {\n        localStorageService.set('datatable_text_filter_' + key, data);\n      },\n      getDataTableFilters: function (key) {\n        return localStorageService.get('datatable_filters_' + key);\n      },\n      storeDataTableFilters: function (key, data) {\n        localStorageService.set('datatable_filters_' + key, data);\n      },\n      getDataTableSettings: function (key) {\n        return localStorageService.get('datatable_settings_' + key);\n      },\n      storeDataTableSettings: function (key, data) {\n        localStorageService.set('datatable_settings_' + key, data);\n      },\n      getDataTableExpandedItems: function (key) {\n        return localStorageService.get('datatable_expandeditems_' + key);\n      },\n      storeDataTableExpandedItems: function (key, data) {\n        localStorageService.set('datatable_expandeditems_' + key, data);\n      },\n      getDataTableSelectedItems: function (key) {\n        return localStorageService.get('datatable_selecteditems_' + key);\n      },\n      storeDataTableSelectedItems: function (key, data) {\n        localStorageService.set('datatable_selecteditems_' + key, data);\n      },\n      storeSwarmVisualizerSettings: function (key, data) {\n        localStorageService.set('swarmvisualizer_' + key, data);\n      },\n      getSwarmVisualizerSettings: function (key) {\n        return localStorageService.get('swarmvisualizer_' + key);\n      },\n      storeColumnVisibilitySettings: function (key, data) {\n        localStorageService.set('col_visibility_' + key, data);\n      },\n      getColumnVisibilitySettings: function (key) {\n        return localStorageService.get('col_visibility_' + key);\n      },\n      storeJobImage: function (data) {\n        localStorageService.set('job_image', data);\n      },\n      getJobImage: function () {\n        return localStorageService.get('job_image');\n      },\n      storeActiveTab: function (key, index) {\n        return localStorageService.set('active_tab_' + key, index);\n      },\n      getActiveTab: function (key) {\n        const activeTab = localStorageService.get('active_tab_' + key);\n        return activeTab === null ? 0 : activeTab;\n      },\n      storeNamespaceFilter: function (environmentId, userID, data) {\n        // store one filter per environment\n        localStorageService.set(`kubernetes_namespace_filter_${environmentId}_${userID}`, data);\n      },\n      getNamespaceFilter: function (environmentId, userID) {\n        return localStorageService.get(`kubernetes_namespace_filter_${environmentId}_${userID}`);\n      },\n      storeLogoutReason: (reason) => localStorageService.set('logout_reason', reason),\n      getLogoutReason: () => localStorageService.get('logout_reason'),\n      cleanLogoutReason: () => localStorageService.remove('logout_reason'),\n      clean: function () {\n        localStorageService.clearAll();\n      },\n      cleanAuthData() {\n        localStorageService.remove('USER_ID', 'APPLICATION_STATE', 'LOGIN_STATE_UUID', 'ALLOWED_NAMESPACES');\n      },\n      storeKubernetesSummaryToggle(value) {\n        localStorageService.set('kubernetes_summary_expanded', value);\n      },\n      getKubernetesSummaryToggle() {\n        return localStorageService.get('kubernetes_summary_expanded');\n      },\n    };\n  },\n]);\n","import angular from 'angular';\nimport { getEnvironments } from '@/react/portainer/environments/environment.service';\n\nangular.module('portainer.app').factory('NameValidator', NameValidatorFactory);\n/* @ngInject */\nfunction NameValidatorFactory(Notifications) {\n  return {\n    validateEnvironmentName,\n  };\n\n  async function validateEnvironmentName(name) {\n    try {\n      const endpoints = await getEnvironments({ limit: 1, name });\n      return endpoints.value.length > 0;\n    } catch (err) {\n      Notifications.error('Failure', err, 'Unable to retrieve environment details');\n    }\n  }\n}\n","angular.module('portainer.app').factory('PaginationService', [\n  'LocalStorage',\n  'PAGINATION_MAX_ITEMS',\n  function PaginationServiceFactory(LocalStorage, PAGINATION_MAX_ITEMS) {\n    'use strict';\n\n    var service = {};\n\n    service.getPaginationLimit = function (key) {\n      var paginationLimit = PAGINATION_MAX_ITEMS;\n\n      var storedLimit = LocalStorage.getPaginationLimit(key);\n      if (storedLimit !== null) {\n        paginationLimit = storedLimit;\n      }\n      return '' + paginationLimit;\n    };\n\n    service.setPaginationLimit = function (key, limit) {\n      LocalStorage.storePaginationLimit(key, limit);\n    };\n\n    return service;\n  },\n]);\n","import _ from 'lodash-es';\nimport { RegistryGitlabProject } from '../models/gitlabRegistry';\nimport { RegistryRepositoryGitlabViewModel } from '../models/registryRepository';\n\nangular.module('portainer.app').factory('RegistryGitlabService', [\n  '$async',\n  'Gitlab',\n  function RegistryGitlabServiceFactory($async, Gitlab) {\n    'use strict';\n    var service = {};\n\n    /**\n     * PROJECTS\n     */\n\n    async function _getProjectsPage(env, params, projects) {\n      const response = await Gitlab(env).projects(params).$promise;\n      projects = _.concat(projects, response.data);\n      if (response.next) {\n        params.page = response.next;\n        projects = await _getProjectsPage(env, params, projects);\n      }\n      return projects;\n    }\n\n    async function projectsAsync(url, token) {\n      try {\n        const data = await _getProjectsPage({ url: url, token: token }, { page: 1 }, []);\n        return _.map(data, (project) => new RegistryGitlabProject(project));\n      } catch (error) {\n        throw { msg: 'Unable to retrieve projects', err: error };\n      }\n    }\n\n    /**\n     * END PROJECTS\n     */\n\n    /**\n     * REPOSITORIES\n     */\n\n    async function _getRepositoriesPage(params, repositories) {\n      const response = await Gitlab().repositories(params).$promise;\n      repositories = _.concat(repositories, response.data);\n      if (response.next) {\n        params.page = response.next;\n        repositories = await _getRepositoriesPage(params, repositories);\n      }\n      return repositories;\n    }\n\n    async function repositoriesAsync(registry, endpointId) {\n      try {\n        const params = {\n          id: registry.Id,\n          endpointId: endpointId,\n          projectId: registry.Gitlab.ProjectId,\n          page: 1,\n        };\n        const data = await _getRepositoriesPage(params, []);\n        return _.map(data, (r) => new RegistryRepositoryGitlabViewModel(r));\n      } catch (error) {\n        throw { msg: 'Unable to retrieve repositories', err: error };\n      }\n    }\n\n    /**\n     * END REPOSITORIES\n     */\n\n    /**\n     * SERVICE FUNCTIONS DECLARATION\n     */\n\n    function projects(url, token) {\n      return $async(projectsAsync, url, token);\n    }\n\n    function repositories(registry, endpointId) {\n      return $async(repositoriesAsync, registry, endpointId);\n    }\n\n    service.projects = projects;\n    service.repositories = repositories;\n    return service;\n  },\n]);\n","import { useState } from 'react';\n\nimport { Registry } from '@/react/portainer/registries/types';\n\nimport { Modal, OnSubmit, openModal } from '@@/modals';\nimport { Button } from '@@/buttons';\nimport { PortainerSelect } from '@@/form-components/PortainerSelect';\n\ninterface Props {\n  registries: Registry[];\n  onSubmit: OnSubmit<Registry['Id']>;\n  defaultValue: Registry['Id'];\n}\n\nfunction RegistrySelectPrompt({ onSubmit, defaultValue, registries }: Props) {\n  const title = 'Which registry do you want to use?';\n  const [registryId, setRegistryId] = useState(defaultValue);\n  const options = registries2Options(registries);\n\n  return (\n    <Modal onDismiss={() => onSubmit()} aria-label={title}>\n      <Modal.Header title={title} />\n\n      <Modal.Body>\n        <PortainerSelect\n          onChange={setRegistryId}\n          value={registryId}\n          options={options}\n        />\n      </Modal.Body>\n      <Modal.Footer>\n        <Button onClick={() => onSubmit()} color=\"default\">\n          Cancel\n        </Button>\n        <Button onClick={() => onSubmit(registryId)} color=\"primary\">\n          Update\n        </Button>\n      </Modal.Footer>\n    </Modal>\n  );\n}\n\nexport function selectRegistry(\n  registries: Registry[],\n  defaultValue: Registry['Id']\n) {\n  return openModal(RegistrySelectPrompt, {\n    registries,\n    defaultValue,\n  });\n}\n\nfunction registries2Options(registries: Registry[]) {\n  return registries.map((r) => ({\n    label: r.Name,\n    value: r.Id,\n  }));\n}\n","import _ from 'lodash';\nimport { selectRegistry } from '@/react/docker/images/ItemView/RegistrySelectPrompt';\n\nangular.module('portainer.app').factory('RegistryModalService', RegistryModalService);\n\nfunction RegistryModalService(RegistryService) {\n  const service = {};\n\n  service.registryModal = async function (repository, registries) {\n    const registryModel = RegistryService.retrievePorRegistryModelFromRepositoryWithRegistries(repository, registries);\n    const defaultValue = _.get(registryModel, 'Registry.Id', 0);\n\n    const registryId = await selectRegistry(registries, defaultValue);\n    if (registryId === undefined) {\n      return null;\n    }\n\n    return RegistryService.retrievePorRegistryModelFromRepositoryWithRegistries(repository, registries, registryId);\n  };\n\n  return service;\n}\n","/**\n * clears the sessionStorage\n */\nexport function clear() {\n  sessionStorage.clear();\n}\n\n/**\n * stores `value` as string in `sessionStorage[key]`\n *\n * @param {string} key the key to store value at\n * @param {any} value the value to store - will be stringified using JSON.stringify\n *\n */\nexport function save(key, value) {\n  sessionStorage.setItem(key, JSON.stringify(value));\n}\n\n/**\n * get parses the value stored in sessionStorage[key], if it's not available returns undefined\n *\n * @param {string} key\n */\nexport function get(key) {\n  try {\n    const value = sessionStorage.getItem(key);\n    return JSON.parse(value);\n  } catch (e) {\n    return;\n  }\n}\n","import moment from 'moment';\n\nangular.module('portainer.app').factory('StateManager', StateManagerFactory);\n\n/* @ngInject */\nfunction StateManagerFactory(\n  $async,\n  $q,\n  SystemService,\n  InfoHelper,\n  LocalStorage,\n  SettingsService,\n  StatusService,\n  APPLICATION_CACHE_VALIDITY,\n  AgentPingService,\n  $analytics,\n  EndpointProvider\n) {\n  var manager = {};\n\n  var state = {\n    loading: true,\n    application: {},\n    endpoint: {},\n    UI: {\n      dismissedInfoPanels: {},\n      dismissedInfoHash: '',\n      timesPasswordChangeSkipped: {},\n      dismissedUpdateVersion: '',\n    },\n  };\n\n  manager.dismissInformationPanel = function (id) {\n    state.UI.dismissedInfoPanels[id] = true;\n    LocalStorage.storeUIState(state.UI);\n  };\n\n  manager.dismissImportantInformation = function (hash) {\n    state.UI.dismissedInfoHash = hash;\n    LocalStorage.storeUIState(state.UI);\n  };\n\n  manager.setRequiredPasswordLength = function (length) {\n    state.UI.requiredPasswordLength = length;\n    LocalStorage.storeUIState(state.UI);\n  };\n\n  manager.setPasswordChangeSkipped = function (userID) {\n    state.UI.instanceId = state.UI.instanceId || state.application.instanceId;\n    state.UI.timesPasswordChangeSkipped[userID] = state.UI.timesPasswordChangeSkipped[userID] + 1 || 1;\n    LocalStorage.storeUIState(state.UI);\n  };\n\n  manager.resetPasswordChangeSkips = function (userID) {\n    if (!state.UI.timesPasswordChangeSkipped) {\n      return;\n    }\n    if (state.UI.timesPasswordChangeSkipped[userID]) state.UI.timesPasswordChangeSkipped[userID] = 0;\n    LocalStorage.storeUIState(state.UI);\n  };\n\n  manager.clearPasswordChangeSkips = function () {\n    state.UI.timesPasswordChangeSkipped = {};\n    LocalStorage.storeUIState(state.UI);\n  };\n\n  manager.getState = function () {\n    return state;\n  };\n\n  manager.clean = function () {\n    manager.cleanEndpoint();\n    state.application = {};\n  };\n\n  manager.cleanEndpoint = function () {\n    state.endpoint = {};\n    EndpointProvider.clean();\n    LocalStorage.cleanEndpointState();\n  };\n\n  manager.updateLogo = function (logoURL) {\n    state.application.logo = logoURL;\n    LocalStorage.storeApplicationState(state.application);\n  };\n\n  manager.updateTheme = function (theme) {\n    state.application.theme = theme;\n    LocalStorage.storeApplicationState(state.application);\n  };\n\n  manager.updateSnapshotInterval = function (interval) {\n    state.application.snapshotInterval = interval;\n    LocalStorage.storeApplicationState(state.application);\n  };\n\n  manager.updateEnableEdgeComputeFeatures = function updateEnableEdgeComputeFeatures(enableEdgeComputeFeatures) {\n    state.application.enableEdgeComputeFeatures = enableEdgeComputeFeatures;\n    LocalStorage.storeApplicationState(state.application);\n  };\n\n  manager.updateEnableTelemetry = function updateEnableTelemetry(enableTelemetry) {\n    state.application.enableTelemetry = enableTelemetry;\n    $analytics.setOptOut(!enableTelemetry);\n    LocalStorage.storeApplicationState(state.application);\n  };\n\n  function assignStateFromStatusAndSettings(status, settings) {\n    state.application.version = status.Version;\n    state.application.edition = status.Edition;\n    state.application.instanceId = status.InstanceID;\n    state.application.demoEnvironment = status.DemoEnvironment;\n\n    state.application.enableTelemetry = settings.EnableTelemetry;\n    state.application.logo = settings.LogoURL;\n    state.application.snapshotInterval = settings.SnapshotInterval;\n    state.application.enableEdgeComputeFeatures = settings.EnableEdgeComputeFeatures;\n    state.application.validity = moment().unix();\n  }\n\n  function loadApplicationState() {\n    var deferred = $q.defer();\n\n    $q.all({\n      settings: SettingsService.publicSettings(),\n      status: StatusService.status(),\n    })\n      .then(function success(data) {\n        var status = data.status;\n        var settings = data.settings;\n        assignStateFromStatusAndSettings(status, settings);\n        LocalStorage.storeApplicationState(state.application);\n        deferred.resolve(state);\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to retrieve server settings and status', err: err });\n      });\n\n    return deferred.promise;\n  }\n\n  manager.initialize = initialize;\n  async function initialize() {\n    return $async(async () => {\n      const endpointState = LocalStorage.getEndpointState();\n      if (endpointState) {\n        state.endpoint = endpointState;\n      }\n\n      const applicationState = LocalStorage.getApplicationState();\n      if (isAppStateValid(applicationState)) {\n        state.application = applicationState;\n      } else {\n        await loadApplicationState();\n      }\n\n      const UIState = LocalStorage.getUIState();\n      if (UIState) {\n        state.UI = UIState;\n        if (state.UI.instanceId && state.UI.instanceId !== state.application.instanceId) {\n          state.UI.instanceId = state.application.instanceId;\n          state.UI.timesPasswordChangeSkipped = {};\n          LocalStorage.storeUIState(state.UI);\n        }\n      }\n\n      state.loading = false;\n      $analytics.setPortainerStatus(state.application.instanceId, state.application.version);\n      $analytics.setOptOut(!state.application.enableTelemetry);\n      return state;\n    });\n  }\n\n  function isAppStateValid(appState) {\n    if (!appState || !appState.validity) {\n      return false;\n    }\n    const now = moment().unix();\n    const cacheValidity = now - appState.validity;\n    return cacheValidity < APPLICATION_CACHE_VALIDITY;\n  }\n\n  manager.updateEndpointState = function (endpoint) {\n    var deferred = $q.defer();\n\n    if (endpoint.Type === 3) {\n      state.endpoint.name = endpoint.Name;\n      state.endpoint.mode = { provider: 'AZURE' };\n      LocalStorage.storeEndpointState(state.endpoint);\n      deferred.resolve();\n      return deferred.promise;\n    } else if (endpoint.Type === 5 || endpoint.Type === 6 || endpoint.Type === 7) {\n      state.endpoint.name = endpoint.Name;\n      state.endpoint.mode = { provider: 'KUBERNETES' };\n      LocalStorage.storeEndpointState(state.endpoint);\n      deferred.resolve();\n      return deferred.promise;\n    }\n\n    $q.all({\n      version: SystemService.version(),\n      info: SystemService.info(),\n    })\n      .then(function success(data) {\n        var endpointMode = InfoHelper.determineEndpointMode(data.info, endpoint.Type);\n        var endpointAPIVersion = parseFloat(data.version.ApiVersion);\n        state.endpoint.mode = endpointMode;\n        state.endpoint.name = endpoint.Name;\n        state.endpoint.type = endpoint.Type;\n        state.endpoint.apiVersion = endpointAPIVersion;\n\n        if (endpointMode.agentProxy && endpoint.Status === 1) {\n          return AgentPingService.ping(endpoint.Id).then(function onPingSuccess(data) {\n            state.endpoint.agentApiVersion = data.version;\n          });\n        }\n      })\n      .then(function () {\n        LocalStorage.storeEndpointState(state.endpoint);\n        deferred.resolve();\n      })\n      .catch(function error(err) {\n        deferred.reject({ msg: 'Unable to connect to the Docker environment', err: err });\n      })\n      .finally(function final() {\n        state.loading = false;\n      });\n\n    return deferred.promise;\n  };\n\n  manager.getAgentApiVersion = function getAgentApiVersion() {\n    return state.endpoint.agentApiVersion;\n  };\n\n  return manager;\n}\n","angular.module('portainer.app').service('ThemeManager', ThemeManager);\n\n/* @ngInject */\nexport function ThemeManager(StateManager) {\n  return {\n    setTheme,\n    autoTheme,\n    defaultTheme,\n  };\n\n  function setTheme(theme) {\n    if (!theme) {\n      document.documentElement.removeAttribute('theme');\n    } else {\n      document.documentElement.setAttribute('theme', theme);\n      StateManager.updateTheme(theme);\n    }\n  }\n\n  function autoTheme() {\n    const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : '';\n    this.setTheme(systemTheme);\n  }\n\n  function defaultTheme() {\n    document.documentElement.removeAttribute('theme');\n  }\n}\n","export const authenticationMethodTypesMap = {\n  INTERNAL: 1,\n  LDAP: 2,\n  OAUTH: 3,\n};\n\nexport const authenticationMethodTypesLabels = {\n  [authenticationMethodTypesMap.INTERNAL]: 'Internal',\n  [authenticationMethodTypesMap.LDAP]: 'LDAP',\n  [authenticationMethodTypesMap.OAUTH]: 'OAuth',\n};\n","export const authenticationActivityTypesMap = {\n  AuthSuccess: 1,\n  AuthFailure: 2,\n  Logout: 3,\n};\n\nexport const authenticationActivityTypesLabels = {\n  [authenticationActivityTypesMap.AuthSuccess]: 'Authentication success',\n  [authenticationActivityTypesMap.AuthFailure]: 'Authentication failure',\n  [authenticationActivityTypesMap.Logout]: 'Logout',\n};\n","const autoNgTemplateLoaderTemplate1 = require('./auto-user-provision-toggle.html');\n\nexport const autoUserProvisionToggle = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  transclude: {\n    description: 'fieldDescription',\n  },\n  bindings: {\n    ngModel: '=',\n  },\n};\n","import angular from 'angular';\nimport ldapModule from './ldap';\nimport { autoUserProvisionToggle } from './auto-user-provision-toggle';\nimport { saveAuthSettingsButton } from './save-auth-settings-button';\n\nexport default angular\n  .module('portainer.settings.authentication', [ldapModule])\n\n  .component('saveAuthSettingsButton', saveAuthSettingsButton)\n  .component('autoUserProvisionToggle', autoUserProvisionToggle).name;\n","import _ from 'lodash-es';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nexport default class AdSettingsController {\n  /* @ngInject */\n  constructor(LDAPService) {\n    this.LDAPService = LDAPService;\n\n    this.domainSuffix = '';\n    this.limitedFeatureId = FeatureId.HIDE_INTERNAL_AUTH;\n    this.onTlscaCertChange = this.onTlscaCertChange.bind(this);\n    this.searchUsers = this.searchUsers.bind(this);\n    this.searchGroups = this.searchGroups.bind(this);\n    this.parseDomainName = this.parseDomainName.bind(this);\n    this.onAccountChange = this.onAccountChange.bind(this);\n  }\n\n  parseDomainName(account) {\n    this.domainName = '';\n\n    if (!account || !account.includes('@')) {\n      return;\n    }\n\n    const [, domainName] = account.split('@');\n    if (!domainName) {\n      return;\n    }\n\n    const parts = _.compact(domainName.split('.'));\n    this.domainSuffix = parts.map((part) => `dc=${part}`).join(',');\n  }\n\n  onAccountChange(account) {\n    this.parseDomainName(account);\n  }\n\n  searchUsers() {\n    return this.LDAPService.users(this.settings);\n  }\n\n  searchGroups() {\n    return this.LDAPService.groups(this.settings);\n  }\n\n  onTlscaCertChange(file) {\n    this.tlscaCert = file;\n  }\n\n  addLDAPUrl() {\n    this.settings.URLs.push('');\n  }\n\n  removeLDAPUrl(index) {\n    this.settings.URLs.splice(index, 1);\n  }\n\n  isSaveSettingButtonDisabled() {\n    return isLimitedToBE(this.limitedFeatureId) || !this.isLdapFormValid();\n  }\n\n  $onInit() {\n    this.tlscaCert = this.settings.TLSCACert;\n    this.parseDomainName(this.settings.ReaderDN);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ad-settings.html');\n\nimport controller from './ad-settings.controller';\n\nexport const adSettings = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    tlscaCert: '=',\n    state: '=',\n    connectivityCheck: '<',\n    onSaveSettings: '<',\n    saveButtonState: '<',\n    isLdapFormValid: '&?',\n  },\n};\n","import angular from 'angular';\n\nimport { adSettings } from './ad-settings';\nimport { ldapSettings } from './ldap-settings';\nimport { ldapSettingsCustom } from './ldap-settings-custom';\nimport { ldapSettingsOpenLdap } from './ldap-settings-openldap';\n\nimport { ldapConnectivityCheck } from './ldap-connectivity-check';\nimport { ldapGroupsDatatable } from './ldap-groups-datatable';\nimport { ldapGroupSearch } from './ldap-group-search';\nimport { ldapGroupSearchItem } from './ldap-group-search-item';\nimport { ldapUserSearch } from './ldap-user-search';\nimport { ldapUserSearchItem } from './ldap-user-search-item';\nimport { ldapSettingsDnBuilder } from './ldap-settings-dn-builder';\nimport { ldapSettingsGroupDnBuilder } from './ldap-settings-group-dn-builder';\nimport { ldapCustomGroupSearch } from './ldap-custom-group-search';\nimport { ldapCustomAdminGroup } from './ldap-custom-admin-group';\nimport { ldapSettingsSecurity } from './ldap-settings-security';\nimport { ldapSettingsTestLogin } from './ldap-settings-test-login';\nimport { ldapCustomUserSearch } from './ldap-custom-user-search';\nimport { ldapUsersDatatable } from './ldap-users-datatable';\nimport { LDAPService } from './ldap.service';\nimport { LDAP } from './ldap.rest';\n\nexport default angular\n  .module('portainer.settings.authentication.ldap', [])\n  .service('LDAPService', LDAPService)\n  .service('LDAP', LDAP)\n  .component('ldapConnectivityCheck', ldapConnectivityCheck)\n  .component('ldapGroupsDatatable', ldapGroupsDatatable)\n  .component('ldapSettings', ldapSettings)\n  .component('adSettings', adSettings)\n  .component('ldapGroupSearch', ldapGroupSearch)\n  .component('ldapGroupSearchItem', ldapGroupSearchItem)\n  .component('ldapUserSearch', ldapUserSearch)\n  .component('ldapUserSearchItem', ldapUserSearchItem)\n  .component('ldapSettingsCustom', ldapSettingsCustom)\n  .component('ldapSettingsDnBuilder', ldapSettingsDnBuilder)\n  .component('ldapSettingsGroupDnBuilder', ldapSettingsGroupDnBuilder)\n  .component('ldapCustomGroupSearch', ldapCustomGroupSearch)\n  .component('ldapCustomAdminGroup', ldapCustomAdminGroup)\n  .component('ldapSettingsOpenLdap', ldapSettingsOpenLdap)\n  .component('ldapSettingsSecurity', ldapSettingsSecurity)\n  .component('ldapSettingsTestLogin', ldapSettingsTestLogin)\n  .component('ldapCustomUserSearch', ldapCustomUserSearch)\n  .component('ldapUsersDatatable', ldapUsersDatatable).name;\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-connectivity-check.html');\n\nexport const ldapConnectivityCheck = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    settings: '<',\n    state: '<',\n    connectivityCheck: '<',\n    limitedFeatureId: '<',\n  },\n};\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-custom-admin-group.html');\n\nimport './ldap-custom-admin-group.css';\nimport controller from './ldap-custom-admin-group.controller';\n\nexport const ldapCustomAdminGroup = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    selectedAdminGroups: '=',\n    defaultAdminGroupSearchFilter: '<',\n    onSearchClick: '<',\n    limitedFeatureId: '<',\n    isLimitedFeatureSelfContained: '<',\n  },\n};\n","export default class LdapCustomAdminGroupController {\n  /* @ngInject */\n  constructor($async, $scope, Notifications, LDAPService) {\n    Object.assign(this, { $async, $scope, Notifications, LDAPService });\n\n    this.groups = null;\n    this.groupstest = null;\n    this.enableAssignAdminGroup = false;\n\n    this.onRemoveClick = this.onRemoveClick.bind(this);\n    this.onAddClick = this.onAddClick.bind(this);\n    this.search = this.search.bind(this);\n    this.onAdminGroupChange = this.onAdminGroupChange.bind(this);\n  }\n\n  onAddClick() {\n    this.settings.AdminGroupSearchSettings.push({ GroupBaseDN: '', GroupAttribute: '', GroupFilter: '' });\n  }\n\n  onRemoveClick(index) {\n    this.settings.AdminGroupSearchSettings.splice(index, 1);\n  }\n\n  search() {\n    return this.$async(async () => {\n      try {\n        this.groups = null;\n        const groups = await this.onSearchClick();\n        this.groups = groups.map((group) => ({ label: group.name, value: group.name }));\n        this.enableAssignAdminGroup = this.groups && this.groups.length > 0;\n      } catch (error) {\n        this.Notifications.error('Failure', error, 'Failed to search groups');\n      }\n    });\n  }\n\n  onAdminGroupChange(value) {\n    return this.$scope.$evalAsync(() => {\n      this.selectedAdminGroups = value;\n    });\n  }\n\n  async $onInit() {\n    if (this.settings.AdminAutoPopulate && this.settings.AdminGroups && this.settings.AdminGroups.length > 0) {\n      await this.search();\n    }\n\n    if (this.groups && this.groups.length > 0) {\n      this.enableAssignAdminGroup = true;\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-custom-group-search.html');\n\nimport controller from './ldap-custom-group-search.controller';\n\nexport const ldapCustomGroupSearch = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    onSearchClick: '<',\n    limitedFeatureId: '<',\n  },\n};\n","export default class LdapCustomGroupSearchController {\n  /* @ngInject */\n  constructor($async, Notifications) {\n    Object.assign(this, { $async, Notifications });\n\n    this.groups = null;\n    this.showTable = false;\n\n    this.onRemoveClick = this.onRemoveClick.bind(this);\n    this.onAddClick = this.onAddClick.bind(this);\n    this.search = this.search.bind(this);\n  }\n\n  onAddClick() {\n    this.settings.push({ GroupBaseDN: '', GroupAttribute: '', GroupFilter: '' });\n  }\n\n  onRemoveClick(index) {\n    this.settings.splice(index, 1);\n  }\n\n  search() {\n    return this.$async(async () => {\n      try {\n        this.groups = null;\n        this.showTable = true;\n        this.groups = await this.onSearchClick();\n      } catch (error) {\n        this.showTable = false;\n        this.Notifications.error('Failure', error, 'Failed to search users');\n      }\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-custom-user-search.html');\n\nimport controller from './ldap-custom-user-search.controller';\n\nexport const ldapCustomUserSearch = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    onSearchClick: '<',\n    limitedFeatureId: '<',\n  },\n};\n","export default class LdapCustomUserSearchController {\n  /* @ngInject */\n  constructor($async, Notifications) {\n    Object.assign(this, { $async, Notifications });\n\n    this.users = null;\n\n    this.onRemoveClick = this.onRemoveClick.bind(this);\n    this.onAddClick = this.onAddClick.bind(this);\n    this.search = this.search.bind(this);\n  }\n\n  onAddClick() {\n    this.settings.push({ BaseDN: '', UserNameAttribute: '', Filter: '' });\n  }\n\n  onRemoveClick(index) {\n    this.settings.splice(index, 1);\n  }\n\n  search() {\n    return this.$async(async () => {\n      try {\n        this.users = null;\n        this.showTable = true;\n        this.users = await this.onSearchClick();\n      } catch (error) {\n        this.showTable = false;\n        this.Notifications.error('Failure', error, 'Failed to search users');\n      }\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-group-search-item.html');\n\nimport controller from './ldap-group-search-item.controller';\n\nexport const ldapGroupSearchItem = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    config: '=',\n    index: '<',\n    domainSuffix: '@',\n    baseFilter: '@',\n\n    onRemoveClick: '<',\n    limitedFeatureId: '<',\n  },\n};\n","export default class LdapSettingsAdGroupSearchItemController {\n  /* @ngInject */\n  constructor(Notifications) {\n    Object.assign(this, { Notifications });\n\n    this.groups = [];\n\n    this.onChangeBaseDN = this.onChangeBaseDN.bind(this);\n  }\n\n  onChangeBaseDN(baseDN) {\n    this.config.GroupBaseDN = baseDN;\n  }\n\n  addGroup() {\n    this.groups.push({ type: 'ou', value: '' });\n  }\n\n  removeGroup($index) {\n    this.groups.splice($index, 1);\n    this.onGroupsChange();\n  }\n\n  onGroupsChange() {\n    const groupsFilter = this.groups.map(({ type, value }) => `(${type}=${value})`).join('');\n    this.onFilterChange(groupsFilter ? `(&${this.baseFilter}(|${groupsFilter}))` : `${this.baseFilter}`);\n  }\n\n  onFilterChange(filter) {\n    this.config.GroupFilter = filter;\n  }\n\n  parseGroupFilter() {\n    const match = this.config.GroupFilter.match(/^\\(&\\(objectClass=(\\w+)\\)\\(\\|((\\(\\w+=.+\\))+)\\)\\)$/);\n    if (!match) {\n      return;\n    }\n\n    const [, , groupFilter = ''] = match;\n\n    this.groups = groupFilter\n      .slice(1, -1)\n      .split(')(')\n      .map((str) => str.split('='))\n      .map(([type, value]) => ({ type, value }));\n  }\n\n  $onInit() {\n    this.parseGroupFilter();\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-group-search.html');\n\nimport controller from './ldap-group-search.controller';\n\nexport const ldapGroupSearch = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    domainSuffix: '@',\n    baseFilter: '@',\n\n    onSearchClick: '<',\n    limitedFeatureId: '<',\n  },\n};\n","import _ from 'lodash-es';\n\nexport default class LdapGroupSearchController {\n  /* @ngInject */\n  constructor($async, Notifications) {\n    Object.assign(this, { $async, Notifications });\n\n    this.groups = null;\n\n    this.onRemoveClick = this.onRemoveClick.bind(this);\n    this.onAddClick = this.onAddClick.bind(this);\n    this.search = this.search.bind(this);\n  }\n\n  onAddClick() {\n    const lastSetting = _.last(this.settings);\n    this.settings.push({ GroupBaseDN: this.domainSuffix, GroupAttribute: lastSetting.GroupAttribute, GroupFilter: this.baseFilter });\n  }\n\n  onRemoveClick(index) {\n    this.settings.splice(index, 1);\n  }\n\n  search() {\n    return this.$async(async () => {\n      try {\n        this.groups = null;\n        this.showTable = true;\n        this.groups = await this.onSearchClick();\n      } catch (error) {\n        this.showTable = false;\n        this.Notifications.error('Failure', error, 'Failed to search users');\n      }\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-groups-datatable.html');\n\nexport const ldapGroupsDatatable = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n  },\n};\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-settings-custom.html');\n\nimport './ldap-settings-custom.css';\nimport controller from './ldap-settings-custom.controller';\n\nexport const ldapSettingsCustom = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    tlscaCert: '=',\n    state: '=',\n    onTlscaCertChange: '<',\n    connectivityCheck: '<',\n    onSearchUsersClick: '<',\n    onSearchGroupsClick: '<',\n    onSaveSettings: '<',\n    saveButtonState: '<',\n    saveButtonDisabled: '<',\n  },\n};\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nexport default class LdapSettingsCustomController {\n  constructor() {\n    this.limitedFeatureId = FeatureId.EXTERNAL_AUTH_LDAP;\n  }\n\n  addLDAPUrl() {\n    this.settings.URLs.push('');\n  }\n\n  removeLDAPUrl(index) {\n    this.settings.URLs.splice(index, 1);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-settings-dn-builder.html');\n\nimport controller from './ldap-settings-dn-builder.controller';\n\nexport const ldapSettingsDnBuilder = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    // ngModel: string (dc=,cn=,)\n    ngModel: '<',\n    // onChange(string) => void\n    onChange: '<',\n    // suffix: string (dc=,dc=,)\n    suffix: '@',\n    label: '@',\n    limitedFeatureId: '<',\n  },\n};\n","export default class LdapSettingsBaseDnBuilderController {\n  /* @ngInject */\n  constructor() {\n    this.entries = [];\n  }\n\n  addEntry() {\n    this.entries.push({ type: 'ou', value: '' });\n  }\n\n  removeEntry($index) {\n    this.entries.splice($index, 1);\n    this.onEntriesChange();\n  }\n\n  moveUp($index) {\n    if ($index <= 0) {\n      return;\n    }\n    arrayMove(this.entries, $index, $index - 1);\n    this.onEntriesChange();\n  }\n\n  moveDown($index) {\n    if ($index >= this.entries.length - 1) {\n      return;\n    }\n    arrayMove(this.entries, $index, $index + 1);\n    this.onEntriesChange();\n  }\n\n  onEntriesChange() {\n    const dn = this.entries\n      .filter(({ value }) => value)\n      .map(({ type, value }) => `${type}=${value}`)\n      .concat(this.suffix)\n      .filter((value) => value)\n      .join(',');\n\n    this.onChange(dn);\n  }\n\n  getOUValues(dn, domainSuffix = '') {\n    const regex = /(\\w+)=([a-zA-Z0-9_ ]*),?/;\n    let ouValues = [];\n    let left = dn;\n    let match = left.match(regex);\n    while (match && left !== domainSuffix) {\n      const [, type, value] = match;\n      ouValues.push({ type, value });\n      left = left.replace(regex, '');\n      match = left.match(regex);\n    }\n    return ouValues;\n  }\n\n  parseBaseDN() {\n    this.entries = this.getOUValues(this.ngModel, this.suffix);\n  }\n\n  $onChanges({ suffix, ngModel }) {\n    if ((!suffix && !ngModel) || (suffix && suffix.isFirstChange())) {\n      return;\n    }\n    this.onEntriesChange();\n  }\n\n  $onInit() {\n    this.parseBaseDN();\n  }\n}\n\nfunction arrayMove(array, fromIndex, toIndex) {\n  if (!checkValidIndex(array, fromIndex) || !checkValidIndex(array, toIndex)) {\n    throw new Error('index is out of bounds');\n  }\n  const [item] = array.splice(fromIndex, 1);\n\n  array.splice(toIndex, 0, item);\n\n  function checkValidIndex(array, index) {\n    return index >= 0 && index <= array.length;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-settings-group-dn-builder.html');\n\nimport controller from './ldap-settings-group-dn-builder.controller';\n\nexport const ldapSettingsGroupDnBuilder = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    // ngModel: string (dc=,cn=,)\n    ngModel: '<',\n    // onChange(string) => void\n    onChange: '<',\n    // suffix: string (dc=,dc=,)\n    suffix: '@',\n    // index: int >= 0\n    index: '<',\n    onRemoveClick: '<',\n    limitedFeatureId: '<',\n  },\n};\n","export default class LdapSettingsGroupDnBuilderController {\n  /* @ngInject */\n  constructor() {\n    this.groupName = '';\n    this.entries = '';\n\n    this.onEntriesChange = this.onEntriesChange.bind(this);\n    this.onGroupNameChange = this.onGroupNameChange.bind(this);\n    this.onGroupChange = this.onGroupChange.bind(this);\n    this.removeGroup = this.removeGroup.bind(this);\n  }\n\n  onEntriesChange(entries) {\n    this.onGroupChange(this.groupName, entries);\n  }\n\n  onGroupNameChange() {\n    this.onGroupChange(this.groupName, this.entries);\n  }\n\n  onGroupChange(groupName, entries) {\n    if (!groupName) {\n      return;\n    }\n    const groupNameEntry = `cn=${groupName}`;\n    this.onChange(this.index, entries || this.suffix ? `${groupNameEntry},${entries || this.suffix}` : groupNameEntry);\n  }\n\n  removeGroup() {\n    this.onRemoveClick(this.index);\n  }\n\n  parseEntries(value, suffix) {\n    if (value === suffix) {\n      this.groupName = '';\n      this.entries = suffix;\n      return;\n    }\n\n    const [groupName, entries] = this.ngModel.split(/,(.+)/);\n    this.groupName = groupName.replace('cn=', '');\n    this.entries = entries || '';\n  }\n\n  $onChange({ ngModel, suffix }) {\n    if ((!suffix || suffix.isFirstChange()) && !ngModel) {\n      return;\n    }\n    this.parseEntries(ngModel.value, suffix.value);\n  }\n\n  $onInit() {\n    this.parseEntries(this.ngModel, this.suffix);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-settings-openldap.html');\n\nimport controller from './ldap-settings-openldap.controller';\n\nexport const ldapSettingsOpenLdap = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    tlscaCert: '=',\n    state: '=',\n    connectivityCheck: '<',\n    onTlscaCertChange: '<',\n    onSearchUsersClick: '<',\n    onSearchGroupsClick: '<',\n    onSaveSettings: '<',\n    saveButtonState: '<',\n    saveButtonDisabled: '<',\n  },\n};\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nexport default class LdapSettingsOpenLDAPController {\n  /* @ngInject */\n  constructor() {\n    this.domainSuffix = '';\n    this.limitedFeatureId = FeatureId.EXTERNAL_AUTH_LDAP;\n\n    this.findDomainSuffix = this.findDomainSuffix.bind(this);\n    this.parseDomainSuffix = this.parseDomainSuffix.bind(this);\n    this.onAccountChange = this.onAccountChange.bind(this);\n  }\n\n  findDomainSuffix() {\n    const serviceAccount = this.settings.ReaderDN;\n    let domainSuffix = this.parseDomainSuffix(serviceAccount);\n    if (!domainSuffix && this.settings.SearchSettings.length > 0) {\n      const searchSettings = this.settings.SearchSettings[0];\n      domainSuffix = this.parseDomainSuffix(searchSettings.BaseDN);\n    }\n\n    this.domainSuffix = domainSuffix;\n  }\n\n  parseDomainSuffix(string = '') {\n    const index = string.toLowerCase().indexOf('dc=');\n    return index !== -1 ? string.substring(index) : '';\n  }\n\n  onAccountChange(serviceAccount) {\n    this.domainSuffix = this.parseDomainSuffix(serviceAccount);\n  }\n\n  addLDAPUrl() {\n    this.settings.URLs.push('');\n  }\n\n  removeLDAPUrl(index) {\n    this.settings.URLs.splice(index, 1);\n  }\n\n  $onInit() {\n    this.findDomainSuffix();\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-settings-security.html');\n\nexport const ldapSettingsSecurity = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    settings: '=',\n    tlscaCert: '<',\n    onTlscaCertChange: '<',\n    uploadInProgress: '<',\n    title: '@',\n    limitedFeatureId: '<',\n  },\n};\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-settings-test-login.html');\n\nimport './ldap-settings-test-login.css';\nimport controller from './ldap-settings-test-login.controller';\n\nexport const ldapSettingsTestLogin = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    limitedFeatureId: '<',\n    showBeIndicatorIfNeeded: '<',\n    isLimitedFeatureSelfContained: '<',\n  },\n};\n","const TEST_STATUS = {\n  LOADING: 'LOADING',\n  SUCCESS: 'SUCCESS',\n  FAILURE: 'FAILURE',\n};\n\nexport default class LdapSettingsTestLogin {\n  /* @ngInject */\n  constructor($async, LDAPService, Notifications) {\n    Object.assign(this, { $async, LDAPService, Notifications });\n\n    this.TEST_STATUS = TEST_STATUS;\n\n    this.state = {\n      testStatus: '',\n    };\n  }\n\n  async testLogin(username, password) {\n    return this.$async(async () => {\n      this.state.testStatus = TEST_STATUS.LOADING;\n      try {\n        const response = await this.LDAPService.testLogin(this.settings, username, password);\n        this.state.testStatus = response.valid ? TEST_STATUS.SUCCESS : TEST_STATUS.FAILURE;\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to test login');\n        this.state.testStatus = TEST_STATUS.FAILURE;\n      }\n    });\n  }\n}\n","export function buildLdapSettingsModel() {\n  return {\n    AnonymousMode: true,\n    ReaderDN: '',\n    URLs: [''],\n    ServerType: 0,\n    TLSConfig: {\n      TLS: false,\n      TLSSkipVerify: false,\n    },\n    StartTLS: false,\n    SearchSettings: [\n      {\n        BaseDN: '',\n        Filter: '',\n        UserNameAttribute: '',\n      },\n    ],\n    GroupSearchSettings: [\n      {\n        GroupBaseDN: '',\n        GroupFilter: '',\n        GroupAttribute: '',\n      },\n    ],\n    AdminGroupSearchSettings: [\n      {\n        GroupBaseDN: '',\n        GroupFilter: '',\n        GroupAttribute: '',\n      },\n    ],\n    AutoCreateUsers: true,\n  };\n}\n\nexport function buildAdSettingsModel() {\n  const settings = buildLdapSettingsModel();\n\n  settings.ServerType = 2;\n  settings.AnonymousMode = false;\n  settings.SearchSettings[0].UserNameAttribute = 'sAMAccountName';\n  settings.SearchSettings[0].Filter = '(objectClass=user)';\n  settings.GroupSearchSettings[0].GroupAttribute = 'member';\n  settings.GroupSearchSettings[0].GroupFilter = '(objectClass=group)';\n\n  return settings;\n}\n\nexport function buildOpenLDAPSettingsModel() {\n  const settings = buildLdapSettingsModel();\n\n  settings.ServerType = 1;\n  settings.AnonymousMode = false;\n  settings.SearchSettings[0].UserNameAttribute = 'uid';\n  settings.SearchSettings[0].Filter = '(objectClass=inetOrgPerson)';\n  settings.GroupSearchSettings[0].GroupAttribute = 'member';\n  settings.GroupSearchSettings[0].GroupFilter = '(objectClass=groupOfNames)';\n\n  return settings;\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-settings.html');\n\nimport controller from './ldap-settings.controller';\n\nexport const ldapSettings = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    tlscaCert: '=',\n    state: '<',\n    connectivityCheck: '<',\n    onSaveSettings: '<',\n    saveButtonState: '<',\n    isLdapFormValid: '<',\n  },\n};\n","import { Edit } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport Openldap from '@/assets/ico/vendor/openldap.svg?c';\n\nconst SERVER_TYPES = {\n  CUSTOM: 0,\n  OPEN_LDAP: 1,\n  AD: 2,\n};\n\nexport const options = [\n  {\n    id: 'ldap_custom',\n    icon: Edit,\n    iconType: 'badge',\n    label: 'Custom',\n    value: SERVER_TYPES.CUSTOM,\n  },\n  {\n    id: 'ldap_openldap',\n    icon: Openldap,\n    label: 'OpenLDAP',\n    value: SERVER_TYPES.OPEN_LDAP,\n    feature: FeatureId.EXTERNAL_AUTH_LDAP,\n    iconType: 'logo',\n  },\n];\n","import { buildLdapSettingsModel, buildOpenLDAPSettingsModel } from '@/portainer/settings/authentication/ldap/ldap-settings.model';\nimport { options } from '@/react/portainer/settings/AuthenticationView/ldap-options';\n\nconst SERVER_TYPES = {\n  CUSTOM: 0,\n  OPEN_LDAP: 1,\n  AD: 2,\n};\n\nconst DEFAULT_GROUP_FILTER = '(objectClass=groupOfNames)';\nconst DEFAULT_USER_FILTER = '(objectClass=inetOrgPerson)';\n\nexport default class LdapSettingsController {\n  /* @ngInject */\n  constructor(LDAPService) {\n    Object.assign(this, { LDAPService, SERVER_TYPES });\n\n    this.tlscaCert = null;\n    this.settingsDrafts = {};\n\n    this.boxSelectorOptions = options;\n\n    this.onTlscaCertChange = this.onTlscaCertChange.bind(this);\n    this.searchUsers = this.searchUsers.bind(this);\n    this.searchGroups = this.searchGroups.bind(this);\n    this.onChangeServerType = this.onChangeServerType.bind(this);\n  }\n\n  onTlscaCertChange(file) {\n    this.tlscaCert = file;\n  }\n\n  $onInit() {\n    this.tlscaCert = this.settings.TLSConfig.TLSCACert;\n  }\n\n  onChangeServerType(serverType) {\n    this.settingsDrafts[this.settings.ServerType] = this.settings;\n\n    if (this.settingsDrafts[serverType]) {\n      this.settings = this.settingsDrafts[serverType];\n      return;\n    }\n\n    switch (serverType) {\n      case SERVER_TYPES.OPEN_LDAP:\n        this.settings = buildOpenLDAPSettingsModel();\n        break;\n      case SERVER_TYPES.CUSTOM:\n        this.settings = buildLdapSettingsModel();\n        break;\n    }\n  }\n\n  searchUsers() {\n    const settings = {\n      ...this.settings,\n      SearchSettings: this.settings.SearchSettings.map((search) => ({ ...search, Filter: search.Filter || DEFAULT_USER_FILTER })),\n    };\n    return this.LDAPService.users(settings);\n  }\n\n  searchGroups() {\n    const settings = {\n      ...this.settings,\n      GroupSearchSettings: this.settings.GroupSearchSettings.map((search) => ({ ...search, GroupFilter: search.GroupFilter || DEFAULT_GROUP_FILTER })),\n    };\n    return this.LDAPService.groups(settings);\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-user-search-item.html');\n\nimport controller from './ldap-user-search-item.controller';\n\nexport const ldapUserSearchItem = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    config: '=',\n    index: '<',\n    showUsernameFormat: '<',\n    domainSuffix: '@',\n    baseFilter: '@',\n    onRemoveClick: '<',\n    limitedFeatureId: '<',\n  },\n};\n","export default class LdapUserSearchItemController {\n  /* @ngInject */\n  constructor() {\n    this.groups = [];\n\n    this.onBaseDNChange = this.onBaseDNChange.bind(this);\n    this.onGroupChange = this.onGroupChange.bind(this);\n    this.onGroupsChange = this.onGroupsChange.bind(this);\n    this.removeGroup = this.removeGroup.bind(this);\n  }\n\n  onBaseDNChange(baseDN) {\n    this.config.BaseDN = baseDN;\n  }\n\n  onGroupChange(index, group) {\n    this.groups[index] = group;\n    this.onGroupsChange(this.groups);\n  }\n\n  onGroupsChange(groups) {\n    this.config.Filter = this.generateUserFilter(groups);\n  }\n\n  removeGroup(index) {\n    this.groups.splice(index, 1);\n    this.onGroupsChange(this.groups);\n  }\n\n  addGroup() {\n    this.groups.push(this.domainSuffix ? `cn=,${this.domainSuffix}` : 'cn=');\n  }\n\n  generateUserFilter(groups) {\n    const filteredGroups = groups.filter((group) => group !== this.domainSuffix);\n\n    if (!filteredGroups.length) {\n      return this.baseFilter;\n    }\n\n    const groupsFilter = filteredGroups.map((group) => `(memberOf=${group})`);\n\n    return `(&${this.baseFilter}${groupsFilter.length > 1 ? `(|${groupsFilter.join('')})` : groupsFilter[0]})`;\n  }\n\n  parseFilter() {\n    const filter = this.config.Filter;\n    if (filter === this.baseFilter) {\n      return;\n    }\n\n    if (!filter.includes('|')) {\n      const index = filter.indexOf('memberOf=');\n      if (index > -1) {\n        this.groups = [filter.slice(index + 9, -2)];\n      }\n      return;\n    }\n\n    const members = filter.slice(filter.indexOf('|') + 2, -3);\n    this.groups = members.split(')(').map((member) => member.replace('memberOf=', ''));\n  }\n\n  $onInit() {\n    this.parseFilter();\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-user-search.html');\n\nimport controller from './ldap-user-search.controller';\n\nexport const ldapUserSearch = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    settings: '=',\n    domainSuffix: '@',\n    showUsernameFormat: '<',\n    baseFilter: '@',\n    limitedFeatureId: '<',\n\n    onSearchClick: '<',\n  },\n};\n","import _ from 'lodash';\n\nexport default class LdapUserSearchController {\n  /* @ngInject */\n  constructor($async, Notifications) {\n    Object.assign(this, { $async, Notifications });\n\n    this.users = null;\n    this.showTable = false;\n\n    this.onRemoveClick = this.onRemoveClick.bind(this);\n    this.onAddClick = this.onAddClick.bind(this);\n    this.search = this.search.bind(this);\n  }\n\n  onAddClick() {\n    const lastSetting = _.last(this.settings);\n    this.settings.push({ BaseDN: this.domainSuffix, UserNameAttribute: lastSetting.UserNameAttribute, Filter: this.baseFilter });\n  }\n\n  onRemoveClick(index) {\n    this.settings.splice(index, 1);\n  }\n\n  search() {\n    return this.$async(async () => {\n      try {\n        this.users = null;\n        this.showTable = true;\n        const users = await this.onSearchClick();\n        this.users = _.compact(users);\n      } catch (error) {\n        this.Notifications.error('Failure', error, 'Failed to search users');\n        this.showTable = false;\n      }\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./ldap-users-datatable.html');\n\nexport const ldapUsersDatatable = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'GenericDatatableController',\n  bindings: {\n    titleText: '@',\n    titleIcon: '@',\n    dataset: '<',\n    tableKey: '@',\n    orderBy: '@',\n    reverseOrder: '<',\n  },\n};\n","const API_ENDPOINT_LDAP = 'api/ldap';\n\n/* @ngInject */\nexport function LDAP($resource) {\n  return $resource(\n    `${API_ENDPOINT_LDAP}/:action`,\n    {},\n    {\n      check: { method: 'POST', params: { action: 'check' } },\n      users: { method: 'POST', isArray: true, params: { action: 'users' } },\n      groups: { method: 'POST', isArray: true, params: { action: 'groups' } },\n      testLogin: { method: 'POST', params: { action: 'test' } },\n    }\n  );\n}\n","/* @ngInject */\nexport function LDAPService(LDAP) {\n  return { users, groups, check, testLogin };\n\n  function users(ldapSettings) {\n    return LDAP.users({ ldapSettings }).$promise;\n  }\n\n  async function groups(ldapSettings) {\n    const userGroups = await LDAP.groups({ ldapSettings }).$promise;\n    return userGroups.map(({ Name, Groups }) => {\n      let name = Name;\n      if (Name.includes(',') && Name.includes('=')) {\n        const [cnName] = Name.split(',');\n        const split = cnName.split('=');\n        name = split[1];\n      }\n      return { Groups, Name: name };\n    });\n  }\n\n  function check(ldapSettings) {\n    return LDAP.check({ ldapSettings }).$promise;\n  }\n\n  function testLogin(ldapSettings, username, password) {\n    return LDAP.testLogin({ ldapSettings, username, password }).$promise;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./save-auth-settings-button.html');\n\nexport const saveAuthSettingsButton = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  bindings: {\n    onSaveSettings: '<',\n    saveButtonDisabled: '<',\n    saveButtonState: '<',\n    limitedFeatureId: '<',\n    limitedFeatureClass: '<',\n    className: '<',\n  },\n};\n","import angular from 'angular';\n\nexport default angular.module('portainer.settings.general', []).name;\n","import angular from 'angular';\n\nimport authenticationModule from './authentication';\nimport generalModule from './general';\n\nexport default angular.module('portainer.settings', [authenticationModule, generalModule]).name;\n","export default class ActivityLogsDatatableController {\n  /* @ngInject */\n  constructor($controller, $scope, PaginationService) {\n    this.PaginationService = PaginationService;\n\n    this.tableKey = 'authLogs';\n\n    const $onInit = this.$onInit;\n    angular.extend(this, $controller('GenericDatatableController', { $scope }));\n\n    this.changeSort = this.changeSort.bind(this);\n    this.handleChangeLimit = this.handleChangeLimit.bind(this);\n    this.$onInit = $onInit.bind(this);\n  }\n\n  changeSort(key) {\n    let desc = false;\n    if (key === this.sort.key) {\n      desc = !this.sort.desc;\n    }\n\n    this.onChangeSort({ key, desc });\n  }\n\n  handleChangeLimit(limit) {\n    this.PaginationService.setPaginationLimit(this.tableKey, limit);\n    this.onChangeLimit(limit);\n  }\n\n  $onInit() {\n    this.$onInitGeneric();\n\n    const limit = this.PaginationService.getPaginationLimit(this.tableKey);\n    if (limit) {\n      this.onChangeLimit(+limit);\n    }\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./activity-logs-datatable.html');\n\nimport './activity-logs-datatable.css';\n\nimport controller from './activity-logs-datatable.controller.js';\n\nexport const activityLogsDatatable = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    logs: '<',\n    keyword: '<',\n    sort: '<',\n    limit: '<',\n    totalItems: '<',\n    currentPage: '<',\n    feature: '@',\n\n    onChangeContextFilter: '<',\n    onChangeKeyword: '<',\n    onChangeSort: '<',\n\n    onChangeLimit: '<',\n    onChangePage: '<',\n  },\n};\n","import moment from 'moment';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nexport default class ActivityLogsViewController {\n  /* @ngInject */\n  constructor($async, $scope, Notifications) {\n    this.$async = $async;\n    this.$scope = $scope;\n    this.Notifications = Notifications;\n\n    this.limitedFeature = FeatureId.ACTIVITY_AUDIT;\n\n    this.state = {\n      keyword: '',\n      date: {\n        from: 0,\n        to: 0,\n      },\n      sort: {\n        key: 'Timestamp',\n        desc: true,\n      },\n      page: 1,\n      limit: 10,\n      totalItems: 0,\n      logs: null,\n    };\n\n    this.today = moment().endOf('day');\n    this.minValidDate = moment().subtract(7, 'd').startOf('day');\n\n    this.onChangeDate = this.onChangeDate.bind(this);\n    this.onChangeKeyword = this.onChangeKeyword.bind(this);\n    this.onChangeSort = this.onChangeSort.bind(this);\n    this.loadLogs = this.loadLogs.bind(this);\n    this.onChangePage = this.onChangePage.bind(this);\n    this.onChangeLimit = this.onChangeLimit.bind(this);\n  }\n\n  onChangePage(page) {\n    this.state.page = page;\n    this.loadLogs();\n  }\n\n  onChangeLimit(limit) {\n    this.state.page = 1;\n    this.state.limit = limit;\n    this.loadLogs();\n  }\n\n  onChangeSort(sort) {\n    this.state.page = 1;\n    this.state.sort = sort;\n    this.loadLogs();\n  }\n\n  onChangeKeyword(keyword) {\n    return this.$scope.$evalAsync(() => {\n      this.state.page = 1;\n      this.state.keyword = keyword;\n      this.loadLogs();\n    });\n  }\n\n  onChangeDate({ startDate, endDate }) {\n    this.state.page = 1;\n    this.state.date = { to: endDate, from: startDate };\n    this.loadLogs();\n  }\n\n  async loadLogs() {\n    return this.$async(async () => {\n      this.state.logs = null;\n      try {\n        const { logs, totalCount } = { logs: [{}, {}, {}, {}, {}], totalCount: 5 };\n        this.state.logs = logs;\n        this.state.totalItems = totalCount;\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Failed loading user activity logs');\n      }\n    });\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.loadLogs();\n    });\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./activity-logs-view.html');\n\nimport controller from './activity-logs-view.controller.js';\n\nexport const activityLogsView = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n};\n","import angular from 'angular';\n\nimport { activityLogsView } from './activity-logs-view';\nimport { activityLogsDatatable } from './activity-logs-datatable';\n\nexport default angular\n  .module('portainer.app.user-activity.activity-logs-view', [])\n  .component('activityLogsDatatable', activityLogsDatatable)\n  .component('activityLogsView', activityLogsView).name;\n","import { authenticationMethodTypesMap, authenticationMethodTypesLabels } from '@/portainer/settings/authentication/auth-method-constants';\nimport { authenticationActivityTypesMap, authenticationActivityTypesLabels } from '@/portainer/settings/authentication/auth-type-constants';\n\nclass ActivityLogsDatatableController {\n  /* @ngInject */\n  constructor($controller, $scope, PaginationService) {\n    this.PaginationService = PaginationService;\n\n    this.tableKey = 'authLogs';\n\n    this.contextFilterLabels = Object.values(authenticationMethodTypesMap).map((value) => ({ value, label: authenticationMethodTypesLabels[value] }));\n    this.typeFilterLabels = Object.values(authenticationActivityTypesMap).map((value) => ({ value, label: authenticationActivityTypesLabels[value] }));\n\n    const $onInit = this.$onInit;\n    angular.extend(this, $controller('GenericDatatableController', { $scope }));\n    this.$onInit = $onInit.bind(this);\n\n    this.changeSort = this.changeSort.bind(this);\n    this.handleChangeLimit = this.handleChangeLimit.bind(this);\n  }\n\n  changeSort(key) {\n    let desc = false;\n    if (key === this.sort.key) {\n      desc = !this.sort.desc;\n    }\n\n    this.onChangeSort({ key, desc });\n  }\n\n  contextType(context) {\n    if (!(context in authenticationMethodTypesLabels)) {\n      return '';\n    }\n    return authenticationMethodTypesLabels[context];\n  }\n\n  activityType(type) {\n    if (!(type in authenticationActivityTypesLabels)) {\n      return '';\n    }\n    return authenticationActivityTypesLabels[type];\n  }\n\n  isAuthSuccess(type) {\n    return type === authenticationActivityTypesMap.AuthSuccess;\n  }\n\n  isAuthFailure(type) {\n    return type === authenticationActivityTypesMap.AuthFailure;\n  }\n\n  handleChangeLimit(limit) {\n    this.PaginationService.setPaginationLimit(this.tableKey, limit);\n    this.onChangeLimit(limit);\n  }\n\n  $onInit() {\n    this.$onInitGeneric();\n\n    const limit = this.PaginationService.getPaginationLimit(this.tableKey);\n    if (limit) {\n      this.handleChangeLimit(+limit);\n    }\n  }\n}\n\nexport default ActivityLogsDatatableController;\n","const autoNgTemplateLoaderTemplate1 = require('./auth-logs-datatable.html');\n\nimport controller from './auth-logs-datatable.controller';\n\nexport const authLogsDatatable = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n  bindings: {\n    logs: '<',\n    keyword: '<',\n    sort: '<',\n    limit: '<',\n    totalItems: '<',\n    currentPage: '<',\n    contextFilter: '<',\n    typeFilter: '<',\n    feature: '@',\n\n    onChangeContextFilter: '<',\n    onChangeTypeFilter: '<',\n    onChangeKeyword: '<',\n    onChangeSort: '<',\n\n    onChangeLimit: '<',\n    onChangePage: '<',\n  },\n};\n","import moment from 'moment';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nexport default class AuthLogsViewController {\n  /* @ngInject */\n  constructor($async, Notifications) {\n    this.$async = $async;\n    this.Notifications = Notifications;\n\n    this.limitedFeature = FeatureId.ACTIVITY_AUDIT;\n    this.state = {\n      keyword: '',\n      date: {\n        from: 0,\n        to: 0,\n      },\n      sort: {\n        key: 'Timestamp',\n        desc: true,\n      },\n      contextFilter: [1, 2, 3],\n      typeFilter: [1, 2, 3],\n      page: 1,\n      limit: 10,\n      totalItems: 0,\n      logs: null,\n    };\n\n    this.today = moment().endOf('day');\n    this.minValidDate = moment().subtract(7, 'd').startOf('day');\n\n    this.onChangeDate = this.onChangeDate.bind(this);\n    this.onChangeKeyword = this.onChangeKeyword.bind(this);\n    this.onChangeSort = this.onChangeSort.bind(this);\n    this.onChangeContextFilter = this.onChangeContextFilter.bind(this);\n    this.onChangeTypeFilter = this.onChangeTypeFilter.bind(this);\n    this.loadLogs = this.loadLogs.bind(this);\n    this.onChangePage = this.onChangePage.bind(this);\n    this.onChangeLimit = this.onChangeLimit.bind(this);\n  }\n\n  onChangePage(page) {\n    this.state.page = page;\n    this.loadLogs();\n  }\n\n  onChangeLimit(limit) {\n    this.state.page = 1;\n    this.state.limit = limit;\n    this.loadLogs();\n  }\n\n  onChangeSort(sort) {\n    this.state.page = 1;\n    this.state.sort = sort;\n    this.loadLogs();\n  }\n\n  onChangeContextFilter(filterKey, filterState) {\n    this.state.contextFilter = filterState;\n    this.loadLogs();\n  }\n\n  onChangeTypeFilter(filterKey, filterState) {\n    this.state.typeFilter = filterState;\n    this.loadLogs();\n  }\n\n  onChangeKeyword(keyword) {\n    return this.$scope.$evalAsync(() => {\n      this.state.page = 1;\n      this.state.keyword = keyword;\n      this.loadLogs();\n    });\n  }\n\n  onChangeDate({ startDate, endDate }) {\n    this.state.page = 1;\n    this.state.date = { to: endDate, from: startDate };\n    this.loadLogs();\n  }\n\n  async loadLogs() {\n    return this.$async(async () => {\n      this.state.logs = null;\n      try {\n        const { logs, totalCount } = { logs: [{}, {}, {}, {}, {}], totalCount: 5 };\n        this.state.logs = decorateLogs(logs);\n        this.state.totalItems = totalCount;\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Failed loading auth activity logs');\n      }\n    });\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.loadLogs();\n    });\n  }\n}\n\nfunction decorateLogs(logs) {\n  return logs;\n}\n","const autoNgTemplateLoaderTemplate1 = require('./auth-logs-view.html');\n\nimport controller from './auth-logs-view.controller.js';\n\nexport const authLogsView = {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n};\n","import angular from 'angular';\n\nimport { authLogsView } from './auth-logs-view';\nimport { authLogsDatatable } from './auth-logs-datatable';\n\nexport default angular.module('portainer.app.user-activity.auth-logs-view', []).component('authLogsView', authLogsView).component('authLogsDatatable', authLogsDatatable).name;\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { ToastNotification } from '../types';\n\nexport const columnHelper = createColumnHelper<ToastNotification>();\n","import _ from 'lodash';\n\nimport { columnHelper } from './helper';\n\nexport const type = columnHelper.accessor('type', {\n  header: 'Type',\n  id: 'type',\n  cell: ({ getValue }) => {\n    const value = getValue();\n\n    return _.capitalize(value);\n  },\n});\n","import { columnHelper } from './helper';\n\nexport const title = columnHelper.accessor('title', {\n  header: 'Title',\n  id: 'title',\n});\n","import { columnHelper } from './helper';\n\nexport const details = columnHelper.accessor('details', {\n  header: 'Details',\n  id: 'details',\n  cell: ({ getValue }) => {\n    const value = getValue();\n\n    return <div className=\"whitespace-normal\">{value}</div>;\n  },\n});\n","import { type } from './type';\nimport { title } from './title';\nimport { details } from './details';\nimport { time } from './time';\n\nexport const columns = [type, title, details, time];\n","import { isoDate } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const time = columnHelper.accessor('timeStamp', {\n  header: 'Time',\n  id: 'time',\n  cell: ({ getValue }) => {\n    const value = getValue();\n\n    return value ? isoDate(value) : '-';\n  },\n});\n","import { Bell, Trash2 } from 'lucide-react';\nimport { useStore } from 'zustand';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { react2angular } from '@/react-tools/react2angular';\nimport { useUser } from '@/react/hooks/useUser';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Datatable } from '@@/datatables';\nimport { Button } from '@@/buttons';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { notificationsStore } from './notifications-store';\nimport { ToastNotification } from './types';\nimport { columns } from './columns';\n\nconst storageKey = 'notifications-list';\nconst settingsStore = createPersistedStore(storageKey, {\n  id: 'time',\n  desc: true,\n});\n\nexport function NotificationsView() {\n  const { user } = useUser();\n\n  const userNotifications: ToastNotification[] =\n    useStore(notificationsStore, (state) => state.userNotifications[user.Id]) ||\n    [];\n\n  const breadcrumbs = 'Notifications';\n  const tableState = useTableState(settingsStore, storageKey);\n\n  const {\n    params: { id: activeItemId },\n  } = useCurrentStateAndParams();\n\n  return (\n    <>\n      <PageHeader title=\"Notifications\" breadcrumbs={breadcrumbs} reload />\n      <Datatable\n        columns={columns}\n        title=\"Notifications\"\n        titleIcon={Bell}\n        dataset={userNotifications}\n        settingsManager={tableState}\n        emptyContentLabel=\"No notifications found\"\n        renderTableActions={(selectedRows) => (\n          <TableActions selectedRows={selectedRows} />\n        )}\n        getRowId={(row) => row.id}\n        highlightedItemId={activeItemId}\n      />\n    </>\n  );\n}\n\nfunction TableActions({ selectedRows }: { selectedRows: ToastNotification[] }) {\n  const { user } = useUser();\n  const notificationsStoreState = useStore(notificationsStore);\n  return (\n    <Button\n      icon={Trash2}\n      color=\"dangerlight\"\n      onClick={() => handleRemove()}\n      disabled={selectedRows.length === 0}\n    >\n      Remove\n    </Button>\n  );\n\n  function handleRemove() {\n    const { removeNotifications } = notificationsStoreState;\n    const ids = selectedRows.map((row) => row.id);\n    removeNotifications(user.Id, ids);\n  }\n}\n\nexport const NotificationsViewAngular = react2angular(\n  withUIRouter(withReactQuery(withCurrentUser(NotificationsView))),\n  []\n);\n","import angular from 'angular';\n\nimport { NotificationsViewAngular } from '@/react/portainer/notifications/NotificationsView';\nimport { AccessHeaders } from '../authorization-guard';\nimport authLogsViewModule from './auth-logs-view';\nimport activityLogsViewModule from './activity-logs-view';\n\nexport default angular.module('portainer.app.user-activity', [authLogsViewModule, activityLogsViewModule]).component('notifications', NotificationsViewAngular).config(config).name;\n\n/* @ngInject */\nfunction config($stateRegistryProvider) {\n  $stateRegistryProvider.register({\n    name: 'portainer.authLogs',\n    url: '/auth-logs',\n    views: {\n      'content@': {\n        component: 'authLogsView',\n      },\n    },\n    data: {\n      docs: '/admin/logs',\n      access: AccessHeaders.Admin,\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'portainer.activityLogs',\n    url: '/activity-logs',\n    views: {\n      'content@': {\n        component: 'activityLogsView',\n      },\n    },\n    data: {\n      docs: '/admin/logs/activity',\n      access: AccessHeaders.Admin,\n    },\n  });\n\n  $stateRegistryProvider.register({\n    name: 'portainer.notifications',\n    url: '/notifications',\n    views: {\n      'content@': {\n        component: 'notifications',\n      },\n    },\n    params: {\n      id: '',\n    },\n    data: {\n      docs: '/admin/notifications',\n    },\n  });\n}\n","import { confirmChangePassword, confirmDelete } from '@@/modals/confirm';\nimport { openDialog } from '@@/modals/Dialog';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nangular.module('portainer.app').controller('AccountController', [\n  '$scope',\n  '$state',\n  'Authentication',\n  'UserService',\n  'Notifications',\n  'SettingsService',\n  'StateManager',\n  function ($scope, $state, Authentication, UserService, Notifications, SettingsService, StateManager) {\n    $scope.formValues = {\n      currentPassword: '',\n      newPassword: '',\n      confirmPassword: '',\n    };\n\n    $scope.updatePassword = async function () {\n      const confirmed = await confirmChangePassword();\n      if (confirmed) {\n        try {\n          await UserService.updateUserPassword($scope.userID, $scope.formValues.currentPassword, $scope.formValues.newPassword);\n          Notifications.success('Success', 'Password successfully updated');\n          StateManager.resetPasswordChangeSkips($scope.userID.toString());\n          $scope.forceChangePassword = false;\n          $state.go('portainer.logout');\n        } catch (err) {\n          Notifications.error('Failure', err, err.msg);\n        }\n      }\n    };\n\n    $scope.skipPasswordChange = async function () {\n      try {\n        if ($scope.userCanSkip()) {\n          StateManager.setPasswordChangeSkipped($scope.userID.toString());\n          $scope.forceChangePassword = false;\n          $state.go('portainer.home');\n        }\n      } catch (err) {\n        Notifications.error('Failure', err, err.msg);\n      }\n    };\n\n    $scope.userCanSkip = function () {\n      return $scope.timesPasswordChangeSkipped < 2;\n    };\n\n    this.uiCanExit = (newTransition) => {\n      if (newTransition) {\n        if ($scope.userRole === 1 && newTransition.to().name === 'portainer.settings.authentication') {\n          return true;\n        }\n        if (newTransition.to().name === 'portainer.logout') {\n          return true;\n        }\n      }\n\n      if ($scope.forceChangePassword) {\n        confirmForceChangePassword();\n      }\n      return !$scope.forceChangePassword;\n    };\n\n    $scope.uiCanExit = () => {\n      return this.uiCanExit();\n    };\n\n    $scope.removeAction = (selectedTokens) => {\n      const msg = 'Do you want to remove the selected access token(s)? Any script or application using these tokens will no longer be able to invoke the Portainer API.';\n\n      confirmDelete(msg).then((confirmed) => {\n        if (!confirmed) {\n          return;\n        }\n        let actionCount = selectedTokens.length;\n        selectedTokens.forEach((token) => {\n          UserService.deleteAccessToken($scope.userID, token.id)\n            .then(() => {\n              Notifications.success('Success', 'Token successfully removed');\n              var index = $scope.tokens.indexOf(token);\n              $scope.tokens.splice(index, 1);\n            })\n            .catch((err) => {\n              Notifications.error('Failure', err, 'Unable to remove token');\n            })\n            .finally(() => {\n              --actionCount;\n              if (actionCount === 0) {\n                $state.reload();\n              }\n            });\n        });\n      });\n    };\n\n    async function initView() {\n      const state = StateManager.getState();\n      const userDetails = Authentication.getUserDetails();\n      $scope.userID = userDetails.ID;\n      $scope.userRole = Authentication.getUserDetails().role;\n      $scope.forceChangePassword = userDetails.forceChangePassword;\n      $scope.isInitialAdmin = userDetails.ID === 1;\n\n      if (state.application.demoEnvironment.enabled) {\n        $scope.isDemoUser = state.application.demoEnvironment.users.includes($scope.userID);\n      }\n\n      SettingsService.publicSettings()\n        .then(function success(data) {\n          $scope.AuthenticationMethod = data.AuthenticationMethod;\n\n          if (state.UI.requiredPasswordLength && state.UI.requiredPasswordLength !== data.RequiredPasswordLength) {\n            StateManager.clearPasswordChangeSkips();\n          }\n\n          $scope.timesPasswordChangeSkipped =\n            state.UI.timesPasswordChangeSkipped && state.UI.timesPasswordChangeSkipped[$scope.userID.toString()]\n              ? state.UI.timesPasswordChangeSkipped[$scope.userID.toString()]\n              : 0;\n\n          $scope.requiredPasswordLength = data.RequiredPasswordLength;\n          StateManager.setRequiredPasswordLength(data.RequiredPasswordLength);\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve application settings');\n        });\n\n      UserService.getAccessTokens($scope.userID)\n        .then(function success(data) {\n          $scope.tokens = data;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve user tokens');\n        });\n    }\n\n    initView();\n  },\n]);\n\nfunction confirmForceChangePassword() {\n  return openDialog({\n    message: 'Please update your password to a stronger password to continue using Portainer',\n    buttons: [buildConfirmButton('OK')],\n  });\n}\n","import angular from 'angular';\nimport uuidv4 from 'uuid/v4';\nimport { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport { dispatchCacheRefreshEvent } from '@/portainer/services/http-request.helper';\n\nclass AuthenticationController {\n  /* @ngInject */\n  constructor(\n    $async,\n    $analytics,\n    $scope,\n    $state,\n    $stateParams,\n    $window,\n    Authentication,\n    UserService,\n    StateManager,\n    Notifications,\n    SettingsService,\n    URLHelper,\n    LocalStorage,\n    StatusService\n  ) {\n    this.$async = $async;\n    this.$analytics = $analytics;\n    this.$scope = $scope;\n    this.$state = $state;\n    this.$stateParams = $stateParams;\n    this.$window = $window;\n    this.Authentication = Authentication;\n    this.UserService = UserService;\n    this.StateManager = StateManager;\n    this.Notifications = Notifications;\n    this.SettingsService = SettingsService;\n    this.URLHelper = URLHelper;\n    this.LocalStorage = LocalStorage;\n    this.StatusService = StatusService;\n\n    this.logo = this.StateManager.getState().application.logo;\n    this.formValues = {\n      Username: '',\n      Password: '',\n    };\n    this.state = {\n      passwordInputType: 'password',\n      showOAuthLogin: false,\n      showStandardLogin: false,\n      AuthenticationError: '',\n      loginInProgress: true,\n      OAuthProvider: '',\n    };\n\n    this.checkForEndpointsAsync = this.checkForEndpointsAsync.bind(this);\n    this.postLoginSteps = this.postLoginSteps.bind(this);\n\n    this.oAuthLoginAsync = this.oAuthLoginAsync.bind(this);\n    this.internalLoginAsync = this.internalLoginAsync.bind(this);\n\n    this.authenticateUserAsync = this.authenticateUserAsync.bind(this);\n\n    this.manageOauthCodeReturn = this.manageOauthCodeReturn.bind(this);\n    this.authEnabledFlowAsync = this.authEnabledFlowAsync.bind(this);\n    this.onInit = this.onInit.bind(this);\n  }\n\n  /**\n   * UTILS FUNCTIONS SECTION\n   */\n\n  toggleShowPassword() {\n    this.state.passwordInputType = this.state.passwordInputType === 'text' ? 'password' : 'text';\n  }\n\n  // set the password input type to password, so that browser autofills don't treat the input as text\n  setPasswordInputType(inputType) {\n    this.state.passwordInputType = inputType;\n    document.getElementById('password').setAttribute('type', inputType);\n  }\n\n  logout(error) {\n    this.Authentication.logout();\n    this.state.loginInProgress = false;\n    this.generateOAuthLoginURI();\n    this.LocalStorage.storeLogoutReason(error);\n    this.$window.location.reload();\n  }\n\n  error(err, message) {\n    this.state.AuthenticationError = message;\n    if (!err) {\n      err = {};\n    }\n    this.Notifications.error('Failure', err, message);\n    this.state.loginInProgress = false;\n  }\n\n  determineOauthProvider(LoginURI) {\n    if (LoginURI.indexOf('login.microsoftonline.com') !== -1) {\n      return 'Microsoft';\n    } else if (LoginURI.indexOf('accounts.google.com') !== -1) {\n      return 'Google';\n    } else if (LoginURI.indexOf('github.com') !== -1) {\n      return 'Github';\n    }\n    return 'OAuth';\n  }\n\n  generateState() {\n    const uuid = uuidv4();\n    this.LocalStorage.storeLoginStateUUID(uuid);\n    return '&state=' + uuid;\n  }\n\n  generateOAuthLoginURI() {\n    this.OAuthLoginURI = this.state.OAuthLoginURI + this.generateState();\n  }\n\n  hasValidState(state) {\n    const savedUUID = this.LocalStorage.getLoginStateUUID();\n    return savedUUID && state && savedUUID === state;\n  }\n\n  /**\n   * END UTILS FUNCTIONS SECTION\n   */\n\n  /**\n   * POST LOGIN STEPS SECTION\n   */\n\n  async checkForEndpointsAsync() {\n    try {\n      const isAdmin = this.Authentication.isAdmin();\n      const endpoints = await getEnvironments({ limit: 1, query: { excludeSnapshots: true } });\n\n      if (this.Authentication.getUserDetails().forceChangePassword) {\n        return this.$state.go('portainer.account');\n      }\n\n      if (endpoints.value.length === 0 && isAdmin) {\n        return this.$state.go('portainer.wizard');\n      } else {\n        return this.$state.go('portainer.home');\n      }\n    } catch (err) {\n      this.error(err, 'Unable to retrieve environments');\n    }\n  }\n\n  async postLoginSteps() {\n    await this.StateManager.initialize();\n\n    const isAdmin = this.Authentication.isAdmin();\n    this.$analytics.setUserRole(isAdmin ? 'admin' : 'standard-user');\n\n    await this.checkForEndpointsAsync();\n  }\n  /**\n   * END POST LOGIN STEPS SECTION\n   */\n\n  /**\n   * LOGIN METHODS SECTION\n   */\n\n  async oAuthLoginAsync(code) {\n    try {\n      await this.Authentication.OAuthLogin(code);\n      this.URLHelper.cleanParameters();\n    } catch (err) {\n      this.error(err, 'Unable to login via OAuth');\n    }\n  }\n\n  async internalLoginAsync(username, password) {\n    await this.Authentication.login(username, password);\n    await this.postLoginSteps();\n  }\n\n  /**\n   * END LOGIN METHODS SECTION\n   */\n\n  /**\n   * AUTHENTICATE USER SECTION\n   */\n\n  async authenticateUserAsync() {\n    try {\n      var username = this.formValues.Username;\n      var password = this.formValues.Password;\n      this.state.loginInProgress = true;\n      await this.internalLoginAsync(username, password);\n    } catch (err) {\n      this.error(err, 'Unable to login');\n    }\n  }\n\n  authenticateUser() {\n    this.setPasswordInputType('password');\n    return this.$async(this.authenticateUserAsync);\n  }\n\n  /**\n   * END AUTHENTICATE USER SECTION\n   */\n\n  /**\n   * ON INIT SECTION\n   */\n  async manageOauthCodeReturn(code, state) {\n    if (this.hasValidState(state)) {\n      await this.oAuthLoginAsync(code);\n    } else {\n      this.error(null, 'Invalid OAuth state, try again.');\n    }\n  }\n\n  async authEnabledFlowAsync() {\n    try {\n      const exists = await this.UserService.administratorExists();\n      if (!exists) {\n        this.$state.go('portainer.init.admin');\n      }\n    } catch (err) {\n      this.error(err, 'Unable to verify administrator account existence');\n    }\n  }\n\n  toggleStandardLogin() {\n    this.state.showStandardLogin = !this.state.showStandardLogin;\n  }\n\n  async onInit() {\n    try {\n      const settings = await this.SettingsService.publicSettings();\n      this.state.showOAuthLogin = settings.AuthenticationMethod === 3;\n      this.state.showStandardLogin = !this.state.showOAuthLogin;\n      this.state.OAuthLoginURI = settings.OAuthLoginURI;\n      this.state.OAuthProvider = this.determineOauthProvider(settings.OAuthLoginURI);\n\n      const code = this.URLHelper.getParameter('code');\n      const state = this.URLHelper.getParameter('state');\n      if (code && state) {\n        await this.manageOauthCodeReturn(code, state);\n        this.generateOAuthLoginURI();\n        return;\n      }\n      if (!this.logo) {\n        await this.StateManager.initialize();\n        this.logo = this.StateManager.getState().application.logo;\n      }\n      this.generateOAuthLoginURI();\n\n      if (this.$stateParams.logout || this.$stateParams.error) {\n        this.logout(this.$stateParams.error);\n        return;\n      }\n      const error = this.LocalStorage.getLogoutReason();\n      if (error) {\n        this.state.AuthenticationError = error;\n        this.LocalStorage.cleanLogoutReason();\n      }\n\n      // always clear the kubernetes cache on login\n      dispatchCacheRefreshEvent();\n\n      if (this.Authentication.isAuthenticated()) {\n        await this.postLoginSteps();\n      }\n      this.state.loginInProgress = false;\n\n      await this.authEnabledFlowAsync();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve public settings');\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  /**\n   * END ON INIT SECTION\n   */\n}\n\nexport default AuthenticationController;\nangular.module('portainer.app').controller('AuthenticationController', AuthenticationController);\n","import _ from 'lodash-es';\nimport { AccessControlFormData } from 'Portainer/components/accessControlForm/porAccessControlFormModel';\nimport { isTemplateVariablesEnabled, renderTemplate } from '@/react/portainer/custom-templates/components/utils';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { getVariablesFieldDefaultValues } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesField';\nimport { TEMPLATE_NAME_VALIDATION_REGEX } from '@/react/portainer/custom-templates/components/CommonFields';\n\nclass CustomTemplatesViewController {\n  /* @ngInject */\n  constructor(\n    $anchorScroll,\n    $async,\n    $rootScope,\n    $state,\n    Authentication,\n    CustomTemplateService,\n    FormValidator,\n    NetworkService,\n    Notifications,\n    ResourceControlService,\n    StackService,\n    StateManager\n  ) {\n    this.$anchorScroll = $anchorScroll;\n    this.$async = $async;\n    this.$rootScope = $rootScope;\n    this.$state = $state;\n    this.Authentication = Authentication;\n    this.CustomTemplateService = CustomTemplateService;\n    this.FormValidator = FormValidator;\n    this.NetworkService = NetworkService;\n    this.Notifications = Notifications;\n    this.ResourceControlService = ResourceControlService;\n    this.StateManager = StateManager;\n    this.StackService = StackService;\n\n    this.isTemplateVariablesEnabled = isTemplateVariablesEnabled;\n\n    this.DOCKER_STANDALONE = 'DOCKER_STANDALONE';\n    this.DOCKER_SWARM_MODE = 'DOCKER_SWARM_MODE';\n\n    this.state = {\n      selectedTemplate: null,\n      showAdvancedOptions: false,\n      formValidationError: '',\n      actionInProgress: false,\n      deployable: false,\n      templateNameRegex: TEMPLATE_NAME_VALIDATION_REGEX,\n      templateContent: '',\n      templateLoadFailed: false,\n    };\n\n    this.currentUser = {\n      isAdmin: false,\n      id: null,\n    };\n\n    this.formValues = {\n      network: '',\n      name: '',\n      fileContent: '',\n      AccessControlData: new AccessControlFormData(),\n      variables: [],\n    };\n\n    this.getTemplates = this.getTemplates.bind(this);\n    this.getTemplatesAsync = this.getTemplatesAsync.bind(this);\n    this.removeTemplates = this.removeTemplates.bind(this);\n    this.removeTemplatesAsync = this.removeTemplatesAsync.bind(this);\n    this.validateForm = this.validateForm.bind(this);\n    this.createStack = this.createStack.bind(this);\n    this.createStackAsync = this.createStackAsync.bind(this);\n    this.selectTemplate = this.selectTemplate.bind(this);\n    this.selectTemplateAsync = this.selectTemplateAsync.bind(this);\n    this.unselectTemplate = this.unselectTemplate.bind(this);\n    this.unselectTemplateAsync = this.unselectTemplateAsync.bind(this);\n    this.getNetworks = this.getNetworks.bind(this);\n    this.getNetworksAsync = this.getNetworksAsync.bind(this);\n    this.confirmDelete = this.confirmDelete.bind(this);\n    this.confirmDeleteAsync = this.confirmDeleteAsync.bind(this);\n    this.editorUpdate = this.editorUpdate.bind(this);\n    this.isEditAllowed = this.isEditAllowed.bind(this);\n    this.onChangeFormValues = this.onChangeFormValues.bind(this);\n    this.onChangeTemplateVariables = this.onChangeTemplateVariables.bind(this);\n  }\n\n  isEditAllowed(template) {\n    return this.currentUser.isAdmin || this.currentUser.id === template.CreatedByUserId;\n  }\n\n  getTemplates() {\n    return this.$async(this.getTemplatesAsync);\n  }\n  async getTemplatesAsync() {\n    try {\n      const templates = await this.CustomTemplateService.customTemplates([1, 2]);\n      this.templates = templates.filter((t) => !t.EdgeTemplate);\n    } catch (err) {\n      this.Notifications.error('Failed loading templates', err, 'Unable to load custom templates');\n    }\n  }\n\n  removeTemplates(templates) {\n    return this.$async(this.removeTemplatesAsync, templates);\n  }\n  async removeTemplatesAsync(templates) {\n    for (let template of templates) {\n      try {\n        await this.CustomTemplateService.remove(template.id);\n        this.Notifications.success('Success', 'Removed template successfully');\n        _.remove(this.templates, template);\n      } catch (err) {\n        this.Notifications.error('Failed removing template', err, 'Unable to remove custom template');\n      }\n    }\n  }\n\n  onChangeTemplateVariables(variables) {\n    this.onChangeFormValues({ variables });\n\n    this.renderTemplate();\n  }\n\n  renderTemplate() {\n    if (!this.isTemplateVariablesEnabled) {\n      return;\n    }\n\n    const fileContent = renderTemplate(this.state.templateContent, this.formValues.variables, this.state.selectedTemplate.Variables);\n    this.onChangeFormValues({ fileContent });\n  }\n\n  onChangeFormValues(values) {\n    this.formValues = {\n      ...this.formValues,\n      ...values,\n    };\n  }\n\n  validateForm(accessControlData, isAdmin) {\n    this.state.formValidationError = '';\n    const error = this.FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n    if (error) {\n      this.state.formValidationError = error;\n      return false;\n    }\n    return true;\n  }\n\n  createStack() {\n    return this.$async(this.createStackAsync);\n  }\n  async createStackAsync() {\n    const userId = this.currentUser.id;\n    const accessControlData = this.formValues.AccessControlData;\n\n    if (!this.validateForm(accessControlData, this.currentUser.isAdmin)) {\n      return;\n    }\n    const stackName = this.formValues.name;\n\n    const endpointId = this.endpoint.Id;\n\n    this.state.actionInProgress = true;\n\n    try {\n      const file = this.formValues.fileContent;\n      const createAction = this.state.selectedTemplate.Type === 1 ? this.StackService.createSwarmStackFromFileContent : this.StackService.createComposeStackFromFileContent;\n      const { ResourceControl: resourceControl } = await createAction(stackName, file, [], endpointId);\n      await this.ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n      this.Notifications.success('Success', 'Stack successfully deployed');\n      this.$state.go('docker.stacks');\n    } catch (err) {\n      this.Notifications.error('Deployment error', err, 'Failed to deploy stack');\n    } finally {\n      this.state.actionInProgress = false;\n    }\n  }\n\n  unselectTemplate() {\n    // wrapping unselect with async to make a digest cycle run between unselect to select\n    return this.$async(this.unselectTemplateAsync);\n  }\n  async unselectTemplateAsync() {\n    this.state.selectedTemplate = null;\n\n    this.formValues = {\n      network: '',\n      name: '',\n      fileContent: '',\n      AccessControlData: new AccessControlFormData(),\n      variables: [],\n    };\n  }\n\n  selectTemplate(templateId) {\n    return this.$async(this.selectTemplateAsync, templateId);\n  }\n  async selectTemplateAsync(templateId) {\n    if (this.state.selectedTemplate) {\n      await this.unselectTemplate(this.state.selectedTemplate);\n    }\n\n    const template = _.find(this.templates, { Id: templateId });\n\n    const isGit = template.GitConfig !== null;\n    this.state.isEditorReadOnly = isGit;\n\n    try {\n      this.state.templateContent = this.formValues.fileContent = await this.CustomTemplateService.customTemplateFile(template.Id, template.GitConfig !== null);\n    } catch (err) {\n      this.state.templateLoadFailed = true;\n      this.Notifications.error('Failure', err, 'Unable to retrieve custom template data');\n    }\n\n    this.formValues.network = _.find(this.availableNetworks, function (o) {\n      return o.Name === 'bridge';\n    });\n\n    this.formValues.name = '';\n    this.state.selectedTemplate = template;\n    this.$anchorScroll('view-top');\n    const applicationState = this.StateManager.getState();\n    this.state.deployable = this.isDeployable(applicationState.endpoint, template.Type);\n\n    if (template.Variables && template.Variables.length > 0) {\n      const variables = getVariablesFieldDefaultValues(template.Variables);\n      this.onChangeTemplateVariables(variables);\n    }\n  }\n\n  getNetworks(provider, apiVersion) {\n    return this.$async(this.getNetworksAsync, provider, apiVersion);\n  }\n  async getNetworksAsync(provider, apiVersion) {\n    try {\n      const networks = await this.NetworkService.networks(\n        provider === 'DOCKER_STANDALONE' || provider === 'DOCKER_SWARM_MODE',\n        false,\n        provider === 'DOCKER_SWARM_MODE' && apiVersion >= 1.25\n      );\n      this.availableNetworks = networks;\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Failed to load networks.');\n    }\n  }\n\n  confirmDelete(templateId) {\n    return this.$async(this.confirmDeleteAsync, templateId);\n  }\n  async confirmDeleteAsync(templateId) {\n    const confirmed = await confirmDelete('Are you sure that you want to delete this template?');\n    if (!confirmed) {\n      return;\n    }\n\n    try {\n      var template = _.find(this.templates, { Id: templateId });\n      await this.CustomTemplateService.remove(templateId);\n      this.Notifications.success('Template successfully deleted', template && template.Title);\n      this.templates = this.templates.filter((template) => template.Id !== templateId);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Failed to delete template');\n    }\n  }\n\n  editorUpdate(value) {\n    this.formValues.fileContent = value;\n  }\n\n  isDeployable(endpoint, templateType) {\n    let deployable = false;\n    switch (templateType) {\n      case 1:\n        deployable = endpoint.mode.provider === this.DOCKER_SWARM_MODE;\n        break;\n      case 2:\n        deployable = endpoint.mode.provider === this.DOCKER_STANDALONE;\n        break;\n    }\n\n    return deployable;\n  }\n\n  $onInit() {\n    const applicationState = this.StateManager.getState();\n\n    const {\n      endpoint: { mode: endpointMode },\n      apiVersion,\n    } = applicationState;\n\n    this.getTemplates();\n    this.getNetworks(endpointMode.provider, apiVersion);\n\n    this.currentUser.isAdmin = this.Authentication.isAdmin();\n    const user = this.Authentication.getUserDetails();\n    this.currentUser.id = user.ID;\n  }\n}\n\nexport default CustomTemplatesViewController;\n","const autoNgTemplateLoaderTemplate1 = require('./customTemplatesView.html');\n\nimport CustomTemplatesViewController from './customTemplatesViewController.js';\n\nangular.module('portainer.app').component('customTemplatesView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: CustomTemplatesViewController,\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import uuidv4 from 'uuid/v4';\n\nimport { PortainerEndpointCreationTypes } from 'Portainer/models/endpoint/models';\nimport { configureDevice, getProfiles } from 'Portainer/hostmanagement/fdo/fdo.service';\n\nangular\n  .module('portainer.app')\n  .controller(\n    'ImportDeviceController',\n    function ImportDeviceController($async, $q, $scope, $state, EndpointService, GroupService, TagService, Notifications, Authentication, FileUploadService) {\n      $scope.state = {\n        actionInProgress: false,\n        vouchersUploading: false,\n        vouchersUploaded: false,\n        deviceIDs: [],\n        allowCreateTag: Authentication.isAdmin(),\n      };\n\n      $scope.formValues = {\n        DeviceName: '',\n        DeviceProfile: '',\n        GroupId: 1,\n        TagIds: [],\n        VoucherFiles: [],\n        PortainerURL: '',\n        Suffix: 1,\n      };\n\n      $scope.profiles = [];\n\n      $scope.onChangeTags = function onChangeTags(value) {\n        return $scope.$evalAsync(() => {\n          $scope.formValues.TagIds = value;\n        });\n      };\n\n      $scope.onVoucherFilesChange = function () {\n        if ($scope.formValues.VoucherFiles.length < 1) {\n          return;\n        }\n\n        $scope.state.vouchersUploading = true;\n\n        let uploads = $scope.formValues.VoucherFiles.map((f) => FileUploadService.uploadOwnershipVoucher(f));\n\n        $q.all(uploads)\n          .then(function success(responses) {\n            $scope.state.vouchersUploading = false;\n            $scope.state.vouchersUploaded = true;\n            $scope.state.deviceIDs = responses.map((r) => r.data.guid);\n          })\n          .catch(function error(err) {\n            $scope.state.vouchersUploading = false;\n            if ($scope.formValues.VoucherFiles.length === 1) {\n              Notifications.error('Failure', err, 'Unable to upload the Ownership Voucher');\n            } else {\n              Notifications.error('Failure', null, 'Unable to upload the Ownership Vouchers, please check the logs');\n            }\n          });\n      };\n\n      $scope.createEndpointAndConfigureDevice = function () {\n        return $async(async () => {\n          $scope.state.actionInProgress = true;\n\n          let suffix = $scope.formValues.Suffix;\n\n          for (const deviceID of $scope.state.deviceIDs) {\n            let deviceName = $scope.formValues.DeviceName + suffix;\n\n            try {\n              var endpoint = await EndpointService.createRemoteEndpoint(\n                deviceName,\n                PortainerEndpointCreationTypes.EdgeAgentEnvironment,\n                $scope.formValues.PortainerURL,\n                '',\n                $scope.formValues.GroupId,\n                $scope.formValues.TagIds,\n                false,\n                false,\n                false,\n                null,\n                null,\n                null,\n                null\n              );\n            } catch (err) {\n              Notifications.error('Failure', err, 'Unable to create the environment');\n              $scope.state.actionInProgress = false;\n              return;\n            }\n\n            suffix++;\n\n            const config = {\n              edgeID: endpoint.EdgeID || uuidv4(),\n              edgeKey: endpoint.EdgeKey,\n              name: deviceName,\n              profile: $scope.formValues.DeviceProfile,\n            };\n\n            try {\n              await configureDevice(deviceID, config);\n            } catch (err) {\n              Notifications.error('Failure', err, 'Unable to import device');\n              return;\n            } finally {\n              $scope.state.actionInProgress = false;\n            }\n          }\n\n          Notifications.success('Success', 'Device(s) successfully imported');\n          $state.go('edge.devices');\n        });\n      };\n\n      async function initView() {\n        try {\n          $scope.profiles = await getProfiles();\n        } catch (err) {\n          Notifications.error('Failure', err, 'Unable to load profiles');\n          return;\n        }\n\n        $q.all({\n          groups: GroupService.groups(),\n        })\n          .then(function success(data) {\n            $scope.groups = data.groups;\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to load groups');\n          });\n      }\n\n      initView();\n    }\n  );\n","import angular from 'angular';\nimport { editor } from '@@/BoxSelector/common-options/build-methods';\n\nimport { createProfile } from 'Portainer/hostmanagement/fdo/fdo.service';\n\nangular.module('portainer.app').controller('AddProfileController', AddProfileController);\n\n/* @ngInject */\nexport default function AddProfileController($scope, $async, $state, $window, Notifications) {\n  $scope.buildMethods = [editor];\n\n  $scope.formValues = {\n    name: '',\n    profileFileContent: '',\n  };\n\n  $scope.state = {\n    method: 'editor',\n    actionInProgress: false,\n    isEditorDirty: false,\n  };\n\n  $window.onbeforeunload = () => {\n    if ($scope.state.method === 'editor' && $scope.formValues.profileFileContent && $scope.state.isEditorDirty) {\n      return '';\n    }\n  };\n\n  $scope.$on('$destroy', function () {\n    $scope.state.isEditorDirty = false;\n  });\n\n  $scope.onChangeFormValues = onChangeFormValues;\n\n  $scope.createProfileAsync = function () {\n    return $async(async () => {\n      const method = $scope.state.method;\n\n      const name = $scope.formValues.name;\n      const fileContent = $scope.formValues.profileFileContent;\n\n      if (method !== 'editor' && fileContent === '') {\n        $scope.state.formValidationError = 'Profile file content must not be empty';\n        return;\n      }\n\n      $scope.state.actionInProgress = true;\n\n      try {\n        await createProfile(name, method, fileContent);\n        Notifications.success('Success', 'Profile successfully created');\n        $scope.state.isEditorDirty = false;\n        $state.go('portainer.settings.edgeCompute');\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to create Profile');\n      } finally {\n        $scope.state.actionInProgress = false;\n      }\n    });\n  };\n\n  $scope.onChangeFileContent = function onChangeFileContent(value) {\n    $scope.formValues.profileFileContent = value;\n    $scope.state.isEditorDirty = true;\n  };\n\n  function onChangeFormValues(newValues) {\n    $scope.formValues = newValues;\n  }\n}\n","const autoNgTemplateLoaderTemplate1 = require('./addProfile.html');\n\nimport angular from 'angular';\n\nimport controller from './addProfileController';\n\nangular.module('portainer.app').component('addProfileView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n});\n","import angular from 'angular';\nimport { editor } from '@@/BoxSelector/common-options/build-methods';\nimport { getProfile, updateProfile } from 'Portainer/hostmanagement/fdo/fdo.service';\n\nangular.module('portainer.app').controller('EditProfileController', EditProfileController);\n\n/* @ngInject */\nexport default function EditProfileController($scope, $async, $state, $window, Notifications) {\n  $scope.buildMethods = [editor];\n\n  $scope.formValues = {\n    name: '',\n    profileFileContent: '',\n  };\n\n  $scope.state = {\n    profileID: $state.params.id,\n    method: 'editor',\n    actionInProgress: false,\n    isEditorDirty: false,\n  };\n\n  $window.onbeforeunload = () => {\n    if ($scope.state.method === 'editor' && $scope.formValues.profileFileContent && $scope.state.isEditorDirty) {\n      return '';\n    }\n  };\n\n  $scope.$on('$destroy', function () {\n    $scope.state.isEditorDirty = false;\n  });\n\n  $scope.onChangeFormValues = onChangeFormValues;\n\n  $scope.updateProfileAsync = function () {\n    return $async(async () => {\n      const method = $scope.state.method;\n\n      const name = $scope.formValues.name;\n      const fileContent = $scope.formValues.profileFileContent;\n\n      if (method !== 'editor' && fileContent === '') {\n        $scope.state.formValidationError = 'Profile file content must not be empty';\n        return;\n      }\n\n      $scope.state.actionInProgress = true;\n\n      try {\n        await updateProfile($scope.state.profileID, name, fileContent);\n        Notifications.success('Success', 'Profile successfully updated');\n        $scope.state.isEditorDirty = false;\n        $state.go('portainer.settings.edgeCompute');\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to update Profile');\n      } finally {\n        $scope.state.actionInProgress = false;\n      }\n    });\n  };\n\n  $scope.onChangeFileContent = function onChangeFileContent(value) {\n    $scope.formValues.profileFileContent = value;\n    $scope.state.isEditorDirty = true;\n  };\n\n  function onChangeFormValues(newValues) {\n    $scope.formValues = newValues;\n  }\n\n  async function initView() {\n    return $async(async () => {\n      try {\n        const profile = await getProfile($scope.state.profileID);\n\n        $scope.formValues = {\n          name: profile.name,\n          profileFileContent: profile.fileContent,\n        };\n        $scope.state.isEditorDirty = false;\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to retrieve profile details');\n      }\n    });\n  }\n\n  initView();\n}\n","const autoNgTemplateLoaderTemplate1 = require('./editProfile.html');\n\nimport angular from 'angular';\n\nimport controller from './editProfileController';\n\nangular.module('portainer.app').component('editProfileView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n});\n","const autoNgTemplateLoaderTemplate1 = require('./registries.html');\n\nangular.module('portainer.app').component('endpointRegistriesView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller: 'EndpointRegistriesController',\n  bindings: {\n    endpoint: '<',\n  },\n});\n","import _ from 'lodash-es';\nimport { RegistryTypes } from 'Portainer/models/registryTypes';\n\nclass EndpointRegistriesController {\n  /* @ngInject */\n  constructor($async, Notifications, EndpointService, Authentication) {\n    this.$async = $async;\n    this.Notifications = Notifications;\n    this.EndpointService = EndpointService;\n    this.Authentication = Authentication;\n\n    this.canManageAccess = this.canManageAccess.bind(this);\n    this.canBrowse = this.canBrowse.bind(this);\n  }\n\n  canManageAccess(item) {\n    return item.Type !== RegistryTypes.ANONYMOUS && this.Authentication.isAdmin();\n  }\n\n  canBrowse(item) {\n    return !_.includes([RegistryTypes.ANONYMOUS, RegistryTypes.DOCKERHUB, RegistryTypes.QUAY], item.Type);\n  }\n\n  getRegistries() {\n    return this.$async(async () => {\n      try {\n        this.registries = await this.EndpointService.registries(this.endpointId);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registries');\n      }\n    });\n  }\n\n  $onInit() {\n    return this.$async(async () => {\n      this.state = {\n        viewReady: false,\n      };\n\n      try {\n        this.endpointType = this.endpoint.Type;\n        this.endpointId = this.endpoint.Id;\n        await this.getRegistries();\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve registries');\n      } finally {\n        this.state.viewReady = true;\n      }\n    });\n  }\n}\n\nexport default EndpointRegistriesController;\nangular.module('portainer.app').controller('EndpointRegistriesController', EndpointRegistriesController);\n","import angular from 'angular';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nclass EndpointAccessController {\n  /* @ngInject */\n  constructor($state, $transition$, Notifications, EndpointService, GroupService, $async) {\n    this.$state = $state;\n    this.$transition$ = $transition$;\n    this.Notifications = Notifications;\n    this.EndpointService = EndpointService;\n    this.GroupService = GroupService;\n    this.$async = $async;\n\n    this.limitedFeature = FeatureId.RBAC_ROLES;\n\n    this.updateAccess = this.updateAccess.bind(this);\n    this.updateAccessAsync = this.updateAccessAsync.bind(this);\n  }\n\n  async $onInit() {\n    this.state = { actionInProgress: false };\n    try {\n      this.endpoint = await this.EndpointService.endpoint(this.$transition$.params().id);\n      this.group = await this.GroupService.group(this.endpoint.GroupId);\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'Unable to retrieve environment information');\n    }\n  }\n\n  updateAccess() {\n    return this.$async(this.updateAccessAsync);\n  }\n\n  async updateAccessAsync() {\n    try {\n      this.state.actionInProgress = true;\n      await this.EndpointService.updateEndpoint(this.$transition$.params().id, this.endpoint);\n      this.Notifications.success('Success', 'Access successfully updated');\n      this.$state.reload(this.$state.current);\n    } catch (err) {\n      this.state.actionInProgress = false;\n      this.Notifications.error('Failure', err, 'Unable to update accesses');\n    }\n  }\n}\n\nexport default EndpointAccessController;\nangular.module('portainer.app').controller('EndpointAccessController', EndpointAccessController);\n","import _ from 'lodash-es';\nimport uuidv4 from 'uuid/v4';\n\nimport { PortainerEndpointTypes } from '@/portainer/models/endpoint/models';\nimport EndpointHelper from '@/portainer/helpers/endpointHelper';\nimport { getAMTInfo } from 'Portainer/hostmanagement/open-amt/open-amt.service';\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { isEdgeEnvironment, isDockerAPIEnvironment } from '@/react/portainer/environments/utils';\n\nimport { commandsTabs } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { confirmDisassociate } from '@/react/portainer/environments/ItemView/ConfirmDisassociateModel';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { getInfo } from '@/react/docker/proxy/queries/useInfo';\n\nangular.module('portainer.app').controller('EndpointController', EndpointController);\n\n/* @ngInject */\nfunction EndpointController(\n  $async,\n  $scope,\n  $state,\n  $transition$,\n  $filter,\n  clipboard,\n  EndpointService,\n  GroupService,\n\n  Notifications,\n  Authentication,\n  SettingsService\n) {\n  $scope.onChangeCheckInInterval = onChangeCheckInInterval;\n  $scope.setFieldValue = setFieldValue;\n  $scope.onChangeTags = onChangeTags;\n  $scope.onChangeTLSConfigFormValues = onChangeTLSConfigFormValues;\n\n  $scope.state = {\n    selectAll: false,\n    // displayTextFilter: false,\n    get selectedItemCount() {\n      return $scope.state.selectedItems.length || 0;\n    },\n    selectedItems: [],\n    uploadInProgress: false,\n    actionInProgress: false,\n    azureEndpoint: false,\n    kubernetesEndpoint: false,\n    agentEndpoint: false,\n    edgeEndpoint: false,\n    edgeAssociated: false,\n    allowCreate: Authentication.isAdmin(),\n    allowSelfSignedCerts: true,\n    showAMTInfo: false,\n    showTLSConfig: false,\n    edgeScriptCommands: {\n      linux: _.compact([commandsTabs.k8sLinux, commandsTabs.swarmLinux, commandsTabs.standaloneLinux]),\n      win: [commandsTabs.swarmWindows, commandsTabs.standaloneWindow],\n    },\n  };\n\n  $scope.selectAll = function () {\n    $scope.state.firstClickedItem = null;\n    for (var i = 0; i < $scope.state.filteredDataSet.length; i++) {\n      var item = $scope.state.filteredDataSet[i];\n      if (item.Checked !== $scope.state.selectAll) {\n        // if ($scope.allowSelection(item) && item.Checked !== $scope.state.selectAll) {\n        item.Checked = $scope.state.selectAll;\n        $scope.selectItem(item);\n      }\n    }\n  };\n\n  function isBetween(value, a, b) {\n    return (value >= a && value <= b) || (value >= b && value <= a);\n  }\n\n  $scope.selectItem = function (item, event) {\n    // Handle range select using shift\n    if (event && event.originalEvent.shiftKey && $scope.state.firstClickedItem) {\n      const firstItemIndex = $scope.state.filteredDataSet.indexOf($scope.state.firstClickedItem);\n      const lastItemIndex = $scope.state.filteredDataSet.indexOf(item);\n      const itemsInRange = _.filter($scope.state.filteredDataSet, (item, index) => {\n        return isBetween(index, firstItemIndex, lastItemIndex);\n      });\n      const value = $scope.state.firstClickedItem.Checked;\n\n      _.forEach(itemsInRange, (i) => {\n        i.Checked = value;\n      });\n      $scope.state.firstClickedItem = item;\n    } else if (event) {\n      item.Checked = !item.Checked;\n      $scope.state.firstClickedItem = item;\n    }\n    $scope.state.selectedItems = _.uniq(_.concat($scope.state.selectedItems, $scope.state.filteredDataSet)).filter((i) => i.Checked);\n    if (event && $scope.state.selectAll && $scope.state.selectedItems.length !== $scope.state.filteredDataSet.length) {\n      $scope.state.selectAll = false;\n    }\n  };\n\n  $scope.formValues = {\n    tlsConfig: {\n      tls: false,\n      skipVerify: false,\n      skipClientVerify: false,\n      caCertFile: null,\n      certFile: null,\n      keyFile: null,\n    },\n  };\n\n  $scope.onDisassociateEndpoint = async function () {\n    confirmDisassociate().then((confirmed) => {\n      if (confirmed) {\n        disassociateEndpoint();\n      }\n    });\n  };\n\n  async function disassociateEndpoint() {\n    var endpoint = $scope.endpoint;\n\n    try {\n      $scope.state.actionInProgress = true;\n      await EndpointService.disassociateEndpoint(endpoint.Id);\n      Notifications.success('Environment disassociated', $scope.endpoint.Name);\n      $state.reload();\n    } catch (err) {\n      Notifications.error('Failure', err, 'Unable to disassociate environment');\n    } finally {\n      $scope.state.actionInProgress = false;\n    }\n  }\n\n  function onChangeCheckInInterval(value) {\n    setFieldValue('EdgeCheckinInterval', value);\n  }\n\n  function onChangeTags(value) {\n    setFieldValue('TagIds', value);\n  }\n\n  function onChangeTLSConfigFormValues(newValues) {\n    return this.$async(async () => {\n      $scope.formValues.tlsConfig = {\n        ...$scope.formValues.tlsConfig,\n        ...newValues,\n      };\n    });\n  }\n\n  function setFieldValue(name, value) {\n    return $scope.$evalAsync(() => {\n      $scope.endpoint = {\n        ...$scope.endpoint,\n        [name]: value,\n      };\n    });\n  }\n\n  Array.prototype.indexOf = function (val) {\n    for (var i = 0; i < this.length; i++) {\n      if (this[i] == val) return i;\n    }\n    return -1;\n  };\n  Array.prototype.remove = function (val) {\n    var index = this.indexOf(val);\n    if (index > -1) {\n      this.splice(index, 1);\n    }\n  };\n\n  $scope.updateEndpoint = async function () {\n    var endpoint = $scope.endpoint;\n\n    if (isEdgeEnvironment(endpoint.Type) && _.difference($scope.initialTagIds, endpoint.TagIds).length > 0) {\n      let confirmed = await confirmDestructive({\n        title: 'Confirm action',\n        message: 'Removing tags from this environment will remove the corresponding edge stacks when dynamic grouping is being used',\n        confirmButton: buildConfirmButton(),\n      });\n\n      if (!confirmed) {\n        return;\n      }\n    }\n\n    var payload = {\n      Name: endpoint.Name,\n      PublicURL: endpoint.PublicURL,\n      Gpus: endpoint.Gpus,\n      GroupID: endpoint.GroupId,\n      TagIds: endpoint.TagIds,\n      AzureApplicationID: endpoint.AzureCredentials.ApplicationID,\n      AzureTenantID: endpoint.AzureCredentials.TenantID,\n      AzureAuthenticationKey: endpoint.AzureCredentials.AuthenticationKey,\n      EdgeCheckinInterval: endpoint.EdgeCheckinInterval,\n    };\n\n    if (\n      $scope.endpointType !== 'local' &&\n      endpoint.Type !== PortainerEndpointTypes.AzureEnvironment &&\n      endpoint.Type !== PortainerEndpointTypes.KubernetesLocalEnvironment &&\n      endpoint.Type !== PortainerEndpointTypes.AgentOnKubernetesEnvironment\n    ) {\n      payload.URL = 'tcp://' + endpoint.URL;\n\n      if (endpoint.Type === PortainerEndpointTypes.DockerEnvironment) {\n        var tlsConfig = $scope.formValues.tlsConfig;\n        payload.TLS = tlsConfig.tls;\n        payload.TLSSkipVerify = tlsConfig.skipVerify;\n        if (tlsConfig.tls && !tlsConfig.skipVerify) {\n          payload.TLSSkipClientVerify = tlsConfig.skipClientVerify;\n          payload.TLSCACert = tlsConfig.caCertFile;\n          payload.TLSCert = tlsConfig.certFile;\n          payload.TLSKey = tlsConfig.keyFile;\n        }\n      }\n    }\n\n    if (endpoint.Type === PortainerEndpointTypes.AgentOnKubernetesEnvironment) {\n      payload.URL = endpoint.URL;\n    }\n\n    if (endpoint.Type === PortainerEndpointTypes.KubernetesLocalEnvironment) {\n      payload.URL = 'https://' + endpoint.URL;\n    }\n\n    $scope.state.actionInProgress = true;\n    EndpointService.updateEndpoint(endpoint.Id, payload).then(\n      function success() {\n        Notifications.success('Environment updated', $scope.endpoint.Name);\n        $state.go($state.params.redirectTo || 'portainer.endpoints', {}, { reload: true });\n      },\n      function error(err) {\n        Notifications.error('Failure', err, 'Unable to update environment');\n        $scope.state.actionInProgress = false;\n      },\n      function update(evt) {\n        if (evt.upload) {\n          $scope.state.uploadInProgress = evt.upload;\n        }\n      }\n    );\n  };\n\n  function decodeEdgeKey(key) {\n    let keyInformation = {};\n\n    if (key === '') {\n      return keyInformation;\n    }\n\n    let decodedKey = _.split(atob(key), '|');\n    keyInformation.instanceURL = decodedKey[0];\n    keyInformation.tunnelServerAddr = decodedKey[1];\n\n    return keyInformation;\n  }\n\n  function configureState() {\n    if (\n      $scope.endpoint.Type === PortainerEndpointTypes.KubernetesLocalEnvironment ||\n      $scope.endpoint.Type === PortainerEndpointTypes.AgentOnKubernetesEnvironment ||\n      $scope.endpoint.Type === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment\n    ) {\n      $scope.state.kubernetesEndpoint = true;\n    }\n    if ($scope.endpoint.Type === PortainerEndpointTypes.EdgeAgentOnDockerEnvironment || $scope.endpoint.Type === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment) {\n      $scope.state.edgeEndpoint = true;\n    }\n    if ($scope.endpoint.Type === PortainerEndpointTypes.AzureEnvironment) {\n      $scope.state.azureEndpoint = true;\n    }\n    if (\n      $scope.endpoint.Type === PortainerEndpointTypes.AgentOnDockerEnvironment ||\n      $scope.endpoint.Type === PortainerEndpointTypes.EdgeAgentOnDockerEnvironment ||\n      $scope.endpoint.Type === PortainerEndpointTypes.AgentOnKubernetesEnvironment ||\n      $scope.endpoint.Type === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment\n    ) {\n      $scope.state.agentEndpoint = true;\n    }\n  }\n\n  function configureTLS(endpoint) {\n    $scope.formValues = {\n      tlsConfig: {\n        tls: endpoint.TLSConfig.TLS || false,\n        skipVerify: endpoint.TLSConfig.TLSSkipVerify || false,\n        skipClientVerify: endpoint.TLSConfig.TLSSkipClientVerify || false,\n      },\n    };\n  }\n\n  async function initView() {\n    return $async(async () => {\n      try {\n        const [endpoint, groups, settings] = await Promise.all([EndpointService.endpoint($transition$.params().id), GroupService.groups(), SettingsService.settings()]);\n\n        if (isDockerAPIEnvironment(endpoint)) {\n          $scope.state.showTLSConfig = true;\n        }\n\n        // Check if the environment is docker standalone, to decide whether to show the GPU insights box\n        const isDockerEnvironment = endpoint.Type === PortainerEndpointTypes.DockerEnvironment;\n        if (isDockerEnvironment) {\n          try {\n            const dockerInfo = await getInfo(endpoint.Id);\n            const isDockerSwarmEnv = dockerInfo.Swarm && dockerInfo.Swarm.NodeID;\n            $scope.isDockerStandaloneEnv = !isDockerSwarmEnv;\n          } catch (err) {\n            // $scope.isDockerStandaloneEnv is only used to show the \"GPU insights box\", so fail quietly on error\n          }\n        }\n\n        if (endpoint.URL.indexOf('unix://') === 0 || endpoint.URL.indexOf('npipe://') === 0) {\n          $scope.endpointType = 'local';\n        } else {\n          $scope.endpointType = 'remote';\n        }\n\n        endpoint.URL = $filter('stripprotocol')(endpoint.URL);\n\n        if (endpoint.Type === PortainerEndpointTypes.EdgeAgentOnDockerEnvironment || endpoint.Type === PortainerEndpointTypes.EdgeAgentOnKubernetesEnvironment) {\n          $scope.edgeKeyDetails = decodeEdgeKey(endpoint.EdgeKey);\n\n          $scope.state.edgeAssociated = !!endpoint.EdgeID;\n          endpoint.EdgeID = endpoint.EdgeID || uuidv4();\n        }\n\n        $scope.endpoint = endpoint;\n        $scope.initialTagIds = endpoint.TagIds.slice();\n        $scope.groups = groups;\n\n        configureState();\n\n        configureTLS(endpoint);\n\n        if (EndpointHelper.isDockerEndpoint(endpoint) && $scope.state.edgeAssociated) {\n          $scope.state.showAMTInfo = settings && settings.openAMTConfiguration && settings.openAMTConfiguration.enabled;\n        }\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to retrieve environment details');\n      }\n\n      if ($scope.state.showAMTInfo) {\n        try {\n          $scope.endpoint.ManagementInfo = {};\n          const amtInfo = await getAMTInfo($state.params.id);\n          try {\n            $scope.endpoint.ManagementInfo = JSON.parse(amtInfo.RawOutput);\n          } catch (err) {\n            clearAMTManagementInfo(amtInfo.RawOutput);\n          }\n        } catch (err) {\n          clearAMTManagementInfo('Unable to retrieve AMT environment details');\n        }\n      }\n    });\n  }\n\n  function clearAMTManagementInfo(versionValue) {\n    $scope.endpoint.ManagementInfo['AMT'] = versionValue;\n    $scope.endpoint.ManagementInfo['UUID'] = '-';\n    $scope.endpoint.ManagementInfo['Control Mode'] = '-';\n    $scope.endpoint.ManagementInfo['Build Number'] = '-';\n    $scope.endpoint.ManagementInfo['DNS Suffix'] = '-';\n  }\n\n  initView();\n}\n","import { confirm } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport function confirmDisassociate() {\n  const message = (\n    <>\n      <p>\n        Disassociating this Edge environment will mark it as non associated and\n        will clear the registered Edge ID.\n      </p>\n      <p>\n        Any agent started with the Edge key associated to this environment will\n        be able to re-associate with this environment.\n      </p>\n      <p>\n        You can re-use the Edge ID and Edge key that you used to deploy the\n        existing Edge agent to associate a new Edge device to this environment.\n      </p>\n    </>\n  );\n\n  return confirm({\n    title: 'About disassociating',\n    modalType: ModalType.Warn,\n    message,\n    confirmButton: buildConfirmButton('Disassociate'),\n  });\n}\n","export function getAgentShortVersion(agentVersion) {\n  const numbers = agentVersion.split('.');\n  return numbers[0] + '-' + numbers[1];\n}\n","import angular from 'angular';\n\nimport { enableDeviceFeatures } from 'Portainer/hostmanagement/open-amt/open-amt.service';\n\nclass EndpointKVMController {\n  /* @ngInject */\n  constructor($state, $scope, $async, $transition$, EndpointService, Notifications) {\n    this.$state = $state;\n    this.$scope = $scope;\n    this.$async = $async;\n    this.$transition$ = $transition$;\n    this.Notifications = Notifications;\n    this.EndpointService = EndpointService;\n\n    this.$state.maximized = false;\n    this.$state.endpointId = $transition$.params().id;\n    this.$state.deviceId = $transition$.params().deviceId;\n    this.$state.deviceName = $transition$.params().deviceName;\n\n    $scope.maximize = function () {\n      this.$state.maximized = true;\n    };\n\n    $scope.minimize = function () {\n      this.$state.maximized = false;\n    };\n  }\n\n  async $onInit() {\n    this.$async(async () => {\n      try {\n        this.$state.endpoint = await this.EndpointService.endpoint(this.$state.endpointId);\n      } catch (err) {\n        this.Notifications.error('Failure', err, 'Unable to retrieve environment information');\n      }\n\n      try {\n        const features = {\n          ider: true,\n          kvm: true,\n          sol: true,\n          redirection: true,\n          userConsent: 'none',\n        };\n        const mpsAuthorization = await enableDeviceFeatures(this.$state.endpointId, this.$state.deviceId, features);\n\n        this.$state.mpsServer = mpsAuthorization.Server;\n        this.$state.mpsToken = mpsAuthorization.Token;\n      } catch (e) {\n        this.Notifications.error('Failure', e, `Failed to load kvm for device`);\n      }\n    });\n  }\n}\n\nexport default EndpointKVMController;\nangular.module('portainer.app').controller('EndpointKVMController', EndpointKVMController);\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nangular.module('portainer.app').controller('GroupAccessController', [\n  '$scope',\n  '$state',\n  '$transition$',\n  'GroupService',\n  'Notifications',\n  function ($scope, $state, $transition$, GroupService, Notifications) {\n    $scope.limitedFeature = FeatureId.RBAC_ROLES;\n\n    $scope.updateAccess = function () {\n      $scope.state.actionInProgress = true;\n      GroupService.updateGroup($scope.group, $scope.group.AssociatedEndpoints)\n        .then(() => {\n          Notifications.success('Success', 'Access successfully updated');\n          $state.reload();\n        })\n        .catch((err) => {\n          $scope.state.actionInProgress = false;\n          Notifications.error('Failure', err, 'Unable to update accesses');\n        });\n    };\n\n    function initView() {\n      var groupId = $transition$.params().id;\n\n      $scope.state = { actionInProgress: false };\n      GroupService.group(groupId)\n        .then(function success(data) {\n          $scope.group = data;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to load view');\n        });\n    }\n\n    initView();\n  },\n]);\n","import { EndpointGroupDefaultModel } from '../../../models/group';\n\nangular.module('portainer.app').controller('CreateGroupController', function CreateGroupController($async, $scope, $state, GroupService, Notifications) {\n  $scope.state = {\n    actionInProgress: false,\n  };\n\n  $scope.onChangeEnvironments = onChangeEnvironments;\n\n  $scope.create = function () {\n    var model = $scope.model;\n\n    $scope.state.actionInProgress = true;\n    GroupService.createGroup(model, $scope.associatedEndpoints)\n      .then(function success() {\n        Notifications.success('Success', 'Group successfully created');\n        $state.go('portainer.groups', {}, { reload: true });\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to create group');\n      })\n      .finally(function final() {\n        $scope.state.actionInProgress = false;\n      });\n  };\n\n  function initView() {\n    $scope.associatedEndpoints = [];\n    $scope.model = new EndpointGroupDefaultModel();\n    $scope.loaded = true;\n  }\n\n  function onChangeEnvironments(value) {\n    return $scope.$evalAsync(() => {\n      $scope.associatedEndpoints = value;\n    });\n  }\n\n  initView();\n});\n","import { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport { notifyError, notifySuccess } from '@/portainer/services/notifications';\n\nangular.module('portainer.app').controller('GroupController', function GroupController($async, $q, $scope, $state, $transition$, GroupService, Notifications) {\n  $scope.state = {\n    actionInProgress: false,\n  };\n  $scope.onChangeEnvironments = onChangeEnvironments;\n  $scope.associatedEndpoints = [];\n\n  $scope.update = function () {\n    var model = $scope.group;\n\n    $scope.state.actionInProgress = true;\n    GroupService.updateGroup(model)\n      .then(function success() {\n        Notifications.success('Success', 'Group successfully updated');\n        $state.go('portainer.groups', {}, { reload: true });\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to update group');\n      })\n      .finally(function final() {\n        $scope.state.actionInProgress = false;\n      });\n  };\n\n  function onChangeEnvironments(value, meta) {\n    return $async(async () => {\n      let success = false;\n      if (meta.type === 'add') {\n        success = await onAssociate(meta.value);\n      } else if (meta.type === 'remove') {\n        success = await onDisassociate(meta.value);\n      }\n\n      if (success) {\n        $scope.associatedEndpoints = value;\n      }\n    });\n  }\n\n  async function onAssociate(endpointId) {\n    try {\n      await GroupService.addEndpoint($scope.group.Id, endpointId);\n\n      notifySuccess('Success', `Environment successfully added to group`);\n      return true;\n    } catch (err) {\n      notifyError('Failure', err, `Unable to add environment to group`);\n    }\n  }\n\n  async function onDisassociate(endpointId) {\n    try {\n      await GroupService.removeEndpoint($scope.group.Id, endpointId);\n\n      notifySuccess('Success', `Environment successfully removed to group`);\n      return true;\n    } catch (err) {\n      notifyError('Failure', err, `Unable to remove environment to group`);\n    }\n  }\n\n  function initView() {\n    var groupId = $transition$.params().id;\n\n    $q.all({\n      group: GroupService.group(groupId),\n      endpoints: getEnvironments({ query: { groupIds: [groupId] } }),\n    })\n      .then(function success(data) {\n        $scope.group = data.group;\n        $scope.associatedEndpoints = data.endpoints.value.map((endpoint) => endpoint.Id);\n        $scope.loaded = true;\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to load group details');\n      });\n  }\n\n  initView();\n});\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nangular.module('portainer.app').controller('GroupsController', GroupsController);\n\nfunction GroupsController($scope, $state, $async, GroupService, Notifications) {\n  $scope.removeAction = removeAction;\n\n  function removeAction(selectedItems) {\n    return $async(removeActionAsync, selectedItems);\n  }\n\n  async function removeActionAsync(selectedItems) {\n    const confirmed = await confirmDestructive({\n      title: 'Are you sure?',\n      message: 'Are you sure you want to remove the selected environment group(s)?',\n      confirmButton: buildConfirmButton('Remove', 'danger'),\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    for (let group of selectedItems) {\n      try {\n        await GroupService.deleteGroup(group.Id);\n\n        Notifications.success('Environment group successfully removed', group.Name);\n        _.remove($scope.groups, group);\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to remove group');\n      }\n    }\n\n    $state.reload();\n  }\n\n  function initView() {\n    GroupService.groups()\n      .then(function success(data) {\n        $scope.groups = data;\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to retrieve environment groups');\n        $scope.groups = [];\n      });\n  }\n\n  initView();\n}\n","import { Download, Upload } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport const restoreOptions: ReadonlyArray<BoxSelectorOption<string>> = [\n  {\n    id: 'restore_file',\n    value: 'file',\n    icon: Upload,\n    iconType: 'badge',\n    label: 'Upload backup file',\n  },\n  {\n    id: 'restore_s3',\n    value: 's3',\n    icon: Download,\n    iconType: 'badge',\n    label: 'Retrieve from S3',\n    feature: FeatureId.S3_RESTORE,\n  },\n] as const;\n","import { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport { restoreOptions } from '@/react/portainer/init/InitAdminView/restore-options';\n\nangular.module('portainer.app').controller('InitAdminController', [\n  '$scope',\n  '$state',\n  'Notifications',\n  'Authentication',\n  'StateManager',\n  'SettingsService',\n  'UserService',\n  'BackupService',\n  'StatusService',\n  function ($scope, $state, Notifications, Authentication, StateManager, SettingsService, UserService, BackupService, StatusService) {\n    $scope.restoreOptions = restoreOptions;\n\n    $scope.uploadBackup = uploadBackup;\n\n    $scope.logo = StateManager.getState().application.logo;\n    $scope.RESTORE_FORM_TYPES = { S3: 's3', FILE: 'file' };\n\n    $scope.formValues = {\n      Username: 'admin',\n      Password: '',\n      ConfirmPassword: '',\n      enableTelemetry: process.env.NODE_ENV === 'production',\n      restoreFormType: $scope.RESTORE_FORM_TYPES.FILE,\n    };\n\n    $scope.state = {\n      actionInProgress: false,\n      showInitPassword: true,\n      showRestorePortainer: false,\n    };\n\n    createAdministratorFlow();\n\n    $scope.togglePanel = function () {\n      $scope.state.showInitPassword = !$scope.state.showInitPassword;\n      $scope.state.showRestorePortainer = !$scope.state.showRestorePortainer;\n    };\n\n    $scope.onChangeRestoreType = onChangeRestoreType;\n    function onChangeRestoreType(value) {\n      $scope.$evalAsync(() => {\n        $scope.formValues.restoreFormType = value;\n      });\n    }\n\n    $scope.createAdminUser = function () {\n      var username = $scope.formValues.Username;\n      var password = $scope.formValues.Password;\n\n      $scope.state.actionInProgress = true;\n      UserService.initAdministrator(username, password)\n        .then(function success() {\n          return Authentication.login(username, password);\n        })\n        .then(function success() {\n          return SettingsService.update({ enableTelemetry: $scope.formValues.enableTelemetry });\n        })\n        .then(() => {\n          return StateManager.initialize();\n        })\n        .then(function () {\n          return getEnvironments({ limit: 100 });\n        })\n        .then(function success(data) {\n          if (data.value.length === 0) {\n            $state.go('portainer.wizard');\n          } else {\n            $state.go('portainer.home');\n          }\n        })\n        .catch(function error(err) {\n          handleError(err);\n          Notifications.error('Failure', err, 'Unable to create administrator user');\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    };\n\n    function handleError(err) {\n      if (err.status === 303) {\n        const headers = err.headers();\n        const REDIRECT_REASON_TIMEOUT = 'AdminInitTimeout';\n        if (headers && headers['redirect-reason'] === REDIRECT_REASON_TIMEOUT) {\n          window.location.href = '/timeout.html';\n        }\n      }\n    }\n\n    function createAdministratorFlow() {\n      SettingsService.publicSettings()\n        .then(function success(data) {\n          $scope.requiredPasswordLength = data.RequiredPasswordLength;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve application settings');\n        });\n\n      UserService.administratorExists()\n        .then(function success(exists) {\n          if (exists) {\n            $state.go('portainer.wizard');\n          }\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to verify administrator account existence');\n        });\n    }\n\n    async function uploadBackup() {\n      $scope.state.backupInProgress = true;\n\n      const file = $scope.formValues.BackupFile;\n      const password = $scope.formValues.Password;\n\n      restoreAndRefresh(() => BackupService.uploadBackup(file, password));\n    }\n\n    async function restoreAndRefresh(restoreAsyncFn) {\n      $scope.state.backupInProgress = true;\n\n      try {\n        await restoreAsyncFn();\n      } catch (err) {\n        handleError(err);\n        Notifications.error('Failure', err, 'Unable to restore the backup');\n        $scope.state.backupInProgress = false;\n\n        return;\n      }\n\n      try {\n        await waitPortainerRestart();\n        Notifications.success('Success', 'The backup has successfully been restored');\n        $state.go('portainer.auth');\n      } catch (err) {\n        handleError(err);\n        Notifications.error('Failure', err, 'Unable to check for status');\n        await wait(2);\n        location.reload();\n      }\n\n      $scope.state.backupInProgress = false;\n    }\n\n    async function waitPortainerRestart() {\n      for (let i = 0; i < 10; i++) {\n        await wait(5);\n        try {\n          const status = await StatusService.status();\n          if (status && status.Version) {\n            return;\n          }\n        } catch (e) {\n          // pass\n        }\n      }\n      throw new Error('Timeout to wait for Portainer restarting');\n    }\n  },\n]);\n\nfunction wait(seconds = 0) {\n  return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n}\n","import angular from 'angular';\nimport { dispatchCacheRefreshEvent } from '@/portainer/services/http-request.helper';\n\nclass LogoutController {\n  /* @ngInject */\n  constructor($async, $state, $transition$, $window, Authentication, StateManager, Notifications, LocalStorage, SettingsService) {\n    this.$async = $async;\n    this.$state = $state;\n    this.$transition$ = $transition$;\n    this.$window = $window;\n\n    this.Authentication = Authentication;\n    this.StateManager = StateManager;\n    this.Notifications = Notifications;\n    this.LocalStorage = LocalStorage;\n    this.SettingsService = SettingsService;\n\n    this.logo = this.StateManager.getState().application.logo;\n    this.logoutAsync = this.logoutAsync.bind(this);\n\n    this.onInit = this.onInit.bind(this);\n  }\n\n  /**\n   * UTILS FUNCTIONS SECTION\n   */\n  async logoutAsync() {\n    const error = this.$transition$.params().error;\n    const settings = await this.SettingsService.publicSettings();\n\n    try {\n      await this.Authentication.logout();\n    } finally {\n      // always clear the kubernetes cache\n      dispatchCacheRefreshEvent();\n\n      this.LocalStorage.storeLogoutReason(error);\n      if (settings.OAuthLogoutURI && this.Authentication.getUserDetails().ID !== 1) {\n        this.$window.location.href = settings.OAuthLogoutURI;\n      } else {\n        this.$state.go('portainer.auth', { reload: true });\n      }\n    }\n  }\n\n  logout() {\n    return this.$async(this.logoutAsync);\n  }\n\n  /**\n   * END UTILS FUNCTIONS SECTION\n   */\n\n  async onInit() {\n    try {\n      await this.logout();\n    } catch (err) {\n      this.Notifications.error('Failure', err, 'An error occurred during logout');\n    }\n  }\n\n  $onInit() {\n    return this.$async(this.onInit);\n  }\n\n  /**\n   * END ON INIT SECTION\n   */\n}\n\nexport default LogoutController;\nangular.module('portainer.app').controller('LogoutController', LogoutController);\n","angular.module('portainer.app').controller('MainController', MainController);\n\n/* @ngInject */\nfunction MainController($scope, StateManager, ThemeManager, SidebarService) {\n  /**\n   * Sidebar Toggle & Cookie Control\n   */\n\n  $scope.applicationState = StateManager.getState();\n\n  $scope.isSidebarOpen = SidebarService.isSidebarOpen;\n\n  ThemeManager.autoTheme();\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgOauth = function SvgOauth(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"none\",\n    viewBox: \"0 0 36 40\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#F4552A\",\n    d: \"m22.975 15.318-2.522-7.789H3.773l-2.522 7.789s-2.98 7.886 3.98 12.735c6.34 4.42 6.882 4.956 6.882 4.956s.542-.538 6.882-4.956c6.96-4.849 3.98-12.735 3.98-12.735Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"m12.115 7.605 2.688 7.678 8.185.166-6.524 4.91 2.371 7.78-6.72-4.642-6.72 4.642 2.371-7.78-6.524-4.91 8.185-.166 2.688-7.678Z\"\n  })));\n};\nexport default SvgOauth;","import { ArrowDownCircle } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport Microsoft from '@/assets/ico/vendor/microsoft.svg?c';\nimport Ldap from '@/assets/ico/ldap.svg?c';\nimport OAuth from '@/assets/ico/oauth.svg?c';\n\nexport const options = [\n  {\n    id: 'auth_internal',\n    icon: ArrowDownCircle,\n    iconType: 'badge',\n    label: 'Internal',\n    description: 'Internal authentication mechanism',\n    value: 1,\n  },\n  {\n    id: 'auth_ldap',\n    icon: Ldap,\n    label: 'LDAP',\n    description: 'LDAP authentication',\n    iconType: 'logo',\n    value: 2,\n  },\n  {\n    id: 'auth_ad',\n    icon: Microsoft,\n    label: 'Microsoft Active Directory',\n    description: 'AD authentication',\n    iconType: 'logo',\n    value: 4,\n    feature: FeatureId.HIDE_INTERNAL_AUTH,\n  },\n  {\n    id: 'auth_oauth',\n    icon: OAuth,\n    label: 'OAuth',\n    description: 'OAuth authentication',\n    iconType: 'logo',\n    value: 3,\n  },\n];\n","import angular from 'angular';\nimport _ from 'lodash-es';\n\nimport { buildLdapSettingsModel, buildAdSettingsModel } from '@/portainer/settings/authentication/ldap/ldap-settings.model';\nimport { options } from '@/react/portainer/settings/AuthenticationView/InternalAuth/options';\n\nangular.module('portainer.app').controller('SettingsAuthenticationController', SettingsAuthenticationController);\n\nfunction SettingsAuthenticationController($q, $scope, $state, Notifications, SettingsService, FileUploadService, TeamService, LDAPService) {\n  $scope.authMethod = 1;\n\n  $scope.state = {\n    uploadInProgress: false,\n    actionInProgress: false,\n    availableUserSessionTimeoutOptions: [\n      {\n        key: '1 hour',\n        value: '1h',\n      },\n      {\n        key: '4 hours',\n        value: '4h',\n      },\n      {\n        key: '8 hours',\n        value: '8h',\n      },\n      {\n        key: '24 hours',\n        value: '24h',\n      },\n      { key: '1 week', value: `${24 * 7}h` },\n      { key: '1 month', value: `${24 * 30}h` },\n      { key: '6 months', value: `${24 * 30 * 6}h` },\n      { key: '1 year', value: `${24 * 30 * 12}h` },\n    ],\n  };\n\n  $scope.formValues = {\n    UserSessionTimeout: $scope.state.availableUserSessionTimeoutOptions[0],\n    TLSCACert: '',\n    ldap: {\n      serverType: 0,\n      adSettings: buildAdSettingsModel(),\n      ldapSettings: buildLdapSettingsModel(),\n    },\n  };\n\n  $scope.authOptions = options;\n\n  $scope.onChangeAuthMethod = function onChangeAuthMethod(value) {\n    $scope.authMethod = value;\n\n    if (value === 4) {\n      $scope.settings.AuthenticationMethod = 2;\n      $scope.formValues.ldap.serverType = 2;\n      return;\n    }\n\n    if (value === 2) {\n      $scope.settings.AuthenticationMethod = 2;\n      $scope.formValues.ldap.serverType = $scope.formValues.ldap.ldapSettings.ServerType;\n      return;\n    }\n\n    $scope.settings.AuthenticationMethod = value;\n  };\n\n  $scope.onChangePasswordLength = function onChangePasswordLength(value) {\n    $scope.$evalAsync(() => {\n      $scope.settings.InternalAuthSettings = { RequiredPasswordLength: value };\n    });\n  };\n\n  $scope.authenticationMethodSelected = function authenticationMethodSelected(value) {\n    if (!$scope.settings) {\n      return false;\n    }\n\n    if (value === 4) {\n      return $scope.settings.AuthenticationMethod === 2 && $scope.formValues.ldap.serverType === 2;\n    }\n\n    if (value === 2) {\n      return $scope.settings.AuthenticationMethod === 2 && $scope.formValues.ldap.serverType !== 2;\n    }\n\n    return $scope.settings.AuthenticationMethod === value;\n  };\n\n  $scope.isOauthEnabled = function isOauthEnabled() {\n    return $scope.settings && $scope.settings.AuthenticationMethod === 3;\n  };\n\n  $scope.LDAPConnectivityCheck = LDAPConnectivityCheck;\n  function LDAPConnectivityCheck() {\n    const settings = angular.copy($scope.settings);\n\n    const { settings: ldapSettings, uploadRequired, tlscaFile } = prepareLDAPSettings();\n    settings.LDAPSettings = ldapSettings;\n    $scope.state.uploadInProgress = uploadRequired;\n\n    $scope.state.connectivityCheckInProgress = true;\n\n    $q.when(!uploadRequired || FileUploadService.uploadLDAPTLSFiles(tlscaFile, null, null))\n      .then(function success() {\n        return LDAPService.check(settings.LDAPSettings);\n      })\n      .then(function success() {\n        $scope.state.failedConnectivityCheck = false;\n        $scope.state.successfulConnectivityCheck = true;\n        Notifications.success('Success', 'Connection to LDAP successful');\n      })\n      .catch(function error(err) {\n        $scope.state.failedConnectivityCheck = true;\n        $scope.state.successfulConnectivityCheck = false;\n        Notifications.error('Failure', err, 'Connection to LDAP failed');\n      })\n      .finally(function final() {\n        $scope.state.uploadInProgress = false;\n        $scope.state.connectivityCheckInProgress = false;\n      });\n  }\n\n  $scope.saveSettings = function () {\n    const settings = angular.copy($scope.settings);\n\n    const { settings: ldapSettings, uploadRequired, tlscaFile } = prepareLDAPSettings();\n    settings.LDAPSettings = ldapSettings;\n    $scope.state.uploadInProgress = uploadRequired;\n\n    $scope.state.actionInProgress = true;\n\n    $q.when(!uploadRequired || FileUploadService.uploadLDAPTLSFiles(tlscaFile, null, null))\n      .then(function success() {\n        return SettingsService.update(settings);\n      })\n      .then(function success() {\n        Notifications.success('Success', 'Authentication settings updated');\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to update authentication settings');\n      })\n      .finally(function final() {\n        $scope.state.uploadInProgress = false;\n        $scope.state.actionInProgress = false;\n      });\n  };\n\n  function prepareLDAPSettings() {\n    const tlscaCert = $scope.formValues.TLSCACert;\n\n    const tlscaFile = tlscaCert !== $scope.settings.LDAPSettings.TLSConfig.TLSCACert ? tlscaCert : null;\n\n    const isADServer = $scope.formValues.ldap.serverType === 2;\n\n    const settings = isADServer ? $scope.formValues.ldap.adSettings : $scope.formValues.ldap.ldapSettings;\n\n    if (settings.AnonymousMode && !isADServer) {\n      settings.ReaderDN = '';\n      settings.Password = '';\n    }\n\n    if (isADServer) {\n      settings.AnonymousMode = false;\n    }\n\n    settings.URLs = settings.URLs.map((url) => {\n      if (url === undefined || url === '') {\n        return;\n      }\n\n      if (url.includes(':')) {\n        return url;\n      }\n      return url + (settings.TLSConfig.TLS ? ':636' : ':389');\n    });\n\n    const uploadRequired = (settings.TLSConfig.TLS || settings.StartTLS) && !settings.TLSConfig.TLSSkipVerify;\n\n    settings.URL = settings.URLs[0];\n\n    return { settings, uploadRequired, tlscaFile };\n  }\n\n  $scope.isLDAPFormValid = isLDAPFormValid;\n  function isLDAPFormValid() {\n    const ldapSettings = $scope.formValues.ldap.serverType === 2 ? $scope.formValues.ldap.adSettings : $scope.formValues.ldap.ldapSettings;\n    const isTLSMode = ldapSettings.TLSConfig.TLS || ldapSettings.StartTLS;\n\n    return (\n      _.compact(ldapSettings.URLs).length &&\n      (ldapSettings.AnonymousMode || (ldapSettings.ReaderDN && ldapSettings.Password)) &&\n      (!isTLSMode || (isTLSMode && $scope.formValues.TLSCACert) || ldapSettings.TLSConfig.TLSSkipVerify) &&\n      (!$scope.settings.LDAPSettings.AdminAutoPopulate || ($scope.settings.LDAPSettings.AdminAutoPopulate && $scope.formValues.selectedAdminGroups.length > 0))\n    );\n  }\n\n  $scope.isOAuthTeamMembershipFormValid = isOAuthTeamMembershipFormValid;\n  function isOAuthTeamMembershipFormValid() {\n    if ($scope.settings && $scope.settings.OAuthSettings.OAuthAutoMapTeamMemberships && $scope.settings.OAuthSettings.TeamMemberships) {\n      if (!$scope.settings.OAuthSettings.TeamMemberships.OAuthClaimName) {\n        return false;\n      }\n\n      const hasInvalidMapping = $scope.settings.OAuthSettings.TeamMemberships.OAuthClaimMappings.some((m) => !(m.ClaimValRegex && m.Team));\n      if (hasInvalidMapping) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  function initView() {\n    $q.all({\n      settings: SettingsService.settings(),\n      teams: TeamService.teams(),\n    })\n      .then(function success(data) {\n        var settings = data.settings;\n        $scope.teams = data.teams;\n        $scope.settings = settings;\n\n        $scope.OAuthSettings = settings.OAuthSettings;\n        $scope.authMethod = settings.AuthenticationMethod;\n        if (settings.AuthenticationMethod === 2 && settings.LDAPSettings.ServerType === 2) {\n          $scope.authMethod = 4;\n        }\n\n        if (settings.LDAPSettings.URL) {\n          settings.LDAPSettings.URLs = [settings.LDAPSettings.URL];\n        }\n        if (!settings.LDAPSettings.URLs) {\n          settings.LDAPSettings.URLs = [];\n        }\n        if (!settings.LDAPSettings.URLs.length) {\n          settings.LDAPSettings.URLs.push('');\n        }\n        if (!settings.LDAPSettings.ServerType) {\n          settings.LDAPSettings.ServerType = 0;\n        }\n\n        $scope.formValues.ldap.serverType = settings.LDAPSettings.ServerType;\n        if (settings.LDAPSettings.ServerType === 2) {\n          $scope.formValues.ldap.adSettings = settings.LDAPSettings;\n        } else {\n          $scope.formValues.ldap.ldapSettings = Object.assign($scope.formValues.ldap.ldapSettings, settings.LDAPSettings);\n        }\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to retrieve application settings');\n      });\n  }\n\n  initView();\n}\n","const autoNgTemplateLoaderTemplate1 = require('./settingsEdgeCompute.html');\n\nimport angular from 'angular';\nimport controller from './settingsEdgeComputeController';\n\nangular.module('portainer.app').component('settingsEdgeComputeView', {\n  templateUrl: autoNgTemplateLoaderTemplate1,\n  controller,\n});\n","import _ from 'lodash-es';\nimport angular from 'angular';\n\nimport { configureFDO } from '@/portainer/hostmanagement/fdo/fdo.service';\nimport { configureAMT } from 'Portainer/hostmanagement/open-amt/open-amt.service';\n\nangular.module('portainer.app').controller('SettingsEdgeComputeController', SettingsEdgeComputeController);\n\n/* @ngInject */\nexport default function SettingsEdgeComputeController($q, $async, $state, Notifications, SettingsService, StateManager) {\n  var ctrl = this;\n\n  this.onSubmitEdgeCompute = async function (settings) {\n    try {\n      await SettingsService.update(settings);\n      Notifications.success('Success', 'Settings updated');\n      StateManager.updateEnableEdgeComputeFeatures(settings.EnableEdgeComputeFeatures);\n      $state.reload();\n    } catch (err) {\n      Notifications.error('Failure', err, 'Unable to update settings');\n    }\n  };\n\n  this.onSubmitOpenAMT = async function (formValues) {\n    try {\n      await configureAMT(formValues);\n      Notifications.success('Success', `OpenAMT successfully ${formValues.enabled ? 'enabled' : 'disabled'}`);\n      $state.reload();\n    } catch (err) {\n      Notifications.error('Failure', err, 'Failed applying changes');\n    }\n  };\n\n  this.onSubmitFDO = async function (formValues) {\n    try {\n      await configureFDO(formValues);\n      Notifications.success('Success', `FDO successfully ${formValues.enabled ? 'enabled' : 'disabled'}`);\n      $state.reload();\n    } catch (err) {\n      Notifications.error('Failure', err, 'Failed applying changes');\n    }\n  };\n\n  function initView() {\n    $async(async () => {\n      try {\n        const settings = await SettingsService.settings();\n\n        const defaultMTLS = {\n          ..._.get(settings, 'Edge.MTLS', {}),\n          UseSeparateCert: _.get(settings, 'Edge.MTLS.UseSeparateCert', false),\n        };\n\n        ctrl.settings = {\n          ...settings,\n          EnableEdgeComputeFeatures: !!settings.EnableEdgeComputeFeatures,\n          EnforceEdgeID: !!settings.EnforceEdgeID,\n          Edge: {\n            ...settings.Edge,\n            MTLS: defaultMTLS,\n          },\n        };\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to retrieve application settings');\n      }\n    });\n  }\n\n  initView();\n}\n","import angular from 'angular';\n\nimport { AccessControlFormData } from '@/portainer/components/accessControlForm/porAccessControlFormModel';\nimport { STACK_NAME_VALIDATION_REGEX } from '@/react/constants';\nimport { RepositoryMechanismTypes } from '@/kubernetes/models/deploy';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isTemplateVariablesEnabled, renderTemplate } from '@/react/portainer/custom-templates/components/utils';\nimport { editor, upload, git, customTemplate } from '@@/BoxSelector/common-options/build-methods';\nimport { confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { parseAutoUpdateResponse, transformAutoUpdateViewModel } from '@/react/portainer/gitops/AutoUpdateFieldset/utils';\nimport { baseStackWebhookUrl, createWebhookId } from '@/portainer/helpers/webhookHelper';\nimport { getVariablesFieldDefaultValues } from '@/react/portainer/custom-templates/components/CustomTemplatesVariablesField';\n\nangular\n  .module('portainer.app')\n  .controller(\n    'CreateStackController',\n    function (\n      $scope,\n      $state,\n      $async,\n      $window,\n      StackService,\n      Authentication,\n      Notifications,\n      FormValidator,\n      ResourceControlService,\n      FormHelper,\n      StackHelper,\n      ContainerHelper,\n      ContainerService,\n      endpoint\n    ) {\n      $scope.onChangeTemplateId = onChangeTemplateId;\n      $scope.onChangeTemplateVariables = onChangeTemplateVariables;\n      $scope.isTemplateVariablesEnabled = isTemplateVariablesEnabled;\n      $scope.buildAnalyticsProperties = buildAnalyticsProperties;\n      $scope.stackWebhookFeature = FeatureId.STACK_WEBHOOK;\n      $scope.buildMethods = [editor, upload, git, customTemplate];\n      $scope.STACK_NAME_VALIDATION_REGEX = STACK_NAME_VALIDATION_REGEX;\n\n      $scope.formValues = {\n        Name: '',\n        StackFileContent: '',\n        StackFile: null,\n        RepositoryURL: '',\n        RepositoryReferenceName: '',\n        RepositoryAuthentication: false,\n        RepositoryUsername: '',\n        RepositoryPassword: '',\n        Env: [],\n        AdditionalFiles: [],\n        ComposeFilePathInRepository: 'docker-compose.yml',\n        AccessControlData: new AccessControlFormData(),\n        EnableWebhook: false,\n        Variables: [],\n        AutoUpdate: parseAutoUpdateResponse(),\n        TLSSkipVerify: false,\n      };\n\n      $scope.state = {\n        Method: 'editor',\n        formValidationError: '',\n        actionInProgress: false,\n        StackType: null,\n        editorYamlValidationError: '',\n        uploadYamlValidationError: '',\n        isEditorDirty: false,\n        selectedTemplate: null,\n        selectedTemplateId: null,\n        baseWebhookUrl: baseStackWebhookUrl(),\n        webhookId: createWebhookId(),\n        templateLoadFailed: false,\n        isEditorReadOnly: false,\n      };\n\n      $scope.currentUser = {\n        isAdmin: false,\n        id: null,\n      };\n\n      $window.onbeforeunload = () => {\n        if ($scope.state.Method === 'editor' && $scope.formValues.StackFileContent && $scope.state.isEditorDirty) {\n          return '';\n        }\n      };\n\n      $scope.$on('$destroy', function () {\n        $scope.state.isEditorDirty = false;\n      });\n\n      $scope.onChangeFormValues = onChangeFormValues;\n      $scope.onBuildMethodChange = onBuildMethodChange;\n\n      function onBuildMethodChange(value) {\n        $scope.$evalAsync(() => {\n          $scope.state.Method = value;\n        });\n      }\n\n      $scope.onEnableWebhookChange = function (enable) {\n        $scope.$evalAsync(() => {\n          $scope.formValues.EnableWebhook = enable;\n        });\n      };\n\n      function buildAnalyticsProperties() {\n        const metadata = { type: methodLabel($scope.state.Method) };\n\n        if ($scope.state.Method === 'repository') {\n          metadata.automaticUpdates = 'off';\n          if ($scope.formValues.RepositoryAutomaticUpdates) {\n            metadata.automaticUpdates = autoSyncLabel($scope.formValues.RepositoryMechanism);\n          }\n          metadata.auth = $scope.formValues.RepositoryAuthentication;\n        }\n\n        if ($scope.state.Method === 'template') {\n          metadata.templateName = $scope.state.selectedTemplate.Title;\n        }\n\n        return { metadata };\n\n        function methodLabel(method) {\n          switch (method) {\n            case 'editor':\n              return 'web-editor';\n            case 'repository':\n              return 'git';\n            case 'upload':\n              return 'file-upload';\n            case 'template':\n              return 'custom-template';\n          }\n        }\n\n        function autoSyncLabel(type) {\n          switch (type) {\n            case RepositoryMechanismTypes.INTERVAL:\n              return 'polling';\n            case RepositoryMechanismTypes.WEBHOOK:\n              return 'webhook';\n          }\n          return 'off';\n        }\n      }\n\n      function validateForm(accessControlData, isAdmin) {\n        $scope.state.formValidationError = '';\n        var error = '';\n        error = FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n        if (error) {\n          $scope.state.formValidationError = error;\n          return false;\n        }\n        return true;\n      }\n\n      function createSwarmStack(name, method) {\n        var env = FormHelper.removeInvalidEnvVars($scope.formValues.Env);\n        const endpointId = +$state.params.endpointId;\n\n        if (method === 'template' || method === 'editor') {\n          var stackFileContent = $scope.formValues.StackFileContent;\n          return StackService.createSwarmStackFromFileContent(name, stackFileContent, env, endpointId);\n        }\n\n        if (method === 'upload') {\n          var stackFile = $scope.formValues.StackFile;\n          return StackService.createSwarmStackFromFileUpload(name, stackFile, env, endpointId);\n        }\n\n        if (method === 'repository') {\n          var repositoryOptions = {\n            AdditionalFiles: $scope.formValues.AdditionalFiles,\n            RepositoryURL: $scope.formValues.RepositoryURL,\n            RepositoryReferenceName: $scope.formValues.RepositoryReferenceName,\n            ComposeFilePathInRepository: $scope.formValues.ComposeFilePathInRepository,\n            RepositoryAuthentication: $scope.formValues.RepositoryAuthentication,\n            RepositoryUsername: $scope.formValues.RepositoryUsername,\n            RepositoryPassword: $scope.formValues.RepositoryPassword,\n            AutoUpdate: transformAutoUpdateViewModel($scope.formValues.AutoUpdate, $scope.state.webhookId),\n            TLSSkipVerify: $scope.formValues.TLSSkipVerify,\n          };\n\n          return StackService.createSwarmStackFromGitRepository(name, repositoryOptions, env, endpointId);\n        }\n      }\n\n      function createComposeStack(name, method) {\n        var env = FormHelper.removeInvalidEnvVars($scope.formValues.Env);\n        const endpointId = +$state.params.endpointId;\n\n        if (method === 'editor' || method === 'template') {\n          var stackFileContent = $scope.formValues.StackFileContent;\n          return StackService.createComposeStackFromFileContent(name, stackFileContent, env, endpointId);\n        } else if (method === 'upload') {\n          var stackFile = $scope.formValues.StackFile;\n          return StackService.createComposeStackFromFileUpload(name, stackFile, env, endpointId);\n        } else if (method === 'repository') {\n          var repositoryOptions = {\n            AdditionalFiles: $scope.formValues.AdditionalFiles,\n            RepositoryURL: $scope.formValues.RepositoryURL,\n            RepositoryReferenceName: $scope.formValues.RepositoryReferenceName,\n            ComposeFilePathInRepository: $scope.formValues.ComposeFilePathInRepository,\n            RepositoryAuthentication: $scope.formValues.RepositoryAuthentication,\n            RepositoryUsername: $scope.formValues.RepositoryUsername,\n            RepositoryPassword: $scope.formValues.RepositoryPassword,\n            AutoUpdate: transformAutoUpdateViewModel($scope.formValues.AutoUpdate, $scope.state.webhookId),\n            TLSSkipVerify: $scope.formValues.TLSSkipVerify,\n          };\n\n          return StackService.createComposeStackFromGitRepository(name, repositoryOptions, env, endpointId);\n        }\n      }\n\n      $scope.handleEnvVarChange = handleEnvVarChange;\n      function handleEnvVarChange(value) {\n        $scope.formValues.Env = value;\n      }\n\n      $scope.deployStack = function () {\n        var name = $scope.formValues.Name;\n        var method = $scope.state.Method;\n\n        var accessControlData = $scope.formValues.AccessControlData;\n        var userDetails = Authentication.getUserDetails();\n        var isAdmin = Authentication.isAdmin();\n\n        if (method === 'editor' && $scope.formValues.StackFileContent === '') {\n          $scope.state.formValidationError = 'Stack file content must not be empty';\n          return;\n        }\n\n        if (!validateForm(accessControlData, isAdmin)) {\n          return;\n        }\n\n        var type = $scope.state.StackType;\n        var action = createSwarmStack;\n        if (type === 2) {\n          action = createComposeStack;\n        }\n        $scope.state.actionInProgress = true;\n        action(name, method)\n          .then(function success(data) {\n            if (data.data) {\n              data = data.data;\n            }\n            const userId = userDetails.ID;\n            const resourceControl = data.ResourceControl;\n            return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n          })\n          .then(function success() {\n            Notifications.success('Success', 'Stack successfully deployed');\n            $scope.state.isEditorDirty = false;\n            $state.go('docker.stacks');\n          })\n          .catch(function error(err) {\n            Notifications.error('Deployment error', err, 'Unable to deploy stack');\n          })\n          .finally(function final() {\n            $scope.state.actionInProgress = false;\n          });\n      };\n\n      $scope.onChangeFileContent = onChangeFileContent;\n      function onChangeFileContent(value) {\n        $scope.formValues.StackFileContent = value;\n        $scope.state.editorYamlValidationError = StackHelper.validateYAML($scope.formValues.StackFileContent, $scope.containerNames);\n        $scope.state.isEditorDirty = true;\n      }\n\n      async function onFileLoadAsync(event) {\n        $scope.state.uploadYamlValidationError = StackHelper.validateYAML(event.target.result, $scope.containerNames);\n      }\n\n      function onFileLoad(event) {\n        return $async(onFileLoadAsync, event);\n      }\n\n      $scope.uploadFile = function (file) {\n        $scope.formValues.StackFile = file;\n\n        if (file) {\n          const temporaryFileReader = new FileReader();\n          temporaryFileReader.fileName = file.name;\n          temporaryFileReader.onload = onFileLoad;\n          temporaryFileReader.readAsText(file);\n        }\n      };\n\n      function onChangeTemplateId(templateId, template) {\n        return $async(async () => {\n          if (!template || ($scope.state.selectedTemplateId === templateId && $scope.state.selectedTemplate === template)) {\n            return;\n          }\n\n          try {\n            $scope.state.selectedTemplateId = templateId;\n            $scope.state.selectedTemplate = template;\n\n            try {\n              const isGit = template.GitConfig !== null;\n              $scope.state.templateContent = await this.CustomTemplateService.customTemplateFile(templateId, isGit);\n              onChangeFileContent($scope.state.templateContent);\n\n              $scope.state.isEditorReadOnly = isGit;\n            } catch (err) {\n              $scope.state.templateLoadFailed = true;\n              throw err;\n            }\n\n            if (template.Variables && template.Variables.length > 0) {\n              const variables = getVariablesFieldDefaultValues(template.Variables);\n              onChangeTemplateVariables(variables);\n            }\n          } catch (err) {\n            Notifications.error('Failure', err, 'Unable to retrieve Custom Template file');\n          }\n        });\n      }\n\n      function onChangeTemplateVariables(value) {\n        onChangeFormValues({ Variables: value });\n\n        if (!$scope.isTemplateVariablesEnabled) {\n          return;\n        }\n        const rendered = renderTemplate($scope.state.templateContent, $scope.formValues.Variables, $scope.state.selectedTemplate.Variables);\n        $scope.state.editorYamlValidationError = StackHelper.validateYAML(rendered, $scope.containerNames);\n        onChangeFormValues({ StackFileContent: rendered });\n      }\n\n      async function initView() {\n        $scope.currentUser.isAdmin = Authentication.isAdmin();\n        $scope.currentUser.id = Authentication.getUserDetails().ID;\n\n        var endpointMode = $scope.applicationState.endpoint.mode;\n        $scope.state.StackType = 2;\n        $scope.isDockerStandalone = endpointMode.provider === 'DOCKER_STANDALONE';\n        if (endpointMode.provider === 'DOCKER_SWARM_MODE' && endpointMode.role === 'MANAGER') {\n          $scope.state.StackType = 1;\n        }\n\n        $scope.composeSyntaxMaxVersion = endpoint.ComposeSyntaxMaxVersion;\n        try {\n          const containers = await ContainerService.containers(endpoint.Id, true);\n          $scope.containerNames = ContainerHelper.getContainerNames(containers);\n        } catch (err) {\n          Notifications.error('Failure', err, 'Unable to retrieve Containers');\n        }\n      }\n\n      this.uiCanExit = async function () {\n        if ($scope.state.Method === 'editor' && $scope.formValues.StackFileContent && $scope.state.isEditorDirty) {\n          return confirmWebEditorDiscard();\n        }\n      };\n\n      initView();\n\n      function onChangeFormValues(newValues) {\n        return $async(async () => {\n          $scope.formValues = {\n            ...$scope.formValues,\n            ...newValues,\n          };\n        });\n      }\n    }\n  );\n","import { ResourceControlType } from '@/react/portainer/access-control/types';\nimport { AccessControlFormData } from 'Portainer/components/accessControlForm/porAccessControlFormModel';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport { StackStatus, StackType } from '@/react/common/stacks/types';\nimport { extractContainerNames } from '@/portainer/helpers/stackHelper';\nimport { confirmStackUpdate } from '@/react/common/stacks/common/confirm-stack-update';\nimport { confirm, confirmDelete, confirmWebEditorDiscard } from '@@/modals/confirm';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nangular.module('portainer.app').controller('StackController', [\n  '$async',\n  '$q',\n  '$scope',\n  '$state',\n  '$window',\n  '$transition$',\n  'StackService',\n  'NodeService',\n  'ServiceService',\n  'TaskService',\n  'ContainerService',\n  'ServiceHelper',\n  'TaskHelper',\n  'Notifications',\n  'FormHelper',\n  'GroupService',\n  'StackHelper',\n  'ResourceControlService',\n  'Authentication',\n  'ContainerHelper',\n  'endpoint',\n  function (\n    $async,\n    $q,\n    $scope,\n    $state,\n    $window,\n    $transition$,\n    StackService,\n    NodeService,\n    ServiceService,\n    TaskService,\n    ContainerService,\n    ServiceHelper,\n    TaskHelper,\n    Notifications,\n    FormHelper,\n    GroupService,\n    StackHelper,\n    ResourceControlService,\n    Authentication,\n    ContainerHelper,\n    endpoint\n  ) {\n    $scope.STACK_TYPES = StackType;\n\n    $scope.resourceType = ResourceControlType.Stack;\n\n    $scope.onUpdateResourceControlSuccess = function () {\n      $state.reload();\n    };\n\n    $scope.endpoint = endpoint;\n    $scope.isAdmin = Authentication.isAdmin();\n    $scope.stackWebhookFeature = FeatureId.STACK_WEBHOOK;\n    $scope.stackPullImageFeature = FeatureId.STACK_PULL_IMAGE;\n    $scope.state = {\n      actionInProgress: false,\n      migrationInProgress: false,\n      showEditorTab: false,\n      yamlError: false,\n      isEditorDirty: false,\n    };\n\n    $scope.formValues = {\n      Prune: false,\n      Endpoint: null,\n      AccessControlData: new AccessControlFormData(),\n      Env: [],\n    };\n\n    $window.onbeforeunload = () => {\n      if ($scope.stackFileContent && $scope.state.isEditorDirty) {\n        return '';\n      }\n    };\n\n    $scope.$on('$destroy', function () {\n      $scope.state.isEditorDirty = false;\n    });\n\n    $scope.handleEnvVarChange = handleEnvVarChange;\n    function handleEnvVarChange(value) {\n      $scope.formValues.Env = value;\n    }\n\n    $scope.onEnableWebhookChange = function (enable) {\n      $scope.$evalAsync(() => {\n        $scope.formValues.EnableWebhook = enable;\n      });\n    };\n\n    $scope.onPruneChange = function (enable) {\n      $scope.$evalAsync(() => {\n        $scope.formValues.Prune = enable;\n      });\n    };\n\n    $scope.duplicateStack = function duplicateStack(name, targetEndpointId) {\n      var stack = $scope.stack;\n      var env = FormHelper.removeInvalidEnvVars($scope.formValues.Env);\n\n      return StackService.duplicateStack(name, $scope.stackFileContent, env, targetEndpointId, stack.Type).then(onDuplicationSuccess).catch(notifyOnError);\n\n      function onDuplicationSuccess() {\n        Notifications.success('Success', 'Stack successfully duplicated');\n        $state.go('docker.stacks', {}, { reload: true });\n      }\n\n      function notifyOnError(err) {\n        Notifications.error('Failure', err, 'Unable to duplicate stack');\n      }\n    };\n\n    $scope.showEditor = function () {\n      $scope.state.showEditorTab = true;\n    };\n\n    $scope.migrateStack = function (name, endpointId) {\n      return $q(async function (resolve) {\n        const confirmed = await confirm({\n          title: 'Are you sure?',\n          modalType: ModalType.Warn,\n          message:\n            'This action will deploy a new instance of this stack on the target environment, please note that this does NOT relocate the content of any persistent volumes that may be attached to this stack.',\n          confirmButton: buildConfirmButton('Migrate', 'danger'),\n        });\n\n        if (!confirmed) {\n          return resolve();\n        }\n        return resolve(migrateStack(name, endpointId));\n      });\n    };\n\n    $scope.removeStack = function () {\n      confirmDelete('Do you want to remove the stack? Associated services will be removed as well').then((confirmed) => {\n        if (!confirmed) {\n          return;\n        }\n        deleteStack();\n      });\n    };\n\n    $scope.detachStackFromGit = function () {\n      confirmDetachment().then(function onConfirm(confirmed) {\n        if (!confirmed) {\n          return;\n        }\n\n        $scope.deployStack();\n      });\n    };\n\n    function migrateStack(name, targetEndpointId) {\n      const stack = $scope.stack;\n\n      let migrateRequest = StackService.migrateSwarmStack;\n      if (stack.Type === 2) {\n        migrateRequest = StackService.migrateComposeStack;\n      }\n\n      // TODO: this is a work-around for stacks created with Portainer version >= 1.17.1\n      // The EndpointID property is not available for these stacks, we can pass\n      // the current endpoint identifier as a part of the migrate request. It will be used if\n      // the EndpointID property is not defined on the stack.\n      if (!stack.EndpointId) {\n        stack.EndpointId = endpoint.Id;\n      }\n\n      $scope.state.migrationInProgress = true;\n      return migrateRequest(stack, targetEndpointId, name)\n        .then(function success() {\n          Notifications.success('Stack successfully migrated', stack.Name);\n          $state.go('docker.stacks', {}, { reload: true });\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to migrate stack');\n        })\n        .finally(function final() {\n          $scope.state.migrationInProgress = false;\n        });\n    }\n\n    function deleteStack() {\n      var endpointId = +$state.params.endpointId;\n      var stack = $scope.stack;\n\n      StackService.remove(stack, $transition$.params().external, endpointId)\n        .then(function success() {\n          Notifications.success('Stack successfully removed', stack.Name);\n          $state.go('docker.stacks');\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to remove stack ' + stack.Name);\n        });\n    }\n\n    $scope.associateStack = function () {\n      var endpointId = +$state.params.endpointId;\n      var stack = $scope.stack;\n      var accessControlData = $scope.formValues.AccessControlData;\n      $scope.state.actionInProgress = true;\n\n      StackService.associate(stack, endpointId, $scope.orphanedRunning)\n        .then(function success(data) {\n          const resourceControl = data.ResourceControl;\n          const userDetails = Authentication.getUserDetails();\n          const userId = userDetails.ID;\n          return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n        })\n        .then(function success() {\n          Notifications.success('Stack successfully associated', stack.Name);\n          $state.go('docker.stacks');\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to associate stack ' + stack.Name);\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    };\n\n    $scope.deployStack = function () {\n      const stack = $scope.stack;\n      const isSwarmStack = stack.Type === 1;\n      confirmStackUpdate('Do you want to force an update of the stack?', isSwarmStack).then(function (result) {\n        if (!result) {\n          return;\n        }\n        var stackFile = $scope.stackFileContent;\n        var env = FormHelper.removeInvalidEnvVars($scope.formValues.Env);\n        var prune = $scope.formValues.Prune;\n\n        // TODO: this is a work-around for stacks created with Portainer version >= 1.17.1\n        // The EndpointID property is not available for these stacks, we can pass\n        // the current endpoint identifier as a part of the update request. It will be used if\n        // the EndpointID property is not defined on the stack.\n        if (!stack.EndpointId) {\n          stack.EndpointId = endpoint.Id;\n        }\n\n        $scope.state.actionInProgress = true;\n        StackService.updateStack(stack, stackFile, env, prune, result.pullImage)\n          .then(function success() {\n            Notifications.success('Success', 'Stack successfully deployed');\n            $scope.state.isEditorDirty = false;\n            $state.reload();\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to create stack');\n          })\n          .finally(function final() {\n            $scope.state.actionInProgress = false;\n          });\n      });\n    };\n\n    $scope.editorUpdate = function (value) {\n      if ($scope.stackFileContent.replace(/(\\r\\n|\\n|\\r)/gm, '') !== value.replace(/(\\r\\n|\\n|\\r)/gm, '')) {\n        $scope.state.isEditorDirty = true;\n        $scope.stackFileContent = value;\n        $scope.state.yamlError = StackHelper.validateYAML($scope.stackFileContent, $scope.containerNames, $scope.state.originalContainerNames);\n      }\n    };\n\n    $scope.stopStack = stopStack;\n    function stopStack() {\n      return $async(stopStackAsync);\n    }\n    async function stopStackAsync() {\n      const confirmed = await confirm({\n        title: 'Are you sure?',\n        modalType: ModalType.Warn,\n        message: 'Are you sure you want to stop this stack?',\n        confirmButton: buildConfirmButton('Stop', 'danger'),\n      });\n      if (!confirmed) {\n        return;\n      }\n\n      $scope.state.actionInProgress = true;\n      try {\n        await StackService.stop(endpoint.Id, $scope.stack.Id);\n        $state.reload();\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to stop stack');\n      }\n      $scope.state.actionInProgress = false;\n    }\n\n    $scope.startStack = startStack;\n    function startStack() {\n      return $async(startStackAsync);\n    }\n    async function startStackAsync() {\n      $scope.state.actionInProgress = true;\n      const id = $scope.stack.Id;\n      try {\n        await StackService.start(endpoint.Id, id);\n        $state.reload();\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to start stack');\n      }\n      $scope.state.actionInProgress = false;\n    }\n\n    function loadStack(id) {\n      return $async(async () => {\n        var agentProxy = $scope.applicationState.endpoint.mode.agentProxy;\n\n        getEnvironments()\n          .then(function success(data) {\n            $scope.endpoints = data.value;\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to retrieve environments');\n          });\n\n        $q.all({\n          stack: StackService.stack(id),\n          groups: GroupService.groups(),\n          containers: ContainerService.containers(endpoint.Id, true),\n        })\n          .then(function success(data) {\n            var stack = data.stack;\n            $scope.groups = data.groups;\n            $scope.stack = stack;\n            $scope.containerNames = ContainerHelper.getContainerNames(data.containers);\n\n            $scope.formValues.Env = $scope.stack.Env;\n\n            let resourcesPromise = Promise.resolve({});\n            if (!stack.Status || stack.Status === 1) {\n              resourcesPromise = stack.Type === 1 ? retrieveSwarmStackResources(stack.Name, agentProxy) : retrieveComposeStackResources(stack.Name);\n            }\n\n            // Workaround for EE-6118\n            if (!stack.EndpointId) {\n              stack.EndpointId = endpoint.Id;\n            }\n\n            return $q.all({\n              stackFile: StackService.getStackFile(id),\n              resources: resourcesPromise,\n            });\n          })\n          .then(function success(data) {\n            const isSwarm = $scope.stack.Type === StackType.DockerSwarm;\n            $scope.stackFileContent = data.stackFile;\n            // workaround for missing status, if stack has resources, set the status to 1 (active), otherwise to 2 (inactive) (https://github.com/portainer/portainer/issues/4422)\n            if (!$scope.stack.Status) {\n              $scope.stack.Status = data.resources && ((isSwarm && data.resources.services.length) || data.resources.containers.length) ? 1 : 2;\n            }\n\n            if (isSwarm && $scope.stack.Status === StackStatus.Active) {\n              assignSwarmStackResources(data.resources, agentProxy);\n            }\n            $scope.state.originalContainerNames = extractContainerNames($scope.stackFileContent);\n\n            $scope.state.yamlError = StackHelper.validateYAML($scope.stackFileContent, $scope.containerNames, $scope.state.originalContainerNames);\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to retrieve stack details');\n          });\n      });\n    }\n\n    function retrieveSwarmStackResources(stackName, agentProxy) {\n      var stackFilter = {\n        label: ['com.docker.stack.namespace=' + stackName],\n      };\n\n      return $q.all({\n        services: ServiceService.services(stackFilter),\n        tasks: TaskService.tasks(stackFilter),\n        containers: agentProxy ? ContainerService.containers(endpoint.Id, 1) : [],\n        nodes: NodeService.nodes(),\n      });\n    }\n\n    function assignSwarmStackResources(resources, agentProxy) {\n      var services = resources.services;\n      var tasks = resources.tasks;\n\n      if (agentProxy) {\n        var containers = resources.containers;\n        for (var j = 0; j < tasks.length; j++) {\n          var task = tasks[j];\n          TaskHelper.associateContainerToTask(task, containers);\n        }\n      }\n\n      for (var i = 0; i < services.length; i++) {\n        var service = services[i];\n        ServiceHelper.associateTasksToService(service, tasks);\n      }\n\n      $scope.nodes = resources.nodes;\n      $scope.tasks = tasks;\n      $scope.services = services;\n    }\n\n    function retrieveComposeStackResources(stackName) {\n      var stackFilter = {\n        label: ['com.docker.compose.project=' + stackName],\n      };\n\n      return $q.all({\n        containers: ContainerService.containers(endpoint.Id, 1, stackFilter),\n      });\n    }\n\n    function loadExternalStack(name) {\n      const stackType = $scope.stackType;\n      if (!stackType || (stackType !== StackType.DockerSwarm && stackType !== StackType.DockerCompose)) {\n        Notifications.error('Failure', null, 'Invalid type URL parameter.');\n        return;\n      }\n\n      if (stackType === StackType.DockerSwarm) {\n        loadExternalSwarmStack(name);\n      }\n    }\n\n    function loadExternalSwarmStack(name) {\n      var agentProxy = $scope.applicationState.endpoint.mode.agentProxy;\n\n      retrieveSwarmStackResources(name, agentProxy)\n        .then(function success(data) {\n          assignSwarmStackResources(data, agentProxy);\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve stack details');\n        });\n    }\n\n    this.uiCanExit = async function () {\n      if ($scope.stackFileContent && $scope.state.isEditorDirty) {\n        return confirmWebEditorDiscard();\n      }\n    };\n\n    async function canManageStacks() {\n      return endpoint.SecuritySettings.allowStackManagementForRegularUsers || Authentication.isAdmin();\n    }\n\n    async function initView() {\n      // if the user is not an admin, and stack management is disabled for non admins, then take the user to the dashboard\n      $scope.createEnabled = await canManageStacks();\n      if (!$scope.createEnabled) {\n        $state.go('docker.dashboard');\n      }\n\n      var stackName = $transition$.params().name;\n      $scope.stackName = stackName;\n\n      const regular = $transition$.params().regular == 'true';\n      $scope.regular = regular;\n\n      var external = $transition$.params().external == 'true';\n      $scope.external = external;\n\n      const orphaned = $transition$.params().orphaned == 'true';\n      $scope.orphaned = orphaned;\n\n      const orphanedRunning = $transition$.params().orphanedRunning == 'true';\n      $scope.orphanedRunning = orphanedRunning;\n\n      $scope.stackType = parseInt($transition$.params().type, 10);\n\n      if (external || (orphaned && orphanedRunning)) {\n        loadExternalStack(stackName);\n      }\n\n      if (regular || orphaned) {\n        const stackId = $transition$.params().id;\n        loadStack(stackId);\n      }\n\n      $scope.composeSyntaxMaxVersion = endpoint.ComposeSyntaxMaxVersion;\n    }\n\n    initView();\n  },\n]);\n\nfunction confirmDetachment() {\n  return confirm({\n    modalType: ModalType.Warn,\n    title: 'Are you sure?',\n    message: 'Do you want to detach the stack from Git?',\n    confirmButton: buildConfirmButton('Detach', 'danger'),\n  });\n}\n","import { confirmDelete } from '@@/modals/confirm';\n\nimport { processItemsInBatches } from '@/react/common/processItemsInBatches';\n\nangular.module('portainer.app').controller('StacksController', StacksController);\n\n/* @ngInject */\nfunction StacksController($scope, $state, Notifications, StackService, Authentication, endpoint) {\n  $scope.removeAction = function (selectedItems) {\n    confirmDelete('Do you want to remove the selected stack(s)? Associated services will be removed as well.').then((confirmed) => {\n      if (!confirmed) {\n        return;\n      }\n      deleteSelectedStacks(selectedItems);\n    });\n  };\n\n  async function deleteSelectedStacks(selectedItems) {\n    const endpointId = endpoint.Id;\n\n    async function doRemove(stack) {\n      return StackService.remove(stack, stack.External, endpointId)\n        .then(function success() {\n          Notifications.success('Stack successfully removed', stack.Name);\n          var index = $scope.stacks.indexOf(stack);\n          $scope.stacks.splice(index, 1);\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to remove stack ' + stack.Name);\n        });\n    }\n\n    await processItemsInBatches(selectedItems, doRemove);\n    $state.reload();\n  }\n\n  $scope.createEnabled = false;\n\n  $scope.getStacks = getStacks;\n\n  function getStacks() {\n    const endpointMode = $scope.applicationState.endpoint.mode;\n    const endpointId = endpoint.Id;\n\n    const includeOrphanedStacks = Authentication.isAdmin();\n    StackService.stacks(true, endpointMode.provider === 'DOCKER_SWARM_MODE' && endpointMode.role === 'MANAGER', endpointId, includeOrphanedStacks)\n      .then(function success(stacks) {\n        $scope.stacks = stacks;\n      })\n      .catch(function error(err) {\n        $scope.stacks = [];\n        Notifications.error('Failure', err, 'Unable to retrieve stacks');\n      });\n  }\n\n  async function canManageStacks() {\n    return endpoint.SecuritySettings.allowStackManagementForRegularUsers || Authentication.isAdmin();\n  }\n\n  async function initView() {\n    // if the user is not an admin, and stack management is disabled for non admins, then take the user to the dashboard\n    $scope.createEnabled = await canManageStacks();\n    if (!$scope.createEnabled) {\n      $state.go('docker.dashboard');\n    }\n    getStacks();\n  }\n\n  initView();\n}\n","import angular from 'angular';\nimport _ from 'lodash-es';\nimport { confirmDestructive } from '@@/modals/confirm';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nangular.module('portainer.app').controller('TagsController', TagsController);\n\nfunction TagsController($scope, $state, $async, TagService, Notifications) {\n  $scope.state = {\n    actionInProgress: false,\n  };\n\n  $scope.formValues = {\n    Name: '',\n  };\n\n  $scope.checkNameValidity = function (form) {\n    var valid = true;\n    for (var i = 0; i < $scope.tags.length; i++) {\n      if ($scope.formValues.Name === $scope.tags[i].Name) {\n        valid = false;\n        break;\n      }\n    }\n    form.name.$setValidity('validName', valid);\n  };\n\n  $scope.removeAction = removeAction;\n\n  function removeAction(tags) {\n    return $async(removeActionAsync, tags);\n  }\n\n  async function removeActionAsync(tags) {\n    const confirmed = await confirmDestructive({\n      title: 'Are you sure?',\n      message: 'Are you sure you want to remove the selected tag(s)?',\n      confirmButton: buildConfirmButton('Remove', 'danger'),\n    });\n\n    if (!confirmed) {\n      return;\n    }\n\n    for (let tag of tags) {\n      try {\n        await TagService.deleteTag(tag.Id);\n\n        Notifications.success('Tag successfully removed', tag.Name);\n        _.remove($scope.tags, tag);\n      } catch (err) {\n        Notifications.error('Failure', err, 'Unable to remove tag');\n      }\n    }\n\n    $state.reload();\n  }\n\n  $scope.createTag = function () {\n    var tagName = $scope.formValues.Name;\n    TagService.createTag(tagName)\n      .then(function success() {\n        Notifications.success('Tag successfully created', tagName);\n        $state.reload();\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to create tag');\n      });\n  };\n\n  function initView() {\n    TagService.tags()\n      .then(function success(data) {\n        $scope.tags = data;\n      })\n      .catch(function error(err) {\n        Notifications.error('Failure', err, 'Unable to retrieve tags');\n        $scope.tags = [];\n      });\n  }\n\n  initView();\n}\n","import _ from 'lodash-es';\nimport { TemplateType } from '@/react/portainer/templates/app-templates/types';\nimport { TEMPLATE_NAME_VALIDATION_REGEX } from '@/react/portainer/custom-templates/components/CommonFields';\nimport { AccessControlFormData } from '../../components/accessControlForm/porAccessControlFormModel';\n\nangular.module('portainer.app').controller('TemplatesController', [\n  '$scope',\n  '$q',\n  '$state',\n  '$anchorScroll',\n  'ContainerService',\n  'ImageService',\n  'NetworkService',\n  'TemplateService',\n  'TemplateHelper',\n  'VolumeService',\n  'Notifications',\n  'ResourceControlService',\n  'Authentication',\n  'FormValidator',\n  'StackService',\n  'endpoint',\n  '$async',\n  function (\n    $scope,\n    $q,\n    $state,\n    $anchorScroll,\n    ContainerService,\n    ImageService,\n    NetworkService,\n    TemplateService,\n    TemplateHelper,\n    VolumeService,\n    Notifications,\n    ResourceControlService,\n    Authentication,\n    FormValidator,\n    StackService,\n    endpoint,\n    $async\n  ) {\n    const DOCKER_STANDALONE = 'DOCKER_STANDALONE';\n    const DOCKER_SWARM_MODE = 'DOCKER_SWARM_MODE';\n\n    $scope.state = {\n      selectedTemplate: null,\n      showAdvancedOptions: false,\n      formValidationError: '',\n      actionInProgress: false,\n      templateNameRegex: TEMPLATE_NAME_VALIDATION_REGEX,\n    };\n\n    $scope.enabledTypes = [TemplateType.Container, TemplateType.ComposeStack];\n\n    $scope.formValues = {\n      network: '',\n      name: '',\n      AccessControlData: new AccessControlFormData(),\n    };\n\n    $scope.addVolume = function () {\n      $scope.state.selectedTemplate.Volumes.push({ containerPath: '', bind: '', readonly: false, type: 'auto' });\n    };\n\n    $scope.removeVolume = function (index) {\n      $scope.state.selectedTemplate.Volumes.splice(index, 1);\n    };\n\n    $scope.addPortBinding = function () {\n      $scope.state.selectedTemplate.Ports.push({ hostPort: '', containerPort: '', protocol: 'tcp' });\n    };\n\n    $scope.removePortBinding = function (index) {\n      $scope.state.selectedTemplate.Ports.splice(index, 1);\n    };\n\n    $scope.addExtraHost = function () {\n      $scope.state.selectedTemplate.Hosts.push('');\n    };\n\n    $scope.removeExtraHost = function (index) {\n      $scope.state.selectedTemplate.Hosts.splice(index, 1);\n    };\n\n    $scope.addLabel = function () {\n      $scope.state.selectedTemplate.Labels.push({ name: '', value: '' });\n    };\n\n    $scope.removeLabel = function (index) {\n      $scope.state.selectedTemplate.Labels.splice(index, 1);\n    };\n\n    function validateForm(accessControlData, isAdmin) {\n      $scope.state.formValidationError = '';\n      var error = '';\n      error = FormValidator.validateAccessControl(accessControlData, isAdmin);\n\n      if (error) {\n        $scope.state.formValidationError = error;\n        return false;\n      }\n      return true;\n    }\n\n    function createContainerFromTemplate(template, userId, accessControlData) {\n      var templateConfiguration = createTemplateConfiguration(template);\n      var generatedVolumeCount = TemplateHelper.determineRequiredGeneratedVolumeCount(template.Volumes);\n      var generatedVolumeIds = [];\n      VolumeService.createXAutoGeneratedLocalVolumes(generatedVolumeCount)\n        .then(function success(data) {\n          angular.forEach(data, function (volume) {\n            var volumeId = volume.Id;\n            generatedVolumeIds.push(volumeId);\n          });\n          TemplateService.updateContainerConfigurationWithVolumes(templateConfiguration, template, data);\n          return ImageService.pullImage(template.RegistryModel, true);\n        })\n        .then(function success() {\n          return ContainerService.createAndStartContainer(endpoint.Id, templateConfiguration);\n        })\n        .then(function success(data) {\n          const resourceControl = data.Portainer.ResourceControl;\n          return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl, generatedVolumeIds);\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Container successfully created');\n          $state.go('docker.containers', {}, { reload: true });\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, err.msg);\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    }\n\n    function createComposeStackFromTemplate(template, userId, accessControlData) {\n      var stackName = $scope.formValues.name;\n\n      for (var i = 0; i < template.Env.length; i++) {\n        var envvar = template.Env[i];\n        if (envvar.preset) {\n          envvar.value = envvar.default;\n        }\n      }\n\n      var repositoryOptions = {\n        RepositoryURL: template.Repository.url,\n        ComposeFilePathInRepository: template.Repository.stackfile,\n        FromAppTemplate: true,\n      };\n\n      const endpointId = +$state.params.endpointId;\n      StackService.createComposeStackFromGitRepository(stackName, repositoryOptions, template.Env, endpointId)\n        .then(function success(data) {\n          const resourceControl = data.ResourceControl;\n          return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Stack successfully deployed');\n          $state.go('docker.stacks');\n        })\n        .catch(function error(err) {\n          Notifications.error('Deployment error', err);\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    }\n\n    function createStackFromTemplate(template, userId, accessControlData) {\n      var stackName = $scope.formValues.name;\n      var env = _.filter(\n        _.map(template.Env, function transformEnvVar(envvar) {\n          return {\n            name: envvar.name,\n            value: envvar.preset || !envvar.value ? envvar.default : envvar.value,\n          };\n        }),\n        function removeUndefinedVars(envvar) {\n          return envvar.value && envvar.name;\n        }\n      );\n\n      var repositoryOptions = {\n        RepositoryURL: template.Repository.url,\n        ComposeFilePathInRepository: template.Repository.stackfile,\n        FromAppTemplate: true,\n      };\n\n      const endpointId = +$state.params.endpointId;\n\n      StackService.createSwarmStackFromGitRepository(stackName, repositoryOptions, env, endpointId)\n        .then(function success(data) {\n          const resourceControl = data.ResourceControl;\n          return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);\n        })\n        .then(function success() {\n          Notifications.success('Success', 'Stack successfully deployed');\n          $state.go('docker.stacks');\n        })\n        .catch(function error(err) {\n          Notifications.error('Deployment error', err);\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    }\n\n    $scope.createTemplate = function () {\n      var userDetails = Authentication.getUserDetails();\n      var userId = userDetails.ID;\n      var accessControlData = $scope.formValues.AccessControlData;\n\n      if (!validateForm(accessControlData, $scope.isAdmin)) {\n        return;\n      }\n\n      var template = $scope.state.selectedTemplate;\n\n      $scope.state.actionInProgress = true;\n      if (template.Type === 2) {\n        createStackFromTemplate(template, userId, accessControlData);\n      } else if (template.Type === 3) {\n        createComposeStackFromTemplate(template, userId, accessControlData);\n      } else {\n        createContainerFromTemplate(template, userId, accessControlData);\n      }\n    };\n\n    $scope.unselectTemplate = function () {\n      return $async(async () => {\n        $scope.state.selectedTemplate = null;\n      });\n    };\n\n    $scope.selectTemplate = function (template) {\n      return $async(async () => {\n        if ($scope.state.selectedTemplate) {\n          await $scope.unselectTemplate($scope.state.selectedTemplate);\n        }\n\n        if (template.Network) {\n          $scope.formValues.network = _.find($scope.availableNetworks, function (o) {\n            return o.Name === template.Network;\n          });\n        } else {\n          $scope.formValues.network = _.find($scope.availableNetworks, function (o) {\n            return o.Name === 'bridge';\n          });\n        }\n\n        $scope.formValues.name = template.Name ? template.Name : '';\n        $scope.state.selectedTemplate = template;\n        $scope.state.deployable = isDeployable($scope.applicationState.endpoint, template.Type);\n        $anchorScroll('view-top');\n      });\n    };\n\n    function isDeployable(endpoint, templateType) {\n      let deployable = false;\n      switch (templateType) {\n        case 1:\n          deployable = endpoint.mode.provider === DOCKER_SWARM_MODE || endpoint.mode.provider === DOCKER_STANDALONE;\n          break;\n        case 2:\n          deployable = endpoint.mode.provider === DOCKER_SWARM_MODE;\n          break;\n        case 3:\n          deployable = endpoint.mode.provider === DOCKER_SWARM_MODE || endpoint.mode.provider === DOCKER_STANDALONE;\n          break;\n      }\n      return deployable;\n    }\n\n    function createTemplateConfiguration(template) {\n      var network = $scope.formValues.network;\n      var name = $scope.formValues.name;\n      return TemplateService.createTemplateConfiguration(template, name, network);\n    }\n\n    function initView() {\n      $scope.isAdmin = Authentication.isAdmin();\n\n      var endpointMode = $scope.applicationState.endpoint.mode;\n      var apiVersion = $scope.applicationState.endpoint.apiVersion;\n      const endpointId = +$state.params.endpointId;\n\n      const showSwarmStacks = endpointMode.provider === 'DOCKER_SWARM_MODE' && endpointMode.role === 'MANAGER' && apiVersion >= 1.25;\n\n      $scope.disabledTypes = !showSwarmStacks ? [TemplateType.SwarmStack] : [];\n\n      $q.all({\n        templates: TemplateService.templates(endpointId),\n        volumes: VolumeService.getVolumes(),\n        networks: NetworkService.networks(\n          endpointMode.provider === 'DOCKER_STANDALONE' || endpointMode.provider === 'DOCKER_SWARM_MODE',\n          false,\n          endpointMode.provider === 'DOCKER_SWARM_MODE' && apiVersion >= 1.25\n        ),\n      })\n        .then(function success(data) {\n          var templates = data.templates;\n          $scope.templates = templates;\n          $scope.availableVolumes = _.orderBy(data.volumes.Volumes, [(volume) => volume.Name.toLowerCase()], ['asc']);\n          var networks = data.networks;\n          $scope.availableNetworks = networks;\n          $scope.allowBindMounts = endpoint.SecuritySettings.allowBindMountsForRegularUsers;\n        })\n        .catch(function error(err) {\n          $scope.templates = [];\n          Notifications.error('Failure', err, 'An error occurred during apps initialization.');\n        });\n    }\n\n    initView();\n  },\n]);\n","import { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\nimport { confirm, confirmChangePassword, confirmDelete } from '@@/modals/confirm';\n\nangular.module('portainer.app').controller('UserController', [\n  '$q',\n  '$scope',\n  '$state',\n  '$transition$',\n  'UserService',\n  'Notifications',\n  'SettingsService',\n  'Authentication',\n  function ($q, $scope, $state, $transition$, UserService, Notifications, SettingsService, Authentication) {\n    $scope.state = {\n      updatePasswordError: '',\n    };\n\n    $scope.formValues = {\n      username: '',\n      newPassword: '',\n      confirmPassword: '',\n      Administrator: false,\n    };\n\n    $scope.handleAdministratorChange = function (checked) {\n      return $scope.$evalAsync(() => {\n        $scope.formValues.Administrator = checked;\n      });\n    };\n\n    $scope.deleteUser = function () {\n      confirmDelete('Do you want to remove this user? This user will not be able to login into Portainer anymore.').then((confirmed) => {\n        if (!confirmed) {\n          return;\n        }\n        deleteUser();\n      });\n    };\n\n    $scope.updateUser = async function () {\n      const role = $scope.formValues.Administrator ? 1 : 2;\n      const oldUsername = $scope.user.Username;\n      const username = $scope.formValues.username;\n\n      if (username != oldUsername) {\n        const confirmed = await confirm({\n          title: 'Are you sure?',\n          modalType: ModalType.Warn,\n          message: `Are you sure you want to rename the user ${oldUsername} to ${username}?`,\n          confirmButton: buildConfirmButton('Update'),\n        });\n\n        if (!confirmed) {\n          return;\n        }\n      }\n\n      UserService.updateUser($scope.user.Id, { role, username })\n        .then(function success() {\n          Notifications.success('Success', 'User successfully updated');\n          $state.reload();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to update user permissions');\n        });\n    };\n\n    $scope.updatePassword = async function () {\n      const isCurrentUser = Authentication.getUserDetails().ID === $scope.user.Id;\n      const confirmed = !isCurrentUser || (await confirmChangePassword());\n      if (!confirmed) {\n        return;\n      }\n      UserService.updateUser($scope.user.Id, { newPassword: $scope.formValues.newPassword })\n        .then(function success() {\n          Notifications.success('Success', 'Password successfully updated');\n\n          if (isCurrentUser) {\n            $state.go('portainer.logout');\n          } else {\n            $state.reload();\n          }\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to update user password');\n        });\n    };\n\n    function deleteUser() {\n      UserService.deleteUser($scope.user.Id)\n        .then(function success() {\n          Notifications.success('User successfully deleted', $scope.user.Username);\n          $state.go('portainer.users');\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to remove user');\n        });\n    }\n\n    $scope.isSubmitEnabled = isSubmitEnabled;\n    function isSubmitEnabled() {\n      const { user, formValues } = $scope;\n      return user && (user.Username !== formValues.username || (formValues.Administrator && user.Role !== 1) || (!formValues.Administrator && user.Role === 1));\n    }\n\n    $scope.isDeleteDisabled = isDeleteDisabled;\n    function isDeleteDisabled() {\n      const { user } = $scope;\n      return user && user.Id === 1;\n    }\n\n    function initView() {\n      $scope.isAdmin = Authentication.isAdmin();\n\n      $q.all({\n        user: UserService.user($transition$.params().id),\n        settings: SettingsService.publicSettings(),\n      })\n        .then(function success(data) {\n          var user = data.user;\n          $scope.user = user;\n          $scope.formValues.Administrator = user.Role === 1;\n          $scope.formValues.username = user.Username;\n          $scope.AuthenticationMethod = data.settings.AuthenticationMethod;\n          $scope.requiredPasswordLength = data.settings.RequiredPasswordLength;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve user information');\n        });\n    }\n\n    initView();\n  },\n]);\n","import _ from 'lodash-es';\nimport { confirmDelete } from '@@/modals/confirm';\nimport { processItemsInBatches } from '@/react/common/processItemsInBatches';\n\nangular.module('portainer.app').controller('UsersController', [\n  '$q',\n  '$scope',\n  '$state',\n  'UserService',\n  'TeamService',\n  'TeamMembershipService',\n  'Notifications',\n  'Authentication',\n  'SettingsService',\n  function ($q, $scope, $state, UserService, TeamService, TeamMembershipService, Notifications, Authentication, SettingsService) {\n    $scope.state = {\n      userCreationError: '',\n      validUsername: false,\n      actionInProgress: false,\n    };\n\n    $scope.formValues = {\n      Username: '',\n      Password: '',\n      ConfirmPassword: '',\n      Administrator: false,\n      TeamIds: [],\n    };\n\n    $scope.handleAdministratorChange = function (checked) {\n      return $scope.$evalAsync(() => {\n        $scope.formValues.Administrator = checked;\n      });\n    };\n\n    $scope.onChangeTeamIds = function (teamIds) {\n      return $scope.$evalAsync(() => {\n        $scope.formValues.TeamIds = teamIds;\n      });\n    };\n\n    $scope.checkUsernameValidity = function () {\n      var valid = true;\n      for (var i = 0; i < $scope.users.length; i++) {\n        if ($scope.formValues.Username.toLocaleLowerCase() === $scope.users[i].Username.toLocaleLowerCase()) {\n          valid = false;\n          break;\n        }\n      }\n      $scope.state.validUsername = valid;\n      $scope.state.userCreationError = valid ? '' : 'Username already taken';\n    };\n\n    $scope.addUser = function () {\n      $scope.state.actionInProgress = true;\n      $scope.state.userCreationError = '';\n      var username = $scope.formValues.Username;\n      var password = $scope.formValues.Password;\n      var role = $scope.formValues.Administrator ? 1 : 2;\n      UserService.createUser(username, password, role, $scope.formValues.TeamIds)\n        .then(function success() {\n          Notifications.success('User successfully created', username);\n          $state.reload();\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to create user');\n        })\n        .finally(function final() {\n          $scope.state.actionInProgress = false;\n        });\n    };\n\n    async function deleteSelectedUsers(selectedItems) {\n      async function doRemove(user) {\n        return UserService.deleteUser(user.Id)\n          .then(function success() {\n            Notifications.success('User successfully removed', user.Username);\n            var index = $scope.users.indexOf(user);\n            $scope.users.splice(index, 1);\n          })\n          .catch(function error(err) {\n            Notifications.error('Failure', err, 'Unable to remove user');\n          });\n      }\n      await processItemsInBatches(selectedItems, doRemove);\n      $state.reload();\n    }\n\n    $scope.removeAction = function (selectedItems) {\n      confirmDelete('Do you want to remove the selected users? They will not be able to login into Portainer anymore.').then((confirmed) => {\n        if (!confirmed) {\n          return;\n        }\n        deleteSelectedUsers(selectedItems);\n      });\n    };\n\n    function assignTeamLeaders(users, memberships) {\n      for (var i = 0; i < users.length; i++) {\n        var user = users[i];\n        user.isTeamLeader = false;\n        for (var j = 0; j < memberships.length; j++) {\n          var membership = memberships[j];\n          if (user.Id === membership.UserId && membership.Role === 1) {\n            user.isTeamLeader = true;\n            user.RoleName = 'team leader';\n            break;\n          }\n        }\n      }\n    }\n\n    function initView() {\n      var userDetails = Authentication.getUserDetails();\n      var isAdmin = Authentication.isAdmin();\n      $scope.isAdmin = isAdmin;\n      $q.all({\n        users: UserService.users(true),\n        teams: isAdmin ? TeamService.teams() : UserService.userLeadingTeams(userDetails.ID),\n        memberships: TeamMembershipService.memberships(),\n        settings: SettingsService.publicSettings(),\n      })\n        .then(function success(data) {\n          var users = data.users;\n          assignTeamLeaders(users, data.memberships);\n          $scope.users = users;\n          $scope.teams = _.orderBy(data.teams, 'Name', 'asc');\n          $scope.AuthenticationMethod = data.settings.AuthenticationMethod;\n          $scope.requiredPasswordLength = data.settings.RequiredPasswordLength;\n          $scope.teamSync = data.settings.TeamSync;\n        })\n        .catch(function error(err) {\n          Notifications.error('Failure', err, 'Unable to retrieve users and teams');\n          $scope.users = [];\n          $scope.teams = [];\n        });\n    }\n\n    initView();\n  },\n]);\n","import { useQuery } from 'react-query';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport axios from '@/portainer/services/axios';\nimport { ServiceId } from '@/react/docker/services/types';\nimport { ContainerId } from '@/react/docker/containers/types';\n\nimport { ImageStatus, ResourceID, ResourceType } from './types';\n\nexport function useImageNotification(\n  environmentId: number,\n  resourceId: ResourceID,\n  resourceType: ResourceType,\n  nodeName: string,\n  enabled = false\n) {\n  return useQuery(\n    [\n      'environments',\n      environmentId,\n      'docker',\n      'images',\n      resourceType,\n      resourceId,\n      'status',\n    ],\n    () =>\n      resourceType === ResourceType.SERVICE\n        ? getServiceImagesStatus(environmentId, resourceId)\n        : getContainerImagesStatus(environmentId, resourceId, nodeName),\n    {\n      enabled,\n    }\n  );\n}\n\nasync function getContainerImagesStatus(\n  environmentId: EnvironmentId,\n  containerID: ContainerId,\n  nodeName: string\n) {\n  try {\n    let headers = {};\n    if (nodeName !== '') {\n      headers = { 'X-PortainerAgent-Target': nodeName };\n    }\n    const { data } = await axios.get<ImageStatus>(\n      `/docker/${environmentId}/containers/${containerID}/image_status`,\n      { headers }\n    );\n    return data;\n  } catch (e) {\n    return {\n      Status: 'unknown',\n      Message: `Unable to retrieve image status for container: ${containerID}`,\n    };\n  }\n}\n\nasync function getServiceImagesStatus(\n  environmentId: EnvironmentId,\n  serviceID: ServiceId\n) {\n  try {\n    const { data } = await axios.get<ImageStatus>(\n      `/docker/${environmentId}/services/${serviceID}/image_status`\n    );\n    return data;\n  } catch (e) {\n    return {\n      Status: 'unknown',\n      Message: `Unable to retrieve image status for service: ${serviceID}`,\n    };\n  }\n}\n","import { Loader } from 'lucide-react';\n\nimport { useEnvironment } from '@/react/portainer/environments/queries';\nimport { statusIcon } from '@/react/docker/components/ImageStatus/helpers';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { Icon } from '@@/Icon';\n\nimport { ResourceID, ResourceType } from './types';\nimport { useImageNotification } from './useImageNotification';\n\nexport interface Props {\n  environmentId: EnvironmentId;\n  resourceId: ResourceID;\n  resourceType?: ResourceType;\n  nodeName?: string;\n}\n\nexport function ImageStatus({\n  environmentId,\n  resourceId,\n  resourceType = ResourceType.CONTAINER,\n  nodeName = '',\n}: Props) {\n  const enableImageNotificationQuery = useEnvironment(\n    environmentId,\n    (environment) => environment?.EnableImageNotification\n  );\n\n  const { data, isLoading, isError } = useImageNotification(\n    environmentId,\n    resourceId,\n    resourceType,\n    nodeName,\n    enableImageNotificationQuery.data\n  );\n\n  if (!enableImageNotificationQuery.data || isError) {\n    return null;\n  }\n\n  if (!isBE) {\n    return null;\n  }\n\n  if (isLoading || !data) {\n    return (\n      <Icon\n        icon={Loader}\n        size=\"sm\"\n        className=\"!mr-1 animate-spin-slow align-middle\"\n      />\n    );\n  }\n\n  return (\n    <Icon icon={statusIcon(data)} size=\"sm\" className=\"!mr-1 align-middle\" />\n  );\n}\n","import angular from 'angular';\nimport 'moment';\nimport 'angular-sanitize';\nimport 'ng-file-upload';\nimport 'angular-messages';\nimport 'angular-resource';\nimport 'angular-utils-pagination';\nimport 'angular-local-storage';\nimport 'angular-json-tree';\nimport 'angular-loading-bar';\nimport 'angular-clipboard';\nimport 'angular-file-saver';\nimport 'angularjs-scroll-glue';\nimport 'angularjs-slider';\nimport 'bootstrap/dist/js/bootstrap.js';\nimport 'js-yaml/dist/js-yaml.js';\nimport 'angular-ui-bootstrap';\nimport 'angular-moment-picker';\nimport 'angulartics/dist/angulartics.min.js';\n\nwindow.angular = angular;\n","// extracted by mini-css-extract-plugin\nexport default {\"menuButton\":\"app-react-components-PageHeader-HeaderTitle-module__menu-button\",\"menuIcon\":\"app-react-components-PageHeader-HeaderTitle-module__menu-icon\",\"menuList\":\"app-react-components-PageHeader-HeaderTitle-module__menu-list\",\"menuLink\":\"app-react-components-PageHeader-HeaderTitle-module__menu-link\",\"arrowDown\":\"app-react-components-PageHeader-HeaderTitle-module__arrow-down\"};","var _module_exports = \"<agent-host-browser-react\\n  ng-if=\\\"$ctrl.files\\\"\\n  dataset=\\\"$ctrl.files\\\"\\n  is-root=\\\"$ctrl.isRoot()\\\"\\n  on-go-to-parent=\\\"($ctrl.goToParent)\\\"\\n  relative-path=\\\"$ctrl.getRelativePath()\\\"\\n  on-browse=\\\"($ctrl.browse)\\\"\\n  on-rename=\\\"($ctrl.renameFile)\\\"\\n  on-download=\\\"($ctrl.downloadFile)\\\"\\n  on-delete=\\\"($ctrl.confirmDeleteFile)\\\"\\n  on-file-selected-for-upload=\\\"($ctrl.onFileSelectedForUpload)\\\"\\n></agent-host-browser-react>\\n\";;\nvar path = 'app/agent/components/host-browser/hostBrowser.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\">\\n  <label for=\\\"target_node\\\" class=\\\"col-sm-1 control-label text-left\\\">Node</label>\\n  <div class=\\\"col-sm-11\\\">\\n    <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.model\\\" ng-options=\\\"agent.NodeName as agent.NodeName for agent in $ctrl.agents\\\"></select>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/agent/components/node-selector/nodeSelector.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<agent-volume-browser-react\\n  ng-if=\\\"$ctrl.files\\\"\\n  dataset=\\\"$ctrl.files\\\"\\n  is-root=\\\"$ctrl.state.path === '/'\\\"\\n  on-go-to-parent=\\\"($ctrl.up)\\\"\\n  on-browse=\\\"($ctrl.browse)\\\"\\n  on-rename=\\\"($ctrl.rename)\\\"\\n  on-download=\\\"($ctrl.download)\\\"\\n  on-delete=\\\"($ctrl.confirmDelete)\\\"\\n  is-upload-allowed=\\\"$ctrl.isUploadEnabled\\\"\\n  on-file-selected-for-upload=\\\"($ctrl.onFileSelectedForUpload)\\\"\\n  relative-path=\\\"$ctrl.state.path\\\"\\n></agent-volume-browser-react>\\n\";;\nvar path = 'app/agent/components/volume-browser/volumeBrowser.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <table class=\\\"table-bordered table-condensed table\\\">\\n    <tr>\\n      <td class=\\\"col-md-3\\\">\\n        <span>Name</span>\\n      </td>\\n      <td>\\n        <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.editModel.name\\\" disable-authorization=\\\"DockerContainerUpdate\\\">\\n          <option value=\\\"no\\\">None</option>\\n          <option value=\\\"on-failure\\\">On Failure</option>\\n          <option value=\\\"always\\\">Always</option>\\n          <option value=\\\"unless-stopped\\\">Unless Stopped</option>\\n        </select>\\n      </td>\\n      <td class=\\\"col-md-2\\\" authorization=\\\"DockerContainerUpdate\\\">\\n        <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"$ctrl.save()\\\">Update</button>\\n      </td>\\n    </tr>\\n    <tr ng-if=\\\"$ctrl.state.editModel.name === 'on-failure'\\\">\\n      <td class=\\\"col-md-3\\\">Maximum Retry Count</td>\\n      <td colspan=\\\"2\\\">\\n        <input type=\\\"number\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.editModel.maximumRetryCount\\\" />\\n      </td>\\n    </tr>\\n  </table>\\n</div>\\n\";;\nvar path = 'app/docker/components/container-restart-policy/container-restart-policy.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<rd-widget>\\n  <rd-widget-header icon=\\\"gauge\\\" title-text=\\\"Cluster information\\\"></rd-widget-header>\\n  <rd-widget-body classes=\\\"!px-5 !py-0\\\">\\n    <table class=\\\"table\\\">\\n      <tbody>\\n        <tr>\\n          <td>Nodes in the cluster</td>\\n          <td>{{ $ctrl.agentCount }}</td>\\n        </tr>\\n        <tr>\\n          <td colspan=\\\"2\\\">\\n            <div class=\\\"btn-group\\\" role=\\\"group\\\" aria-label=\\\"...\\\">\\n              <a ui-sref=\\\"docker.swarm.visualizer\\\" class=\\\"vertical-center\\\"><pr-icon icon=\\\"'trello'\\\" class-name=\\\"'icon'\\\"></pr-icon>Go to cluster visualizer</a>\\n            </div>\\n          </td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </rd-widget-body>\\n</rd-widget>\\n\";;\nvar path = 'app/docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfo.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Host overview'\\\" breadcrumbs=\\\"['Docker']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<host-details-panel\\n  host=\\\"$ctrl.hostDetails\\\"\\n  is-browse-enabled=\\\"$ctrl.isAgent && $ctrl.agentApiVersion > 1 && $ctrl.hostFeaturesEnabled\\\"\\n  browse-url=\\\"{{ $ctrl.browseUrl }}\\\"\\n></host-details-panel>\\n\\n<engine-details-panel engine=\\\"$ctrl.engineDetails\\\"></engine-details-panel>\\n\\n<devices-panel ng-if=\\\"$ctrl.isAgent && $ctrl.agentApiVersion > 1 && $ctrl.hostFeaturesEnabled\\\" devices=\\\"$ctrl.devices\\\"></devices-panel>\\n<disks-panel ng-if=\\\"$ctrl.isAgent && $ctrl.agentApiVersion > 1 && $ctrl.hostFeaturesEnabled\\\" disks=\\\"$ctrl.disks\\\"></disks-panel>\\n\\n<ng-transclude></ng-transclude>\\n\";;\nvar path = 'app/docker/components/host-overview/host-overview.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"code\\\" title-text=\\\"PCI Devices\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <thead>\\n            <tr>\\n              <th>Name</th>\\n              <th>Vendor</th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr ng-if=\\\"$ctrl.devices && $ctrl.devices.length\\\" ng-repeat=\\\"device in $ctrl.devices\\\">\\n              <td>{{ device.Name }}</td>\\n              <td>{{ device.Vendor }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.devices === undefined\\\">\\n              <td colspan=\\\"2\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.devices === null\\\">\\n              <td colspan=\\\"2\\\" class=\\\"text-muted text-center\\\"> Failed to load devices. </td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.devices.length === 0\\\">\\n              <td colspan=\\\"2\\\" class=\\\"text-muted text-center\\\"> No device available. </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/host-view-panels/devices-panel/devices-panel.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"code\\\" title-text=\\\"Physical Disks\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <thead>\\n            <tr>\\n              <th>Vendor</th>\\n              <th>Size</th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr ng-if=\\\"$ctrl.disks\\\" ng-repeat=\\\"disk in $ctrl.disks\\\">\\n              <td>{{ disk.Vendor }}</td>\\n              <td>{{ disk.Size | humansize }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.disks === undefined\\\">\\n              <td colspan=\\\"2\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.disks === null\\\">\\n              <td colspan=\\\"2\\\" class=\\\"text-muted text-center\\\"> Failed to load devices. </td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.disks.length === 0\\\">\\n              <td colspan=\\\"2\\\" class=\\\"text-muted text-center\\\"> No disks available. </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/host-view-panels/disks-panel/disks-panel.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"code\\\" title-text=\\\"Engine Details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Version</td>\\n              <td\\n                >{{ $ctrl.engine.releaseVersion }} <span ng-if=\\\"$ctrl.engine.apiVersion\\\">(API: {{ $ctrl.engine.apiVersion }})</span></td\\n              >\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.engine.rootDirectory\\\">\\n              <td>Root directory</td>\\n              <td>{{ $ctrl.engine.rootDirectory }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.engine.storageDriver\\\">\\n              <td>Storage Driver</td>\\n              <td>{{ $ctrl.engine.storageDriver }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.engine.loggingDriver\\\">\\n              <td>Logging Driver</td>\\n              <td>{{ $ctrl.engine.loggingDriver }}</td>\\n            </tr>\\n            <tr>\\n              <td>Volume Plugins</td>\\n              <td>{{ $ctrl.engine.volumePlugins | arraytostr: ', ' }}</td>\\n            </tr>\\n            <tr>\\n              <td>Network Plugins</td>\\n              <td>{{ $ctrl.engine.networkPlugins | arraytostr: ', ' }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.engine.engineLabels.length\\\">\\n              <td>Engine Labels</td>\\n              <td>{{ $ctrl.engine.engineLabels | labelsToStr: ', ' }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/host-view-panels/engine-details-panel/engine-details-panel.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"code\\\" title-text=\\\"Host Details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Hostname</td>\\n              <td>{{ $ctrl.host.name }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.host.os\\\">\\n              <td>OS Information</td>\\n              <td>{{ $ctrl.host.os.type }} {{ $ctrl.host.os.arch }} {{ $ctrl.host.os.name }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.host.kernelVersion\\\">\\n              <td>Kernel Version</td>\\n              <td>{{ $ctrl.host.kernelVersion }}</td>\\n            </tr>\\n            <tr>\\n              <td>Total CPU</td>\\n              <td>{{ $ctrl.host.totalCPU }}</td>\\n            </tr>\\n            <tr>\\n              <td>Total memory</td>\\n              <td>{{ $ctrl.host.totalMemory | humansize }}</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.isBrowseEnabled\\\">\\n              <td colspan=\\\"2\\\">\\n                <button class=\\\"btn btn-primary btn-sm\\\" title=\\\"Browse\\\" ui-sref=\\\"{{ $ctrl.browseUrl }}\\\"> Browse </button>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/host-view-panels/host-details-panel/host-details-panel.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"input-group input-group-sm\\\">\\n  <select name=\\\"nodeAvailability\\\" class=\\\"selectpicker form-control\\\" ng-model=\\\"$ctrl.availability\\\" ng-change=\\\"$ctrl.onChange()\\\">\\n    <option value=\\\"active\\\">Active</option>\\n    <option value=\\\"pause\\\">Pause</option>\\n    <option value=\\\"drain\\\">Drain</option>\\n  </select>\\n</div>\\n\";;\nvar path = 'app/docker/components/host-view-panels/node-availability-select/node-availability-select.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div ng-if=\\\"!$ctrl.labels.length\\\"> There are no labels for this node. </div>\\n\\n<div class=\\\"col-sm-12 form-inline !p-0\\\" ng-if=\\\"$ctrl.labels.length\\\">\\n  <div ng-repeat=\\\"label in $ctrl.labels\\\" class=\\\"mt-1\\\">\\n    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n      <span class=\\\"input-group-addon\\\">name</span>\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.key\\\" placeholder=\\\"e.g. com.example.foo\\\" ng-change=\\\"$ctrl.updateLabel(label)\\\" />\\n    </div>\\n    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n      <span class=\\\"input-group-addon\\\">value</span>\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" ng-change=\\\"$ctrl.updateLabel(label)\\\" />\\n    </div>\\n    <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.removeLabel($index)\\\">\\n      <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n    </button>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/host-view-panels/node-labels-table/node-labels-table.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"code\\\" title-text=\\\"Node Details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr ng-if=\\\"$ctrl.details.name\\\">\\n              <td>Node name</td>\\n              <td>{{ $ctrl.details.name }}</td>\\n            </tr>\\n            <tr>\\n              <td>Role</td>\\n              <td>{{ $ctrl.details.role }} {{ $ctrl.state.managerAddress }}</td>\\n            </tr>\\n            <tr>\\n              <td>Availability</td>\\n              <td>\\n                <node-availability-select\\n                  on-save=\\\"$ctrl.updateNodeAvailability(availability)\\\"\\n                  availability=\\\"$ctrl.details.availability\\\"\\n                  original-value=\\\"$ctrl.details.availability\\\"\\n                >\\n                </node-availability-select>\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Status</td>\\n              <td\\n                ><span class=\\\"label label-{{ $ctrl.details.status | nodestatusbadge }}\\\">{{ $ctrl.details.status }}</span></td\\n              >\\n            </tr>\\n            <tr>\\n              <td>\\n                <div class=\\\"nopadding\\\">\\n                  <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"$ctrl.addLabel(node)\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> label </a>\\n                </div>\\n                Node Labels\\n              </td>\\n              <td></td>\\n            </tr>\\n            <tr>\\n              <td colspan=\\\"2\\\">\\n                <node-labels-table labels=\\\"$ctrl.details.nodeLabels\\\" on-changed-labels=\\\"$ctrl.updateNodeLabels(labels)\\\"></node-labels-table>\\n              </td>\\n            </tr>\\n            <tr>\\n              <td colspan=\\\"2\\\">\\n                <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n                  <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n                    <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!$ctrl.state.hasChanges\\\" ng-click=\\\"$ctrl.saveChanges()\\\"> Apply changes </button>\\n                    <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n                      <span class=\\\"caret\\\"></span>\\n                    </button>\\n                    <ul class=\\\"dropdown-menu\\\">\\n                      <li><a ng-click=\\\"$ctrl.cancelChanges()\\\">Reset changes</a></li>\\n                    </ul>\\n                  </div>\\n                </div>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\" ng-if=\\\"$ctrl.pullRateLimits\\\">\\n  <div class=\\\"col-sm-12 small\\\">\\n    <div ng-if=\\\"$ctrl.pullRateLimits.remaining > 0\\\" class=\\\"text-muted vertical-center\\\">\\n      <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      <span ng-if=\\\"$ctrl.isAuthenticated\\\">\\n        You are currently using a free account to pull images from DockerHub and will be limited to 200 pulls every 6 hours. Remaining pulls:\\n        <span style=\\\"font-weight: bold\\\">{{ $ctrl.pullRateLimits.remaining }}/{{ $ctrl.pullRateLimits.limit }}</span>\\n      </span>\\n      <span ng-if=\\\"!$ctrl.isAuthenticated\\\">\\n        <span ng-if=\\\"$ctrl.isAdmin\\\">\\n          You are currently using an anonymous account to pull images from DockerHub and will be limited to 100 pulls every 6 hours. You can configure DockerHub authentication in\\n          the\\n          <a ui-sref=\\\"portainer.registries\\\">Registries View</a>. Remaining pulls:\\n          <span style=\\\"font-weight: bold\\\">{{ $ctrl.pullRateLimits.remaining }}/{{ $ctrl.pullRateLimits.limit }}</span>\\n        </span>\\n        <span ng-if=\\\"!$ctrl.isAdmin\\\">\\n          You are currently using an anonymous account to pull images from DockerHub and will be limited to 100 pulls every 6 hours. Contact your administrator to configure\\n          DockerHub authentication. Remaining pulls: <span style=\\\"font-weight: bold\\\">{{ $ctrl.pullRateLimits.remaining }}/{{ $ctrl.pullRateLimits.limit }}</span>\\n        </span>\\n      </span>\\n    </div>\\n    <div ng-if=\\\"$ctrl.pullRateLimits.remaining <= 0\\\" class=\\\"text-warning vertical-center\\\">\\n      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n      <span ng-if=\\\"$ctrl.isAuthenticated\\\">\\n        Your authorized pull count quota as a free user is now exceeded.\\n        <span ng-transclude=\\\"rateLimitExceeded\\\">You will not be able to pull any image from the DockerHub registry.</span>\\n      </span>\\n      <span ng-if=\\\"!$ctrl.isAuthenticated\\\">\\n        Your authorized pull count quota as an anonymous user is now exceeded.\\n        <span ng-transclude=\\\"rateLimitExceeded\\\">You will not be able to pull any image from the DockerHub registry.</span>\\n      </span>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/imageRegistry/por-image-registry-rate-limits.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<!-- use registry -->\\n<div class=\\\"row\\\">\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.model.UseRegistry\\\">\\n    <label for=\\\"image_registry\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\" ng-class=\\\"$ctrl.labelClass\\\"> Registry </label>\\n    <div ng-class=\\\"$ctrl.inputClass\\\" class=\\\"col-sm-8\\\">\\n      <select\\n        ng-options=\\\"registry as registry.Name for registry in $ctrl.registries track by registry.Id\\\"\\n        ng-model=\\\"$ctrl.model.Registry\\\"\\n        id=\\\"image_registry\\\"\\n        class=\\\"form-control\\\"\\n        data-cy=\\\"component-registrySelect\\\"\\n      ></select>\\n    </div>\\n  </div>\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.model.UseRegistry\\\">\\n    <label for=\\\"image_name\\\" ng-class=\\\"$ctrl.labelClass\\\" class=\\\"control-label col-sm-3 col-lg-2 required text-left\\\">Image</label>\\n    <div ng-class=\\\"$ctrl.inputClass\\\" class=\\\"col-sm-8\\\">\\n      <div class=\\\"input-group\\\">\\n        <span class=\\\"input-group-addon\\\" id=\\\"registry-name\\\">{{ $ctrl.displayedRegistryURL() }}</span>\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          aria-describedby=\\\"registry-name\\\"\\n          uib-typeahead=\\\"image for image in $ctrl.availableImages | filter:$viewValue | limitTo:5\\\"\\n          ng-model=\\\"$ctrl.model.Image\\\"\\n          name=\\\"image_name\\\"\\n          placeholder=\\\"e.g. my-image:my-tag\\\"\\n          ng-change=\\\"$ctrl.onImageChange()\\\"\\n          required\\n          data-cy=\\\"component-imageInput\\\"\\n        />\\n        <span ng-if=\\\"$ctrl.isDockerHubRegistry()\\\" class=\\\"input-group-btn\\\">\\n          <a\\n            href=\\\"https://hub.docker.com/search?type=image&q={{ $ctrl.model.Image | trimshasum | trimversiontag }}\\\"\\n            class=\\\"btn btn-default vertical-center\\\"\\n            title=\\\"Search image on Docker Hub\\\"\\n            target=\\\"_blank\\\"\\n          >\\n            <pr-icon icon=\\\"'svg-docker'\\\" size=\\\"'md'\\\"></pr-icon> Search\\n          </a>\\n        </span>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- ! use registry -->\\n  <!-- don't use registry -->\\n  <div ng-if=\\\"!$ctrl.model.UseRegistry\\\">\\n    <div class=\\\"form-group\\\">\\n      <span class=\\\"small\\\">\\n        <p class=\\\"text-muted ml-4\\\"> When using advanced mode, image and repository <b>must be</b> publicly available. </p>\\n      </span>\\n      <label for=\\\"image_name\\\" ng-class=\\\"$ctrl.labelClass\\\" class=\\\"control-label col-sm-3 col-lg-2 required text-left\\\">Image </label>\\n      <div ng-class=\\\"$ctrl.inputClass\\\" class=\\\"col-sm-8\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.model.Image\\\" name=\\\"image_name\\\" placeholder=\\\"e.g. registry:port/my-image:my-tag\\\" required />\\n      </div>\\n    </div>\\n  </div>\\n  <!-- ! don't use registry -->\\n  <!-- info message -->\\n  <div class=\\\"form-group\\\" ng-show=\\\"$ctrl.form.image_name.$invalid\\\">\\n    <div class=\\\"small\\\">\\n      <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n      <div class=\\\"col-sm-8\\\" ng-messages=\\\"$ctrl.form.image_name.$error\\\">\\n        <p class=\\\"text-warning vertical-center\\\" ng-message=\\\"required\\\">\\n          <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class=\\\"vertical-center\\\"></pr-icon> Image name is required.\\n          <span ng-if=\\\"$ctrl.canPull\\\">Tag must be specified otherwise Portainer will pull all tags associated to the image.</span>\\n        </p>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- ! info message -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button type=\\\"button\\\" class=\\\"btn btn-link btn-sm vertical-center !ml-0 p-0 hover:no-underline\\\" ng-if=\\\"!$ctrl.model.UseRegistry\\\" ng-click=\\\"$ctrl.model.UseRegistry = true;\\\">\\n        <pr-icon icon=\\\"'database'\\\"> </pr-icon> Simple mode\\n      </button>\\n      <button type=\\\"button\\\" class=\\\"btn btn-link btn-sm vertical-center !ml-0 p-0 hover:no-underline\\\" ng-if=\\\"$ctrl.model.UseRegistry\\\" ng-click=\\\"$ctrl.model.UseRegistry = false;\\\">\\n        <pr-icon icon=\\\"'globe'\\\"> </pr-icon> Advanced mode\\n      </button>\\n    </div>\\n  </div>\\n\\n  <div ng-transclude></div>\\n\\n  <por-image-registry-rate-limits\\n    ng-if=\\\"$ctrl.checkRateLimits && $ctrl.isDockerHubRegistry()\\\"\\n    endpoint=\\\"$ctrl.endpoint\\\"\\n    registry=\\\"$ctrl.model.Registry\\\"\\n    set-validity=\\\"$ctrl.setValidity\\\"\\n    is-authenticated=\\\"$ctrl.model.Registry.Authentication\\\"\\n    is-admin=\\\"$ctrl.isAdmin\\\"\\n    registry-id=\\\"$ctrl.model.Registry.Id\\\"\\n  >\\n  </por-image-registry-rate-limits>\\n</div>\\n\";;\nvar path = 'app/docker/components/imageRegistry/por-image-registry.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"file\\\" title-text=\\\"Log viewer settings\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-2'\\\"\\n                checked=\\\"$ctrl.state.logCollection\\\"\\n                label=\\\"'Auto-refresh logs'\\\"\\n                tooltip=\\\"'Disabling this option allows you to pause the log collection process and the auto-scrolling.'\\\"\\n                on-change=\\\"($ctrl.handleLogsCollectionChange)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field label-class=\\\"'col-sm-2'\\\" checked=\\\"$ctrl.state.wrapLines\\\" label=\\\"'Wrap lines'\\\" on-change=\\\"($ctrl.handleLogsWrapLinesChange)\\\"></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-2'\\\"\\n                checked=\\\"$ctrl.displayTimestamps\\\"\\n                label=\\\"'Display timestamps'\\\"\\n                on-change=\\\"($ctrl.handleDisplayTimestampsChange)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"logs_since\\\" class=\\\"col-sm-2 control-label text-left\\\"> Fetch </label>\\n            <div class=\\\"col-sm-2\\\">\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.sinceTimestamp\\\" id=\\\"logs_since\\\">\\n                <option selected value=\\\"\\\">All logs</option>\\n                <option ng-repeat=\\\"dt in $ctrl.state.availableSinceDatetime\\\" ng-value=\\\"dt.value\\\" title=\\\"{{ dt.value }}\\\">{{ dt.desc }}</option>\\n              </select>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"logs_search\\\" class=\\\"col-sm-2 control-label text-left\\\"> Search </label>\\n            <div class=\\\"col-sm-8\\\">\\n              <input class=\\\"form-control\\\" type=\\\"text\\\" name=\\\"logs_search\\\" ng-model=\\\"$ctrl.state.search\\\" ng-change=\\\"$ctrl.state.selectedLines.length = 0;\\\" placeholder=\\\"Filter...\\\" />\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"lines_count\\\" class=\\\"col-sm-2 control-label text-left\\\"> Lines </label>\\n            <div class=\\\"col-sm-8\\\">\\n              <input class=\\\"form-control\\\" type=\\\"number\\\" name=\\\"lines_count\\\" ng-model=\\\"$ctrl.lineCount\\\" placeholder=\\\"Enter no of lines...\\\" />\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.copySupported\\\">\\n            <label class=\\\"col-sm-2 control-label text-left\\\"> Actions </label>\\n            <div class=\\\"col-sm-10\\\">\\n              <button class=\\\"btn btn-primary btn-sm\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.downloadLogs()\\\" style=\\\"margin-left: 0\\\"\\n                ><pr-icon icon=\\\"'download'\\\"></pr-icon> Download logs</button\\n              >\\n              <button\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-click=\\\"$ctrl.copy()\\\"\\n                ng-disabled=\\\"($ctrl.state.filteredLogs.length === 1 && !$ctrl.state.filteredLogs[0].line) || !$ctrl.state.filteredLogs.length\\\"\\n                ><pr-icon icon=\\\"'copy'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Copy</button\\n              >\\n              <button\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-click=\\\"$ctrl.copySelection()\\\"\\n                ng-disabled=\\\"($ctrl.state.filteredLogs.length === 1 && !$ctrl.state.filteredLogs[0].line) || !$ctrl.state.filteredLogs.length || !$ctrl.state.selectedLines.length\\\"\\n                ><pr-icon icon=\\\"'copy'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Copy selected lines</button\\n              >\\n              <button class=\\\"btn btn-primary btn-sm\\\" ng-click=\\\"$ctrl.clearSelection()\\\" ng-disabled=\\\"$ctrl.state.selectedLines.length === 0\\\"\\n                ><pr-icon icon=\\\"'x'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Unselect</button\\n              >\\n              <span>\\n                <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n              </span>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\" style=\\\"height: 54%\\\">\\n  <div class=\\\"col-sm-12\\\" style=\\\"height: 100%\\\">\\n    <pre ng-class=\\\"{ wrap_lines: $ctrl.state.wrapLines }\\\" class=\\\"log_viewer\\\" scroll-glue=\\\"$ctrl.state.autoScroll\\\" force-glue>\\n      <div ng-repeat=\\\"log in $ctrl.state.filteredLogs = ($ctrl.data | filter:{ 'line': $ctrl.state.search }) track by $index\\\" class=\\\"line\\\" ng-if=\\\"log.line\\\"><p class=\\\"inner_line\\\" ng-click=\\\"$ctrl.selectLine(log.line)\\\" ng-class=\\\"{ 'line_selected': $ctrl.state.selectedLines.indexOf(log.line) > -1 }\\\"><span ng-repeat=\\\"span in log.spans track by $index\\\" ng-style=\\\"{ 'color': span.fgColor, 'background-color': span.bgColor, 'font-weight': span.fontWeight }\\\">{{ span.text }}</span></p></div>\\n      <div ng-if=\\\"!$ctrl.state.filteredLogs.length\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\">No log line matching the '{{ $ctrl.state.search }}' filter</p></div>\\n      <div ng-if=\\\"$ctrl.state.filteredLogs.length === 1 && !$ctrl.state.filteredLogs[0].line\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\">No logs available</p></div>\\n    </pre>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/components/log-viewer/logViewer.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Macvlan configuration </div>\\n\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n      <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      To create a MACVLAN network you need to create a configuration, then create the network from this configuration.\\n    </span>\\n  </div>\\n\\n  <box-selector slim=\\\"true\\\" options=\\\"$ctrl.options\\\" value=\\\"$ctrl.data.Scope\\\" on-change=\\\"($ctrl.onChangeScope)\\\"></box-selector>\\n\\n  <ng-form name=\\\"macvlanConfigurationForm\\\">\\n    <!-- configuration-inputs -->\\n    <div ng-show=\\\"$ctrl.data.Scope === 'local'\\\">\\n      <!-- network-card-input -->\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"network_card\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Parent network card</label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control\\\"\\n            name=\\\"network_card\\\"\\n            ng-model=\\\"$ctrl.data.ParentNetworkCard\\\"\\n            placeholder=\\\"e.g. eth0 or ens160 ...\\\"\\n            ng-required=\\\"$ctrl.data.Scope === 'local' && !$ctrl.data.ParentNetworkCard\\\"\\n          />\\n        </div>\\n      </div>\\n      <div class=\\\"form-group\\\" ng-show=\\\"macvlanConfigurationForm.network_card.$invalid\\\">\\n        <div class=\\\"col-sm-12 small text-warning\\\">\\n          <div ng-messages=\\\"macvlanConfigurationForm.network_card.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Parent network card must be specified.</p>\\n          </div>\\n        </div>\\n      </div>\\n      <!-- network-card-input -->\\n      <!-- nodes-selector -->\\n      <div ng-if=\\\"$ctrl.applicationState.endpoint.mode.agentProxy && $ctrl.applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\\\">\\n        <macvlan-nodes-selector\\n          dataset=\\\"$ctrl.nodes\\\"\\n          is-ip-column-visible=\\\"$ctrl.applicationState.endpoint.apiVersion >= 1.25\\\"\\n          have-access-to-node=\\\"$ctrl.isAdmin\\\"\\n          value=\\\"$ctrl.data.DatatableState.selectedItems\\\"\\n          on-change=\\\"($ctrl.onChangeSelectedNodes)\\\"\\n        ></macvlan-nodes-selector>\\n\\n        <div class=\\\"form-group\\\" ng-show=\\\"macvlanConfigurationForm.node_selector.$invalid\\\">\\n          <div class=\\\"col-sm-12 small text-warning\\\">\\n            <div ng-messages=\\\"macvlanConfigurationForm.node_selector.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> At least one node must be selected.</p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n      <!-- !nodes-selector -->\\n    </div>\\n    <!-- configuration-inputs -->\\n    <!-- deploy-inputs -->\\n    <div ng-show=\\\"$ctrl.data.Scope === 'swarm'\\\">\\n      <!-- configuration-selector -->\\n      <!-- network-input -->\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"config_network\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Configuration</label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <select\\n            class=\\\"form-control\\\"\\n            ng-options=\\\"net.Name for net in $ctrl.availableNetworks\\\"\\n            ng-model=\\\"$ctrl.data.SelectedNetworkConfig\\\"\\n            name=\\\"config_network\\\"\\n            ng-required=\\\"$ctrl.requiredConfigSelection()\\\"\\n          >\\n            <option selected disabled hidden value=\\\"\\\">Select a network</option>\\n          </select>\\n        </div>\\n      </div>\\n      <!-- !network-input -->\\n      <div class=\\\"form-group\\\" ng-show=\\\"macvlanConfigurationForm.config_network.$invalid\\\">\\n        <div class=\\\"col-sm-12 small text-warning\\\">\\n          <div ng-messages=\\\"macvlanConfigurationForm.config_network.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Select a configuration network.</p>\\n          </div>\\n        </div>\\n      </div>\\n      <!-- !configuration-selector -->\\n    </div>\\n    <!-- deploy-inputs -->\\n  </ng-form>\\n</div>\\n\";;\nvar path = 'app/docker/components/network-macvlan-form/networkMacvlanForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<!-- CIFS-settings -->\\n<div ng-show=\\\"$ctrl.data.useCIFS\\\">\\n  <ng-form class=\\\"form-horizontal\\\" name=\\\"cifsInformationForm\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\"> CIFS Settings </div>\\n    <!-- address-input -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"cifs_address\\\" class=\\\"col-sm-2 col-md-1 control-label required text-left\\\">Address</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.serverAddress\\\" name=\\\"cifs_address\\\" placeholder=\\\"e.g. my.cifs-server.com OR xxx.xxx.xxx.xxx\\\" required />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"cifsInformationForm.cifs_address.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"cifsInformationForm.cifs_address.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !address-input -->\\n    <!-- mount-point-input -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"cifs_share\\\" class=\\\"col-sm-2 col-md-1 control-label required text-left\\\">Share</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.share\\\" name=\\\"cifs_share\\\" placeholder=\\\"e.g. /myshare\\\" required />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"cifsInformationForm.cifs_share.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"cifsInformationForm.cifs_share.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !mount-point-input -->\\n    <!-- version-input -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"cifs_version\\\" class=\\\"col-sm-2 col-md-1 control-label text-left\\\">CIFS Version</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.version\\\" name=\\\"cifs_version\\\" ng-options=\\\"version for version in $ctrl.data.versions\\\" required></select>\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"cifsInformationForm.cifs_version.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"cifsInformationForm.cifs_version.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !version-input -->\\n    <!-- username -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"cifs_username\\\" class=\\\"col-sm-2 col-md-1 control-label required text-left\\\">Username</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.username\\\" name=\\\"cifs_username\\\" required />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"cifsInformationForm.cifs_username.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"cifsInformationForm.cifs_username.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !username -->\\n    <!-- password -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"cifs_password\\\" class=\\\"col-sm-2 col-md-1 control-label text-left\\\">Password</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.password\\\" name=\\\"cifs_password\\\" required />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"cifsInformationForm.password.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"cifsInformationForm.cifs_password.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !password -->\\n  </ng-form>\\n</div>\\n<!-- !CIFS-settings -->\\n\";;\nvar path = 'app/docker/components/volumesCIFSForm/volumesCifsForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<!-- NFS-settings -->\\n<div ng-show=\\\"$ctrl.data.useNFS\\\">\\n  <ng-form class=\\\"form-horizontal\\\" name=\\\"nfsInformationForm\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\"> NFS Settings </div>\\n    <!-- address-input -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"nfs_address\\\" class=\\\"col-sm-2 col-md-1 control-label required text-left\\\">Address</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.serverAddress\\\" name=\\\"nfs_address\\\" placeholder=\\\"e.g. my.nfs-server.com OR xxx.xxx.xxx.xxx\\\" required />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"nfsInformationForm.nfs_address.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"nfsInformationForm.nfs_address.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !address-input -->\\n    <!-- version-input -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"nfs_version\\\" class=\\\"col-sm-2 col-md-1 control-label text-left\\\">NFS Version</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.version\\\" name=\\\"nfs_version\\\" ng-options=\\\"version for version in $ctrl.data.versions\\\" required></select>\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"nfsInformationForm.nfs_version.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"nfsInformationForm.nfs_version.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !version-input -->\\n    <!-- mount-point-input -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"nfs_mountpoint\\\" class=\\\"col-sm-2 col-md-1 control-label required text-left\\\">Mount point</label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          ng-model=\\\"$ctrl.data.mountPoint\\\"\\n          name=\\\"nfs_mountpoint\\\"\\n          placeholder=\\\"e.g. /export/share, :/export/share, address:/export/share, /share, :/share or address:/share\\\"\\n          required\\n        />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"nfsInformationForm.nfs_mountpoint.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"nfsInformationForm.nfs_mountpoint.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !mount-point-input -->\\n    <!-- options-input -->\\n    <div class=\\\"form-group col-md-12\\\">\\n      <label for=\\\"nfs_options\\\" class=\\\"col-sm-2 col-md-1 control-label text-left\\\"\\n        >Options\\n        <portainer-tooltip message=\\\"'Comma separated list of options'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-10 col-md-11\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.data.options\\\" name=\\\"nfs_options\\\" placeholder=\\\"e.g. rw,noatime,tcp ...\\\" required />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group col-md-12\\\" ng-show=\\\"nfsInformationForm.nfs_options.$invalid\\\">\\n      <div class=\\\"small text-warning\\\">\\n        <div ng-messages=\\\"nfsInformationForm.nfs_options.$error\\\">\\n          <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !options-input -->\\n  </ng-form>\\n</div>\\n<!-- !NFS-settings -->\\n\";;\nvar path = 'app/docker/components/volumesNFSForm/volumesnfsForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Configs list'\\\" breadcrumbs=\\\"['Configs']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<docker-configs-datatable dataset=\\\"ctrl.configs\\\" on-remove-click=\\\"(ctrl.removeAction)\\\" on-refresh=\\\"(ctrl.getConfigs)\\\"></docker-configs-datatable>\\n\";;\nvar path = 'app/docker/views/configs/configs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create config'\\\" breadcrumbs=\\\"[{label:'Configs', link:'docker.configs'}, 'Add config']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"config_name\\\" class=\\\"col-sm-1 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-11\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"ctrl.formValues.Name\\\" id=\\\"config_name\\\" placeholder=\\\"e.g. myConfig\\\" />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- config-data -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\" ng-if=\\\"ctrl.formValues.displayCodeEditor\\\">\\n              <web-editor-form\\n                identifier=\\\"config-creation-editor\\\"\\n                placeholder=\\\"Define or paste the content of your config here\\\"\\n                yml=\\\"false\\\"\\n                on-change=\\\"(ctrl.editorUpdate)\\\"\\n                value=\\\"ctrl.formValues.ConfigContent\\\"\\n              ></web-editor-form>\\n            </div>\\n          </div>\\n          <!-- !config-data -->\\n          <!-- labels -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12 mt-1\\\">\\n              <label class=\\\"control-label space-right text-left\\\">Labels</label>\\n              <span class=\\\"label label-default interactive vertical-center space-left\\\" ng-click=\\\"ctrl.addLabel()\\\"> <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add label </span>\\n            </div>\\n            <!-- labels-input-list -->\\n            <div class=\\\"col-sm-12 form-inline mt-2\\\">\\n              <div ng-repeat=\\\"label in ctrl.formValues.Labels\\\" class=\\\"mt-1\\\">\\n                <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">name</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.name\\\" placeholder=\\\"e.g. com.example.foo\\\" />\\n                </div>\\n                <div class=\\\"input-group col-sm-6 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">value</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" />\\n                  <span class=\\\"input-group-btn\\\">\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"ctrl.removeLabel($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !labels-input-list -->\\n          </div>\\n          <!-- !labels-->\\n          <!-- access-control -->\\n          <por-access-control-form form-data=\\\"ctrl.formValues.AccessControlData\\\"></por-access-control-form>\\n          <!-- !access-control -->\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!ctrl.formValues.Name\\\" ng-click=\\\"ctrl.create()\\\">Create config</button>\\n              <span class=\\\"text-danger\\\" ng-if=\\\"ctrl.state.formValidationError\\\" style=\\\"margin-left: 5px\\\">{{ ctrl.state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/configs/create/createconfig.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Config details'\\\" breadcrumbs=\\\"[{label:'Configs', link:'docker.configs'}, config.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"clipboard\\\" title-text=\\\"Config details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Name</td>\\n              <td>{{ config.Name }}</td>\\n            </tr>\\n            <tr>\\n              <td>ID</td>\\n              <td>\\n                {{ config.Id }}\\n                <button authorization=\\\"DockerConfigDelete\\\" class=\\\"btn btn-xs btn-dangerlight\\\" ng-click=\\\"removeConfig(config.Id)\\\"\\n                  ><pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Delete this config</button\\n                >\\n                <button authorization=\\\"DockerConfigCreate\\\" class=\\\"btn btn-xs btn-secondary\\\" ui-sref=\\\"docker.configs.new({id: config.Id})\\\"\\n                  ><pr-icon icon=\\\"'copy'\\\"></pr-icon>Clone config</button\\n                >\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Created</td>\\n              <td>{{ config.CreatedAt | getisodate }}</td>\\n            </tr>\\n            <tr>\\n              <td>Last updated</td>\\n              <td>{{ config.UpdatedAt | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!(config.Labels | emptyobject)\\\">\\n              <td>Labels</td>\\n              <td>\\n                <table class=\\\"table-bordered table-condensed table\\\">\\n                  <tr ng-repeat=\\\"(k, v) in config.Labels\\\">\\n                    <td>{{ k }}</td>\\n                    <td>{{ v }}</td>\\n                  </tr>\\n                </table>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<!-- access-control-panel -->\\n<access-control-panel\\n  ng-if=\\\"config\\\"\\n  resource-id=\\\"config.Id\\\"\\n  resource-control=\\\"config.ResourceControl\\\"\\n  resource-type=\\\"resourceType\\\"\\n  on-update-success=\\\"(onUpdateResourceControlSuccess)\\\"\\n  environment-id=\\\"endpoint.Id\\\"\\n>\\n</access-control-panel>\\n<!-- !access-control-panel -->\\n\\n<div class=\\\"row\\\" ng-if=\\\"config\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"code\\\" title-text=\\\"Config content\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <code-editor identifier=\\\"config-editor\\\" yml=\\\"false\\\" read-only=\\\"true\\\" value=\\\"config.Data\\\"></code-editor>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/configs/edit/config.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Container console'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Containers', link:'docker.containers' },\\n    {\\n      label:(container.Name | trimcontainername),\\n      link: 'docker.containers.container',\\n      linkParams: { id: container.Id },\\n    }, 'Console']\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\" ng-init=\\\"autoconnectAttachView()\\\" ng-show=\\\"loaded\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"terminal\\\" title-text=\\\"Attach\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <div class=\\\"small text-warning\\\" ng-if=\\\"!container.Config.OpenStdin\\\">\\n          <p>\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n            The interactive-flag is not set. You might not be able to use the console properly.\\n          </p>\\n        </div>\\n\\n        <div class=\\\"small text-warning\\\" ng-if=\\\"!container.Config.Tty\\\">\\n          <p>\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n            The TTY-flag is not set. You might not be able to use the console properly.\\n          </p>\\n        </div>\\n\\n        <div class=\\\"small text-warning\\\" ng-hide=\\\"container.State.Running\\\">\\n          <p>\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n            The container is not running.\\n          </p>\\n        </div>\\n\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"btn btn-primary\\\"\\n          ng-disabled=\\\"state === states.connecting || !container.State.Running\\\"\\n          ng-click=\\\"state == states.disconnected ? connectAttach() : disconnect()\\\"\\n        >\\n          <span ng-show=\\\"state === states.disconnected\\\">Attach to Container</span>\\n          <span ng-show=\\\"state === states.connected\\\">Detach</span>\\n          <span ng-show=\\\"state === states.connecting\\\">Attaching...</span>\\n        </button>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <div id=\\\"terminal-container\\\" class=\\\"terminal-container\\\"></div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/containers/console/attach.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Container console'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Containers', link:'docker.containers' },\\n    {\\n      label:(container.Name | trimcontainername),\\n      link: 'docker.containers.container',\\n      linkParams: { id: container.Id },\\n    }, 'Console']\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\" ng-init=\\\"initView()\\\" ng-show=\\\"loaded\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"terminal\\\" title-text=\\\"Execute\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div ng-if=\\\"state === states.disconnected\\\">\\n            <!-- command-list -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"command\\\" class=\\\"col-lg-1 col-sm-2 control-label text-left\\\">Command</label>\\n              <div class=\\\"col-lg-11 col-sm-10\\\">\\n                <div class=\\\"input-group\\\" ng-if=\\\"!formValues.isCustomCommand\\\">\\n                  <span class=\\\"input-group-addon\\\">\\n                    <pr-icon ng-if=\\\"imageOS == 'linux'\\\" icon=\\\"'svg-linux'\\\"></pr-icon>\\n                    <pr-icon ng-if=\\\"imageOS == 'windows'\\\" icon=\\\"'layout-grid'\\\"></pr-icon>\\n                  </span>\\n                  <select class=\\\"form-control\\\" ng-model=\\\"formValues.command\\\" id=\\\"command\\\">\\n                    <option value=\\\"ash\\\" ng-if=\\\"imageOS == 'linux'\\\">/bin/ash</option>\\n                    <option value=\\\"bash\\\" ng-if=\\\"imageOS == 'linux'\\\">/bin/bash</option>\\n                    <option value=\\\"dash\\\" ng-if=\\\"imageOS == 'linux'\\\">/bin/dash</option>\\n                    <option value=\\\"sh\\\" ng-if=\\\"imageOS == 'linux'\\\">/bin/sh</option>\\n                    <option value=\\\"powershell\\\" ng-if=\\\"imageOS == 'windows'\\\">powershell</option>\\n                    <option value=\\\"cmd.exe\\\" ng-if=\\\"imageOS == 'windows'\\\">cmd.exe</option>\\n                    <option ng-repeat=\\\"command in containerCommands\\\" value=\\\"{{ command.command }}\\\">{{ command.title }}: {{ command.command }}</option>\\n                  </select>\\n                </div>\\n                <input class=\\\"form-control\\\" ng-if=\\\"formValues.isCustomCommand\\\" type=\\\"text\\\" name=\\\"custom-command\\\" ng-model=\\\"formValues.customCommand\\\" placeholder=\\\"e.g. ps aux\\\" />\\n              </div>\\n            </div>\\n            <!-- !command-list -->\\n            <div class=\\\"form-group col-lg-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-1'\\\"\\n                checked=\\\"formValues.isCustomCommand\\\"\\n                label=\\\"'Use custom command'\\\"\\n                on-change=\\\"(handleIsCustomCommandChange)\\\"\\n              ></por-switch-field>\\n            </div>\\n            <div class=\\\"form-group\\\">\\n              <label class=\\\"col-lg-1 col-sm-2 control-label text-left\\\">\\n                User\\n                <portainer-tooltip message=\\\"'Format is one of: user, user:group, uid or uid:gid'\\\"></portainer-tooltip>\\n              </label>\\n              <div class=\\\"col-lg-11 col-sm-10\\\">\\n                <input class=\\\"form-control\\\" type=\\\"text\\\" ng-model=\\\"formValues.user\\\" placeholder=\\\"root\\\" />\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-disabled=\\\"!container.State.Running\\\" ng-click=\\\"connectExec()\\\">\\n                  <span>Connect</span>\\n                </button>\\n                <span class=\\\"small text-danger vertical-center\\\" ng-hide=\\\"container.State.Running\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\"></pr-icon>\\n                  The container is not running.\\n                </span>\\n              </div>\\n            </div>\\n          </div>\\n          <div ng-if=\\\"state !== states.disconnected\\\">\\n            <label\\n              >Exec into container as <code class=\\\"!text-sm align-baseline\\\">{{ ::formValues.user || 'default user' }}</code> using command\\n              <code class=\\\"!text-sm align-baseline\\\">{{ formValues.isCustomCommand ? formValues.customCommand : formValues.command }}</code>\\n              <terminal-tooltip class=\\\"align-sub\\\"> </terminal-tooltip>\\n            </label>\\n            <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"disconnect()\\\">\\n              <span ng-show=\\\"state === states.connected\\\">Disconnect</span>\\n              <span ng-show=\\\"state === states.connecting\\\">Connecting...</span>\\n            </button>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <div id=\\\"terminal-container\\\" class=\\\"terminal-container\\\"></div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/containers/console/exec.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Container details'\\\" breadcrumbs=\\\"[{label:'Containers', link:'docker.containers'}, (container.Name | trimcontainername)]\\\"> </page-header>\\n\\n<div\\n  class=\\\"row\\\"\\n  authorization=\\\"DockerContainerStart, DockerContainerStop, DockerContainerKill, DockerContainerRestart, DockerContainerPause, DockerContainerUnpause, DockerContainerDelete, DockerContainerCreate\\\"\\n>\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"settings\\\" title-text=\\\"Actions\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"padding\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\" aria-label=\\\"...\\\">\\n          <button authorization=\\\"DockerContainerStart\\\" class=\\\"btn btn-light btn-sm\\\" ng-click=\\\"start()\\\" ng-disabled=\\\"container.State.Running || container.IsPortainer\\\">\\n            <pr-icon icon=\\\"'play'\\\"></pr-icon>\\n            Start\\n          </button>\\n          <button authorization=\\\"DockerContainerStop\\\" class=\\\"btn btn-light btn-sm\\\" ng-click=\\\"stop()\\\" ng-disabled=\\\"!container.State.Running || container.IsPortainer\\\">\\n            <pr-icon icon=\\\"'square'\\\"></pr-icon>\\n            Stop\\n          </button>\\n          <button authorization=\\\"DockerContainerKill\\\" class=\\\"btn btn-light btn-sm\\\" ng-click=\\\"kill()\\\" ng-disabled=\\\"!container.State.Running || container.IsPortainer\\\">\\n            <pr-icon icon=\\\"'bomb'\\\"></pr-icon>\\n            Kill\\n          </button>\\n          <button authorization=\\\"DockerContainerRestart\\\" class=\\\"btn btn-light btn-sm\\\" ng-click=\\\"restart()\\\" ng-disabled=\\\"!container.State.Running || container.IsPortainer\\\">\\n            <pr-icon icon=\\\"'refresh-cw'\\\"></pr-icon>\\n            Restart</button\\n          >\\n          <button\\n            authorization=\\\"DockerContainerPause\\\"\\n            class=\\\"btn btn-light btn-sm\\\"\\n            ng-click=\\\"pause()\\\"\\n            ng-disabled=\\\"!container.State.Running || container.State.Paused || container.IsPortainer\\\"\\n          >\\n            <pr-icon icon=\\\"'pause'\\\"></pr-icon>\\n            Pause</button\\n          >\\n          <button authorization=\\\"DockerContainerUnpause\\\" class=\\\"btn btn-light btn-sm\\\" ng-click=\\\"unpause()\\\" ng-disabled=\\\"!container.State.Paused || container.IsPortainer\\\">\\n            <pr-icon icon=\\\"'play'\\\"></pr-icon>\\n            Resume</button\\n          >\\n          <button authorization=\\\"DockerContainerDelete\\\" class=\\\"btn btn-dangerlight btn-sm\\\" ng-click=\\\"confirmRemove()\\\" ng-disabled=\\\"container.IsPortainer\\\">\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n            Remove</button\\n          >\\n        </div>\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\" aria-label=\\\"...\\\" ng-if=\\\"displayRecreateButton\\\" authorization=\\\"DockerContainerCreate\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-light btn-sm\\\"\\n            ng-disabled=\\\"state.recreateContainerInProgress || container.IsPortainer\\\"\\n            ng-click=\\\"recreate()\\\"\\n            button-spinner=\\\"state.recreateContainerInProgress\\\"\\n          >\\n            <span ng-hide=\\\"state.recreateContainerInProgress\\\" class=\\\"flex items-center\\\">\\n              <pr-icon icon=\\\"'refresh-cw'\\\" class-name=\\\"'!mr-1'\\\"></pr-icon>\\n              Recreate</span\\n            >\\n            <span ng-show=\\\"state.recreateContainerInProgress\\\">Recreation in progress...</span>\\n          </button>\\n          <a class=\\\"btn btn-light btn-sm\\\" type=\\\"button\\\" ui-sref=\\\"docker.containers.new({ from: container.Id, nodeName: nodeName })\\\" ng-disabled=\\\"container.IsPortainer\\\">\\n            <pr-icon icon=\\\"'copy'\\\"></pr-icon>\\n            Duplicate/Edit</a\\n          >\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"box\\\" title-text=\\\"Container status\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td class=\\\"col-xs-6 col-sm-4 col-md-3 col-lg-3\\\">ID</td>\\n              <td>{{ container.Id }}</td>\\n            </tr>\\n            <tr>\\n              <td>Name</td>\\n              <td ng-if=\\\"!container.edit\\\">\\n                {{ container.Name | trimcontainername }}\\n                <a authorization=\\\"DockerContainerRename\\\" href=\\\"\\\" data-toggle=\\\"tooltip\\\" title=\\\"Edit container name\\\" ng-click=\\\"container.edit = true;\\\"\\n                  ><pr-icon icon=\\\"'edit'\\\" class-name=\\\"'space-right'\\\"></pr-icon\\n                ></a>\\n              </td>\\n              <td ng-if=\\\"container.edit\\\">\\n                <form ng-submit=\\\"renameContainer()\\\">\\n                  <input type=\\\"text\\\" class=\\\"containerNameInput\\\" ng-model=\\\"container.newContainerName\\\" />\\n                  <a href=\\\"\\\" ng-click=\\\"container.edit = false;\\\">\\n                    <pr-icon icon=\\\"'x'\\\"></pr-icon>\\n                  </a>\\n                  <a href=\\\"\\\" ng-click=\\\"renameContainer()\\\">\\n                    <pr-icon icon=\\\"'check'\\\"></pr-icon>\\n                  </a>\\n                </form>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"container.NetworkSettings.IPAddress\\\">\\n              <td>IP address</td>\\n              <td>{{ container.NetworkSettings.IPAddress }}</td>\\n            </tr>\\n            <tr>\\n              <td>Status</td>\\n              <td>\\n                <pr-icon ng-if=\\\"container.State.Running\\\" icon=\\\"'heart-pulse'\\\" mode=\\\"'success'\\\"></pr-icon>\\n                <pr-icon ng-if=\\\"!container.State.Running && container.State.Status !== 'created'\\\" icon=\\\"'heart-pulse'\\\" mode=\\\"'danger'\\\"></pr-icon>\\n                {{ container.State | getstatetext }} for {{ activityTime\\n                }}<span ng-if=\\\"!container.State.Running && container.State.Status !== 'created'\\\"> with exit code {{ container.State.ExitCode }}</span>\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Created</td>\\n              <td>{{ container.Created | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"container.State.Running\\\">\\n              <td>Start time</td>\\n              <td>{{ container.State.StartedAt | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!container.State.Running && container.State.Status !== 'created'\\\">\\n              <td>Finished</td>\\n              <td>{{ container.State.FinishedAt | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"isAdmin && displayCreateWebhookButton && applicationState.endpoint.type !== 4\\\">\\n              <td colspan=\\\"6\\\">\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <por-switch-field\\n                      tooltip=\\\"'Webhook (or callback URI) used to automate the recreation of this container. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and recreate this container.'\\\"\\n                      label-class=\\\"'col-sm-2'\\\"\\n                      label=\\\"'Container webhook'\\\"\\n                      feature-id=\\\"'container-webhook'\\\"\\n                    ></por-switch-field>\\n                  </div>\\n                </div>\\n              </td>\\n            </tr>\\n            <tr authorization=\\\"DockerContainerLogs, DockerContainerInspect, DockerContainerStats, DockerExecStart\\\">\\n              <td colspan=\\\"2\\\">\\n                <div class=\\\"btn-group\\\" role=\\\"group\\\" aria-label=\\\"...\\\">\\n                  <a authorization=\\\"DockerContainerLogs\\\" class=\\\"btn\\\" type=\\\"button\\\" ui-sref=\\\"docker.containers.container.logs({ id: container.Id })\\\"\\n                    ><pr-icon icon=\\\"'file-text'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Logs</a\\n                  >\\n                  <a authorization=\\\"DockerContainerInspect\\\" class=\\\"btn\\\" type=\\\"button\\\" ui-sref=\\\"docker.containers.container.inspect({ id: container.Id })\\\"\\n                    ><pr-icon icon=\\\"'info'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Inspect</a\\n                  >\\n                  <a authorization=\\\"DockerContainerStats\\\" class=\\\"btn\\\" type=\\\"button\\\" ui-sref=\\\"docker.containers.container.stats({ id: container.Id })\\\"\\n                    ><pr-icon icon=\\\"'bar-chart'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Stats</a\\n                  >\\n                  <a authorization=\\\"DockerExecStart\\\" class=\\\"btn\\\" type=\\\"button\\\" ui-sref=\\\"docker.containers.container.exec({ id: container.Id })\\\"\\n                    ><pr-icon icon=\\\"'terminal'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Console</a\\n                  >\\n                  <a authorization=\\\"DockerContainerAttach\\\" class=\\\"btn\\\" type=\\\"button\\\" ui-sref=\\\"docker.containers.container.attach({ id: container.Id })\\\"\\n                    ><pr-icon icon=\\\"'paperclip'\\\" class-name=\\\"'space-right'\\\"></pr-icon>Attach</a\\n                  >\\n                </div>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<!-- access-control-panel -->\\n<access-control-panel\\n  ng-if=\\\"container\\\"\\n  resource-id=\\\"container.Id\\\"\\n  resource-control=\\\"container.ResourceControl\\\"\\n  resource-type=\\\"resourceType\\\"\\n  on-update-success=\\\"(onUpdateResourceControlSuccess)\\\"\\n  environment-id=\\\"endpoint.Id\\\"\\n>\\n</access-control-panel>\\n<!-- !access-control-panel -->\\n\\n<docker-health-status ng-if=\\\"container.State.Health\\\" health=\\\"container.State.Health\\\"></docker-health-status>\\n\\n<div class=\\\"row\\\" authorization=\\\"DockerImageCreate\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"list\\\" title-text=\\\"Create image\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <!-- tag-description -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">\\n                You can create an image from this container, this allows you to backup important data or save helpful configurations. You'll be able to spin up another container\\n                based on this image afterward.\\n              </span>\\n            </div>\\n          </div>\\n          <!-- !tag-description -->\\n          <!-- image-and-registry -->\\n          <por-image-registry\\n            model=\\\"config.RegistryModel\\\"\\n            auto-complete=\\\"true\\\"\\n            label-class=\\\"col-sm-1\\\"\\n            input-class=\\\"col-sm-11\\\"\\n            endpoint=\\\"endpoint\\\"\\n            is-admin=\\\"isAdmin\\\"\\n            set-validity=\\\"setPullImageValidity\\\"\\n            check-rate-limits=\\\"true\\\"\\n          ></por-image-registry>\\n          <!-- !image-and-registry -->\\n          <!-- tag-note -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">Note: if you don't specify the tag in the image name, <span class=\\\"label label-default\\\">latest</span> will be used.</span>\\n            </div>\\n          </div>\\n          <!-- !tag-note -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"!state.pullImageValidity || !config.RegistryModel.Image || config.commitInProgress\\\"\\n                ng-click=\\\"commit()\\\"\\n              >\\n                Create\\n              </button>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"list\\\" title-text=\\\"Container details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"container-details-table table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Image</td>\\n              <td\\n                ><a ui-sref=\\\"docker.images.image({ id: container.Image, nodeName: nodeName })\\\">{{ container.Config.Image }}@{{ container.Image }}</a></td\\n              >\\n            </tr>\\n            <tr ng-if=\\\"portBindings.length > 0\\\">\\n              <td>Port configuration</td>\\n              <td>\\n                <div ng-repeat=\\\"portMapping in portBindings\\\">\\n                  {{ portMapping.host }}\\n                  <pr-icon icon=\\\"'arrow-right'\\\"></pr-icon>\\n                  {{ portMapping.container }}\\n                </div>\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>CMD</td>\\n              <td\\n                ><code>{{ container.Config.Cmd | command }}</code></td\\n              >\\n            </tr>\\n            <tr>\\n              <td>ENTRYPOINT</td>\\n              <td\\n                ><code>{{ container.Config.Entrypoint ? (container.Config.Entrypoint | command) : 'null' }}</code></td\\n              >\\n            </tr>\\n            <tr>\\n              <td>ENV</td>\\n              <td>\\n                <table class=\\\"table-bordered table-condensed table\\\">\\n                  <tr ng-repeat=\\\"var in container.Config.Env track by $index\\\">\\n                    <td>{{ var|key: '=' }}</td>\\n                    <td>{{ var|value: '=' }}</td>\\n                  </tr>\\n                </table>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!(container.Config.Labels | emptyobject)\\\">\\n              <td>Labels</td>\\n              <td>\\n                <table class=\\\"table-bordered table-condensed table\\\">\\n                  <tr ng-repeat=\\\"(k, v) in container.Config.Labels\\\">\\n                    <td>{{ k }}</td>\\n                    <td>{{ v }}</td>\\n                  </tr>\\n                </table>\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Restart policies</td>\\n              <td>\\n                <container-restart-policy\\n                  ng-if=\\\"container\\\"\\n                  name=\\\"container.HostConfig.RestartPolicy.Name\\\"\\n                  maximum-retry-count=\\\"container.HostConfig.RestartPolicy.MaximumRetryCount\\\"\\n                  update-restart-policy=\\\"updateRestartPolicy(name, maximumRetryCount)\\\"\\n                >\\n                </container-restart-policy>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!(container.HostConfig.Sysctls | emptyobject)\\\">\\n              <td>Sysctls</td>\\n              <td>\\n                <table class=\\\"table-bordered table-condensed table\\\">\\n                  <tr ng-repeat=\\\"(k, v) in container.HostConfig.Sysctls\\\">\\n                    <td>{{ k }}</td>\\n                    <td>{{ v }}</td>\\n                  </tr>\\n                </table>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"container.HostConfig.DeviceRequests.length\\\">\\n              <td>GPUS</td>\\n              <td>{{ computeDockerGPUCommand() }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\" ng-if=\\\"container.Mounts.length > 0\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"database\\\" title-text=\\\"Volumes\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <thead>\\n            <tr>\\n              <th>Host/volume</th>\\n              <th>Path in container</th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr ng-repeat=\\\"vol in container.Mounts\\\">\\n              <td ng-if=\\\"vol.Type === 'bind'\\\">{{ vol.Source }}</td>\\n              <td ng-if=\\\"vol.Type === 'volume'\\\"\\n                ><a ui-sref=\\\"docker.volumes.volume({ id: vol.Name, nodeName: nodeName })\\\">{{ vol.Name }}</a></td\\n              >\\n              <td>{{ vol.Destination }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<docker-container-networks-datatable ng-if=\\\"container.NetworkSettings.Networks\\\" dataset=\\\"container.NetworkSettings.Networks\\\" container=\\\"container\\\" node-name=\\\"nodeName\\\">\\n</docker-container-networks-datatable>\\n\";;\nvar path = 'app/docker/views/containers/edit/container.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Container inspect'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Containers', link:'docker.containers' },\\n    {\\n      label:(containerInfo.Name | trimcontainername),\\n      link: 'docker.containers.container',\\n      linkParams: { id: containerInfo.Id },\\n    }, 'Inspect']\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"circle\\\" title-text=\\\"Inspect\\\">\\n        <span class=\\\"btn-group btn-group-sm\\\">\\n          <label class=\\\"btn btn-light\\\" ng-model=\\\"state.DisplayTextView\\\" uib-btn-radio=\\\"false\\\"><pr-icon icon=\\\"'code'\\\"></pr-icon>Tree</label>\\n          <label class=\\\"btn btn-light\\\" ng-model=\\\"state.DisplayTextView\\\" uib-btn-radio=\\\"true\\\"><pr-icon icon=\\\"'file'\\\"></pr-icon>Text</label>\\n        </span>\\n      </rd-widget-header>\\n      <rd-widget-body>\\n        <pre ng-show=\\\"state.DisplayTextView\\\">{{ containerInfo | json: 4 }}</pre>\\n        <json-tree ng-hide=\\\"state.DisplayTextView\\\" object=\\\"containerInfo\\\" root-name=\\\"containerInfo.Id\\\" start-expanded=\\\"true\\\"></json-tree>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/containers/inspect/containerinspect.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Container logs'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Containers', link:'docker.containers' },\\n    { \\n      label:(container.Name | trimcontainername),\\n      link: 'docker.containers.container', \\n      linkParams: { id: container.Id }\\n    }, 'Logs']\\\"\\n>\\n</page-header>\\n\\n<container-log-view ng-if=\\\"!logsEnabled\\\"></container-log-view>\\n\\n<log-viewer\\n  data=\\\"logs\\\"\\n  ng-if=\\\"logs && logsEnabled\\\"\\n  log-collection-change=\\\"changeLogCollection\\\"\\n  display-timestamps=\\\"state.displayTimestamps\\\"\\n  line-count=\\\"state.lineCount\\\"\\n  since-timestamp=\\\"state.sinceTimestamp\\\"\\n  resource-name=\\\"container.Name\\\"\\n></log-viewer>\\n\";;\nvar path = 'app/docker/views/containers/logs/containerlogs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Container statistics'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Containers', link:'docker.containers' },\\n    {\\n      label:(container.Name | trimcontainername),\\n      link: 'docker.containers.container',\\n      linkParams: { id: container.Id },\\n    }, 'Stats']\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-md-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"info\\\" title-text=\\\"About statistics\\\"> </rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">\\n                This view displays real-time statistics about the container <b>{{ container.Name | trimcontainername }}</b> as well as a list of the running processes inside this\\n                container.\\n              </span>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"refreshRate\\\" class=\\\"col-sm-3 col-md-2 col-lg-2 margin-sm-top control-label text-left\\\"> Refresh rate </label>\\n            <div class=\\\"col-sm-3 col-md-2\\\">\\n              <select id=\\\"refreshRate\\\" ng-model=\\\"state.refreshRate\\\" ng-change=\\\"changeUpdateRepeater()\\\" class=\\\"form-control\\\">\\n                <option value=\\\"1\\\">1s</option>\\n                <option value=\\\"3\\\">3s</option>\\n                <option value=\\\"5\\\">5s</option>\\n                <option value=\\\"10\\\">10s</option>\\n                <option value=\\\"30\\\">30s</option>\\n                <option value=\\\"60\\\">60s</option>\\n              </select>\\n            </div>\\n            <span>\\n              <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n            </span>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-if=\\\"state.networkStatsUnavailable\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                Network stats are unavailable for this container.\\n              </span>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-if=\\\"state.ioStatsUnavailable\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                I/O stats are unavailable for this container.\\n              </span>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-6 col-md-6 col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"bar-chart\\\" title-text=\\\"Memory usage\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <div class=\\\"chart-container\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"memoryChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n\\n  <div class=\\\"col-lg-6 col-md-6 col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"bar-chart\\\" title-text=\\\"CPU usage\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <div class=\\\"chart-container\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"cpuChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n\\n  <div class=\\\"col-lg-6 col-md-6 col-sm-12\\\" ng-if=\\\"!state.networkStatsUnavailable\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"bar-chart\\\" title-text=\\\"Network usage (aggregate)\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <div class=\\\"chart-container\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"networkChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n\\n  <div class=\\\"col-lg-6 col-md-6 col-sm-12\\\" ng-if=\\\"!state.ioStatsUnavailable\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"bar-chart\\\" title-text=\\\"I/O usage (aggregate)\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <div class=\\\"chart-container\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"ioChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<docker-container-processes-datatable dataset=\\\"processInfo.Processes\\\" headers=\\\"processInfo.Titles\\\"></docker-container-processes-datatable>\\n\";;\nvar path = 'app/docker/views/containers/stats/containerstats.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Dashboard'\\\" breadcrumbs=\\\"['Environment summary']\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"applicationState.endpoint.mode.agentProxy && applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <dashboard-cluster-agent-info endpoint-id=\\\"endpoint.Id\\\"></dashboard-cluster-agent-info>\\n  </div>\\n</div>\\n<information-panel\\n  ng-if=\\\"\\n    !applicationState.UI.dismissedInfoPanels['docker-dashboard-info-01'] &&\\n    !applicationState.endpoint.mode.agentProxy &&\\n    applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\\n  \\\"\\n  title-text=\\\"Information\\\"\\n  dismiss-action=\\\"dismissInformationPanel('docker-dashboard-info-01')\\\"\\n>\\n  <span class=\\\"small\\\">\\n    <p class=\\\"text-muted\\\" ng-if=\\\"applicationState.endpoint.mode.role === 'MANAGER'\\\">\\n      <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      Portainer is connected to a node that is part of a Swarm cluster. Some resources located on other nodes in the cluster might not be available for management, have a look at\\n      <help-link doc-link=\\\"'/admin/environments/add/swarm/agent'\\\" target=\\\"'_blank'\\\" children=\\\"'our agent setup'\\\"></help-link> for more details.\\n    </p>\\n    <p class=\\\"text-muted\\\" ng-if=\\\"applicationState.endpoint.mode.role === 'WORKER'\\\">\\n      <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      Portainer is connected to a worker node. Swarm management features will not be available.\\n    </p>\\n  </span>\\n</information-panel>\\n\\n<div ng-if=\\\"info\\\">\\n  <div class=\\\"row\\\" ng-if=\\\"(!applicationState.endpoint.mode.agentProxy || applicationState.endpoint.mode.provider !== 'DOCKER_SWARM_MODE') && info && endpoint\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-header icon=\\\"gauge\\\" title-text=\\\"Environment info\\\"></rd-widget-header>\\n        <rd-widget-body classes=\\\"!px-5 !py-0\\\">\\n          <table class=\\\"table\\\">\\n            <tbody>\\n              <tr>\\n                <td>Environment</td>\\n                <td>\\n                  {{ endpoint.Name }}\\n                  <span class=\\\"small text-muted space-left\\\">\\n                    <pr-icon icon=\\\"'cpu'\\\"></pr-icon> {{ endpoint.Snapshots[0].TotalCPU }} <pr-icon icon=\\\"'svg-memory'\\\"></pr-icon>\\n                    {{ endpoint.Snapshots[0].TotalMemory | humansize }}\\n                  </span>\\n                  <span class=\\\"small text-muted\\\">\\n                    - {{ info.Swarm && info.Swarm.NodeID !== '' ? 'Swarm' : 'Standalone' }} {{ info.ServerVersion }}\\n                    <span ng-if=\\\"endpoint.Type === 2\\\">\\n                      <pr-icon icon=\\\"'zap'\\\"></pr-icon>\\n                      Agent</span\\n                    ></span\\n                  >\\n                </td>\\n              </tr>\\n              <tr ng-if=\\\"showEnvUrl\\\">\\n                <td>URL</td>\\n                <td>{{ endpoint.URL | stripprotocol }}</td>\\n              </tr>\\n              <tr>\\n                <td>{{ endpoint.Gpus.length <= 1 ? 'GPU' : 'GPUs' }}</td>\\n                <td>{{ gpuInfoStr }}</td>\\n              </tr>\\n              <tr>\\n                <td>Tags</td>\\n                <td>{{ endpointTags }}</td>\\n              </tr>\\n              <tr ng-if=\\\"applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && applicationState.endpoint.mode.role === 'MANAGER'\\\">\\n                <td colspan=\\\"2\\\">\\n                  <div class=\\\"btn-group\\\" role=\\\"group\\\" aria-label=\\\"...\\\">\\n                    <a ui-sref=\\\"docker.swarm.visualizer\\\" class=\\\"vertical-center\\\"><pr-icon icon=\\\"'trello'\\\" class-name=\\\"'icon'\\\"></pr-icon>Go to cluster visualizer</a>\\n                  </div>\\n                </td>\\n              </tr>\\n            </tbody>\\n          </table>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"mx-4 grid grid-cols-2 gap-3\\\">\\n    <a class=\\\"no-link\\\" ui-sref=\\\"docker.stacks\\\" ng-if=\\\"showStacks\\\">\\n      <dashboard-item icon=\\\"'layers'\\\" type=\\\"'Stack'\\\" value=\\\"stackCount\\\"></dashboard-item>\\n    </a>\\n\\n    <div ng-if=\\\"applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && applicationState.endpoint.mode.role === 'MANAGER'\\\">\\n      <a class=\\\"no-link\\\" ui-sref=\\\"docker.services\\\">\\n        <dashboard-item icon=\\\"'shuffle'\\\" type=\\\"'Service'\\\" value=\\\"serviceCount\\\"></dashboard-item>\\n      </a>\\n    </div>\\n\\n    <a class=\\\"no-link\\\" ng-if=\\\"containers\\\" ui-sref=\\\"docker.containers\\\">\\n      <dashboard-item icon=\\\"'box'\\\" type=\\\"'Container'\\\" value=\\\"containers.length\\\" children=\\\"containerStatusComponent\\\"></dashboard-item>\\n    </a>\\n\\n    <a class=\\\"no-link\\\" ng-if=\\\"images\\\" ui-sref=\\\"docker.images\\\">\\n      <dashboard-item icon=\\\"'list'\\\" type=\\\"'Image'\\\" value=\\\"images.length\\\" children=\\\"imagesTotalSizeComponent\\\"></dashboard-item>\\n    </a>\\n\\n    <a class=\\\"no-link\\\" ui-sref=\\\"docker.volumes\\\">\\n      <dashboard-item icon=\\\"'database'\\\" type=\\\"'Volume'\\\" value=\\\"volumeCount\\\"></dashboard-item>\\n    </a>\\n\\n    <a class=\\\"no-link\\\" ui-sref=\\\"docker.networks\\\">\\n      <dashboard-item icon=\\\"'Network'\\\" type=\\\"'Network'\\\" value=\\\"networkCount\\\"></dashboard-item>\\n    </a>\\n\\n    <div>\\n      <dashboard-item\\n        ng-if=\\\"endpoint.EnableGPUManagement && applicationState.endpoint.mode.provider === 'DOCKER_STANDALONE'\\\"\\n        icon=\\\"'cpu'\\\"\\n        type=\\\"'GPU'\\\"\\n        value=\\\"endpoint.Gpus.length\\\"\\n      ></dashboard-item>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/dashboard/dashboard.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Docker features configuration'\\\" breadcrumbs=\\\"['Docker configuration']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"$ctrl.form\\\">\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Host and filesystem </div>\\n          <div class=\\\"form-group\\\">\\n            <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n              <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'space-right'\\\"></pr-icon>\\n              <span class=\\\"text-muted\\\"\\n                >The environment must be <a href=\\\"https://docs.portainer.io/start/agent\\\">running the Portainer Agent</a> to use this functionality, and the root of the host must be\\n                bind-mounted to <b>/host</b> in the agent deployment. Check\\n                <a href=\\\"https://docs.portainer.io/user/docker/host/setup#enable-host-management-features\\\">our documentation</a> for more information.</span\\n              >\\n            </span>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.enableHostManagementFeatures\\\"\\n                name=\\\"'enableHostManagementFeatures'\\\"\\n                label=\\\"'Enable host management features'\\\"\\n                tooltip=\\\"'Enable host management features: host system browsing and advanced host details.'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                disabled=\\\"!$ctrl.isAgent\\\"\\n                on-change=\\\"($ctrl.onChangeEnableHostManagementFeatures)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.allowVolumeBrowserForRegularUsers\\\"\\n                name=\\\"'allowVolumeBrowserForRegularUsers'\\\"\\n                label=\\\"'Enable volume management for non-administrators'\\\"\\n                tooltip=\\\"'When enabled, regular users will be able to use Portainer volume management features.'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeAllowVolumeBrowserForRegularUsers)\\\"\\n                disabled=\\\"!$ctrl.isAgent\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <!-- auto update window -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Change window setting </div>\\n\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.state.autoUpdateSettings.Enabled\\\"\\n                name=\\\"'disableSysctlSettingForRegularUsers'\\\"\\n                label=\\\"'Enable Change Window'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                feature-id=\\\"$ctrl.limitedFeatureAutoUpdate\\\"\\n                tooltip=\\\"'Specify a time-frame during which GitOps updates can occur in this environment.'\\\"\\n                on-change=\\\"($ctrl.onToggleAutoUpdate)\\\"\\n              >\\n              </por-switch-field>\\n            </div>\\n          </div>\\n\\n          <!-- security -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Docker security settings </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.disableBindMountsForRegularUsers\\\"\\n                name=\\\"'disableBindMountsForRegularUsers'\\\"\\n                label=\\\"'Disable bind mounts for non-administrators'\\\"\\n                tooltip=\\\"'When enabled, regular users will not be able to use bind mounts when creating containers.'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeDisableBindMountsForRegularUsers)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.disablePrivilegedModeForRegularUsers\\\"\\n                name=\\\"'disablePrivilegedModeForRegularUsers'\\\"\\n                label=\\\"'Disable privileged mode for non-administrators'\\\"\\n                tooltip=\\\"'When enabled, regular users will not be able to use privileged mode when creating containers.'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeDisablePrivilegedModeForRegularUsers)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.disableHostNamespaceForRegularUsers\\\"\\n                name=\\\"'disableHostNamespaceForRegularUsers'\\\"\\n                label=\\\"'Disable the use of host PID 1 for non-administrators'\\\"\\n                tooltip=\\\"'Prevent users from accessing the host filesystem through the host PID namespace.'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeDisableHostNamespaceForRegularUsers)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.disableStackManagementForRegularUsers\\\"\\n                name=\\\"'disableStackManagementForRegularUsers'\\\"\\n                label=\\\"'Disable the use of Stacks for non-administrators'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeDisableStackManagementForRegularUsers)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.disableDeviceMappingForRegularUsers\\\"\\n                name=\\\"'disableDeviceMappingForRegularUsers'\\\"\\n                label=\\\"'Disable device mappings for non-administrators'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeDisableDeviceMappingForRegularUsers)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.disableContainerCapabilitiesForRegularUsers\\\"\\n                name=\\\"'disableContainerCapabilitiesForRegularUsers'\\\"\\n                label=\\\"'Disable container capabilities for non-administrators'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeDisableContainerCapabilitiesForRegularUsers)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                checked=\\\"$ctrl.formValues.disableSysctlSettingForRegularUsers\\\"\\n                name=\\\"'disableSysctlSettingForRegularUsers'\\\"\\n                label=\\\"'Disable sysctl settings for non-administrators'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                on-change=\\\"($ctrl.onChangeDisableSysctlSettingForRegularUsers)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n\\n          <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.isContainerEditDisabled()\\\">\\n            <span class=\\\"col-sm-12 text-muted small\\\">\\n              <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n              Note: The recreate/duplicate/edit feature is currently disabled (for non-admin users) by one or more security settings.\\n            </span>\\n          </div>\\n          <!-- !security -->\\n\\n          <!-- other -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Other </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <gpus-insights></gpus-insights>\\n            </div>\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label=\\\"'Show GPU in the UI'\\\"\\n                tooltip=\\\"'This allows managing of GPUs for container/stack hardware acceleration via the Portainer UI.'\\\"\\n                checked=\\\"$ctrl.state.enableGPUManagement\\\"\\n                name=\\\"'enableGPUManagement'\\\"\\n                on-change=\\\"($ctrl.onToggleGPUManagement)\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                disabled=\\\"!$ctrl.isDockerStandaloneEnv\\\"\\n              ></por-switch-field>\\n            </div>\\n            <div class=\\\"col-sm-12\\\">\\n              <div class=\\\"pl-4\\\">\\n                <gpus-list ng-if=\\\"$ctrl.state.enableGPUManagement && $ctrl.endpoint\\\" value=\\\"$ctrl.endpoint.Gpus\\\" on-change=\\\"($ctrl.onGpusChange)\\\"></gpus-list>\\n              </div>\\n            </div>\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label=\\\"'Show image up to date indicators for Stacks, Services and Containers'\\\"\\n                checked=\\\"false\\\"\\n                name=\\\"'outOfDateImageToggle'\\\"\\n                label-class=\\\"'col-sm-7 col-lg-4'\\\"\\n                feature-id=\\\"$ctrl.limitedFeatureUpToDateImage\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <!-- !other -->\\n\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                ng-click=\\\"$ctrl.save()\\\"\\n                ng-disabled=\\\"$ctrl.state.actionInProgress\\\"\\n                button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"$ctrl.state.actionInProgress\\\">Save configuration</span>\\n                <span ng-show=\\\"$ctrl.state.actionInProgress\\\">Saving...</span>\\n              </button>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/docker-features-configuration/docker-features-configuration.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Event list'\\\" breadcrumbs=\\\"['Events']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<docker-events-datatable dataset=\\\"events\\\"></docker-events-datatable>\\n\";;\nvar path = 'app/docker/views/events/events.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Host Browser'\\\" breadcrumbs=\\\"['Host', {label:$ctrl.host.Name, link:'docker.host'},  'browse']\\\"> </page-header>\\n\\n<host-browser ng-if=\\\"$ctrl.host\\\" endpoint-id=\\\"$ctrl.endpoint.Id\\\"></host-browser>\\n\";;\nvar path = 'app/docker/views/host/host-browser-view/host-browser-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<host-overview\\n  engine-details=\\\"$ctrl.engineDetails\\\"\\n  host-details=\\\"$ctrl.hostDetails\\\"\\n  is-agent=\\\"$ctrl.state.isAgent\\\"\\n  agent-api-version=\\\"$ctrl.state.agentApiVersion\\\"\\n  disks=\\\"$ctrl.disks\\\"\\n  devices=\\\"$ctrl.devices\\\"\\n  refresh-url=\\\"docker.host\\\"\\n  browse-url=\\\"docker.host.browser\\\"\\n  host-features-enabled=\\\"$ctrl.state.enableHostManagementFeatures\\\"\\n></host-overview>\\n\";;\nvar path = 'app/docker/views/host/host-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Build image'\\\" breadcrumbs=\\\"[{label:'Images', link:'docker.images'}, 'Build image']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <uib-tabset active=\\\"state.activeTab\\\">\\n          <uib-tab index=\\\"0\\\">\\n            <uib-tab-heading class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'wrench'\\\" class=\\\"leading-none\\\"></pr-icon> Builder </uib-tab-heading>\\n            <form class=\\\"form-horizontal\\\">\\n              <div class=\\\"col-sm-12 form-section-title\\\"> Naming </div>\\n              <!-- names -->\\n              <div class=\\\"form-group\\\">\\n                <span class=\\\"col-sm-12 text-muted small\\\"> You can specify multiple names to your image. </span>\\n              </div>\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\">\\n                  <label class=\\\"control-label text-left\\\">Names</label>\\n                  <span class=\\\"label label-default interactive\\\" class=\\\"ml-2.5\\\" ng-click=\\\"addImageName()\\\"> <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add additional name </span>\\n                </div>\\n              </div>\\n              <!-- !names -->\\n              <div class=\\\"form-group\\\" ng-if=\\\"formValues.ImageNames.length === 0\\\">\\n                <span class=\\\"col-sm-12 text-danger small\\\">\\n                  <p class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'sm'\\\"></pr-icon> You must specify at least one name for the image. </p>\\n                </span>\\n              </div>\\n              <!-- name-input-list -->\\n              <div ng-if=\\\"formValues.ImageNames.length > 0\\\">\\n                <div class=\\\"form-group\\\">\\n                  <span class=\\\"col-sm-12 text-muted small\\\">\\n                    A name must be specified in one of the following formats: <code>name:tag</code>, <code>repository/name:tag</code> or\\n                    <code>registryfqdn:port/repository/name:tag</code> format. If you omit the tag the default <b>latest</b> value is assumed.\\n                  </span>\\n                </div>\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <div class=\\\"col-sm-12 form-inline\\\" class=\\\"mt-2.5\\\">\\n                      <div ng-repeat=\\\"item in formValues.ImageNames track by $index\\\" class=\\\"mt-1\\\">\\n                        <!-- name-input -->\\n                        <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                          <span class=\\\"input-group-addon\\\">name</span>\\n                          <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"item.Name\\\" ng-change=\\\"checkName($index)\\\" placeholder=\\\"e.g. my-image:my-tag\\\" auto-focus />\\n                          <span class=\\\"input-group-addon\\\" ng-if=\\\"!item.Valid\\\">\\n                            <pr-icon icon=\\\"'x'\\\" mode=\\\"'danger'\\\"></pr-icon>\\n                          </span>\\n                          <span class=\\\"input-group-addon\\\" ng-if=\\\"item.Valid\\\">\\n                            <pr-icon icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon>\\n                          </span>\\n                        </div>\\n                        <!-- !name-input -->\\n                        <!-- actions -->\\n                        <div class=\\\"input-group col-sm-2 input-group-sm\\\">\\n                          <button class=\\\"btn btn-dangerlight btn-only-icon\\\" type=\\\"button\\\" ng-click=\\\"removeImageName($index)\\\">\\n                            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n                          </button>\\n                        </div>\\n                        <!-- !actions -->\\n                        <div class=\\\"small text-warning\\\" ng-if=\\\"!item.Valid\\\">\\n                          <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                          <span ng-if=\\\"!item.Unique\\\">The image name must be unique</span>\\n                          <span ng-if=\\\"item.Unique\\\"\\n                            >The image name must consist of between 2 and 255 lowercase alphanumeric characters, '.', '_', or '-' (e.g. 'my-name', or 'abc-123').</span\\n                          >\\n                        </div>\\n                      </div>\\n                    </div>\\n                  </div>\\n                </div>\\n              </div>\\n              <!-- !name-input-list -->\\n              <div class=\\\"col-sm-12 form-section-title\\\"> Build method </div>\\n              <box-selector options=\\\"options\\\" slim=\\\"true\\\" value=\\\"state.BuildType\\\" on-change=\\\"(onChangeBuildType)\\\"></box-selector>\\n\\n              <!-- web-editor -->\\n              <!-- TODO use web-editor-form component -->\\n              <div ng-show=\\\"state.BuildType === 'editor'\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Web editor </div>\\n                <div class=\\\"form-group\\\">\\n                  <span class=\\\"col-sm-12 text-muted small\\\">\\n                    You can get more information about Dockerfile format in the\\n                    <a href=\\\"https://docs.docker.com/engine/reference/builder/\\\" target=\\\"_blank\\\">official documentation</a>.\\n                  </span>\\n                </div>\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <code-editor\\n                      identifier=\\\"image-build-editor\\\"\\n                      placeholder=\\\"Define or paste the content of your Dockerfile here\\\"\\n                      docker-file=\\\"true\\\"\\n                      on-change=\\\"(editorUpdate)\\\"\\n                    ></code-editor>\\n                  </div>\\n                </div>\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Upload </div>\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <div class=\\\"form-group\\\">\\n                      <span class=\\\"col-sm-12 text-muted small\\\">\\n                        You can upload files from your local computer for referencing in your Dockerfile (using ADD filename) so they are included in your built image.\\n                      </span>\\n                    </div>\\n                    <button class=\\\"btn btn-sm btn-primary\\\" ngf-select=\\\"selectAdditionalFiles($files)\\\" ngf-multiple=\\\"true\\\">Select files</button>\\n                    <span ng-repeat=\\\"item in formValues.AdditionalFiles track by $index\\\" class=\\\"mx-2\\\">\\n                      {{ item.name }}\\n                    </span>\\n                  </div>\\n                </div>\\n              </div>\\n              <!-- !web-editor -->\\n              <!-- upload -->\\n              <div ng-show=\\\"state.BuildType === 'upload'\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Upload </div>\\n                <div class=\\\"form-group\\\">\\n                  <span class=\\\"col-sm-12 text-muted small\\\">\\n                    You can upload a Dockerfile or a tar archive containing a Dockerfile from your computer. When using a tarball, the root folder will be used as the build\\n                    context.\\n                  </span>\\n                </div>\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12 vertical-center\\\">\\n                    <button class=\\\"btn btn-sm btn-primary\\\" ngf-select ngf-min-size=\\\"10\\\" ng-model=\\\"formValues.UploadFile\\\">Select file</button>\\n                    <span class=\\\"space-left\\\">\\n                      {{ formValues.UploadFile.name }}\\n                      <span ng-if=\\\"!formValues.UploadFile\\\"><pr-icon icon=\\\"'x'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\"></pr-icon></span>\\n                    </span>\\n                  </div>\\n                </div>\\n                <div ng-if=\\\"formValues.UploadFile.type === 'application/gzip' || formValues.UploadFile.type === 'application/x-tar'\\\">\\n                  <div class=\\\"form-group\\\">\\n                    <span class=\\\"col-sm-12 text-muted small\\\"> Indicate the path to the Dockerfile within the tarball. </span>\\n                  </div>\\n                  <div class=\\\"form-group\\\">\\n                    <label for=\\\"image_path\\\" class=\\\"col-sm-2 control-label text-left\\\">Dockerfile path</label>\\n                    <div class=\\\"col-sm-10\\\">\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Path\\\" id=\\\"image_path\\\" placeholder=\\\"Dockerfile\\\" />\\n                    </div>\\n                  </div>\\n                </div>\\n              </div>\\n              <!-- !upload -->\\n              <!-- url -->\\n              <div ng-show=\\\"state.BuildType === 'url'\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> URL </div>\\n                <div class=\\\"form-group\\\">\\n                  <span class=\\\"col-sm-12 small vertical-center\\\">\\n                    <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                    <span class=\\\"text-muted\\\"\\n                      >Specify the URL to a Dockerfile, a tarball or a public Git repository (suffixed by <b>.git</b>). When using a Git repository URL, build contexts can be\\n                      specified as in the <a href=\\\"https://docs.docker.com/engine/reference/commandline/build/#git-repositories\\\">Docker documentation.</a></span\\n                    >\\n                  </span>\\n                </div>\\n                <div class=\\\"form-group\\\">\\n                  <label for=\\\"image_url\\\" class=\\\"col-sm-2 control-label text-left\\\">URL</label>\\n                  <div class=\\\"col-sm-10\\\">\\n                    <input\\n                      type=\\\"text\\\"\\n                      class=\\\"form-control\\\"\\n                      ng-model=\\\"formValues.URL\\\"\\n                      id=\\\"image_url\\\"\\n                      placeholder=\\\"https://myhost.mydomain/myimage.tar.gz or https://github.com/myname/myrepo.git#mybranch\\\"\\n                    />\\n                  </div>\\n                </div>\\n                <div class=\\\"form-group\\\">\\n                  <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n                    <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                    Indicate the path to the Dockerfile within the tarball/repository (ignored when using a Dockerfile).\\n                  </span>\\n                </div>\\n                <div class=\\\"form-group\\\">\\n                  <label for=\\\"image_path\\\" class=\\\"col-sm-2 control-label text-left\\\">Dockerfile path</label>\\n                  <div class=\\\"col-sm-10\\\">\\n                    <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Path\\\" id=\\\"image_path\\\" placeholder=\\\"Dockerfile\\\" />\\n                  </div>\\n                </div>\\n              </div>\\n              <!-- !url -->\\n              <div ng-if=\\\"applicationState.endpoint.mode.agentProxy && applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Deployment </div>\\n                <!-- node-selection -->\\n                <node-selector model=\\\"formValues.NodeName\\\" endpoint-id=\\\"endpoint.Id\\\"> </node-selector>\\n                <!-- !node-selection -->\\n              </div>\\n              <!-- actions -->\\n              <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\">\\n                  <button\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-primary btn-sm\\\"\\n                    ng-disabled=\\\"state.actionInProgress\\n                    || (state.BuildType === 'editor' && formValues.DockerFileContent === '')\\n                    || (state.BuildType === 'upload' && (!formValues.UploadFile || !formValues.Path))\\n                    || (state.BuildType === 'url' && (!formValues.URL || !formValues.Path))\\n                    || (formValues.ImageNames.length === 0 || !validImageNames())\\\"\\n                    ng-click=\\\"buildImage()\\\"\\n                    button-spinner=\\\"state.actionInProgress\\\"\\n                  >\\n                    <span ng-hide=\\\"state.actionInProgress\\\">Build the image</span>\\n                    <span ng-show=\\\"state.actionInProgress\\\">Image building in progress...</span>\\n                  </button>\\n                  <span class=\\\"text-danger\\\" ng-if=\\\"state.formValidationError\\\" class=\\\"space-left\\\">{{ state.formValidationError }}</span>\\n                </div>\\n              </div>\\n              <!-- !actions -->\\n            </form>\\n          </uib-tab>\\n          <uib-tab index=\\\"1\\\" disable=\\\"!buildLogs\\\">\\n            <uib-tab-heading class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'file-text'\\\" class=\\\"leading-none\\\"></pr-icon> Output </uib-tab-heading>\\n            <pre class=\\\"log_viewer\\\" data-cy=\\\"logViewer\\\">\\n              <div ng-repeat=\\\"line in buildLogs track by $index\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\" ng-click=\\\"active=!active\\\" ng-class=\\\"{'line_selected': active}\\\">{{ line }}</p></div>\\n              <div ng-if=\\\"!buildLogs.length\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\">No build output available.</p></div>\\n            </pre>\\n          </uib-tab>\\n        </uib-tabset>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/images/build/buildimage.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Image details'\\\" breadcrumbs=\\\"[{label:'Images', link:'docker.images'}, image.Id]\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"image.RepoTags.length > 0\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"tag\\\" title-text=\\\"Image tags\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"row\\\">\\n              <div class=\\\"pull-left\\\" ng-repeat=\\\"tag in image.RepoTags\\\" style=\\\"display: table\\\">\\n                <div class=\\\"input-group col-md-1 !pl-3.5 !pr-3.5\\\">\\n                  <span class=\\\"input-group-addon\\\" style=\\\"border-right: 1px solid var(--border-input-group-addon-color); border-radius: 4px\\\" data-cy=\\\"image-tag-{{ tag }}\\\">{{\\n                    tag\\n                  }}</span>\\n                  <span class=\\\"input-group-btn\\\" style=\\\"padding: 0px 5px\\\">\\n                    <span style=\\\"margin: 0px 5px\\\" authorization=\\\"DockerImagePush\\\">\\n                      <a data-toggle=\\\"tooltip\\\" class=\\\"btn btn-primary interactive\\\" title=\\\"Push to registry\\\" ng-click=\\\"pushTag(tag)\\\">\\n                        <pr-icon icon=\\\"'upload'\\\" class=\\\"text-white\\\"></pr-icon>\\n                      </a>\\n                    </span>\\n\\n                    <span class=\\\"mx-1 my-0\\\" authorization=\\\"DockerImageCreate\\\">\\n                      <a data-toggle=\\\"tooltip\\\" class=\\\"btn btn-primary interactive\\\" title=\\\"Pull from registry\\\" ng-click=\\\"pullTag(tag)\\\">\\n                        <pr-icon icon=\\\"'download'\\\" class=\\\"text-white\\\"></pr-icon>\\n                      </a>\\n                    </span>\\n\\n                    <span class=\\\"mx-1 my-0\\\" authorization=\\\"DockerImageDelete\\\">\\n                      <a data-toggle=\\\"tooltip\\\" class=\\\"btn btn-primary interactive\\\" title=\\\"Remove tag\\\" ng-click=\\\"removeTag(tag)\\\">\\n                        <pr-icon icon=\\\"'trash-2'\\\" class=\\\"text-white\\\"></pr-icon>\\n                      </a>\\n                    </span>\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\" authorization=\\\"DockerImageDelete\\\">\\n                Note: you can click on the upload icon <pr-icon icon=\\\"'upload'\\\"></pr-icon> to push an image or on the download icon <pr-icon icon=\\\"'download'\\\"></pr-icon> to pull an\\n                image or on the trash icon <pr-icon icon=\\\"'trash-2'\\\"></pr-icon> to delete a tag.\\n              </span>\\n            </div>\\n            <div class=\\\"col-sm-12\\\">\\n              <span id=\\\"downloadResourceHint\\\" class=\\\"createResource ml-0\\\" style=\\\"display: none\\\">\\n                Download in progress...\\n                <pr-icon icon=\\\"'loader-2'\\\" class-name=\\\"'animate-spin-slow ml-0.5'\\\"></pr-icon>\\n              </span>\\n              <span id=\\\"uploadResourceHint\\\" class=\\\"createResource ml-0.5\\\" style=\\\"display: none\\\">\\n                Upload in progress...\\n                <pr-icon icon=\\\"'loader-2'\\\" class-name=\\\"'animate-spin-slow ml-0.5'\\\"></pr-icon>\\n              </span>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\" authorization=\\\"DockerImageCreate\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"tag\\\" title-text=\\\"Tag the image\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <!-- image-and-registry -->\\n          <por-image-registry\\n            model=\\\"formValues.RegistryModel\\\"\\n            label-class=\\\"col-sm-1\\\"\\n            input-class=\\\"col-sm-11\\\"\\n            endpoint=\\\"endpoint\\\"\\n            is-admin=\\\"isAdmin\\\"\\n            set-validity=\\\"setPullImageValidity\\\"\\n            check-rate-limits=\\\"true\\\"\\n          ></por-image-registry>\\n          <!-- !image-and-registry -->\\n          <!-- tag-note -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">Note: if you don't specify the tag in the image name, <span class=\\\"label label-default\\\">latest</span> will be used.</span>\\n            </div>\\n          </div>\\n          <!-- !tag-note -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!formValues.RegistryModel.Image\\\" ng-click=\\\"tagImage()\\\">Tag</button>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"list\\\" title-text=\\\"Image details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>ID</td>\\n              <td>\\n                {{ image.Id }}\\n                <button authorization=\\\"DockerImageDelete\\\" class=\\\"btn btn-xs btn-danger\\\" ng-click=\\\"removeImage(image.Id)\\\">\\n                  <pr-icon icon=\\\"'trash-2'\\\"></pr-icon> Delete this image\\n                </button>\\n                <button\\n                  authorization=\\\"DockerImageGet\\\"\\n                  class=\\\"btn btn-xs btn-primary\\\"\\n                  ng-click=\\\"exportImage(image)\\\"\\n                  button-spinner=\\\"$ctrl.exportInProgress\\\"\\n                  ng-disabled=\\\"state.exportInProgress\\\"\\n                >\\n                  <pr-icon icon=\\\"'download'\\\"></pr-icon>\\n                  <span ng-hide=\\\"state.exportInProgress\\\">Export this image</span>\\n                  <span ng-show=\\\"state.exportInProgress\\\">Export in progress...</span>\\n                </button>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"image.Parent\\\">\\n              <td>Parent</td>\\n              <td\\n                ><a ui-sref=\\\"docker.images.image({id: image.Parent})\\\">{{ image.Parent }}</a></td\\n              >\\n            </tr>\\n            <tr>\\n              <td>Size</td>\\n              <td>{{ image.Size | humansize }}</td>\\n            </tr>\\n            <tr>\\n              <td>Created</td>\\n              <td>{{ image.Created | getisodate }}</td>\\n            </tr>\\n            <tr>\\n              <td>Build</td>\\n              <td>Docker {{ image.DockerVersion }} on {{ image.Os }}, {{ image.Architecture }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!(image.Labels | emptyobject)\\\">\\n              <td>Labels</td>\\n              <td>\\n                <table class=\\\"table-bordered table-condensed table\\\">\\n                  <tr ng-repeat=\\\"(k, v) in image.Labels\\\">\\n                    <td>{{ k }}</td>\\n                    <td>{{ v }}</td>\\n                  </tr>\\n                </table>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"image.Author\\\">\\n              <td>Author</td>\\n              <td>{{ image.Author }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<dockerfile-details ng-if=\\\"image\\\" image=\\\"image\\\"></dockerfile-details>\\n\\n<div class=\\\"row\\\" ng-if=\\\"history.length > 0\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"list\\\" title-text=\\\"Image layers\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table id=\\\"image-layers\\\" class=\\\"table\\\">\\n          <thead>\\n            <th class=\\\"whitespace-nowrap\\\">\\n              <table-column-header\\n                col-title=\\\"'Order'\\\"\\n                can-sort=\\\"true\\\"\\n                is-sorted=\\\"$ctrl.state.orderBy === 'Order'\\\"\\n                is-sorted-desc=\\\"$ctrl.state.orderBy === 'Order' && $ctrl.state.reverseOrder\\\"\\n                ng-click=\\\"$ctrl.changeOrderBy('Order')\\\"\\n              ></table-column-header>\\n            </th>\\n            <th>\\n              <table-column-header\\n                col-title=\\\"'Size'\\\"\\n                can-sort=\\\"true\\\"\\n                is-sorted=\\\"$ctrl.state.orderBy === 'Size'\\\"\\n                is-sorted-desc=\\\"$ctrl.state.orderBy === 'Size' && $ctrl.state.reverseOrder\\\"\\n                ng-click=\\\"$ctrl.changeOrderBy('Size')\\\"\\n              ></table-column-header>\\n            </th>\\n            <th>\\n              <table-column-header\\n                col-title=\\\"'Layer'\\\"\\n                can-sort=\\\"true\\\"\\n                is-sorted=\\\"$ctrl.state.orderBy === 'Layer'\\\"\\n                is-sorted-desc=\\\"$ctrl.state.orderBy === 'Layer' && $ctrl.state.reverseOrder\\\"\\n                ng-click=\\\"$ctrl.changeOrderBy('Layer')\\\"\\n              ></table-column-header>\\n            </th>\\n          </thead>\\n          <tbody>\\n            <tr ng-repeat=\\\"layer in history | orderBy:sortType:sortReverse\\\">\\n              <td class=\\\"whitespace-nowrap\\\">\\n                {{ layer.Order }}\\n              </td>\\n              <td class=\\\"whitespace-nowrap\\\">\\n                {{ layer.Size | humansize }}\\n              </td>\\n              <td class=\\\"expand\\\">\\n                <div ng-if=\\\"layer.CreatedBy.length > 130\\\">\\n                  <span id=\\\"layer-command-{{ $index }}-full\\\" style=\\\"display: none\\\">\\n                    {{ layer.CreatedBy | imagelayercommand }}\\n                  </span>\\n                  <span id=\\\"layer-command-{{ $index }}-short\\\">\\n                    {{ layer.CreatedBy | imagelayercommand | truncate: 130 }}\\n                    <span ng-if=\\\"layer.CreatedBy.length > 130\\\" class=\\\"ml-1\\\">\\n                      <a id=\\\"layer-command-expander{{ $index }}\\\" class=\\\"btn\\\" ng-click=\\\"toggleLayerCommand($index)\\\">\\n                        <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon>\\n                      </a>\\n                    </span>\\n                  </span>\\n                </div>\\n                <div ng-if=\\\"layer.CreatedBy.length <= 130\\\">\\n                  <span id=\\\"layer-command-{{ $index }}-full\\\">\\n                    {{ layer.CreatedBy | imagelayercommand }}\\n                  </span>\\n                </div>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/images/edit/image.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Image list'\\\" breadcrumbs=\\\"['Images']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\" authorization=\\\"DockerImageCreate\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"download\\\" title-text=\\\"Pull image \\\"> </rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <!-- image-and-registry -->\\n          <por-image-registry\\n            model=\\\"formValues.RegistryModel\\\"\\n            auto-complete=\\\"true\\\"\\n            label-class=\\\"col-sm-1\\\"\\n            input-class=\\\"col-sm-11\\\"\\n            endpoint=\\\"endpoint\\\"\\n            is-admin=\\\"isAdmin\\\"\\n            set-validity=\\\"setPullImageValidity\\\"\\n            check-rate-limits=\\\"true\\\"\\n          >\\n            <div ng-if=\\\"applicationState.endpoint.mode.agentProxy && applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\\\">\\n              <div class=\\\"col-sm-12 form-section-title\\\"> Deployment </div>\\n              <!-- node-selection -->\\n              <node-selector model=\\\"formValues.NodeName\\\" endpoint-id=\\\"endpoint.Id\\\"> </node-selector>\\n              <!-- !node-selection -->\\n            </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"btn btn-primary btn-sm\\\"\\n                  ng-disabled=\\\"state.actionInProgress || !formValues.RegistryModel.Image || !state.pullRateValid\\\"\\n                  ng-click=\\\"pullImage()\\\"\\n                  button-spinner=\\\"state.actionInProgress\\\"\\n                >\\n                  <span ng-hide=\\\"state.actionInProgress\\\">Pull the image</span>\\n                  <span ng-show=\\\"state.actionInProgress\\\">Download in progress...</span>\\n                </button>\\n              </div>\\n            </div>\\n          </por-image-registry>\\n          <!-- !image-and-registry -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<docker-images-datatable\\n  is-host-column-visible=\\\"applicationState.endpoint.mode.agentProxy && applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\\\"\\n  on-download=\\\"(downloadAction)\\\"\\n  on-remove=\\\"(confirmRemovalAction)\\\"\\n  is-export-in-progress=\\\"state.exportInProgress\\\"\\n  environment=\\\"endpoint\\\"\\n></docker-images-datatable>\\n\";;\nvar path = 'app/docker/views/images/images.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Import image'\\\" breadcrumbs=\\\"[{label:'Images', link:'docker.images'}, 'Import image']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <!-- upload -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Upload </div>\\n          <div class=\\\"form-group\\\">\\n            <span class=\\\"col-sm-12 text-muted small\\\"> You can upload a tar archive containing your images. </span>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12 vertical-center\\\">\\n              <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ngf-select ngf-min-size=\\\"10\\\" ng-model=\\\"formValues.UploadFile\\\">Select file</button>\\n              <span class=\\\"ml-1\\\">\\n                {{ formValues.UploadFile.name }}\\n                <pr-icon icon=\\\"'x'\\\" mode=\\\"'danger'\\\" ng-if=\\\"!formValues.UploadFile\\\"></pr-icon>\\n              </span>\\n            </div>\\n          </div>\\n          <!-- !upload -->\\n          <div ng-if=\\\"applicationState.endpoint.mode.agentProxy && applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Deployment </div>\\n            <!-- node-selection -->\\n            <node-selector model=\\\"formValues.NodeName\\\" endpoint-id=\\\"endpoint.Id\\\"> </node-selector>\\n            <!-- !node-selection -->\\n          </div>\\n          <div class=\\\"row\\\" authorization=\\\"DockerImageCreate\\\">\\n            <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n              <rd-widget>\\n                <rd-widget-header icon=\\\"tag\\\" title-text=\\\"Tag the image\\\"></rd-widget-header>\\n                <rd-widget-body>\\n                  <!-- image-and-registry -->\\n                  <por-image-registry\\n                    model=\\\"formValues.RegistryModel\\\"\\n                    label-class=\\\"col-sm-1\\\"\\n                    input-class=\\\"col-sm-11\\\"\\n                    endpoint=\\\"endpoint\\\"\\n                    is-admin=\\\"isAdmin\\\"\\n                    set-validity=\\\"setPullImageValidity\\\"\\n                    check-rate-limits=\\\"true\\\"\\n                  ></por-image-registry>\\n                </rd-widget-body>\\n              </rd-widget>\\n            </div>\\n          </div>\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress || !formValues.UploadFile\\\"\\n                ng-click=\\\"uploadImage()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Upload</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Images uploading in progress...</span>\\n              </button>\\n              <span class=\\\"text-danger ml-1\\\" ng-if=\\\"state.formValidationError\\\">{{ state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/images/import/importimage.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create network'\\\" breadcrumbs=\\\"[{label:'Networks', link:'docker.networks'}, 'Add network']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"networkCreationForm\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"network_name\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-10 col-lg-11\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"config.Name\\\" id=\\\"network_name\\\" placeholder=\\\"e.g. myNetwork\\\" />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Driver configuration </div>\\n          <!-- driver-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"network_driver\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Driver</label>\\n            <div class=\\\"col-sm-10 col-lg-11\\\">\\n              <select class=\\\"form-control\\\" ng-options=\\\"driver for driver in availableNetworkDrivers\\\" ng-model=\\\"config.Driver\\\" ng-if=\\\"availableNetworkDrivers.length > 0\\\">\\n                <option disabled hidden value=\\\"\\\">Select a driver</option>\\n              </select>\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"config.Driver\\\" id=\\\"network_driver\\\" placeholder=\\\"e.g. driverName\\\" ng-if=\\\"availableNetworkDrivers.length === 0\\\" />\\n            </div>\\n          </div>\\n          <!-- !driver-input -->\\n          <!-- driver-options -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12 mt-1\\\">\\n              <label class=\\\"control-label text-left\\\">\\n                Driver options\\n                <portainer-tooltip message=\\\"'Driver options are specific to the selected driver. Please refer to the selected driver documentation.'\\\"></portainer-tooltip>\\n              </label>\\n            </div>\\n            <!-- driver-options-input-list -->\\n            <div class=\\\"col-sm-12 form-inline mt-2\\\">\\n              <div ng-repeat=\\\"option in formValues.DriverOptions\\\" class=\\\"mt-1\\\">\\n                <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">name</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"option.name\\\" placeholder=\\\"e.g. com.docker.network.bridge.enable_icc\\\" />\\n                </div>\\n                <div class=\\\"input-group col-sm-6 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">value</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"option.value\\\" placeholder=\\\"e.g. true\\\" />\\n                  <span class=\\\"input-group-btn\\\">\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeDriverOption($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </span>\\n                </div>\\n              </div>\\n              <div class=\\\"small interactive text-muted vertical-center mt-1\\\" ng-click=\\\"addDriverOption()\\\"> <pr-icon icon=\\\"'plus'\\\" size=\\\"'md'\\\"></pr-icon> Add driver option </div>\\n            </div>\\n            <!-- !driver-options-input-list -->\\n          </div>\\n          <!-- !driver-options -->\\n          <!-- macvlan-management -->\\n          <network-macvlan-form ng-show=\\\"config.Driver === 'macvlan'\\\" data=\\\"formValues.Macvlan\\\" application-state=\\\"applicationState\\\"></network-macvlan-form>\\n          <!-- !macvlan-management -->\\n          <div ng-hide=\\\"config.Driver === 'macvlan' && formValues.Macvlan.Scope === 'swarm'\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> IPV4 Network configuration </div>\\n            <!-- subnet-gateway-inputs -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"ipv4_network_subnet\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Subnet</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.IPV4.Subnet\\\" id=\\\"ipv4_network_subnet\\\" placeholder=\\\"e.g. 172.20.0.0/16\\\" />\\n              </div>\\n              <label for=\\\"ipv4_network_gateway\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Gateway</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.IPV4.Gateway\\\" id=\\\"ipv4_network_gateway\\\" placeholder=\\\"e.g. 172.20.10.11\\\" />\\n              </div>\\n            </div>\\n            <!-- !subnet-gateway-inputs -->\\n            <!-- iprange-auxaddr-inputs -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"ipv4_network_iprange\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">IP range</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.IPV4.IPRange\\\" id=\\\"ipv4_network_iprange\\\" placeholder=\\\"e.g. 172.20.10.128/25\\\" />\\n              </div>\\n            </div>\\n            <div ng-repeat=\\\"auxAddress in formValues.IPV4.AuxiliaryAddresses track by $index\\\" class=\\\"form-group\\\">\\n              <label for=\\\"ipv4_network_auxaddr_{{ $index }}\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Exclude IP</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"formValues.IPV4.AuxiliaryAddresses[$index]\\\"\\n                  ng-change=\\\"checkIPV4AuxiliaryAddress($index)\\\"\\n                  id=\\\"ipv4_network_auxaddr_{{ $index }}\\\"\\n                  placeholder=\\\"e.g. my-router=172.20.10.129\\\"\\n                />\\n              </div>\\n              <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeIPV4AuxAddress($index)\\\">\\n                <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n              </button>\\n              <div class=\\\"col-sm-12 small text-warning\\\" ng-if=\\\"state.IPV4AuxiliaryAddressesError[$index]\\\">\\n                <p class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Exclude ip cannot be the same as gateway.</p>\\n              </div>\\n            </div>\\n            <!-- !iprange-auxaddr-inputs -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12 small interactive text-muted vertical-center\\\" ng-click=\\\"addIPV4AuxAddress()\\\">\\n                <pr-icon icon=\\\"'plus'\\\" size=\\\"'md'\\\"></pr-icon> Add excluded IP\\n              </div>\\n            </div>\\n          </div>\\n          <div ng-show=\\\"config.Driver === 'bridge' || (config.Driver === 'macvlan' && formValues.Macvlan.Scope !== 'swarm')\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> IPV6 Network configuration </div>\\n            <!-- subnet-gateway-inputs -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"ipv6_network_subnet\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Subnet</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.IPV6.Subnet\\\" id=\\\"ipv6_network_subnet\\\" placeholder=\\\"e.g. 2001:db8::/48\\\" />\\n              </div>\\n              <label for=\\\"ipv6_network_gateway\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Gateway</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.IPV6.Gateway\\\" id=\\\"ipv6_network_gateway\\\" placeholder=\\\"e.g. 2001:db8::1\\\" />\\n              </div>\\n            </div>\\n            <!-- !subnet-gateway-inputs -->\\n            <!-- iprange-auxaddr-inputs -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"ipv6_network_iprange\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">IP range</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.IPV6.IPRange\\\" id=\\\"ipv6_network_iprange\\\" placeholder=\\\"e.g. 2001:db8::/64\\\" />\\n              </div>\\n            </div>\\n            <div ng-repeat=\\\"auxAddress in formValues.IPV6.AuxiliaryAddresses track by $index\\\" class=\\\"form-group\\\">\\n              <label for=\\\"ipv6_network_auxaddr_{{ $index }}\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Exclude IP</label>\\n              <div class=\\\"col-sm-4 col-lg-5\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"formValues.IPV6.AuxiliaryAddresses[$index]\\\"\\n                  ng-change=\\\"checkIPV6AuxiliaryAddress($index)\\\"\\n                  id=\\\"ipv6_network_auxaddr_{{ $index }}\\\"\\n                  placeholder=\\\"e.g. my-router=2001:db8::1\\\"\\n                />\\n              </div>\\n              <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeIPV6AuxAddress($index)\\\">\\n                <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n              </button>\\n              <div class=\\\"col-sm-12 small text-warning\\\" ng-show=\\\"state.IPV6AuxiliaryAddressesError[$index]\\\">\\n                <p class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Exclude ip cannot be the same as gateway.</p>\\n              </div>\\n            </div>\\n            <!-- !iprange-auxaddr-inputs -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12 small interactive text-muted vertical-center\\\" ng-click=\\\"addIPV6AuxAddress()\\\">\\n                <pr-icon icon=\\\"'plus'\\\" size=\\\"'md'\\\"></pr-icon> Add excluded IP\\n              </div>\\n            </div>\\n          </div>\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Advanced configuration </div>\\n          <!-- labels -->\\n          <div class=\\\"form-group\\\">\\n            <!-- labels-input-list -->\\n            <div class=\\\"col-sm-12 form-inline\\\">\\n              <div ng-repeat=\\\"label in formValues.Labels\\\" class=\\\"mt-1\\\">\\n                <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">name</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.key\\\" placeholder=\\\"e.g. com.example.foo\\\" />\\n                </div>\\n                <div class=\\\"input-group col-sm-6 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">value</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" />\\n                  <span class=\\\"input-group-btn\\\">\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeLabel($index)\\\"> <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon> </button\\n                  ></span>\\n                </div>\\n              </div>\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12 small interactive text-muted vertical-center mt-1\\\" ng-click=\\\"addLabel()\\\"> <pr-icon icon=\\\"'plus'\\\" size=\\\"'md'\\\"></pr-icon> Add label </div>\\n              </div>\\n            </div>\\n            <!-- !labels-input-list -->\\n          </div>\\n          <!-- !labels-->\\n          <!-- internal -->\\n          <div class=\\\"form-group\\\" ng-hide=\\\"config.Driver === 'macvlan' && formValues.Macvlan.Scope === 'local'\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-2'\\\"\\n                checked=\\\"config.Internal\\\"\\n                label=\\\"'Isolated network'\\\"\\n                tooltip=\\\"'An isolated network has no inbound or outbound communications.'\\\"\\n                on-change=\\\"(onChangeInternal)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <!-- !internal -->\\n          <!-- attachable -->\\n          <div class=\\\"form-group\\\" ng-hide=\\\"config.Driver === 'macvlan' && formValues.Macvlan.Scope === 'local'\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-2'\\\"\\n                checked=\\\"config.Attachable\\\"\\n                label=\\\"'Enable manual container attachment'\\\"\\n                on-change=\\\"(onChangeAttachable)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <!-- !attachable -->\\n          <div\\n            ng-if=\\\"\\n              applicationState.endpoint.mode.agentProxy &&\\n              applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' &&\\n              config.Driver !== 'overlay' &&\\n              config.Driver !== 'macvlan'\\n            \\\"\\n          >\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Deployment </div>\\n            <!-- node-selection -->\\n            <node-selector model=\\\"formValues.NodeName\\\" endpoint-id=\\\"endpoint.Id\\\"> </node-selector>\\n            <!-- !node-selection -->\\n          </div>\\n          <!-- access-control -->\\n          <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n          <!-- !access-control -->\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress || !config.Name || (config.Driver === 'macvlan' && networkCreationForm.$invalid) || !isValid()\\\"\\n                ng-click=\\\"create()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Create the network</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Creating network...</span>\\n              </button>\\n              <span class=\\\"text-danger space-left\\\" ng-if=\\\"state.formValidationError\\\">{{ state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/networks/create/createnetwork.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Network list'\\\" breadcrumbs=\\\"['Networks']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<networks-datatable ng-if=\\\"networks\\\" dataset=\\\"networks\\\" on-refresh=\\\"(getNetworks)\\\" on-remove=\\\"(removeAction)\\\"></networks-datatable>\\n\";;\nvar path = 'app/docker/views/networks/networks.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Node Browser'\\\"\\n  breadcrumbs=\\\"[\\n    {\\n      label:'swarm',\\n      link:'docker.swarm'\\n    },\\n    {\\n      label: $ctrl.node.Hostname,\\n      link: 'docker.nodes.node',\\n      linkParams: { id: $ctrl.nodeId }\\n    },\\n    'browse'\\n  ]\\\"\\n>\\n</page-header>\\n\\n<host-browser ng-if=\\\"$ctrl.node\\\" endpoint-id=\\\"$ctrl.endpoint.Id\\\"></host-browser>\\n\";;\nvar path = 'app/docker/views/nodes/node-browser/node-browser.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<host-overview\\n  agent-api-version=\\\"$ctrl.state.agentApiVersion\\\"\\n  is-agent=\\\"$ctrl.state.isAgent\\\"\\n  host-details=\\\"$ctrl.hostDetails\\\"\\n  engine-details=\\\"$ctrl.engineDetails\\\"\\n  disks=\\\"$ctrl.disks\\\"\\n  devices=\\\"$ctrl.devices\\\"\\n  refresh-url=\\\"docker.nodes.node\\\"\\n  browse-url=\\\"docker.nodes.node.browse\\\"\\n  host-features-enabled=\\\"$ctrl.state.enableHostManagementFeatures\\\"\\n>\\n  <swarm-node-details-panel details=\\\"$ctrl.nodeDetails\\\" original-node=\\\"$ctrl.originalNode\\\"></swarm-node-details-panel>\\n</host-overview>\\n\";;\nvar path = 'app/docker/views/nodes/node-details/node-details-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div ng-if=\\\"$ctrl.registry\\\">\\n  <page-header title=\\\"'Registry access'\\\" breadcrumbs=\\\"[{label:'Registries', link:$ctrl.registryTo,}, $ctrl.registry.Name, 'Access management']\\\"> </page-header>\\n\\n  <registry-details registry=\\\"$ctrl.registry\\\"></registry-details>\\n\\n  <por-access-management\\n    ng-if=\\\"$ctrl.endpointGroup\\\"\\n    access-controlled-entity=\\\"$ctrl.registryEndpointAccesses\\\"\\n    entity-type=\\\"registry\\\"\\n    action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n    update-access=\\\"$ctrl.updateAccess\\\"\\n    filter-users=\\\"$ctrl.filterUsers\\\"\\n  >\\n  </por-access-management>\\n</div>\\n\";;\nvar path = 'app/docker/views/registries/access/registryAccess.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create secret'\\\" breadcrumbs=\\\"[{label:'Secrets', link:'docker.secrets'}, 'Add secret']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"secret_name\\\" class=\\\"col-sm-2 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-10\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Name\\\" id=\\\"secret_name\\\" placeholder=\\\"e.g. mySecret\\\" />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- secret-data -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"secret_data\\\" class=\\\"col-sm-2 control-label text-left\\\">Secret</label>\\n            <div class=\\\"col-sm-10\\\">\\n              <textarea class=\\\"form-control\\\" rows=\\\"5\\\" ng-model=\\\"formValues.Data\\\" ng-trim=\\\"false\\\"></textarea>\\n            </div>\\n          </div>\\n          <!-- !secret-data -->\\n          <!-- encode-secret -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-2'\\\"\\n                checked=\\\"formValues.encodeSecret\\\"\\n                label=\\\"'Encode secret'\\\"\\n                on-change=\\\"(handleEncodeSecretChange)\\\"\\n                tooltip=\\\"'Secrets need to be base64 encoded. Disable this if your secret is already base64 encoded.'\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <!-- !encode-secret -->\\n          <!-- labels -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12 mt-1\\\">\\n              <label class=\\\"control-label space-right text-left\\\">Labels</label>\\n              <span class=\\\"label label-default interactive vertical-center space-left\\\" ng-click=\\\"addLabel()\\\"> <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add label </span>\\n            </div>\\n            <!-- labels-input-list -->\\n            <div class=\\\"col-sm-12 form-inline mt-2\\\">\\n              <div ng-repeat=\\\"label in formValues.Labels\\\" class=\\\"mt-1\\\">\\n                <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">name</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.key\\\" placeholder=\\\"e.g. com.example.foo\\\" />\\n                </div>\\n                <div class=\\\"input-group col-sm-6 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">value</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" />\\n                  <span class=\\\"input-group-btn\\\">\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeLabel($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !labels-input-list -->\\n          </div>\\n          <!-- !labels-->\\n          <!-- access-control -->\\n          <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n          <!-- !access-control -->\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress || !formValues.Name || !formValues.Data\\\"\\n                ng-click=\\\"create()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Create the secret</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Creating secret...</span>\\n              </button>\\n              <span class=\\\"text-danger space-left\\\" ng-if=\\\"state.formValidationError\\\">{{ state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/secrets/create/createsecret.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Secret details'\\\" breadcrumbs=\\\"[{label:'Secrets', link:'docker.secrets', linkParams:{ id: secret.Id }}, secret.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"lock\\\" title-text=\\\"Secret details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Name</td>\\n              <td>{{ secret.Name }}</td>\\n            </tr>\\n            <tr>\\n              <td>ID</td>\\n              <td>\\n                {{ secret.Id }}\\n                <button authorization=\\\"DockerSecretDelete\\\" class=\\\"btn btn-xs btn-dangerlight\\\" ng-click=\\\"removeSecret(secret.Id)\\\"\\n                  ><pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Delete this secret</button\\n                >\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Created</td>\\n              <td>{{ secret.CreatedAt | getisodate }}</td>\\n            </tr>\\n            <tr>\\n              <td>Last updated</td>\\n              <td>{{ secret.UpdatedAt | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!(secret.Labels | emptyobject)\\\">\\n              <td>Labels</td>\\n              <td>\\n                <table class=\\\"table-bordered table-condensed table\\\">\\n                  <tr ng-repeat=\\\"(k, v) in secret.Labels\\\">\\n                    <td>{{ k }}</td>\\n                    <td>{{ v }}</td>\\n                  </tr>\\n                </table>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<!-- access-control-panel -->\\n<access-control-panel\\n  ng-if=\\\"secret\\\"\\n  resource-id=\\\"secret.Id\\\"\\n  resource-control=\\\"secret.ResourceControl\\\"\\n  resource-type=\\\"resourceType\\\"\\n  on-update-success=\\\"(onUpdateResourceControlSuccess)\\\"\\n  environment-id=\\\"endpoint.Id\\\"\\n>\\n</access-control-panel>\\n<!-- !access-control-panel -->\\n\";;\nvar path = 'app/docker/views/secrets/edit/secret.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Secrets list'\\\" breadcrumbs=\\\"['Secrets']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<docker-secrets-datatable dataset=\\\"secrets\\\" on-remove=\\\"(removeAction)\\\" on-refresh=\\\"(getSecrets)\\\"> </docker-secrets-datatable>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <secrets-datatable\\n      title-text=\\\"Secrets\\\"\\n      title-icon=\\\"lock\\\"\\n      dataset=\\\"secrets\\\"\\n      table-key=\\\"secrets\\\"\\n      order-by=\\\"Name\\\"\\n      remove-action=\\\"removeAction\\\"\\n      refresh-callback=\\\"getSecrets\\\"\\n    ></secrets-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/secrets/secrets.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create service'\\\" breadcrumbs=\\\"[{label:'Services', link:'docker.services'}, 'Add service']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" autocomplete=\\\"off\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"service_name\\\" class=\\\"col-sm-2 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-8\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Name\\\" id=\\\"service_name\\\" placeholder=\\\"e.g. myService\\\" />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Image configuration </div>\\n          <!-- image-and-registry -->\\n          <por-image-registry\\n            model=\\\"formValues.RegistryModel\\\"\\n            auto-complete=\\\"true\\\"\\n            label-class=\\\"col-sm-2\\\"\\n            input-class=\\\"col-sm-8\\\"\\n            endpoint=\\\"endpoint\\\"\\n            is-admin=\\\"isAdmin\\\"\\n            check-rate-limits=\\\"true\\\"\\n            set-validity=\\\"setPullImageValidity\\\"\\n          >\\n          </por-image-registry>\\n          <!-- !image-and-registry -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Scheduling </div>\\n          <!-- scheduling-mode -->\\n          <div class=\\\"form-group\\\">\\n            <div>\\n              <label class=\\\"control-label col-sm-2 text-left\\\"> Scheduling mode </label>\\n              <div class=\\\"btn-group btn-group-sm col-sm-8\\\">\\n                <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.Mode\\\" uib-btn-radio=\\\"'global'\\\">Global</label>\\n                <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.Mode\\\" uib-btn-radio=\\\"'replicated'\\\">Replicated</label>\\n              </div>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group form-inline\\\" ng-if=\\\"formValues.Mode === 'replicated'\\\">\\n            <div>\\n              <label class=\\\"control-label col-sm-2 text-left\\\"> Replicas </label>\\n              <div class=\\\"col-sm-8\\\">\\n                <input type=\\\"number\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Replicas\\\" id=\\\"replicas\\\" placeholder=\\\"e.g. 3\\\" />\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !scheduling-mode -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Ports configuration </div>\\n          <!-- port-mapping -->\\n          <div class=\\\"form-group\\\">\\n            <label class=\\\"control-label col-sm-2 text-left\\\">Port mapping</label>\\n            <div class=\\\"col-sm-8 pt-2\\\">\\n              <span class=\\\"label label-default interactive vertical-center\\\" ng-click=\\\"addPortBinding()\\\"> <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> map additional port </span>\\n            </div>\\n            <div class=\\\"col-sm-12 form-inline mt-2\\\">\\n              <div ng-repeat=\\\"portBinding in formValues.Ports\\\" class=\\\"mt-1\\\">\\n                <!-- host-port -->\\n                <div class=\\\"input-group col-sm-3 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">host</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"portBinding.PublishedPort\\\" placeholder=\\\"e.g. 80 or 1.2.3.4:80 (optional)\\\" />\\n                </div>\\n                <!-- !host-port -->\\n                <span style=\\\"margin: 0 10px 0 10px\\\">\\n                  <pr-icon icon=\\\"'arrow-right'\\\"></pr-icon>\\n                </span>\\n                <!-- container-port -->\\n                <div class=\\\"input-group col-sm-3 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">container</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"portBinding.TargetPort\\\" placeholder=\\\"e.g. 80\\\" />\\n                </div>\\n                <!-- !container-port -->\\n                <!-- protocol-actions -->\\n                <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                  <div class=\\\"btn-group btn-group-sm\\\">\\n                    <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.Protocol\\\" uib-btn-radio=\\\"'tcp'\\\">TCP</label>\\n                    <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.Protocol\\\" uib-btn-radio=\\\"'udp'\\\">UDP</label>\\n                  </div>\\n                  <div class=\\\"btn-group btn-group-sm\\\">\\n                    <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.PublishMode\\\" uib-btn-radio=\\\"'ingress'\\\">Ingress</label>\\n                    <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.PublishMode\\\" uib-btn-radio=\\\"'host'\\\">Host</label>\\n                  </div>\\n                  <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removePortBinding($index)\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                  </button>\\n                </div>\\n                <!-- !protocol-actions -->\\n              </div>\\n            </div>\\n            <!-- !port-mapping-input-list -->\\n          </div>\\n          <!-- !port-mapping -->\\n          <!-- create-webhook -->\\n          <div ng-if=\\\"endpoint.Type !== 4 && isAdmin\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Webhooks </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <por-switch-field\\n                  label-class=\\\"'col-sm-2'\\\"\\n                  checked=\\\"$ctrl.formValues.Webhook\\\"\\n                  label=\\\"'Create a service webhook'\\\"\\n                  on-change=\\\"(handleWebHookChange)\\\"\\n                  tooltip=\\\"'Create a webhook (or callback URI) to automate the update of this service. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this service.'\\\"\\n                ></por-switch-field>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !create-webhook  -->\\n          <!-- access-control -->\\n          <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n          <!-- !access-control -->\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress || !formValues.RegistryModel.Image || !volumesAreValid()\\\"\\n                ng-click=\\\"create()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Create the service</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Creating service...</span>\\n              </button>\\n              <span class=\\\"text-danger\\\" ng-if=\\\"state.formValidationError\\\" style=\\\"margin-left: 5px\\\">{{ state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <ul class=\\\"nav nav-pills nav-justified\\\">\\n          <li class=\\\"active interactive\\\"><a data-target=\\\"#command\\\" data-toggle=\\\"tab\\\">Command & Logging</a></li>\\n          <li class=\\\"interactive\\\"><a data-target=\\\"#volumes\\\" data-toggle=\\\"tab\\\">Volumes</a></li>\\n          <li class=\\\"interactive\\\"><a data-target=\\\"#network\\\" data-toggle=\\\"tab\\\">Network</a></li>\\n          <li class=\\\"interactive\\\"><a data-target=\\\"#env\\\" data-toggle=\\\"tab\\\">Env</a></li>\\n          <li class=\\\"interactive\\\"><a data-target=\\\"#labels\\\" data-toggle=\\\"tab\\\">Labels</a></li>\\n          <li class=\\\"interactive\\\"><a data-target=\\\"#update-config\\\" data-toggle=\\\"tab\\\">Update config & Restart</a></li>\\n          <li class=\\\"interactive\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\"><a data-target=\\\"#secrets\\\" data-toggle=\\\"tab\\\">Secrets</a></li>\\n          <li class=\\\"interactive\\\"><a data-target=\\\"#configs\\\" data-toggle=\\\"tab\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\">Configs</a></li>\\n          <li class=\\\"interactive\\\"><a data-target=\\\"#resources-placement\\\" data-toggle=\\\"tab\\\" ng-click=\\\"refreshSlider()\\\">Resources & Placement</a></li>\\n        </ul>\\n        <!-- tab-content -->\\n        <div class=\\\"tab-content\\\">\\n          <!-- tab-command -->\\n          <div class=\\\"tab-pane active\\\" id=\\\"command\\\">\\n            <form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n              <div class=\\\"col-sm-12 form-section-title\\\"> Command </div>\\n              <!-- command-input -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"service_command\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Command</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Command\\\" id=\\\"service_command\\\" placeholder=\\\"e.g. /usr/bin/nginx -t -c /mynginx.conf\\\" />\\n                </div>\\n              </div>\\n              <!-- !command-input -->\\n              <!-- entrypoint-input -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"service_entrypoint\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Entrypoint</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.EntryPoint\\\" id=\\\"service_entrypoint\\\" placeholder=\\\"e.g. /bin/sh -c\\\" />\\n                </div>\\n              </div>\\n              <!-- !entrypoint-input -->\\n              <!-- workdir-user-input -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"service_workingdir\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Working Dir</label>\\n                <div class=\\\"col-sm-4\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.WorkingDir\\\" id=\\\"service_workingdir\\\" placeholder=\\\"e.g. /myapp\\\" />\\n                </div>\\n                <label for=\\\"service_user\\\" class=\\\"col-sm-1 control-label text-left\\\">User</label>\\n                <div class=\\\"col-sm-4\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.User\\\" id=\\\"service_user\\\" placeholder=\\\"e.g. nginx\\\" />\\n                </div>\\n              </div>\\n              <!-- !workdir-user-input -->\\n              <div class=\\\"col-sm-12 form-section-title\\\"> Logging </div>\\n              <!-- logging-driver -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"log-driver\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Driver</label>\\n                <div class=\\\"col-sm-4\\\">\\n                  <select class=\\\"form-control\\\" ng-model=\\\"formValues.LogDriverName\\\" id=\\\"log-driver\\\">\\n                    <option selected value=\\\"\\\">Default logging driver</option>\\n                    <option ng-repeat=\\\"driver in availableLoggingDrivers\\\" ng-value=\\\"driver\\\">{{ driver }}</option>\\n                    <option value=\\\"none\\\">none</option>\\n                  </select>\\n                </div>\\n                <div class=\\\"col-sm-5\\\">\\n                  <p class=\\\"small text-muted\\\">\\n                    Logging driver for service that will override the default docker daemon driver. Select Default logging driver if you don't want to override it. Supported\\n                    logging drivers can be found\\n                    <a href=\\\"https://docs.docker.com/engine/admin/logging/overview/#supported-logging-drivers\\\" target=\\\"_blank\\\">in the Docker documentation</a>.\\n                  </p>\\n                </div>\\n              </div>\\n              <!-- !logging-driver -->\\n              <!-- logging-opts -->\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12 mt-1\\\">\\n                  <label class=\\\"control-label text-left\\\">\\n                    Options\\n                    <portainer-tooltip\\n                      position=\\\"'top'\\\"\\n                      message=\\\"'Add button is disabled unless a driver other than none or default is selected. Options are specific to the selected driver, refer to the driver documentation.'\\\"\\n                    ></portainer-tooltip>\\n                  </label>\\n                  <span\\n                    class=\\\"label label-default interactive vertical-center\\\"\\n                    style=\\\"margin-left: 10px\\\"\\n                    ng-click=\\\"!formValues.LogDriverName || formValues.LogDriverName === 'none' || addLogDriverOpt(formValues.LogDriverName)\\\"\\n                  >\\n                    <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add logging driver option\\n                  </span>\\n                </div>\\n                <!-- logging-opts-input-list -->\\n                <div class=\\\"col-sm-12 form-inline mt-2\\\">\\n                  <div ng-repeat=\\\"opt in formValues.LogDriverOpts\\\" class=\\\"mt-1\\\">\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">option</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"opt.name\\\" placeholder=\\\"e.g. FOO\\\" />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">value</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"opt.value\\\" placeholder=\\\"e.g. bar\\\" />\\n                    </div>\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeLogDriverOpt($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- logging-opts-input-list -->\\n              </div>\\n              <!-- !logging-opts -->\\n            </form>\\n          </div>\\n          <!-- !tab-command -->\\n          <!-- tab-volume -->\\n          <div class=\\\"tab-pane\\\" id=\\\"volumes\\\">\\n            <form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n              <!-- volumes -->\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n                  <label class=\\\"control-label text-left\\\">Volume mapping</label>\\n                  <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addVolume()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> map additional volume\\n                  </span>\\n                </div>\\n                <!-- volumes-input-list -->\\n                <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n                  <div ng-repeat=\\\"volume in formValues.Volumes\\\">\\n                    <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n                      <!-- volume-line1 -->\\n                      <div class=\\\"col-sm-12 form-inline\\\">\\n                        <!-- container-path -->\\n                        <div class=\\\"input-group col-sm-6\\\">\\n                          <div class=\\\"input-group input-group-sm w-full\\\">\\n                            <span class=\\\"input-group-addon\\\">container</span>\\n                            <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"volume.Target\\\" placeholder=\\\"e.g. /path/in/container\\\" />\\n                          </div>\\n                          <div class=\\\"small text-warning\\\" ng-show=\\\"!volume.Target\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Target is required. </div>\\n                        </div>\\n                        <!-- !container-path -->\\n                        <!-- volume-type -->\\n                        <div class=\\\"input-group col-sm-5\\\" style=\\\"margin-left: 5px; vertical-align: top\\\">\\n                          <div class=\\\"btn-group btn-group-sm\\\" ng-if=\\\"allowBindMounts\\\">\\n                            <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.Type\\\" uib-btn-radio=\\\"'volume'\\\" ng-click=\\\"volume.Source = null\\\">Volume</label>\\n                            <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.Type\\\" uib-btn-radio=\\\"'bind'\\\" ng-click=\\\"volume.Source = null\\\">Bind</label>\\n                          </div>\\n                          <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeVolume($index)\\\">\\n                            <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                          </button>\\n                        </div>\\n                        <!-- !volume-type -->\\n                      </div>\\n                      <!-- !volume-line1 -->\\n                      <!-- volume-line2 -->\\n                      <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 5px\\\">\\n                        <div style=\\\"height: 30px; display: inline-block; vertical-align: top; display: inline-flex; align-items: center\\\">\\n                          <pr-icon icon=\\\"'arrow-right'\\\"></pr-icon>\\n                        </div>\\n                        <!-- volume -->\\n                        <div class=\\\"col-sm-6 input-group\\\" ng-if=\\\"volume.Type === 'volume'\\\" style=\\\"float: none; padding: 0\\\">\\n                          <div class=\\\"input-group input-group-sm w-full\\\">\\n                            <span class=\\\"input-group-addon\\\">volume</span>\\n                            <select\\n                              class=\\\"form-control\\\"\\n                              ng-model=\\\"volume.Source\\\"\\n                              ng-options=\\\"vol as ((vol.Id|truncate:30) + ' - ' + (vol.Driver|truncate:30)) for vol in availableVolumes\\\"\\n                            >\\n                              <option selected disabled value=\\\"\\\">Select a volume</option>\\n                            </select>\\n                          </div>\\n                          <div class=\\\"small text-warning\\\" ng-show=\\\"!volume.Source\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Source is required. </div>\\n                        </div>\\n                        <!-- !volume -->\\n                        <!-- bind -->\\n                        <div class=\\\"input-group input-group-sm col-sm-6\\\" ng-if=\\\"volume.Type === 'bind'\\\">\\n                          <div class=\\\"input-group input-group-sm w-full\\\">\\n                            <span class=\\\"input-group-addon\\\">host</span>\\n                            <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"volume.Source\\\" placeholder=\\\"e.g. /path/on/host\\\" />\\n                          </div>\\n                          <div class=\\\"small text-warning\\\" ng-show=\\\"!volume.Source\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Source is required. </div>\\n                        </div>\\n                        <!-- !bind -->\\n                        <!-- read-only -->\\n                        <div class=\\\"input-group input-group-sm col-sm-5\\\" style=\\\"margin-left: 5px; vertical-align: top\\\">\\n                          <div class=\\\"btn-group btn-group-sm\\\">\\n                            <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.ReadOnly\\\" uib-btn-radio=\\\"false\\\">Writable</label>\\n                            <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.ReadOnly\\\" uib-btn-radio=\\\"true\\\">Read-only</label>\\n                          </div>\\n                        </div>\\n                        <!-- !read-only -->\\n                      </div>\\n                      <!-- !volume-line2 -->\\n                    </div>\\n                  </div>\\n                </div>\\n                <!-- !volumes-input-list -->\\n              </div>\\n              <!-- !volumes -->\\n            </form>\\n          </div>\\n          <!-- !tab-volume -->\\n          <!-- tab-network -->\\n          <div class=\\\"tab-pane\\\" id=\\\"network\\\">\\n            <form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n              <!-- network-input -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"container_network\\\" class=\\\"col-sm-2 col-lg-1 control-label text-left\\\">Network</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <select class=\\\"form-control\\\" ng-model=\\\"formValues.Network\\\">\\n                    <option selected disabled hidden value=\\\"\\\">Select a network</option>\\n                    <option ng-repeat=\\\"net in availableNetworks | orderBy: 'Name'\\\" ng-value=\\\"net.Name\\\">{{ net.Name }}</option>\\n                  </select>\\n                </div>\\n                <div class=\\\"col-sm-2\\\"></div>\\n              </div>\\n              <!-- !network-input -->\\n              <!-- extra-networks -->\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n                  <label class=\\\"control-label text-left\\\">Extra networks</label>\\n                  <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addExtraNetwork()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add extra network\\n                  </span>\\n                </div>\\n                <!-- network-input-list -->\\n                <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n                  <div ng-repeat=\\\"network in formValues.ExtraNetworks\\\" style=\\\"margin-top: 2px\\\">\\n                    <select class=\\\"form-control\\\" ng-model=\\\"network.Name\\\">\\n                      <option selected disabled hidden value=\\\"\\\">Select a network</option>\\n                      <option ng-repeat=\\\"net in availableNetworks\\\" ng-value=\\\"net.Name\\\">{{ net.Name }}</option>\\n                    </select>\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeExtraNetwork($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- !network-input-list -->\\n              </div>\\n              <!-- !extra-networks -->\\n              <!-- extra-hosts-variables -->\\n              <div class=\\\"form-group\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\">\\n                <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n                  <label class=\\\"control-label text-left\\\">Hosts file entries</label>\\n                  <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addHostsEntry()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add additional entry\\n                  </span>\\n                </div>\\n                <!-- hosts-input-list -->\\n                <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n                  <div ng-repeat=\\\"variable in formValues.HostsEntries\\\" style=\\\"margin-top: 2px\\\">\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">value</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"variable.value\\\" placeholder=\\\"e.g. host:IP\\\" />\\n                    </div>\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeHostsEntry($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- !hosts-input-list -->\\n              </div>\\n              <!-- !extra-hosts-variables -->\\n            </form>\\n          </div>\\n          <!-- !tab-network -->\\n          <!-- tab-env -->\\n          <div class=\\\"tab-pane\\\" id=\\\"env\\\">\\n            <div class=\\\"form-horizontal\\\">\\n              <environment-variables-panel\\n                values=\\\"formValues.Env\\\"\\n                explanation=\\\"'These values will be applied to the service when created'\\\"\\n                on-change=\\\"(handleEnvVarChange)\\\"\\n              ></environment-variables-panel>\\n            </div>\\n          </div>\\n          <!-- !tab-env -->\\n          <!-- tab-labels -->\\n          <div class=\\\"tab-pane\\\" id=\\\"labels\\\">\\n            <form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n              <!-- labels -->\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n                  <label class=\\\"control-label text-left\\\">Service labels</label>\\n                  <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addLabel()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add service label\\n                  </span>\\n                </div>\\n                <!-- labels-input-list -->\\n                <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n                  <div ng-repeat=\\\"label in formValues.Labels\\\" style=\\\"margin-top: 2px\\\">\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">name</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.key\\\" placeholder=\\\"e.g. com.example.foo\\\" />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">value</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" />\\n                    </div>\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeLabel($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- !labels-input-list -->\\n              </div>\\n              <!-- !labels-->\\n              <!-- container-labels -->\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n                  <label class=\\\"control-label text-left\\\">Container labels</label>\\n                  <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addContainerLabel()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add container label\\n                  </span>\\n                </div>\\n                <!-- container-labels-input-list -->\\n                <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n                  <div ng-repeat=\\\"label in formValues.ContainerLabels\\\" style=\\\"margin-top: 2px\\\">\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">name</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.key\\\" placeholder=\\\"e.g. com.example.foo\\\" />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">value</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" />\\n                    </div>\\n                    <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeContainerLabel($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- !container-labels-input-list -->\\n              </div>\\n              <!-- !container-labels-->\\n            </form>\\n          </div>\\n          <!-- !tab-labels -->\\n          <!-- tab-update-config -->\\n          <div class=\\\"tab-pane\\\" id=\\\"update-config\\\" ng-include=\\\"'app/docker/views/services/create/includes/update-restart.html'\\\"></div>\\n          <!-- !tab-update-config -->\\n          <!-- tab-secrets -->\\n          <div class=\\\"tab-pane\\\" id=\\\"secrets\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\" ng-include=\\\"'app/docker/views/services/create/includes/secret.html'\\\"></div>\\n          <!-- !tab-secrets -->\\n          <!-- tab-configs -->\\n          <div class=\\\"tab-pane\\\" id=\\\"configs\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\" ng-include=\\\"'app/docker/views/services/create/includes/config.html'\\\"></div>\\n          <!-- !tab-configs -->\\n          <!-- tab-resources-placement -->\\n          <div class=\\\"tab-pane\\\" id=\\\"resources-placement\\\" ng-include=\\\"'app/docker/views/services/create/includes/resources-placement.html'\\\"></div>\\n          <!-- !tab-resources-placement -->\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/create/createservice.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n      <label class=\\\"control-label text-left\\\">Configs</label>\\n      <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addConfig()\\\"> <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add a config </span>\\n    </div>\\n    <!-- info message -->\\n    <div class=\\\"form-group\\\" ng-show=\\\"formValues.Configs.$invalid\\\" style=\\\"margin-bottom: 0px\\\">\\n      <div class=\\\"col-sm-12 small text-warning\\\" style=\\\"padding-left: 35px; padding-top: 20px\\\">\\n        <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> {{ formValues.Configs.$error }}\\n      </div>\\n    </div>\\n    <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n      <div ng-repeat=\\\"config in formValues.Configs\\\" style=\\\"margin-top: 2px\\\">\\n        <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n          <span class=\\\"input-group-addon\\\">config</span>\\n          <select class=\\\"form-control\\\" ng-change=\\\"checkIfConfigDuplicated()\\\" ng-model=\\\"config.model\\\" ng-options=\\\"config.Name for config in availableConfigs | orderBy: 'Name'\\\">\\n            <option value=\\\"\\\" selected=\\\"selected\\\">Select a config</option>\\n          </select>\\n        </div>\\n        <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n          <span class=\\\"input-group-addon\\\">Path in container</span>\\n          <input class=\\\"form-control\\\" ng-model=\\\"config.FileName\\\" placeholder=\\\"e.g. /path/in/container\\\" />\\n        </div>\\n        <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeConfig($index)\\\">\\n          <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</form>\\n\";;\nvar path = 'app/docker/views/services/create/includes/config.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Resources </div>\\n  <!-- memory-reservation-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"memory-reservation\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"margin-top: 20px\\\"> Memory reservation </label>\\n    <div class=\\\"col-sm-3\\\">\\n      <slider model=\\\"formValues.MemoryReservation\\\" floor=\\\"0\\\" ceil=\\\"state.sliderMaxMemory\\\" step=\\\"256\\\" ng-if=\\\"state.sliderMaxMemory\\\"></slider>\\n    </div>\\n    <div class=\\\"col-sm-2\\\">\\n      <input type=\\\"number\\\" min=\\\"0\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.MemoryReservation\\\" />\\n    </div>\\n    <div class=\\\"col-sm-4\\\">\\n      <p class=\\\"small text-muted\\\" style=\\\"margin-top: 7px\\\"> Minimum memory available on a node to run a task (<b>MB</b>) </p>\\n    </div>\\n  </div>\\n  <!-- !memory-reservation-input -->\\n  <!-- memory-limit-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"memory-limit\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"margin-top: 20px\\\"> Memory limit </label>\\n    <div class=\\\"col-sm-3\\\">\\n      <slider model=\\\"formValues.MemoryLimit\\\" floor=\\\"0\\\" ceil=\\\"state.sliderMaxMemory\\\" step=\\\"256\\\" ng-if=\\\"state.sliderMaxMemory\\\"></slider>\\n    </div>\\n    <div class=\\\"col-sm-2\\\">\\n      <input type=\\\"number\\\" min=\\\"0\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.MemoryLimit\\\" />\\n    </div>\\n    <div class=\\\"col-sm-4\\\" style=\\\"margin-top: 7px\\\">\\n      <p class=\\\"small text-muted\\\"> Maximum memory usage per task (<b>MB</b>) </p>\\n    </div>\\n  </div>\\n  <!-- !memory-limit-input -->\\n  <!-- cpu-reservation-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"cpu-reservation\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"margin-top: 20px\\\"> CPU reservation </label>\\n    <div class=\\\"col-sm-5\\\">\\n      <slider model=\\\"formValues.CpuReservation\\\" floor=\\\"0\\\" ceil=\\\"state.sliderMaxCpu\\\" step=\\\"0.25\\\" precision=\\\"2\\\" ng-if=\\\"state.sliderMaxCpu\\\"></slider>\\n    </div>\\n    <div class=\\\"col-sm-4\\\" style=\\\"margin-top: 20px\\\">\\n      <p class=\\\"small text-muted\\\"> Minimum CPU available on a node to run a task </p>\\n    </div>\\n  </div>\\n  <!-- !cpu-reservation-input -->\\n  <!-- cpu-limit-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"cpu-limit\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"margin-top: 20px\\\"> CPU limit </label>\\n    <div class=\\\"col-sm-5\\\">\\n      <slider model=\\\"formValues.CpuLimit\\\" floor=\\\"0\\\" ceil=\\\"state.sliderMaxCpu\\\" step=\\\"0.25\\\" precision=\\\"2\\\" ng-if=\\\"state.sliderMaxCpu\\\"></slider>\\n    </div>\\n    <div class=\\\"col-sm-4\\\" style=\\\"margin-top: 20px\\\">\\n      <p class=\\\"small text-muted\\\"> Maximum CPU usage per task </p>\\n    </div>\\n  </div>\\n  <!-- !cpu-limit-input -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Placement </div>\\n  <!-- placement-constraints -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n      <label class=\\\"control-label text-left\\\">Placement constraints</label>\\n      <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addPlacementConstraint()\\\">\\n        <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> placement constraint\\n      </span>\\n    </div>\\n    <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n      <div ng-repeat=\\\"constraint in formValues.PlacementConstraints\\\" style=\\\"margin-top: 2px\\\">\\n        <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n          <span class=\\\"input-group-addon\\\">name</span>\\n          <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"constraint.key\\\" placeholder=\\\"e.g. node.role\\\" />\\n        </div>\\n        <div class=\\\"input-group col-sm-1 input-group-sm\\\">\\n          <select name=\\\"constraintOperator\\\" class=\\\"form-control\\\" ng-model=\\\"constraint.operator\\\">\\n            <option value=\\\"==\\\">==</option>\\n            <option value=\\\"!=\\\">!=</option>\\n          </select>\\n        </div>\\n        <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n          <span class=\\\"input-group-addon\\\">value</span>\\n          <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"constraint.value\\\" placeholder=\\\"e.g. manager\\\" />\\n        </div>\\n        <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removePlacementConstraint($index)\\\">\\n          <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !placement-constraints -->\\n  <!-- placement-preferences -->\\n  <div class=\\\"form-group\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\">\\n    <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n      <label class=\\\"control-label text-left\\\">Placement preferences</label>\\n      <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addPlacementPreference()\\\">\\n        <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> placement preference\\n      </span>\\n    </div>\\n    <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n      <div ng-repeat=\\\"preference in formValues.PlacementPreferences\\\" style=\\\"margin-top: 2px\\\">\\n        <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n          <span class=\\\"input-group-addon\\\">strategy</span>\\n          <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"preference.strategy\\\" placeholder=\\\"e.g. spread\\\" />\\n        </div>\\n        <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n          <span class=\\\"input-group-addon\\\">value</span>\\n          <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"preference.value\\\" placeholder=\\\"e.g. node.labels.datacenter\\\" />\\n        </div>\\n        <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removePlacementPreference($index)\\\">\\n          <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !placement-preferences -->\\n</form>\\n\";;\nvar path = 'app/docker/views/services/create/includes/resources-placement.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12 small text-muted\\\">\\n      By default, secrets will be available under <code>/run/secrets/$SECRET_NAME</code> in containers (Linux) or\\n      <code>C:\\\\ProgramData\\\\Docker\\\\secrets\\\\$SECRET_NAME</code> (Windows).</div\\n    >\\n  </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n      <label class=\\\"control-label text-left\\\">Secrets</label>\\n      <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addSecret()\\\"> <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add a secret </span>\\n    </div>\\n    <!-- info message -->\\n    <div class=\\\"form-group\\\" ng-show=\\\"formValues.Secrets.$invalid\\\" style=\\\"margin-bottom: 0px\\\">\\n      <div class=\\\"col-sm-12 small text-warning\\\" style=\\\"padding-left: 35px; padding-top: 20px\\\">\\n        <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> {{ formValues.Secrets.$error }}\\n      </div>\\n    </div>\\n    <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n      <div ng-repeat=\\\"secret in formValues.Secrets track by $index\\\" style=\\\"margin-top: 4px\\\">\\n        <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n          <span class=\\\"input-group-addon\\\">secret</span>\\n          <select class=\\\"form-control\\\" ng-model=\\\"secret.model\\\" ng-change=\\\"checkIfSecretDuplicated()\\\" ng-options=\\\"secret.Name for secret in availableSecrets | orderBy: 'Name'\\\">\\n            <option value=\\\"\\\" selected=\\\"selected\\\">Select a secret</option>\\n          </select>\\n        </div>\\n        <div class=\\\"input-group col-sm-4 input-group-sm\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3 && secret.overrideTarget\\\">\\n          <span class=\\\"input-group-addon\\\">target</span>\\n          <input class=\\\"form-control\\\" ng-model=\\\"secret.target\\\" placeholder=\\\"/path/in/container\\\" />\\n        </div>\\n        <div class=\\\"input-group col-sm-3 input-group-sm\\\">\\n          <div class=\\\"btn-group btn-group-sm\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\">\\n            <label class=\\\"btn btn-light\\\" ng-model=\\\"secret.overrideTarget\\\" uib-btn-radio=\\\"false\\\">Default location</label>\\n            <label class=\\\"btn btn-light\\\" ng-model=\\\"secret.overrideTarget\\\" uib-btn-radio=\\\"true\\\">Override</label>\\n          </div>\\n          <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeSecret($index)\\\">\\n            <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n          </button>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</form>\\n\";;\nvar path = 'app/docker/views/services/create/includes/secret.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Update config </div>\\n  <!-- parallelism-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"parallelism\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Update parallelism</label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <input type=\\\"number\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Parallelism\\\" id=\\\"parallelism\\\" placeholder=\\\"e.g. 1\\\" />\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\"> Maximum number of tasks to be updated simultaneously (0 to update all at once). </p>\\n    </div>\\n  </div>\\n  <!-- !parallelism-input -->\\n  <!-- delay-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"update-delay\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      Update delay\\n      <portainer-tooltip message=\\\"'Supported format examples: 1h, 5m, 10s, 1000ms, 15us, 60ns.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.UpdateDelay\\\" id=\\\"update-delay\\\" placeholder=\\\"e.g. 1m\\\" ng-pattern=\\\"/^([0-9]+)(h|m|s|ms|us|ns)$/i\\\" />\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\"> Amount of time between updates expressed by a number followed by unit (ns|us|ms|s|m|h). Default value is 0s, 0 seconds. </p>\\n    </div>\\n  </div>\\n  <!-- !delay-input -->\\n  <!-- failureAction-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"failure-action\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Update failure action</label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <div class=\\\"btn-group btn-group-sm\\\">\\n        <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.FailureAction\\\" uib-btn-radio=\\\"'continue'\\\">Continue</label>\\n        <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.FailureAction\\\" uib-btn-radio=\\\"'pause'\\\">Pause</label>\\n      </div>\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\"> Action taken on failure to start after update. </p>\\n    </div>\\n  </div>\\n  <!-- !failureAction-input -->\\n  <!-- order-input -->\\n  <div class=\\\"form-group\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.29\\\">\\n    <label for=\\\"update-order\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Update order</label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <div class=\\\"btn-group btn-group-sm\\\">\\n        <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.UpdateOrder\\\" uib-btn-radio=\\\"'start-first'\\\">start-first</label>\\n        <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.UpdateOrder\\\" uib-btn-radio=\\\"'stop-first'\\\">stop-first</label>\\n      </div>\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\"> Operation order on failure. </p>\\n    </div>\\n  </div>\\n  <!-- !order-input -->\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Restart policy </div>\\n  <!-- restartCondition-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"restart-condition\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Restart condition</label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <div class=\\\"btn-group btn-group-sm\\\">\\n        <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.RestartCondition\\\" uib-btn-radio=\\\"'none'\\\">None</label>\\n        <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.RestartCondition\\\" uib-btn-radio=\\\"'on-failure'\\\">On-failure</label>\\n        <label class=\\\"btn btn-light\\\" ng-model=\\\"formValues.RestartCondition\\\" uib-btn-radio=\\\"'any'\\\">Any</label>\\n      </div>\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\"> Restart when condition is met (default condition \\\"any\\\"). </p>\\n    </div>\\n  </div>\\n  <!-- !restartCondition-input -->\\n  <!-- restartDelay-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"restart-delay\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      Restart delay\\n      <portainer-tooltip message=\\\"'Supported format examples: 1h, 5m, 10s, 1000ms, 15us, 60ns.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.RestartDelay\\\" id=\\\"restart-delay\\\" placeholder=\\\"e.g. 1m\\\" ng-pattern=\\\"/^([0-9]+)(h|m|s|ms|us|ns)$/i\\\" />\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\"> Delay between restart attempts expressed by a number followed by unit (ns|us|ms|s|m|h). Default value is 5s, 5 seconds. </p>\\n    </div>\\n  </div>\\n  <!-- !restartDelay-input -->\\n  <!-- restartMaxAttempts-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"restart-max-attempts\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Restart max attempts</label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <input type=\\\"number\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.RestartMaxAttempts\\\" id=\\\"restart-max-attempts\\\" placeholder=\\\"e.g. 0\\\" />\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\"> Maximum attempts to restart a given task before giving up (default value is 0, which means unlimited). </p>\\n    </div>\\n  </div>\\n  <!-- !restartMaxAttempts-input -->\\n  <!-- restartWindow-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"restart-window\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      Restart window\\n      <portainer-tooltip message=\\\"'Supported format examples: 1h, 5m, 10s, 1000ms, 15us, 60ns.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-4 col-lg-3\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.RestartWindow\\\" id=\\\"restart-window\\\" placeholder=\\\"e.g. 1m\\\" ng-pattern=\\\"/^([0-9]+)(h|m|s|ms|us|ns)$/i\\\" />\\n    </div>\\n    <div class=\\\"col-sm-5\\\">\\n      <p class=\\\"small text-muted\\\">\\n        Time window to evaluate restart attempts expressed by a number followed by unit (ns|us|ms|s|m|h). Default value is 0 seconds, which is unbounded.\\n      </p>\\n    </div>\\n  </div>\\n  <!-- !restartWindow-input -->\\n</form>\\n\";;\nvar path = 'app/docker/views/services/create/includes/update-restart.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\" id=\\\"service-configs\\\" ng-submit=\\\"updateService(service)\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Configs\\\"> </rd-widget-header>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"form-inline\\\" style=\\\"padding: 10px\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        Add a config:\\n        <select class=\\\"form-control !h-[30px] !text-[13px]\\\" ng-options=\\\"config.Name for config in filterConfigs(configs) | orderBy: 'Name'\\\" ng-model=\\\"newConfig\\\">\\n          <option selected disabled hidden value=\\\"\\\">Select a config</option>\\n        </select>\\n        <a class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"addConfig(service, newConfig)\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> add config </a>\\n      </div>\\n      <table class=\\\"table\\\" style=\\\"margin-top: 5px\\\">\\n        <thead>\\n          <tr>\\n            <th>Name</th>\\n            <th>Path in container</th>\\n            <th>UID</th>\\n            <th>GID</th>\\n            <th>Mode</th>\\n            <th></th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"config in service.ServiceConfigs\\\">\\n            <td>\\n              <a ui-sref=\\\"docker.configs.config({id: config.Id})\\\">{{ config.Name }}</a>\\n            </td>\\n            <td ng-if=\\\"!config.credSpec\\\">\\n              <input\\n                class=\\\"form-control\\\"\\n                ng-model=\\\"config.FileName\\\"\\n                ng-change=\\\"updateConfig(service)\\\"\\n                placeholder=\\\"e.g. /path/in/container\\\"\\n                required\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n                ng-disabled=\\\"config.credSpec\\\"\\n              />\\n            </td>\\n            <td ng-if=\\\"!config.credSpec\\\">{{ config.Uid }}</td>\\n            <td ng-if=\\\"!config.credSpec\\\">{{ config.Gid }}</td>\\n            <td ng-if=\\\"!config.credSpec\\\">{{ config.Mode }}</td>\\n            <td ng-if=\\\"config.credSpec\\\" colspan=\\\"4\\\">Credential Spec</td>\\n            <td authorization=\\\"DockerServiceUpdate\\\">\\n              <button class=\\\"btn btn-dangerlight pull-right\\\" type=\\\"button\\\" ng-click=\\\"removeConfig(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n              </button>\\n            </td>\\n          </tr>\\n          <tr ng-if=\\\"service.ServiceConfigs.length === 0\\\">\\n            <td colspan=\\\"6\\\" class=\\\"text-muted text-center\\\">No configs associated to this service.</td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"submit\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['ServiceConfigs'])\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['ServiceConfigs'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</form>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/configs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div ng-if=\\\"service.ServiceConstraints\\\" id=\\\"service-placement-constraints\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Placement constraints\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating || addPlacementConstraint(service)\\\" ng-disabled=\\\"isUpdating\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon> placement constraint\\n        </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"service.ServiceConstraints.length === 0\\\">\\n      <p>There are no placement constraints for this service.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.ServiceConstraints.length > 0\\\" classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th>Name</th>\\n            <th>Operator</th>\\n            <th>Value</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"constraint in service.ServiceConstraints\\\">\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"constraint.key\\\"\\n                  placeholder=\\\"e.g. node.role\\\"\\n                  ng-change=\\\"updatePlacementConstraint(service, constraint)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <select\\n                  name=\\\"constraintOperator\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"constraint.operator\\\"\\n                  ng-change=\\\"updatePlacementConstraint(service, constraint)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                >\\n                  <option value=\\\"==\\\">==</option>\\n                  <option value=\\\"!=\\\">!=</option>\\n                </select>\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"constraint.value\\\"\\n                  placeholder=\\\"e.g. manager\\\"\\n                  ng-change=\\\"updatePlacementConstraint(service, constraint)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n                <span class=\\\"input-group-btn\\\" authorization=\\\"DockerServiceUpdate\\\">\\n                  <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removePlacementConstraint(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                  </button>\\n                </span>\\n              </div>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['ServiceConstraints'])\\\" ng-click=\\\"updateService(service)\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['ServiceConstraints'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/constraints.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Container spec\\\"></rd-widget-header>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <table class=\\\"!mb-0 table\\\">\\n        <tbody>\\n          <tr>\\n            <td class=\\\"w-1/5\\\">CMD</td>\\n            <td\\n              ><code ng-if=\\\"service.Command\\\">{{ service.Command | command }}</code></td\\n            >\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Command to execute. </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Args</td>\\n            <td\\n              ><code ng-if=\\\"service.Arguments\\\">{{ service.Arguments }}</code></td\\n            >\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Arguments passed to command in container. </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>User</td>\\n            <td>{{ service.User }}</td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Username or UID. </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Working directory</td>\\n            <td>{{ service.Dir }}</td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Working directory inside the container. </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Stop grace period</td>\\n            <td>{{ service.StopGracePeriod }}</td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Time to wait before force killing a container (default none). </p>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/container-specs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-container-labels\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Container labels\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating ||addContainerLabel(service)\\\" ng-disabled=\\\"isUpdating\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon> container label\\n        </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"service.ServiceContainerLabels.length === 0\\\">\\n      <p>There are no container labels for this service.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.ServiceContainerLabels.length > 0\\\" classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th>Label</th>\\n            <th>Value</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"label in service.ServiceContainerLabels\\\">\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon fit-text-size\\\">name</span>\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"label.key\\\"\\n                  placeholder=\\\"e.g. com.example.foo\\\"\\n                  ng-change=\\\"updateContainerLabel(service, label)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon fit-text-size\\\">value</span>\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"label.value\\\"\\n                  placeholder=\\\"e.g. bar\\\"\\n                  ng-change=\\\"updateContainerLabel(service, label)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n                <span class=\\\"input-group-btn\\\" authorization=\\\"DockerServiceUpdate\\\">\\n                  <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeContainerLabel(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                  </button>\\n                </span>\\n              </div>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['ServiceContainerLabels'])\\\" ng-click=\\\"updateService(service)\\\"\\n            >Apply changes</button\\n          >\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['ServiceContainerLabels'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/containerlabels.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form ng-if=\\\"service.EnvironmentVariables\\\" id=\\\"service-env-variables\\\" name=\\\"serviceEnvForm\\\" class=\\\"form-horizontal\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Environment variables\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating || addEnvironmentVariable(service)\\\" ng-disabled=\\\"isUpdating\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon> environment variable\\n        </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"service.EnvironmentVariables.length === 0\\\">\\n      <p>There are no environment variables for this service.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.EnvironmentVariables.length > 0\\\">\\n      <div class=\\\"form-group\\\">\\n        <environment-variables-fieldset values=\\\"service.EnvironmentVariables\\\" on-change=\\\"(onChangeEnvVars)\\\"></environment-variables-fieldset>\\n      </div>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary btn-sm\\\"\\n            ng-disabled=\\\"!hasChanges(service, ['EnvironmentVariables']) || serviceEnvForm.$invalid\\\"\\n            ng-click=\\\"updateService(service)\\\"\\n          >\\n            Apply changes\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['EnvironmentVariables'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</ng-form>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/environmentvariables.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Hosts file entries\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating ||addHostsEntry(service)\\\" ng-disabled=\\\"isUpdating\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon> add host entry\\n        </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"!service.Hosts || service.Hosts.length === 0\\\">\\n      <p>The Hosts file has no extra entries.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.Hosts.length > 0\\\" classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th>Hostname</th>\\n            <th>IP</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"entry in service.Hosts\\\">\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"entry.hostname\\\"\\n                  placeholder=\\\"e.g. example.com\\\"\\n                  ng-change=\\\"updateHostsEntry(service, entry)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"entry.ip\\\"\\n                  placeholder=\\\"e.g. 10.0.1.1\\\"\\n                  ng-change=\\\"updateHostsEntry(service, entry)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n                <span class=\\\"input-group-btn\\\" authorization=\\\"DockerServiceUpdate\\\">\\n                  <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeHostsEntry(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                  </button>\\n                </span>\\n              </div>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['Hosts'])\\\" ng-click=\\\"updateService(service)\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['Hosts'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/hosts.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-container-image\\\" authorization=\\\"DockerServiceUpdate\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Change container image\\\"> </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"!isUpdating\\\">\\n      <form class=\\\"form-horizontal\\\">\\n        <por-image-registry\\n          model=\\\"formValues.RegistryModel\\\"\\n          auto-complete=\\\"true\\\"\\n          label-class=\\\"col-sm-1\\\"\\n          input-class=\\\"col-sm-11\\\"\\n          endpoint=\\\"endpoint\\\"\\n          is-admin=\\\"isAdmin\\\"\\n          check-rate-limits=\\\"true\\\"\\n          set-validity=\\\"setPullImageValidity\\\"\\n        >\\n        </por-image-registry>\\n      </form>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"isUpdating\\\">\\n      <p>Image modification is disabled while service is updating.</p>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['Image'])\\\" ng-click=\\\"updateService(service)\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['Image'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/image.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-logging-driver\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Logging driver\\\"> </rd-widget-header>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"form-inline\\\" style=\\\"padding: 10px\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        Driver:\\n        <select class=\\\"form-control !h-[30px] !text-[13px]\\\" ng-model=\\\"service.LogDriverName\\\" ng-change=\\\"updateLogDriverName(service)\\\" ng-disabled=\\\"isUpdating\\\">\\n          <option selected value=\\\"\\\">Default logging driver</option>\\n          <option ng-repeat=\\\"driver in availableLoggingDrivers\\\" ng-value=\\\"driver\\\">{{ driver }}</option>\\n          <option value=\\\"none\\\">none</option>\\n        </select>\\n        <a class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"!service.LogDriverName || service.LogDriverName === 'none' || addLogDriverOpt(service)\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon> add logging driver option\\n        </a>\\n      </div>\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th>Option</th>\\n            <th>Value</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"option in service.LogDriverOpts\\\">\\n            <td class=\\\"w-1/2\\\">\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon fit-text-size\\\">name</span>\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"option.key\\\" ng-disabled=\\\"option.added || isUpdating\\\" placeholder=\\\"e.g. FOO\\\" />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon fit-text-size\\\">value</span>\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"option.value\\\"\\n                  ng-change=\\\"updateLogDriverOpt(service, option)\\\"\\n                  placeholder=\\\"e.g. bar\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n                <span class=\\\"input-group-btn\\\" authorization=\\\"DockerServiceUpdate\\\">\\n                  <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeLogDriverOpt(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                  </button>\\n                </span>\\n              </div>\\n            </td>\\n          </tr>\\n          <tr ng-if=\\\"service.LogDriverOpts.length === 0\\\">\\n            <td colspan=\\\"6\\\" class=\\\"text-muted text-center\\\">No options associated to this logging driver.</td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['LogDriverName', 'LogDriverOpts'])\\\" ng-click=\\\"updateService(service)\\\"\\n            >Apply changes</button\\n          >\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['LogDriverName', 'LogDriverOpts'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/logging.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div ng-if=\\\"service.ServiceMounts\\\" id=\\\"service-mounts\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Mounts\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating ||addMount(service)\\\" ng-disabled=\\\"isUpdating\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> mount </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"service.ServiceMounts.length === 0\\\">\\n      <p>There are no mounts for this service.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.ServiceMounts.length > 0\\\" classes=\\\"no-padding\\\">\\n      <table class=\\\"mb-0 table\\\">\\n        <thead>\\n          <tr>\\n            <th ng-if=\\\"isAdmin || allowBindMounts\\\">Type</th>\\n            <th>Source</th>\\n            <th>Target</th>\\n            <th authorization=\\\"DockerServiceUpdate\\\">Read only</th>\\n            <th authorization=\\\"DockerServiceUpdate\\\">Actions</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"(index, mount) in service.ServiceMounts\\\">\\n            <td class=\\\"!pt-6 !align-top\\\" ng-if=\\\"isAdmin || allowBindMounts\\\">\\n              <select\\n                name=\\\"mountType\\\"\\n                class=\\\"form-control !h-[30px] !text-[13px]\\\"\\n                ng-model=\\\"mount.Type\\\"\\n                ng-change=\\\"onChangeMountType(service, mount)\\\"\\n                ng-disabled=\\\"isUpdating\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              >\\n                <option value=\\\"volume\\\">Volume</option>\\n                <option value=\\\"bind\\\">Bind</option>\\n              </select>\\n            </td>\\n            <td class=\\\"!pb-0 !pt-6 !align-top\\\">\\n              <div class=\\\"mb-6\\\">\\n                <select\\n                  class=\\\"form-control !h-[30px] !text-[13px]\\\"\\n                  ng-model=\\\"mount.Source\\\"\\n                  ng-change=\\\"updateMount(service, mount)\\\"\\n                  ng-options=\\\"vol.Id as ((vol.Id|truncate:30) + ' - ' + (vol.Driver|truncate:30))  for vol in availableVolumes\\\"\\n                  ng-if=\\\"mount.Type === 'volume'\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                >\\n                  <option selected disabled hidden value=\\\"\\\">Select a volume</option>\\n                </select>\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control !h-[30px] !text-[13px]\\\"\\n                  name=\\\"\\\"\\n                  ng-model=\\\"mount.Source\\\"\\n                  placeholder=\\\"e.g. /tmp/portainer/data\\\"\\n                  ng-change=\\\"updateMount(service, mount)\\\"\\n                  ng-disabled=\\\"isUpdating || (!isAdmin && !allowBindMounts && mount.Type === 'bind')\\\"\\n                  ng-if=\\\"mount.Type === 'bind'\\\"\\n                />\\n              </div>\\n              <div class=\\\"small text-warning !-mt-6\\\" ng-show=\\\"!mount.Source\\\">\\n                <div class=\\\"vertical-center\\\"><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Source is required. </div></div\\n              >\\n            </td>\\n            <td class=\\\"!pb-0 !pt-6 !align-top\\\">\\n              <input\\n                type=\\\"text\\\"\\n                class=\\\"form-control mb-6 !h-[30px] !text-[13px]\\\"\\n                ng-model=\\\"mount.Target\\\"\\n                placeholder=\\\"e.g. /tmp/portainer/data\\\"\\n                ng-change=\\\"updateMount(service, mount)\\\"\\n                ng-disabled=\\\"isUpdating\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n              <div class=\\\"small text-warning !-mt-6\\\" ng-show=\\\"!mount.Target\\\">\\n                <div class=\\\"vertical-center\\\"><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Target is required. </div></div\\n              >\\n            </td>\\n            <td authorization=\\\"DockerServiceUpdate\\\">\\n              <por-switch-field checked=\\\"mount.ReadOnly\\\" disabled=\\\"isUpdating\\\" on-change=\\\"(toggleMountReadOnly)\\\" index=\\\"index\\\"></por-switch-field>\\n            </td>\\n            <td authorization=\\\"DockerServiceUpdate\\\">\\n              <span class=\\\"input-group-btn\\\">\\n                <button class=\\\"btn btn-dangerlight btn-sm\\\" type=\\\"button\\\" ng-click=\\\"removeMount(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                  <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                </button>\\n              </span>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!mountsAreValid() || !hasChanges(service, ['ServiceMounts'])\\\" ng-click=\\\"updateService(service)\\\">\\n            Apply changes\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['ServiceMounts'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/mounts.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-network-specs\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Networks\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating || addNetwork(service)\\\" ng-disabled=\\\"isUpdating\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> network </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"!service.Networks || service.Networks.length === 0\\\">\\n      <p>This service is not connected to any networks.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.Networks && service.Networks.length > 0\\\" classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th>Name</th>\\n            <th>ID</th>\\n            <th>IP address</th>\\n            <th>Actions</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"network in service.Networks\\\">\\n            <td>\\n              <select\\n                ng-if=\\\"network.Editable\\\"\\n                class=\\\"form-control !h-[30px] !rounded !text-[13px]\\\"\\n                ng-model=\\\"network.Id\\\"\\n                ng-change=\\\"updateNetwork(service)\\\"\\n                ng-options=\\\"net.Id as net.Name for net in filterNetworks(swarmNetworks, network)\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n                style=\\\"width: initial; min-width: 50%\\\"\\n              >\\n                <option disabled value=\\\"\\\" selected>Select a network</option>\\n              </select>\\n              <span ng-if=\\\"!network.Editable\\\">{{ network.Name }}</span>\\n            </td>\\n            <td>\\n              <a ui-sref=\\\"docker.networks.network({id: network.Id})\\\">{{ network.Id }}</a>\\n            </td>\\n            <td>\\n              {{ network.Addr }}\\n            </td>\\n            <td ng-if=\\\"network.Editable\\\" authorization=\\\"DockerServiceUpdate\\\">\\n              <span class=\\\"input-group-btn\\\">\\n                <button class=\\\"btn btn-sm btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeNetwork(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                  <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                </button>\\n              </span>\\n            </td>\\n            <td ng-if=\\\"!network.Editable\\\"></td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"isUpdating || !hasChanges(service, ['Networks'])\\\" ng-click=\\\"updateService(service)\\\">\\n            Apply changes\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['Networks'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/networks.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div ng-if=\\\"service.ServicePreferences\\\" id=\\\"service-placement-preferences\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Placement preferences\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating || addPlacementPreference(service)\\\" ng-disabled=\\\"isUpdating\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon> placement preference\\n        </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"service.ServicePreferences.length === 0\\\">\\n      <p>There are no placement preferences for this service.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.ServicePreferences.length > 0\\\" classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th>Strategy</th>\\n            <th>Value</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"preference in service.ServicePreferences\\\">\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"preference.strategy\\\"\\n                  placeholder=\\\"e.g. node.role\\\"\\n                  ng-change=\\\"updatePlacementPreference(service, preference)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"preference.value\\\"\\n                  placeholder=\\\"e.g. manager\\\"\\n                  ng-change=\\\"updatePlacementPreference(service, preference)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n                <span class=\\\"input-group-btn\\\" authorization=\\\"DockerServiceUpdate\\\">\\n                  <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removePlacementPreference(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                  </button>\\n                </span>\\n              </div>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['ServicePreferences'])\\\" ng-click=\\\"updateService(service)\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['ServicePreferences'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/placementPreferences.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Published ports\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating ||addPublishedPort(service)\\\" ng-disabled=\\\"isUpdating\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon> port mapping\\n        </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"!service.Ports || service.Ports.length === 0\\\">\\n      <p>This service has no ports published.</p>\\n    </rd-widget-body>\\n    <rd-widget-body ng-if=\\\"service.Ports && service.Ports.length > 0\\\" classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th>Host port</th>\\n            <th>Container port</th>\\n            <th>Protocol</th>\\n            <th>Publish mode</th>\\n            <th authorization=\\\"DockerServiceUpdate\\\">Actions</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"portBinding in service.Ports\\\">\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon !leading-none\\\">host</span>\\n                <input\\n                  type=\\\"number\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"portBinding.PublishedPort\\\"\\n                  placeholder=\\\"e.g. 8080\\\"\\n                  ng-change=\\\"updatePublishedPort(service, mapping)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon !leading-none\\\">container</span>\\n                <input\\n                  type=\\\"number\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"portBinding.TargetPort\\\"\\n                  placeholder=\\\"e.g. 80\\\"\\n                  ng-change=\\\"updatePublishedPort(service, mapping)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <select\\n                  class=\\\"selectpicker form-control !rounded\\\"\\n                  ng-model=\\\"portBinding.Protocol\\\"\\n                  ng-change=\\\"updatePublishedPort(service, mapping)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                >\\n                  <option value=\\\"tcp\\\">tcp</option>\\n                  <option value=\\\"udp\\\">udp</option>\\n                </select>\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <select\\n                  class=\\\"selectpicker form-control !rounded\\\"\\n                  ng-model=\\\"portBinding.PublishMode\\\"\\n                  ng-change=\\\"updatePublishedPort(service, mapping)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                >\\n                  <option value=\\\"ingress\\\">ingress</option>\\n                  <option value=\\\"host\\\">host</option>\\n                </select>\\n              </div>\\n            </td>\\n            <td authorization=\\\"DockerServiceUpdate\\\">\\n              <span class=\\\"input-group-btn\\\">\\n                <button class=\\\"btn btn-sm btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removePortPublishedBinding(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                  <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                </button>\\n              </span>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['Ports'])\\\" ng-click=\\\"updateService(service)\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['Ports'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/ports.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-resources\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Resource limits and reservations\\\"> </rd-widget-header>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <tbody>\\n          <tr>\\n            <td style=\\\"vertical-align: middle\\\"> Memory reservation (MB) </td>\\n            <td>\\n              <input\\n                class=\\\"input-sm\\\"\\n                type=\\\"number\\\"\\n                step=\\\"0.125\\\"\\n                min=\\\"0\\\"\\n                ng-model=\\\"service.ReservationMemoryBytes\\\"\\n                ng-change=\\\"updateServiceAttribute(service, 'ReservationMemoryBytes')\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n            </td>\\n            <td style=\\\"vertical-align: middle\\\">\\n              <p class=\\\"small text-muted\\\"> Minimum memory available on a node to run a task (set to 0 for unlimited) </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td style=\\\"vertical-align: middle\\\"> Memory limit (MB) </td>\\n            <td>\\n              <input\\n                class=\\\"input-sm\\\"\\n                type=\\\"number\\\"\\n                step=\\\"0.125\\\"\\n                min=\\\"0\\\"\\n                ng-model=\\\"service.LimitMemoryBytes\\\"\\n                ng-change=\\\"updateServiceAttribute(service, 'LimitMemoryBytes')\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n            </td>\\n            <td style=\\\"vertical-align: middle\\\">\\n              <p class=\\\"small text-muted\\\"> Maximum memory usage per task (set to 0 for unlimited) </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td style=\\\"vertical-align: middle\\\">\\n              <div> CPU reservation </div>\\n            </td>\\n            <td>\\n              <slider\\n                model=\\\"service.ReservationNanoCPUs\\\"\\n                floor=\\\"0\\\"\\n                ceil=\\\"state.sliderMaxCpu\\\"\\n                step=\\\"0.25\\\"\\n                precision=\\\"2\\\"\\n                ng-if=\\\"service && state.sliderMaxCpu\\\"\\n                on-change=\\\"updateServiceAttribute(service, 'ReservationNanoCPUs')\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              ></slider>\\n            </td>\\n            <td style=\\\"vertical-align: middle\\\">\\n              <p class=\\\"small text-muted\\\"> Minimum CPU available on a node to run a task </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td style=\\\"vertical-align: middle\\\">\\n              <div> CPU limit </div>\\n            </td>\\n            <td>\\n              <slider\\n                model=\\\"service.LimitNanoCPUs\\\"\\n                floor=\\\"0\\\"\\n                ceil=\\\"state.sliderMaxCpu\\\"\\n                step=\\\"0.25\\\"\\n                precision=\\\"2\\\"\\n                ng-if=\\\"service && state.sliderMaxCpu\\\"\\n                on-change=\\\"updateServiceAttribute(service, 'LimitNanoCPUs')\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              ></slider>\\n            </td>\\n            <td style=\\\"vertical-align: middle\\\">\\n              <p class=\\\"small text-muted\\\"> Maximum CPU usage per task </p>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary btn-sm\\\"\\n            ng-disabled=\\\"!hasChanges(service, ['LimitNanoCPUs', 'LimitMemoryBytes', 'ReservationNanoCPUs', 'ReservationMemoryBytes'])\\\"\\n            ng-click=\\\"updateService(service)\\\"\\n            >Apply changes</button\\n          >\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['LimitNanoCPUs', 'LimitMemoryBytes', 'ReservationNanoCPUs', 'ReservationMemoryBytes'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/resources.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-restart-policy\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Restart policy\\\"> </rd-widget-header>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <table class=\\\"table\\\">\\n        <tbody>\\n          <tr>\\n            <td>Restart condition</td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <select\\n                  class=\\\"selectpicker form-control !rounded\\\"\\n                  ng-model=\\\"service.RestartCondition\\\"\\n                  ng-change=\\\"updateServiceAttribute(service, 'RestartCondition')\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                >\\n                  <option value=\\\"none\\\">None</option>\\n                  <option value=\\\"on-failure\\\">On failure</option>\\n                  <option value=\\\"any\\\">Any</option>\\n                </select>\\n              </div>\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Condition for restart. </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Restart delay</td>\\n            <td>\\n              <input\\n                class=\\\"input-sm\\\"\\n                type=\\\"text\\\"\\n                ng-model=\\\"service.RestartDelay\\\"\\n                ng-change=\\\"updateServiceAttribute(service, 'RestartDelay')\\\"\\n                ng-pattern=\\\"/^([0-9]+)(h|m|s|ms|us|ns)$/i\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\">\\n                Delay between restart attempts expressed by a number followed by unit (ns|us|ms|s|m|h). Default value is 5s, 5 seconds.\\n              </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Restart max attempts</td>\\n            <td>\\n              <input\\n                class=\\\"input-sm\\\"\\n                type=\\\"number\\\"\\n                ng-model=\\\"service.RestartMaxAttempts\\\"\\n                ng-change=\\\"updateServiceAttribute(service, 'RestartMaxAttempts')\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Maximum attempts to restart a given task before giving up (default value is 0, which means unlimited). </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Restart window</td>\\n            <td>\\n              <input\\n                class=\\\"input-sm\\\"\\n                type=\\\"text\\\"\\n                ng-model=\\\"service.RestartWindow\\\"\\n                ng-change=\\\"updateServiceAttribute(service, 'RestartWindow')\\\"\\n                ng-pattern=\\\"/^([0-9]+)(h|m|s|ms|us|ns)$/i\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\">\\n                Time window to evaluate restart attempts expressed by a number followed by unit (ns|us|ms|s|m|h). Default value is 0 seconds, which is unbounded.\\n              </p>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary btn-sm\\\"\\n            ng-disabled=\\\"!hasChanges(service, ['RestartCondition', 'RestartDelay', 'RestartMaxAttempts', 'RestartWindow'])\\\"\\n            ng-click=\\\"updateService(service)\\\"\\n            >Apply changes</button\\n          >\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['RestartCondition', 'RestartDelay', 'RestartMaxAttempts', 'RestartWindow'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/restart.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\" id=\\\"service-secrets\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Secrets\\\"> </rd-widget-header>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"form-inline\\\" style=\\\"padding: 10px\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        Add a secret:\\n        <select class=\\\"form-control !h-[30px] !text-[13px]\\\" ng-options=\\\"secret.Name for secret in secrets | orderBy: 'Name'\\\" ng-model=\\\"state.addSecret.secret\\\">\\n          <option selected disabled hidden value=\\\"\\\">Select a secret</option>\\n        </select>\\n        <div class=\\\"form-group\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3 && state.addSecret.override\\\">\\n          Target:\\n          <input class=\\\"form-control\\\" ng-model=\\\"state.addSecret.target\\\" placeholder=\\\"/path/in/container\\\" />\\n        </div>\\n        <div class=\\\"btn-group btn-group-sm\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\">\\n          <label class=\\\"btn btn-light\\\" ng-model=\\\"state.addSecret.override\\\" uib-btn-radio=\\\"false\\\">Default location</label>\\n          <label class=\\\"btn btn-light\\\" ng-model=\\\"state.addSecret.override\\\" uib-btn-radio=\\\"true\\\">Override</label>\\n        </div>\\n        <a class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"addSecret(service, state.addSecret)\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> add secret </a>\\n      </div>\\n      <table class=\\\"table\\\" style=\\\"margin-top: 5px\\\">\\n        <thead>\\n          <tr>\\n            <th>Name</th>\\n            <th>File name</th>\\n            <th>UID</th>\\n            <th>GID</th>\\n            <th>Mode</th>\\n            <th></th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"secret in service.ServiceSecrets\\\">\\n            <td\\n              ><a ui-sref=\\\"docker.secrets.secret({id: secret.Id})\\\">{{ secret.Name }}</a></td\\n            >\\n            <td>{{ secret.FileName }}</td>\\n            <td>{{ secret.Uid }}</td>\\n            <td>{{ secret.Gid }}</td>\\n            <td>{{ secret.Mode }}</td>\\n            <td authorization=\\\"DockerServiceUpdate\\\">\\n              <button class=\\\"btn btn-dangerlight pull-right\\\" type=\\\"button\\\" ng-click=\\\"removeSecret(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n              </button>\\n            </td>\\n          </tr>\\n          <tr ng-if=\\\"service.ServiceSecrets.length === 0\\\">\\n            <td colspan=\\\"6\\\" class=\\\"text-muted text-center\\\">No secrets associated to this service.</td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['ServiceSecrets'])\\\" ng-click=\\\"updateService(service)\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['ServiceSecrets'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/secrets.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-labels\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Service labels\\\">\\n      <div class=\\\"nopadding\\\" authorization=\\\"DockerServiceUpdate\\\">\\n        <a class=\\\"btn btn-secondary btn-sm pull-right\\\" ng-click=\\\"isUpdating || addLabel(service)\\\" ng-disabled=\\\"isUpdating\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> label </a>\\n      </div>\\n    </rd-widget-header>\\n    <rd-widget-body ng-if=\\\"service.ServiceLabels.length === 0\\\">\\n      <p>There are no labels for this service.</p>\\n    </rd-widget-body>\\n    <rd-widget-body classes=\\\"no-padding\\\" ng-if=\\\"service.ServiceLabels.length > 0\\\">\\n      <table class=\\\"table\\\">\\n        <thead>\\n          <tr>\\n            <th> Label </th>\\n            <th> Value </th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr ng-repeat=\\\"label in service.ServiceLabels\\\">\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon fit-text-size\\\">name</span>\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"label.key\\\"\\n                  placeholder=\\\"e.g. com.example.foo\\\"\\n                  ng-change=\\\"updateLabel(service, label)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n              </div>\\n            </td>\\n            <td>\\n              <div class=\\\"input-group input-group-sm\\\">\\n                <span class=\\\"input-group-addon fit-text-size\\\">value</span>\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  ng-model=\\\"label.value\\\"\\n                  placeholder=\\\"e.g. bar\\\"\\n                  ng-change=\\\"updateLabel(service, label)\\\"\\n                  ng-disabled=\\\"isUpdating\\\"\\n                  disable-authorization=\\\"DockerServiceUpdate\\\"\\n                />\\n                <span class=\\\"input-group-btn\\\" authorization=\\\"DockerServiceUpdate\\\">\\n                  <button class=\\\"btn btn-dangerlight\\\" type=\\\"button\\\" ng-click=\\\"removeLabel(service, $index)\\\" ng-disabled=\\\"isUpdating\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n                  </button>\\n                </span>\\n              </div>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!hasChanges(service, ['ServiceLabels'])\\\" ng-click=\\\"updateService(service)\\\">Apply changes</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['ServiceLabels'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/servicelabels.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<docker-service-tasks-datatable\\n  ng-if=\\\"tasks.length > 0\\\"\\n  dataset=\\\"tasks\\\"\\n  is-slot-column-visible=\\\"service.Mode !== 'global'\\\"\\n  service-name=\\\"service.Name\\\"\\n></docker-service-tasks-datatable>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/tasks.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div id=\\\"service-update-config\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"list\\\" title-text=\\\"Update configuration\\\"> </rd-widget-header>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <table class=\\\"mb-0 table\\\">\\n        <tbody>\\n          <tr>\\n            <td>Update Parallelism</td>\\n            <td>\\n              <input\\n                class=\\\"input-sm\\\"\\n                type=\\\"number\\\"\\n                ng-model=\\\"service.UpdateParallelism\\\"\\n                ng-change=\\\"updateServiceAttribute(service, 'UpdateParallelism')\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Maximum number of tasks to be updated simultaneously (0 to update all at once). </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Update Delay</td>\\n            <td>\\n              <input\\n                class=\\\"input-sm\\\"\\n                type=\\\"text\\\"\\n                ng-model=\\\"service.UpdateDelay\\\"\\n                ng-change=\\\"updateServiceAttribute(service, 'UpdateDelay')\\\"\\n                ng-pattern=\\\"/^([0-9]+)(h|m|s|ms|us|ns)$/i\\\"\\n                disable-authorization=\\\"DockerServiceUpdate\\\"\\n              />\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Amount of time between updates expressed by a number followed by unit (ns|us|ms|s|m|h). Example: 1m. </p>\\n            </td>\\n          </tr>\\n          <tr>\\n            <td>Update Failure Action</td>\\n            <td>\\n              <div class=\\\"form-group !mb-0\\\">\\n                <label class=\\\"radio-inline align-baseline\\\">\\n                  <input\\n                    type=\\\"radio\\\"\\n                    name=\\\"failure_action\\\"\\n                    ng-model=\\\"service.UpdateFailureAction\\\"\\n                    value=\\\"continue\\\"\\n                    ng-change=\\\"updateServiceAttribute(service, 'UpdateFailureAction')\\\"\\n                    disable-authorization=\\\"DockerServiceUpdate\\\"\\n                  />\\n                  Continue\\n                </label>\\n                <label class=\\\"radio-inline align-baseline\\\">\\n                  <input\\n                    type=\\\"radio\\\"\\n                    name=\\\"failure_action\\\"\\n                    ng-model=\\\"service.UpdateFailureAction\\\"\\n                    value=\\\"pause\\\"\\n                    ng-change=\\\"updateServiceAttribute(service, 'UpdateFailureAction')\\\"\\n                    disable-authorization=\\\"DockerServiceUpdate\\\"\\n                  />\\n                  Pause\\n                </label>\\n              </div>\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Action taken on failure to start after update. </p>\\n            </td>\\n          </tr>\\n          <tr ng-if=\\\"applicationState.endpoint.apiVersion >= 1.29\\\">\\n            <td>Order</td>\\n            <td>\\n              <div class=\\\"form-group !mb-0\\\">\\n                <label class=\\\"radio-inline\\\">\\n                  <input\\n                    type=\\\"radio\\\"\\n                    name=\\\"updateconfig_order\\\"\\n                    ng-model=\\\"service.UpdateOrder\\\"\\n                    value=\\\"start-first\\\"\\n                    ng-change=\\\"updateServiceAttribute(service, 'UpdateOrder')\\\"\\n                    disable-authorization=\\\"DockerServiceUpdate\\\"\\n                  />\\n                  start-first\\n                </label>\\n                <label class=\\\"radio-inline\\\">\\n                  <input\\n                    type=\\\"radio\\\"\\n                    name=\\\"updateconfig_order\\\"\\n                    ng-model=\\\"service.UpdateOrder\\\"\\n                    value=\\\"stop-first\\\"\\n                    ng-change=\\\"updateServiceAttribute(service, 'UpdateOrder')\\\"\\n                    disable-authorization=\\\"DockerServiceUpdate\\\"\\n                  />\\n                  stop-first\\n                </label>\\n              </div>\\n            </td>\\n            <td>\\n              <p class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Operation order on failure. </p>\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </rd-widget-body>\\n    <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n      <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n        <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary btn-sm\\\"\\n            ng-disabled=\\\"!hasChanges(service, ['UpdateFailureAction', 'UpdateDelay', 'UpdateParallelism', 'UpdateOrder'])\\\"\\n            ng-click=\\\"updateService(service)\\\"\\n            >Apply changes</button\\n          >\\n          <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n            <span class=\\\"caret\\\"></span>\\n          </button>\\n          <ul class=\\\"dropdown-menu\\\">\\n            <li><a ng-click=\\\"cancelChanges(service, ['UpdateFailureAction', 'UpdateDelay', 'UpdateParallelism', 'UpdateOrder'])\\\">Reset changes</a></li>\\n            <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n          </ul>\\n        </div>\\n      </div>\\n    </rd-widget-footer>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/docker/views/services/edit/includes/updateconfig.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Service details'\\\" breadcrumbs=\\\"[{label:'Services', link:'docker.services'}, service.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div ng-if=\\\"isUpdating\\\" class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <div class=\\\"alert alert-info\\\" role=\\\"alert\\\" id=\\\"service-update-alert\\\">\\n      <p>This service is being updated. Editing this service is currently disabled.</p>\\n      <a ui-sref=\\\"docker.services.service({id: service.Id}, {reload: true})\\\">Refresh to see if this service has finished updated.</a>\\n    </div>\\n  </div>\\n</div>\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-9 col-md-9 col-xs-9\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"shuffle\\\" title-text=\\\"Service details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td class=\\\"w-1/5\\\">Name</td>\\n              <td ng-if=\\\"applicationState.endpoint.apiVersion <= 1.24\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"service.Name\\\" ng-change=\\\"updateServiceAttribute(service, 'Name')\\\" ng-disabled=\\\"isUpdating\\\" />\\n              </td>\\n              <td ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\">\\n                {{ service.Name }}\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>ID</td>\\n              <td>\\n                {{ service.Id }}\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"service.CreatedAt\\\">\\n              <td>Created at</td>\\n              <td>{{ service.CreatedAt | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"service.UpdatedAt\\\">\\n              <td>Last updated at</td>\\n              <td>{{ service.UpdatedAt | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"service.Version\\\">\\n              <td>Version</td>\\n              <td>{{ service.Version }}</td>\\n            </tr>\\n            <tr>\\n              <td>Scheduling mode</td>\\n              <td>{{ service.Mode }}</td>\\n            </tr>\\n            <tr ng-if=\\\"service.Mode === 'replicated'\\\">\\n              <td>Replicas</td>\\n              <td>\\n                <span ng-if=\\\"service.Mode === 'replicated'\\\">\\n                  <input\\n                    class=\\\"input-sm\\\"\\n                    type=\\\"number\\\"\\n                    ng-model=\\\"service.Replicas\\\"\\n                    ng-change=\\\"updateServiceAttribute(service, 'Replicas')\\\"\\n                    disable-authorization=\\\"DockerServiceUpdate\\\"\\n                  />\\n                </span>\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Image</td>\\n              <td>{{ service.Image }}</td>\\n            </tr>\\n            <tr ng-if=\\\"isAdmin && applicationState.endpoint.type !== 4\\\">\\n              <td>\\n                <div class=\\\"inline-flex items-center\\\">\\n                  <div> Service webhook </div>\\n                  <portainer-tooltip\\n                    message=\\\"'Webhook (or callback URI) used to automate the update of this service. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this service.'\\\"\\n                  >\\n                  </portainer-tooltip>\\n                </div>\\n              </td>\\n              <td>\\n                <div class=\\\"flex flex-wrap items-center\\\">\\n                  <por-switch-field label-class=\\\"'!mr-0'\\\" checked=\\\"WebhookExists\\\" disabled=\\\"disabledWebhookButton(WebhookExists)\\\" on-change=\\\"(onWebhookChange)\\\"></por-switch-field>\\n                  <span ng-if=\\\"webhookURL\\\">\\n                    <span class=\\\"text-muted\\\">{{ webhookURL | truncatelr }}</span>\\n                    <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary btn-sm space-left\\\" ng-if=\\\"webhookURL\\\" ng-click=\\\"copyWebhook()\\\">\\n                      <pr-icon icon=\\\"'copy'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n                      Copy link\\n                    </button>\\n                    <span>\\n                      <pr-icon id=\\\"copyNotification\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n                    </span>\\n                  </span>\\n                </div>\\n              </td>\\n            </tr>\\n            <tr authorization=\\\"DockerServiceLogs, DockerServiceUpdate, DockerServiceDelete\\\">\\n              <td colspan=\\\"2\\\">\\n                <p class=\\\"small text-muted\\\" authorization=\\\"DockerServiceUpdate\\\">\\n                  Note: you can only rollback one level of changes. Clicking the rollback button without making a new change will undo your previous rollback </p\\n                ><div class=\\\"flex flex-wrap gap-x-2 gap-y-1\\\">\\n                  <a\\n                    authorization=\\\"DockerServiceLogs\\\"\\n                    ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\"\\n                    class=\\\"btn btn-primary btn-sm\\\"\\n                    type=\\\"button\\\"\\n                    ui-sref=\\\"docker.services.service.logs({id: service.Id})\\\"\\n                  >\\n                    <pr-icon icon=\\\"'file-text'\\\"></pr-icon>Service logs</a\\n                  >\\n                  <button\\n                    authorization=\\\"DockerServiceUpdate\\\"\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                    ng-disabled=\\\"state.updateInProgress || isUpdating\\\"\\n                    ng-click=\\\"forceUpdateService(service)\\\"\\n                    button-spinner=\\\"state.updateInProgress\\\"\\n                    ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\"\\n                  >\\n                    <span ng-hide=\\\"state.updateInProgress\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'refresh-cw'\\\"></pr-icon>\\n                      Update the service</span\\n                    >\\n                    <span ng-show=\\\"state.updateInProgress\\\">Update in progress...</span>\\n                  </button>\\n                  <button\\n                    authorization=\\\"DockerServiceUpdate\\\"\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                    ng-disabled=\\\"state.rollbackInProgress || isUpdating\\\"\\n                    ng-click=\\\"rollbackService(service)\\\"\\n                    button-spinner=\\\"state.rollbackInProgress\\\"\\n                    ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\"\\n                  >\\n                    <span ng-hide=\\\"state.rollbackInProgress\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'rotate-ccw'\\\"></pr-icon>\\n                      Rollback the service</span\\n                    >\\n                    <span ng-show=\\\"state.rollbackInProgress\\\">Rollback in progress...</span>\\n                  </button>\\n                  <button\\n                    authorization=\\\"DockerServiceDelete\\\"\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-danger btn-sm !ml-0\\\"\\n                    ng-disabled=\\\"state.deletionInProgress || isUpdating\\\"\\n                    ng-click=\\\"removeService()\\\"\\n                    button-spinner=\\\"state.deletionInProgress\\\"\\n                  >\\n                    <span ng-hide=\\\"state.deletionInProgress\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n                      Delete the service</span\\n                    >\\n                    <span ng-show=\\\"state.deletionInProgress\\\">Deletion in progress...</span>\\n                  </button>\\n                </div>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n      <rd-widget-footer authorization=\\\"DockerServiceUpdate\\\">\\n        <p class=\\\"small text-muted\\\">\\n          Do you need help? View the Docker Service documentation <a href=\\\"https://docs.docker.com/engine/reference/commandline/service_update/\\\" target=\\\"self\\\">here</a>.\\n        </p>\\n        <div class=\\\"btn-toolbar\\\" role=\\\"toolbar\\\">\\n          <div class=\\\"btn-group\\\" role=\\\"group\\\">\\n            <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-disabled=\\\"!hasChanges(service, ['Mode', 'Replicas', 'Name', 'Webhooks'])\\\" ng-click=\\\"updateService(service)\\\"\\n              >Apply changes</button\\n            >\\n            <button type=\\\"button\\\" class=\\\"btn btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" aria-haspopup=\\\"true\\\" aria-expanded=\\\"false\\\">\\n              <span class=\\\"caret\\\"></span>\\n            </button>\\n            <ul class=\\\"dropdown-menu\\\">\\n              <li><a ng-click=\\\"cancelChanges(service, ['Mode', 'Replicas', 'Name'])\\\">Reset changes</a></li>\\n              <li><a ng-click=\\\"cancelChanges(service)\\\">Reset all changes</a></li>\\n            </ul>\\n          </div>\\n        </div>\\n      </rd-widget-footer>\\n    </rd-widget>\\n  </div>\\n\\n  <div class=\\\"col-lg-3 col-md-3 col-xs-3\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"menu\\\" title-text=\\\"Quick navigation\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <ul class=\\\"nav nav-pills nav-stacked\\\">\\n          <li><a href ng-click=\\\"goToItem('service-env-variables')\\\">Environment variables</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-container-image')\\\">Container image</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-container-labels')\\\">Container labels</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-mounts')\\\">Mounts</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-network-specs')\\\">Network &amp; published ports</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-resources')\\\">Resource limits &amp; reservations</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-placement-constraints')\\\">Placement constraints</a></li>\\n          <li ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\"><a href ng-click=\\\"goToItem('service-placement-preferences')\\\">Placement preferences</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-restart-policy')\\\">Restart policy</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-update-config')\\\">Update configuration</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-logging')\\\">Logging</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-labels')\\\">Service labels</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-configs')\\\">Configs</a></li>\\n          <li ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\"><a href ng-click=\\\"goToItem('service-secrets')\\\">Secrets</a></li>\\n          <li><a href ng-click=\\\"goToItem('service-tasks')\\\">Tasks</a></li>\\n        </ul>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<!-- access-control-panel -->\\n<access-control-panel\\n  ng-if=\\\"service\\\"\\n  resource-id=\\\"service.Id\\\"\\n  resource-control=\\\"service.ResourceControl\\\"\\n  resource-type=\\\"resourceType\\\"\\n  on-update-success=\\\"(onUpdateResourceControlSuccess)\\\"\\n  environment-id=\\\"endpoint.Id\\\"\\n>\\n</access-control-panel>\\n<!-- !access-control-panel -->\\n\\n<div class=\\\"row\\\">\\n  <hr />\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <h3 id=\\\"container-specs\\\">Container specification</h3>\\n    <div id=\\\"service-container-spec\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/container-specs.html'\\\"></div>\\n    <div id=\\\"service-container-image\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/image.html'\\\"></div>\\n    <div id=\\\"service-env-variables\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/environmentvariables.html'\\\"></div>\\n    <div id=\\\"service-container-labels\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/containerlabels.html'\\\"></div>\\n    <div id=\\\"service-mounts\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/mounts.html'\\\"></div>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <hr />\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <h3 id=\\\"service-network-specs\\\">Networks &amp; ports</h3>\\n    <div id=\\\"service-networks\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/networks.html'\\\"></div>\\n    <div id=\\\"service-published-ports\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/ports.html'\\\"></div>\\n    <div id=\\\"service-hosts-entries\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/hosts.html'\\\"></div>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <hr />\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <h3 id=\\\"service-specs\\\">Service specification</h3>\\n    <div id=\\\"service-resources\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/resources.html'\\\"></div>\\n    <div id=\\\"service-placement-constraints\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/constraints.html'\\\"></div>\\n    <div\\n      id=\\\"service-placement-preferences\\\"\\n      ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3\\\"\\n      class=\\\"padding-top\\\"\\n      ng-include=\\\"'app/docker/views/services/edit/includes/placementPreferences.html'\\\"\\n    ></div>\\n    <div id=\\\"service-restart-policy\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/restart.html'\\\"></div>\\n    <div id=\\\"service-update-config\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/updateconfig.html'\\\"></div>\\n    <div id=\\\"service-logging\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/logging.html'\\\"></div>\\n    <div id=\\\"service-labels\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/servicelabels.html'\\\"></div>\\n    <div id=\\\"service-configs\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/configs.html'\\\"></div>\\n    <div id=\\\"service-secrets\\\" ng-if=\\\"applicationState.endpoint.apiVersion >= 1.25\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/secrets.html'\\\"></div>\\n  </div>\\n</div>\\n\\n<div id=\\\"service-tasks\\\" class=\\\"padding-top\\\" ng-include=\\\"'app/docker/views/services/edit/includes/tasks.html'\\\"></div>\\n\";;\nvar path = 'app/docker/views/services/edit/service.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Service logs'\\\"\\n  breadcrumbs=\\\"[\\n    {\\n      label: 'Services',\\n      link: 'docker.services'\\n    },\\n    {\\n      label: service.Name,\\n      link: 'docker.services.service',\\n      linkParams: { id: service.Id }\\n    },\\n    'Logs'\\n  ]\\\"\\n>\\n</page-header>\\n\\n<log-viewer\\n  data=\\\"logs\\\"\\n  ng-if=\\\"logs\\\"\\n  log-collection-change=\\\"changeLogCollection\\\"\\n  display-timestamps=\\\"state.displayTimestamps\\\"\\n  line-count=\\\"state.lineCount\\\"\\n  since-timestamp=\\\"state.sinceTimestamp\\\"\\n  resource-name=\\\"service.Name\\\"\\n></log-viewer>\\n\";;\nvar path = 'app/docker/views/services/logs/servicelogs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Service list'\\\" breadcrumbs=\\\"['Services']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<docker-services-datatable\\n  dataset=\\\"services\\\"\\n  title-icon=\\\"shuffle\\\"\\n  on-refresh=\\\"(getServices)\\\"\\n  is-add-action-visible=\\\"true\\\"\\n  is-stack-column-visible=\\\"true\\\"\\n></docker-services-datatable>\\n\";;\nvar path = 'app/docker/views/services/services.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Cluster overview'\\\" breadcrumbs=\\\"['Swarm']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"trello\\\" title-text=\\\"Cluster status\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Nodes</td>\\n              <td>{{ info.Swarm.Nodes }}</td>\\n            </tr>\\n            <tr>\\n              <td>Docker API version</td>\\n              <td>{{ docker.ApiVersion }}</td>\\n            </tr>\\n            <tr>\\n              <td>Total CPU</td>\\n              <td>{{ totalCPU }}</td>\\n            </tr>\\n            <tr>\\n              <td>Total memory</td>\\n              <td>{{ totalMemory | humansize: 2 }}</td>\\n            </tr>\\n            <tr>\\n              <td colspan=\\\"2\\\">\\n                <div class=\\\"btn-group\\\" role=\\\"group\\\" aria-label=\\\"...\\\">\\n                  <a ui-sref=\\\"docker.swarm.visualizer\\\" class=\\\"vertical-center\\\"><pr-icon icon=\\\"'trello'\\\" class-name=\\\"'icon'\\\"></pr-icon>Go to cluster visualizer</a>\\n                </div>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<nodes-datatable dataset=\\\"nodes\\\" is-ip-column-visible=\\\"applicationState.endpoint.apiVersion >= 1.25\\\" have-access-to-node=\\\"isAdmin\\\" on-refresh=\\\"(getNodes)\\\"></nodes-datatable>\\n\";;\nvar path = 'app/docker/views/swarm/swarm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Swarm visualizer'\\\" breadcrumbs=\\\"[{label:'Swarm', link:'docker.swarm'}, {label:'Cluster visualizer', link:'docker.swarm.visualizer'}]\\\" reload=\\\"true\\\">\\n</page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"trello\\\" title-text=\\\"Cluster information\\\">\\n        <div class=\\\"pull-right\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"changeShowInformationPanel(true)\\\" ng-if=\\\"!state.ShowInformationPanel\\\">Show</button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"changeShowInformationPanel(false)\\\" ng-if=\\\"state.ShowInformationPanel\\\">Hide</button>\\n        </div>\\n      </rd-widget-header>\\n      <rd-widget-body ng-if=\\\"state.ShowInformationPanel\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Nodes</td>\\n              <td>{{ nodes.length }}</td>\\n            </tr>\\n            <tr>\\n              <td>Services</td>\\n              <td>{{ services.length }}</td>\\n            </tr>\\n            <tr>\\n              <td>Tasks</td>\\n              <td>{{ tasks.length }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Options </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-2'\\\"\\n                checked=\\\"state.DisplayOnlyRunningTasks\\\"\\n                label=\\\"'Only display running tasks'\\\"\\n                on-change=\\\"(handleChangeDisplayOnlyRunningTasks)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-2'\\\"\\n                checked=\\\"state.DisplayNodeLabels\\\"\\n                label=\\\"'Display node labels'\\\"\\n                on-change=\\\"(handleChangeDisplayNodeLabels)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n        </form>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Refresh rate </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"refreshRate\\\" class=\\\"col-sm-2 margin-sm-top control-label text-left\\\">\\n              <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" size=\\\"'sm'\\\" style=\\\"display: none\\\"></pr-icon>\\n            </label>\\n            <div class=\\\"col-sm-2\\\">\\n              <select id=\\\"refreshRate\\\" ng-model=\\\"state.refreshRate\\\" ng-change=\\\"changeUpdateRepeater()\\\" class=\\\"form-control\\\">\\n                <option value=\\\"5\\\">5s</option>\\n                <option value=\\\"10\\\">10s</option>\\n                <option value=\\\"30\\\">30s</option>\\n                <option value=\\\"60\\\">60s</option>\\n              </select>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\" ng-if=\\\"visualizerData\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"trello\\\" title-text=\\\"Cluster visualizer\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <div class=\\\"visualizer_container\\\">\\n          <div class=\\\"node\\\" ng-repeat=\\\"node in visualizerData.nodes | orderBy : ['Role', 'Hostname'] track by $index\\\">\\n            <div class=\\\"node_info\\\">\\n              <div>\\n                <div>\\n                  <b>{{ node.Name || node.Hostname }}</b>\\n                  <span class=\\\"node_platform\\\">\\n                    <pr-icon ng-if=\\\"node.PlatformOS === 'linux'\\\" icon=\\\"'svg-linux'\\\"></pr-icon>\\n                    <pr-icon ng-if=\\\"node.PlatformOS === 'windows'\\\" icon=\\\"'layout-grid'\\\"></pr-icon>\\n                  </span>\\n                </div>\\n              </div>\\n              <div>{{ node.Role }}</div>\\n              <div>CPU: {{ node.CPUs / 1000000000 }}</div>\\n              <div>Memory: {{ node.Memory | humansize: 2 }}</div>\\n              <div\\n                ><span class=\\\"label label-{{ node.Status | nodestatusbadge }}\\\">{{ node.Status }}</span></div\\n              >\\n              <div class=\\\"node_labels\\\" ng-if=\\\"node.Labels.length > 0 && state.DisplayNodeLabels\\\">\\n                <div>Labels</div>\\n                <div class=\\\"node_label\\\" ng-repeat=\\\"label in node.Labels\\\">\\n                  <span class=\\\"label_key\\\">\\n                    {{ label.key }}\\n                  </span>\\n                  <span class=\\\"label_value\\\" ng-if=\\\"label.value\\\"> = {{ label.value }} </span>\\n                </div>\\n              </div>\\n            </div>\\n            <div class=\\\"tasks\\\">\\n              <div\\n                class=\\\"task task_{{ task.Status.State | visualizerTask }}\\\"\\n                style=\\\"border: 2px solid {{ task.ServiceId | visualizerTaskBorderColor }}\\\"\\n                ng-repeat=\\\"task in node.Tasks | orderBy: 'ServiceName' | filter: (state.DisplayOnlyRunningTasks || '') && { Status: { State: 'running' } }\\\"\\n              >\\n                <div class=\\\"service_name\\\">{{ task.ServiceName }}</div>\\n                <div>Image: {{ task.Spec.ContainerSpec.Image | hideshasum }}</div>\\n                <div>Status: {{ task.Status.State }}</div>\\n                <div>Update: {{ task.Updated | getisodate }}</div>\\n                <div ng-if=\\\"task.Spec.Resources.Limits.MemoryBytes\\\">Memory limit: {{ task.Spec.Resources.Limits.MemoryBytes | humansize: 2 : 2 }}</div>\\n                <div ng-if=\\\"task.Spec.Resources.Limits.NanoCPUs\\\">CPU limit: {{ task.Spec.Resources.Limits.NanoCPUs / 1000000000 }}</div>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/swarm/visualizer/swarmvisualizer.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Task details'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Services', link:'docker.services' },\\n    {\\n      label: service.Name,\\n      link: 'docker.services.service',\\n      linkParams:{ id: service.Id }\\n    }, task.Id]\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"task && service\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"list\\\" title-text=\\\"Task status\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>ID</td>\\n              <td>{{ task.Id }}</td>\\n            </tr>\\n            <tr>\\n              <td>State</td>\\n              <td\\n                ><span class=\\\"label label-{{ task.Status.State | taskstatusbadge }}\\\">{{ task.Status.State }}</span></td\\n              >\\n            </tr>\\n            <tr>\\n              <td>State Message</td>\\n              <td>{{ task.Status.Message }}</td>\\n            </tr>\\n            <tr ng-if=\\\"task.Status.Err\\\">\\n              <td>Error message</td>\\n              <td\\n                ><code>{{ task.Status.Err }}</code></td\\n              >\\n            </tr>\\n            <tr>\\n              <td>Image</td>\\n              <td>{{ task.Spec.ContainerSpec.Image | hideshasum }}</td>\\n            </tr>\\n            <tr ng-if=\\\"service.Mode !== 'global'\\\">\\n              <td>Slot</td>\\n              <td>{{ task.Slot }}</td>\\n            </tr>\\n            <tr>\\n              <td>Created</td>\\n              <td>{{ task.Created | getisodate }}</td>\\n            </tr>\\n            <tr ng-if=\\\"task.Status.ContainerStatus.ContainerID\\\">\\n              <td>Container ID</td>\\n              <td>{{ task.Status.ContainerStatus.ContainerID }}</td>\\n            </tr>\\n            <tr ng-if=\\\"applicationState.endpoint.apiVersion >= 1.3 && task.Status.State | taskhaslogs\\\">\\n              <td colspan=\\\"2\\\"\\n                ><a class=\\\"btn btn-primary btn-sm\\\" type=\\\"button\\\" ui-sref=\\\"docker.tasks.task.logs({id: task.Id})\\\">\\n                  <pr-icon icon=\\\"'file-text'\\\"></pr-icon>\\n                  Task logs</a\\n                ></td\\n              >\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/tasks/edit/task.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Task details'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Services', link:'docker.services' },\\n    { \\n      label:service.Name,\\n      link:'docker.services.service', \\n      linkParams:{ id: service.Id }\\n    }, \\n    { \\n      label:task.Id,\\n      link:'docker.tasks.task', \\n      linkParams:{ id: task.Id }\\n    },\\n    'Logs']\\\"\\n>\\n</page-header>\\n\\n<log-viewer\\n  data=\\\"logs\\\"\\n  ng-if=\\\"logs\\\"\\n  log-collection-change=\\\"changeLogCollection\\\"\\n  display-timestamps=\\\"state.displayTimestamps\\\"\\n  line-count=\\\"state.lineCount\\\"\\n  since-timestamp=\\\"state.sinceTimestamp\\\"\\n  resource-name=\\\"task.Id\\\"\\n></log-viewer>\\n\";;\nvar path = 'app/docker/views/tasks/logs/tasklogs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Volume browser'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Volumes', link:'docker.volumes' },\\n    { \\n      label:volumeId,\\n      link: 'docker.volumes.volume', \\n      linkParams:{ id: volumeId }\\n    }, 'browse']\\\"\\n>\\n</page-header>\\n\\n<volume-browser volume-id=\\\"volumeId\\\" node-name=\\\"nodeName\\\" is-upload-enabled=\\\"agentApiVersion > 1\\\" endpoint-id=\\\"endpointId\\\"></volume-browser>\\n\";;\nvar path = 'app/docker/views/volumes/browse/browsevolume.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create volume'\\\" breadcrumbs=\\\"[{label:'Volumes', link:'docker.volumes'}, 'Add volume']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"volumeCreationForm\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"volume_name\\\" class=\\\"col-sm-2 col-md-1 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-10 col-md-11\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Name\\\" id=\\\"volume_name\\\" placeholder=\\\"e.g. myVolume\\\" />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Driver configuration </div>\\n          <!-- driver-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"volume_driver\\\" class=\\\"col-sm-2 col-md-1 control-label text-left\\\">Driver</label>\\n            <div class=\\\"col-sm-10 col-md-11\\\">\\n              <select class=\\\"form-control\\\" ng-options=\\\"driver for driver in availableVolumeDrivers\\\" ng-model=\\\"formValues.Driver\\\" ng-if=\\\"availableVolumeDrivers.length > 0\\\">\\n                <option disabled hidden value=\\\"\\\">Select a driver</option>\\n              </select>\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Driver\\\" id=\\\"volume_driver\\\" placeholder=\\\"e.g. driverName\\\" ng-if=\\\"availableVolumeDrivers.length === 0\\\" />\\n            </div>\\n          </div>\\n          <!-- !driver-input -->\\n          <!-- driver-options -->\\n          <div class=\\\"form-group\\\" ng-hide=\\\"formValues.CIFSData.useCIFS || formValues.NFSData.useNFS\\\">\\n            <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 5px\\\">\\n              <label class=\\\"control-label text-left\\\">\\n                Driver options\\n                <portainer-tooltip message=\\\"'Driver options are specific to the selected driver. Please refer to the selected driver documentation.'\\\"></portainer-tooltip>\\n              </label>\\n              <span class=\\\"label label-default interactive\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"addDriverOption()\\\">\\n                <pr-icon icon=\\\"'plus'\\\" mode=\\\"'alt'\\\"></pr-icon> add driver option\\n              </span>\\n            </div>\\n            <!-- driver-options-input-list -->\\n            <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin-top: 10px\\\">\\n              <div ng-repeat=\\\"option in formValues.DriverOptions\\\" style=\\\"margin-top: 2px\\\">\\n                <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">name</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"option.name\\\" placeholder=\\\"e.g. mountpoint\\\" />\\n                </div>\\n                <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                  <span class=\\\"input-group-addon\\\">value</span>\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"option.value\\\" placeholder=\\\"e.g. /path/on/host\\\" />\\n                </div>\\n                <button class=\\\"btn btn-sm btn-light\\\" type=\\\"button\\\" ng-click=\\\"removeDriverOption($index)\\\">\\n                  <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !driver-options-input-list -->\\n          </div>\\n          <!-- !driver-options -->\\n          <!-- nfs-management -->\\n          <div class=\\\"form-group col-md-12\\\">\\n            <por-switch-field checked=\\\"formValues.NFSData.useNFS\\\" label=\\\"'Use NFS volume'\\\" on-change=\\\"(onUseNFSChange)\\\"></por-switch-field>\\n            <div ng-if=\\\"formValues.NFSData.useNFS\\\" class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Ensure <code>nfs-utils</code> are installed on your hosts. </div>\\n          </div>\\n          <volumes-nfs-form data=\\\"formValues.NFSData\\\" ng-show=\\\"formValues.Driver === 'local'\\\"></volumes-nfs-form>\\n          <!-- !nfs-management -->\\n          <!-- cifs-management -->\\n          <div class=\\\"form-group col-md-12\\\">\\n            <por-switch-field checked=\\\"formValues.CIFSData.useCIFS\\\" label=\\\"'Use CIFS volume'\\\" on-change=\\\"(onUseCIFSChange)\\\"></por-switch-field>\\n            <div ng-if=\\\"formValues.CIFSData.useCIFS\\\" class=\\\"small text-muted\\\" style=\\\"margin-top: 10px\\\"> Ensure <code>cifs-utils</code> are installed on your hosts. </div>\\n          </div>\\n          <volumes-cifs-form data=\\\"formValues.CIFSData\\\" ng-show=\\\"formValues.Driver === 'local'\\\"></volumes-cifs-form>\\n          <!-- !cifs-management -->\\n          <div ng-if=\\\"applicationState.endpoint.mode.agentProxy && applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && formValues.Driver === 'local'\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Deployment </div>\\n            <!-- node-selection -->\\n            <node-selector model=\\\"formValues.NodeName\\\" endpoint-id=\\\"endpoint.Id\\\"> </node-selector>\\n            <!-- !node-selection -->\\n          </div>\\n          <!-- access-control -->\\n          <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n          <!-- !access-control -->\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-click=\\\"create()\\\"\\n                ng-disabled=\\\"state.actionInProgress || (formValues.NFSData.useNFS && !volumeCreationForm.nfsInformationForm.$valid) || (formValues.CIFSData.useCIFS && !volumeCreationForm.cifsInformationForm.$valid)\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Create the volume</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Creating volume...</span>\\n              </button>\\n              <span class=\\\"text-danger\\\" ng-if=\\\"state.formValidationError\\\" style=\\\"margin-left: 5px\\\">{{ state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/volumes/create/createvolume.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Volume details'\\\" breadcrumbs=\\\"[{label:'Volumes', link:'docker.volumes'}, volume.Id]\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"volume\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"database\\\" title-text=\\\"Volume details\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>ID</td>\\n              <td>\\n                {{ volume.Id }}\\n                <button authorization=\\\"DockerVolumeDelete\\\" class=\\\"btn btn-xs btn-danger\\\" ng-click=\\\"removeVolume()\\\"\\n                  ><pr-icon icon=\\\"'trash-2'\\\" class=\\\"leading-none\\\"></pr-icon> Remove this volume</button\\n                >\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Created</td>\\n              <td>{{ volume.CreatedAt | getisodate }}</td>\\n            </tr>\\n            <tr>\\n              <td>Mount path</td>\\n              <td>{{ volume.Mountpoint }}</td>\\n            </tr>\\n            <tr>\\n              <td>Driver</td>\\n              <td>{{ volume.Driver }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!(volume.Labels | emptyobject)\\\">\\n              <td>Labels</td>\\n              <td>\\n                <table class=\\\"table-bordered table-condensed table\\\">\\n                  <tr ng-repeat=\\\"(k, v) in volume.Labels\\\">\\n                    <td>{{ k }}</td>\\n                    <td>{{ v }}</td>\\n                  </tr>\\n                </table>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<!-- access-control-panel -->\\n<access-control-panel\\n  ng-if=\\\"volume\\\"\\n  resource-id=\\\"volume.ResourceId\\\"\\n  resource-control=\\\"volume.ResourceControl\\\"\\n  resource-type=\\\"resourceType\\\"\\n  on-update-success=\\\"(onUpdateResourceControlSuccess)\\\"\\n  environment-id=\\\"endpoint.Id\\\"\\n>\\n</access-control-panel>\\n<!-- !access-control-panel -->\\n\\n<div class=\\\"row\\\" ng-if=\\\"!(volume.Options | emptyobject)\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"settings\\\" title-text=\\\"Volume options\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr ng-repeat=\\\"(key, value) in volume.Options\\\">\\n              <td>{{ key }}</td>\\n              <td>{{ value }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n<div class=\\\"row\\\" ng-if=\\\"containersUsingVolume.length > 0\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"box\\\" title-text=\\\"Containers using volume\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <thead>\\n            <th>Container Name</th>\\n            <th>Mounted At</th>\\n            <th>Read-only</th>\\n          </thead>\\n          <tbody>\\n            <tr ng-repeat=\\\"container in containersUsingVolume\\\">\\n              <td\\n                ><a ui-sref=\\\"docker.containers.container({ id: container.Id, nodeName: container.NodeName })\\\">{{ container | containername }}</a></td\\n              >\\n              <td>{{ container.volumeData.Destination }}</td>\\n              <td>{{ !container.volumeData.RW }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/docker/views/volumes/edit/volume.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Volume list'\\\" breadcrumbs=\\\"['Volumes']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<volumes-datatable dataset=\\\"volumes\\\" on-remove=\\\"(removeAction)\\\" on-refresh=\\\"(getVolumes)\\\" is-browse-visible=\\\"showBrowseAction\\\"></volumes-datatable>\\n\";;\nvar path = 'app/docker/views/volumes/volumes.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal -mt-4\\\" name=\\\"edgeJobForm\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Edge job configuration </div>\\n  <!-- name-input -->\\n  <div class=\\\"form-group mt-4\\\">\\n    <label for=\\\"edgejob_name\\\" class=\\\"col-sm-2 control-label required text-left\\\">Name </label>\\n    <div class=\\\"col-sm-10\\\">\\n      <input\\n        type=\\\"text\\\"\\n        class=\\\"form-control\\\"\\n        ng-model=\\\"$ctrl.model.Name\\\"\\n        ng-pattern=\\\"/^[a-zA-Z0-9][a-zA-Z0-9_.-]+$/\\\"\\n        id=\\\"edgejob_name\\\"\\n        name=\\\"edgejob_name\\\"\\n        placeholder=\\\"e.g. backup-app-prod\\\"\\n        required\\n        auto-focus\\n      />\\n      <div class=\\\"help-block\\\" ng-show=\\\"edgeJobForm.edgejob_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"edgeJobForm.edgejob_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span> This field is required.\\n            </p>\\n            <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\">\\n              <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span> Allowed characters are: [a-zA-Z0-9_.-]\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <!-- !name-input -->\\n  <!-- cron-input -->\\n  <!-- edge-job-method-select -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Edge job configuration </div>\\n\\n  <box-selector slim=\\\"true\\\" radio-name=\\\"'configuration'\\\" value=\\\"$ctrl.formValues.cronMethod\\\" options=\\\"$ctrl.cronMethods\\\" on-change=\\\"($ctrl.onCronMethodChange)\\\"></box-selector>\\n\\n  <!-- !edge-job-method-select -->\\n  <!-- basic-edge-job -->\\n  <div ng-if=\\\"$ctrl.formValues.cronMethod === 'basic'\\\">\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"recurring\\\" class=\\\"col-sm-2 control-label text-left\\\">Recurring Edge job</label>\\n      <div class=\\\"col-sm-10\\\">\\n        <label class=\\\"switch\\\"><input type=\\\"checkbox\\\" name=\\\"recurring\\\" ng-model=\\\"$ctrl.model.Recurring\\\" /><span class=\\\"slider round\\\"></span></label>\\n      </div>\\n    </div>\\n    <!-- not-recurring -->\\n    <div ng-if=\\\"!$ctrl.model.Recurring\\\">\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"edgejob_cron\\\" class=\\\"col-sm-2 control-label text-left\\\">Schedule date</label>\\n        <div class=\\\"col-sm-10\\\">\\n          <input class=\\\"form-control\\\" moment-picker ng-model=\\\"$ctrl.formValues.datetime\\\" format=\\\"YYYY-MM-DD HH:mm\\\" />\\n        </div>\\n        <div class=\\\"col-sm-12 small text-muted mt-2.5\\\"> Time should be set according to the chosen environments' timezone. </div>\\n        <div ng-show=\\\"edgeJobForm.datepicker.$invalid\\\">\\n          <div class=\\\"col-sm-12 small text-warning\\\">\\n            <div ng-messages=\\\"edgeJobForm.datepicker.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span> This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !not-recurring -->\\n    <!-- recurring -->\\n    <div ng-if=\\\"$ctrl.model.Recurring\\\">\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"edgejob_value\\\" class=\\\"col-sm-2 control-label text-left\\\">Edge job time</label>\\n        <div class=\\\"col-sm-10\\\">\\n          <select\\n            id=\\\"edgejob_value\\\"\\n            name=\\\"edgejob_value\\\"\\n            class=\\\"form-control\\\"\\n            ng-model=\\\"$ctrl.formValues.scheduleValue\\\"\\n            ng-options=\\\"value.displayed for value in $ctrl.scheduleValues\\\"\\n            required\\n          ></select>\\n        </div>\\n        <div ng-show=\\\"edgeJobForm.edgejob_value.$invalid\\\">\\n          <div class=\\\"col-sm-12 small text-warning\\\">\\n            <div ng-messages=\\\"edgeJobForm.edgejob_value.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span> This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !recurring -->\\n  </div>\\n  <!-- !basic-edge-job -->\\n  <!-- advanced-schedule -->\\n  <div ng-if=\\\"$ctrl.formValues.cronMethod === 'advanced'\\\">\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"edgejob_cron\\\" class=\\\"col-sm-2 control-label text-left\\\">Cron rule</label>\\n      <div class=\\\"col-sm-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          ng-model=\\\"$ctrl.model.CronExpression\\\"\\n          id=\\\"edgejob_cron\\\"\\n          name=\\\"edgejob_cron\\\"\\n          placeholder=\\\"e.g. 0 2 * * *\\\"\\n          required\\n          ng-pattern=\\\"$ctrl.cronRegex\\\"\\n        />\\n        <div class=\\\"help-block\\\" ng-show=\\\"edgeJobForm.edgejob_cron.$invalid && edgeJobForm.edgejob_cron.$dirty\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"edgeJobForm.edgejob_cron.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span> This field is required.\\n              </p>\\n              <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\">\\n                <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span> This field format is invalid.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n      <div class=\\\"col-sm-12 small text-muted mt-2.5\\\"> Time should be set according to the chosen environments' timezone. </div>\\n    </div>\\n  </div>\\n  <!-- !advanced-schedule -->\\n\\n  <!-- execution-method -->\\n  <div ng-if=\\\"!$ctrl.model.Id\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\"> Job content </div>\\n    <box-selector value=\\\"$ctrl.formValues.method\\\" options=\\\"$ctrl.buildMethods\\\" radio-name=\\\"buildMethod\\\" on-change=\\\"($ctrl.onBuildMethodChange)\\\" slim=\\\"true\\\"></box-selector>\\n  </div>\\n  <!-- !execution-method -->\\n\\n  <!-- web-editor -->\\n  <!-- TODO use web-editor-form component -->\\n  <div ng-show=\\\"$ctrl.formValues.method === 'editor'\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\"> Web editor </div>\\n    <div class=\\\"form-group\\\">\\n      <div class=\\\"col-sm-12\\\">\\n        <code-editor\\n          identifier=\\\"execute-edge-job-editor\\\"\\n          placeholder=\\\"Define or paste the content of your script file here\\\"\\n          on-change=\\\"($ctrl.editorUpdate)\\\"\\n          value=\\\"$ctrl.model.FileContent\\\"\\n          shell=\\\"true\\\"\\n        ></code-editor>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !web-editor -->\\n  <!-- upload -->\\n  <div ng-show=\\\"$ctrl.formValues.method === 'upload'\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\"> Upload </div>\\n    <div class=\\\"form-group\\\">\\n      <span class=\\\"col-sm-12 text-muted small\\\"> You can upload a script file from your computer. </span>\\n    </div>\\n    <div class=\\\"form-group\\\">\\n      <div class=\\\"col-sm-12\\\">\\n        <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ngf-select ng-model=\\\"$ctrl.model.File\\\">Select file</button>\\n        <span class=\\\"space-left\\\">\\n          {{ $ctrl.model.File.name }}\\n          <span ng-if=\\\"!$ctrl.model.File\\\"><pr-icon icon=\\\"'x'\\\" class-name=\\\"'icon icon-danger'\\\"></pr-icon></span>\\n        </span>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !upload -->\\n\\n  <edge-groups-selector ng-if=\\\"$ctrl.model.EdgeGroups\\\" value=\\\"$ctrl.model.EdgeGroups\\\" on-change=\\\"($ctrl.onChangeGroups)\\\"></edge-groups-selector>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Target environments </div>\\n  <!-- node-selection -->\\n  <associated-edge-environments-selector value=\\\"$ctrl.model.Endpoints\\\" on-change=\\\"($ctrl.onChangeEnvironments)\\\"></associated-edge-environments-selector>\\n  <!-- !node-selection -->\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !edgeJobForm.$valid\\n        || ($ctrl.model.Endpoints.length === 0 && $ctrl.model.EdgeGroups.length === 0)\\n        || ($ctrl.formValues.method === 'upload' && !$ctrl.model.File)\\n        || ($ctrl.formValues.method === 'editor' && !$ctrl.model.FileContent)\\n        \\\"\\n        ng-click=\\\"$ctrl.action()\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n      <span class=\\\"text-danger space-left\\\" ng-if=\\\"$ctrl.state.formValidationError\\\">\\n        {{ $ctrl.state.formValidationError }}\\n      </span>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/edge/components/edge-job-form/edgeJobForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable edge-job-results-datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <span><pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon></span>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar\\\">\\n          <span><pr-icon icon=\\\"'search'\\\" class-name=\\\"'searchIcon'\\\"></pr-icon></span>\\n          <input type=\\\"text\\\" class=\\\"searchInput\\\" ng-model=\\\"$ctrl.state.textFilter\\\" placeholder=\\\"Search...\\\" auto-focus ng-model-options=\\\"{ debounce: 300 }\\\" />\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover table-filters nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <a ng-click=\\\"$ctrl.changeOrderBy('Endpoint')\\\">\\n                  Environment\\n                  <span><pr-icon icon=\\\"'arrow-down'\\\" ng-if=\\\"$ctrl.state.orderBy === 'Endpoint' && !$ctrl.state.reverseOrder\\\"></pr-icon></span>\\n                  <span><pr-icon icon=\\\"'arrow-up'\\\" ng-if=\\\"$ctrl.state.orderBy === 'Endpoint' && $ctrl.state.reverseOrder\\\"></pr-icon></span>\\n                </a>\\n              </th>\\n              <th> Actions </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter: $ctrl.applyFilters | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n            >\\n              <td>\\n                {{ item.Endpoint.Name }}\\n              </td>\\n              <td>\\n                <button ng-if=\\\"item.LogsStatus === 0 || item.LogsStatus === 1\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"$ctrl.collectLogs(item.EndpointId)\\\"> Retrieve logs </button>\\n                <button ng-if=\\\"item.LogsStatus === 3\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"$ctrl.onDownloadLogsClick(item.EndpointId)\\\"> Download logs </button>\\n                <button ng-if=\\\"item.LogsStatus === 3\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"$ctrl.onClearLogsClick(item.EndpointId)\\\"> Clear logs </button>\\n                <span ng-if=\\\"item.LogsStatus === 2\\\"> Logs marked for collection, please wait until the logs are available. </span>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"9\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"9\\\" class=\\\"text-muted text-center\\\">No result available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span class=\\\"mr-1\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/edge/components/edge-job-results-datatable/edgeJobResultsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class-name=\\\"'icon'\\\"></pr-icon>\\n          <input type=\\\"text\\\" class=\\\"searchInput\\\" ng-model=\\\"$ctrl.state.textFilter\\\" placeholder=\\\"Search...\\\" auto-focus ng-model-options=\\\"{ debounce: 300 }\\\" />\\n        </div>\\n        <div class=\\\"actionBar\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-danger\\\" ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\" ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\">\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Remove\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ui-sref=\\\"edge.jobs.new\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon>Add Edge job </button>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Name'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'CronExpression'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'CronExpression'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'CronExpression' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('CronExpression')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Created'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Created'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Created' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Created')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                <a ui-sref=\\\"edge.jobs.job({id: item.Id})\\\">{{ item.Name }}</a>\\n              </td>\\n              <td>\\n                {{ item.CronExpression }}\\n              </td>\\n              <td>{{ item.Created | getisodatefromtimestamp }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No Edge job available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span class=\\\"mr-1\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/edge/components/edge-jobs-datatable/edgeJobsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<span class=\\\"status\\\" title=\\\"Acknowledged environments\\\"><i class=\\\"acknowledged icon\\\"></i>{{ $ctrl.status.acknowledged || 0 }}</span>\\n<span class=\\\"status\\\" title=\\\"Successful environments\\\"><i class=\\\"ok icon\\\"></i>{{ $ctrl.status.ok || 0 }}</span>\\n<span class=\\\"status\\\" title=\\\"Failed environments\\\"><i class=\\\"error icon\\\"></i>{{ $ctrl.status.error || 0 }}</span>\\n\";;\nvar path = 'app/edge/components/edge-stack-status/edgeStackStatus.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"EdgeGroupForm\\\" ng-submit=\\\"$ctrl.handleSubmit()\\\">\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"group_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\"> Name </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input\\n        type=\\\"text\\\"\\n        class=\\\"form-control\\\"\\n        id=\\\"group_name\\\"\\n        name=\\\"group_name\\\"\\n        ng-model=\\\"$ctrl.model.Name\\\"\\n        required\\n        auto-focus\\n        data-cy=\\\"edgeGroupCreate-groupNameInput\\\"\\n        placeholder=\\\"e.g. mygroup\\\"\\n      />\\n      <div class=\\\"help-block\\\" ng-show=\\\"EdgeGroupForm.group_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"EdgeGroupForm.group_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon> This field is required. </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Group type </div>\\n\\n  <box-selector slim=\\\"true\\\" value=\\\"$ctrl.model.Dynamic\\\" on-change=\\\"($ctrl.onChangeDynamic)\\\" options=\\\"$ctrl.groupTypeOptions\\\" radio-name=\\\"'groupTypeDynamic'\\\"></box-selector>\\n\\n  <!-- StaticGroup -->\\n  <div ng-if=\\\"!$ctrl.model.Dynamic\\\">\\n    <div ng-if=\\\"!$ctrl.noEndpoints\\\">\\n      <!-- environments -->\\n      <div class=\\\"col-sm-12 form-section-title\\\"> Associated environments </div>\\n      <div class=\\\"form-group\\\">\\n        <associated-edge-environments-selector value=\\\"$ctrl.model.Endpoints\\\" on-change=\\\"($ctrl.onChangeEnvironments)\\\"></associated-edge-environments-selector>\\n      </div>\\n    </div>\\n    <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.noEndpoints\\\">\\n      <div class=\\\"col-sm-12 small text-muted\\\">\\n        No Edge environments are available. Head over to the <a ui-sref=\\\"portainer.endpoints\\\">Environments view</a> to add environments.\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !StaticGroup -->\\n\\n  <!-- DynamicGroup -->\\n  <div ng-if=\\\"$ctrl.model.Dynamic\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\"> Tags </div>\\n\\n    <box-selector slim=\\\"true\\\" value=\\\"$ctrl.model.PartialMatch\\\" on-change=\\\"($ctrl.onChangePartialMatch)\\\" options=\\\"$ctrl.tagOptions\\\" radio-name=\\\"'partialMatch'\\\"></box-selector>\\n\\n    <tag-selector ng-if=\\\"$ctrl.model.TagIds\\\" value=\\\"$ctrl.model.TagIds\\\" on-change=\\\"($ctrl.onChangeTags)\\\"> </tag-selector>\\n\\n    <edge-group-association-table\\n      title=\\\"'Associated environments by tags'\\\"\\n      empty-content-message=\\\"'No associated available'\\\"\\n      query=\\\"$ctrl.dynamicQuery\\\"\\n    ></edge-group-association-table>\\n  </div>\\n  <!-- !DynamicGroup -->\\n\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"submit\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !EdgeGroupForm.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        data-cy=\\\"edgeGroupCreate-addGroupButton\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n</form>\\n\";;\nvar path = 'app/edge/components/group-form/groupForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create edge group'\\\" breadcrumbs=\\\"[{label:'Edge groups', link:'edge.groups'}, 'Add edge group']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <edge-group-form\\n          loaded=\\\"$ctrl.state.loaded\\\"\\n          page-type=\\\"create\\\"\\n          form-action-label=\\\"Add edge group\\\"\\n          form-action=\\\"$ctrl.createGroup\\\"\\n          groups=\\\"$ctrl.endpointGroups\\\"\\n          model=\\\"$ctrl.model\\\"\\n        ></edge-group-form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-groups/createEdgeGroupView/createEdgeGroupView.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Edit edge group'\\\" breadcrumbs=\\\"[{label:'Edge Groups', link:'edge.groups'}, $ctrl.model.Name]\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"$ctrl.model\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <edge-group-form\\n          loaded=\\\"$ctrl.state.loaded\\\"\\n          page-type=\\\"edit\\\"\\n          form-action-label=\\\"Save edge group\\\"\\n          form-action=\\\"$ctrl.updateGroup\\\"\\n          endpoints=\\\"$ctrl.endpoints\\\"\\n          groups=\\\"$ctrl.endpointGroups\\\"\\n          model=\\\"$ctrl.model\\\"\\n        ></edge-group-form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-groups/editEdgeGroupView/editEdgeGroupView.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create Edge job'\\\" breadcrumbs=\\\"[{label:'Edge Jobs', link:'edge.jobs'}, 'Create Edge job']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <edge-job-form\\n          model=\\\"$ctrl.model\\\"\\n          groups=\\\"$ctrl.groups\\\"\\n          tags=\\\"$ctrl.tags\\\"\\n          edge-groups=\\\"$ctrl.edgeGroups\\\"\\n          form-action=\\\"$ctrl.create\\\"\\n          form-action-label=\\\"Create edge job\\\"\\n          action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n          is-editor-dirty=\\\"$ctrl.state.isEditorDirty\\\"\\n        ></edge-job-form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobView.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Edge job details'\\\" breadcrumbs=\\\"[{label:'Edge jobs', link:'edge.jobs'}, $ctrl.edgeJob.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <uib-tabset active=\\\"$ctrl.state.activeTab\\\">\\n          <uib-tab index=\\\"0\\\" select=\\\"$ctrl.showEditor()\\\">\\n            <uib-tab-heading>\\n              <span><pr-icon icon=\\\"'wrench'\\\"></pr-icon></span> Configuration\\n            </uib-tab-heading>\\n\\n            <edge-job-form\\n              ng-if=\\\"$ctrl.edgeJob && $ctrl.state.showEditorTab\\\"\\n              model=\\\"$ctrl.edgeJob\\\"\\n              endpoints=\\\"endpoints\\\"\\n              groups=\\\"$ctrl.groups\\\"\\n              tags=\\\"$ctrl.tags\\\"\\n              edge-groups=\\\"$ctrl.edgeGroups\\\"\\n              form-action=\\\"$ctrl.update\\\"\\n              form-action-label=\\\"Update Edge job\\\"\\n              action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n              is-editor-dirty=\\\"$ctrl.state.isEditorDirty\\\"\\n            ></edge-job-form>\\n          </uib-tab>\\n\\n          <uib-tab index=\\\"1\\\">\\n            <uib-tab-heading>\\n              <span><pr-icon icon=\\\"'list'\\\"></pr-icon></span> Results\\n            </uib-tab-heading>\\n\\n            <edge-job-results-datatable\\n              ng-if=\\\"$ctrl.results\\\"\\n              title-text=\\\"Results\\\"\\n              title-icon=\\\"list\\\"\\n              dataset=\\\"$ctrl.results\\\"\\n              table-key=\\\"edge-job-results\\\"\\n              order-by=\\\"Status\\\"\\n              reverse-order=\\\"true\\\"\\n              refresh-callback=\\\"$ctrl.refresh\\\"\\n              on-download-logs-click=\\\"($ctrl.downloadLogs)\\\"\\n              on-collect-logs-click=\\\"($ctrl.collectLogs)\\\"\\n              on-clear-logs-click=\\\"($ctrl.clearLogs)\\\"\\n            ></edge-job-results-datatable>\\n          </uib-tab>\\n        </uib-tabset>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-jobs/edgeJob/edgeJob.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Edge Jobs'\\\" breadcrumbs=\\\"['Edge Jobs']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<information-panel title-text=\\\"Information\\\">\\n  <span class=\\\"small\\\">\\n    <p class=\\\"text-muted\\\">Edge Jobs requires Docker Standalone and a cron implementation that reads jobs from <code>/etc/cron.d</code></p>\\n  </span>\\n</information-panel>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <edge-jobs-datatable\\n      title-text=\\\"Edge jobs\\\"\\n      title-icon=\\\"clock\\\"\\n      dataset=\\\"$ctrl.edgeJobs\\\"\\n      table-key=\\\"edgeJobs\\\"\\n      order-by=\\\"Name\\\"\\n      remove-action=\\\"$ctrl.removeAction\\\"\\n    ></edge-jobs-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-jobs/edgeJobsView/edgeJobsView.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create Edge stack'\\\" breadcrumbs=\\\"[{label:'Edge Stacks', link:'edge.stacks'}, 'Create Edge stack']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"$ctrl.form\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"stack_name\\\" class=\\\"col-sm-1 control-label required text-left\\\"> Name </label>\\n            <div class=\\\"col-sm-11\\\">\\n              <input\\n                type=\\\"text\\\"\\n                class=\\\"form-control\\\"\\n                ng-model=\\\"$ctrl.formValues.Name\\\"\\n                id=\\\"stack_name\\\"\\n                name=\\\"nameField\\\"\\n                ng-pattern=\\\"$ctrl.formValues.DeploymentType === $ctrl.EditorType.Compose ? STACK_NAME_VALIDATION_REGEX : ''\\\"\\n                placeholder=\\\"e.g. mystack\\\"\\n                auto-focus\\n                required\\n                data-cy=\\\"edgeStackCreate-nameInput\\\"\\n              />\\n              <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.form.$invalid\\\">\\n                <div class=\\\"small text-warning\\\">\\n                  <div ng-messages=\\\"$ctrl.form.$error\\\">\\n                    <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                      <span>Name is required.</span>\\n                    </p>\\n                    <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                      <span>This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').</span>\\n                    </p>\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n\\n          <edge-groups-selector ng-if=\\\"$ctrl.formValues.Groups\\\" value=\\\"$ctrl.formValues.Groups\\\" on-change=\\\"($ctrl.onChangeGroups)\\\"></edge-groups-selector>\\n\\n          <p class=\\\"col-sm-12 vertical-center help-block small text-warning\\\" ng-if=\\\"$ctrl.formValues.DeploymentType === undefined\\\">\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> There are no available deployment types when there is more than one type of environment in your edge group\\n            selection (e.g. Kubernetes and Docker environments). Please select edge groups that have environments of the same type.\\n          </p>\\n\\n          <edge-stack-deployment-type-selector\\n            value=\\\"$ctrl.formValues.DeploymentType\\\"\\n            has-docker-endpoint=\\\"$ctrl.hasType($ctrl.EnvironmentType.EdgeAgentOnDocker)\\\"\\n            has-kube-endpoint=\\\"$ctrl.hasType($ctrl.EnvironmentType.EdgeAgentOnKubernetes)\\\"\\n            on-change=\\\"($ctrl.onChangeDeploymentType)\\\"\\n          ></edge-stack-deployment-type-selector>\\n\\n          <edge-stacks-docker-compose-form\\n            ng-if=\\\"$ctrl.formValues.DeploymentType == $ctrl.EditorType.Compose\\\"\\n            form-values=\\\"$ctrl.formValues\\\"\\n            state=\\\"$ctrl.state\\\"\\n            template-values=\\\"$ctrl.state.templateValues\\\"\\n            set-template-values=\\\"$ctrl.setTemplateValues\\\"\\n          ></edge-stacks-docker-compose-form>\\n\\n          <edge-stacks-kube-manifest-form\\n            ng-if=\\\"$ctrl.formValues.DeploymentType == $ctrl.EditorType.Kubernetes\\\"\\n            form-values=\\\"$ctrl.formValues\\\"\\n            state=\\\"$ctrl.state\\\"\\n          ></edge-stacks-kube-manifest-form>\\n\\n          <div ng-if=\\\"$ctrl.isBE\\\">\\n            <environment-variables-panel values=\\\"$ctrl.formValues.envVars\\\" on-change=\\\"($ctrl.onEnvVarChange)\\\"></environment-variables-panel>\\n          </div>\\n\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"$ctrl.state.actionInProgress || $ctrl.formIsInvalid()\\\"\\n                ng-click=\\\"$ctrl.createStack()\\\"\\n                button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n                analytics-on\\n                analytics-event=\\\"edge-stack-creation\\\"\\n                analytics-category=\\\"edge\\\"\\n                analytics-properties=\\\"$ctrl.buildAnalyticsProperties()\\\"\\n                data-cy=\\\"edgeStackCreate-createStackButton\\\"\\n              >\\n                <span ng-hide=\\\"$ctrl.state.actionInProgress\\\">Deploy the stack</span>\\n                <span ng-show=\\\"$ctrl.state.actionInProgress\\\">Deployment in progress...</span>\\n              </button>\\n              <span class=\\\"text-danger\\\" ng-if=\\\"$ctrl.state.formValidationError\\\" style=\\\"margin-left: 5px\\\">\\n                {{ $ctrl.state.formValidationError }}\\n              </span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\"> Build method </div>\\n<box-selector slim=\\\"true\\\" radio-name=\\\"'method'\\\" value=\\\"$ctrl.state.Method\\\" options=\\\"$ctrl.methodOptions\\\" on-change=\\\"($ctrl.onChangeMethod)\\\"></box-selector>\\n\\n<!-- template -->\\n<div ng-if=\\\"$ctrl.state.Method === 'template'\\\">\\n  <edge-stack-create-template-fieldset values=\\\"$ctrl.templateValues\\\" set-values=\\\"$ctrl.setTemplateValues\\\"></edge-stack-create-template-fieldset>\\n</div>\\n<!-- !template -->\\n\\n<web-editor-form\\n  ng-if=\\\"$ctrl.state.Method === 'editor' || ($ctrl.state.Method === 'template' && $ctrl.templateValues.template)\\\"\\n  identifier=\\\"stack-creation-editor\\\"\\n  value=\\\"$ctrl.formValues.StackFileContent\\\"\\n  on-change=\\\"($ctrl.onChangeFileContent)\\\"\\n  ng-required=\\\"true\\\"\\n  yml=\\\"true\\\"\\n  placeholder=\\\"Define or paste the content of your docker compose file here\\\"\\n  versions=\\\"$ctrl.formValues.versions\\\"\\n  read-only=\\\"$ctrl.isGitTemplate()\\\"\\n>\\n  <editor-description>\\n    You can get more information about Compose file format in the\\n    <a href=\\\"https://docs.docker.com/compose/compose-file/\\\" target=\\\"_blank\\\"> official documentation </a>\\n    .\\n  </editor-description>\\n</web-editor-form>\\n\\n<file-upload-form ng-if=\\\"$ctrl.state.Method === 'upload'\\\" file=\\\"$ctrl.formValues.StackFile\\\" on-change=\\\"($ctrl.onChangeFile)\\\" ng-required=\\\"true\\\">\\n  <file-upload-description> You can upload a Compose file from your computer. </file-upload-description>\\n</file-upload-form>\\n\\n<div ng-if=\\\"$ctrl.state.Method == 'repository' || $ctrl.isGitTemplate()\\\">\\n  <git-form\\n    value=\\\"$ctrl.formValues\\\"\\n    on-change=\\\"($ctrl.onChangeFormValues)\\\"\\n    base-webhook-url=\\\"{{ $ctrl.state.baseWebhookUrl }}\\\"\\n    webhook-id=\\\"{{ $ctrl.state.webhookId }}\\\"\\n    created-from-custom-template-id=\\\"($ctrl.state.templateValues.type === 'custom' ? $ctrl.state.templateValues.template.Id : 0)\\\"\\n    docs-links\\n  ></git-form>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>Templates allow deploying any kind of Kubernetes resource (Deployment, Secret, ConfigMap...)</div>\\n<div>\\n  You can get more information about Kubernetes file format in the\\n  <a href=\\\"https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/\\\" target=\\\"_blank\\\">official documentation</a>.\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/kube-deploy-description.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <por-switch-field\\n      label=\\\"'Use namespace(s) specified from manifest'\\\"\\n      tooltip=\\\"'If you have defined namespaces in your deployment file turning this on will enforce the use of those only in the deployment'\\\"\\n      checked=\\\"$ctrl.formValues.UseManifestNamespaces\\\"\\n      on-change=\\\"($ctrl.onChangeUseManifestNamespaces)\\\"\\n    ></por-switch-field>\\n  </div>\\n</div>\\n\\n<div class=\\\"col-sm-12 form-section-title\\\"> Build method </div>\\n<box-selector slim=\\\"true\\\" radio-name=\\\"'method'\\\" value=\\\"$ctrl.state.Method\\\" options=\\\"$ctrl.methodOptions\\\" on-change=\\\"($ctrl.onChangeMethod)\\\"></box-selector>\\n\\n<web-editor-form\\n  ng-if=\\\"$ctrl.state.Method === 'editor'\\\"\\n  identifier=\\\"stack-creation-editor\\\"\\n  value=\\\"$ctrl.formValues.StackFileContent\\\"\\n  on-change=\\\"($ctrl.onChangeFileContent)\\\"\\n  yml=\\\"true\\\"\\n  placeholder=\\\"Define or paste the content of your manifest here\\\"\\n  ng-required=\\\"true\\\"\\n>\\n  <editor-description>\\n    <kube-deploy-description></kube-deploy-description>\\n  </editor-description>\\n</web-editor-form>\\n\\n<file-upload-form ng-if=\\\"$ctrl.state.Method === 'upload'\\\" file=\\\"$ctrl.formValues.StackFile\\\" on-change=\\\"($ctrl.onChangeFile)\\\" ng-required=\\\"true\\\">\\n  <file-upload-description>\\n    <kube-deploy-description></kube-deploy-description>\\n  </file-upload-description>\\n</file-upload-form>\\n\\n<git-form\\n  ng-if=\\\"$ctrl.state.Method === 'repository'\\\"\\n  deploy-method=\\\"kubernetes\\\"\\n  value=\\\"$ctrl.formValues\\\"\\n  on-change=\\\"($ctrl.onChangeFormValues)\\\"\\n  base-webhook-url=\\\"{{ $ctrl.state.baseWebhookUrl }}\\\"\\n  webhook-id=\\\"{{ $ctrl.state.webhookId }}\\\"\\n></git-form>\\n\";;\nvar path = 'app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Edit Edge stack'\\\" breadcrumbs=\\\"[{label:'Edge Stacks', link:'edge.stacks'}, $ctrl.stack.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"$ctrl.stack\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <uib-tabset active=\\\"$ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n          <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\">\\n            <uib-tab-heading>\\n              <span><pr-icon icon=\\\"'layers'\\\"></pr-icon></span> Stack\\n            </uib-tab-heading>\\n\\n            <div style=\\\"padding: 20px\\\">\\n              <edit-edge-stack-form\\n                ng-if=\\\"$ctrl.edgeGroups && $ctrl.stack && $ctrl.formValues.content !== null\\\"\\n                edge-groups=\\\"$ctrl.edgeGroups\\\"\\n                edge-stack=\\\"$ctrl.stack\\\"\\n                is-submitting=\\\"$ctrl.state.actionInProgress\\\"\\n                on-submit=\\\"($ctrl.deployStack)\\\"\\n                on-editor-change=\\\"($ctrl.onEditorChange)\\\"\\n                file-content=\\\"$ctrl.formValues.content\\\"\\n                allow-kube-to-select-compose=\\\"$ctrl.allowKubeToSelectCompose\\\"\\n              ></edit-edge-stack-form>\\n            </div>\\n          </uib-tab>\\n          <uib-tab index=\\\"1\\\" classes=\\\"btn-sm\\\">\\n            <uib-tab-heading>\\n              <span><pr-icon icon=\\\"'hard-drive'\\\"></pr-icon></span> Environments\\n            </uib-tab-heading>\\n\\n            <div style=\\\"margin-top: 25px\\\">\\n              <edge-stack-environments-datatable></edge-stack-environments-datatable>\\n            </div>\\n          </uib-tab>\\n        </uib-tabset>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackView.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-xs-12 !px-0 !py-1 text-[13px]\\\"> Secrets </div>\\n<table style=\\\"width: 50%\\\">\\n  <tbody>\\n    <tr>\\n      <td>\\n        <sensitive-details ng-repeat=\\\"secret in $ctrl.state.secrets\\\" key=\\\"{{ secret.key }}\\\" value=\\\"{{ secret.value }}\\\"> </sensitive-details>\\n      </td>\\n    </tr>\\n  </tbody>\\n</table>\\n\";;\nvar path = 'app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <!-- toolbar header actions and settings -->\\n  <div ng-if=\\\"$ctrl.isPrimary\\\">\\n    <div class=\\\"toolBar\\\">\\n      <div class=\\\"toolBarTitle vertical-center\\\">\\n        <div class=\\\"widget-icon space-right\\\">\\n          <pr-icon icon=\\\"'box'\\\"></pr-icon>\\n        </div>\\n        Applications\\n      </div>\\n      <!-- use row reverse to make the left most items wrap first to the right side in the next line -->\\n      <div class=\\\"inline-flex flex-row-reverse flex-wrap !gap-x-5 gap-y-3\\\">\\n        <div class=\\\"settings\\\" data-cy=\\\"k8sApp-tableSettings\\\">\\n          <span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n            <span uib-dropdown-toggle aria-label=\\\"Settings\\\">\\n              <pr-icon icon=\\\"'more-vertical'\\\" class-name=\\\"'!mr-0 !h-4'\\\"></pr-icon>\\n            </span>\\n            <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n              <div class=\\\"tableMenu\\\">\\n                <div class=\\\"menuHeader\\\"> Table settings </div>\\n                <div class=\\\"menuContent\\\">\\n                  <div>\\n                    <div class=\\\"md-checkbox\\\" ng-if=\\\"$ctrl.isAdmin\\\">\\n                      <input id=\\\"applications_setting_show_system\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.showSystem\\\" ng-change=\\\"$ctrl.onSettingsShowSystemChange()\\\" />\\n                      <label for=\\\"applications_setting_show_system\\\">Show system resources</label>\\n                    </div>\\n                    <div class=\\\"md-checkbox\\\">\\n                      <input\\n                        id=\\\"setting_auto_refresh\\\"\\n                        type=\\\"checkbox\\\"\\n                        ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\"\\n                        ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\"\\n                        data-cy=\\\"k8sApp-autoRefreshCheckbox\\\"\\n                      />\\n                      <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                    </div>\\n                    <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                      <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                      <select\\n                        id=\\\"settings_refresh_rate\\\"\\n                        ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\"\\n                        ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\"\\n                        class=\\\"small-select\\\"\\n                        data-cy=\\\"k8sApp-refreshRateDropdown\\\"\\n                      >\\n                        <option value=\\\"10\\\">10s</option>\\n                        <option value=\\\"30\\\">30s</option>\\n                        <option value=\\\"60\\\">1min</option>\\n                        <option value=\\\"120\\\">2min</option>\\n                        <option value=\\\"300\\\">5min</option>\\n                      </select>\\n                      <span>\\n                        <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n                      </span>\\n                    </div>\\n                  </div>\\n                </div>\\n                <div>\\n                  <a type=\\\"button\\\" class=\\\"btn btn-sm btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\" data-cy=\\\"k8sApp-tableSettingsCloseButton\\\">Close</a>\\n                </div>\\n              </div>\\n            </div>\\n          </span>\\n        </div>\\n\\n        <div class=\\\"actionBar !mr-0 !gap-3\\\">\\n          <button\\n            ng-if=\\\"$ctrl.isPrimary\\\"\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit\\\"\\n            ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n            ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n            data-cy=\\\"k8sApp-removeAppButton\\\"\\n          >\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n            Remove\\n          </button>\\n          <button\\n            ng-if=\\\"$ctrl.isPrimary\\\"\\n            hide-deployment-option=\\\"form\\\"\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-secondary vertical-center !ml-0 h-fit\\\"\\n            ui-sref=\\\"kubernetes.applications.new\\\"\\n            data-cy=\\\"k8sApp-addApplicationButton\\\"\\n          >\\n            <pr-icon icon=\\\"'plus'\\\" class-name=\\\"'!h-3'\\\"></pr-icon>Add with form\\n          </button>\\n          <button\\n            ng-if=\\\"$ctrl.isPrimary\\\"\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-primary vertical-center !ml-0 h-fit\\\"\\n            ui-sref=\\\"kubernetes.deploy({ referrer: 'kubernetes.applications' })\\\"\\n            data-cy=\\\"k8sApp-deployFromManifestButton\\\"\\n          >\\n            <pr-icon icon=\\\"'plus'\\\" class-name=\\\"'!h-3'\\\"></pr-icon>Create from manifest\\n          </button>\\n        </div>\\n\\n        <div class=\\\"searchBar\\\">\\n          <pr-icon icon=\\\"'search'\\\" class-name=\\\"'searchIcon'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n            data-cy=\\\"k8sApp-searchApplicationsInput\\\"\\n          />\\n        </div>\\n      </div>\\n    </div>\\n    <div class=\\\"toolBar !pt-0\\\">\\n      <div class=\\\"w-full\\\">\\n        <div class=\\\"form-group float-right !h-[30px] min-w-[140px] mr-2\\\">\\n          <div class=\\\"input-group\\\">\\n            <span class=\\\"input-group-addon\\\">\\n              <div className=\\\"flex items-center gap-1\\\">\\n                <pr-icon icon=\\\"'filter'\\\" size=\\\"'sm'\\\"></pr-icon>\\n                Namespace\\n              </div>\\n            </span>\\n            <select\\n              class=\\\"form-control !h-[30px] !py-1\\\"\\n              ng-model=\\\"$ctrl.state.namespace\\\"\\n              ng-change=\\\"$ctrl.onChangeNamespace()\\\"\\n              data-cy=\\\"component-namespaceSelect\\\"\\n              ng-options=\\\"o.Value as (o.Name + (o.IsSystem ? ' - system' : '')) for o in $ctrl.state.namespaces\\\"\\n            >\\n            </select>\\n          </div>\\n        </div>\\n\\n        <div class=\\\"space-y-2\\\">\\n          <div class=\\\"flex flex-row\\\" authorization=\\\"K8sAccessSystemNamespaces\\\" ng-if=\\\"$ctrl.isAdmin && !$ctrl.settings.showSystem\\\">\\n            <span class=\\\"small vertical-center text-xs\\\">\\n              <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n              <span class=\\\"text-muted\\\">System resources are hidden, this can be changed in the table settings.</span>\\n            </span>\\n          </div>\\n          <div class=\\\"w-fit\\\">\\n            <helm-insights-box></helm-insights-box>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- data table content -->\\n  <div ng-class=\\\"{ 'table-responsive': $ctrl.isPrimary, 'inner-datatable': !$ctrl.isPrimary }\\\">\\n    <table class=\\\"table-hover table-filters nowrap-cells table\\\" data-cy=\\\"k8sApp-appTable\\\">\\n      <thead ng-class=\\\"{ 'secondary-heading': !$ctrl.isPrimary }\\\">\\n        <tr role=\\\"row\\\">\\n          <th role=\\\"columnheader\\\" class=\\\"datatable-wide dropdown\\\">\\n            <div ng-if=\\\"$ctrl.isPrimary\\\" class=\\\"no-wrap flex min-w-max\\\">\\n              <span class=\\\"md-checkbox vertical-center\\\">\\n                <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" data-cy=\\\"k8sApp-selectAllCheckbox\\\" />\\n                <label for=\\\"select_all\\\"></label>\\n              </span>\\n              <div class=\\\"vertical-center cursor-pointer\\\" ng-click=\\\"$ctrl.expandAll()\\\">\\n                <pr-icon ng-if=\\\"$ctrl.state.expandAll\\\" icon=\\\"'chevron-down'\\\"></pr-icon>\\n                <pr-icon ng-if=\\\"!$ctrl.state.expandAll\\\" icon=\\\"'chevron-right'\\\"></pr-icon>\\n              </div>\\n            </div>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Name'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th ng-if=\\\"!$ctrl.hideStacksFunctionality\\\">\\n            <table-column-header\\n              col-title=\\\"'Stack'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'StackName'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'StackName' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('StackName')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Namespace'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'ResourcePool'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'ResourcePool' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('ResourcePool')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Image'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'Image'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'Image' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('Image')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.filters.state.open\\\">\\n            <div class=\\\"no-wrap flex flex-row gap-2\\\">\\n              <table-column-header\\n                col-title=\\\"'Application Type'\\\"\\n                can-sort=\\\"true\\\"\\n                is-sorted=\\\"$ctrl.state.orderBy === 'ApplicationType'\\\"\\n                is-sorted-desc=\\\"$ctrl.state.orderBy === 'ApplicationType' && $ctrl.state.reverseOrder\\\"\\n                ng-click=\\\"$ctrl.changeOrderBy('ApplicationType')\\\"\\n              ></table-column-header>\\n              <div class=\\\"no-wrap flex flex-row items-center gap-1\\\" uib-dropdown-toggle>\\n                <span class=\\\"table-filter\\\">Filters</span>\\n                <pr-icon ng-if=\\\"!$ctrl.filters.state.enabled\\\" icon=\\\"'filter'\\\"></pr-icon>\\n                <pr-icon ng-if=\\\"$ctrl.filters.state.enabled\\\" icon=\\\"'check'\\\"></pr-icon>\\n              </div>\\n              <div class=\\\"dropdown-menu\\\" uib-dropdown-menu>\\n                <div class=\\\"tableMenu\\\">\\n                  <div class=\\\"menuHeader\\\"> Filter by application type </div>\\n                  <div class=\\\"menuContent\\\">\\n                    <div class=\\\"md-checkbox\\\" ng-repeat=\\\"filter in $ctrl.filters.state.values track by $index\\\">\\n                      <input id=\\\"filter_state_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"filter.display\\\" ng-change=\\\"$ctrl.onStateFilterChange()\\\" />\\n                      <label for=\\\"filter_state_{{ $index }}\\\">{{ filter.type }}</label>\\n                    </div>\\n                  </div>\\n                  <div>\\n                    <a type=\\\"button\\\" class=\\\"btn btn-sm btn-default btn-sm\\\" ng-click=\\\"$ctrl.filters.state.open = false;\\\">Close</a>\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n          </th>\\n          <th>\\n            <table-column-header col-title=\\\"'Status'\\\" can-sort=\\\"false\\\"></table-column-header>\\n            <!-- Status -->\\n          </th>\\n          <th>\\n            <table-column-header col-title=\\\"'Published'\\\" can-sort=\\\"false\\\"></table-column-header>\\n            <!-- Published -->\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Created'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'CreationDate'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'CreationDate' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('CreationDate')\\\"\\n            ></table-column-header>\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr\\n          ng-show=\\\"!$ctrl.isAppsLoading\\\"\\n          ng-click=\\\"$ctrl.expandItem(item, !$ctrl.isItemExpanded(item))\\\"\\n          dir-paginate-start=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.applyFilters | filter:$ctrl.state.textFilter | filter:$ctrl.isDisplayed | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit: $ctrl.tableKey))\\\"\\n          ng-class=\\\"{ active: item.Checked, interactive: $ctrl.isExpandable(item), 'secondary-body': !$ctrl.isPrimary }\\\"\\n          pagination-id=\\\"$ctrl.tableKey\\\"\\n        >\\n          <td class=\\\"h-[50px]\\\">\\n            <span ng-if=\\\"$ctrl.isPrimary\\\" class=\\\"md-checkbox vertical-center\\\">\\n              <input\\n                id=\\\"select_{{ $index }}\\\"\\n                type=\\\"checkbox\\\"\\n                ng-model=\\\"item.Checked\\\"\\n                ng-click=\\\"$ctrl.selectItem(item, $event); $event.stopPropagation()\\\"\\n                ng-disabled=\\\"$ctrl.isSystemNamespace(item)\\\"\\n              />\\n              <label for=\\\"select_{{ $index }}\\\"></label>\\n            </span>\\n            <div ng-if=\\\"$ctrl.isExpandable(item)\\\" class=\\\"vertical-center\\\">\\n              <pr-icon ng-if=\\\"$ctrl.isItemExpanded(item)\\\" icon=\\\"'chevron-down'\\\"></pr-icon>\\n              <pr-icon ng-if=\\\"!$ctrl.isItemExpanded(item)\\\" icon=\\\"'chevron-right'\\\"></pr-icon>\\n            </div>\\n          </td>\\n          <td>\\n            <a\\n              ng-if=\\\"item.KubernetesApplications\\\"\\n              ui-sref=\\\"kubernetes.helm({ name: item.Name, namespace: item.ResourcePool })\\\"\\n              ng-click=\\\"$event.stopPropagation()\\\"\\n              class=\\\"hyperlink\\\"\\n              >{{ item.Name }}\\n            </a>\\n            <a\\n              ng-if=\\\"!item.KubernetesApplications\\\"\\n              ui-sref=\\\"kubernetes.applications.application({ name: item.Name, namespace: item.ResourcePool, 'resource-type': item.ApplicationType })\\\"\\n              ng-click=\\\"$event.stopPropagation()\\\"\\n              class=\\\"hyperlink\\\"\\n              >{{ item.Name }}\\n            </a>\\n            <span class=\\\"label label-info image-tag label-margins\\\" ng-if=\\\"$ctrl.isSystemNamespace(item)\\\">system</span>\\n            <span class=\\\"label label-primary image-tag label-margins\\\" ng-if=\\\"!$ctrl.isSystemNamespace(item) && $ctrl.isExternalApplication(item)\\\">external</span>\\n          </td>\\n          <td ng-if=\\\"!$ctrl.hideStacksFunctionality\\\">{{ item.StackName || '-' }}</td>\\n          <td>\\n            <a ui-sref=\\\"kubernetes.resourcePools.resourcePool({ id: item.ResourcePool })\\\" ng-click=\\\"$event.stopPropagation()\\\">{{ item.ResourcePool }}</a>\\n          </td>\\n          <td title=\\\"{{ item.Image }}\\\"\\n            >{{ item.Image | truncate: 64 }} <span ng-if=\\\"item.Containers.length > 1\\\">+ {{ item.Containers.length - 1 }}</span></td\\n          >\\n          <td>{{ item.ApplicationType }}</td>\\n          <td ng-if=\\\"item.ApplicationType !== $ctrl.KubernetesApplicationTypes.Pod\\\">\\n            <status-indicator ok=\\\"(item.TotalPodsCount > 0 && item.TotalPodsCount === item.RunningPodsCount) || item.Status === 'Ready'\\\"></status-indicator>\\n            <span ng-if=\\\"item.DeploymentType === $ctrl.KubernetesApplicationDeploymentTypes.Replicated\\\">Replicated</span>\\n            <span ng-if=\\\"item.DeploymentType === $ctrl.KubernetesApplicationDeploymentTypes.Global\\\">Global</span>\\n            <span ng-if=\\\"item.RunningPodsCount >= 0 && item.TotalPodsCount >= 0\\\"\\n              ><code>{{ item.RunningPodsCount }}</code> / <code>{{ item.TotalPodsCount }}</code></span\\n            >\\n            <span ng-if=\\\"item.KubernetesApplications\\\">{{ item.Status }}</span>\\n          </td>\\n          <td ng-if=\\\"item.ApplicationType === $ctrl.KubernetesApplicationTypes.Pod\\\">\\n            {{ item.Pods[0].Status }}\\n          </td>\\n          <td>\\n            <span>\\n              {{ item.Services.length === 0 ? 'No' : 'Yes' }}\\n            </span>\\n          </td>\\n          <td>{{ item.CreationDate | getisodate }} {{ item.ApplicationOwner ? 'by ' + item.ApplicationOwner : '' }}</td>\\n        </tr>\\n        <tr dir-paginate-end ng-show=\\\"$ctrl.isExpandable(item) && $ctrl.isItemExpanded(item)\\\" ng-class=\\\"{ 'secondary-body': $ctrl.isPrimary && !item.KubernetesApplications }\\\">\\n          <td></td>\\n          <td colspan=\\\"8\\\" class=\\\"datatable-padding-vertical\\\">\\n            <span ng-if=\\\"item.KubernetesApplications\\\">\\n              <kubernetes-applications-datatable\\n                dataset=\\\"item.KubernetesApplications\\\"\\n                table-key=\\\"{{ item.Id }}_table\\\"\\n                settings-key=\\\"{{ $ctrl.tableKey }}\\\"\\n                order-by=\\\"Name\\\"\\n                remove-action=\\\"$ctrl.removeAction\\\"\\n                refresh-callback=\\\"$ctrl.refreshCallback\\\"\\n                on-publishing-mode-click=\\\"($ctrl.onPublishingModeClick)\\\"\\n                is-primary=\\\"false\\\"\\n                hide-stacks-functionality=\\\"$ctrl.hideStacksFunctionality\\\"\\n              >\\n              </kubernetes-applications-datatable>\\n            </span>\\n            <span ng-if=\\\"!item.KubernetesApplications\\\">\\n              <div class=\\\"published-url-container\\\">\\n                <div>\\n                  <div class=\\\"text-muted\\\"> Published URL(s) </div>\\n                </div>\\n                <div>\\n                  <div ng-repeat=\\\"url in $ctrl.getPublishedUrls(item)\\\">\\n                    <a ng-href=\\\"{{ url }}\\\" target=\\\"_blank\\\" class=\\\"publish-url-link vertical-center\\\">\\n                      <pr-icon icon=\\\"'external-link'\\\"></pr-icon>\\n                      {{ url }}\\n                    </a>\\n                  </div>\\n                </div>\\n              </div>\\n              <kubernetes-applications-datatable-details\\n                ng-if=\\\"$ctrl.hasConfigurationSecrets(item)\\\"\\n                configurations=\\\"item.Configurations\\\"\\n              ></kubernetes-applications-datatable-details>\\n            </span>\\n          </td>\\n        </tr>\\n        <tr ng-if=\\\"$ctrl.isAppsLoading\\\">\\n          <td colspan=\\\"8\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n        </tr>\\n        <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0 && !$ctrl.isAppsLoading\\\">\\n          <td colspan=\\\"8\\\" class=\\\"text-muted text-center\\\">No application available.</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </div>\\n  <div class=\\\"footer pl-5\\\" ng-if=\\\"$ctrl.isPrimary && $ctrl.dataset\\\">\\n    <div class=\\\"infoBar !ml-0\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n    <div class=\\\"paginationControls\\\">\\n      <form class=\\\"form-inline\\\">\\n        <span class=\\\"limitSelector\\\">\\n          <span class=\\\"mr-1\\\"> Items per page </span>\\n          <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n            <option value=\\\"0\\\">All</option>\\n            <option value=\\\"10\\\">10</option>\\n            <option value=\\\"25\\\">25</option>\\n            <option value=\\\"50\\\">50</option>\\n            <option value=\\\"100\\\">100</option>\\n          </select>\\n        </span>\\n        <dir-pagination-controls max-size=\\\"5\\\" pagination-id=\\\"$ctrl.tableKey\\\"></dir-pagination-controls>\\n      </form>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/datatables/applications-datatable/applicationsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <div class=\\\"toolBar\\\">\\n    <div class=\\\"toolBarTitle flex\\\">\\n      <div class=\\\"widget-icon space-right\\\">\\n        <pr-icon icon=\\\"'history'\\\"></pr-icon>\\n      </div>\\n      {{ $ctrl.titleText }}\\n    </div>\\n    <div class=\\\"searchBar\\\">\\n      <pr-icon icon=\\\"'search'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n      <input\\n        type=\\\"text\\\"\\n        class=\\\"searchInput ml-1\\\"\\n        ng-model=\\\"$ctrl.state.textFilter\\\"\\n        ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n        placeholder=\\\"Search for an event...\\\"\\n        auto-focus\\n        ng-model-options=\\\"{ debounce: 300 }\\\"\\n        data-cy=\\\"k8sConfigDetail-eventsTableSearchInput\\\"\\n      />\\n    </div>\\n    <div class=\\\"settings\\\">\\n      <span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n        <span uib-dropdown-toggle><pr-icon icon=\\\"'more-vertical'\\\"></pr-icon></span>\\n        <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n          <div class=\\\"tableMenu\\\">\\n            <div class=\\\"menuHeader\\\"> Table settings </div>\\n            <div class=\\\"menuContent\\\">\\n              <div>\\n                <div class=\\\"md-checkbox\\\">\\n                  <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                  <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                </div>\\n                <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                  <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                  <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                    <option value=\\\"10\\\">10s</option>\\n                    <option value=\\\"30\\\">30s</option>\\n                    <option value=\\\"60\\\">1min</option>\\n                    <option value=\\\"120\\\">2min</option>\\n                    <option value=\\\"300\\\">5min</option>\\n                  </select>\\n                  <span>\\n                    <pr-icon id=\\\"refreshRateChange\\\" style=\\\"display: none\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon>\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n            <div>\\n              <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\">Close</a>\\n            </div>\\n          </div>\\n        </div>\\n      </span>\\n    </div>\\n  </div>\\n  <div class=\\\"table-responsive\\\">\\n    <table class=\\\"table-hover nowrap-cells table\\\" data-cy=\\\"k8sConfigDetail-eventsTable\\\">\\n      <thead>\\n        <tr>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Date'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'Date'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'Date' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('Date')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Kind'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'Involved.kind'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'Involved.kind' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('Involved.kind')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Type'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'Type'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'Type' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('Type')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Message'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'Message'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'Message' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('Message')\\\"\\n            ></table-column-header>\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr\\n          dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit: $ctrl.tableKey))\\\"\\n          pagination-id=\\\"$ctrl.tableKey\\\"\\n        >\\n          <td>{{ item.Date | getisodate }}</td>\\n          <td>{{ item.Involved.kind }}</td>\\n          <td\\n            ><span class=\\\"label label-{{ item.Type | kubernetesEventTypeColor }}\\\">{{ item.Type }}</span></td\\n          >\\n          <td>{{ item.Message }}</td>\\n        </tr>\\n        <tr ng-if=\\\"$ctrl.loading\\\">\\n          <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n        </tr>\\n        <tr ng-if=\\\"!$ctrl.loading && (!$ctrl.dataset || $ctrl.state.filteredDataSet.length === 0)\\\">\\n          <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">No event available.</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </div>\\n  <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n    <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n    <div class=\\\"paginationControls\\\">\\n      <form class=\\\"form-inline\\\">\\n        <span class=\\\"limitSelector\\\">\\n          <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n          <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"k8sConfigDetail-eventsTablePaginationDropdown\\\">\\n            <option value=\\\"0\\\">All</option>\\n            <option value=\\\"10\\\">10</option>\\n            <option value=\\\"25\\\">25</option>\\n            <option value=\\\"50\\\">50</option>\\n            <option value=\\\"100\\\">100</option>\\n          </select>\\n        </span>\\n        <dir-pagination-controls max-size=\\\"5\\\" pagination-id=\\\"$ctrl.tableKey\\\"></dir-pagination-controls>\\n      </form>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/datatables/events-datatable/eventsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar !gap-3\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center !mr-0 min-w-[280px]\\\">\\n          <pr-icon icon=\\\"'search'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search for an application...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n        <div ng-if=\\\"$ctrl.refreshCallback\\\" class=\\\"settings\\\">\\n          <span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n            <span uib-dropdown-toggle aria-label=\\\"Settings\\\">\\n              <pr-icon icon=\\\"'more-vertical'\\\" class-name=\\\"'!mr-0 !h-4'\\\"></pr-icon>\\n            </span>\\n            <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n              <div class=\\\"tableMenu\\\">\\n                <div class=\\\"menuHeader\\\"> Table settings </div>\\n                <div class=\\\"menuContent\\\">\\n                  <div>\\n                    <div class=\\\"md-checkbox\\\">\\n                      <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                      <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                    </div>\\n                    <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                      <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                      <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                        <option value=\\\"10\\\">10s</option>\\n                        <option value=\\\"30\\\">30s</option>\\n                        <option value=\\\"60\\\">1min</option>\\n                        <option value=\\\"120\\\">2min</option>\\n                        <option value=\\\"300\\\">5min</option>\\n                      </select>\\n                      <span>\\n                        <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n                      </span>\\n                    </div>\\n                  </div>\\n                </div>\\n                <div>\\n                  <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\">Close</a>\\n                </div>\\n              </div>\\n            </div>\\n          </span>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Stack'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'StackName'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'StackName' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('StackName')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Image'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Image'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Image' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Image')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n            >\\n              <td\\n                ><a ui-sref=\\\"kubernetes.applications.application({ name: item.Name, namespace: item.ResourcePool })\\\">{{ item.Name }}</a></td\\n              >\\n              <td>{{ item.StackName || '-' }}</td>\\n              <td title=\\\"{{ item.Image }}\\\">{{ item.Image | truncate: 64 }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No application available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle flex\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'svg-laptopcode'\\\"></pr-icon>\\n          </div>\\n          <span class=\\\"vertical-center\\\">\\n            {{ $ctrl.titleText }}\\n          </span>\\n        </div>\\n        <div class=\\\"searchBar min-w-[260px]\\\">\\n          <pr-icon icon=\\\"'search'\\\" class=\\\"vertical-center\\\" class-name=\\\"'searchIcon'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search for an application...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n        <div class=\\\"settings vertical-center\\\">\\n          <span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n            <span uib-dropdown-toggle><pr-icon icon=\\\"'more-vertical'\\\"></pr-icon></span>\\n            <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n              <div class=\\\"tableMenu\\\">\\n                <div class=\\\"menuHeader\\\"> Table settings </div>\\n                <div class=\\\"menuContent\\\">\\n                  <div>\\n                    <div class=\\\"md-checkbox\\\">\\n                      <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                      <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                    </div>\\n                    <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                      <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                      <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                        <option value=\\\"10\\\">10s</option>\\n                        <option value=\\\"30\\\">30s</option>\\n                        <option value=\\\"60\\\">1min</option>\\n                        <option value=\\\"120\\\">2min</option>\\n                        <option value=\\\"300\\\">5min</option>\\n                      </select>\\n                      <span>\\n                        <pr-icon id=\\\"refreshRateChange\\\" style=\\\"display: none\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon>\\n                      </span>\\n                    </div>\\n                  </div>\\n                </div>\\n                <div>\\n                  <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\">Close</a>\\n                </div>\\n              </div>\\n            </div>\\n          </span>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th ng-if=\\\"!$ctrl.deploymentOptions.hideStacksFunctionality\\\">\\n                <table-column-header\\n                  col-title=\\\"'Stack'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'StackName'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'StackName' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('StackName')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Namespace'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Namespace'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Namespace' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Namespace')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Image'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Image'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Image' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Image')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'CPU reservation'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'CPU'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'CPU' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('CPU')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Memory reservation'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Memory'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Memory' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Memory')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n            >\\n              <td>\\n                <a ui-sref=\\\"kubernetes.applications.application({ name: item.Name, namespace: item.ResourcePool })\\\">{{ item.Name }}</a>\\n                <span style=\\\"margin-left: 5px\\\" class=\\\"label label-info image-tag\\\" ng-if=\\\"$ctrl.isSystemNamespace(item)\\\">system</span>\\n                <span style=\\\"margin-left: 5px\\\" class=\\\"label label-primary image-tag\\\" ng-if=\\\"!$ctrl.isSystemNamespace(item) && $ctrl.isExternalApplication(item)\\\">external</span>\\n              </td>\\n              <td ng-if=\\\"!$ctrl.deploymentOptions.hideStacksFunctionality\\\">{{ item.StackName || '-' }}</td>\\n              <td>\\n                <a ui-sref=\\\"kubernetes.resourcePools.resourcePool({ id: item.ResourcePool })\\\">{{ item.ResourcePool }}</a>\\n              </td>\\n              <td title=\\\"{{ item.Image }}\\\"\\n                >{{ item.Image | truncate: 64 }} <span ng-if=\\\"item.Containers.length > 1\\\">+ {{ item.Containers.length - 1 }}</span></td\\n              >\\n              <td>{{ item.CPU | kubernetesApplicationCPUValue }}</td>\\n              <td>{{ item.Memory | humansize }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"6\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"6\\\" class=\\\"text-muted text-center\\\">No stack available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline vertical-center\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class=\\\"searchIcon\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search for an application...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n        <div ng-if=\\\"$ctrl.refreshCallback\\\" class=\\\"settings\\\">\\n          <span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n            <span uib-dropdown-toggle><pr-icon icon=\\\"'more-vertical'\\\"></pr-icon></span>\\n            <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n              <div class=\\\"tableMenu\\\">\\n                <div class=\\\"menuHeader\\\"> Table settings </div>\\n                <div class=\\\"menuContent\\\">\\n                  <div>\\n                    <div class=\\\"md-checkbox\\\">\\n                      <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                      <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                    </div>\\n                    <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                      <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                      <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                        <option value=\\\"10\\\">10s</option>\\n                        <option value=\\\"30\\\">30s</option>\\n                        <option value=\\\"60\\\">1min</option>\\n                        <option value=\\\"120\\\">2min</option>\\n                        <option value=\\\"300\\\">5min</option>\\n                      </select>\\n                      <span>\\n                        <pr-icon id=\\\"refreshRateChange\\\" style=\\\"display: none\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon>\\n                      </span>\\n                    </div>\\n                  </div>\\n                </div>\\n                <div>\\n                  <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\">Close</a>\\n                </div>\\n              </div>\\n            </div>\\n          </span>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th ng-if=\\\"!$ctrl.deploymentOptions.hideStacksFunctionality\\\">\\n                <table-column-header\\n                  col-title=\\\"'Stack'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'StackName'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'StackName' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('StackName')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Image'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Image'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Image' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Image')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'CPU'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'CPU'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'CPU' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('CPU')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Memory'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Memory'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Memory' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Memory')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n            >\\n              <td>\\n                <a ui-sref=\\\"kubernetes.applications.application({ name: item.Name, namespace: item.ResourcePool })\\\">{{ item.Name }}</a>\\n                <span style=\\\"margin-left: 5px\\\" class=\\\"label label-primary image-tag\\\" ng-if=\\\"$ctrl.isExternalApplication(item)\\\">external</span>\\n              </td>\\n              <td ng-if=\\\"!$ctrl.deploymentOptions.hideStacksFunctionality\\\">{{ item.StackName || '-' }}</td>\\n              <td title=\\\"{{ item.Image }}\\\"\\n                >{{ item.Image | truncate: 64 }} <span ng-if=\\\"item.Containers.length > 1\\\">+ {{ item.Containers.length - 1 }}</span></td\\n              >\\n              <td>{{ item.CPU | kubernetesApplicationCPUValue }}</td>\\n              <td>{{ item.Memory | humansize }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">No application available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <!-- toolbar header actions and settings -->\\n      <div class=\\\"toolBar !flex-col gap-1\\\">\\n        <div class=\\\"toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0\\\">\\n          <div class=\\\"toolBarTitle vertical-center\\\">\\n            <div class=\\\"widget-icon space-right\\\">\\n              <pr-icon icon=\\\"'layers'\\\"></pr-icon>\\n            </div>\\n            Namespaces\\n          </div>\\n          <div class=\\\"searchBar vertical-center\\\">\\n            <pr-icon icon=\\\"'search'\\\" class-name=\\\"'searchIcon'\\\"></pr-icon>\\n            <input\\n              type=\\\"text\\\"\\n              class=\\\"searchInput\\\"\\n              ng-model=\\\"$ctrl.state.textFilter\\\"\\n              ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n              placeholder=\\\"Search...\\\"\\n              auto-focus\\n              ng-model-options=\\\"{ debounce: 300 }\\\"\\n              data-cy=\\\"k8sNamespace-namespaceSearchInput\\\"\\n              aria-label=\\\"Search input\\\"\\n            />\\n          </div>\\n          <div class=\\\"actionBar !mr-0 !gap-3\\\" ng-if=\\\"$ctrl.isAdmin\\\">\\n            <button\\n              type=\\\"button\\\"\\n              class=\\\"btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit\\\"\\n              ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n              ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n              data-cy=\\\"k8sNamespace-removeNamespaceButton\\\"\\n            >\\n              <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Remove\\n            </button>\\n            <button type=\\\"button\\\" class=\\\"btn btn-sm btn-secondary !ml-0\\\" ui-sref=\\\"kubernetes.resourcePools.new\\\" data-cy=\\\"k8sNamespace-addNamespaceWithFormButton\\\">\\n              <pr-icon icon=\\\"'plus'\\\" class-name=\\\"'!h-3'\\\"></pr-icon>Add with form\\n            </button>\\n            <button\\n              type=\\\"button\\\"\\n              class=\\\"btn btn-sm btn-primary !ml-0\\\"\\n              ui-sref=\\\"kubernetes.deploy({ referrer: 'kubernetes.resourcePools' })\\\"\\n              data-cy=\\\"k8sNamespace-deployFromManifestButton\\\"\\n            >\\n              <pr-icon icon=\\\"'plus'\\\" class-name=\\\"'!h-3'\\\"></pr-icon>Create from manifest\\n            </button>\\n          </div>\\n          <div class=\\\"settings\\\">\\n            <span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n              <span uib-dropdown-toggle>\\n                <pr-icon icon=\\\"'more-vertical'\\\" class-name=\\\"'!mr-0 !h-4'\\\"></pr-icon>\\n              </span>\\n              <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n                <div class=\\\"tableMenu\\\">\\n                  <div class=\\\"menuHeader\\\"> Table settings </div>\\n                  <div class=\\\"menuContent\\\">\\n                    <div>\\n                      <div class=\\\"md-checkbox\\\" ng-if=\\\"$ctrl.isAdmin\\\">\\n                        <input id=\\\"setting_show_system\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.showSystem\\\" ng-change=\\\"$ctrl.onSettingsShowSystemChange()\\\" />\\n                        <label for=\\\"setting_show_system\\\">Show system resources</label>\\n                      </div>\\n                      <div class=\\\"md-checkbox\\\">\\n                        <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                        <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                      </div>\\n                      <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                        <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                        <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                          <option value=\\\"10\\\">10s</option>\\n                          <option value=\\\"30\\\">30s</option>\\n                          <option value=\\\"60\\\">1min</option>\\n                          <option value=\\\"120\\\">2min</option>\\n                          <option value=\\\"300\\\">5min</option>\\n                        </select>\\n                        <span>\\n                          <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n                        </span>\\n                      </div>\\n                    </div>\\n                  </div>\\n                  <div>\\n                    <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\">Close</a>\\n                  </div>\\n                </div>\\n              </div>\\n            </span>\\n          </div>\\n        </div>\\n\\n        <div class=\\\"flex w-full flex-row\\\" ng-if=\\\"!$ctrl.settings.showSystem && $ctrl.isAdmin\\\">\\n          <span class=\\\"small text-muted vertical-center mt-1\\\">\\n            <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n            <div> System resources are hidden, this can be changed in the table settings. </div>\\n          </span>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th class=\\\"dropdown\\\">\\n                <div class=\\\"vertical-center flex min-w-max flex-nowrap\\\">\\n                  <span ng-if=\\\"$ctrl.isAdmin\\\" class=\\\"md-checkbox vertical-center\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Name'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Namespace.Name'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Namespace.Name' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Namespace.Name')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Status'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Namespace.Status'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Namespace.Status' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Namespace.Status')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Quota'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Quota'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Quota' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Quota')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Created'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Namespace.CreationDate'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Namespace.CreationDate' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Namespace.CreationDate')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th ng-if=\\\"$ctrl.isAdmin\\\">\\n                <table-column-header col-title=\\\"'Actions'\\\" can-sort=\\\"false\\\"></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | filter:$ctrl.isDisplayed | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span ng-if=\\\"$ctrl.isAdmin\\\" class=\\\"md-checkbox\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" ng-disabled=\\\"$ctrl.disableRemove(item)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                <a ui-sref=\\\"kubernetes.resourcePools.resourcePool({ id: item.Namespace.Name })\\\">{{ item.Namespace.Name }}</a>\\n                <span style=\\\"margin-left: 5px\\\" class=\\\"label label-info image-tag\\\" ng-if=\\\"$ctrl.isSystemNamespace(item)\\\">system</span>\\n              </td>\\n              <td>\\n                <span class=\\\"label label-{{ $ctrl.namespaceStatusColor(item.Namespace.Status) }}\\\">{{ item.Namespace.Status }}</span>\\n              </td>\\n              <td>\\n                <span ng-if=\\\"item.Quota\\\" class=\\\"label label-warning\\\">Enabled</span>\\n                <span ng-if=\\\"!item.Quota\\\">-</span>\\n              </td>\\n              <td>{{ item.Namespace.CreationDate | getisodate }} {{ item.Namespace.ResourcePoolOwner ? 'by ' + item.Namespace.ResourcePoolOwner : '' }}</td>\\n              <td ng-if=\\\"$ctrl.isAdmin\\\">\\n                <a class=\\\"vertical-center\\\" ng-if=\\\"$ctrl.canManageAccess(item)\\\" ui-sref=\\\"kubernetes.resourcePools.resourcePool.access({id: item.Namespace.Name})\\\">\\n                  <pr-icon icon=\\\"'users'\\\"></pr-icon>\\n                  Manage access\\n                </a>\\n                <span ng-if=\\\"!$ctrl.canManageAccess(item)\\\">-</span>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">No namespace available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer pl-5\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar !ml-0\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <!-- toolbar header actions and settings -->\\n  <div class=\\\"toolBar !flex-col gap-1\\\">\\n    <div class=\\\"toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0\\\">\\n      <div class=\\\"toolBarTitle vertical-center\\\">\\n        <div class=\\\"widget-icon space-right\\\">\\n          <pr-icon icon=\\\"'database'\\\"></pr-icon>\\n        </div>\\n        Volumes\\n      </div>\\n      <div class=\\\"searchBar vertical-center\\\">\\n        <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"searchInput !mr-0\\\"\\n          ng-model=\\\"$ctrl.state.textFilter\\\"\\n          ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n          placeholder=\\\"Search for a volume...\\\"\\n          auto-focus\\n          ng-model-options=\\\"{ debounce: 300 }\\\"\\n        />\\n      </div>\\n      <div class=\\\"actionBar !mr-0 !gap-3\\\">\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"btn btn-sm btn-dangerlight vertical-center !ml-0\\\"\\n          ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n          ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n        >\\n          <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n          Remove\\n        </button>\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"btn btn-sm btn-primary vertical-center !ml-0\\\"\\n          ui-sref=\\\"kubernetes.deploy({ referrer: 'kubernetes.volumes' })\\\"\\n          data-cy=\\\"k8sVolume-deployFromManifestButton\\\"\\n        >\\n          <pr-icon icon=\\\"'plus'\\\" class-name=\\\"'!h-3'\\\"></pr-icon>\\n          Create from manifest\\n        </button>\\n      </div>\\n      <div class=\\\"settings\\\">\\n        <span\\n          class=\\\"setting\\\"\\n          ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\"\\n          uib-dropdown\\n          dropdown-append-to-body\\n          auto-close=\\\"disabled\\\"\\n          is-open=\\\"$ctrl.settings.open\\\"\\n          data-cy=\\\"k8s-vol-table-settings\\\"\\n        >\\n          <span uib-dropdown-toggle aria-label=\\\"Settings\\\">\\n            <pr-icon icon=\\\"'more-vertical'\\\" class-name=\\\"'!mr-0 !h-4'\\\"></pr-icon>\\n          </span>\\n          <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n            <div class=\\\"tableMenu\\\">\\n              <div class=\\\"menuHeader\\\"> Table settings </div>\\n              <div class=\\\"menuContent\\\">\\n                <div>\\n                  <div class=\\\"md-checkbox\\\" ng-if=\\\"$ctrl.isAdmin\\\">\\n                    <input id=\\\"setting_show_system\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.showSystem\\\" ng-change=\\\"$ctrl.onSettingsShowSystemChange()\\\" />\\n                    <label for=\\\"setting_show_system\\\">Show system resources</label>\\n                  </div>\\n                  <div class=\\\"md-checkbox\\\">\\n                    <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                    <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                  </div>\\n                  <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                    <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                    <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                      <option value=\\\"10\\\">10s</option>\\n                      <option value=\\\"30\\\">30s</option>\\n                      <option value=\\\"60\\\">1min</option>\\n                      <option value=\\\"120\\\">2min</option>\\n                      <option value=\\\"300\\\">5min</option>\\n                    </select>\\n                    <span>\\n                      <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n                    </span>\\n                  </div>\\n                </div>\\n              </div>\\n              <div>\\n                <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\" data-cy=\\\"k8s-vol-table-settings-close\\\">Close</a>\\n              </div>\\n            </div>\\n          </div>\\n        </span>\\n      </div>\\n    </div>\\n    <div class=\\\"flex w-full flex-row\\\" ng-if=\\\"!ctrl.isAdmin && !$ctrl.settings.showSystem\\\">\\n      <span class=\\\"small text-muted vertical-center mt-1\\\">\\n        <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n        <span> System resources are hidden, this can be changed in the table settings. </span>\\n      </span>\\n    </div>\\n  </div>\\n  <div class=\\\"table-responsive\\\">\\n    <table class=\\\"table-hover nowrap-cells table\\\">\\n      <thead>\\n        <tr>\\n          <th>\\n            <div class=\\\"flex-no-wrap flex items-center\\\">\\n              <span class=\\\"md-checkbox vertical-center\\\">\\n                <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                <label for=\\\"select_all\\\"></label>\\n              </span>\\n              <table-column-header\\n                col-title=\\\"'Name'\\\"\\n                can-sort=\\\"true\\\"\\n                is-sorted=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.Name'\\\"\\n                is-sorted-desc=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.Name' && $ctrl.state.reverseOrder\\\"\\n                ng-click=\\\"$ctrl.changeOrderBy('PersistentVolumeClaim.Name')\\\"\\n              ></table-column-header>\\n            </div>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Namespace'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'ResourcePool.Namespace.Name'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'ResourcePool.Namespace.Name' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('ResourcePool.Namespace.Name')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Used by'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.Applications[0].Name'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.Applications[0].Name' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('PersistentVolumeClaim.Applications[0].Name')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Storage'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.storageClass.Name'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.storageClass.Name' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('PersistentVolumeClaim.storageClass.Name')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Size'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.Storage'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.Storage' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('PersistentVolumeClaim.Storage')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Created'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.CreationDate'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'PersistentVolumeClaim.CreationDate' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('PersistentVolumeClaim.CreationDate')\\\"\\n            ></table-column-header>\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr\\n          dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | filter:$ctrl.isDisplayed | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n          ng-class=\\\"{ active: item.Checked }\\\"\\n        >\\n          <td>\\n            <span class=\\\"md-checkbox\\\">\\n              <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" ng-disabled=\\\"$ctrl.disableRemove(item)\\\" />\\n              <label for=\\\"select_{{ $index }}\\\"></label>\\n            </span>\\n            <a ui-sref=\\\"kubernetes.volumes.volume({ namespace: item.ResourcePool.Namespace.Name, name: item.PersistentVolumeClaim.Name })\\\">{{ item.PersistentVolumeClaim.Name }}</a>\\n            <span class=\\\"label label-info image-tag label-margins\\\" ng-if=\\\"$ctrl.isSystemNamespace(item)\\\">system</span>\\n            <span class=\\\"label label-primary image-tag label-margins\\\" ng-if=\\\"!$ctrl.isSystemNamespace(item) && $ctrl.isExternalVolume(item)\\\">external</span>\\n            <span class=\\\"label label-warning image-tag label-margins\\\" ng-if=\\\"!$ctrl.isSystemNamespace(item) && !$ctrl.isUsed(item)\\\">unused</span>\\n          </td>\\n          <td>\\n            <a ui-sref=\\\"kubernetes.resourcePools.resourcePool({ id: item.ResourcePool.Namespace.Name })\\\">{{ item.ResourcePool.Namespace.Name }}</a>\\n          </td>\\n          <td>\\n            <a ng-if=\\\"item.Applications.length\\\" ui-sref=\\\"kubernetes.applications.application({ name: item.Applications[0].Name, namespace: item.ResourcePool.Namespace.Name })\\\">{{\\n              item.Applications[0].Name\\n            }}</a>\\n            <span ng-if=\\\"item.Applications.length > 1\\\"> + {{ item.Applications.length - 1 }}</span>\\n            <span ng-if=\\\"!item.Applications.length\\\">-</span>\\n          </td>\\n          <td>\\n            {{ item.PersistentVolumeClaim.storageClass.Name }}\\n          </td>\\n          <td>\\n            {{ item.PersistentVolumeClaim.Storage }}\\n          </td>\\n          <td>\\n            {{ item.PersistentVolumeClaim.CreationDate | getisodate }}\\n            {{ item.PersistentVolumeClaim.ApplicationOwner ? 'by ' + item.PersistentVolumeClaim.ApplicationOwner : '' }}\\n          </td>\\n        </tr>\\n        <tr ng-if=\\\"!$ctrl.dataset\\\">\\n          <td colspan=\\\"6\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n        </tr>\\n        <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n          <td colspan=\\\"6\\\" class=\\\"text-muted text-center\\\">No volume available.</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </div>\\n  <div class=\\\"footer pl-5\\\" ng-if=\\\"$ctrl.dataset\\\">\\n    <div class=\\\"infoBar !ml-0\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n    <div class=\\\"paginationControls\\\">\\n      <form class=\\\"form-inline\\\">\\n        <span class=\\\"limitSelector\\\">\\n          <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n          <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n            <option value=\\\"0\\\">All</option>\\n            <option value=\\\"10\\\">10</option>\\n            <option value=\\\"25\\\">25</option>\\n            <option value=\\\"50\\\">50</option>\\n            <option value=\\\"100\\\">100</option>\\n          </select>\\n        </span>\\n        <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n      </form>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/datatables/volumes-datatable/volumesDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<!-- helm chart -->\\n<div ng-class=\\\"{ 'blocklist-item--selected': $ctrl.model.Selected }\\\" class=\\\"blocklist-item template-item mx-0\\\" ng-click=\\\"$ctrl.onSelect($ctrl.model)\\\" role=\\\"listitem\\\">\\n  <div class=\\\"blocklist-item-box\\\">\\n    <!-- helmchart-image -->\\n    <span class=\\\"shrink-0\\\">\\n      <fallback-image src=\\\"$ctrl.model.icon\\\" fallback-icon=\\\"$ctrl.fallbackIcon\\\" class-name=\\\"'blocklist-item-logo h-16 w-auto'\\\" size=\\\"'3xl'\\\"></fallback-image>\\n    </span>\\n    <!-- helmchart-details -->\\n    <div class=\\\"col-sm-12 helm-template-item-details\\\">\\n      <!-- blocklist-item-line1 -->\\n      <div class=\\\"blocklist-item-line\\\">\\n        <span>\\n          <span class=\\\"blocklist-item-title\\\">\\n            {{ $ctrl.model.name }}\\n          </span>\\n          <span class=\\\"space-left blocklist-item-subtitle\\\">\\n            <span class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'svg-helm'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n            </span>\\n            <span> Helm </span>\\n          </span>\\n        </span>\\n      </div>\\n      <!-- !blocklist-item-line1 -->\\n      <span class=\\\"blocklist-item-actions\\\" ng-transclude=\\\"actions\\\"></span>\\n      <!-- blocklist-item-line2 -->\\n      <div class=\\\"blocklist-item-line helm-template-item-details-sub\\\">\\n        <span class=\\\"blocklist-item-desc\\\">\\n          {{ $ctrl.model.description }}\\n        </span>\\n        <span class=\\\"small text-muted\\\" ng-if=\\\"$ctrl.model.annotations.category\\\">\\n          {{ $ctrl.model.annotations.category }}\\n        </span>\\n      </div>\\n      <!-- !blocklist-item-line2 -->\\n    </div>\\n    <!-- !helmchart-details -->\\n  </div>\\n  <!-- !helm chart -->\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<section class=\\\"datatable\\\" aria-label=\\\"Helm charts\\\">\\n  <div class=\\\"toolBar vertical-center relative w-full flex-wrap !gap-x-5 !gap-y-1 !px-0\\\">\\n    <div class=\\\"toolBarTitle vertical-center\\\">\\n      {{ $ctrl.titleText }}\\n    </div>\\n\\n    <div class=\\\"searchBar vertical-center !mr-0\\\">\\n      <pr-icon icon=\\\"'search'\\\" class=\\\"searchIcon\\\"></pr-icon>\\n      <input type=\\\"text\\\" class=\\\"searchInput\\\" ng-model=\\\"$ctrl.state.textFilter\\\" placeholder=\\\"Search...\\\" auto-focus ng-model-options=\\\"{ debounce: 300 }\\\" aria-label=\\\"Search input\\\" />\\n    </div>\\n    <div class=\\\"w-1/5\\\">\\n      <por-select\\n        placeholder=\\\"'Select a category'\\\"\\n        value=\\\"$ctrl.state.selectedCategory\\\"\\n        options=\\\"$ctrl.state.categories\\\"\\n        on-change=\\\"($ctrl.onCategoryChange)\\\"\\n        is-clearable=\\\"true\\\"\\n        bind-to-body=\\\"true\\\"\\n      ></por-select>\\n    </div>\\n  </div>\\n  <div class=\\\"w-full\\\">\\n    <div class=\\\"mb-2 small text-muted\\\"\\n      >Select the Helm chart to use. Bring further Helm charts into your selection list via\\n      <a ui-sref=\\\"portainer.account({'#': 'helm-repositories'})\\\">User settings - Helm repositories</a>.</div\\n    >\\n    <beta-alert\\n      is-html=\\\"true\\\"\\n      message=\\\"'Beta feature - so far, this functionality has been tested in limited scenarios. For more information, see this <a href=\\\\'https://www.portainer.io/blog/portainer-now-with-helm-support\\\\' target=\\\\'_blank\\\\' class=\\\\'hyperlink\\\\'>blog post on Portainer Helm support</a>.'\\\"\\n    ></beta-alert>\\n  </div>\\n\\n  <div class=\\\"blocklist !px-0\\\" role=\\\"list\\\">\\n    <helm-templates-list-item\\n      ng-repeat=\\\"chart in allCharts = ($ctrl.charts | filter:$ctrl.state.textFilter | filter: $ctrl.state.selectedCategory)\\\"\\n      model=\\\"chart\\\"\\n      type-label=\\\"helm\\\"\\n      on-select=\\\"($ctrl.selectAction)\\\"\\n    >\\n    </helm-templates-list-item>\\n    <div ng-if=\\\"!allCharts.length\\\" class=\\\"text-muted small mt-4\\\"> No Helm charts found </div>\\n    <div ng-if=\\\"$ctrl.loading\\\" class=\\\"text-muted text-center\\\">\\n      Loading...\\n      <div class=\\\"text-muted text-center\\\"> Initial download of Helm charts can take a few minutes </div>\\n    </div>\\n    <div ng-if=\\\"!$ctrl.loading && $ctrl.charts.length === 0\\\" class=\\\"text-muted text-center\\\"> No helm charts available. </div>\\n  </div>\\n</section>\\n\";;\nvar path = 'app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <!-- helmchart-form -->\\n  <div class=\\\"col-sm-12 p-0\\\" ng-if=\\\"$ctrl.state.chart\\\">\\n    <rd-widget>\\n      <div class=\\\"flex\\\">\\n        <div class=\\\"basis-3/4 rounded-[8px] m-2 bg-gray-4 th-highcontrast:bg-black th-highcontrast:text-white th-dark:bg-gray-iron-10 th-dark:text-white\\\">\\n          <div class=\\\"vertical-center p-5\\\">\\n            <fallback-image src=\\\"$ctrl.state.chart.icon\\\" fallback-icon=\\\"$ctrl.fallbackIcon\\\" class-name=\\\"'h-16 w-16'\\\" size=\\\"'lg'\\\"></fallback-image>\\n            <div class=\\\"font-medium ml-4\\\">\\n              <div class=\\\"toolBarTitle text-[24px] mb-2\\\">\\n                {{ $ctrl.state.chart.name }}\\n                <span class=\\\"space-left text-[14px] vertical-center font-normal\\\">\\n                  <pr-icon icon=\\\"'svg-helm'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                  Helm\\n                </span>\\n              </div>\\n              <div class=\\\"text-muted text-xs\\\" ng-bind-html=\\\"$ctrl.state.chart.description\\\"></div>\\n            </div>\\n          </div>\\n        </div>\\n        <div class=\\\"basis-1/4\\\">\\n          <div class=\\\"h-full w-full vertical-center justify-end pr-5\\\">\\n            <button type=\\\"button\\\" class=\\\"btn btn-sm btn-link !text-gray-8 hover:no-underline th-highcontrast:!text-white th-dark:!text-white\\\" ng-click=\\\"$ctrl.clearHelmChart()\\\">\\n              Clear selection\\n              <pr-icon icon=\\\"'x'\\\" class=\\\"ml-1\\\"></pr-icon>\\n            </button>\\n          </div>\\n        </div>\\n      </div>\\n    </rd-widget>\\n\\n    <form class=\\\"form-horizontal\\\" name=\\\"$ctrl.helmTemplateCreationForm\\\">\\n      <div class=\\\"form-group mt-4\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <button\\n            ng-if=\\\"!$ctrl.state.showCustomValues && !$ctrl.state.loadingValues\\\"\\n            class=\\\"btn btn-xs btn-default vertical-center !ml-0 mr-2\\\"\\n            ng-click=\\\"$ctrl.state.showCustomValues = true;\\\"\\n          >\\n            <pr-icon icon=\\\"'plus'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n            Show custom values\\n          </button>\\n          <span class=\\\"small interactive vertical-center\\\" ng-if=\\\"$ctrl.state.loadingValues\\\" role=\\\"status\\\">\\n            <pr-icon icon=\\\"'refresh-cw'\\\" class=\\\"mr-1\\\"></pr-icon>\\n            Loading values.yaml...\\n          </span>\\n          <button ng-if=\\\"$ctrl.state.showCustomValues\\\" class=\\\"btn btn-xs btn-default vertical-center !ml-0 mr-2\\\" ng-click=\\\"$ctrl.state.showCustomValues = false;\\\">\\n            <pr-icon icon=\\\"'minus'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n            Hide custom values\\n          </button>\\n        </div>\\n      </div>\\n      <!-- values override -->\\n      <div ng-if=\\\"$ctrl.state.showCustomValues\\\">\\n        <!-- web-editor -->\\n        <div class=\\\"form-group\\\">\\n          <div class=\\\"col-sm-12\\\">\\n            <web-editor-form\\n              identifier=\\\"helm-app-creation-editor\\\"\\n              value=\\\"$ctrl.state.values\\\"\\n              on-change=\\\"($ctrl.editorUpdate)\\\"\\n              yml=\\\"true\\\"\\n              placeholder=\\\"Define or paste the content of your values yaml file here\\\"\\n            >\\n              <editor-description class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                <span>\\n                  You can get more information about Helm values file format in the\\n                  <a href=\\\"https://helm.sh/docs/chart_template_guide/values_files/\\\" target=\\\"_blank\\\" class=\\\"hyperlink\\\">official documentation</a>.\\n                </span>\\n              </editor-description>\\n            </web-editor-form>\\n          </div>\\n        </div>\\n        <!-- !web-editor -->\\n      </div>\\n      <!-- !values override -->\\n      <!-- helm actions -->\\n      <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n      <div class=\\\"form-group\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n            ng-disabled=\\\"!$ctrl.state.resourcePool || $ctrl.state.loadingValues || $ctrl.state.actionInProgress || !$ctrl.name\\\"\\n            ng-click=\\\"$ctrl.installHelmchart()\\\"\\n            button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n            data-cy=\\\"helm-install\\\"\\n          >\\n            <span ng-hide=\\\"$ctrl.state.actionInProgress\\\">Install</span>\\n            <span ng-hide=\\\"!$ctrl.state.actionInProgress\\\">Installing Helm chart</span>\\n          </button>\\n        </div>\\n      </div>\\n      <!-- !helm actions -->\\n    </form>\\n  </div>\\n  <!-- helmchart-form -->\\n</div>\\n\\n<!-- Helm Charts Component -->\\n<div class=\\\"row\\\" ng-if=\\\"!$ctrl.state.chart\\\">\\n  <div class=\\\"col-sm-12 p-0\\\">\\n    <helm-templates-list\\n      title-text=\\\"Helm chart\\\"\\n      charts=\\\"$ctrl.state.charts\\\"\\n      table-key=\\\"$ctrl.state.charts\\\"\\n      select-action=\\\"$ctrl.selectHelmChart\\\"\\n      loading=\\\"$ctrl.state.chartsLoading || $ctrl.state.resourcePoolsLoading\\\"\\n    >\\n    </helm-templates-list>\\n  </div>\\n</div>\\n<!-- !Helm Charts Component -->\\n\";;\nvar path = 'app/kubernetes/components/helm/helm-templates/helm-templates.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form name=\\\"kubernetesConfigurationDataCreationForm\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px\\\"> Data </div>\\n\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.isCreation\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button type=\\\"button\\\" class=\\\"btn btn-link btn-sm !ml-0 p-0 hover:no-underline\\\" ng-if=\\\"$ctrl.formValues.IsSimple\\\" ng-click=\\\"$ctrl.showAdvancedMode()\\\">\\n        <pr-icon icon=\\\"'list'\\\"></pr-icon> Advanced mode\\n      </button>\\n      <button type=\\\"button\\\" class=\\\"btn btn-link btn-sm !ml-0 p-0 hover:no-underline\\\" ng-if=\\\"!$ctrl.formValues.IsSimple\\\" ng-click=\\\"$ctrl.showSimpleMode()\\\">\\n        <pr-icon icon=\\\"'edit'\\\"></pr-icon> Simple mode\\n      </button>\\n    </div>\\n    <div class=\\\"col-sm-12 small text-muted vertical-center\\\" ng-if=\\\"$ctrl.formValues.IsSimple\\\">\\n      <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      Switch to advanced mode to copy and paste multiple key/values\\n    </div>\\n    <div class=\\\"col-sm-12 small text-muted vertical-center\\\" ng-if=\\\"!$ctrl.formValues.IsSimple && $ctrl.type === 'configmap'\\\">\\n      <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      Generate a ConfigMap entry per line, use YAML format\\n    </div>\\n    <div class=\\\"col-sm-12 small text-muted vertical-center\\\" ng-if=\\\"!$ctrl.formValues.IsSimple && $ctrl.type === 'secret'\\\">\\n      <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      Generate a Secret entry per line, use YAML format\\n    </div>\\n  </div>\\n\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.formValues.IsSimple\\\">\\n    <div class=\\\"col-sm-12 vertical-center\\\">\\n      <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" style=\\\"margin-left: 0\\\" ng-click=\\\"$ctrl.addEntry()\\\" data-cy=\\\"k8sConfigCreate-createEntryButton\\\">\\n        <pr-icon class=\\\"vertical-center\\\" icon=\\\"'plus'\\\"></pr-icon> Create entry\\n      </button>\\n      <button\\n        ng-if=\\\"\\n          !(($ctrl.isDockerConfig || $ctrl.formValues.Type === $ctrl.KubernetesSecretTypeOptions.TLS.value) && $ctrl.formValues.Kind === $ctrl.KubernetesConfigurationKinds.SECRET)\\n        \\\"\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-sm btn-default ml-0\\\"\\n        ngf-select=\\\"$ctrl.addEntryFromFile($file)\\\"\\n        data-cy=\\\"k8sConfigCreate-createConfigsFromFileButton\\\"\\n      >\\n        <pr-icon icon=\\\"'upload'\\\" class=\\\"vertical-center\\\"></pr-icon> Create key/value from file\\n      </button>\\n      <button\\n        ng-if=\\\"$ctrl.isDockerConfig && $ctrl.formValues.Kind === $ctrl.KubernetesConfigurationKinds.SECRET\\\"\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-sm btn-default ml-0\\\"\\n        ngf-select=\\\"$ctrl.addEntryFromFile($file)\\\"\\n        ngf-accept=\\\"'.json'\\\"\\n        data-cy=\\\"k8sConfigCreate-createConfigsFromFileButton\\\"\\n      >\\n        <pr-icon icon=\\\"'upload'\\\" class=\\\"vertical-center\\\"></pr-icon> Upload docker config file\\n      </button>\\n      <button\\n        ng-if=\\\"$ctrl.formValues.Type === $ctrl.KubernetesSecretTypeOptions.TLS.value && $ctrl.formValues.Kind === $ctrl.KubernetesConfigurationKinds.SECRET\\\"\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-sm btn-default ml-0\\\"\\n        ngf-select=\\\"$ctrl.addEntryFromFile($file)\\\"\\n        data-cy=\\\"k8sConfigCreate-createConfigsFromFileButton\\\"\\n      >\\n        <pr-icon icon=\\\"'upload'\\\" class=\\\"vertical-center\\\"></pr-icon> Upload TLS key/cert file\\n      </button>\\n      <portainer-tooltip message=\\\"'Maximum upload file size is 1MB'\\\"></portainer-tooltip>\\n    </div>\\n  </div>\\n\\n  <div ng-repeat=\\\"(index, entry) in $ctrl.formValues.Data\\\" ng-if=\\\"$ctrl.formValues.IsSimple\\\">\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"configuration_data_key_{{ index }}\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\"\\n        >Key\\n        <portainer-tooltip message=\\\"'The key must consist of alphanumeric characters, \\\\'-\\\\', \\\\'_\\\\' or \\\\'.\\\\' and be up to 253 characters in length.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-8 col-lg-9\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          maxlength=\\\"253\\\"\\n          id=\\\"configuration_data_key_{{ index }}\\\"\\n          name=\\\"configuration_data_key_{{ index }}\\\"\\n          ng-model=\\\"$ctrl.formValues.Data[index].Key\\\"\\n          ng-disabled=\\\"entry.Used || $ctrl.isRequiredKey(entry.Key)\\\"\\n          required\\n          ng-change=\\\"$ctrl.onChangeKey(entry)\\\"\\n        />\\n        <div\\n          class=\\\"small text-warning mt-1\\\"\\n          ng-show=\\\"\\n            kubernetesConfigurationDataCreationForm['configuration_data_key_' + index].$invalid ||\\n            (!entry.Used && $ctrl.state.duplicateKeys[index] !== undefined) ||\\n            $ctrl.state.invalidKeys[index]\\n          \\\"\\n        >\\n          <ng-messages for=\\\"kubernetesConfigurationDataCreationForm['configuration_data_key_' + index].$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required. </p>\\n          </ng-messages>\\n          <div>\\n            <p ng-if=\\\"$ctrl.state.duplicateKeys[index] !== undefined\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class=\\\"vertical-center\\\"></pr-icon>This key is already defined.\\n            </p>\\n          </div>\\n          <p ng-if=\\\"$ctrl.state.invalidKeys[index]\\\" class=\\\"vertical-center\\\">\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class=\\\"vertical-center\\\"></pr-icon> This key is invalid. A valid key must consist of alphanumeric characters, '-', '_'\\n            or '.'\\n          </p>\\n        </div>\\n      </div>\\n      <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.formValues.IsSimple && !entry.IsBinary\\\">\\n      <label for=\\\"configuration_data_value_{{ index }}\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Value</label>\\n      <div class=\\\"col-sm-8 col-lg-9\\\">\\n        <textarea\\n          class=\\\"form-control\\\"\\n          rows=\\\"5\\\"\\n          id=\\\"configuration_data_value_{{ index }}\\\"\\n          name=\\\"configuration_data_value_{{ index }}\\\"\\n          ng-model=\\\"$ctrl.formValues.Data[index].Value\\\"\\n          ng-trim=\\\"false\\\"\\n          required\\n        ></textarea>\\n        <div class=\\\"small text-warning\\\" style=\\\"margin-top: 5px\\\" ng-show=\\\"kubernetesConfigurationDataCreationForm['configuration_data_value_' + index].$invalid\\\">\\n          <ng-messages for=\\\"kubernetesConfigurationDataCreationForm['configuration_data_value_' + index].$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"><pr-icon class=\\\"vertical-center\\\" icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n          </ng-messages>\\n        </div>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.formValues.IsSimple && entry.IsBinary\\\">\\n      <label for=\\\"configuration_data_value_{{ index }}\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Value</label>\\n      <div class=\\\"col-sm-8 control-label small text-muted text-left\\\"\\n        >Binary data <portainer-tooltip message=\\\"'This key holds binary data and cannot be displayed.'\\\"></portainer-tooltip\\n      ></div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.formValues.IsSimple\\\">\\n      <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n      <div class=\\\"col-sm-8\\\">\\n        <button\\n          ng-if=\\\"!$ctrl.isRequiredKey(entry.Key) || $ctrl.state.duplicateKeys[index] !== undefined\\\"\\n          type=\\\"button\\\"\\n          class=\\\"btn btn-sm btn-dangerlight !ml-0\\\"\\n          style=\\\"margin-left: 0\\\"\\n          ng-disabled=\\\"entry.Used || $ctrl.isEntryRequired()\\\"\\n          ng-click=\\\"$ctrl.removeEntry(index, entry)\\\"\\n          data-cy=\\\"k8sConfigDetail-removeEntryButton{{ index }}\\\"\\n        >\\n          <pr-icon class=\\\"vertical-center\\\" icon=\\\"'trash-2'\\\"></pr-icon> Remove entry\\n        </button>\\n        <span class=\\\"small text-muted\\\" ng-if=\\\"entry.Used\\\">\\n          <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n          This key is currently used by one or more applications\\n        </span>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"form-group !px-[15px]\\\" ng-if=\\\"!$ctrl.formValues.IsSimple\\\">\\n    <input type=\\\"text\\\" ng-model=\\\"$ctrl.formValues.DataYaml\\\" required style=\\\"display: none\\\" />\\n\\n    <web-editor-form\\n      identifier=\\\"kubernetes-configuration-editor\\\"\\n      value=\\\"$ctrl.formValues.DataYaml\\\"\\n      on-change=\\\"($ctrl.editorUpdate)\\\"\\n      yml=\\\"true\\\"\\n      placeholder=\\\"Define or paste key-value pairs, one pair per line\\\"\\n    >\\n    </web-editor-form>\\n  </div>\\n</ng-form>\\n\";;\nvar path = 'app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Resource reservation </div>\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n      <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      {{ $ctrl.description }}\\n    </span>\\n  </div>\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.memoryLimit !== 0\\\">\\n    <label for=\\\"memory-reservation\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Memory reservation </label>\\n    <div class=\\\"col-sm-9\\\" style=\\\"margin-top: 4px\\\" data-cy=\\\"k8sNamespaceDetail-memoryUsage\\\">\\n      <uib-progressbar animate=\\\"false\\\" value=\\\"$ctrl.memoryReservationPercent\\\" type=\\\"{{ $ctrl.memoryReservationPercent | kubernetesUsageLevelInfo }}\\\"></uib-progressbar>\\n      <span> {{ $ctrl.memoryReservation }} / {{ $ctrl.memoryLimit }} MB - {{ $ctrl.memoryReservationPercent }}% </span>\\n    </div>\\n  </div>\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.displayUsage && $ctrl.memoryLimit !== 0\\\">\\n    <label for=\\\"memory-usage\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Memory used </label>\\n    <div class=\\\"col-sm-9\\\" style=\\\"margin-top: 4px\\\">\\n      <uib-progressbar animate=\\\"false\\\" value=\\\"$ctrl.memoryUsagePercent\\\" type=\\\"{{ $ctrl.memoryUsagePercent | kubernetesUsageLevelInfo }}\\\"></uib-progressbar>\\n      <span> {{ $ctrl.memoryUsage }} / {{ $ctrl.memoryLimit }} MB - {{ $ctrl.memoryUsagePercent }}% </span>\\n    </div>\\n  </div>\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.cpuLimit !== 0\\\">\\n    <label for=\\\"cpu-reservation\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> CPU reservation </label>\\n    <div class=\\\"col-sm-9\\\" style=\\\"margin-top: 4px\\\">\\n      <uib-progressbar animate=\\\"false\\\" value=\\\"$ctrl.cpuReservationPercent\\\" type=\\\"{{ $ctrl.cpuReservationPercent | kubernetesUsageLevelInfo }}\\\"></uib-progressbar>\\n      <span> {{ $ctrl.cpuReservation | kubernetesApplicationCPUValue }} / {{ $ctrl.cpuLimit }} - {{ $ctrl.cpuReservationPercent }}% </span>\\n    </div>\\n  </div>\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.displayUsage && $ctrl.cpuLimit !== 0\\\">\\n    <label for=\\\"cpu-usage\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> CPU used </label>\\n    <div class=\\\"col-sm-9\\\" style=\\\"margin-top: 4px\\\">\\n      <uib-progressbar animate=\\\"false\\\" value=\\\"$ctrl.cpuUsagePercent\\\" type=\\\"{{ $ctrl.cpuUsagePercent | kubernetesUsageLevelInfo }}\\\"></uib-progressbar>\\n      <span> {{ $ctrl.cpuUsage | kubernetesApplicationCPUValue }} / {{ $ctrl.cpuLimit }} - {{ $ctrl.cpuUsagePercent }}% </span>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/resource-reservation/resourceReservation.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"loading-view-area\\\" ng-if=\\\"!$ctrl.viewReady\\\">\\n  <div class=\\\"sk-fold sk-center\\\">\\n    <div class=\\\"sk-fold-cube\\\"></div>\\n    <div class=\\\"sk-fold-cube\\\"></div>\\n    <div class=\\\"sk-fold-cube\\\"></div>\\n    <div class=\\\"sk-fold-cube\\\"></div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/components/view-loading/viewLoading.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Custom Templates'\\\" breadcrumbs=\\\"['Custom Templates']\\\" reload=\\\"true\\\"></page-header>\\n\\n<custom-templates-list\\n  templates=\\\"$ctrl.templates\\\"\\n  on-select=\\\"($ctrl.selectTemplate)\\\"\\n  on-delete=\\\"($ctrl.confirmDelete)\\\"\\n  selected-id=\\\"$ctrl.state.selectedTemplate.Id\\\"\\n  storage-key=\\\"'kube-custom-templates'\\\"\\n></custom-templates-list>\\n\";;\nvar path = 'app/kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Registry access'\\\" breadcrumbs=\\\"[{label:'Registries', link:'kubernetes.registries'}, $ctrl.registry.Name, 'Access management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<registry-details registry=\\\"$ctrl.registry\\\" ng-if=\\\"$ctrl.registry\\\"></registry-details>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"user-x\\\" title-text=\\\"Create access\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"form-group\\\">\\n            <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"padding-top: 0\\\"> Select namespaces </label>\\n            <div class=\\\"col-sm-9 col-lg-4\\\" style=\\\"margin-bottom: 15px\\\">\\n              <span class=\\\"small text-muted\\\" ng-if=\\\"!$ctrl.resourcePools.length\\\"> No namespaces available. </span>\\n\\n              <namespaces-selector\\n                ng-if=\\\"$ctrl.resourcePools.length\\\"\\n                value=\\\"$ctrl.selectedResourcePools\\\"\\n                namespaces=\\\"$ctrl.resourcePools\\\"\\n                placeholder=\\\"'Select one or more namespaces'\\\"\\n                on-change=\\\"($ctrl.onChangeResourcePools)\\\"\\n              ></namespaces-selector>\\n            </div>\\n            <div class=\\\"col-sm-12 small text-muted vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n              Adding this registry will expose the registry credentials to all users of this namespace.\\n            </div>\\n          </div>\\n\\n          <!-- actions -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"submit\\\"\\n                class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                ng-disabled=\\\"$ctrl.selectedResourcePools.length === 0 || $ctrl.state.actionInProgress\\\"\\n                ng-click=\\\"$ctrl.submit()\\\"\\n                button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"$ctrl.state.actionInProgress\\\" class=\\\"vertical-center\\\"><pr-icon icon=\\\"'plus'\\\" size=\\\"'sm'\\\"></pr-icon> Create access</span>\\n                <span ng-show=\\\"$ctrl.state.actionInProgress\\\">Creating access...</span>\\n              </button>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <strings-datatable\\n      title-text=\\\"Access\\\"\\n      title-icon=\\\"user-x\\\"\\n      table-key=\\\"access_registry_resourcepools\\\"\\n      dataset=\\\"$ctrl.savedResourcePools\\\"\\n      empty-dataset-message=\\\"No namespace has been authorized yet.\\\"\\n      on-remove=\\\"($ctrl.handleRemove)\\\"\\n      column-header=\\\"Namespace\\\"\\n    >\\n    </strings-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/registries/kube-registry-access-view/kube-registry-access-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"ctrl.state.viewReady\\\" title=\\\"'Application list'\\\" breadcrumbs=\\\"['Applications']\\\" reload=\\\"true\\\"></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\" data-cy=\\\"k8sApp-appList\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\" ng-if=\\\"!ctrl.deploymentOptions.hideStacksFunctionality\\\">\\n            <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(0)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'box'\\\"></pr-icon> Applications </uib-tab-heading>\\n              <kubernetes-applications-datatable\\n                dataset=\\\"ctrl.state.applications\\\"\\n                table-key=\\\"kubernetes.applications\\\"\\n                settings-key=\\\"kubernetes.applications\\\"\\n                order-by=\\\"Name\\\"\\n                remove-action=\\\"ctrl.removeAction\\\"\\n                refresh-callback=\\\"ctrl.getApplications\\\"\\n                on-publishing-mode-click=\\\"(ctrl.onPublishingModeClick)\\\"\\n                is-primary=\\\"true\\\"\\n                namespaces=\\\"ctrl.state.namespaces\\\"\\n                namespace=\\\"ctrl.state.namespaceName\\\"\\n                on-change-namespace-dropdown=\\\"(ctrl.onChangeNamespaceDropdown)\\\"\\n                is-apps-loading=\\\"ctrl.state.isAppsLoading\\\"\\n                is-system-resources=\\\"ctrl.state.isSystemResources\\\"\\n                is-visible=\\\"ctrl.state.activeTab === 0\\\"\\n                set-system-resources=\\\"(ctrl.setSystemResources)\\\"\\n                hide-stacks-functionality=\\\"ctrl.deploymentOptions.hideStacksFunctionality\\\"\\n              >\\n              </kubernetes-applications-datatable>\\n            </uib-tab>\\n            <uib-tab index=\\\"2\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(2)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'list'\\\"></pr-icon> Stacks </uib-tab-heading>\\n\\n              <kubernetes-applications-stacks-datatable\\n                dataset=\\\"ctrl.state.stacks\\\"\\n                on-refresh=\\\"(ctrl.getApplications)\\\"\\n                on-remove=\\\"(ctrl.removeStacksAction)\\\"\\n                namespaces=\\\"ctrl.state.namespaces\\\"\\n                namespace=\\\"ctrl.state.namespaceName\\\"\\n                is-loading=\\\"ctrl.state.isAppsLoading\\\"\\n                on-namespace-change=\\\"(ctrl.onChangeNamespaceDropdown)\\\"\\n                show-system=\\\"ctrl.state.isSystemResources\\\"\\n                set-system-resources=\\\"(ctrl.setSystemResources)\\\"\\n              >\\n              </kubernetes-applications-stacks-datatable>\\n            </uib-tab>\\n          </uib-tabset>\\n          <kubernetes-applications-datatable\\n            ng-if=\\\"ctrl.deploymentOptions.hideStacksFunctionality\\\"\\n            dataset=\\\"ctrl.state.applications\\\"\\n            table-key=\\\"kubernetes.applications\\\"\\n            settings-key=\\\"kubernetes.applications\\\"\\n            order-by=\\\"Name\\\"\\n            remove-action=\\\"ctrl.removeAction\\\"\\n            refresh-callback=\\\"ctrl.getApplications\\\"\\n            on-publishing-mode-click=\\\"(ctrl.onPublishingModeClick)\\\"\\n            is-primary=\\\"true\\\"\\n            namespaces=\\\"ctrl.state.namespaces\\\"\\n            namespace=\\\"ctrl.state.namespaceName\\\"\\n            on-change-namespace-dropdown=\\\"(ctrl.onChangeNamespaceDropdown)\\\"\\n            is-apps-loading=\\\"ctrl.state.isAppsLoading\\\"\\n            is-system-resources=\\\"ctrl.state.isSystemResources\\\"\\n            set-system-resources=\\\"(ctrl.setSystemResources)\\\"\\n            hide-stacks-functionality=\\\"ctrl.deploymentOptions.hideStacksFunctionality\\\"\\n          >\\n          </kubernetes-applications-datatable>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/applications/applications.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"!ctrl.state.isEdit && !ctrl.stack.IsComposeFormat && ctrl.state.viewReady\\\"\\n  title=\\\"'Create application'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Applications', link:'kubernetes.applications' },\\n     'Create an application'\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<page-header\\n  ng-if=\\\"ctrl.state.isEdit && !ctrl.stack.IsComposeFormat && ctrl.state.viewReady\\\"\\n  title=\\\"'Edit application'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.application.ResourcePool,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{ id: ctrl.application.ResourcePool }\\n    },\\n    { label:'Applications', link:'kubernetes.applications' },\\n    {\\n      label:ctrl.application.Name,\\n      link: 'kubernetes.applications.application',\\n      linkParams:{ name: ctrl.application.Name, namespace: ctrl.application.ResourcePool }\\n    },\\n     'Edit',\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<page-header\\n  ng-if=\\\"ctrl.stack.IsComposeFormat\\\"\\n  title=\\\"'View application'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.application.ResourcePool,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{ id: ctrl.application.ResourcePool }\\n    },\\n    { label:'Applications', link:'kubernetes.applications' },\\n    {\\n      label:ctrl.application.Name,\\n      link: 'kubernetes.applications.application',\\n      linkParams:{ name: ctrl.application.Name, namespace: ctrl.application.ResourcePool }\\n    },\\n     'View',\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row kubernetes-create\\\">\\n    <div class=\\\"col-xs-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal mt-4\\\" name=\\\"kubernetesApplicationCreationForm\\\" autocomplete=\\\"off\\\" novalidate>\\n            <div ng-if=\\\"ctrl.isExternalApplication()\\\">\\n              <div class=\\\"col-sm-12 form-section-title\\\" ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.APPLICATION_FORM\\\"> Namespace </div>\\n              <!-- #region NAMESPACE -->\\n              <namespace-selector\\n                values=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                on-change=\\\"(ctrl.onChangeNamespaceName)\\\"\\n                validation-data=\\\"{hasQuota: ctrl.state.resourcePoolHasQuota, isResourceQuotaCapacityExceeded: ctrl.resourceQuotaCapacityExceeded(), namespaceOptionCount: ctrl.resourcePools.length, isEnvironmentAdmin: ctrl.isAdmin}\\\"\\n                is-edit=\\\"ctrl.state.isEdit\\\"\\n              ></namespace-selector>\\n              <!-- kubernetes services options -->\\n              <div ng-if=\\\"ctrl.formValues.ResourcePool\\\">\\n                <kube-services-form\\n                  on-change=\\\"(ctrl.onServicesChange)\\\"\\n                  values=\\\"ctrl.formValues.Services\\\"\\n                  app-name=\\\"ctrl.formValues.Name\\\"\\n                  selector=\\\"ctrl.formValues.Selector\\\"\\n                  validation-data=\\\"{nodePortServices: ctrl.state.nodePortServices, formServices: ctrl.formValues.Services, ingressPaths: ctrl.ingressPaths, originalIngressPaths: ctrl.originalIngressPaths}\\\"\\n                  is-edit-mode=\\\"ctrl.state.isEdit\\\"\\n                  namespace=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                ></kube-services-form>\\n              </div>\\n              <!-- kubernetes services options -->\\n\\n              <!-- kubernetes summary for external application -->\\n              <!--  below workaround is needed because we wanted react to render it again \\n                by hiding/showing it, but the page was fluctuating. so we added two blocks for both the conditions -->\\n              <div ng-if=\\\"!ctrl.isTemporaryRefresh\\\">\\n                <application-summary-section\\n                  application-kind=\\\"ctrl.formValues.ApplicationType\\\"\\n                  form-values=\\\"ctrl.formValues\\\"\\n                  old-form-values=\\\"ctrl.savedFormValues\\\"\\n                  ng-if=\\\"kubernetesApplicationCreationForm.$valid && ctrl.isExternalApplication()\\\"\\n                ></application-summary-section>\\n              </div>\\n              <div ng-if=\\\"ctrl.isTemporaryRefresh\\\">\\n                <application-summary-section\\n                  application-kind=\\\"ctrl.formValues.ApplicationType\\\"\\n                  form-values=\\\"ctrl.formValues\\\"\\n                  old-form-values=\\\"ctrl.savedFormValues\\\"\\n                  ng-if=\\\"kubernetesApplicationCreationForm.$valid && ctrl.isExternalApplication()\\\"\\n                ></application-summary-section>\\n              </div>\\n              <!-- kubernetes summary for external application -->\\n              <div class=\\\"col-sm-12 form-section-title !mt-6\\\" ng-if=\\\"ctrl.state.appType !== ctrl.KubernetesDeploymentTypes.GIT\\\" ng-hide=\\\"ctrl.stack.IsComposeFormat\\\"> Actions </div>\\n              <!-- #region ACTIONS -->\\n              <div class=\\\"form-group\\\" ng-hide=\\\"ctrl.stack.IsComposeFormat\\\">\\n                <div class=\\\"col-sm-12\\\">\\n                  <button\\n                    ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.APPLICATION_FORM\\\"\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                    ng-disabled=\\\"!kubernetesApplicationCreationForm.$valid || ctrl.isDeployUpdateButtonDisabled() || !ctrl.imageValidityIsValid() || ctrl.hasPortErrors() || !ctrl.formValues.ResourcePool\\\"\\n                    ng-click=\\\"ctrl.deployApplication()\\\"\\n                    button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                    data-cy=\\\"k8sAppCreate-deployButton\\\"\\n                  >\\n                    <span ng-show=\\\"!ctrl.state.isEdit && !ctrl.state.actionInProgress\\\">Deploy application</span>\\n                    <span ng-show=\\\"!ctrl.state.isEdit && ctrl.state.actionInProgress\\\">Deployment in progress...</span>\\n                    <span ng-show=\\\"ctrl.state.isEdit && !ctrl.state.actionInProgress\\\">Update application</span>\\n                    <span ng-show=\\\"ctrl.state.isEdit && ctrl.state.actionInProgress\\\">Update in progress...</span>\\n                  </button>\\n                  <button\\n                    ng-if=\\\"ctrl.state.isEdit && !ctrl.state.actionInProgress && ctrl.state.appType === ctrl.KubernetesDeploymentTypes.APPLICATION_FORM\\\"\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-sm btn-default\\\"\\n                    ui-sref=\\\"kubernetes.applications.application({ name: ctrl.application.Name, namespace: ctrl.application.ResourcePool })\\\"\\n                    data-cy=\\\"k8sAppCreate-appCancelButton\\\"\\n                  >\\n                    Cancel\\n                  </button>\\n                  <!-- #Web editor buttons -->\\n                  <button\\n                    class=\\\"btn btn-sm btn-primary\\\"\\n                    ng-click=\\\"ctrl.updateApplicationViaWebEditor()\\\"\\n                    ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.CONTENT || ctrl.state.updateWebEditorInProgress\\\"\\n                    ng-disabled=\\\"ctrl.isUpdateApplicationViaWebEditorButtonDisabled() || !kubernetesApplicationCreationForm.$valid\\\"\\n                    style=\\\"margin-top: 7px; margin-left: 0\\\"\\n                    button-spinner=\\\"ctrl.state.updateWebEditorInProgress\\\"\\n                  >\\n                    <span ng-show=\\\"!ctrl.state.updateWebEditorInProgress\\\">Update application</span>\\n                    <span ng-show=\\\"ctrl.state.updateWebEditorInProgress\\\">Update in progress...</span>\\n                  </button>\\n                </div>\\n              </div>\\n              <!-- #endregion -->\\n            </div>\\n            <div ng-if=\\\"!ctrl.isExternalApplication()\\\">\\n              <git-form-info-panel\\n                ng-if=\\\"ctrl.state.appType == ctrl.KubernetesDeploymentTypes.GIT\\\"\\n                class-name=\\\"'text-muted'\\\"\\n                url=\\\"ctrl.stack.GitConfig.URL\\\"\\n                config-file-path=\\\"ctrl.stack.GitConfig.ConfigFilePath\\\"\\n                additional-files=\\\"ctrl.stack.AdditionalFiles\\\"\\n                type=\\\"'application'\\\"\\n              ></git-form-info-panel>\\n              <!-- #region NAMESPACE -->\\n              <namespace-selector\\n                values=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                on-change=\\\"(ctrl.onChangeNamespaceName)\\\"\\n                validation-data=\\\"{hasQuota: ctrl.state.resourcePoolHasQuota, isResourceQuotaCapacityExceeded: ctrl.resourceQuotaCapacityExceeded(), namespaceOptionCount: ctrl.resourcePools.length, isEnvironmentAdmin: ctrl.isAdmin}\\\"\\n                is-edit=\\\"ctrl.state.isEdit\\\"\\n              ></namespace-selector>\\n              <!-- #endregion -->\\n\\n              <!-- #region STACK -->\\n              <kube-stack-name\\n                ng-if=\\\"!ctrl.deploymentOptions.hideStacksFunctionality && ctrl.state.appType !== ctrl.KubernetesDeploymentTypes.APPLICATION_FORM\\\"\\n                stack-name=\\\"ctrl.formValues.StackName\\\"\\n                set-stack-name=\\\"(ctrl.onChangeStackName)\\\"\\n                text-tip=\\\"'Enter or select a \\\\'stack\\\\' name to group multiple deployments together, or else leave empty to ignore.'\\\"\\n                stacks=\\\"ctrl.stacks\\\"\\n                input-class-name=\\\"'col-lg-10 col-sm-9'\\\"\\n                error=\\\"ctrl.state.stackNameError\\\"\\n              ></kube-stack-name>\\n              <!-- #endregion -->\\n\\n              <!-- #region Git repository -->\\n              <kubernetes-redeploy-app-git-form\\n                ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.GIT\\\"\\n                stack=\\\"ctrl.stack\\\"\\n                namespace=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                stack-name=\\\"ctrl.formValues.StackName\\\"\\n              ></kubernetes-redeploy-app-git-form>\\n              <!-- #endregion -->\\n\\n              <!-- #region web editor -->\\n              <edit-yaml-form-section\\n                ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.CONTENT\\\"\\n                values=\\\"ctrl.stackFileContent\\\"\\n                on-change=\\\"(ctrl.onChangeFileContent)\\\"\\n                is-compose-format=\\\"ctrl.stack.IsComposeFormat\\\"\\n              ></edit-yaml-form-section>\\n              <!-- #endregion -->\\n              <div ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.APPLICATION_FORM\\\">\\n                <!-- #region NAME FIELD -->\\n                <name-form-section\\n                  values=\\\"ctrl.formValues.Name\\\"\\n                  on-change=\\\"(ctrl.onChangeAppName)\\\"\\n                  is-edit=\\\"ctrl.state.isEdit\\\"\\n                  validation-data=\\\"{existingNames: ctrl.applicationNames, isEdit: ctrl.state.isEdit, originalName: ctrl.application.Name}\\\"\\n                ></name-form-section>\\n                <!-- #endregion -->\\n\\n                <!-- #region IMAGE FIELD -->\\n                <div class=\\\"form-group mb-2\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <por-image-registry\\n                      model=\\\"ctrl.formValues.ImageModel\\\"\\n                      ng-if=\\\"ctrl.formValues.ResourcePool\\\"\\n                      auto-complete=\\\"false\\\"\\n                      label-class=\\\"col-sm-3 col-lg-2\\\"\\n                      input-class=\\\"col-sm-9 col-lg-10\\\"\\n                      namespace=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                      endpoint=\\\"ctrl.endpoint\\\"\\n                      is-admin=\\\"ctrl.isAdmin\\\"\\n                      check-rate-limits=\\\"true\\\"\\n                      set-validity=\\\"ctrl.setPullImageValidity\\\"\\n                    ></por-image-registry>\\n                  </div>\\n                </div>\\n                <!-- #end region IMAGE FIELD -->\\n\\n                <div class=\\\"col-sm-12 mb-4 !p-0\\\">\\n                  <annotations-be-teaser></annotations-be-teaser>\\n                </div>\\n\\n                <div ng-if=\\\"ctrl.formValues.ResourcePool\\\">\\n                  <!-- #region STACK -->\\n                  <kube-stack-name\\n                    ng-if=\\\"!ctrl.deploymentOptions.hideStacksFunctionality\\\"\\n                    stack-name=\\\"ctrl.formValues.StackName\\\"\\n                    set-stack-name=\\\"(ctrl.onChangeStackName)\\\"\\n                    text-tip=\\\"'Enter or select a \\\\'stack\\\\' name to group multiple deployments together, or else leave empty to ignore.'\\\"\\n                    stacks=\\\"ctrl.stacks\\\"\\n                    input-class-name=\\\"'col-lg-10 col-sm-9'\\\"\\n                    error=\\\"ctrl.state.stackNameError\\\"\\n                  ></kube-stack-name>\\n                  <!-- #endregion -->\\n\\n                  <!-- #region ENVIRONMENT VARIABLES -->\\n                  <environment-variables-form-section\\n                    values=\\\"ctrl.formValues.EnvironmentVariables\\\"\\n                    on-change=\\\"(ctrl.onEnvironmentVariableChange)\\\"\\n                  ></environment-variables-form-section>\\n                  <!-- #endregion -->\\n\\n                  <!-- #region CONFIGMAPS -->\\n                  <config-maps-form-section\\n                    values=\\\"ctrl.formValues.ConfigMaps\\\"\\n                    on-change=\\\"(ctrl.onConfigMapsChange)\\\"\\n                    namespace=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                    validation-data=\\\"ctrl.formValues.ConfigMaps\\\"\\n                  ></config-maps-form-section>\\n\\n                  <!-- #region SECRETS -->\\n                  <secrets-form-section\\n                    values=\\\"ctrl.formValues.Secrets\\\"\\n                    on-change=\\\"(ctrl.onSecretsChange)\\\"\\n                    namespace=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                    validation-data=\\\"ctrl.formValues.Secrets\\\"\\n                  ></secrets-form-section>\\n                  <!-- #endregion -->\\n\\n                  <persisted-folders-form-section\\n                    values=\\\"ctrl.formValues.PersistedFolders\\\"\\n                    initial-values=\\\"ctrl.formValues.OriginalPersistedFolders\\\"\\n                    on-change=\\\"(ctrl.onChangePersistedFolder)\\\"\\n                    is-edit=\\\"ctrl.state.isEdit\\\"\\n                    application-values=\\\"ctrl.formValues\\\"\\n                    is-add-persistent-folder-button-shown=\\\"ctrl.isAddPersistentFolderButtonShown()\\\"\\n                    available-volumes=\\\"ctrl.availableVolumes\\\"\\n                    validation-data=\\\"{ namespaceQuotas: ctrl.formValues.ResourcePool.Quota, persistedFolders: ctrl.formValues.PersistedFolders, storageAvailabilities: ctrl.state.storages.availabilities }\\\"\\n                  ></persisted-folders-form-section>\\n\\n                  <!-- #region DATA ACCESS POLICY -->\\n                  <access-policy-form-section\\n                    ng-if=\\\"ctrl.showDataAccessPolicySection()\\\"\\n                    value=\\\"ctrl.formValues.DataAccessPolicy\\\"\\n                    on-change=\\\"(ctrl.onDataAccessPolicyChange)\\\"\\n                    is-edit=\\\"ctrl.state.isEdit\\\"\\n                    persisted-folders-use-existing-volumes=\\\"ctrl.state.persistedFoldersUseExistingVolumes\\\"\\n                  ></access-policy-form-section>\\n                  <!-- #endregion -->\\n\\n                  <resource-reservation-form-section\\n                    values=\\\"{memoryLimit: ctrl.formValues.MemoryLimit, cpuLimit: ctrl.formValues.CpuLimit}\\\"\\n                    on-change=\\\"(ctrl.onChangeResourceReservation)\\\"\\n                    namespace-has-quota=\\\"ctrl.state.resourcePoolHasQuota\\\"\\n                    min-memory-limit=\\\"ctrl.state.sliders.memory.min\\\"\\n                    min-cpu-limit=\\\"ctrl.state.sliders.cpu.min\\\"\\n                    max-memory-limit=\\\"ctrl.state.sliders.memory.max\\\"\\n                    max-cpu-limit=\\\"ctrl.state.sliders.cpu.max\\\"\\n                    validation-data=\\\"{isExistingCPUReservationUnchanged: ctrl.state.isExistingCPUReservationUnchanged, isExistingMemoryReservationUnchanged: ctrl.state.isExistingMemoryReservationUnchanged, maxMemoryLimit: ctrl.state.sliders.memory.max, maxCpuLimit: ctrl.state.sliders.cpu.max, isEnvironmentAdmin: ctrl.isAdmin, nodeLimits: ctrl.nodesLimits.nodesLimits}\\\"\\n                    resource-quota-capacity-exceeded=\\\"ctrl.resourceQuotaCapacityExceeded()\\\"\\n                  ></resource-reservation-form-section>\\n\\n                  <!-- deployment options -->\\n                  <app-deployment-type-form-section\\n                    values=\\\"ctrl.formValues.DeploymentType\\\"\\n                    on-change=\\\"(ctrl.onChangeDeploymentType)\\\"\\n                    support-global-deployment=\\\"ctrl.supportGlobalDeployment()\\\"\\n                    radio-name=\\\"'deploymentType'\\\"\\n                    validation-data=\\\"{isQuotaExceeded: ctrl.resourceReservationsOverflow()}\\\"\\n                  ></app-deployment-type-form-section>\\n\\n                  <!-- replica count -->\\n                  <div ng-if=\\\"ctrl.formValues.DeploymentType === ctrl.ApplicationDeploymentTypes.Replicated\\\">\\n                    <replication-form-section\\n                      values=\\\"{replicaCount: ctrl.formValues.ReplicaCount}\\\"\\n                      on-change=\\\"(ctrl.onChangeReplicaCount)\\\"\\n                      support-scalable-replica-deployment=\\\"ctrl.supportScalableReplicaDeployment()\\\"\\n                      memory-limit=\\\"ctrl.formValues.MemoryLimit\\\"\\n                      cpu-limit=\\\"ctrl.formValues.CpuLimit\\\"\\n                      resource-reservations-overflow=\\\"ctrl.resourceReservationsOverflow()\\\"\\n                      non-scalable-storage=\\\"ctrl.getNonScalableStorage()\\\"\\n                      validation-data=\\\"{resourceReservationsOverflow: ctrl.resourceReservationsOverflow(), quotaExceeded: ctrl.state.storages.quotaExceeded, nonScalableStorage: ctrl.getNonScalableStorage(), supportScalableReplicaDeployment: ctrl.supportScalableReplicaDeployment()}\\\"\\n                    ></replication-form-section>\\n                  </div>\\n                  <!-- #endregion -->\\n\\n                  <!-- #region AUTO SCALING -->\\n                  <div ng-if=\\\"ctrl.formValues.DeploymentType !== ctrl.ApplicationDeploymentTypes.Global\\\">\\n                    <auto-scaling-form-section\\n                      values=\\\"ctrl.formValues.AutoScaler\\\"\\n                      on-change=\\\"(ctrl.onAutoScaleChange)\\\"\\n                      validation-data=\\\"{autoScalerOverflow: ctrl.autoScalerOverflow()}\\\"\\n                      is-metrics-enabled=\\\"ctrl.state.useServerMetrics\\\"\\n                    ></auto-scaling-form-section>\\n                  </div>\\n                  <!-- #endregion -->\\n                </div>\\n\\n                <div class=\\\"mb-8\\\" ng-if=\\\"ctrl.formValues.ResourcePool\\\">\\n                  <placement-form-section\\n                    ng-show=\\\"ctrl.formValues.DeploymentType === ctrl.ApplicationDeploymentTypes.Replicated\\\"\\n                    values=\\\"{placements: ctrl.formValues.Placements, placementType: ctrl.formValues.PlacementType}\\\"\\n                    on-change=\\\"(ctrl.onChangePlacements)\\\"\\n                  ></placement-form-section>\\n\\n                  <!-- kubernetes services options -->\\n                  <kube-services-form\\n                    on-change=\\\"(ctrl.onServicesChange)\\\"\\n                    values=\\\"ctrl.formValues.Services\\\"\\n                    load-balancer-enabled=\\\"ctrl.publishViaLoadBalancerEnabled()\\\"\\n                    app-name=\\\"ctrl.formValues.Name\\\"\\n                    selector=\\\"ctrl.formValues.Selector\\\"\\n                    validation-data=\\\"{nodePortServices: ctrl.state.nodePortServices, formServices: ctrl.formValues.Services, ingressPaths: ctrl.ingressPaths, originalIngressPaths: ctrl.originalIngressPaths}\\\"\\n                    is-edit-mode=\\\"ctrl.state.isEdit\\\"\\n                    namespace=\\\"ctrl.formValues.ResourcePool.Namespace.Name\\\"\\n                  ></kube-services-form>\\n                </div>\\n                <!-- kubernetes services options -->\\n\\n                <!-- application summary start -->\\n                <!--  below workaround is needed because we wanted react to render it again \\n                  by hiding/showing it, but the page was fluctuating. so we added two blocks for both the conditions -->\\n                <div ng-if=\\\"!ctrl.isTemporaryRefresh\\\">\\n                  <!-- summary -->\\n                  <application-summary-section\\n                    application-kind=\\\"ctrl.formValues.ApplicationType\\\"\\n                    ng-if=\\\"!(!kubernetesApplicationCreationForm.$valid || ctrl.isDeployUpdateButtonDisabled() || !ctrl.state.pullImageValidity)\\\"\\n                    form-values=\\\"ctrl.formValues\\\"\\n                    old-form-values=\\\"ctrl.savedFormValues\\\"\\n                  ></application-summary-section>\\n                </div>\\n                <div ng-if=\\\"ctrl.isTemporaryRefresh\\\">\\n                  <!-- summary -->\\n                  <application-summary-section\\n                    application-kind=\\\"ctrl.formValues.ApplicationType\\\"\\n                    ng-if=\\\"!(!kubernetesApplicationCreationForm.$valid || ctrl.isDeployUpdateButtonDisabled() || !ctrl.state.pullImageValidity)\\\"\\n                    form-values=\\\"ctrl.formValues\\\"\\n                    old-form-values=\\\"ctrl.savedFormValues\\\"\\n                  ></application-summary-section>\\n                </div>\\n                <!-- application summary end -->\\n              </div>\\n              <!-- #region ACTIONS -->\\n              <div class=\\\"col-sm-12 form-section-title !mt-6\\\" ng-if=\\\"ctrl.state.appType !== ctrl.KubernetesDeploymentTypes.GIT\\\" ng-hide=\\\"ctrl.stack.IsComposeFormat\\\"> Actions </div>\\n              <div class=\\\"form-group\\\" ng-hide=\\\"ctrl.stack.IsComposeFormat\\\">\\n                <div class=\\\"col-sm-12\\\">\\n                  <button\\n                    ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.APPLICATION_FORM\\\"\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                    ng-disabled=\\\"!kubernetesApplicationCreationForm.$valid || ctrl.isDeployUpdateButtonDisabled() || !ctrl.imageValidityIsValid() || ctrl.hasPortErrors() || !ctrl.formValues.ResourcePool\\\"\\n                    ng-click=\\\"ctrl.deployApplication()\\\"\\n                    button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                    data-cy=\\\"k8sAppCreate-deployButton\\\"\\n                  >\\n                    <span ng-show=\\\"!ctrl.state.isEdit && !ctrl.state.actionInProgress\\\">Deploy application</span>\\n                    <span ng-show=\\\"!ctrl.state.isEdit && ctrl.state.actionInProgress\\\">Deployment in progress...</span>\\n                    <span ng-show=\\\"ctrl.state.isEdit && !ctrl.state.actionInProgress\\\">Update application</span>\\n                    <span ng-show=\\\"ctrl.state.isEdit && ctrl.state.actionInProgress\\\">Update in progress...</span>\\n                  </button>\\n                  <button\\n                    ng-if=\\\"ctrl.state.isEdit && !ctrl.state.actionInProgress && ctrl.state.appType === ctrl.KubernetesDeploymentTypes.APPLICATION_FORM\\\"\\n                    type=\\\"button\\\"\\n                    class=\\\"btn btn-sm btn-default\\\"\\n                    ui-sref=\\\"kubernetes.applications.application({ name: ctrl.application.Name, namespace: ctrl.application.ResourcePool })\\\"\\n                    data-cy=\\\"k8sAppCreate-appCancelButton\\\"\\n                  >\\n                    Cancel\\n                  </button>\\n                  <!-- #Web editor buttons -->\\n                  <button\\n                    class=\\\"btn btn-sm btn-primary\\\"\\n                    ng-click=\\\"ctrl.updateApplicationViaWebEditor()\\\"\\n                    ng-if=\\\"ctrl.state.appType === ctrl.KubernetesDeploymentTypes.CONTENT || ctrl.state.updateWebEditorInProgress\\\"\\n                    ng-disabled=\\\"ctrl.isUpdateApplicationViaWebEditorButtonDisabled() || !kubernetesApplicationCreationForm.$valid\\\"\\n                    style=\\\"margin-top: 7px; margin-left: 0\\\"\\n                    button-spinner=\\\"ctrl.state.updateWebEditorInProgress\\\"\\n                  >\\n                    <span ng-show=\\\"!ctrl.state.updateWebEditorInProgress\\\">Update application</span>\\n                    <span ng-show=\\\"ctrl.state.updateWebEditorInProgress\\\">Update in progress...</span>\\n                  </button>\\n                </div>\\n              </div>\\n            </div>\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/applications/create/createApplication.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"$ctrl.state.viewReady\\\"\\n  title=\\\"'Helm details'\\\"\\n  breadcrumbs=\\\"[{label:'Applications', link:'kubernetes.applications'}, $ctrl.state.params.name]\\\"\\n  reload=\\\"true\\\"\\n></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"$ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"$ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <div class=\\\"toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 p-5\\\">\\n          <div class=\\\"toolBarTitle vertical-center\\\">\\n            <div class=\\\"widget-icon space-right\\\">\\n              <pr-icon icon=\\\"'svg-helm'\\\"></pr-icon>\\n            </div>\\n\\n            Release\\n          </div>\\n        </div>\\n        <rd-widget-body>\\n          <table class=\\\"table\\\">\\n            <tbody class=\\\"release-table\\\">\\n              <tr>\\n                <td class=\\\"vertical-center !pl-0\\\">Name</td>\\n                <td class=\\\"vertical-center !p-2\\\">\\n                  {{ $ctrl.state.release.name }}\\n                </td>\\n              </tr>\\n              <tr>\\n                <td class=\\\"vertical-center !pl-0\\\">Chart</td>\\n                <td class=\\\"vertical-center !p-2\\\">\\n                  {{ $ctrl.state.release.chart }}\\n                </td>\\n              </tr>\\n              <tr>\\n                <td class=\\\"vertical-center !pl-0\\\">App version</td>\\n                <td class=\\\"vertical-center !p-2\\\">\\n                  {{ $ctrl.state.release.app_version }}\\n                </td>\\n              </tr>\\n            </tbody>\\n          </table>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/applications/helm/helm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Application logs'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.application.ResourcePool,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{ id: ctrl.application.ResourcePool }\\n    },\\n    { label:'Applications', link:'kubernetes.applications' },\\n    {\\n      label:ctrl.application.Name,\\n      link: 'kubernetes.applications.application',\\n      linkParams:{ name: ctrl.application.Name, namespace: ctrl.application.ResourcePool }\\n    },\\n     'Pods',\\n     ctrl.podName,\\n     'Containers',\\n     ctrl.containerName,\\n     'Logs'\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal row\\\" autocomplete=\\\"off\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n            <!-- auto-refresh -->\\n            <div class=\\\"form-group\\\">\\n              <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n                Auto-refresh\\n                <portainer-tooltip message=\\\"'Automatically refresh logs every 5 seconds'\\\"></portainer-tooltip>\\n              </label>\\n              <div class=\\\"col-sm-8\\\">\\n                <label class=\\\"switch\\\"> <input type=\\\"checkbox\\\" ng-model=\\\"ctrl.state.autoRefresh\\\" ng-change=\\\"ctrl.updateAutoRefresh()\\\" /><span class=\\\"slider round\\\"></span> </label>\\n              </div>\\n            </div>\\n            <!-- !auto-refresh -->\\n            <!-- search -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"logs_search\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Search </label>\\n              <div class=\\\"col-sm-8\\\">\\n                <input\\n                  class=\\\"form-control\\\"\\n                  type=\\\"text\\\"\\n                  name=\\\"logs_search\\\"\\n                  ng-model=\\\"ctrl.state.search\\\"\\n                  ng-change=\\\"ctrl.state.selectedLines.length = 0;\\\"\\n                  placeholder=\\\"Filter...\\\"\\n                  auto-focus\\n                />\\n              </div>\\n            </div>\\n            <!-- !search -->\\n            <!-- actions -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button class=\\\"btn btn-primary btn-sm !ml-0\\\" type=\\\"button\\\" ng-click=\\\"ctrl.downloadLogs()\\\"> <pr-icon icon=\\\"'download'\\\"></pr-icon> Download logs </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12 h-[max(400px,calc(100vh-380px))]\\\">\\n      <pre class=\\\"log_viewer widget\\\">\\n        <div ng-repeat=\\\"log in ctrl.state.filteredLogs = (ctrl.applicationLogs | filter:{ 'line': ctrl.state.search }) track by $index\\\" class=\\\"line\\\" ng-if=\\\"log.line\\\"><p class=\\\"inner_line\\\"><span ng-repeat=\\\"span in log.spans track by $index\\\" ng-style=\\\"{ 'color': span.fgColor, 'background-color': span.bgColor, 'font-weight': span.fontWeight }\\\">{{ span.text }}</span></p></div>\\n        <div ng-if=\\\"ctrl.applicationLogs.length && !ctrl.state.filteredLogs.length\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\">No log line matching the '{{ ctrl.state.search }}' filter</p></div>\\n        <div ng-if=\\\"ctrl.applicationLogs.length === 0\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\">No logs available</p></div></pre>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/applications/logs/logs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Application stats'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.state.transition.namespace,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{ id: ctrl.state.transition.namespace }\\n    },\\n    { label:'Applications', link:'kubernetes.applications' },\\n    {\\n      label:ctrl.state.transition.applicationName,\\n      link: 'kubernetes.applications.application',\\n      linkParams:{ name: ctrl.state.transition.applicationName, namespace: ctrl.state.transition.namespace }\\n    },\\n     'Pods',\\n     ctrl.state.transition.podName,\\n     'Containers',\\n     ctrl.state.transition.containerName,\\n     'Stats'\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<information-panel ng-if=\\\"!ctrl.state.getMetrics\\\" title-text=\\\"Unable to retrieve container metrics\\\">\\n  <span class=\\\"small text-warning vertical-center\\\">\\n    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n    Portainer was unable to retrieve any metrics associated to that container. Please contact your administrator to ensure that the Kubernetes metrics feature is properly\\n    configured.\\n  </span>\\n</information-panel>\\n<div class=\\\"row\\\" ng-if=\\\"ctrl.state.getMetrics\\\">\\n  <div class=\\\"col-md-12\\\">\\n    <rd-widget>\\n      <div class=\\\"toolBar px-5 pt-5\\\">\\n        <div class=\\\"toolBarTitle flex\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'info'\\\"></pr-icon>\\n          </div>\\n          <span class=\\\"vertical-center\\\"> About statistics </span>\\n        </div>\\n      </div>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-warning\\\">\\n                This view displays real-time statistics about the container <b>{{ ctrl.state.transition.containerName | trimcontainername }}</b\\n                >.\\n              </span>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"refreshRate\\\" class=\\\"col-sm-3 col-md-2 col-lg-2 margin-sm-top control-label text-left\\\"> Refresh rate </label>\\n            <div class=\\\"col-sm-3 col-md-2\\\">\\n              <select id=\\\"refreshRate\\\" ng-model=\\\"ctrl.state.refreshRate\\\" ng-change=\\\"ctrl.changeUpdateRepeater()\\\" class=\\\"form-control\\\">\\n                <option value=\\\"30\\\">30s</option>\\n                <option value=\\\"60\\\">60s</option>\\n              </select>\\n            </div>\\n            <span>\\n              <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" size=\\\"'sm'\\\"></pr-icon>\\n            </span>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.networkStatsUnavailable\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                Network stats are unavailable for this container.\\n              </span>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\" ng-if=\\\"ctrl.state.getMetrics\\\">\\n  <div class=\\\"col-lg-6 col-md-12 col-sm-12\\\">\\n    <rd-widget>\\n      <div class=\\\"toolBar px-5 pt-5\\\">\\n        <div class=\\\"toolBarTitle flex\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'svg-memory'\\\"></pr-icon>\\n          </div>\\n          <span class=\\\"vertical-center\\\"> Memory usage </span>\\n        </div>\\n      </div>\\n      <rd-widget-body>\\n        <div class=\\\"chart-container\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"memoryChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n  <div class=\\\"col-lg-6 col-md-12 col-sm-12\\\" ng-if=\\\"!ctrl.state.networkStatsUnavailable\\\">\\n    <rd-widget>\\n      <div class=\\\"toolBar px-5 pt-5\\\">\\n        <div class=\\\"toolBarTitle flex\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'cpu'\\\"></pr-icon>\\n          </div>\\n          <span class=\\\"vertical-center\\\"> CPU usage </span>\\n        </div>\\n      </div>\\n      <rd-widget-body>\\n        <div class=\\\"chart-container\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"cpuChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/applications/stats/stats.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"ctrl.state.viewReady\\\" title=\\\"'Cluster'\\\" breadcrumbs=\\\"['Cluster information']\\\" reload=\\\"true\\\"></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.isAdmin\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <!-- resource-reservation -->\\n          <form class=\\\"form-horizontal\\\" ng-if=\\\"ctrl.resourceReservation\\\">\\n            <kubernetes-resource-reservation\\n              description=\\\"Resource reservation represents the total amount of resource assigned to all the applications inside the cluster.\\\"\\n              cpu-reservation=\\\"ctrl.resourceReservation.CPU\\\"\\n              cpu-limit=\\\"ctrl.CPULimit\\\"\\n              memory-reservation=\\\"ctrl.resourceReservation.Memory\\\"\\n              memory-limit=\\\"ctrl.MemoryLimit\\\"\\n              display-usage=\\\"ctrl.hasResourceUsageAccess()\\\"\\n              cpu-usage=\\\"ctrl.resourceUsage.CPU\\\"\\n              memory-usage=\\\"ctrl.resourceUsage.Memory\\\"\\n            >\\n            </kubernetes-resource-reservation>\\n          </form>\\n          <!-- !resource-reservation -->\\n\\n          <!-- leader-status -->\\n          <div ng-if=\\\"ctrl.systemEndpoints.length > 0\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Leader status </div>\\n\\n            <table class=\\\"table\\\">\\n              <tbody>\\n                <tr class=\\\"text-muted\\\">\\n                  <td style=\\\"border-top: none; width: 25%\\\">Component</td>\\n                  <td style=\\\"border-top: none; width: 25%\\\">Leader node</td>\\n                </tr>\\n                <tr ng-repeat=\\\"ep in ctrl.systemEndpoints\\\">\\n                  <td style=\\\"width: 25%\\\">\\n                    {{ ep.Name }}\\n                  </td>\\n                  <td style=\\\"width: 25%\\\">\\n                    {{ ep.HolderIdentity }}\\n                  </td>\\n                </tr>\\n              </tbody>\\n            </table>\\n          </div>\\n          <!-- !leader-status -->\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\">\\n    <kube-nodes-datatable></kube-nodes-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/cluster/cluster.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"ctrl.state.viewReady\\\" title=\\\"'Node details'\\\" breadcrumbs=\\\"[{ label:'Cluster', link:'kubernetes.cluster' }, ctrl.node.Name]\\\" reload=\\\"true\\\"></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n            <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(0)\\\">\\n              <uib-tab-heading class=\\\"flex-center gap-1\\\"> <pr-icon icon=\\\"'hard-drive'\\\" size=\\\"'sm'\\\"></pr-icon> Node </uib-tab-heading>\\n\\n              <form class=\\\"form-horizontal\\\" name=\\\"kubernetesNodeUpdateForm\\\" style=\\\"padding: 20px\\\" autocomplete=\\\"off\\\">\\n                <table class=\\\"table\\\">\\n                  <tbody ng-if=\\\"ctrl.node\\\">\\n                    <tr>\\n                      <td>Hostname</td>\\n                      <td>\\n                        {{ ctrl.node.Name }}\\n                        <span class=\\\"label label-primary image-tag\\\" style=\\\"margin-left: 5px\\\" ng-if=\\\"ctrl.node.Api\\\">api</span>\\n                      </td>\\n                    </tr>\\n                    <tr ng-if=\\\"ctrl.node.Api\\\">\\n                      <td> Kubernetes API </td>\\n                      <td>{{ ctrl.node.IPAddress }}:{{ ctrl.node.Port }}</td>\\n                    </tr>\\n                    <tr>\\n                      <td>Role</td>\\n                      <td>{{ ctrl.node.Role }}</td>\\n                    </tr>\\n                    <tr>\\n                      <td>Kubelet version</td>\\n                      <td>{{ ctrl.node.Version }}</td>\\n                    </tr>\\n                    <tr>\\n                      <td>Creation date</td>\\n                      <td>{{ ctrl.node.CreationDate | getisodate }}</td>\\n                    </tr>\\n                    <tr>\\n                      <td>Status</td>\\n                      <td>\\n                        <span class=\\\"label label-{{ ctrl.node.Status | kubernetesNodeStatusColor }}\\\">\\n                          {{ ctrl.node.Status }}\\n                        </span>\\n                        <span ng-if=\\\"ctrl.node.Status == 'Warning'\\\" class=\\\"text text-warning\\\">\\n                          {{ ctrl.node.Conditions | kubernetesNodeConditionsMessage }}\\n                        </span>\\n                      </td>\\n                    </tr>\\n                    <tr>\\n                      <td class=\\\"col-xs-3\\\"> Availability </td>\\n                      <td class=\\\"col-xs-9\\\">\\n                        <div class=\\\"flex flex-col\\\">\\n                          <select class=\\\"form-control\\\" name=\\\"availability\\\" style=\\\"display: inline-block; width: 16rem\\\" ng-model=\\\"ctrl.formValues.Availability\\\">\\n                            <option>{{ ctrl.availabilities.ACTIVE }}</option>\\n                            <option>{{ ctrl.availabilities.PAUSE }}</option>\\n                            <option>{{ ctrl.availabilities.DRAIN }}</option>\\n                          </select>\\n                          <div class=\\\"small text-warning vertical-center\\\" ng-if=\\\"ctrl.state.isDrainOperation && ctrl.formValues.Availability === ctrl.availabilities.DRAIN\\\">\\n                            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                            Cannot use this action while another node is currently being drained.\\n                          </div>\\n                          <div class=\\\"small text-warning vertical-center\\\" ng-if=\\\"ctrl.state.isContainPortainer && ctrl.formValues.Availability === ctrl.availabilities.DRAIN\\\">\\n                            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                            Cannot drain a node where this Portainer instance is running.\\n                          </div>\\n                        </div>\\n                      </td>\\n                    </tr>\\n                  </tbody>\\n                </table>\\n\\n                <div style=\\\"padding: 8px\\\">\\n                  <kubernetes-resource-reservation\\n                    ng-if=\\\"ctrl.resourceReservation\\\"\\n                    cpu-reservation=\\\"ctrl.resourceReservation.CPU\\\"\\n                    cpu-usage=\\\"ctrl.resourceUsage.CPU\\\"\\n                    cpu-limit=\\\"ctrl.node.CPU\\\"\\n                    memory-reservation=\\\"ctrl.resourceReservation.Memory\\\"\\n                    memory-usage=\\\"ctrl.resourceUsage.Memory\\\"\\n                    memory-limit=\\\"ctrl.memoryLimit\\\"\\n                    description=\\\"Resource reservation represents the total amount of resource assigned to all the applications running on this node.\\\"\\n                    display-usage=\\\"ctrl.hasResourceUsageAccess()\\\"\\n                  >\\n                  </kubernetes-resource-reservation>\\n                </div>\\n\\n                <div style=\\\"padding: 8px\\\">\\n                  <!-- #region labels -->\\n                  <div class=\\\"col-sm-12 form-section-title\\\"> Labels </div>\\n\\n                  <div style=\\\"margin-bottom: 10px\\\">\\n                    <span class=\\\"label label-default interactive vertical-center\\\" ng-click=\\\"ctrl.addLabel()\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> add label </span>\\n                  </div>\\n\\n                  <div class=\\\"form-inline py-1\\\" ng-repeat=\\\"label in ctrl.formValues.Labels\\\">\\n                    <div class=\\\"input-group col-sm-3 input-group-sm\\\" ng-class=\\\"{ striked: label.NeedsDeletion }\\\">\\n                      <span class=\\\"input-group-addon\\\">Key</span>\\n                      <input\\n                        type=\\\"text\\\"\\n                        class=\\\"form-control\\\"\\n                        name=\\\"label_key_{{ $index }}\\\"\\n                        ng-model=\\\"label.Key\\\"\\n                        ng-change=\\\"ctrl.onChangeLabelKey($index)\\\"\\n                        ng-disabled=\\\"ctrl.isSystemLabel($index)\\\"\\n                        required\\n                      />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-3 input-group-sm\\\" ng-class=\\\"{ striked: label.NeedsDeletion }\\\">\\n                      <span class=\\\"input-group-addon\\\">Value</span>\\n                      <input\\n                        type=\\\"text\\\"\\n                        class=\\\"form-control\\\"\\n                        name=\\\"label_value_{{ $index }}\\\"\\n                        ng-change=\\\"ctrl.onChangeLabel($index)\\\"\\n                        ng-model=\\\"label.Value\\\"\\n                        ng-disabled=\\\"ctrl.isSystemLabel($index)\\\"\\n                      />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-1 input-group-sm\\\">\\n                      <div style=\\\"white-space: nowrap\\\">\\n                        <button\\n                          ng-if=\\\"!ctrl.isSystemLabel($index) && !label.NeedsDeletion\\\"\\n                          class=\\\"btn btn-sm btn-dangerlight btn-only-icon\\\"\\n                          type=\\\"button\\\"\\n                          ng-click=\\\"ctrl.removeLabel($index)\\\"\\n                        >\\n                          <pr-icon icon=\\\"'x'\\\" mode=\\\"'error'\\\" size=\\\"'sm'\\\"></pr-icon>\\n                        </button>\\n                        <button ng-if=\\\"!ctrl.isSystemLabel($index) && label.NeedsDeletion\\\" class=\\\"btn btn-sm btn-secondary\\\" type=\\\"button\\\" ng-click=\\\"ctrl.restoreLabel($index)\\\">\\n                          Restore\\n                        </button>\\n                        <span class=\\\"label label-warning label-sm image-tag\\\" ng-if=\\\"label.IsUsed && !ctrl.isSystemLabel($index)\\\" style=\\\"margin-left: 5px\\\">used</span>\\n                        <span class=\\\"label label-info image-tag\\\" ng-if=\\\"ctrl.isSystemLabel($index)\\\" style=\\\"margin-left: 5px\\\">system</span>\\n                      </div>\\n                    </div>\\n                    <div class=\\\"small text-warning mt-2\\\" ng-show=\\\"kubernetesNodeUpdateForm['label_key_' + $index].$invalid || ctrl.state.duplicateLabelKeys[$index] !== undefined\\\">\\n                      <ng-messages for=\\\"kubernetesNodeUpdateForm['label_key_' + $index].$error\\\">\\n                        <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Label key is required. </p>\\n                      </ng-messages>\\n                      <p ng-if=\\\"ctrl.state.duplicateLabelKeys[$index] !== undefined\\\" class=\\\"vertical-center\\\">\\n                        <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This label key is already defined.\\n                      </p>\\n                    </div>\\n                  </div>\\n\\n                  <!-- #endregion -->\\n\\n                  <!-- #region taints -->\\n\\n                  <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 20px\\\"> Taints </div>\\n\\n                  <div style=\\\"margin-bottom: 10px\\\">\\n                    <span class=\\\"label label-default interactive vertical-center\\\" ng-click=\\\"ctrl.addTaint()\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> add taint </span>\\n                  </div>\\n\\n                  <div class=\\\"form-inline\\\" ng-repeat=\\\"taint in ctrl.formValues.Taints\\\" style=\\\"padding: 3px 0 3px 0\\\">\\n                    <div class=\\\"input-group col-sm-3 input-group-sm\\\" ng-class=\\\"{ striked: taint.NeedsDeletion }\\\">\\n                      <span class=\\\"input-group-addon\\\">Key</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"taint_key_{{ $index }}\\\" ng-model=\\\"taint.Key\\\" ng-change=\\\"ctrl.onChangeTaintKey($index)\\\" required />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-3 input-group-sm\\\" ng-class=\\\"{ striked: taint.NeedsDeletion }\\\">\\n                      <span class=\\\"input-group-addon\\\">Value</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"taint_value_{{ $index }}\\\" ng-model=\\\"taint.Value\\\" ng-change=\\\"ctrl.onChangeTaint($index)\\\" />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-3 input-group-sm\\\" ng-class=\\\"{ striked: taint.NeedsDeletion }\\\">\\n                      <span class=\\\"input-group-addon\\\">Effect</span>\\n                      <select\\n                        id=\\\"taint_effect_{{ $index }}\\\"\\n                        name=\\\"taint_effect_{{ $index }}\\\"\\n                        class=\\\"form-control\\\"\\n                        ng-model=\\\"taint.Effect\\\"\\n                        ng-change=\\\"ctrl.onChangeTaint($index)\\\"\\n                        ;\\n                        ng-options=\\\"effect as effect for effect in ctrl.availableEffects\\\"\\n                      ></select>\\n                    </div>\\n                    <div class=\\\"input-group col-sm-1 input-group-sm\\\">\\n                      <div>\\n                        <button ng-if=\\\"!taint.NeedsDeletion\\\" class=\\\"btn btn-sm btn-dangerlight btn-only-icon\\\" type=\\\"button\\\" ng-click=\\\"ctrl.removeTaint($index)\\\">\\n                          <pr-icon icon=\\\"'x'\\\" mode=\\\"'error'\\\" size=\\\"'sm'\\\"></pr-icon>\\n                        </button>\\n                        <button ng-if=\\\"taint.NeedsDeletion\\\" class=\\\"btn btn-sm btn-secondary\\\" type=\\\"button\\\" ng-click=\\\"ctrl.restoreTaint($index)\\\"> Restore </button>\\n                      </div>\\n                    </div>\\n                    <div\\n                      class=\\\"small text-warning\\\"\\n                      style=\\\"margin-top: 5px\\\"\\n                      ng-show=\\\"kubernetesNodeUpdateForm['taint_key_' + $index].$invalid || ctrl.state.duplicateTaintKeys[$index] !== undefined\\\"\\n                    >\\n                      <ng-messages for=\\\"kubernetesNodeUpdateForm['taint_key_' + $index].$error\\\">\\n                        <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Taint key is required. </p>\\n                      </ng-messages>\\n                      <p ng-if=\\\"ctrl.state.duplicateTaintKeys[$index] !== undefined\\\">\\n                        <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This taint key is already defined.\\n                      </p>\\n                    </div>\\n                  </div>\\n\\n                  <!-- #endregion -->\\n\\n                  <!-- #region actions -->\\n\\n                  <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 20px\\\"> Actions </div>\\n\\n                  <div class=\\\"form-group\\\">\\n                    <div class=\\\"col-sm-12\\\">\\n                      <button\\n                        class=\\\"btn btn-primary btn-sm\\\"\\n                        type=\\\"button\\\"\\n                        style=\\\"margin-left: 0\\\"\\n                        ng-click=\\\"ctrl.updateNode()\\\"\\n                        ng-disabled=\\\"kubernetesNodeUpdateForm.$invalid || !ctrl.isFormValid()\\\"\\n                      >\\n                        Update node\\n                      </button>\\n                      <button class=\\\"btn btn-default btn-sm\\\" type=\\\"button\\\" ng-click=\\\"ctrl.resetFormValues()\\\" ng-disabled=\\\"ctrl.isNoChangesMade()\\\"> Cancel </button>\\n                    </div>\\n                  </div>\\n\\n                  <!-- #endregion -->\\n                </div>\\n              </form>\\n            </uib-tab>\\n            <uib-tab index=\\\"1\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(1)\\\">\\n              <uib-tab-heading>\\n                <div class=\\\"flex-center gap-1\\\"> <pr-icon icon=\\\"'history'\\\" size=\\\"'sm'\\\"></pr-icon> Events </div>\\n                <div class=\\\"flex-center gap-1\\\" ng-if=\\\"ctrl.hasEventWarnings()\\\">\\n                  <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'warning-alt'\\\" size=\\\"'sm'\\\"></pr-icon>\\n                  {{ ctrl.state.eventWarningCount }} warning(s)\\n                </div>\\n              </uib-tab-heading>\\n              <kubernetes-events-datatable\\n                title-text=\\\"Events\\\"\\n                dataset=\\\"ctrl.events\\\"\\n                table-key=\\\"kubernetes.node.events\\\"\\n                order-by=\\\"Date\\\"\\n                reverse-order=\\\"true\\\"\\n                loading=\\\"ctrl.state.eventsLoading\\\"\\n                refresh-callback=\\\"ctrl.getEvents\\\"\\n              >\\n              </kubernetes-events-datatable>\\n            </uib-tab>\\n            <uib-tab index=\\\"2\\\" ng-if=\\\"ctrl.node.Yaml\\\" select=\\\"ctrl.showEditor()\\\" classes=\\\"btn-sm\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\">\\n                <div class=\\\"flex-center gap-1\\\"> <pr-icon icon=\\\"'code'\\\" size=\\\"'sm'\\\"></pr-icon> YAML </div>\\n              </uib-tab-heading>\\n              <div style=\\\"padding-right: 25px\\\" ng-if=\\\"ctrl.state.showEditorTab\\\">\\n                <kube-yaml-inspector identifier=\\\"'node-yaml'\\\" data=\\\"ctrl.node.Yaml\\\" hide-message=\\\"true\\\" />\\n              </div>\\n            </uib-tab>\\n          </uib-tabset>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.applications && ctrl.applications.length > 0\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <kubernetes-node-applications-datatable\\n        dataset=\\\"ctrl.applications\\\"\\n        table-key=\\\"kubernetes.node.applications\\\"\\n        order-by=\\\"Name\\\"\\n        refresh-callback=\\\"ctrl.getApplications\\\"\\n        loading=\\\"ctrl.state.applicationsLoading\\\"\\n        title-text=\\\"Applications running on this node\\\"\\n      >\\n      </kubernetes-node-applications-datatable>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/cluster/node/node.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Node stats'\\\"\\n  breadcrumbs=\\\"[\\n{ label:'Cluster', link:'kubernetes.cluster' },\\n{\\n  label:ctrl.state.transition.nodeName,\\n  link: 'kubernetes.cluster.node',\\n  linkParams:{nodeName: ctrl.state.transition.nodeName}\\n},\\n ctrl.state.transition.nodeName,\\n ]\\\"\\n  reload=\\\"true\\\"\\n></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<information-panel ng-if=\\\"!ctrl.state.getMetrics\\\" title-text=\\\"Unable to retrieve node metrics\\\">\\n  <span class=\\\"small text-muted vertical-center\\\">\\n    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n    Portainer was unable to retrieve any metrics associated to that node. Please contact your administrator to ensure that the Kubernetes metrics feature is properly configured.\\n  </span>\\n</information-panel>\\n<div class=\\\"row\\\" ng-if=\\\"ctrl.state.getMetrics\\\">\\n  <div class=\\\"col-md-12\\\">\\n    <rd-widget>\\n      <div class=\\\"toolBar px-5 pt-5\\\">\\n        <div class=\\\"toolBarTitle flex\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'info'\\\"></pr-icon>\\n          </div>\\n          <span class=\\\"vertical-center\\\"> About statistics </span>\\n        </div>\\n      </div>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted\\\">\\n                This view displays real-time statistics about the node <b>{{ ctrl.state.transition.nodeName }}</b\\n                >.\\n              </span>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"refreshRate\\\" class=\\\"col-sm-3 col-md-2 col-lg-2 margin-sm-top control-label text-left\\\"> Refresh rate </label>\\n            <div class=\\\"col-sm-3 col-md-2\\\">\\n              <select id=\\\"refreshRate\\\" ng-model=\\\"ctrl.state.refreshRate\\\" ng-change=\\\"ctrl.changeUpdateRepeater()\\\" class=\\\"form-control\\\">\\n                <option value=\\\"30\\\">30s</option>\\n                <option value=\\\"60\\\">60s</option>\\n              </select>\\n            </div>\\n            <span>\\n              <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n            </span>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\" ng-show=\\\"ctrl.state.getMetrics\\\">\\n  <div class=\\\"col-lg-6 col-md-12 col-sm-12\\\">\\n    <rd-widget>\\n      <div class=\\\"toolBar px-5 pt-5\\\">\\n        <div class=\\\"toolBarTitle flex\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'svg-memory'\\\"></pr-icon>\\n          </div>\\n          <span class=\\\"vertical-center\\\"> Memory usage </span>\\n        </div>\\n      </div>\\n      <rd-widget-body>\\n        <div class=\\\"chart-node\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"memoryChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n  <div class=\\\"col-lg-6 col-md-12 col-sm-12\\\">\\n    <rd-widget>\\n      <div class=\\\"toolBar px-5 pt-5\\\">\\n        <div class=\\\"toolBarTitle flex\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'cpu'\\\"></pr-icon>\\n          </div>\\n          <span class=\\\"vertical-center\\\"> CPU usage </span>\\n        </div>\\n      </div>\\n      <rd-widget-body>\\n        <div class=\\\"chart-node\\\" style=\\\"position: relative\\\">\\n          <canvas id=\\\"cpuChart\\\" width=\\\"770\\\" height=\\\"300\\\"></canvas>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/cluster/node/stats/stats.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Create ConfigMap'\\\"\\n  breadcrumbs=\\\"[{ label:'ConfigMaps and Secrets', link:'kubernetes.configurations', linkParams:{ tab: 'configmaps' } }, 'Create a ConfigMap']\\\"\\n  reload=\\\"true\\\"\\n></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-xs-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal\\\" name=\\\"kubernetesConfigurationCreationForm\\\" autocomplete=\\\"off\\\">\\n            <!-- resource-pool -->\\n            <div class=\\\"form-group\\\" ng-if=\\\"ctrl.formValues.ResourcePool\\\">\\n              <label for=\\\"resource-pool-selector\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Namespace</label>\\n              <div class=\\\"col-sm-8 col-lg-9\\\">\\n                <select\\n                  class=\\\"form-control\\\"\\n                  id=\\\"resource-pool-selector\\\"\\n                  ng-model=\\\"ctrl.formValues.ResourcePool\\\"\\n                  ng-options=\\\"resourcePool.Namespace.Name for resourcePool in ctrl.resourcePools\\\"\\n                  ng-change=\\\"ctrl.onResourcePoolSelectionChange()\\\"\\n                  data-cy=\\\"k8sConfigCreate-namespaceDropdown\\\"\\n                ></select>\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.resourcePoolHasQuota && ctrl.resourceQuotaCapacityExceeded() && ctrl.formValues.ResourcePool\\\">\\n              <div class=\\\"col-sm-12 small text-warning vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                This namespace has exhausted its resource capacity and you will not be able to deploy the configuration. Contact your administrator to expand the capacity of the\\n                namespace.\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-if=\\\"!ctrl.formValues.ResourcePool\\\">\\n              <div class=\\\"col-sm-12 small text-warning vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                You do not have access to any namespace. Contact your administrator to get access to a namespace.\\n              </div>\\n            </div>\\n            <!-- !resource-pool -->\\n\\n            <!-- name -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"configuration_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n              <div class=\\\"col-sm-8 col-lg-9 mb-0\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  name=\\\"configuration_name\\\"\\n                  ng-model=\\\"ctrl.formValues.Name\\\"\\n                  ng-pattern=\\\"/^[a-z0-9]([a-z0-9-.]{0,61}[a-z0-9])?$/\\\"\\n                  ng-change=\\\"ctrl.onChangeName()\\\"\\n                  placeholder=\\\"my-configmap\\\"\\n                  auto-focus\\n                  required\\n                  data-cy=\\\"k8sConfigCreate-nameInput\\\"\\n                />\\n                <div ng-show=\\\"kubernetesConfigurationCreationForm.configuration_name.$invalid || ctrl.state.alreadyExist\\\">\\n                  <div class=\\\"help-block small text-warning\\\">\\n                    <div ng-messages=\\\"kubernetesConfigurationCreationForm.configuration_name.$error\\\">\\n                      <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n                      <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\"\\n                        ><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class=\\\"vertical-center\\\"></pr-icon> This field must consist of lower case alphanumeric characters, '-' or\\n                        '.', and contain at most 63 characters, and must start and end with an alphanumeric character.</p\\n                      >\\n                    </div>\\n                    <p ng-if=\\\"ctrl.state.alreadyExist\\\" class=\\\"vertical-center\\\"\\n                      ><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> A configuration with the same name already exists inside the selected namespace.</p\\n                    >\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !name -->\\n\\n            <div class=\\\"col-sm-12 !p-0\\\">\\n              <annotations-be-teaser></annotations-be-teaser>\\n            </div>\\n\\n            <div ng-if=\\\"ctrl.formValues.ResourcePool\\\">\\n              <kubernetes-configuration-data\\n                ng-if=\\\"ctrl.formValues\\\"\\n                form-values=\\\"ctrl.formValues\\\"\\n                is-docker-config=\\\"ctrl.state.isDockerConfig\\\"\\n                is-valid=\\\"ctrl.state.isDataValid\\\"\\n                on-change-validation=\\\"ctrl.isFormValid()\\\"\\n                is-creation=\\\"true\\\"\\n                type=\\\"'configmap'\\\"\\n                is-editor-dirty=\\\"ctrl.state.isEditorDirty\\\"\\n              ></kubernetes-configuration-data>\\n            </div>\\n\\n            <!-- summary -->\\n            <kubernetes-summary-view\\n              ng-if=\\\"!(!kubernetesConfigurationCreationForm.$valid || !ctrl.isFormValid() || ctrl.state.actionInProgress)\\\"\\n              form-values=\\\"ctrl.formValues\\\"\\n            ></kubernetes-summary-view>\\n\\n            <!-- actions -->\\n            <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px\\\"> Actions </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                  ng-disabled=\\\"!kubernetesConfigurationCreationForm.$valid || !ctrl.isFormValid() || ctrl.state.actionInProgress || !ctrl.formValues.ResourcePool\\\"\\n                  ng-click=\\\"ctrl.createConfiguration()\\\"\\n                  button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                  data-cy=\\\"k8sConfigCreate-CreateConfigButton\\\"\\n                >\\n                  <span ng-hide=\\\"ctrl.state.actionInProgress\\\">Create {{ ctrl.formValues.Kind | kubernetesConfigurationKindText }}</span>\\n                  <span ng-show=\\\"ctrl.state.actionInProgress\\\">Creation in progress...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/configurations/configmap/create/createConfigMap.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'ConfigMap details'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.configuration.Namespace,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{ id: ctrl.configuration.Namespace }\\n    },\\n    { label:'ConfigMaps and Secrets', link:'kubernetes.configurations', linkParams:{ tab: 'configmaps' } },\\n    ctrl.configuration.Name,\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n            <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(0)\\\" data-cy=\\\"k8sConfigDetail-configTab\\\">\\n              <uib-tab-heading>\\n                <pr-icon icon=\\\"'file-code'\\\"></pr-icon>\\n                ConfigMap\\n              </uib-tab-heading>\\n              <div style=\\\"padding: 20px\\\">\\n                <table class=\\\"table\\\" data-cy=\\\"k8sConfigDetail-configTable\\\">\\n                  <tbody>\\n                    <tr>\\n                      <td class=\\\"w-[40%] !border-none !pl-0\\\">Name</td>\\n                      <td class=\\\"!border-none\\\">\\n                        {{ ctrl.configuration.Name }}\\n                      </td>\\n                    </tr>\\n                    <tr>\\n                      <td class=\\\"!pl-0\\\">Namespace</td>\\n                      <td>\\n                        <a ui-sref=\\\"kubernetes.resourcePools.resourcePool({ id: ctrl.configuration.Namespace })\\\">{{ ctrl.configuration.Namespace }}</a>\\n                        <span style=\\\"margin-left: 5px\\\" class=\\\"label label-info image-tag\\\" ng-if=\\\"ctrl.isSystemNamespace()\\\">system</span>\\n                      </td>\\n                    </tr>\\n                  </tbody>\\n                </table>\\n              </div>\\n            </uib-tab>\\n            <uib-tab index=\\\"1\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(1)\\\" data-cy=\\\"k8sConfigDetail-eventsTab\\\">\\n              <uib-tab-heading>\\n                <pr-icon icon=\\\"'history'\\\"></pr-icon>\\n                Events\\n                <div ng-if=\\\"ctrl.hasEventWarnings()\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  {{ ctrl.state.eventWarningCount }} warning(s)\\n                </div>\\n              </uib-tab-heading>\\n              <kubernetes-events-datatable\\n                title-text=\\\"Events\\\"\\n                title-icon=\\\"history\\\"\\n                dataset=\\\"ctrl.events\\\"\\n                table-key=\\\"kubernetes.configuration.events\\\"\\n                order-by=\\\"Date\\\"\\n                reverse-order=\\\"true\\\"\\n                loading=\\\"ctrl.state.eventsLoading\\\"\\n                refresh-callback=\\\"ctrl.getEvents\\\"\\n              >\\n              </kubernetes-events-datatable>\\n            </uib-tab>\\n            <uib-tab index=\\\"2\\\" ng-if=\\\"ctrl.configuration.Yaml\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.showEditor()\\\" data-cy=\\\"k8sConfigDetail-yamlTab\\\">\\n              <uib-tab-heading>\\n                <pr-icon icon=\\\"'code'\\\"></pr-icon>\\n                YAML\\n              </uib-tab-heading>\\n              <div class=\\\"px-5 !pt-5\\\" ng-if=\\\"ctrl.state.showEditorTab\\\">\\n                <kube-yaml-inspector identifier=\\\"'configuration-yaml'\\\" data=\\\"ctrl.configuration.Yaml\\\" hide-message=\\\"true\\\" />\\n              </div>\\n            </uib-tab>\\n          </uib-tabset>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <form ng-if=\\\"!ctrl.isSystemConfig()\\\" class=\\\"form-horizontal\\\" name=\\\"kubernetesConfigurationCreationForm\\\" autocomplete=\\\"off\\\">\\n            <div class=\\\"col-sm-12 !p-0\\\">\\n              <annotations-be-teaser></annotations-be-teaser>\\n            </div>\\n\\n            <kubernetes-configuration-data\\n              ng-if=\\\"ctrl.formValues\\\"\\n              form-values=\\\"ctrl.formValues\\\"\\n              is-docker-config=\\\"false\\\"\\n              is-valid=\\\"ctrl.state.isDataValid\\\"\\n              on-change-validation=\\\"ctrl.isFormValid()\\\"\\n              is-creation=\\\"false\\\"\\n              type=\\\"'configmap'\\\"\\n              is-editor-dirty=\\\"ctrl.state.isEditorDirty\\\"\\n            ></kubernetes-configuration-data>\\n\\n            <!-- summary -->\\n            <kubernetes-summary-view\\n              ng-if=\\\"!(!ctrl.isFormValid() || !kubernetesConfigurationCreationForm.$valid || ctrl.state.actionInProgress)\\\"\\n              form-values=\\\"ctrl.formValues\\\"\\n            ></kubernetes-summary-view>\\n\\n            <!-- actions -->\\n            <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px\\\"> Actions </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                  ng-disabled=\\\"!ctrl.isFormValid() || !kubernetesConfigurationCreationForm.$valid || ctrl.state.actionInProgress\\\"\\n                  ng-click=\\\"ctrl.updateConfiguration()\\\"\\n                  button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                  data-cy=\\\"k8sConfigDetail-updateConfig\\\"\\n                >\\n                  <span ng-hide=\\\"ctrl.state.actionInProgress\\\">Update {{ ctrl.configuration.Kind | kubernetesConfigurationKindText }}</span>\\n                  <span ng-show=\\\"ctrl.state.actionInProgress\\\">Update in progress...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n          <div ng-if=\\\"ctrl.isSystemConfig()\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px\\\"> Data </div>\\n            <table class=\\\"table\\\">\\n              <tbody>\\n                <tr class=\\\"text-muted\\\">\\n                  <td style=\\\"width: 10%; border-top: none\\\">Key</td>\\n                  <td style=\\\"width: 90%; border-top: none\\\">Value</td>\\n                </tr>\\n\\n                <tr ng-repeat=\\\"item in ctrl.formValues.Data track by $index\\\">\\n                  <td>{{ item.Key }}</td>\\n                  <td>\\n                    <div style=\\\"white-space: pre-wrap\\\">{{ item.Value }}</div>\\n                    <div style=\\\"margin-top: 2px\\\">\\n                      <span class=\\\"btn btn-primary btn-xs\\\" ng-click=\\\"ctrl.copyConfigurationValue($index)\\\"> <pr-icon icon=\\\"'copy'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>Copy </span>\\n                      <span id=\\\"copyValueNotification_{{ $index }}\\\" style=\\\"display: none; color: #23ae89; margin-left: 5px\\\" class=\\\"small\\\">\\n                        <pr-icon icon=\\\"'check'\\\"></pr-icon> copied\\n                      </span>\\n                    </div>\\n                  </td>\\n                </tr>\\n              </tbody>\\n            </table>\\n          </div>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.configuration.Used\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <kubernetes-integrated-applications-datatable\\n        dataset=\\\"ctrl.configuration.Applications\\\"\\n        table-key=\\\"kubernetes.configurations.applications\\\"\\n        order-by=\\\"Name\\\"\\n        refresh-callback=\\\"ctrl.getApplications\\\"\\n        title-text=\\\"Applications using this ConfigMap\\\"\\n        title-icon=\\\"svg-laptopcode\\\"\\n      >\\n      </kubernetes-integrated-applications-datatable>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/configurations/configmap/edit/configMap.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Create Secret'\\\"\\n  breadcrumbs=\\\"[{ label:'ConfigMaps and Secrets', link:'kubernetes.configurations', linkParams:{ tab: 'secrets' } }, 'Create a Secret']\\\"\\n  reload=\\\"true\\\"\\n></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-xs-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal\\\" name=\\\"kubernetesConfigurationCreationForm\\\" autocomplete=\\\"off\\\">\\n            <!-- resource-pool -->\\n            <div class=\\\"form-group\\\" ng-if=\\\"ctrl.formValues.ResourcePool\\\">\\n              <label for=\\\"resource-pool-selector\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Namespace</label>\\n              <div class=\\\"col-sm-8 col-lg-9\\\">\\n                <select\\n                  class=\\\"form-control\\\"\\n                  id=\\\"resource-pool-selector\\\"\\n                  ng-model=\\\"ctrl.formValues.ResourcePool\\\"\\n                  ng-options=\\\"resourcePool.Namespace.Name for resourcePool in ctrl.resourcePools\\\"\\n                  ng-change=\\\"ctrl.onResourcePoolSelectionChange()\\\"\\n                  data-cy=\\\"k8sConfigCreate-namespaceDropdown\\\"\\n                ></select>\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.resourcePoolHasQuota && ctrl.resourceQuotaCapacityExceeded() && ctrl.formValues.ResourcePool\\\">\\n              <div class=\\\"col-sm-12 small text-warning vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                This namespace has exhausted its resource capacity and you will not be able to deploy the configuration. Contact your administrator to expand the capacity of the\\n                namespace.\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-if=\\\"!ctrl.formValues.ResourcePool\\\">\\n              <div class=\\\"col-sm-12 small text-warning vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                You do not have access to any namespace. Contact your administrator to get access to a namespace.\\n              </div>\\n            </div>\\n            <!-- !resource-pool -->\\n\\n            <!-- name -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"configuration_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n              <div class=\\\"col-sm-8 col-lg-9 mb-0\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  id=\\\"configuration_name\\\"\\n                  name=\\\"configuration_name\\\"\\n                  ng-model=\\\"ctrl.formValues.Name\\\"\\n                  ng-pattern=\\\"/^[a-z0-9]([a-z0-9-.]{0,61}[a-z0-9])?$/\\\"\\n                  ng-change=\\\"ctrl.onChangeName()\\\"\\n                  placeholder=\\\"my-secret\\\"\\n                  auto-focus\\n                  required\\n                  data-cy=\\\"k8sConfigCreate-nameInput\\\"\\n                />\\n                <div ng-show=\\\"kubernetesConfigurationCreationForm.configuration_name.$invalid || ctrl.state.alreadyExist\\\">\\n                  <div class=\\\"help-block small text-warning\\\">\\n                    <div ng-messages=\\\"kubernetesConfigurationCreationForm.configuration_name.$error\\\">\\n                      <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n                      <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\"\\n                        ><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class=\\\"vertical-center\\\"></pr-icon> This field must consist of lower case alphanumeric characters, '-' or\\n                        '.', and contain at most 63 characters, and must start and end with an alphanumeric character.</p\\n                      >\\n                    </div>\\n                    <p ng-if=\\\"ctrl.state.alreadyExist\\\" class=\\\"vertical-center\\\"\\n                      ><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> A configuration with the same name already exists inside the selected namespace.</p\\n                    >\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !name -->\\n\\n            <div class=\\\"col-sm-12 !p-0\\\">\\n              <annotations-be-teaser></annotations-be-teaser>\\n            </div>\\n\\n            <div ng-if=\\\"ctrl.formValues.ResourcePool\\\">\\n              <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12 small text-muted vertical-center\\\">\\n                  <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                  <span>\\n                    More information about types of secret can be found in the official\\n                    <a class=\\\"hyperlink\\\" href=\\\"https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\\\" target=\\\"_blank\\\">Kubernetes documentation</a>.\\n                  </span>\\n                </div>\\n              </div>\\n\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"configuration_data_type\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Type</label>\\n                <div class=\\\"col-sm-8 col-lg-9\\\">\\n                  <select\\n                    class=\\\"form-control\\\"\\n                    id=\\\"configuration_data_type\\\"\\n                    ng-model=\\\"ctrl.formValues.Type\\\"\\n                    ng-options=\\\"value.value as value.name for (name, value) in ctrl.KubernetesSecretTypeOptions\\\"\\n                    ng-change=\\\"ctrl.onSecretTypeChange()\\\"\\n                  ></select>\\n\\n                  <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n                </div>\\n                <div ng-if=\\\"ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value\\\" class=\\\"col-sm-12 small text-warning vertical-center pt-5\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  <span\\n                    >You should only create a service account token Secret object if you can't use the TokenRequest API to obtain a token, and the security exposure of persisting a\\n                    non-expiring token credential in a readable API object is acceptable to you. <br />See\\n                    <a href=\\\"https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets\\\" target=\\\"_blank\\\">service account token secrets</a> in the\\n                    kubernetes documentation.</span\\n                  >\\n                </div>\\n                <div ng-if=\\\"ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.DOCKERCFG.value\\\" class=\\\"col-sm-12 small text-muted vertical-center pt-5\\\">\\n                  <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                  <span>Ensure the Secret data field contains a <code>.dockercfg</code> key whose value is content of a legacy <code>~/.dockercfg</code> file.</span>\\n                </div>\\n                <div ng-if=\\\"ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.DOCKERCONFIGJSON.value\\\" class=\\\"col-sm-12 small text-muted vertical-center pt-5\\\">\\n                  <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                  <span>Ensure the Secret data field contains a <code>.dockerconfigjson</code> key whose value is content of a <code>~/.docker/config.json</code> file.</span>\\n                </div>\\n                <div ng-if=\\\"ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.TLS.value\\\" class=\\\"col-sm-12 small text-muted vertical-center pt-5\\\">\\n                  <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                  <span>Ensure the Secret data field contains a <code>tls.key</code> key and a <code>tls.crt</code> key.</span>\\n                </div>\\n                <div ng-if=\\\"ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.BOOTSTRAPTOKEN.value\\\" class=\\\"col-sm-12 small text-muted vertical-center pt-5\\\">\\n                  <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                  <span\\n                    >Ensure the Secret data field contains a <code>token-id</code> key and a <code>token-secret</code> key. See\\n                    <a href=\\\"https://kubernetes.io/docs/concepts/configuration/secret/#bootstrap-token-secrets\\\" target=\\\"_blank\\\">bootstrap token secrets</a> in the kubernetes\\n                    documentation for optional keys.</span\\n                  >\\n                </div>\\n              </div>\\n              <div class=\\\"form-group\\\" ng-if=\\\"ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.CUSTOM.value\\\">\\n                <label for=\\\"configuration_data_customtype\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Custom Type</label>\\n                <div class=\\\"col-sm-8 col-lg-9\\\">\\n                  <input\\n                    type=\\\"text\\\"\\n                    name=\\\"custom_type\\\"\\n                    class=\\\"form-control\\\"\\n                    id=\\\"configuration_data_customtype\\\"\\n                    ng-model=\\\"ctrl.formValues.customType\\\"\\n                    ng-pattern=\\\"/^[a-z0-9]([a-z0-9-.]{0,61}[a-z0-9])?$/\\\"\\n                    required\\n                  />\\n                  <div ng-show=\\\"kubernetesConfigurationCreationForm.custom_type.$invalid\\\">\\n                    <div class=\\\"help-block small text-warning\\\">\\n                      <div ng-messages=\\\"kubernetesConfigurationCreationForm.custom_type.$error\\\">\\n                        <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n                        <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\"\\n                          ><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class=\\\"vertical-center\\\"></pr-icon> This field must consist of lower case alphanumeric characters, '-'\\n                          or '.', and contain at most 63 characters, and must start and end with an alphanumeric character.</p\\n                        >\\n                      </div>\\n                    </div>\\n                  </div>\\n                </div>\\n              </div>\\n              <div class=\\\"form-group\\\" ng-if=\\\"ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value\\\">\\n                <label for=\\\"service_account\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Service Account</label>\\n                <div class=\\\"col-sm-8 col-lg-9\\\">\\n                  <select\\n                    class=\\\"form-control\\\"\\n                    id=\\\"service_account\\\"\\n                    ng-selected=\\\"$first\\\"\\n                    ng-model=\\\"ctrl.formValues.ServiceAccountName\\\"\\n                    ng-options=\\\"value.metadata.name as value.metadata.name for (name, value) in ctrl.availableServiceAccounts\\\"\\n                    data-cy=\\\"k8sConfigCreate-serviceAccountDropdown\\\"\\n                    ng-change=\\\"ctrl.onChangeServiceAccount()\\\"\\n                    required\\n                  ></select>\\n                  <div class=\\\"help-block small text-warning\\\" ng-messages=\\\"kubernetesConfigurationCreationForm.service_account.$error\\\">\\n                    <p class=\\\"vertical-center\\\" ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>This field is required.</p>\\n                  </div>\\n                </div>\\n              </div>\\n\\n              <kubernetes-configuration-data\\n                ng-if=\\\"ctrl.formValues\\\"\\n                form-values=\\\"ctrl.formValues\\\"\\n                is-docker-config=\\\"ctrl.state.isDockerConfig\\\"\\n                is-valid=\\\"ctrl.state.isDataValid\\\"\\n                on-change-validation=\\\"ctrl.isFormValid()\\\"\\n                is-creation=\\\"true\\\"\\n                type=\\\"'secret'\\\"\\n                is-editor-dirty=\\\"ctrl.state.isEditorDirty\\\"\\n              ></kubernetes-configuration-data>\\n\\n              <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.secretWarningMessage\\\">\\n                <div class=\\\"col-sm-12 small text-warning vertical-center pt-5\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  <span>{{ ctrl.state.secretWarningMessage }}</span>\\n                </div>\\n              </div>\\n            </div>\\n\\n            <!-- summary -->\\n            <kubernetes-summary-view\\n              ng-if=\\\"!(!kubernetesConfigurationCreationForm.$valid || !ctrl.isFormValid() || ctrl.state.actionInProgress)\\\"\\n              form-values=\\\"ctrl.formValues\\\"\\n            ></kubernetes-summary-view>\\n\\n            <!-- actions -->\\n            <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px\\\"> Actions </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                  ng-disabled=\\\"!kubernetesConfigurationCreationForm.$valid || !ctrl.isFormValid() || ctrl.state.actionInProgress || !ctrl.formValues.ResourcePool\\\"\\n                  ng-click=\\\"ctrl.createConfiguration()\\\"\\n                  button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                  data-cy=\\\"k8sConfigCreate-CreateConfigButton\\\"\\n                >\\n                  <span ng-hide=\\\"ctrl.state.actionInProgress\\\">Create {{ ctrl.formValues.Kind | kubernetesConfigurationKindText }}</span>\\n                  <span ng-show=\\\"ctrl.state.actionInProgress\\\">Creation in progress...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/configurations/secret/create/createSecret.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Secret details'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.configuration.Namespace,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{ id: ctrl.configuration.Namespace }\\n    },\\n    { label:'ConfigMaps and Secrets', link:'kubernetes.configurations', linkParams:{ tab: 'secrets' } },\\n    ctrl.configuration.Name,\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n            <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(0)\\\" data-cy=\\\"k8sConfigDetail-configTab\\\">\\n              <uib-tab-heading>\\n                <pr-icon icon=\\\"'lock'\\\"></pr-icon>\\n                Secret\\n              </uib-tab-heading>\\n              <div style=\\\"padding: 20px\\\">\\n                <table class=\\\"table\\\" data-cy=\\\"k8sConfigDetail-configTable\\\">\\n                  <tbody>\\n                    <tr>\\n                      <td class=\\\"w-[40%] !border-none !pl-0\\\">Name</td>\\n                      <td class=\\\"!border-none\\\">\\n                        {{ ctrl.configuration.Name }}\\n                        <span style=\\\"margin-left: 5px\\\" class=\\\"label label-info image-tag\\\" ng-if=\\\"ctrl.configuration.IsRegistrySecret\\\">system</span>\\n                      </td>\\n                    </tr>\\n                    <tr>\\n                      <td class=\\\"!pl-0\\\">Namespace</td>\\n                      <td>\\n                        <a ui-sref=\\\"kubernetes.resourcePools.resourcePool({ id: ctrl.configuration.Namespace })\\\">{{ ctrl.configuration.Namespace }}</a>\\n                        <span style=\\\"margin-left: 5px\\\" class=\\\"label label-info image-tag\\\" ng-if=\\\"ctrl.isSystemNamespace()\\\">system</span>\\n                      </td>\\n                    </tr>\\n                    <tr ng-if=\\\"ctrl.secretTypeName\\\">\\n                      <td class=\\\"!pl-0\\\">Secret Type</td>\\n                      <td>\\n                        {{ ctrl.secretTypeName }}\\n                      </td>\\n                    </tr>\\n                  </tbody>\\n                </table>\\n              </div>\\n            </uib-tab>\\n            <uib-tab index=\\\"1\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(1)\\\" data-cy=\\\"k8sConfigDetail-eventsTab\\\">\\n              <uib-tab-heading>\\n                <pr-icon icon=\\\"'history'\\\"></pr-icon>\\n                Events\\n                <div ng-if=\\\"ctrl.hasEventWarnings()\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  {{ ctrl.state.eventWarningCount }} warning(s)\\n                </div>\\n              </uib-tab-heading>\\n              <kubernetes-events-datatable\\n                title-text=\\\"Events\\\"\\n                title-icon=\\\"history\\\"\\n                dataset=\\\"ctrl.events\\\"\\n                table-key=\\\"kubernetes.configuration.events\\\"\\n                order-by=\\\"Date\\\"\\n                reverse-order=\\\"true\\\"\\n                loading=\\\"ctrl.state.eventsLoading\\\"\\n                refresh-callback=\\\"ctrl.getEvents\\\"\\n              >\\n              </kubernetes-events-datatable>\\n            </uib-tab>\\n            <uib-tab index=\\\"2\\\" ng-if=\\\"ctrl.configuration.Yaml\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.showEditor()\\\" data-cy=\\\"k8sConfigDetail-yamlTab\\\">\\n              <uib-tab-heading>\\n                <pr-icon icon=\\\"'code'\\\"></pr-icon>\\n                YAML\\n              </uib-tab-heading>\\n              <div class=\\\"px-5 !pt-5\\\" ng-if=\\\"ctrl.state.showEditorTab\\\">\\n                <kube-yaml-inspector identifier=\\\"'secret-yaml'\\\" data=\\\"ctrl.configuration.Yaml\\\" hide-message=\\\"true\\\" />\\n              </div>\\n            </uib-tab>\\n          </uib-tabset>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <form ng-if=\\\"!ctrl.isSystemConfig()\\\" class=\\\"form-horizontal\\\" name=\\\"kubernetesConfigurationCreationForm\\\" autocomplete=\\\"off\\\">\\n            <div class=\\\"col-sm-12 !p-0\\\">\\n              <annotations-be-teaser></annotations-be-teaser>\\n            </div>\\n\\n            <kubernetes-configuration-data\\n              ng-if=\\\"ctrl.formValues\\\"\\n              form-values=\\\"ctrl.formValues\\\"\\n              is-docker-config=\\\"ctrl.state.isDockerConfig\\\"\\n              is-valid=\\\"ctrl.state.isDataValid\\\"\\n              on-change-validation=\\\"ctrl.isFormValid()\\\"\\n              is-creation=\\\"false\\\"\\n              type=\\\"'secret'\\\"\\n              is-editor-dirty=\\\"ctrl.state.isEditorDirty\\\"\\n            ></kubernetes-configuration-data>\\n\\n            <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.secretWarningMessage\\\">\\n              <div class=\\\"col-sm-12 small text-warning vertical-center pt-5\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                <span>{{ ctrl.state.secretWarningMessage }}</span>\\n              </div>\\n            </div>\\n\\n            <!-- summary -->\\n            <kubernetes-summary-view\\n              ng-if=\\\"!(!ctrl.isFormValid() || !kubernetesConfigurationCreationForm.$valid || ctrl.state.actionInProgress)\\\"\\n              form-values=\\\"ctrl.formValues\\\"\\n            ></kubernetes-summary-view>\\n\\n            <!-- actions -->\\n            <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px\\\"> Actions </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                  ng-disabled=\\\"!ctrl.isFormValid() || !kubernetesConfigurationCreationForm.$valid || ctrl.state.actionInProgress\\\"\\n                  ng-click=\\\"ctrl.updateConfiguration()\\\"\\n                  button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                  data-cy=\\\"k8sConfigDetail-updateConfig\\\"\\n                >\\n                  <span ng-hide=\\\"ctrl.state.actionInProgress\\\">Update {{ ctrl.configuration.Kind | kubernetesConfigurationKindText }}</span>\\n                  <span ng-show=\\\"ctrl.state.actionInProgress\\\">Update in progress...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n          <div ng-if=\\\"ctrl.isSystemConfig()\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px\\\"> Data </div>\\n            <table class=\\\"table\\\">\\n              <tbody>\\n                <tr class=\\\"text-muted\\\">\\n                  <td style=\\\"width: 10%; border-top: none\\\">Key</td>\\n                  <td style=\\\"width: 90%; border-top: none\\\">Value</td>\\n                </tr>\\n\\n                <tr ng-repeat=\\\"item in ctrl.formValues.Data track by $index\\\">\\n                  <td>{{ item.Key }}</td>\\n                  <td>\\n                    <div style=\\\"white-space: pre-wrap\\\">{{ item.Value }}</div>\\n                    <div style=\\\"margin-top: 2px\\\">\\n                      <span class=\\\"btn btn-primary btn-xs\\\" ng-click=\\\"ctrl.copyConfigurationValue($index)\\\"> <pr-icon icon=\\\"'copy'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>Copy </span>\\n                      <span id=\\\"copyValueNotification_{{ $index }}\\\" style=\\\"display: none; color: #23ae89; margin-left: 5px\\\" class=\\\"small\\\">\\n                        <pr-icon icon=\\\"'check'\\\"></pr-icon> copied\\n                      </span>\\n                    </div>\\n                  </td>\\n                </tr>\\n              </tbody>\\n            </table>\\n          </div>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.configuration.Used\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <kubernetes-integrated-applications-datatable\\n        dataset=\\\"ctrl.configuration.Applications\\\"\\n        table-key=\\\"kubernetes.configurations.applications\\\"\\n        order-by=\\\"Name\\\"\\n        refresh-callback=\\\"ctrl.getApplications\\\"\\n        title-text=\\\"Applications using this secret\\\"\\n        title-icon=\\\"svg-laptopcode\\\"\\n      >\\n      </kubernetes-integrated-applications-datatable>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/configurations/secret/edit/secret.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"ctrl.state.viewReady\\\" title=\\\"'Create from manifest'\\\" breadcrumbs=\\\"['Deploy Kubernetes resources']\\\" reload=\\\"true\\\"></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <kubernetes-feedback-panel></kubernetes-feedback-panel>\\n\\n  <div class=\\\"row kubernetes-deploy\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n            <uib-tab index=\\\"0\\\">\\n              <uib-tab-heading> <pr-icon icon=\\\"'code'\\\"></pr-icon> Deploy </uib-tab-heading>\\n              <form class=\\\"form-horizontal mt-6\\\" name=\\\"ctrl.deploymentForm\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Deploy from </div>\\n                <box-selector\\n                  slim=\\\"true\\\"\\n                  radio-name=\\\"'method'\\\"\\n                  value=\\\"ctrl.state.BuildMethod\\\"\\n                  options=\\\"ctrl.methodOptions\\\"\\n                  data-cy=\\\"k8sAppDeploy-buildSelector\\\"\\n                  on-change=\\\"(ctrl.onChangeMethod)\\\"\\n                ></box-selector>\\n\\n                <!-- namespace -->\\n                <div class=\\\"col-sm-12 form-section-title !mt-4\\\"> Deploy to </div>\\n                <div class=\\\"form-group\\\" ng-if=\\\"ctrl.formValues.Namespace && ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM\\\">\\n                  <label for=\\\"toggle_logo\\\" class=\\\"col-lg-2 col-sm-3 control-label text-left\\\">\\n                    Use namespace(s) specified from manifest\\n                    <portainer-tooltip message=\\\"'If you have defined namespaces in your deployment file turning this on will enforce the use of those only in the deployment'\\\">\\n                    </portainer-tooltip>\\n                  </label>\\n                  <div class=\\\"col-sm-8 vertical-center pt-3\\\">\\n                    <label class=\\\"switch\\\">\\n                      <input type=\\\"checkbox\\\" name=\\\"toggle_logo\\\" ng-model=\\\"ctrl.formValues.namespace_toggle\\\" />\\n                      <span class=\\\"slider round\\\"></span>\\n                    </label>\\n                  </div>\\n                </div>\\n\\n                <div class=\\\"form-group\\\" ng-if=\\\"ctrl.formValues.Namespace\\\">\\n                  <label for=\\\"target_node\\\" class=\\\"col-lg-2 col-sm-3 control-label text-left\\\">Namespace</label>\\n                  <div class=\\\"col-sm-8\\\">\\n                    <select\\n                      ng-if=\\\"!ctrl.formValues.namespace_toggle || ctrl.state.BuildMethod === ctrl.BuildMethods.HELM\\\"\\n                      ng-disabled=\\\"ctrl.formValues.namespace_toggle && ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM\\\"\\n                      class=\\\"form-control\\\"\\n                      ng-model=\\\"ctrl.formValues.Namespace\\\"\\n                      ng-change=\\\"ctrl.onChangeNamespace()\\\"\\n                      ng-options=\\\"namespace.Name as namespace.Name for namespace in ctrl.namespaces\\\"\\n                    ></select>\\n                    <span ng-if=\\\"ctrl.formValues.namespace_toggle && ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM\\\" class=\\\"small text-muted pt-[7px]\\\"\\n                      >Namespaces specified in the manifest will be used</span\\n                    >\\n                  </div>\\n                </div>\\n\\n                <div class=\\\"form-group\\\" ng-if=\\\"!ctrl.formValues.Namespace\\\">\\n                  <div class=\\\"col-sm-12 small text-warning\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    You do not have access to any namespace. Contact your administrator to get access to a namespace.\\n                  </div>\\n                </div>\\n\\n                <div class=\\\"form-group\\\">\\n                  <label for=\\\"name\\\" class=\\\"col-lg-2 col-sm-3 control-label text-left\\\" ng-class=\\\"{ required: ctrl.state.BuildMethod === ctrl.BuildMethods.HELM }\\\">Name</label>\\n                  <div class=\\\"col-sm-8 small text-muted pt-[7px]\\\" ng-if=\\\"ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM\\\">\\n                    Resource names specified in the manifest will be used\\n                  </div>\\n                  <div class=\\\"col-sm-8\\\" ng-if=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.HELM\\\">\\n                    <input\\n                      type=\\\"text\\\"\\n                      class=\\\"form-control\\\"\\n                      ng-model=\\\"ctrl.formValues.Name\\\"\\n                      id=\\\"name\\\"\\n                      name=\\\"name\\\"\\n                      placeholder=\\\"e.g. my-app\\\"\\n                      required=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.HELM\\\"\\n                    />\\n                    <div class=\\\"small text-warning mt-2\\\">\\n                      <div ng-messages=\\\"ctrl.deploymentForm.name.$error\\\">\\n                        <p ng-message=\\\"required\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n                      </div>\\n                    </div>\\n                  </div>\\n                </div>\\n\\n                <div ng-if=\\\"!ctrl.deploymentOptions.hideStacksFunctionality && ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM\\\">\\n                  <div class=\\\"w-fit mb-4\\\">\\n                    <stack-name-label-insight></stack-name-label-insight>\\n                  </div>\\n                  <kube-stack-name\\n                    stack-name=\\\"ctrl.formValues.StackName\\\"\\n                    set-stack-name=\\\"(ctrl.setStackName)\\\"\\n                    stacks=\\\"ctrl.stacks\\\"\\n                    error=\\\"ctrl.state.stackNameError\\\"\\n                  ></kube-stack-name>\\n                </div>\\n                <!-- !namespace -->\\n\\n                <!-- repository -->\\n                <git-form\\n                  ng-if=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.GIT\\\"\\n                  value=\\\"ctrl.formValues\\\"\\n                  on-change=\\\"(ctrl.onChangeFormValues)\\\"\\n                  environment-type=\\\"KUBERNETES\\\"\\n                  is-force-pull-visible=\\\"false\\\"\\n                  is-additional-files-field-visible=\\\"true\\\"\\n                  is-auth-explanation-visible=\\\"true\\\"\\n                  deploy-method=\\\"{{ ctrl.state.DeployType === ctrl.ManifestDeployTypes.COMPOSE ? 'compose' : 'manifest' }}\\\"\\n                  base-webhook-url=\\\"{{ ctrl.state.baseWebhookUrl }}\\\"\\n                  webhook-id=\\\"{{ ctrl.state.webhookId }}\\\"\\n                  webhooks-docs=\\\"/user/kubernetes/applications/webhooks\\\"\\n                ></git-form>\\n                <!-- !repository -->\\n\\n                <div ng-show=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.CUSTOM_TEMPLATE\\\">\\n                  <div class=\\\"col-sm-12 form-section-title !mt-4\\\"> Custom template </div>\\n\\n                  <custom-template-selector\\n                    new-template-path=\\\"kubernetes.templates.custom.new\\\"\\n                    stack-type=\\\"3\\\"\\n                    on-change=\\\"(ctrl.onChangeTemplateId)\\\"\\n                    value=\\\"ctrl.state.templateId\\\"\\n                  ></custom-template-selector>\\n\\n                  <custom-templates-variables-field\\n                    ng-if=\\\"ctrl.isTemplateVariablesEnabled && ctrl.state.template\\\"\\n                    definitions=\\\"ctrl.state.template.Variables\\\"\\n                    value=\\\"ctrl.formValues.Variables\\\"\\n                    on-change=\\\"(ctrl.onChangeTemplateVariables)\\\"\\n                  ></custom-templates-variables-field>\\n                </div>\\n\\n                <span ng-if=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.CUSTOM_TEMPLATE && ctrl.state.templateId && ctrl.state.templateLoadFailed\\\">\\n                  <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"ctrl.currentUser.isAdmin || ctrl.currentUser.id === ctrl.state.template.CreatedByUserId\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please\\n                    <a ui-sref=\\\"kubernetes.templates.custom.edit({id: ctrl.state.templateId})\\\">click here</a> for configuration.</p\\n                  >\\n                  <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"!(ctrl.currentUser.isAdmin || ctrl.currentUser.id === ctrl.state.template.CreatedByUserId)\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please contact your administrator.</p\\n                  >\\n                </span>\\n\\n                <!-- editor -->\\n                <div class=\\\"mt-4\\\">\\n                  <web-editor-form\\n                    ng-if=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.WEB_EDITOR || (ctrl.state.BuildMethod === ctrl.BuildMethods.CUSTOM_TEMPLATE && ctrl.state.templateId)\\\"\\n                    identifier=\\\"kubernetes-deploy-editor\\\"\\n                    value=\\\"ctrl.formValues.EditorContent\\\"\\n                    on-change=\\\"(ctrl.onChangeFileContent)\\\"\\n                    ng-required=\\\"true\\\"\\n                    yml=\\\"true\\\"\\n                    placeholder=\\\"Define or paste the content of your manifest file here\\\"\\n                    read-only=\\\"ctrl.state.isEditorReadOnly\\\"\\n                  >\\n                    <editor-description>\\n                      <p class=\\\"vertical-center\\\">\\n                        <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                        This feature allows you to deploy any kind of Kubernetes resource in this environment (Deployment, Secret, ConfigMap...).\\n                      </p>\\n                      <p>\\n                        You can get more information about Kubernetes file format in the\\n                        <a href=\\\"https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/\\\" target=\\\"_blank\\\">official documentation</a>.\\n                      </p>\\n                    </editor-description>\\n                  </web-editor-form>\\n                </div>\\n                <!-- !editor -->\\n\\n                <!-- url -->\\n                <div ng-show=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.URL\\\">\\n                  <div class=\\\"col-sm-12 form-section-title\\\"> URL </div>\\n                  <div class=\\\"form-group\\\">\\n                    <span class=\\\"col-sm-12 text-muted small\\\"> Indicate the URL to the manifest. </span>\\n                  </div>\\n                  <div class=\\\"form-group\\\">\\n                    <label for=\\\"manifest_url\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">URL</label>\\n                    <div class=\\\"col-sm-8\\\">\\n                      <input\\n                        type=\\\"text\\\"\\n                        class=\\\"form-control\\\"\\n                        ng-model=\\\"ctrl.formValues.ManifestURL\\\"\\n                        id=\\\"manifest_url\\\"\\n                        placeholder=\\\"https://raw.githubusercontent.com/kubernetes/website/main/content/en/examples/controllers/nginx-deployment.yaml\\\"\\n                        data-cy=\\\"k8sAppDeploy-urlFileUrl\\\"\\n                      />\\n                    </div>\\n                  </div>\\n                </div>\\n                <!-- !url -->\\n\\n                <!-- Helm -->\\n                <div ng-show=\\\"ctrl.state.BuildMethod === ctrl.BuildMethods.HELM\\\">\\n                  <div class=\\\"col-sm-12 form-section-title\\\" ng-if=\\\"ctrl.state.selectedHelmChart\\\">Selected Helm chart</div>\\n                  <helm-templates-view\\n                    on-select-helm-chart=\\\"(ctrl.onSelectHelmChart)\\\"\\n                    endpoint=\\\"ctrl.endpoint\\\"\\n                    namespace=\\\"ctrl.formValues.Namespace\\\"\\n                    stack-name=\\\"ctrl.formValues.StackName\\\"\\n                    name=\\\"ctrl.formValues.Name\\\"\\n                  ></helm-templates-view>\\n                </div>\\n                <!-- !Helm -->\\n\\n                <!-- actions -->\\n                <div class=\\\"col-sm-12 form-section-title !mt-4\\\" ng-if=\\\"ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM\\\"> Actions </div>\\n                <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <button\\n                      type=\\\"button\\\"\\n                      class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                      ng-disabled=\\\"!ctrl.deploymentForm.$valid || ctrl.disableDeploy()\\\"\\n                      ng-click=\\\"ctrl.deploy()\\\"\\n                      button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                      data-cy=\\\"k8sAppDeploy-deployButton\\\"\\n                      analytics-on\\n                      analytics-category=\\\"kubernetes\\\"\\n                      analytics-event=\\\"kubernetes-application-advanced-deployment\\\"\\n                      analytics-properties=\\\"ctrl.buildAnalyticsProperties()\\\"\\n                    >\\n                      <span ng-hide=\\\"ctrl.state.actionInProgress\\\">Deploy</span>\\n                      <span ng-show=\\\"ctrl.state.actionInProgress\\\">Deployment in progress...</span>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- !actions -->\\n              </form>\\n            </uib-tab>\\n\\n            <uib-tab index=\\\"1\\\" disable=\\\"ctrl.state.tabLogsDisabled\\\">\\n              <uib-tab-heading> <pr-icon icon=\\\"'file-text'\\\"></pr-icon> Logs </uib-tab-heading>\\n              <form class=\\\"form-horizontal mt-3\\\">\\n                <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.activeTab === 1\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <code-editor identifier=\\\"kubernetes-deploy-logs\\\" yml=\\\"true\\\" read-only=\\\"true\\\" value=\\\"ctrl.errorLog\\\"></code-editor>\\n                  </div>\\n                </div>\\n              </form>\\n            </uib-tab>\\n          </uib-tabset>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/deploy/deploy.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Namespace access management'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.pool.Namespace.Name,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{id: ctrl.pool.Namespace.Name}\\n    },\\n     'Access management'\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.pool\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-header icon=\\\"layers\\\" title-text=\\\"Namespace\\\"></rd-widget-header>\\n        <rd-widget-body>\\n          <table class=\\\"table\\\">\\n            <tbody>\\n              <tr>\\n                <td class=\\\"!pl-0\\\">Name</td>\\n                <td>\\n                  {{ ctrl.pool.Namespace.Name }}\\n                </td>\\n              </tr>\\n            </tbody>\\n          </table>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget ng-if=\\\"ctrl.availableUsersAndTeams\\\">\\n        <rd-widget-header icon=\\\"user-x\\\" title-text=\\\"Create access\\\"></rd-widget-header>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal\\\">\\n            <div class=\\\"form-group\\\">\\n              <div\\n                ng-if=\\\"!ctrl.isRBACEnabled\\\"\\n                class=\\\"small mx-[15px] mb-6 flex gap-1 rounded-lg border border-solid border-warning-5 bg-warning-2 p-4 text-warning-8 th-highcontrast:bg-yellow-11 th-highcontrast:text-white th-dark:bg-yellow-11 th-dark:text-white\\\"\\n              >\\n                <div class=\\\"mt-0.5\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" feather=\\\"true\\\" class-name=\\\"'text-warning-7 th-dark:text-white th-highcontrast:text-white'\\\"></pr-icon>\\n                </div>\\n                <div>\\n                  <p> Your cluster does not have Kubernetes role-based access control (RBAC) enabled. </p>\\n                  <p> This means you can't use Portainer RBAC functionality to regulate access to environment resources based on user roles. </p>\\n                  <p class=\\\"mb-0\\\">\\n                    To enable RBAC, start the&nbsp;<a\\n                      class=\\\"th-highcontrast:text-blue-4 th-dark:text-blue-7\\\"\\n                      href=\\\"https://kubernetes.io/docs/concepts/overview/components/#kube-apiserver\\\"\\n                      target=\\\"_blank\\\"\\n                      >API server</a\\n                    >&nbsp;with the&nbsp;<code class=\\\"bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black\\\">--authorization-mode</code>&nbsp;flag set to a\\n                    comma-separated list that includes&nbsp;<code class=\\\"bg-gray-4 th-highcontrast:bg-black th-dark:bg-black\\\">RBAC</code>, for example:&nbsp;\\n                    <code class=\\\"bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black\\\">kube-apiserver --authorization-mode=Example1,RBAC,Example2</code>.\\n                  </p>\\n                </div>\\n              </div>\\n              <span class=\\\"col-sm-12 small text-warning\\\">\\n                <p class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  Adding user access will require the affected user(s) to logout and login for the changes to be taken into account.\\n                </p>\\n              </span>\\n            </div>\\n            <div class=\\\"form-group\\\">\\n              <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" for=\\\"users-selector\\\"> Select user(s) and/or team(s) </label>\\n              <div class=\\\"col-sm-9 col-lg-4\\\">\\n                <span class=\\\"small text-muted\\\" ng-if=\\\"ctrl.availableUsersAndTeams.length === 0\\\">\\n                  No user nor team access has been set on the environment. Head over to the\\n                  <a ui-sref=\\\"portainer.endpoints\\\">Environments view</a> to manage them.\\n                </span>\\n                <namespace-access-users-selector\\n                  ng-if=\\\"ctrl.availableUsersAndTeams.length > 0\\\"\\n                  input-id=\\\"users-selector\\\"\\n                  value=\\\"ctrl.formValues.multiselectOutput\\\"\\n                  options=\\\"ctrl.availableUsersAndTeams\\\"\\n                  on-change=\\\"(ctrl.onUsersAndTeamsChange)\\\"\\n                ></namespace-access-users-selector>\\n              </div>\\n            </div>\\n\\n            <!-- actions -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"submit\\\"\\n                  class=\\\"btn btn-primary btn-sm vertical-center !ml-0\\\"\\n                  ng-disabled=\\\"ctrl.formValues.multiselectOutput.length === 0 || ctrl.actionInProgress\\\"\\n                  ng-click=\\\"ctrl.authorizeAccess()\\\"\\n                  button-spinner=\\\"ctrl.actionInProgress\\\"\\n                >\\n                  <span class=\\\"vertical-center\\\" ng-hide=\\\"ctrl.state.actionInProgress\\\"><pr-icon icon=\\\"'plus'\\\" class=\\\"vertical-center\\\"></pr-icon> Create access</span>\\n                  <span ng-show=\\\"ctrl.state.actionInProgress\\\">Creating access...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <access-datatable\\n        ng-if=\\\"ctrl.authorizedUsersAndTeams\\\"\\n        title-text=\\\"Namespace access\\\"\\n        title-icon=\\\"user-x\\\"\\n        table-key=\\\"kubernetes_resourcepool_access\\\"\\n        order-by=\\\"Name\\\"\\n        dataset=\\\"ctrl.authorizedUsersAndTeams\\\"\\n        remove-action=\\\"ctrl.unauthorizeAccess\\\"\\n      >\\n      </access-datatable>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/resource-pools/access/resourcePoolAccess.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <por-switch-field\\n      data-cy=\\\"'k8sNamespaceCreate-enableQuotaToggle'\\\"\\n      label=\\\"'Enable quota'\\\"\\n      label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n      name=\\\"'k8s-resourcepool-storagequota'\\\"\\n      feature-id=\\\"$ctrl.featureId\\\"\\n      checked=\\\"$ctrl.value\\\"\\n      on-change=\\\"($ctrl.handleChange)\\\"\\n    ></por-switch-field>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class=\\\"searchIcon\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search for an ingress...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n        <div class=\\\"settings\\\">\\n          <span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n            <span uib-dropdown-toggle><pr-icon icon=\\\"'more-vertical'\\\"></pr-icon></span>\\n            <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n              <div class=\\\"tableMenu\\\">\\n                <div class=\\\"menuHeader\\\"> Table settings </div>\\n                <div class=\\\"menuContent\\\">\\n                  <div>\\n                    <div class=\\\"md-checkbox\\\">\\n                      <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                      <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                    </div>\\n                    <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                      <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                      <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                        <option value=\\\"10\\\">10s</option>\\n                        <option value=\\\"30\\\">30s</option>\\n                        <option value=\\\"60\\\">1min</option>\\n                        <option value=\\\"120\\\">2min</option>\\n                        <option value=\\\"300\\\">5min</option>\\n                      </select>\\n                      <span>\\n                        <pr-icon id=\\\"refreshRateChange\\\" style=\\\"display: none\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon>\\n                      </span>\\n                    </div>\\n                  </div>\\n                </div>\\n                <div>\\n                  <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\">Close</a>\\n                </div>\\n              </div>\\n            </div>\\n          </span>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th ng-if=\\\"$ctrl.hasExpandableItems()\\\" class=\\\"datatable-wide dropdown\\\">\\n                <div class=\\\"vertical-center cursor-pointer\\\" ng-click=\\\"$ctrl.expandAll()\\\">\\n                  <pr-icon ng-if=\\\"$ctrl.state.expandAll\\\" icon=\\\"'chevron-down'\\\"></pr-icon>\\n                  <pr-icon ng-if=\\\"!$ctrl.state.expandAll\\\" icon=\\\"'chevron-right'\\\"></pr-icon>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate-start=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit: $ctrl.tableKey))\\\"\\n              ng-class=\\\"{ active: item.Checked, 'datatable-highlighted': item.Highlighted }\\\"\\n              ng-click=\\\"$ctrl.expandItem(item, !item.Expanded)\\\"\\n              pagination-id=\\\"$ctrl.tableKey\\\"\\n            >\\n              <td ng-if=\\\"$ctrl.hasExpandableItems()\\\">\\n                <div ng-if=\\\"$ctrl.itemCanExpand(item)\\\" class=\\\"vertical-center\\\">\\n                  <pr-icon ng-if=\\\"item.Expanded\\\" icon=\\\"'chevron-down'\\\"></pr-icon>\\n                  <pr-icon ng-if=\\\"!item.Expanded\\\" icon=\\\"'chevron-right'\\\"></pr-icon>\\n                </div>\\n              </td>\\n              <td>{{ item.Name }}</td>\\n              <td>{{ item.size }}</td>\\n            </tr>\\n            <tr\\n              dir-paginate-end\\n              ng-show=\\\"item.Expanded\\\"\\n              ng-repeat=\\\"path in item.Paths\\\"\\n              ng-class=\\\"{ 'datatable-highlighted': item.Highlighted, 'datatable-unhighlighted': !item.Highlighted }\\\"\\n            >\\n              <td>\\n                <a style=\\\"margin-left: 15px\\\" ng-href=\\\"http://{{ path.Host ? path.Host : path.IP }}{{ path.Path }}\\\" target=\\\"_blank\\\">\\n                  {{ path.Host ? path.Host : path.IP }}{{ path.Path }}\\n                </a>\\n                <span ng-if=\\\"path.ApplicationName !== '-'\\\">\\n                  <pr-icon icon=\\\"'arrow-right'\\\" class-name=\\\"'m-0.5'\\\"></pr-icon>\\n                  <a ui-sref=\\\"kubernetes.applications.application({ name: path.ApplicationName, namespace: item.Namespace })\\\">{{ path.ApplicationName }}</a>\\n                </span>\\n                <span class=\\\"label label-warning image-tag label-margins\\\" ng-if=\\\"path.ApplicationName === '-'\\\">unused</span>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">No ingresses available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\" pagination-id=\\\"$ctrl.tableKey\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/template.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Namespace details'\\\"\\n  breadcrumbs=\\\"[{ label:'Namespaces', link:'kubernetes.resourcePools' }, ctrl.pool.Namespace.Name]\\\"\\n  reload=\\\"true\\\"\\n></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n            <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(0)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'layers'\\\"></pr-icon> Namespace </uib-tab-heading>\\n              <form class=\\\"form-horizontal\\\" autocomplete=\\\"off\\\" name=\\\"resourcePoolEditForm\\\" style=\\\"padding: 20px; margin-top: 10px\\\">\\n                <!-- name-input -->\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <table class=\\\"table\\\">\\n                      <tbody>\\n                        <tr>\\n                          <td>Name</td>\\n                          <td>\\n                            {{ ctrl.pool.Namespace.Name }}\\n                            <span class=\\\"label label-info image-tag label-margins\\\" ng-if=\\\"ctrl.isSystem\\\">system</span>\\n                          </td>\\n                        </tr>\\n                      </tbody>\\n                    </table>\\n                  </div>\\n                </div>\\n\\n                <div class=\\\"col-sm-12 !p-0\\\">\\n                  <annotations-be-teaser></annotations-be-teaser>\\n                </div>\\n\\n                <!-- !name-input -->\\n                <div ng-if=\\\"ctrl.isAdmin && ctrl.isEditable\\\" class=\\\"col-sm-12 form-section-title\\\">Resource quota</div>\\n                <!-- quotas-switch -->\\n                <div ng-if=\\\"ctrl.isAdmin && ctrl.isEditable\\\" class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12 mt-2\\\" ng-if=\\\"ctrl.state.resourceOverCommitEnabled\\\">\\n                    <div class=\\\"form-group\\\">\\n                      <div class=\\\"col-sm-3 col-lg-2\\\">\\n                        <label class=\\\"control-label text-left\\\"> Resource assignment </label>\\n                      </div>\\n                      <div class=\\\"col-sm-9 pt-2\\\">\\n                        <label class=\\\"switch\\\">\\n                          <input type=\\\"checkbox\\\" ng-model=\\\"ctrl.formValues.HasQuota\\\" />\\n                          <span class=\\\"slider round\\\"></span>\\n                        </label>\\n                      </div>\\n                    </div>\\n                  </div>\\n                </div>\\n                <div ng-if=\\\"ctrl.formValues.HasQuota\\\">\\n                  <kubernetes-resource-reservation\\n                    ng-if=\\\"ctrl.pool.Quota\\\"\\n                    description=\\\"Resource reservation represents the total amount of resource assigned to all the applications deployed inside this namespace.\\\"\\n                    cpu-reservation=\\\"ctrl.state.resourceReservation.CPU\\\"\\n                    memory-reservation=\\\"ctrl.state.resourceReservation.Memory\\\"\\n                    cpu-limit=\\\"ctrl.formValues.CpuLimit\\\"\\n                    memory-limit=\\\"ctrl.formValues.MemoryLimit\\\"\\n                    display-usage=\\\"ctrl.state.useServerMetrics\\\"\\n                    cpu-usage=\\\"ctrl.state.resourceUsage.CPU\\\"\\n                    memory-usage=\\\"ctrl.state.resourceUsage.Memory\\\"\\n                  >\\n                  </kubernetes-resource-reservation>\\n                </div>\\n                <!-- !quotas-switch -->\\n                <div ng-if=\\\"ctrl.formValues.HasQuota && ctrl.isAdmin && ctrl.isEditable\\\">\\n                  <div class=\\\"col-sm-12 form-section-title\\\"> Resource limits </div>\\n                  <div>\\n                    <div class=\\\"form-group\\\">\\n                      <span class=\\\"col-sm-12 small text-warning\\\" ng-switch on=\\\"ctrl.formValues.HasQuota && ctrl.isAdmin && ctrl.isEditable && !ctrl.isQuotaValid()\\\">\\n                        <p class=\\\"vertical-center mb-0\\\" ng-switch-when=\\\"true\\\"\\n                          ><pr-icon class=\\\"vertical-center\\\" icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> At least a single limit must be set for the quota to be valid.\\n                        </p>\\n                        <p class=\\\"vertical-center mb-0\\\" ng-switch-default></p>\\n                      </span>\\n                    </div>\\n                    <!-- memory-limit-input -->\\n                    <div class=\\\"form-group flex\\\">\\n                      <label for=\\\"memory-limit\\\" class=\\\"col-sm-3 col-lg-2 control-label vertical-center text-left\\\"> Memory limit (MB) </label>\\n                      <div class=\\\"col-sm-6\\\">\\n                        <por-slider\\n                          min=\\\"ctrl.ResourceQuotaDefaults.MemoryLimit\\\"\\n                          max=\\\"ctrl.state.sliderMaxMemory\\\"\\n                          step=\\\"128\\\"\\n                          ng-if=\\\"ctrl.state.sliderMaxMemory\\\"\\n                          value=\\\"ctrl.formValues.MemoryLimit\\\"\\n                          on-change=\\\"(ctrl.handleMemoryLimitChange)\\\"\\n                          visible-tooltip=\\\"true\\\"\\n                          data-cy=\\\"k8sNamespaceEdit-memoryLimitSlider\\\"\\n                        ></por-slider>\\n                      </div>\\n                      <div class=\\\"col-sm-2 vertical-center pt-6\\\">\\n                        <input\\n                          name=\\\"memory_limit\\\"\\n                          type=\\\"number\\\"\\n                          min=\\\"{{ ctrl.ResourceQuotaDefaults.MemoryLimit }}\\\"\\n                          max=\\\"{{ ctrl.state.sliderMaxMemory }}\\\"\\n                          class=\\\"form-control\\\"\\n                          ng-model=\\\"ctrl.formValues.MemoryLimit\\\"\\n                          id=\\\"memory-limit\\\"\\n                          data-cy=\\\"k8sNamespaceEdit-memoryLimitInput\\\"\\n                          required\\n                        />\\n                      </div>\\n                    </div>\\n                    <div class=\\\"form-group\\\" ng-show=\\\"resourcePoolEditForm.memory_limit.$invalid\\\">\\n                      <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n                      <div class=\\\"col-sm-8 small text-warning\\\">\\n                        <div ng-messages=\\\"resourcePoolEditForm.pool_name.$error\\\">\\n                          <p class=\\\"vertical-center\\\">\\n                            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> Value must be between {{ ctrl.ResourceQuotaDefaults.MemoryLimit }} and\\n                            {{ ctrl.state.sliderMaxMemory }}.\\n                          </p>\\n                        </div>\\n                      </div>\\n                    </div>\\n                    <!-- !memory-limit-input -->\\n                    <!-- cpu-limit-input -->\\n                    <div class=\\\"form-group\\\">\\n                      <label for=\\\"cpu-limit\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"margin-top: 20px\\\"> CPU limit </label>\\n                      <div class=\\\"col-sm-8\\\">\\n                        <por-slider\\n                          min=\\\"ctrl.ResourceQuotaDefaults.CpuLimit\\\"\\n                          max=\\\"ctrl.state.sliderMaxCpu\\\"\\n                          step=\\\"0.1\\\"\\n                          ng-if=\\\"ctrl.state.sliderMaxCpu\\\"\\n                          value=\\\"ctrl.formValues.CpuLimit\\\"\\n                          on-change=\\\"(ctrl.handleCpuLimitChange)\\\"\\n                          data-cy=\\\"k8sNamespaceEdit-cpuLimitSlider\\\"\\n                          visible-tooltip=\\\"true\\\"\\n                        ></por-slider>\\n                      </div>\\n                    </div>\\n                    <!-- !cpu-limit-input -->\\n                  </div>\\n                </div>\\n                <!-- #region LOADBALANCERS -->\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Load balancers </div>\\n\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12 small text-muted\\\">\\n                    <p class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                      You can set a quota on the amount of external load balancers that can be created inside this namespace. Set this quota to 0 to effectively disable the use of\\n                      load balancers in this namespace.\\n                    </p>\\n                  </div>\\n                </div>\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <por-switch-field\\n                      data-cy=\\\"'k8sNamespaceCreate-loadBalancerQuotaToggle'\\\"\\n                      label=\\\"'Load Balancer quota'\\\"\\n                      label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n                      name=\\\"'k8s-resourcepool-Lbquota'\\\"\\n                      feature-id=\\\"ctrl.LBQuotaFeatureId\\\"\\n                      checked=\\\"ctrl.formValues.UseLoadBalancersQuota\\\"\\n                      on-change=\\\"(ctrl.onToggleLoadBalancersQuota)\\\"\\n                    ></por-switch-field>\\n                  </div>\\n                </div>\\n                <!-- #endregion -->\\n                <div ng-if=\\\"ctrl.isAdmin && ctrl.isEditable && ctrl.state.ingressAvailabilityPerNamespace\\\">\\n                  <!-- #region INGRESSES -->\\n                  <div class=\\\"col-sm-12 form-section-title\\\"> Networking </div>\\n                  <ingress-class-datatable\\n                    ng-if=\\\"ctrl.state.ingressAvailabilityPerNamespace\\\"\\n                    on-change-controllers=\\\"(ctrl.onChangeIngressControllerAvailability)\\\"\\n                    ingress-controllers=\\\"ctrl.ingressControllers\\\"\\n                    initial-ingress-controllers=\\\"$ctrl.initialIngressControllers\\\"\\n                    description=\\\"'Enable the ingress controllers that users can select when publishing applications in this namespace.'\\\"\\n                    no-ingress-controller-label=\\\"'No ingress controllers found in the cluster. Go to the cluster setup view to configure and allow the use of ingress controllers in the cluster.'\\\"\\n                    view=\\\"'namespace'\\\"\\n                  ></ingress-class-datatable>\\n\\n                  <!-- #endregion -->\\n                </div>\\n                <!-- #region REGISTRIES -->\\n                <div>\\n                  <div class=\\\"col-sm-12 form-section-title\\\"> Registries </div>\\n\\n                  <div class=\\\"form-group\\\" ng-if=\\\"!ctrl.isAdmin || ctrl.isSystem\\\">\\n                    <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"padding-top: 0\\\"> Selected registries </label>\\n                    <div class=\\\"col-sm-9 col-lg-4\\\">\\n                      {{ ctrl.selectedRegistries ? ctrl.selectedRegistries : 'None' }}\\n                    </div>\\n                  </div>\\n\\n                  <div ng-if=\\\"ctrl.isAdmin && !ctrl.isSystem\\\">\\n                    <div class=\\\"form-group\\\">\\n                      <div class=\\\"col-sm-12 small text-muted\\\">\\n                        <p class=\\\"vertical-center\\\">\\n                          <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                          Define which registries can be used by users who have access to this namespace.\\n                        </p>\\n                      </div>\\n                    </div>\\n                    <div class=\\\"form-group\\\">\\n                      <label class=\\\"col-sm-3 col-lg-2 control-label !pt-0 text-left\\\" for=\\\"registries-selector\\\"> Select registries </label>\\n                      <div class=\\\"col-sm-9 col-lg-4\\\">\\n                        <create-namespace-registries-selector\\n                          input-id=\\\"'registries-selector'\\\"\\n                          value=\\\"ctrl.formValues.Registries\\\"\\n                          on-change=\\\"(ctrl.onRegistriesChange)\\\"\\n                          options=\\\"ctrl.registries\\\"\\n                        >\\n                        </create-namespace-registries-selector>\\n                      </div>\\n                    </div>\\n                  </div>\\n                </div>\\n                <!-- #endregion -->\\n\\n                <!-- #region STORAGES -->\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Storage </div>\\n\\n                <div class=\\\"form-group\\\">\\n                  <span class=\\\"col-sm-12 text-muted small\\\">\\n                    <p class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n                      Quotas can be set on each storage option to prevent users from exceeding a specific threshold when deploying applications. You can set a quota to 0 to\\n                      effectively prevent the usage of a specific storage option inside this namespace.\\n                    </p>\\n                  </span>\\n                </div>\\n\\n                <div class=\\\"form-section-title text-muted col-sm-12\\\" style=\\\"width: 100%\\\">\\n                  <div class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'svg-route'\\\"></pr-icon>standard </div>\\n                  <hr />\\n                </div>\\n\\n                <storage-class-switch value=\\\"sc.Selected\\\" name=\\\"sc.Name\\\" on-change=\\\"(ctrl.onToggleStorageQuota)\\\" authorization=\\\"K8sResourcePoolDetailsW\\\"> </storage-class-switch>\\n\\n                <!-- #endregion -->\\n\\n                <!-- summary -->\\n                <kubernetes-summary-view\\n                  ng-if=\\\"resourcePoolEditForm.$valid && !ctrl.isUpdateButtonDisabled()\\\"\\n                  form-values=\\\"ctrl.formValues\\\"\\n                  old-form-values=\\\"ctrl.savedFormValues\\\"\\n                ></kubernetes-summary-view>\\n                <!-- !summary -->\\n\\n                <!-- actions -->\\n                <div ng-if=\\\"ctrl.isAdmin\\\" class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n                <div ng-if=\\\"ctrl.isAdmin\\\" class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <button\\n                      type=\\\"button\\\"\\n                      ng-if=\\\"!ctrl.isSystem\\\"\\n                      class=\\\"btn btn-primary btn-sm !ml-0 !mr-1\\\"\\n                      ng-disabled=\\\"!resourcePoolEditForm.$valid || ctrl.isUpdateButtonDisabled()\\\"\\n                      ng-click=\\\"ctrl.updateResourcePool()\\\"\\n                      button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                    >\\n                      <span ng-hide=\\\"ctrl.state.actionInProgress\\\" data-cy=\\\"k8sNamespaceEdit-updateNamespaceButton\\\">Update namespace</span>\\n                      <span ng-show=\\\"ctrl.state.actionInProgress\\\">Update in progress...</span>\\n                    </button>\\n                    <button\\n                      ng-if=\\\"!ctrl.isDefaultNamespace\\\"\\n                      type=\\\"button\\\"\\n                      class=\\\"btn btn-light btn-sm !ml-0\\\"\\n                      ng-click=\\\"ctrl.markUnmarkAsSystem()\\\"\\n                      button-spinner=\\\"ctrl.state.actionInProgress\\\"\\n                      data-cy=\\\"k8sNamespaceEdit-markSystem\\\"\\n                    >\\n                      <span ng-if=\\\"ctrl.isSystem\\\">Unmark as system</span>\\n                      <span ng-if=\\\"!ctrl.isSystem\\\">Mark as system</span>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- !actions -->\\n              </form>\\n            </uib-tab>\\n            <uib-tab index=\\\"1\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(1)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'history'\\\"></pr-icon> Events\\n                <div ng-if=\\\"ctrl.hasEventWarnings()\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n                  {{ ctrl.state.eventWarningCount }} warning(s)\\n                </div>\\n              </uib-tab-heading>\\n              <kubernetes-events-datatable\\n                title-text=\\\"Events\\\"\\n                dataset=\\\"ctrl.events\\\"\\n                table-key=\\\"kubernetes.resourcepool.events\\\"\\n                order-by=\\\"Date\\\"\\n                reverse-order=\\\"true\\\"\\n                loading=\\\"ctrl.state.eventsLoading\\\"\\n                refresh-callback=\\\"ctrl.getEvents\\\"\\n              ></kubernetes-events-datatable>\\n            </uib-tab>\\n            <uib-tab index=\\\"2\\\" ng-if=\\\"ctrl.pool.Yaml\\\" select=\\\"ctrl.showEditor()\\\" classes=\\\"btn-sm\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\"><pr-icon icon=\\\"'code'\\\"></pr-icon> YAML </uib-tab-heading>\\n              <div class=\\\"px-5\\\" ng-if=\\\"ctrl.state.showEditorTab\\\">\\n                <kube-yaml-inspector identifier=\\\"'namespace-yaml'\\\" data=\\\"ctrl.pool.Yaml\\\" hide-message=\\\"true\\\" />\\n              </div>\\n            </uib-tab>\\n          </uib-tabset>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.applications && ctrl.applications.length > 0\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <kubernetes-resource-pool-applications-datatable\\n        dataset=\\\"ctrl.applications\\\"\\n        table-key=\\\"kubernetes.resourcepool.applications\\\"\\n        order-by=\\\"Name\\\"\\n        refresh-callback=\\\"ctrl.getApplications\\\"\\n        loading=\\\"ctrl.state.applicationsLoading\\\"\\n        title-text=\\\"Applications running in this namespace\\\"\\n        title-icon=\\\"code\\\"\\n      >\\n      </kubernetes-resource-pool-applications-datatable>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.ingresses && ctrl.ingresses.length > 0\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <kubernetes-resource-pool-ingresses-datatable\\n        dataset=\\\"ctrl.ingresses\\\"\\n        table-key=\\\"kubernetes.resourcepool.ingresses\\\"\\n        order-by=\\\"Name\\\"\\n        refresh-callback=\\\"ctrl.getIngresses\\\"\\n        loading=\\\"ctrl.state.ingressesLoading\\\"\\n        title-text=\\\"Ingress routes and applications\\\"\\n        title-icon=\\\"database\\\"\\n      >\\n      </kubernetes-resource-pool-ingresses-datatable>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/resource-pools/edit/resourcePool.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"ctrl.state.viewReady\\\" title=\\\"'Namespace list'\\\" breadcrumbs=\\\"['Namespaces']\\\" on-reload=\\\"(ctrl.onReload)\\\" reload=\\\"true\\\"></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <kubernetes-resource-pools-datatable\\n        restrict-default-namespace=\\\"ctrl.endpoint.Kubernetes.Configuration.RestrictDefaultNamespace\\\"\\n        dataset=\\\"ctrl.resourcePools\\\"\\n        table-key=\\\"kubernetes.resourcePools\\\"\\n        order-by=\\\"Name\\\"\\n        remove-action=\\\"ctrl.removeAction\\\"\\n        refresh-callback=\\\"ctrl.getResourcePools\\\"\\n        endpoint=\\\"ctrl.endpoint\\\"\\n        data-cy=\\\"k8sNamespace-namespaceTable\\\"\\n      ></kubernetes-resource-pools-datatable>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/resource-pools/resourcePools.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"state.viewReady\\\"\\n  title=\\\"'Security constraints'\\\"\\n  breadcrumbs=\\\"[\\n{ label:'Environments', link:'portainer.endpoints' }, \\n{ label:endpoint.Name, link:'portainer.endpoints.endpoint', linkParams:{id: endpoint.Id} }, \\n'Security constraints'\\n]\\\"\\n  reload=\\\"true\\\"\\n></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-header icon=\\\"shield\\\" title-text=\\\"Pod security constraints\\\"></rd-widget-header>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal\\\" name=\\\"kubernetesSecurityConstraintForm\\\">\\n            <!--  main toggle  -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <por-switch-field\\n                  checked=\\\"formValues.enabled\\\"\\n                  name=\\\"'disableSysctlSettingForRegularUsers'\\\"\\n                  label=\\\"'Enable pod security constraints'\\\"\\n                  feature-id=\\\"limitedFeaturePodSecurityPolicy\\\"\\n                  label-class=\\\"'col-sm-3 col-lg-2 px-0'\\\"\\n                  switch-class=\\\"'col-sm-8'\\\"\\n                >\\n                </por-switch-field>\\n              </div>\\n            </div>\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/security-constraint/constraint.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Stacks logs'\\\"\\n  breadcrumbs=\\\"[\\n{ label:'Namespaces', link:'kubernetes.resourcePools' },\\n{ label:ctrl.state.transition.namespace, link:'kubernetes.resourcePools.resourcePool', linkParams:{ id: ctrl.state.transition.namespace } },\\n{ label:'Applications', link:'kubernetes.applications' },\\n'Stacks',\\nctrl.state.transition.name,\\n'Logs'\\n]\\\"\\n  reload=\\\"true\\\"\\n></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal\\\" autocomplete=\\\"off\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n            <!-- auto-refresh -->\\n            <div class=\\\"form-group\\\">\\n              <label class=\\\"control-label col-sm-3 col-lg-2 vertical-center !py-2 text-left\\\">\\n                Auto-refresh\\n                <portainer-tooltip message=\\\"'Automatically refresh logs every 30 seconds'\\\"></portainer-tooltip>\\n              </label>\\n              <div class=\\\"col-sm-8 col-sm-9 vertical-center\\\">\\n                <label class=\\\"switch col-sm-8 col-sm-9 vertical-center !mb-0\\\">\\n                  <input type=\\\"checkbox\\\" ng-model=\\\"ctrl.state.autoRefresh\\\" ng-change=\\\"ctrl.updateAutoRefresh()\\\" />\\n                  <span class=\\\"slider round\\\"></span>\\n                </label>\\n              </div>\\n            </div>\\n            <!-- !auto-refresh -->\\n            <!-- search -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"logs_search\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Search </label>\\n              <div class=\\\"col-sm-8 col-lg-9\\\">\\n                <input\\n                  class=\\\"form-control\\\"\\n                  type=\\\"text\\\"\\n                  name=\\\"logs_search\\\"\\n                  ng-model=\\\"ctrl.state.search\\\"\\n                  ng-change=\\\"ctrl.state.selectedLines.length = 0;\\\"\\n                  placeholder=\\\"Filter...\\\"\\n                  auto-focus\\n                />\\n              </div>\\n            </div>\\n            <!-- !search -->\\n            <!-- actions -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button class=\\\"btn btn-primary btn-sm vertical-center !ml-0\\\" type=\\\"button\\\" ng-click=\\\"ctrl.downloadLogs()\\\">\\n                  <pr-icon icon=\\\"'download'\\\"></pr-icon>\\n                  Download logs\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12 h-[max(400px,calc(100vh-380px))]\\\">\\n      <pre class=\\\"log_viewer\\\">\\n        <div ng-repeat=\\\"log in ctrl.state.filteredLogs = (ctrl.stackLogs | filter:{ 'line': ctrl.state.search }) track by $index\\\" class=\\\"line\\\" ng-if=\\\"log.line\\\"><p class=\\\"inner_line\\\"><span ng-style=\\\"{'color': log.appColor, 'font-weight': 'bold'};\\\">{{ log.appName }}</span> <span ng-repeat=\\\"span in log.spans track by $index\\\" ng-style=\\\"{ 'color': span.fgColor, 'background-color': span.bgColor, 'font-weight': span.fontWeight }\\\">{{ span.text }}</span></p></div>\\n        <div ng-if=\\\"ctrl.stackLogs.length && !ctrl.state.filteredLogs.length\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\">No log line matching the '{{ ctrl.state.search }}' filter</p></div>\\n        <div ng-if=\\\"ctrl.stackLogs.length === 0\\\" class=\\\"line\\\"><p class=\\\"inner_line\\\">No logs available</p></div>\\n    </pre>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/stacks/logs/logs.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-section-title interactive flex items-center justify-start\\\" ng-click=\\\"$ctrl.toggleSummary()\\\" ng-if=\\\"$ctrl.state.resources.length > 0\\\">\\n  <pr-icon icon=\\\"$ctrl.state.expandedTemplate ? 'chevron-down' : 'chevron-right'\\\" class=\\\"vertical-center !mr-1\\\"></pr-icon>\\n  Summary\\n</div>\\n\\n<div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.expandedTemplate\\\">\\n  <div class=\\\"col-sm-12 small text-muted vertical-center\\\">\\n    <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n    Portainer will execute the following Kubernetes actions.\\n  </div>\\n\\n  <div class=\\\"col-sm-12 small text-muted\\\" style=\\\"padding-top: 1em\\\" ng-if=\\\"$ctrl.state.resources.length > 0\\\">\\n    <ul class=\\\"ml-5\\\">\\n      <li ng-repeat=\\\"summary in $ctrl.state.resources\\\" ng-if=\\\"summary.action && summary.kind && summary.name\\\">\\n        {{ summary.action }}\\n        {{ $ctrl.getArticle(summary.kind, summary.action) }}\\n        <span class=\\\"bold\\\">{{ summary.kind }}</span> named <code>{{ summary.name }}</code>\\n        <span ng-if=\\\"summary.type\\\">\\n          of type <code>{{ summary.type }}</code></span\\n        >\\n      </li>\\n      <li ng-if=\\\"$ctrl.state.limits.memory\\\">\\n        Set the memory resources limits and requests to <code>{{ $ctrl.state.limits.memory }}M</code>\\n      </li>\\n      <li ng-if=\\\"$ctrl.state.limits.cpu\\\">\\n        Set the CPU resources limits and requests to <code>{{ $ctrl.state.limits.cpu }}</code>\\n      </li>\\n    </ul>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/summary/summary.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <!-- toolbar header actions and settings -->\\n  <div class=\\\"toolBar !flex-col gap-1\\\">\\n    <div class=\\\"toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0\\\">\\n      <div class=\\\"toolBarTitle vertical-center\\\">\\n        <div class=\\\"widget-icon space-right\\\">\\n          <pr-icon icon=\\\"'hard-drive'\\\"></pr-icon>\\n        </div>\\n        Storage\\n      </div>\\n      <div class=\\\"searchBar vertical-center !mr-0\\\">\\n        <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"searchInput\\\"\\n          ng-model=\\\"$ctrl.state.textFilter\\\"\\n          ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n          placeholder=\\\"Search for storage...\\\"\\n          auto-focus\\n          ng-model-options=\\\"{ debounce: 300 }\\\"\\n        />\\n      </div>\\n      <div class=\\\"settings\\\">\\n        <div class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.settings.open }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.settings.open\\\">\\n          <span uib-dropdown-toggle aria-label=\\\"Settings\\\">\\n            <pr-icon icon=\\\"'more-vertical'\\\" class-name=\\\"'!mr-0 !h-4'\\\"></pr-icon>\\n          </span>\\n          <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n            <div class=\\\"tableMenu\\\">\\n              <div class=\\\"menuHeader\\\"> Table settings </div>\\n              <div class=\\\"menuContent\\\">\\n                <div>\\n                  <div class=\\\"md-checkbox\\\">\\n                    <input id=\\\"setting_auto_refresh\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.repeater.autoRefresh\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" />\\n                    <label for=\\\"setting_auto_refresh\\\">Auto refresh</label>\\n                  </div>\\n                  <div ng-if=\\\"$ctrl.settings.repeater.autoRefresh\\\">\\n                    <label for=\\\"settings_refresh_rate\\\"> Refresh rate </label>\\n                    <select id=\\\"settings_refresh_rate\\\" ng-model=\\\"$ctrl.settings.repeater.refreshRate\\\" ng-change=\\\"$ctrl.onSettingsRepeaterChange()\\\" class=\\\"small-select\\\">\\n                      <option value=\\\"10\\\">10s</option>\\n                      <option value=\\\"30\\\">30s</option>\\n                      <option value=\\\"60\\\">1min</option>\\n                      <option value=\\\"120\\\">2min</option>\\n                      <option value=\\\"300\\\">5min</option>\\n                    </select>\\n                    <span>\\n                      <pr-icon id=\\\"refreshRateChange\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\" style=\\\"display: none\\\"></pr-icon>\\n                    </span>\\n                  </div>\\n                </div>\\n              </div>\\n              <div>\\n                <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.settings.open = false;\\\">Close</a>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"table-responsive\\\">\\n    <table class=\\\"table-hover nowrap-cells table\\\">\\n      <thead>\\n        <tr>\\n          <th class=\\\"datatable-wide dropdown\\\" ng-if=\\\"$ctrl.hasExpandableItems()\\\">\\n            <div class=\\\"vertical-center cursor-pointer\\\" ng-click=\\\"$ctrl.expandAll()\\\">\\n              <pr-icon ng-if=\\\"$ctrl.state.expandAll\\\" icon=\\\"'chevron-down'\\\"></pr-icon>\\n              <pr-icon ng-if=\\\"!$ctrl.state.expandAll\\\" icon=\\\"'chevron-right'\\\"></pr-icon>\\n            </div>\\n          </th>\\n          <th style=\\\"width: 60%\\\">\\n            <table-column-header\\n              col-title=\\\"'Storage'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th style=\\\"width: 38%\\\">\\n            <table-column-header\\n              col-title=\\\"'Usage'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'size'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'size' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('size')\\\"\\n            ></table-column-header>\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr\\n          dir-paginate-start=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit: $ctrl.tableKey))\\\"\\n          ng-class=\\\"{ active: item.Checked, 'datatable-highlighted': item.Highlighted }\\\"\\n          ng-click=\\\"$ctrl.expandItem(item, !item.Expanded)\\\"\\n          pagination-id=\\\"$ctrl.tableKey\\\"\\n        >\\n          <td ng-if=\\\"$ctrl.hasExpandableItems()\\\">\\n            <div ng-if=\\\"$ctrl.itemCanExpand(item)\\\" class=\\\"vertical-center\\\">\\n              <pr-icon ng-if=\\\"item.Expanded\\\" icon=\\\"'chevron-down'\\\"></pr-icon>\\n              <pr-icon ng-if=\\\"!item.Expanded\\\" icon=\\\"'chevron-right'\\\"></pr-icon>\\n            </div>\\n          </td>\\n          <td>{{ item.Name }}</td>\\n          <td>{{ item.size }}</td>\\n        </tr>\\n        <tr\\n          dir-paginate-end\\n          ng-show=\\\"item.Expanded\\\"\\n          ng-repeat=\\\"vol in item.Volumes\\\"\\n          ng-class=\\\"{ 'datatable-highlighted': item.Highlighted, 'datatable-unhighlighted': !item.Highlighted }\\\"\\n        >\\n          <td></td>\\n          <td>\\n            <a ui-sref=\\\"kubernetes.volumes.volume({ name: vol.PersistentVolumeClaim.Name, namespace: vol.PersistentVolumeClaim.Namespace })\\\">\\n              {{ vol.PersistentVolumeClaim.Name }}\\n            </a>\\n          </td>\\n          <td>\\n            {{ vol.PersistentVolumeClaim.Storage }}\\n          </td>\\n        </tr>\\n        <tr ng-if=\\\"!$ctrl.dataset\\\">\\n          <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n        </tr>\\n        <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n          <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">No storage available.</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </div>\\n  <div class=\\\"footer pl-5\\\" ng-if=\\\"$ctrl.dataset\\\">\\n    <div class=\\\"infoBar !ml-0\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n    <div class=\\\"paginationControls\\\">\\n      <form class=\\\"form-inline\\\">\\n        <span class=\\\"limitSelector\\\">\\n          <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n          <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n            <option value=\\\"0\\\">All</option>\\n            <option value=\\\"10\\\">10</option>\\n            <option value=\\\"25\\\">25</option>\\n            <option value=\\\"50\\\">50</option>\\n            <option value=\\\"100\\\">100</option>\\n          </select>\\n        </span>\\n        <dir-pagination-controls max-size=\\\"5\\\" pagination-id=\\\"$ctrl.tableKey\\\"></dir-pagination-controls>\\n      </form>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/volumes/components/volumes-storages-datatable/template.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  ng-if=\\\"ctrl.state.viewReady\\\"\\n  title=\\\"'Volume details'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Namespaces', link:'kubernetes.resourcePools' },\\n    {\\n      label:ctrl.volume.ResourcePool.Namespace.Name,\\n      link: 'kubernetes.resourcePools.resourcePool',\\n      linkParams:{ id: ctrl.volume.ResourcePool.Namespace.Name }\\n    },\\n    { label:'Volumes', link:'kubernetes.volumes' },\\n     ctrl.volume.PersistentVolumeClaim.Name,\\n     ]\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n            <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(0)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\" data-cy=\\\"k8sVolDetail-volTab\\\">\\n                <pr-icon icon=\\\"'database'\\\"></pr-icon>\\n                Volume\\n              </uib-tab-heading>\\n              <div style=\\\"padding: 20px\\\">\\n                <table class=\\\"table\\\">\\n                  <tbody>\\n                    <tr>\\n                      <td>Name</td>\\n                      <td data-cy=\\\"k8sVolDetail-volName\\\">\\n                        {{ ctrl.volume.PersistentVolumeClaim.Name }}\\n                        <span class=\\\"label label-primary image-tag label-margins\\\" ng-if=\\\"!ctrl.isSystemNamespace() && ctrl.isExternalVolume()\\\">external</span>\\n                        <span class=\\\"label label-warning image-tag label-margins\\\" ng-if=\\\"!ctrl.isSystemNamespace() && !ctrl.isUsed()\\\">unused</span>\\n                      </td>\\n                    </tr>\\n                    <tr>\\n                      <td>Namespace</td>\\n                      <td>\\n                        <a ui-sref=\\\"kubernetes.resourcePools.resourcePool({ id: ctrl.volume.ResourcePool.Namespace.Name })\\\" data-cy=\\\"k8sVolDetail-volNamespace\\\">{{\\n                          ctrl.volume.ResourcePool.Namespace.Name\\n                        }}</a>\\n                        <span style=\\\"margin-left: 5px\\\" class=\\\"label label-info image-tag\\\" ng-if=\\\"ctrl.isSystemNamespace()\\\">system</span>\\n                      </td>\\n                    </tr>\\n                    <tr>\\n                      <td>Storage Class</td>\\n                      <td data-cy=\\\"k8sVolDetail-volStorageClassname\\\">{{ ctrl.volume.PersistentVolumeClaim.storageClass.Name }}</td>\\n                    </tr>\\n                    <tr>\\n                      <td>Access Modes</td>\\n                      <td data-cy=\\\"k8sVolDetail-volAccessPolicy\\\">\\n                        <div ng-repeat=\\\"(index, accessPolicy) in ctrl.state.volumeSharedAccessPolicies\\\" class=\\\"flex flex-col gap-y-1\\\">\\n                          <div class=\\\"items-center flex gap-x-1\\\">\\n                            {{ accessPolicy }}\\n                            <portainer-tooltip\\n                              ng-if=\\\"ctrl.state.volumeSharedAccessPolicyTooltips[index]\\\"\\n                              message=\\\"ctrl.state.volumeSharedAccessPolicyTooltips[index]\\\"\\n                            ></portainer-tooltip>\\n                          </div>\\n                        </div>\\n                      </td>\\n                    </tr>\\n                    <tr>\\n                      <td>Provisioner</td>\\n                      <td data-cy=\\\"k8sVolDetail-volProvisioner\\\">{{\\n                        ctrl.volume.PersistentVolumeClaim.storageClass.Provisioner ? ctrl.volume.PersistentVolumeClaim.storageClass.Provisioner : '-'\\n                      }}</td>\\n                    </tr>\\n                    <tr>\\n                      <td>Creation date</td>\\n                      <td data-cy=\\\"k8sVolDetail-volCreatedAt\\\">{{ ctrl.volume.PersistentVolumeClaim.CreationDate | getisodate }}</td>\\n                    </tr>\\n                    <tr>\\n                      <td>size</td>\\n                      <td ng-if=\\\"!ctrl.state.increaseSize\\\">\\n                        {{ ctrl.volume.PersistentVolumeClaim.Storage }}\\n                        <button\\n                          type=\\\"button\\\"\\n                          class=\\\"btn btn-sm btn-primary\\\"\\n                          ng-click=\\\"ctrl.state.increaseSize = true\\\"\\n                          ng-if=\\\"ctrl.volume.PersistentVolumeClaim.storageClass.AllowVolumeExpansion\\\"\\n                          data-cy=\\\"k8sVolDetail-increaseSizeButton\\\"\\n                          >Increase size</button\\n                        >\\n                      </td>\\n                      <td ng-if=\\\"ctrl.state.increaseSize\\\">\\n                        <form name=\\\"kubernetesVolumeUpdateForm\\\">\\n                          <div class=\\\"form-inline\\\">\\n                            <div class=\\\"input-group input-group-sm\\\">\\n                              <input\\n                                type=\\\"number\\\"\\n                                class=\\\"form-control\\\"\\n                                name=\\\"size\\\"\\n                                ng-model=\\\"ctrl.state.volumeSize\\\"\\n                                placeholder=\\\"20\\\"\\n                                ng-min=\\\"0\\\"\\n                                min=\\\"0\\\"\\n                                ng-change=\\\"ctrl.onChangeSize()\\\"\\n                                required\\n                                data-cy=\\\"k8sVolDetail-increaseSizeInput\\\"\\n                              />\\n                              <span class=\\\"input-group-addon\\\" style=\\\"padding: 0\\\">\\n                                <select\\n                                  ng-model=\\\"ctrl.state.volumeSizeUnit\\\"\\n                                  ng-change=\\\"ctrl.onChangeSize()\\\"\\n                                  ng-options=\\\"unit for unit in ctrl.state.availableSizeUnits\\\"\\n                                  style=\\\"width: 100%; height: 100%\\\"\\n                                  data-cy=\\\"k8sVolDetail-increaseSizeUnits\\\"\\n                                ></select>\\n                              </span>\\n                            </div>\\n                            <button\\n                              type=\\\"button\\\"\\n                              class=\\\"btn btn-sm btn-primary\\\"\\n                              ng-disabled=\\\"!ctrl.sizeIsValid()\\\"\\n                              ng-click=\\\"ctrl.updateVolume()\\\"\\n                              data-cy=\\\"k8sVolDetail-updateSizeConfirm\\\"\\n                            >\\n                              Update size\\n                            </button>\\n                            <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"ctrl.state.increaseSize = false\\\" data-cy=\\\"k8sVolDetail-cancelUpdateSize\\\">\\n                              Cancel\\n                            </button>\\n                          </div>\\n\\n                          <div class=\\\"form-inline\\\">\\n                            <div class=\\\"small text-warning\\\" style=\\\"margin-top: 5px\\\" ng-show=\\\"ctrl.state.errors.volumeSize || kubernetesVolumeUpdateForm.size.$invalid\\\">\\n                              <div class=\\\"vertical-center\\\" ng-messages=\\\"kubernetesVolumeUpdateForm.size.$error\\\">\\n                                <p ng-message=\\\"required\\\"><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> This field is required.</p>\\n                              </div>\\n                              <p class=\\\"vertical-center\\\" ng-show=\\\"ctrl.state.errors.volumeSize\\\"\\n                                ><pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon> The new size must be greater than the actual size.</p\\n                              >\\n                            </div>\\n                          </div>\\n                        </form>\\n                      </td>\\n                    </tr>\\n                  </tbody>\\n                </table>\\n              </div>\\n            </uib-tab>\\n\\n            <uib-tab index=\\\"1\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(1)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\" data-cy=\\\"k8sVolDetail-volEventsTab\\\">\\n                <pr-icon icon=\\\"'history'\\\"></pr-icon> Events\\n                <div ng-if=\\\"ctrl.hasEventWarnings()\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  {{ ctrl.state.eventWarningCount }} warning(s)\\n                </div>\\n              </uib-tab-heading>\\n              <kubernetes-events-datatable\\n                title-text=\\\"Events\\\"\\n                title-icon=\\\"file-text\\\"\\n                dataset=\\\"ctrl.events\\\"\\n                table-key=\\\"kubernetes.volume.events\\\"\\n                order-by=\\\"Date\\\"\\n                reverse-order=\\\"true\\\"\\n                loading=\\\"ctrl.state.eventsLoading\\\"\\n                refresh-callback=\\\"ctrl.getEvents\\\"\\n              >\\n              </kubernetes-events-datatable>\\n            </uib-tab>\\n\\n            <uib-tab index=\\\"2\\\" ng-if=\\\"ctrl.volume.PersistentVolumeClaim.Yaml\\\" select=\\\"ctrl.showEditor()\\\" classes=\\\"btn-sm\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\" data-cy=\\\"k8sVolDetail-volYamlTab\\\"> <pr-icon icon=\\\"'code'\\\"></pr-icon> YAML </uib-tab-heading>\\n              <div class=\\\"px-5\\\" ng-if=\\\"ctrl.state.showEditorTab\\\">\\n                <kube-yaml-inspector identifier=\\\"'volume-yaml'\\\" data=\\\"ctrl.volume.PersistentVolumeClaim.Yaml\\\" hide-message=\\\"true\\\" />\\n              </div>\\n            </uib-tab>\\n          </uib-tabset>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\" ng-if=\\\"ctrl.isUsed(item)\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <kubernetes-integrated-applications-datatable\\n        dataset=\\\"ctrl.volume.Applications\\\"\\n        table-key=\\\"kubernetes.volume.applications\\\"\\n        order-by=\\\"Name\\\"\\n        refresh-callback=\\\"ctrl.getVolume\\\"\\n        title-text=\\\"Applications using this volume\\\"\\n        title-icon=\\\"svg-laptopcode\\\"\\n      >\\n      </kubernetes-integrated-applications-datatable>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/volumes/edit/volume.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"ctrl.state.viewReady\\\" title=\\\"'Volume list'\\\" breadcrumbs=\\\"['Volumes']\\\" reload=\\\"true\\\"></page-header>\\n\\n<kubernetes-view-loading view-ready=\\\"ctrl.state.viewReady\\\"></kubernetes-view-loading>\\n\\n<div ng-if=\\\"ctrl.state.viewReady\\\">\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <uib-tabset active=\\\"ctrl.state.activeTab\\\" justified=\\\"true\\\" type=\\\"pills\\\">\\n            <uib-tab index=\\\"0\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(0)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'database'\\\"></pr-icon>\\n                Volumes\\n              </uib-tab-heading>\\n              <kubernetes-volumes-datatable\\n                dataset=\\\"ctrl.volumes\\\"\\n                table-key=\\\"kubernetes.volumes\\\"\\n                order-by=\\\"PersistentVolumeClaim.Name\\\"\\n                remove-action=\\\"ctrl.removeAction\\\"\\n                refresh-callback=\\\"ctrl.getVolumes\\\"\\n                data-cy=\\\"k8s-volumes-datatable\\\"\\n              >\\n              </kubernetes-volumes-datatable>\\n            </uib-tab>\\n            <uib-tab index=\\\"1\\\" classes=\\\"btn-sm\\\" select=\\\"ctrl.selectTab(1)\\\">\\n              <uib-tab-heading class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'hard-drive'\\\"></pr-icon>\\n                Storage\\n              </uib-tab-heading>\\n              <kubernetes-volumes-storages-datatable dataset=\\\"ctrl.storages\\\" table-key=\\\"kubernetes.volumes.storages\\\" order-by=\\\"Name\\\" refresh-callback=\\\"ctrl.getVolumes\\\">\\n              </kubernetes-volumes-storages-datatable>\\n            </uib-tab>\\n          </uib-tabset>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/kubernetes/views/volumes/volumes.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<a class=\\\"vertical-center be-indicator ml-5\\\" href=\\\"{{ $ctrl.url }}\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" ng-if=\\\"$ctrl.limitedToBE\\\">\\n  <ng-transclude></ng-transclude>\\n  <pr-icon icon=\\\"'briefcase'\\\" class-name=\\\"'space-right be-indicator-icon'\\\"></pr-icon>\\n  <span class=\\\"be-indicator-label\\\">Business Feature</span>\\n</a>\\n\";;\nvar path = 'app/portainer/components/BEFeatureIndicator/BEFeatureIndicator.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <div class=\\\"col-sm-12 form-section-title\\\">\\n          <span style=\\\"float: left\\\">\\n            {{ $ctrl.titleText }}\\n          </span>\\n          <span class=\\\"small\\\" style=\\\"float: right\\\" ng-if=\\\"$ctrl.dismissAction\\\">\\n            <a ng-click=\\\"$ctrl.dismissAction()\\\">\\n              <pr-icon icon=\\\"'x'\\\"></pr-icon>\\n              dismiss</a\\n            >\\n          </span>\\n        </div>\\n        <div class=\\\"form-group\\\">\\n          <ng-transclude></ng-transclude>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/components/InformationPanel/InformationPanelAngular.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class-name=\\\"'searchIcon'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search...\\\"\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n        <div class=\\\"actionBar\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-dangerlight vertical-center\\\"\\n            ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n            ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n          >\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n            Remove\\n          </button>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"small text-muted mx-4 mb-4\\\">\\n        <div class=\\\"\\\" ng-if=\\\"$ctrl.inheritFrom\\\">\\n          Access tagged as <code>inherited</code> are inherited from the group access. They cannot be removed or modified at the environment level but they can be overridden.\\n        </div>\\n        <div class=\\\"\\\" ng-if=\\\"$ctrl.inheritFrom\\\"> Access tagged as <code>override</code> are overriding the group access for the related users/teams. </div>\\n      </div>\\n\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Name'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Type'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Type'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Type' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Type')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit)) track by $index\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-disabled=\\\"$ctrl.disableRemove(item)\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                {{ item.Name }}\\n                <span ng-if=\\\"$ctrl.inheritFrom && item.Inherited\\\" class=\\\"text-muted small\\\" style=\\\"margin-left: 2px\\\"><code style=\\\"font-size: 85% !important\\\">inherited</code></span>\\n                <span ng-if=\\\"$ctrl.inheritFrom && item.Override\\\" class=\\\"text-muted small\\\" style=\\\"margin-left: 2px\\\"><code style=\\\"font-size: 85% !important\\\">override</code></span>\\n              </td>\\n              <td>{{ item.Type }}</td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"4\\\" class=\\\"text-muted text-center\\\">No authorized users or teams.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/access-datatable/accessDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <div ng-if=\\\"!$ctrl.hideTitle\\\" class=\\\"col-sm-12 form-section-title\\\"> Access control </div>\\n  <!-- access-control-switch -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label-class=\\\"'col-sm-2'\\\"\\n        checked=\\\"$ctrl.formData.AccessControlEnabled\\\"\\n        label=\\\"'Enable access control'\\\"\\n        tooltip=\\\"'When enabled, you can restrict the access and management of this resource.'\\\"\\n        on-change=\\\"($ctrl.onChangeEnablement)\\\"\\n        data-cy=\\\"portainer-accessMgmtToggle\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n  <!-- !access-control-switch -->\\n  <!-- restricted-access -->\\n\\n  <access-type-selector\\n    ng-if=\\\"$ctrl.formData.AccessControlEnabled\\\"\\n    value=\\\"$ctrl.formData.Ownership\\\"\\n    on-change=\\\"($ctrl.onChangeOwnership)\\\"\\n    is-admin=\\\"$ctrl.isAdmin\\\"\\n    name=\\\"Ownership\\\"\\n    teams=\\\"$ctrl.availableTeams\\\"\\n  ></access-type-selector>\\n\\n  <!-- restricted-access -->\\n  <!-- authorized-teams -->\\n  <div\\n    class=\\\"form-group mt-4\\\"\\n    ng-if=\\\"$ctrl.formData.AccessControlEnabled && $ctrl.formData.Ownership === $ctrl.RCO.RESTRICTED && ($ctrl.isAdmin || (!$ctrl.isAdmin && $ctrl.availableTeams.length > 1))\\\"\\n  >\\n    <div class=\\\"vertical-center w-full\\\">\\n      <label for=\\\"group-access\\\" class=\\\"control-label col-sm-3 col-lg-2 !pt-0 text-left\\\">\\n        Authorized teams\\n        <portainer-tooltip\\n          ng-if=\\\"$ctrl.isAdmin && $ctrl.availableTeams.length > 0\\\"\\n          message=\\\"'You can select which teams(s) will be able to manage this resource.'\\\"\\n        ></portainer-tooltip>\\n        <portainer-tooltip\\n          ng-if=\\\"!$ctrl.isAdmin && $ctrl.availableTeams.length > 1\\\"\\n          message=\\\"'As you are a member of multiple teams, you can select which teams(s) will be able to manage this resource.'\\\"\\n        ></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <span ng-if=\\\"$ctrl.isAdmin && $ctrl.availableTeams.length === 0\\\" class=\\\"small text-muted\\\">\\n          You have not yet created any teams. Head over to the <a ui-sref=\\\"portainer.teams\\\">Teams view</a> to manage teams.\\n        </span>\\n\\n        <por-access-control-form-team-selector\\n          ng-if=\\\"($ctrl.isAdmin && $ctrl.availableTeams.length > 0) || (!$ctrl.isAdmin && $ctrl.availableTeams.length > 1)\\\"\\n          options=\\\"$ctrl.availableTeams\\\"\\n          value=\\\"$ctrl.formData.AuthorizedTeams\\\"\\n          input-id=\\\"'teams-selector'\\\"\\n          on-change=\\\"($ctrl.onAuthorizedTeamsChange)\\\"\\n        ></por-access-control-form-team-selector>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <!-- !authorized-teams -->\\n  <!-- authorized-users -->\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.formData.AccessControlEnabled && $ctrl.formData.Ownership === $ctrl.RCO.RESTRICTED && $ctrl.isAdmin\\\">\\n    <div class=\\\"vertical-center w-full\\\">\\n      <label for=\\\"group-access\\\" class=\\\"control-label col-sm-3 col-lg-2 !pt-0 text-left\\\">\\n        Authorized users\\n        <portainer-tooltip\\n          ng-if=\\\"$ctrl.isAdmin && $ctrl.availableUsers.length > 0\\\"\\n          message=\\\"'You can select which user(s) will be able to manage this resource.'\\\"\\n        ></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <span ng-if=\\\"$ctrl.availableUsers.length === 0\\\" class=\\\"small text-muted\\\">\\n          You have not yet created any users. Head over to the <a ui-sref=\\\"portainer.users\\\">Users view</a> to manage users.\\n        </span>\\n\\n        <por-access-control-form-user-selector\\n          ng-if=\\\"$ctrl.availableUsers.length > 0\\\"\\n          options=\\\"$ctrl.availableUsers\\\"\\n          value=\\\"$ctrl.formData.AuthorizedUsers\\\"\\n          input-id=\\\"'users-selector'\\\"\\n          on-change=\\\"($ctrl.onAuthorizedUsersChange)\\\"\\n        ></por-access-control-form-user-selector>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !authorized-users -->\\n</div>\\n\";;\nvar path = 'app/portainer/components/accessControlForm/porAccessControlForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget ng-if=\\\"ctrl.availableUsersAndTeams && ctrl.accessControlledEntity\\\">\\n      <rd-widget-header icon=\\\"user-check\\\" title-text=\\\"Create access\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div ng-if=\\\"ctrl.entityType !== 'registry'\\\" class=\\\"form-group\\\">\\n            <span class=\\\"col-sm-12 small text-warning\\\">\\n              <p class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                Adding user access will require the affected user(s) to logout and login for the changes to be taken into account.\\n              </p>\\n            </span>\\n          </div>\\n\\n          <por-access-management-users-selector\\n            options=\\\"ctrl.availableUsersAndTeams\\\"\\n            value=\\\"ctrl.formValues.multiselectOutput\\\"\\n            on-change=\\\"(ctrl.onChangeUsersAndTeams)\\\"\\n          ></por-access-management-users-selector>\\n\\n          <div class=\\\"form-group\\\" ng-if=\\\"ctrl.entityType !== 'registry'\\\">\\n            <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Role </label>\\n            <div class=\\\"col-sm-9 col-lg-6\\\">\\n              <div class=\\\"flex items-center\\\">\\n                <div>\\n                  <select\\n                    class=\\\"form-control\\\"\\n                    ng-model=\\\"ctrl.formValues.selectedRole\\\"\\n                    ng-options=\\\"role as ctrl.roleLabel(role) disable when ctrl.isRoleLimitedToBE(role) for role in ctrl.roles\\\"\\n                  >\\n                  </select>\\n                </div>\\n                <be-feature-indicator feature=\\\"ctrl.limitedFeature\\\" class=\\\"space-left\\\"></be-feature-indicator>\\n              </div>\\n            </div>\\n          </div>\\n\\n          <!-- actions -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"submit\\\"\\n                class=\\\"btn btn-primary btn-sm vertical-center\\\"\\n                ng-disabled=\\\"ctrl.availableUsersAndTeams.length === 0 || ctrl.formValues.multiselectOutput.length === 0 || ctrl.actionInProgress\\\"\\n                ng-click=\\\"ctrl.authorizeAccess()\\\"\\n                button-spinner=\\\"ctrl.actionInProgress\\\"\\n                data-cy=\\\"access-createAccess\\\"\\n              >\\n                <span ng-hide=\\\"ctrl.state.actionInProgress\\\" class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n                  Create access\\n                </span>\\n                <span ng-show=\\\"ctrl.state.actionInProgress\\\">Creating access...</span>\\n              </button>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <access-datatable\\n      ng-if=\\\"ctrl.authorizedUsersAndTeams\\\"\\n      title-text=\\\"Access\\\"\\n      title-icon=\\\"user-x\\\"\\n      table-key=\\\"{{ 'access_' + ctrl.entityType }}\\\"\\n      order-by=\\\"Name\\\"\\n      show-warning=\\\"ctrl.entityType !== 'registry'\\\"\\n      is-update-enabled=\\\"ctrl.entityType !== 'registry'\\\"\\n      show-roles=\\\"ctrl.entityType !== 'registry'\\\"\\n      roles=\\\"ctrl.roles\\\"\\n      inherit-from=\\\"ctrl.inheritFrom\\\"\\n      dataset=\\\"ctrl.authorizedUsersAndTeams\\\"\\n      update-action=\\\"ctrl.updateAction\\\"\\n      remove-action=\\\"ctrl.unauthorizeAccess\\\"\\n    >\\n    </access-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/components/accessManagement/porAccessManagement.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<react-code-editor\\n  id=\\\"$ctrl.identifier\\\"\\n  placeholder=\\\"$ctrl.placeholder\\\"\\n  yaml=\\\"$ctrl.yml\\\"\\n  docker-file=\\\"$ctrl.dockerFile\\\"\\n  shell=\\\"$ctrl.shell\\\"\\n  readonly=\\\"$ctrl.readOnly\\\"\\n  on-change=\\\"($ctrl.handleChange)\\\"\\n  value=\\\"$ctrl.value\\\"\\n  height=\\\"$ctrl.height || undefined\\\"\\n></react-code-editor>\\n\";;\nvar path = 'app/portainer/components/code-editor/code-editor.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<span>\\n  <button type=\\\"button\\\" class=\\\"btn btn-link nopadding\\\" ng-click=\\\"$ctrl.copyValueText()\\\" title=\\\"Copy Value\\\">\\n    <pr-icon icon=\\\"'clipboard'\\\"></pr-icon>\\n    Copy\\n  </button>\\n  <span ng-class=\\\"{ 'copy-button-fadeout': $ctrl.state.isFading }\\\" class=\\\"copy-button-copy-text\\\">\\n    <pr-icon icon=\\\"'check'\\\"></pr-icon>\\n    copied\\n  </span>\\n</span>\\n\";;\nvar path = 'app/portainer/components/copy-button/copy-button.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <div class=\\\"form-group pt-3\\\">\\n    <label for=\\\"stack_template\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Template </label>\\n    <div class=\\\"col-sm-8 vertical-center\\\">\\n      <select\\n        ng-if=\\\"$ctrl.templates.length\\\"\\n        class=\\\"form-control\\\"\\n        ng-model=\\\"$ctrl.value\\\"\\n        ng-options=\\\"template.Id as template.label for template in $ctrl.templates\\\"\\n        ng-change=\\\"$ctrl.handleChangeTemplate($ctrl.value)\\\"\\n      >\\n        <option value=\\\"\\\" label=\\\"Select a Custom template\\\" disabled selected=\\\"selected\\\"> </option>\\n      </select>\\n      <span class=\\\"small text-muted pt-[7px]\\\" ng-if=\\\"!$ctrl.templates.length\\\">\\n        No custom templates are available. Head over to the <a ui-state=\\\"$ctrl.newTemplatePath\\\">custom template view</a> to create one.\\n      </span>\\n    </div>\\n  </div>\\n\\n  <!-- description -->\\n  <div ng-if=\\\"$ctrl.selectedTemplate.note\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n    <div class=\\\"form-group\\\">\\n      <div class=\\\"col-sm-12\\\">\\n        <div class=\\\"template-note\\\" ng-bind-html=\\\"$ctrl.selectedTemplate.note\\\"></div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !description -->\\n</div>\\n\";;\nvar path = 'app/portainer/components/custom-template-selector/custom-template-selector.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar vertical-center\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          <span>{{ $ctrl.titleText }}</span>\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class=\\\"searchIcon\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search...\\\"\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n        <div class=\\\"actionBar\\\">\\n          <button\\n            ng-if=\\\"!$ctrl.endpointType\\\"\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-dangerlight vertical-center\\\"\\n            ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n            ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n          >\\n            <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-white'\\\"></pr-icon>\\n            <span>Remove</span>\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary vertical-center\\\" ng-click=\\\"$ctrl.onClickAdd()\\\">\\n            <pr-icon icon=\\\"'plus'\\\" class-name=\\\"'icon-white'\\\"></pr-icon>\\n            <span>Add access token</span>\\n          </button>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Description'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'description'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'description' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('description')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Prefix'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'prefix'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'prefix' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('prefix')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Created'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'dateCreated'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'dateCreated' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('dateCreated')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Last Used'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'lastUsed'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'lastUsed' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('lastUsed')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                {{ item.description }}\\n              </td>\\n              <td>\\n                {{ item.prefix }}\\n              </td>\\n              <td>\\n                {{ item.dateCreated | getisodatefromtimestamp }}\\n              </td>\\n              <td>\\n                <span ng-if=\\\"item.lastUsed > 0\\\">{{ item.lastUsed | getisodatefromtimestamp }}</span>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<span class=\\\"setting\\\" ng-class=\\\"{ 'setting-active': $ctrl.state.isOpen }\\\" uib-dropdown dropdown-append-to-body auto-close=\\\"disabled\\\" is-open=\\\"$ctrl.state.isOpen\\\">\\n  <span uib-dropdown-toggle aria-label=\\\"Columns\\\">\\n    <pr-icon icon=\\\"'columns'\\\"></pr-icon>\\n  </span>\\n  <div class=\\\"dropdown-menu dropdown-menu-right\\\" uib-dropdown-menu>\\n    <div class=\\\"tableMenu\\\">\\n      <div class=\\\"menuHeader\\\"> Show / Hide Columns </div>\\n      <div class=\\\"menuContent\\\">\\n        <div class=\\\"md-checkbox\\\" ng-repeat=\\\"(key, value) in $ctrl.columns\\\">\\n          <input id=\\\"col_vis_{{::key}}\\\" ng-change=\\\"$ctrl.onChange($ctrl.columns)\\\" type=\\\"checkbox\\\" ng-model=\\\"value.display\\\" />\\n          <label for=\\\"col_vis_{{::key}}\\\">{{ value.label }}</label>\\n        </div>\\n      </div>\\n      <div>\\n        <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.state.isOpen = false;\\\">Close</a>\\n      </div>\\n    </div>\\n  </div>\\n</span>\\n\";;\nvar path = 'app/portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div uib-dropdown dropdown-append-to-body auto-close=\\\"outsideClick\\\" is-open=\\\"$ctrl.isOpen\\\">\\n  <span ng-transclude></span>\\n  <div class=\\\"filter-button\\\">\\n    <span uib-dropdown-toggle class=\\\"table-filter vertical-center\\\" ng-class=\\\"{ 'filter-active': $ctrl.isEnabled() }\\\">\\n      Filter\\n      <pr-icon ng-if=\\\"$ctrl.isEnabled()\\\" icon=\\\"'check'\\\"></pr-icon>\\n      <pr-icon ng-if=\\\"!$ctrl.isEnabled()\\\" icon=\\\"'filter'\\\"></pr-icon>\\n    </span>\\n  </div>\\n  <div class=\\\"dropdown-menu\\\" style=\\\"min-width: 0\\\" uib-dropdown-menu>\\n    <div class=\\\"tableMenu\\\">\\n      <div class=\\\"menuContent\\\">\\n        <div class=\\\"md-checkbox\\\" ng-repeat=\\\"filter in $ctrl.labels track by filter.value\\\">\\n          <input\\n            id=\\\"filter_{{ $ctrl.filterKey }}_{{ $index }}\\\"\\n            type=\\\"checkbox\\\"\\n            ng-value=\\\"filter.value\\\"\\n            ng-checked=\\\"$ctrl.state.includes(filter.value)\\\"\\n            ng-click=\\\"$ctrl.onChangeItem(filter.value)\\\"\\n          />\\n          <label for=\\\"filter_{{ $ctrl.filterKey }}_{{ $index }}\\\">\\n            {{ filter.label }}\\n          </label>\\n        </div>\\n      </div>\\n      <div>\\n        <a class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"$ctrl.isOpen = false;\\\"> Close </a>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/filter/datatable-filter.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search for a group...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n            data-cy=\\\"endpointGroup-searchInput\\\"\\n          />\\n        </div>\\n        <div class=\\\"actionBar !gap-3\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-dangerlight h-fit\\\"\\n            ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n            ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n            data-cy=\\\"endpointGroup-removeGroupButton\\\"\\n          >\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n            Remove\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary h-fit\\\" ui-sref=\\\"portainer.groups.new\\\" data-cy=\\\"endpointGroup-addGroupButton\\\">\\n            <pr-icon icon=\\\"'plus'\\\"></pr-icon>Add group\\n          </button>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\" data-cy=\\\"endpointGroup-endpointGroupTable\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" data-cy=\\\"endpointGroup-selectAllCheckbox\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Name'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header col-title=\\\"'Actions'\\\" can-sort=\\\"false\\\"></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                <a ui-sref=\\\"portainer.groups.group({id: item.Id})\\\">{{ item.Name }}</a>\\n              </td>\\n              <td>\\n                <div class=\\\"vertical-center\\\">\\n                  <a ui-sref=\\\"portainer.groups.group.access({id: item.Id})\\\">\\n                    <pr-icon icon=\\\"'users'\\\"></pr-icon>\\n                    Manage access\\n                  </a>\\n                </div>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No group available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline vertical-center\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/groups-datatable/groupsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"paginationControls\\\">\\n  <form class=\\\"form-inline\\\">\\n    <span class=\\\"limitSelector\\\">\\n      <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n      <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.limit\\\" ng-change=\\\"$ctrl.onChangeLimit($ctrl.limit)\\\">\\n        <option ng-if=\\\"$ctrl.enableNoLimit\\\" ng-value=\\\"0\\\">All</option>\\n        <option ng-value=\\\"10\\\">10</option>\\n        <option ng-value=\\\"25\\\">25</option>\\n        <option ng-value=\\\"50\\\">50</option>\\n        <option ng-value=\\\"100\\\">100</option>\\n      </select>\\n    </span>\\n    <dir-pagination-controls max-size=\\\"5\\\" on-page-change=\\\"$ctrl.onChangePage(newPageNumber)\\\"> </dir-pagination-controls>\\n  </form>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/pagination/pagination.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class-name=\\\"'searchIcon'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search for a registry...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n            data-cy=\\\"registry-searchInput\\\"\\n          />\\n        </div>\\n        <div class=\\\"actionBar !gap-3\\\" ng-if=\\\"$ctrl.isAdmin\\\">\\n          <button\\n            ng-if=\\\"!$ctrl.endpointType\\\"\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit\\\"\\n            ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n            ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n            data-cy=\\\"registry-removeRegistryButton\\\"\\n          >\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Remove\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary vertical-center !ml-0 h-fit\\\" ui-sref=\\\"portainer.registries.new\\\" data-cy=\\\"registry-addRegistryButton\\\">\\n            <pr-icon icon=\\\"'plus'\\\"></pr-icon>Add registry\\n          </button>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox vertical-center\\\" ng-if=\\\"$ctrl.isAdmin && !$ctrl.endpointType\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Name'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'URL'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'URL'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'URL' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('URL')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header col-title=\\\"'Actions'\\\" can-sort=\\\"false\\\"></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr>\\n              <td>\\n                <span class=\\\"md-checkbox\\\" ng-if=\\\"$ctrl.isAdmin && !$ctrl.endpointType\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" disabled />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                <span><default-registry-name></default-registry-name></span>\\n              </td>\\n              <td> <default-registry-domain></default-registry-domain> </td>\\n              <td>\\n                <default-registry-action ng-if=\\\"$ctrl.isAdmin && !$ctrl.endpointType\\\"></default-registry-action>\\n              </td>\\n            </tr>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\" ng-if=\\\"$ctrl.isAdmin && !$ctrl.endpointType\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" ng-disabled=\\\"!$ctrl.allowSelection(item)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                <a ui-sref=\\\"portainer.registries.registry({id: item.Id})\\\" ng-if=\\\"$ctrl.enableGoToLink(item)\\\">{{ item.Name }}</a>\\n                <span ng-if=\\\"!$ctrl.enableGoToLink(item)\\\">{{ item.Name }}</span>\\n                <span ng-if=\\\"item.Authentication\\\" style=\\\"margin-left: 5px\\\" class=\\\"label label-info image-tag\\\">authentication-enabled</span>\\n              </td>\\n              <td>\\n                {{ item.URL }}\\n              </td>\\n              <td>\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"btn btn-link vertical-center !ml-0 px-0 hover:no-underline\\\"\\n                  ng-if=\\\"$ctrl.canManageAccess(item)\\\"\\n                  ng-click=\\\"$ctrl.redirectToManageAccess(item)\\\"\\n                >\\n                  <pr-icon icon=\\\"'users'\\\"></pr-icon>Manage access\\n                </button>\\n                <be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\" ng-if=\\\"$ctrl.canBrowse(item)\\\">\\n                  <span class=\\\"text-muted\\\" style=\\\"padding-right: 5px\\\"> <pr-icon icon=\\\"'search'\\\"></pr-icon> Browse </span>\\n                </be-feature-indicator>\\n\\n                <span ng-if=\\\"!$ctrl.canBrowse(item) && !$ctrl.canManageAccess(item)\\\"> - </span>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline vertical-center\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/registries-datatable/registriesDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <div class=\\\"toolBar vertical-center relative w-full flex-wrap !gap-x-5 !gap-y-1\\\">\\n      <div class=\\\"toolBarTitle vertical-center\\\">\\n        <div class=\\\"widget-icon space-right\\\">\\n          <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n        </div>\\n\\n        {{ $ctrl.titleText }}\\n      </div>\\n      <div class=\\\"searchBar vertical-center\\\">\\n        <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"searchInput\\\"\\n          ng-model=\\\"$ctrl.state.textFilter\\\"\\n          ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n          placeholder=\\\"Search...\\\"\\n          ng-model-options=\\\"{ debounce: 300 }\\\"\\n        />\\n      </div>\\n      <div class=\\\"actionBar\\\">\\n        <button\\n          type=\\\"button\\\"\\n          class=\\\"btn btn-sm btn-dangerlight vertical-center\\\"\\n          ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n          ng-click=\\\"$ctrl.onRemove($ctrl.state.selectedItems)\\\"\\n        >\\n          <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Remove\\n        </button>\\n      </div>\\n    </div>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"$ctrl.columnHeader\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                    style=\\\"display: inline-block\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit)) track by $index\\\"\\n              ng-class=\\\"{ active: $ctrl.state.selectedItems.includes(item) }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\">\\n                  <input\\n                    id=\\\"select_{{ $index }}\\\"\\n                    type=\\\"checkbox\\\"\\n                    ng-checked=\\\"$ctrl.state.selectedItems.includes(item)\\\"\\n                    ng-disabled=\\\"$ctrl.disableRemove(item)\\\"\\n                    ng-click=\\\"$ctrl.selectItem(item, $event)\\\"\\n                  />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                {{ item.value }}\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td class=\\\"text-muted text-center\\\">{{ $ctrl.emptyDatasetMessage }}</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/strings-datatable/strings-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search for a tag...\\\"\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n        <div class=\\\"actionBar !gap-3\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-dangerlight h-fit\\\" ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\" ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\">\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Remove\\n          </button>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Name'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                {{ item.Name }}\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"1\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"1\\\" class=\\\"text-muted text-center\\\">No tag available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline vertical-center\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span class=\\\"space-right\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/tags-datatable/tagsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"toolBar\\\">\\n  <div class=\\\"toolBarTitle\\\">\\n    <pr-icon icon=\\\"$ctrl.icon\\\" class-name=\\\"'space-right'\\\"></pr-icon>\\n    {{ $ctrl.title }}\\n    <be-feature-indicator feature=\\\"$ctrl.feature\\\"></be-feature-indicator>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/titlebar/datatable-titlebar.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar vertical-center flex-wrap !gap-x-5 !gap-y-1\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search...\\\"\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n\\n        <div class=\\\"actionBar !gap-3\\\" ng-show=\\\"$ctrl.isAdmin\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit\\\"\\n            ng-disabled=\\\"$ctrl.state.selectedItemCount === 0\\\"\\n            ng-click=\\\"$ctrl.removeAction($ctrl.state.selectedItems)\\\"\\n            data-cy=\\\"user-removeUserButton\\\"\\n          >\\n            <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>Remove\\n          </button>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\" data-cy=\\\"user-userTable\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox\\\" ng-show=\\\"$ctrl.isAdmin\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Name'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Username'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Username' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Username')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Role'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'RoleName'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'RoleName' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('RoleName')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Authentication'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'AuthenticationMethod'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'AuthenticationMethod' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('AuthenticationMethod')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\" ng-show=\\\"$ctrl.isAdmin\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" ng-disabled=\\\"!$ctrl.allowSelection(item)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                <a ui-sref=\\\"portainer.users.user({id: item.Id})\\\" ng-show=\\\"$ctrl.isAdmin\\\">{{ item.Username }}</a>\\n                <span ng-show=\\\"!$ctrl.isAdmin\\\">{{ item.Username }}</span>\\n              </td>\\n              <td>\\n                <span class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'user'\\\" ng-if=\\\"item.Role === 1 && !item.isTeamLeader\\\"></pr-icon>\\n                  <pr-icon icon=\\\"'user'\\\" ng-if=\\\"item.Role !== 1 && item.isTeamLeader\\\"></pr-icon>\\n                  <pr-icon icon=\\\"'user-plus'\\\" ng-if=\\\"item.Role !== 1 && !item.isTeamLeader\\\"></pr-icon>\\n                  {{ item.RoleName ? item.RoleName : '-' }}\\n                </span>\\n              </td>\\n              <td>\\n                <span ng-if=\\\"item.Id === 1 || ($ctrl.authenticationMethod !== 2 && $ctrl.authenticationMethod !== 3)\\\">Internal</span>\\n                <span ng-if=\\\"item.Id !== 1 && $ctrl.authenticationMethod === 2\\\">LDAP</span>\\n                <span ng-if=\\\"item.Id !== 1 && $ctrl.authenticationMethod === 3\\\">OAuth</span>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No user available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/datatables/users-datatable/usersDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\" ng-if=\\\"$ctrl.isDemo\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"alert-triangle\\\" title-text=\\\"Feature not available\\\"> </rd-widget-header>\\n      <rd-widget-body>\\n        <span class=\\\"small text-muted\\\">{{ $ctrl.content }}</span>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/components/demo-feature-indicator/demo-feature-indicator.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <!-- tls-checkbox -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label=\\\"'TLS'\\\"\\n        label-class=\\\"'col-sm-2'\\\"\\n        checked=\\\"$ctrl.formData.TLS\\\"\\n        on-change=\\\"($ctrl.onToggleTLS)\\\"\\n        tooltip=\\\"'Enable this option if you need to connect to the Docker environment with TLS.'\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n  <!-- !tls-checkbox -->\\n  <div class=\\\"col-sm-12 form-section-title\\\" ng-if=\\\"$ctrl.formData.TLS\\\"> TLS mode </div>\\n  <!-- note -->\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.formData.TLS\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <span class=\\\"small text-muted\\\">\\n        You can find out more information about how to protect a Docker environment with TLS in the\\n        <a href=\\\"https://docs.docker.com/engine/security/https/\\\" target=\\\"_blank\\\">Docker documentation</a>.\\n      </span>\\n    </div>\\n  </div>\\n\\n  <box-selector\\n    ng-if=\\\"$ctrl.formData.TLS\\\"\\n    slim=\\\"true\\\"\\n    radio-name=\\\"'tls_mode'\\\"\\n    options=\\\"$ctrl.tlsOptions\\\"\\n    value=\\\"$ctrl.formData.TLSMode\\\"\\n    on-change=\\\"($ctrl.onChangeTLSMode)\\\"\\n  ></box-selector>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\" ng-if=\\\"$ctrl.formData.TLS && $ctrl.formData.TLSMode !== 'tls_only'\\\"> Required TLS files </div>\\n  <!-- tls-file-upload -->\\n  <div ng-if=\\\"$ctrl.formData.TLS\\\">\\n    <!-- tls-file-ca -->\\n    <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.formData.TLSMode === 'tls_client_ca' || $ctrl.formData.TLSMode === 'tls_ca'\\\">\\n      <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">TLS CA certificate</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ngf-select ng-model=\\\"$ctrl.formData.TLSCACert\\\">Select file</button>\\n        <span class=\\\"space-left\\\">\\n          {{ $ctrl.formData.TLSCACert.name }}\\n          <pr-icon icon=\\\"'check'\\\" ng-if=\\\"$ctrl.formData.TLSCACert && $ctrl.formData.TLSCACert === $ctrl.endpoint.TLSConfig.TLSCACert\\\" mode=\\\"'success'\\\"></pr-icon>\\n          <pr-icon icon=\\\"'x'\\\" ng-if=\\\"!$ctrl.formData.TLSCACert\\\" mode=\\\"'danger'\\\"></pr-icon>\\n        </span>\\n      </div>\\n    </div>\\n    <!-- !tls-file-ca -->\\n    <!-- tls-files-cert-key -->\\n    <div ng-if=\\\"$ctrl.formData.TLSMode === 'tls_client_ca' || $ctrl.formData.TLSMode === 'tls_client_noca'\\\">\\n      <!-- tls-file-cert -->\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"tls_cert\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">TLS certificate</label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ngf-select ng-model=\\\"$ctrl.formData.TLSCert\\\">Select file</button>\\n          <span class=\\\"space-left\\\">\\n            {{ $ctrl.formData.TLSCert.name }}\\n            <pr-icon icon=\\\"'check'\\\" ng-if=\\\"$ctrl.formData.TLSCert && $ctrl.formData.TLSCert === $ctrl.endpoint.TLSConfig.TLSCert\\\" mode=\\\"'success'\\\"></pr-icon>\\n            <pr-icon icon=\\\"'x'\\\" ng-if=\\\"!$ctrl.formData.TLSCert\\\" mode=\\\"'danger'\\\"></pr-icon>\\n          </span>\\n        </div>\\n      </div>\\n      <!-- !tls-file-cert -->\\n      <!-- tls-file-key -->\\n      <div class=\\\"form-group\\\">\\n        <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">TLS key</label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ngf-select ng-model=\\\"$ctrl.formData.TLSKey\\\">Select file</button>\\n          <span class=\\\"space-left\\\">\\n            {{ $ctrl.formData.TLSKey.name }}\\n            <pr-icon icon=\\\"'check'\\\" ng-if=\\\"$ctrl.formData.TLSKey && $ctrl.formData.TLSKey === $ctrl.endpoint.TLSConfig.TLSKey\\\" mode=\\\"'success'\\\"></pr-icon>\\n            <pr-icon icon=\\\"'x'\\\" ng-if=\\\"!$ctrl.formData.TLSKey\\\" mode=\\\"'danger'\\\"></pr-icon>\\n          </span>\\n        </div>\\n      </div>\\n      <!-- !tls-file-key -->\\n    </div>\\n    <!-- tls-files-cert-key -->\\n  </div>\\n  <!-- !tls-file-upload -->\\n</div>\\n\";;\nvar path = 'app/portainer/components/endpointSecurity/porEndpointSecurity.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form class=\\\"file-upload-form\\\" name=\\\"$ctrl.fileUploadForm\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Upload </div>\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small\\\" ng-transclude=\\\"description\\\"> </span>\\n  </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <file-upload-field on-change=\\\"($ctrl.onChange)\\\" required=\\\"($ctrl.ngRequired)\\\" value=\\\"($ctrl.file)\\\"></file-upload-field>\\n    </div>\\n  </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/components/form-components/file-upload-form/file-upload-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form name=\\\"$ctrl.webEditorForm\\\">\\n  <div class=\\\"web-editor overflow-x-hidden\\\">\\n    <div ng-if=\\\"!$ctrl.hideTitle\\\" class=\\\"col-sm-12 form-section-title pr-0\\\"\\n      >Web editor\\n      <div class=\\\"text-muted small vertical-center float-right mt-0\\\">\\n        <span ng-if=\\\"$ctrl.BROWSER_OS_PLATFORM !== 'mac'\\\" class=\\\"vertical-center\\\">Ctrl+F for search</span>\\n        <span ng-if=\\\"$ctrl.BROWSER_OS_PLATFORM === 'mac'\\\" class=\\\"vertical-center\\\">Cmd+F for search</span>\\n        <portainer-tooltip\\n          ng-if=\\\"$ctrl.BROWSER_OS_PLATFORM !== 'mac'\\\"\\n          message=\\\"'Ctrl+F - Start searching <br />\\n              Ctrl+G - Find next <br />\\n              Ctrl+Shift+G - Find previous <br />\\n              Ctrl+Shift+F - Replace <br />\\n              Ctrl+Shift+R - Replace all <br />\\n              Alt+G - Jump to line <br />\\n              Alt+F - Persistent search: <br />\\n              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter - Find next <br />\\n              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shift+Enter - Find previous <br />'\\\"\\n          class-name=\\\"'[&>span]:!text-left'\\\"\\n          set-html-message=\\\"true\\\"\\n        >\\n        </portainer-tooltip>\\n        <portainer-tooltip\\n          ng-if=\\\"$ctrl.BROWSER_OS_PLATFORM === 'mac'\\\"\\n          message=\\\"'Cmd+F - Start searching <br />\\n              Cmd+G - Find next <br />\\n              Cmd+Shift+G - Find previous <br />\\n              Cmd+Option+F - Replace <br />\\n              Cmd+Option+R - Replace all <br />\\n              Option+G - Jump to line <br />\\n              Option+F - Persistent search: <br />\\n              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter - Find next <br />\\n              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shift+Enter - Find previous <br />'\\\"\\n          class-name=\\\"'[&>span]:!text-left'\\\"\\n          set-html-message=\\\"true\\\"\\n        >\\n        </portainer-tooltip>\\n      </div>\\n    </div>\\n    <div class=\\\"trancluded-item form-group col-sm-9 col-lg-10 text-muted small\\\" ng-transclude=\\\"description\\\"></div>\\n    <div class=\\\"form-group\\\">\\n      <div class=\\\"col-sm-12 col-lg-12\\\">\\n        <code-editor\\n          identifier=\\\"{{ $ctrl.identifier }}\\\"\\n          placeholder=\\\"{{ $ctrl.placeholder }}\\\"\\n          read-only=\\\"$ctrl.readOnly\\\"\\n          yml=\\\"$ctrl.yml\\\"\\n          value=\\\"$ctrl.value\\\"\\n          on-change=\\\"($ctrl.onChange)\\\"\\n          height=\\\"{{ $ctrl.height }}\\\"\\n        ></code-editor>\\n      </div>\\n    </div>\\n  </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/components/form-components/web-editor-form/web-editor-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"endpointGroupForm\\\" ng-if=\\\"$ctrl.model\\\">\\n  <!-- name-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"group_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"group_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"e.g. my-group\\\" required auto-focus />\\n      <div class=\\\"help-block\\\" ng-show=\\\"endpointGroupForm.group_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"endpointGroupForm.group_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !name-input -->\\n  <!-- description-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"group_description\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Description</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"group_description\\\" ng-model=\\\"$ctrl.model.Description\\\" placeholder=\\\"e.g. production environments...\\\" />\\n    </div>\\n  </div>\\n  <!-- !description-input -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Metadata </div>\\n\\n  <tag-selector ng-if=\\\"$ctrl.model.TagIds\\\" value=\\\"$ctrl.model.TagIds\\\" on-change=\\\"($ctrl.onChangeTags)\\\" allow-create=\\\"$ctrl.state.allowCreateTag\\\"> </tag-selector>\\n\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.model.Id !== 1\\\">\\n    <associated-endpoints-selector value=\\\"$ctrl.associatedEndpoints\\\" on-change=\\\"($ctrl.onChangeEnvironments)\\\"></associated-endpoints-selector>\\n  </div>\\n\\n  <div class=\\\"-mx-[15px]\\\">\\n    <group-association-table\\n      ng-if=\\\"$ctrl.model.Id === 1\\\"\\n      title=\\\"'Unassociated environments'\\\"\\n      empty-content-message=\\\"'No environment available'\\\"\\n      query=\\\"$ctrl.unassociatedQuery\\\"\\n    ></group-association-table>\\n  </div>\\n\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-click=\\\"$ctrl.formAction()\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !endpointGroupForm.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/group-form/groupForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form name=\\\"$ctrl.redeployGitForm\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Redeploy from git repository </div>\\n  <div class=\\\"form-group text-muted\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <p> Pull the latest manifest from git and redeploy the application. </p>\\n    </div>\\n  </div>\\n  <git-form-auto-update-fieldset\\n    value=\\\"$ctrl.formValues.AutoUpdate\\\"\\n    on-change=\\\"($ctrl.onChangeAutoUpdate)\\\"\\n    environment-type=\\\"KUBERNETES\\\"\\n    is-force-pull-visible=\\\"false\\\"\\n    base-webhook-url=\\\"{{ $ctrl.state.baseWebhookUrl }}\\\"\\n    webhook-id=\\\"{{ $ctrl.state.webhookId }}\\\"\\n    webhooks-docs=\\\"/user/kubernetes/applications/webhooks\\\"\\n  ></git-form-auto-update-fieldset>\\n  <time-window-display></time-window-display>\\n\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <p>\\n        <a class=\\\"small interactive\\\" ng-click=\\\"$ctrl.state.showConfig = !$ctrl.state.showConfig\\\">\\n          <pr-icon ng-if=\\\"$ctrl.state.showConfig\\\" icon=\\\"'minus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n          <pr-icon ng-if=\\\"!$ctrl.state.showConfig\\\" icon=\\\"'plus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n          {{ $ctrl.state.showConfig ? 'Hide' : 'Advanced' }} configuration\\n        </a>\\n      </p>\\n    </div>\\n  </div>\\n\\n  <git-form-ref-field\\n    ng-if=\\\"$ctrl.state.showConfig\\\"\\n    value=\\\"$ctrl.formValues.RefName\\\"\\n    on-change=\\\"($ctrl.onChangeRef)\\\"\\n    model=\\\"$ctrl.formValues\\\"\\n    is-url-valid=\\\"true\\\"\\n  ></git-form-ref-field>\\n\\n  <git-form-auth-fieldset\\n    ng-if=\\\"$ctrl.state.showConfig\\\"\\n    value=\\\"$ctrl.formValues\\\"\\n    on-change=\\\"($ctrl.onChangeGitAuth)\\\"\\n    is-auth-explanation-visible=\\\"true\\\"\\n    is-auth-edit=\\\"$ctrl.state.isAuthEdit\\\"\\n  ></git-form-auth-fieldset>\\n\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.showConfig\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        name=\\\"TLSSkipVerify\\\"\\n        checked=\\\"$ctrl.formValues.TLSSkipVerify\\\"\\n        tooltip=\\\"'Enabling this will allow skipping TLS validation for any self-signed certificate.'\\\"\\n        label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n        label=\\\"'Skip TLS Verification'\\\"\\n        on-change=\\\"($ctrl.onChangeTLSSkipVerify)\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <!-- #Git buttons -->\\n  <button\\n    class=\\\"btn btn-sm btn-primary\\\"\\n    ng-click=\\\"$ctrl.pullAndRedeployApplication()\\\"\\n    ng-disabled=\\\"$ctrl.isSubmitButtonDisabled() || $ctrl.state.hasUnsavedChanges|| !$ctrl.redeployGitForm.$valid\\\"\\n    style=\\\"margin-top: 7px; margin-left: 0\\\"\\n    button-spinner=\\\"$ctrl.state.redeployInProgress\\\"\\n    analytics-on\\n    analytics-category=\\\"kubernetes\\\"\\n    analytics-event=\\\"kubernetes-application-edit-git-pull\\\"\\n  >\\n    <span ng-show=\\\"!$ctrl.state.redeployInProgress\\\">\\n      <pr-icon icon=\\\"'refresh-cw'\\\" class=\\\"!mr-1\\\"></pr-icon>\\n      Pull and update application\\n    </span>\\n    <span ng-show=\\\"$ctrl.state.redeployInProgress\\\">In progress...</span>\\n  </button>\\n\\n  <button\\n    class=\\\"btn btn-sm btn-primary\\\"\\n    ng-click=\\\"$ctrl.saveGitSettings()\\\"\\n    ng-disabled=\\\"$ctrl.isSubmitButtonDisabled() || !$ctrl.state.hasUnsavedChanges|| !$ctrl.redeployGitForm.$valid\\\"\\n    style=\\\"margin-top: 7px; margin-left: 0\\\"\\n    button-spinner=\\\"$ctrl.state.saveGitSettingsInProgress\\\"\\n    analytics-on\\n    analytics-category=\\\"kubernetes\\\"\\n    analytics-event=\\\"kubernetes-application-edit\\\"\\n    analytics-properties=\\\"$ctrl.buildAnalyticsProperties()\\\"\\n  >\\n    <span ng-show=\\\"!$ctrl.state.saveGitSettingsInProgress\\\"> Save settings </span>\\n    <span ng-show=\\\"$ctrl.state.saveGitSettingsInProgress\\\">In progress...</span>\\n  </button>\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormEcr\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small\\\">\\n      For information on how to generate an Access Key, follow the\\n      <a href=\\\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console\\\" target=\\\"_blank\\\">AWS guide</a>.\\n    </span>\\n  </div>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> ECR connection details </div>\\n\\n  <!-- name-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"my-ecr-registry\\\" required auto-focus />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormEcr.registry_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n            <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              A registry with the same name already exists.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !name-input -->\\n\\n  <!-- url-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      <span class=\\\"required\\\">Registry URL</span>\\n      <portainer-tooltip message=\\\"'URL of an Amazon Elastic Container Registry, which contains an account id and region.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input\\n        type=\\\"text\\\"\\n        class=\\\"form-control\\\"\\n        id=\\\"registry_url\\\"\\n        name=\\\"registry_url\\\"\\n        ng-model=\\\"$ctrl.model.URL\\\"\\n        placeholder=\\\"aws-account-id.dkr.ecr.us-east-1.amazonaws.com/\\\"\\n        required\\n      />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_url.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormEcr.registry_url.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- url-input -->\\n\\n  <!-- authentication-checkbox -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label=\\\"'Authentication'\\\"\\n        label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n        tooltip=\\\"'Enable this option if you need to specify credentials to connect to a private registry.'\\\"\\n        name=\\\"'administrator'\\\"\\n        checked=\\\"$ctrl.model.Authentication\\\"\\n        on-change=\\\"($ctrl.toggleAuthentication)\\\"\\n        label-class=\\\"'col-sm-2'\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n  <!-- !authentication-checkbox -->\\n\\n  <div ng-if=\\\"$ctrl.model.Authentication\\\">\\n    <!-- aws-access-key -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"registry_access_key\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">AWS Access Key</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_access_key\\\" name=\\\"registry_access_key\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_access_key.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormEcr.registry_access_key.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !aws-access-key -->\\n\\n    <!-- aws-secret-access-key -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"registry_secret_access_key\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">AWS Secret Access Key</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_secret_access_key\\\" name=\\\"registry_secret_access_key\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_secret_access_key.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormEcr.registry_secret_access_key.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !aws-secret-access-key -->\\n\\n    <!-- region -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"registry_region\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Region</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_region\\\" name=\\\"registry_region\\\" placeholder=\\\"us-west-1\\\" ng-model=\\\"$ctrl.model.Ecr.Region\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_region.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormEcr.registry_region.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n              <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                A registry with the same name already exists.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !region -->\\n  </div>\\n\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"submit\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormEcr.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        analytics-on\\n        analytics-category=\\\"portainer\\\"\\n        analytics-event=\\\"portainer-registry-creation\\\"\\n        analytics-properties=\\\"{ metadata: { type: 'ecr' } }\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormAzure\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Azure registry details </div>\\n  <!-- name-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"my-azure-registry\\\" required auto-focus />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormAzure.registry_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n            <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              A registry with the same name already exists.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !name-input -->\\n  <!-- url-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      <span class=\\\"required\\\">Registry URL</span>\\n      <portainer-tooltip message=\\\"'URL of an Azure Container Registry. Any protocol will be stripped.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"myproject.azurecr.io\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_url.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormAzure.registry_url.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- url-input -->\\n  <!-- credentials-user -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_username.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormAzure.registry_username.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-user -->\\n  <!-- credentials-password -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_password.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormAzure.registry_password.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-password -->\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"submit\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormAzure.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        analytics-on\\n        analytics-category=\\\"portainer\\\"\\n        analytics-event=\\\"portainer-registry-creation\\\"\\n        analytics-properties=\\\"{ metadata: { type: 'azure' } }\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-azure/registry-form-azure.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormCustom\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small\\\">\\n      Docker requires you to connect to a <a href=\\\"https://docs.docker.com/registry/deploying/#running-a-domain-registry\\\" target=\\\"_blank\\\">secure registry</a>. You can find more\\n      information about how to connect to an insecure registry <a href=\\\"https://docs.docker.com/registry/insecure/\\\" target=\\\"_blank\\\">in the Docker documentation</a>.\\n    </span>\\n  </div>\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Custom registry details </div>\\n  <!-- name-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"my-custom-registry\\\" required auto-focus />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormCustom.registry_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n            <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              A registry with the same name already exists.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !name-input -->\\n  <!-- url-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n      Registry URL\\n      <portainer-tooltip message=\\\"'URL or IP address of a Docker registry. Any protocol and trailing slash will be stripped if present.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"10.0.0.10:5000 or myregistry.domain.tld\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_url.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormCustom.registry_url.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- url-input -->\\n  <!-- authentication-checkbox -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label=\\\"'Authentication'\\\"\\n        label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n        tooltip=\\\"'Enable this option if you need to specify credentials to connect to this registry.'\\\"\\n        name=\\\"'administrator'\\\"\\n        checked=\\\"$ctrl.model.Authentication\\\"\\n        on-change=\\\"($ctrl.toggleAuthentication)\\\"\\n        label-class=\\\"'col-sm-2'\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n  <!-- !authentication-checkbox -->\\n  <div ng-if=\\\"$ctrl.model.Authentication\\\">\\n    <!-- credentials-user -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_username.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormCustom.registry_username.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !credentials-user -->\\n    <!-- credentials-password -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_password.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormCustom.registry_password.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !credentials-password -->\\n  </div>\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"submit\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormCustom.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        analytics-on\\n        analytics-category=\\\"portainer\\\"\\n        analytics-event=\\\"portainer-registry-creation\\\"\\n        analytics-properties=\\\"{ metadata: { type: 'custom' }}\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-custom/registry-form-custom.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormDockerhub\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small\\\">\\n      <p>\\n        For information on how to generate a DockerHub Access Token, follow the\\n        <a href=\\\"https://docs.docker.com/docker-hub/access-tokens/\\\" target=\\\"_blank\\\">dockerhub guide</a>.\\n      </p>\\n    </span>\\n  </div>\\n  <div class=\\\"col-sm-12 form-section-title\\\"> DockerHub account details </div>\\n  <!-- name-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"dockerhub-prod-us\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormDockerhub.registry_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormDockerhub.registry_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n            <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              A registry with the same name already exists.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !name-input -->\\n  <!-- credentials-user -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">DockerHub username</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormDockerhub.registry_username.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormDockerhub.registry_username.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-user -->\\n  <!-- credentials-password -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">DockerHub access token</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormDockerhub.registry_password.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormDockerhub.registry_password.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-password -->\\n\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"submit\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormDockerhub.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        analytics-on\\n        analytics-category=\\\"portainer\\\"\\n        analytics-event=\\\"portainer-registry-creation\\\"\\n        analytics-properties=\\\"{ metadata: { type: 'dockerhub' } }\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar vertical-center\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <pr-icon icon=\\\"$ctrl.titleIcon\\\" class-name=\\\"'icon-blue'\\\"></pr-icon>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class=\\\"searchIcon\\\"></pr-icon>\\n          <input type=\\\"text\\\" class=\\\"searchInput\\\" ng-model=\\\"$ctrl.state.textFilter\\\" ng-change=\\\"$ctrl.onTextFilterChange()\\\" placeholder=\\\"Search...\\\" auto-focus />\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <span class=\\\"md-checkbox vertical-center\\\">\\n                    <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n                    <label for=\\\"select_all\\\"></label>\\n                  </span>\\n                  <table-column-header\\n                    col-title=\\\"'Namespace'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.state.orderBy === 'Namespace'\\\"\\n                    is-sorted-desc=\\\"$ctrl.state.orderBy === 'Namespace' && $ctrl.state.reverseOrder\\\"\\n                    ng-click=\\\"$ctrl.changeOrderBy('Namespace')\\\"\\n                  ></table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'PathWithNamespace'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'PathWithNamespace'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'PathWithNamespace' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('PathWithNamespace')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header col-title=\\\"'Description'\\\" can-sort=\\\"false\\\"></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <span class=\\\"md-checkbox\\\">\\n                  <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" ng-disabled=\\\"$ctrl.disableSelection(item)\\\" />\\n                  <label for=\\\"select_{{ $index }}\\\"></label>\\n                </span>\\n                {{ item.Namespace }}\\n              </td>\\n              <td>\\n                {{ item.Name }}\\n              </td>\\n              <td>\\n                {{ item.PathWithNamespace }}\\n              </td>\\n              <td>\\n                {{ item.Description }}\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No projects available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"registryFormGitlab\\\" ng-submit=\\\"$ctrl.retrieveRegistries()\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small\\\">\\n      <p>\\n        For information on how to generate a GitLab Personal Access Token, follow the\\n        <a href=\\\"https://gitlab.com/help/user/profile/personal_access_tokens.md\\\" target=\\\"_blank\\\">GitLab guide</a>.\\n      </p>\\n    </span>\\n  </div>\\n  <div class=\\\"col-sm-12 form-section-title\\\"> GitLab registry connection details </div>\\n  <!-- credentials-user -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.registry_username.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"registryFormGitlab.registry_username.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-user -->\\n  <!-- credentials-pat -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_perso_acc_token\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Personal Access Token </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_perso_acc_token\\\" name=\\\"registry_perso_acc_token\\\" ng-model=\\\"$ctrl.model.Token\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.registry_perso_acc_token.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"registryFormGitlab.registry_perso_acc_token.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-pat -->\\n\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-link btn-sm !ml-0 p-0 hover:no-underline\\\"\\n        ng-if=\\\"!$ctrl.state.overrideConfiguration\\\"\\n        ng-click=\\\"$ctrl.state.overrideConfiguration = true;\\\"\\n      >\\n        <pr-icon icon=\\\"'wrench'\\\"></pr-icon>\\n        Override default configuration\\n      </button>\\n      <button\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-link btn-sm !ml-0 p-0 hover:no-underline\\\"\\n        ng-if=\\\"$ctrl.state.overrideConfiguration\\\"\\n        ng-click=\\\"$ctrl.state.overrideConfiguration = false; $ctrl.resetDefaults()\\\"\\n      >\\n        <pr-icon icon=\\\"'settings'\\\"></pr-icon>\\n        Use default configuration\\n      </button>\\n    </div>\\n  </div>\\n\\n  <!-- url-input -->\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.overrideConfiguration\\\">\\n    <label for=\\\"instance_url\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n      Instance URL\\n      <portainer-tooltip message=\\\"'URL of Gitlab instance.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"instance_url\\\" name=\\\"instance_url\\\" ng-model=\\\"$ctrl.model.Gitlab.InstanceURL\\\" placeholder=\\\"https://gitlab.com\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.instance_url.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"registryFormGitlab.instance_url.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !url-input -->\\n  <!-- url-input -->\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.overrideConfiguration\\\">\\n    <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n      Registry URL\\n      <portainer-tooltip message=\\\"'URL of Gitlab registry instance.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"https://registry.gitlab.com\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.registry_url.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"registryFormGitlab.registry_url.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !url-input -->\\n\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button type=\\\"submit\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"$ctrl.actionInProgress || !registryFormGitlab.$valid\\\" button-spinner=\\\"$ctrl.actionInProgress\\\">\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">Retrieve projects</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n</form>\\n<div class=\\\"form-horizontal\\\" ng-if=\\\"$ctrl.projects\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> GitLab projects </div>\\n  <div class=\\\"form-group\\\">\\n    <span class=\\\"col-sm-12 text-muted small\\\"> Select the project's registries you want to manage. Portainer will create one registry for each selected project. </span>\\n    <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n      <pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-warning'\\\"></pr-icon>\\n      If you can't select a project, make sure that registry feature is activated on it.\\n    </span>\\n  </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <gitlab-projects-datatable\\n        title-text=\\\"GitLab projects\\\"\\n        title-icon=\\\"list\\\"\\n        dataset=\\\"$ctrl.projects\\\"\\n        table-key=\\\"gitlab_projects\\\"\\n        state=\\\"$ctrl.state.gitlab\\\"\\n        order-by=\\\"Name\\\"\\n      ></gitlab-projects-datatable>\\n    </div>\\n  </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        ng-click=\\\"$ctrl.createRegistries()\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.state.gitlab.selectedItemCount\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        analytics-on\\n        analytics-category=\\\"portainer\\\"\\n        analytics-event=\\\"portainer-registry-creation\\\"\\n        analytics-properties=\\\"{ metadata: { type: 'gitlab' } }\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">Create registries</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</div>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormProGet\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12 text-muted small\\\">\\n      Any Portainer user that has access to this registry will be able to use the Registry Manager features against the content of any Feed in the ProGet registry that the ProGet\\n      user has access to.\\n    </div>\\n  </div>\\n  <div class=\\\"col-sm-12 form-section-title\\\"> ProGet registry details </div>\\n  <!-- name-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"proget-registry\\\" required auto-focus />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormProGet.registry_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n            <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              A registry with the same name already exists.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !name-input -->\\n  <!-- url-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      <span class=\\\"required\\\">Registry URL</span>\\n      <portainer-tooltip message=\\\"'The URL of the ProGet registry including the Feed name'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"proget.example.com/example-registry\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_url.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormProGet.registry_url.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- url-input -->\\n  <!-- base-url-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_base_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      <span class=\\\"required\\\">Base URL</span>\\n      <portainer-tooltip message=\\\"'The base URL of the ProGet registry'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_base_url\\\" name=\\\"registry_base_url\\\" ng-model=\\\"$ctrl.model.BaseURL\\\" placeholder=\\\"proget.example.com\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_base_url.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormProGet.registry_base_url.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !base-url-input -->\\n  <div>\\n    <!-- credentials-user -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_username.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormProGet.registry_username.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !credentials-user -->\\n    <!-- credentials-password -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_password.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormProGet.registry_password.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !credentials-password -->\\n  </div>\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"submit\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormProGet.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        analytics-on\\n        analytics-category=\\\"portainer\\\"\\n        analytics-event=\\\"portainer-registry-creation\\\"\\n        analytics-properties=\\\"{ metadata: { type: 'proget' } }\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-proget/registry-form-proget.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormQuay\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Quay account details </div>\\n  <!-- name-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"Quay\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.registry_name.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormQuay.registry_name.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n            <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              A registry with the same name already exists.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !name-input -->\\n  <!-- credentials-user -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required auto-focus />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.registry_username.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormQuay.registry_username.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-user -->\\n  <!-- credentials-password -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n      <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.registry_password.$invalid\\\">\\n        <div class=\\\"small text-warning\\\">\\n          <div ng-messages=\\\"$ctrl.registryFormQuay.registry_password.$error\\\">\\n            <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n              This field is required.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !credentials-password -->\\n\\n  <!-- organization-checkbox -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label=\\\"'Use organization registry'\\\"\\n        checked=\\\"$ctrl.model.Quay.useOrganisation\\\"\\n        on-change=\\\"($ctrl.toggleOrganisation)\\\"\\n        label-class=\\\"'col-sm-2'\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n  <!-- !organisation-checkbox -->\\n  <div ng-if=\\\"$ctrl.model.Quay.useOrganisation\\\">\\n    <!-- organisation_name -->\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"organisation_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Organization name</label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"organisation_name\\\" name=\\\"organisation_name\\\" ng-model=\\\"$ctrl.model.Quay.organisationName\\\" required />\\n        <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.organisation_name.$invalid\\\">\\n          <div class=\\\"small text-warning\\\">\\n            <div ng-messages=\\\"$ctrl.registryFormQuay.organisation_name.$error\\\">\\n              <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n                This field is required.\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <!-- !organisation_name -->\\n  </div>\\n\\n  <!-- actions -->\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <button\\n        type=\\\"submit\\\"\\n        class=\\\"btn btn-primary btn-sm\\\"\\n        ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormQuay.$valid\\\"\\n        button-spinner=\\\"$ctrl.actionInProgress\\\"\\n        analytics-on\\n        analytics-category=\\\"portainer\\\"\\n        analytics-event=\\\"portainer-registry-creation\\\"\\n        analytics-properties=\\\"{ metadata: { type: 'quay' } }\\\"\\n      >\\n        <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n        <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n      </button>\\n    </div>\\n  </div>\\n  <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-quay/registry-form-quay.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<rd-widget>\\n  <rd-widget-custom-header icon=\\\"$ctrl.template.Logo\\\" title-text=\\\"$ctrl.template.Title\\\"></rd-widget-custom-header>\\n  <rd-widget-body classes=\\\"padding\\\">\\n    <form class=\\\"form-horizontal\\\" name=\\\"stackTemplateForm\\\">\\n      <!-- description -->\\n      <div ng-if=\\\"$ctrl.template.Note\\\">\\n        <div class=\\\"form-section-title\\\"> Information </div>\\n        <div class=\\\"col-sm-12 form-group\\\">\\n          <div class=\\\"template-note\\\" ng-bind-html=\\\"$ctrl.template.Note\\\"></div>\\n        </div>\\n      </div>\\n      <!-- !description -->\\n      <div class=\\\"form-section-title\\\"> Configuration </div>\\n      <!-- name-input -->\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"template_name\\\" class=\\\"col-sm-2 control-label text-left\\\">Name</label>\\n        <div class=\\\"col-sm-6\\\">\\n          <input type=\\\"text\\\" name=\\\"template_name\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.formValues.name\\\" ng-pattern=\\\"$ctrl.nameRegex\\\" placeholder=\\\"e.g. mystack\\\" required />\\n          <div class=\\\"form-group\\\" ng-if=\\\"stackTemplateForm.template_name.$invalid\\\">\\n            <div class=\\\"col-sm-12 small text-warning\\\">\\n              <div ng-messages=\\\"stackTemplateForm.template_name.$error\\\">\\n                <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  <span>This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').</span>\\n                </p>\\n                <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>This field is required. </p>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n\\n      <!-- !name-input -->\\n      <!-- env -->\\n      <div ng-repeat=\\\"var in $ctrl.template.Env\\\" ng-if=\\\"!var.preset || var.select\\\" class=\\\"form-group\\\">\\n        <label for=\\\"field_{{ $index }}\\\" class=\\\"col-sm-2 control-label text-left\\\">\\n          {{ var.label }}\\n          <portainer-tooltip ng-if=\\\"var.description\\\" message=\\\"var.description\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-6\\\">\\n          <input type=\\\"text\\\" class=\\\"form-control\\\" ng-if=\\\"!var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\" />\\n          <select class=\\\"form-control\\\" ng-if=\\\"var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\">\\n            <option selected disabled hidden value=\\\"\\\">Select value</option>\\n            <option ng-repeat=\\\"choice in var.select\\\" value=\\\"{{ choice.value }}\\\">{{ choice.text }}</option>\\n          </select>\\n        </div>\\n      </div>\\n      <!-- !env -->\\n      <ng-transclude ng-transclude-slot=\\\"advanced\\\"></ng-transclude>\\n\\n      <!-- access-control -->\\n      <por-access-control-form form-data=\\\"$ctrl.formValues.AccessControlData\\\"></por-access-control-form>\\n      <!-- !access-control -->\\n      <!-- actions -->\\n      <div class=\\\"form-section-title\\\"> Actions </div>\\n      <div class=\\\"form-group\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary\\\"\\n            ng-disabled=\\\"$ctrl.state.actionInProgress || !$ctrl.formValues.name || !$ctrl.state.deployable || stackTemplateForm.$invalid\\\"\\n            ng-click=\\\"$ctrl.createTemplate()\\\"\\n            button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n          >\\n            <span ng-hide=\\\"$ctrl.state.actionInProgress\\\">Deploy the stack</span>\\n            <span ng-show=\\\"$ctrl.state.actionInProgress\\\">Deployment in progress...</span>\\n          </button>\\n          <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"$ctrl.unselectTemplate($ctrl.template)\\\">Hide</button>\\n          <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.formValidationError\\\">\\n            <div class=\\\"col-sm-12 small text-danger\\\" ng-if=\\\"$ctrl.state.formValidationError\\\">\\n              <p class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>{{ $ctrl.state.formValidationError }} </p>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-if=\\\"!$ctrl.state.deployable\\\">\\n            <div class=\\\"col-sm-12 small text-danger\\\" ng-if=\\\"!$ctrl.state.deployable\\\">\\n              <p class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>This template type cannot be deployed on this environment. </p>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n      <!-- !actions -->\\n    </form>\\n  </rd-widget-body>\\n</rd-widget>\\n\";;\nvar path = 'app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form name=\\\"$ctrl.redeployGitForm\\\" class=\\\"form-horizontal my-8\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Redeploy from git repository </div>\\n\\n  <git-form-info-panel\\n    class-name=\\\"'text-muted small'\\\"\\n    url=\\\"$ctrl.model.URL\\\"\\n    type=\\\"'stack'\\\"\\n    config-file-path=\\\"$ctrl.model.ConfigFilePath\\\"\\n    additional-files=\\\"$ctrl.stack.AdditionalFiles\\\"\\n  ></git-form-info-panel>\\n\\n  <git-form-auto-update-fieldset\\n    value=\\\"$ctrl.formValues.AutoUpdate\\\"\\n    on-change=\\\"($ctrl.onChangeAutoUpdate)\\\"\\n    environment-type=\\\"DOCKER\\\"\\n    is-force-pull-visible=\\\"$ctrl.stack.Type !== 3\\\"\\n    base-webhook-url=\\\"{{ $ctrl.state.baseWebhookUrl }}\\\"\\n    webhook-id=\\\"{{ $ctrl.state.webhookId }}\\\"\\n    webhooks-docs=\\\"/user/docker/stacks/webhooks\\\"\\n  ></git-form-auto-update-fieldset>\\n\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <p>\\n        <a class=\\\"small interactive\\\" ng-click=\\\"$ctrl.state.showConfig = !$ctrl.state.showConfig\\\">\\n          <pr-icon ng-if=\\\"$ctrl.state.showConfig\\\" icon=\\\"'minus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n          <pr-icon ng-if=\\\"!$ctrl.state.showConfig\\\" icon=\\\"'plus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n          {{ $ctrl.state.showConfig ? 'Hide' : 'Advanced' }} configuration\\n        </a>\\n      </p>\\n    </div>\\n  </div>\\n\\n  <git-form-ref-field\\n    ng-if=\\\"$ctrl.state.showConfig\\\"\\n    value=\\\"$ctrl.formValues.RefName\\\"\\n    on-change=\\\"($ctrl.onChangeRef)\\\"\\n    model=\\\"$ctrl.formValues\\\"\\n    is-url-valid=\\\"true\\\"\\n    stack-id=\\\"$ctrl.gitStackId\\\"\\n  ></git-form-ref-field>\\n\\n  <git-form-auth-fieldset\\n    ng-if=\\\"$ctrl.state.showConfig\\\"\\n    value=\\\"$ctrl.formValues\\\"\\n    on-change=\\\"($ctrl.onChangeGitAuth)\\\"\\n    is-auth-explanation-visible=\\\"true\\\"\\n    is-auth-edit=\\\"$ctrl.state.isAuthEdit\\\"\\n  ></git-form-auth-fieldset>\\n\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.showConfig\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        name=\\\"TLSSkipVerify\\\"\\n        checked=\\\"$ctrl.formValues.TLSSkipVerify\\\"\\n        tooltip=\\\"'Enabling this will allow skipping TLS validation for any self-signed certificate.'\\\"\\n        label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n        label=\\\"'Skip TLS Verification'\\\"\\n        on-change=\\\"($ctrl.onChangeTLSSkipVerify)\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n\\n  <div ng-if=\\\"$ctrl.state.showConfig\\\">\\n    <relative-path-fieldset value=\\\"$ctrl.stack\\\" git-model=\\\"$ctrl.stack\\\" is-editing=\\\"true\\\" hide-edge-configs=\\\"true\\\"></relative-path-fieldset>\\n  </div>\\n\\n  <stack-environment-variables-panel\\n    values=\\\"$ctrl.formValues.Env\\\"\\n    on-change=\\\"($ctrl.onChangeEnvVar)\\\"\\n    show-help-message=\\\"true\\\"\\n    is-foldable=\\\"true\\\"\\n  ></stack-environment-variables-panel>\\n\\n  <option-panel ng-if=\\\"$ctrl.stack.Type === 1 && $ctrl.endpoint.apiVersion >= 1.27\\\" ng-model=\\\"$ctrl.formValues.Option\\\" on-change=\\\"($ctrl.onChangeOption)\\\"></option-panel>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n\\n  <button\\n    class=\\\"btn btn-sm btn-primary\\\"\\n    ng-click=\\\"$ctrl.submit()\\\"\\n    ng-disabled=\\\"$ctrl.disablePullAndRedeployButton()\\\"\\n    style=\\\"margin-top: 7px; margin-left: 0\\\"\\n    button-spinner=\\\"$ctrl.state.redeployInProgress\\\"\\n    analytics-on\\n    analytics-event=\\\"docker-stack-pull-redeploy\\\"\\n    analytics-category=\\\"docker\\\"\\n  >\\n    <span ng-hide=\\\"$ctrl.state.redeployInProgress\\\">\\n      <pr-icon icon=\\\"'refresh-cw'\\\" class=\\\"!mr-1\\\"></pr-icon>\\n      Pull and redeploy\\n    </span>\\n    <span ng-show=\\\"$ctrl.state.redeployInProgress\\\">In progress...</span>\\n  </button>\\n\\n  <button\\n    class=\\\"btn btn-sm btn-primary\\\"\\n    ng-click=\\\"$ctrl.saveGitSettings()\\\"\\n    ng-disabled=\\\"$ctrl.disableSaveSettingsButton()\\\"\\n    style=\\\"margin-top: 7px; margin-left: 0\\\"\\n    button-spinner=\\\"$ctrl.state.inProgress\\\"\\n    analytics-on\\n    analytics-event=\\\"docker-stack-update-git-settings\\\"\\n    analytics-category=\\\"docker\\\"\\n    analytics-properties=\\\"$ctrl.buildAnalyticsProperties()\\\"\\n  >\\n    <span ng-hide=\\\"$ctrl.state.inProgress\\\"> Save settings </span>\\n    <span ng-show=\\\"$ctrl.state.inProgress\\\">In progress...</span>\\n  </button>\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form class=\\\"form-horizontal\\\" name=\\\"$ctrl.optionForm\\\">\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px; margin-left: 15px; width: 98%\\\"> Options </div>\\n\\n    <!-- Prune service -->\\n    <div class=\\\"col-sm-12\\\">\\n      <label class=\\\"control-label text-left\\\">\\n        Prune services\\n        <portainer-tooltip position=\\\"'top'\\\" message=\\\"'Prune services that are no longer referenced.'\\\"></portainer-tooltip>\\n      </label>\\n      <label class=\\\"switch\\\" style=\\\"margin-left: 20px\\\"> <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.ngModel.Prune\\\" ng-change=\\\"$ctrl.switchPruneService()\\\" /><i></i> </label>\\n    </div>\\n    <!-- !Prune service -->\\n  </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/components/option-panel/option-panel.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<!-- extension -->\\n<div class=\\\"blocklist-item\\\" ng-click=\\\"$ctrl.goTo($ctrl.model)\\\">\\n  <div class=\\\"blocklist-item-box\\\">\\n    <!-- extension-image -->\\n    <span class=\\\"blocklist-item-logo\\\">\\n      <img class=\\\"blocklist-item-logo\\\" ng-if=\\\"$ctrl.model.Id == 1 || $ctrl.model.Id == 2 || $ctrl.model.Id == 3\\\" src=\\\"\" + require(\"@/assets/images/support_1.png\") + \"\\\" />\\n      <img class=\\\"blocklist-item-logo\\\" ng-if=\\\"$ctrl.model.Id == 4 || $ctrl.model.Id == 5\\\" src=\\\"\" + require(\"@/assets/images/support_2.png\") + \"\\\" />\\n    </span>\\n    <!-- !extension-image -->\\n    <!-- extension-details -->\\n    <span class=\\\"col-sm-12\\\">\\n      <!-- blocklist-item-line1 -->\\n      <div class=\\\"blocklist-item-line\\\">\\n        <span>\\n          <span class=\\\"blocklist-item-title\\\">\\n            {{ $ctrl.model.Name }}\\n          </span>\\n        </span>\\n      </div>\\n      <!-- !blocklist-item-line1 -->\\n      <!-- blocklist-item-line2 -->\\n      <div class=\\\"blocklist-item-line\\\">\\n        <span>\\n          <span class=\\\"blocklist-item-desc\\\">\\n            {{ $ctrl.model.ShortDescription }}\\n          </span>\\n        </span>\\n      </div>\\n      <!-- !blocklist-item-line2 -->\\n    </span>\\n    <!-- !extension-details -->\\n  </div>\\n  <!-- !extension -->\\n</div>\\n\";;\nvar path = 'app/portainer/components/product-list/product-item/productItem.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle\\\">\\n          <pr-icon icon=\\\"'zap'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n          {{ $ctrl.titleText }}\\n        </div>\\n      </div>\\n\\n      <div class=\\\"blocklist\\\">\\n        <product-item ng-repeat=\\\"product in $ctrl.products\\\" model=\\\"product\\\" go-to=\\\"$ctrl.goTo\\\"></product-item>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/product-list/productList.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\" ng-if=\\\"$ctrl.registry\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"radio\\\" title-text=\\\"Registry\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td style=\\\"padding-left: 20px\\\">Name</td>\\n              <td>\\n                {{ $ctrl.registry.Name }}\\n              </td>\\n            </tr>\\n            <tr>\\n              <td style=\\\"padding-left: 20px\\\">URL</td>\\n              <td>\\n                {{ $ctrl.registry.URL }}\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/components/registry-details/registry-details.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"sensitive-details-container\\\">\\n  <div class=\\\"text-wrap\\\">{{ $ctrl.key }}</div>\\n  <show-hide class=\\\"show-hide-container\\\" value=\\\"$ctrl.value\\\" use-asterisk=\\\"true\\\"></show-hide>\\n  <copy-button value=\\\"$ctrl.value\\\"></copy-button>\\n</div>\\n\";;\nvar path = 'app/portainer/components/sensitive-details/sensitive-details.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"small text-muted text-wrap\\\">\\n  <span ng-if=\\\"!$ctrl.show && $ctrl.useAsterisk\\\">********</span>\\n  <span ng-if=\\\"$ctrl.show\\\">{{ $ctrl.value }}</span>\\n</div>\\n\\n<button type=\\\"button\\\" class=\\\"btn btn-link nopadding\\\" ng-click=\\\"$ctrl.show = !$ctrl.show\\\" title=\\\"Show/Hide value\\\">\\n  <div ng-if=\\\"!$ctrl.show\\\">\\n    <pr-icon icon=\\\"'eye-off'\\\"></pr-icon>\\n    Show</div\\n  >\\n  <div ng-if=\\\"$ctrl.show\\\">\\n    <pr-icon icon=\\\"'eye'\\\"></pr-icon>\\n    Hide</div\\n  >\\n</button>\\n\";;\nvar path = 'app/portainer/components/show-hide/show-hide.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <rzslider rz-slider-options=\\\"$ctrl.options\\\" rz-slider-model=\\\"$ctrl.model\\\"></rzslider>\\n</div>\\n\";;\nvar path = 'app/portainer/components/slider/slider.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div authorization=\\\"PortainerStackMigrate\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Stack duplication / migration </div>\\n  <rd-widget>\\n    <rd-widget-body>\\n      <form class=\\\"form-horizontal\\\" name=\\\"dupStackForm\\\">\\n        <div class=\\\"form-group\\\">\\n          <span class=\\\"small\\\" style=\\\"margin-top: 10px\\\">\\n            <p class=\\\"text-muted\\\"> This feature allows you to duplicate or migrate this stack. </p>\\n          </span>\\n        </div>\\n\\n        <div class=\\\"form-group\\\">\\n          <input\\n            class=\\\"form-control\\\"\\n            placeholder=\\\"Stack name (optional for migration)\\\"\\n            aria-placeholder=\\\"Stack name\\\"\\n            name=\\\"new_stack_name\\\"\\n            ng-pattern=\\\"$ctrl.STACK_NAME_VALIDATION_REGEX\\\"\\n            ng-model=\\\"$ctrl.formValues.newName\\\"\\n          />\\n        </div>\\n        <div class=\\\"form-group\\\" ng-show=\\\"dupStackForm.new_stack_name.$invalid\\\">\\n          <div class=\\\"col-sm-12 small text-warning\\\">\\n            <div ng-messages=\\\"dupStackForm.new_stack_name.$error\\\">\\n              <p ng-message=\\\"pattern\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                <span>This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').</span>\\n              </p>\\n            </div>\\n          </div>\\n        </div>\\n\\n        <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.endpoints && $ctrl.groups\\\">\\n          <por-select value=\\\"$ctrl.formValues.endpointId\\\" on-change=\\\"($ctrl.onChangeEnvironment)\\\" options=\\\"$ctrl.environmentSelectorOptions\\\"></por-select>\\n        </div>\\n\\n        <div class=\\\"form-group\\\">\\n          <button\\n            class=\\\"btn btn-sm btn-primary\\\"\\n            ng-click=\\\"$ctrl.migrateStack()\\\"\\n            ng-disabled=\\\"$ctrl.isMigrationButtonDisabled()\\\"\\n            style=\\\"margin-top: 7px; margin-left: 0\\\"\\n            button-spinner=\\\"$ctrl.state.migrationInProgress\\\"\\n          >\\n            <span ng-hide=\\\"$ctrl.state.migrationInProgress\\\">\\n              <pr-icon icon=\\\"'arrow-right'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n              Migrate\\n            </span>\\n            <span ng-show=\\\"$ctrl.state.migrationInProgress\\\">Migration in progress...</span>\\n          </button>\\n          <button\\n            class=\\\"btn btn-sm btn-primary\\\"\\n            ng-click=\\\"$ctrl.duplicateStack()\\\"\\n            ng-disabled=\\\"!$ctrl.isFormValidForDuplication() || $ctrl.state.duplicationInProgress || $ctrl.state.migrationInProgress\\\"\\n            style=\\\"margin-top: 7px; margin-left: 0\\\"\\n            button-spinner=\\\"$ctrl.state.duplicationInProgress\\\"\\n          >\\n            <span ng-hide=\\\"$ctrl.state.duplicationInProgress\\\">\\n              <pr-icon icon=\\\"'copy'\\\" class-name=\\\"'space-right'\\\"></pr-icon>\\n              Duplicate\\n            </span>\\n            <span ng-show=\\\"$ctrl.state.duplicationInProgress\\\">Duplication in progress...</span>\\n          </button>\\n        </div>\\n\\n        <div class=\\\"form-group\\\">\\n          <div ng-if=\\\"$ctrl.yamlError && $ctrl.isEndpointSelected()\\\">\\n            <span class=\\\"text-danger small\\\">{{ $ctrl.yamlError }}</span>\\n          </div>\\n        </div>\\n      </form>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/stack-duplication-form/stack-duplication-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<i aria-hidden=\\\"true\\\" ng-class=\\\"['status-indicator', { ok: $ctrl.ok }]\\\"></i>\\n\";;\nvar path = 'app/portainer/components/status-indicator/status-indicator.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"mt-6\\\">\\n  <rd-widget>\\n    <rd-widget-header icon=\\\"sliders\\\" title-text=\\\"User theme\\\"></rd-widget-header>\\n    <rd-widget-body>\\n      <form class=\\\"form-horizontal\\\">\\n        <box-selector radio-name=\\\"'theme'\\\" value=\\\"$ctrl.state.themeColor\\\" options=\\\"$ctrl.state.availableThemes\\\" on-change=\\\"($ctrl.setThemeColor)\\\"></box-selector>\\n      </form>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/theme/theme-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Azure configuration </div>\\n  <!-- applicationId-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"azure_credential_appid\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Application ID</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"azure_credential_appid\\\" ng-model=\\\"$ctrl.applicationId\\\" placeholder=\\\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\\\" required />\\n    </div>\\n  </div>\\n  <!-- !applicationId-input -->\\n  <!-- tenantId-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"azure_credential_tenantid\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Tenant ID</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"azure_credential_tenantid\\\" ng-model=\\\"$ctrl.tenantId\\\" placeholder=\\\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\\\" required />\\n    </div>\\n  </div>\\n  <!-- !tenantId-input -->\\n  <!-- authenticationkey-input -->\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"azure_credential_authkey\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Authentication key</label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input\\n        type=\\\"text\\\"\\n        class=\\\"form-control\\\"\\n        name=\\\"azure_credential_authkey\\\"\\n        ng-model=\\\"$ctrl.authenticationKey\\\"\\n        placeholder=\\\"cOrXoK/1D35w8YQ8nH1/8ZGwzz45JIYD5jxHKXEQknk=\\\"\\n        required\\n      />\\n    </div>\\n  </div>\\n  <!-- !authenticationkey-input -->\\n</div>\\n\";;\nvar path = 'app/portainer/environments/azure-endpoint-config/azureEndpointConfig.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\"> Provider </div>\\n\\n<box-selector value=\\\"$ctrl.value\\\" options=\\\"$ctrl.options\\\" on-change=\\\"($ctrl.onChange)\\\" radio-name=\\\"'oauth_provider'\\\"></box-selector>\\n\";;\nvar path = 'app/portainer/oauth/components/oauth-providers-selector/oauth-providers-selector.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form name=\\\"oauthSettingsForm\\\">\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Single Sign-On </div>\\n\\n  <!-- SSO -->\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label=\\\"'Use SSO'\\\"\\n        tooltip=\\\"'When using SSO the OAuth provider is not forced to prompt for credentials.'\\\"\\n        name=\\\"'use-sso'\\\"\\n        checked=\\\"$ctrl.settings.SSO\\\"\\n        on-change=\\\"($ctrl.updateSSO)\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n  <!-- !SSO -->\\n\\n  <!-- HideInternalAuth -->\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.SSO\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label=\\\"'Hide internal authentication prompt'\\\"\\n        name=\\\"'hide-internal-auth'\\\"\\n        feature-id=\\\"$ctrl.limitedFeature\\\"\\n        checked=\\\"$ctrl.settings.HideInternalAuth\\\"\\n        on-change=\\\"($ctrl.onChangeHideInternalAuth)\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n  <!-- !HideInternalAuth -->\\n\\n  <auto-user-provision-toggle ng-model=\\\"$ctrl.settings.OAuthAutoCreateUsers\\\">\\n    <field-description>\\n      With automatic user provisioning enabled, Portainer will create user(s) automatically with the standard user role. If disabled, users must be created beforehand in Portainer\\n      in order to login.\\n    </field-description>\\n  </auto-user-provision-toggle>\\n\\n  <div ng-if=\\\"$ctrl.settings.OAuthAutoCreateUsers\\\">\\n    <div class=\\\"form-group\\\">\\n      <span class=\\\"col-sm-12 text-muted small\\\">\\n        <p>The users created by the automatic provisioning feature can be added to a default team on creation.</p>\\n        <p>\\n          By assigning newly created users to a team, they will be able to access the environments associated to that team. This setting is optional and if not set, newly created\\n          users won't be able to access any environments.\\n        </p>\\n      </span>\\n    </div>\\n    <div class=\\\"form-group\\\">\\n      <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Default team</label>\\n      <span class=\\\"small text-muted\\\" style=\\\"margin-left: 20px\\\" ng-if=\\\"$ctrl.teams.length === 0\\\">\\n        You have not yet created any teams. Head over to the <a ui-sref=\\\"portainer.teams\\\">Teams view</a> to manage teams.\\n      </span>\\n\\n      <div class=\\\"col-sm-9\\\" ng-if=\\\"$ctrl.teams.length > 0\\\">\\n        <div class=\\\"col-sm-12 small text-muted\\\">\\n          <p class=\\\"vertical-center\\\">\\n            <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n            The default team option will be disabled when automatic team membership is enabled\\n          </p>\\n        </div>\\n        <div class=\\\"col-xs-12 vertical-center\\\">\\n          <select\\n            class=\\\"form-control\\\"\\n            ng-disabled=\\\"$ctrl.settings.OAuthAutoMapTeamMemberships\\\"\\n            ng-model=\\\"$ctrl.settings.DefaultTeamID\\\"\\n            ng-options=\\\"team.Id as team.Name for team in $ctrl.teams\\\"\\n          >\\n            <option value=\\\"\\\">No team</option>\\n          </select>\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-md btn-danger\\\"\\n            ng-click=\\\"$ctrl.settings.DefaultTeamID = null\\\"\\n            ng-disabled=\\\"!$ctrl.settings.DefaultTeamID || $ctrl.settings.OAuthAutoMapTeamMemberships\\\"\\n            ng-if=\\\"$ctrl.teams.length > 0\\\"\\n          >\\n            <pr-icon icon=\\\"'x'\\\" size=\\\"'md'\\\"></pr-icon>\\n          </button>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Team membership </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12 text-muted small\\\"> Automatic team membership synchronizes the team membership based on a custom claim in the token from the OAuth provider. </div>\\n  </div>\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12\\\">\\n      <por-switch-field\\n        label=\\\"'Automatic team membership'\\\"\\n        name=\\\"'tls'\\\"\\n        feature-id=\\\"$ctrl.limitedFeature\\\"\\n        checked=\\\"$ctrl.settings.OAuthAutoMapTeamMemberships\\\"\\n        on-change=\\\"($ctrl.onToggleAutoTeamMembership)\\\"\\n      ></por-switch-field>\\n    </div>\\n  </div>\\n\\n  <div ng-if=\\\"$ctrl.settings.OAuthAutoMapTeamMemberships\\\">\\n    <div class=\\\"form-group\\\">\\n      <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        Claim name\\n        <portainer-tooltip message=\\\"'The OpenID Connect UserInfo Claim name that contains the team identifier the user belongs to.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <div class=\\\"col-xs-11 col-lg-10\\\">\\n          <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"oauth_token_claim_name\\\" ng-model=\\\"$ctrl.settings.TeamMemberships.OAuthClaimName\\\" placeholder=\\\"groups\\\" />\\n        </div>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Statically assigned teams </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <span class=\\\"label label-default interactive vertical-center ml-4\\\" ng-click=\\\"$ctrl.addTeamMembershipMapping()\\\">\\n          <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n          add team mapping\\n        </span>\\n\\n        <div class=\\\"col-sm-12 form-inline\\\" ng-repeat=\\\"mapping in $ctrl.settings.TeamMemberships.OAuthClaimMappings\\\" style=\\\"margin-top: 0.75em\\\">\\n          <div class=\\\"input-group input-group-sm col-sm-5\\\">\\n            <span class=\\\"input-group-addon\\\">claim value regex</span>\\n            <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"mapping.ClaimValRegex\\\" />\\n          </div>\\n          <span style=\\\"margin: 0px 0.5em\\\">maps to</span>\\n          <div class=\\\"input-group input-group-sm col-sm-3 col-lg-4\\\">\\n            <span class=\\\"input-group-addon\\\">team</span>\\n            <select\\n              class=\\\"form-control\\\"\\n              ng-init=\\\"mapping.Team = mapping.Team || $ctrl.settings.DefaultTeamID\\\"\\n              ng-model=\\\"mapping.Team\\\"\\n              ng-options=\\\"team.Id as team.Name for team in $ctrl.teams\\\"\\n            >\\n              <option selected value=\\\"\\\">Select a team</option>\\n            </select>\\n          </div>\\n          <button type=\\\"button\\\" class=\\\"btn btn-md btn-danger\\\" ng-click=\\\"$ctrl.removeTeamMembership($index)\\\">\\n            <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n          </button>\\n\\n          <div>\\n            <div class=\\\"small text-warning vertical-center mt-1\\\" ng-show=\\\"!mapping.ClaimValRegex\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n              Claim value regex is required.\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <div class=\\\"col-sm-12 text-muted small\\\" style=\\\"margin-bottom: 0.5em\\\"> The default team will be assigned when the user does not belong to any other team </div>\\n      <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Default team</label>\\n      <span class=\\\"small text-muted\\\" style=\\\"margin-left: 20px\\\" ng-if=\\\"$ctrl.teams.length === 0\\\">\\n        You have not yet created any teams. Head over to the <a ui-sref=\\\"portainer.teams\\\">Teams view</a> to manage teams.\\n      </span>\\n\\n      <div class=\\\"col-sm-9\\\" ng-if=\\\"$ctrl.teams.length > 0\\\">\\n        <div class=\\\"col-xs-11\\\">\\n          <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.settings.DefaultTeamID\\\" ng-options=\\\"team.Id as team.Name for team in $ctrl.teams\\\">\\n            <option value=\\\"\\\">No team</option>\\n          </select>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <oauth-providers-selector on-change=\\\"($ctrl.onSelectProvider)\\\" value=\\\"$ctrl.state.provider\\\"></oauth-providers-selector>\\n\\n  <div ng-if=\\\"$ctrl.state.provider == 'custom' || $ctrl.state.overrideConfiguration\\\">\\n    <div class=\\\"col-sm-12 form-section-title\\\">OAuth Configuration</div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_client_id\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        {{ $ctrl.state.provider == 'microsoft' ? 'Application ID' : 'Client ID' }}\\n        <portainer-tooltip message=\\\"'Public identifier of the OAuth application'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          id=\\\"oauth_client_id\\\"\\n          ng-model=\\\"$ctrl.settings.ClientID\\\"\\n          placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n          tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_client_secret\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        {{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }}\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"password\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_client_secret\\\"\\n          ng-model=\\\"$ctrl.settings.ClientSecret\\\"\\n          placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n          autocomplete=\\\"new-password\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n          tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_authorization_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        Authorization URL\\n        <portainer-tooltip message=\\\"'URL used to authenticate against the OAuth provider. Will redirect the user to the OAuth provider login view'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_authorization_uri\\\"\\n          ng-model=\\\"$ctrl.settings.AuthorizationURI\\\"\\n          placeholder=\\\"https://example.com/oauth/authorize\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_access_token_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        Access token URL\\n        <portainer-tooltip message=\\\"'URL used by Portainer to exchange a valid OAuth authentication code for an access token'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_access_token_uri\\\"\\n          ng-model=\\\"$ctrl.settings.AccessTokenURI\\\"\\n          placeholder=\\\"https://example.com/oauth/token\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_resource_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        Resource URL\\n        <portainer-tooltip message=\\\"'URL used by Portainer to retrieve information about the authenticated user'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_resource_uri\\\"\\n          ng-model=\\\"$ctrl.settings.ResourceURI\\\"\\n          placeholder=\\\"https://example.com/user\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_redirect_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        Redirect URL\\n        <portainer-tooltip\\n          message=\\\"'URL used by the OAuth provider to redirect the user after successful authentication. Should be set to your Portainer instance URL'\\\"\\n        ></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_redirect_uri\\\"\\n          ng-model=\\\"$ctrl.settings.RedirectURI\\\"\\n          placeholder=\\\"http://yourportainer.com/\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_logout_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        Logout URL\\n        <portainer-tooltip\\n          message=\\\"'URL used by Portainer to redirect the user to the OAuth provider in order to log the user out of the identity provider session.'\\\"\\n        ></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_logout_url\\\"\\n          ng-model=\\\"$ctrl.settings.LogoutURI\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_user_identifier\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        User identifier\\n        <portainer-tooltip\\n          message=\\\"'Identifier that will be used by Portainer to create an account for the authenticated user. Retrieved from the resource server specified via the Resource URL field'\\\"\\n        ></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_user_identifier\\\"\\n          ng-model=\\\"$ctrl.settings.UserIdentifier\\\"\\n          placeholder=\\\"id\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"oauth_scopes\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n        Scopes\\n        <portainer-tooltip\\n          message=\\\"'Scopes required by the OAuth provider to retrieve information about the authenticated user. Refer to your OAuth provider documentation for more information about this'\\\"\\n        ></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-9 col-lg-10\\\">\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"oauth_scopes\\\"\\n          ng-model=\\\"$ctrl.settings.Scopes\\\"\\n          placeholder=\\\"id,email,name\\\"\\n          ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n          ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n        />\\n      </div>\\n    </div>\\n\\n    <oauth-auth-style value=\\\"$ctrl.settings.AuthStyle\\\" on-change=\\\"($ctrl.onChangeAuthStyle)\\\"></oauth-auth-style>\\n    <save-auth-settings-button\\n      on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n      save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n      save-button-disabled=\\\"!$ctrl.isOAuthTeamMembershipFormValid() || oauthSettingsForm.$invalid\\\"\\n      limited-feature-id=\\\"$ctrl.limitedFeature\\\"\\n      limited-feature-class=\\\"$ctrl.limitedFeatureClass\\\"\\n      class-name=\\\"'oauth-save-settings-button'\\\"\\n    ></save-auth-settings-button>\\n  </div>\\n\\n  <div ng-if=\\\"$ctrl.state.provider != 'custom'\\\" class=\\\"limited-be be-indicator-container\\\">\\n    <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n    <div class=\\\"limited-be-content\\\">\\n      <div class=\\\"col-sm-12 form-section-title\\\">OAuth Configuration</div>\\n\\n      <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.provider == 'microsoft'\\\">\\n        <label for=\\\"oauth_microsoft_tenant_id\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n          Tenant ID\\n          <portainer-tooltip message=\\\"'ID of the Azure Directory you wish to authenticate against. Also known as the Directory ID'\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"oauth_microsoft_tenant_id\\\"\\n            placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n            ng-model=\\\"$ctrl.state.microsoftTenantID\\\"\\n            ng-change=\\\"$ctrl.onMicrosoftTenantIDChange()\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeature}}\\\"\\n            limited-feature-class=\\\"limited-be\\\"\\n            limited-feature-disabled\\n            limited-feature-tabindex=\\\"-1\\\"\\n            required\\n          />\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"oauth_client_id\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n          {{ $ctrl.state.provider == 'microsoft' ? 'Application ID' : 'Client ID' }}\\n          <portainer-tooltip message=\\\"'Public identifier of the OAuth application'\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <input\\n            type=\\\"text\\\"\\n            id=\\\"oauth_client_id\\\"\\n            ng-model=\\\"$ctrl.settings.ClientID\\\"\\n            placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n            ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n            ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n            tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n          />\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"oauth_client_secret\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n          {{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }}\\n        </label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <input\\n            type=\\\"password\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"oauth_client_secret\\\"\\n            ng-model=\\\"$ctrl.settings.ClientSecret\\\"\\n            placeholder=\\\"*******\\\"\\n            autocomplete=\\\"new-password\\\"\\n            ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n            ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n            tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n          />\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"!$ctrl.state.overrideConfiguration\\\" ng-click=\\\"$ctrl.state.overrideConfiguration = true;\\\">\\n            <pr-icon icon=\\\"'wrench'\\\"></pr-icon>\\n            Override default configuration\\n          </a>\\n          <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"$ctrl.state.overrideConfiguration\\\" ng-click=\\\"$ctrl.useDefaultProviderConfiguration($ctrl.state.provider)\\\">\\n            <pr-icon icon=\\\"'settings'\\\"></pr-icon>\\n            Use default configuration\\n          </a>\\n        </div>\\n      </div>\\n      <save-auth-settings-button\\n        on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n        save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n        save-button-disabled=\\\"!$ctrl.isOAuthTeamMembershipFormValid() || oauthSettingsForm.$invalid\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeature\\\"\\n        limited-feature-class=\\\"$ctrl.limitedFeatureClass\\\"\\n        class-name=\\\"'oauth-save-settings-button'\\\"\\n      ></save-auth-settings-button>\\n    </div>\\n  </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/oauth/components/oauth-settings/oauth-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable access-viewer-datatable\\\">\\n  <div class=\\\"toolBar vertical-center pl-0 pr-0\\\">\\n    <div class=\\\"toolBarTitle vertical-center\\\">\\n      <div>\\n        <div class=\\\"form-section-title mb-1\\\">Access</div>\\n        <div class=\\\"vertical-center\\\">\\n          <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" size=\\\"'sm'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n          <span class=\\\"small text-muted\\\"> Effective role for each environment will be displayed for the selected user </span>\\n        </div>\\n      </div>\\n    </div>\\n    <div class=\\\"searchBar vertical-center\\\">\\n      <pr-icon icon=\\\"'search'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n      <input\\n        type=\\\"text\\\"\\n        class=\\\"searchInput ml-1\\\"\\n        ng-model=\\\"$ctrl.state.textFilter\\\"\\n        ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n        placeholder=\\\"Search...\\\"\\n        ng-model-options=\\\"{ debounce: 300 }\\\"\\n      />\\n    </div>\\n  </div>\\n  <div class=\\\"table-responsive\\\">\\n    <table class=\\\"table-hover nowrap-cells table\\\">\\n      <thead>\\n        <tr>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Environment'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'EndpointName'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'EndpointName' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('EndpointName')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>\\n            <table-column-header\\n              col-title=\\\"'Role'\\\"\\n              can-sort=\\\"true\\\"\\n              is-sorted=\\\"$ctrl.state.orderBy === 'RoleName'\\\"\\n              is-sorted-desc=\\\"$ctrl.state.orderBy === 'RoleName' && $ctrl.state.reverseOrder\\\"\\n              ng-click=\\\"$ctrl.changeOrderBy('RoleName')\\\"\\n            ></table-column-header>\\n          </th>\\n          <th>Access origin</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr\\n          dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit)) track by $index\\\"\\n        >\\n          <td>{{ item.EndpointName }}</td>\\n          <td>{{ item.RoleName }}</td>\\n          <td\\n            >{{ item.TeamName ? 'Team' : 'User' }} <code ng-if=\\\"item.TeamName\\\">{{ item.TeamName }}</code> access defined on {{ item.AccessLocation }}\\n            <code ng-if=\\\"item.GroupName\\\">{{ item.GroupName }}</code>\\n            <a ng-if=\\\"!item.GroupName && $ctrl.isAdmin\\\" ui-sref=\\\"portainer.endpoints.endpoint.access({id: item.EndpointId})\\\"><pr-icon icon=\\\"'users'\\\"></pr-icon> Manage access </a>\\n            <a ng-if=\\\"item.GroupName && $ctrl.isAdmin\\\" ui-sref=\\\"portainer.groups.group.access({id: item.GroupId})\\\"><pr-icon icon=\\\"'users'\\\"></pr-icon> Manage access </a>\\n          </td>\\n        </tr>\\n        <tr ng-if=\\\"!$ctrl.dataset\\\">\\n          <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Select a user to show associated access and role</td>\\n        </tr>\\n        <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n          <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">The selected user does not have access to any environment(s)</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </div>\\n  <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n    <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n    <div class=\\\"paginationControls\\\">\\n      <form class=\\\"form-inline\\\">\\n        <span class=\\\"limitSelector\\\">\\n          <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n          <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n            <option value=\\\"0\\\">All</option>\\n            <option value=\\\"10\\\">10</option>\\n            <option value=\\\"25\\\">25</option>\\n            <option value=\\\"50\\\">50</option>\\n            <option value=\\\"100\\\">100</option>\\n          </select>\\n        </span>\\n        <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n      </form>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/components/access-viewer/access-viewer-datatable/access-viewer-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12\\\" style=\\\"margin-bottom: 0px\\\">\\n  <div class=\\\"be-indicator-container limited-be\\\">\\n    <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n    <div class=\\\"limited-be-content\\\">\\n      <rd-widget>\\n        <rd-widget-header icon=\\\"user-x\\\">\\n          <header-title> Effective access viewer </header-title>\\n        </rd-widget-header>\\n        <rd-widget-body>\\n          <form class=\\\"form-horizontal\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> User </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <span class=\\\"small text-muted\\\" ng-if=\\\"$ctrl.users.length === 0\\\"> No user available </span>\\n\\n                <por-select ng-if=\\\"$ctrl.users.length > 0\\\" value=\\\"$ctrl.selectedUserId\\\" options=\\\"$ctrl.users\\\" on-change=\\\"($ctrl.onUserSelect)\\\" placeholder=\\\"'Select a user'\\\">\\n                </por-select>\\n              </div>\\n            </div>\\n            <access-viewer-datatable table-key=\\\"access_viewer\\\" dataset=\\\"$ctrl.userRoles\\\" order-by=\\\"EndpointName\\\" is-admin=\\\"$ctrl.isAdmin\\\"> </access-viewer-datatable>\\n          </form>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/components/access-viewer/access-viewer.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar vertical-center\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'file-code'\\\"></pr-icon>\\n          </div>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput ml-1\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Description'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Description'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Description' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Description')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th class=\\\"be-visual-indicator-col\\\"></th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>{{ item.Name }}</td>\\n              <td>{{ item.Description }}</td>\\n              <td class=\\\"be-visual-indicator-col\\\" ng-switch on=\\\"$ctrl.isDefaultItem(item)\\\">\\n                <span ng-switch-when=\\\"false\\\">\\n                  <be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator>\\n                </span>\\n                <b ng-switch-when=\\\"true\\\">Default</b>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No role available.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/components/roles-datatable/roles-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Roles'\\\" breadcrumbs=\\\"['Role management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <roles-datatable title-text=\\\"Roles\\\" dataset=\\\"$ctrl.roles\\\" table-key=\\\"roles\\\"></roles-datatable>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <access-viewer> </access-viewer>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/views/roles/roles.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create registry'\\\" breadcrumbs=\\\"[{label:'Registries', link:'portainer.registries'}, 'Add registry']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\">\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Registry provider </div>\\n\\n          <box-selector radio-name=\\\"'availableRegistry'\\\" value=\\\"$ctrl.state.registryValue\\\" options=\\\"$ctrl.state.availableRegistry\\\" on-change=\\\"($ctrl.setRegistry)\\\"></box-selector>\\n\\n          <registry-form-quay\\n            ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.QUAY\\\"\\n            model=\\\"$ctrl.model\\\"\\n            form-action=\\\"$ctrl.createRegistry\\\"\\n            form-action-label=\\\"Add registry\\\"\\n            action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n            name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n          ></registry-form-quay>\\n\\n          <registry-form-azure\\n            ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.AZURE\\\"\\n            model=\\\"$ctrl.model\\\"\\n            form-action=\\\"$ctrl.createRegistry\\\"\\n            form-action-label=\\\"Add registry\\\"\\n            action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n            name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n          ></registry-form-azure>\\n\\n          <registry-form-custom\\n            ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.CUSTOM\\\"\\n            model=\\\"$ctrl.model\\\"\\n            form-action=\\\"$ctrl.createRegistry\\\"\\n            form-action-label=\\\"Add registry\\\"\\n            action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n            name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n          ></registry-form-custom>\\n\\n          <registry-form-ecr\\n            ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.ECR\\\"\\n            model=\\\"$ctrl.model\\\"\\n            form-action=\\\"$ctrl.createRegistry\\\"\\n            form-action-label=\\\"Add registry\\\"\\n            action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n            name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n          ></registry-form-ecr>\\n\\n          <registry-form-proget\\n            ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.PROGET\\\"\\n            model=\\\"$ctrl.model\\\"\\n            form-action=\\\"$ctrl.createRegistry\\\"\\n            form-action-label=\\\"Add registry\\\"\\n            action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n            name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n          ></registry-form-proget>\\n\\n          <registry-form-gitlab\\n            ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.GITLAB\\\"\\n            model=\\\"$ctrl.model\\\"\\n            retrieve-registries=\\\"$ctrl.retrieveGitlabRegistries\\\"\\n            create-registries=\\\"$ctrl.createGitlabRegistries\\\"\\n            projects=\\\"$ctrl.gitlabProjects\\\"\\n            state=\\\"$ctrl.state\\\"\\n            action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n            reset-defaults=\\\"$ctrl.useDefaultGitlabConfiguration\\\"\\n          ></registry-form-gitlab>\\n          <registry-form-dockerhub\\n            ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.DOCKERHUB\\\"\\n            model=\\\"$ctrl.model\\\"\\n            form-action=\\\"$ctrl.createRegistry\\\"\\n            form-action-label=\\\"Add registry\\\"\\n            action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n            name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n          ></registry-form-dockerhub>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/registry-management/views/create/createRegistry.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Registry details'\\\" breadcrumbs=\\\"[{label:'Registries', link:'portainer.registries'}, $ctrl.registry.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"!$ctrl.state.loading\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"editRegistry\\\">\\n          <!-- provider -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Provider</label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.provider\\\" disabled />\\n            </div>\\n          </div>\\n\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input\\n                type=\\\"text\\\"\\n                class=\\\"form-control\\\"\\n                id=\\\"registry_name\\\"\\n                name=\\\"registry_name\\\"\\n                ng-model=\\\"$ctrl.registry.Name\\\"\\n                placeholder=\\\"e.g. my-registry\\\"\\n                ng-change=\\\"$ctrl.onChangeName()\\\"\\n                required\\n              />\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-show=\\\"$ctrl.state.nameAlreadyExists\\\">\\n            <div class=\\\"col-sm-12 small text-warning\\\">\\n              <div>\\n                <p class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  A registry with the same name already exists.\\n                </p>\\n              </div>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_name.$invalid\\\">\\n            <div class=\\\"col-sm-12 small text-warning\\\">\\n              <div ng-messages=\\\"editRegistry.registry_name.$error\\\">\\n                <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  This field is required.\\n                </p>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- registry-url-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n              <span class=\\\"required\\\">Registry URL</span>\\n              <portainer-tooltip message=\\\"'URL or IP address of a Docker registry. Any protocol or trailing slash will be stripped if present.'\\\"> </portainer-tooltip>\\n            </label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input\\n                type=\\\"text\\\"\\n                class=\\\"form-control\\\"\\n                id=\\\"registry_url\\\"\\n                name=\\\"registry_url\\\"\\n                ng-model=\\\"$ctrl.registry.URL\\\"\\n                placeholder=\\\"e.g. 10.0.0.10:5000 or myregistry.domain.tld\\\"\\n                ng-disabled=\\\"$ctrl.registry.Type === $ctrl.RegistryTypes.DOCKERHUB || $ctrl.registry.Type === $ctrl.RegistryTypes.QUAY || $ctrl.registry.Type === $ctrl.RegistryTypes.GITLAB\\\"\\n                required\\n              />\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_url.$invalid\\\">\\n            <div class=\\\"col-sm-12 small text-warning\\\">\\n              <div ng-messages=\\\"editRegistry.registry_url.$error\\\">\\n                <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  This field is required.\\n                </p>\\n              </div>\\n            </div>\\n          </div>\\n\\n          <!-- base-url-input -->\\n          <div ng-if=\\\"$ctrl.registry.Type === $ctrl.RegistryTypes.PROGET\\\">\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"registry_base_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n                <span class=\\\"required\\\">Base URL</span>\\n                <portainer-tooltip message=\\\"'The base URL of the ProGet registry.'\\\"> </portainer-tooltip>\\n              </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  id=\\\"registry_base_url\\\"\\n                  name=\\\"registry_base_url\\\"\\n                  ng-model=\\\"$ctrl.registry.BaseURL\\\"\\n                  placeholder=\\\"e.g. 10.0.0.10:5000 or myregistry.domain.tld\\\"\\n                  required\\n                />\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_base_url.$invalid\\\">\\n              <div class=\\\"col-sm-12 small text-warning\\\">\\n                <div ng-messages=\\\"editRegistry.registry_base_url.$error\\\">\\n                  <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    This field is required.\\n                  </p>\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !registry-url-input -->\\n\\n          <!-- authentication-checkbox -->\\n          <div\\n            class=\\\"form-group\\\"\\n            ng-if=\\\"\\n              $ctrl.registry.Type !== $ctrl.RegistryTypes.DOCKERHUB &&\\n              $ctrl.registry.Type !== $ctrl.RegistryTypes.QUAY &&\\n              $ctrl.registry.Type !== $ctrl.RegistryTypes.PROGET &&\\n              $ctrl.registry.Type !== $ctrl.RegistryTypes.AZURE &&\\n              $ctrl.registry.Type !== $ctrl.RegistryTypes.GITLAB\\n            \\\"\\n          >\\n            <label for=\\\"registry_auth\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n              Authentication\\n              <portainer-tooltip message=\\\"'Enable this option if you need to specify credentials to connect to this registry.'\\\"> </portainer-tooltip>\\n            </label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <por-switch-field checked=\\\"$ctrl.registry.Authentication\\\" on-change=\\\"($ctrl.toggleAuthentication)\\\" switch-values=\\\"{on:'Yes',off:'No'}\\\"></por-switch-field>\\n            </div>\\n          </div>\\n          <!-- !authentication-checkbox -->\\n\\n          <!-- authentication-credentials -->\\n          <div ng-if=\\\"$ctrl.registry.Authentication\\\">\\n            <!-- credentials-user -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"credentials_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n                {{ $ctrl.registry.Type === $ctrl.RegistryTypes.ECR ? 'AWS Access Key' : 'Username' }}\\n              </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"credentials_username\\\" name=\\\"credentials_username\\\" ng-model=\\\"$ctrl.registry.Username\\\" required />\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.credentials_username.$invalid\\\">\\n              <div class=\\\"col-sm-12 small text-warning\\\">\\n                <div ng-messages=\\\"editRegistry.credentials_username.$error\\\">\\n                  <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    This field is required.\\n                  </p>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !credentials-user -->\\n            <!-- credentials-password -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"credentials_password\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n                {{ $ctrl.passwordLabel() }}\\n              </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"password\\\"\\n                  class=\\\"form-control\\\"\\n                  id=\\\"credentials_password\\\"\\n                  name=\\\"credentials_password\\\"\\n                  placeholder=\\\"*******\\\"\\n                  ng-model=\\\"$ctrl.Password\\\"\\n                  autocomplete=\\\"off\\\"\\n                />\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.credentials_password.$invalid\\\">\\n              <div class=\\\"col-sm-12 small text-warning\\\">\\n                <div ng-messages=\\\"editRegistry.credentials_password.$error\\\">\\n                  <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    This field is required.\\n                  </p>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- region -->\\n            <div ng-if=\\\"$ctrl.registry.Type == $ctrl.RegistryTypes.ECR\\\">\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"registry_region\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Region</label>\\n                <div class=\\\"col-sm-9 col-lg-10\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_region\\\" name=\\\"registry_region\\\" ng-model=\\\"$ctrl.registry.Ecr.Region\\\" placeholder=\\\"us-west-1\\\" required />\\n                </div>\\n              </div>\\n              <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_region.$invalid\\\">\\n                <div class=\\\"col-sm-12 small text-warning\\\">\\n                  <div ng-messages=\\\"editRegistry.registry_region.$error\\\">\\n                    <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                      This field is required.\\n                    </p>\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !region -->\\n            <!-- !credentials-password -->\\n          </div>\\n          <!-- !authentication-credentials -->\\n\\n          <div ng-if=\\\"$ctrl.registry.Type == $ctrl.RegistryTypes.QUAY\\\">\\n            <!-- organisation-checkbox -->\\n            <div class=\\\"form-group\\\">\\n              <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Use organization registry </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <por-switch-field\\n                  checked=\\\"$ctrl.registry.Quay.UseOrganisation\\\"\\n                  on-change=\\\"($ctrl.toggleQuayUseOrganisation)\\\"\\n                  switch-values=\\\"{on:'Yes',off:'No'}\\\"\\n                ></por-switch-field>\\n              </div>\\n            </div>\\n            <!-- !organisation-checkbox -->\\n            <div ng-if=\\\"$ctrl.registry.Quay.UseOrganisation\\\">\\n              <!-- organisation_name -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"organisation_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Organization name</label>\\n                <div class=\\\"col-sm-9 col-lg-10\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"organisation_name\\\" name=\\\"organisation_name\\\" ng-model=\\\"$ctrl.registry.Quay.OrganisationName\\\" required />\\n                </div>\\n              </div>\\n              <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.organisation_name.$invalid\\\">\\n                <div class=\\\"col-sm-12 small text-warning\\\">\\n                  <div ng-messages=\\\"editRegistry.organisation_name.$error\\\">\\n                    <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                      This field is required.\\n                    </p>\\n                  </div>\\n                </div>\\n              </div>\\n              <!-- !organisation_name -->\\n            </div>\\n          </div>\\n\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"$ctrl.isUpdateButtonDisabled() || editRegistry.$invalid\\\"\\n                ng-click=\\\"$ctrl.updateRegistry()\\\"\\n                button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"$ctrl.state.actionInProgress\\\">Update registry</span>\\n                <span ng-show=\\\"$ctrl.state.actionInProgress\\\">Updating registry...</span>\\n              </button>\\n              <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.registries\\\">Cancel</a>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/registry-management/views/edit/registry.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Registries'\\\" breadcrumbs=\\\"['Registry management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<information-panel title-text=\\\"Information\\\">\\n  <span class=\\\"small text-muted\\\"> View registries via an environment to manage access for user(s) and/or team(s) </span>\\n</information-panel>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <registries-datatable\\n      title-text=\\\"Registries\\\"\\n      title-icon=\\\"radio\\\"\\n      dataset=\\\"registries\\\"\\n      table-key=\\\"registries\\\"\\n      order-by=\\\"Name\\\"\\n      remove-action=\\\"removeAction\\\"\\n      can-browse=\\\"canBrowse\\\"\\n    ></registries-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/registry-management/views/list/registries.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\"> Automatic user provisioning </div>\\n<div class=\\\"form-group\\\">\\n  <span class=\\\"col-sm-12 text-muted small\\\" ng-transclude=\\\"description\\\"> </span>\\n</div>\\n<div class=\\\"form-group\\\">\\n  <div class=\\\"col-sm-12 vertical-center\\\">\\n    <label for=\\\"tls\\\" class=\\\"control-label !pt-0 text-left\\\"> Automatic user provisioning </label>\\n    <label class=\\\"switch my-0 ml-6\\\">\\n      <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.ngModel\\\" />\\n      <span class=\\\"slider round\\\"></span>\\n    </label>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/auto-user-provision-toggle/auto-user-provision-toggle.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form class=\\\"ad-settings\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-class=\\\"limited-be\\\">\\n  <div class=\\\"be-indicator-container\\\">\\n    <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeatureId\\\"></be-feature-indicator></div>\\n    <div class=\\\"limited-be-content\\\">\\n      <auto-user-provision-toggle ng-model=\\\"$ctrl.settings.AutoCreateUsers\\\">\\n        <field-description>\\n          With automatic user provisioning enabled, Portainer will create user(s) automatically with standard user role and assign them to team(s) which matches to LDAP group\\n          name(s). If disabled, users must be created in Portainer beforehand.\\n        </field-description>\\n      </auto-user-provision-toggle>\\n\\n      <div>\\n        <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n        <div class=\\\"form-group col-sm-12 text-muted small\\\">\\n          When using Microsoft AD authentication, Portainer will delegate user authentication to the Domain Controller(s) configured below; if there is no connectivity, Portainer\\n          will fallback to internal authentication.\\n        </div>\\n      </div>\\n\\n      <div class=\\\"col-sm-12 form-section-title\\\"> AD configuration </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <div class=\\\"col-sm-12 small text-muted\\\">\\n          <p class=\\\"vertical-center\\\">\\n            <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n            You can configure multiple AD Controllers for authentication fallback. Make sure all servers are using the same configuration (i.e. if TLS is enabled, they should all\\n            use the same certificates).\\n          </p>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"ldap_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"display: flex; flex-wrap: wrap\\\">\\n          AD Controller\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"label label-default interactive vertical-center\\\"\\n            style=\\\"border: 0\\\"\\n            ng-click=\\\"$ctrl.addLDAPUrl()\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          >\\n            <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n            Add additional server\\n          </button>\\n        </label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <div ng-repeat=\\\"url in $ctrl.settings.URLs track by $index\\\" style=\\\"display: flex; margin-bottom: 10px\\\">\\n            <input\\n              type=\\\"text\\\"\\n              class=\\\"form-control\\\"\\n              id=\\\"ldap_url\\\"\\n              ng-model=\\\"$ctrl.settings.URLs[$index]\\\"\\n              placeholder=\\\"e.g. 10.0.0.10:389 or myldap.domain.tld:389\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            />\\n            <button\\n              ng-if=\\\"$index > 0\\\"\\n              class=\\\"btn btn-sm btn-danger\\\"\\n              type=\\\"button\\\"\\n              ng-click=\\\"$ctrl.removeLDAPUrl($index)\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            >\\n              <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n            </button>\\n          </div>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"ldap_username\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n          Service Account\\n          <portainer-tooltip message=\\\"'Account that will be used to search for users.'\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-9\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"ldap_username\\\"\\n            ng-model=\\\"$ctrl.settings.ReaderDN\\\"\\n            placeholder=\\\"reader@domain.tld\\\"\\n            ng-change=\\\"$ctrl.onAccountChange($ctrl.settings.ReaderDN)\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          />\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n          Service Account Password\\n          <portainer-tooltip message=\\\"'If you do not enter a password, Portainer will leave the current password unchanged.'\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-9\\\">\\n          <input\\n            type=\\\"password\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"ldap_password\\\"\\n            ng-model=\\\"$ctrl.settings.Password\\\"\\n            placeholder=\\\"password\\\"\\n            autocomplete=\\\"new-password\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          />\\n        </div>\\n      </div>\\n\\n      <ldap-connectivity-check\\n        ng-if=\\\"!$ctrl.settings.TLSConfig.TLS && !$ctrl.settings.StartTLS\\\"\\n        settings=\\\"$ctrl.settings\\\"\\n        state=\\\"$ctrl.state\\\"\\n        connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-connectivity-check>\\n\\n      <ldap-settings-security\\n        title=\\\"AD Connectivity Security\\\"\\n        settings=\\\"$ctrl.settings\\\"\\n        tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n        upload-in-progress=\\\"$ctrl.state.uploadInProgress\\\"\\n        on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-settings-security>\\n\\n      <ldap-connectivity-check\\n        ng-if=\\\"$ctrl.settings.TLSConfig.TLS || $ctrl.settings.StartTLS\\\"\\n        settings=\\\"$ctrl.settings\\\"\\n        state=\\\"$ctrl.state\\\"\\n        connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-connectivity-check>\\n\\n      <ldap-user-search\\n        style=\\\"margin-top: 5px\\\"\\n        show-username-format=\\\"true\\\"\\n        settings=\\\"$ctrl.settings.SearchSettings\\\"\\n        domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n        base-filter=\\\"(objectClass=user)\\\"\\n        on-search-click=\\\"($ctrl.searchUsers)\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-user-search>\\n\\n      <ldap-group-search\\n        style=\\\"margin-top: 5px\\\"\\n        settings=\\\"$ctrl.settings.GroupSearchSettings\\\"\\n        domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n        base-filter=\\\"(objectClass=group)\\\"\\n        on-search-click=\\\"($ctrl.searchGroups)\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-group-search>\\n\\n      <ldap-custom-admin-group\\n        style=\\\"margin-top: 5px\\\"\\n        settings=\\\"$ctrl.settings\\\"\\n        on-search-click=\\\"($ctrl.onSearchAdminGroupsClick)\\\"\\n        selected-admin-groups=\\\"$ctrl.selectedAdminGroups\\\"\\n        default-admin-group-search-filter=\\\"'(objectClass=groupOfNames)'\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n        is-limited-feature-self-contained=\\\"false\\\"\\n      ></ldap-custom-admin-group>\\n\\n      <ldap-settings-test-login settings=\\\"$ctrl.settings\\\" limited-feature-id=\\\"$ctrl.limitedFeatureId\\\" is-limited-feature-self-contained=\\\"false\\\"></ldap-settings-test-login>\\n      <save-auth-settings-button\\n        on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n        save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n        save-button-disabled=\\\"($ctrl.isSaveSettingButtonDisabled())\\\"\\n      ></save-auth-settings-button>\\n    </div>\\n  </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ad-settings/ad-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\">\\n  <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 col-lg-2 control-label vertical-center text-left\\\">\\n    Connectivity check\\n    <pr-icon icon=\\\"'check'\\\" mode=\\\"'success'\\\" ng-if=\\\"$ctrl.state.successfulConnectivityCheck\\\"></pr-icon>\\n    <pr-icon icon=\\\"'x'\\\" mode=\\\"'danger'\\\" ng-if=\\\"$ctrl.state.failedConnectivityCheck\\\"></pr-icon>\\n  </label>\\n  <div class=\\\"col-sm-9 col-lg-10\\\">\\n    <button\\n      type=\\\"button\\\"\\n      class=\\\"btn btn-primary btn-sm\\\"\\n      ng-disabled=\\\"($ctrl.state.connectivityCheckInProgress) || (!$ctrl.settings.URLs.length) || ((!$ctrl.settings.ReaderDN || !$ctrl.settings.Password) && !$ctrl.settings.AnonymousMode)\\\"\\n      ng-click=\\\"$ctrl.connectivityCheck()\\\"\\n      button-spinner=\\\"$ctrl.state.connectivityCheckInProgress\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    >\\n      <span ng-hide=\\\"$ctrl.state.connectivityCheckInProgress\\\">Test connectivity</span>\\n      <span ng-show=\\\"$ctrl.state.connectivityCheckInProgress\\\">Testing connectivity...</span>\\n    </button>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-connectivity-check/ldap-connectivity-check.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title flex items-center\\\" style=\\\"float: initial\\\">\\n  Auto-populate team admins <be-feature-indicator feature=\\\"$ctrl.limitedFeatureId\\\" class=\\\"space-left\\\" ng-if=\\\"$ctrl.isLimitedFeatureSelfContained\\\"></be-feature-indicator>\\n</div>\\n\\n<rd-widget>\\n  <rd-widget-body>\\n    <div class=\\\"w-full pt-3\\\" ng-repeat=\\\"config in $ctrl.settings.AdminGroupSearchSettings | limitTo: (1 - $ctrl.settings.AdminGroupSearchSettings)\\\">\\n      <div class=\\\"form-group mb-3\\\" ng-if=\\\"$index > 0\\\">\\n        <span class=\\\"col-sm-12 text-muted small\\\"> Extra search configuration </span>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"ldap_admin_group_basedn_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n          Group Base DN\\n          <portainer-tooltip message=\\\"'The distinguished name of the element from which the LDAP server will search for groups.'\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-8 col-md-4\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"ldap_admin_group_basedn_{{ $index }}\\\"\\n            ng-model=\\\"config.GroupBaseDN\\\"\\n            placeholder=\\\"dc=ldap,dc=domain,dc=tld\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n            ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          />\\n        </div>\\n\\n        <label for=\\\"ldap_admin_group_att_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n          Group Membership Attribute\\n          <portainer-tooltip message=\\\"'LDAP attribute which denotes the group membership.'\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-8 col-md-4\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"ldap_admin_group_att_{{ $index }}\\\"\\n            ng-model=\\\"config.GroupAttribute\\\"\\n            placeholder=\\\"member\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n            ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          />\\n        </div>\\n      </div>\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"ldap_admin_group_filter_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n          Group Filter\\n          <portainer-tooltip message=\\\"'The LDAP search filter used to select group elements, optional.'\\\"></portainer-tooltip>\\n        </label>\\n        <div class=\\\"col-sm-8 col-md-10 vertical-center\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"ldap_admin_group_filter_{{ $index }}\\\"\\n            ng-model=\\\"config.GroupFilter\\\"\\n            placeholder=\\\"(objectClass=groupOfNames)\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n            ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          />\\n          <button class=\\\"btn btn-md btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.onRemoveClick($index)\\\" ng-if=\\\"$index > 0\\\">\\n            <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n          </button>\\n        </div>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group mt-3\\\">\\n      <div class=\\\"col-sm-12\\\">\\n        <button disabled class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\">\\n          <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n          Add group search configuration\\n        </button>\\n      </div>\\n      <div class=\\\"col-sm-12 vertical-center mt-2\\\">\\n        <button\\n          class=\\\"btn btm-sm btn-primary !ml-0\\\"\\n          type=\\\"button\\\"\\n          ng-click=\\\"$ctrl.search()\\\"\\n          limited-feature-dir=\\\"{{ $ctrl.limitedFeatureId }}\\\"\\n          limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n          ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n          limited-feature-tabindex=\\\"-1\\\"\\n        >\\n          Fetch Admin Group(s)\\n        </button>\\n        <span ng-if=\\\"$ctrl.groups && $ctrl.groups.length === 0\\\" class=\\\"vertical-center ml-6\\\">\\n          <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n          No groups found\\n        </span>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <div class=\\\"col-sm-12 vertical-center\\\">\\n        <label for=\\\"admin-auto-populate\\\" class=\\\"control-label text-muted !pt-0 text-left\\\" ng-class=\\\"{ 'text-muted': !$ctrl.enableAssignAdminGroup }\\\">\\n          Assign admin rights to group(s)\\n        </label>\\n        <label class=\\\"switch my-0 ml-7\\\" ng-class=\\\"{ 'business limited': $ctrl.isLimitedFeatureSelfContained }\\\">\\n          <input id=\\\"admin-auto-populate\\\" ng-disabled=\\\"!$ctrl.enableAssignAdminGroup\\\" name=\\\"admin-auto-populate\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.AdminAutoPopulate\\\" />\\n          <span class=\\\"slider round before:content-['']\\\"></span>\\n        </label>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.AdminAutoPopulate && $ctrl.groups\\\">\\n      <label for=\\\"group-access\\\" class=\\\"control-label col-sm-2 text-left\\\"> Select Group(s) </label>\\n      <div class=\\\"col-sm-8\\\">\\n        <por-select\\n          data-cy=\\\"'group-access-selector'\\\"\\n          input-id=\\\"'group-access'\\\"\\n          value=\\\"$ctrl.selectedAdminGroups\\\"\\n          on-change=\\\"($ctrl.onAdminGroupChange)\\\"\\n          options=\\\"$ctrl.groups\\\"\\n          placeholder=\\\"'Select one or more groups'\\\"\\n          is-multi=\\\"true\\\"\\n        >\\n        </por-select>\\n      </div>\\n    </div>\\n  </rd-widget-body>\\n</rd-widget>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> Group search configurations </div>\\n\\n<rd-widget ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\" style=\\\"display: block; margin-bottom: 10px\\\">\\n  <rd-widget-body>\\n    <div class=\\\"form-group\\\" ng-if=\\\"$index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n      <span class=\\\"col-sm-12 text-muted small\\\"> Extra search configuration </span>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"ldap_group_basedn_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n        Group Base DN\\n        <portainer-tooltip message=\\\"'The distinguished name of the element from which the LDAP server will search for groups.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-8 col-md-4\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_group_basedn_{{ $index }}\\\" ng-model=\\\"config.GroupBaseDN\\\" placeholder=\\\"dc=ldap,dc=domain,dc=tld\\\" />\\n      </div>\\n\\n      <label for=\\\"ldap_group_att_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n        Group Membership Attribute\\n        <portainer-tooltip message=\\\"'LDAP attribute which denotes the group membership.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-8 col-md-4\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_group_att_{{ $index }}\\\" ng-model=\\\"config.GroupAttribute\\\" placeholder=\\\"member\\\" />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"ldap_group_filter_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n        Group Filter\\n        <portainer-tooltip message=\\\"'The LDAP search filter used to select group elements, optional.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-8 col-md-10 vertical-center\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_group_filter_{{ $index }}\\\" ng-model=\\\"config.GroupFilter\\\" placeholder=\\\"(objectClass=account)\\\" />\\n        <button class=\\\"btn btn-md btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.onRemoveClick($index)\\\" ng-if=\\\"$index > 0\\\">\\n          <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n        </button>\\n      </div>\\n    </div>\\n    <div class=\\\"form-group\\\">\\n      <span class=\\\"col-sm-12 small\\\" style=\\\"color: #ffa719\\\">\\n        <pr-icon icon=\\\"'briefcase'\\\" class-name=\\\"'icon icon-xs vertical-center'\\\"></pr-icon>\\n        Users removal synchronize between groups and teams only available in\\n        <a href=\\\"https://www.portainer.io/features?from=custom-login-banner\\\" target=\\\"_blank\\\">business edition.</a>\\n        <portainer-tooltip\\n          class=\\\"text-muted align-bottom\\\"\\n          message=\\\"'Groups allows users to automatically be added to Portainer teams. However, automatically removing users from teams to keep it fully in sync is available in the Business Edition.'\\\"\\n        ></portainer-tooltip>\\n      </span>\\n    </div>\\n  </rd-widget-body>\\n</rd-widget>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <button class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\">\\n      <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n      Add group search configuration\\n    </button>\\n  </div>\\n  <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n    <be-teaser-button\\n      feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      heading=\\\"'Display User/Group matching'\\\"\\n      message=\\\"'Show the list of users and groups that match the Portainer search configurations.'\\\"\\n      button-text=\\\"'Display User/Group matching'\\\"\\n      button-class-name=\\\"'!ml-0'\\\"\\n    ></be-teaser-button>\\n  </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n  <div class=\\\"form-group col-sm-12\\\">\\n    <ldap-groups-datatable dataset=\\\"$ctrl.groups\\\" title-text=\\\"Groups\\\" title-icon=\\\"users\\\" table-key=\\\"ldapGroups\\\"></ldap-groups-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> User search configurations </div>\\n\\n<rd-widget ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\" style=\\\"display: block; margin-bottom: 10px\\\">\\n  <rd-widget-body>\\n    <div class=\\\"form-group\\\" ng-if=\\\"$index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n      <span class=\\\"col-sm-12 text-muted small\\\"> Extra search configuration </span>\\n    </div>\\n\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"ldap_basedn_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n        Base DN\\n        <portainer-tooltip message=\\\"'The distinguished name of the element from which the LDAP server will search for users.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-8 col-md-4\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_basedn_{{ $index }}\\\" ng-model=\\\"config.BaseDN\\\" placeholder=\\\"dc=ldap,dc=domain,dc=tld\\\" />\\n      </div>\\n\\n      <label for=\\\"ldap_username_att_{{ $index }}\\\" class=\\\"col-sm-4 col-md-3 col-lg-2 control-label text-left\\\">\\n        Username attribute\\n        <portainer-tooltip message=\\\"'LDAP attribute which denotes the username.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-8 col-md-3 col-lg-4\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_username_att_{{ $index }}\\\" ng-model=\\\"config.UserNameAttribute\\\" placeholder=\\\"uid\\\" />\\n      </div>\\n    </div>\\n    <div class=\\\"form-group\\\">\\n      <label for=\\\"ldap_filter_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n        Filter\\n        <portainer-tooltip message=\\\"'The LDAP search filter used to select user elements, optional.'\\\"></portainer-tooltip>\\n      </label>\\n      <div class=\\\"col-sm-8 col-md-10 vertical-center\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_filter_{{ $index }}\\\" ng-model=\\\"config.Filter\\\" placeholder=\\\"(objectClass=account)\\\" />\\n        <button class=\\\"btn btn-md btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.onRemoveClick($index)\\\" ng-if=\\\"$index > 0\\\">\\n          <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n        </button>\\n      </div>\\n    </div>\\n  </rd-widget-body>\\n</rd-widget>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <button class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\">\\n      <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n      Add user search configuration\\n    </button>\\n  </div>\\n  <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n    <be-teaser-button\\n      feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      heading=\\\"'Display Users'\\\"\\n      message=\\\"'Allows you to display users from your LDAP server.'\\\"\\n      button-text=\\\"'Display Users'\\\"\\n      button-class-name=\\\"'!ml-0'\\\"\\n    ></be-teaser-button>\\n  </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n  <div class=\\\"form-group col-sm-12\\\">\\n    <ldap-users-datatable dataset=\\\"$ctrl.users\\\" title-text=\\\"Users\\\" title-icon=\\\"users\\\" table-key=\\\"ldapUsers\\\" order-by=\\\"\\\" reverse-order=\\\"\\\"></ldap-users-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"w-full px-5 pt-3\\\">\\n  <div ng-if=\\\"$ctrl.index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n    <span class=\\\"text-muted small\\\"> Extra search configuration </span>\\n    <button\\n      class=\\\"btn btn-sm btn-danger\\\"\\n      type=\\\"button\\\"\\n      ng-click=\\\"$ctrl.onRemoveClick($ctrl.index)\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    >\\n      <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n    </button>\\n  </div>\\n\\n  <ldap-settings-dn-builder\\n    label=\\\"Group Search Path (optional)\\\"\\n    suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n    ng-model=\\\"$ctrl.config.GroupBaseDN\\\"\\n    on-change=\\\"($ctrl.onChangeBaseDN)\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n  ></ldap-settings-dn-builder>\\n\\n  <div class=\\\"form-group\\\">\\n    <label class=\\\"col-sm-4 col-md-2 control-label text-left\\\"> Group Base DN </label>\\n    <div class=\\\"col-sm-8 col-md-10\\\">\\n      {{ $ctrl.config.GroupBaseDN }}\\n    </div>\\n  </div>\\n\\n  <div class=\\\"form-group\\\">\\n    <div class=\\\"col-sm-12 vertical-center\\\" style=\\\"margin-bottom: 5px\\\">\\n      <label class=\\\"control-label !pt-0 text-left\\\">Groups</label>\\n      <span class=\\\"label label-default interactive vertical-center\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"$ctrl.addGroup()\\\">\\n        <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n        add another group\\n      </span>\\n    </div>\\n    <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.groups.length\\\">\\n      <div class=\\\"w-full px-5 pt-3\\\">\\n        <div class=\\\"form-group no-margin-last-child\\\" ng-repeat=\\\"entry in $ctrl.groups\\\">\\n          <div class=\\\"col-sm-4\\\">\\n            <select class=\\\"form-control\\\" ng-model=\\\"entry.type\\\" ng-change=\\\"$ctrl.onGroupsChange()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n              <option value=\\\"ou\\\">OU Name</option>\\n              <option value=\\\"cn\\\">Folder Name</option>\\n            </select>\\n          </div>\\n          <div class=\\\"col-sm-5\\\">\\n            <input\\n              class=\\\"form-control\\\"\\n              ng-model=\\\"entry.value\\\"\\n              ng-change=\\\"$ctrl.onGroupsChange()\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            />\\n          </div>\\n          <div class=\\\"col-sm-3 text-right\\\">\\n            <button\\n              class=\\\"btn btn-md btn-danger\\\"\\n              type=\\\"button\\\"\\n              ng-click=\\\"$ctrl.removeGroup($index)\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            >\\n              <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n            </button>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"form-group no-margin-last-child\\\">\\n    <label class=\\\"col-sm-4 col-md-2 control-label text-left\\\"> Group Filter </label>\\n    <div class=\\\"col-sm-8 col-md-10\\\">\\n      {{ $ctrl.config.GroupFilter }}\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> Group search configurations </div>\\n\\n<div style=\\\"margin-top: 10px\\\" ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\">\\n  <ldap-group-search-item\\n    config=\\\"config\\\"\\n    domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n    index=\\\"$index\\\"\\n    base-filter=\\\"{{ $ctrl.baseFilter }}\\\"\\n    on-remove-click=\\\"($ctrl.onRemoveClick)\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n  ></ldap-group-search-item>\\n</div>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <button class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\" disabled>\\n      <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n      Add group search configuration\\n    </button>\\n  </div>\\n  <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n    <button class=\\\"btn btm-sm btn-primary\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.search()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n      Display User/Group matching\\n    </button>\\n  </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n  <div class=\\\"form-group col-sm-12\\\">\\n    <ldap-groups-datatable dataset=\\\"$ctrl.groups\\\" title-text=\\\"Groups\\\" title-icon=\\\"users\\\" table-key=\\\"ldapGroups\\\"></ldap-groups-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'User Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n              <th>\\n                <table-column-header col-title=\\\"'Groups'\\\" can-sort=\\\"false\\\"></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                {{ item.Name }}\\n              </td>\\n              <td>\\n                <p ng-repeat=\\\"group in item.Groups\\\" style=\\\"margin: 0\\\">{{ group }}</p>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">No groups found.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-groups-datatable/ldap-groups-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n  <div class=\\\"form-group col-sm-12 text-muted small\\\">\\n    When using LDAP authentication, Portainer will delegate user authentication to a LDAP server and fallback to internal authentication if LDAP authentication fails.\\n  </div>\\n</div>\\n\\n<div class=\\\"col-sm-12 form-section-title\\\"> LDAP configuration </div>\\n\\n<div class=\\\"form-group\\\">\\n  <div class=\\\"col-sm-12 small text-muted\\\">\\n    <p class=\\\"vertical-center\\\">\\n      <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      You can configure multiple LDAP Servers for authentication fallback. Make sure all servers are using the same configuration (i.e. if TLS is enabled, they should all use the\\n      same certificates).\\n    </p>\\n  </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n  <label for=\\\"ldap_url\\\" class=\\\"col-sm-3 col-lg-2 control-label flex flex-wrap text-left\\\"> LDAP Server </label>\\n  <div class=\\\"col-sm-9 col-lg-10\\\">\\n    <div class=\\\"mb-3 flex\\\" ng-repeat=\\\"url in $ctrl.settings.URLs track by $index\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_url\\\" ng-model=\\\"$ctrl.settings.URLs[$index]\\\" placeholder=\\\"e.g. 10.0.0.10:389 or myldap.domain.tld:389\\\" required />\\n      <button ng-if=\\\"$index > 0\\\" class=\\\"btn btn-sm btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.removeLDAPUrl($index)\\\">\\n        <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n      </button>\\n    </div>\\n  </div>\\n  <div class=\\\"col-sm-12\\\">\\n    <be-teaser-button\\n      feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      heading=\\\"'Add additional server'\\\"\\n      message=\\\"'Allows you to add an additional LDAP server.'\\\"\\n      button-text=\\\"'Add additional server'\\\"\\n      button-class-name=\\\"'!ml-0'\\\"\\n    ></be-teaser-button>\\n  </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n  <label for=\\\"anonymous_mode\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\">\\n    Anonymous mode\\n    <portainer-tooltip message=\\\"'Enable this option if the server is configured for Anonymous access.'\\\"></portainer-tooltip>\\n  </label>\\n  <div class=\\\"col-sm-9 col-lg-10\\\">\\n    <label class=\\\"switch\\\">\\n      <input type=\\\"checkbox\\\" id=\\\"anonymous_mode\\\" ng-model=\\\"$ctrl.settings.AnonymousMode\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n      <span class=\\\"slider round\\\"></span>\\n    </label>\\n  </div>\\n</div>\\n<!-- !Anonymous mode-->\\n\\n<div ng-if=\\\"!$ctrl.settings.AnonymousMode\\\">\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"ldap_username\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      Reader DN\\n      <portainer-tooltip message=\\\"'Account that will be used to search for users.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_username\\\" ng-model=\\\"$ctrl.settings.ReaderDN\\\" placeholder=\\\"cn=user,dc=domain,dc=tld\\\" />\\n    </div>\\n  </div>\\n\\n  <div class=\\\"form-group\\\">\\n    <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n      Password\\n      <portainer-tooltip message=\\\"'If you do not enter a password, Portainer will leave the current password unchanged.'\\\"></portainer-tooltip>\\n    </label>\\n    <div class=\\\"col-sm-9 col-lg-10\\\">\\n      <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"ldap_password\\\" ng-model=\\\"$ctrl.settings.Password\\\" placeholder=\\\"password\\\" autocomplete=\\\"new-password\\\" />\\n    </div>\\n  </div>\\n</div>\\n\\n<ldap-connectivity-check\\n  ng-if=\\\"!$ctrl.settings.TLSConfig.TLS && !$ctrl.settings.StartTLS\\\"\\n  settings=\\\"$ctrl.settings\\\"\\n  state=\\\"$ctrl.state\\\"\\n  connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n></ldap-connectivity-check>\\n\\n<ldap-settings-security\\n  settings=\\\"$ctrl.settings\\\"\\n  tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n  upload-in-progress=\\\"$ctrl.state.uploadInProgress\\\"\\n  on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n></ldap-settings-security>\\n\\n<ldap-connectivity-check\\n  ng-if=\\\"$ctrl.settings.TLSConfig.TLS || $ctrl.settings.StartTLS\\\"\\n  settings=\\\"$ctrl.settings\\\"\\n  state=\\\"$ctrl.state\\\"\\n  connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n></ldap-connectivity-check>\\n\\n<div class=\\\"space-y-10\\\">\\n  <ldap-custom-user-search\\n    class=\\\"block\\\"\\n    settings=\\\"$ctrl.settings.SearchSettings\\\"\\n    on-search-click=\\\"($ctrl.onSearchUsersClick)\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n  ></ldap-custom-user-search>\\n\\n  <ldap-custom-group-search\\n    class=\\\"block\\\"\\n    settings=\\\"$ctrl.settings.GroupSearchSettings\\\"\\n    on-search-click=\\\"($ctrl.onSearchGroupsClick)\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n  ></ldap-custom-group-search>\\n\\n  <ldap-custom-admin-group\\n    class=\\\"block\\\"\\n    settings=\\\"$ctrl.settings\\\"\\n    on-search-click=\\\"($ctrl.onSearchAdminGroupsClick)\\\"\\n    selected-admin-groups=\\\"$ctrl.selectedAdminGroups\\\"\\n    default-admin-group-search-filter=\\\"'(objectClass=groupOfNames)'\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n    is-limited-feature-self-contained=\\\"true\\\"\\n  ></ldap-custom-admin-group>\\n\\n  <ldap-settings-test-login\\n    class=\\\"block\\\"\\n    settings=\\\"$ctrl.settings\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n    show-be-indicator-if-needed=\\\"true\\\"\\n    is-limited-feature-self-contained=\\\"true\\\"\\n  ></ldap-settings-test-login>\\n</div>\\n\\n<save-auth-settings-button\\n  on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n  save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n  save-button-disabled=\\\"!$ctrl.saveButtonDisabled()\\\"\\n  limited-feature-dir=\\\"{{ $ctrl.limitedFeatureId }}\\\"\\n></save-auth-settings-button>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group ldap-dn-builder\\\">\\n  <div class=\\\"col-sm-12\\\" style=\\\"margin-bottom: 5px\\\">\\n    <label class=\\\"control-label text-left\\\">{{ $ctrl.label || 'DN entries' }}</label>\\n    <button\\n      type=\\\"button\\\"\\n      class=\\\"label label-default interactive vertical-center\\\"\\n      style=\\\"margin-left: 10px; border: 0\\\"\\n      ng-click=\\\"$ctrl.addEntry()\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    >\\n      <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n      add another entry\\n    </button>\\n  </div>\\n  <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.entries.length\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <div class=\\\"form-group no-margin-last-child\\\" ng-repeat=\\\"entry in $ctrl.entries\\\">\\n          <div class=\\\"col-sm-4\\\">\\n            <select class=\\\"form-control\\\" ng-model=\\\"entry.type\\\" ng-change=\\\"$ctrl.onEntriesChange()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n              <option value=\\\"ou\\\">OU Name</option>\\n              <option value=\\\"cn\\\">Folder Name</option>\\n            </select>\\n          </div>\\n          <div class=\\\"col-sm-5\\\">\\n            <input\\n              class=\\\"form-control\\\"\\n              ng-model=\\\"entry.value\\\"\\n              ng-change=\\\"$ctrl.onEntriesChange()\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            />\\n          </div>\\n          <div class=\\\"col-sm-3 text-right\\\">\\n            <button\\n              class=\\\"btn btn-md btn-primary\\\"\\n              type=\\\"button\\\"\\n              ng-disabled=\\\"$first\\\"\\n              ng-click=\\\"$ctrl.moveUp($index)\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            >\\n              <pr-icon icon=\\\"'arrow-up'\\\" size=\\\"'md'\\\"></pr-icon>\\n            </button>\\n            <button\\n              class=\\\"btn btn-md btn-primary\\\"\\n              type=\\\"button\\\"\\n              ng-disabled=\\\"$last\\\"\\n              ng-click=\\\"$ctrl.moveDown($index)\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            >\\n              <pr-icon icon=\\\"'arrow-down'\\\" size=\\\"'md'\\\"></pr-icon>\\n            </button>\\n            <button\\n              class=\\\"btn btn-md btn-danger\\\"\\n              type=\\\"button\\\"\\n              ng-click=\\\"$ctrl.removeEntry($index)\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            >\\n              <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n            </button>\\n          </div>\\n        </div>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\">\\n  <label for=\\\"group-name-input\\\" class=\\\"col-sm-4 control-label text-left\\\"> Group Name </label>\\n  <div class=\\\"col-sm-7\\\" style=\\\"padding-left: 0\\\">\\n    <input\\n      type=\\\"text\\\"\\n      class=\\\"form-control\\\"\\n      id=\\\"group-name-input\\\"\\n      ng-model=\\\"$ctrl.groupName\\\"\\n      ng-change=\\\"$ctrl.onGroupNameChange()\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    />\\n  </div>\\n  <div class=\\\"col-sm-1\\\">\\n    <button\\n      type=\\\"button\\\"\\n      class=\\\"btn btn-danger btn-md vertical-center\\\"\\n      ng-if=\\\"$ctrl.onRemoveClick\\\"\\n      ng-click=\\\"$ctrl.onRemoveClick()\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    >\\n      <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n    </button>\\n  </div>\\n</div>\\n\\n<ldap-settings-dn-builder\\n  ng-model=\\\"$ctrl.entries\\\"\\n  label=\\\"Path to group\\\"\\n  suffix=\\\"{{ $ctrl.suffix }}\\\"\\n  on-change=\\\"($ctrl.onEntriesChange)\\\"\\n  on-remove-click=\\\"($ctrl.removeGroup)\\\"\\n  limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n></ldap-settings-dn-builder>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-class=\\\"limited-be\\\" class=\\\"ldap-settings-openldap\\\">\\n  <div class=\\\"be-indicator-container\\\">\\n    <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeatureId\\\"></be-feature-indicator></div>\\n    <div class=\\\"limited-be-content\\\">\\n      <div>\\n        <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n        <div class=\\\"form-group col-sm-12 text-muted small\\\">\\n          When using LDAP authentication, Portainer will delegate user authentication to a LDAP server and fallback to internal authentication if LDAP authentication fails.\\n        </div>\\n      </div>\\n\\n      <div class=\\\"col-sm-12 form-section-title\\\"> LDAP configuration </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <div class=\\\"col-sm-12 small text-muted\\\">\\n          <p class=\\\"vertical-center\\\">\\n            <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n            You can configure multiple LDAP Servers for authentication fallback. Make sure all servers are using the same configuration (i.e. if TLS is enabled, they should all use\\n            the same certificates).\\n          </p>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"ldap_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"display: flex; flex-wrap: wrap\\\">\\n          LDAP Server\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"label label-default interactive vertical-center\\\"\\n            style=\\\"border: 0\\\"\\n            ng-click=\\\"$ctrl.addLDAPUrl()\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          >\\n            <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n            Add additional server\\n          </button>\\n        </label>\\n        <div class=\\\"col-sm-9 col-lg-10\\\">\\n          <div ng-repeat=\\\"url in $ctrl.settings.URLs track by $index\\\" style=\\\"display: flex; margin-bottom: 10px\\\">\\n            <input\\n              type=\\\"text\\\"\\n              class=\\\"form-control\\\"\\n              id=\\\"ldap_url\\\"\\n              ng-model=\\\"$ctrl.settings.URLs[$index]\\\"\\n              placeholder=\\\"e.g. 10.0.0.10:389 or myldap.domain.tld:389\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            />\\n            <button\\n              ng-if=\\\"$index > 0\\\"\\n              class=\\\"btn btn-sm btn-danger\\\"\\n              type=\\\"button\\\"\\n              ng-click=\\\"$ctrl.removeLDAPUrl($index)\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            >\\n              <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n            </button>\\n          </div>\\n        </div>\\n      </div>\\n\\n      <!-- Anonymous mode-->\\n      <div class=\\\"form-group\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <label for=\\\"anonymous_mode\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\">\\n            Anonymous mode\\n            <portainer-tooltip message=\\\"'Enable this option if the server is configured for Anonymous access.'\\\"></portainer-tooltip>\\n          </label>\\n\\n          <div class=\\\"col-sm-9 col-lg-10\\\">\\n            <label class=\\\"switch\\\">\\n              <input type=\\\"checkbox\\\" id=\\\"anonymous_mode\\\" ng-model=\\\"$ctrl.settings.AnonymousMode\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n              <span class=\\\"slider round\\\"></span>\\n            </label>\\n          </div>\\n        </div>\\n      </div>\\n      <!-- !Anonymous mode-->\\n\\n      <div ng-if=\\\"!$ctrl.settings.AnonymousMode\\\">\\n        <div class=\\\"form-group\\\">\\n          <label for=\\\"ldap_username\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n            Reader DN\\n            <portainer-tooltip message=\\\"'Account that will be used to search for users.'\\\"></portainer-tooltip>\\n          </label>\\n          <div class=\\\"col-sm-9 col-lg-10\\\">\\n            <input\\n              type=\\\"text\\\"\\n              class=\\\"form-control\\\"\\n              id=\\\"ldap_username\\\"\\n              ng-model=\\\"$ctrl.settings.ReaderDN\\\"\\n              placeholder=\\\"cn=user,dc=domain,dc=tld\\\"\\n              ng-change=\\\"$ctrl.onAccountChange($ctrl.settings.ReaderDN)\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            />\\n          </div>\\n        </div>\\n\\n        <div class=\\\"form-group\\\">\\n          <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n            Password\\n            <portainer-tooltip message=\\\"'If you do not enter a password, Portainer will leave the current password unchanged.'\\\"></portainer-tooltip>\\n          </label>\\n          <div class=\\\"col-sm-9\\\">\\n            <input\\n              type=\\\"password\\\"\\n              class=\\\"form-control\\\"\\n              id=\\\"ldap_password\\\"\\n              ng-model=\\\"$ctrl.settings.Password\\\"\\n              placeholder=\\\"password\\\"\\n              autocomplete=\\\"new-password\\\"\\n              limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n              limited-feature-tabindex=\\\"-1\\\"\\n            />\\n          </div>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.AnonymousMode\\\">\\n        <label for=\\\"ldap_domain_root\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Domain root </label>\\n        <div class=\\\"col-sm-9\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control\\\"\\n            id=\\\"ldap_domain_root\\\"\\n            ng-model=\\\"$ctrl.domainSuffix\\\"\\n            placeholder=\\\"dc=domain,dc=tld\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          />\\n        </div>\\n      </div>\\n\\n      <ldap-connectivity-check\\n        ng-if=\\\"!$ctrl.settings.TLSConfig.TLS && !$ctrl.settings.StartTLS\\\"\\n        settings=\\\"$ctrl.settings\\\"\\n        state=\\\"$ctrl.state\\\"\\n        connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-connectivity-check>\\n\\n      <ldap-settings-security\\n        title=\\\"Connectivity Security\\\"\\n        settings=\\\"$ctrl.settings\\\"\\n        tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n        upload-in-progress=\\\"$ctrl.state.uploadInProgress\\\"\\n        on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-settings-security>\\n\\n      <ldap-connectivity-check\\n        ng-if=\\\"$ctrl.settings.TLSConfig.TLS || $ctrl.settings.StartTLS\\\"\\n        settings=\\\"$ctrl.settings\\\"\\n        state=\\\"$ctrl.state\\\"\\n        connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-connectivity-check>\\n\\n      <ldap-user-search\\n        style=\\\"margin-top: 5px\\\"\\n        settings=\\\"$ctrl.settings.SearchSettings\\\"\\n        domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n        base-filter=\\\"(objectClass=inetOrgPerson)\\\"\\n        on-search-click=\\\"($ctrl.onSearchUsersClick)\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-user-search>\\n\\n      <ldap-group-search\\n        style=\\\"margin-top: 5px\\\"\\n        settings=\\\"$ctrl.settings.GroupSearchSettings\\\"\\n        domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n        base-filter=\\\"(objectClass=groupOfNames)\\\"\\n        on-search-click=\\\"($ctrl.onSearchGroupsClick)\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></ldap-group-search>\\n\\n      <ldap-settings-test-login settings=\\\"$ctrl.settings\\\" limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"></ldap-settings-test-login>\\n      <save-auth-settings-button\\n        on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n        save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n        save-button-disabled=\\\"!$ctrl.saveButtonDisabled()\\\"\\n        limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n      ></save-auth-settings-button>\\n    </div>\\n  </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\">\\n  {{ $ctrl.title || 'LDAP security' }}\\n</div>\\n\\n<!-- starttls -->\\n<div class=\\\"form-group\\\" ng-if=\\\"!$ctrl.settings.TLSConfig.TLS\\\">\\n  <label for=\\\"tls\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\" style=\\\"padding-top: 0\\\">\\n    Use StartTLS\\n    <portainer-tooltip message=\\\"'Enable this option if want to use StartTLS to secure the connection to the server. Ignored if Use TLS is selected.'\\\"></portainer-tooltip>\\n  </label>\\n  <div class=\\\"col-sm-9 col-lg-10\\\">\\n    <label class=\\\"switch\\\">\\n      <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.StartTLS\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n      <span class=\\\"slider round\\\"></span>\\n    </label>\\n  </div>\\n</div>\\n<!-- !starttls -->\\n\\n<!-- tls-checkbox -->\\n<div class=\\\"form-group\\\" ng-if=\\\"!$ctrl.settings.StartTLS\\\">\\n  <label for=\\\"tls\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\" style=\\\"padding-top: 0\\\">\\n    Use TLS\\n    <portainer-tooltip message=\\\"'Enable this option if you need to specify TLS certificates to connect to the LDAP server.'\\\"></portainer-tooltip>\\n  </label>\\n  <div class=\\\"col-sm-9 col-lg-10\\\">\\n    <label class=\\\"switch\\\">\\n      <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.TLSConfig.TLS\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n      <span class=\\\"slider round\\\"></span>\\n    </label>\\n  </div>\\n</div>\\n<!-- !tls-checkbox -->\\n\\n<!-- tls-skip-verify -->\\n<div class=\\\"form-group\\\">\\n  <label for=\\\"tls\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\" style=\\\"padding-top: 0\\\">\\n    Skip verification of server certificate\\n    <portainer-tooltip message=\\\"'Skip the verification of the server TLS certificate. Not recommended on unsecured networks.'\\\"></portainer-tooltip>\\n  </label>\\n  <div class=\\\"col-sm-9 col-lg-10\\\">\\n    <label class=\\\"switch\\\">\\n      <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.TLSConfig.TLSSkipVerify\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n      <span class=\\\"slider round\\\"></span>\\n    </label>\\n  </div>\\n</div>\\n<!-- !tls-skip-verify -->\\n\\n<!-- ca-input -->\\n<div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.TLSConfig.TLS || ($ctrl.settings.StartTLS && !$ctrl.settings.TLSConfig.TLSSkipVerify)\\\">\\n  <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">TLS CA certificate</label>\\n  <div class=\\\"col-sm-9 col-lg-10 vertical-center\\\">\\n    <button\\n      type=\\\"button\\\"\\n      class=\\\"btn btn-sm btn-primary\\\"\\n      ngf-select=\\\"$ctrl.onTlscaCertChange($file)\\\"\\n      ng-model=\\\"$ctrl.tlscaCert\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    >\\n      Select file\\n    </button>\\n    <span class=\\\"vertical-center\\\">\\n      {{ $ctrl.tlscaCert.name }}\\n      <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"$ctrl.tlscaCert && $ctrl.tlscaCert === $ctrl.settings.TLSConfig.TLSCACert\\\"></pr-icon>\\n      <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"!$ctrl.tlscaCert\\\"></pr-icon>\\n      <pr-icon icon=\\\"'loader-2'\\\" class-name=\\\"'animate-spin-slow ml-0.5'\\\" ng-if=\\\"$ctrl.uploadInProgress\\\"></pr-icon>\\n    </span>\\n  </div>\\n</div>\\n<!-- !ca-input -->\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-security/ldap-settings-security.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title flex items-center\\\" style=\\\"float: initial\\\">\\n  Test login\\n  <be-feature-indicator\\n    ng-if=\\\"$ctrl.showBeIndicatorIfNeeded\\\"\\n    feature=\\\"$ctrl.limitedFeatureId\\\"\\n    class=\\\"space-left\\\"\\n    ng-if=\\\"$ctrl.isLimitedFeatureSelfContained\\\"\\n  ></be-feature-indicator>\\n</div>\\n\\n<rd-widget>\\n  <rd-widget-body>\\n    <div class=\\\"form-inline\\\">\\n      <div class=\\\"form-group\\\" style=\\\"margin: 0\\\">\\n        <label for=\\\"ldap_test_username\\\" style=\\\"font-size: 0.9em; margin-right: 5px\\\"> Username </label>\\n        <input\\n          type=\\\"text\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"ldap_test_username\\\"\\n          ng-model=\\\"$ctrl.username\\\"\\n          limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n          limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n          ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n          limited-feature-tabindex=\\\"-1\\\"\\n        />\\n      </div>\\n\\n      <div class=\\\"form-group no-margin\\\">\\n        <label for=\\\"ldap_test_password\\\"> Password </label>\\n        <input\\n          type=\\\"password\\\"\\n          class=\\\"form-control\\\"\\n          id=\\\"ldap_test_password\\\"\\n          ng-model=\\\"$ctrl.password\\\"\\n          autocomplete=\\\"new-password\\\"\\n          limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n          limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n          ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n          limited-feature-tabindex=\\\"-1\\\"\\n        />\\n      </div>\\n\\n      <div class=\\\"form-group !ml-0\\\">\\n        <div class=\\\"vertical-center\\\">\\n          <button\\n            type=\\\"submit\\\"\\n            class=\\\"btn btn-primary\\\"\\n            ng-disabled=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.LOADING || !$ctrl.username || !$ctrl.password\\\"\\n            ng-click=\\\"$ctrl.testLogin($ctrl.username, $ctrl.password)\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n          >\\n            <span ng-if=\\\"$ctrl.state.testStatus !== $ctrl.TEST_STATUS.LOADING\\\">Test</span>\\n            <span ng-if=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.LOADING\\\">Testing...</span>\\n          </button>\\n          <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.SUCCESS\\\"></pr-icon>\\n          <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.FAILURE\\\"></pr-icon>\\n        </div>\\n      </div>\\n    </div>\\n  </rd-widget-body>\\n</rd-widget>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n  <auto-user-provision-toggle ng-model=\\\"$ctrl.settings.AutoCreateUsers\\\">\\n    <field-description>\\n      With automatic user provisioning enabled, Portainer will create user(s) automatically with standard user role and assign them to team(s) which matches to LDAP group name(s).\\n      If disabled, users must be created in Portainer beforehand.\\n    </field-description>\\n  </auto-user-provision-toggle>\\n\\n  <div class=\\\"col-sm-12 form-section-title\\\"> Server Type </div>\\n\\n  <box-selector\\n    style=\\\"margin-bottom: 0\\\"\\n    radio-name=\\\"'ldap-server-type-selector'\\\"\\n    value=\\\"$ctrl.settings.ServerType\\\"\\n    options=\\\"$ctrl.boxSelectorOptions\\\"\\n    on-change=\\\"($ctrl.onChangeServerType)\\\"\\n    slim=\\\"true\\\"\\n  ></box-selector>\\n\\n  <ldap-settings-custom\\n    ng-if=\\\"$ctrl.settings.ServerType === $ctrl.SERVER_TYPES.CUSTOM\\\"\\n    settings=\\\"$ctrl.settings\\\"\\n    tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n    state=\\\"$ctrl.state\\\"\\n    on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n    connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n    on-search-users-click=\\\"($ctrl.searchUsers)\\\"\\n    on-search-groups-click=\\\"($ctrl.searchGroups)\\\"\\n    on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n    save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n    save-button-disabled=\\\"$ctrl.isLdapFormValid\\\"\\n  ></ldap-settings-custom>\\n  <ldap-settings-open-ldap\\n    ng-if=\\\"$ctrl.settings.ServerType === $ctrl.SERVER_TYPES.OPEN_LDAP\\\"\\n    settings=\\\"$ctrl.settings\\\"\\n    tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n    state=\\\"$ctrl.state\\\"\\n    on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n    connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n    on-search-users-click=\\\"($ctrl.searchUsers)\\\"\\n    on-search-groups-click=\\\"($ctrl.searchGroups)\\\"\\n    on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n    save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n    save-button-disabled=\\\"$ctrl.isLdapFormValid\\\"\\n  ></ldap-settings-open-ldap>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"w-full px-5 pt-3\\\">\\n  <div ng-if=\\\"$ctrl.index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n    <span class=\\\"text-muted small\\\"> Extra search configuration </span>\\n    <button\\n      ng-if=\\\"$ctrl.index > 0\\\"\\n      class=\\\"btn btn-sm btn-danger\\\"\\n      type=\\\"button\\\"\\n      ng-click=\\\"$ctrl.onRemoveClick($ctrl.index)\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    >\\n      <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n    </button>\\n  </div>\\n\\n  <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.showUsernameFormat\\\">\\n    <div class=\\\"col-sm-4\\\" style=\\\"margin-bottom: 5px\\\">\\n      <label class=\\\"control-label text-left\\\">Username Format</label>\\n    </div>\\n    <div class=\\\"col-sm-8\\\">\\n      <div class=\\\"input-group\\\">\\n        <div class=\\\"input-group-btn\\\">\\n          <button\\n            class=\\\"btn btn-primary\\\"\\n            ng-model=\\\"$ctrl.config.UserNameAttribute\\\"\\n            uib-btn-radio=\\\"'sAMAccountName'\\\"\\n            style=\\\"margin-left: 0px\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n            >username</button\\n          >\\n          <button\\n            class=\\\"btn btn-primary\\\"\\n            ng-model=\\\"$ctrl.config.UserNameAttribute\\\"\\n            uib-btn-radio=\\\"'userPrincipalName'\\\"\\n            limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n            limited-feature-tabindex=\\\"-1\\\"\\n            >user@domainname</button\\n          >\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"form-group\\\">\\n    <label class=\\\"col-sm-4 control-label text-left\\\"> Root Domain </label>\\n    <div class=\\\"col-sm-8\\\">\\n      {{ $ctrl.config.BaseDN }}\\n    </div>\\n  </div>\\n\\n  <ldap-settings-dn-builder\\n    ng-model=\\\"$ctrl.config.BaseDN\\\"\\n    label=\\\"User Search Path (optional)\\\"\\n    suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n    on-change=\\\"($ctrl.onBaseDNChange)\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n  ></ldap-settings-dn-builder>\\n\\n  <div class=\\\"form-group no-margin-last-child\\\">\\n    <div class=\\\"col-sm-12\\\" style=\\\"margin-bottom: 5px\\\">\\n      <label class=\\\"control-label text-left\\\">Allowed Groups (optional)</label>\\n      <button\\n        type=\\\"button\\\"\\n        class=\\\"label label-default interactive vertical-center\\\"\\n        style=\\\"margin-left: 10px; border: 0\\\"\\n        ng-click=\\\"$ctrl.addGroup()\\\"\\n        limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n        limited-feature-tabindex=\\\"-1\\\"\\n      >\\n        <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n        add another group\\n      </button>\\n    </div>\\n    <div class=\\\"col-sm-12\\\">\\n      <div ng-repeat=\\\"group in $ctrl.groups track by $index\\\" style=\\\"margin-bottom: 10px\\\">\\n        <rd-widget>\\n          <rd-widget-body>\\n            <ldap-settings-group-dn-builder\\n              ng-model=\\\"group\\\"\\n              index=\\\"$index\\\"\\n              suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n              on-change=\\\"($ctrl.onGroupChange)\\\"\\n              on-remove-click=\\\"($ctrl.removeGroup)\\\"\\n              limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n            ></ldap-settings-group-dn-builder>\\n          </rd-widget-body>\\n        </rd-widget>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"form-group\\\">\\n    <label class=\\\"col-sm-4 control-label text-left\\\"> User Filter </label>\\n    <div class=\\\"col-sm-8\\\">\\n      {{ $ctrl.config.Filter }}\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> User search configurations </div>\\n\\n<div style=\\\"margin-top: 10px\\\" ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\">\\n  <ldap-user-search-item\\n    index=\\\"$index\\\"\\n    config=\\\"config\\\"\\n    domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n    show-username-format=\\\"$ctrl.showUsernameFormat\\\"\\n    base-filter=\\\"{{ $ctrl.baseFilter }}\\\"\\n    on-remove-click=\\\"($ctrl.onRemoveClick)\\\"\\n    limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n  ></ldap-user-search-item>\\n</div>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <button\\n      class=\\\"label label-default interactive vertical-center\\\"\\n      style=\\\"border: 0\\\"\\n      ng-click=\\\"$ctrl.onAddClick()\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-tabindex=\\\"-1\\\"\\n    >\\n      <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n      Add user search configuration\\n    </button>\\n  </div>\\n  <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n    <button class=\\\"btn btm-sm btn-primary\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.search()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n      Display Users\\n    </button>\\n  </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n  <div class=\\\"form-group col-sm-12\\\">\\n    <ldap-users-datatable dataset=\\\"$ctrl.users\\\" title-text=\\\"Users\\\" title-icon=\\\"users\\\" table-key=\\\"ldapUsers\\\" order-by=\\\"\\\" reverse-order=\\\"\\\"></ldap-users-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n          {{ $ctrl.titleText }}\\n        </div>\\n        <div class=\\\"searchBar vertical-center\\\">\\n          <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"searchInput\\\"\\n            ng-model=\\\"$ctrl.state.textFilter\\\"\\n            ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n            placeholder=\\\"Search...\\\"\\n            auto-focus\\n            ng-model-options=\\\"{ debounce: 300 }\\\"\\n          />\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <table-column-header\\n                  col-title=\\\"'Name'\\\"\\n                  can-sort=\\\"true\\\"\\n                  is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n                  is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n                  ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n                ></table-column-header>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr\\n              dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit)) track by $index\\\"\\n              ng-class=\\\"{ active: item.Checked }\\\"\\n            >\\n              <td>\\n                <a ui-sref=\\\"portainer.groups.group({id: item.Id})\\\">{{ item }}</a>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.dataset\\\">\\n              <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n              <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">No users found.</td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n        <div class=\\\"paginationControls\\\">\\n          <form class=\\\"form-inline\\\">\\n            <span class=\\\"limitSelector\\\">\\n              <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n              <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n                <option value=\\\"0\\\">All</option>\\n                <option value=\\\"10\\\">10</option>\\n                <option value=\\\"25\\\">25</option>\\n                <option value=\\\"50\\\">50</option>\\n                <option value=\\\"100\\\">100</option>\\n              </select>\\n            </span>\\n            <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n          </form>\\n        </div>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-users-datatable/ldap-users-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n<div class=\\\"form-group\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <button\\n      type=\\\"button\\\"\\n      ng-class=\\\"[$ctrl.className, 'btn btn-primary btn-sm !ml-0']\\\"\\n      ng-click=\\\"$ctrl.onSaveSettings()\\\"\\n      ng-disabled=\\\"$ctrl.saveButtonDisabled || $ctrl.saveButtonState\\\"\\n      button-spinner=\\\"$ctrl.saveButtonState\\\"\\n      limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n      limited-feature-class=\\\"{{::$ctrl.limitedFeatureClass}}\\\"\\n    >\\n      <span ng-hide=\\\"$ctrl.saveButtonState\\\">Save settings</span>\\n      <span ng-show=\\\"$ctrl.saveButtonState\\\">Saving...</span>\\n    </button>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/save-auth-settings-button/save-auth-settings-button.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable datatable-empty\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar vertical-center flex-wrap !gap-x-5 !gap-y-1\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'history'\\\"></pr-icon>\\n          </div>\\n          Activity logs\\n        </div>\\n        <div class=\\\"vertical-center\\\">\\n          <datatable-searchbar on-change=\\\"($ctrl.onChangeKeyword)\\\" value=\\\"$ctrl.keyword\\\"></datatable-searchbar>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover table\\\">\\n          <thead>\\n            <tr>\\n              <th class=\\\"small-column\\\">\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header\\n                    col-title=\\\"'Time'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.sort.key === 'Timestamp'\\\"\\n                    is-sorted-desc=\\\"$ctrl.sort.key === 'Timestamp' && $ctrl.sort.desc\\\"\\n                    ng-click=\\\"$ctrl.changeSort('Timestamp')\\\"\\n                  >\\n                  </table-column-header>\\n                </div>\\n              </th>\\n              <th class=\\\"small-column\\\">\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header\\n                    col-title=\\\"'User'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.sort.key === 'Username'\\\"\\n                    is-sorted-desc=\\\"$ctrl.sort.key === 'Username' && $ctrl.sort.desc\\\"\\n                    ng-click=\\\"$ctrl.changeSort('Username')\\\"\\n                  >\\n                  </table-column-header>\\n                </div>\\n              </th>\\n              <th class=\\\"small-column\\\">\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header\\n                    col-title=\\\"'Environment'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.sort.key === 'Context'\\\"\\n                    is-sorted-desc=\\\"$ctrl.sort.key === 'Context' && $ctrl.sort.desc\\\"\\n                    ng-click=\\\"$ctrl.changeSort('Context')\\\"\\n                  >\\n                  </table-column-header>\\n                </div>\\n              </th>\\n\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header col-title=\\\"'Action'\\\" can-sort=\\\"false\\\"> </table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header col-title=\\\"'Payload'\\\" can-sort=\\\"false\\\"> </table-column-header>\\n                </div>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr dir-paginate-start=\\\"item in $ctrl.logs | itemsPerPage: $ctrl.limit\\\" total-items=\\\"$ctrl.totalItems\\\" current-page=\\\"$ctrl.currentPage\\\">\\n              <td></td>\\n              <td></td>\\n              <td></td>\\n              <td></td>\\n              <td></td>\\n            </tr>\\n            <tr dir-paginate-end ng-show=\\\"item.Expanded\\\">\\n              <td colspan=\\\"5\\\">\\n                <json-tree object=\\\"item.payload\\\" root-name=\\\"containerInfo.Id\\\" start-expanded=\\\"true\\\"></json-tree>\\n              </td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.logs\\\">\\n              <td class=\\\"text-muted text-center\\\" colspan=\\\"5\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.logs.length === 0\\\">\\n              <td class=\\\"text-muted text-center\\\" colspan=\\\"8\\\"> No logs available. </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.logs\\\">\\n        <datatable-pagination limit=\\\"$ctrl.limit\\\" on-change-limit=\\\"($ctrl.handleChangeLimit)\\\" on-change-page=\\\"($ctrl.onChangePage)\\\"></datatable-pagination>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User activity logs'\\\" breadcrumbs=\\\"['User activity logs']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"mx-4\\\">\\n  <div class=\\\"be-indicator-container limited-be\\\">\\n    <div class=\\\"limited-be-link vertical-center m-4\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n    <div class=\\\"limited-be-content !p-0 !pt-[15px]\\\">\\n      <div class=\\\"row\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <rd-widget>\\n            <rd-widget-body>\\n              <div class=\\\"form-horizontal\\\">\\n                <div class=\\\"form-group\\\">\\n                  <label for=\\\"dateRangeInput\\\" class=\\\"col-sm-2 control-label text-left\\\">Date range</label>\\n                  <div class=\\\"col-sm-6\\\">\\n                    <input type=\\\"text\\\" class=\\\"form-control\\\" disabled />\\n                  </div>\\n                </div>\\n              </div>\\n              <p class=\\\"text-muted small vertical-center\\\">\\n                <pr-icon icon=\\\"'info'\\\" class-name=\\\"'icon icon-sm icon-primary'\\\"></pr-icon>\\n                Portainer user activity logs have a maximum retention of 7 days.\\n              </p>\\n              <div>\\n                <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeature}}\\\" limited-feature-class=\\\"limited-be\\\" limited-feature-disabled>\\n                  <pr-icon icon=\\\"'download'\\\" class-name=\\\"'icon icon-sm'\\\"></pr-icon>\\n                  Export as CSV\\n                </button>\\n              </div>\\n            </rd-widget-body>\\n          </rd-widget>\\n        </div>\\n      </div>\\n      <div class=\\\"row\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <activity-logs-datatable\\n            logs=\\\"$ctrl.state.logs\\\"\\n            keyword=\\\"$ctrl.state.keyword\\\"\\n            sort=\\\"$ctrl.state.sort\\\"\\n            limit=\\\"$ctrl.state.limit\\\"\\n            context-filter=\\\"$ctrl.state.contextFilter\\\"\\n            total-items=\\\"$ctrl.state.totalItems\\\"\\n            current-page=\\\"$ctrl.state.currentPage\\\"\\n            feature=\\\"{{:: $ctrl.limitedFeature}}\\\"\\n            on-change-keyword=\\\"($ctrl.onChangeKeyword)\\\"\\n            on-change-sort=\\\"($ctrl.onChangeSort)\\\"\\n            on-change-limit=\\\"($ctrl.onChangeLimit)\\\"\\n            on-change-page=\\\"($ctrl.onChangePage)\\\"\\n          ></activity-logs-datatable>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/activity-logs-view/activity-logs-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable datatable-empty\\\">\\n  <rd-widget>\\n    <rd-widget-body classes=\\\"no-padding\\\">\\n      <div class=\\\"toolBar vertical-center flex-wrap !gap-x-5 !gap-y-1\\\">\\n        <div class=\\\"toolBarTitle vertical-center\\\">\\n          <div class=\\\"widget-icon space-right\\\">\\n            <pr-icon icon=\\\"'history'\\\"></pr-icon>\\n          </div>\\n          Authentication events\\n        </div>\\n        <div class=\\\"vertical-center\\\">\\n          <datatable-searchbar on-change=\\\"($ctrl.onChangeKeyword)\\\"></datatable-searchbar>\\n        </div>\\n      </div>\\n      <div class=\\\"table-responsive\\\">\\n        <table class=\\\"table-hover nowrap-cells table\\\">\\n          <thead>\\n            <tr>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header\\n                    col-title=\\\"'Time'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.sort.key === 'Timestamp'\\\"\\n                    is-sorted-desc=\\\"$ctrl.sort.key === 'Timestamp' && $ctrl.sort.desc\\\"\\n                    ng-click=\\\"$ctrl.changeSort('Timestamp')\\\"\\n                  >\\n                  </table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header\\n                    col-title=\\\"'Origin'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.sort.key === 'Origin'\\\"\\n                    is-sorted-desc=\\\"$ctrl.sort.key === 'Origin' && $ctrl.sort.desc\\\"\\n                    ng-click=\\\"$ctrl.changeSort('Origin')\\\"\\n                  >\\n                  </table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header\\n                    col-title=\\\"'Context'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.sort.key === 'Context'\\\"\\n                    is-sorted-desc=\\\"$ctrl.sort.key === 'Context' && $ctrl.sort.desc\\\"\\n                    ng-click=\\\"$ctrl.changeSort('Context')\\\"\\n                  >\\n                  </table-column-header>\\n                  <datatable-filter labels=\\\"$ctrl.contextFilterLabels\\\" filter-key=\\\"context\\\" state=\\\"$ctrl.contextFilter\\\" on-change=\\\"($ctrl.onChangeContextFilter)\\\">\\n                  </datatable-filter>\\n                </div>\\n              </th>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header\\n                    col-title=\\\"'User'\\\"\\n                    can-sort=\\\"true\\\"\\n                    is-sorted=\\\"$ctrl.sort.key === 'Username'\\\"\\n                    is-sorted-desc=\\\"$ctrl.sort.key === 'Username' && $ctrl.sort.desc\\\"\\n                    ng-click=\\\"$ctrl.changeSort('Username')\\\"\\n                  >\\n                  </table-column-header>\\n                </div>\\n              </th>\\n              <th>\\n                <div class=\\\"vertical-center\\\">\\n                  <table-column-header col-title=\\\"'Result'\\\" can-sort=\\\"false\\\"> </table-column-header>\\n                  <datatable-filter labels=\\\"$ctrl.typeFilterLabels\\\" filter-key=\\\"type\\\" state=\\\"$ctrl.typeFilter\\\" on-change=\\\"($ctrl.onChangeTypeFilter)\\\"> </datatable-filter>\\n                </div>\\n              </th>\\n            </tr>\\n          </thead>\\n          <tbody>\\n            <tr dir-paginate=\\\"item in $ctrl.logs | itemsPerPage: $ctrl.limit\\\" total-items=\\\"$ctrl.totalItems\\\" current-page=\\\"$ctrl.currentPage\\\">\\n              <td></td>\\n              <td></td>\\n              <td></td>\\n              <td></td>\\n              <td></td>\\n            </tr>\\n            <tr ng-if=\\\"!$ctrl.logs\\\">\\n              <td class=\\\"text-muted text-center\\\" colspan=\\\"5\\\">Loading...</td>\\n            </tr>\\n            <tr ng-if=\\\"$ctrl.state.logs.length === 0\\\">\\n              <td class=\\\"text-muted text-center\\\" colspan=\\\"8\\\"> No logs available. </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </div>\\n      <div class=\\\"footer\\\" ng-if=\\\"$ctrl.logs\\\">\\n        <datatable-pagination limit=\\\"$ctrl.limit\\\" on-change-limit=\\\"($ctrl.handleChangeLimit)\\\" on-change-page=\\\"($ctrl.onChangePage)\\\"></datatable-pagination>\\n      </div>\\n    </rd-widget-body>\\n  </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User authentication logs'\\\" breadcrumbs=\\\"['User authentication logs']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"mx-4\\\">\\n  <div class=\\\"be-indicator-container limited-be\\\">\\n    <div class=\\\"limited-be-link vertical-center m-4\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n    <!-- 15px matches the padding for col-sm-12 for the widget and table -->\\n    <div class=\\\"limited-be-content !p-0 !pt-[15px]\\\">\\n      <div class=\\\"row\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <rd-widget>\\n            <rd-widget-body>\\n              <div class=\\\"form-horizontal\\\">\\n                <div class=\\\"form-group\\\">\\n                  <label for=\\\"dateRangeInput\\\" class=\\\"col-sm-2 control-label text-left\\\">Date range</label>\\n                  <div class=\\\"col-sm-6\\\">\\n                    <input type=\\\"text\\\" class=\\\"form-control\\\" disabled />\\n                  </div>\\n                </div>\\n              </div>\\n              <p class=\\\"text-muted small vertical-center\\\">\\n                <pr-icon icon=\\\"'info'\\\" class-name=\\\"'icon icon-sm icon-primary'\\\"></pr-icon>\\n                Portainer user authentication logs have a maximum retention of 7 days.\\n              </p>\\n              <div>\\n                <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeature}}\\\" limited-feature-class=\\\"limited-be\\\" limited-feature-disabled\\n                  ><pr-icon icon=\\\"'download'\\\" class-name=\\\"'icon icon-sm'\\\"></pr-icon>Export as CSV\\n                </button>\\n              </div>\\n            </rd-widget-body>\\n          </rd-widget>\\n        </div>\\n      </div>\\n      <div class=\\\"row\\\">\\n        <div class=\\\"col-sm-12\\\">\\n          <auth-logs-datatable\\n            logs=\\\"$ctrl.state.logs\\\"\\n            keyword=\\\"$ctrl.state.keyword\\\"\\n            sort=\\\"$ctrl.state.sort\\\"\\n            limit=\\\"$ctrl.state.limit\\\"\\n            context-filter=\\\"$ctrl.state.contextFilter\\\"\\n            type-filter=\\\"$ctrl.state.typeFilter\\\"\\n            total-items=\\\"$ctrl.state.totalItems\\\"\\n            current-page=\\\"$ctrl.state.currentPage\\\"\\n            feature=\\\"{{:: $ctrl.limitedFeature}}\\\"\\n            on-change-context-filter=\\\"($ctrl.onChangeContextFilter)\\\"\\n            on-change-type-filter=\\\"($ctrl.onChangeTypeFilter)\\\"\\n            on-change-keyword=\\\"($ctrl.onChangeKeyword)\\\"\\n            on-change-sort=\\\"($ctrl.onChangeSort)\\\"\\n            on-change-limit=\\\"($ctrl.onChangeLimit)\\\"\\n            on-change-page=\\\"($ctrl.onChangePage)\\\"\\n          ></auth-logs-datatable>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/auth-logs-view/auth-logs-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User settings'\\\" breadcrumbs=\\\"['User settings']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<demo-feature-indicator ng-if=\\\"isDemoUser\\\" content=\\\"'You cannot change the password of this account in the demo version of Portainer.'\\\"> </demo-feature-indicator>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <theme-settings></theme-settings>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"lock\\\" title-text=\\\"Change user password\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form name=\\\"form\\\" class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n          <!-- current-password-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"current_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Current password</label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.currentPassword\\\" id=\\\"current_password\\\" />\\n            </div>\\n          </div>\\n          <!-- !current-password-input -->\\n          <!-- new-password-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"new_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">New password</label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.newPassword\\\" ng-minlength=\\\"requiredPasswordLength\\\" id=\\\"new_password\\\" name=\\\"new_password\\\" />\\n            </div>\\n          </div>\\n          <!-- !new-password-input -->\\n\\n          <!-- confirm-password-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"confirm_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Confirm password</label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <div class=\\\"input-group\\\">\\n                <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.confirmPassword\\\" id=\\\"confirm_password\\\" />\\n                <span class=\\\"input-group-addon\\\">\\n                  <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"formValues.newPassword === formValues.confirmPassword\\\"></pr-icon>\\n                  <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"!(formValues.newPassword === formValues.confirmPassword)\\\"></pr-icon>\\n                </span>\\n              </div>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n            <div class=\\\"col-sm-8\\\">\\n              <password-check-hint password-valid=\\\"form.new_password.$valid && formValues.newPassword\\\" force-change-password=\\\"forceChangePassword\\\"></password-check-hint>\\n            </div>\\n          </div>\\n          <!-- !confirm-password-input -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"submit\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"isDemoUser || (AuthenticationMethod !== 1 && !isInitialAdmin) || !formValues.currentPassword || !formValues.newPassword || form.$invalid || formValues.newPassword !== formValues.confirmPassword\\\"\\n                ng-click=\\\"updatePassword()\\\"\\n              >\\n                Update password\\n              </button>\\n              <button type=\\\"submit\\\" class=\\\"btn btn-primary btn-sm\\\" ng-click=\\\"skipPasswordChange()\\\" ng-if=\\\"forceChangePassword && timesPasswordChangeSkipped < 2\\\">\\n                Remind me later\\n              </button>\\n              <span class=\\\"text-muted small vertical-center\\\" style=\\\"margin-left: 5px\\\" ng-if=\\\"AuthenticationMethod === 2 && !isInitialAdmin\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                You cannot change your password when using LDAP authentication.\\n              </span>\\n              <span class=\\\"text-muted small vertical-center\\\" style=\\\"margin-left: 5px\\\" ng-if=\\\"AuthenticationMethod === 3 && !isInitialAdmin\\\">\\n                <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                You cannot change your password when using OAuth authentication.\\n              </span>\\n            </div>\\n          </div>\\n          <div ng-if=\\\"userRole === 1\\\">\\n            <p class=\\\"text-muted vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-circle'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n              Minimum password length is set <a ui-sref=\\\"portainer.settings.authentication\\\">here.</a>\\n            </p>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<application-settings-widget></application-settings-widget>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <access-tokens-datatable\\n      title-text=\\\"Access tokens\\\"\\n      title-icon=\\\"key\\\"\\n      dataset=\\\"tokens\\\"\\n      table-key=\\\"tokens\\\"\\n      order-by=\\\"Description\\\"\\n      remove-action=\\\"removeAction\\\"\\n      ui-can-exit=\\\"uiCanExit\\\"\\n    ></access-tokens-datatable>\\n  </div>\\n</div>\\n\\n<helm-repository-datatable></helm-repository-datatable>\\n\";;\nvar path = 'app/portainer/views/account/account.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"page-wrapper\\\">\\n  <!-- login box -->\\n  <div class=\\\"simple-box container\\\">\\n    <div class=\\\"col-sm-4 col-sm-offset-4\\\">\\n      <!-- login box logo -->\\n      <div class=\\\"row\\\">\\n        <img ng-if=\\\"!ctrl.logo\\\" src=\\\"\" + require(\"@/assets/images/logo_alt.svg\") + \"\\\" class=\\\"simple-box-logo\\\" alt=\\\"Portainer\\\" />\\n        <img ng-if=\\\"ctrl.logo\\\" ng-src=\\\"{{ ctrl.logo }}\\\" class=\\\"simple-box-logo\\\" />\\n      </div>\\n      <!-- !login box logo -->\\n\\n      <div class=\\\"row p-5 text-center\\\">\\n        <p class=\\\"text-xl\\\">Log in to your account</p>\\n        <p class=\\\"text-md text-muted fw-bold\\\">Welcome back! Please enter your details</p>\\n      </div>\\n\\n      <!-- login panel -->\\n      <div class=\\\"panel panel-default\\\" ng-if=\\\"!ctrl.state.loginInProgress\\\">\\n        <div class=\\\"panel-body\\\">\\n          <!-- login form -->\\n          <form class=\\\"simple-box-form form-horizontal\\\">\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\" style=\\\"display: flex; justify-content: center\\\" ng-if=\\\"ctrl.state.showOAuthLogin\\\">\\n                <a ng-href=\\\"{{ ctrl.OAuthLoginURI }}\\\">\\n                  <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'Microsoft'\\\">\\n                    <pr-icon icon=\\\"'svg-microsoft'\\\"></pr-icon>\\n                    Login with Microsoft\\n                  </div>\\n                  <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'Google'\\\">\\n                    <pr-icon icon=\\\"'svg-google'\\\"></pr-icon>\\n                    Login with Google\\n                  </div>\\n                  <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'Github'\\\">\\n                    <pr-icon icon=\\\"'svg-github'\\\"></pr-icon>\\n                    Login with GitHub\\n                  </div>\\n                  <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'OAuth'\\\">\\n                    <pr-icon icon=\\\"'log-in'\\\"></pr-icon>\\n                    Login with OAuth\\n                  </div>\\n                </a>\\n              </div>\\n            </div>\\n\\n            <!-- divider -->\\n            <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.showOAuthLogin\\\">\\n              <div class=\\\"col-sm-12\\\" style=\\\"display: flex; align-items: center; justify-content: center\\\">\\n                <div class=\\\"striketext small text-muted\\\" style=\\\"display: flex; align-items: center; justify-content: center; width: 90%\\\">or</div>\\n              </div>\\n            </div>\\n\\n            <!-- use internal auth button -->\\n            <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.showOAuthLogin && !ctrl.state.showStandardLogin\\\">\\n              <div class=\\\"col-sm-12\\\" style=\\\"display: flex; justify-content: center\\\">\\n                <div class=\\\"btn btn-primary btn-md btn-block\\\" style=\\\"margin-left: 2px\\\" ng-click=\\\"ctrl.toggleStandardLogin()\\\"> Use internal authentication </div>\\n              </div>\\n            </div>\\n\\n            <!-- !username input -->\\n            <div ng-if=\\\"ctrl.state.showStandardLogin\\\">\\n              <div class=\\\"pb-2\\\">Username</div>\\n              <input\\n                id=\\\"username\\\"\\n                type=\\\"text\\\"\\n                class=\\\"form-control\\\"\\n                name=\\\"username\\\"\\n                ng-model=\\\"ctrl.formValues.Username\\\"\\n                auto-focus\\n                data-cy=\\\"auth-usernameInput\\\"\\n                placeholder=\\\"Enter your username\\\"\\n              />\\n            </div>\\n\\n            <!-- password input -->\\n            <div ng-if=\\\"ctrl.state.showStandardLogin\\\">\\n              <div class=\\\"pb-2\\\">Password</div>\\n              <div class=\\\"relative\\\">\\n                <input\\n                  id=\\\"password\\\"\\n                  ng-attr-type=\\\"{{ ctrl.state.passwordInputType }}\\\"\\n                  class=\\\"form-control pr-10\\\"\\n                  name=\\\"password\\\"\\n                  ng-model=\\\"ctrl.formValues.Password\\\"\\n                  autocomplete=\\\"off\\\"\\n                  data-cy=\\\"auth-passwordInput\\\"\\n                  placeholder=\\\"Enter your password\\\"\\n                  ng-trim=\\\"false\\\"\\n                />\\n                <button\\n                  data-cy=\\\"auth-passwordInputToggle\\\"\\n                  type=\\\"button\\\"\\n                  ng-click=\\\"ctrl.toggleShowPassword()\\\"\\n                  class=\\\"absolute right-0 top-0 flex h-[34px] w-[50px] items-center justify-center border-none bg-transparent\\\"\\n                  tooltip-append-to-body=\\\"true\\\"\\n                  tooltip-placement=\\\"top\\\"\\n                  tooltip-class=\\\"portainer-tooltip\\\"\\n                  uib-tooltip=\\\"{{ ctrl.state.passwordInputType === 'password' ? 'Show password' : 'Hide password' }}\\\"\\n                >\\n                  <pr-icon icon=\\\"ctrl.state.passwordInputType === 'password' ? 'eye-off' : 'eye'\\\" size=\\\"'md'\\\"></pr-icon>\\n                </button>\\n              </div>\\n            </div>\\n\\n            <div class=\\\"form-group overflow-auto\\\" ng-if=\\\"ctrl.state.showStandardLogin\\\">\\n              <!-- login button -->\\n              <div class=\\\"col-sm-12 d-flex py-1\\\">\\n                <button\\n                  type=\\\"submit\\\"\\n                  class=\\\"btn btn-primary btn-lg btn-block\\\"\\n                  ng-click=\\\"ctrl.authenticateUser()\\\"\\n                  button-spinner=\\\"ctrl.state.loginInProgress\\\"\\n                  ng-disabled=\\\"ctrl.state.loginInProgress\\\"\\n                  data-cy=\\\"auth-loginButton\\\"\\n                >\\n                  <span ng-hide=\\\"ctrl.state.loginInProgress\\\">Login</span>\\n                  <span ng-show=\\\"ctrl.state.loginInProgress\\\">Login in progress...</span>\\n                </button>\\n              </div>\\n            </div>\\n          </form>\\n          <!-- !login form -->\\n\\n          <!-- error message -->\\n          <div class=\\\"pull-right\\\" ng-if=\\\"ctrl.state.AuthenticationError\\\">\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\"></pr-icon>\\n            <span class=\\\"small text-danger\\\">{{ ctrl.state.AuthenticationError }}</span>\\n          </div>\\n        </div>\\n      </div>\\n\\n      <!-- !login panel -->\\n      <div class=\\\"panel panel-default\\\" ng-show=\\\"ctrl.state.loginInProgress\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"form-group text-center\\\">\\n            <span class=\\\"small text-muted\\\">Authentication in progress... <span button-spinner=\\\"true\\\"></span></span>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <!-- !login box -->\\n</div>\\n\";;\nvar path = 'app/portainer/views/auth/auth.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Custom Templates'\\\" breadcrumbs=\\\"['Custom Templates']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <stack-from-template-form\\n      ng-if=\\\"$ctrl.state.selectedTemplate\\\"\\n      template=\\\"$ctrl.state.selectedTemplate\\\"\\n      form-values=\\\"$ctrl.formValues\\\"\\n      name-regex=\\\"$ctrl.state.templateNameRegex\\\"\\n      state=\\\"$ctrl.state\\\"\\n      create-template=\\\"$ctrl.createStack\\\"\\n      unselect-template=\\\"$ctrl.unselectTemplate\\\"\\n    >\\n      <advanced-form>\\n        <custom-templates-variables-field\\n          ng-if=\\\"$ctrl.isTemplateVariablesEnabled\\\"\\n          definitions=\\\"$ctrl.state.selectedTemplate.Variables\\\"\\n          value=\\\"$ctrl.formValues.variables\\\"\\n          on-change=\\\"($ctrl.onChangeTemplateVariables)\\\"\\n        ></custom-templates-variables-field>\\n\\n        <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.selectedTemplate && !$ctrl.state.templateLoadFailed\\\">\\n          <div class=\\\"col-sm-12\\\">\\n            <a class=\\\"small interactive vertical-center\\\" ng-show=\\\"!$ctrl.state.showAdvancedOptions\\\" ng-click=\\\"$ctrl.state.showAdvancedOptions = true;\\\">\\n              <pr-icon icon=\\\"'plus'\\\" class-name=\\\"space-right\\\" feather=\\\"true\\\"></pr-icon> {{ $ctrl.state.selectedTemplate.GitConfig !== null ? 'View' : 'Customize' }} stack\\n            </a>\\n            <a class=\\\"small interactive vertical-center\\\" ng-show=\\\"$ctrl.state.showAdvancedOptions\\\" ng-click=\\\"$ctrl.state.showAdvancedOptions = false;\\\">\\n              <pr-icon icon=\\\"'minus'\\\" class-name=\\\"space-right\\\" feather=\\\"true\\\"></pr-icon> Hide {{ $ctrl.state.selectedTemplate.GitConfig === null ? 'custom' : '' }} stack\\n            </a>\\n          </div>\\n        </div>\\n\\n        <span ng-if=\\\"$ctrl.state.selectedTemplate && $ctrl.state.templateLoadFailed\\\">\\n          <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"$ctrl.currentUser.isAdmin || $ctrl.currentUser.id === $ctrl.state.selectedTemplate.CreatedByUserId\\\">\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please\\n            <a ui-sref=\\\"docker.templates.custom.edit({id: $ctrl.state.selectedTemplate.Id})\\\">click here</a> for configuration.</p\\n          >\\n          <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"!($ctrl.currentUser.isAdmin || $ctrl.currentUser.id === $ctrl.state.selectedTemplate.CreatedByUserId)\\\">\\n            <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please contact your administrator.</p\\n          >\\n        </span>\\n\\n        <!-- web-editor -->\\n        <web-editor-form\\n          ng-if=\\\"$ctrl.state.showAdvancedOptions\\\"\\n          identifier=\\\"custom-template-creation-editor\\\"\\n          value=\\\"$ctrl.formValues.fileContent\\\"\\n          on-change=\\\"($ctrl.editorUpdate)\\\"\\n          ng-required=\\\"true\\\"\\n          yml=\\\"true\\\"\\n          placeholder=\\\"Define or paste the content of your docker compose file here\\\"\\n          read-only=\\\"$ctrl.state.isEditorReadOnly\\\"\\n        >\\n          <editor-description>\\n            <p>\\n              You can get more information about Compose file format in the\\n              <a href=\\\"https://docs.docker.com/compose/compose-file/\\\" target=\\\"_blank\\\"> official documentation </a>\\n              .\\n            </p>\\n          </editor-description>\\n        </web-editor-form>\\n        <!-- !web-editor -->\\n      </advanced-form>\\n    </stack-from-template-form>\\n  </div>\\n</div>\\n\\n<custom-templates-list\\n  templates=\\\"$ctrl.templates\\\"\\n  on-select=\\\"($ctrl.selectTemplate)\\\"\\n  on-delete=\\\"($ctrl.confirmDelete)\\\"\\n  selected-id=\\\"$ctrl.state.selectedTemplate.Id\\\"\\n  storage-key=\\\"'docker-custom-templates'\\\"\\n></custom-templates-list>\\n\";;\nvar path = 'app/portainer/views/custom-templates/custom-templates-view/customTemplatesView.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'FDO Device Configuration'\\\" breadcrumbs=\\\"[{label:'Environments', link:'portainer.endpoints'}, 'Import FDO Device']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"wand-2\\\" title-text=\\\"Import Device Set up\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"fdoForm\\\">\\n          <!-- info -->\\n          <span class=\\\"small\\\">\\n            <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n              <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n              You are setting up a Portainer Edge Agent that will initiate the communications with the Portainer instance and your FDO Devices.\\n            </p>\\n          </span>\\n          <!-- !info -->\\n          <!-- import voucher -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Import Voucher </div>\\n          <div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"!state.vouchersUploaded\\\">\\n              <span class=\\\"small col-sm-12\\\">\\n                <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n                  <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n                  Import one or more Manufacturer's Ownership Vouchers to initiate device attestation\\n                </p>\\n              </span>\\n              <div class=\\\"col-sm-8\\\">\\n                <button\\n                  style=\\\"margin-left: 0px !important\\\"\\n                  class=\\\"btn btn-sm btn-primary\\\"\\n                  ngf-select=\\\"onVoucherFilesChange()\\\"\\n                  ng-model=\\\"formValues.VoucherFiles\\\"\\n                  name=\\\"VoucherFiles\\\"\\n                  ng-disabled=\\\"state.vouchersUploading\\\"\\n                  button-spinner=\\\"state.vouchersUploading\\\"\\n                  multiple\\n                >\\n                  <span ng-hide=\\\"state.vouchersUploading\\\"\\n                    >Upload\\n                    <pr-icon icon=\\\"'upload'\\\" class-name=\\\"'ml-1'\\\"></pr-icon>\\n                  </span>\\n                  <span ng-show=\\\"state.vouchersUploading\\\">Uploading Voucher...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"state.vouchersUploading\\\">\\n              <div class=\\\"col-sm-12 small text-success\\\">\\n                <p>Connecting to the Owner service...</p>\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"state.vouchersUploaded\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <p>Ownership Voucher Uploaded <pr-icon icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon></p>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !import voucher -->\\n          <!-- device details -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Device details </div>\\n          <div>\\n            <span class=\\\"small\\\">\\n              <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n                <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n                Device name will serve as your reference name in Portainer\\n              </p>\\n            </span>\\n            <!-- device name input -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"device_name\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Device Name</label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  name=\\\"device_name\\\"\\n                  placeholder=\\\"e.g. FDO-Test01\\\"\\n                  ng-model=\\\"formValues.DeviceName\\\"\\n                  ng-required=\\\"state.vouchersUploaded\\\"\\n                  ng-disabled=\\\"!state.vouchersUploaded\\\"\\n                  auto-focus\\n                  data-cy=\\\"deviceImport-deviceNameInput\\\"\\n                />\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"fdoForm.device_name.$invalid\\\">\\n              <div class=\\\"col-sm-12 small text-warning\\\">\\n                <div ng-messages=\\\"fdoForm.device_name.$error\\\">\\n                  <p ng-message=\\\"required\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    This field is required.</p\\n                  >\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !device name input -->\\n            <!-- suffix input -->\\n            <span class=\\\"small\\\">\\n              <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n                <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n                Suffix starting number will be appended to the end of the Device name, if initiating multiple devices this will be incrementally increased\\n              </p>\\n            </span>\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"suffix\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Suffix starting number </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  name=\\\"suffix\\\"\\n                  ng-model=\\\"formValues.Suffix\\\"\\n                  ng-required=\\\"state.vouchersUploaded\\\"\\n                  ng-disabled=\\\"!state.vouchersUploaded\\\"\\n                  ng-pattern=\\\"/^[0-9]+$/\\\"\\n                  placeholder=\\\"1\\\"\\n                  required\\n                  data-cy=\\\"deviceImport-suffixInput\\\"\\n                />\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"fdoForm.suffix.$invalid\\\">\\n              <div class=\\\"col-sm-12 small text-warning\\\">\\n                <div ng-messages=\\\"fdoForm.suffix.$error\\\">\\n                  <p ng-message=\\\"required\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    This field is required.</p\\n                  >\\n                  <p ng-message=\\\"pattern\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    This field needs to be a positive integer number.</p\\n                  >\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !suffix input -->\\n            <!-- portainer-instance-input -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"endpoint_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n                Portainer server URL\\n                <portainer-tooltip message=\\\"'URL of the Portainer instance that the agent will use to initiate the communications.'\\\"></portainer-tooltip>\\n              </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  name=\\\"endpoint_url\\\"\\n                  ng-model=\\\"formValues.PortainerURL\\\"\\n                  ng-required=\\\"state.vouchersUploaded\\\"\\n                  ng-disabled=\\\"!state.vouchersUploaded\\\"\\n                  placeholder=\\\"e.g. https://10.0.0.10:9443\\\"\\n                  required\\n                  data-cy=\\\"deviceImport-portainerServerUrlInput\\\"\\n                />\\n              </div>\\n            </div>\\n            <div class=\\\"form-group\\\" ng-show=\\\"fdoForm.endpoint_url.$invalid\\\">\\n              <div class=\\\"col-sm-12 small text-warning\\\">\\n                <div ng-messages=\\\"fdoForm.endpoint_url.$error\\\">\\n                  <p ng-message=\\\"required\\\">\\n                    <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                    This field is required.</p\\n                  >\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !portainer-instance-input -->\\n          </div>\\n          <!-- device profile input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"device_profile\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Device Profile</label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <select id=\\\"device_profile\\\" ng-model=\\\"formValues.DeviceProfile\\\" class=\\\"form-control\\\" ng-required=\\\"state.vouchersUploaded\\\" ng-disabled=\\\"!state.vouchersUploaded\\\">\\n                <option selected disabled hidden value=\\\"\\\">Select a profile for your device</option>\\n                <option ng-repeat=\\\"profile in profiles | orderBy: 'name'\\\" ng-value=\\\"profile.id\\\">{{ profile.name }}</option>\\n              </select>\\n            </div>\\n          </div>\\n          <!-- !device profile input -->\\n          <!-- !device details -->\\n          <!-- tags -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Set up Tags </div>\\n          <div>\\n            <span class=\\\"small\\\">\\n              <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n                <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n                This is just an option if your device is under a certain group\\n              </p>\\n            </span>\\n            <!-- group -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"device_group\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Group </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <select\\n                  class=\\\"form-control\\\"\\n                  ng-options=\\\"group.Id as group.Name for group in groups\\\"\\n                  ng-model=\\\"formValues.GroupId\\\"\\n                  id=\\\"device_group\\\"\\n                  ng-required=\\\"state.vouchersUploaded\\\"\\n                  ng-disabled=\\\"!state.vouchersUploaded\\\"\\n                  data-cy=\\\"deviceImport-deviceGroup\\\"\\n                ></select>\\n              </div>\\n            </div>\\n            <!-- !group -->\\n\\n            <tag-selector ng-if=\\\"formValues\\\" value=\\\"formValues.TagIds\\\" allow-create=\\\"state.allowCreateTag\\\" on-change=\\\"(onChangeTags)\\\"> </tag-selector>\\n\\n            <!-- actions -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"btn btn-primary btn-sm\\\"\\n                  ng-click=\\\"createEndpointAndConfigureDevice()\\\"\\n                  ng-disabled=\\\"state.actionInProgress || !state.vouchersUploaded || !fdoForm.$valid\\\"\\n                  button-spinner=\\\"state.actionInProgress\\\"\\n                  data-cy=\\\"deviceImport-saveDeviceButton\\\"\\n                >\\n                  <span ng-hide=\\\"state.actionInProgress\\\">Save Configuration</span>\\n                  <span ng-show=\\\"state.actionInProgress\\\">Saving...</span>\\n                </button>\\n                <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.endpoints\\\">Cancel</a>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/devices/import/importDevice.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create profile'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Edge Compute']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"createProfileForm\\\">\\n          <!-- name-input -->\\n          <div class=\\\"col-sm-12 form-section-title\\\">Device Profile Details </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"stack_name\\\" class=\\\"col-sm-1 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-11\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.name\\\" id=\\\"profile_name\\\" name=\\\"profile_name\\\" placeholder=\\\"e.g. myprofile\\\" auto-focus />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- build-method -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Profile configuration </div>\\n          <box-selector slim=\\\"true\\\" options=\\\"buildMethods\\\" value=\\\"state.method\\\"></box-selector>\\n\\n          <!-- !build-method -->\\n\\n          <web-editor-form\\n            ng-if=\\\"state.method === 'editor'\\\"\\n            identifier=\\\"profile-creation-editor\\\"\\n            value=\\\"formValues.profileFileContent\\\"\\n            on-change=\\\"(onChangeFileContent)\\\"\\n            ng-required=\\\"true\\\"\\n          >\\n          </web-editor-form>\\n\\n          <!-- actions -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.settings.edgeCompute\\\">Cancel</a>\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress\\n              || !createProfileForm.$valid\\n              || !formValues.profileFileContent\\n              || !formValues.name\\\"\\n                ng-click=\\\"createProfileAsync()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Save Profile</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Saving...</span>\\n              </button>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/devices/profiles/add/addProfile.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Edit profile'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Edge Compute']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"editProfileForm\\\">\\n          <!-- name-input -->\\n          <div class=\\\"col-sm-12 form-section-title\\\">Device Profile Details </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"stack_name\\\" class=\\\"col-sm-1 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-11\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.name\\\" id=\\\"profile_name\\\" name=\\\"profile_name\\\" placeholder=\\\"e.g. myprofile\\\" auto-focus />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- build-method -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Profile configuration </div>\\n\\n          <box-selector slim=\\\"true\\\" options=\\\"buildMethods\\\" value=\\\"state.method\\\"></box-selector>\\n\\n          <!-- !build-method -->\\n\\n          <web-editor-form\\n            ng-if=\\\"state.method === 'editor'\\\"\\n            identifier=\\\"profile-creation-editor\\\"\\n            value=\\\"formValues.profileFileContent\\\"\\n            on-change=\\\"(onChangeFileContent)\\\"\\n            ng-required=\\\"true\\\"\\n          >\\n          </web-editor-form>\\n\\n          <!-- actions -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.settings.edgeCompute\\\">Cancel</a>\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress\\n              || !editProfileForm.$valid\\n              || !formValues.profileFileContent\\n              || !formValues.name\\\"\\n                ng-click=\\\"updateProfileAsync()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Update Profile</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Saving...</span>\\n              </button>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/devices/profiles/edit/editProfile.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Environment registries'\\\" breadcrumbs=\\\"['Registry management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <registries-datatable\\n      title-text=\\\"Registries\\\"\\n      title-icon=\\\"radio\\\"\\n      dataset=\\\"$ctrl.registries\\\"\\n      table-key=\\\"endpointRegistries\\\"\\n      order-by=\\\"Name\\\"\\n      endpoint-type=\\\"$ctrl.endpointType\\\"\\n      can-manage-access=\\\"$ctrl.canManageAccess\\\"\\n      can-browse=\\\"$ctrl.canBrowse\\\"\\n    ></registries-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/endpoint-registries/registries.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Environment access'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Environments', link:'portainer.endpoints' },\\n    {\\n      label:ctrl.endpoint.Name,\\n      link: 'portainer.endpoints.endpoint',\\n      linkParams:{id: ctrl.endpoint.Id}\\n    }, 'Access management']\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"ctrl.endpoint\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"hard-drive\\\" title-text=\\\"Environment\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Name</td>\\n              <td>\\n                {{ ctrl.endpoint.Name }}\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>URL</td>\\n              <td>\\n                {{ ctrl.endpoint.URL | stripprotocol }}\\n              </td>\\n            </tr>\\n            <tr>\\n              <td>Group</td>\\n              <td>\\n                <a ui-sref=\\\"portainer.groups.group({ id: ctrl.group.Id })\\\">{{ ctrl.group.Name }}</a>\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<por-access-management\\n  ng-if=\\\"ctrl.endpoint && ctrl.group\\\"\\n  access-controlled-entity=\\\"ctrl.endpoint\\\"\\n  action-in-progress=\\\"ctrl.state.actionInProgress\\\"\\n  entity-type=\\\"endpoint\\\"\\n  inherit-from=\\\"ctrl.group\\\"\\n  update-access=\\\"ctrl.updateAccess\\\"\\n  limited-feature=\\\"ctrl.limitedFeature\\\"\\n>\\n</por-access-management>\\n\";;\nvar path = 'app/portainer/views/endpoints/access/endpointAccess.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"endpoint\\\" title=\\\"'Environment details'\\\" breadcrumbs=\\\"[{label:'Environments', link:'portainer.endpoints'}, endpoint.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div ng-if=\\\"state.edgeEndpoint\\\">\\n    <information-panel ng-if=\\\"state.edgeAssociated\\\" title-text=\\\"Edge information\\\">\\n      <span class=\\\"small text-muted\\\">\\n        <p class=\\\"vertical-center\\\">\\n          <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n          This Edge environment is associated to an Edge environment {{ state.kubernetesEndpoint ? '(Kubernetes)' : '(Docker)' }}.\\n        </p>\\n        <p>\\n          Edge key: <code>{{ endpoint.EdgeKey }}</code>\\n        </p>\\n        <p>\\n          Edge identifier: <code>{{ endpoint.EdgeID }}</code>\\n        </p>\\n        <p>\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary btn-sm\\\"\\n            ng-disabled=\\\"state.actionInProgress\\\"\\n            ng-click=\\\"onDisassociateEndpoint()\\\"\\n            button-spinner=\\\"state.actionInProgress\\\"\\n            analytics-on\\n            analytics-event=\\\"edge-endpoint-disassociate\\\"\\n            analytics-category=\\\"edge\\\"\\n          >\\n            <span ng-hide=\\\"state.actionInProgress\\\">Disassociate</span>\\n          </button>\\n        </p>\\n      </span>\\n    </information-panel>\\n\\n    <div class=\\\"col-sm-12\\\" ng-if=\\\"!state.edgeAssociated\\\">\\n      <rd-widget>\\n        <rd-widget-body>\\n          <div class=\\\"col-sm-12 form-section-title\\\">Deploy an agent</div>\\n          <span class=\\\"small text-muted\\\">\\n            <p class=\\\"vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n              Refer to the platform related command below to deploy the Edge agent in your remote cluster.\\n            </p>\\n            <p>\\n              The agent will communicate with Portainer via <u>{{ edgeKeyDetails.instanceURL }}</u> and <u>tcp://{{ edgeKeyDetails.tunnelServerAddr }}</u>\\n            </p>\\n          </span>\\n\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Edge agent deployment script </div>\\n          <edge-script-form edge-info=\\\"{ key: endpoint.EdgeKey, id: endpoint.EdgeID }\\\" commands=\\\"state.edgeScriptCommands\\\" async-mode=\\\"endpoint.Edge.AsyncMode\\\"></edge-script-form>\\n\\n          <edge-key-display edge-key=\\\"endpoint.EdgeKey\\\"> </edge-key-display>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n\\n  <information-panel ng-if=\\\"state.kubernetesEndpoint && (!state.edgeEndpoint || state.edgeAssociated)\\\" title-text=\\\"Kubernetes features configuration\\\">\\n    <span class=\\\"small text-muted vertical-center\\\">\\n      <pr-icon icon=\\\"'wrench'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n      You should configure the features available in this Kubernetes environment in the\\n      <a ui-sref=\\\"kubernetes.cluster.setup({endpointId: endpoint.Id})\\\">Kubernetes configuration</a> view.\\n    </span>\\n  </information-panel>\\n</div>\\n\\n<div class=\\\"row mt-4\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"$ctrl.endpointForm\\\">\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Configuration </div>\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"container_name\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"container_name\\\" ng-model=\\\"endpoint.Name\\\" placeholder=\\\"e.g. kubernetes-cluster01 / docker-prod01\\\" />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- endpoint-url-input -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"!state.edgeEndpoint\\\">\\n            <label for=\\\"endpoint_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n              <span ng-if=\\\"!state.agentEndpoint\\\">Environment URL</span>\\n              <span ng-if=\\\"state.agentEndpoint\\\">Environment address</span>\\n              <portainer-tooltip\\n                ng-if=\\\"!state.agentEndpoint\\\"\\n                message=\\\"'URL or IP address of a Docker host. The Docker API must be exposed over a TCP port. Please refer to the Docker documentation to configure it.'\\\"\\n              >\\n              </portainer-tooltip>\\n              <portainer-tooltip ng-if=\\\"state.agentEndpoint\\\" message=\\\"'The address for the Portainer agent in the format <HOST>:<PORT> or <IP>:<PORT>'\\\"> </portainer-tooltip>\\n            </label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input\\n                ng-disabled=\\\"endpointType === 'local' || state.azureEndpoint\\\"\\n                type=\\\"text\\\"\\n                class=\\\"form-control\\\"\\n                id=\\\"endpoint_url\\\"\\n                ng-model=\\\"endpoint.URL\\\"\\n                placeholder=\\\"e.g. 10.0.0.10:2375 or mydocker.mydomain.com:2375\\\"\\n              />\\n            </div>\\n          </div>\\n          <!-- !endpoint-url-input -->\\n          <!-- endpoint-public-url-input -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"!state.azureEndpoint\\\">\\n            <label for=\\\"endpoint_public_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n              Public IP\\n              <portainer-tooltip message=\\\"'URL or IP address where exposed containers will be reachable. This field is optional and will default to the environment URL.'\\\">\\n              </portainer-tooltip>\\n            </label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"endpoint_public_url\\\" ng-model=\\\"endpoint.PublicURL\\\" placeholder=\\\"e.g. 10.0.0.10 or mydocker.mydomain.com\\\" />\\n            </div>\\n          </div>\\n\\n          <div ng-if=\\\"endpoint && state.edgeEndpoint\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Check-in Intervals </div>\\n            <edge-checkin-interval-field value=\\\"endpoint.EdgeCheckinInterval\\\" on-change=\\\"(onChangeCheckInInterval)\\\"></edge-checkin-interval-field>\\n          </div>\\n\\n          <!-- !endpoint-public-url-input -->\\n\\n          <tls-fieldset\\n            ng-if=\\\"!state.edgeEndpoint && endpoint.Status !== 4 && state.showTLSConfig\\\"\\n            values=\\\"formValues.tlsConfig\\\"\\n            on-change=\\\"(onChangeTLSConfigFormValues)\\\"\\n            validation-data=\\\"{optionalCert: true}\\\"\\n          ></tls-fieldset>\\n\\n          <azure-endpoint-config\\n            ng-if=\\\"state.azureEndpoint\\\"\\n            application-id=\\\"endpoint.AzureCredentials.ApplicationID\\\"\\n            tenant-id=\\\"endpoint.AzureCredentials.TenantID\\\"\\n            authentication-key=\\\"endpoint.AzureCredentials.AuthenticationKey\\\"\\n          ></azure-endpoint-config>\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Metadata </div>\\n          <!-- group -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"endpoint_group\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Group </label>\\n            <div class=\\\"col-sm-9 col-lg-10\\\">\\n              <select ng-options=\\\"group.Id as group.Name for group in groups\\\" ng-model=\\\"endpoint.GroupId\\\" id=\\\"endpoint_group\\\" class=\\\"form-control\\\"></select>\\n            </div>\\n          </div>\\n          <!-- !group -->\\n\\n          <tag-selector ng-if=\\\"endpoint\\\" value=\\\"endpoint.TagIds\\\" allow-create=\\\"state.allowCreate\\\" on-change=\\\"(onChangeTags)\\\"></tag-selector>\\n\\n          <!-- open-amt info -->\\n          <div ng-if=\\\"state.showAMTInfo\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Open Active Management Technology </div>\\n\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"endpoint_managementinfoVersion\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> AMT Version </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input type=\\\"text\\\" ng-disabled=\\\"true\\\" class=\\\"form-control\\\" id=\\\"endpoint_managementinfoVersion\\\" ng-model=\\\"endpoint.ManagementInfo['AMT']\\\" placeholder=\\\"Loading...\\\" />\\n              </div>\\n            </div>\\n\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"endpoint_managementinfoUUID\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> UUID </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input type=\\\"text\\\" ng-disabled=\\\"true\\\" class=\\\"form-control\\\" id=\\\"endpoint_managementinfoUUID\\\" ng-model=\\\"endpoint.ManagementInfo['UUID']\\\" placeholder=\\\"Loading...\\\" />\\n              </div>\\n            </div>\\n\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"endpoint_managementinfoBuildNumber\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Build Number </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  ng-disabled=\\\"true\\\"\\n                  class=\\\"form-control\\\"\\n                  id=\\\"endpoint_managementinfoBuildNumber\\\"\\n                  ng-model=\\\"endpoint.ManagementInfo['Build Number']\\\"\\n                  placeholder=\\\"Loading...\\\"\\n                />\\n              </div>\\n            </div>\\n\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"endpoint_managementinfoControlMode\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Control Mode </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  ng-disabled=\\\"true\\\"\\n                  class=\\\"form-control\\\"\\n                  id=\\\"endpoint_managementinfoControlMode\\\"\\n                  ng-model=\\\"endpoint.ManagementInfo['Control Mode']\\\"\\n                  placeholder=\\\"Loading...\\\"\\n                />\\n              </div>\\n            </div>\\n\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"endpoint_managementinfoDNSSuffix\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> DNS Suffix </label>\\n              <div class=\\\"col-sm-9 col-lg-10\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  ng-disabled=\\\"true\\\"\\n                  class=\\\"form-control\\\"\\n                  id=\\\"endpoint_managementinfoDNSSuffix\\\"\\n                  ng-model=\\\"endpoint.ManagementInfo['DNS Suffix']\\\"\\n                  placeholder=\\\"Loading...\\\"\\n                />\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !open-amt info -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                ng-disabled=\\\"state.actionInProgress || !endpoint.Name || !endpoint.URL || !$ctrl.endpointForm.$valid\\\"\\n                ng-click=\\\"updateEndpoint()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Update environment</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Updating environment...</span>\\n              </button>\\n              <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.endpoints\\\">Cancel</a>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/endpoints/edit/endpoint.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'KVM Control'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Environments', link:'portainer.endpoints' },\\n    {\\n      label:$state.endpoint.Name,\\n      link: 'portainer.endpoints.endpoint',\\n      linkParams:{id: $state.endpoint.Id}\\n    },\\n    $state.deviceName,\\n    'KVM Control']\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <div class=\\\"datatable\\\" ng-class=\\\"{ 'kvm-maximized': $state.maximized }\\\">\\n      <rd-widget>\\n        <rd-widget-body classes=\\\"no-padding\\\">\\n          <div class=\\\"toolBar\\\">\\n            <div class=\\\"toolBarTitle\\\">KVM Control</div>\\n            <pr-icon icon=\\\"'x'\\\" ui-sref=\\\"edge.devices\\\" class-name=\\\"'interactive pull-right'\\\" size=\\\"'lg'\\\"></pr-icon>\\n            <pr-icon ng-click=\\\"maximize()\\\" title=\\\"Maximize\\\" icon=\\\"'maximize-2'\\\" class-name=\\\"'!mr-2 interactive  pull-right'\\\" size=\\\"'lg'\\\"></pr-icon>\\n            <pr-icon ng-click=\\\"minimize()\\\" title=\\\"Minimize\\\" icon=\\\"'minimize-2'\\\" class-name=\\\"'!mr-2 interactive pull-right'\\\" size=\\\"'lg'\\\"></pr-icon>\\n          </div>\\n          <div class=\\\"actionBar\\\">\\n            <kvm-control device-id=\\\"$state.deviceId\\\" server=\\\"$state.mpsServer\\\" token=\\\"$state.mpsToken\\\"> </kvm-control>\\n          </div>\\n        </rd-widget-body>\\n      </rd-widget>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/endpoints/kvm/endpointKVM.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n  title=\\\"'Environment group access'\\\"\\n  breadcrumbs=\\\"[\\n    { label:'Groups', link:'portainer.groups' },\\n    {\\n      label:group.Name,\\n      link: 'portainer.groups.group',\\n      linkParams:{id: group.Id}\\n    }, 'Access management']\\\"\\n  reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"group\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"dice-4\\\" title-text=\\\"Group\\\"></rd-widget-header>\\n      <rd-widget-body classes=\\\"no-padding\\\">\\n        <table class=\\\"table\\\">\\n          <tbody>\\n            <tr>\\n              <td>Name</td>\\n              <td>\\n                {{ group.Name }}\\n              </td>\\n            </tr>\\n          </tbody>\\n        </table>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<por-access-management\\n  ng-if=\\\"group\\\"\\n  access-controlled-entity=\\\"group\\\"\\n  entity-type=\\\"group\\\"\\n  action-in-progress=\\\"state.actionInProgress\\\"\\n  update-access=\\\"updateAccess\\\"\\n  limited-feature=\\\"limitedFeature\\\"\\n></por-access-management>\\n\";;\nvar path = 'app/portainer/views/groups/access/groupAccess.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create environment group'\\\" breadcrumbs=\\\"[{label:'Environment groups', link:'portainer.groups'}, 'Add group']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <group-form\\n          loaded=\\\"loaded\\\"\\n          model=\\\"model\\\"\\n          associated-endpoints=\\\"associatedEndpoints\\\"\\n          form-action=\\\"create\\\"\\n          form-action-label=\\\"Create the group\\\"\\n          action-in-progress=\\\"state.actionInProgress\\\"\\n          on-change-environments=\\\"(onChangeEnvironments)\\\"\\n        ></group-form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/groups/create/creategroup.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Environment group details'\\\" breadcrumbs=\\\"[{label:'Groups', link:'portainer.groups'}, group.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <group-form\\n          loaded=\\\"loaded\\\"\\n          model=\\\"group\\\"\\n          associated-endpoints=\\\"associatedEndpoints\\\"\\n          form-action=\\\"update\\\"\\n          form-action-label=\\\"Update the group\\\"\\n          action-in-progress=\\\"state.actionInProgress\\\"\\n          on-change-environments=\\\"(onChangeEnvironments)\\\"\\n        ></group-form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/groups/edit/group.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Environment groups'\\\" breadcrumbs=\\\"['Environment group management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <groups-datatable title-text=\\\"Environment groups\\\" title-icon=\\\"dice-4\\\" dataset=\\\"groups\\\" table-key=\\\"groups\\\" order-by=\\\"Name\\\" remove-action=\\\"removeAction\\\"></groups-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/groups/groups.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"page-wrapper\\\">\\n  <!-- simple box -->\\n  <div class=\\\"simple-box container\\\">\\n    <div class=\\\"col-md-8 col-md-offset-2 col-sm-10 col-sm-offset-1\\\">\\n      <!-- simple box logo -->\\n      <div class=\\\"row\\\">\\n        <img ng-if=\\\"logo\\\" ng-src=\\\"{{ logo }}\\\" class=\\\"simple-box-logo\\\" />\\n        <img ng-if=\\\"!logo\\\" src=\\\"\" + require(\"@/assets/images/logo_alt.svg\") + \"\\\" class=\\\"simple-box-logo\\\" alt=\\\"Portainer\\\" />\\n      </div>\\n      <!-- !simple box logo -->\\n      <!-- init password panel -->\\n      <div class=\\\"panel panel-default\\\">\\n        <div class=\\\"panel-body\\\">\\n          <!-- toggle -->\\n          <div>\\n            <a ng-click=\\\"togglePanel()\\\" class=\\\"vertical-center\\\">\\n              <span>\\n                <pr-icon icon=\\\"'chevron-down'\\\" ng-if=\\\"state.showInitPassword\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n                <pr-icon icon=\\\"'chevron-right'\\\" ng-if=\\\"!state.showInitPassword\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n              </span>\\n              <span class=\\\"form-section-title\\\">New Portainer installation</span>\\n            </a>\\n          </div>\\n          <!-- !toggle -->\\n\\n          <!-- init password form -->\\n          <form name=\\\"form\\\" class=\\\"simple-box-form form-horizontal padding-top\\\" ng-if=\\\"state.showInitPassword\\\">\\n            <!-- note -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <span class=\\\"small text-muted\\\"> Please create the initial administrator user. </span>\\n              </div>\\n            </div>\\n            <!-- !note -->\\n            <!-- username-input -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"username\\\" class=\\\"col-sm-4 control-label text-left\\\"> Username </label>\\n              <div class=\\\"col-sm-8\\\">\\n                <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"username\\\" ng-model=\\\"formValues.Username\\\" placeholder=\\\"e.g. admin\\\" />\\n              </div>\\n            </div>\\n            <!-- !username-input -->\\n            <!-- new-password-input -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"password\\\" class=\\\"col-sm-4 control-label text-left\\\">Password</label>\\n              <div class=\\\"col-sm-8\\\">\\n                <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Password\\\" id=\\\"password\\\" name=\\\"password\\\" ng-minlength=\\\"requiredPasswordLength\\\" auto-focus />\\n              </div>\\n            </div>\\n            <!-- !new-password-input -->\\n            <!-- confirm-password-input -->\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"confirm_password\\\" class=\\\"col-sm-4 control-label text-left\\\">Confirm password</label>\\n              <div class=\\\"col-sm-8\\\">\\n                <div class=\\\"input-group\\\">\\n                  <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.ConfirmPassword\\\" id=\\\"confirm_password\\\" />\\n                  <span class=\\\"input-group-addon !rounded-r-[5px]\\\">\\n                    <pr-icon ng-if=\\\"form.password.$viewValue !== '' && form.password.$viewValue === formValues.ConfirmPassword\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon>\\n                    <pr-icon ng-if=\\\"form.password.$viewValue === '' || form.password.$viewValue !== formValues.ConfirmPassword\\\" icon=\\\"'x'\\\" mode=\\\"'danger'\\\"></pr-icon>\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !confirm-password-input -->\\n            <!-- note -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12 text-warning\\\">\\n                <p class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                  <span>The password must be at least {{ requiredPasswordLength }} characters long.</span>\\n                  <pr-icon mode=\\\"'success'\\\" icon=\\\"'check'\\\" ng-if=\\\"form.password.$valid && formValues.Password\\\"></pr-icon>\\n                </p>\\n              </div>\\n            </div>\\n            <!-- !note -->\\n            <!-- actions -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"submit\\\"\\n                  class=\\\"btn btn-primary btn-sm\\\"\\n                  ng-disabled=\\\"state.actionInProgress || form.$invalid || !formValues.Password || !formValues.ConfirmPassword ||  form.password.$viewValue !== formValues.ConfirmPassword\\\"\\n                  ng-click=\\\"createAdminUser()\\\"\\n                  button-spinner=\\\"state.actionInProgress\\\"\\n                >\\n                  <span ng-hide=\\\"state.actionInProgress\\\">Create user</span>\\n                  <span ng-show=\\\"state.actionInProgress\\\">Creating user...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n            <!-- enableTelemetry-->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12 vertical-center\\\">\\n                <input type=\\\"checkbox\\\" name=\\\"toggle_enableTelemetry\\\" ng-model=\\\"formValues.enableTelemetry\\\" />\\n                <span class=\\\"text-muted small\\\"\\n                  >Allow collection of anonymous statistics. You can find more information about this in our\\n                  <a class=\\\"hyperlink\\\" href=\\\"https://www.portainer.io/documentation/in-app-analytics-and-privacy-policy/\\\" target=\\\"_blank\\\">privacy policy</a>.</span\\n                >\\n              </div>\\n            </div>\\n            <!-- !enableTelemetry-->\\n          </form>\\n          <!-- !init password form -->\\n        </div>\\n      </div>\\n      <!-- !init password panel -->\\n\\n      <!-- restore backup panel -->\\n      <div class=\\\"panel panel-default\\\">\\n        <div class=\\\"panel-body\\\">\\n          <!-- toggle -->\\n          <div>\\n            <a ng-click=\\\"togglePanel()\\\" data-cy=\\\"init-installPortainerFromBackup\\\" class=\\\"vertical-center\\\">\\n              <span\\n                ><pr-icon icon=\\\"'chevron-down'\\\" ng-if=\\\"state.showRestorePortainer\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n                <pr-icon icon=\\\"'chevron-right'\\\" ng-if=\\\"!state.showRestorePortainer\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon\\n              ></span>\\n              <span class=\\\"form-section-title\\\">Restore Portainer from backup</span>\\n            </a>\\n          </div>\\n          <!-- !toggle -->\\n\\n          <!-- restore form -->\\n          <form class=\\\"simple-box-form form-horizontal padding-top\\\" ng-if=\\\"state.showRestorePortainer\\\">\\n            <!-- note -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-9\\\">\\n                <span class=\\\"small text-muted\\\">\\n                  This will restore the Portainer metadata which contains information about the environments, stacks and applications, as well as the configured users.\\n                </span>\\n              </div>\\n            </div>\\n            <!-- !note -->\\n\\n            <box-selector slim=\\\"true\\\" options=\\\"restoreOptions\\\" value=\\\"formValues.restoreFormType\\\" on-change=\\\"(onChangeRestoreType)\\\" radio-name=\\\"'restore-type'\\\"></box-selector>\\n\\n            <div ng-if=\\\"formValues.restoreFormType === RESTORE_FORM_TYPES.FILE\\\">\\n              <!-- note -->\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\">\\n                  <span class=\\\"small text-muted\\\"> You can upload a backup file from your computer. </span>\\n                </div>\\n              </div>\\n              <!-- !note -->\\n              <!-- select-file-input -->\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12 vertical-center\\\">\\n                  <button\\n                    class=\\\"btn btn-sm btn-primary\\\"\\n                    ngf-select\\n                    accept=\\\".gz,.encrypted\\\"\\n                    ngf-accept=\\\"'application/x-tar,application/x-gzip'\\\"\\n                    ng-model=\\\"formValues.BackupFile\\\"\\n                    auto-focus\\n                    data-cy=\\\"init-selectBackupFileButton\\\"\\n                    >Select file</button\\n                  >\\n                  <span class=\\\"space-left vertical-center\\\">\\n                    {{ formValues.BackupFile.name }}\\n                    <pr-icon icon=\\\"'x-circle'\\\" class-name=\\\"'icon-danger'\\\" ng-if=\\\"!formValues.BackupFile\\\"></pr-icon>\\n                  </span>\\n                </div>\\n              </div>\\n              <!-- password-input -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"password\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n                  Password\\n                  <portainer-tooltip\\n                    message=\\\"'If the backup is password protected, provide the password in order to extract the backup file, otherwise this field can be left empty.'\\\"\\n                  ></portainer-tooltip>\\n                </label>\\n                <div class=\\\"col-sm-4\\\">\\n                  <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Password\\\" id=\\\"password\\\" data-cy=\\\"init-backupPasswordInput\\\" />\\n                </div>\\n              </div>\\n              <!-- !password-input -->\\n            </div>\\n            <!-- !select-file-input -->\\n            <div class=\\\"limited-be-content\\\" ng-if=\\\"formValues.restoreFormType === RESTORE_FORM_TYPES.S3\\\">\\n              <!-- Access key id  -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"access_key_id\\\" class=\\\"col-sm-3 control-label text-left\\\">Access key ID</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"access_key_id\\\" name=\\\"access_key_id\\\" ng-model=\\\"formValues.AccessKeyId\\\" required data-cy=\\\"init-accessKeyIdInput\\\" />\\n                </div>\\n              </div>\\n              <!-- !Access key id  -->\\n              <!-- Secret access key -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"secret_access_key\\\" class=\\\"col-sm-3 control-label text-left\\\">Secret access key</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input\\n                    type=\\\"password\\\"\\n                    class=\\\"form-control\\\"\\n                    id=\\\"secret_access_key\\\"\\n                    name=\\\"secret_access_key\\\"\\n                    ng-model=\\\"formValues.SecretAccessKey\\\"\\n                    required\\n                    data-cy=\\\"init-secretAccessKeyInput\\\"\\n                  />\\n                </div>\\n              </div>\\n              <!-- !Secret access key -->\\n              <!-- Region -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"backup-s3-region\\\" class=\\\"col-sm-3 control-label text-left\\\">Region</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input\\n                    type=\\\"text\\\"\\n                    class=\\\"form-control\\\"\\n                    placeholder=\\\"default region is us-east-1 if left empty\\\"\\n                    id=\\\"backup-s3-region\\\"\\n                    name=\\\"backup-s3-region\\\"\\n                    ng-model=\\\"formValues.Region\\\"\\n                    data-cy=\\\"init-s3RegionInput\\\"\\n                  />\\n                </div>\\n              </div>\\n              <!-- !Region -->\\n              <!-- Bucket name -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"bucket_name\\\" class=\\\"col-sm-3 control-label text-left\\\">Bucket name</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"bucket_name\\\" name=\\\"bucket_name\\\" ng-model=\\\"formValues.BucketName\\\" required data-cy=\\\"init-bucketNameInput\\\" />\\n                </div>\\n              </div>\\n              <!-- !Bucket name -->\\n              <!-- S3 Compatible Host -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"s3-compatible-host\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n                  S3 Compatible Host\\n                  <portainer-tooltip message=\\\"'Hostname of a S3 service'\\\"></portainer-tooltip>\\n                </label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input\\n                    type=\\\"text\\\"\\n                    class=\\\"form-control\\\"\\n                    id=\\\"s3-compatible-host\\\"\\n                    name=\\\"s3-compatible-host\\\"\\n                    ng-model=\\\"formValues.S3CompatibleHost\\\"\\n                    placeholder=\\\"leave empty for AWS S3\\\"\\n                    data-cy=\\\"init-s3CompatibleHostInput\\\"\\n                  />\\n                </div>\\n              </div>\\n              <!-- !S3 Compatible Host -->\\n              <!-- Filename -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"backup-s3-filename\\\" class=\\\"col-sm-3 control-label text-left\\\">Filename</label>\\n                <div class=\\\"col-sm-9\\\">\\n                  <input\\n                    type=\\\"text\\\"\\n                    class=\\\"form-control\\\"\\n                    id=\\\"backup-s3-filename\\\"\\n                    name=\\\"backup-s3-filename\\\"\\n                    ng-model=\\\"formValues.Filename\\\"\\n                    required\\n                    data-cy=\\\"init-backupFilenameInput\\\"\\n                  />\\n                </div>\\n              </div>\\n              <!-- !Filename -->\\n              <!-- password-input -->\\n              <div class=\\\"form-group\\\">\\n                <label for=\\\"password\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n                  Password\\n                  <portainer-tooltip\\n                    message=\\\"'If the backup is password protected, provide the password in order to extract the backup file, otherwise this field can be left empty.'\\\"\\n                  ></portainer-tooltip>\\n                </label>\\n                <div class=\\\"col-sm-4\\\">\\n                  <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Password\\\" id=\\\"password\\\" data-cy=\\\"init-backupPasswordInput\\\" />\\n                </div>\\n              </div>\\n              <!-- !password-input -->\\n            </div>\\n            <!-- note -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <span class=\\\"small text-muted\\\"> You are about to restore Portainer from this backup. </span>\\n              </div>\\n              <div class=\\\"col-sm-12\\\">\\n                <span class=\\\"small text-muted\\\"> After restoring has completed, please log in as a user that was known by the Portainer that was restored. </span>\\n              </div>\\n            </div>\\n            <!-- !note -->\\n            <!-- actions -->\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button\\n                  type=\\\"submit\\\"\\n                  class=\\\"btn btn-primary btn-sm\\\"\\n                  ng-disabled=\\\"!formValues.BackupFile || state.backupInProgress\\\"\\n                  ng-click=\\\"uploadBackup()\\\"\\n                  button-spinner=\\\"state.backupInProgress\\\"\\n                  data-cy=\\\"init-restorePortainerButton\\\"\\n                >\\n                  <span ng-hide=\\\"state.backupInProgress\\\">Restore Portainer</span>\\n                  <span ng-show=\\\"state.backupInProgress\\\">Restoring Portainer...</span>\\n                </button>\\n              </div>\\n            </div>\\n            <!-- !actions -->\\n          </form>\\n          <!-- !restore backup form -->\\n        </div>\\n      </div>\\n      <!-- !restore backup panel -->\\n    </div>\\n  </div>\\n  <!-- !simple box -->\\n</div>\\n\";;\nvar path = 'app/portainer/views/init/admin/initAdmin.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"page-wrapper\\\">\\n  <!-- login box -->\\n  <div class=\\\"simple-box container\\\">\\n    <div class=\\\"col-md-6 col-md-offset-3 col-sm-6 col-sm-offset-3\\\">\\n      <!-- login box logo -->\\n      <div class=\\\"row\\\">\\n        <img ng-if=\\\"!ctrl.logo\\\" src=\\\"\" + require(\"@/assets/images/logo_alt.svg\") + \"\\\" class=\\\"simple-box-logo\\\" alt=\\\"Portainer\\\" />\\n        <img ng-if=\\\"ctrl.logo\\\" ng-src=\\\"{{ ctrl.logo }}\\\" class=\\\"simple-box-logo\\\" />\\n      </div>\\n      <div class=\\\"row text-center\\\">\\n        Logout in progress...\\n        <pr-icon icon=\\\"'settings'\\\" class-name=\\\"'animate-spin-slow space-left'\\\"></pr-icon>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/logout/logout.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Authentication settings'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Authentication']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"users\\\" title-text=\\\"Authentication\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"authSettingsForm\\\">\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Configuration </div>\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"user_timeout\\\" class=\\\"col-sm-2 control-label text-left\\\">\\n              Session lifetime\\n              <portainer-tooltip message=\\\"'Time before users are forced to relogin.'\\\"></portainer-tooltip>\\n            </label>\\n            <div class=\\\"col-sm-10\\\">\\n              <select\\n                id=\\\"user_timeout\\\"\\n                class=\\\"form-control\\\"\\n                ng-model=\\\"settings.UserSessionTimeout\\\"\\n                ng-options=\\\"opt.value as opt.key for opt in state.availableUserSessionTimeoutOptions\\\"\\n              ></select>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n              <pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-yellow'\\\"></pr-icon>\\n              Changing from default is only recommended if you have additional layers of authentication in front of Portainer.\\n            </span>\\n          </div>\\n\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Authentication method </div>\\n\\n          <box-selector radio-name=\\\"'authOptions'\\\" value=\\\"authMethod\\\" options=\\\"authOptions\\\" on-change=\\\"(onChangeAuthMethod)\\\"></box-selector>\\n\\n          <internal-auth\\n            ng-if=\\\"authenticationMethodSelected(1)\\\"\\n            on-save-settings=\\\"(saveSettings)\\\"\\n            is-loading=\\\"state.actionInProgress\\\"\\n            value=\\\"settings.InternalAuthSettings\\\"\\n            on-change=\\\"(onChangePasswordLength)\\\"\\n          ></internal-auth>\\n\\n          <ldap-settings\\n            ng-if=\\\"authenticationMethodSelected(2)\\\"\\n            settings=\\\"formValues.ldap.ldapSettings\\\"\\n            tlsca-cert=\\\"formValues.TLSCACert\\\"\\n            state=\\\"state\\\"\\n            connectivity-check=\\\"LDAPConnectivityCheck\\\"\\n            on-save-settings=\\\"(saveSettings)\\\"\\n            save-button-state=\\\"state.actionInProgress\\\"\\n            is-ldap-form-valid=\\\"isLDAPFormValid\\\"\\n          ></ldap-settings>\\n\\n          <ad-settings\\n            ng-if=\\\"authenticationMethodSelected(4)\\\"\\n            settings=\\\"formValues.ldap.adSettings\\\"\\n            tlsca-cert=\\\"formValues.TLSCACert\\\"\\n            state=\\\"state\\\"\\n            connectivity-check=\\\"LDAPConnectivityCheck\\\"\\n            on-save-settings=\\\"(saveSettings)\\\"\\n            save-button-state=\\\"state.actionInProgress\\\"\\n            is-ldap-form-valid=\\\"isLDAPFormValid()\\\"\\n          ></ad-settings>\\n\\n          <oauth-settings\\n            ng-if=\\\"authenticationMethodSelected(3)\\\"\\n            settings=\\\"OAuthSettings\\\"\\n            teams=\\\"teams\\\"\\n            on-save-settings=\\\"(saveSettings)\\\"\\n            save-button-state=\\\"state.actionInProgress\\\"\\n          ></oauth-settings>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/settings/authentication/settingsAuthentication.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Settings'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Edge Compute']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.settings\\\">\\n    <settings-edge-compute on-submit=\\\"($ctrl.onSubmitEdgeCompute)\\\" settings=\\\"($ctrl.settings)\\\"></settings-edge-compute>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.settings\\\">\\n    <settings-open-amt on-submit=\\\"($ctrl.onSubmitOpenAMT)\\\" settings=\\\"($ctrl.settings)\\\"></settings-open-amt>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.settings\\\">\\n    <settings-fdo on-submit=\\\"($ctrl.onSubmitFDO)\\\" settings=\\\"($ctrl.settings)\\\"></settings-fdo>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/settings/edge-compute/settingsEdgeCompute.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create stack'\\\" breadcrumbs=\\\"[{label:'Stacks', link:'docker.stacks'}, 'Add stack']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"createStackForm\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"stack_name\\\" class=\\\"col-sm-1 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-11\\\">\\n              <input\\n                type=\\\"text\\\"\\n                class=\\\"form-control\\\"\\n                ng-model=\\\"formValues.Name\\\"\\n                id=\\\"stack_name\\\"\\n                name=\\\"stack_name\\\"\\n                placeholder=\\\"e.g. mystack\\\"\\n                auto-focus\\n                ng-pattern=\\\"STACK_NAME_VALIDATION_REGEX\\\"\\n              />\\n              <div class=\\\"help-block\\\" ng-show=\\\"createStackForm.stack_name.$invalid\\\">\\n                <div class=\\\"small text-warning\\\">\\n                  <div ng-messages=\\\"createStackForm.stack_name.$error\\\">\\n                    <p ng-message=\\\"pattern\\\">\\n                      <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span>\\n                      This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').\\n                    </p>\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <div class=\\\"form-group\\\">\\n            <span class=\\\"col-sm-12 text-muted small\\\" ng-if=\\\"state.StackType === 1\\\">\\n              This stack will be deployed using the equivalent of the <code>docker stack deploy</code> command.\\n            </span>\\n            <div class=\\\"col-sm-12 text-muted small\\\" ng-if=\\\"state.StackType === 2 && composeSyntaxMaxVersion == 2\\\">\\n              <div style=\\\"margin-bottom: 7px\\\">\\n                This stack will be deployed using the equivalent of <code>docker compose</code>. Only Compose file format version <b>2</b> is supported at the moment.\\n              </div>\\n              <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n              Note: Due to a limitation of libcompose, the name of the stack will be standardized to remove all special characters and uppercase letters.\\n            </div>\\n            <span class=\\\"col-sm-12 text-muted small\\\" ng-if=\\\"state.StackType === 2 && composeSyntaxMaxVersion > 2\\\">\\n              This stack will be deployed using <code>docker compose</code>.\\n            </span>\\n          </div>\\n          <!-- build-method -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Build method </div>\\n\\n          <box-selector slim=\\\"true\\\" radio-name=\\\"'build-method'\\\" options=\\\"buildMethods\\\" value=\\\"state.Method\\\" on-change=\\\"(onBuildMethodChange)\\\" slim=\\\"true\\\"></box-selector>\\n\\n          <!-- !build-method -->\\n\\n          <!-- upload -->\\n          <div ng-show=\\\"state.Method === 'upload'\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\"> Upload </div>\\n            <div class=\\\"form-group\\\">\\n              <span class=\\\"col-sm-12 text-muted small\\\"> You can upload a Compose file from your computer. </span>\\n              <div class=\\\"col-sm-12\\\" ng-if=\\\"state.uploadYamlValidationError\\\"\\n                ><span class=\\\"text-danger small\\\">{{ state.uploadYamlValidationError }}</span></div\\n              >\\n            </div>\\n            <div class=\\\"form-group\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <button type=\\\"button\\\" class=\\\"btn btn-sm btn-light\\\" ngf-select=\\\"uploadFile($file)\\\">\\n                  <pr-icon icon=\\\"'upload'\\\"></pr-icon>\\n                  Select file</button\\n                >\\n                <span style=\\\"margin-left: 5px\\\">\\n                  {{ formValues.StackFile.name }}\\n                  <pr-icon icon=\\\"'x'\\\" mode=\\\"'danger'\\\" ng-if=\\\"!formValues.StackFile\\\"></pr-icon>\\n                </span>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !upload -->\\n          <git-form\\n            ng-if=\\\"state.Method === 'repository'\\\"\\n            value=\\\"formValues\\\"\\n            on-change=\\\"(onChangeFormValues)\\\"\\n            is-docker-standalone=\\\"isDockerStandalone\\\"\\n            is-additional-files-field-visible=\\\"true\\\"\\n            is-auth-explanation-visible=\\\"true\\\"\\n            is-force-pull-visible=\\\"true\\\"\\n            base-webhook-url=\\\"{{ state.baseWebhookUrl }}\\\"\\n            webhook-id=\\\"{{ state.webhookId }}\\\"\\n            webhooks-docs=\\\"/user/docker/stacks/webhooks\\\"\\n          ></git-form>\\n\\n          <div ng-show=\\\"state.Method === 'template'\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <custom-template-selector\\n                new-template-path=\\\"docker.templates.custom.new\\\"\\n                stack-type=\\\"state.StackType\\\"\\n                on-change=\\\"(onChangeTemplateId)\\\"\\n                value=\\\"state.selectedTemplateId\\\"\\n              ></custom-template-selector>\\n\\n              <custom-templates-variables-field\\n                ng-if=\\\"isTemplateVariablesEnabled && state.selectedTemplate\\\"\\n                definitions=\\\"state.selectedTemplate.Variables\\\"\\n                value=\\\"formValues.Variables\\\"\\n                on-change=\\\"(onChangeTemplateVariables)\\\"\\n              ></custom-templates-variables-field>\\n\\n              <span ng-if=\\\"state.Method === 'template' && state.selectedTemplateId && state.templateLoadFailed\\\">\\n                <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"currentUser.isAdmin || currentUser.id === state.selectedTemplate.CreatedByUserId\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please\\n                  <a ui-sref=\\\"docker.templates.custom.edit({id: state.selectedTemplateId})\\\">click here</a> for configuration.</p\\n                >\\n                <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"!(currentUser.isAdmin || currentUser.id === state.selectedTemplate.CreatedByUserId)\\\">\\n                  <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please contact your administrator.</p\\n                >\\n              </span>\\n            </div>\\n          </div>\\n\\n          <web-editor-form\\n            ng-if=\\\"state.Method === 'editor' || (state.Method === 'template' && state.selectedTemplateId)\\\"\\n            identifier=\\\"stack-creation-editor\\\"\\n            value=\\\"formValues.StackFileContent\\\"\\n            on-change=\\\"(onChangeFileContent)\\\"\\n            ng-required=\\\"true\\\"\\n            yml=\\\"true\\\"\\n            placeholder=\\\"Define or paste the content of your docker compose file here\\\"\\n            read-only=\\\"state.isEditorReadOnly\\\"\\n          >\\n            <editor-description>\\n              <p>\\n                You can get more information about Compose file format in the <a href=\\\"https://docs.docker.com/compose/compose-file/\\\" target=\\\"_blank\\\">official documentation</a>.\\n              </p>\\n              <p ng-if=\\\"state.editorYamlValidationError\\\" class=\\\"text-danger\\\">{{ state.editorYamlValidationError }}</p>\\n            </editor-description>\\n          </web-editor-form>\\n\\n          <div ng-if=\\\"state.Method !== 'repository' && isAdmin && applicationState.endpoint.type !== 4\\\">\\n            <div class=\\\"col-sm-12 form-section-title\\\">\\n              Webhooks\\n              <por-switch-field\\n                name=\\\"EnableWebhook\\\"\\n                checked=\\\"formValues.EnableWebhook\\\"\\n                label-class=\\\"'col-sm-2'\\\"\\n                tooltip=\\\"'Create a webhook (or callback URI) to automate the update of this stack. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this stack.'\\\"\\n                label=\\\"'Create a Stack webhook'\\\"\\n                on-change=\\\"(onEnableWebhookChange)\\\"\\n                feature-id=\\\"'stack-webhook'\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n\\n          <!-- environment-variables -->\\n          <stack-environment-variables-panel values=\\\"formValues.Env\\\" on-change=\\\"(handleEnvVarChange)\\\" show-alert=\\\"true\\\"> </stack-environment-variables-panel>\\n          <!-- !environment-variables -->\\n          <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n          <!-- actions -->\\n          <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress\\n              || !createStackForm.$valid\\n              || ((state.Method === 'editor' || state.Method === 'template') && (!formValues.StackFileContent || state.editorYamlValidationError))\\n              || (state.Method === 'upload' && (!formValues.StackFile || state.uploadYamlValidationError))\\n              || (state.Method === 'repository' && ((!formValues.RepositoryURL || !formValues.ComposeFilePathInRepository) || (formValues.RepositoryAuthentication && !formValues.RepositoryPassword)))\\n              || !formValues.Name\\\"\\n                ng-click=\\\"deployStack()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n                analytics-on\\n                analytics-category=\\\"docker\\\"\\n                analytics-event=\\\"docker-stack-create\\\"\\n                analytics-properties=\\\"buildAnalyticsProperties()\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Deploy the stack</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Deployment in progress...</span>\\n              </button>\\n              <span class=\\\"text-danger\\\" ng-if=\\\"state.formValidationError\\\" style=\\\"margin-left: 5px\\\">{{ state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/stacks/create/createstack.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Stack details'\\\" breadcrumbs=\\\"[{label:'Stacks', link:'docker.stacks'}, stackName]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-body>\\n        <uib-tabset active=\\\"state.activeTab\\\">\\n          <!-- tab-info -->\\n          <uib-tab index=\\\"0\\\">\\n            <uib-tab-heading>\\n              <pr-icon icon=\\\"'list'\\\"></pr-icon>\\n              Stack\\n            </uib-tab-heading>\\n            <div style=\\\"margin-top: 10px\\\">\\n              <!-- stack-information -->\\n              <div ng-if=\\\"external || orphaned\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n                <div class=\\\"form-group\\\">\\n                  <span class=\\\"small\\\">\\n                    <p class=\\\"text-muted\\\">\\n                      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n                      <span ng-if=\\\"external\\\">This stack was created outside of Portainer. Control over this stack is limited.</span>\\n                      <span ng-if=\\\"orphaned\\\">This stack is orphaned. You can re-associate it with the current environment using the \\\"Associate to this environment\\\" feature.</span>\\n                    </p>\\n                  </span>\\n                </div>\\n              </div>\\n              <!-- !stack-information -->\\n              <!-- stack-details -->\\n              <div>\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Stack details </div>\\n                <div class=\\\"form-group\\\">\\n                  {{ stackName }}\\n\\n                  <button\\n                    authorization=\\\"PortainerStackUpdate\\\"\\n                    ng-if=\\\"regular && stack.Status === 2\\\"\\n                    ng-disabled=\\\"state.actionInProgress\\\"\\n                    class=\\\"btn btn-xs btn-success\\\"\\n                    ng-click=\\\"startStack()\\\"\\n                  >\\n                    <pr-icon icon=\\\"'play'\\\"></pr-icon>\\n                    Start this stack\\n                  </button>\\n\\n                  <button\\n                    ng-if=\\\"regular && stack.Status === 1\\\"\\n                    authorization=\\\"PortainerStackUpdate\\\"\\n                    ng-disabled=\\\"state.actionInProgress\\\"\\n                    class=\\\"btn btn-xs btn-light\\\"\\n                    ng-click=\\\"stopStack()\\\"\\n                  >\\n                    <pr-icon icon=\\\"'stop-circle'\\\"></pr-icon>\\n                    Stop this stack\\n                  </button>\\n\\n                  <button authorization=\\\"PortainerStackDelete\\\" class=\\\"btn btn-xs btn-light\\\" ng-click=\\\"removeStack()\\\" ng-if=\\\"!external || stack.Type == 1\\\">\\n                    <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n                    Delete this stack\\n                  </button>\\n\\n                  <button\\n                    ng-if=\\\"regular && stackFileContent\\\"\\n                    class=\\\"btn btn-primary btn-xs\\\"\\n                    ui-sref=\\\"docker.templates.custom.new({fileContent: stackFileContent, type: stack.Type})\\\"\\n                  >\\n                    <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n                    Create template from stack\\n                  </button>\\n                  <button\\n                    authorization=\\\"PortainerStackUpdate\\\"\\n                    ng-if=\\\"regular && stackFileContent && !stack.FromAppTemplate && stack.GitConfig\\\"\\n                    ng-disabled=\\\"state.actionInProgress\\\"\\n                    ng-click=\\\"detachStackFromGit()\\\"\\n                    button-spinner=\\\"state.actionInProgress\\\"\\n                    class=\\\"btn btn-primary btn-xs\\\"\\n                  >\\n                    <pr-icon icon=\\\"'arrow-right'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n                    <span ng-hide=\\\"state.actionInProgress\\\">Detach from Git</span>\\n                    <span ng-show=\\\"state.actionInProgress\\\">Detachment in progress...</span>\\n                  </button>\\n                </div>\\n              </div>\\n              <!-- !stack-details -->\\n\\n              <!-- associate -->\\n              <div ng-if=\\\"orphaned\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Associate to this environment </div>\\n                <p class=\\\"small text-muted\\\"> This feature allows you to re-associate this stack to the current environment. </p>\\n                <form class=\\\"form-horizontal\\\">\\n                  <por-access-control-form form-data=\\\"formValues.AccessControlData\\\" hide-title=\\\"true\\\"></por-access-control-form>\\n                  <div class=\\\"form-group\\\">\\n                    <div class=\\\"col-sm-12\\\">\\n                      <button\\n                        type=\\\"button\\\"\\n                        class=\\\"btn btn-primary btn-sm\\\"\\n                        ng-disabled=\\\"state.actionInProgress\\\"\\n                        ng-click=\\\"associateStack()\\\"\\n                        button-spinner=\\\"state.actionInProgress\\\"\\n                        style=\\\"margin-left: -5px\\\"\\n                      >\\n                        <pr-icon icon=\\\"'refresh-cw'\\\" class=\\\"!mr-1\\\"></pr-icon>\\n                        <span ng-hide=\\\"state.actionInProgress\\\">Associate</span>\\n                        <span ng-show=\\\"state.actionInProgress\\\">Association in progress...</span>\\n                      </button>\\n                      <span class=\\\"text-danger\\\" ng-if=\\\"state.formValidationError\\\" style=\\\"margin-left: 5px\\\">{{ state.formValidationError }}</span>\\n                    </div>\\n                  </div>\\n                </form>\\n              </div>\\n              <!-- !associate -->\\n\\n              <div ng-if=\\\"!orphaned\\\">\\n                <stack-redeploy-git-form\\n                  ng-if=\\\"stack.GitConfig && !stack.FromAppTemplate && !state.actionInProgress\\\"\\n                  model=\\\"stack.GitConfig\\\"\\n                  stack=\\\"stack\\\"\\n                  authorization=\\\"PortainerStackUpdate\\\"\\n                  endpoint=\\\"applicationState.endpoint\\\"\\n                >\\n                </stack-redeploy-git-form>\\n                <stack-duplication-form\\n                  ng-if=\\\"regular && endpoints.length > 0\\\"\\n                  endpoints=\\\"endpoints\\\"\\n                  groups=\\\"groups\\\"\\n                  current-endpoint-id=\\\"endpoint.Id\\\"\\n                  on-duplicate=\\\"duplicateStack(name, endpointId)\\\"\\n                  on-migrate=\\\"migrateStack(name, endpointId)\\\"\\n                  yaml-error=\\\"state.yamlError\\\"\\n                >\\n                </stack-duplication-form>\\n              </div>\\n            </div>\\n          </uib-tab>\\n          <!-- !tab-info -->\\n          <!-- tab-file -->\\n          <uib-tab index=\\\"1\\\" select=\\\"showEditor()\\\" ng-if=\\\"!external && (!stack.GitConfig || stack.FromAppTemplate)\\\">\\n            <uib-tab-heading>\\n              <pr-icon icon=\\\"'edit-2'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n              Editor\\n            </uib-tab-heading>\\n            <form class=\\\"form-horizontal\\\" ng-if=\\\"state.showEditorTab\\\" style=\\\"margin-top: 10px\\\" name=\\\"stackUpdateForm\\\">\\n              <div class=\\\"form-group\\\">\\n                <span class=\\\"col-sm-12 text-muted small\\\" style=\\\"margin-bottom: 7px\\\" ng-if=\\\"stackType == STACK_TYPES.DockerCompose && composeSyntaxMaxVersion == 2\\\">\\n                  This stack will be deployed using the equivalent of <code>docker compose</code>. Only Compose file format version <b>2</b> is supported at the moment.\\n                </span>\\n                <span class=\\\"col-sm-12 text-muted small\\\" style=\\\"margin-bottom: 7px\\\" ng-if=\\\"stackType == STACK_TYPES.DockerCompose && composeSyntaxMaxVersion > 2\\\">\\n                  This stack will be deployed using <code>docker compose</code>.\\n                </span>\\n                <span class=\\\"col-sm-12 text-muted small\\\">\\n                  You can get more information about Compose file format in the <a href=\\\"https://docs.docker.com/compose/compose-file/\\\" target=\\\"_blank\\\">official documentation</a>.\\n                </span>\\n                <div class=\\\"col-sm-12\\\" ng-if=\\\"state.yamlError\\\">\\n                  <span class=\\\"text-danger small\\\">{{ state.yamlError }}</span>\\n                </div>\\n              </div>\\n              <div class=\\\"form-group\\\">\\n                <div class=\\\"col-sm-12\\\">\\n                  <code-editor\\n                    read-only=\\\"orphaned\\\"\\n                    identifier=\\\"stack-editor\\\"\\n                    placeholder=\\\"Define or paste the content of your docker compose file here\\\"\\n                    yml=\\\"true\\\"\\n                    on-change=\\\"(editorUpdate)\\\"\\n                    value=\\\"stackFileContent\\\"\\n                  ></code-editor>\\n                </div>\\n              </div>\\n\\n              <!-- environment-variables -->\\n              <div ng-if=\\\"stack\\\">\\n                <stack-environment-variables-panel\\n                  values=\\\"formValues.Env\\\"\\n                  on-change=\\\"(handleEnvVarChange)\\\"\\n                  show-help-message=\\\"true\\\"\\n                  is-foldable=\\\"true\\\"\\n                ></stack-environment-variables-panel>\\n              </div>\\n              <!-- !environment-variables -->\\n\\n              <!-- webhook -->\\n              <div ng-if=\\\"isAdmin && applicationState.endpoint.type !== 4\\\">\\n                <div class=\\\"form-section-title\\\"> Webhooks</div>\\n                <por-switch-field\\n                  name=\\\"EnableWebhook\\\"\\n                  checked=\\\"formValues.EnableWebhook\\\"\\n                  label-class=\\\"'col-sm-2'\\\"\\n                  tooltip=\\\"'Create a webhook (or callback URI) to automate the update of this stack. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this stack.'\\\"\\n                  label=\\\"'Create a Stack webhook'\\\"\\n                  feature-id=\\\"'stack-webhook'\\\"\\n                ></por-switch-field>\\n              </div>\\n              <!-- !webhook -->\\n\\n              <!-- options -->\\n              <div ng-if=\\\"stack.Type === 1 && applicationState.endpoint.apiVersion >= 1.27\\\" authorization=\\\"PortainerStackUpdate\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Options </div>\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <por-switch-field\\n                      name=\\\"prune\\\"\\n                      checked=\\\"formValues.Prune\\\"\\n                      tooltip=\\\"'Prune services that are no longer referenced.'\\\"\\n                      label-class=\\\"'col-sm-2'\\\"\\n                      label=\\\"'Prune services'\\\"\\n                      on-change=\\\"(onPruneChange)\\\"\\n                    ></por-switch-field>\\n                  </div>\\n                </div>\\n              </div>\\n              <!-- !options -->\\n              <div authorization=\\\"PortainerStackUpdate\\\">\\n                <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n                <div class=\\\"form-group\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <button\\n                      type=\\\"button\\\"\\n                      class=\\\"btn btn-sm btn-primary\\\"\\n                      ng-disabled=\\\"state.actionInProgress || state.yamlError || !stackUpdateForm.$valid || !stackFileContent || orphaned\\\"\\n                      ng-click=\\\"deployStack()\\\"\\n                      button-spinner=\\\"state.actionInProgress\\\"\\n                    >\\n                      <span ng-hide=\\\"state.actionInProgress\\\">Update the stack</span>\\n                      <span ng-show=\\\"state.actionInProgress\\\">Deployment in progress...</span>\\n                    </button>\\n                  </div>\\n                </div>\\n              </div>\\n            </form>\\n          </uib-tab>\\n          <!-- !tab-file -->\\n        </uib-tabset>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<stack-containers-datatable\\n  ng-if=\\\"stackType !== STACK_TYPES.DockerSwarm && (!orphaned || orphanedRunning)\\\"\\n  stack-name=\\\"stackName\\\"\\n  environment=\\\"endpoint\\\"\\n></stack-containers-datatable>\\n\\n<docker-services-datatable ng-if=\\\"services && (!orphaned || orphanedRunning)\\\" dataset=\\\"services\\\" title-icon=\\\"list\\\" on-refresh=\\\"(getServices)\\\"></docker-services-datatable>\\n\\n<!-- access-control-panel -->\\n<access-control-panel\\n  ng-if=\\\"stack && !orphaned\\\"\\n  resource-id=\\\"stack.EndpointId + '_' + stack.Name\\\"\\n  resource-control=\\\"stack.ResourceControl\\\"\\n  resource-type=\\\"resourceType\\\"\\n  environment-id=\\\"stack.EndpointId\\\"\\n  on-update-success=\\\"(onUpdateResourceControlSuccess)\\\"\\n>\\n</access-control-panel>\\n<!-- !access-control-panel -->\\n\";;\nvar path = 'app/portainer/views/stacks/edit/stack.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Stacks list'\\\" breadcrumbs=\\\"['Stacks']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<docker-stacks-datatable\\n  ng-if=\\\"stacks\\\"\\n  dataset=\\\"stacks\\\"\\n  is-image-notification-enabled=\\\"enableImageNotification\\\"\\n  on-remove=\\\"(removeAction)\\\"\\n  on-refresh=\\\"(getStacks)\\\"\\n></docker-stacks-datatable>\\n\";;\nvar path = 'app/portainer/views/stacks/stacks.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Tags'\\\" breadcrumbs=\\\"['Tag management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"plus\\\" title-text=\\\"Add a new tag\\\"> </rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" name=\\\"tagCreationForm\\\" ng-submit=\\\"createTag()\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"name\\\" class=\\\"col-sm-2 control-label required text-left\\\"> Name </label>\\n            <div class=\\\"col-sm-10\\\">\\n              <input\\n                type=\\\"text\\\"\\n                class=\\\"form-control\\\"\\n                name=\\\"name\\\"\\n                ng-model=\\\"formValues.Name\\\"\\n                ng-change=\\\"checkNameValidity(tagCreationForm)\\\"\\n                placeholder=\\\"org/acme\\\"\\n                required\\n                auto-focus\\n              />\\n              <div class=\\\"help-block\\\" ng-show=\\\"tagCreationForm.name.$invalid\\\">\\n                <div class=\\\"small text-warning\\\">\\n                  <div ng-messages=\\\"tagCreationForm.name.$error\\\">\\n                    <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                      This field is required.\\n                    </p>\\n                    <p ng-message=\\\"validName\\\" class=\\\"vertical-center\\\">\\n                      <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n                      This tag already exists.\\n                    </p>\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"state.actionInProgress || !tagCreationForm.$valid\\\"\\n                ng-click=\\\"createTag()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\" class=\\\"vertical-center\\\">\\n                  <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n                  Create tag\\n                </span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Creating tag...</span>\\n              </button>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <tags-datatable title-text=\\\"Tags\\\" title-icon=\\\"tag\\\" dataset=\\\"tags\\\" table-key=\\\"tags\\\" order-by=\\\"Name\\\" remove-action=\\\"removeAction\\\"></tags-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/tags/tags.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header id=\\\"'view-top'\\\" title=\\\"'Application templates list'\\\" breadcrumbs=\\\"['Templates']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <!-- stack-form -->\\n  <div class=\\\"col-sm-12\\\">\\n    <stack-from-template-form\\n      ng-if=\\\"state.selectedTemplate && (state.selectedTemplate.Type === 2 || state.selectedTemplate.Type === 3)\\\"\\n      template=\\\"state.selectedTemplate\\\"\\n      form-values=\\\"formValues\\\"\\n      name-regex=\\\"state.templateNameRegex\\\"\\n      state=\\\"state\\\"\\n      create-template=\\\"createTemplate\\\"\\n      unselect-template=\\\"unselectTemplate\\\"\\n    >\\n    </stack-from-template-form>\\n  </div>\\n  <!-- !stack-form -->\\n  <!-- container-form -->\\n  <div class=\\\"col-sm-12\\\" ng-if=\\\"state.selectedTemplate && state.selectedTemplate.Type === 1\\\">\\n    <rd-widget>\\n      <rd-widget-custom-header icon=\\\"state.selectedTemplate.Logo\\\" title-text=\\\"state.selectedTemplate.Title\\\"> </rd-widget-custom-header>\\n      <rd-widget-body classes=\\\"padding\\\">\\n        <form class=\\\"form-horizontal\\\" name=\\\"selectedTemplateType1\\\">\\n          <!-- description -->\\n          <div ng-if=\\\"state.selectedTemplate.Note\\\">\\n            <div class=\\\"form-section-title\\\"> Information </div>\\n            <div class=\\\"col-sm-12 form-group\\\">\\n              <div class=\\\"template-note\\\" ng-bind-html=\\\"state.selectedTemplate.Note\\\"></div>\\n            </div>\\n          </div>\\n          <!-- !description -->\\n          <div class=\\\"form-section-title\\\"> Configuration </div>\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"container_name\\\" class=\\\"col-sm-2 control-label text-left\\\">Name</label>\\n            <div class=\\\"col-sm-6\\\">\\n              <input type=\\\"text\\\" name=\\\"container_name\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.name\\\" placeholder=\\\"e.g. web (optional)\\\" />\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- network-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"container_network\\\" class=\\\"col-sm-2 control-label text-left\\\">Network</label>\\n            <div class=\\\"col-sm-6\\\">\\n              <select class=\\\"form-control\\\" ng-options=\\\"net.Name for net in availableNetworks | orderBy: 'Name'\\\" ng-model=\\\"formValues.network\\\">\\n                <option disabled hidden value=\\\"\\\">Select a network</option>\\n              </select>\\n            </div>\\n          </div>\\n          <!-- !network-input -->\\n          <!-- env -->\\n          <div ng-repeat=\\\"var in state.selectedTemplate.Env\\\" ng-if=\\\"!var.preset || var.select\\\" class=\\\"form-group\\\">\\n            <label for=\\\"field_{{ $index }}\\\" class=\\\"col-sm-2 control-label text-left\\\">\\n              {{ var.label }}\\n              <portainer-tooltip ng-if=\\\"var.description\\\" message=\\\"var.description\\\"></portainer-tooltip>\\n            </label>\\n            <div class=\\\"col-sm-6\\\">\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" ng-if=\\\"!var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\" />\\n              <select class=\\\"form-control\\\" ng-if=\\\"var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\">\\n                <option selected disabled hidden value=\\\"\\\">Select value</option>\\n                <option ng-repeat=\\\"choice in var.select\\\" value=\\\"{{ choice.value }}\\\">{{ choice.text }}</option>\\n              </select>\\n            </div>\\n          </div>\\n          <!-- !env -->\\n          <!-- access-control -->\\n          <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n          <!-- !access-control -->\\n          <div class=\\\"form-group col-sm-12\\\">\\n            <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"!state.showAdvancedOptions\\\" ng-click=\\\"state.showAdvancedOptions = true;\\\">\\n              <pr-icon icon=\\\"'plus'\\\"></pr-icon> Show advanced options\\n            </a>\\n            <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"state.showAdvancedOptions\\\" ng-click=\\\"state.showAdvancedOptions = false;\\\">\\n              <pr-icon icon=\\\"'minus'\\\"></pr-icon> Hide advanced options\\n            </a>\\n          </div>\\n          <div ng-if=\\\"state.showAdvancedOptions\\\">\\n            <!-- port-mapping -->\\n            <div class=\\\"form-group mt-2\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <label class=\\\"control-label text-left\\\">Port mapping</label>\\n                <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Ports.length > 0\\\">\\n                  <div class=\\\"small text-muted\\\">Portainer will automatically assign a port if you leave the host port empty.</div>\\n                  <div class=\\\"form-inline mt-2\\\" ng-repeat=\\\"portBinding in state.selectedTemplate.Ports\\\">\\n                    <!-- host-port -->\\n                    <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">host</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"portBinding.hostPort\\\" placeholder=\\\"e.g. 80 or 1.2.3.4:80 (optional)\\\" />\\n                    </div>\\n                    <!-- !host-port -->\\n                    <pr-icon icon=\\\"'arrow-right'\\\"></pr-icon>\\n                    <!-- container-port -->\\n                    <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">container</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"portBinding.containerPort\\\" placeholder=\\\"e.g. 80\\\" />\\n                    </div>\\n                    <!-- !container-port -->\\n                    <!-- protocol-actions -->\\n                    <div class=\\\"input-group col-sm-3 input-group-sm\\\">\\n                      <div class=\\\"btn-group btn-group-sm\\\">\\n                        <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.protocol\\\" uib-btn-radio=\\\"'tcp'\\\">TCP</label>\\n                        <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.protocol\\\" uib-btn-radio=\\\"'udp'\\\">UDP</label>\\n                      </div>\\n                      <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removePortBinding($index)\\\">\\n                        <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n                      </button>\\n                    </div>\\n                    <!-- !protocol-actions -->\\n                  </div>\\n                </div>\\n                <div class=\\\"col-sm-12\\\">\\n                  <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addPortBinding()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add map additional port\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !port-mapping -->\\n            <!-- volume-mapping -->\\n            <div class=\\\"form-group mt-4\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <label class=\\\"control-label text-left\\\">Volume mapping</label>\\n                <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Volumes.length > 0\\\">\\n                  <div class=\\\"small text-muted\\\">Portainer will automatically create and map a local volume when using the <b>auto</b> option.</div>\\n                  <div class=\\\"mt-2\\\" ng-repeat=\\\"volume in state.selectedTemplate.Volumes\\\">\\n                    <!-- volume-line1 -->\\n                    <div class=\\\"form-inline\\\">\\n                      <!-- container-path -->\\n                      <div class=\\\"input-group input-group-sm col-sm-6\\\">\\n                        <span class=\\\"input-group-addon\\\">container</span>\\n                        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"volume.container\\\" placeholder=\\\"e.g. /path/in/container\\\" />\\n                      </div>\\n                      <!-- !container-path -->\\n                      <!-- volume-type -->\\n                      <div class=\\\"input-group col-sm-5 space-left\\\">\\n                        <div class=\\\"btn-group btn-group-sm\\\">\\n                          <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.type\\\" uib-btn-radio=\\\"'auto'\\\" ng-click=\\\"volume.bind = ''\\\">Auto</label>\\n                          <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.type\\\" uib-btn-radio=\\\"'volume'\\\" ng-click=\\\"volume.bind = ''\\\">Volume</label>\\n                          <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.type\\\" uib-btn-radio=\\\"'bind'\\\" ng-click=\\\"volume.bind = ''\\\" ng-if=\\\"isAdmin || allowBindMounts\\\">Bind</label>\\n                        </div>\\n                        <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removeVolume($index)\\\">\\n                          <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n                        </button>\\n                      </div>\\n                      <!-- !volume-type -->\\n                    </div>\\n                    <!-- !volume-line1 -->\\n                    <!-- volume-line2 -->\\n                    <div class=\\\"form-inline mt-1\\\" ng-if=\\\"volume.type !== 'auto'\\\">\\n                      <pr-icon icon=\\\"'arrow-right'\\\"></pr-icon>\\n                      <!-- volume -->\\n                      <div class=\\\"input-group input-group-sm col-sm-6\\\" ng-if=\\\"volume.type === 'volume'\\\">\\n                        <div class=\\\"col-sm-12 input-group\\\">\\n                          <span class=\\\"input-group-addon\\\">volume</span>\\n                          <div class=\\\"col-sm-12 input-group\\\">\\n                            <select class=\\\"form-control\\\" ng-model=\\\"volume.bind\\\" ng-options=\\\"vol.Name as vol.Name for vol in availableVolumes\\\">\\n                              <option value=\\\"\\\" disabled selected>Select a volume</option>\\n                            </select>\\n                          </div>\\n                        </div>\\n                      </div>\\n                      <!-- !volume -->\\n                      <!-- bind -->\\n                      <div class=\\\"input-group input-group-sm col-sm-6\\\" ng-if=\\\"volume.type === 'bind'\\\">\\n                        <span class=\\\"input-group-addon\\\">host</span>\\n                        <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"volume.bind\\\" placeholder=\\\"e.g. /path/on/host\\\" />\\n                      </div>\\n                      <!-- !bind -->\\n                      <!-- read-only -->\\n                      <div class=\\\"input-group input-group-sm col-sm-5 space-left\\\">\\n                        <div class=\\\"btn-group btn-group-sm\\\">\\n                          <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.readonly\\\" uib-btn-radio=\\\"false\\\">Writable</label>\\n                          <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.readonly\\\" uib-btn-radio=\\\"true\\\">Read-only</label>\\n                        </div>\\n                      </div>\\n                      <!-- !read-only -->\\n                    </div>\\n                    <!-- !volume-line2 -->\\n                  </div>\\n                </div>\\n                <div class=\\\"col-sm-12\\\">\\n                  <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addVolume()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add map additional volume\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !volume-mapping -->\\n            <!-- extra-host -->\\n            <div class=\\\"form-group mt-4\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <label class=\\\"control-label text-left\\\">Hosts file entries</label>\\n                <!-- extra-host-input-list -->\\n                <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Hosts.length > 0\\\">\\n                  <div class=\\\"form-inline mt-2\\\" ng-repeat=\\\"(idx, host) in state.selectedTemplate.Hosts track by $index\\\">\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">value</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"state.selectedTemplate.Hosts[idx]\\\" placeholder=\\\"e.g. host:IP\\\" />\\n                    </div>\\n                    <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removeExtraHost($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n                    </button>\\n                  </div>\\n                </div>\\n                <div class=\\\"col-sm-12\\\">\\n                  <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addExtraHost()\\\">\\n                    <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add additional entry\\n                  </span>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !extra-host -->\\n            <!-- labels -->\\n            <div class=\\\"form-group mt-4\\\">\\n              <div class=\\\"col-sm-12\\\">\\n                <label class=\\\"control-label text-left\\\">Labels</label>\\n                <!-- labels-input-list -->\\n                <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Labels.length > 0\\\">\\n                  <div class=\\\"form-inline mt-2\\\" ng-repeat=\\\"label in state.selectedTemplate.Labels\\\">\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">name</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.name\\\" placeholder=\\\"e.g. com.example.foo\\\" />\\n                    </div>\\n                    <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n                      <span class=\\\"input-group-addon\\\">value</span>\\n                      <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" />\\n                    </div>\\n                    <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removeLabel($index)\\\">\\n                      <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n                    </button>\\n                  </div>\\n                </div>\\n                <!-- !labels-input-list -->\\n                <div class=\\\"col-sm-12\\\">\\n                  <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addLabel()\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add label </span>\\n                </div>\\n              </div>\\n            </div>\\n            <!-- !labels -->\\n            <!-- hostname -->\\n            <div class=\\\"form-group mt-4\\\">\\n              <label for=\\\"container_hostname\\\" class=\\\"col-sm-2 control-label text-left\\\">Hostname</label>\\n              <div class=\\\"col-sm-6\\\">\\n                <input type=\\\"text\\\" name=\\\"container_hostname\\\" class=\\\"form-control\\\" ng-model=\\\"state.selectedTemplate.Hostname\\\" placeholder=\\\"leave empty to use docker default\\\" />\\n              </div>\\n            </div>\\n            <!-- !hostname -->\\n          </div>\\n          <!-- !advanced-options -->\\n          <!-- actions -->\\n          <div class=\\\"form-section-title\\\"> Actions </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary\\\"\\n                ng-disabled=\\\"state.actionInProgress || !formValues.network\\\"\\n                ng-click=\\\"createTemplate()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\">Deploy the container</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Deployment in progress...</span>\\n              </button>\\n              <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"unselectTemplate(state.selectedTemplate)\\\">Hide</button>\\n              <span class=\\\"text-danger space-left\\\" ng-if=\\\"state.formValidationError\\\">{{ state.formValidationError }}</span>\\n            </div>\\n          </div>\\n          <!-- !actions -->\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n  <!-- container-form -->\\n</div>\\n\\n<app-templates-list\\n  storage-key=\\\"'docker-app-templates'\\\"\\n  templates=\\\"templates\\\"\\n  on-select=\\\"(selectTemplate)\\\"\\n  selected-id=\\\"state.selectedTemplate.Id\\\"\\n  disabled-types=\\\"disabledTypes\\\"\\n></app-templates-list>\\n\";;\nvar path = 'app/portainer/views/templates/templates.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User details'\\\" breadcrumbs=\\\"[{label:'Users', link:'portainer.users'}, formValues.username]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"user\\\" title-text=\\\"User details\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"username_field\\\" class=\\\"col-sm-2 control-label required text-left\\\">Username</label>\\n            <div class=\\\"col-sm-8\\\">\\n              <input class=\\\"form-control\\\" ng-model=\\\"formValues.username\\\" id=\\\"username_field\\\" />\\n            </div>\\n          </div>\\n\\n          <div class=\\\"form-group\\\" ng-if=\\\"isAdmin\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-3 col-lg-2 control-label text-left'\\\"\\n                checked=\\\"formValues.Administrator\\\"\\n                label=\\\"'Administrator'\\\"\\n                tooltip=\\\"'Administrators have access to Portainer settings management as well as full control over all defined environments and their resources.'\\\"\\n                on-change=\\\"(handleAdministratorChange)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-4\\\">\\n              <button class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!isSubmitEnabled()\\\" ng-click=\\\"updateUser()\\\">Save</button>\\n              <button class=\\\"btn btn-danger btn-sm vertical-center\\\" ng-disabled=\\\"isDeleteDisabled()\\\" ng-click=\\\"deleteUser()\\\">\\n                <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'sm'\\\" class=\\\"vertical-center\\\"></pr-icon>Delete this user\\n              </button>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"lock\\\" title-text=\\\"Change user password\\\"></rd-widget-header>\\n      <rd-widget-body>\\n        <form name=\\\"form\\\" class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n          <!-- new-password-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"new_password\\\" class=\\\"col-sm-2 control-label required text-left\\\">New password</label>\\n            <div class=\\\"col-sm-8\\\">\\n              <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.newPassword\\\" id=\\\"new_password\\\" name=\\\"new_password\\\" ng-minlength=\\\"requiredPasswordLength\\\" />\\n            </div>\\n          </div>\\n          <!-- !new-password-input -->\\n          <!-- confirm-password-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"confirm_password\\\" class=\\\"col-sm-2 control-label required text-left\\\">Confirm password</label>\\n            <div class=\\\"col-sm-8\\\">\\n              <div class=\\\"input-group\\\">\\n                <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.confirmPassword\\\" id=\\\"confirm_password\\\" />\\n                <span class=\\\"input-group-addon\\\">\\n                  <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"form.new_password.$viewValue !== '' && form.new_password.$viewValue === formValues.confirmPassword\\\"></pr-icon>\\n                  <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"!(form.new_password.$viewValue !== '' && form.new_password.$viewValue === formValues.confirmPassword)\\\"></pr-icon>\\n                </span>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !confirm-password-input -->\\n          <password-check-hint password-valid=\\\"form.new_password.$valid && formValues.newPassword\\\"></password-check-hint>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-2\\\">\\n              <button\\n                type=\\\"submit\\\"\\n                class=\\\"btn btn-primary btn-sm\\\"\\n                ng-disabled=\\\"form.new_password.$viewValue === '' || form.$invalid || !formValues.newPassword || !formValues.confirmPassword || form.new_password.$viewValue !== formValues.confirmPassword\\\"\\n                ng-click=\\\"updatePassword()\\\"\\n                >Update password</button\\n              >\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/users/edit/user.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Users'\\\" breadcrumbs=\\\"['User management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"isAdmin\\\">\\n  <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n    <rd-widget>\\n      <rd-widget-header icon=\\\"plus\\\" title-text=\\\"Add a new user\\\"> </rd-widget-header>\\n      <rd-widget-body>\\n        <form name=\\\"form\\\" class=\\\"form-horizontal\\\">\\n          <!-- name-input -->\\n          <div class=\\\"form-group\\\">\\n            <label for=\\\"username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n              Username\\n              <portainer-tooltip ng-if=\\\"AuthenticationMethod === 2\\\" message=\\\"'Username must exactly match username defined in external LDAP source.'\\\"></portainer-tooltip>\\n            </label>\\n            <div class=\\\"col-sm-8\\\">\\n              <div class=\\\"input-group\\\">\\n                <input\\n                  type=\\\"text\\\"\\n                  class=\\\"form-control\\\"\\n                  id=\\\"username\\\"\\n                  ng-model=\\\"formValues.Username\\\"\\n                  ng-change=\\\"checkUsernameValidity()\\\"\\n                  placeholder=\\\"e.g. jdoe\\\"\\n                  auto-focus\\n                  data-cy=\\\"user-usernameInput\\\"\\n                />\\n                <span class=\\\"input-group-addon\\\">\\n                  <pr-icon mode=\\\"'success'\\\" icon=\\\"'check'\\\" ng-if=\\\"state.validUsername\\\"></pr-icon>\\n                  <pr-icon mode=\\\"'danger'\\\" icon=\\\"'x'\\\" ng-if=\\\"!state.validUsername\\\"></pr-icon>\\n                </span>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !name-input -->\\n          <!-- new-password-input -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n            <label for=\\\"password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n            <div class=\\\"col-sm-8\\\">\\n              <input\\n                type=\\\"password\\\"\\n                class=\\\"form-control\\\"\\n                ng-model=\\\"formValues.Password\\\"\\n                id=\\\"password\\\"\\n                name=\\\"password\\\"\\n                ng-minlength=\\\"requiredPasswordLength\\\"\\n                data-cy=\\\"user-passwordInput\\\"\\n              />\\n            </div>\\n          </div>\\n          <!-- !new-password-input -->\\n          <!-- confirm-password-input -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n            <label for=\\\"confirm_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Confirm password</label>\\n            <div class=\\\"col-sm-8\\\">\\n              <div class=\\\"input-group\\\">\\n                <input\\n                  type=\\\"password\\\"\\n                  class=\\\"form-control form-control--has-icon\\\"\\n                  ng-model=\\\"formValues.ConfirmPassword\\\"\\n                  id=\\\"confirm_password\\\"\\n                  data-cy=\\\"user-passwordConfirmInput\\\"\\n                />\\n                <span class=\\\"input-group-addon\\\">\\n                  <pr-icon\\n                    mode=\\\"'success'\\\"\\n                    icon=\\\"'check'\\\"\\n                    aria-hidden=\\\"true\\\"\\n                    ng-if=\\\"form.password.$viewValue !== '' && form.password.$viewValue === formValues.ConfirmPassword\\\"\\n                  ></pr-icon>\\n                  <pr-icon\\n                    mode=\\\"'danger'\\\"\\n                    icon=\\\"'x'\\\"\\n                    aria-hidden=\\\"true\\\"\\n                    ng-if=\\\"!(form.password.$viewValue !== '' && form.password.$viewValue === formValues.ConfirmPassword)\\\"\\n                  ></pr-icon>\\n                </span>\\n              </div>\\n            </div>\\n          </div>\\n          <!-- !confirm-password-input -->\\n\\n          <!-- password-check-hint -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n            <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n            <div class=\\\"col-sm-8\\\">\\n              <password-check-hint password-valid=\\\"form.password.$valid && formValues.Password\\\"></password-check-hint>\\n            </div>\\n          </div>\\n          <!-- ! password-check-hint  -->\\n\\n          <!-- admin-checkbox -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"isAdmin\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <por-switch-field\\n                label-class=\\\"'col-sm-3 col-lg-2 control-label text-left'\\\"\\n                checked=\\\"formValues.Administrator\\\"\\n                label=\\\"'Administrator'\\\"\\n                tooltip=\\\"'Administrators have access to Portainer settings management as well as full control over all defined environments and their resources.'\\\"\\n                on-change=\\\"(handleAdministratorChange)\\\"\\n              ></por-switch-field>\\n            </div>\\n          </div>\\n          <!-- !admin-checkbox -->\\n          <!-- teams -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"!formValues.Administrator\\\">\\n            <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" for=\\\"teams-selector\\\">Add to team(s)</label>\\n            <div class=\\\"col-sm-8\\\">\\n              <span class=\\\"small text-muted\\\" ng-if=\\\"teams.length === 0\\\">\\n                You don't seem to have any teams to add users into. Head over to the <a ui-sref=\\\"portainer.teams\\\">Teams view</a> to create some.\\n              </span>\\n              <teams-selector\\n                ng-if=\\\"teams.length > 0\\\"\\n                value=\\\"formValues.TeamIds\\\"\\n                teams=\\\"teams\\\"\\n                placeholder=\\\"'Select one or more teams'\\\"\\n                data-cy=\\\"'user-teamSelect'\\\"\\n                on-change=\\\"(onChangeTeamIds)\\\"\\n                input-id=\\\"'teams-selector'\\\"\\n                disabled=\\\"teamSync\\\"\\n              ></teams-selector>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\" ng-if=\\\"teamSync\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small\\\">\\n                <p class=\\\"small text-muted vertical-center\\\">\\n                  <pr-icon icon=\\\"'alert-circle'\\\" class-name=\\\"'icon-warning =vertical-center'\\\"></pr-icon>\\n                  The team leader feature is disabled as external authentication is currently enabled with team sync.\\n                </p>\\n              </span>\\n            </div>\\n          </div>\\n          <!-- !teams -->\\n          <div class=\\\"form-group\\\" ng-if=\\\"isAdmin && !formValues.Administrator && formValues.Teams.length === 0\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <span class=\\\"small text-muted vertical-center\\\">\\n                <pr-icon class=\\\"vertical-center\\\" icon=\\\"'alert-circle'\\\" aria-hidden=\\\"true\\\" mode=\\\"'primary'\\\" size=\\\"'md'\\\"></pr-icon>\\n                <span\\n                  >Note: non-administrator users who aren't in a team don't have access to any environments by default. Head over to the\\n                  <a ui-sref=\\\"portainer.endpoints\\\">Environments view</a> to manage their accesses.</span\\n                >\\n              </span>\\n            </div>\\n          </div>\\n          <div class=\\\"form-group\\\">\\n            <div class=\\\"col-sm-12\\\">\\n              <button\\n                type=\\\"button\\\"\\n                class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n                ng-disabled=\\\"state.actionInProgress || !state.validUsername || formValues.Username === '' || (AuthenticationMethod === 1 && (!formValues.Password || form.$invalid || formValues.Password !== formValues.ConfirmPassword))\\\"\\n                ng-click=\\\"addUser()\\\"\\n                button-spinner=\\\"state.actionInProgress\\\"\\n                data-cy=\\\"user-createUserButton\\\"\\n              >\\n                <span ng-hide=\\\"state.actionInProgress\\\" class=\\\"vertical-center icon-white\\\"> <pr-icon icon=\\\"'plus'\\\" aria-hidden=\\\"true\\\" size=\\\"'md'\\\"></pr-icon> Create user</span>\\n                <span ng-show=\\\"state.actionInProgress\\\">Creating user...</span>\\n              </button>\\n              <span class=\\\"text-danger\\\" ng-if=\\\"state.userCreationError\\\">\\n                <pr-icon icon=\\\"'alert-circle'\\\" aria-hidden=\\\"true\\\" mode=\\\"'primary'\\\" size=\\\"'md'\\\"></pr-icon> {{ state.userCreationError }}\\n              </span>\\n            </div>\\n          </div>\\n        </form>\\n      </rd-widget-body>\\n    </rd-widget>\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    <users-datatable\\n      title-text=\\\"Users\\\"\\n      title-icon=\\\"user\\\"\\n      dataset=\\\"users\\\"\\n      table-key=\\\"users\\\"\\n      order-by=\\\"Username\\\"\\n      authentication-method=\\\"AuthenticationMethod\\\"\\n      remove-action=\\\"removeAction\\\"\\n      is-admin=\\\"isAdmin\\\"\\n    ></users-datatable>\\n  </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/users/users.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","_path","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","xmlns","width","height","fill","viewBox","d","_rect","_path2","x","rx","fillRule","clipRule","_g","_defs","clipPath","stroke","strokeLinecap","strokeLinejoin","strokeWidth","style","fillOpacity","_path3","_path4","x1","x2","y1","y2","gradientUnits","stopColor","offset","stopOpacity","_path5","_path6","_path7","gradientTransform","transform","opacity","strokeOpacity","categories","DimensionConfig","setPortainerStatus","instanceID","version","setCustomDimension","PortainerInstanceID","PortainerVersion","setUserRole","role","PortainerUserRole","clearUserRole","deleteCustomDimension","setUserEndpointRole","PortainerEndpointUserRole","clearUserEndpointRole","dimensionId","value","push","toString","name","window","_len","args","Array","_key","_paq","concat","trackEvent","action","properties","metadata","dimensions","category","parsed","parseInt","Number","isNaN","includes","metadataString","kebabCasedMetadata","fromEntries","entries","_ref","_ref2","_kebabCase","JSON","stringify","toLowerCase","API_ENDPOINT_AUTH","API_ENDPOINT_BACKUP","API_ENDPOINT_CUSTOM_TEMPLATES","API_ENDPOINT_EDGE_GROUPS","API_ENDPOINT_EDGE_JOBS","API_ENDPOINT_EDGE_STACKS","API_ENDPOINT_EDGE_TEMPLATES","API_ENDPOINT_ENDPOINTS","API_ENDPOINT_ENDPOINT_GROUPS","API_ENDPOINT_KUBERNETES","API_ENDPOINT_MOTD","API_ENDPOINT_REGISTRIES","API_ENDPOINT_RESOURCE_CONTROLS","API_ENDPOINT_SETTINGS","API_ENDPOINT_STACKS","API_ENDPOINT_SUPPORT","API_ENDPOINT_USERS","API_ENDPOINT_TAGS","API_ENDPOINT_TEAMS","API_ENDPOINT_TEAM_MEMBERSHIPS","API_ENDPOINT_TEMPLATES","API_ENDPOINT_WEBHOOKS","PAGINATION_MAX_ITEMS","APPLICATION_CACHE_VALIDITY","CONSOLE_COMMANDS_LABEL_PREFIX","PREDEFINED_NETWORKS","PORTAINER_FADEOUT","trimVersionTag","fullName","versionIdx","lastIndexOf","indexOf","substring","trimSHA","imageName","_split","joinCommand","command","undefined","join","taskStatusBadge","text","status","_toLower","nodeStatusBadge","hideShaSum","split","commandStringToArray","input","sep","keepQuotes","separator","singleQuoteOpen","doubleQuoteOpen","tokenBuffer","ret","arr","element","matches","match","splitargs","commandArrayToString","array","elem","colors","hex","slice","FOREGROUND_COLORS_BY_ANSI","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","BACKGROUND_COLORS_BY_ANSI","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBrightBlack","bgBrightRed","bgBrightGreen","bgBrightYellow","bgBrightBlue","bgBrightMagenta","bgBrightCyan","bgBrightWhite","TIMESTAMP_LENGTH","Colors","Grey","Magenta","Yellow","Green","Red","Blue","spaceSpan","formatTime","time","spans","line","nl","date","timestampInMilliseconds","format","Date","fgColor","formatLevel","level","levelSpan","fontWeight","logLevelToSpan","formatCaller","caller","trim","_takeRight","formatMessage","message","hasKeys","formatKeyValuePair","isLastKey","strValue","formatStackTrace","stackTrace","lines","forEach","func","lineNumber","keyRegex","ZerologRegex","regs","flags","from","Set","r","RegExp","concatRegex","formatZerologLogs","rawText","withTimestamps","timestamp","_slicedToArray","_extractPairs","messageAndPairs","pairs","_messageAndPairs$spli2","rawPairs","matchAll","m","idx","rawKey","start","index","end","extractPairs","_extractPairs2","stackTraceIndex","findIndex","p","parse","splice","_ref3","defaultOptions","splitter","formatLogs","rawLogs","stripHeaders","_ref$splitter","logs","replace","stripHeadersFunc","startsWith","error","bgColor","tokens","tokenize","formattedLogs","token","type","fgAnsi","bgAnsi","cssColorFromRgb","extendedColorForToken","tokenLine","stripEscapeCodes","json","stack_trace","_without","removeKnownKeys","formatJSONLine","_toConsumableArray","test","rgb","_rgb","g","b","colorMode","colorRef","NEW_LINE_BREAKER","BROWSER_OS_PLATFORM","concatLogsToString","formatFunc","reduce","acc","formattedLine","_regeneratorRuntime","t","n","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","v","values","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","ping","_x","_ping","fn","_callee","environmentId","_context","axios","get","t0","parseAxiosError","self","err","HelmIcon","_jsx","BadgeIcon","icon","helm","nodeAffinityValues","operator","KubernetesPodNodeAffinityNodeSelectorRequirementOperators","IN","NOT_IN","EXISTS","DOES_NOT_EXIST","GREATER_THAN","LOWER_THAN","KubernetesApplicationTypes","Deployment","StatefulSet","DaemonSet","Pod","Helm","KubernetesApplicationDeploymentTypes","Global","Replicated","KubernetesApplicationDataAccessPolicies","Isolated","Shared","KubernetesApplicationServiceTypes","ClusterIP","NodePort","LoadBalancer","ExternalName","AccessHeaders","requiresAuthHook","transitionService","onBefore","checkAuthorizations","_checkAuthorizations","transition","authService","stateTo","$state","access","injector","to","router","stateService","data","isAccess","init","console","isPureAdmin","isAdmin","hasAuthorizations","isArray","every","BoxSelectorAngular","template","bindings","onChange","options","radioName","slim","require","formCtrl","controller","BoxSelectorController","$scope","_classCallCheck","handleChange","$inject","limitedToBE","_this","$evalAsync","$setValidity","buildOption","label","description","feature","BoxSelectorReact","react2angular","BoxSelector","boxSelectorModule","angular","component","PortainerError","_Error","_inherits","_super","msg","_assertThisInitialized","_wrapNativeSuper","isPortainerError","getValueAsArrayOfStrings","promiseSequence","promises","promise","nextPromise","isFulfilled","result","isRejected","pluralize","val","word","plural","addPlural","baseUrl","protocol","location","baseHref","hostname","port","displayPort","getBaseUrl","dockerWebhookUrl","baseStackWebhookUrl","stackWebhookUrl","createWebhookId","uuid","baseEdgeStackWebhookUrl","WebhookHelperFactory","returnWebhookUrl","getBaseStackWebhookUrl","returnStackWebhookUrl","_asyncToGenerator","BASE_URL","configureFDO","_configureFDO","formValues","post","configureDevice","_x2","_x3","_configureDevice","_callee2","deviceId","deviceConfig","_context2","createProfile","_x4","_x5","_x6","_createProfile","_callee3","profileFileContent","payload","_context3","params","getProfiles","_getProfiles","_callee4","_yield$axios$get","profiles","_context4","getProfile","_x7","_getProfile","_callee5","profileId","_yield$axios$get2","profile","_context5","deleteProfile","_x8","_deleteProfile","_callee6","_context6","delete","updateProfile","_x9","_x10","_x11","_updateProfile","_callee7","_context7","put","duplicateProfile","_x12","_duplicateProfile","_callee8","_yield$axios$post","_context8","configureAMT","_configureAMT","getAMTInfo","_getAMTInfo","amtInformation","enableDeviceFeatures","_enableDeviceFeatures","deviceGUID","features","featuresPayload","authorizationResponse","portainerCacheHeader","storage","buildMemoryStorage","cache","store","clear","headerInterpreter","headers","CACHE_DURATION","Axios","baseURL","updateAxiosAdapter","useCache","defaults","setupCache","ttl","methods","cachePredicate","containsHeaders","_defineProperty","ignoreUrls","responseMatch","res","_res$config$url","config","url","interceptors","request","use","dispatchCacheRefreshEventIfNeeded","loadProgressBar","agentTargetHeader","agentInterceptor","newConfig","_objectSpread","portainerAgentTargetHeader","portainerAgentManagerOperation","response","_error$response","UNAUTHENTICATED_ROUTES","some","route","hash","reload","parseError","defaultErrorParser","resultErr","resultMsg","isAxiosError","_parseError","details","axiosError","_axiosError$response","_axiosError$response4","_axiosError$response5","isDefaultResponse","_axiosError$response2","_axiosError$response3","arrayToJson","json2formData","formData","FormData","File","append","CACHE_REFRESH_EVENT","dispatchCacheRefreshEvent","dispatchEvent","CustomEvent","agentTargetQueue","agentManagerOperation","agentTargetLastValue","registryAuthenticationHeader","registryAuthentication","setRegistryAuthenticationHeader","headerValue","lastValue","shift","setPortainerAgentTargetHeader","setPortainerAgentManagerOperation","set","resetAgentHeaders","HttpRequestHelperAngular","addNotification","notificationsStore","getState","notifySuccess","title","saveNotification","toastr","sanitize","_escape","notifyWarning","timeOut","notifyError","fallbackText","prop","_get","pickErrorMsg","closeButton","progressBar","tapToDismiss","escapeHtml","closeHtml","success","warning","Notifications","notif","timeStamp","userId","localStorageGet","_getTags","buildUrl","createTag","_createTag","tag","tagKeys","all","useTags","select","_ref$enabled","enabled","useQuery","getTags","staleTime","withError","useTagsForEnvironment","_useTags","tags","filter","Endpoints","isLoading","useCreateTagMutation","queryClient","useQueryClient","useMutation","mutationOptions","withInvalidate","useUserMembership","getUserMemberships","useIsCurrentUserTeamLeader","user","useCurrentUser","isAdminQuery","useIsEdgeAdmin","query","Id","memberships","membership","Role","TeamRole","Leader","useUsers","includeAdministrator","getUsers","meta","userQueryKeys","base","me","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","obj","hint","prim","toPrimitive","String","_toPrimitive","_toPropertyKey","getOwnPropertyDescriptors","defineProperties","useLoadCurrentUser","getCurrentUser","_getCurrentUser","useUser","getUser","_getUser","filterNonAdministratorUsers","users","isEdgeAdmin","environment","EdgeAdmin","isEdgeEnvironment","Type","Admin","_getUsers","includeAdministrators","_args","_getUserMemberships","entity","applySetStateAction","applier","fallbackMessage","onError","withGlobalError","queryKeysToInvalidate","skipRefresh","onSuccess","invalidateQueries","option","mergeOptions","handleError","errorMeta","_ref2$title","QueryClient","mutationCache","MutationCache","variable","context","mutation","_mutation$meta","queryCache","QueryCache","_mutation$meta2","Component","propNames","Controller","_camelCase","$element","$q","isDestroyed","el","$onChanges","toProps","ReactDOM","StrictMode","children","$onDestroy","r2a","withControlledInput","WrappedComponent","controlledValueOnChangePairs","keysToControl","WrapperComponent","_useState2","useState","controlledValues","setControlledValues","handlers","useMemo","valueKey","onChangeKey","useEffect","toUpdate","withCurrentUser","UserProvider","withReactQuery","_defineProperties","descriptor","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","withFormValidation","ngModule","componentName","schemaBuilder","isPrimitive","reactComponentName","_upperFirst","kebabName","propsWithErrors","createFormValidatorController","createFormValidationComponent","FormValidatorController","$async","instance","Constructor","runValidation","protoProps","_$onChanges","_runValidation","_handleChange","newValues","_this$onChange","_this2","_this2$form","schema","_this2$form2","form","validationData","validate","errors","changes","currentValue","_validate","validateForm","object","defaultQueryClient","QueryClientProvider","client","withUIRouter","UIRouterContextComponent","nanNumberSchema","errorMessage","number","typeError","getSchemeFromPort","endsWith","processItemsInBatches","_processItemsInBatches","items","processor","batchSize","batch","batchPromises","item","semverCompare","localeCompare","numeric","sensitivity","caseFirst","isVersionSmaller","confirmStackUpdate","_confirmStackUpdate","defaultValue","openSwitchPrompt","confirmButton","buildConfirmButton","modalType","ModalType","Warn","pullImage","StackType","StackStatus","alertSettings","container","header","body","CheckCircle","XCircle","AlertCircle","warn","AlertTriangle","Alert","color","className","_alertSettings$color","AlertContainer","clsx","_jsxs","_Fragment","AlertHeader","Icon","AlertBody","hasTitle","_ref4","BEFeatureIndicator","featureId","_ref$showIcon","showIcon","_ref$className","_getFeatureDetails","getFeatureDetails","href","rel","Briefcase","BE_URL","isLimitedToBE","BETeaserButton","heading","buttonText","buttonClassName","TooltipWithChildren","BEFeatureID","Button","size","onClick","disabled","typeClasses","danger","successSecondary","warnSecondary","dangerSecondary","infoSecondary","Badge","_ref$type","_ref$size","iconClass","sizeClasses","iconSizeToClasses","BlocklistItem","isSelected","_ref$as","as","_objectWithoutProperties","_excluded","editor","Edit","iconType","upload","UploadCloud","git","GitIcon","edgeStackTemplate","FileText","customTemplate","Globe","kubernetes","Kubernetes","compose","DockerCompose","LimitedToBeBoxSelectorIndicator","_ref$showTooltip","showTooltip","Tooltip","BoxOption","_ref$onSelect","onSelect","tooltip","Check","checkIcon","selected","styles","root","checked","htmlFor","LogoIcon","BoxSelectorItem","_clsx","_ref$slim","_ref$checkIcon","_getFeatureDetails$li","featureUrl","ContentBox","Fragment","boxSelectorItem","business","limited","disabledWhenLimited","_onSelect","imageContainer","hiddenSpacingCount","hide","handleSelect","isMulti","_","optionValue","newValue","Code","showCopyButton","_useCopy","useCopy","handleCopy","copiedSuccessfully","copyButton","Copy","mode","theme","createTheme","settings","background","foreground","caret","selection","selectionMatch","gutterBackground","highlightTags","atom","string","special","brace","keyword","comment","variableName","yamlLanguage","LanguageSupport","StreamLanguage","yaml","dockerFileLanguage","dockerFile","shellLanguage","shell","CodeEditor","placeholder","readonly","_ref$height","isYaml","isDockerFile","isShell","extensions","TextTip","CopyButton","fadeDelay","copyText","indicatorPosition","CodeMirror","readOnly","basicSetup","highlightSelectionMatches","autocompletion","DashboardGrid","DashboardItem","pluralType","isRefetching","dataCy","Item","Loader2","Link","DetailsTable","_ref$headers","emptyMessage","Children","count","colSpan","Row","colClassName","columns","column","FallbackImage","src","fallbackIcon","alt","setError","HelpLink","docLink","_ref$target","docsUrl","useDocsUrl","_style","Placeholder","SvgIcons","dataflow","dockericon","laptopcode","ldap","linux","memory","restorewindow","sort","subscription","aws","xmlSpace","enableBackground","azure","civo","digitalocean","docker","dockercompose","ecr","github","gitlab","google","googlecloud","preserveAspectRatio","akamai","clipPathUnits","microsoft","microsofticon","openldap","proget","quay","kube","SvgIcon","spin","classes","isValidElementType","_Icon","svgIcon","Svg","iconName","toUpperCase","IconComponent","lucideIcons","InformationPanel","onDismiss","wrapperStyle","bodyClassName","Widget","WidgetBody","float","X","sizeStyles","xs","sm","md","InlineLoader","insightStore","createStore","persist","insightIDsClosed","addInsightIDClosed","insightIDClosed","state","currentIDsClosed","isClosed","insightID","keyBuilder","getStorage","localStorage","InsightsBox","content","insightCloseId","_useStore","useStore","Lightbulb","_ref$title","UISref","NavContainer","NavTabs","selectedId","_ref$justified","justified","find","hidden","active","parent","onKeyDown","tabIndex","ContextHelp","headerStyles","menuButton","menuIcon","HelpCircle","doc","useCurrentStateAndParams","versionQuery","useSystemVersion","ServerVersion","parts","docs","Breadcrumbs","breadcrumbs","breadcrumbsArray","crumb","renderCrumb","link","linkParams","createContext","HeaderContainer","Provider","NotificationsMenu","notificationsStoreState","removeNotification","clearUserNotifications","userNotifications","reducedNotifications","Menu","MenuButton","Bell","notificationStyles","badge","MenuList","menuList","notificationContainer","itemLast","stopPropagation","preventDefault","notifications","notification","MenuLink","onDelete","notificationId","notificationLink","anchorProps","useSref","ReachMenuLink","menuLink","notificationIcon","notificationBody","notificationTitle","notificationDetails","deleteButton","Trash2","timeCreated","valueOf","diff","Math","floor","now","interval","Moment","UserMenu","User","Username","ChevronDown","arrowDown","HeaderTitle","useContext","useHeaderContext","ddExtension","PageHeader","_ref$breadcrumbs","loading","onReload","useRouter","RefreshCw","ItemsPerPageSelector","showAll","_onChange","MAX_SAFE_INTEGER","calculatePageNumber","position","currentPage","paginationRange","totalPages","halfWay","ceil","PageButton","page","onPageChange","PageInput","_onSubmit","_useFormik","useFormik","initialValues","onSubmit","validateOnMount","validationSchema","required","max","min","handleSubmit","setFieldValue","isValid","Input","step","onKeyPress","PageSelector","pageCount","_ref$maxSize","maxSize","_ref$directionLinks","directionLinks","_ref$boundaryLinks","boundaryLinks","_ref$isInputVisible","isInputVisible","pages","ellipsesNeeded","pageNumber","generatePagesArray","last","PaginationControls","pageLimit","onPageLimitChange","isPageInputVisible","TLSFieldset","SwitchField","labelClass","tls","skipVerify","FormControl","inputId","caCertFile","FileUploadField","file","certFile","keyFile","partialValue","MAX_FILE_SIZE","certValidation","optional","withFileSize","when","is","tlsConfigValidation","optionalCert","boolean","default","TagButton","onRemove","removeTagBtn","TagSelector","_ref$allowCreate","allowCreate","tagsQuery","opt","Name","ID","createTagMutation","selectedTags","_compact","SelectComponent","Creatable","Select","tagId","hideSelectedOptions","closeMenuOnSelect","handleAdd","noOptionsMessage","formatCreateLabel","inputValue","onCreateOption","mutate","TeamsSelector","teams","team","PortainerSelect","editorConfig","mac","lin","win","TerminalTooltip","SliderTooltip","child","delay","_ref$zIndex","zIndex","Tippy","appendTo","tooltipCentered","messageHTML","placement","showOnCreate","hideOnClick","trigger","arrow","allowHTML","tooltipContainer","_ref$color","_ref$icon","_ref$inline","inline","_ref$childrenWrapperC","childrenWrapperClassName","getMode","lg","xl","_ref$position","setHtmlMessage","htmlMessage","dangerouslySetInnerHTML","__html","_uniqueId","onClickHandler","tooltipBeteaser","tooltipMessage","maxWidth","interactive","tagName","getAttribute","open","UsersSelector","getOptionLabel","getOptionValue","selectedUsers","isDisabled","otherEditorConfig","searchCmdLabel","WebEditorForm","_ref$titleContent","titleContent","hideTitle","DefaultTitle","FormError","FormSectionTitle","usePreventExit","initialValue","check","isChanged","cleanText","preventExit","useTransitionHook","confirmed","confirm","handler","event","returnValue","addEventListener","removeEventListener","Loading","useWidgetContext","WidgetTitle","MainComponent","Body","Footer","Title","Taskbar","ButtonWithRef","forwardRef","ref","mRef","_ref$disabled","ariaProps","sizeClass","getIconSize","ButtonGroup","ariaLabel","_ref$fadeDelay","_ref$displayText","displayText","_ref$indicatorPositio","copiedIndicator","fadeout","document","setCopiedSuccessfully","fadeoutTime","setTimeout","clearTimeout","navigator","clipboard","writeText","inputEl","createElement","appendChild","execCommand","removeChild","LoadingButton","loadingText","buttonProps","loadingButtonIcon","defaultIcon","AddButton","_ref$to","Plus","ColumnVisibilityMenu","table","columnsToHide","getAllColumns","col","getCanHide","isExpanded","Columns","Checkbox","getIsVisible","columnDef","_capitalize","colId","visible","setColumnVisibility","getColumnVisibilityState","hiddenColumns","columnVisibility","Datatable","dataset","_ref$renderTableSetti","renderTableSettings","_ref$renderTableActio","renderTableActions","disableSelect","_ref$getRowId","getRowId","defaultGetRowId","_ref$isRowSelectable","isRowSelectable","titleId","titleIcon","emptyContentLabel","_ref$initialTableStat","initialTableState","settingsManager","_ref$renderRow","renderRow","defaultRenderRow","highlightedItemId","noWidget","getRowCanExpand","_ref$onPageChange","_ref$totalCount","totalCount","_ref$isServerSidePagi","isServerSidePagination","_ref$extendTableOptio","extendTableOptions","pageSize","enableRowSelection","disabledSelect","getIsSelectionEnabled","allColumns","lastSelectedId","getIsAllRowsSelected","indeterminate","getIsSomeRowsSelected","getToggleAllRowsSelectedHandler","getRowModel","rows","row","getCanSelect","cell","getIsSelected","getIsSomeSelected","getToggleSelectedHandler","shiftKey","_table$getRowModel","rowsById","rowsToToggle","idA","idB","range","foundStart","foundEnd","getRowRange","isLastSelected","toggleSelected","enableHiding","tableInstance","useReactTable","initialState","pagination","pageIndex","sorting","sortBy","globalFilter","search","defaultColumn","enableColumnFilter","sortingFn","autoResetExpanded","globalFilterFn","defaultGlobalFilterFn","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getFacetedRowModel","getFacetedUniqueValues","getFacetedMinMaxValues","getExpandedRowModel","getColumnCanGlobalFilter","manualPagination","getSortedRowModel","tableState","goToPage","handlePageChangeRef","useRef","useLayoutEffect","current","highlightedItemIdRef","rowID","totalRows","_chunk","sub","getRowPage","useGoToHighlightedRow","handlePageChange","selectedItems","getSelectedRowModel","original","Table","Container","DatatableHeader","onSearchChange","setGlobalFilter","setSearch","searchValue","_renderTableActions","_renderTableSettings","DatatableContent","_renderRow","onSortChange","desc","setSortBy","DatatableFooter","onPageSizeChange","setPageSize","getPageCount","totalSelected","setPageIndex","TableRow","cells","getVisibleCells","columnId","filterValue","getValue","filterValueLower","headerGroups","getHeaderGroups","pageRowModel","headerGroup","HeaderRow","Content","emptyContent","SelectedRowsCount","_onPageChange","searchBar","SearchBar","tableActions","Actions","tableTitleSettings","TitleActions","ExpandableDatatableTableRow","renderSubRow","expandOnClick","toggleExpanded","getIsExpanded","getCanExpand","ExpandableDatatable","_ref$getRowCanExpand","expandOnRowClick","MultipleSelectionFilter","_ref$value","filterKey","_ref$menuTitle","menuTitle","Filter","MenuPopover","filterHOC","_ref2$column","getFilterValue","setFilterValue","flatRows","add","valueAsArray","createRowContext","RowProvider","useRowContext","_ref$placeholder","_useDebounce2","useDebounce","setSearchValue","Search","useSearchBarState","_useLocalStorage2","useLocalStorage","sessionStorage","TableActions","TableTitleActions","TableContainer","HeaderCell","TableHeaderCell","SettingsMenu","TableSettingsMenu","TableTitle","TableHeaderRow","TableContent","TableFooter","_ref$noWidget","_ref$isLoading","_ref$emptyContent","TableContentOneColumn","canSort","render","onSortClick","isSorted","_ref$isSortedDesc","isSortedDesc","renderFilter","SortWrapper","_ref2$onClick","_ref2$isSortedDesc","TableHeaderSortIcons","sorted","descending","TableColumnHeaderAngular","colTitle","_ref3$isSortedDesc","sortDirection","getIsSorted","_header$column$column","_header$column$column2","getCanSort","toggleSorting","flexRender","getContext","getCanFilter","_header$column$column3","SortDownIcon","activeSortIcon","sortIcon","SortUpIcon","quickActions","MoreVertical","TableSettingsMenuAutoRefresh","isCheckVisible","setIsCheckVisible","isEnabled","alertVisible","alertHidden","onTransitionEnd","buildNameColumn","nameKey","path","buildNameColumnFromObject","idParam","idGetter","_ref$idParam","_ref$idGetter","_ref$linkParamsBuilde","linkParamsBuilder","accessorKey","renderValue","enableSorting","hasOwn","buildExpandColumn","getCanSomeRowsExpand","getToggleAllRowsExpandedHandler","getIsAllRowsExpanded","ChevronUp","enableGlobalFilter","hiddenColumnsSettings","setHiddenColumns","refreshableSettings","autoRefreshRate","setAutoRefreshRate","createPersistedStore","storageKey","initialSortBy","sortableSettings","paginationSettings","useRepeater","refreshRate","onRefresh","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","intervalId","setIntervalId","stopRepeater","useCallback","clearInterval","startRepeater","setInterval","useTableState","_useSearchBarState2","useTableStateWithStorage","useTableStateWithoutStorage","defaultSortKey","_useState4","_useState6","_useState8","AutocompleteSelect","searchResults","searchTerm","setSearchTerm","setSelected","Combobox","ComboboxInput","autoComplete","ComboboxPopover","ComboboxList","ComboboxOption","ButtonSelector","group","OptionItem","_ref$bold","bold","defaultRef","resolvedRef","AdvancedMode","onSimpleModeClick","editorValue","convertToArrayOfStrings","List","parseDotEnvFile","readFileAsText","reader","FileReader","readAsText","onload","onerror","EnvironmentVariableItem","InputLabeled","needsDeletion","partial","SimpleMode","onAdvancedModeClick","canUndoDelete","InputList","isAddButtonHidden","FileEnv","onChooseFile","setFile","fileTooBig","accept","EnvironmentVariablesFieldset","simpleMode","setSimpleMode","envVarValidation","buildUniquenessTest","EnvironmentVariablesPanel","explanation","showHelpMessage","_ref$isFoldable","isFoldable","alertMessage","FormSection","defaultFolded","StackEnvironmentVariablesPanel","VALUE_REGEX","KEY_VALUE_REGEX","NEWLINES_REGEX","parseArrayOfStrings","variableString","parsedKeyValArr","_ref$required","fileRef","createRef","fileInput","files","click","fileButton","Upload","FileUploadForm","FormActions","_ref$submitLabel","submitLabel","_ref$loadingText","_ref$tooltip","setTooltipHtmlMessage","sizeClassLabel","sizeClassChildren","_ref$titleSize","titleSize","_ref$defaultFolded","titleClassName","setIsExpanded","ChevronRight","tailwindTitleSize","InputGroup","Addon","useInputGroupContext","ButtonWrapper","hasKey","isObject","_ref$itemBuilder","itemBuilder","defaultItemBuilder","_ref$renderItem","renderItem","renderDefaultItem","_ref$addLabel","addLabel","_ref$itemKeyGetter","itemKeyGetter","movable","_ref$canUndoDelete","textTip","_ref$isAddButtonHidde","addButtonDataCy","_ref$isDeleteButtonHi","isDeleteButtonHidden","deleteButtonDataCy","addButtonError","initialItemsCount","isAddButtonVisible","isDeleteButtonVisible","handleChangeItem","handleMove","handleMoveUp","ArrowUp","handleMoveDown","ArrowDown","handleRemoveItem","CanUndoDeleteButton","itemIndex","handleToggleNeedsDeletion","newItem","checkValidIndex","targetIndex","arrayMove","fromIndex","newItemValue","newItems","DefaultItem","handleDeleteClick","RotateCw","isMultiProps","MultiSelect","SingleSelect","isClearable","bindToBody","components","aria","selectedValue","_first","findSelectedOptions","ReactSelect","isOptionDisabled","menuPortalTarget","valueArr","flatMap","isGroup","_excluded2","selectedOptions","_onChange2","_ref$isCreatable","isCreatable","ReactSelectCreatable","classNamePrefix","Slider","_marks","visibleTooltip","marks","translateMinValue","RcSlider","handleRender","sliderTooltip","node","handleProps","SliderWithInput","_ref$min","_ref$step","_ref$visibleTooltip","valueAsNumber","Switch","_ref$name","fieldClass","switchClass","valueExplanation","toggleName","useCachedValidation","asyncValidate","valid","_validateForm","strict","abortEarly","yupToFormErrors","list","testContext","mapper","seen","duplicates","has","ValidationError","mixed","fileValidation","withFileExtension","allowedExtensions","fileExtension","Dialog","buttons","requireString","setCount","countRef","retFn","_loop","button","timeout","intervalID","Modal","Header","openDialog","_openDialog","openModal","CloseButton","onClose","useModalContext","ariaLabelledBy","DialogOverlay","isOpen","DialogContent","Destructive","SwitchPrompt","_ref$confirmButton","switchLabel","_ref$defaultValue","setValue","buildCancelButton","_openSwitchPrompt","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","openConfirm","_openConfirm","cancelButtonLabel","confirmDestructive","confirmWebEditorDiscard","confirmDelete","confirmUpdate","_confirmUpdate","callback","confirmChangePassword","counter","_openModal","modal","unmountComponentAtNode","userAgent","STACK_NAME_VALIDATION_REGEX","statusIcon","Status","UpdatesAvailable","UpToDate","Loader","UpdatesUnknown","ResourceType","createOwnershipColumn","accessorFn","_row$ResourceControl","ResourceControl","Ownership","ResourceControlOwnership","ADMINISTRATORS","ownershipIcon","ownership","PRIVATE","EyeOff","RESTRICTED","Users","Eye","confirmContainerDeletion","_confirmContainerDeletion","removeVolumes","startContainer","_startContainer","nodeName","urlBuilder","transformResponse","genericHandler","stopContainer","_stopContainer","endpointId","_args2","recreateContainer","_recreateContainer","_args3","PullImage","restartContainer","_restartContainer","_args4","killContainer","_killContainer","_args5","pauseContainer","_x13","_pauseContainer","_args6","resumeContainer","_x14","_x15","_resumeContainer","_args7","renameContainer","_x16","_x17","_x18","_renameContainer","_args8","removeContainer","_x19","_x20","_removeContainer","_callee9","containerId","_ref9","_yield$axios$delete","_args9","_context9","force","ContainerStatus","confirmImageExport","_confirmImageExport","getUniqueTagListFromImages","images","_uniq","image","RepoTags","imageContainsURL","buildImageFullURIFromModel","imageModel","registry","UseRegistry","Registry","buildImageFullURI","Image","ensureTag","RegistryTypes","GITHUB","namespace","Github","UseOrganisation","OrganisationName","URL","buildImageURIForGithub","GITLAB","slash","Gitlab","ProjectPath","buildImageURIForGitLab","QUAY","Quay","buildImageURIForQuay","ANONYMOUS","buildImageURIForOtherRegistry","buildImageFullURIWithRegistry","defaultTag","subAction","getInfo","_getInfo","useInfo","useIsWindows","OSType","useIsStandAlone","_info$Swarm","Swarm","NodeID","useIsSwarm","_info$Swarm2","useSystemLimits","_infoQuery$data","_infoQuery$data2","infoQuery","maxCpu","NCPU","maxMemory","MemTotal","_getVersion","useApiVersion","getVersion","useVersion","ApiVersion","parseFloat","convertServiceToConfig","service","_service$Spec","_service$Spec2","_service$Spec3","_service$Spec4","_service$Spec5","_service$Spec6","_service$Spec7","Spec","Labels","TaskTemplate","Mode","UpdateConfig","Networks","EndpointSpec","confirmServiceForceUpdate","_confirmServiceForceUpdate","pullLatest","EDGE_ASYNC_INTERVAL_USE_DEFAULT","isDefault","defaultFieldSettings","snapshot","EdgeAsyncIntervalsForm","_ref$isDefaultHidden","isDefaultHidden","_ref$readonly","_ref$fieldSettings","fieldSettings","pingIntervalOptions","useIntervalOptions","snapshotIntervalOptions","commandIntervalOptions","PingInterval","SnapshotInterval","CommandInterval","intervals","edgeAsyncIntervalsValidation","oneOf","checkinIntervalOptions","EdgeCheckinIntervalField","_ref$label","currentTarget","OsSelector","os","Linux","LayoutGrid","ScriptTabs","edgeKey","edgeId","commands","platform","_ref$asyncMode","asyncMode","_ref$onPlatformChange","onPlatformChange","agentDetails","useAgentDetails","agentSecret","agentVersion","cmd","EdgeScriptSettingsFieldset","hideIdGetter","showMetaFields","_useFormikContext","useFormikContext","GroupField","EdgeGroupsSelector","edgeGroupsIds","isGroupVisible","Dynamic","horizontal","tagsIds","edgeIdGenerator","Field","allowSelfSignedCertificates","edgePropertiesFormInitialValues","envVars","authEnabled","tlsEnabled","EdgeScriptForm","edgeInfo","showOsSelector","Formik","shape","commandsTabs","k8sLinux","useAsyncMode","agentShortVersion","getAgentShortVersion","allEnvVars","moreVars","ENV_VAR_SEPARATOR","buildEnvVars","metaEnvVars","idEnvVar","edgeIdVar","selfSigned","swarmLinux","env","buildDockerEnvVars","buildDefaultDockerEnvVars","standaloneLinux","swarmWindows","standaloneWindow","allowSelfSignedCerts","VAR_LIST_SEPARATOR","fieldName","initialOptions","setOptions","settingsQuery","useSettings","queryKeys","getEdgeGroups","_getEdgeGroups","useEdgeGroups","EnvVarsFieldset","envValue","preset","getDefaultValues","definitions","_v$select$find","TemplateSelector","_value$template","_value$template2","customTemplatesQuery","appTemplatesQuery","_useOptions","useCustomTemplates","edge","useAppTemplates","templates","Categories","TemplateType","_appTemplatesQuery$da","Description","getTemplate","_customTemplatesQuery","_appTemplatesQuery$da2","formatGroupLabel","GroupLabel","TemplateNote","note","CustomTemplateFieldset","Note","CustomTemplatesVariablesField","Variables","AppTemplateFieldset","Env","TemplateFieldset","setInitialValues","setValues","_initialValues$templa","_values$template","variables","getAppVariablesDefaultValues","getVariablesFieldDefaultValues","getInitialTemplateValues","_ref$isGroupVisible","selector","InnerSelector","valueGroups","StatusType","DeploymentType","EditorType","useAnalytics","telemetryQuery","usePublicSettings","EnableTelemetry","useCurrentEnvironment","useEnvironmentId","useEnvironment","debouncedValue","setDebouncedValue","onChangeDebounces","_debounce","withLimitToBE","defaultPath","isBE","go","useLimitToBE","localStoragePrefix","setItem","getItem","useStateWrapper","setInputValue","updateInputValue","UserContext","useIsPureAdmin","forceEnvironmentId","noEnvScope","envId","envScope","envQuery","useAuthorizations","authorizations","_envQuery$data","adminOnlyCE","authorized","useIsEnvironmentAdmin","_ref2$adminOnlyCE","_user$EndpointAuthori","authorizationsArray","userEndpointAuthorizations","EndpointAuthorizations","authorization","Authorized","_ref3$adminOnlyCE","_ref3$childrenUnautho","childrenUnauthorized","userQuery","providerState","KUBE_STACK_NAME_VALIDATION_REGEX","AnnotationsBeTeaser","FeatureId","K8S_ANNOTATIONS","newPort","serviceName","targetPort","nodePort","generateIndexedName","appName","isNameUnique","services","generateUniqueName","initialIndex","uniqueName","serviceFormDefaultValues","Headless","Namespace","StackName","Ports","ApplicationName","ApplicationOwner","Ingress","Selector","generateNewIngressesFromFormPaths","oldIngresses","newServicesPorts","oldServicesPorts","_structuredClone","oldIngressPaths","ingressPaths","ingressPath","IngressName","newPortsWithIngress","_port$ingressPaths","newIngresses","structuredClone","oldIngressPath","_newMatchingIng$Paths","Path","newMatchingIng","ingress","oldPathIndex","Paths","prependWithSlash","Host","newIngIndex","newIngresspaths","servicePort","newIngressPath","_newMatchingIng$Paths2","ServiceName","Port","PathType","getServicePatchPayload","oldService","newService","oldPayload","getServicePayload","newPayload","compare","labels","appNameLabel","appOwnerLabel","appStackNameLabel","apiVersion","kind","spec","ports","clusterIP","appStackIdLabel","appNoteAnnotation","appDeployMethodLabel","defaultDeploymentUniqueLabel","appRevisionAnnotation","unchangedAnnotationKeysForRollbackPatch","appKindToDeploymentTypeMap","kubernetesErrorParser","parseKubernetesAxiosError","useIsRBACEnabledQuery","getIsRBACEnabled","_getIsRBACEnabled","useIngressControllerClassMapQuery","allowedOnly","getIngressControllerClassMap","_getIngressControllerClassMap","controllerMaps","updateIngressControllerClassMap","_updateIngressControllerClassMap","ingressControllerClassMap","_yield$axios$put","typeOptions","KubernetesConfigurationKinds","CONFIGMAP","FileCode","SECRET","Lock","getIngresses","_getIngresses","ingresses","getIngressControllers","_getIngressControllers","_yield$axios$get3","ingresscontrollers","createIngress","_createIngress","updateIngress","_updateIngress","deleteIngresses","_deleteIngresses","ingressName","getSelfSubjectAccessReview","_getSelfSubjectAccessReview","namespaceName","verb","resource","accessReview","resourceAttributes","getServices","_getServices","clusterServices","useServicesForCluster","namespaceNames","settledServicesPromise","allSettled","lookupApplications","refetchInterval","_options$autoRefreshR","useServicesQuery","serviceNames","getService","useMutationDeleteServices","deleteServices","lookupapplications","getNamespaceServices","_getNamespaceServices","queryParams","_getService","Accept","_deleteServices","getMetricsForAllNodes","_getMetricsForAllNodes","_yield$axios$get4","nodes","getMetricsForNode","_getMetricsForNode","_yield$axios$get5","getMetricsForAllPods","_getMetricsForAllPods","_yield$axios$get6","pods","getMetricsForPod","_getMetricsForPod","_callee10","podName","_yield$axios$get7","pod","_context10","Option","HomepageFilter","_ref$filterOptions","filterOptions","placeHolder","useHomePageFilter","authorizedUsers","authorizedTeams","AccessControlForm","formNamespace","accessControlEnabled","PUBLIC","EditDetails","AccessControlPanelDetails","authorizedTeamIds","resourceControl","resourceType","_ref$isAuthorisedToFe","isAuthorisedToFetchUsers","inheritanceMessage","parentType","resourceId","ResourceId","ResourceControlType","Service","InheritanceMessage","truncate","Volume","Stack","removeEndpointIdFromStackResourceId","getInheritanceMessage","_ref2$Ownership","_ref2$UserAccesses","UserAccesses","restrictedToUsers","_ref2$TeamAccesses","TeamAccesses","restrictedToTeams","authorizedUserIds","useAuthorizedUsers","ra","UserId","TeamId","useTeams","teamsLength","unauthoisedTeams","teamsMessage","isFetched","userMessage","getOwnershipTooltip","stackName","firstUnderlineIndex","Info","AccessControlPanelForm","onCancelClick","onUpdateSuccess","updateAccess","applyResourceControlChange","accessControl","parseAccessControlFormData","_handleSubmit","validateOnChange","isSubmitting","Form","isPublicVisible","AccessControlPanel","disableOwnershipChange","_useReducer2","useReducer","isEditMode","toggleEditMode","isTeamLeader","isInherited","inheritedVolume","inheritedContainer","inheritedFromStack","checkIfInherited","restrictions","isPartOfRestrictedUsers","isLeaderOfAnyRestrictedTeams","ua","isSuccess","userMemberships","ta","TeamID","useRestrictions","isEditDisabled","_handleUpdateSuccess","publicOption","useOptions","nonAdminOptions","AccessTypeSelector","UsersField","TeamsField","overrideTooltip","_ref$isPublicVisible","_useCurrentUser","_useLoadState","useLoadState","partialValues","withNamespace","ownershipParameters","parseOwnershipParameters","updateResourceControl","_createResourceControl","createResourceControl","applyResourceControl","accessControlData","resourceControlId","subResourcesIds","_updateResourceControl","ResourceControlViewModel","_createClass","Public","System","determineOwnership","adminOnly","publicOnly","administratorsOnly","public","currentUserId","defaultValues","getGitCredentials","_getGitCredentials","buildGitUrl","useGitCredentials","credentialId","CommonFields","Logo","change","validation","currentTemplateId","_ref2$templates","TEMPLATE_NAME_VALIDATION_REGEX","CustomTemplatesVariablesDefinitionField","isVariablesNamesFromParent","isNameReadonly","errorObj","of","VariableFieldItem","definition","_value$find","getError","fieldValue","platformOptions","Platform","LINUX","WINDOWS","PlatformField","DockerSwarm","TemplateTypeSelector","isTemplateVariablesEnabled","getTemplateVariables","templateStr","_validateAndParse","Mustache","validateAndParse","_validateAndParse2","intersectVariables","newVariables","oldVariablesWithLabel","_uniqBy","_ref5","renderTemplate","_ref6","def","escape","useDeleteEnvironmentsMutation","environments","resp","deleteEnvironments","deleted","_deleteEnvironments","endpoints","getGroups","_getGroups","groups","useGroups","getEnvironments","_getEnvironments","limit","_ref$sort","_ref$query","totalAvailable","updateAvailable","by","order","tagIds","endpointIds","getAgentVersions","_getAgentVersions","getEndpoint","_getEndpoint","endpoint","snapshotEndpoints","_snapshotEndpoints","getDeploymentOptions","_getDeploymentOptions","_endpoint$DeploymentO","publicSettings","getPublicSettings","GlobalDeploymentOptions","perEnvOverride","DeploymentOptions","overrideGlobalOptions","forceUpdateService","_forceUpdateService","_callee11","serviceID","_context11","environmentQueryKeys","registries","useSystemStatus","Version","AgentSecret","useEnvironmentDeploymentOptions","ENVIRONMENTS_POLLING_INTERVAL","SortOptions","isSortType","getSortType","refetchIfAnyOffline","EnvironmentStatus","Down","useEnvironmentList","_ref$page","_ref$pageLimit","_useQuery","environmentTypesArray","types","EnvironmentType","Docker","AgentOnDocker","Azure","EdgeAgentOnDocker","KubernetesLocal","AgentOnKubernetes","EdgeAgentOnKubernetes","keepPreviousData","useEnvironmentRegistries","queryOptions","useGenericRegistriesQuery","_getEnvironmentRegistries","getEnvironmentRegistries","useUpdateEnvironmentMutation","updateEnvironment","_updateEnvironment","uploadTLSFilesForEndpoint","TLSCACert","TLSCert","TLSKey","_uploadTLSFilesForEndpoint","tlscaCert","tlsCert","tlsKey","uploadCert","cert","folder","EdgeTypes","EnvironmentCreationTypes","PlatformType","BetaAlert","isHtml","betaIcon","getPlatformType","envType","isKubernetesEnvironment","getPlatformTypeName","isAgentEnvironment","isEdgeAsync","Edge","AsyncMode","isUnassociatedEdgeEnvironment","EdgeID","isLocalEnvironment","isDockerAPIEnvironment","getDashboardRoute","getPlatformRoute","_useField2","useField","fieldProps","metaProps","helpers","groupsQuery","Edition","FeatureState","process","currentEdition","CE","_init","edition","_features","K8S_RESOURCE_POOL_LB_QUOTA","BE","K8S_RESOURCE_POOL_STORAGE_QUOTA","K8S_CREATE_FROM_KUBECONFIG","KAAS_PROVISIONING","K8SINSTALL","ACTIVITY_AUDIT","EXTERNAL_AUTH_LDAP","HIDE_INTERNAL_AUTH","HIDE_INTERNAL_AUTHENTICATION_PROMPT","K8S_SETUP_DEFAULT","RBAC_ROLES","REGISTRY_MANAGEMENT","S3_BACKUP_SETTING","S3_RESTORE","TEAM_MEMBERSHIP","FORCE_REDEPLOYMENT","HIDE_AUTO_UPDATE_WINDOW","IMAGE_UP_TO_DATE_INDICATOR","STACK_PULL_IMAGE","STACK_WEBHOOK","CONTAINER_WEBHOOK","POD_SECURITY_POLICY_CONSTRAINT","HIDE_DOCKER_HUB_ANONYMOUS","CUSTOM_LOGIN_BANNER","K8S_EDIT_YAML","ENFORCE_DEPLOYMENT_OPTIONS","K8S_ADM_ONLY_USR_INGRESS_DEPLY","K8S_ADM_ONLY_SECRETS","K8S_ROLLING_RESTART","CA_FILE","K8S_REQUIRE_NOTE_ON_APPLICATIONS","selectShow","VISIBLE","LIMITED_BE","HIDDEN","withEdition","CredentialSelector","_gitCredentialsQuery$","gitCredentials","gitCredential","NewCredentialForm","SaveCredential","NewCredentialName","AuthFieldset","isAuthExplanationVisible","_useDebounce","RepositoryUsername","username","setUsername","_useDebounce3","RepositoryPassword","password","_useDebounce4","setPassword","RepositoryAuthentication","RepositoryGitCredentialID","gitAuthValidation","isAuthEdit","isCreatedFromCustomTemplate","auth","IntervalField","_useCaretPosition","setStart","setEnd","updateCaret","_node$current","selectionStart","selectionEnd","setSelectionRange","useCaretPosition","intervalValidation","WebhookSettings","docsLink","truncateLeftRight","ForceDeploymentSwitch","AutoUpdateSettings","environmentType","showForcePullImage","baseWebhookUrl","webhookId","webhookDocs","RepositoryMechanism","RepositoryFetchInterval","ForcePullImage","RepositoryAutomaticUpdatesForce","AutoUpdateFieldset","_ref$isForcePullVisib","isForcePullVisible","webhooksDocs","RepositoryAutomaticUpdates","parseAutoUpdateResponse","Interval","Webhook","ForceUpdate","transformAutoUpdateViewModel","viewModel","autoUpdateValidation","autoUpdates","mechanism","RepositoryWebhookId","_searchRepo","PathSelector","model","dirOnly","createdFromCustomTemplateId","creds","getAuthentication","repository","RepositoryURL","reference","RepositoryReferenceName","tlsSkipVerify","TLSSkipVerify","searchRepo","retry","cacheTime","useSearch","Boolean","RepositoryURLValid","ComposePathField","isCompose","isDockerStandalone","_useStateWrapper2","_checkRepo","_options$creds","gitCredentialId","GitFormUrlField","onChangeRepositoryValid","setForce","repoStatusQuery","onSettled","checkRepo","useCheckRepo","debouncedOnChange","RefreshCcw","AdditionalFileField","GitForm","_ref$environmentType","_ref$deployMethod","deployMethod","_ref$isDockerStandalo","isAdditionalFilesFieldVisible","_ref$errors","RefField","isUrlValid","ComposeFilePathInRepository","AdditionalFiles","AutoUpdate","TimeWindowDisplay","validateGitForm","_validateGitForm","buildGitValidationSchema","_unused","refFieldValidation","nullable","InfoPanel","configFilePath","_ref$additionalFiles","additionalFiles","_listRefs","_data","RefSelector","stackId","_useGitRefs","listRefs","useGitRefs","refs","unshift","Wrapper","tip","TimeWindowDisplayWrapper","currentEnvQuery","ChangeWindow","Enabled","timezone","moment","guess","isDST","_utcToTime","utcTime","parseInterval","startTime","tz","endTime","utcToTime","StartTime","EndTime","startTimeLocal","endTimeLocal","_parseInterval","startTimeUtc","endTimeUtc","shortTime","parseTime","originalTime","_originalTime$split2","startHour","startMin","setHours","setMinutes","toGitFormModel","ReferenceName","ConfigFilePath","Authentication","GitCredentialID","Password","confirmEnableTLSVerify","LicenseType","listeners","invalidated","_getLicenseInfo","_info","lastLoaded","abs","listener","useIntegratedLicenseInfo","_useNodesCount","useNodesCount","isLoadingNodes","_useNodesCount$data","nodesCount","_useLicenseInfo","getLicenseInfo","Trial","licenseInfo","usedNodes","newUserNotifications","removeNotifications","notificationIds","registryId","useRegistries","getRegistries","queryKey","fetcher","hideDefaultOverride","hideDefault","hideDefaultRegistryQuery","_settings$DefaultRegi","DefaultRegistry","Hide","DOCKERHUB","_getRegistries","getSettings","useUpdateSettingsMutation","updateSettings","useUpdateDefaultRegistrySettingsMutation","updateDefaultRegistry","useExperimentalSettings","experimental","getExperimentalSettings","_getExperimentalSettings","useUpdateExperimentalSettingsMutation","updateExperimentalSettings","_updateExperimentalSettings","_getPublicSettings","getGlobalDeploymentOptions","_getGlobalDeploymentOptions","_getSettings","_updateSettings","_updateDefaultRegistry","defaultRegistry","subResource","AuthenticationMethod","OAuthStyle","getNodesCount","_getNodesCount","getSystemStatus","_getSystemStatus","retryDelay","useIsDemo","DemoEnvironment","_getSystemVersion","getSystemVersion","AppTemplatesListItem","duplicateCustomTemplateType","SwarmStack","ComposeStack","getCustomTemplateType","TemplateItem","typeLabel","renderActions","appTemplateId","useSortAndFilterTemplates","listState","_listState$sortBy3","_listState$sortBy4","disabledTypes","filterByCategory","filterBySearch","_item$Note","_item$Name","filterByTemplateType","_listState$sortBy","_listState$sortBy2","sortMultiplier","sortByCategories","aCategory","bCategory","TemplateListSort","_value$id","_value$desc2","sortByContainer","sortByElement","_value$desc","sortButton","orderByFields","typeFilters","Filters","_ref$disabledTypes","_ref$fixedCategories","fixedCategories","_sortBy","templatesTypes","typeFiltersEnabled","setCategory","setTypes","AppTemplatesList","initialTemplates","templateLinkParams","setPage","filteredTemplates","pagedTemplates","registriesQuery","_getTemplatesWithRegistry","getTemplatesWithRegistry","_yield$getAppTemplate","getAppTemplates","TemplateViewModel","registryURL","reg","DockerHubViewModel","RegistryModel","_getAppTemplates","useFetchTemplateFile","fetchFilePreview","_fetchFilePreview","FileContent","setTemplatesV2","setTemplatesV3","templateV2ID","_data$volumes","_data$env","AdministratorOnly","administrator_only","getPlatform","logo","Repository","Hostname","PorImageRegistryModel","Command","Network","network","Privileged","privileged","Interactive","RestartPolicy","restart_policy","Hosts","hosts","envvar","_envvar$select$find","EnvVarType","PreSelected","Text","getEnvVarTypeAndValue","Volumes","volumes","_data$ports","portAndProtocol","hostAndContainerPort","hostPort","containerPort","templatePorts","Rocket","LinuxIcon","MicrosoftIcon","KubernetesIcon","CustomTemplatesListItem","isEditAllowed","CreatedByUserId","getTypeLabel","CustomTemplatesList","getCustomTemplate","_getCustomTemplate","useCustomTemplate","useCustomTemplateFile","getCustomTemplateFile","refetchOnReconnect","refetchOnWindowFocus","_getCustomTemplateGitFetch","getCustomTemplateGitFetch","_getCustomTemplateFileContent","getCustomTemplateFileContent","_getCustomTemplates","getCustomTemplates","_ref2$edge","onlyLedTeams","_ref$select","getTeams","useTeam","getTeam","useTeamMemberships","getTeamMemberships","useAddMemberMutation","teamId","userIds","createTeamMembership","Member","useRemoveMemberMutation","teamMemberships","UserID","deleteTeamMembership","useUpdateRoleMutation","updateTeamMembership","_createTeamMembership","_deleteTeamMembership","_updateTeamMembership","_getTeams","_getTeam","deleteTeam","_deleteTeam","createTeam","_createTeam","leaders","leaderId","_getTeamMemberships","ROOT_PATH","HostBrowserController","HostBrowserService","FileSaver","goToParent","browse","confirmDeleteFile","isRoot","getRelativePath","getFilesForPath","getFilesForPathAsync","downloadFile","downloadFileAsync","renameFile","renameFileAsync","deleteFile","deleteFileAsync","onFileSelectedForUpload","onFileSelectedForUploadAsync","rootPathRegex","parentPath","buildPath","ls","newName","filePath","newFilePath","rename","fileName","downloadData","Blob","saveAs","$onInit","_join","_slice","onFileUploaded","refreshList","autoNgTemplateLoaderTemplate1","templateUrl","NodeSelectorController","AgentService","agents","NodeName","VolumeBrowserController","volumeId","isUploadEnabled","HttpRequestHelper","VolumeBrowserService","renameAsync","download","downloadAsync","up","parentFolder","AgentViewModel","IPAddress","NodeRole","AgentFactory","$resource","StateManager","getAgentApiVersion","factory","BrowseFactory","browseGetResponse","responseType","AgentDockerhub","limits","HostFactory","AgentPingFactory","interceptor","responseError","AgentServiceFactory","Agent","AgentVersion1","agentApiVersion","$promise","hostInfo","HostBrowserServiceFactory","Browse","newPath","CurrentFilePath","NewFilePath","onProgress","AgentPingService","AgentPing","VolumeBrowserServiceFactory","BrowseVersion1","getBrowseService","volumeID","basePath","excludedPaths","$analyticsProvider","$windowProvider","$window","$get","pageTracking","trackRelativePath","api","setCustomVariable","varIndex","varName","scope","deleteCustomVariable","trackSiteSearch","searchCount","trackGoal","goalID","revenue","trackLink","linkType","registerSetUsername","registerPageTrack","registerEventTrack","registerExceptionTrack","stack","onStartupAngular","$rootScope","cfpLoadingBar","$transitions","originalSet","onStart","toList","treeChanges","toConfigs","viewService","_viewConfigs","vc","viewDecl","$context","$","ajaxSend","jqXhr","jqOpts","hasNoContentType","contentType","setRequestHeader","csrfCookie","cookieStore","innerHTML","head","prepend","csrfTokenHeader","csrfToken","csrfInterceptor","csrfTokenReaderInterceptorAngular","configApp","$urlRouterProvider","$httpProvider","localStorageServiceProvider","$uibTooltipProvider","$compileProvider","cfpLoadingBarProvider","reqConfig","setPrefix","patch","Terminal","applyAddon","fit","setTriggers","mouseenter","focus","outsideClick","includeSpinner","parentSelector","latencyThreshold","otherwise","TRUNCATE_LENGTH","truncateContainerName","setTruncateContainerName","hiddenQuickActions","setHiddenQuickActions","columnHelper","createColumnHelper","created","accessor","isoDateFromTimestamp","Created","host","linkProps","shortImageName","trimSHASum","ip","IP","TableSettingsContext","useTableSettings","getContextType","TableSettingsProvider","Names","shortName","_truncate","PublishedPortLink","hostURL","generateContainerURL","ExternalLink","stripTrailingSlash","_createRowContext","private","PublicURL","ContainerQuickActions","isActive","Starting","Running","Healthy","Unhealthy","showQuickActionLogs","showQuickActionInspect","showQuickActionStats","BarChart","showQuickActionExec","showQuickActionAttach","Paperclip","display","_settings$hiddenQuick","wrapperState","someOn","multiple","regex","hasHealthCheck","statusClassName","Paused","Stopped","Dead","Exited","getClassName","transformedStatus","StatusText","filterFn","snapshotQuery","plugins","rootQueryKeys","containers","containersQuery","containerQueryKeys","dockerQueryKeys","filters","gpus","_getContainerGpus","gpusQuery","getContainerGpus","useContainerGpus","useColumns","isHostColumnVisible","isGPUsColumnVisible","ContainersDatatableActions","isAddActionVisible","selectedItemCount","hasPausedItemsSelected","State","hasStoppedItemsSelected","hasRunningItemsSelected","executeActionOnContainerList","onStartClick","Play","onStopClick","Square","onKillClick","Slash","onRestartClick","onPauseClick","Pause","onResumeClick","_onRemoveClick","onRemoveClick","isOneContainerRunning","removeSelectedContainers","_executeActionOnContainerList","successMessage","_removeSelectedContainers","ContainersDatatableSettings","isRefreshVisible","toListViewModel","_response$Portainer","_response$Portainer2","_response$Portainer3","_Object$values$","_response$NetworkSett","_response$Ports","_response$Names","Portainer","NetworkSettings","createStatus","PublicPort","PrivatePort","names","Gpus","useShowGPUsColumn","environmentID","isDockerStandaloneQuery","ControlAvailable","enableGPUManagementQuery","EnableGPUManagement","QuickActionsSettings","actions","buildAction","useContainers","_getContainers","getContainers","_ref2$all","settingsStore","StatusMode","healthy","unhealthy","starting","GpusList","buildDockerUrl","buildProxyUrl","dockerAction","buildDockerProxyUrl","_getImages","withUsage","imageId","used","humanize","_item$tags","repoTags","tableKey","RemoveButtonMenu","positionRight","MenuItem","ImportExportButtons","isExportInProgress","onExportClick","Download","dateTime","isoDate","withMeta","isFilesTableMeta","EditForm","originalName","onSave","onReset","isEdit","custom","onRename","setIsEdit","Dir","onBrowse","Folder","FileIcon","hideIfCustom","onDownload","FilesTable","onGoToParent","isUploadAllowed","isEditState","setIsEditState","CornerLeftUp","Size","ModTime","editState","_e$target$files","CreatedAt","withGlobalFilter","isExternalStack","External","isRegularStack","Regular","isOrphanedStack","Orphaned","TableSettingsMenus","showOrphanedStacks","setShowOrphanedStacks","NameLink","Active","Inactive","_ref4$column","external","regular","orphaned","orphanedRunning","OrphanedRunning","ImageUpToDateTooltip","EnableImageNotification","_getStackImagesStatus","Message","StackImageStatus","enableImageNotificationQuery","_useStackImageNotific","getStackImagesStatus","isError","imageNotificationColumn","control","Warning","orphanedFilter","_item$ResourceControl","_item$IPAM$IPV4Config","_item$IPAM","IPAM","IPV4Configs","Subnet","_item$IPAM$IPV4Config2","_item$IPAM2","Gateway","_item$IPAM$IPV6Config","_item$IPAM3","IPV6Configs","_item$IPAM$IPV6Config2","_item$IPAM4","NestedTable","NestedDatatable","NestedNetworksDatatable","_getNetwork","networkId","_deleteNetwork","_disconnectContainer","Force","useDisconnectContainer","disconnectContainer","buildActions","disconnectMutation","isContainerNetworkTableMeta","connectContainer","_connectContainer","aliases","EndpointConfig","Aliases","_getNetworks","local","swarm","swarmAttachable","Scope","Attachable","NetworkSelector","_ref$additionalOption","additionalOptions","_ref$hiddenNetworks","hiddenNetworks","networksQuery","useNetworksForSelector","networks","isSwarmQuery","dockerApiVersion","getNetworks","useNetworks","ConnectNetworkForm","selectedNetworks","connectMutation","useConnectContainerMutation","isNetworkDefined","MacAddress","buildColumns","GlobalIPv6Address","IPv6Gateway","containersModule","extenders","ImageStatus","SERVICE","proxyQueryKeys","useNodes","_getNodes","getNodes","ConstraintModel","op","patterns","nodeId","nodeHostname","nodeRole","nodeLabels","engineLabels","eq","neq","matchesConstraint","constraint","matchesLabel","extractValue","_constraint$split$pop","extractCustomLabelKey","baseLabelKey","_constraint$split$shi","matchesServiceConstraints","_node$Description","_node$Spec","_node$Spec2","_node$Description2","Constraints","constraints","transformConstraints","Engine","encodeRegistryCredentials","credentials","btoa","updateService","_updateService","serviceId","rollback","ScaleForm","replicas","Replicas","_config$Mode","Model","onKeyUp","autoFocus","CheckSquare","ScaleServiceButton","Minimize2","schedulingMode","nodesQuery","tasks","Tasks","task","_task$Status","DesiredState","availableNodeCount","availableNodes","_node$Status","Availability","PublishedPort","TargetPort","environmentQuery","_item$Status","TaskTableQuickActions","taskId","_ref$state","slot","Slot","getNodeName","updated","TasksDatatable","getWebhooks","_getWebhooks","EndpointID","ResourceID","removeWebhooksForService","_removeWebhooksForService","webhooks","webhook","removeWebhook","_removeWebhook","_removeService","isUpdateActionVisible","removeMutation","ids","removeService","useRemoveServicesMutation","updateMutation","useForceUpdateServicesMutation","_handleUpdate","handleUpdate","_handleRemove","handleRemove","TableSettings","expanded","setExpanded","isTableMeta","getTableMeta","isAgent","servicesModule","isSlotColumnVisible","isSlotColumnsVisible","_ref$titleIcon","Shuffle","isStackColumnVisible","selectedRows","onExpandedChange","updater","withControlledSelected","rowSelection","onRowSelectionChange","haveAccessToNode","availability","engine","cpu","CPUs","networksModule","isIpColumnVisible","HardDrive","swarmModule","Trello","isBrowseVisible","dangling","volumesModule","isSwarm","Driver","Mountpoint","Database","Entrypoint","ExposedPorts","volume","getPairKey","getPairValue","health","Server","HeartPulse","FailingStreak","Log","Output","Box","_item$Subs","Subs","defColumns","hostColumn","imagesQuery","getImages","useImages","hasWriteAccessQuery","Clipboard","relativePath","Clock","isImageNotificationEnabled","canManageStacks","CreatedBy","UpdatedBy","Layers","allowSelection","componentsModule","systemNetworks","isSystemNetwork","networkName","NetworkDetailsTable","_network$IPAM","_network$IPAM2","onRemoveNetworkClicked","allowRemoveNetwork","ipv4Configs","DockerNetworkHelper","getIPV4Configs","Config","ipv6Configs","getIPV6Configs","Internal","getConfigDetails","IPRange","getAuxiliaryAddresses","AuxiliaryAddresses","configValue","auxiliaryAddresses","NetworkOptionsTable","networkEntries","tableHeaders","NetworkContainersTable","networkContainers","IPv4Address","IPv6Address","ContainersDatatable","IsPortainer","useContainer","_getContainer","getContainer","LogsDisabledInfoPanel","_useCurrentStateAndPa4","createWebhook","_createWebhook","WebhookType","_pullImage","ignoreErrors","authenticationDetails","imageURI","fromImage","createOrReplace","oldContainer","isReplace","_replace","_create","_containerResponse$Po","containerResponse","pullImageIfNeeded","alwaysPull","createAndStart","applyContainerSettings","enableWebhook","_containerResponse$Po2","extraNetworks","renameAndCreate","connectToExtraNetworks","_renameAndCreate","renamed","_applyContainerSettings","createContainerWebhook","_createAndStart","createContainer","_x21","_pullImageIfNeeded","pull","_x22","_x23","_x24","_createContainer","_x25","_x26","_x27","_createContainerWebhook","RegistryId","DockerContainer","getURL","getQuayUrl","getGithubUrl","isNumericPortBinding","isStringPortBinding","isValidPortRange","portRange","parsePortRange","portRangeString","stringPorts","intPorts","_map","parsePort","portPattern","useRegistry","_getRegistry","getRegistry","InputSearch","getIsDockerHubRegistry","SimpleForm","onChangeImage","registryUrl","getRegistryURL","isDockerHubRegistry","RegistrySelector","ImageField","DockerIcon","ImageFieldAutoComplete","imageOptions","isKnownRegistry","registryImages","_difference","getImagesForRegistry","_registry$Gitlab","_registry$Github","_registry$Github2","AdvancedForm","RateLimits","onRateLimit","registryQuery","RateLimitsInner","isAuthenticated","_ref2$isAuthenticated","_ref2$registryId","pullRateLimits","isValidForPull","_getLocalEnvironmentRateLimits","getLocalEnvironmentRateLimits","getEnvType","_getAgentEnvironmentRateLimits","getAgentEnvironmentRateLimits","getRateLimits","remaining","useRateLimits","ImageConfigFieldset","_getApiVersion","buildAgentUrl","NodeSelector","apiVersionQuery","getApiVersion","useAgentNodes","PortsMappingField","_ref$onChange","ArrowRight","BaseForm","onChangeName","onChangeImageName","isAgentOnSwarm","_environmentQuery$dat","useIsAgentOnSwarm","canUseWebhook","field","publishAllPorts","autoRemove","baseFormUtils","toRequest","oldConfig","portBindings","_forEach","portBinding","portInfo","containerPortRange","startPort","endPort","hostIp","hostAndPort","_split3","hostPortRange","startHostPort","endHostPort","extractPortInfo","_range","bindKey","HostIp","HostPort","parsePortBindingRequest","HostConfig","PublishAllPorts","PortBindings","AutoRemove","toViewModel","_config$Portainer","_config$HostConfig","_config$HostConfig2","_config$HostConfig3","parsedPorts","sortedPorts","_key$split2","containerPortNumber","binding","_binding$HostPort","parsePorts","rangePorts","nonRangePorts","sortPorts","lastPort","getRange","combinePorts","isDuplicating","isDuplicatingPortainer","isDockerhubRateLimited","accessControlSchema","bool","getDefaultViewModel","capabilities","CapabilitiesTab","cap","capabilitiesTabUtils","hideCapabilities","CapAdd","CapDrop","_getDefaults","getDefaults","missingCaps","consoleSettingTypes","ConsoleSettings","_getPlugins","useServicePlugins","systemOnly","pluginType","pluginVersion","systemPluginsQuery","Plugins","pluginsQuery","getPlugins","usePlugins","_pluginsQuery$data","systemPlugins","plugin","Interface","Types","aggregateData","LoggerConfig","pluginOptions","_ref2$item","entrypoint","workingDir","logConfig","getLogConfig","OverridableInput","override","CommandsTab","commandsTabUtils","LogConfig","WorkingDir","OpenStdin","Tty","getConsoleConfig","Cmd","LabelsTab","labelsTabUtils","CONTAINER_MODE","ContainerSelector","NetworkTab","networkMode","domain","macAddress","ipv4Address","ipv6Address","primaryDns","secondaryDns","hostsFileEntries","HostsFileEntryItem","networkTabUtils","fromContainerId","_oldConfig$Networking","hostName","Domainname","NetworkMode","Dns","ExtraHosts","NetworkingConfig","EndpointsConfig","IPAMConfig","al","_config$NetworkSettin","_config$Config","_config$Config2","runningContainers","_ref2$","_ref2$2","_getNetworkMode","_config$NetworkSettin2","_runningContainers$fi","networkContainerId","networkNames","getNetworkMode","_getNetworkMode2","_getNetworkMode2$","networkSettings","isWindows","DevicesField","pathOnHost","pathInContainer","NvidiaCapabilitiesOptions","GpuFieldset","_ref$gpus","_ref$usedGpus","usedGpus","usedAllGpus","enableGpuManagement","gpu","gpuCmd","devices","selectedGPUs","deviceStr","caps","gpuValue","capValue","onChangeValues","backspaceRemovesValue","actionMeta","_actionMeta$option","useSpecific","MultiValueRemove","_props$data","selectProps","gpuFieldsetUtils","deviceRequests","driver","otherDeviceRequests","deviceRequest","Count","DeviceIDs","Capabilities","_deviceRequest$Capabi","_o$Capabilities","toConfigMemory","decimals","tenth","pow","round","EPSILON","toViewModelMemory","toViewModelCpu","toConfigCpu","ResourceFieldset","_useSystemLimits","reservation","NanoCpus","MemoryReservation","Memory","resourcesValidation","_ref2$maxMemory","POSITIVE_INFINITY","_ref2$maxCpu","RuntimeSelector","Runtimes","runtime","RuntimeSection","allowPrivilegedMode","isInitFieldVisible","SysctlsField","ResourcesTab","isDevicesFieldVisible","isSysctlFieldVisible","renderLimits","isStandalone","gpuUseAll","gpuUseList","sysctls","sharedMemorySize","resources","resourcesTabUtils","Init","Runtime","Devices","device","PathOnHost","PathInContainer","CgroupPermissions","Sysctls","sysctl","ShmSize","DeviceRequests","toResourcesRequest","_config$HostConfig4","_config$HostConfig5","_config$HostConfig6","_config$HostConfig7","_config$HostConfig8","_config$HostConfig9","_config$HostConfig10","RestartPolicyTab","No","Always","OnFailure","UnlessStopped","restartPolicyTabUtils","volumeTypes","InputContext","_getVolumes","VolumeSelector","volumesQuery","getVolumes","useVolumes","vol1","vol2","vol","allowBindMounts","useInputContext","containerPath","VolumesTab","volumesTabUtils","validValues","binds","Binds","Mounts","mount","Source","Destination","RW","EnvVarsTab","envVarsTabUtils","_container$Config","restartPolicy","updateContainer","_updateContainer","EditResourcesForm","redeploy","isImageInvalid","savedInitValues","setSavedInitValues","_updateLimitsOrCreate","systemLimits","helper","resetForm","invalidateContainer","dirty","submitForm","settingUnlimitedResources","updateLimits","_updateLimits","MemorySwap","InnerForm","_ref$hideCapabilities","isDuplicate","tab","setTab","isEnvironmentAdminQuery","Settings","SecuritySettings","allowBindMountsForRegularUsers","allowPrivilegedModeForRegularUsers","allowDeviceMappingForRegularUsers","allowSysctlSettingForRegularUsers","ignoreCapabilities","CreateForm","_initialValuesQuery$i","isEnvironmentAdmin","setIsDockerhubRateLimited","useCreateOrReplaceMutation","initialValuesQuery","submitting","_fromContainer$Networ","_fromContainer$Config","_webhookQuery$data","_useCurrentStateAndPa2","fromContainerQuery","runningContainersQuery","webhookQuery","useWebhooks","fromContainer","_fromContainer$Id","imageConfig","findBestMatchRegistry","lastIndex","getImageConfig","useInitialValues","_useOldContainer","initialName","setName","debouncedName","timer","useDebouncedValue","oldContainerQuery","syncName","useOldContainer","useValidation","allowContainerCapabilitiesForRegularUsers","_initialValuesQuery$i2","sendAnalytics","containerImage","autoNgTemplateLoaderTemplate2","autoNgTemplateLoaderTemplate3","autoNgTemplateLoaderTemplate4","autoNgTemplateLoaderTemplate5","autoNgTemplateLoaderTemplate6","envInfoQuery","isSwarmManager","_containerQuery$data$","containerQuery","logsEnabled","$stateRegistryProvider","register","views","viewsModule","_network$Portainer","networkQuery","getNetwork","useNetwork","deleteNetworkMutation","deleteNetwork","filterContainersInNetwork","Containers","_onRemoveNetworkClicked","Options","reactModule","autoNgTemplateLoaderTemplate7","autoNgTemplateLoaderTemplate8","autoNgTemplateLoaderTemplate9","autoNgTemplateLoaderTemplate10","autoNgTemplateLoaderTemplate11","autoNgTemplateLoaderTemplate12","autoNgTemplateLoaderTemplate13","autoNgTemplateLoaderTemplate14","autoNgTemplateLoaderTemplate15","autoNgTemplateLoaderTemplate16","autoNgTemplateLoaderTemplate17","autoNgTemplateLoaderTemplate18","autoNgTemplateLoaderTemplate19","autoNgTemplateLoaderTemplate20","autoNgTemplateLoaderTemplate21","autoNgTemplateLoaderTemplate22","autoNgTemplateLoaderTemplate23","autoNgTemplateLoaderTemplate24","autoNgTemplateLoaderTemplate25","autoNgTemplateLoaderTemplate26","autoNgTemplateLoaderTemplate27","autoNgTemplateLoaderTemplate28","autoNgTemplateLoaderTemplate29","autoNgTemplateLoaderTemplate30","autoNgTemplateLoaderTemplate31","abstract","onEnter","EndpointService","SystemService","EndpointProvider","PortainerEndpointTypes","DockerEnvironment","AgentOnDockerEnvironment","EdgeAgentOnDockerEnvironment","Up","checkEndpointStatus","updateEndpoint","updateEndpointStatus","updateEndpointState","redirect","environmentName","clean","inherit","configs","controllerAs","configCreation","dashboard","events","imageBuild","imageImport","networkCreation","secrets","secret","secretCreation","serviceCreation","serviceLogs","stacks","stackContainer","stackCreation","swarmVisualizer","taskLogs","volumeBrowse","volumeCreation","ctrl","editModel","save","maximumRetryCount","updateRestartPolicy","agentCount","hostDetails","engineDetails","disks","refreshUrl","browseUrl","hostFeaturesEnabled","transclude","isBrowseEnabled","originalValue","removeLabel","onChangedLabels","updateLabel","originalKey","NodeService","LabelHelper","managerAddress","hasChanges","managerRole","updateNodeLabels","updateNodeAvailability","saveChanges","originalNode","fromKeyValueToLabelHash","updateNode","cancelChanges","porImageRegistryContainerController","DockerHubService","fetchRateLimits","setValidity","checkRateLimits","rateLimitExceeded","porImageRegistryController","ImageHelper","RegistryService","ImageService","onRegistryChange","onImageChange","$watch","prepareAutocomplete","_filter","_includes","_flatMap","imagesWithoutKnown","availableImages","displayedRegistryURL","showDefaultRegistry","_find","reloadRegistries","loadImages","inputClass","displayTimestamps","logCollectionChange","sinceTimestamp","lineCount","resourceName","availableSinceDatetime","subtract","copySupported","supported","logCollection","autoScroll","wrapLines","filteredLogs","selectedLines","handleLogsCollectionChange","handleLogsWrapLinesChange","handleDisplayTimestampsChange","copy","log","show","fadeOut","copySelection","clearSelection","selectLine","downloadLogs","logsAsString","applicationState","NetworkService","onChangeSelectedNodes","DatatableState","requiredNodeSelection","requiredConfigSelection","SelectedNetworkConfig","onChangeScope","provider","hasNetworks","availableNetworks","ConfigOnly","Sliders","Share2","MacvlanFormData","ParentNetworkCard","VolumesCIFSFormData","useCIFS","serverAddress","share","versions","versionsNumber","VolumesNFSFormData","useNFS","mountPoint","includeString","str","charCodeAt","strToHash","hashToHexColor","Ghost","createdBy","flattenConfig","ConfigID","ConfigName","FileName","Uid","UID","Gid","GID","credSpec","configConfig","createPortRange","portRangeText","colonIndex","substr","portBindingKeys","_keys","portBindingKeysByProtocol","_groupBy","portKey","portBindingKeysByHostIp","sortedPortBindingKeys","_orderBy","previousHostPort","previousContainerPort","portKeySplit","bindingHostPort","_flatten","_trimStart","isValidTag","createImageConfigForContainer","getImagesNamesForDownload","removeDigestFromRepository","agentProxy","_isEmpty","fromLabelHashToKeyValue","added","labelKV","static","nodeToConfig","flattenSecret","SecretID","SecretName","secretConfig","otherServicesTasks","ServiceId","keyValuePreferences","preferences","preference","strategy","Spread","SpreadDescriptor","keyValueConstraints","operatorIndices","indexEquals","getOperator","humanDuration","nanos","duration","unit","asMilliseconds","conversionFromNano","logOptions","keyValueLogDriverOpts","ipHostEntries","entry","keyValue","ContainerId","optionArray","mounts","j","ConfigViewModel","UpdatedAt","Index","Data","decodeURIComponent","atob","b64DecodeUnicode","statusText","ContainerViewModel","ImageID","Checked","ContainerStatsViewModel","read","preread","memory_stats","privateworkingset","MemoryUsage","MemoryCache","NumProcs","num_procs","stats","usage","PreviousCPUTotalUsage","precpu_stats","cpu_usage","total_usage","PreviousCPUSystemUsage","system_cpu_usage","CurrentCPUTotalUsage","cpu_stats","CurrentCPUSystemUsage","CPUCores","percpu_usage","online_cpus","_values","blkio_stats","io_service_bytes_recursive","readData","BytesRead","writeData","BytesWrite","noIOdata","ContainerDetailsViewModel","Args","EventViewModel","Time","Details","eventAttr","Actor","Attributes","Action","extra","hasColon","exitCode","createEventDetails","ImageViewModel","Tag","RepoDigests","digest","Used","ImageBuildModel","hasError","buildLogs","stream","errorDetail","ImageDetailsViewModel","Parent","DockerVersion","Os","Architecture","Author","ContainerConfig","ImageLayerViewModel","Order","Comment","Tags","PluginViewModel","SwarmViewModel","buildImage","ignoreLoadingBar","jsonObjectsToArrayHandler","buildImageOverride","commitContainer","repo","remove","logsHandler","top","exec","inspect","update","prune","resize","w","endpointID","history","insert","imageGetResponse","deleteImageHandler","connect","disconnect","isJSON","jsonString","fromJson","since","until","dataUsage","Build","FileUploadService","deferred","defer","remote","dockerfile","uploadFiles","buildImageFromFiles","configId","ContainerServiceFactory","$timeout","maximumRetryCounts","MaximumRetryCount","configuration","execConfig","stdout","stderr","timestamps","tail","parameters","containerStats","Exec","execId","ContainerService","containerByImageId","layers","imageLayer","registryModel","encodedCredentials","imageConfiguration","finally","pullImageAndIgnoreErrors","detail","pullImageAndAcknowledgeErrors","forceRemoval","NetworkViewModel","ConfigFrom","networkConfiguration","localNetworks","swarmNetworks","swarmAttachableNetworks","filteredNetworks","NodeViewModel","_data$Version","_data$Spec","_data$Spec2","_data$Spec3","_data$Spec4","_data$Description","_data$Description2","_data$Description3","_data$Description4","_data$Description5","_data$Description6","_data$Description7","_data$Description8","_data$Status","_data$Status2","_data$Status3","EngineLabels","PlatformArchitecture","PlatformOS","OS","Resources","NanoCPUs","MemoryBytes","EngineVersion","Addr","ManagerStatus","Reachability","ManagerAddr","Node","rawNode","Plugin","servicePlugins","system","aggregatedPlugins","volumePlugins","networkPlugins","loggingPlugins","SecretViewModel","_data$Portainer","Secret","secretId","ServiceViewModel","_data$Spec5","_data$Spec6","_data$Spec7","_data$Spec8","_data$Spec9","_data$Spec10","_data$Spec11","_data$Spec12","_data$Spec13","_data$Spec14","_data$Spec15","ContainerSpec","Limits","LimitNanoCPUs","LimitMemoryBytes","Reservations","ReservationNanoCPUs","ReservationMemoryBytes","RestartCondition","Condition","RestartDelay","Delay","RestartMaxAttempts","MaxAttempts","RestartWindow","Window","LogDriver","LogDriverName","LogDriverOpts","Placement","Preferences","Platforms","containerSpec","ContainerLabels","Arguments","Groups","TTY","ReadOnly","StopSignal","StopGracePeriod","HealthCheck","DNSConfig","Secrets","Configs","Endpoint","VirtualIPs","UpdateParallelism","Parallelism","UpdateDelay","UpdateFailureAction","FailureAction","UpdateOrder","RollbackConfig","Scale","EditName","serv","TaskViewModel","Updated","ServiceID","NodeId","ContainerID","Task","VolumeViewModel","VolumeHelper","driverOptions","DriverOpts","createDriverOptions","volumeConfiguration","volumeConfigurations","createVolumeQueries","createVolume","ConfigsController","ConfigService","removeAction","removeActionAsync","getConfigs","getConfigsAsync","actionCount","CreateConfigController","$transition$","FormValidator","ResourceControlService","AccessControlData","AccessControlFormData","ConfigContent","formValidationError","isEditorDirty","editorUpdate","createAsync","onbeforeunload","displayCodeEditor","labelName","labelValue","prepareLabelsConfig","prepareConfigData","configData","unescape","encodeURIComponent","prepareConfiguration","validateAccessControl","userDetails","getUserDetails","onUpdateResourceControlSuccess","removeConfig","ContainerHelper","ExecService","LocalStorage","SidebarService","socket","term","states","freeze","disconnected","connecting","connected","restcall","termWidth","cols","initTerm","resizeRestCall","isLinuxTerm","resizefun","WebSocket","onopen","send","onData","terminal_container","getElementById","setOption","onresize","$apply","isSidebarOpen","onmessage","write","onclose","loaded","containerCommands","$on","connectAttach","attachId","origin","k","resizeTTY","connectExec","isCustomCommand","customCommand","AttachStdin","AttachStdout","AttachStderr","createExec","isLinuxCommand","isLinuxTerminalCommand","close","dispose","autoconnectAttachView","initView","containerLabels","imageOS","handleIsCustomCommandChange","ConfirmRecreationModal","cannotPullImage","setPullLatest","_confirmContainerRecreation","$filter","Commit","activityTime","displayRecreateButton","displayCreateWebhookButton","containerWebhookFeature","commitInProgress","recreateContainerInProgress","pullImageValidity","setPullImageValidity","validity","computeDockerGPUCommand","gpuOptions","gpuStr","edit","newContainerName","StartedAt","utc","FinishedAt","portMapping","mapping","inSwarm","admin","allowHostNamespaceForRegularUsers","settingRestrictsRegularUsers","executeContainerAction","commitContainerAsync","kill","pause","unpause","restart","commit","confirmRemove","cleanAssociatedVolumes","recreate","confirmContainerRecreation","DisplayTextView","containerInfo","$interval","repeater","isDefined","cancel","setUpdateRepeater","skipHeaders","unix","changeLogCollection","logCollectionStatus","$document","ChartService","updateNetworkChart","chart","rx_bytes","tx","tx_bytes","UpdateNetworkChart","updateMemoryChart","UpdateMemoryChart","updateIOChart","noIOData","UpdateIOChart","updateCPUChart","possIntervals","windowsCpuUsage","calculateCPUPercentWindows","cpuPercent","cpuDelta","systemDelta","calculateCPUPercentUnix","UpdateCPUChart","networkChart","cpuChart","memoryChart","ioChart","containerTop","processInfo","networkStatsUnavailable","ioStatsUnavailable","changeUpdateRepeater","ready","networkChartCtx","CreateNetworkChart","cpuChartCtx","CreateCPUChart","memoryChartCtx","CreateMemoryChart","ioChartCtx","CreateIOChart","startChartUpdate","initCharts","Power","runningContainersFilter","stoppedContainersFilter","Heart","healthyContainersFilter","unhealthyContainersFilter","ImagesTotalSize","imagesTotalSize","PieChart","VolumeService","ServiceService","StackService","TagService","dismissInformationPanel","showStacks","buildGpusStr","gpuUseSet","gpusAvailable","exist","gpuAvailable","_str","endpointMode","allowStackManagementForRegularUsers","shouldShowStacks","showEnvUrl","EdgeAgentOnKubernetesEnvironment","containerStatusComponent","imagesTotalSizeComponent","volumeCount","networkCount","serviceCount","stackCount","gpuInfoStr","gpuFreeStr","endpointTags","TagIds","DockerFeaturesConfigurationController","$analytics","SettingsService","limitedFeatureAutoUpdate","limitedFeatureUpToDateImage","enableHostManagementFeatures","allowVolumeBrowserForRegularUsers","disableBindMountsForRegularUsers","disablePrivilegedModeForRegularUsers","disableHostNamespaceForRegularUsers","disableStackManagementForRegularUsers","disableDeviceMappingForRegularUsers","disableContainerCapabilitiesForRegularUsers","disableSysctlSettingForRegularUsers","actionInProgress","autoUpdateSettings","timeZone","onChangeField","onToggleAutoUpdate","onToggleGPUManagement","onGpusChange","onChangeEnableHostManagementFeatures","onChangeAllowVolumeBrowserForRegularUsers","onChangeDisableBindMountsForRegularUsers","onChangeDisablePrivilegedModeForRegularUsers","onChangeDisableHostNamespaceForRegularUsers","onChangeDisableStackManagementForRegularUsers","onChangeDisableDeviceMappingForRegularUsers","onChangeDisableContainerCapabilitiesForRegularUsers","onChangeDisableSysctlSettingForRegularUsers","enableGPUManagement","isContainerEditDisabled","validGpus","initialEnableGPUManagement","eventTrack","enableGPUManagementState","initialGPUs","numberOfGPUSAdded","numberOfGPUSRemoved","updateSecuritySettings","securitySettings","isDockerStandaloneEnv","versionDetails","releaseVersion","rootDirectory","DockerRootDir","storageDriver","loggingDriver","LoggingDriver","buildEngineDetails","arch","OperatingSystem","kernelVersion","KernelVersion","totalCPU","totalMemory","agentHostInfo","PCIDevices","PhysicalDisks","BuildImageController","BuildService","BuildType","activeTab","ImageNames","Valid","Unique","UploadFile","DockerFileContent","onChangeBuildType","checkName","repositoryRegExp","addImageName","removeImageName","imageNames","buildType","dockerfilePath","buildImageFromUpload","buildImageFromURL","dockerfileContent","buildImageFromDockerfileContent","buildImageFromDockerfileContentAndFiles","buildImageBasedOnBuildType","validImageNames","uiCanExit","selectAdditionalFiles","RegistryModalService","exportInProgress","sortType","sortReverse","toggleLayerCommand","layerId","toggleClass","toggle","tagImage","pushTag","registryModal","pushImage","pullTag","removeTag","deleteImage","removeImage","exportImage","downloadImages","loadRegistriesForDropdown","pullRateValid","confirmRemovalAction","downloadAction","isAuthorizedToDownload","uploadImage","imageIds","PluginService","checkAuxiliaryAddress","excludedIP","gateway","prepareAuxiliaryAddresses","ipamConfig","ipFormValues","auxAddress","createNetwork","managerOperation","DriverOptions","IPV4","IPV6","Macvlan","availableNetworkDrivers","CheckDuplicate","EnableIPv6","addDriverOption","removeDriverOption","addIPV4AuxAddress","addIPV6AuxAddress","removeIPV4AuxAddress","IPV4AuxiliaryAddressesError","removeIPV6AuxAddress","IPV6AuxiliaryAddressesError","checkIPV4AuxiliaryAddress","checkIPV6AuxiliaryAddress","validIPV4","_reduce","validIPV6","onChangeInternal","enable","onChangeAttachable","prepareIPAMConfiguration","prepareDriverOptions","creationContext","selectedNetworkConfig","modifyNetworkConfigurationForMacvlanConfigFrom","selectedNodes","nonSwarmNetworks","_remove","grouped","_toArray","agent","getRole","_concat","groupSwarmNetworksManagerNodesFirst","$stateParams","transformPlugins","pluginsList","buildHostDetails","nodeDetails","buildNodeDetails","DockerRegistryAccessController","GroupService","filterUsers","updateRegistryAccess","registryEndpointAccesses","endpointUsers","UserAccessPolicies","endpointTeams","TeamAccessPolicies","endpointGroupUsers","endpointGroup","endpointGroupTeams","userOrTeam","userAccess","UserAccessViewModel","teamAccess","TeamAccessViewModel","registryTo","viewReady","RegistryAccesses","GroupId","SecretService","encodeSecret","handleEncodeSecretChange","secretConfiguration","prepareSecretData","SecretController","removeSecret","getSecrets","ServiceHelper","ConfigHelper","SecretHelper","WebhookService","commandToArray","EntryPoint","ExtraNetworks","HostsEntries","PlacementConstraints","PlacementPreferences","CpuLimit","CpuReservation","MemoryLimit","MemoryLimitUnit","MemoryReservationUnit","handleWebHookChange","handleEnvVarChange","refreshSlider","$broadcast","addPortBinding","Protocol","PublishMode","removePortBinding","addExtraNetwork","removeExtraNetwork","addHostsEntry","removeHostsEntry","addVolume","Target","removeVolume","addConfig","checkIfConfigDuplicated","addSecret","overrideTarget","checkIfSecretDuplicated","addPlacementConstraint","removePlacementConstraint","addPlacementPreference","removePlacementPreference","addContainerLabel","removeContainerLabel","addLogDriverOpt","removeLogDriverOpt","$invalid","$error","volumesAreValid","rcPromise","registryID","webhookPromise","createServiceWebhook","createNewService","prepareSchedulingConfig","prepareImageConfig","preparePortsConfig","prepareCommandConfig","envVarsUtils","prepareEnvConfig","volumeObject","VolumeOptions","DriverConfig","prepareVolumes","_uniqWith","_isEqual","prepareNetworks","hostsEntries","host_ip","keyVal","prepareHostsEntries","translateHumanDurationToNanos","prepareUpdateConfig","prepareConfigConfig","prepareSecretConfig","translateKeyValueToPlacementConstraints","translateKeyValueToPlacementPreferences","preparePlacementConfig","prepareResourcesCpuConfig","memoryLimit","toFixed","memoryReservation","prepareResourcesMemoryConfig","prepareRestartPolicy","logOpts","prepareLogDriverConfig","availableLoggingDrivers","checkIfAllowedBindMounts","availableVolumes","availableSecrets","availableConfigs","maxCpus","sliderMaxCpu","sliderMaxMemory","initSlidersMaxValuesBasedOnNodeData","$location","$anchorScroll","TaskService","TaskHelper","WebhookHelper","WebhookExists","updateInProgress","deletionInProgress","rollbackInProgress","lastVersion","originalService","previousServiceValues","buildChanges","ServiceLabels","EnvironmentVariables","ServiceContainerLabels","Editable","ServiceSecrets","ServiceConfigs","credSpecId","oldCredSpecId","Privileges","CredentialSpec","translateHostnameIPToHostsEntries","ServiceMounts","ServiceConstraints","ServicePreferences","translateKeyValueToLogDriverOpts","isUpdating","transformResources","v1","v2","translateLogDriverOptsToKeyValue","translateConstraintsToKeyValue","translatePreferencesToKeyValue","translateHostsEntriesToHostnameIP","translateServiceArrays","translateNanosToHumanDuration","transformDurations","serviceNetworks","_some","ingressNetwork","addr","webhookID","webhookURL","Token","associateContainerToTask","associateTasksToService","retrievePorRegistryModelFromRepository","initialRegistryID","updateServiceAttribute","updateServiceArray","goToItem","addEnvironmentVariable","onChangeEnvVars","orgEnv","orgVar","serviceConfig","updateConfig","newSecret","filename","serviceSecret","updateContainerLabel","addMount","removeMount","onChangeMountType","updateMount","toggleMountReadOnly","isReadOnly","addNetwork","removeNetwork","removedElement","updateNetwork","updatePlacementConstraint","updatePlacementPreference","addPublishedPort","updatePublishedPort","removePortPublishedBinding","updateLogDriverOpt","updateLogDriverName","updateHostsEntry","onWebhookChange","updateWebhook","deleteWebhook","updateWebhookRegistryId","newRegistryID","registryChanged","updateServiceWebhook","copyWebhook","attribute","elements","originalImage","currentImage","mountsAreValid","rollbackService","filterNetworks","serviceNetwork","filterConfigs","extractNodeInfo","CPU","processTotalCPUAndMemory","systemStatus","SystemStatus","node_count","node_offset","extractNodesInfo","extractSwarmInfo","prepareVisualizerData","visualizerData","assignServiceInfo","assignTasksToNode","ShowInformationPanel","DisplayOnlyRunningTasks","DisplayNodeLabels","handleChangeDisplayOnlyRunningTasks","changeDisplayOnlyRunningTasks","handleChangeDisplayNodeLabels","changeDisplayNodeLabels","changeShowInformationPanel","storeSwarmVisualizerSettings","showInfoPanel","getSwarmVisualizerSettings","displayOnlyRunningTasks","displayNodeLabels","loadState","BrowseVolumeController","NFSData","CIFSData","availableVolumeDrivers","onUseNFSChange","onUseCIFSChange","prepareNFSConfiguration","versionNumber","prepareCIFSConfiguration","createVolumeConfiguration","containerFilter","isCioDriver","volumeData","getVolumeDataFromContainer","containersUsingVolume","endpointProvider","endpointRole","attached","isVolumeUsedByAService","showBrowseAction","EdgeStackDeploymentTypeSelector","hasDockerEndpoint","hasKubeEndpoint","allowKubeToSelectCompose","deploymentOptions","Compose","PrePullToggle","RetryDeployToggle","PrivateRegistryFieldset","formInvalid","_ref$clearRegistries","clearRegistries","setChecked","parseRegistries","_parseRegistries","fileContent","currentFile","PrivateRegistryFieldsetWrapper","onFieldError","isGit","dryRunMutation","_matchRegistry","matchRegistry","mutateAsync","transformGitAuthenticationViewModel","parseRelativePathResponse","SupportRelativePath","FilesystemPath","SupportPerDeviceConfigs","PerDeviceConfigsMatchType","PerDeviceConfigsGroupMatchType","PerDeviceConfigsPath","dummyGitForm","relativePathValidation","setErrors","_valide","valide","getPerDevConfigsFilterType","isPerDevConfigsFilterType","RelativePathFieldset","setState","gitModel","isEditing","hideEdgeConfigs","innerOnChange","_useEnableFsPath","enableFsPath0","enableFsPath1","toggleFsPath","gitoptsEdgeConfigDocUrl","pathTip0","createGitCredential","_createGitCredential","useSaveCredentialsIfRequired","saveCredentialsMutation","saveCredentials","_saveCredentialsIfRequired","authentication","credential","saveGitCredentialsIfNeeded","_saveGitCredentialsIfNeeded","credentialsId","cred","useValidateEnvironmentTypes","groupIds","edgeGroups","endpointTypes","EndpointTypes","hasType","updateEdgeStackGit","_updateEdgeStackGit","_stack$AutoUpdate","updateStackMutation","_useSaveCredentialsIf","isSaveCredentialsLoading","GitConfig","gitConfig","EdgeGroups","deploymentType","autoUpdate","refName","EnvVars","_updateStackMutation$","onUpdateSettingsClick","_handleUpdateSettings","gitPath","gitUrl","isUpdateVersion","updateVersion","getPayload","privateRegistryId","_registriesQuery$data","forms","_forms","handleContentChange","useManifestNamespaces","_useState3","cachedContent","setCachedContent","onEditorChange","edgeStack","setFieldError","_useCachedContent","setContentCache","getCachedContent","DeploymentForm","webhookEnabled","prePullImage","retryDeploy","columHelper","EdgeGroupAssociationTable","_tableState$sortBy","_tableState$sortBy2","onClickRow","environmentsQuery","_groupsQuery$data","Group","_tagsQuery$data","_getEdgeStack","GitCommitLink","cleanedUrl","commitHash","cleanGitRepoUrl","logsStatusQueryKey","edgeStackId","useLogsStatus","_getLogsStatus","getLogsStatus","collectLogs","_collectLogs","deleteLogs","_deleteLogs","_downloadLogs","contentDispositionHeader","LogsActions","logsStatusQuery","collectLogsMutation","downloadLogsMutation","deleteLogsMutation","useDeleteLogsMutation","collecting","loader","EnvironmentActions","Snapshots","ActionStatus","getStatusText","_getDashboardRoute","statusArray","Acknowledged","ImagesPulled","PausedDeploying","RollingBack","RolledBack","_last2","_last","TargetCommitHash","TargetFileVersion","endpointTargetVersionLabel","_ref7","GitConfigURL","_status$DeploymentInf","DeploymentInfo","ConfigHash","_status$DeploymentInf2","_status$DeploymentInf3","FileVersion","_ref8","_env$StackStatus$Stat","DeploymentReceived","RemoteUpdateSuccess","Removed","Pending","Deploying","Removing","getStateColor","_startCase","_edgeStackQuery$data","_edgeStackQuery$data2","_edgeStackQuery$data3","_edgeStackQuery$data5","edgeStackQuery","getEdgeStack","useEdgeStack","_useParamState","param","parseParam","paramValue","useParamState","_useParamState2","statusFilter","setStatusFilter","edgeStackStatus","currentFileVersion","StackFileVersion","gitConfigURL","gitConfigCommitHash","_edgeStackQuery$data4","envStatus","pendingStatus","envStatusSelectOptions","_edgeStack$Registries","Registries","UseManifestNamespaces","PrePullImage","RetryDeploy","excludeIds","LastCheckInDate","fromNow","useFilterStore","setEdgeGroups","setGroups","setTags","checkIn","setCheckIn","checkInOptions","edgeGroupsQuery","filterStore","_associateDevice","useLicenseOverused","moreNodes","integratedInfo","Essentials","updateEnvironmentRelations","_updateEnvironmentRelations","relations","createEdgeGroup","_createEdgeGroup","requestPayload","CreatableSelector","onCreate","_useField2$","onBlur","selectedValues","cur","findOption","_handleCreate","createMutation","newGroup","dynamic","createGroup","_createGroup","GroupSelector","newTag","isAssignedToGroup","AssignmentDialog","assignRelationsMutation","edgeGroupQueryKeys","groupQueryKeys","hasPreAssignedEdgeGroups","_e$EdgeGroups","hasPreAssignedTags","hasPreAssignedGroup","overrideTags","overrideEdgeGroups","overrideGroup","createPayload","noValidate","overusedTooltip","associateMutation","associateDevice","nodesCountQueryKey","licenseOverused","_handleRemoveDevice","handleRemoveDevice","_handleAssociateAndAssign","handleAssociateAndAssign","handleAssociateDevice","_useEnvironments","filterByEnvironmentsIds","groupId","_edgeGroupsQuery$data","edgeDeviceUntrusted","excludeSnapshots","edgeCheckInPassedSeconds","environmentEdgeGroupsQuery","envs","_environmentEdgeGroup","_env$TagIds","useEnvironments","GenericDatatable","_getEdgeStacks","EdgeStackStatus","lastStatus","hasOldVersion","_getStatus","numDeployments","MinusCircle","Completed","hasDeploying","hasRunning","hasFailed","getStatus","NumDeployments","DeploymentCounter","total","getTooltip","getLabel","aggregatedStatus","_deleteEdgeStack","edgeStackIds","deleteEdgeStack","initialHiddenColumns","EdgeStacksDatatable","edgeStacksQuery","getEdgeStacks","useEdgeStacks","edgeStacks","stackStatus","HasEdgeJob","HasEdgeStack","TrustedEndpoints","DeleteButton","confirmMessage","onConfirmed","_handleClick","handleClick","_deleteEdgeGroup","edgeGroupIds","edgeGroupId","deleteEdgeGroup","EdgeGroupsDatatable","HasEdgeConfig","deleteTemplate","_deleteTemplate","useViewType","createTemplate","Method","_createTemplateFromText","createTemplateFromText","_createTemplateFromFile","createTemplateFromFile","_createTemplateAndGitCredential","createTemplateAndGitCredential","newGitModel","Git","createTemplateFromGit","EdgeSettings","RelativePathSettings","_yield$axios$post2","EdgeTemplate","_createTemplateFromGit","_yield$axios$post3","getDefaultEdgeTemplateSettings","PrivateRegistryId","initialBuildMethods","edgeFieldsetValidation","StaggerConfig","dockerTexts","textByType","_textByType","useParseTemplateOnFileChange","oldVariables","_getTemplateVariables","_getTemplateVariables2","validationError","parseTemplate","EdgeSettingsFieldset","fileValues","buildMethods","isEditor","handleChangeFileContent","texts","AccessControl","edgeSetValues","deploymentOptionsQuery","viewType","isEdge","gitCredentialsQuery","variablesValidation","commonFieldsValidation","_deploymentOptionsQue","_deploymentOptionsQue2","hideWebEditor","hideFileUpload","_fileContentQuery$dat","defaultType","_ref$isEdge","_useAppTemplateParams","typeNum","getStackType","getTemplateId","useAppTemplateParams","_useAppTemplateParams2","fileContentQuery","updateTemplate","_updateTemplate","isEditorReadonly","gitFileContent","gitFileError","refreshGitFile","edgeValues","disableEditor","hideAddWithForm","useDisableEditor","templateId","templateFile","_template$ResourceCon","refetch","templatesModule","templatesQuery","templateType","deleteMutation","_handleDelete","templateQuery","WaitingRoomView","edgeStackModule","cronMethodOptions","Calendar","EdgeJobFormController","cronMethods","scheduleValues","displayed","cron","datetime","scheduleValue","cronMethod","cronRegex","onChangeEnvironments","onChangeGroups","onCronMethodChange","onBuildMethodChange","onChangeModel","defaultTime","CronExpression","cronToDatetime","Recurring","minutes","hours","month","formAction","strings","addLabelAction","removeLabelAction","formActionLabel","EdgeJobResultsDatatableController","$controller","autoRefresh","onSettingsRepeaterChange","onCollectLogsClick","onDatasetChange","anyCollecting","LogsStatus","titleText","orderBy","reverseOrder","onDownloadLogsClick","onClearLogsClick","refreshCallback","statusMap","EdgeStackStatusController","aggregateStatus","ok","acknowledged","tagOptions","groupTypeOptions","EdgeGroupFormController","dynamicQuery","tagsPartialMatch","onChangeTags","onChangeDynamic","onChangePartialMatch","PartialMatch","pageType","EdgeJobResultsFactory","logFile","clearLogs","EdgeJobsFactory","EdgeJobService","EdgeJobs","EdgeJobResults","edgeJobId","results","ScheduleCreateRequest","createSchedule","ScheduleUpdateRequest","EdgeStacks","StackFileContent","createEdgeStack","repositoryOptions","FilePathInRepository","CreateEdgeGroupController","EdgeGroupService","endpointGroups","EditEdgeGroupController","updateGroup","CreateEdgeJobViewController","createEdgeJob","createEdgeJobFromFileContent","createEdgeJobFromFileUpload","EdgeJobController","showEditorTab","updateAsync","downloadLogsAsync","collectLogsAsync","clearLogsAsync","refresh","refreshAsync","showEditor","edgeJob","updateEdgeJob","logFileName","associateEndpointsToResults","EndpointId","jobResults","oldFileContent","getScriptFile","EdgeJobsViewController","deleteJobsAsync","deleteJobs","edgeJobs","CreateEdgeStackViewController","EdgeStackService","FormHelper","StackFile","templateValues","createStack","createStackByMethod","createStackFromFileContent","createStackFromFileUpload","createStackFromGitRepository","onChangeDeploymentType","onEnvVarChange","setTemplateValues","onChangeTemplate","templateAction","newTemplateValues","oldTemplateId","newTemplateId","newFile","buildAnalyticsProperties","methodLabel","templateName","selectedTemplate","templatesResponse","preSelectTemplate","validateTemplate","getMethod","checkIfEndpointTypes","selectValidDeploymentType","validTypes","_right","right","_intersection","CreatedFromCustomTemplateID","formIsInvalid","createEdgeStackView","DockerComposeFormController","methodOptions","onChangeFileContent","onChangeFile","onChangeMethod","onChangeFormValues","isGitTemplate","edgeStacksDockerComposeForm","kubeManifestForm","kubeDeployDescription","KubeManifestFormController","onChangeUseManifestNamespaces","EditEdgeStackViewController","isStackDeployed","deployStack","deployStackAsync","stackFile","originalFileContent","initiallyContainsKubeEnv","isComposeStack","updateStack","stackFileContent","createModule","i18n","Backend","LanguageDetector","initReactI18next","debug","fallbackLng","interpolation","escapeValue","azureErrorParser","responseData","subscriptions","subscriptionId","resourceGroups","resourceGroup","resourceGroupName","containerGroups","containerGroup","containerGroupName","getContainerInstanceProvider","_getContainerInstanceProvider","resourceTypes","containerGroupType","_ref2$locations","locations","buildSubscriptionsUrl","buildResourceGroupUrl","buildContainerGroupUrl","useResourceGroups","queries","useQueries","queryFn","_queryFn","getResourceGroups","q","_getResourceGroups","useSubscriptions","_getSubscriptions","getSubscriptions","getSubscriptionResourceGroups","getSubscriptionLocations","containerInstanceProviders","_createContainerGroup","transformToPayload","_deleteContainerGroup","containerGroupId","containerPorts","addressPorts","osType","requests","memoryInGB","ipAddress","allocatePublicIP","CreateContainerInstanceForm","_useLoadFormState","_useSubscriptions","isLoadingSubscriptions","_useResourceGroups","isLoadingResourceGroups","_useProvider","providers","useProvider","isLoadingProviders","useLoadFormState","_useFormState","subscriptionOptions","initSubscriptionId","getFirstValue","subscriptionResourceGroups","useFormState","createContainerGroup","_containerGroup$Porta","useCreateInstanceMutation","positive","enableReinitialize","_getContainerGroup","_getResourceGroup","_getSubscription","getContainerGroups","_getContainerGroups","scheme","_handleRemoveClick","handleRemoveClick","containerIds","_parseId","_match","resourceGroupId","parseId","subscriptionQuery","getSubscription","useSubscription","resourceGroupQuery","getResourceGroup","useResourceGroup","getContainerGroup","useContainerGroup","containerInstanceData","containerInstanceProperties","aggregateContainerInstance","subscriptionName","ContainerGroup","subscriptionsQuery","useContainerGroups","_useRemoveMutation","containerGroupIds","deleteContainerGroup","useRemoveMutation","_subscriptionsQuery$d","resourceGroupsQuery","subscriptionsCount","resourceGroupsCount","Subscription","Package","azureModule","constantsModule","constant","initFeatureService","UI_ROUTER_REACT_HYBRID","analyticsModule","run","invertSorting","New","isUnsavedChanges","oldIngressControllers","newIngressControllers","_oldIngressController","_newIngressController","getUpdatedIngressControllers","allRows","allow","selectedRowClassNames","ClassName","isOption","OptionComponent","Label","MultiValueLabel","UserIcon","TeamIcon","RegistriesSelector","_ref$options","ingressKeys","useIngresses","namespaces","_settledIngressesProm","_settledServicesPromi","settledIngressesPromise","filteredIngresses","uniqueNamespacesWithIngress","updatedFilteredIngresses","flat","ing","ns","_ing$Paths","servicesInNamespace","serviceNamesInNamespace","updatedPaths","hasService","HasService","useIngressControllers","Card","isErrorType","isArrayErrorType","ContainerPortInput","serviceIndex","portIndex","ServicePortInput","AppIngressPathForm","_ingressHostOptions$","_ingressPath$Path","ingressPathErrors","ingressHostOptions","onChangeIngressPath","onRemoveIngressPath","ingressesQuery","selectedIngress","setSelectedIngress","ingressHostOptionsWithCurrentValue","_ingressPath$Host","_ingressHosts$","_ingressPath$IngressN","_ingressPath$IngressN2","_ingressNames$","_newIngressPath$Host","ingressHosts","newIngressHostValue","ingressNames","newIngressNameValue","newIngressOption","ingressOption","AppIngressPathsForm","servicePortIngressPaths","onChangeIngressPaths","ingressPathsErrors","_useIngressController","ingressControllers","ingressControllersQuery","allowedIngressHostNameOptions","allowedIngressClasses","ic","allowedIngresses","_ing$Hosts","_allowedIngressHostNa","_allowedIngressHostNa2","_allowedIngressHostNa3","_allowedIngressHostNa4","newIngressPathsValue","newIngressPaths","_allowedIngressHostNa5","_allowedIngressHostNa6","ClusterIpServiceForm","onChangeService","servicePorts","onChangePort","newClusterIpPort","newServices","servicePortErrors","newServicePorts","ClusterIpServicesForm","clusterIPServiceCount","_errors$index","newServicePort","ServiceTabs","serviceTypeOptions","selectedServiceType","setSelectedServiceType","NodePortServiceForm","newNodePortPort","initiallyHasIngressPath","_servicePort$nodePort","NodePortServicesForm","nodePortServiceCount","LoadBalancerServiceForm","newLoadBalancerPort","LoadBalancerServicesForm","_useEnvironment","Configuration","UseLoadBalancer","loadBalancerEnabled","loadBalancerEnabledQuery","loadBalancerServiceCount","ServiceTabLabel","serviceTypeLabel","serviceTypeCount","serviceTypeHasErrors","PublishingExplaination","ingressDiagram","getServiceForPort","defaultIsOpen","_ref$labelClass","_ref$inputClass","isRequired","minLength","isExpandable","isNoteOpen","setIsNoteOpen","getNakedPods","deployments","daemonSets","statefulSets","appLabels","deployment","_deployment$spec","matchLabels","daemonSet","_daemonSet$spec","statefulSet","_statefulSet$spec","nakedPods","_pod$metadata","podLabels","appLabel","applicationIsKind","appKind","application","isExternalApplication","_application$metadata","getRunningPods","availableReplicas","_deployment$status$av","_deployment$status","totalReplicas","_deployment$status$re","_deployment$status2","unavailableReplicas","_deployment$status$un","_deployment$status3","numberAvailable","_daemonSet$status$num","_daemonSet$status","desiredNumberScheduled","_daemonSet$status$des","_daemonSet$status2","numberUnavailable","_daemonSet$status$num2","_daemonSet$status3","_statefulSet$status$r","_statefulSet$status","readyReplicas","getTotalPods","_application$status$r","_application$status","_application$status$d","_application$status2","_application$status$r2","_application$status3","bytesToReadableFormat","memoryBytes","units","unitIndex","memoryValue","matchLabelsToLabelSelectorValue","filterRevisionsByOwnerUid","revisions","uid","revision","_revision$metadata","ownerReferences","or","getRollbackPatchPayload","revisionList","previousRevision","controllerRevisions","sortedControllerRevisions","_a$metadata2","_b$metadata2","creationTimestamp","getTime","getPreviousControllerRevision","_previousRevision$spe","_revisionTemplate$met","_application$metadata2","_previousRevision$met","replicaSets","sortedReplicaSets","_a$metadata","_b$metadata","annotations","getPreviousReplicaSetRevision","revisionTemplate","applicationAnnotations","applicationAnnotationsInPatch","annotationKey","revisionAnnotations","revisionAnnotationsInPatch","annotationValue","getNamespacePods","_getNamespacePods","labelSelector","getPod","_getPod","patchPod","_patchPod","deletePod","_deletePod","_getApplicationsForCluster","applications","getApplicationsForNamespace","_getApplicationsForNamespace","_yield$Promise$all","_yield$Promise$all2","getApplicationsByKind","_getApplication","_yield$Promise$allSet","_yield$Promise$allSet2","getApplicationByKind","_patchApplication","patchApplicationByKind","_patchApplicationByKind","_getApplicationByKind","_getApplicationsByKind","app","_getApplicationRevisionList","deploymentUid","replicaSetList","replicaSetsWithOwnerId","replicaSetsWithRevisionAnnotations","controllerRevisionList","controllerRevisionsWithOwnerId","getReplicaSetList","rs","_rs$metadata","getControllerRevisionList","t1","_x33","_x34","_x35","_getReplicaSetList","_x36","_x37","_x38","_getControllerRevisionList","getNamespaceHorizontalPodAutoscalers","_getNamespaceHorizontalPodAutoscalers","autoScalarList","_getNamespaceHorizontalPodAutoscaler","autoScalar","applicationsForCluster","applicationRevisions","applicationServices","ingressesForApplication","applicationHorizontalPodAutoscalers","applicationPods","useApplicationsQuery","environemtId","getApplicationsForCluster","useApplication","getApplication","useApplicationServices","_app$metadata","_app$spec","appSelectorLabels","filteredServices","_service$spec","serviceSelectorLabels","useApplicationHorizontalPodAutoscaler","_app$metadata3","horizontalPodAutoscalers","matchingHorizontalPodAutoscaler","horizontalPodAutoscaler","_horizontalPodAutosca","scaleTargetRef","_app$metadata2","scaleTargetRefName","scaleTargetRefKind","useApplicationPods","_app$spec2","appSelector","_options$autoRefreshR2","usePatchApplicationMutation","_ref4$contentType","patchApplication","useNamespaceQuery","_getNamespace","getNamespace","ApplicationSummaryWidget","_namespaceData$data","_application$metadata3","_application$metadata4","_stateAndParams$param","_useApplication","applicationQuery","isSystemNamespace","IsSystem","externalApplication","applicationRequests","_application$spec","_application$spec2","appContainers","_container$resources","_container$resources2","parseCpu","filesizeParser","getResourceRequests","applicationOwner","applicationDeployMethod","_application$metadata5","_application$metadata6","_application$metadata7","getApplicationDeployMethod","applicationNote","applicationNoteFormValues","setApplicationNoteFormValues","globalDeploymentOptionsQuery","failedCreateCondition","conditions","condition","reason","patchApplicationMutation","hideStacksFunctionality","phase","_patchApplicationNote","patchApplicationNote","_getStackFile","RestartApplicationButton","RedeployApplicationButton","redeployAppMutation","useRedeployApplicationMutation","_redeployApplication","redeployApplication","RollbackApplicationButton","appRevisionList","_x28","_x29","_x30","_x31","_x32","getApplicationRevisionList","useApplicationRevisionList","appRevisions","appDeployMethod","patchAppMutation","isRollbackNotAvailable","rollbackButton","_rollbackApplication","rollbackApplication","RotateCcw","_appRevisionList$item","ApplicationServicesTable","appServices","_service$metadata","_service$metadata2","_service$spec2","_service$spec3","_service$status","_service$spec4","_service$status2","_service$spec$externa","_service$spec5","_service$spec6","_service$spec7","_service$spec8","loadBalancer","externalIPs","ApplicationIngressesTable","namespaceIngresses","ingressPathsForAppServices","matchingIngressesPaths","_ingress$Paths","matchingIngressPaths","secure","TLS","getIngressPathsForAppServices","ApplicationAutoScalingTable","_appAutoScalar$spec","_appAutoScalar$spec2","_appAutoScalar$spec3","appAutoScalar","Move","minReplicas","maxReplicas","targetCPUUtilizationPercentage","ApplicationEnvVarsTable","appEnvVars","podSpec","appInitContainers","initContainers","appContainersEnvVars","_container$env","_container$envFrom","containerEnvVars","envVar","_envVar$valueFrom","_envVar$valueFrom2","_envVar$valueFrom3","_envVar$valueFrom4","_envVar$valueFrom5","envtype","valueFrom","configMapKeyRef","secretKeyRef","fieldPath","fieldRef","containerName","isInitContainer","resourseName","containerEnvFroms","envFrom","_envFrom$configMapRef","_envFrom$secretRef","configMapRef","secretRef","appInitContainersEnvVars","_container$env2","_container$envFrom2","_envVar$valueFrom6","_envVar$valueFrom7","_envVar$valueFrom8","_envVar$valueFrom9","_envVar$valueFrom10","_envFrom$configMapRef2","_envFrom$secretRef2","getApplicationEnvironmentVariables","Asterisk","Key","secretQueryKeys","secretsForCluster","useSecrets","useSecretsForCluster","_getSecretsForCluster","getSecretsForCluster","_getSecrets","secretsWithKind","deleteSecret","_deleteSecret","ApplicationVolumeConfigsTable","containerVolumeConfigs","appVolumes","configMap","_volume$configMap","_volume$secret","_volume$configMap2","_volume$secret2","_container$volumeMoun","volConfigMapItems","volumeConfigName","secretName","containerVolumeMount","volumeMounts","volumeMount","getApplicationVolumeConfigs","mountPath","isVolumeConfigNameFromSecret","_secret$metadata","ApplicationPersistentDataTable","persistedFolders","appVolumeClaimVolumes","volumeClaimTemplates","_vc$metadata","_vc$metadata2","persistentVolumeClaim","claimName","_v$persistentVolumeCl","_vc$persistentVolumeC","getVolumeClaimTemplates","appAllVolumes","appAllContainers","hostPath","matchingPods","_pod$spec","_pod$spec2","podContainers","podInitContainers","podContainer","getPodsMatchingContainer","isContainerInit","getPersistedFolders","dataAccessPolicy","getDataAccessPolicy","Boxes","persistedFolder","_persistedFolder$volu","_persistedFolder$volu2","_persistedFolder$volu3","ApplicationDetailsWidget","externalApp","appStackFileQuery","getStackFile","Pencil","SystemResourcesSettings","systemResourcesSettings","showSystemResources","setShowSystemResources","getBadgeColor","formatDate","lastTimestamp","eventTime","involvedObject","EventsDatatable","History","_row$metadata","_getNamespaceEvents","useNamespaceEventsQuery","getNamespaceEvents","imagePullPolicy","getContainerStatusType","podIp","creationDate","getActions","isServerMetricsEnabled","ApplicationContainersDatatable","useServerMetricsQuery","_env$Kubernetes","UseServerMetrics","podsQuery","_pod$metadata$name","_pod$spec$nodeName","_pod$spec3","_pod$status$podIP","_pod$status","_pod$status$startTime","_pod$status2","_pod$status3","podIP","computeContainerStatus","containerStatuses","statuses","waiting","running","nodeList","useNodesQuery","PlacementItem","_nodesLabels$item$lab","nodesLabels","availableNodeLabels","labelOptions","valueOptions","placementError","labelOption","striked","valueOption","placementOptions","AlignJustify","PlacementTypeBoxSelector","placementType","SummaryItem","resourceAction","summary","YAMLInspector","identifier","hideMessage","yml","YAML","_y$metadata","managedFields","resourceVersion","cleanYamlUnwantedFields","Minus","SystemResourceDescription","KubernetesNamespaceHelper","Applications","ResourcePool","SubRows","span","Highlighted","KubernetesApplicationHelper","StacksSettingsMenu","setSystemResources","NamespaceFilter","showSystem","transformedNamespaces","isSystem","transformNamespaces","isSelectedNamespaceFound","newNamespaceValue","_getKubernetesEndpoints","endpointsList","_node$metadata","isApi","isPublishedNode","getInternalNodeIpAddress","_node$status","addresses","address","masterLabels","StatusBadge","_node$spec","unschedulable","_node$status$conditio","getCPU","_node$status$allocata","allocatable","getMemory","_row$status$nodeInfo$","_row$status","nodeInfo","kubeletVersion","_node$status$nodeInfo","_getInternalNodeIpAdd","_getInternalNodeIpAdd2","ActionsCell","metricsEnabled","getColumns","ConfigurationData","overrideKeysErrors","configurationIndex","keyIndex","dataCyType","configurationType","overriddenKeyError","ConfigurationItem","_item$selectedConfigu2","configurations","onRemoveItem","formikError","configurationData","selectedConfiguration","_option$metadata","_configuration$metada","_item$selectedConfigu","overriden","overridenKeys","onToggleOverride","overridenKey","newOverridenKeys","configurationsValidationSchema","allPaths","configmap","configMapQueryKeys","configMaps","configMapsForCluster","useConfigMapsForCluster","_getConfigMapsForCluster","getConfigMapsForCluster","getConfigMaps","_getConfigMaps","configMapsWithKind","deleteConfigMap","_deleteConfigMap","PersistedFolderItem","_item$sizeUnit","_item$sizeUnit2","storageClasses","PVCOptions","applicationValues","isExistingPersistedFolder","isNewVolume","useNewVolume","existingVolume","sizeUnit","_option$value","sc","getStorageClassValue","_storageClasses$find","storageClass","pvc","persistentVolumeClaimName","PersistentVolumeClaim","_initialValues$index","_storageClasses$find2","matchingClass","_persistedFolder$stor","getAddButtonError","storageClassValidation","AccessModes","AllowVolumeExpansion","Provisioner","hasSuitableNode","cpuLimit","nodeLimits","nanParsedMemoryLimit","nanParsedCPULimit","nodeLimit","KubernetesResourceReservationHelper","megaBytesValue","NoMetricsServerWarning","useNamespacesQuery","allNamespaceAccessReviews","allowedNamespacesNames","allowedNamespaces","getNamespaces","allowed","_getNamespaces","emptyValue","TitleContent","isComposeFormat","applicationsModule","onChangeControllers","initialIngressControllers","allowNoneIngressClass","noIngressControllerLabel","view","ingControllerFormValues","setIngControllerFormValues","newIngFormValues","isCustomTypeExist","ingController","Route","updateIngressControllers","_updateIngressControllers","updatedIngressControllers","newAllowed","usedControllersToDisallow","selectedTeams","_environment$Kubernet","_useNodesQuery","_useKubernetesEndpoin","getKubernetesEndpoints","useKubernetesEndpointsQuery","kubernetesEndpoints","kubernetesEndpointsQuery","_excluded3","environmentUrl","nodeRowData","subsetAddresses","_endpoint$subsets","subsets","subset","_subset$addresses","nodeAddress","subsetAddress","useNodeRowData","_row$metadata$uid","persistedFoldersUseExistingVolumes","getOptions","setStackName","_ref$stacks","inputClassName","_ref$textTip","_ref$error","stackResults","insightsBoxContent","isAllowedToEdit","_useApplicationServic","servicesQuery","_useApplicationPods","_useNamespaceEventsQu","eventsQuery","_excluded4","relatedEvents","serviceIds","podIds","oldFormValues","appResourceSummaries","newFormValues","_oldFormValues$Servic","_newFormValues$Servic","_newFormValues$Persis","_newFormValues$AutoSc","_oldFormValues$AutoSc","_newFormValues$AutoSc2","_oldFormValues$AutoSc2","_newFormValues$AutoSc3","_oldFormValues$AutoSc3","_newFormValues$AutoSc4","_oldFormValues$AutoSc4","_newFormValues$AutoSc5","_oldFormValues$AutoSc5","_newFormValues$AutoSc6","_oldFormValues$AutoSc6","oldServices","updateAndCreateSummaries","deleteSummaries","updateAppSummaries","ApplicationType","serviceSummaries","Services","oldServiceMatched","getServiceUpdateSummary","oldServicePorts","OriginalIngresses","ingressSummaries","newIng","oldIngress","_newIngress$Paths","_oldIngress$Paths","isAnyNewPathMissingOldPath","isAnyOldPathMissingNewPath","oldIng","getIngressUpdateSummary","pvcSummaries","DataAccessPolicy","PersistedFolders","_volume$existingVolum3","newVolume","_oldFormValues$Persis","_newVolume$existingVo","oldVolume","createHPASummary","AutoScaler","isUsed","deleteHPASummary","updateHPASummary","targetCpuUtilizationPercentage","hpaSummaries","getUpdatedApplicationResources","appSummary","serviceFormSummaries","_formValues$Services","headlessSummary","ingressesSummaries","_formValues$Services2","servicePathsIngressNames","_formValues$Persisted","_volume$existingVolum","_volume$existingVolum2","hpaSummary","_formValues$AutoScale","getAppResourceSummaries","_ref$namespace","onNamespaceChange","newServiceNames","newIndex","existingName","uniqName","getUniqNames","newServiceName","serviceTypeCounts","getServiceTypeCounts","serviceHasErrors","getServiceTypeHasErrors","formServices","matchingService","nodePortServices","formServiceNames","formService","clusterNodePortsWithoutFormServices","npService","npServicePorts","formNodePortsWithoutCurrentService","formServicePorts","ingressHostAndPath","ingressPathsInNamespace","originalIngressPaths","allFormServicePortIngresses","formMatchingIngressHostPathCount","formIngressHostAndPath","nsMatchingIngressHostPathCount","nsIngressHostAndPath","originalMatchingIngressHostPathCount","originalIngressHostAndPath","Annotations","configMapsQuery","useConfigMaps","_configMaps$","selectedConfigMap","secretsQuery","_secrets$","_environmentQuery$dat2","existingPVCs","isAddPersistentFolderButtonShown","StorageClasses","_pvc$PersistentVolume","_pvc$PersistentVolume2","applicationName","uuidv4","nameLimited","persistedFolderFormValue","quota","namespaceQuotas","quotaExceeded","pfs","_forOwn","storagePfs","storageClassName","newPfs","requestedSize","sum","pf","storageAvailabilities","Storage","CreationDate","PreviousName","MountPath","Yaml","_Number","namespaceHasQuota","resourceQuotaCapacityExceeded","minMemoryLimit","minCpuLimit","maxMemoryLimit","maxCpuLimit","_value$","isExistingMemoryReservationUnchanged","_context$parent","isExistingCPUReservationUnchanged","_context$parent2","supportScalableReplicaDeployment","resourceReservationsOverflow","hasResourceLimit","replicaCount","_round","nonScalableStorage","isMetricsEnabled","autoScalerOverflow","_availableNodeLabels$","_values$placements","placements","nodeLabelPairs","allNodesLabels","pair","uniqueNodesLabels","allNodeValuesForKey","uniqueValues","useNodeLabels","existingPlacementLabels","firstAvailableNodeLabel","firstAvailableNodeLabelValue","nonDeletedPlacements","_useNamespacesQuery","namespacesQuery","nsName","hasQuota","isResourceQuotaCapacityExceeded","namespaceOptionCount","yupString","existingNames","supportGlobalDeployment","isQuotaExceeded","isNew","DefaultDatatableSettings","isHTTP","TLSs","isHttp","paths","_row$Labels","owner","_row$original$Labels","_row$original$Labels2","IngressDatatable","canAccessSystemResources","_useIngresses","ingressesWithIsSystem","useIngressesRowData","deleteIngressesMutation","selectedFlatRows","referrer","AnnotationsForm","handleAnnotationChange","removeAnnotation","annotationErrors","annotation","_annotationErrors$i","_annotationErrors$i2","_annotationErrors$i3","_annotationErrors$i4","Value","PathTypes","nginx","traefik","other","PlaceholderAnnotations","IngressForm","_rule$Hosts","_rule$Hosts2","rule","tlsOptions","handleTLSChange","addNewIngressHost","serviceOptions","handleHostChange","handleIngressChange","handlePathChange","addNewIngressRoute","removeIngressRoute","removeIngressHost","addNewAnnotation","reloadTLSCerts","ingressClassOptions","isIngressClassOptionsLoading","namespacesOptions","isNamespaceOptionsLoading","isIngressNamesLoading","handleNamespaceChange","hasNoHostRule","NoHost","placeholderAnnotation","IngressType","pathTypes","IngressClassName","ingressClassOption","hostIndex","TLSOption","pathIndex","_servicePorts$path$Se","_servicePorts$path$Se2","allOptions","selectedLabel","serviceOption","portOption","ServicePort","ignoreAnnotationsForEdit","prepareTLS","prepareRuleHostsFromIngress","getSecretByHost","random","getPVCs","_getPVCs","EnvironmentInfo","_tagsQuery$tags","environmentData","tagNames","Gauge","stripProtocol","isExternal","rowA","rowB","portA","portB","_row$ClusterIPs","ClusterIPs","clusterIPs","ipA","ipB","languages","language","ignorePunctuation","ExternalIPLink","externalIP","_row$ExternalIPs","_row$IngressStatus","_row$ExternalIPs2","ExternalIPs","IngressStatus","_row$original$Externa","linkTo","_row$original$Externa2","_getSchemeAndPort2","svc","_svc$Ports","getSchemeAndPort","aExternal","bExternal","targetPorts","CreationTimestamp","ServicesDatatable","_useServicesForCluste","servicesWithIsSystem","useServicesRowData","servicesRenderRow","deleteServicesMutation","WidgetTabs","currentTabIndex","tabs","selectedTabParam","findSelectedTabIndex","getIsConfigMapInUse","_appSpec$volumes","appSpec","hasEnvVarReference","valueFromEnv","_configMap$metadata","envFromEnv","_envVar$configMapRef","_configMap$metadata2","hasVolumeReference","_configMap$metadata3","configurationOwnerUsernameLabel","_row$metadata2","_row$metadata3","isSystemToken","isSystemConfigMap","hasConfigurationOwner","inUse","_row$original$metadat","_row$original$metadat2","_row$original$metadat3","_row$original$metadat4","_columnId","getCreatedAtText","ConfigMapsDatatable","_useConfigMapsForClus","_useApplicationsQuery","applicationsQuery","configMapRowData","applicationsLoading","_namespaces2","_configMap$metadata$n2","useConfigMapRowData","_namespaces","_configMap$metadata$n","deleteConfigMapMutation","successfulConfigMaps","failedConfigMaps","configMapsToDelete","_configMap$metadata$n3","_configMap$metadata$n4","_configMap$metadata4","getIsSecretInUse","_envVar$secretRef","_secret$metadata2","_secret$metadata3","_row$metadata4","isRegistrySecret","isSystemSecret","SecretsDatatable","_useSecretsForCluster","secretRowData","_namespaces3","_secret$metadata$name2","useSecretRowData","_secret$metadata$name","deleteSecretMutation","successfulSecrets","failedSecrets","secretsToDelete","_secret$metadata$name3","_secret$metadata$name4","_secret$metadata4","widget","useUnauthorizedRedirect","_ref$adminOnlyCE","isAuthorizedQuery","IngressClassDatatable","LoadBalancerFormSection","NamespaceSummary","resourceQuota","StorageQuotaItem","StorageQuotaFormSection","useClusterResourceLimitsQuery","_getResourceLimits","getResourceLimits","ResourceQuotaFormSection","_resourceLimitsQuery$","_resourceLimitsQuery$2","_resourceLimitsQuery$3","_resourceLimitsQuery$4","_Number2","enableResourceOverCommit","resourceLimitsQuery","RegistriesFormSection","NamespaceInnerForm","_environmentQuery$dat3","_environmentQuery$dat4","_environmentQuery$dat5","ingressClassesQuery","useLoadBalancer","EnableResourceOverCommit","enableIngressControllersPerNamespace","IngressAvailabilityPerNamespace","ingressClasses","registriesValidationSchema","getResourceQuotaValidationSchema","_Number3","cpuValue","_Number4","getNamespaceValidationSchema","notOneOf","updateEnvironmentRegistryAccess","_updateEnvironmentRegistryAccess","buildRegistryUrl","createNamespace","_createNamespace","CreateNamespaceForm","_useCurrentEnvironmen","createNamespaceMutation","createNamespacePayload","updateRegistriesPayload","namespaceIngressControllerPayload","updateRegistriesPromises","updateIngressControllerPromise","Namespaces","useCreateNamespaceMutation","userName","createNamespaceFormValues","memoryInBytes","Owner","ResourceQuota","registryFormValues","_selectedRegistry$Reg","selectedRegistry","envNamespacesWithAccess","SubRow","cellCount","unmetTaints","highlighted","unmatchedNodeSelectorLabels","unmatchedNodeAffinities","UnmetTaintsInfo","taints","isHighlighted","UnmatchedLabelsInfo","UnmatchedAffinitiesInfo","affinities","taint","effect","aff","acceptsApplication","enableResizing","PlacementsDatatable","hasPlacementWarning","placementsSettingsStore","usePlacementTableState","useApplicationYAML","_autoScalar$metadata","_useApplication2","applicationYAML","applicationYAMLQuery","_useServicesQuery","servicesYAML","servicesYAMLQuery","_useApplicationHorizo","autoScalarsQuery","_excluded5","_useHorizontalAutoSca","getNamespaceHorizontalPodAutoscaler","useHorizontalAutoScalarQuery","autoScalarYAML","autoScalarYAMLQuery","_excluded6","fullApplicationYaml","isApplicationYAMLLoading","ApplicationYAMLEditor","_useApplicationYAML","getIngressClassesFormValues","ingressClassesFormValues","noneIngressClassIndex","ingressClass","availableStorageClassPolicies","getStorageClasses","_getStorageClasses","storageClassList","transformStorageClassesToFormValues","_storageClass$metadat2","enabledStorage","_storageClass$metadat","accessMode","provisioner","allowVolumeExpansion","accessModeSchema","storageClassFormValuesSchema","_value$AccessModes","endpointChangeWindowSchema","ingressControllerClassMapSchema","configureValidationSchema","useServerMetrics","resourceOverCommitPercentage","restrictDefaultNamespace","restrictStandardUserIngressW","ingressAvailabilityPerNamespace","changeWindow","RBACAlert","EnableMetricsInput","metricsFound","setMetricsFound","getMetricsMutation","StorageAccessModeSelector","innerProps","StorageClassDatatable","storageClassValues","storageClassValue","accessModes","hasValidStorageConfiguration","patchStorageClass","_patchStorageClass","storageClassPatch","_handleSubmitConfigureCluster","configureClusterMutation","_initialValues$ingres","selectedStorageClasses","updatedEnvironment","storageClassPatches","restrictAccessToDefaultNamespace","assignFormValuesToEnvironment","createStorageClassPatches","updateEnvironmentPayload","oldStorageClasses","oldStorageClass","createStorageClassPayload","ResourceOverCommitPercentage","RestrictDefaultNamespace","RestrictStandardUserIngressW","AllowNoneIngressClass","ConfigureForm","_useStorageClassesFor","storageClassFormValues","useStorageClassesFormValues","formikHelpers","handleSubmitConfigureCluster","formikProps","isIngressClassesLoading","_useIsRBACEnabledQuer","isRBACEnabled","isRBACEnabledQuery","controllerClassMap","isFormChanged","_secretsResults$data","isAuthorizedToAddEdit","setNamespace","ingressRule","setIngressRule","isEditClassNameSet","setIsEditClassNameSet","_useNamespaceServices","useNamespaceServices","allServices","secretsResults","ingressesResults","createIngressMutation","updateIngressMutation","useUpdateIngress","_useMemo","_ingressesResults$dat","_ingressesResults$dat2","ruleCounterByNamespace","hostWithTLS","_ingress$TLS","_useMemo2","namespaceOptions","nsKey","groupedOptions","existingIngressClass","allowedIngressClassOptions","cls","disallowedIngressClasses","notFoundIngressClassOption","prevRules","_ingressControllers$f","_config$metadata","_config$metadata2","_config$metadata3","_ingressesResults$dat3","_ingressControllers$f2","prepareRuleFromIngress","_ingressRule$Hosts","hIndex","tlsOptionVals","_ingressRule$Hosts2","_host$Paths","pIndex","_servicePorts$service","currentServicePorts","groupedServiceOptions","_rule$Annotations","duplicatedAnnotations","re","duplicatedHosts","hi","_host$Paths2","pi","availableServiceNames","optionGroup","sn","isExists","exists","checkIfPathExistsWithHost","debouncedValidate","noHost","_rule$Annotations2","_rule$Annotations3","rules","newKey","addNewIngress","classNameToSend","stateAndParams","_usePlacementTableDat","placementsData","placementDataFromTolerations","tolerations","nodePlacements","matchKeyMatchValueMatchEffect","matchKeyAnyValueMatchEffect","matchKeyMatchValueAnyEffect","matchKeyAnyValueAnyEffect","anyKeyAnyValueAnyEffect","computeTolerations","placementDataFromAffinities","nodePlacementsFromAffinities","nodeIndex","_node$metadata2","podNodeSelectorLabels","nodeSelector","getUnmatchedNodeSelectorLabels","unmatchedRequiredNodeAffinities","basicNodeAffinity","affinity","nodeAffinity","requiredDuringSchedulingIgnoredDuringExecution","nodeSelectorTerms","selectorTerm","_selectorTerm$matchEx","matchExpressions","matchExpression","_node$metadata3","_node$metadata4","_node$metadata5","_matchExpression$valu","_node$metadata6","_matchExpression$valu2","_matchExpression$valu3","isIn","unmatchedAffinity","getUnmatchedRequiredNodeAffinities","computeAffinities","computePlacements","isPlacementsTableLoading","notAllowedOnEveryNode","nodePlacement","usePlacementTableData","placementsTableState","_useApplicationEvents","appEventsTableState","appEventsData","appEventWarningCount","isAppEventsTableLoading","useApplicationEventsTableData","LaptopCode","_usePVCsQuery","pvcs","usePVCsQuery","pvcsQuery","_excluded7","podID","setCommand","connectionStatus","setConnectionStatus","terminal","setTerminal","setSocket","disconnectConsole","terminalContainer","encoded","TextEncoder","encode","writeUtf8","TerminalIcon","ExpirationCache","Map","removeAll","registriesModule","customTemplateModule","KubernetesHealthService","$http","UserService","UseCache","KubernetesLocalEnvironment","AgentOnKubernetesEnvironment","endpointKubernetesSecurityConstraint","Kind","settingsKey","onPublishingModeClick","isPrimary","onChangeNamespaceDropdown","isAppsLoading","isSystemResources","isVisible","DatatableService","extend","expandAll","expandedItems","filteredDataSet","expandItem","isItemExpanded","KubernetesApplications","hasConfigurationSecrets","getPublishedUrls","setDataTableExpandedItems","expandItems","storedExpandedItems","onDataRefresh","getDataTableExpandedItems","onSettingsShowSystemChange","updateNamespace","setDataTableSettings","isDisplayed","ingressUrls","PublishedPorts","pp","IngressRules","loadBalancerURLs","LoadBalancerIPAddress","publishedUrls","Configurations","applyFilters","onStateFilterChange","prepareTableFromDataset","availableTypeFilters","onChangeNamespace","settingsLoaded","allNamespacesOption","visibleNamespaceOptions","defaultNS","storedStacksSettings","getDataTableSettings","setDefaults","storedOrder","getDataTableOrder","textFilter","getDataTableTextFilters","onTextFilterChange","storedFilters","getDataTableFilters","storedSettings","KubernetesConfigurationHelper","isSystemConfig","IsRegistrySecret","isExternalConfiguration","canManageAccess","isDefaultNamespace","disableRemove","namespaceStatusColor","KubernetesVolumesDatatableController","onInit","KubernetesVolumeHelper","isExternalVolume","HelmTemplatesListController","HelmService","selectedCategory","updateCategories","onCategoryChange","annotationCategories","charts","availableCategories","cat","selectAction","HelmTemplatesController","KubernetesResourcePoolService","installHelmchart","getHelmValues","selectHelmChart","getHelmRepoURLs","getLatestCharts","getResourcePools","clearHelmChart","onSelectHelmChart","contentvalues","originalvalues","Repo","Chart","Values","install","loadingValues","scrollTo","showCustomValues","reposLoading","GlobalRepository","UserRepositories","getHelmRepositories","globalRepository","userHelmReposUrls","uniqueHelmRepos","repos","helmRepos","chartsLoading","promiseList","chartPromises","latestCharts","tp","resourcePoolsLoading","nonSystemNamespaces","resourcePool","resourcePools","chartName","isDockerConfig","onChangeValidation","isCreation","KubernetesConfigurationDataController","editorUpdateAsync","onFileLoad","onFileLoadAsync","showSimpleMode","showAdvancedMode","KubernetesSecretTypeOptions","duplicateKeys","KubernetesFormValidationHelper","getDuplicates","invalidKeys","getInvalidKeys","addEntry","KubernetesConfigurationFormValuesEntry","newDataIndex","DOCKERCFG","addMissingKeys","DOCKERCONFIGJSON","BASICAUTH","SSHAUTH","BOOTSTRAPTOKEN","isRequiredKey","removeEntry","DataYaml","byteLength","encoding","chardet","Buffer","decoder","TextDecoder","IsBinary","isBinary","stringValue","decode","Base64","existingEntryIndex","isEntryRequired","SERVICEACCOUNTTOKEN","addEntryFromFile","temporaryFileReader","readAsArrayBuffer","IsSimple","parseYaml","parseData","cpuReservation","cpuUsage","memoryUsage","displayUsage","KubernetesResourceReservationController","usageValues","cpuReservationPercent","memoryReservationPercent","cpuUsagePercent","memoryUsagePercent","KubernetesApplicationConverter","Metadata","StackId","KubernetesPortainerApplicationStackIdLabel","KubernetesPortainerApplicationStackNameLabel","ApplicationKind","KubernetesPortainerApplicationKindLabel","KubernetesPortainerApplicationOwnerLabel","KubernetesPortainerApplicationNameLabel","KubernetesPortainerApplicationNote","imagePullSecrets","Pods","associatePodsAndApplication","Cpu","parseCPU","Requests","serviceType","ServiceType","ClusterIp","ExternalIp","KubernetesServiceTypes","LOAD_BALANCER","portsRefs","pList","pRefs","KubernetesApplicationPort","_apiPortsToPublishedPorts","KubernetesIngressHelper","findSBoundServiceIngressesRules","vcTemplates","inexistingPVC","matchingVolumeMount","KubernetesApplicationPersistedFolder","HostPath","ConfigurationVolumes","configurationName","configurationVolume","KubernetesApplicationConfigurationVolume","fileMountPath","rootMountPath","configurationKey","KubernetesApplication","applicationCommon","RunningPodsCount","TotalPodsCount","HeadlessServiceName","persistentVolumeClaims","KubernetesApplicationFormValues","generateServicesFormValuesFromServices","generateSelectorFromService","ImageModel","ReplicaCount","generateEnvVariablesFromEnv","generatePersistedFoldersFormValuesFromPersistedFolders","generateConfigurationFormValuesFromEnvAndVolumes","ConfigMaps","generateAutoScalerFormValueFromHorizontalPodAutoScaler","generatePublishedPortsFormValuesFromPublishedPorts","PublishingType","generatePlacementsFormValuesFromAffinity","Affinity","KubernetesCommonHelper","ownerToLabel","claims","KubernetesPersistentVolumeClaimConverter","applicationFormValuesToVolumeClaims","rwx","hasRWX","headlessService","KubernetesDeploymentConverter","applicationFormValuesToDeployment","KubernetesStatefulSetConverter","applicationFormValuesToStatefulSet","KubernetesDaemonSetConverter","applicationFormValuesToDaemonSet","KubernetesPodConverter","applicationFormValuesToPod","KubernetesServiceConverter","applicationFormValuesToHeadlessService","applicationFormValuesToService","applicationFormValuesToServices","KubernetesConfigMapConverter","KubernetesPortainerAccessConfigMap","KubernetesConfigMapCreatePayload","_unset","createAccessPayload","KubernetesConfigMap","ConfigurationOwner","KubernetesPortainerConfigurationOwnerLabel","binaryData","configurationOwner","omission","KubernetesConfigMapUpdatePayload","KubernetesConfiguration","SecretType","ServiceAccountName","volumeClaims","KubernetesDaemonSet","bytesValue","generateEnvFromEnvVariables","generateVolumesFromPersistentVolumClaims","generateEnvOrVolumesFromConfigurations","generateAffinityFromPlacements","KubernetesDaemonSetCreatePayload","assignOrDeleteIfEmpty","VolumeMounts","oldDaemonSet","newDaemonSet","JsonPatch","KubernetesDeployment","KubernetesDeploymentCreatePayload","oldDeployment","newDeployment","KubernetesEvent","Involved","KubernetesNamespaceConverter","KubernetesNamespace","ResourcePoolName","KubernetesPortainerResourcePoolNameLabel","ResourcePoolOwner","KubernetesPortainerResourcePoolOwnerLabel","isDefaultSystemNamespace","systemLabel","KubernetesPortainerNamespaceSystemLabel","KubernetesNamespaceCreatePayload","resourcePoolOwner","storageClassToPVCAccessModes","RWO","RWX","KubernetesPersistentVolumeClaim","existantPVC","KubernetesPersistentVolumClaimCreatePayload","oldPVC","newPVC","KubernetesResourcePool","KubernetesResourceQuotaConverter","resourcePoolFormValuesToResourceQuota","ingMap","IngressClasses","Selected","KubernetesIngressConverter","resourcePoolIngressClassFormValueToIngress","KubernetesResourceQuota","hard","KubernetesPortainerResourceQuotaCPULimit","KubernetesPortainerResourceQuotaMemoryLimit","MemoryLimitUsed","CpuLimitUsed","KubernetesResourceQuotaCreatePayload","KubernetesResourceQuotaHelper","generateResourceQuotaName","assignOrDeleteIfEmptyOrZero","KubernetesPortainerResourceQuotaCPURequest","KubernetesPortainerResourceQuotaMemoryRequest","oldQuota","newQuota","KubernetesResourcePoolFormValues","KubernetesResourceQuotaDefaults","HasQuota","StorageRequests","KubernetesSecretCreatePayload","stringData","KubernetesPortainerConfigurationDataAnnotation","KubernetesSecretUpdatePayload","KubernetesApplicationSecret","CUSTOM","customType","KubernetesService","publishedPort","IsNew","NeedsDeletion","KubernetesServicePort","ContainerPort","LoadBalancerPort","NODE_PORT","LoadBalancerNodePort","_publishedPortToServicePort","KubernetesServiceHelper","generateHeadlessServiceName","KubernetesServiceCreatePayload","KubernetesServiceHeadlessClusterIP","KubernetesStatefulSet","KubernetesStatefulSetCreatePayload","VolumeClaims","oldSFS","newSFS","KubernetesStorageClassConverter","KubernetesStorageClass","KubernetesStorageClassCreatePayload","newStorageClass","claim","pool","KubernetesVolume","kubeCustomTemplatesView","KubeCustomTemplatesViewController","CustomTemplateService","currentUser","getTemplates","selectTemplate","customTemplates","KubernetesEndpoint","leaderAnnotation","KubernetesEndpointAnnotationLeader","parsedJson","holderIdentity","HolderIdentity","Subsets","KubernetesEndpointSubset","Ips","_KubernetesEndpoint","_KubernetesEndpointSubset","KubernetesEndpointService","KubernetesEndpoints","getAllAsync","KubernetesEndpointConverter","apiToEndpoint","HelmFactory","helmUrl","templatesUrl","userHelmUrl","addHelmRepository","output","uninstall","release","listReleases","PodKubernetesInstanceLabel","PodManagedByLabel","cv","associateContainerPersistedFoldersAndConfigurations","KubernetesPortMapping","KubernetesPortMappingPort","envVariables","KubernetesApplicationEnvPayload","KubernetesApplicationEnvironmentVariableFormValue","nameIndex","configurationKind","filterCondition","finalRes","cfg","cfgEnv","cfgVol","keyEnv","keyVol","Sum","EnvCount","VolCount","_max","overrideThreshold","KubernetesApplicationConfigurationFormValue","fvKey","KubernetesApplicationConfigurationFormValueOverridenKey","finalEnv","finalVolumes","finalMounts","isBasic","envKeys","KubernetesApplicationEnvConfigMapPayload","KubernetesApplicationEnvSecretPayload","volKeys","groupedVolKeys","volumeName","generatedApplicationConfigVolumeName","itemsMap","KubernetesApplicationVolumeEntryPayload","KubernetesApplicationVolumeMountPayload","KubernetesApplicationVolumeConfigMapPayload","KubernetesApplicationVolumeSecretPayload","svcport","ingPath","newPaths","Raw","publishedPorts","generatePort","KubernetesApplicationPublishedPortFormValue","IngressRoute","IngressHost","IngressHosts","autoScaler","replicasCount","KubernetesApplicationAutoScalerFormValue","MinReplicas","MaxReplicas","TargetCPUUtilization","_startsWith","KubernetesApplicationPersistedFolderFormValue","KubernetesApplicationVolumePersistentPayload","podAffinity","Placements","PlacementType","exp","KubernetesApplicationPlacementFormValue","preferredDuringSchedulingIgnoredDuringExecution","KubernetesPodNodeAffinityPayload","expressions","KubernetesNodeSelectorRequirementPayload","KubernetesNodeSelectorTermPayload","KubernetesPreferredSchedulingTermPayload","KubernetesPodAffinity","helmManagedApps","namespacedHelmReleases","instanceLabel","helmAppsList","helmInstance","helmApp","HelmApplication","appsNotReady","replaceAll","helmApplications","getHelmApplications","helmAppNames","hma","nonHelmApplications","_set","_forIn","accesses","KubernetesPortainerConfigMapAccessKey","RoleId","envFind","volumeFind","getUsingApplications","setConfigurationUsed","configurationsUsed","configMappedByName","configMappedByVolume","customTags","oldEntry","serviceNodePorts","allOtherNodePorts","sNodePort","snp","KUBERNETES_DEFAULT_NAMESPACE","KUBERNETES_DEFAULT_SYSTEM_NAMESPACES","KubernetesPortainerResourceQuotaPrefix","bytes","base10","dm","safeFilesizeParser","KubernetesResourceReservation","_endsWith","mem","KubernetesServiceHeadlessPrefix","rawApp","_isMatch","KubernetesStack","describe","stacksFromApplications","KubernetesStackHelper","expect","toHaveLength","matchingNames","KubernetesHorizontalPodAutoScalerConverter","KubernetesHorizontalPodAutoScaler","TargetEntity","KubernetesHorizontalPodAutoScalerCreatePayload","oldScaler","newScaler","KubernetesHorizontalPodAutoScalerHelper","sList","_KubernetesHorizontalPodAutoScaler","_KubernetesHorizontalPodAutoScalerCreatePayload","getYaml","rawResponse","KubernetesHorizontalPodAutoScalerService","KubernetesHorizontalPodAutoScalers","getAsync","patchAsync","deleteAsync","KubernetesCommonParams","raw","apiToModel","horizontalPodAutoScaler","oldHorizontalPodAutoScaler","newHorizontalPodAutoScaler","patchPayload","KubernetesIngressClassAnnotation","KubernetesNginxRewriteTargetAnnotations","KubernetesTraefikRewriteTargetAnnotations","KubernetesNginxUseregexAnnotations","KubernetesIngressClassTypes","NGINX","TRAEFIK","PortainerIngressClassTypes","http","ingRule","KubernetesIngressRule","backend","KubernetesIngress","ingressClassName","_findIndex","originalIngress","originalIngresses","matchedIngress","IngressClass","_fromPairs","ics","fv","KubernetesResourcePoolIngressClassFormValue","WasSelected","hfv","KubernetesResourcePoolIngressClassHostFormValue","PreviousHost","_toPairs","KubernetesResourcePoolIngressClassAnnotationFormValue","AdvancedConfig","KubernetesIngressCreatePayload","hostsWithRules","updatedHost","KubernetesIngressRuleCreatePayload","KubernetesIngressRulePathCreatePayload","keptHosts","hostsWithoutRules","emptyRules","oldData","newData","KubernetesIngressClass","KubernetesCommonMetadataPayload","pathType","KubernetesIngressService","KubernetesIngresses","getOne","getAll","newIngress","_KubernetesApplicationConfigurationFormValueOverridenKey","_KubernetesApplicationConfigurationFormValue","_KubernetesApplicationEnvironmentVariableFormValue","_KubernetesApplicationPersistedFolderFormValue","_KubernetesApplicationAutoScalerFormValue","KubernetesFormValidationReferences","hasRefs","KubernetesApplicationQuotaDefaults","_KubernetesApplication","_KubernetesApplicationPersistedFolder","_KubernetesApplicationConfigurationVolume","_KubernetesApplicationPort","KubernetesDeploymentTypes","GIT","CONTENT","APPLICATION_FORM","_KubernetesApplicationVolumeMount","_KubernetesApplicationVolumePersistentPayload","_KubernetesApplicationVolumeConfigMapPayload","_KubernetesApplicationVolumeSecretPayload","_KubernetesApplicationVolumeEntryPayload","_KubernetesApplicationEnvPayload","_KubernetesApplicationEnvConfigMapPayload","_KubernetesApplicationEnvSecretPayload","_KubernetesCommonMetadataPayload","KubernetesPortainerConfigMapNamespace","KubernetesPortainerConfigMapConfigName","_KubernetesConfigMap","_KubernetesConfigMapCreatePayload","_KubernetesConfigMapUpdatePayload","_KubernetesConfigurationFormValues","OPAQUE","KubernetesConfigurationFormValues","_KubernetesConfigurationFormValuesEntry","_KubernetesConfiguration","_KubernetesDaemonSet","VoluemMounts","_KubernetesDaemonSetCreatePayload","updateStrategy","rollingUpdate","maxUnavailable","KubernetesDeployManifestTypes","KUBERNETES","KubernetesDeployBuildMethods","WEB_EDITOR","CUSTOM_TEMPLATE","HELM","KubernetesDeployRequestMethods","REPOSITORY","STRING","RepositoryMechanismTypes","WEBHOOK","INTERVAL","_KubernetesDeployment","_KubernetesDeploymentCreatePayload","maxSurge","_KubernetesEvent","KubernetesSystem_DefaultDeploymentUniqueLabelKey","KubernetesSystem_RevisionAnnotation","KubernetesSystem_RevisionHistoryAnnotation","KubernetesSystem_DesiredReplicasAnnotation","KubernetesSystem_MaxReplicasAnnotation","KubernetesSystem_AnnotationsToSkip","_KubernetesNamespaceCreatePayload","KubernetesNodesLimits","nodesLimits","MaxCPU","MaxMemory","convertCPU","calculateMaxCPUMemory","nodesLimitsArray","_maxBy","overflowForReplica","instances","overflowForGlobal","overflow","excludesPods","_KubernetesPortMappingPort","_KubernetesPortMapping","Expanded","RewriteTarget","KubernetesResourcePoolNginxRewriteAnnotationFormValue","KubernetesResourcePoolNginxUseregexAnnotationFormValue","KubernetesResourcePoolTraefikRewriteAnnotationFormValue","Quota","Ingresses","_KubernetesResourceReservation","KubernetesResourceTypes","NAMESPACE","RESOURCEQUOTA","DEPLOYMENT","STATEFULSET","DAEMONSET","PERSISTENT_VOLUME_CLAIM","INGRESS","HORIZONTAL_POD_AUTOSCALER","KubernetesResourceActions","CREATE","UPDATE","DELETE","_KubernetesApplicationSecret","_KubernetesSecretCreatePayload","_KubernetesSecretUpdatePayload","CLUSTER_IP","_KubernetesService","nodePortError","servicePortError","_KubernetesIngressService","_KubernetesServicePort","_KubernetesServiceCreatePayload","_KubernetesStack","_KubernetesStatefulSet","_KubernetesStatefulSetCreatePayload","partition","_KubernetesStorageClassAccessPolicies","KubernetesStorageClassAccessPolicies","_KubernetesStorageClass","_KubernetesStorageClassCreatePayload","_KubernetesPersistentVolumeClaim","_KubernetesVolume","_KubernetesPersistentVolumClaimCreatePayload","KubernetesNodeConverter","KubernetesNode","master","_has","KubernetesNodeConditionTypes","READY","memoryPressure","MEMORY_PRESSURE","PIDPressure","PID_PRESSURE","diskPressure","DISK_PRESSURE","networkUnavailable","NETWORK_UNAVAILABLE","Conditions","MemoryPressure","DiskPressure","NetworkUnavailable","KubernetesNodeAvailabilities","ACTIVE","KubernetesPortainerNodeDrainLabel","DRAIN","PAUSE","internalIP","Taints","KubernetesNodeTaint","Effect","KubernetesNodeDetails","apiToNode","architecture","operatingSystem","osImage","KubernetesNodeFormValues","KubernetesNodeTaintFormValues","KubernetesNodeLabelFormValues","filteredTaints","filteredLabels","KubernetesNodeCreatePayload","KubernetesNodeTaintPayload","oldNode","newNode","_KubernetesNodeFormValues","_KubernetesNodeTaintFormValues","IsChanged","_KubernetesNodeLabelFormValues","IsUsed","KubernetesNodeHelper","isSystemLabel","nodeSelectors","_KubernetesNode","Api","_KubernetesNodeDetails","_KubernetesNodeTaint","KubernetesNodeTaintEffects","NOSCHEDULE","PREFERNOSCHEDULE","NOEXECUTE","_KubernetesNodeCreatePayload","_KubernetesNodeTaintPayload","KubernetesNodeService","KubernetesNodes","apiToNodeDetails","errData","nodeFormValues","formValuesToNode","serviceSelector","KubernetesPod","ServiceSelector","Images","computeStatus","Restarts","_sumBy","KubernetesPodContainer","KubernetesPodContainerTypes","APP","PodName","PodIP","ImagePullPolicy","INIT","computeContainers","computeAffinity","Tolerations","KubernetesPodToleration","Operator","TolerationSeconds","tolerationSeconds","KubernetesPodEviction","oldPod","newPod","createPayloadFactory","_KubernetesPod","_KubernetesPodToleration","_KubernetesPodContainer","_KubernetesPodEviction","weight","KubernetesPodService","KubernetesPods","logsAsync","evictionAsync","podEvictionPayload","evictionPayload","evict","eviction","kubernetesRegistryAccessView","KubernetesRegistryAccessController","selectedResourcePools","savedResourcePools","onChangeResourcePools","updateNamespaces","removeNamespaces","nsToUpdate","getJSON","KubernetesNodesLimitsFactory","KubernetesPortainerNamespacesFactory","toggleSystem","getServiceAccounts","namespaceId","KubernetesApplicationService","KubernetesDeploymentService","KubernetesDaemonSetService","KubernetesStatefulSetService","KubernetesServiceService","KubernetesSecretService","KubernetesPersistentVolumeClaimService","KubernetesNamespaceService","patchPartialAsync","_getApplicationApiService","apiService","_generateIngressPatchPromises","autoScalers","rootItem","converterFunc","apiDeploymentToApplication","apiDaemonSetToApplication","apiStatefulSetToapplication","apiPodToApplication","boundService","findApplicationBoundService","boundServices","findApplicationBoundServices","associateContainersAndApplication","boundScaler","findApplicationBoundScaler","scaler","convertToApplication","servicesFound","deploymentApplications","daemonSetApplications","statefulSetApplications","boundPods","unboundPods","nakedPodsApplications","hideStacks","applicationFormValuesToApplication","claimPromises","applicationFormValuesToModel","originalServicePorts","oldApp","oldHeadlessService","oldClaims","newApp","newHeadlessService","newClaims","oldApiService","newApiService","newClaim","oldClaim","deleteAll","deleteSingle","newKind","newAutoScaler","oldKind","oldAutoScaler","oldAppPayload","newAppPayload","oldValues","applicationFormValuesToDeleteIngresses","KubernetesConfigMapService","KubernetesConfigMaps","getAccess","apiToPortainerAccessConfigMap","createAccess","updateAccessPayload","rawPromise","yamlPromise","defaultConfigMap","apiToConfigMap","updatePayload","KubernetesConfigurationService","KubernetesConfigurationConverter","secretToConfiguration","configMapToConfiguration","secretsConfigurations","configMapsConfigurations","configurationFormValuesToConfigMap","KubernetesSecretConverter","configurationFormValuesToSecret","KubernetesControllerRevisionService","KubernetesControllerRevisions","KubernetesDaemonSets","KubernetesDeployments","KubernetesEventService","KubernetesEvents","KubernetesEventConverter","apiToEvent","KubernetesHealth","pingAsync","KubernetesNamespaces","getJSONAsync","updateFinalizeAsync","apiToNamespace","ar","allNamespaces","$allSettled","fulfilled","KubernetesNodesLimitsService","KubernetesPersistentVolumeClaims","apiToPersistentVolumeClaim","KubernetesResourceQuotaService","KubernetesPortainerNamespaces","KubernetesResourcePoolConverter","formValuesToResourcePool","ingressPromises","registriesPromises","oldRegistries","newRegistries","del","createPromises","delPromises","patchPromises","old","keptRegistries","_intersectionBy","removedRegistries","newRegistriesPromises","removedRegistriesPromises","_pull","getQuota","apiToResourcePool","quotaAttempt","KubernetesResourceQuotas","apiToResourceQuota","KubernetesSecrets","apiToSecret","KubernetesServices","deleteSingleAsync","deleteAllAsync","formValuesServices","KubernetesStackService","KubernetesStatefulSets","headlessServiceName","oldStatefulSet","newStatefulSet","KubernetesStorageService","KubernetesStorage","apiToStorageClass","KubernetesVolumeService","KubernetesVolumeConverter","pvcToVolume","pools","storeNamespaces","KubernetesApplicationsController","getApplications","getApplicationsAsync","removeStacksAction","removeStacksActionAsync","selectTab","storeActiveTab","removeKubernetesStacksByName","storeNamespaceFilter","configuredApplications","getApplicationConfigurations","getNestedApplications","portMappingsFromApplications","flag","getActiveTab","currentName","$current","savedNamespace","getNamespaceFilter","preferredNamespace","UpdateIngressPrompt","hasOneIngress","hasOnePort","rulePlural","noMatchSentence","inputLabel","noMatch","KubernetesCreateApplicationController","ApplicationDeploymentTypes","ApplicationDataAccessPolicies","ApplicationTypes","ServiceTypes","appType","updateWebEditorInProgress","sliders","namespaceLimits","resourcePoolHasQuota","availableSizeUnits","alreadyExists","environmentVariables","configMapPaths","secretPaths","existingVolumes","stackNameError","editChanges","updateApplicationAsync","deployApplicationAsync","checkIngressesToUpdate","confirmUpdateApplicationAsync","onDataAccessPolicyChange","onServicesChange","onEnvironmentVariableChange","onConfigMapsChange","onSecretsChange","onChangePersistedFolder","onChangeResourceReservation","onChangeReplicaCount","onAutoScaleChange","onChangePlacements","updateApplicationType","getAppType","showDataAccessPolicySection","refreshReactComponent","onChangeNamespaceName","canSupportSharedAccess","isUpdateApplicationViaWebEditorButtonDisabled","isTemporaryRefresh","onChangeStackName","onChangeAppName","validatePersistedFolders","oldStackFileContent","resetDeploymentType","updateKubeStack","imageValidityIsValid","registryDetails","clearConfigMaps","clearSecrets","enviromnentVariables","newEnvVars","newEnvVar","resetPersistedFolders","onChangePersistedFolderPath","onChangeExistingVolumeSelection","ingressNamesUsed","uniqueIngressNamesUsed","ingressNamesLoaded","ingressNameUsed","refreshIngresses","storageClassAvailable","hasFolders","hasRWOOnly","isIsolated","isEditAndStatefulSet","getNonScalableStorage","storageOptions","enforceReplicaCountMinimum","nodeLimitsOverflow","effectiveInstances","nodeNumber","hasPortErrors","portError","publishViaIngressEnabled","isEditAndNoChangesMade","savedFormValues","isNewVolumeButtonDisabled","isEditAndExistingPersistedFolder","isExistingVolumeButtonDisabled","hasAvailableVolumes","isNonScalable","scalable","global","replica","replicated","isDeployUpdateButtonDisabled","inProgress","invalid","hasNoChanges","nonScalable","stackNameInvalid","updateSliders","namespaceWithQuota","minCpu","minMemory","_floor","updateNamespaceLimits","refreshStacks","refreshConfigurations","refreshApplications","applicationNames","refreshVolumes","filteredVolumes","isUnused","isRWX","ingressHostnames","refreshNamespaceData","resetFormValues","ingressesToUpdate","servicePortsToUpdate","confirmUpdateAppIngress","fullIngresses","updatedService","oldServiceIndex","numberOfPortsInOldService","updatedOldPorts","ingressForService","oldServicePort","ingressPathIndex","ingressUpdateIndex","ingressToUpdate","deployApplication","generateNodeLabelsFromNodes","applicationToFormValues","parseImageConfiguration","OriginalPersistedFolders","allSettledServices","settledService","fulfilledService","KubernetesHelmApplicationController","dataLoading","releases","app_version","getHelmApplication","KubernetesApplicationLogsController","getApplicationLogsAsync","updateAutoRefresh","applicationLogs","KubernetesApplicationStatsController","CPUUsage","getStats","findCharts","nodeCPU","getMetrics","podRaw","KubernetesClusterController","getNodesAsync","getEndpointsAsync","hasResourceUsageAccess","systemEndpoints","ep","kubernetesEndpoint","ips","getEndpoints","CPULimit","nodeNames","resourceReservation","computeResourceReservation","getResourceUsage","clusterResourceUsage","resourceUsage","KubernetesNodeController","getEvents","getEventsAsync","updateNodeAsync","drainNodeAsync","getNodeUsageAsync","onChangeTaintKey","duplicateTaintKeys","hasDuplicateTaintKeys","onChangeTaint","addTaint","removeTaint","restoreTaint","computeTaintsWarning","onChangeLabelKey","duplicateLabelKeys","hasDuplicateLabelKeys","onChangeLabel","restoreLabel","computeLabelsWarning","computeCordonWarning","availabilities","computeDrainWarning","drainNode","isNoChangesMade","isDrainError","isDrainOperation","isContainPortainer","isFormValid","nodeToFormValues","taintsWarning","labelsWarning","cordonWarning","drainWarning","confirmUpdateNode","getNodeUsage","hasEventWarnings","eventWarningCount","eventsLoading","KubernetesEventHelper","warningCount","availableEffects","computeUsedLabels","reorderLabels","KubernetesNodeStatsController","KubernetesCreateConfigMapController","createConfigurationAsync","getConfigurationsAsync","onResourcePoolSelectionChangeAsync","filteredConfigurations","alreadyExist","availableServiceAccounts","onResourcePoolSelectionChange","addRequiredKeysToForm","isConfigurationFormValid","isDataValid","createConfiguration","getConfigurations","KubernetesConfigMapController","getConfigurationAsync","updateConfiguration","updateConfigurationAsync","copyConfigurationValue","configurationLoading","oldDataYaml","getConfiguration","tagUsedDataKeys","configName","usedDataKeys","KubernetesConfigurationsController","refreshCallbackAsync","configurationsLoading","setConfigurationsUsed","KubernetesCreateSecretController","onSecretTypeChange","warningMessage","secretWarningMessage","KubernetesSecretController","secretType","secretTypeName","uniqueCheck","isSecretDataValid","KubernetesDeployController","deployOptions","buildMethod","DeployType","BuildMethod","tabLogsDisabled","templateLoadFailed","isEditorReadOnly","selectedHelmChart","ManifestDeployTypes","BuildMethods","onChangeTemplateId","deployAsync","getNamespacesAsync","onChangeDeployType","onChangeTemplateVariables","rendered","templateContent","EditorContent","buildLabel","COMPOSE","formatLabel","repositoryAutomaticUpdates","repositoryMechanism","automaticUpdatesLabel","disableDeploy","isWebEditorInvalid","isURLFormInvalid","ManifestURL","isCustomTemplateInvalid","isStackNameInvalid","isNamespaceInvalid","customTemplateFile","displayErrorLog","errorLog","stripAnsi","composeFormat","deployNamespace","namespace_toggle","ComposeFormat","ManifestFile","kubernetesDeploy","deploy","KubernetesResourcePoolAccessController","AccessService","authorizeAccessAsync","unauthorizeAccessAsync","onUsersAndTeamsChange","unauthorizeAccess","initAccessConfigMap","multiselectOutput","roles","endpointAccesses","KubernetesConfigMapHelper","parseJSONData","authorizedUsersAndTeams","accessConfigMap","poolAccesses","availableUsersAndTeams","newAccesses","modifiyNamespaceAccesses","authorizeAccess","storageClassSwitch","StorageClassSwitchController","KubernetesCreateResourcePoolController","IngressClassTypes","LBQuotaFeatureId","onToggleStorageQuota","onToggleLoadBalancerQuota","onToggleResourceQuota","onChangeIngressControllerAvailability","onRegistriesChange","handleMemoryLimitChange","handleCpuLimitChange","sClass","UseLoadBalancersQuota","isCreateButtonDisabled","isQuotaValid","isAlreadyExist","hasPrefixKube","checkDefaults","createResourcePool","allIngresses","canUseIngress","ingressClassesToFormValues","itemCanExpand","hasExpandableItems","KubernetesResourcePoolController","ResourceQuotaDefaults","StorageQuotaFeatureId","updateResourcePoolAsync","onToggleLoadBalancersQuota","isUpdateButtonDisabled","hasResourceQuotaBeenReduced","updateResourcePool","ingressesToDelete","registriesToDelete","WasChecked","warnings","quotaWarning","ingressWarning","registriesWarning","markUnmarkAsSystem","confirmMarkUnmarkAsSystem","ingressesLoading","hasWriteAuthorization","selectedRegistries","namespaceResourceUsage","quotaToResourcePoolFormValues","isEditable","KubernetesResourcePoolsController","getResourcePoolsAsync","finalizers","isTerminatingNS","limitedFeaturePodSecurityPolicy","KubernetesStackLogsController","generateLogsPromise","generateAppPromise","getStackLogsAsync","Logs","Application","filteredApplications","logsPromises","appColor","stackLogs","getApplicationResources","getCreatedApplicationResources","persistentVolumeClaimResources","appResourceType","oldAppResourceType","createdApplicationResourceSummary","headlessServiceUpdateResourceSummary","getServiceUpdateResourceSummary","claimSummaries","serviceUpdateResourceSummary","updateSummary","hpaUpdateSummary","serviceUpdate","emptyService","serviceCreate","serviceDelete","findCreateResources","newResources","oldResources","_differenceBy","findDeleteResources","findUpdateResources","_intersectionWith","newResource","oldResource","patches","isEqual","doGetResourcesSummary","actionFilter","getResourcesSummary","newNamespace","oldNamespace","KubernetesSummaryController","toggleSummary","generateResourceSummaryList","getArticle","article","expandedTemplate","storeKubernetesSummaryToggle","getConfigurationResources","getNamespaceResources","toggleValue","getKubernetesSummaryToggle","KubernetesVolumeController","getVolume","getVolumeAsync","updateVolumeAsync","onChangeSize","volumeSize","volumeSizeUnit","oldVolumeSize","sizeIsValid","updateVolume","increaseSize","volumeSharedAccessPolicies","volumeSharedAccessPolicyTooltips","policies","policy","matchingPolicy","KubernetesVolumesController","getVolumesAsync","storages","formatBytes","computeSize","buildStorages","getElementsByTagName","parentNode","insertBefore","BASENAME","directive","restrict","attrs","limitedFeatureDir","limitedFeatureAttrs","attr","apiServicesModule","environmentStore","setEnvironmentId","DEFAULT_TITLE","currentEndpoint","pingInterval","subscribe","setCurrentEndpoint","_state$currentEndpoin","GroupAssociationTable","createHelmRepository","_createHelmRepository","helmRepository","_getHelmRepositories","deleteHelmRepository","_deleteHelmRepository","deleteHelmRepositories","_deleteHelmRepositories","useHelmRepositories","helmRepositoryId","HelmRepositoryDatatableActions","deleteHelmRepoMutation","_onDeleteClick","onDeleteClick","HelmDatatableDescription","fileUploadField","switchField","VariablesFieldAngular","VariablesFieldController","checkValidity","customTemplatesModule","gitFormModule","FeatureFlag","useFeatureFlag","Features","FDOProfilesDatatableActions","isFDOEnabled","PlusCircle","_onDuplicateProfileClick","onDuplicateProfileClick","_onDeleteProfileClick","onDeleteProfileClick","newProfile","FDOProfilesDatatable","_useFDOProfiles","useFDOProfiles","SettingsFDOForm","fdoConfiguration","initialFDOEnabled","setIsFDOEnabled","_settings$fdoConfigur","ownerURL","ownerUsername","ownerPassword","edgeComputeFeaturesEnabled","EnableEdgeComputeFeatures","Laptop","_onChangedEnabled","onChangedEnabled","backgroundColor","alpha","padStart","padding","sliderProperties","strength","PasswordLengthSlider","sliderProps","getSliderProps","sliderValue","sliderBadge","getBadgeIcon","SaveAuthSettingsButton","isValidUrl","additionalCheck","edgeAgentCheckinInterval","enableTelemetry","loginBannerEnabled","loginBanner","logoEnabled","snapshotInterval","useToggledValue","toggleFieldName","_useField4","setIsEnabled","oldValue","setOldValue","_handleIsEnabledChange","DemoAlert","LogoFieldset","isDemoQuery","_useToggledValue2","TextArea","ScreenBannerFieldset","DEFAULT_URL","TemplatesUrlSection","buildTemplateDocUrl","EnableTelemetryField","ApplicationSettingsPanel","EdgeAgentCheckinInterval","CustomLoginBanner","LogoURL","TemplatesURL","SettingsIcon","HelmSection","KubeConfigSection","KubeNoteMinimumCharacters","DeploymentOptionsSection","globalDeploymentOptions","limitedFeature","_handleToggleAddWithForm","handleToggleAddWithForm","helmRepositoryUrl","kubeconfigExpiry","requireNoteOnApplications","minApplicationNoteLength","KubeSettingsPanel","HelmRepositoryURL","KubeconfigExpiry","kubeIcon","variantClassNames","beLinkContainerClassName","contentClassName","BEOverlay","_ref$variant","variant","useUpdateSSLConfigMutation","updateSSLConfig","_updateSSLConfig","clientCertFile","clientCert","t2","t3","HelmCertPanel","AddLabelForm","formKey","clearForm","HiddenContainersTable","HiddenContainersPanel","BlackListedLabels","withHideOnExtension","getSSLSettings","_getSSLSettings","SSLSettingsPanelWrapper","reloadingPage","setReloadingPage","forceHTTPS","httpEnabled","authStyleOptions","AutoDetect","InParams","InHeader","settingsModule","FDO","FlaskConical","setCertFile","_handleFileUpload","readFileContent","fileReader","base64","readAsDataURL","openAMTConfiguration","mpsServer","mpsUser","mpsPassword","domainName","certFileContent","certFileName","certFilePassword","handleFileUpload","onSaveSettings","RequiredPasswordLength","accessControlModule","EdgeKeyDisplay","environmentsModule","server","KVM","authToken","mouseDebounceTime","canvasHeight","canvasWidth","getRepositoryTags","_getRepositoryTags","useParams","_useParams2","useRepositoryTags","num","defaultRegistryMutation","hideDefaultRegistry","isLimited","handleShowOrHide","Book","_updateUser","ApplicationSettingsForm","updateSettingsMutation","updateUser","accountModule","_settingsQuery$data","passwordValid","forceChangePassword","minPasswordLength","showReactQueryDevtools","SHOW_REACT_QUERY_DEV_TOOLS","ReactQueryDevtools","_helmReposQuery$data3","_helmReposQuery$data4","helmReposQuery","isAdminUser","_helmReposQuery$data","_helmReposQuery$data$","_helmReposQuery$data2","helmrepository","_document$getElementB","scrollIntoView","usePaginationLimitState","paginationKey","paginationKeyBuilder","ConnectionType","EnvironmentStatusBadgeItem","EdgeIndicator","_ref$showLastCheckInD","showLastCheckInDate","heartbeat","Heartbeat","heartbeatup","heartbeatdown","Activity","EnvironmentStatusBadge","EnvironmentIcon","dockerEdge","kubeEdge","environmentTypeIcon","StatsItem","EnvironmentStatsDocker","StackCount","ServiceCount","ContainerStats","ContainerCount","RunningContainerCount","stopped","StoppedContainerCount","HealthyContainerCount","UnhealthyContainerCount","VolumeCount","ImageCount","TotalCPU","TotalMemory","NodeCount","actualTotal","EnvironmentStatsKubernetes","EnvironmentStats","_environment$Snapshot","getComponent","DockerEngineVersion","KubernetesEngineVersion","KubernetesVersion","EnvironmentTypeTag","Zap","LinkButton","EnvironmentBrowseButtons","onClickBrowse","onClickDisconnect","checkEdgeAsync","browseStatus","dashboardRoute","Wifi","WifiOff","BrowseStatusTag","Snapshot","Connected","Disconnected","EditButtons","configRoute","getDockerConfigRoute","getConfigRoute","buttonsClasses","ButtonsGrid","redirectTo","Edit2","AgentDetails","EdgeAgentDetails","associated","EnvironmentItem","groupName","snapshotTime","getSnapshotTime","useEnvironmentTagNames","downloadKubeconfigFile","_downloadKubeconfigFile","environmentIds","useListSelection","compareFn","setSelectedItems","currentItem","KubeconfigPrompt","envQueryParams","_usePaginationLimitSt2","setPageLimit","expiryQuery","expiry","prefix","expiryMessage","_useListSelection2","toggleSelection","_useEnvironmentList","isAllPageSelected","checkboxList","checkbox","_confirmKubeconfigSelection","confirmKubeconfigSelection","KubeconfigButton","setIsOpen","kubeEnvs","NoEnvironmentsInfoPanel","includeEdgeStacks","activeSchedules","supportedAgentVersions","previousVersions","useSupportedAgentVersions","minVersion","getSupportedAgentVersions","_getSupportedAgentVersions","UpdateBadge","supportedAgentVersionsQuery","sortByOptions","SortbySelector","onDescending","sortByDescending","sortByButton","EnvironmentListFilters","_agentVersionsQuery$d","agentVersions","clearFilter","connectionTypes","groupOnChange","groupState","platformTypes","setAgentVersions","setConnectionTypes","setPlatformTypes","sortByState","sortOnDescending","sortOnChange","statusOnChange","statusState","tagOnChange","tagState","agentVersionsQuery","connectionTypeOptions","_platformTypeConnecti","platformTypeConnectionType","API","EdgeAgentStandard","EdgeAgentAsync","connectionTypesDefaultOptions","getConnectionTypeOptions","platformTypeOptions","_connectionTypePlatfo","platformDefaultOptions","connectionTypePlatformType","getPlatformTypeOptions","groupOptions","uniqueGroup","uniqueTag","filterLeft","clearButton","filterRight","_activateDevice","AssociateAMTDialog","activateDeviceMutation","activateDevice","AMTButton","isOpenDialog","setOpenDialog","isOpenAmtEnabledQuery","IsAMTEnabled","edgeEnvironments","EnvironmentList","currentEnvStore","_useHomePageFilter2","searchBarValue","setSearchBarValue","_useHomePageFilter4","_useHomePageFilter6","_useHomePageFilter8","tagFilter","setTagFilter","_useHomePageFilter10","groupFilter","setGroupFilter","_useHomePageFilter12","sortByFilter","setSortByFilter","_useHomePageFilter14","setSortByDescending","_useHomePageFilter16","setSortByButton","_useHomePageFilter18","setStatusState","_useHomePageFilter20","setTagState","_useHomePageFilter22","setGroupState","_useHomePageFilter24","environmentsQueryParams","_typesByPlatform","_typesByConnection","typesByPlatform","typesByConnection","selectedTypesByPlatform","platformType","selectedTypesByConnection","connectionType","getTypes","provisioned","updateInformation","edgeAsync","getEdgeAsyncValue","queryWithSort","filteredStatus","filteredTags","filteredGroups","renderItems","_onClickBrowse","hasEdgeAsync","EdgeLoadingSpinner","useUIState","dismissedInfoPanels","dismissInfoPanel","dismissedInfoHash","dismissMotd","dismissedUpdateVersion","dismissUpdateVersion","_getMotd","MotdPanel","motd","getMotd","uiStateStore","Hash","Style","camelCaseKeys","ContentLayout","confirmEndpointSnapshot","_confirmEndpointSnapshot","getAPITokenValidationSchema","requirePassword","createUserAccessToken","_createUserAccessToken","userid","rawAPIKey","CreateUserAccessTokenInnerForm","showAuthentication","DisplayUserAccessToken","apikey","PortainerUrlField","PortainerTunnelAddrField","EdgeComputeSettings","_settings$Edge","EdgePortainerUrl","TunnelServerAddress","EnforceEdgeID","tunnelValidation","asyncIntervalFieldSettings","DeploymentSyncOptions","settingsMutation","EnabledWaitingRoomSwitch","inputProps","yup","EnableWaitingRoom","AutoEnvCreationSettingsForm","TrustOnFirstConnect","AutomaticEdgeEnvCreation","generateKey","_generateKey","asyncModeOptions","EdgeAgentStandardIcon","EdgeAgentAsyncIcon","edgeKeyMutation","useGenerateKeyMutation","resetKey","setAsyncMode","edgeComputeConfigurationOK","EdgeKeyInfo","tunnelUrl","EdgeAutoCreateScriptViewWrapper","Provisioning","_environment$StatusMe","_environment$StatusMe2","_environment$StatusMe3","_environment$StatusMe4","_environment$StatusMe5","StatusMessage","IsSetStatusMessage","ImportFdoDeviceButton","flagEnabledQuery","isFDOEnabledQuery","EnvironmentsDatatable","_tableState$sortBy3","environmentsWithGroups","GroupName","BackupFormType","DownloadCloud","S3","backupS3Settings","getBackupS3Settings","_getBackupS3Settings","updateBackupS3Settings","_updateBackupS3Settings","downloadBackup","_downloadBackup","blob","exportS3Backup","_exportS3Backup","passwordProtect","SecurityFieldset","switchDataCy","inputDataCy","setPasswordProtect","BackupFileForm","downloadMutate","scheduleAutomaticBackup","cronRule","accessKeyID","secretAccessKey","region","bucketName","s3CompatibleHost","BackupS3Form","exportS3Mutate","updateS3Mutate","useBackupS3Settings","handleExport","BackupSettingsPanel","backupType","setBackupType","fieldKey","EnableOpenAIIntegrationSwitch","OpenAIIntegration","ExperimentalFeaturesSettingsForm","ExperimentalFeatures","experimentalFeatures","handleSuccess","updateLogo","updateSnapshotInterval","updateEnableTelemetry","noDuplicateURLsSchema","urls","defaultInitialValues","HelmRepositoryForm","_ref$isEditing","URLs","CreateHelmRepositoryForm","createHelmRepositoryMutation","allRepositories","_ref$onClick","createLocalDockerEnvironment","_createLocalDockerEnvironment","_ref$socketPath","socketPath","_ref$publicUrl","publicUrl","_ref$meta","prefixPath","createEnvironment","LocalDockerEnvironment","createLocalKubernetesEnvironment","_createLocalKubernetesEnvironment","_ref2$meta","LocalKubernetesEnvironment","skipClientVerify","createAzureEnvironment","_createAzureEnvironment","_ref3$meta","AzureEnvironment","createRemoteEnvironment","_createRemoteEnvironment","creationType","_ref4$options","createAgentEnvironment","_ref5$meta","AgentEnvironment","createEdgeAgentEnvironment","portainerUrl","_ref6$meta","pollFrequency","EdgeAgentEnvironment","_createEnvironment","_options$edge","_ref7$tagIds","_options$edge2","_options$edge3","_options$edge4","formPayload","EndpointCreationType","GroupID","EdgeCheckinInterval","TLSSkipClientVerify","TLSCACertFile","TLSCertFile","TLSKeyFile","AzureApplicationID","applicationId","AzureTenantID","tenantId","AzureAuthenticationKey","authenticationKey","EdgeAsyncMode","EdgePingInterval","EdgeSnapshotInterval","EdgeCommandInterval","useConnectLocalEnvironment","localEnvironment","setLocalEnvironment","_useFetchLocalEnviron","Infinity","useFetchLocalEnvironment","createLocalEnvironmentMutation","createLocalEnvironment","mutationStatus","_createLocalEnvironment","EnvironmentSelector","existingEnvironmentTypes","newEnvironmentTypes","environmentTypes","formTitles","dockerStandalone","dockerSwarm","aci","kaas","k8sInstall","Stepper","currentStep","steps","useGenericCreationMutation","MetadataFieldset","tagProps","tagHelpers","MoreSettingsSection","NameField","_isNameUnique","useNameValidation","uniquenessTest","EdgeAgentFieldset","metadataValidation","EdgeAgentForm","nameValidation","urlValidation","tunnelServerAddr","useValidationSchema","buildInitialValues","Plug2","EdgeAgentTab","setEdgeInfo","EdgeKey","EnvironmentUrlField","_address$split2","validateAddress","AgentForm","deploymentsStandalone","deploymentsSwarm","DeploymentScripts","deployType","setDeployType","agentDetailsQuery","DeployCode","AgentTab","APIForm","tlsConfig","getTlsValues","APITab","SocketForm","overridePath","OverrideSocketFieldset","SocketTab","WizardDocker","setCreationType","_onCreate","_onCreate2","_onCreate3","_onCreate4","_onCreate5","getTab","WizardAzure","showAgentSecretMessage","AgentPanel","kubeConfig","KubeConfigTeaserForm","kubeConfigImportDocUrl","WizardKubernetes","WizardEndpointsList","endpointTypeName","wizardModule","localEndpointIdParam","localEndpointId","setEnvironmentIds","envTypes","useParamEnvironmentTypes","eType","_useAnalyticsState","dockerAgent","dockerApi","kubernetesAgent","kubernetesEdgeAgentAsync","kubernetesEdgeAgentStandard","kaasAgent","aciApi","localEndpoint","dockerEdgeAgentAsync","dockerEdgeAgentStandard","analytics","setAnalyticsState","setAnalytics","prevState","useAnalyticsState","_useStepper","onFinish","currentStepIndex","setCurrentStepIndex","isFirstStep","isLastStep","onNextClick","removeItem","onPreviousClick","useStepper","Wand2","ArrowLeft","startWizard","localEnvironmentAdded","Kube","teamSyncQuery","TeamSync","leaderCount","_handleDeleteClick","_useRowContext","addMemberMutation","UsersList","rowContext","UserPlus","membershipsQuery","removeMemberMutation","teamRole","updateRoleMutation","Cell","LeaderCell","MemberCell","onSuccessMessage","UserX","TeamMembersList","TeamAssociationSelector","teamUsers","usersNotInTeam","userRoles","CreateTeamForm","addTeamMutation","incFormKey","_handleAddTeamClick","TeamsDatatable","teamsModule","teamIdParam","useTeamIdParam","teamQuery","usersQuery","teamsQuery","Restricted","_getList","useList","getList","ScheduleType","_deleteUpdateSchedule","scheduleStatus","statusMessage","Failed","FORMAT","ScheduledTimeField","dateValue","parseIsoDate","DateTimePicker","dateToSave","calendarIcon","clearIcon","disableClock","minDate","scheduledTime","scheduleType","listQuery","edgeGroupNames","schedules","schedule","deleteUpdateSchedule","currentId","useEdgeGroupsEnvironmentIds","envIds","DEFAULT_MIN_VERSION","VersionSelect","_ref$minVersion","supportedVersions","UpdateScheduleDetailsFieldset","hasTimeZone","hasNoTimeZone","hasGroupSelected","getPreviousVersions","_getPreviousVersions","RollbackOptions","_useSelectVersionOnMo","_environmentIdsQuery$2","_useFormikContext$val","versionError","environmentIdsQuery","previousVersionsQuery","usePreviousVersions","_environmentIdsQuery$","useSelectVersionOnMount","groupNames","RollbackScheduleDetailsFieldset","ScheduleTypeSelector","environmentsIds","LocalTimeZone","Update","Rollback","_edgeGroups$find","EdgeGroupsField","selectedGroups","schedulesQuery","handleBlur","FormikForm","_getItem","includeEdgeStack","_update","itemQuery","useItem","isScheduleActive","initialValuesActive","environmentsCount","environmentsPreviousVersions","itemId","updateValidation","updateSchedulesModule","ListView","CreateView","ItemView","clearStore","connectingToEdgeEndpoint","setConnectingToEdgeEndpoint","_redirect","_confirmTriggerSnapshot","EdgeAutoCreateScriptView","_settings$data","newAPIToken","setNewAPIToken","constCurrentEnvironmentStore","deletionMutation","environmentsToDelete","deleteCluster","mobileWidth","useSidebarState","SidebarProvider","_storage$useLocalStor2","storageIsOpen","setIsOpenInStorage","_useStateWithUndo2","undoIsOpenChange","onResize","undo","handleSetState","newState","useStateWithUndo","isMobile","useUpdateAngularService","AngularSidebarService","innerWidth","SidebarTooltip","useSidebarSrefActive","_pathOptions$ignorePa","_pathOptions$includeP","activeClassName","pathOptions","ignorePaths","includePaths","stateName","useSrefActive","ItemAnchor","isSubMenu","SidebarItem","_ref$isSubMenu","_ref$ignorePaths","_ref$includePaths","sidebarAnchor","SidebarSection","showTitleWhenOpen","SidebarSectionTitle","showWhenOpen","SidebarParent","listId","hasActiveChild","parentItem","childList","block","EdgeComputeSidebar","Puzzle","icons","_icons","DashboardLink","platformPath","Layout","AzureSidebar","VolumesLink","DockerSidebar","areStacksVisible","setupSubMenuProps","featSubMenuTo","registrySubMenuTo","terminalHeight","terminalClose","terminalResize","contentWrapperHeight","innerHeight","overflowY","pageWrapper","KubeCtlShell","minimized","setShell","terminalElem","handleClose","openTerminal","writeln","onOpen","onMessage","readyState","CLOSED","wsProtocol","onKey","domEvent","ctrlKey","loadingMessage","KubectlShellButton","setOpen","createPortal","KubernetesSidebar","EnvironmentSidebar","envStore","clearEnvironment","onClear","_sidebar","Sidebar","getPlatformIcon","closeBtn","SettingsSidebar","isPureAdminOrTeamLeader","showUsersSection","EdgeUpdatesSidebarItem","Radio","Award","UpdateNotification","UpdateAvailable","LatestVersion","dismissTitle","dismissBtn","BuildInfoModalButton","isBuildInfoVisible","setIsBuildInfoVisible","statusQuery","BuildInfoModal","closeModal","_versionQuery$data","DatabaseVersion","versionInfo","BuildNumber","ImageTag","GitCommit","toolsList","Wrench","tools","NodejsVersion","YarnVersion","WebpackVersion","GoVersion","Variable","BEFooter","CEFooter","FooterContent","customLogo","_useSidebarState","collapseBtn","ChevronsLeft","ChevronsRight","fullLogoBE","fullLogoCE","smallLogo","getLogo","getSystemInfo","_getSystemInfo","upgradeEdition","_upgradeEdition","license","UploadLicenseDialog","goToLoading","goToGetLicense","isGetLicenseSubmitted","upgradeMutation","Upgrade","LoadingDialog","setEnabled","timeoutId","NonAdminUpgradeDialog","globalId","HubspotForm","portalId","formId","onSubmitted","elRef","_useHubspotForm","elId","loadHubspot","createForm","onFormSubmitted","useHubspotForm","_loadHubspot","hbspt","script","_createForm","onFormReady","_options$onFormReady","rest","GetLicenseDialog","goToUploadLicense","UpgradeDialog","setCurrentStep","setIsGetLicenseSubmitted","isSubmitted","getDialog","UpgradeBEBannerWrapper","nodesCountQuery","systemInfoQuery","systemInfo","upgrade","nodeCount","edgeAgents","enabledPlatforms","ArrowUpCircle","InnerSidebar","Home","sidebarModule","azureEndpointConfig","helpersModule","featureFlagModule","userActivityModule","loggedIn","initAuthentication","initialize","nextTransition","nextTransitionName","isTransitionRequiresAuthentication","account","logout","deviceImport","endpointAccess","endpointKVM","groupCreation","groupAccess","initAdmin","settingsAuthentication","InformationPanelAngular","dismissAction","updateAction","inheritFrom","Inherited","TeamService","RCO","onAuthorizedTeamsChange","AuthorizedTeams","onAuthorizedUsersChange","AuthorizedUsers","availableTeams","availableUsers","onChangeEnablement","AccessControlEnabled","onChangeOwnership","retrieveOwnershipDetails","setOwnership","setAuthorizedUsersAndTeams","porAccessManagement","accessControlledEntity","entityType","PorAccessManagementController","RoleService","onChangeUsersAndTeams","oldUserAccessPolicies","oldTeamAccessPolicies","updatedUserAccesses","updatedTeamAccesses","accessPolicies","generateAccessPolicies","userAccessPolicies","teamAccessPolicies","selectedRoleId","selectedRole","selectedUserAccesses","selectedTeamAccesses","selectedAccesses","isRoleLimitedToBE","RoleTypes","STANDARD","roleLabel","spinning","CodeEditorController","CodeMirrorService","editorElement","applyCodeMirrorOnElement","on","CopyButtonController","isFading","copyValueText","CustomTemplateSelectorController","handleChangeTemplate","stackType","customTemplateSelector","newTemplatePath","AccessTokensDatatableController","onClickAdd","DatatableColumnsVisibilityController","DatatableFilterController","onChangeItem","isChecked","datatableFilter","PaginationService","selectAll","paginatedItemLimit","displayTextFilter","resetSelectionState","onTextFilterChangeGeneric","setDataTableTextFilters","changeOrderBy","orderField","setDataTableOrder","selectItem","originalEvent","firstClickedItem","firstItemIndex","lastItemIndex","itemsInRange","isBetween","uniq","onSelectionChanged","changePaginationLimit","setPaginationLimit","showTextFilter","getPaginationLimit","$onInitGeneric","storedColumnVisibility","getColumnVisibilitySettings","datatableTitlebar","datatablePagination","onChangeLimit","enableNoLimit","onChangePage","canBrowse","endpointType","RegistriesDatatableController","enableGoToLink","goToRegistry","redirectToManageAccess","stringsDatatable","emptyDatasetMessage","columnHeader","UsersDatatableController","authenticationMethod","DemoFeatureIndicatorController","isDemo","demoEnvironment","demoFeatureIndicator","Shield","onChangeTLSMode","TLSMode","onToggleTLS","TLSConfig","CACert","EndpointSecurityFormData","$attrs","dom","$eval","focusDelay","focusIf","fileUploadForm","ngRequired","webEditorForm","WebEditorFormController","GroupFormController","associatedEndpoints","allowCreateTag","unassociatedQuery","KubernetesRedeployAppGitFormController","saveGitSettingsInProgress","redeployInProgress","showConfig","hasUnsavedChanges","RefName","onChangeRef","onChangeAutoUpdate","onChangeGitAuth","onChangeTLSSkipVerify","toJson","updateKubeGit","isSubmitButtonDisabled","kubernetesRedeployAppGitForm","toggleAuthentication","$postLink","registryFormEcr","registry_name","$validators","modelValue","nameIsUsed","registryFormAzure","registryFormCustom","registryFormDockerhub","disableSelection","RegistryEnabled","retrieveRegistries","createRegistries","projects","resetDefaults","registryFormProGet","toggleOrganisation","registryFormQuay","useOrganisation","unselectTemplate","nameRegex","advanced","stackRedeployGitForm","StackRedeployGitFormController","$compile","stackPullImageFeature","Prune","onChangeEnvVar","onChangeOption","automaticUpdates","autoSyncLabel","isSwarmStack","that","updateGit","removeInvalidEnvVars","updateGitStackSettings","disablePullAndRedeployButton","redeployGitForm","$valid","disableSaveSettingsButton","isAutoUpdateChanged","wasEnabled","requires","parentClasses","BeIndicatorController","beFeatureIndicator","GitFormController","runGitFormValidation","_$onInit","_runGitFormValidation","_this$gitForm","_this$gitForm2","gitForm","GitFormAuthFieldsetController","runGitValidation","_runGitValidation","_this$gitFormAuthFiel","_this$gitFormAuthFiel2","gitFormAuthFieldset","GitFormAutoUpdateFieldsetController","_this$gitFormAutoUpda","_this$gitFormAutoUpda2","gitFormAutoUpdate","GitFormRefFieldController","_this2$gitFormRefFiel","_this2$gitFormRefFiel2","gitFormRefField","tlsFieldsetModule","widgetModule","porAccessManagementModule","formComponentsModule","ngModel","invalidIntervalFormat","minimumInterval","which","onEnterKey","OptionPanelController","switchPruneService","goTo","products","useAsterisk","precision","SliderController","buildOptions","translate","sliderId","showSelectionBar","enforceStep","isFormValidForMigration","environmentSelectorOptions","duplicationInProgress","migrationInProgress","isFormValidForDuplication","yamlError","duplicateStack","onDuplicate","migrateStack","onMigrate","isMigrationButtonDisabled","currentEndpointId","isEndpointSelected","onChangeEnvironment","groupSet","groupEnvironments","statusIndicator","Sun","Moon","ThemeSettingsController","ThemeManager","setThemeColor","setTheme","autoTheme","themeColor","updateThemeSettings","updateUserTheme","availableThemes","ThemeSettings","left","filesize","TIME_FORMAT","toDate","strFormat","outFormat","arrayToStr","labelsToStr","Cloud","findAssociatedGroup","EndpointHelper","GenericHelper","findDeepAll","NetworkHelper","ResourceControlHelper","RCViewModelToOwnershipParameters","ResourceControlOwnershipParameters","RCFormDataToOwnershipParameters","subResources","retrieveAuthorizedUsers","retrieveAuthorizedTeams","ExternalStackViewModel","validateYAML","containerNames","originalContainersNames","yamlObject","mapAsMap","maxAliasCount","duplicateContainers","extractContainerNames","getExternalStacksFromLabel","getExternalStacksFromContainers","getExternalStacksFromServices","idsToTagNames","portConfiguration","exposedPorts","labelsArray","templateEnvironment","interactiveFlag","consoleConfiguration","openStdin","tty","generatedVolumesPile","keyValStr","pathname","Override","PortainerEndpointInitFormValues","PortainerEndpointConnectionTypes","KUBERNETES_LOCAL","TLSSKipClientVerify","AzureApplicationId","AzureTenantId","PortainerEndpointCreationTypes","DOCKER_LOCAL","REMOTE","AZURE","AGENT","EDGE","RegistryGitlabProject","project","PathWithNamespace","path_with_namespace","container_registry_enabled","EndpointGroupDefaultModel","AssociatedEndpoints","EndpointGroupModel","EndpointGroupCreateRequest","EndpointGroupUpdateRequest","RegistryViewModel","BaseURL","Ecr","RegistryManagementConfigurationDefaultModel","ECR","Region","PROGET","RegistryCreateFormValues","RegistryCreateRequest","ProjectId","InstanceURL","organisationName","RegistryRepositoryViewModel","TagsCount","RegistryRepositoryGitlabViewModel","ResourceControlCreatePayload","AdministratorsOnly","Teams","SubResourceIDs","SettingsViewModel","InternalAuthSettings","LDAPSettings","OAuthSettings","OAuthSettingsViewModel","FeatureFlagSettings","UserSessionTimeout","PublicSettingsViewModel","OAuthLoginURI","OAuthLogoutURI","EdgeSettingsViewModel","IsFDOEnabled","InternalAuthSettingsViewModel","LDAPSettingsViewModel","ReaderDN","SearchSettings","GroupSearchSettings","AutoCreateUsers","LDAPSearchSettings","BaseDN","UsernameAttribute","LDAPGroupSearchSettings","GroupBaseDN","GroupAttribute","GroupFilter","ClientID","ClientSecret","AccessTokenURI","AuthorizationURI","ResourceURI","RedirectURI","UserIdentifier","Scopes","OAuthAutoCreateUsers","DefaultTeamID","SSO","LogoutURI","AuthStyle","CheckinInterval","StatusViewModel","InstanceID","StatusVersionViewModel","TagViewModel","TeamViewModel","TeamMembershipModel","UserViewModel","PortainerAuthorizations","RoleName","UserTokenModel","dateCreated","lastUsed","WebhookViewModel","Microsoft","Google","OAuthProviderSelectorController","saveButtonState","MS_TENANT_ID_PLACEHOLDER","OAuthSettingsController","limitedFeatureClass","overrideConfiguration","microsoftTenantID","onSelectProvider","onMicrosoftTenantIDChange","useDefaultProviderConfiguration","updateSSO","addTeamMembershipMapping","removeTeamMembership","onToggleAutoTeamMembership","onChangeAuthStyle","tenantID","providerId","authUrl","accessTokenUrl","resourceUrl","logoutUrl","userIdentifier","scopes","authStyle","HideInternalAuth","OAuthAutoMapTeamMemberships","TeamMemberships","OAuthClaimMappings","ClaimValRegex","Team","isOAuthTeamMembershipFormValid","OAuthClaimName","getProviderByUrl","providerAuthURL","API_ENDPOINT_OAUTH","accessViewerDatatable","AccessViewerController","TeamMembershipService","selectedUserId","onUserSelect","allUsers","_entries","getRoleFromUserEndpointPolicy","getRoleFromUserEndpointGroupPolicy","getRoleFromTeamEndpointPolicies","getRoleFromTeamEndpointGroupPolicies","findLowestRole","policyRoles","accessPolicy","AccessViewerPolicyModel","groupUserAccessPolicies","groupTeamAccessPolicies","filteredUsers","leadingTeams","userLeadingTeams","isMember","leadingTeam","_keyBy","teamMemberUsers","accessViewer","rolesDatatable","RolesDatatableController","isDefaultItem","rolesView","RolesFactory","EndpointName","RolePriority","Priority","TeamName","AccessLocation","RoleViewModel","Authorizations","ENDPOINT_ADMIN","HELPDESK","READ_ONLY","OPERATOR","API_ENDPOINT_ROLES","rolesData","RolesController","CreateRegistryController","Proget","RegistryGitlabService","originViewReference","originalEndpointId","createRegistry","retrieveGitlabRegistries","createGitlabRegistries","selectDockerHub","selectEcr","selectQuayRegistry","selectProGetRegistry","selectAzureRegistry","selectGitlabRegistry","selectCustomRegistry","setRegistry","useDefaultQuayConfiguration","useDefaultGitlabConfiguration","useDefaultEcrConfiguration","gitlabProjects","registriesNames","registryValue","availableRegistry","RegistryController","toggleQuayUseOrganisation","passwordLabel","updateRegistry","nameAlreadyExists","getRegistryProvider","registryType","_pullAllBy","nonBrowsableTypes","regAttrMsg","registriesMsg","deleteRegistry","deleteSelectedRegistries","login","headersGetter","getS3Settings","saveS3Settings","restoreS3Backup","CustomTemplatesFactory","gitFetch","getEndpointsTotalCount","disassociate","snapshots","dockerhubLimits","gitlabResponseGetLink","repositories","addEndpoint","removeEndpoint","configure","checkLDAPConnectivity","API_ENDPOINT_SSL","SSLFactory","StackFactory","subaction","associate","swarmId","migrate","StackByNameFactory","queryMemberships","updatePassword","updateTheme","checkAdminUser","initAdminUser","getAccessTokens","deleteAccessToken","entityId","rejected","accessesAsync","newUserPolicies","_clone","newTeamPolicies","_mapAccessData","authorizedPolicies","inheritedPolicies","availableAccesses","authorizedAccesses","inherited","available","authorizedUserPolicies","authorizedTeamPolicies","inheritedUserPolicies","inheritedTeamPolicies","userAccesses","teamAccesses","userAccessData","teamAccessData","accessData","Backup","uploadBackup","CustomTemplateServiceFactory","$sanitize","CustomTemplates","html","createCustomTemplate","notify","groupID","endpointURL","createEndpoint","TLSCAFile","checkinInterval","createAzureEndpoint","UserTrusted","EndpointGroups","configureRegistry","registryManagementConfigurationModel","retrievePorRegistryModelFromRepositoryWithRegistries","match2","match3","match4","rcID","duplicateResourceControl","oldResourceControl","newResourceControl","SSLServiceFactory","SSL","SSLPayload","StackViewModel","SwarmId","SwarmID","IsComposeFormat","UpdateDate","FromAppTemplate","PreviousDeploymentInfo","StackByName","StackHelper","SwarmService","kubernetesDeployAsync","migrateSwarmStack","targetEndpointId","migrateComposeStack","includeOrphanedStacks","composeStacks","IncludeOrphanedStacks","swarmStacks","externalSwarmStacks","externalComposeStacks","unionStacks","externalStacks","externalStack","_unionWith","includeExternalStacks","createComposeStackFromFileUpload","createComposeStack","createSwarmStackFromFileUpload","createSwarmStack","createComposeStackFromFileContent","createSwarmStackFromFileContent","createComposeStackFromGitRepository","ComposeFile","createSwarmStackFromGitRepository","StatusServiceFactory","Support","createTagAsync","deleteTag","leaderIds","TeamLeaders","TemplateServiceFactory","Templates","TemplateHelper","repositoryUrl","composeFilePathInRepository","containerConfiguration","getDefaultContainerConfiguration","EnvToStringArray","portArrayToPortConfiguration","getConsoleConfiguration","updateContainerConfigurationWithLabels","createContainerConfiguration","createVolumeBindings","teamIds","teamMembershipQueries","createMembership","newPassword","currentPassword","NewPassword","userTokens","tokenId","Webhooks","asyncFunc","wrapper","Auth","OAuth","initAsync","OAuthLogin","OAuthLoginAsync","logoutAsync","userHelpers","redirectIfUnauthorized","getUserId","tryAutoLoginExtension","loadUserData","clearSessionStorage","cleanAuthData","storeLoginStateUUID","loginAsync","userData","endpointAuthorizations","portainerAuthorizations","userTheme","storeUserId","useUserHasAuthorization","defaultChartOptions","pos","tooltipCallback","scalesCallback","isStacked","animation","responsiveAnimationDuration","responsive","tooltips","intersect","callbacks","tooltipItem","datasetLabel","datasets","datasetIndex","yLabel","layout","hover","animationDuration","scales","yAxes","stacked","ticks","beginAtZero","LimitChartItems","CHART_LIMIT","byteBasedTooltipLabel","byteBasedAxisLabel","percentageBasedAxisLabel","percentageBasedTooltipLabel","borderColor","pointBackgroundColor","pointBorderColor","pointRadius","borderWidth","CreateChart","cacheValue","DatatableServiceFactory","TEXT_FILTER_KEY_PREFIX","storeDataTableSettings","setDataTableFilters","storeDataTableFilters","storeDataTableOrder","storeDataTableExpandedItems","setColumnVisibilitySettings","storeColumnVisibilitySettings","setDataTableSelectedItems","storeDataTableSelectedItems","getDataTableSelectedItems","uploadFile","RetryCount","RetryInterval","uploadLDAPTLSFiles","queue","uploadOwnershipVoucher","voucherFile","voucher","validator","localStorageService","getLoginStateUUID","storeEndpointState","getEndpointState","cleanEndpointState","storeApplicationState","getApplicationState","storeUIState","getUIState","deleteUserId","storePaginationLimit","storeDataTableTextFilters","storeJobImage","getJobImage","userID","storeLogoutReason","getLogoutReason","cleanLogoutReason","clearAll","NameValidatorFactory","validateEnvironmentName","paginationLimit","storedLimit","_getProjectsPage","projectsAsync","_getRepositoriesPage","repositoriesAsync","projectId","RegistrySelectPrompt","setRegistryId","registries2Options","selectRegistry","StateManagerFactory","InfoHelper","StatusService","manager","UI","timesPasswordChangeSkipped","dismissImportantInformation","setRequiredPasswordLength","requiredPasswordLength","setPasswordChangeSkipped","instanceId","resetPasswordChangeSkips","clearPasswordChangeSkips","cleanEndpoint","logoURL","updateEnableEdgeComputeFeatures","enableEdgeComputeFeatures","setOptOut","endpointState","appState","isAppStateValid","UIState","determineEndpointMode","endpointAPIVersion","documentElement","setAttribute","removeAttribute","systemTheme","matchMedia","defaultTheme","authenticationMethodTypesMap","INTERNAL","LDAP","OAUTH","authenticationMethodTypesLabels","authenticationActivityTypesMap","AuthSuccess","AuthFailure","Logout","authenticationActivityTypesLabels","autoUserProvisionToggle","ldapModule","saveAuthSettingsButton","AdSettingsController","LDAPService","domainSuffix","limitedFeatureId","onTlscaCertChange","searchUsers","searchGroups","parseDomainName","onAccountChange","part","addLDAPUrl","removeLDAPUrl","isSaveSettingButtonDisabled","isLdapFormValid","adSettings","connectivityCheck","ldapConnectivityCheck","ldapGroupsDatatable","ldapSettings","ldapGroupSearch","ldapGroupSearchItem","ldapUserSearch","ldapUserSearchItem","ldapSettingsCustom","ldapSettingsDnBuilder","ldapSettingsGroupDnBuilder","ldapCustomGroupSearch","ldapCustomAdminGroup","ldapSettingsOpenLdap","ldapSettingsSecurity","ldapSettingsTestLogin","ldapCustomUserSearch","ldapUsersDatatable","selectedAdminGroups","defaultAdminGroupSearchFilter","onSearchClick","isLimitedFeatureSelfContained","LdapCustomAdminGroupController","groupstest","enableAssignAdminGroup","onAddClick","onAdminGroupChange","AdminGroupSearchSettings","AdminAutoPopulate","AdminGroups","LdapCustomGroupSearchController","showTable","LdapCustomUserSearchController","UserNameAttribute","baseFilter","LdapSettingsAdGroupSearchItemController","onChangeBaseDN","baseDN","addGroup","removeGroup","$index","onGroupsChange","groupsFilter","onFilterChange","parseGroupFilter","LdapGroupSearchController","lastSetting","onSearchUsersClick","onSearchGroupsClick","saveButtonDisabled","LdapSettingsCustomController","suffix","LdapSettingsBaseDnBuilderController","onEntriesChange","moveUp","moveDown","dn","getOUValues","ouValues","parseBaseDN","isFirstChange","toIndex","LdapSettingsGroupDnBuilderController","onGroupNameChange","onGroupChange","groupNameEntry","parseEntries","$onChange","LdapSettingsOpenLDAPController","findDomainSuffix","parseDomainSuffix","serviceAccount","searchSettings","uploadInProgress","showBeIndicatorIfNeeded","TEST_STATUS","LOADING","SUCCESS","FAILURE","LdapSettingsTestLogin","testStatus","testLogin","buildLdapSettingsModel","AnonymousMode","ServerType","StartTLS","buildAdSettingsModel","buildOpenLDAPSettingsModel","Openldap","SERVER_TYPES","OPEN_LDAP","AD","LdapSettingsController","settingsDrafts","boxSelectorOptions","onChangeServerType","serverType","showUsernameFormat","LdapUserSearchItemController","onBaseDNChange","generateUserFilter","parseFilter","members","member","LdapUserSearchController","API_ENDPOINT_LDAP","cnName","authenticationModule","generalModule","ActivityLogsDatatableController","changeSort","handleChangeLimit","onChangeSort","activityLogsDatatable","totalItems","onChangeContextFilter","onChangeKeyword","ActivityLogsViewController","today","endOf","minValidDate","startOf","onChangeDate","loadLogs","startDate","endDate","activityLogsView","contextFilterLabels","typeFilterLabels","contextType","activityType","isAuthSuccess","isAuthFailure","authLogsDatatable","contextFilter","typeFilter","onChangeTypeFilter","AuthLogsViewController","filterState","authLogsView","NotificationsViewAngular","activeItemId","authLogsViewModule","activityLogsViewModule","confirmPassword","updateUserPassword","skipPasswordChange","userCanSkip","newTransition","userRole","selectedTokens","isInitialAdmin","isDemoUser","AuthenticationController","URLHelper","passwordInputType","showOAuthLogin","showStandardLogin","AuthenticationError","loginInProgress","OAuthProvider","checkForEndpointsAsync","postLoginSteps","oAuthLoginAsync","internalLoginAsync","authenticateUserAsync","manageOauthCodeReturn","authEnabledFlowAsync","toggleShowPassword","setPasswordInputType","inputType","generateOAuthLoginURI","determineOauthProvider","LoginURI","generateState","hasValidState","savedUUID","cleanParameters","authenticateUser","administratorExists","toggleStandardLogin","getParameter","CustomTemplatesViewController","DOCKER_STANDALONE","DOCKER_SWARM_MODE","showAdvancedOptions","deployable","templateNameRegex","getTemplatesAsync","removeTemplates","removeTemplatesAsync","createStackAsync","selectTemplateAsync","unselectTemplateAsync","getNetworksAsync","confirmDeleteAsync","createAction","isDeployable","vouchersUploading","vouchersUploaded","deviceIDs","DeviceName","DeviceProfile","VoucherFiles","PortainerURL","Suffix","onVoucherFilesChange","uploads","responses","guid","createEndpointAndConfigureDevice","deviceID","deviceName","createRemoteEndpoint","edgeID","AddProfileController","createProfileAsync","EditProfileController","profileID","updateProfileAsync","EndpointRegistriesController","EndpointAccessController","updateAccessAsync","EndpointController","clearAMTManagementInfo","versionValue","ManagementInfo","onChangeCheckInInterval","onChangeTLSConfigFormValues","azureEndpoint","agentEndpoint","edgeEndpoint","edgeAssociated","showAMTInfo","showTLSConfig","edgeScriptCommands","onDisassociateEndpoint","disassociateEndpoint","initialTagIds","AzureCredentials","ApplicationID","TenantID","AuthenticationKey","evt","dockerInfo","isDockerSwarmEnv","edgeKeyDetails","keyInformation","decodedKey","instanceURL","decodeEdgeKey","configureTLS","isDockerEndpoint","amtInfo","RawOutput","numbers","EndpointKVMController","maximized","maximize","minimize","ider","kvm","sol","redirection","userConsent","mpsAuthorization","mpsToken","onAssociate","onDisassociate","GroupsController","deleteGroup","restoreOptions","wait","seconds","BackupService","REDIRECT_REASON_TIMEOUT","backupInProgress","BackupFile","restoreAsyncFn","waitPortainerRestart","restoreAndRefresh","RESTORE_FORM_TYPES","FILE","ConfirmPassword","restoreFormType","showInitPassword","showRestorePortainer","togglePanel","onChangeRestoreType","createAdminUser","initAdministrator","LogoutController","MainController","ArrowDownCircle","Ldap","SettingsAuthenticationController","prepareLDAPSettings","tlscaFile","isADServer","uploadRequired","authMethod","availableUserSessionTimeoutOptions","authOptions","onChangeAuthMethod","onChangePasswordLength","authenticationMethodSelected","isOauthEnabled","LDAPConnectivityCheck","connectivityCheckInProgress","failedConnectivityCheck","successfulConnectivityCheck","saveSettings","isLDAPFormValid","isTLSMode","SettingsEdgeComputeController","onSubmitEdgeCompute","onSubmitOpenAMT","onSubmitFDO","defaultMTLS","UseSeparateCert","MTLS","editorYamlValidationError","uploadYamlValidationError","selectedTemplateId","stackWebhookFeature","EnableWebhook","onEnableWebhookChange","composeSyntaxMaxVersion","ComposeSyntaxMaxVersion","getContainerNames","stopStackAsync","startStackAsync","retrieveSwarmStackResources","stackFilter","assignSwarmStackResources","STACK_TYPES","onPruneChange","migrateRequest","removeStack","detachStackFromGit","associateStack","originalContainerNames","stopStack","startStack","createEnabled","loadExternalSwarmStack","loadExternalStack","resourcesPromise","StacksController","getStacks","deleteSelectedStacks","TagsController","checkNameValidity","TemplateService","enabledTypes","addExtraHost","removeExtraHost","stackfile","createStackFromTemplate","createComposeStackFromTemplate","templateConfiguration","createTemplateConfiguration","generatedVolumeCount","determineRequiredGeneratedVolumeCount","generatedVolumeIds","createXAutoGeneratedLocalVolumes","updateContainerConfigurationWithVolumes","createAndStartContainer","createContainerFromTemplate","showSwarmStacks","updatePasswordError","Administrator","handleAdministratorChange","deleteUser","oldUsername","isCurrentUser","isSubmitEnabled","isDeleteDisabled","userCreationError","validUsername","TeamIds","onChangeTeamIds","checkUsernameValidity","toLocaleLowerCase","addUser","createUser","deleteSelectedUsers","assignTeamLeaders","teamSync","_getContainerImagesStatus","containerID","_getServiceImagesStatus","_ref$resourceType","CONTAINER","_ref$nodeName","_useImageNotification","getServiceImagesStatus","getContainerImagesStatus","useImageNotification","_module_exports"],"sourceRoot":""}