{"version":3,"file":"main.f2b632d7a448eaa5d9e6.js","mappings":"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ErCKhuC,EAAAA,GAAAA,IAAO,CACZguC,OAAOpjC,EAAAA,GAAAA,MAASyP,SAAS,qBACzB+uD,YAAY5oE,EAAAA,GAAAA,MAAS+c,QAAQ,GAC7ByjF,aAAa4G,EAAAA,GAAAA,MAAOrqF,SAAQ,KFkCG7iC,KAC7B,+BACA,wDACA,SAAC5O,GAAK,OAAM07H,QAA6C,IAArB17H,EAAMs9F,UAA0B,KAG1E,EHtCEy+B,oBE6BK,SACL9iH,EACAorE,EACArlB,GAIA,MAAO,CACLA,SAAAA,EACA4zD,eAAe,EACf1wD,MIvCK,CACLo7B,WAAY,EACZp7B,MAAO,GACPgzD,aAAa,GJqCb30C,eANoBC,EAAAA,GAAAA,IAA2BvnE,EAAaorE,GAO5DlkF,KAAM,GACNsyH,YAAY,EACZoG,YAAY,EACZ1hD,MAAO,GACPyhD,iBAAiB,EAErB,GK+HaoD,GAlLsB,CACjC,CACE9/H,IAAK,UACLye,YAAa,+BACb82B,SAAS,GAEX,CACEv1C,IAAK,QACLye,YAAa,uCACb82B,SAAS,GAEX,CACEv1C,IAAK,cACLye,YAAa,wCACb82B,SAAS,GAEX,CACEv1C,IAAK,QACLye,YAAa,+DACb82B,SAAS,GAEX,CACEv1C,IAAK,UACLye,YAAa,8BACb82B,SAAS,GAEX,CACEv1C,IAAK,eACLye,YAAa,0DACb82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YACE,gIACF82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YACE,oFACF82B,SAAS,GAEX,CACEv1C,IAAK,OACLye,YAAa,gDACb82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YACE,2EACF82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YAAa,gDACb82B,SAAS,GAEX,CACEv1C,IAAK,mBACLye,YACE,mFACF82B,SAAS,GAEX,CACEv1C,IAAK,aACLye,YAAa,wCACb82B,SAAS,GAEX,CACEv1C,IAAK,UACLye,YAAa,yBACb82B,SAAS,GAEX,CACEv1C,IAAK,aACLye,YAAa,mCAEf,CACEze,IAAK,YACLye,YAAa,wDAEf,CACEze,IAAK,YACLye,YAAa,q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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/linode.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 _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 SvgLinode = function SvgLinode(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 32 32\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#123d10\",\n    d: \"m9.545 14.42-1.2-8.258L3.37 3.074l1.612 7.8 4.562 3.556zm1.38 9.443-.852-5.823-4.356-3.63 1.17 5.648 4.038 3.804zm-3.383-.64.862 4.165L12 31.205 11.386 27l-3.842-3.78zm11.644-1.806-1.837-1.402.014.33a.19.19 0 0 1-.084.166l-1.386.934 1.507 1.23c.02.02.03.027.035.036l.022.042c.008.027.01.037.01.048l.064 1.45 1.7 1.423-.036-4.26zm6.3-4.507-.36 4.153-1.2-.828.13-2.118c0-.024-.002-.033-.003-.04-.006-.032-.012-.046-.02-.06s-.02-.028-.032-.04a.23.23 0 0 0-.032-.028l-2.56-1.69.037-1.856 4.03 2.51\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#33b652\",\n    d: \"m16.59 11.116-.335-7.84-7.53 2.894 1.23 8.4 6.635-3.453zm.4 9.135-.246-5.78-6.27 3.57.88 6.01 5.638-3.798zm.127 2.93-5.333 3.816.648 4.422 4.872-3.88-.186-4.357zm2.465-1.762.036 4.275 3.8-3.032.253-4.17-4.1 2.926zm9.48-6.782-.534 3.955-2.998 2.4.352-4.068 3.18-2.276\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#231f20\",\n    d: \"m17.472 22.812-.008-.042a.21.21 0 0 0-.019-.044c-.015-.024-.023-.032-.03-.04l-1.52-1.24 1.386-.934a.19.19 0 0 0 .084-.166l-.014-.33 1.837 1.402.036 4.26-1.7-1.423-.062-1.44zm-7.398-4.772.852 5.823-4.038-3.804-1.17-5.648 4.356 3.63zm6.904 2.212L11.34 24.05l-.88-6.01 6.27-3.57.246 5.78zm-.725-16.975.335 7.84-6.635 3.453-1.23-8.4 7.53-2.894zM8.335 6.16l1.2 8.258-4.562-3.556-1.612-7.8L8.335 6.16zm.07 21.225-.862-4.165L11.386 27l.615 4.203-3.596-3.817zm8.885.152-4.872 3.88-.648-4.422 5.333-3.816.186 4.357zm6.116-4.876-3.8 3.032-.036-4.275 4.1-2.926-.253 4.17zm.53-2.428.13-2.118c0-.024-.002-.033-.003-.04-.006-.032-.012-.046-.02-.06s-.02-.028-.032-.04a.23.23 0 0 0-.032-.028l-2.56-1.69.037-1.856 4.03 2.51-.36 4.153-1.2-.828zm1.58.747.352-4.068 3.18-2.276-.534 3.955-2.998 2.4zm3.97-6.77-.006-.03a.176.176 0 0 0-.01-.03.23.23 0 0 0-.027-.045c-.02-.023-.03-.03-.04-.038l-4.368-2.42a.182.182 0 0 0-.192.008l-3.674 2.246c-.006 0-.01.01-.016.013s-.013.01-.02.015l-.016.02c-.005.008-.01.01-.014.018s-.008.017-.01.026-.006.013-.008.02-.003.02-.004.03l-.042 1.97-1.494-.987a.186.186 0 0 0-.205 0l-2.15 1.314-.093-2.186-.007-.042a.118.118 0 0 0-.007-.02.19.19 0 0 0-.011-.024c-.004-.008-.008-.013-.013-.02l-.015-.02c-.005-.007-.012-.01-.02-.016l-2.25-1.514 2.094-1.1a.192.192 0 0 0 .103-.178l-.352-8.228a.313.313 0 0 0-.005-.03c-.006-.03-.013-.045-.022-.06s-.022-.03-.032-.04c-.017-.017-.022-.02-.028-.024-.017-.008-.02-.008-.022-.015L10.873.115a.19.19 0 0 0-.14-.011L3.036 2.502l-.05.028-.04.037-.014.023c-.004.008-.01.015-.013.024l-.01.03c-.006.03-.005.04-.005.05l.001.027 1.718 8.302c.01.044.034.084.07.112l2.33 1.817-1.685.802c-.02.008-.022.015-.026.016l-.027.023c-.022.024-.028.036-.034.047a.14.14 0 0 0-.02.062.24.24 0 0 0 .002.055l1.292 6.25a.19.19 0 0 0 .056.1l1.622 1.528-1.075.658c-.014.008-.026.02-.038.03a.282.282 0 0 0-.032.045.22.22 0 0 0-.021.065.171.171 0 0 0 .003.055l1 4.842a.195.195 0 0 0 .048.092l4.048 4.298c.006.008.013.01.02.017.02.017.033.024.047.03.027.008.05.013.072.013s.038 0 .056-.01.022-.008.027-.015c.008 0 .014-.01.02-.014l5.223-4.157a.195.195 0 0 0 .072-.157l-.122-2.85 1.74 1.464c.02.015.03.023.04.028s.02.008.025.015c.02.008.038.01.057.01s.037-.008.056-.01c.017-.008.022-.008.026-.015.01-.008.017-.01.026-.017l4.186-3.337a.192.192 0 0 0 .072-.138l.127-2.09 1.27.884c.012.008.015.015.02.015.007.008.015.008.023.01.033.015.05.015.067.015s.038 0 .056-.01.02-.008.026-.015c.01-.008.02-.012.03-.018l3.415-2.722a.183.183 0 0 0 .07-.124l.604-4.47.001-.037\"\n  })));\n};\nexport default SvgLinode;","// 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 linode from '@/assets/ico/vendor/linode.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  linode,\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, Linode,\n                DigitalOcean and Microsoft Azure (others are not guaranteed to\n                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","linode","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":""}