{"version":3,"file":"main.47628b18b53450970e34.js","mappings":"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S,GAEX,CACEx1C,IAAK,aACLye,YAAa,mCAEf,CACEze,IAAK,YACLye,YAAa,wDAEf,CACEze,IAAK,YACLye,YAAa,qDAEf,CACEze,IAAK,YACLye,YAAa,wDAEf,CACEze,IAAK,WACLye,YACE,yGAEJ,CACEze,IAAK,eACLye,YAAa,6BAEf,CACEze,IAAK,WACLye,YACE,8FAEJ,CACEze,IAAK,iBACLye,YACE,uFAEJ,CACEze,IAAK,gBACLye,YACE,mHAEJ,CACEze,IAAK,YACLye,YACE,4EAEJ,CACEze,IAAK,eACLye,YACE,mGAEJ,CACEze,IAAK,YACLye,YAAa,+CAEf,CACEze,IAAK,SACLye,YAAa,4CAEf,CACEze,IAAK,kBACLye,YACE,wFAEJ,CACEze,IAAK,kBACLye,YAAa,0DAEf,CACEze,IAAK,gBACLye,YAAa,qDAEf,CACEze,IAAK,WACLye,YAAa,4DAEf,CACEze,IAAK,YACLye,YACE,oEAEJ,CACEze,IAAK,aACLye,YAAa,8CAEf,CACEze,IAAK,WACLye,YACE,sFAEJ,CACEze,IAAK,QACLye,YAAa,uDAEf,CACEze,IAAK,aACLye,YAAa,mDAEf,CACEze,IAAK,gBACLye,YAAa,mDAImByoB,MAAK,SAACrzB,EAAGf,GAAC,OAAMe,EAAE7T,IAAM8S,EAAE9S,KAAO,EAAI,CAAC,miECjLnE,SAASggI,GAAex6H,GAM5B,IALD+P,EAAM/P,EAAN+P,OACAgI,EAAQ/X,EAAR+X,SAKA,OACEzD,EAAAA,EAAAA,KAACo7C,GAAAA,EAAW,CAAC/pC,MAAM,yBAAwB2I,UACzCha,EAAAA,EAAAA,KAAA,OAAKmhB,UAAU,yCAAwCnH,SACpDisG,GAAavhI,KAAI,SAACyhI,GAAG,OACpBnmH,EAAAA,EAAAA,KAAA,OAAmBmhB,UAAU,oBAAmBnH,UAC9Cha,EAAAA,EAAAA,KAACq6B,GAAAA,EAAW,CACVC,WAAW,WACX1U,QAASugG,EAAIxhH,YACbuhB,QAASzqB,EAAOpQ,SAAS86H,EAAIjgI,KAC7Bwe,MAAOyhH,EAAIjgI,IACXiE,KAAI,GAAAO,OAA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","sources":["webpack://portainer/./app/ sync ^(.*\\.(js$))[^.]*$/i","webpack://portainer/./app/assets/ico/git.svg","webpack://portainer/./app/assets/ico/icon_up-to-date.svg","webpack://portainer/./app/assets/ico/icon_updates-available.svg","webpack://portainer/./app/assets/ico/icon_updates-unknown.svg","webpack://portainer/./app/assets/ico/kube.svg","webpack://portainer/./app/assets/ico/laptop-code.svg","webpack://portainer/./app/assets/ico/ldap.svg","webpack://portainer/./app/assets/ico/linux.svg","webpack://portainer/./app/assets/ico/memory.svg","webpack://portainer/./app/assets/ico/route.svg","webpack://portainer/./app/assets/ico/subscription.svg","webpack://portainer/./app/assets/ico/vendor/azure.svg","webpack://portainer/./app/assets/ico/vendor/docker-compose.svg","webpack://portainer/./app/assets/ico/vendor/docker-icon.svg","webpack://portainer/./app/assets/ico/vendor/docker.svg","webpack://portainer/./app/assets/ico/vendor/ecr.svg","webpack://portainer/./app/assets/ico/vendor/github.svg","webpack://portainer/./app/assets/ico/vendor/gitlab.svg","webpack://portainer/./app/assets/ico/vendor/google.svg","webpack://portainer/./app/assets/ico/vendor/helm.svg","webpack://portainer/./app/assets/ico/vendor/kubernetes.svg","webpack://portainer/./app/assets/ico/vendor/microsoft-icon.svg","webpack://portainer/./app/assets/ico/vendor/microsoft.svg","webpack://portainer/./app/assets/ico/vendor/openldap.svg","webpack://portainer/./app/assets/ico/vendor/proget.svg","webpack://portainer/./app/assets/ico/vendor/quay.svg","webpack://portainer/./app/angulartics.matomo/analytics-services.ts","webpack://portainer/./app/constants.ts","webpack://portainer/./app/docker/filters/utils.ts","webpack://portainer/./app/docker/helpers/containers.ts","webpack://portainer/./app/docker/helpers/splitargs.ts","webpack://portainer/./app/docker/helpers/logHelper/colors/colors.ts","webpack://portainer/./app/docker/helpers/logHelper/types.ts","webpack://portainer/./app/docker/helpers/logHelper/formatters.ts","webpack://portainer/./app/docker/helpers/logHelper/formatZerologLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/formatLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/formatJSONLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/constants.ts","webpack://portainer/./app/docker/helpers/logHelper/concatLogsToString.ts","webpack://portainer/./app/docker/services/ping.ts","webpack://portainer/./app/kubernetes/components/helm/helm-templates/HelmIcon.tsx","webpack://portainer/./app/kubernetes/filters/application.ts","webpack://portainer/./app/kubernetes/models/application/models/appConstants.ts","webpack://portainer/./app/portainer/authorization-guard.ts","webpack://portainer/./app/portainer/components/BoxSelector/BoxSelectorAngular.ts","webpack://portainer/./app/portainer/components/BoxSelector/utils.ts","webpack://portainer/./app/portainer/components/BoxSelector/index.ts","webpack://portainer/./app/portainer/error.ts","webpack://portainer/./app/portainer/helpers/array.ts","webpack://portainer/./app/portainer/helpers/promise-utils.ts","webpack://portainer/./app/portainer/helpers/strings.ts","webpack://portainer/./app/portainer/helpers/webhookHelper.ts","webpack://portainer/./app/portainer/hostmanagement/fdo/fdo.service.ts","webpack://portainer/./app/portainer/hostmanagement/open-amt/open-amt.service.ts","webpack://portainer/./app/portainer/services/axios.ts","webpack://portainer/./app/portainer/services/http-request.helper.ts","webpack://portainer/./app/portainer/services/notifications.ts","webpack://portainer/./app/portainer/tags/tags.service.ts","webpack://portainer/./app/portainer/tags/queries.ts","webpack://portainer/./app/portainer/users/queries.ts","webpack://portainer/./app/portainer/users/queries/queryKeys.ts","webpack://portainer/./app/portainer/users/queries/useLoadCurrentUser.ts","webpack://portainer/./app/portainer/users/queries/useUser.ts","webpack://portainer/./app/portainer/users/types.ts","webpack://portainer/./app/portainer/users/user.helpers.ts","webpack://portainer/./app/portainer/users/user.service.ts","webpack://portainer/./app/react-tools/apply-set-state-action.ts","webpack://portainer/./app/react-tools/react-query.ts","webpack://portainer/./app/react-tools/react2angular.tsx","webpack://portainer/./app/react-tools/withControlledInput.tsx","webpack://portainer/./app/react-tools/withCurrentUser.tsx","webpack://portainer/./app/react-tools/withFormValidation.ts","webpack://portainer/./app/react-tools/withReactQuery.tsx","webpack://portainer/./app/react-tools/withUIRouter.tsx","webpack://portainer/./app/react-tools/yup-schemas.ts","webpack://portainer/./app/react/common/network-utils.ts","webpack://portainer/./app/react/common/processItemsInBatches.ts","webpack://portainer/./app/react/common/semver-utils.ts","webpack://portainer/./app/react/common/stacks/common/confirm-stack-update.ts","webpack://portainer/./app/react/common/stacks/types.ts","webpack://portainer/./app/react/components/Alert/Alert.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/BEFeatureIndicator.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/utils.ts","webpack://portainer/./app/react/components/BETeaserButton.tsx","webpack://portainer/./app/react/components/Badge/Badge.tsx","webpack://portainer/./app/react/components/BadgeIcon/BadgeIcon.tsx","webpack://portainer/./app/react/components/Blocklist/BlocklistItem.tsx","webpack://portainer/./app/assets/ico/helm.svg","webpack://portainer/./app/react/components/BoxSelector/common-options/build-methods.tsx","webpack://portainer/./app/react/components/BoxSelector/common-options/deployment-methods.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelector.module.css?5efb","webpack://portainer/./app/react/components/BoxSelector/BoxSelectorItem.module.css?460b","webpack://portainer/./app/react/components/BoxSelector/LimitedToBeBoxSelectorIndicator.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxOption.module.css?13c4","webpack://portainer/./app/react/components/BoxSelector/BoxOption.tsx","webpack://portainer/./app/react/components/BoxSelector/LogoIcon.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelectorItem.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelector.tsx","webpack://portainer/./app/react/components/Code/Code.module.css?c26c","webpack://portainer/./app/react/components/Code/Code.tsx","webpack://portainer/./app/react/components/CodeEditor.module.css?af7a","webpack://portainer/./app/react/components/CodeEditor.tsx","webpack://portainer/./app/react/components/DashboardItem/DashboardGrid.tsx","webpack://portainer/./app/react/components/DashboardItem/DashboardItem.tsx","webpack://portainer/./app/react/components/DetailsTable/index.tsx","webpack://portainer/./app/react/components/DetailsTable/DetailsTable.tsx","webpack://portainer/./app/react/components/DetailsTable/DetailsRow.tsx","webpack://portainer/./app/react/components/FallbackImage.tsx","webpack://portainer/./app/react/components/HelpLink/HelpLink.tsx","webpack://portainer/./app/assets/ico/dataflow-1.svg","webpack://portainer/./app/assets/ico/restore-window.svg","webpack://portainer/./app/assets/ico/sort.svg","webpack://portainer/./app/assets/ico/placeholder.svg","webpack://portainer/./app/assets/ico/vendor/aws.svg","webpack://portainer/./app/assets/ico/vendor/civo.svg","webpack://portainer/./app/assets/ico/vendor/digitalocean.svg","webpack://portainer/./app/assets/ico/vendor/googlecloud.svg","webpack://portainer/./app/assets/ico/vendor/akamai.svg","webpack://portainer/./app/react/components/Svg.tsx","webpack://portainer/./app/react/components/Icon.tsx","webpack://portainer/./app/react/components/InformationPanel.tsx","webpack://portainer/./app/react/components/InlineLoader/InlineLoader.tsx","webpack://portainer/./app/react/components/InsightsBox/insights-store.ts","webpack://portainer/./app/react/components/InsightsBox/InsightsBox.tsx","webpack://portainer/./app/react/components/Link.tsx","webpack://portainer/./app/react/components/NavTabs/NavContainer.tsx","webpack://portainer/./app/react/components/NavTabs/NavTabs.module.css?76f4","webpack://portainer/./app/react/components/NavTabs/NavTabs.tsx","webpack://portainer/./app/react/components/PageHeader/ContextHelp/ContextHelp.tsx","webpack://portainer/./app/react/components/PageHeader/Breadcrumbs/Breadcrumbs.tsx","webpack://portainer/./app/react/components/PageHeader/HeaderContainer.module.css?63f1","webpack://portainer/./app/react/components/PageHeader/HeaderContainer.tsx","webpack://portainer/./app/react/components/PageHeader/NotificationsMenu.module.css?bd28","webpack://portainer/./app/react/components/PageHeader/NotificationsMenu.tsx","webpack://portainer/./app/react/components/PageHeader/UserMenu.tsx","webpack://portainer/./app/react/components/PageHeader/HeaderTitle.tsx","webpack://portainer/./app/react/components/PageHeader/PageHeader.tsx","webpack://portainer/./app/react/components/PaginationControls/ItemsPerPageSelector.tsx","webpack://portainer/./app/react/components/PaginationControls/calculatePageNumber.ts","webpack://portainer/./app/react/components/PaginationControls/PageButton.tsx","webpack://portainer/./app/react/components/PaginationControls/PageInput.tsx","webpack://portainer/./app/react/components/PaginationControls/PageSelector.tsx","webpack://portainer/./app/react/components/PaginationControls/generatePagesArray.ts","webpack://portainer/./app/react/components/PaginationControls/PaginationControls.tsx","webpack://portainer/./app/react/components/TLSFieldset/TLSFieldset.tsx","webpack://portainer/./app/react/components/TagButton/TagButton.module.css?d24c","webpack://portainer/./app/react/components/TagButton/TagButton.tsx","webpack://portainer/./app/react/components/TagSelector/TagSelector.tsx","webpack://portainer/./app/react/components/TeamsSelector/TeamsSelector.tsx","webpack://portainer/./app/react/components/TerminalTooltip/TerminalTooltip.tsx","webpack://portainer/./app/react/components/Tip/SliderTooltip/SliderTooltip.module.css?eb3b","webpack://portainer/./app/react/components/Tip/SliderTooltip/SliderTooltip.tsx","webpack://portainer/./app/react/components/Tip/TextTip/TextTip.tsx","webpack://portainer/./app/react/components/Tip/Tooltip/Tooltip.tsx","webpack://portainer/./app/react/components/Tip/TooltipWithChildren/TooltipWithChildren.module.css?cdcd","webpack://portainer/./app/react/components/Tip/TooltipWithChildren/TooltipWithChildren.tsx","webpack://portainer/./app/react/components/UsersSelector/UsersSelector.tsx","webpack://portainer/./app/react/components/WebEditorForm.tsx","webpack://portainer/./app/react/components/Widget/Loading.tsx","webpack://portainer/./app/react/components/Widget/Widget.tsx","webpack://portainer/./app/react/components/Widget/WidgetBody.tsx","webpack://portainer/./app/react/components/Widget/WidgetTitle.tsx","webpack://portainer/./app/react/components/Widget/index.ts","webpack://portainer/./app/react/components/Widget/WidgetFooter.tsx","webpack://portainer/./app/react/components/Widget/WidgetTaskbar.tsx","webpack://portainer/./app/react/components/buttons/Button.tsx","webpack://portainer/./app/react/components/buttons/ButtonGroup.tsx","webpack://portainer/./app/react/components/buttons/CopyButton/CopyButton.module.css?9c40","webpack://portainer/./app/react/components/buttons/CopyButton/CopyButton.tsx","webpack://portainer/./app/react/components/buttons/CopyButton/useCopy.ts","webpack://portainer/./app/react/components/buttons/LoadingButton.tsx","webpack://portainer/./app/react/components/buttons/AddButton.tsx","webpack://portainer/./app/react/components/datatables/ColumnVisibilityMenu.tsx","webpack://portainer/./app/react/components/datatables/Datatable.tsx","webpack://portainer/./app/react/components/datatables/select-column.tsx","webpack://portainer/./app/react/components/datatables/useGoToHighlightedRow.ts","webpack://portainer/./app/react/components/datatables/DatatableContent.tsx","webpack://portainer/./app/react/components/datatables/SelectedRowsCount.tsx","webpack://portainer/./app/react/components/datatables/DatatableFooter.tsx","webpack://portainer/./app/react/components/datatables/DatatableHeader.tsx","webpack://portainer/./app/react/components/datatables/ExpandableDatatableRow.tsx","webpack://portainer/./app/react/components/datatables/ExpandableDatatable.tsx","webpack://portainer/./app/react/components/datatables/Filter.tsx","webpack://portainer/./app/react/components/datatables/RowContext.tsx","webpack://portainer/./app/react/components/datatables/SearchBar.tsx","webpack://portainer/./app/react/components/datatables/Table.tsx","webpack://portainer/./app/react/components/datatables/TableActions.tsx","webpack://portainer/./app/react/components/datatables/TableContainer.tsx","webpack://portainer/./app/react/components/datatables/TableContent.tsx","webpack://portainer/./app/react/components/datatables/TableFooter.tsx","webpack://portainer/./app/react/components/datatables/TableHeaderCell.tsx","webpack://portainer/./app/react/components/datatables/TableHeaderRow.tsx","webpack://portainer/./app/react/components/datatables/sort-arrow-down.svg","webpack://portainer/./app/react/components/datatables/sort-arrow-up.svg","webpack://portainer/./app/react/components/datatables/TableHeaderSortIcons.module.css?aefe","webpack://portainer/./app/react/components/datatables/TableHeaderSortIcons.tsx","webpack://portainer/./app/react/components/datatables/TableRow.tsx","webpack://portainer/./app/react/components/datatables/TableSettingsMenu.tsx","webpack://portainer/./app/react/components/datatables/TableSettingsMenuAutoRefresh.module.css?1e3f","webpack://portainer/./app/react/components/datatables/TableSettingsMenuAutoRefresh.tsx","webpack://portainer/./app/react/components/datatables/TableTitle.tsx","webpack://portainer/./app/react/components/datatables/TableTitleActions.tsx","webpack://portainer/./app/react/components/datatables/buildNameColumn.tsx","webpack://portainer/./app/react/components/datatables/defaultGetRowId.ts","webpack://portainer/./app/react/components/datatables/expand-column.tsx","webpack://portainer/./app/react/components/datatables/types.ts","webpack://portainer/./app/react/components/datatables/useRepeater.ts","webpack://portainer/./app/react/components/datatables/useTableState.ts","webpack://portainer/./app/react/components/form-components/AutocompleteSelect/AutocompleteSelect.module.css?b43d","webpack://portainer/./app/react/components/form-components/AutocompleteSelect/AutocompleteSelect.tsx","webpack://portainer/./app/react/components/form-components/ButtonSelector/ButtonSelector.module.css?de7d","webpack://portainer/./app/react/components/form-components/ButtonSelector/ButtonSelector.tsx","webpack://portainer/./app/react/components/form-components/Checkbox.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/AdvancedMode.tsx","webpack://portainer/./app/portainer/services/fileUploadReact.ts","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariableItem.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/SimpleMode.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariablesFieldset.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariablesPanel.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/StackEnvironmentVariablesPanel.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/utils.ts","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadField.module.css?3d41","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadField.tsx","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadForm.tsx","webpack://portainer/./app/react/components/form-components/FormActions.tsx","webpack://portainer/./app/react/components/form-components/FormControl/FormControl.tsx","webpack://portainer/./app/react/components/form-components/FormError.tsx","webpack://portainer/./app/react/components/form-components/FormSection/FormSection.tsx","webpack://portainer/./app/react/components/form-components/FormSectionTitle/FormSectionTitle.tsx","webpack://portainer/./app/react/components/form-components/Input/InputLabeled.tsx","webpack://portainer/./app/react/components/form-components/Input/Input.tsx","webpack://portainer/./app/react/components/form-components/Input/Select.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroup.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/index.ts","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroupAddon.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroupButtonWrapper.tsx","webpack://portainer/./app/react/components/form-components/InputList/utils.ts","webpack://portainer/./app/react/components/form-components/InputList/InputList.tsx","webpack://portainer/./app/react/components/form-components/PortainerSelect.tsx","webpack://portainer/./app/react/components/form-components/ReactSelect.tsx","webpack://portainer/./app/react/components/form-components/Slider/Slider.module.css?fdaa","webpack://portainer/./app/react/components/form-components/Slider/Slider.tsx","webpack://portainer/./app/react/components/form-components/Slider/SliderWithInput.tsx","webpack://portainer/./app/react/components/form-components/SwitchField/Switch.module.css?3a17","webpack://portainer/./app/react/components/form-components/SwitchField/Switch.tsx","webpack://portainer/./app/react/components/form-components/SwitchField/SwitchField.module.css?fb34","webpack://portainer/./app/react/components/form-components/SwitchField/SwitchField.tsx","webpack://portainer/./app/react/components/form-components/useCachedTest.ts","webpack://portainer/./app/react/components/form-components/validate-form.ts","webpack://portainer/./app/react/components/form-components/validate-unique.ts","webpack://portainer/./app/react/components/form-components/yup-file-validation.ts","webpack://portainer/./app/react/components/modals/Dialog.tsx","webpack://portainer/./app/react/components/modals/Modal/CloseButton.module.css?9c19","webpack://portainer/./app/react/components/modals/Modal/CloseButton.tsx","webpack://portainer/./app/react/components/modals/Modal/Modal.module.css?18cf","webpack://portainer/./app/react/components/modals/Modal/Modal.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalBody.module.css?1704","webpack://portainer/./app/react/components/modals/Modal/index.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalHeader.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalHeader.module.css?9399","webpack://portainer/./app/react/components/modals/Modal/ModalBody.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalFooter.tsx","webpack://portainer/./app/react/components/modals/Modal/types.ts","webpack://portainer/./app/react/components/modals/SwitchPrompt.tsx","webpack://portainer/./app/react/components/modals/confirm.ts","webpack://portainer/./app/react/components/modals/types.ts","webpack://portainer/./app/react/components/modals/open-modal.tsx","webpack://portainer/./app/react/components/modals/utils.ts","webpack://portainer/./app/react/constants.ts","webpack://portainer/./app/react/docker/components/ImageStatus/helpers.ts","webpack://portainer/./app/react/docker/components/ImageStatus/types.ts","webpack://portainer/./app/react/docker/components/datatable/createOwnershipColumn.tsx","webpack://portainer/./app/react/docker/containers/common/confirm-container-delete-modal.ts","webpack://portainer/./app/react/docker/containers/containers.service.ts","webpack://portainer/./app/react/docker/containers/types.ts","webpack://portainer/./app/react/docker/images/common/ConfirmExportModal.tsx","webpack://portainer/./app/react/docker/images/utils.ts","webpack://portainer/./app/react/docker/proxy/queries/build-url.ts","webpack://portainer/./app/react/docker/proxy/queries/useInfo.ts","webpack://portainer/./app/react/docker/proxy/queries/useVersion.ts","webpack://portainer/./app/react/docker/services/common/convertServiceToConfig.ts","webpack://portainer/./app/react/docker/services/common/update-service-modal.ts","webpack://portainer/./app/react/edge/components/EdgeAsyncIntervalsForm.tsx","webpack://portainer/./app/react/edge/components/EdgeCheckInIntervalField.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/OsSelector.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/ScriptTabs.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptSettingsFieldset.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptForm.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptForm.validation.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/scripts.ts","webpack://portainer/./app/react/edge/components/useIntervalOptions.ts","webpack://portainer/./app/react/edge/edge-groups/queries/build-url.ts","webpack://portainer/./app/react/edge/edge-groups/queries/query-keys.ts","webpack://portainer/./app/react/edge/edge-groups/queries/useEdgeGroups.ts","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/EnvVarsFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateNote.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/CustomTemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/AppTemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/EdgeGroupsSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/types.ts","webpack://portainer/./app/react/hooks/useAnalytics.ts","webpack://portainer/./app/react/hooks/useCurrentEnvironment.ts","webpack://portainer/./app/react/hooks/useDebounce.ts","webpack://portainer/./app/react/hooks/useEnvironmentId.ts","webpack://portainer/./app/react/hooks/useLimitToBE.tsx","webpack://portainer/./app/react/hooks/useLocalStorage.ts","webpack://portainer/./app/react/hooks/useStateWrapper.ts","webpack://portainer/./app/react/hooks/useUser.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/constants.ts","webpack://portainer/./app/react/kubernetes/annotations/AnnotationsBeTeaser.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/utils.ts","webpack://portainer/./app/react/kubernetes/applications/constants.ts","webpack://portainer/./app/react/kubernetes/axiosError.ts","webpack://portainer/./app/react/kubernetes/cluster/getIsRBACEnabled.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/useIngressControllerClassMap.ts","webpack://portainer/./app/react/kubernetes/configs/CreateView/options.tsx","webpack://portainer/./app/react/kubernetes/ingresses/service.ts","webpack://portainer/./app/react/kubernetes/namespaces/getSelfSubjectAccessReview.ts","webpack://portainer/./app/react/kubernetes/networks/services/service.ts","webpack://portainer/./app/react/kubernetes/services/service.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/HomepageFilter.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlForm/AccessControlForm.validation.ts","webpack://portainer/./app/react/portainer/access-control/AccessControlForm/AccessControlForm.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelDetails.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelForm.module.css?dfbc","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelForm.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanel.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/useOptions.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/AccessTypeSelector.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/UsersField.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/TeamsField.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/EditDetails.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/useLoadState.ts","webpack://portainer/./app/react/portainer/access-control/access-control.service.ts","webpack://portainer/./app/react/portainer/access-control/models/ResourceControlViewModel.ts","webpack://portainer/./app/react/portainer/access-control/types.ts","webpack://portainer/./app/react/portainer/access-control/utils.ts","webpack://portainer/./app/react/portainer/account/git-credentials/git-credentials.service.ts","webpack://portainer/./app/react/portainer/custom-templates/components/CommonFields.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/VariableFieldItem.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/CustomTemplatesVariablesField.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/getDefaultValues.ts","webpack://portainer/./app/react/portainer/custom-templates/components/PlatformSelector.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/TemplateTypeSelector.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/utils.ts","webpack://portainer/./app/react/portainer/environments/ListView/useDeleteEnvironmentsMutation.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/environment-groups.service.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/build-url.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/environment.service/index.ts","webpack://portainer/./app/react/portainer/environments/environment.service/utils.ts","webpack://portainer/./app/react/portainer/environments/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/queries/useAgentDetails.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironment.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironmentList.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironmentRegistries.ts","webpack://portainer/./app/react/portainer/environments/queries/useUpdateEnvironmentMutation.ts","webpack://portainer/./app/react/portainer/environments/types.ts","webpack://portainer/./app/assets/ico/beta.svg","webpack://portainer/./app/react/portainer/environments/update-schedules/common/BetaAlert.tsx","webpack://portainer/./app/react/portainer/environments/utils/index.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/GroupsField.tsx","webpack://portainer/./app/react/portainer/feature-flags/enums.ts","webpack://portainer/./app/react/portainer/feature-flags/feature-flags.service.ts","webpack://portainer/./app/react/portainer/feature-flags/withEdition.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/CredentialSelector.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/NewCredentialForm.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/AuthFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/IntervalField.tsx","webpack://portainer/./app/react/components/form-components/useCaretPosition.ts","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/WebhookSettings.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/ForceDeploymentSwitch.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/AutoUpdateSettings.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/AutoUpdateFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/validation.ts","webpack://portainer/./app/react/portainer/gitops/queries/useSearch.ts","webpack://portainer/./app/react/portainer/gitops/ComposePathField/PathSelector.tsx","webpack://portainer/./app/react/portainer/gitops/ComposePathField/ComposePathField.tsx","webpack://portainer/./app/react/portainer/gitops/queries/useCheckRepo.ts","webpack://portainer/./app/react/portainer/gitops/GitFormUrlField.tsx","webpack://portainer/./app/react/portainer/gitops/AdditionalFilesField.tsx","webpack://portainer/./app/react/portainer/gitops/GitForm.tsx","webpack://portainer/./app/react/portainer/gitops/InfoPanel.tsx","webpack://portainer/./app/react/portainer/gitops/queries/useGitRefs.ts","webpack://portainer/./app/react/portainer/gitops/RefField/RefSelector.tsx","webpack://portainer/./app/react/portainer/gitops/RefField/RefField.tsx","webpack://portainer/./app/react/portainer/gitops/TimeWindowDisplay.tsx","webpack://portainer/./app/react/portainer/gitops/types.ts","webpack://portainer/./app/react/portainer/gitops/utils.ts","webpack://portainer/./app/react/portainer/licenses/types.ts","webpack://portainer/./app/react/portainer/licenses/license.service.ts","webpack://portainer/./app/react/portainer/licenses/use-license.service.ts","webpack://portainer/./app/react/portainer/notifications/notifications-store.ts","webpack://portainer/./app/react/portainer/registries/queries/build-url.ts","webpack://portainer/./app/react/portainer/registries/queries/query-keys.ts","webpack://portainer/./app/react/portainer/registries/queries/useRegistries.ts","webpack://portainer/./app/react/portainer/registries/types/registry.ts","webpack://portainer/./app/react/portainer/settings/queries/useSettings.ts","webpack://portainer/./app/react/portainer/settings/queries/useExperimentalSettings.ts","webpack://portainer/./app/react/portainer/settings/queries/useExperimentalSettingsMutation.ts","webpack://portainer/./app/react/portainer/settings/queries/queryKeys.ts","webpack://portainer/./app/react/portainer/settings/queries/usePublicSettings.ts","webpack://portainer/./app/react/portainer/settings/settings.service.ts","webpack://portainer/./app/react/portainer/settings/types.ts","webpack://portainer/./app/react/portainer/system/build-url.ts","webpack://portainer/./app/react/portainer/system/query-keys.ts","webpack://portainer/./app/react/portainer/system/useNodesCount.ts","webpack://portainer/./app/react/portainer/system/useSystemStatus.ts","webpack://portainer/./app/react/portainer/system/useSystemVersion.ts","webpack://portainer/./app/react/portainer/templates/app-templates/AppTemplatesListItem.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/useSortAndFilter.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/TemplateListSort/TemplateListSort.module.css?aa64","webpack://portainer/./app/react/portainer/templates/app-templates/TemplateListSort/TemplateListSort.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/Filters.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/AppTemplatesList.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/queries/build-url.ts","webpack://portainer/./app/react/portainer/templates/app-templates/queries/useAppTemplates.ts","webpack://portainer/./app/react/portainer/templates/app-templates/queries/useFetchTemplateFile.ts","webpack://portainer/./app/react/portainer/templates/app-templates/types.ts","webpack://portainer/./app/react/portainer/templates/app-templates/view-model.ts","webpack://portainer/./app/react/portainer/templates/components/TemplateItem.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/ListView/CustomTemplatesListItem.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/ListView/CustomTemplatesList.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/build-url.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/query-keys.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplate.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplateFile.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplates.ts","webpack://portainer/./app/react/portainer/templates/types.ts","webpack://portainer/./app/react/portainer/users/teams/queries.ts","webpack://portainer/./app/react/portainer/users/teams/team-membership.service.ts","webpack://portainer/./app/react/portainer/users/teams/teams.service.ts","webpack://portainer/./app/react/portainer/users/teams/types.ts","webpack://portainer/./app/__mocks__/fileMock.js","webpack://portainer/./app/__mocks__/styleMock.js","webpack://portainer/./app/agent/components/host-browser/hostBrowserController.js","webpack://portainer/./app/agent/components/host-browser/index.js","webpack://portainer/./app/agent/components/node-selector/index.js","webpack://portainer/./app/agent/components/node-selector/nodeSelectorController.js","webpack://portainer/./app/agent/components/volume-browser/index.js","webpack://portainer/./app/agent/components/volume-browser/volumeBrowserController.js","webpack://portainer/./app/agent/index.js","webpack://portainer/./app/agent/models/agent.js","webpack://portainer/./app/agent/rest/agent.js","webpack://portainer/./app/agent/rest/browse.js","webpack://portainer/./app/agent/rest/dockerhub.js","webpack://portainer/./app/agent/rest/host.js","webpack://portainer/./app/agent/rest/ping.js","webpack://portainer/./app/agent/rest/response/browse.js","webpack://portainer/./app/agent/rest/v1/agent.js","webpack://portainer/./app/agent/rest/v1/browse.js","webpack://portainer/./app/agent/services/agentService.js","webpack://portainer/./app/agent/services/hostBrowserService.js","webpack://portainer/./app/agent/services/pingService.js","webpack://portainer/./app/agent/services/volumeBrowserService.js","webpack://portainer/./app/angulartics.matomo/index.js","webpack://portainer/./app/app.js","webpack://portainer/./app/assets/css/colors.ts","webpack://portainer/./app/portainer/services/csrf.ts","webpack://portainer/./app/config.js","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/datatable-store.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/created.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/host.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/image.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/ip.tsx","webpack://portainer/./app/react/components/datatables/useTableSettings.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/components/ImageStatus/PublishedPortLink.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/RowContext.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/ports.tsx","webpack://portainer/./app/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions.module.css?9085","webpack://portainer/./app/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/quick-actions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/stack.tsx","webpack://portainer/./app/react/components/datatables/filter-types.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/state.tsx","webpack://portainer/./app/react/docker/queries/utils/root.ts","webpack://portainer/./app/react/docker/queries/utils/container.ts","webpack://portainer/./app/react/docker/queries/utils/index.ts","webpack://portainer/./app/react/docker/containers/queries/query-keys.ts","webpack://portainer/./app/react/docker/containers/queries/gpus.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/gpus.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/index.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableActions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableSettings.tsx","webpack://portainer/./app/react/docker/containers/utils.ts","webpack://portainer/./app/react/components/datatables/QuickActionsSettings.tsx","webpack://portainer/./app/react/docker/containers/queries/containers.ts","webpack://portainer/./app/react/common/stacks/ItemView/StackContainersDatatable.tsx","webpack://portainer/./app/react/docker/containers/ItemView/HealthStatus.tsx","webpack://portainer/./app/react/docker/host/SetupView/GpusList.tsx","webpack://portainer/./app/react/docker/images/queries/build-url.ts","webpack://portainer/./app/react/docker/queries/utils/build-url.ts","webpack://portainer/./app/react/docker/images/queries/queryKeys.ts","webpack://portainer/./app/react/docker/images/queries/useImages.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/created.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/id.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/size.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/index.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/tags.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/host.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/ImagesDatatable.tsx","webpack://portainer/./app/react/docker/events/EventsDatatables.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/columns.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/ConfigsDatatable.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/store.ts","webpack://portainer/./app/react/components/datatables/extend-options/withMeta.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/helper.ts","webpack://portainer/./app/react/docker/components/FilesTable/types.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/NameCell.tsx","webpack://portainer/./app/react/docker/components/FilesTable/columns/index.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/ActionsCell.tsx","webpack://portainer/./app/react/docker/components/FilesTable/FilesTable.tsx","webpack://portainer/./app/react/docker/host/BrowseView/AgentHostBrowser.tsx","webpack://portainer/./app/react/docker/volumes/BrowseView/AgentVolumeBrowser.tsx","webpack://portainer/./app/react/docker/containers/StatsView/ProcessesDatatable.tsx","webpack://portainer/./app/react/docker/secrets/ListView/SecretsDatatable.tsx","webpack://portainer/./app/react/components/datatables/extend-options/withGlobalFilter.ts","webpack://portainer/./app/react/docker/stacks/view-models/utils.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/TableSettingsMenus.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/components/datatable/TableColumnHeaderImageUpToDate.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/getStackImagesStatus.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/StackImageStatus.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/image-notification.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/control.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/StacksDatatable.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/store.ts","webpack://portainer/./app/react/docker/networks/ListView/columns/helper.ts","webpack://portainer/./app/react/docker/networks/ListView/columns/name.tsx","webpack://portainer/./app/react/docker/networks/ListView/columns/index.ts","webpack://portainer/./app/react/components/datatables/NestedTable.tsx","webpack://portainer/./app/react/components/datatables/NestedDatatable.tsx","webpack://portainer/./app/react/docker/networks/ListView/NestedNetwordsTable.tsx","webpack://portainer/./app/react/docker/networks/ListView/NetworksDatatable.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/helper.ts","webpack://portainer/./app/react/docker/networks/network.service.ts","webpack://portainer/./app/react/docker/networks/queries.ts","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/actions.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/types.ts","webpack://portainer/./app/react/docker/networks/queries/buildUrl.ts","webpack://portainer/./app/react/docker/networks/queries/useConnectContainer.ts","webpack://portainer/./app/react/docker/networks/queries/queryKeys.ts","webpack://portainer/./app/react/docker/networks/queries/useNetworks.ts","webpack://portainer/./app/react/docker/containers/components/NetworkSelector.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/ConnectNetworkForm.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/ContainerNetworksDatatable.tsx","webpack://portainer/./app/docker/react/components/containers.ts","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/columns.tsx","webpack://portainer/./app/react/components/datatables/extend-options/mergeOptions.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/image.tsx","webpack://portainer/./app/react/docker/proxy/queries/nodes/build-url.ts","webpack://portainer/./app/react/docker/proxy/queries/query-keys.ts","webpack://portainer/./app/react/docker/proxy/queries/nodes/query-keys.ts","webpack://portainer/./app/react/docker/proxy/queries/nodes/useNodes.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/constraint-helper.ts","webpack://portainer/./app/react/docker/images/queries/encodeRegistryCredentials.ts","webpack://portainer/./app/react/docker/services/axios/urlBuilder.ts","webpack://portainer/./app/react/docker/services/queries/query-keys.ts","webpack://portainer/./app/react/docker/services/queries/useUpdateServiceMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/ScaleForm.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/ScaleServiceButton.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/schedulingMode.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/ports.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/status.tsx","webpack://portainer/./app/react/docker/services/common/TaskTableQuickActions.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/actions.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/slot.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/node.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/updated.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TasksDatatable/task-column.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TasksDatatable/TasksDatatable.tsx","webpack://portainer/./app/react/docker/services/webhooks/build-url.ts","webpack://portainer/./app/react/docker/services/webhooks/getWebhooks.ts","webpack://portainer/./app/react/docker/services/webhooks/removeWebhook.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/useRemoveServicesMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/useForceUpdateServicesMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TableSettings.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/ServicesDatatable.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/task.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/meta.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/TasksDatatable.tsx","webpack://portainer/./app/docker/react/components/services.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/index.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/index.ts","webpack://portainer/./app/react/components/datatables/extend-options/withControlledSelected.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/column-helper.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/types.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/status.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/availability.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/index.ts","webpack://portainer/./app/react/docker/networks/CreateView/MacvlanNodesSelector/MacvlanNodesSelector.tsx","webpack://portainer/./app/docker/react/components/networks.ts","webpack://portainer/./app/react/docker/networks/CreateView/MacvlanNodesSelector/useColumns.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/NodesDatatable.tsx","webpack://portainer/./app/docker/react/components/swarm.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/tableMeta.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/VolumesDatatable.tsx","webpack://portainer/./app/docker/react/components/volumes.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/index.ts","webpack://portainer/./app/docker/react/components/index.ts","webpack://portainer/./app/react/docker/images/ItemView/DockerfileDetails.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/index.ts","webpack://portainer/./app/react/docker/networks/network.helper.ts","webpack://portainer/./app/react/docker/networks/ItemView/NetworkDetailsTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/NetworkOptionsTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/NetworkContainersTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/ItemView.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatable.tsx","webpack://portainer/./app/react/docker/containers/queries/container.ts","webpack://portainer/./app/react/docker/containers/LogView/LogView.tsx","webpack://portainer/./app/react/portainer/webhooks/build-url.ts","webpack://portainer/./app/react/portainer/webhooks/createWebhook.ts","webpack://portainer/./app/react/portainer/webhooks/types.ts","webpack://portainer/./app/react/docker/images/queries/usePullImageMutation.ts","webpack://portainer/./app/react/docker/containers/CreateView/useCreateMutation.tsx","webpack://portainer/./app/react/portainer/registries/utils/getUrl.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.viewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.requestModel.ts","webpack://portainer/./app/react/docker/proxy/queries/images/queryKeys.ts","webpack://portainer/./app/react/docker/proxy/queries/images/useImages.ts","webpack://portainer/./app/react/portainer/registries/queries/useRegistry.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/InputSearch.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/utils.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/SimpleForm.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/AdvancedForm.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/RateLimits.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/ImageConfigFieldset.tsx","webpack://portainer/./app/react/docker/agent/queries/useApiVersion.ts","webpack://portainer/./app/react/docker/agent/queries/build-url.ts","webpack://portainer/./app/react/docker/agent/queries/useAgentNodes.ts","webpack://portainer/./app/react/docker/agent/NodeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/BaseForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.validation.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/validation.ts","webpack://portainer/./app/react/portainer/registries/utils/getImageConfig.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/CapabilitiesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/ConsoleSettings.tsx","webpack://portainer/./app/react/docker/proxy/queries/useServicePlugins.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/LoggerConfig.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/toViewModel.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/OverridableInput.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/CommandsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/Item.tsx","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/LabelsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/ContainerSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/NetworkTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/DevicesField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/GpuFieldset.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/memory-utils.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/ResourcesFieldset.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/RuntimeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/RuntimeSection.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/SysctlsField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/ResourcesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/RestartPolicyTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/context.ts","webpack://portainer/./app/react/docker/volumes/queries/query-keys.ts","webpack://portainer/./app/react/docker/volumes/queries/useVolumes.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/VolumeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/Item.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/VolumesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/EnvVarsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/toViewModel.ts","webpack://portainer/./app/react/portainer/webhooks/query-keys.ts","webpack://portainer/./app/react/portainer/webhooks/useWebhooks.ts","webpack://portainer/./app/react/docker/containers/CreateView/useInitialValues.ts","webpack://portainer/./app/react/docker/containers/queries/useUpdateContainer.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/EditResourceForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/InnerForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/registries/utils/findRegistryMatch.ts","webpack://portainer/./app/react/hooks/useDebouncedValue.ts","webpack://portainer/./app/react/docker/containers/CreateView/validation.ts","webpack://portainer/./app/docker/react/views/containers.ts","webpack://portainer/./app/react/docker/containers/ListView/ListView.tsx","webpack://portainer/./app/docker/react/views/index.ts","webpack://portainer/./app/docker/react/index.ts","webpack://portainer/./app/docker/__module.js","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy-controller.js","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy.js","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboard-cluster-agent-info.js","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfoController.js","webpack://portainer/./app/docker/components/host-overview/host-overview.js","webpack://portainer/./app/docker/components/host-view-panels/devices-panel/devices-panel.js","webpack://portainer/./app/docker/components/host-view-panels/disks-panel/disks-panel.js","webpack://portainer/./app/docker/components/host-view-panels/engine-details-panel/engine-details-panel.js","webpack://portainer/./app/docker/components/host-view-panels/host-details-panel/host-details-panel.js","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select-controller.js","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select.js","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table-controller.js","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table.js","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel-controller.js","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.controller.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.controller.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.js","webpack://portainer/./app/docker/components/log-viewer/log-viewer.js","webpack://portainer/./app/docker/components/log-viewer/logViewerController.js","webpack://portainer/./app/docker/components/network-macvlan-form/network-macvlan-form.js","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanFormController.js","webpack://portainer/./app/react/docker/networks/CreateView/macvlanOptions.tsx","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanFormModel.js","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsForm.js","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsFormModel.js","webpack://portainer/./app/docker/components/volumesNFSForm/volumes-nfs-form.js","webpack://portainer/./app/docker/components/volumesNFSForm/volumesNFSFormModel.js","webpack://portainer/./app/docker/filters/filters.js","webpack://portainer/./app/docker/helpers/configHelper.js","webpack://portainer/./app/docker/helpers/containerHelper.js","webpack://portainer/./app/docker/helpers/imageHelper.js","webpack://portainer/./app/docker/helpers/infoHelper.js","webpack://portainer/./app/docker/helpers/labelHelper.js","webpack://portainer/./app/docker/helpers/networkHelper.js","webpack://portainer/./app/docker/helpers/nodeHelper.js","webpack://portainer/./app/docker/helpers/secretHelper.js","webpack://portainer/./app/docker/helpers/serviceHelper.js","webpack://portainer/./app/docker/helpers/taskHelper.js","webpack://portainer/./app/docker/helpers/volumeHelper.js","webpack://portainer/./app/docker/models/config.js","webpack://portainer/./app/docker/models/container.js","webpack://portainer/./app/docker/models/event.js","webpack://portainer/./app/docker/models/image.js","webpack://portainer/./app/docker/models/imageDetails.js","webpack://portainer/./app/docker/models/imageLayer.js","webpack://portainer/./app/docker/models/plugin.js","webpack://portainer/./app/docker/models/porImageRegistry.js","webpack://portainer/./app/docker/models/swarm.js","webpack://portainer/./app/docker/rest/build.js","webpack://portainer/./app/docker/rest/commit.js","webpack://portainer/./app/docker/rest/config.js","webpack://portainer/./app/docker/rest/container.js","webpack://portainer/./app/docker/rest/exec.js","webpack://portainer/./app/docker/rest/image.js","webpack://portainer/./app/docker/rest/network.js","webpack://portainer/./app/docker/rest/node.js","webpack://portainer/./app/docker/rest/plugin.js","webpack://portainer/./app/docker/rest/response/handlers.js","webpack://portainer/./app/docker/rest/response/image.js","webpack://portainer/./app/docker/rest/secret.js","webpack://portainer/./app/docker/rest/service.js","webpack://portainer/./app/docker/rest/swarm.js","webpack://portainer/./app/docker/rest/system.js","webpack://portainer/./app/docker/rest/task.js","webpack://portainer/./app/docker/rest/volume.js","webpack://portainer/./app/docker/services/buildService.js","webpack://portainer/./app/docker/services/configService.js","webpack://portainer/./app/docker/services/containerService.js","webpack://portainer/./app/docker/services/execService.js","webpack://portainer/./app/docker/services/imageService.js","webpack://portainer/./app/docker/models/network.ts","webpack://portainer/./app/docker/services/networkService.js","webpack://portainer/./app/docker/models/node.ts","webpack://portainer/./app/docker/services/nodeService.js","webpack://portainer/./app/docker/services/pluginService.js","webpack://portainer/./app/docker/models/secret.ts","webpack://portainer/./app/docker/services/secretService.js","webpack://portainer/./app/docker/models/service.ts","webpack://portainer/./app/docker/services/serviceService.js","webpack://portainer/./app/docker/services/swarmService.js","webpack://portainer/./app/docker/services/systemService.js","webpack://portainer/./app/docker/models/task.ts","webpack://portainer/./app/docker/services/taskService.js","webpack://portainer/./app/docker/models/volume.ts","webpack://portainer/./app/docker/services/volumeService.js","webpack://portainer/./app/docker/views/configs/configsController.js","webpack://portainer/./app/docker/views/configs/create/createConfigController.js","webpack://portainer/./app/docker/views/configs/edit/configController.js","webpack://portainer/./app/docker/views/containers/console/containerConsoleController.js","webpack://portainer/./app/react/docker/containers/ItemView/ConfirmRecreationModal.tsx","webpack://portainer/./app/docker/views/containers/edit/containerController.js","webpack://portainer/./app/docker/views/containers/inspect/containerInspectController.js","webpack://portainer/./app/docker/views/containers/logs/containerLogsController.js","webpack://portainer/./app/docker/views/containers/stats/containerStatsController.js","webpack://portainer/./app/react/docker/DashboardView/ContainerStatus.tsx","webpack://portainer/./app/react/docker/DashboardView/ImagesTotalSize.tsx","webpack://portainer/./app/docker/views/dashboard/dashboardController.js","webpack://portainer/./app/docker/views/docker-features-configuration/docker-features-configuration.controller.js","webpack://portainer/./app/docker/views/docker-features-configuration/index.js","webpack://portainer/./app/docker/views/events/eventsController.js","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view-controller.js","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view.js","webpack://portainer/./app/docker/views/host/host-view-controller.js","webpack://portainer/./app/docker/views/host/host-view.js","webpack://portainer/./app/docker/views/images/build/buildImageController.js","webpack://portainer/./app/docker/views/images/edit/imageController.js","webpack://portainer/./app/docker/views/images/imagesController.js","webpack://portainer/./app/docker/views/images/import/importImageController.js","webpack://portainer/./app/docker/views/networks/create/createNetworkController.js","webpack://portainer/./app/docker/views/networks/networksController.js","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser-controller.js","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser.js","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view-controller.js","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view.js","webpack://portainer/./app/docker/views/registries/access/registryAccess.js","webpack://portainer/./app/docker/views/registries/access/registryAccessController.js","webpack://portainer/./app/docker/views/secrets/create/createSecretController.js","webpack://portainer/./app/docker/views/secrets/edit/secretController.js","webpack://portainer/./app/docker/views/secrets/secretsController.js","webpack://portainer/./app/docker/views/services/create/createServiceController.js","webpack://portainer/./app/docker/views/services/edit/serviceController.js","webpack://portainer/./app/docker/views/services/logs/serviceLogsController.js","webpack://portainer/./app/docker/views/services/servicesController.js","webpack://portainer/./app/docker/views/swarm/swarmController.js","webpack://portainer/./app/docker/views/swarm/visualizer/swarmVisualizerController.js","webpack://portainer/./app/docker/views/tasks/edit/taskController.js","webpack://portainer/./app/docker/views/tasks/logs/taskLogsController.js","webpack://portainer/./app/docker/views/volumes/browse/browseVolumeController.js","webpack://portainer/./app/docker/views/volumes/create/createVolumeController.js","webpack://portainer/./app/docker/views/volumes/edit/volumeController.js","webpack://portainer/./app/docker/views/volumes/volumesController.js","webpack://portainer/./app/react/edge/edge-stacks/components/EdgeStackDeploymentTypeSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/PrePullToggle.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/RetryDeployToggle.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/PrivateRegistryFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/buildUrl.ts","webpack://portainer/./app/react/edge/edge-stacks/queries/useParseRegistries.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/PrivateRegistryFieldsetWrapper.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/validation.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/useValidation.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/types.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/RelativePathFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/useEnableFsPath.ts","webpack://portainer/./app/react/portainer/account/git-credentials/queries/useCreateGitCredentialsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/useEdgeGroupHasType.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/GitForm/useUpdateEdgeStackGitMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/GitForm/GitForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/EditEdgeStackForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/ComposeForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/KubernetesForm.tsx","webpack://portainer/./app/react/edge/components/EdgeGroupAssociationTable.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/query-keys.ts","webpack://portainer/./app/react/edge/edge-stacks/queries/useEdgeStack.ts","webpack://portainer/./app/react/portainer/gitops/GitCommitLink.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useLogsStatus.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useCollectLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useDeleteLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useDownloadLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/LogsActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/EnvironmentActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/ActionStatus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/columns.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/EnvironmentsDatatable.tsx","webpack://portainer/./app/edge/react/components/index.ts","webpack://portainer/./app/react/hooks/useParamState.ts","webpack://portainer/./app/react/edge/components/AssociatedEdgeEnvironmentsSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/columns.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/filter-store.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/Filter.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/queries.ts","webpack://portainer/./app/react/portainer/environments/queries/useUpdateEnvironmentsRelationsMutation.ts","webpack://portainer/./app/react/edge/edge-groups/queries/useCreateEdgeGroupMutation.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/CreatableSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/EdgeGroupSelector.tsx","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/useCreateGroupMutation.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/GroupSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/TagSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/utils.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/AssignmentDialog.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/createPayload.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/TableActions.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/Datatable.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/useEnvironments.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/WaitingRoomView.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/useEdgeStacks.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/EdgeStacksStatus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/DeploymentCounter.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/columns.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/TableSettingsMenus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/useDeleteEdgeStacksMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/TableActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/EdgeStacksDatatable.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/store.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/helper.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/index.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/name.tsx","webpack://portainer/./app/react/components/buttons/DeleteButton.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/useDeleteEdgeGroupMutation.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/TableActions.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/EdgeGroupsDatatable.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useDeleteTemplateMutation.ts","webpack://portainer/./app/react/edge/templates/custom-templates/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/useViewType.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCreateTemplateMutation.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/types.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/types.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.validation.ts","webpack://portainer/./app/react/common/stacks/common/form-texts.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/useParseTemplateOnFileChange.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/InnerForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/CreateForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/useValidation.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/useInitialValues.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useUpdateTemplateMutation.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/InnerForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/EditForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/useValidation.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/useInitialValues.ts","webpack://portainer/./app/edge/react/views/templates.ts","webpack://portainer/./app/react/edge/templates/AppTemplatesView/AppTemplatesView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/EditView.tsx","webpack://portainer/./app/edge/react/views/index.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/ListView.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/ListView.tsx","webpack://portainer/./app/edge/react/index.ts","webpack://portainer/./app/edge/__module.js","webpack://portainer/./app/react/edge/edge-jobs/CreateView/cron-method-options.tsx","webpack://portainer/./app/edge/components/edge-job-form/edgeJobFormController.js","webpack://portainer/./app/edge/components/edge-job-form/index.js","webpack://portainer/./app/edge/components/edge-job-results-datatable/edgeJobResultsDatatableController.js","webpack://portainer/./app/edge/components/edge-job-results-datatable/index.js","webpack://portainer/./app/edge/components/edge-jobs-datatable/index.js","webpack://portainer/./app/edge/components/edge-stack-status/edgeStackStatusController.js","webpack://portainer/./app/edge/components/edge-stack-status/index.js","webpack://portainer/./app/react/edge/edge-groups/CreateView/tag-options.tsx","webpack://portainer/./app/react/edge/edge-groups/CreateView/group-type-options.tsx","webpack://portainer/./app/edge/components/group-form/groupFormController.js","webpack://portainer/./app/edge/components/group-form/index.js","webpack://portainer/./app/edge/rest/edge-groups.js","webpack://portainer/./app/edge/rest/edge-job-results.js","webpack://portainer/./app/edge/rest/edge-jobs.js","webpack://portainer/./app/edge/rest/edge-stacks.js","webpack://portainer/./app/edge/services/edge-group.js","webpack://portainer/./app/edge/services/edge-job.js","webpack://portainer/./app/edge/services/edge-stack.js","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/createEdgeGroupViewController.js","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/index.js","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/editEdgeGroupViewController.js","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/index.js","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/index.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/edgeJobController.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/index.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/edgeJobsViewController.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.controller.js","webpack://portainer/./app/react/edge/edge-stacks/utils.ts","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.controller.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.controller.js","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/index.js","webpack://portainer/./app/edge/views/edge-stacks/index.js","webpack://portainer/./app/i18n.ts","webpack://portainer/./app/azure/react/components/index.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.module.css?a1c2","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.tsx","webpack://portainer/./app/react/azure/services/utils.ts","webpack://portainer/./app/react/azure/queries/query-keys.ts","webpack://portainer/./app/react/azure/queries/useProvider.ts","webpack://portainer/./app/react/azure/queries/utils.ts","webpack://portainer/./app/react/azure/queries/useResourceGroups.ts","webpack://portainer/./app/react/azure/queries/useSubscriptions.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/utils.ts","webpack://portainer/./app/react/azure/services/container-groups.service.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/useCreateInstanceMutation.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateContainerInstanceForm.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/useLoadFormState.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateContainerInstanceForm.validation.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.validation.ts","webpack://portainer/./app/react/azure/queries/useContainerGroup.ts","webpack://portainer/./app/react/azure/queries/useResourceGroup.ts","webpack://portainer/./app/react/azure/queries/useSubscription.ts","webpack://portainer/./app/react/azure/queries/useContainerGroups.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/helper.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/name.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/columns/location.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/ports.tsx","webpack://portainer/./app/react/azure/utils.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/index.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/ownership.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/ContainersDatatable.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/ListView.tsx","webpack://portainer/./app/azure/react/views/index.ts","webpack://portainer/./app/react/azure/container-instances/ItemView/ItemView.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateView.tsx","webpack://portainer/./app/react/azure/DashboardView/DashboardView.tsx","webpack://portainer/./app/azure/react/index.ts","webpack://portainer/./app/azure/index.ts","webpack://portainer/./app/ng-constants.ts","webpack://portainer/./app/index.js","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/availability.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatableAngular.tsx","webpack://portainer/./app/react/kubernetes/namespaces/AccessView/NamespaceAccessUsersSelector.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesSelector.tsx","webpack://portainer/./app/react/kubernetes/ingresses/queries.ts","webpack://portainer/./app/react/components/Card/Card.tsx","webpack://portainer/./app/react/components/form-components/formikUtils.ts","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ContainerPortInput.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServicePortInput.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/ingress/AppIngressPathForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/ingress/AppIngressPathsForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/cluster-ip/ClusterIpServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/cluster-ip/ClusterIpServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServiceTabs.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/node-port/NodePortServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/node-port/NodePortServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/load-balancer/LoadBalancerServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/load-balancer/LoadBalancerServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServiceTabLabel.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/PublishingExplaination.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/kubeServicesValidation.ts","webpack://portainer/./app/react/components/Note/Note.tsx","webpack://portainer/./app/react/kubernetes/applications/utils.ts","webpack://portainer/./app/react/kubernetes/applications/pod.service.ts","webpack://portainer/./app/react/kubernetes/applications/application.service.ts","webpack://portainer/./app/react/kubernetes/applications/autoscaling.service.ts","webpack://portainer/./app/react/kubernetes/applications/application.queries.ts","webpack://portainer/./app/react/kubernetes/namespaces/queries/useNamespaceQuery.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationSummaryWidget.tsx","webpack://portainer/./app/react/common/stacks/stack.service.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RestartApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RedeployApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RollbackApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationServicesTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationIngressesTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationAutoScalingTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationEnvVarsTable.tsx","webpack://portainer/./app/react/kubernetes/configs/secret.service.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationVolumeConfigsTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationPersistentDataTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationDetailsWidget.tsx","webpack://portainer/./app/react/kubernetes/datatables/SystemResourcesSettings.tsx","webpack://portainer/./app/react/kubernetes/datatables/default-kube-datatable-store.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/eventType.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/message.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/date.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/kind.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/EventsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/useNamespaceEventsQuery.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationEventsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/pod.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/image.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/imagePullPolicy.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/node.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/podIp.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/creationDate.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/actions.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/ApplicationContainersDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/nodes.service.ts","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementTypeBoxSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ApplicationSummarySection/ApplicationSummarySection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ApplicationSummarySection/utils.ts","webpack://portainer/./app/react/kubernetes/components/YAMLInspector.tsx","webpack://portainer/./app/react/kubernetes/datatables/SystemResourceDescription.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/columns.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/SubRows.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/StacksSettingsMenu.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/NamespaceFilter.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/TableActions.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/ApplicationsStacksDatatable.tsx","webpack://portainer/./app/react/kubernetes/cluster/kubernetesEndpoint.service.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/role.tsx","webpack://portainer/./app/react/components/StatusBadge.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/cpu.tsx","webpack://portainer/./app/react/kubernetes/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/memory.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/version.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/ip.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/actions.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/NodesDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigurationKey.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigurationItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/configurationValidationSchema.ts","webpack://portainer/./app/react/kubernetes/configs/configmap.service.ts","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/PersistedFolderItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/PersistedFoldersFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/persistedFoldersValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/ResourceReservationFormSection/resourceReservationValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AutoScalingFormSection/AutoScalingFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/queries/useNamespacesQuery.ts","webpack://portainer/./app/react/kubernetes/applications/components/NamespaceSelector/namespaceSelectorValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/EditYamlFormSection.tsx","webpack://portainer/./app/kubernetes/react/components/applications.ts","webpack://portainer/./app/kubernetes/react/components/index.ts","webpack://portainer/./app/react/kubernetes/cluster/RegistryAccessView/NamespacesSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsDatatable/HelmInsightsBox.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/DataAccessPolicyFormSection.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/StackName.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/StackNameLabelInsight.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/KubeServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigMapsFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/SecretsFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ResourceReservationFormSection/ResourceReservationFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ReplicationFormSection/ReplicationFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ReplicationFormSection/replicationValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AutoScalingFormSection/autoScalingValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/placementValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/NamespaceSelector/NamespaceSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/components/NameFormSection/NameFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/NameFormSection/nameValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AppDeploymentTypeFormSection/AppDeploymentTypeFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/AppDeploymentTypeFormSection/deploymentTypeValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/EnvironmentVariablesFormSection/EnvironmentVariablesFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/EnvironmentVariablesFormSection/kubeEnvVarValidationSchema.ts","webpack://portainer/./app/react/kubernetes/datatables/DefaultDatatableSettings.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/className.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/ingressRules.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/IngressDatatable.tsx","webpack://portainer/./app/react/kubernetes/annotations/AnnotationsForm.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/IngressForm.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/utils.ts","webpack://portainer/./app/react/kubernetes/volumes/usePVCsQuery.ts","webpack://portainer/./app/react/kubernetes/dashboard/EnvironmentInfo.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/ports.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/clusterIP.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/ExternalIPLink.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/externalIP.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/targetPorts.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/index.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/application.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/ServicesDatatable.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/datatable-store.ts","webpack://portainer/./app/react/components/Widget/WidgetTabs.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/configs/constants.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/ConfigMapsDatatable.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/SecretsDatatable.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigmapsAndSecretsView.tsx","webpack://portainer/./app/react/hooks/useUnauthorizedRedirect.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatable.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/LoadBalancerFormSection/LoadBalancerFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/NamespaceSummary.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/StorageQuotaFormSection/StorageQuotaItem.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/StorageQuotaFormSection/StorageQuotaFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/queries/useResourceLimitsQuery.ts","webpack://portainer/./app/react/kubernetes/namespaces/components/ResourceQuotaFormSection/ResourceQuotaFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/NamespaceInnerForm.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/registriesValidationSchema.ts","webpack://portainer/./app/react/kubernetes/namespaces/components/ResourceQuotaFormSection/getResourceQuotaValidationSchema.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/registries.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/queries/useCreateNamespaceMutation.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceForm.tsx","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/utils.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/PlacementsDatatableSubRow.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/index.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/PlacementsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/usePlacementTableData.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/useApplicationEventsTableData.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/AppYAMLEditor/useApplicationYAML.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/AppYAMLEditor/ApplicationYAMLEditor.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/useStorageClasses.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/validation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/RBACAlert.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/EnableMetricsInput.tsx","webpack://portainer/./app/react/kubernetes/queries/useGetMetricsMutation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/StorageAccessModeSelector.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/StorageClassDatatable.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/useConfigureClusterMutation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/handleSubmitConfigureCluster.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/ConfigureForm.tsx","webpack://portainer/./app/kubernetes/react/views/index.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceView.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesView.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/index.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/CreateIngressView.tsx","webpack://portainer/./app/react/kubernetes/networks/services/queries.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsView.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureView.tsx","webpack://portainer/./app/react/kubernetes/dashboard/DashboardView.tsx","webpack://portainer/./app/react/kubernetes/applications/ConsoleView/ConsoleView.tsx","webpack://portainer/./app/kubernetes/react/index.ts","webpack://portainer/./app/kubernetes/__module.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.controller.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/configurations-datatable/configurationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/events-datatable/eventsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatableController.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.controller.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.controller.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.js","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.js","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservation.js","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservationController.js","webpack://portainer/./app/kubernetes/components/view-loading/viewLoading.js","webpack://portainer/./app/kubernetes/converters/application.js","webpack://portainer/./app/kubernetes/converters/configMap.js","webpack://portainer/./app/kubernetes/converters/configuration.js","webpack://portainer/./app/kubernetes/converters/daemonSet.js","webpack://portainer/./app/kubernetes/converters/deployment.js","webpack://portainer/./app/kubernetes/converters/event.js","webpack://portainer/./app/kubernetes/converters/namespace.js","webpack://portainer/./app/kubernetes/converters/persistentVolumeClaim.js","webpack://portainer/./app/kubernetes/converters/resourcePool.js","webpack://portainer/./app/kubernetes/converters/resourceQuota.js","webpack://portainer/./app/kubernetes/converters/secret.js","webpack://portainer/./app/kubernetes/converters/service.js","webpack://portainer/./app/kubernetes/converters/statefulSet.js","webpack://portainer/./app/kubernetes/converters/storageClass.js","webpack://portainer/./app/kubernetes/converters/volume.js","webpack://portainer/./app/kubernetes/custom-templates/index.js","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/index.js","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.controller.js","webpack://portainer/./app/kubernetes/endpoint/converter.js","webpack://portainer/./app/kubernetes/endpoint/models.js","webpack://portainer/./app/kubernetes/endpoint/rest.js","webpack://portainer/./app/kubernetes/endpoint/service.js","webpack://portainer/./app/kubernetes/filters/applicationFilters.js","webpack://portainer/./app/kubernetes/filters/configurationFilters.js","webpack://portainer/./app/kubernetes/filters/eventFilters.js","webpack://portainer/./app/kubernetes/filters/filters.js","webpack://portainer/./app/kubernetes/helm/rest.js","webpack://portainer/./app/kubernetes/helm/service.js","webpack://portainer/./app/kubernetes/helpers/application/index.js","webpack://portainer/./app/kubernetes/helpers/commonHelper.js","webpack://portainer/./app/kubernetes/helpers/configMapHelper.js","webpack://portainer/./app/kubernetes/helpers/configurationHelper.js","webpack://portainer/./app/kubernetes/helpers/eventHelper.js","webpack://portainer/./app/kubernetes/helpers/formValidationHelper.js","webpack://portainer/./app/kubernetes/helpers/namespaceHelper.js","webpack://portainer/./app/kubernetes/helpers/resourceQuotaHelper.js","webpack://portainer/./app/kubernetes/helpers/resourceReservationHelper.js","webpack://portainer/./app/kubernetes/helpers/serviceHelper.js","webpack://portainer/./app/kubernetes/helpers/stackHelper.js","webpack://portainer/./app/kubernetes/helpers/stackHelper.test.js","webpack://portainer/./app/kubernetes/helpers/volumeHelper.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/converter.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/helper.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/models.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/payload.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/rest.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/service.js","webpack://portainer/./app/kubernetes/ingress/constants.js","webpack://portainer/./app/kubernetes/ingress/converter.js","webpack://portainer/./app/kubernetes/ingress/helper.js","webpack://portainer/./app/kubernetes/ingress/models.js","webpack://portainer/./app/kubernetes/ingress/payloads.js","webpack://portainer/./app/kubernetes/ingress/rest.js","webpack://portainer/./app/kubernetes/ingress/service.js","webpack://portainer/./app/kubernetes/models/application/formValues.js","webpack://portainer/./app/kubernetes/models/application/models/constants.js","webpack://portainer/./app/kubernetes/models/application/models/index.js","webpack://portainer/./app/kubernetes/models/application/payloads.js","webpack://portainer/./app/kubernetes/models/common/params.js","webpack://portainer/./app/kubernetes/models/common/payloads.js","webpack://portainer/./app/kubernetes/models/config-map/models.js","webpack://portainer/./app/kubernetes/models/config-map/payloads.js","webpack://portainer/./app/kubernetes/models/configuration/formvalues.js","webpack://portainer/./app/kubernetes/models/configuration/models.js","webpack://portainer/./app/kubernetes/models/daemon-set/models.js","webpack://portainer/./app/kubernetes/models/daemon-set/payloads.js","webpack://portainer/./app/kubernetes/models/deploy.js","webpack://portainer/./app/kubernetes/models/deployment/models.js","webpack://portainer/./app/kubernetes/models/deployment/payloads.js","webpack://portainer/./app/kubernetes/models/event/models.js","webpack://portainer/./app/kubernetes/models/history/models.js","webpack://portainer/./app/kubernetes/models/namespace/models.js","webpack://portainer/./app/kubernetes/models/namespace/payloads.js","webpack://portainer/./app/kubernetes/models/nodes-limits/models.js","webpack://portainer/./app/kubernetes/models/port/models.js","webpack://portainer/./app/kubernetes/models/resource-pool/formValues.js","webpack://portainer/./app/kubernetes/models/resource-pool/models.js","webpack://portainer/./app/kubernetes/models/resource-quota/models.js","webpack://portainer/./app/kubernetes/models/resource-quota/payloads.js","webpack://portainer/./app/kubernetes/models/resource-reservation/models.js","webpack://portainer/./app/kubernetes/models/resource-types/models.js","webpack://portainer/./app/kubernetes/models/secret/models.js","webpack://portainer/./app/kubernetes/models/secret/payloads.js","webpack://portainer/./app/kubernetes/models/service/models.js","webpack://portainer/./app/kubernetes/models/service/payloads.js","webpack://portainer/./app/kubernetes/models/stack/models.js","webpack://portainer/./app/kubernetes/models/stateful-set/models.js","webpack://portainer/./app/kubernetes/models/stateful-set/payloads.js","webpack://portainer/./app/kubernetes/models/storage-class/models.js","webpack://portainer/./app/kubernetes/models/storage-class/payload.js","webpack://portainer/./app/kubernetes/models/volume/models.js","webpack://portainer/./app/kubernetes/models/volume/payloads.js","webpack://portainer/./app/kubernetes/node/converter.js","webpack://portainer/./app/kubernetes/node/filters.js","webpack://portainer/./app/kubernetes/node/formValues.js","webpack://portainer/./app/kubernetes/node/helper.js","webpack://portainer/./app/kubernetes/node/models.js","webpack://portainer/./app/kubernetes/node/payload.js","webpack://portainer/./app/kubernetes/node/rest.js","webpack://portainer/./app/kubernetes/node/service.js","webpack://portainer/./app/kubernetes/pod/converter.js","webpack://portainer/./app/kubernetes/pod/models/affinities.ts","webpack://portainer/./app/kubernetes/pod/models/index.js","webpack://portainer/./app/kubernetes/pod/payloads/affinities.js","webpack://portainer/./app/kubernetes/pod/payloads/create.js","webpack://portainer/./app/kubernetes/pod/service.js","webpack://portainer/./app/kubernetes/registries/index.js","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/index.js","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/kube-registry-access-view.controller.js","webpack://portainer/./app/react/kubernetes/cluster/RegistryAccessView/ConfirmDeleteAccess.tsx","webpack://portainer/./app/kubernetes/rest/configMap.js","webpack://portainer/./app/kubernetes/rest/controllerRevision.js","webpack://portainer/./app/kubernetes/rest/daemonSet.js","webpack://portainer/./app/kubernetes/rest/deployment.js","webpack://portainer/./app/kubernetes/rest/endpoint.js","webpack://portainer/./app/kubernetes/rest/event.js","webpack://portainer/./app/kubernetes/rest/health.js","webpack://portainer/./app/kubernetes/rest/namespace.js","webpack://portainer/./app/kubernetes/rest/nodesLimits.js","webpack://portainer/./app/kubernetes/rest/persistentVolumeClaim.js","webpack://portainer/./app/kubernetes/rest/pod.js","webpack://portainer/./app/kubernetes/rest/portainer-namespace.js","webpack://portainer/./app/kubernetes/rest/replicaSet.js","webpack://portainer/./app/kubernetes/rest/resourceQuota.js","webpack://portainer/./app/kubernetes/rest/response/transform.js","webpack://portainer/./app/kubernetes/rest/secret.js","webpack://portainer/./app/kubernetes/rest/service.js","webpack://portainer/./app/kubernetes/rest/serviceAccount.js","webpack://portainer/./app/kubernetes/rest/statefulSet.js","webpack://portainer/./app/kubernetes/rest/storage.js","webpack://portainer/./app/kubernetes/services/applicationService.js","webpack://portainer/./app/kubernetes/services/configMapService.js","webpack://portainer/./app/kubernetes/services/configurationService.js","webpack://portainer/./app/kubernetes/services/controllerRevisionService.js","webpack://portainer/./app/kubernetes/services/daemonSetService.js","webpack://portainer/./app/kubernetes/services/deploymentService.js","webpack://portainer/./app/kubernetes/services/eventService.js","webpack://portainer/./app/kubernetes/services/healthService.js","webpack://portainer/./app/kubernetes/services/namespaceService.js","webpack://portainer/./app/kubernetes/services/nodesLimitsService.js","webpack://portainer/./app/kubernetes/services/persistentVolumeClaimService.js","webpack://portainer/./app/kubernetes/services/resourcePoolService.js","webpack://portainer/./app/kubernetes/services/resourceQuotaService.js","webpack://portainer/./app/kubernetes/services/secretService.js","webpack://portainer/./app/kubernetes/services/serviceService.js","webpack://portainer/./app/kubernetes/services/stackService.js","webpack://portainer/./app/kubernetes/services/statefulSetService.js","webpack://portainer/./app/kubernetes/services/storageService.js","webpack://portainer/./app/kubernetes/services/volumeService.js","webpack://portainer/./app/kubernetes/store/namespace.js","webpack://portainer/./app/kubernetes/views/applications/applications.js","webpack://portainer/./app/kubernetes/views/applications/applicationsController.js","webpack://portainer/./app/kubernetes/views/applications/create/createApplication.js","webpack://portainer/./app/react/kubernetes/applications/CreateView/UpdateIngressPrompt.tsx","webpack://portainer/./app/kubernetes/views/applications/create/createApplicationController.js","webpack://portainer/./app/kubernetes/views/applications/helm/helm.controller.js","webpack://portainer/./app/kubernetes/views/applications/helm/index.js","webpack://portainer/./app/kubernetes/views/applications/logs/logs.js","webpack://portainer/./app/kubernetes/views/applications/logs/logsController.js","webpack://portainer/./app/kubernetes/views/applications/stats/stats.js","webpack://portainer/./app/kubernetes/views/applications/stats/statsController.js","webpack://portainer/./app/kubernetes/views/cluster/cluster.js","webpack://portainer/./app/kubernetes/views/cluster/clusterController.js","webpack://portainer/./app/kubernetes/views/cluster/node/node.js","webpack://portainer/./app/kubernetes/views/cluster/node/nodeController.js","webpack://portainer/./app/react/kubernetes/cluster/NodeView/ConfirmUpdateNode.tsx","webpack://portainer/./app/kubernetes/views/cluster/node/stats/stats.js","webpack://portainer/./app/kubernetes/views/cluster/node/stats/statsController.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMap.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMapController.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMap.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMapController.js","webpack://portainer/./app/kubernetes/views/configurations/configurationsController.js","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecret.js","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecretController.js","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secret.js","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secretController.js","webpack://portainer/./app/kubernetes/views/configurations/validation.js","webpack://portainer/./app/kubernetes/views/deploy/deploy.js","webpack://portainer/./app/kubernetes/views/deploy/deployController.js","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccess.js","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccessController.js","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/index.js","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.controller.js","webpack://portainer/./app/kubernetes/views/resource-pools/create/createResourcePoolController.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/controller.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/index.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePool.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePoolController.js","webpack://portainer/./app/react/kubernetes/namespaces/ItemView/ConfirmUpdateNamespace.tsx","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePools.js","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePoolsController.js","webpack://portainer/./app/kubernetes/views/security-constraint/constraintController.js","webpack://portainer/./app/kubernetes/views/stacks/logs/logs.js","webpack://portainer/./app/kubernetes/views/stacks/logs/logsController.js","webpack://portainer/./app/kubernetes/views/summary/resources/applicationResources.js","webpack://portainer/./app/kubernetes/views/summary/resources/configurationResources.js","webpack://portainer/./app/kubernetes/views/summary/resources/helpers.js","webpack://portainer/./app/kubernetes/views/summary/resources/namespaceResources.js","webpack://portainer/./app/kubernetes/views/summary/summary.js","webpack://portainer/./app/kubernetes/views/summary/summaryController.js","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/controller.js","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/index.js","webpack://portainer/./app/kubernetes/views/volumes/edit/volume.js","webpack://portainer/./app/kubernetes/views/volumes/edit/volumeController.js","webpack://portainer/./app/react/kubernetes/volumes/ItemView/ConfirmRedeployModal.tsx","webpack://portainer/./app/kubernetes/views/volumes/volumes.js","webpack://portainer/./app/kubernetes/views/volumes/volumesController.js","webpack://portainer/./app/matomo-setup.js","webpack://portainer/./app/react/portainer/feature-flags/limited-feature.directive.ts","webpack://portainer/./app/react/portainer/feature-flags/index.ts","webpack://portainer/./app/portainer/services/api/index.ts","webpack://portainer/./app/react/hooks/current-environment-store.ts","webpack://portainer/./app/portainer/services/endpointProvider.ts","webpack://portainer/./app/portainer/services/index.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/components/GroupAssociationTable.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/index.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/helper.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/url.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/helm-repositories.service.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/HelmRepositoryDatatableActions.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/HelmRepositoryDatatable.tsx","webpack://portainer/./app/portainer/react/components/file-upload-field.ts","webpack://portainer/./app/portainer/react/components/switch-field.ts","webpack://portainer/./app/portainer/react/components/custom-templates/variables-field.ts","webpack://portainer/./app/portainer/react/components/custom-templates/index.ts","webpack://portainer/./app/portainer/react/components/git-form.ts","webpack://portainer/./app/react/portainer/feature-flags/useFeatureFlag.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/created.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/helper.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/index.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/FDOProfilesDatatableActions.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/FDOProfilesDatatable.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/useFDOProfiles.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.module.css?f2a1","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.validation.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsOpenAMT/SettingsOpenAMT.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/Badge.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/PasswordLengthSlider/PasswordLengthSlider.module.css?000c","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/PasswordLengthSlider/PasswordLengthSlider.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/SaveAuthSettingsButton.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/InternalAuth.tsx","webpack://portainer/./app/react/components/form-components/validate-url.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/useToggledValue.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/DemoAlert.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/LogoFieldset.tsx","webpack://portainer/./app/react/components/form-components/Input/Textarea.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/ScreenBannerFieldset.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/TemplatesUrlSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/EnableTelemetryField.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/ApplicationSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/HelmSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeConfigSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeNoteMinimumCharacters.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/DeploymentOptionsSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeSettingsPanel.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/BEOverlay.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/useUpdateSSLConfigMutation.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HelmCertPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/AddLabelForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/HiddenContainersTable.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/HiddenContainersPanel.tsx","webpack://portainer/./app/react/hooks/withHideOnExtension.tsx","webpack://portainer/./app/react/portainer/settings/queries/useSSLSettings.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/SSLSettingsPanel/SSLSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/OAuth/AuthStyleField.tsx","webpack://portainer/./app/portainer/react/components/settings.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsOpenAMT/SettingsOpenAMT.validation.ts","webpack://portainer/./app/react/portainer/access-control/AccessManagement/PorAccessManagementUsersSelector.tsx","webpack://portainer/./app/portainer/react/components/access-control.ts","webpack://portainer/./app/react/portainer/access-control/PorAccessControlForm/TeamsSelector.tsx","webpack://portainer/./app/react/portainer/access-control/PorAccessControlForm/UsersSelector.tsx","webpack://portainer/./app/react/portainer/environments/ItemView/EdgeKeyDisplay.tsx","webpack://portainer/./app/portainer/react/components/environments.ts","webpack://portainer/./app/react/portainer/environments/KvmView/KVMControl/KVMControl.tsx","webpack://portainer/./app/react/portainer/registries/repositories/ListView/useRepositoryTags.ts","webpack://portainer/./app/react/portainer/registries/repositories/ListView/columns.tsx","webpack://portainer/./app/portainer/react/components/registries.ts","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryName.tsx","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryAction.tsx","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryDomain.tsx","webpack://portainer/./app/react/portainer/registries/repositories/ListView/RepositoriesDatatable.tsx","webpack://portainer/./app/react/portainer/account/useUpdateUserMutation.tsx","webpack://portainer/./app/react/portainer/account/AccountView/ApplicationSettings/ApplicationSettingsForm.tsx","webpack://portainer/./app/portainer/react/components/account.ts","webpack://portainer/./app/react/portainer/account/AccountView/ApplicationSettings/ApplicationSettingsWidget.tsx","webpack://portainer/./app/portainer/react/components/index.ts","webpack://portainer/./app/react/components/PasswordCheckHint.tsx","webpack://portainer/./app/react/components/ReactQueryDevtoolsWrapper.tsx","webpack://portainer/./app/react/portainer/environments/environment-groups/components/AssociatedEnvironmentsSelector.tsx","webpack://portainer/./app/react/hooks/usePaginationLimitState.ts","webpack://portainer/./app/assets/ico/heartbeat-up.svg","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/types.ts","webpack://portainer/./app/assets/ico/heartbeat-down.svg","webpack://portainer/./app/react/components/EnvironmentStatusBadgeItem.tsx","webpack://portainer/./app/react/components/EdgeIndicator.tsx","webpack://portainer/./app/react/components/EnvironmentStatusBadge.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentIcon.tsx","webpack://portainer/./app/react/components/StatsItem.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStatsDocker.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStatsKubernetes.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStats.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EngineVersion.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentTypeTag.tsx","webpack://portainer/./app/react/components/LinkButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentBrowseButtons.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EditButtons.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/AgentDetails.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/kubeconfig.service.ts","webpack://portainer/./app/react/hooks/useListSelection.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigPrompt.module.css?e1e9","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigPrompt.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/NoEnvironmentsInfoPanel.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/urls.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useSupportedAgentVersions.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/UpdateBadge.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/SortbySelector.module.css?a959","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/SortbySelector.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentList.module.css?ca38","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentListFilters.tsx","webpack://portainer/./app/react/portainer/environments/queries/useAgentVersionsList.ts","webpack://portainer/./app/react/edge/edge-devices/open-amt/useActivateDevicesMutation.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/AMTButton/AssociateAMTDialog.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/AMTButton/AMTButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentList.tsx","webpack://portainer/./app/react/portainer/HomeView/EdgeLoadingSpinner.module.css?deac","webpack://portainer/./app/react/portainer/HomeView/EdgeLoadingSpinner.tsx","webpack://portainer/./app/react/hooks/useUIState.tsx","webpack://portainer/./app/react/portainer/HomeView/home.service.ts","webpack://portainer/./app/react/portainer/HomeView/MotdPanel.tsx","webpack://portainer/./app/react/portainer/HomeView/HomeView.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAcccessToken.validation.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/useCreateUserAccessTokenMutation.ts","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAccessTokenInnerForm.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/DisplayUserAccessToken.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAccessToken.tsx","webpack://portainer/./app/react/portainer/common/PortainerUrlField.tsx","webpack://portainer/./app/react/portainer/common/PortainerTunnelAddrField.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettings/EdgeComputeSettings.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettings/EdgeComputeSettings.validation.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/DeploymentSyncOptions/DeploymentSyncOptions.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/EnableWaitingRoomSwitch.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/AutoEnvCreationSettingsForm.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/AutomaticEdgeEnvCreation.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/edge.ts","webpack://portainer/./app/react/edge/components/edge-agent-standard.svg","webpack://portainer/./app/react/edge/components/edge-agent-async.svg","webpack://portainer/./app/react/portainer/environments/EdgeAutoCreateScriptView/AutomaticEdgeEnvCreation/AutomaticEdgeEnvCreation.tsx","webpack://portainer/./app/react/portainer/environments/EdgeAutoCreateScriptView/EdgeAutoCreateScriptView.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/helper.ts","webpack://portainer/./app/react/portainer/environments/ListView/columns/actions.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/name.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/type.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/index.ts","webpack://portainer/./app/react/portainer/environments/ListView/columns/url.tsx","webpack://portainer/./app/react/portainer/environments/ListView/ImportFdoDeviceButton.tsx","webpack://portainer/./app/react/portainer/environments/ListView/EnvironmentsDatatable.tsx","webpack://portainer/./app/react/portainer/environments/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/backup-options.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/backupSettings.service.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/queryKeys.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useBackupS3Settings.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useUpdateBackupS3SettingsMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useDownloadBackupMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useExportS3BackupMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupFileForm.validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/SecurityFieldset.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupFileForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupS3Form.validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupS3Form.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/EnableOpenAIIntegrationSwitch.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/ExperimentalFeaturesForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/ExperimentalFeatures.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/SettingsView.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/components/CreateHelmRepositoryForm.validation.ts","webpack://portainer/./app/react/portainer/account/helm-repositories/components/HelmRepositoryForm.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/CreateHelmRepositoryView/CreateHelmRespositoriesForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/components/Option/Option.module.css?6843","webpack://portainer/./app/react/portainer/environments/wizard/components/Option/Option.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/create.ts","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/useFetchOrCreateLocalEnvironment.ts","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/HomeView.module.css?3029","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/HomeView.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/EnvironmentSelector.tsx","webpack://portainer/./app/assets/ico/vendor/kaas-icon.svg","webpack://portainer/./app/assets/ico/vendor/install-kubernetes.svg","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/environment-types.ts","webpack://portainer/./app/react/components/Stepper/Stepper.module.css?ee23","webpack://portainer/./app/react/components/Stepper/Stepper.tsx","webpack://portainer/./app/react/portainer/environments/queries/useCreateEnvironmentMutation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/MetadataFieldset.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MoreSettingsSection.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/NameField.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentFieldset.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/validation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentForm.validation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/EnvironmentUrlField.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/AgentForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/AgentForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/AgentTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APIForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APIForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APITab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/WizardDocker.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardAzure/WizardAzure.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/AgentPanel.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/KubeConfigTeaserForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/WizardKubernetes.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/EnvironmentsCreationView.module.css?2094","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardEndpointsList/WizardEndpointsList.module.css?db60","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardEndpointsList/WizardEndpointsList.tsx","webpack://portainer/./app/portainer/react/views/wizard.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/EnvironmentsCreationView.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/EndpointTypeView.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/Details.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/RowContext.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/name-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/UsersList.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/RowContext.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/helper.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/name-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/team-role-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/index.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/TeamMembersList.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamAssociationSelector.tsx","webpack://portainer/./app/react/portainer/users/teams/ListView/CreateTeamForm/CreateTeamForm.tsx","webpack://portainer/./app/react/portainer/users/teams/ListView/CreateTeamForm/CreateTeamForm.validation.ts","webpack://portainer/./app/react/portainer/users/teams/ListView/TeamsDatatable/TeamsDatatable.tsx","webpack://portainer/./app/portainer/react/views/teams.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/ItemView.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/useTeamIdParam.ts","webpack://portainer/./app/react/portainer/users/teams/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/list.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/types.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useRemoveMutation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/helper.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/created.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/groups.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/schedule-status.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/ScheduledTimeField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/scheduled-time.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/type.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/index.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/datatable-store.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/create.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/NameField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/useEdgeGroupsEnvironmentIds.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/VersionSelect.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/UpdateScheduleDetailsFieldset.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/usePreviousVersions.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/RollbackOptions.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/RollbackScheduleDetailsFieldset.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/ScheduleTypeSelector.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/useEnvironments.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/validation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/EdgeGroupsField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useItem.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useUpdateMutation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ItemView/ItemView.tsx","webpack://portainer/./app/portainer/react/views/update-schedules.ts","webpack://portainer/./app/portainer/react/views/index.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettingsView.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/CreateHelmRepositoryView/CreateHelmRepositoriesView.tsx","webpack://portainer/./app/portainer/react/index.ts","webpack://portainer/./app/react/sidebar/useSidebarState.tsx","webpack://portainer/./app/react/sidebar/Sidebar.module.css?f14d","webpack://portainer/./app/react/sidebar/SidebarItem/Wrapper.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarTooltip.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/useSidebarSrefActive.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarItem.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/index.ts","webpack://portainer/./app/react/sidebar/SidebarSection.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarParent.tsx","webpack://portainer/./app/react/sidebar/EdgeComputeSidebar.tsx","webpack://portainer/./app/react/portainer/environments/utils/docker.svg","webpack://portainer/./app/react/portainer/environments/utils/azure.svg","webpack://portainer/./app/react/portainer/environments/utils/kubernetes.svg","webpack://portainer/./app/react/portainer/environments/utils/get-platform-icon.ts","webpack://portainer/./app/react/sidebar/EnvironmentSidebar.module.css?43f4","webpack://portainer/./app/react/sidebar/items/DashboardLink.tsx","webpack://portainer/./app/react/sidebar/AzureSidebar/AzureSidebar.tsx","webpack://portainer/./app/react/sidebar/items/VolumesLink.tsx","webpack://portainer/./app/react/sidebar/DockerSidebar.tsx","webpack://portainer/./app/portainer/services/terminal-window.ts","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShell.module.css?3135","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShell.tsx","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShellButton.tsx","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubernetesSidebar.tsx","webpack://portainer/./app/react/sidebar/EnvironmentSidebar.tsx","webpack://portainer/./app/react/sidebar/SettingsSidebar.tsx","webpack://portainer/./app/react/sidebar/Footer/UpdateNotifications.module.css?f05e","webpack://portainer/./app/react/sidebar/Footer/UpdateNotifications.tsx","webpack://portainer/./app/react/sidebar/Footer/portainer_logo.svg","webpack://portainer/./app/react/sidebar/Footer/Footer.module.css?214d","webpack://portainer/./app/react/sidebar/Footer/BuildInfoModal.tsx","webpack://portainer/./app/react/sidebar/Footer/Footer.tsx","webpack://portainer/./app/react/sidebar/Header.module.css?1fea","webpack://portainer/./app/react/sidebar/Header.tsx","webpack://portainer/./app/react/portainer/system/useSystemInfo.ts","webpack://portainer/./app/react/portainer/system/useUpgradeEditionMutation.ts","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UploadLicenseDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/LoadingDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/NonAdminUpgradeDialog.tsx","webpack://portainer/./app/react/components/HubspotForm.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/GetLicenseDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UpgradeDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UpgradeBEBanner.tsx","webpack://portainer/./app/react/sidebar/Sidebar.tsx","webpack://portainer/./app/portainer/react/views/sidebar.ts","webpack://portainer/./app/portainer/environments/index.ts","webpack://portainer/./app/portainer/helpers/index.ts","webpack://portainer/./app/portainer/__module.js","webpack://portainer/./app/portainer/components/InformationPanel/InformationPanelAngular.js","webpack://portainer/./app/portainer/components/access-datatable/accessDatatable.js","webpack://portainer/./app/portainer/components/access-datatable/accessDatatableController.js","webpack://portainer/./app/portainer/components/accessControlForm/por-access-control-form.js","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlFormController.js","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlFormModel.js","webpack://portainer/./app/portainer/components/accessManagement/index.js","webpack://portainer/./app/portainer/components/accessManagement/por-access-management.js","webpack://portainer/./app/portainer/components/accessManagement/porAccessManagementController.js","webpack://portainer/./app/portainer/components/autofocus.js","webpack://portainer/./app/portainer/components/buttonSpinner.js","webpack://portainer/./app/portainer/components/code-editor/code-editor.controller.js","webpack://portainer/./app/portainer/components/code-editor/code-editor.js","webpack://portainer/./app/portainer/components/code-editor/codeEditorController.js","webpack://portainer/./app/portainer/components/copy-button/copy-button.controller.js","webpack://portainer/./app/portainer/components/copy-button/copy-button.js","webpack://portainer/./app/portainer/components/custom-template-selector/custom-template-selector.controller.js","webpack://portainer/./app/portainer/components/custom-template-selector/index.js","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.controller.js","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/index.js","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.controller.js","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/index.js","webpack://portainer/./app/portainer/components/datatables/filter/datatable-filter.controller.js","webpack://portainer/./app/portainer/components/datatables/filter/index.js","webpack://portainer/./app/portainer/components/datatables/genericDatatableController.js","webpack://portainer/./app/portainer/components/datatables/groups-datatable/groupsDatatable.js","webpack://portainer/./app/portainer/components/datatables/index.js","webpack://portainer/./app/portainer/components/datatables/pagination/index.js","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatable.js","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatableController.js","webpack://portainer/./app/portainer/components/datatables/strings-datatable/index.js","webpack://portainer/./app/portainer/components/datatables/tags-datatable/tagsDatatable.js","webpack://portainer/./app/portainer/components/datatables/titlebar/index.js","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatable.js","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatableController.js","webpack://portainer/./app/portainer/components/demo-feature-indicator/demo-feature-indicator.controller.js","webpack://portainer/./app/portainer/components/demo-feature-indicator/index.js","webpack://portainer/./app/portainer/components/endpointSecurity/por-endpoint-security.js","webpack://portainer/./app/react/portainer/environments/ItemView/tls-options.tsx","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurityController.js","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurityModel.js","webpack://portainer/./app/portainer/components/focusIf.js","webpack://portainer/./app/portainer/components/form-components/file-upload-form/index.js","webpack://portainer/./app/portainer/components/form-components/index.js","webpack://portainer/./app/portainer/components/form-components/web-editor-form/index.js","webpack://portainer/./app/portainer/components/form-components/web-editor-form/web-editor-form.controller.js","webpack://portainer/./app/portainer/components/forms/group-form/group-form.js","webpack://portainer/./app/portainer/components/forms/group-form/groupFormController.js","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.controller.js","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.js","webpack://portainer/./app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.js","webpack://portainer/./app/portainer/components/forms/registry-form-azure/registry-form-azure.js","webpack://portainer/./app/portainer/components/forms/registry-form-custom/registry-form-custom.js","webpack://portainer/./app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatableController.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.js","webpack://portainer/./app/portainer/components/forms/registry-form-proget/registry-form-proget.js","webpack://portainer/./app/portainer/components/forms/registry-form-quay/registry-form-quay.js","webpack://portainer/./app/portainer/components/forms/stack-from-template-form/index.js","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/index.js","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.controller.js","webpack://portainer/./app/portainer/components/widget/index.ts","webpack://portainer/./app/portainer/components/widget/rd-widget.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-body.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-custom-header.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-footer.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-title.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-taskbar.ts","webpack://portainer/./app/portainer/components/BEFeatureIndicator/BEFeatureIndicator.controller.ts","webpack://portainer/./app/portainer/components/BEFeatureIndicator/index.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auth-fieldset.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auth-fieldset.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auto-update-fieldset.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auto-update-fieldset.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-ref-field.ts","webpack://portainer/./app/portainer/components/forms/git-form/index.ts","webpack://portainer/./app/portainer/components/tls-fieldset/index.ts","webpack://portainer/./app/portainer/components/index.js","webpack://portainer/./app/portainer/components/intervalFormat.js","webpack://portainer/./app/portainer/components/onEnterKey.js","webpack://portainer/./app/portainer/components/option-panel/index.js","webpack://portainer/./app/portainer/components/option-panel/option-panel.controller.js","webpack://portainer/./app/portainer/components/product-list/product-item/product-item.js","webpack://portainer/./app/portainer/components/product-list/product-list.js","webpack://portainer/./app/portainer/components/registry-details/index.js","webpack://portainer/./app/portainer/components/sensitive-details/sensitive-details.js","webpack://portainer/./app/portainer/components/show-hide/show-hide.js","webpack://portainer/./app/portainer/components/slider/slider.js","webpack://portainer/./app/portainer/components/slider/sliderController.js","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form-controller.js","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form.js","webpack://portainer/./app/portainer/components/status-indicator/index.js","webpack://portainer/./app/portainer/components/template-widget.js","webpack://portainer/./app/react/portainer/account/AccountView/theme-options.tsx","webpack://portainer/./app/portainer/components/theme/theme-settings.controller.js","webpack://portainer/./app/portainer/components/theme/theme-settings.js","webpack://portainer/./app/portainer/environments/azure-endpoint-config/azure-endpoint-config.js","webpack://portainer/./app/portainer/filters/filters.js","webpack://portainer/./app/portainer/filters/index.js","webpack://portainer/./app/portainer/helpers/endpointHelper.js","webpack://portainer/./app/portainer/helpers/formHelper.js","webpack://portainer/./app/portainer/helpers/genericHelper.js","webpack://portainer/./app/portainer/helpers/networkHelper.js","webpack://portainer/./app/portainer/helpers/pathHelper.js","webpack://portainer/./app/portainer/helpers/resourceControlHelper.js","webpack://portainer/./app/react/docker/stacks/view-models/external-stack.ts","webpack://portainer/./app/portainer/helpers/stackHelper.js","webpack://portainer/./app/portainer/helpers/tagHelper.js","webpack://portainer/./app/portainer/helpers/templateHelper.js","webpack://portainer/./app/portainer/helpers/urlHelper.js","webpack://portainer/./app/portainer/models/access.js","webpack://portainer/./app/portainer/models/dockerhub.js","webpack://portainer/./app/portainer/models/endpoint/formValues.js","webpack://portainer/./app/portainer/models/endpoint/models.js","webpack://portainer/./app/portainer/models/gitlabRegistry.js","webpack://portainer/./app/portainer/models/group.js","webpack://portainer/./app/portainer/models/registry.js","webpack://portainer/./app/portainer/models/registryRepository.js","webpack://portainer/./app/portainer/models/registryTypes.js","webpack://portainer/./app/portainer/models/resourceControl/resourceControlCreatePayload.js","webpack://portainer/./app/portainer/models/resourceControl/resourceControlOwnershipParameters.js","webpack://portainer/./app/portainer/models/schedule.js","webpack://portainer/./app/portainer/models/settings.js","webpack://portainer/./app/portainer/models/status.js","webpack://portainer/./app/portainer/models/tag.js","webpack://portainer/./app/portainer/models/team.js","webpack://portainer/./app/portainer/models/teamMembership.js","webpack://portainer/./app/portainer/models/user.js","webpack://portainer/./app/portainer/models/webhook.js","webpack://portainer/./app/portainer/oauth/__module.js","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/index.js","webpack://portainer/./app/react/portainer/settings/AuthenticationView/oauth-options.tsx","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/oauth-provider-selector.controller.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/index.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/oauth-settings.controller.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/providers.js","webpack://portainer/./app/portainer/oauth/services/rest/oauth.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer-datatable/index.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer.controller.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/index.js","webpack://portainer/./app/portainer/rbac/components/roles-datatable/index.js","webpack://portainer/./app/portainer/rbac/components/roles-datatable/roles-datatable.controller.js","webpack://portainer/./app/portainer/rbac/index.js","webpack://portainer/./app/portainer/rbac/models/access.js","webpack://portainer/./app/portainer/rbac/models/role.js","webpack://portainer/./app/portainer/rbac/services/role.rest.js","webpack://portainer/./app/portainer/rbac/services/role.service.js","webpack://portainer/./app/portainer/rbac/views/roles/index.js","webpack://portainer/./app/portainer/rbac/views/roles/roles.controller.js","webpack://portainer/./app/portainer/registry-management/index.js","webpack://portainer/./app/portainer/registry-management/views/create/createRegistry.js","webpack://portainer/./app/react/portainer/registries/CreateView/options.tsx","webpack://portainer/./app/portainer/registry-management/views/create/createRegistryController.js","webpack://portainer/./app/portainer/registry-management/views/edit/registry.js","webpack://portainer/./app/portainer/registry-management/views/edit/registryController.js","webpack://portainer/./app/portainer/registry-management/views/list/registriesController.js","webpack://portainer/./app/portainer/rest/auth.js","webpack://portainer/./app/portainer/rest/backup.js","webpack://portainer/./app/portainer/rest/customTemplate.js","webpack://portainer/./app/portainer/rest/endpoint.js","webpack://portainer/./app/portainer/rest/gitlab.js","webpack://portainer/./app/portainer/rest/group.js","webpack://portainer/./app/portainer/rest/registry.js","webpack://portainer/./app/portainer/rest/resourceControl.js","webpack://portainer/./app/portainer/rest/settings.js","webpack://portainer/./app/portainer/rest/ssl.js","webpack://portainer/./app/portainer/rest/stack.js","webpack://portainer/./app/portainer/rest/support.js","webpack://portainer/./app/portainer/rest/tag.js","webpack://portainer/./app/portainer/rest/team.js","webpack://portainer/./app/portainer/rest/teamMembership.js","webpack://portainer/./app/portainer/rest/template.js","webpack://portainer/./app/portainer/rest/transform/getEndpointsTotalCount.js","webpack://portainer/./app/portainer/rest/transform/gitlabResponseGetLink.js","webpack://portainer/./app/portainer/rest/user.js","webpack://portainer/./app/portainer/rest/webhooks.js","webpack://portainer/./app/portainer/services/allSettled.js","webpack://portainer/./app/portainer/services/api/accessService.js","webpack://portainer/./app/portainer/services/api/backupService.js","webpack://portainer/./app/portainer/services/api/customTemplate.js","webpack://portainer/./app/portainer/services/api/dockerhubService.js","webpack://portainer/./app/portainer/services/api/endpointService.js","webpack://portainer/./app/portainer/services/api/groupService.js","webpack://portainer/./app/portainer/services/api/registryService.js","webpack://portainer/./app/portainer/services/api/resourceControlService.js","webpack://portainer/./app/portainer/services/api/settingsService.js","webpack://portainer/./app/portainer/services/api/sslService.js","webpack://portainer/./app/react/docker/stacks/view-models/stack.ts","webpack://portainer/./app/portainer/services/api/stackService.js","webpack://portainer/./app/portainer/services/api/statusService.js","webpack://portainer/./app/portainer/services/api/supportService.js","webpack://portainer/./app/portainer/services/api/tagService.js","webpack://portainer/./app/portainer/services/api/teamMembershipService.js","webpack://portainer/./app/portainer/services/api/teamService.js","webpack://portainer/./app/portainer/services/api/templateService.js","webpack://portainer/./app/portainer/services/api/userService.js","webpack://portainer/./app/portainer/services/api/webhookService.js","webpack://portainer/./app/portainer/services/async.js","webpack://portainer/./app/portainer/services/authentication.js","webpack://portainer/./app/portainer/services/chartService.js","webpack://portainer/./app/portainer/services/datatableService.js","webpack://portainer/./app/portainer/services/fileUpload.js","webpack://portainer/./app/portainer/services/formValidator.js","webpack://portainer/./app/portainer/services/localStorage.js","webpack://portainer/./app/portainer/services/nameValidator.js","webpack://portainer/./app/portainer/services/pagination.js","webpack://portainer/./app/portainer/services/registryGitlabService.js","webpack://portainer/./app/react/docker/images/ItemView/RegistrySelectPrompt.tsx","webpack://portainer/./app/portainer/services/registryModalService.js","webpack://portainer/./app/portainer/services/session-storage.js","webpack://portainer/./app/portainer/services/stateManager.js","webpack://portainer/./app/portainer/services/themeManager.js","webpack://portainer/./app/portainer/settings/authentication/auth-method-constants.js","webpack://portainer/./app/portainer/settings/authentication/auth-type-constants.js","webpack://portainer/./app/portainer/settings/authentication/auto-user-provision-toggle/index.js","webpack://portainer/./app/portainer/settings/authentication/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/ad-settings.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-connectivity-check/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-groups-datatable/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-security/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings.model.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/index.js","webpack://portainer/./app/react/portainer/settings/AuthenticationView/ldap-options.tsx","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-users-datatable/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap.rest.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap.service.js","webpack://portainer/./app/portainer/settings/authentication/save-auth-settings-button/index.js","webpack://portainer/./app/portainer/settings/general/index.js","webpack://portainer/./app/portainer/settings/index.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.controller.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/index.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.controller.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/index.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.controller.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/index.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.controller.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/index.js","webpack://portainer/./app/react/portainer/notifications/columns/helper.ts","webpack://portainer/./app/react/portainer/notifications/columns/type.tsx","webpack://portainer/./app/react/portainer/notifications/columns/title.tsx","webpack://portainer/./app/react/portainer/notifications/columns/details.tsx","webpack://portainer/./app/react/portainer/notifications/columns/index.tsx","webpack://portainer/./app/react/portainer/notifications/columns/time.tsx","webpack://portainer/./app/react/portainer/notifications/NotificationsView.tsx","webpack://portainer/./app/portainer/user-activity/index.js","webpack://portainer/./app/portainer/views/account/accountController.js","webpack://portainer/./app/portainer/views/auth/authController.js","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/index.js","webpack://portainer/./app/portainer/views/devices/import/importDeviceController.js","webpack://portainer/./app/portainer/views/devices/profiles/add/addProfileController.js","webpack://portainer/./app/portainer/views/devices/profiles/add/index.js","webpack://portainer/./app/portainer/views/devices/profiles/edit/editProfileController.js","webpack://portainer/./app/portainer/views/devices/profiles/edit/index.js","webpack://portainer/./app/portainer/views/endpoint-registries/registries.js","webpack://portainer/./app/portainer/views/endpoint-registries/registriesController.js","webpack://portainer/./app/portainer/views/endpoints/access/endpointAccessController.js","webpack://portainer/./app/portainer/views/endpoints/edit/endpointController.js","webpack://portainer/./app/react/portainer/environments/ItemView/ConfirmDisassociateModel.tsx","webpack://portainer/./app/portainer/views/endpoints/helpers.js","webpack://portainer/./app/portainer/views/endpoints/kvm/endpointKVMController.js","webpack://portainer/./app/portainer/views/groups/access/groupAccessController.js","webpack://portainer/./app/portainer/views/groups/create/createGroupController.js","webpack://portainer/./app/portainer/views/groups/edit/groupController.js","webpack://portainer/./app/portainer/views/groups/groupsController.js","webpack://portainer/./app/react/portainer/init/InitAdminView/restore-options.tsx","webpack://portainer/./app/portainer/views/init/admin/initAdminController.js","webpack://portainer/./app/portainer/views/logout/logoutController.js","webpack://portainer/./app/portainer/views/main/mainController.js","webpack://portainer/./app/assets/ico/oauth.svg","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/options.tsx","webpack://portainer/./app/portainer/views/settings/authentication/settingsAuthenticationController.js","webpack://portainer/./app/portainer/views/settings/edge-compute/index.js","webpack://portainer/./app/portainer/views/settings/edge-compute/settingsEdgeComputeController.js","webpack://portainer/./app/portainer/views/stacks/create/createStackController.js","webpack://portainer/./app/portainer/views/stacks/edit/stackController.js","webpack://portainer/./app/portainer/views/stacks/stacksController.js","webpack://portainer/./app/portainer/views/tags/tagsController.js","webpack://portainer/./app/portainer/views/templates/templatesController.js","webpack://portainer/./app/portainer/views/users/edit/userController.js","webpack://portainer/./app/portainer/views/users/usersController.js","webpack://portainer/./app/react/docker/components/ImageStatus/useImageNotification.ts","webpack://portainer/./app/react/docker/components/ImageStatus/ImageStatus.tsx","webpack://portainer/./app/vendors.js","webpack://portainer/./app/react/components/PageHeader/HeaderTitle.module.css?dde6","webpack://portainer/./app/agent/components/host-browser/hostBrowser.html","webpack://portainer/./app/agent/components/node-selector/nodeSelector.html","webpack://portainer/./app/agent/components/volume-browser/volumeBrowser.html","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy.html","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfo.html","webpack://portainer/./app/docker/components/host-overview/host-overview.html","webpack://portainer/./app/docker/components/host-view-panels/devices-panel/devices-panel.html","webpack://portainer/./app/docker/components/host-view-panels/disks-panel/disks-panel.html","webpack://portainer/./app/docker/components/host-view-panels/engine-details-panel/engine-details-panel.html","webpack://portainer/./app/docker/components/host-view-panels/host-details-panel/host-details-panel.html","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select.html","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table.html","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.html","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.html","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.html","webpack://portainer/./app/docker/components/log-viewer/logViewer.html","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanForm.html","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsForm.html","webpack://portainer/./app/docker/components/volumesNFSForm/volumesnfsForm.html","webpack://portainer/./app/docker/views/configs/configs.html","webpack://portainer/./app/docker/views/configs/create/createconfig.html","webpack://portainer/./app/docker/views/configs/edit/config.html","webpack://portainer/./app/docker/views/containers/console/attach.html","webpack://portainer/./app/docker/views/containers/console/exec.html","webpack://portainer/./app/docker/views/containers/edit/container.html","webpack://portainer/./app/docker/views/containers/inspect/containerinspect.html","webpack://portainer/./app/docker/views/containers/logs/containerlogs.html","webpack://portainer/./app/docker/views/containers/stats/containerstats.html","webpack://portainer/./app/docker/views/dashboard/dashboard.html","webpack://portainer/./app/docker/views/docker-features-configuration/docker-features-configuration.html","webpack://portainer/./app/docker/views/events/events.html","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view.html","webpack://portainer/./app/docker/views/host/host-view.html","webpack://portainer/./app/docker/views/images/build/buildimage.html","webpack://portainer/./app/docker/views/images/edit/image.html","webpack://portainer/./app/docker/views/images/images.html","webpack://portainer/./app/docker/views/images/import/importimage.html","webpack://portainer/./app/docker/views/networks/create/createnetwork.html","webpack://portainer/./app/docker/views/networks/networks.html","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser.html","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view.html","webpack://portainer/./app/docker/views/registries/access/registryAccess.html","webpack://portainer/./app/docker/views/secrets/create/createsecret.html","webpack://portainer/./app/docker/views/secrets/edit/secret.html","webpack://portainer/./app/docker/views/secrets/secrets.html","webpack://portainer/./app/docker/views/services/create/createservice.html","webpack://portainer/./app/docker/views/services/create/includes/config.html","webpack://portainer/./app/docker/views/services/create/includes/resources-placement.html","webpack://portainer/./app/docker/views/services/create/includes/secret.html","webpack://portainer/./app/docker/views/services/create/includes/update-restart.html","webpack://portainer/./app/docker/views/services/edit/includes/configs.html","webpack://portainer/./app/docker/views/services/edit/includes/constraints.html","webpack://portainer/./app/docker/views/services/edit/includes/container-specs.html","webpack://portainer/./app/docker/views/services/edit/includes/containerlabels.html","webpack://portainer/./app/docker/views/services/edit/includes/environmentvariables.html","webpack://portainer/./app/docker/views/services/edit/includes/hosts.html","webpack://portainer/./app/docker/views/services/edit/includes/image.html","webpack://portainer/./app/docker/views/services/edit/includes/logging.html","webpack://portainer/./app/docker/views/services/edit/includes/mounts.html","webpack://portainer/./app/docker/views/services/edit/includes/networks.html","webpack://portainer/./app/docker/views/services/edit/includes/placementPreferences.html","webpack://portainer/./app/docker/views/services/edit/includes/ports.html","webpack://portainer/./app/docker/views/services/edit/includes/resources.html","webpack://portainer/./app/docker/views/services/edit/includes/restart.html","webpack://portainer/./app/docker/views/services/edit/includes/secrets.html","webpack://portainer/./app/docker/views/services/edit/includes/servicelabels.html","webpack://portainer/./app/docker/views/services/edit/includes/tasks.html","webpack://portainer/./app/docker/views/services/edit/includes/updateconfig.html","webpack://portainer/./app/docker/views/services/edit/service.html","webpack://portainer/./app/docker/views/services/logs/servicelogs.html","webpack://portainer/./app/docker/views/services/services.html","webpack://portainer/./app/docker/views/swarm/swarm.html","webpack://portainer/./app/docker/views/swarm/visualizer/swarmvisualizer.html","webpack://portainer/./app/docker/views/tasks/edit/task.html","webpack://portainer/./app/docker/views/tasks/logs/tasklogs.html","webpack://portainer/./app/docker/views/volumes/browse/browsevolume.html","webpack://portainer/./app/docker/views/volumes/create/createvolume.html","webpack://portainer/./app/docker/views/volumes/edit/volume.html","webpack://portainer/./app/docker/views/volumes/volumes.html","webpack://portainer/./app/edge/components/edge-job-form/edgeJobForm.html","webpack://portainer/./app/edge/components/edge-job-results-datatable/edgeJobResultsDatatable.html","webpack://portainer/./app/edge/components/edge-jobs-datatable/edgeJobsDatatable.html","webpack://portainer/./app/edge/components/edge-stack-status/edgeStackStatus.html","webpack://portainer/./app/edge/components/group-form/groupForm.html","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/createEdgeGroupView.html","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/editEdgeGroupView.html","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobView.html","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/edgeJob.html","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/edgeJobsView.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/kube-deploy-description.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.html","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackView.html","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.html","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/events-datatable/eventsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatable.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.html","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservation.html","webpack://portainer/./app/kubernetes/components/view-loading/viewLoading.html","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.html","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/kube-registry-access-view.html","webpack://portainer/./app/kubernetes/views/applications/applications.html","webpack://portainer/./app/kubernetes/views/applications/create/createApplication.html","webpack://portainer/./app/kubernetes/views/applications/helm/helm.html","webpack://portainer/./app/kubernetes/views/applications/logs/logs.html","webpack://portainer/./app/kubernetes/views/applications/stats/stats.html","webpack://portainer/./app/kubernetes/views/cluster/cluster.html","webpack://portainer/./app/kubernetes/views/cluster/node/node.html","webpack://portainer/./app/kubernetes/views/cluster/node/stats/stats.html","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMap.html","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMap.html","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecret.html","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secret.html","webpack://portainer/./app/kubernetes/views/deploy/deploy.html","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccess.html","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.html","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/template.html","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePool.html","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePools.html","webpack://portainer/./app/kubernetes/views/security-constraint/constraint.html","webpack://portainer/./app/kubernetes/views/stacks/logs/logs.html","webpack://portainer/./app/kubernetes/views/summary/summary.html","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/template.html","webpack://portainer/./app/kubernetes/views/volumes/edit/volume.html","webpack://portainer/./app/kubernetes/views/volumes/volumes.html","webpack://portainer/./app/portainer/components/BEFeatureIndicator/BEFeatureIndicator.html","webpack://portainer/./app/portainer/components/InformationPanel/InformationPanelAngular.html","webpack://portainer/./app/portainer/components/access-datatable/accessDatatable.html","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlForm.html","webpack://portainer/./app/portainer/components/accessManagement/porAccessManagement.html","webpack://portainer/./app/portainer/components/code-editor/code-editor.html","webpack://portainer/./app/portainer/components/copy-button/copy-button.html","webpack://portainer/./app/portainer/components/custom-template-selector/custom-template-selector.html","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.html","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.html","webpack://portainer/./app/portainer/components/datatables/filter/datatable-filter.html","webpack://portainer/./app/portainer/components/datatables/groups-datatable/groupsDatatable.html","webpack://portainer/./app/portainer/components/datatables/pagination/pagination.html","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatable.html","webpack://portainer/./app/portainer/components/datatables/strings-datatable/strings-datatable.html","webpack://portainer/./app/portainer/components/datatables/tags-datatable/tagsDatatable.html","webpack://portainer/./app/portainer/components/datatables/titlebar/datatable-titlebar.html","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatable.html","webpack://portainer/./app/portainer/components/demo-feature-indicator/demo-feature-indicator.html","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurity.html","webpack://portainer/./app/portainer/components/form-components/file-upload-form/file-upload-form.html","webpack://portainer/./app/portainer/components/form-components/web-editor-form/web-editor-form.html","webpack://portainer/./app/portainer/components/forms/group-form/groupForm.html","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.html","webpack://portainer/./app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.html","webpack://portainer/./app/portainer/components/forms/registry-form-azure/registry-form-azure.html","webpack://portainer/./app/portainer/components/forms/registry-form-custom/registry-form-custom.html","webpack://portainer/./app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.html","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.html","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.html","webpack://portainer/./app/portainer/components/forms/registry-form-proget/registry-form-proget.html","webpack://portainer/./app/portainer/components/forms/registry-form-quay/registry-form-quay.html","webpack://portainer/./app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html","webpack://portainer/./app/portainer/components/option-panel/option-panel.html","webpack://portainer/./app/portainer/components/product-list/product-item/productItem.html","webpack://portainer/./app/portainer/components/product-list/productList.html","webpack://portainer/./app/portainer/components/registry-details/registry-details.html","webpack://portainer/./app/portainer/components/sensitive-details/sensitive-details.html","webpack://portainer/./app/portainer/components/show-hide/show-hide.html","webpack://portainer/./app/portainer/components/slider/slider.html","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form.html","webpack://portainer/./app/portainer/components/status-indicator/status-indicator.html","webpack://portainer/./app/portainer/components/theme/theme-settings.html","webpack://portainer/./app/portainer/environments/azure-endpoint-config/azureEndpointConfig.html","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/oauth-providers-selector.html","webpack://portainer/./app/portainer/oauth/components/oauth-settings/oauth-settings.html","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer-datatable/access-viewer-datatable.html","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer.html","webpack://portainer/./app/portainer/rbac/components/roles-datatable/roles-datatable.html","webpack://portainer/./app/portainer/rbac/views/roles/roles.html","webpack://portainer/./app/portainer/registry-management/views/create/createRegistry.html","webpack://portainer/./app/portainer/registry-management/views/edit/registry.html","webpack://portainer/./app/portainer/registry-management/views/list/registries.html","webpack://portainer/./app/portainer/settings/authentication/auto-user-provision-toggle/auto-user-provision-toggle.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/ad-settings.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-connectivity-check/ldap-connectivity-check.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-groups-datatable/ldap-groups-datatable.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-security/ldap-settings-security.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-users-datatable/ldap-users-datatable.html","webpack://portainer/./app/portainer/settings/authentication/save-auth-settings-button/save-auth-settings-button.html","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.html","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.html","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.html","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.html","webpack://portainer/./app/portainer/views/account/account.html","webpack://portainer/./app/portainer/views/auth/auth.html","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/customTemplatesView.html","webpack://portainer/./app/portainer/views/devices/import/importDevice.html","webpack://portainer/./app/portainer/views/devices/profiles/add/addProfile.html","webpack://portainer/./app/portainer/views/devices/profiles/edit/editProfile.html","webpack://portainer/./app/portainer/views/endpoint-registries/registries.html","webpack://portainer/./app/portainer/views/endpoints/access/endpointAccess.html","webpack://portainer/./app/portainer/views/endpoints/edit/endpoint.html","webpack://portainer/./app/portainer/views/endpoints/kvm/endpointKVM.html","webpack://portainer/./app/portainer/views/groups/access/groupAccess.html","webpack://portainer/./app/portainer/views/groups/create/creategroup.html","webpack://portainer/./app/portainer/views/groups/edit/group.html","webpack://portainer/./app/portainer/views/groups/groups.html","webpack://portainer/./app/portainer/views/init/admin/initAdmin.html","webpack://portainer/./app/portainer/views/logout/logout.html","webpack://portainer/./app/portainer/views/settings/authentication/settingsAuthentication.html","webpack://portainer/./app/portainer/views/settings/edge-compute/settingsEdgeCompute.html","webpack://portainer/./app/portainer/views/stacks/create/createstack.html","webpack://portainer/./app/portainer/views/stacks/edit/stack.html","webpack://portainer/./app/portainer/views/stacks/stacks.html","webpack://portainer/./app/portainer/views/tags/tags.html","webpack://portainer/./app/portainer/views/templates/templates.html","webpack://portainer/./app/portainer/views/users/edit/user.html","webpack://portainer/./app/portainer/views/users/users.html"],"sourcesContent":["var map = {\n\t\"./__mocks__/fileMock.js\": 8770,\n\t\"./__mocks__/styleMock.js\": 77569,\n\t\"./agent/components/host-browser/hostBrowserController.js\": 46553,\n\t\"./agent/components/host-browser/index.js\": 22635,\n\t\"./agent/components/node-selector/index.js\": 46977,\n\t\"./agent/components/node-selector/nodeSelectorController.js\": 10604,\n\t\"./agent/components/volume-browser/index.js\": 92560,\n\t\"./agent/components/volume-browser/volumeBrowserController.js\": 15231,\n\t\"./agent/index.js\": 43719,\n\t\"./agent/models/agent.js\": 69554,\n\t\"./agent/rest/agent.js\": 49727,\n\t\"./agent/rest/browse.js\": 10823,\n\t\"./agent/rest/dockerhub.js\": 65745,\n\t\"./agent/rest/host.js\": 22305,\n\t\"./agent/rest/ping.js\": 73444,\n\t\"./agent/rest/response/browse.js\": 96914,\n\t\"./agent/rest/v1/agent.js\": 26284,\n\t\"./agent/rest/v1/browse.js\": 25778,\n\t\"./agent/services/agentService.js\": 4849,\n\t\"./agent/services/hostBrowserService.js\": 43242,\n\t\"./agent/services/pingService.js\": 14161,\n\t\"./agent/services/volumeBrowserService.js\": 90427,\n\t\"./angulartics.matomo/index.js\": 27014,\n\t\"./app.js\": 41935,\n\t\"./assets/css/index.js\": 78110,\n\t\"./config.js\": 63369,\n\t\"./docker/__module.js\": 30857,\n\t\"./docker/components/container-restart-policy/container-restart-policy-controller.js\": 47318,\n\t\"./docker/components/container-restart-policy/container-restart-policy.js\": 44585,\n\t\"./docker/components/dashboard-cluster-agent-info/dashboard-cluster-agent-info.js\": 58421,\n\t\"./docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfoController.js\": 83995,\n\t\"./docker/components/host-overview/host-overview.js\": 83015,\n\t\"./docker/components/host-view-panels/devices-panel/devices-panel.js\": 1596,\n\t\"./docker/components/host-view-panels/disks-panel/disks-panel.js\": 76878,\n\t\"./docker/components/host-view-panels/engine-details-panel/engine-details-panel.js\": 44300,\n\t\"./docker/components/host-view-panels/host-details-panel/host-details-panel.js\": 42009,\n\t\"./docker/components/host-view-panels/node-availability-select/node-availability-select-controller.js\": 98209,\n\t\"./docker/components/host-view-panels/node-availability-select/node-availability-select.js\": 78218,\n\t\"./docker/components/host-view-panels/node-labels-table/node-labels-table-controller.js\": 29119,\n\t\"./docker/components/host-view-panels/node-labels-table/node-labels-table.js\": 90820,\n\t\"./docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel-controller.js\": 65553,\n\t\"./docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.js\": 74092,\n\t\"./docker/components/imageRegistry/por-image-registry-rate-limits.controller.js\": 25760,\n\t\"./docker/components/imageRegistry/por-image-registry-rate-limits.js\": 70698,\n\t\"./docker/components/imageRegistry/por-image-registry.controller.js\": 81199,\n\t\"./docker/components/imageRegistry/por-image-registry.js\": 25898,\n\t\"./docker/components/log-viewer/log-viewer.js\": 74961,\n\t\"./docker/components/log-viewer/logViewerController.js\": 40433,\n\t\"./docker/components/network-macvlan-form/network-macvlan-form.js\": 69020,\n\t\"./docker/components/network-macvlan-form/networkMacvlanFormController.js\": 78160,\n\t\"./docker/components/network-macvlan-form/networkMacvlanFormModel.js\": 93262,\n\t\"./docker/components/volumesCIFSForm/volumesCifsForm.js\": 42365,\n\t\"./docker/components/volumesCIFSForm/volumesCifsFormModel.js\": 53333,\n\t\"./docker/components/volumesNFSForm/volumes-nfs-form.js\": 23295,\n\t\"./docker/components/volumesNFSForm/volumesNFSFormModel.js\": 3744,\n\t\"./docker/filters/filters.js\": 79688,\n\t\"./docker/helpers/configHelper.js\": 88307,\n\t\"./docker/helpers/containerHelper.js\": 69389,\n\t\"./docker/helpers/imageHelper.js\": 29447,\n\t\"./docker/helpers/infoHelper.js\": 60259,\n\t\"./docker/helpers/labelHelper.js\": 93269,\n\t\"./docker/helpers/networkHelper.js\": 78830,\n\t\"./docker/helpers/nodeHelper.js\": 16772,\n\t\"./docker/helpers/secretHelper.js\": 20802,\n\t\"./docker/helpers/serviceHelper.js\": 91889,\n\t\"./docker/helpers/taskHelper.js\": 60775,\n\t\"./docker/helpers/volumeHelper.js\": 58706,\n\t\"./docker/models/config.js\": 56765,\n\t\"./docker/models/container.js\": 48442,\n\t\"./docker/models/event.js\": 58129,\n\t\"./docker/models/image.js\": 51088,\n\t\"./docker/models/imageDetails.js\": 22350,\n\t\"./docker/models/imageLayer.js\": 64263,\n\t\"./docker/models/plugin.js\": 35791,\n\t\"./docker/models/porImageRegistry.js\": 73801,\n\t\"./docker/models/swarm.js\": 54047,\n\t\"./docker/rest/build.js\": 4280,\n\t\"./docker/rest/commit.js\": 65955,\n\t\"./docker/rest/config.js\": 14875,\n\t\"./docker/rest/container.js\": 75871,\n\t\"./docker/rest/exec.js\": 61221,\n\t\"./docker/rest/image.js\": 15978,\n\t\"./docker/rest/network.js\": 1741,\n\t\"./docker/rest/node.js\": 73981,\n\t\"./docker/rest/plugin.js\": 27690,\n\t\"./docker/rest/response/handlers.js\": 40455,\n\t\"./docker/rest/response/image.js\": 16008,\n\t\"./docker/rest/secret.js\": 40186,\n\t\"./docker/rest/service.js\": 58109,\n\t\"./docker/rest/swarm.js\": 35445,\n\t\"./docker/rest/system.js\": 86045,\n\t\"./docker/rest/task.js\": 96929,\n\t\"./docker/rest/volume.js\": 82726,\n\t\"./docker/services/buildService.js\": 62678,\n\t\"./docker/services/configService.js\": 91218,\n\t\"./docker/services/containerService.js\": 8361,\n\t\"./docker/services/execService.js\": 10710,\n\t\"./docker/services/imageService.js\": 20793,\n\t\"./docker/services/networkService.js\": 55314,\n\t\"./docker/services/nodeService.js\": 62559,\n\t\"./docker/services/pluginService.js\": 34347,\n\t\"./docker/services/secretService.js\": 47488,\n\t\"./docker/services/serviceService.js\": 79289,\n\t\"./docker/services/swarmService.js\": 3304,\n\t\"./docker/services/systemService.js\": 92882,\n\t\"./docker/services/taskService.js\": 52933,\n\t\"./docker/services/volumeService.js\": 20089,\n\t\"./docker/views/configs/configsController.js\": 18914,\n\t\"./docker/views/configs/create/createConfigController.js\": 33695,\n\t\"./docker/views/configs/edit/configController.js\": 56530,\n\t\"./docker/views/containers/console/containerConsoleController.js\": 42077,\n\t\"./docker/views/containers/edit/containerController.js\": 31061,\n\t\"./docker/views/containers/inspect/containerInspectController.js\": 24127,\n\t\"./docker/views/containers/logs/containerLogsController.js\": 6983,\n\t\"./docker/views/containers/stats/containerStatsController.js\": 97076,\n\t\"./docker/views/dashboard/dashboardController.js\": 93961,\n\t\"./docker/views/docker-features-configuration/docker-features-configuration.controller.js\": 3482,\n\t\"./docker/views/docker-features-configuration/index.js\": 68369,\n\t\"./docker/views/events/eventsController.js\": 4278,\n\t\"./docker/views/host/host-browser-view/host-browser-view-controller.js\": 37531,\n\t\"./docker/views/host/host-browser-view/host-browser-view.js\": 11431,\n\t\"./docker/views/host/host-view-controller.js\": 28499,\n\t\"./docker/views/host/host-view.js\": 52042,\n\t\"./docker/views/images/build/buildImageController.js\": 98239,\n\t\"./docker/views/images/edit/imageController.js\": 64896,\n\t\"./docker/views/images/imagesController.js\": 96425,\n\t\"./docker/views/images/import/importImageController.js\": 12828,\n\t\"./docker/views/networks/create/createNetworkController.js\": 85253,\n\t\"./docker/views/networks/networksController.js\": 11820,\n\t\"./docker/views/nodes/node-browser/node-browser-controller.js\": 38979,\n\t\"./docker/views/nodes/node-browser/node-browser.js\": 98442,\n\t\"./docker/views/nodes/node-details/node-details-view-controller.js\": 81776,\n\t\"./docker/views/nodes/node-details/node-details-view.js\": 26480,\n\t\"./docker/views/registries/access/registryAccess.js\": 42407,\n\t\"./docker/views/registries/access/registryAccessController.js\": 78669,\n\t\"./docker/views/secrets/create/createSecretController.js\": 62994,\n\t\"./docker/views/secrets/edit/secretController.js\": 70683,\n\t\"./docker/views/secrets/secretsController.js\": 57672,\n\t\"./docker/views/services/create/createServiceController.js\": 53723,\n\t\"./docker/views/services/edit/serviceController.js\": 38745,\n\t\"./docker/views/services/logs/serviceLogsController.js\": 10094,\n\t\"./docker/views/services/servicesController.js\": 757,\n\t\"./docker/views/swarm/swarmController.js\": 58931,\n\t\"./docker/views/swarm/visualizer/swarmVisualizerController.js\": 58652,\n\t\"./docker/views/tasks/edit/taskController.js\": 80555,\n\t\"./docker/views/tasks/logs/taskLogsController.js\": 49572,\n\t\"./docker/views/volumes/browse/browseVolumeController.js\": 47335,\n\t\"./docker/views/volumes/create/createVolumeController.js\": 58716,\n\t\"./docker/views/volumes/edit/volumeController.js\": 82974,\n\t\"./docker/views/volumes/volumesController.js\": 99313,\n\t\"./edge/__module.js\": 35402,\n\t\"./edge/components/edge-job-form/edgeJobFormController.js\": 73760,\n\t\"./edge/components/edge-job-form/index.js\": 34678,\n\t\"./edge/components/edge-job-results-datatable/edgeJobResultsDatatableController.js\": 23702,\n\t\"./edge/components/edge-job-results-datatable/index.js\": 49076,\n\t\"./edge/components/edge-jobs-datatable/index.js\": 35885,\n\t\"./edge/components/edge-stack-status/edgeStackStatusController.js\": 56122,\n\t\"./edge/components/edge-stack-status/index.js\": 60559,\n\t\"./edge/components/group-form/groupFormController.js\": 482,\n\t\"./edge/components/group-form/index.js\": 42796,\n\t\"./edge/rest/edge-groups.js\": 15850,\n\t\"./edge/rest/edge-job-results.js\": 31413,\n\t\"./edge/rest/edge-jobs.js\": 98715,\n\t\"./edge/rest/edge-stacks.js\": 34264,\n\t\"./edge/services/edge-group.js\": 61629,\n\t\"./edge/services/edge-job.js\": 68817,\n\t\"./edge/services/edge-stack.js\": 59571,\n\t\"./edge/views/edge-groups/createEdgeGroupView/createEdgeGroupViewController.js\": 53138,\n\t\"./edge/views/edge-groups/createEdgeGroupView/index.js\": 31089,\n\t\"./edge/views/edge-groups/editEdgeGroupView/editEdgeGroupViewController.js\": 49542,\n\t\"./edge/views/edge-groups/editEdgeGroupView/index.js\": 77505,\n\t\"./edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js\": 11922,\n\t\"./edge/views/edge-jobs/createEdgeJobView/index.js\": 86642,\n\t\"./edge/views/edge-jobs/edgeJob/edgeJobController.js\": 13385,\n\t\"./edge/views/edge-jobs/edgeJob/index.js\": 94650,\n\t\"./edge/views/edge-jobs/edgeJobsView/edgeJobsViewController.js\": 82106,\n\t\"./edge/views/edge-jobs/edgeJobsView/index.js\": 51751,\n\t\"./edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.controller.js\": 58094,\n\t\"./edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.js\": 53675,\n\t\"./edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.controller.js\": 94244,\n\t\"./edge/views/edge-stacks/createEdgeStackView/docker-compose-form/index.js\": 6346,\n\t\"./edge/views/edge-stacks/createEdgeStackView/index.js\": 63701,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/index.js\": 73448,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/index.js\": 27055,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.controller.js\": 64324,\n\t\"./edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js\": 50649,\n\t\"./edge/views/edge-stacks/editEdgeStackView/index.js\": 40755,\n\t\"./edge/views/edge-stacks/index.js\": 24810,\n\t\"./index.js\": 68826,\n\t\"./kubernetes/__module.js\": 39077,\n\t\"./kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.controller.js\": 91277,\n\t\"./kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.js\": 5149,\n\t\"./kubernetes/components/datatables/applications-datatable/applicationsDatatable.js\": 30021,\n\t\"./kubernetes/components/datatables/applications-datatable/applicationsDatatableController.js\": 36915,\n\t\"./kubernetes/components/datatables/configurations-datatable/configurationsDatatableController.js\": 54709,\n\t\"./kubernetes/components/datatables/events-datatable/eventsDatatable.js\": 32068,\n\t\"./kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.js\": 73118,\n\t\"./kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.js\": 46190,\n\t\"./kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatableController.js\": 51383,\n\t\"./kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.js\": 8265,\n\t\"./kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatableController.js\": 17687,\n\t\"./kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.js\": 58881,\n\t\"./kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatableController.js\": 14542,\n\t\"./kubernetes/components/datatables/volumes-datatable/volumesDatatable.js\": 7387,\n\t\"./kubernetes/components/datatables/volumes-datatable/volumesDatatableController.js\": 66454,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.js\": 99213,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.controller.js\": 98117,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.js\": 93578,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates.controller.js\": 38761,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates.js\": 41377,\n\t\"./kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.js\": 77349,\n\t\"./kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js\": 57232,\n\t\"./kubernetes/components/resource-reservation/resourceReservation.js\": 63047,\n\t\"./kubernetes/components/resource-reservation/resourceReservationController.js\": 81879,\n\t\"./kubernetes/components/view-loading/viewLoading.js\": 59834,\n\t\"./kubernetes/converters/application.js\": 64570,\n\t\"./kubernetes/converters/configMap.js\": 96171,\n\t\"./kubernetes/converters/configuration.js\": 21835,\n\t\"./kubernetes/converters/daemonSet.js\": 34489,\n\t\"./kubernetes/converters/deployment.js\": 80552,\n\t\"./kubernetes/converters/event.js\": 67922,\n\t\"./kubernetes/converters/namespace.js\": 20949,\n\t\"./kubernetes/converters/persistentVolumeClaim.js\": 83204,\n\t\"./kubernetes/converters/resourcePool.js\": 22374,\n\t\"./kubernetes/converters/resourceQuota.js\": 94055,\n\t\"./kubernetes/converters/secret.js\": 87641,\n\t\"./kubernetes/converters/service.js\": 55774,\n\t\"./kubernetes/converters/statefulSet.js\": 60746,\n\t\"./kubernetes/converters/storageClass.js\": 42553,\n\t\"./kubernetes/converters/volume.js\": 26212,\n\t\"./kubernetes/custom-templates/index.js\": 98487,\n\t\"./kubernetes/custom-templates/kube-custom-templates-view/index.js\": 87277,\n\t\"./kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.controller.js\": 26960,\n\t\"./kubernetes/endpoint/converter.js\": 84352,\n\t\"./kubernetes/endpoint/models.js\": 92100,\n\t\"./kubernetes/endpoint/rest.js\": 89152,\n\t\"./kubernetes/endpoint/service.js\": 53405,\n\t\"./kubernetes/filters/applicationFilters.js\": 91951,\n\t\"./kubernetes/filters/configurationFilters.js\": 3662,\n\t\"./kubernetes/filters/eventFilters.js\": 59514,\n\t\"./kubernetes/filters/filters.js\": 69698,\n\t\"./kubernetes/helm/rest.js\": 53067,\n\t\"./kubernetes/helm/service.js\": 99193,\n\t\"./kubernetes/helpers/application/index.js\": 18724,\n\t\"./kubernetes/helpers/commonHelper.js\": 55302,\n\t\"./kubernetes/helpers/configMapHelper.js\": 3781,\n\t\"./kubernetes/helpers/configurationHelper.js\": 13195,\n\t\"./kubernetes/helpers/eventHelper.js\": 66965,\n\t\"./kubernetes/helpers/formValidationHelper.js\": 92530,\n\t\"./kubernetes/helpers/namespaceHelper.js\": 88454,\n\t\"./kubernetes/helpers/resourceQuotaHelper.js\": 28832,\n\t\"./kubernetes/helpers/resourceReservationHelper.js\": 46717,\n\t\"./kubernetes/helpers/serviceHelper.js\": 63094,\n\t\"./kubernetes/helpers/stackHelper.js\": 75511,\n\t\"./kubernetes/helpers/stackHelper.test.js\": 55561,\n\t\"./kubernetes/helpers/volumeHelper.js\": 24038,\n\t\"./kubernetes/horizontal-pod-auto-scaler/converter.js\": 67635,\n\t\"./kubernetes/horizontal-pod-auto-scaler/helper.js\": 5229,\n\t\"./kubernetes/horizontal-pod-auto-scaler/models.js\": 88400,\n\t\"./kubernetes/horizontal-pod-auto-scaler/payload.js\": 73242,\n\t\"./kubernetes/horizontal-pod-auto-scaler/rest.js\": 94711,\n\t\"./kubernetes/horizontal-pod-auto-scaler/service.js\": 30862,\n\t\"./kubernetes/ingress/constants.js\": 9273,\n\t\"./kubernetes/ingress/converter.js\": 90497,\n\t\"./kubernetes/ingress/helper.js\": 14854,\n\t\"./kubernetes/ingress/models.js\": 75914,\n\t\"./kubernetes/ingress/payloads.js\": 7971,\n\t\"./kubernetes/ingress/rest.js\": 51121,\n\t\"./kubernetes/ingress/service.js\": 85357,\n\t\"./kubernetes/models/application/formValues.js\": 13258,\n\t\"./kubernetes/models/application/models/constants.js\": 61360,\n\t\"./kubernetes/models/application/models/index.js\": 59182,\n\t\"./kubernetes/models/application/payloads.js\": 58962,\n\t\"./kubernetes/models/common/params.js\": 50963,\n\t\"./kubernetes/models/common/payloads.js\": 22255,\n\t\"./kubernetes/models/config-map/models.js\": 76970,\n\t\"./kubernetes/models/config-map/payloads.js\": 15481,\n\t\"./kubernetes/models/configuration/formvalues.js\": 53716,\n\t\"./kubernetes/models/configuration/models.js\": 96506,\n\t\"./kubernetes/models/daemon-set/models.js\": 67733,\n\t\"./kubernetes/models/daemon-set/payloads.js\": 70306,\n\t\"./kubernetes/models/deploy.js\": 26000,\n\t\"./kubernetes/models/deployment/models.js\": 78710,\n\t\"./kubernetes/models/deployment/payloads.js\": 46811,\n\t\"./kubernetes/models/event/models.js\": 7799,\n\t\"./kubernetes/models/history/models.js\": 60557,\n\t\"./kubernetes/models/namespace/models.js\": 7462,\n\t\"./kubernetes/models/namespace/payloads.js\": 48651,\n\t\"./kubernetes/models/nodes-limits/models.js\": 2150,\n\t\"./kubernetes/models/port/models.js\": 5846,\n\t\"./kubernetes/models/resource-pool/formValues.js\": 87160,\n\t\"./kubernetes/models/resource-pool/models.js\": 49706,\n\t\"./kubernetes/models/resource-quota/models.js\": 50042,\n\t\"./kubernetes/models/resource-quota/payloads.js\": 53986,\n\t\"./kubernetes/models/resource-reservation/models.js\": 18199,\n\t\"./kubernetes/models/resource-types/models.js\": 30151,\n\t\"./kubernetes/models/secret/models.js\": 60134,\n\t\"./kubernetes/models/secret/payloads.js\": 44602,\n\t\"./kubernetes/models/service/models.js\": 3586,\n\t\"./kubernetes/models/service/payloads.js\": 89836,\n\t\"./kubernetes/models/stack/models.js\": 52814,\n\t\"./kubernetes/models/stateful-set/models.js\": 51041,\n\t\"./kubernetes/models/stateful-set/payloads.js\": 68196,\n\t\"./kubernetes/models/storage-class/models.js\": 60943,\n\t\"./kubernetes/models/storage-class/payload.js\": 15886,\n\t\"./kubernetes/models/volume/models.js\": 15145,\n\t\"./kubernetes/models/volume/payloads.js\": 1003,\n\t\"./kubernetes/node/converter.js\": 48013,\n\t\"./kubernetes/node/filters.js\": 19577,\n\t\"./kubernetes/node/formValues.js\": 40900,\n\t\"./kubernetes/node/helper.js\": 4993,\n\t\"./kubernetes/node/models.js\": 83561,\n\t\"./kubernetes/node/payload.js\": 29296,\n\t\"./kubernetes/node/rest.js\": 60198,\n\t\"./kubernetes/node/service.js\": 73707,\n\t\"./kubernetes/pod/converter.js\": 88090,\n\t\"./kubernetes/pod/models/index.js\": 16426,\n\t\"./kubernetes/pod/payloads/affinities.js\": 28882,\n\t\"./kubernetes/pod/payloads/create.js\": 56254,\n\t\"./kubernetes/pod/service.js\": 383,\n\t\"./kubernetes/registries/index.js\": 21246,\n\t\"./kubernetes/registries/kube-registry-access-view/index.js\": 81652,\n\t\"./kubernetes/registries/kube-registry-access-view/kube-registry-access-view.controller.js\": 34517,\n\t\"./kubernetes/rest/configMap.js\": 98737,\n\t\"./kubernetes/rest/controllerRevision.js\": 59985,\n\t\"./kubernetes/rest/daemonSet.js\": 6706,\n\t\"./kubernetes/rest/deployment.js\": 39356,\n\t\"./kubernetes/rest/endpoint.js\": 45198,\n\t\"./kubernetes/rest/event.js\": 34232,\n\t\"./kubernetes/rest/health.js\": 77772,\n\t\"./kubernetes/rest/namespace.js\": 82527,\n\t\"./kubernetes/rest/nodesLimits.js\": 22602,\n\t\"./kubernetes/rest/persistentVolumeClaim.js\": 97550,\n\t\"./kubernetes/rest/pod.js\": 23359,\n\t\"./kubernetes/rest/portainer-namespace.js\": 18866,\n\t\"./kubernetes/rest/replicaSet.js\": 80562,\n\t\"./kubernetes/rest/resourceQuota.js\": 35381,\n\t\"./kubernetes/rest/response/transform.js\": 76549,\n\t\"./kubernetes/rest/secret.js\": 47870,\n\t\"./kubernetes/rest/service.js\": 5132,\n\t\"./kubernetes/rest/serviceAccount.js\": 63675,\n\t\"./kubernetes/rest/statefulSet.js\": 1700,\n\t\"./kubernetes/rest/storage.js\": 6642,\n\t\"./kubernetes/services/applicationService.js\": 72686,\n\t\"./kubernetes/services/configMapService.js\": 89776,\n\t\"./kubernetes/services/configurationService.js\": 97128,\n\t\"./kubernetes/services/controllerRevisionService.js\": 44073,\n\t\"./kubernetes/services/daemonSetService.js\": 30703,\n\t\"./kubernetes/services/deploymentService.js\": 41968,\n\t\"./kubernetes/services/eventService.js\": 55654,\n\t\"./kubernetes/services/healthService.js\": 10931,\n\t\"./kubernetes/services/namespaceService.js\": 31894,\n\t\"./kubernetes/services/nodesLimitsService.js\": 97437,\n\t\"./kubernetes/services/persistentVolumeClaimService.js\": 33560,\n\t\"./kubernetes/services/resourcePoolService.js\": 41401,\n\t\"./kubernetes/services/resourceQuotaService.js\": 85419,\n\t\"./kubernetes/services/secretService.js\": 64507,\n\t\"./kubernetes/services/serviceService.js\": 95225,\n\t\"./kubernetes/services/stackService.js\": 24640,\n\t\"./kubernetes/services/statefulSetService.js\": 44050,\n\t\"./kubernetes/services/storageService.js\": 1777,\n\t\"./kubernetes/services/volumeService.js\": 72804,\n\t\"./kubernetes/store/namespace.js\": 44238,\n\t\"./kubernetes/views/applications/applications.js\": 58886,\n\t\"./kubernetes/views/applications/applicationsController.js\": 47191,\n\t\"./kubernetes/views/applications/create/createApplication.js\": 44522,\n\t\"./kubernetes/views/applications/create/createApplicationController.js\": 56506,\n\t\"./kubernetes/views/applications/helm/helm.controller.js\": 96398,\n\t\"./kubernetes/views/applications/helm/index.js\": 23051,\n\t\"./kubernetes/views/applications/logs/logs.js\": 7029,\n\t\"./kubernetes/views/applications/logs/logsController.js\": 72888,\n\t\"./kubernetes/views/applications/stats/stats.js\": 70483,\n\t\"./kubernetes/views/applications/stats/statsController.js\": 62581,\n\t\"./kubernetes/views/cluster/cluster.js\": 37553,\n\t\"./kubernetes/views/cluster/clusterController.js\": 30227,\n\t\"./kubernetes/views/cluster/node/node.js\": 78297,\n\t\"./kubernetes/views/cluster/node/nodeController.js\": 94455,\n\t\"./kubernetes/views/cluster/node/stats/stats.js\": 69780,\n\t\"./kubernetes/views/cluster/node/stats/statsController.js\": 26162,\n\t\"./kubernetes/views/configurations/configmap/create/createConfigMap.js\": 32116,\n\t\"./kubernetes/views/configurations/configmap/create/createConfigMapController.js\": 6444,\n\t\"./kubernetes/views/configurations/configmap/edit/configMap.js\": 19888,\n\t\"./kubernetes/views/configurations/configmap/edit/configMapController.js\": 70738,\n\t\"./kubernetes/views/configurations/configurationsController.js\": 42408,\n\t\"./kubernetes/views/configurations/secret/create/createSecret.js\": 40948,\n\t\"./kubernetes/views/configurations/secret/create/createSecretController.js\": 72225,\n\t\"./kubernetes/views/configurations/secret/edit/secret.js\": 23645,\n\t\"./kubernetes/views/configurations/secret/edit/secretController.js\": 14132,\n\t\"./kubernetes/views/configurations/validation.js\": 56167,\n\t\"./kubernetes/views/deploy/deploy.js\": 78076,\n\t\"./kubernetes/views/deploy/deployController.js\": 8155,\n\t\"./kubernetes/views/resource-pools/access/resourcePoolAccess.js\": 3625,\n\t\"./kubernetes/views/resource-pools/access/resourcePoolAccessController.js\": 65291,\n\t\"./kubernetes/views/resource-pools/components/storage-class-switch/index.js\": 38444,\n\t\"./kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.controller.js\": 57451,\n\t\"./kubernetes/views/resource-pools/create/createResourcePoolController.js\": 59553,\n\t\"./kubernetes/views/resource-pools/edit/components/ingresses-datatable/controller.js\": 19046,\n\t\"./kubernetes/views/resource-pools/edit/components/ingresses-datatable/index.js\": 96653,\n\t\"./kubernetes/views/resource-pools/edit/resourcePool.js\": 25851,\n\t\"./kubernetes/views/resource-pools/edit/resourcePoolController.js\": 98772,\n\t\"./kubernetes/views/resource-pools/resourcePools.js\": 86414,\n\t\"./kubernetes/views/resource-pools/resourcePoolsController.js\": 16699,\n\t\"./kubernetes/views/security-constraint/constraintController.js\": 68524,\n\t\"./kubernetes/views/stacks/logs/logs.js\": 60946,\n\t\"./kubernetes/views/stacks/logs/logsController.js\": 66000,\n\t\"./kubernetes/views/summary/resources/applicationResources.js\": 55208,\n\t\"./kubernetes/views/summary/resources/configurationResources.js\": 63476,\n\t\"./kubernetes/views/summary/resources/helpers.js\": 13919,\n\t\"./kubernetes/views/summary/resources/namespaceResources.js\": 15754,\n\t\"./kubernetes/views/summary/summary.js\": 28812,\n\t\"./kubernetes/views/summary/summaryController.js\": 56936,\n\t\"./kubernetes/views/volumes/components/volumes-storages-datatable/controller.js\": 7845,\n\t\"./kubernetes/views/volumes/components/volumes-storages-datatable/index.js\": 88453,\n\t\"./kubernetes/views/volumes/edit/volume.js\": 66730,\n\t\"./kubernetes/views/volumes/edit/volumeController.js\": 527,\n\t\"./kubernetes/views/volumes/volumes.js\": 56094,\n\t\"./kubernetes/views/volumes/volumesController.js\": 20451,\n\t\"./matomo-setup.js\": 77113,\n\t\"./portainer/__module.js\": 72221,\n\t\"./portainer/components/InformationPanel/InformationPanelAngular.js\": 96475,\n\t\"./portainer/components/access-datatable/accessDatatable.js\": 73623,\n\t\"./portainer/components/access-datatable/accessDatatableController.js\": 14984,\n\t\"./portainer/components/accessControlForm/por-access-control-form.js\": 56996,\n\t\"./portainer/components/accessControlForm/porAccessControlFormController.js\": 29761,\n\t\"./portainer/components/accessControlForm/porAccessControlFormModel.js\": 48228,\n\t\"./portainer/components/accessManagement/index.js\": 60251,\n\t\"./portainer/components/accessManagement/por-access-management.js\": 43697,\n\t\"./portainer/components/accessManagement/porAccessManagementController.js\": 91660,\n\t\"./portainer/components/autofocus.js\": 35882,\n\t\"./portainer/components/buttonSpinner.js\": 77830,\n\t\"./portainer/components/code-editor/code-editor.controller.js\": 11505,\n\t\"./portainer/components/code-editor/code-editor.js\": 47076,\n\t\"./portainer/components/code-editor/codeEditorController.js\": 42276,\n\t\"./portainer/components/copy-button/copy-button.controller.js\": 31145,\n\t\"./portainer/components/copy-button/copy-button.js\": 40931,\n\t\"./portainer/components/custom-template-selector/custom-template-selector.controller.js\": 15793,\n\t\"./portainer/components/custom-template-selector/index.js\": 3992,\n\t\"./portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.controller.js\": 40991,\n\t\"./portainer/components/datatables/access-tokens-datatable/index.js\": 7602,\n\t\"./portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.controller.js\": 65372,\n\t\"./portainer/components/datatables/datatable-columns-visibility/index.js\": 83812,\n\t\"./portainer/components/datatables/filter/datatable-filter.controller.js\": 14979,\n\t\"./portainer/components/datatables/filter/index.js\": 4955,\n\t\"./portainer/components/datatables/genericDatatableController.js\": 65307,\n\t\"./portainer/components/datatables/groups-datatable/groupsDatatable.js\": 54933,\n\t\"./portainer/components/datatables/index.js\": 4691,\n\t\"./portainer/components/datatables/pagination/index.js\": 75936,\n\t\"./portainer/components/datatables/registries-datatable/registriesDatatable.js\": 56988,\n\t\"./portainer/components/datatables/registries-datatable/registriesDatatableController.js\": 41069,\n\t\"./portainer/components/datatables/strings-datatable/index.js\": 52540,\n\t\"./portainer/components/datatables/tags-datatable/tagsDatatable.js\": 434,\n\t\"./portainer/components/datatables/titlebar/index.js\": 92754,\n\t\"./portainer/components/datatables/users-datatable/usersDatatable.js\": 25416,\n\t\"./portainer/components/datatables/users-datatable/usersDatatableController.js\": 36636,\n\t\"./portainer/components/demo-feature-indicator/demo-feature-indicator.controller.js\": 31032,\n\t\"./portainer/components/demo-feature-indicator/index.js\": 49345,\n\t\"./portainer/components/endpointSecurity/por-endpoint-security.js\": 73593,\n\t\"./portainer/components/endpointSecurity/porEndpointSecurityController.js\": 33165,\n\t\"./portainer/components/endpointSecurity/porEndpointSecurityModel.js\": 41104,\n\t\"./portainer/components/focusIf.js\": 10726,\n\t\"./portainer/components/form-components/file-upload-form/index.js\": 36507,\n\t\"./portainer/components/form-components/index.js\": 35879,\n\t\"./portainer/components/form-components/web-editor-form/index.js\": 90518,\n\t\"./portainer/components/form-components/web-editor-form/web-editor-form.controller.js\": 55821,\n\t\"./portainer/components/forms/group-form/group-form.js\": 31579,\n\t\"./portainer/components/forms/group-form/groupFormController.js\": 77593,\n\t\"./portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.controller.js\": 18136,\n\t\"./portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.js\": 49982,\n\t\"./portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.js\": 71694,\n\t\"./portainer/components/forms/registry-form-azure/registry-form-azure.js\": 29407,\n\t\"./portainer/components/forms/registry-form-custom/registry-form-custom.js\": 39860,\n\t\"./portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.js\": 31814,\n\t\"./portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.js\": 28940,\n\t\"./portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatableController.js\": 23316,\n\t\"./portainer/components/forms/registry-form-gitlab/registry-form-gitlab.js\": 96583,\n\t\"./portainer/components/forms/registry-form-proget/registry-form-proget.js\": 94563,\n\t\"./portainer/components/forms/registry-form-quay/registry-form-quay.js\": 77445,\n\t\"./portainer/components/forms/stack-from-template-form/index.js\": 83262,\n\t\"./portainer/components/forms/stack-redeploy-git-form/index.js\": 13804,\n\t\"./portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.controller.js\": 99674,\n\t\"./portainer/components/index.js\": 67636,\n\t\"./portainer/components/intervalFormat.js\": 80762,\n\t\"./portainer/components/onEnterKey.js\": 11887,\n\t\"./portainer/components/option-panel/index.js\": 25899,\n\t\"./portainer/components/option-panel/option-panel.controller.js\": 11145,\n\t\"./portainer/components/product-list/product-item/product-item.js\": 36229,\n\t\"./portainer/components/product-list/product-list.js\": 6508,\n\t\"./portainer/components/registry-details/index.js\": 63786,\n\t\"./portainer/components/sensitive-details/sensitive-details.js\": 90586,\n\t\"./portainer/components/show-hide/show-hide.js\": 93960,\n\t\"./portainer/components/slider/slider.js\": 89732,\n\t\"./portainer/components/slider/sliderController.js\": 89463,\n\t\"./portainer/components/stack-duplication-form/stack-duplication-form-controller.js\": 23686,\n\t\"./portainer/components/stack-duplication-form/stack-duplication-form.js\": 45781,\n\t\"./portainer/components/status-indicator/index.js\": 6963,\n\t\"./portainer/components/template-widget.js\": 12556,\n\t\"./portainer/components/theme/theme-settings.controller.js\": 91181,\n\t\"./portainer/components/theme/theme-settings.js\": 59087,\n\t\"./portainer/environments/azure-endpoint-config/azure-endpoint-config.js\": 65088,\n\t\"./portainer/filters/filters.js\": 54958,\n\t\"./portainer/filters/index.js\": 50968,\n\t\"./portainer/helpers/endpointHelper.js\": 36954,\n\t\"./portainer/helpers/formHelper.js\": 70782,\n\t\"./portainer/helpers/genericHelper.js\": 90331,\n\t\"./portainer/helpers/networkHelper.js\": 53586,\n\t\"./portainer/helpers/pathHelper.js\": 24000,\n\t\"./portainer/helpers/resourceControlHelper.js\": 61018,\n\t\"./portainer/helpers/stackHelper.js\": 66891,\n\t\"./portainer/helpers/tagHelper.js\": 89170,\n\t\"./portainer/helpers/templateHelper.js\": 87913,\n\t\"./portainer/helpers/urlHelper.js\": 14103,\n\t\"./portainer/models/access.js\": 35489,\n\t\"./portainer/models/dockerhub.js\": 82337,\n\t\"./portainer/models/endpoint/formValues.js\": 62642,\n\t\"./portainer/models/endpoint/models.js\": 50975,\n\t\"./portainer/models/gitlabRegistry.js\": 73274,\n\t\"./portainer/models/group.js\": 3788,\n\t\"./portainer/models/registry.js\": 11337,\n\t\"./portainer/models/registryRepository.js\": 49938,\n\t\"./portainer/models/registryTypes.js\": 16887,\n\t\"./portainer/models/resourceControl/resourceControlCreatePayload.js\": 31060,\n\t\"./portainer/models/resourceControl/resourceControlOwnershipParameters.js\": 75679,\n\t\"./portainer/models/schedule.js\": 9167,\n\t\"./portainer/models/settings.js\": 95111,\n\t\"./portainer/models/status.js\": 44257,\n\t\"./portainer/models/tag.js\": 9557,\n\t\"./portainer/models/team.js\": 18486,\n\t\"./portainer/models/teamMembership.js\": 84236,\n\t\"./portainer/models/user.js\": 69617,\n\t\"./portainer/models/webhook.js\": 29843,\n\t\"./portainer/oauth/__module.js\": 70847,\n\t\"./portainer/oauth/components/oauth-providers-selector/index.js\": 99387,\n\t\"./portainer/oauth/components/oauth-providers-selector/oauth-provider-selector.controller.js\": 25148,\n\t\"./portainer/oauth/components/oauth-settings/index.js\": 85122,\n\t\"./portainer/oauth/components/oauth-settings/oauth-settings.controller.js\": 51362,\n\t\"./portainer/oauth/components/oauth-settings/providers.js\": 28121,\n\t\"./portainer/oauth/services/rest/oauth.js\": 19870,\n\t\"./portainer/rbac/components/access-viewer/access-viewer-datatable/index.js\": 40912,\n\t\"./portainer/rbac/components/access-viewer/access-viewer.controller.js\": 10992,\n\t\"./portainer/rbac/components/access-viewer/index.js\": 71450,\n\t\"./portainer/rbac/components/roles-datatable/index.js\": 22839,\n\t\"./portainer/rbac/components/roles-datatable/roles-datatable.controller.js\": 76033,\n\t\"./portainer/rbac/index.js\": 12966,\n\t\"./portainer/rbac/models/access.js\": 5681,\n\t\"./portainer/rbac/models/role.js\": 48315,\n\t\"./portainer/rbac/services/role.rest.js\": 94881,\n\t\"./portainer/rbac/services/role.service.js\": 4220,\n\t\"./portainer/rbac/views/roles/index.js\": 17093,\n\t\"./portainer/rbac/views/roles/roles.controller.js\": 87146,\n\t\"./portainer/registry-management/index.js\": 88339,\n\t\"./portainer/registry-management/views/create/createRegistry.js\": 93976,\n\t\"./portainer/registry-management/views/create/createRegistryController.js\": 97992,\n\t\"./portainer/registry-management/views/edit/registry.js\": 25500,\n\t\"./portainer/registry-management/views/edit/registryController.js\": 49324,\n\t\"./portainer/registry-management/views/list/registriesController.js\": 25705,\n\t\"./portainer/rest/auth.js\": 71170,\n\t\"./portainer/rest/backup.js\": 86194,\n\t\"./portainer/rest/customTemplate.js\": 94953,\n\t\"./portainer/rest/endpoint.js\": 93934,\n\t\"./portainer/rest/gitlab.js\": 28435,\n\t\"./portainer/rest/group.js\": 14394,\n\t\"./portainer/rest/registry.js\": 37573,\n\t\"./portainer/rest/resourceControl.js\": 62779,\n\t\"./portainer/rest/settings.js\": 63662,\n\t\"./portainer/rest/ssl.js\": 11196,\n\t\"./portainer/rest/stack.js\": 57296,\n\t\"./portainer/rest/support.js\": 56040,\n\t\"./portainer/rest/tag.js\": 28055,\n\t\"./portainer/rest/team.js\": 66488,\n\t\"./portainer/rest/teamMembership.js\": 75931,\n\t\"./portainer/rest/template.js\": 25543,\n\t\"./portainer/rest/transform/getEndpointsTotalCount.js\": 21837,\n\t\"./portainer/rest/transform/gitlabResponseGetLink.js\": 94180,\n\t\"./portainer/rest/user.js\": 14363,\n\t\"./portainer/rest/webhooks.js\": 81515,\n\t\"./portainer/services/allSettled.js\": 39435,\n\t\"./portainer/services/api/accessService.js\": 91261,\n\t\"./portainer/services/api/backupService.js\": 2646,\n\t\"./portainer/services/api/customTemplate.js\": 36570,\n\t\"./portainer/services/api/dockerhubService.js\": 34431,\n\t\"./portainer/services/api/endpointService.js\": 96133,\n\t\"./portainer/services/api/groupService.js\": 9959,\n\t\"./portainer/services/api/registryService.js\": 71247,\n\t\"./portainer/services/api/resourceControlService.js\": 19355,\n\t\"./portainer/services/api/settingsService.js\": 40630,\n\t\"./portainer/services/api/sslService.js\": 69704,\n\t\"./portainer/services/api/stackService.js\": 36958,\n\t\"./portainer/services/api/statusService.js\": 1265,\n\t\"./portainer/services/api/supportService.js\": 45989,\n\t\"./portainer/services/api/tagService.js\": 82679,\n\t\"./portainer/services/api/teamMembershipService.js\": 5872,\n\t\"./portainer/services/api/teamService.js\": 92915,\n\t\"./portainer/services/api/templateService.js\": 9511,\n\t\"./portainer/services/api/userService.js\": 84672,\n\t\"./portainer/services/api/webhookService.js\": 23846,\n\t\"./portainer/services/async.js\": 40677,\n\t\"./portainer/services/authentication.js\": 1848,\n\t\"./portainer/services/chartService.js\": 93408,\n\t\"./portainer/services/datatableService.js\": 41507,\n\t\"./portainer/services/fileUpload.js\": 99670,\n\t\"./portainer/services/formValidator.js\": 25128,\n\t\"./portainer/services/localStorage.js\": 76793,\n\t\"./portainer/services/nameValidator.js\": 53058,\n\t\"./portainer/services/pagination.js\": 29686,\n\t\"./portainer/services/registryGitlabService.js\": 29128,\n\t\"./portainer/services/registryModalService.js\": 5513,\n\t\"./portainer/services/session-storage.js\": 53125,\n\t\"./portainer/services/stateManager.js\": 53518,\n\t\"./portainer/services/themeManager.js\": 60997,\n\t\"./portainer/settings/authentication/auth-method-constants.js\": 81960,\n\t\"./portainer/settings/authentication/auth-type-constants.js\": 64501,\n\t\"./portainer/settings/authentication/auto-user-provision-toggle/index.js\": 92367,\n\t\"./portainer/settings/authentication/index.js\": 98108,\n\t\"./portainer/settings/authentication/ldap/ad-settings/ad-settings.controller.js\": 34821,\n\t\"./portainer/settings/authentication/ldap/ad-settings/index.js\": 83460,\n\t\"./portainer/settings/authentication/ldap/index.js\": 64057,\n\t\"./portainer/settings/authentication/ldap/ldap-connectivity-check/index.js\": 7729,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-admin-group/index.js\": 75022,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.controller.js\": 70629,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-group-search/index.js\": 5760,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.controller.js\": 3709,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-user-search/index.js\": 33606,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.controller.js\": 85870,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search-item/index.js\": 58735,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.controller.js\": 52265,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search/index.js\": 56050,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.controller.js\": 34244,\n\t\"./portainer/settings/authentication/ldap/ldap-groups-datatable/index.js\": 37844,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-custom/index.js\": 89554,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.controller.js\": 87592,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-dn-builder/index.js\": 93492,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.controller.js\": 20819,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/index.js\": 2797,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.controller.js\": 95086,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-openldap/index.js\": 66076,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.controller.js\": 12900,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-security/index.js\": 69183,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-test-login/index.js\": 47807,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.controller.js\": 5376,\n\t\"./portainer/settings/authentication/ldap/ldap-settings.model.js\": 68006,\n\t\"./portainer/settings/authentication/ldap/ldap-settings/index.js\": 14454,\n\t\"./portainer/settings/authentication/ldap/ldap-settings/ldap-settings.controller.js\": 42970,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search-item/index.js\": 71465,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.controller.js\": 97943,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search/index.js\": 96596,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.controller.js\": 56478,\n\t\"./portainer/settings/authentication/ldap/ldap-users-datatable/index.js\": 66199,\n\t\"./portainer/settings/authentication/ldap/ldap.rest.js\": 40818,\n\t\"./portainer/settings/authentication/ldap/ldap.service.js\": 58677,\n\t\"./portainer/settings/authentication/save-auth-settings-button/index.js\": 97069,\n\t\"./portainer/settings/general/index.js\": 86697,\n\t\"./portainer/settings/index.js\": 54875,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.controller.js\": 36759,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-datatable/index.js\": 18919,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-view.controller.js\": 45949,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-view.js\": 65147,\n\t\"./portainer/user-activity/activity-logs-view/index.js\": 92020,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.controller.js\": 45727,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-datatable/index.js\": 90370,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-view.controller.js\": 63963,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-view.js\": 51936,\n\t\"./portainer/user-activity/auth-logs-view/index.js\": 42384,\n\t\"./portainer/user-activity/index.js\": 10381,\n\t\"./portainer/views/account/accountController.js\": 42523,\n\t\"./portainer/views/auth/authController.js\": 6049,\n\t\"./portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js\": 44243,\n\t\"./portainer/views/custom-templates/custom-templates-view/index.js\": 94439,\n\t\"./portainer/views/devices/import/importDeviceController.js\": 23893,\n\t\"./portainer/views/devices/profiles/add/addProfileController.js\": 61483,\n\t\"./portainer/views/devices/profiles/add/index.js\": 30518,\n\t\"./portainer/views/devices/profiles/edit/editProfileController.js\": 75238,\n\t\"./portainer/views/devices/profiles/edit/index.js\": 50100,\n\t\"./portainer/views/endpoint-registries/registries.js\": 27921,\n\t\"./portainer/views/endpoint-registries/registriesController.js\": 3587,\n\t\"./portainer/views/endpoints/access/endpointAccessController.js\": 88740,\n\t\"./portainer/views/endpoints/edit/endpointController.js\": 54141,\n\t\"./portainer/views/endpoints/helpers.js\": 71329,\n\t\"./portainer/views/endpoints/kvm/endpointKVMController.js\": 31995,\n\t\"./portainer/views/groups/access/groupAccessController.js\": 23172,\n\t\"./portainer/views/groups/create/createGroupController.js\": 86770,\n\t\"./portainer/views/groups/edit/groupController.js\": 2226,\n\t\"./portainer/views/groups/groupsController.js\": 6347,\n\t\"./portainer/views/init/admin/initAdminController.js\": 15430,\n\t\"./portainer/views/logout/logoutController.js\": 47263,\n\t\"./portainer/views/main/mainController.js\": 21026,\n\t\"./portainer/views/settings/authentication/settingsAuthenticationController.js\": 41295,\n\t\"./portainer/views/settings/edge-compute/index.js\": 45711,\n\t\"./portainer/views/settings/edge-compute/settingsEdgeComputeController.js\": 27110,\n\t\"./portainer/views/stacks/create/createStackController.js\": 30322,\n\t\"./portainer/views/stacks/edit/stackController.js\": 60582,\n\t\"./portainer/views/stacks/stacksController.js\": 95637,\n\t\"./portainer/views/tags/tagsController.js\": 86378,\n\t\"./portainer/views/templates/templatesController.js\": 51750,\n\t\"./portainer/views/users/edit/userController.js\": 56899,\n\t\"./portainer/views/users/usersController.js\": 49531,\n\t\"./react/docker/components/ImageStatus/index.js\": 60355,\n\t\"./vendors.js\": 4185\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 19338;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGit = function SvgGit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E15B39\",\n d: \"M27.363 17.908 15.537 5.66a2.121 2.121 0 0 0-3.075 0l-2.364 2.45 3.212 3.326c.255-.109.535-.17.829-.17 1.202 0 2.177 1.01 2.177 2.255 0 .304-.058.594-.164.859l3.075 3.185c.256-.11.535-.17.83-.17 1.202 0 2.176 1.01 2.176 2.255 0 1.245-.974 2.255-2.177 2.255-1.202 0-2.177-1.01-2.177-2.255 0-.304.058-.594.164-.859l-3.067-3.177v8.025a2.258 2.258 0 0 1 1.34 2.082c0 1.246-.975 2.255-2.178 2.255-1.202 0-2.177-1.01-2.177-2.255 0-.938.553-1.742 1.34-2.082v-8.035a2.258 2.258 0 0 1-1.34-2.083c0-.304.059-.594.164-.858L8.913 9.336.637 17.908c-.85.88-.85 2.304 0 3.184L12.463 33.34c.85.88 2.225.88 3.074 0l11.826-12.248c.85-.88.85-2.305 0-3.184Z\"\n })));\n};\nexport default SvgGit;","var _rect, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpToDate = function SvgIconUpToDate(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 15 14\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n x: 0.5,\n fill: \"#039855\",\n rx: 7\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0BA5EC\",\n fillRule: \"evenodd\",\n d: \"M10.473 4.31 6.296 8.343 5.188 7.158a.606.606 0 0 0-.758-.041.535.535 0 0 0-.152.706L5.59 9.958c.129.198.35.32.601.32.24 0 .467-.122.595-.32.21-.275 4.218-5.052 4.218-5.052.525-.537-.111-1.01-.531-.601v.006Z\",\n clipRule: \"evenodd\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M11.14 4.305c-.128-.18-.432-.229-.667 0v.006l-.083.08-4.094 3.95-1.108-1.183a.606.606 0 0 0-.758-.041.535.535 0 0 0-.152.706L5.59 9.958a.701.701 0 0 0 .601.32.716.716 0 0 0 .608-.337c.059-.074.233-.285.48-.582.791-.952 2.327-2.786 3.158-3.777l.567-.676a1.215 1.215 0 0 0 .026-.028c.202-.222.207-.43.114-.567l-.004-.006Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgIconUpToDate;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpdatesAvailable = function SvgIconUpdatesAvailable(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 15 14\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#icon_updates-available_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n x: 0.5,\n fill: \"#F79009\",\n rx: 7\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M4.817 4.559a.75.75 0 0 1 1.06 0l1.681 1.68 1.68-1.68a.75.75 0 1 1 1.06 1.06L8.619 7.3l1.68 1.68a.75.75 0 1 1-1.06 1.061l-1.68-1.68-1.68 1.68a.75.75 0 1 1-1.06-1.06l1.68-1.68-1.68-1.68a.75.75 0 0 1 0-1.061Z\",\n clipRule: \"evenodd\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"icon_updates-available_svg__a\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n x: 0.5,\n fill: \"#fff\",\n rx: 7\n })))));\n};\nexport default SvgIconUpdatesAvailable;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpdatesUnknown = function SvgIconUpdatesUnknown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 15 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#98A2B3\",\n fillRule: \"evenodd\",\n d: \"M2.895 7a1 1 0 0 1 1-1h7.21a1 1 0 1 1 0 2h-7.21a1 1 0 0 1-1-1Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgIconUpdatesUnknown;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKube = function SvgKube(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 2v10m0 0v10m0-10 7.071-7.071M12 12l-7.071 7.071M12 12h10m-10 0H2m10 0 7.071 7.071M12 12 4.929 4.929m15.404 7.07a8.333 8.333 0 1 1-16.666 0 8.333 8.333 0 0 1 16.666 0Z\"\n })));\n};\nexport default SvgKube;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLaptopCode = function SvgLaptopCode(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 25 25\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M21.089 16.592v-8.8c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874c-.428-.218-.988-.218-2.108-.218h-11.6c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874c-.218.428-.218.988-.218 2.108v8.8m1.666 4h14.667c.62 0 .93 0 1.184-.068a2 2 0 0 0 1.414-1.415c.069-.254.069-.564.069-1.184 0-.31 0-.465-.034-.592a1 1 0 0 0-.708-.707c-.127-.034-.282-.034-.592-.034H3.422c-.31 0-.465 0-.592.034a1 1 0 0 0-.707.707c-.034.127-.034.282-.034.592 0 .62 0 .93.068 1.184a2 2 0 0 0 1.414 1.415c.254.068.564.068 1.184.068Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"m14.089 13.582 2.5-2.5-2.5-2.5m-4 0-2.5 2.5 2.5 2.5\"\n })));\n};\nexport default SvgLaptopCode;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLdap = function SvgLdap(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 79 44\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CB2026\",\n d: \"m45.322 11.32 9.313 15.984 9.317 15.982H26.693l9.313-15.982 9.316-15.985ZM64.157 38.703H79l-9.316-15.985L60.37 6.737 52.95 19.473l6.213 10.666 4.994 8.564ZM31.93 29.558l-3.985-6.84L18.63 6.737 9.316 22.718 0 38.703H26.6l2.615-4.487 2.716-4.659ZM33.295 27.224l.468-.801L40.421 15 31.78.175l-7.123 12.223 5.869 10.07 2.77 4.756Z\"\n })));\n};\nexport default SvgLdap;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLinux = function SvgLinux(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 24 24\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.613 19.27c-.703-.29-1.004-.672-.976-1.243.031-.664-.348-1.152-.528-1.347.11-.414.426-1.844 0-3.09-.457-1.332-1.851-3.367-3.289-5.367-.59-.82-.617-1.715-.648-2.746-.031-.989-.067-2.106-.617-3.348C14.957.777 13.758 0 12.265 0c-.89 0-1.804.277-2.503.762-1.438.992-1.25 3.156-1.121 4.586.015.195.03.382.039.539.086 1.402.008 2.14-.09 2.367-.067.144-.383.562-.719 1.008-.348.457-.738.972-1.062 1.457-.387.582-.696 1.469-.997 2.328-.218.629-.43 1.223-.628 1.578a2.143 2.143 0 0 0-.211 1.613c-.145.102-.356.301-.532.676-.214.453-.648.7-1.55.875-.414.082-.7.258-.848.516-.219.379-.102.851.008 1.175.16.477.058.778-.121 1.325-.043.125-.09.27-.137.425-.074.25-.047.477.082.672.34.524 1.336.707 2.36.828.609.07 1.277.317 1.925.551.633.235 1.29.473 1.887.547.09.008.18.016.265.016.899 0 1.305-.598 1.434-.844a15.825 15.825 0 0 1 2.59-.305c1.144-.03 2.254.196 2.57.266.098.187.36.621.774.844.226.125.547.195.87.195.348 0 1.009-.082 1.532-.633.523-.555 1.828-1.258 2.777-1.773.215-.117.414-.223.586-.32.535-.297.828-.72.801-1.165-.02-.367-.266-.687-.633-.84Zm-11.84-.106c-.066-.469-.671-.934-1.37-1.473-.571-.441-1.22-.941-1.395-1.363-.371-.871-.078-2.406.426-3.195.253-.395.457-.992.656-1.574.21-.625.433-1.274.68-1.555.39-.445.753-1.305.816-1.984.367.351.934.793 1.46.793a.806.806 0 0 0 .235-.032c.36-.101.887-.406 1.399-.703.437-.254.98-.566 1.187-.598.348.504 2.387 5.012 2.594 6.457a6.878 6.878 0 0 1-.098 2.461 2.163 2.163 0 0 0-.242-.015c-.566 0-.719.308-.758.492-.097.48-.11 2.016-.11 2.363-.206.262-1.241 1.489-2.73 1.707-.609.09-1.175.133-1.683.133-.438 0-.715-.035-.832-.05l-.746-.856c.293-.145.59-.453.511-1.008Zm.95-14.117-.07.035c0-.05-.008-.105-.016-.156-.082-.469-.395-.813-.742-.813-.024 0-.051.004-.079.008-.207.035-.37.191-.457.41.079-.484.352-.84.676-.84.383 0 .703.512.703 1.122 0 .078-.004.152-.015.234Zm2.964.363c.036-.11.055-.23.055-.355 0-.555-.351-.985-.797-.985-.437 0-.793.442-.793.985 0 .035 0 .074.004.11a1.269 1.269 0 0 1-.066-.024 1.504 1.504 0 0 1-.078-.477c0-.66.422-1.195.941-1.195.52 0 .942.535.942 1.195 0 .277-.079.54-.207.746Zm-.382 1.285c-.008.032-.024.047-.2.14-.09.044-.199.103-.335.188l-.094.055c-.371.227-1.242.754-1.477.785-.16.02-.258-.043-.48-.195-.051-.031-.106-.07-.164-.106-.403-.265-.66-.554-.688-.667.13-.102.457-.356.621-.504.336-.317.676-.528.844-.528.012 0 .02.004.027.004.196.035.684.23 1.04.371.164.067.308.121.406.16.316.106.48.247.5.297Zm2.828 14.664c.18-.8.383-1.89.351-2.53-.007-.15-.023-.306-.035-.462-.023-.285-.058-.715-.023-.84.008-.004.015-.007.023-.007.004.367.082 1.097.668 1.355.176.074.375.113.594.113.586 0 1.238-.285 1.504-.554.16-.157.289-.348.383-.5.02.058.03.136.027.234-.035.543.227 1.262.727 1.527l.074.04c.18.093.652.34.66.46 0 0-.004.012-.031.035-.117.11-.535.325-.938.532-.719.363-1.531.781-1.894 1.164-.516.539-1.098.902-1.45.902a.361.361 0 0 1-.113-.015c-.383-.118-.695-.668-.527-1.454ZM3.14 19.316c-.04-.183-.07-.324-.036-.464.024-.102.532-.215.75-.262.305-.067.622-.133.829-.258.277-.172.43-.484.562-.758.098-.199.2-.406.316-.472a.066.066 0 0 1 .036-.008c.222 0 .691.465.96.886.067.106.192.317.34.56.438.733 1.036 1.733 1.348 2.07.281.304.738.882.625 1.382-.082.383-.52.7-.621.77a.728.728 0 0 1-.14.011c-.598 0-1.782-.5-2.419-.765l-.093-.04c-.356-.148-.938-.241-1.496-.335-.45-.07-1.059-.168-1.16-.258-.083-.094.011-.395.097-.656.059-.192.121-.387.156-.594a2.162 2.162 0 0 0-.054-.809Zm0 0\",\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"currentColor\",\n fillOpacity: 1\n }\n }));\n};\nexport default SvgLinux;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMemory = function SvgMemory(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M14.5 18.3v2.58m2.5-9.84v-3M5.5 18.3v2.58M10 18.3v2.58m0-2.58h5.2c1.68 0 4.658 0 5.3-.327a3 3 0 0 0 1.311-1.311c.243-.477.305-1.183.322-2.142M10 18.3H8.8c-1.68 0-4.52 0-5.162-.327a3 3 0 0 1-1.311-1.311c-.243-.477-.305-1.183-.321-2.142M19 18.3v2.58m-6.88-9.84v-3m-5.04 3v-3m-5.074 6.48C2 14.188 2 13.932 2 13.5V8.8c0-1.68 0-2.52.327-3.162a3 3 0 0 1 1.311-1.311C4.28 4 7.12 4 8.8 4h6.4c1.68 0 4.658 0 5.3.327a3 3 0 0 1 1.311 1.311c.327.642.327 1.482.327 3.162v4.7c0 .432 0 .688-.006 1.02m-20.126 0h20.127\"\n })));\n};\nexport default SvgMemory;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgRoute = function SvgRoute(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M11.5 5h.434c3.048 0 4.571 0 5.15.547a2 2 0 0 1 .586 1.845c-.156.781-1.4 1.66-3.888 3.42l-4.064 2.876c-2.488 1.76-3.732 2.639-3.888 3.42a2 2 0 0 0 .586 1.845c.579.547 2.102.547 5.15.547h.934M8 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm14 14a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n })));\n};\nexport default SvgRoute;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSubscription = function SvgSubscription(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 22 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.8,\n d: \"M20.864 8.083H1.697m8.625 8.625h7.475c1.074 0 1.61 0 2.02-.209.361-.183.654-.476.838-.837.21-.41.21-.947.21-2.02V6.358c0-1.073 0-1.61-.21-2.02a1.917 1.917 0 0 0-.837-.837c-.41-.21-.947-.21-2.02-.21h-1.726m-5.75 13.417 1.917 1.917m-1.917-1.917 1.917-1.916m-5.75 1.916H4.764c-1.073 0-1.61 0-2.02-.209a1.916 1.916 0 0 1-.838-.837c-.209-.41-.209-.947-.209-2.02V6.358c0-1.073 0-1.61.21-2.02.183-.36.476-.654.837-.837.41-.21.947-.21 2.02-.21h7.475m0 0-1.917 1.917m1.917-1.916-1.917-1.917\"\n })));\n};\nexport default SvgSubscription;","var _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAzure = function SvgAzure(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__a)\",\n d: \"M8.34 7.955h7.401L8.058 31.222a1.2 1.2 0 0 1-.43.595c-.2.147-.442.226-.689.226H1.18a1.16 1.16 0 0 1-.538-.133 1.191 1.191 0 0 1-.628-.893 1.233 1.233 0 0 1 .049-.564l7.16-21.677c.078-.24.228-.447.43-.594.2-.147.441-.226.688-.226v-.001Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0078D4\",\n d: \"M19.096 23.562H7.358a.536.536 0 0 0-.506.35.565.565 0 0 0 .135.61l7.543 7.194c.22.21.508.326.809.326h6.646l-2.89-8.482v.002Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__b)\",\n d: \"M8.34 7.955c-.25 0-.493.08-.695.23-.202.15-.351.363-.426.606L.07 30.435a1.224 1.224 0 0 0 .146 1.1c.11.157.254.287.422.375.168.089.354.135.543.134h5.91c.22-.04.425-.139.595-.287.17-.148.3-.34.373-.555l1.426-4.293 5.091 4.854c.213.18.481.28.758.282h6.622l-2.905-8.482-8.465.002 5.181-15.61H8.34Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__c)\",\n d: \"M17.794 8.775a1.205 1.205 0 0 0-.43-.594c-.2-.147-.44-.226-.687-.226h-8.25c.248 0 .487.08.688.226.2.147.35.355.43.594l7.159 21.68a1.222 1.222 0 0 1-.58 1.456c-.166.087-.35.133-.537.133h8.249a1.159 1.159 0 0 0 .957-.502 1.231 1.231 0 0 0 .16-1.088l-7.16-21.68Z\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__a\",\n x1: 11.038,\n x2: 3.044,\n y1: 9.741,\n y2: 32.844,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#114A8B\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0669BC\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__b\",\n x1: 13.438,\n x2: 11.652,\n y1: 20.556,\n y2: 21.147,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopOpacity: 0.3\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.07,\n stopOpacity: 0.2\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.32,\n stopOpacity: 0.1\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.62,\n stopOpacity: 0.05\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__c\",\n x1: 12.516,\n x2: 21.281,\n y1: 9.042,\n y2: 31.892,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#3CCBF4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#2892DF\"\n })))));\n};\nexport default SvgAzure;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDockerCompose = function SvgDockerCompose(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#docker-compose_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#B8C9DA\",\n d: \"M26.923 21.727c-2.571 0-2.82 2.047-2.82 2.047l1.671-.474s1.248-.65 2.347.574c1.198 1.248.55 3.37 0 4.17-.774 1.247-3.843 1.397-4.044 1.347-1.348-2.87-4.469-2.996-4.469-2.996l3.37-3.095s3.52-3.42 3.52-6.615c0-3.195-3.695-6.64-3.695-6.64s-1.523-1.198-1.523-2.22c0-1.723 3.47-2.197 5.417-3.22 1.947-1.023.45-3.844-.324-4.294-1.522-.649-2.371.525-2.371.525L22.354 4.98l-1.198.474s-.95-.05-1.723.924c-.774.973-.15 3.12-.15 3.12s-1.298-.673-3.494-.673c-7.189 0-7.838 5.99-7.838 7.04 0 1.047.574 3.144 1.398 4.143.823.998 2.645 3.095 2.645 4.417 0 2.097-3.295 3.37-4.992 3.37-2.321 0-3.22-1.423-3.22-2.396 0-1.398.924-2.921 1.473-3.944.549-1.023-.35-2.322-.35-2.322l-1.198.55-2.421-1.374s.03-2.178-.068-2.228c-.45.1-.98.78-.98 1.88 0 1.5 1.596 1.739 2.436 2.061 1.136.438 1.132 1.508.384 2.53-.748 1.024-1.298 3.246-1.298 4.344 0 2.196 2.846 3.22 4.767 3.22 2.97 0 4.992-1.548 4.992-1.548s.274 1.723.274 2.571c0 .849-.773 1.648-2.096 1.648s-2.371-.598-2.371-.598-2.696-1.748-3.82-1.748c-1.971 0-2.67 2.022-2.67 2.472 0 .45.324 1.472.598 1.847.275.375 1.698.95 2.073.849.374-.1.524-.924.45-1.198-.076-.275-1.323-1.048-1.323-1.423s.216-.7.89-.7c.673 0 1.46.593 2.682 1.742.89.837 3.164 1.844 4.59 1.778.948-.043 2.758-.477 3.145-1.971.221-.857-.1-3.37.124-2.72.225.648.765 1.809 2.357 2.873.548.365 3.103 1.067 4.706.472 1.998-.375 3.096-3.145 3.12-3.17 2.123 0 3.546-.8 5.018-1.573 1.473-.774 1.448-3.42 1.448-4.843 0-1.847-2.72-3.144-3.794-3.144l.003-.004Zm-13.18 8.488s-.499-.749-.499-1.548c0-.8.175-1.522 1.473-2.022-.026.026-1.182 1.133-.974 3.57Zm5.318 2.47c-1.947 0-3.02-1.922-3.02-3.17 0-1.247.649-2.096.649-2.096s.03.632.03.757c0 .124.341 1.24 1.115 2.039.774.799 3.896.973 3.822 1.048-.5.998-1.923 1.423-2.596 1.423Zm2.597-3.862a4.908 4.908 0 0 1-2.13-1.292c1.498-.093 2.228 1.33 2.13 1.292Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#99B3D1\",\n d: \"M11.512 13.05c.876-.953 1.107-2.166.516-2.71-.298-.274-.75-.323-1.237-.184-1.135.804-1.831 1.85-2.257 2.835.01.322.11.605.323.8.59.543 1.78.212 2.656-.74l-.001-.002ZM14.802 11.476c.67-.386 1.015-1.043.77-1.466-.244-.424-.986-.454-1.656-.067-.67.386-1.014 1.043-.77 1.467.244.423.986.453 1.656.066ZM8.914 34.851c.24-.44-.133-1.103-.831-1.48s-1.455-.324-1.694.116c-.095.174-.09.383-.012.595.427.412 1.206.806 2.012 1.11.235-.047.426-.158.524-.34h.001ZM15.145 27.415c-.326-.193-.763-.036-1.102.348a6.483 6.483 0 0 0-.353 1.824c.06.103.136.19.233.247.424.251 1.04-.088 1.377-.755.337-.668.268-1.413-.155-1.665ZM15.311 30.244c-.234.463-.185.978.108 1.152.286.17.698-.05.935-.492a3.355 3.355 0 0 1-.37-1.232c-.244.034-.507.244-.673.572Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#8597A9\",\n d: \"M21.593 28.782A4.824 4.824 0 0 1 20 27.968c.153.592.424 1.969-.003 2.975.857.171 1.634.239 1.594.28-.034.067-.082.126-.124.189.16-.135.67-.62.649-1.338-.015-.508-.237-.978-.527-1.345.015.038.016.058.003.053h.001ZM23.6 19.116c-.587.849-1.834 2.122-1.834 2.122s-2.572 1.498-3.545 3.47c0 0 1.29-.788 3.543-.392l1.15-1.055s3.52-3.42 3.52-6.615c0-1.597-.924-3.258-1.848-4.518-.024.666-.101 1.497-.324 2.047.026.45.4 3.294-.662 4.942ZM4.61 22.497c.204-.396.423-.695.6-1.01.738-1.304-.367-2.396-.367-2.396l-1.198.549-1.51-.856c-.099.242-.203.516-.237.683-.01.05.005.119.039.196.38.12.552.322.815.414.596.21.992.829.77 1.562.285.323.724.616 1.088.857v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M17.942 25.473s.078-1.054.988-2.101c.91-1.048 1.385-1.329 2.32-2.144.937-.814 2.434-2.041 2.774-4.21.23-1.299.127-2.813-.548-3.895-.674-1.082-2.31-3.108-5.443-3.832-3.132-.725-5.566.287-5.566.287s-4.063 1.464-4.372 6.117c-.07 1.34.264 2.144.264 2.144s.435 1.37 1.043 2.124c.607.753 1.318 1.631 1.318 1.631s1.303 1.327 1.303 2.878c0 .618-.242 1.199-.64 1.61-.395.41-1.551 1.977-4.547 1.977-1.82 0-3.29-1.158-3.29-2.47 0-1.076.342-1.996.756-2.7.415-.705 1.118-1.562 1.118-2.384 0-.553-.562-1.334-.562-1.334l.11-.103s.568.652.568 1.425c0 .478-.088.772-.203 1.01-.115.237-1.439 2.269-1.439 3.708 0 .804.512 2.38 2.94 2.38 1.8 0 2.754-.547 3.87-1.375.635-.49 1.112-1.157 1.112-1.769 0-.61-.2-1.123-.633-1.728a17.442 17.442 0 0 0-1.303-1.642c-.575-.65-2.287-2.183-2.287-5.547 0-1.593 1.398-7.001 8.43-7.001 1.547 0 8.667 1.316 8.667 7.437 0 1.78-.983 4.029-2.497 5.277-1.515 1.248-3.727 2.691-4.254 4.23h.003Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#121313\",\n d: \"M19.585 26.438s-.559.158-.42.098c.212-.092.843-.539 1.204-.905.716-.728 5.784-4.99 5.784-8.49 0-3.252-2.208-5.332-2.208-5.332s-.326-.278-1.286-1.41c-.96-1.13-1.232-1.487-1.341-1.87-.207-.355-.2-1.491.513-1.988.712-.498.853-.449.853-.449l.018.17s-.994.426-1.286 1.332c-.06.298-.12.91.592 1.619l1.937 1.928s2.728 2.261 2.728 6.002c0 1.152-.669 2.998-1.752 4.228-1.083 1.229-3.566 3.887-5.335 5.067ZM19.082 9.328s-.616-1.32-.277-2.542c.336-1.03 1.29-1.346 2.423-1.474.177.036.198.12.198.12s-1.675.142-2.282 1.742c-.191.58.047 1.788.256 2.237.04.067-.318-.083-.318-.083ZM14.625 19.985c-.67-.52-1.672-.315-2.158.3-.54.686-.485 1.682.182 2.17.504.368 1.698.287 2.158-.3.605-.774.471-1.664-.182-2.17Zm-.01 2.018c-.409.522-1.463.58-1.92.266-.492-.338-.65-1.325-.165-1.933a1.43 1.43 0 0 1 1.016-.537c-.06.073-.096.126-.096.225 0 .238.201.432.452.432.25 0 .452-.157.452-.396 0-.02-.004-.04-.007-.058.036.023.072.04.106.068.575.46.702 1.243.164 1.933h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M14.452 20.07c-.034-.027-.07-.045-.106-.068.003.02.007.038.007.058a.442.442 0 0 1-.452.432.442.442 0 0 1-.452-.432c0-.1.037-.19.097-.262a1.431 1.431 0 0 0-1.016.537c-.486.607-.328 1.594.163 1.933.458.315 1.512.256 1.921-.267.54-.688.412-1.472-.163-1.932Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#121313\",\n d: \"M17.796 20.463c-.67-.519-1.672-.315-2.158.3-.54.686-.486 1.682.182 2.17.504.368 1.698.287 2.158-.3.605-.773.471-1.664-.182-2.17Zm-.01 2.018c-.409.523-1.463.581-1.92.267-.492-.338-.65-1.325-.165-1.933.263-.33.638-.51 1.016-.538-.06.073-.096.126-.096.225 0 .24.201.433.452.433.25 0 .452-.157.452-.397a.31.31 0 0 0-.007-.058c.035.024.072.04.106.069.575.46.702 1.243.164 1.932h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M17.623 20.549c-.034-.027-.07-.046-.106-.069.003.02.007.038.007.058a.442.442 0 0 1-.452.433.442.442 0 0 1-.453-.433c0-.099.037-.189.097-.262a1.43 1.43 0 0 0-1.016.538c-.485.606-.327 1.593.164 1.933.458.314 1.512.256 1.921-.267.54-.688.412-1.473-.163-1.933v.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#151516\",\n d: \"m1.188 18.105-.14-2.05s-.063-.258.24-.357l2.954-.97s.508-.108.92.031c.412.14 1.716.688 1.716.688s.318.106.318.45c0 .343-.023 1.655-.023 1.655s.002.517-.208.634c-.21.116-3.046 1.558-3.046 1.558s-.47.11-.761-.081c-.292-.192-1.683-1.01-1.683-1.01s-.286-.165-.286-.548h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"m1.29 16.3.095 1.761s.007.265.424.52 1.557.9 1.557.9.122.067.122-.237V17.58s.077-.36-.122-.437c-.2-.076-1.909-.93-1.909-.93s-.167-.15-.167.087v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"M3.679 19.122v-1.586s-.043-.308.268-.42c.312-.113 2.653-1.103 2.653-1.103s.278-.13.278.188v1.348s-.005.26-.23.393-2.68 1.413-2.68 1.413-.288.091-.288-.234l-.001.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m1.632 16.003 1.824.935s.193.119.544-.028l2.548-1.062s.243-.135.019-.209c-.224-.073-1.699-.663-1.699-.663s-.363-.085-.646 0c-.282.086-2.452.788-2.452.788s-.409.097-.139.239h.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05446D\",\n d: \"M3.252 19.219a.093.093 0 0 1-.035-.007l-.043-.017c-.056-.022-.1-.1-.103-.181l-.048-1.647c-.002-.054.016-.098.048-.121a.085.085 0 0 1 .083-.01l.044.018c.056.022.1.1.102.18l.049 1.648c.001.054-.016.098-.049.12a.088.088 0 0 1-.05.017h.002Zm.002-.098-.018.046.018-.046Zm-.131-1.79v.035l.048 1.646c.001.048.027.087.04.093l.041.016v-.035l-.048-1.646c-.002-.048-.027-.087-.04-.093l-.041-.016ZM2.874 18.996a.091.091 0 0 1-.035-.007l-.043-.017c-.057-.022-.1-.099-.103-.18l-.048-1.648c-.002-.054.016-.098.048-.12a.087.087 0 0 1 .084-.01l.044.017c.057.022.1.1.103.181l.048 1.647c.001.054-.016.098-.048.121a.085.085 0 0 1-.05.016Zm.002-.098-.018.047.018-.047Zm-.131-1.79v.035l.048 1.647c.002.048.027.086.04.092l.041.016v-.034l-.048-1.647c-.002-.047-.027-.086-.04-.092l-.041-.016ZM2.479 18.791a.093.093 0 0 1-.035-.007l-.044-.017c-.056-.022-.1-.1-.102-.181l-.049-1.647c-.001-.054.016-.098.049-.121a.088.088 0 0 1 .084-.01l.044.018c.056.022.1.1.102.181l.049 1.647c0 .054-.017.098-.049.121a.088.088 0 0 1-.05.016Zm0-.098-.017.046.019-.046H2.48Zm-.13-1.79s-.002.015 0 .034l.048 1.646c0 .048.026.087.04.093l.04.016s.002-.015 0-.035l-.048-1.646c-.001-.049-.027-.087-.04-.093l-.04-.016v.001ZM2.083 18.528a.083.083 0 0 1-.034-.007l-.044-.017c-.056-.022-.1-.098-.102-.178l-.047-1.615c-.002-.053.016-.096.048-.119a.09.09 0 0 1 .084-.01l.044.018c.056.022.1.098.103.179l.047 1.615c.001.053-.016.096-.047.12a.087.087 0 0 1-.05.015h-.002Zm0-.098-.016.046.018-.046h-.001Zm-.13-1.755v.032l.048 1.616c.001.046.026.084.039.089l.042.016v-.032l-.048-1.616c0-.046-.026-.084-.04-.089l-.04-.016ZM1.689 18.308a.112.112 0 0 1-.033-.006l-.044-.016c-.057-.02-.1-.097-.103-.175l-.046-1.592c-.001-.052.016-.094.047-.117a.09.09 0 0 1 .084-.01l.044.017c.057.02.1.097.103.176l.046 1.59c.001.052-.016.095-.047.118a.088.088 0 0 1-.051.016v-.001Zm.001-.098-.017.046.017-.046Zm-.128-1.726s-.002.013-.001.03l.046 1.592c.001.045.027.082.04.087l.04.016s.002-.014 0-.031l-.045-1.59c-.001-.046-.027-.082-.04-.088l-.041-.015.001-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M27.797 23.567c-.609-.427-.915-.528-1.476-.528-.562 0-.783.43-.783.43s.655-.257 1.057-.257c.403 0 1.997.824 1.997 2.519 0 2.537-2.072 3.484-3.76 3.484-.318 0-.62-.012-.906-.032l.138.384c.25.028.493.044.715.044 2.015 0 3.077-1.054 3.51-1.6.432-.546.627-1.53.627-2.26 0-.73-.511-1.755-1.119-2.182v-.002ZM21.721 29.055l-.14-.308c-.953-.318-1.617-.754-2.077-1.172.01.031.031.078.082.14a.7.7 0 0 1 .126.303c.202.194.395.356.545.446.383.205.898.41 1.464.59v.002ZM18.556 26.265c-.054.097.007.281.134.503l.088-.057c-.163-.267-.222-.446-.222-.446Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M14.745 26.62s-1.283 1.112-1.283 2.863c0 1.752.746 2.79.944 3.006.199.215 1.856 2.289 5.3 2.289 1.246 0 4.606-1.044 4.606-4.302 0-1.91-1.685-4.07-4.915-4.07-.889.041-1.468.728-1.468 1.233 0 .758.448 1.236 1.01 1.236.502 0 .832-.223.832-.817 0-.3-.243-.47-.305-.51-.06-.041.244.324.174.657-.07.332-.225.575-.684.575-.314 0-.946-.424-.824-1.117.084-.423.468-.928 1.242-1.02 1.36-.161 4.58.842 4.58 3.807 0 2.085-1.918 4.2-4.249 4.2-2.33 0-3.637-1.044-3.637-1.044s-2.234-1.82-2.234-4.1c0-1.07.141-1.893.9-2.872\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M16.676 27.48s-.603.685-.603 1.879c0 1.193.87 3.106 2.775 3.106 1.257 0 2.966-.943 2.966-2.306 0-1.244-1.009-2.608-2.348-2.608-.03-.031.039-.07.123-.07.084 0 .914.007 1.677.666.762.658.972 1.305.972 1.984 0 .68-.16 1.305-.966 1.91-.804.606-1.34.862-2.424.862-1.082 0-2.037-.968-2.037-.968s-.926-.861-.926-2.396c0-.556.445-2.015.792-2.059h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M18.415 30.296c-.693-.39-1.641-1.062-1.765-3.53 0 0-.51 2.51 1.336 3.827.705.527 1.494.8 3.409.908l.232-.325c-1.15-.157-2.377-.428-3.21-.88h-.002ZM30.925 26.408c0-1.16.041-4.812-4.253-4.812-1.461 0-2.69 1.295-2.69 2.25.075 0 .168-.087.168-.087s.101-.787.742-1.279c.644-.495.95-.643 1.78-.643.829 0 3.821.469 3.821 4.191 0 1.987-.957 3.526-2.393 4.219-1.176.567-2.323.96-4.002 1.026l-.082.285c3.882-.018 6.91-2.177 6.91-5.15h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#090D0F\",\n d: \"M1.154 16.142s-.531-.054-.834.496c-.302.55-.438 1.272-.196 1.943.243.671.742.9 1.254 1.08.512.18 2.163.665 2.163 1.57 0 .461-.7 1.583-1.057 2.134-.358.55-.969 2.015-.969 3.688 0 1.494 1.623 3.405 4.815 3.405 1.6 0 3.144-.46 5.008-1.509.225-.159.075-.561.075-.561s-2.11 1.577-5.094 1.577c-2.077 0-4.392-1.162-4.392-2.97 0-1.808.341-2.886.753-3.606.412-.72.977-1.48.977-2.172 0-.691-.672-1.34-1.172-1.544-.5-.204-1.33-.403-1.711-.665-.38-.262-.456-.932-.456-1.17 0-.24-.017-1.04.521-1.507.126-.083.315-.19.315-.19v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M14.986 25.233s-.326-.15-.865-.15c-.76 0-2.956 1.023-2.956 2.494 0 1.472 1.408 4.966-1.54 4.966-1.795 0-3.427-1.22-3.427-1.22s-1.388-1.07-2.743-1.07S.6 31.415.6 33.023c0 1.61 1.425 2.857 2.37 2.857.946 0 1.098-.688 1.098-.688s.236-.587-.122-.896c-.357-.31-1.204-.736-1.204-1.365 0-.628.714-.596.714-.596s.653-.04 1.387.596c.735.637 3.005 3.15 5.795 3.15 1.956 0 2.72-.841 3.055-1.329.334-.488.962-1.395.385-3.087-.64-1.877-1.737-3.677.66-5.03 0 .013-1.07.232-1.583 1.461-.305.774.042 1.925.259 2.784.216.859.678 2.42-.065 3.4-.566.747-1.373 1.312-2.689 1.312s-2.54-.564-2.54-.564-1.031-.377-1.876-1.088c-.844-.71-1.514-1.266-1.514-1.266s-.603-.485-1.345-.485c-.743 0-.924.505-.924.717 0 .212.11.672.429.9.32.229.588.435.712.585.125.15.244.443.081.7-.162.255-.27.41-.68.41-.41 0-.789-.244-1.062-.462-.274-.218-.75-.785-.87-1.259-.122-.474-.102-.756-.102-.756s.042-.642.33-1.116c.287-.474.957-1.278 2.157-1.278.489 0 1.017.175 1.798.645.78.47 1.788 1.112 1.788 1.112s.946.637 2.525.637c1.03 0 1.716-.38 2.127-.953.412-.573.314-1.603.064-3.066-.25-1.464-.414-1.933.436-2.837.792-.843 1.904-1.108 2.793-.935h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0E1011\",\n d: \"m15.683 34.62.07 1.566s-.056.399.416.697c.473.299 3.518 2.317 3.518 2.317s.356.238.857-.061c.5-.299 2.348-1.413 2.348-1.413s.226-.142.251-.517c.026-.376.088-1.567.088-1.567s.031-.156-.247-.344c-.278-.188-4.065-1.85-4.065-1.85s-.375-.164-.782-.028c-.407.136-2.065.719-2.065.719s-.404.187-.391.48h.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m16.254 34.515 3.683 1.967s.223.154.568 0 1.9-.988 1.9-.988.255-.083-.11-.253c-.366-.168-3.474-1.648-3.474-1.648s-.168-.137-.493-.044c-.326.094-2.037.673-2.037.673s-.412.092-.037.293Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"m15.889 34.73.107 1.43s-.02.263.403.49c.424.225 3.472 2.299 3.472 2.299s.23.107.23-.282c0-.388-.025-1.511-.025-1.511s.034-.266-.186-.392l-3.766-2.121s-.235-.132-.235.086Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"m20.334 38.667-.019-1.618s-.047-.23.196-.351c.245-.123 2.247-1.104 2.247-1.104s.18-.11.178.173c0 .284-.043 1.444-.043 1.444s-.03.177-.187.276l-2.143 1.323s-.23.154-.23-.142Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05446D\",\n d: \"M20.662 38.552a.099.099 0 0 1-.059-.019c-.031-.021-.048-.06-.048-.106l.002-1.5c0-.077.048-.152.113-.174l.05-.018a.11.11 0 0 1 .098.011c.03.022.048.061.048.106l-.002 1.5c0 .078-.049.153-.113.175l-.052.018a.11.11 0 0 1-.038.007Zm.1-1.725-.06.018c-.022.007-.047.045-.047.082l-.002 1.5c0 .015.004.025.007.027l.058-.019c.022-.008.048-.043.048-.081l.002-1.5c0-.016-.005-.025-.007-.027ZM21.152 38.196a.105.105 0 0 1-.061-.02.122.122 0 0 1-.046-.1l.007-1.37c0-.07.05-.142.114-.163l.052-.016a.109.109 0 0 1 .098.014.12.12 0 0 1 .046.098l-.007 1.37c0 .071-.05.143-.114.164l-.052.016a.139.139 0 0 1-.037.005v.002Zm.106-1.576-.062.018c-.022.007-.046.038-.046.07l-.007 1.37c0 .012.003.017.006.018l.062-.017c.022-.007.046-.038.046-.07l.007-1.37c0-.012-.003-.017-.006-.019ZM21.617 37.867a.102.102 0 0 1-.064-.02.11.11 0 0 1-.042-.094l.01-1.277c0-.068.052-.136.116-.155l.051-.017a.11.11 0 0 1 .1.015c.028.021.043.055.043.093l-.01 1.276a.172.172 0 0 1-.115.156l-.052.015a.127.127 0 0 1-.036.006l-.001.002Zm.107-1.468-.008.001-.05.016a.073.073 0 0 0-.047.063l-.01 1.276c0 .008.002.013.003.014h.013l.052-.015a.071.071 0 0 0 .046-.062l.01-1.277c0-.007 0-.011-.003-.014h-.005V36.4ZM22.079 37.606a.104.104 0 0 1-.064-.02.11.11 0 0 1-.042-.094l.01-1.276c0-.068.052-.136.115-.156l.052-.015a.114.114 0 0 1 .1.015.11.11 0 0 1 .042.093l-.01 1.277a.172.172 0 0 1-.116.156l-.051.015a.128.128 0 0 1-.036.005Zm.107-1.468s-.005 0-.008.002l-.052.015a.071.071 0 0 0-.046.062l-.01 1.276c0 .008.002.013.003.014h.013l.052-.016c.024-.007.045-.037.046-.062l.01-1.277c0-.008-.002-.012-.003-.014h-.005ZM22.517 37.368a.105.105 0 0 1-.064-.021.112.112 0 0 1-.042-.09l.012-1.235a.17.17 0 0 1 .116-.152l.052-.015a.113.113 0 0 1 .1.016c.027.02.043.053.042.09l-.012 1.236c0 .068-.05.133-.116.152l-.052.015a.126.126 0 0 1-.036.005v-.001Zm.106-1.421h-.004l-.052.015c-.023.007-.045.035-.045.059l-.012 1.235c.005.013.01.013.016.01l.052-.015a.072.072 0 0 0 .047-.059l.011-1.235c-.003-.009-.007-.011-.011-.011l-.002.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0E1011\",\n d: \"m26.434 23.134-2.906.688s-.415.01-.399.573c.016.563.084 1.738.084 1.738s.09.523.594.703c.506.18 2.19.925 2.19.925s.216.177.535.062c.321-.117 2.06-.803 2.06-.803s.4-.866.058-1.936c-.344-1.069-1.198-1.951-2.216-1.951v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"M26.393 27.334V25.5s-.029-.267.182-.338c.211-.07 1.497-.52 1.497-.52s.17-.117.286.091c.115.208.233.612.233 1.03 0 .416-.107.86-.107.86s-.049.163-.19.216c-.143.053-1.706.662-1.706.662s-.194.126-.194-.167h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"M26.213 25.537v1.701s.038.283-.093.232a316.13 316.13 0 0 1-2.387-1.063s-.222-.145-.24-.518c-.019-.374-.097-1.472-.097-1.472s-.016-.218.149-.133c.165.083 2.261.865 2.384.906.124.042.284.17.284.348Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m23.634 24.12 2.262.8s.217.204.71.023a61.772 61.772 0 0 1 1.404-.483s.205-.046.086-.196c-.118-.15-.403-.57-1.246-.963-.199-.083-.474-.004-.67.049-.196.053-2.496.598-2.496.598s-.232.108-.05.172Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#121313\",\n d: \"M18.993 3.577s.26-2.1.302-2.34c.043-.238.22-.387.647-.439.393-.048 2.573-.333 2.573-.333s.498-.127 1.034.16c.535.287 3.027 1.632 3.216 1.76.19.13.361.16.285.777a62.834 62.834 0 0 1-.296 1.984s.052.321-.344.433c-.395.112-3.171.827-3.171.827s-.354.135-.877-.164c-.522-.298-3.059-1.903-3.187-1.99-.128-.086-.25-.25-.18-.675h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#090D0F\",\n d: \"M26.793 4.271s.674-.355.674-1.293c0-.787-.564-2.747-2.032-2.747-1.216 0-1.55.75-1.55.75l-.179-.152S24.18 0 25.436 0c1.257 0 2.342 1.678 2.342 3.042 0 1.054-1.057 1.739-1.057 1.739l.074-.51-.002.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"m19.237 3.717.255-2.254s-.013-.27.174-.15c.186.118 3.172 1.948 3.172 1.948s.216.163.14.59c-.074.425-.223 1.98-.223 1.98s.018.224-.23.088c-.249-.136-3.19-1.876-3.19-1.876s-.127-.078-.098-.326Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"m22.999 5.98.24-2.374s.048-.2.24-.227c.19-.028 3.228-.571 3.228-.571s.204-.014.15.314l-.338 1.98s-.075.219-.275.305c-.2.087-2.962.723-2.962.723s-.297.109-.286-.15H23Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m19.976 1.162 3.052 1.894s.145.156.623.076c.477-.08 2.809-.497 2.809-.497s.148 0 .084-.066C26.479 2.504 23.39.857 23.39.857s-.26-.19-.8-.14c-.54.048-2.58.287-2.58.287s-.22.045-.035.16l.001-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05446D\",\n d: \"M25.869 27.127a.108.108 0 0 1-.033-.004l-.048-.015c-.061-.02-.11-.092-.114-.17l-.075-1.52c-.003-.048.014-.09.044-.113a.1.1 0 0 1 .09-.015l.048.015c.061.02.11.093.114.17l.075 1.521c.003.047-.014.089-.044.112a.097.097 0 0 1-.058.02Zm-.003-.099h.003s.004-.009.004-.029l-.075-1.52c-.002-.041-.028-.076-.046-.081l-.048-.015s-.007.008-.007.027l.075 1.521c.002.042.029.075.046.081l.048.015v.001ZM25.372 26.87a.099.099 0 0 1-.031-.004l-.049-.014c-.062-.019-.112-.088-.115-.162l-.07-1.42a.126.126 0 0 1 .043-.106.102.102 0 0 1 .091-.017l.049.014c.062.019.112.088.115.162l.07 1.42a.126.126 0 0 1-.043.107.095.095 0 0 1-.06.02Zm-.158-1.628s-.008.007-.008.023l.069 1.42c.001.034.025.067.045.072l.048.015h.004s.004-.008.004-.023l-.069-1.42c-.001-.034-.025-.066-.045-.072l-.048-.014v-.001ZM24.886 26.68a.096.096 0 0 1-.03-.005l-.05-.015c-.062-.018-.111-.087-.114-.161l-.07-1.42a.125.125 0 0 1 .043-.107.102.102 0 0 1 .091-.016l.049.015c.062.018.111.088.115.161l.069 1.421a.123.123 0 0 1-.043.106.095.095 0 0 1-.06.021Zm-.003-.1h.003s.006 0 .005-.022l-.07-1.42c0-.034-.025-.067-.044-.072l-.049-.015s-.008.007-.008.023l.07 1.42c0 .034.025.066.044.072l.049.014ZM24.404 26.475a.096.096 0 0 1-.031-.005l-.049-.014c-.062-.018-.112-.087-.115-.161l-.07-1.42a.125.125 0 0 1 .044-.107.102.102 0 0 1 .09-.016l.05.014c.061.018.11.087.114.161l.07 1.42a.126.126 0 0 1-.043.107.095.095 0 0 1-.06.02Zm-.158-1.629s-.008.007-.008.023l.07 1.421c0 .034.024.066.044.072l.049.014h.003s.005-.007.003-.024l-.069-1.42c0-.034-.025-.066-.045-.072l-.048-.014h.001ZM23.913 26.265a.085.085 0 0 1-.03-.005l-.048-.014c-.062-.017-.112-.085-.115-.158l-.068-1.381a.122.122 0 0 1 .041-.104.105.105 0 0 1 .092-.017l.049.014c.062.017.112.085.115.158l.068 1.381a.121.121 0 0 1-.041.104.098.098 0 0 1-.061.02l-.002.002Zm-.155-1.584s-.01.008-.008.021l.068 1.382c0 .032.025.063.043.068l.049.014h.005s.004-.007.003-.021l-.068-1.382c-.001-.032-.024-.063-.044-.068l-.048-.014ZM23.496 5.818h-.083a.162.162 0 0 1-.116-.056.17.17 0 0 1-.037-.132l.265-1.933a.198.198 0 0 1 .189-.168h.078a.162.162 0 0 1 .115.055.17.17 0 0 1 .037.134L23.68 5.65a.194.194 0 0 1-.185.168v-.001Zm.215-2.191c-.041 0-.081.038-.087.083l-.264 1.933a.073.073 0 0 0 .014.056c.01.013.025.019.042.02h.08c.043 0 .083-.036.089-.082l.264-1.933a.073.073 0 0 0-.014-.056.057.057 0 0 0-.043-.02h-.08v-.001ZM24.158 5.691h-.004l-.078-.002a.15.15 0 0 1-.116-.055.17.17 0 0 1-.036-.132l.264-1.933a.193.193 0 0 1 .185-.168h.004l.078.002c.045 0 .086.02.114.054a.17.17 0 0 1 .037.133l-.264 1.933a.193.193 0 0 1-.185.168Zm-.001-.098c.042 0 .083-.038.088-.083l.264-1.933a.069.069 0 0 0-.013-.055.058.058 0 0 0-.043-.02l-.078-.002h-.002c-.041 0-.082.038-.087.083l-.264 1.933a.069.069 0 0 0 .014.055c.01.013.025.018.042.02l.079.002ZM24.821 5.554h-.083a.162.162 0 0 1-.115-.056.171.171 0 0 1-.037-.133l.264-1.933a.193.193 0 0 1 .185-.169h.084a.162.162 0 0 1 .115.056.17.17 0 0 1 .037.134l-.264 1.932a.193.193 0 0 1-.186.169Zm.216-2.191c-.042 0-.082.038-.088.083l-.264 1.932a.073.073 0 0 0 .014.057c.01.013.025.018.042.02h.081c.042 0 .082-.036.088-.082l.264-1.933a.073.073 0 0 0-.014-.057.057.057 0 0 0-.043-.02h-.08ZM25.431 5.404h-.083a.162.162 0 0 1-.115-.056.17.17 0 0 1-.037-.132l.264-1.933a.194.194 0 0 1 .186-.168h.082a.162.162 0 0 1 .115.055.17.17 0 0 1 .037.133l-.264 1.932a.192.192 0 0 1-.185.169Zm.216-2.191c-.041 0-.082.038-.088.083l-.264 1.933a.072.072 0 0 0 .014.056c.01.013.025.018.043.02h.08c.04 0 .081-.036.087-.081l.264-1.933a.073.073 0 0 0-.014-.056.058.058 0 0 0-.042-.02h-.08v-.002ZM26.082 5.282h-.081a.162.162 0 0 1-.116-.056.17.17 0 0 1-.037-.132l.265-1.933a.194.194 0 0 1 .185-.169h.082a.162.162 0 0 1 .115.056.17.17 0 0 1 .037.132l-.264 1.933a.194.194 0 0 1-.186.169Zm.216-2.191c-.041 0-.082.038-.087.083l-.264 1.932a.073.073 0 0 0 .013.057c.01.012.026.018.043.02h.08c.041 0 .081-.036.087-.082l.264-1.933a.073.073 0 0 0-.014-.057.058.058 0 0 0-.042-.02h-.08Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"docker-compose_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h30.925v39.29H0z\"\n })))));\n};\nexport default SvgDockerCompose;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDockerIcon = function SvgDockerIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 34 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M19.033 9.676h3.194Zm-3.802 0h3.194Zm-3.726 0h3.194Zm-3.727 0h3.118Zm-3.802 0H7.17Zm3.802-3.498h3.118Zm3.727 0h3.194Zm3.726 0h3.194Zm0-3.498h3.194Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeWidth: 2.887,\n d: \"M19.033 9.676h3.194m-6.996 0h3.194m-6.92 0h3.194m-6.92 0h3.117m-6.92 0H7.17m.608-3.498h3.118m.609 0h3.194m.532 0h3.194M15.23 2.68h3.194\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M32.417 9.828s-1.369-1.293-4.182-.836c-.305-2.206-2.662-3.498-2.662-3.498s-2.205 2.661-.608 5.627c-.456.228-1.217.532-2.358.532H1.695c-.38 1.445-.38 11.027 10.114 11.027 7.528 0 13.156-3.498 15.817-9.886 3.955.304 4.791-2.966 4.791-2.966Z\"\n })));\n};\nexport default SvgDockerIcon;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDocker = function SvgDocker(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M35.492 15.925c-.1-.085-.997-.782-2.925-.782a9.03 9.03 0 0 0-1.513.137c-.366-2.6-2.477-3.856-2.56-3.924l-.515-.306-.333.493a7.35 7.35 0 0 0-.913 2.175c-.35 1.478-.134 2.87.598 4.06-.881.509-2.31.628-2.61.645H1.116c-.615 0-1.114.51-1.114 1.138a17.526 17.526 0 0 0 1.03 6.2c.815 2.175 2.028 3.788 3.591 4.774 1.762 1.104 4.638 1.732 7.88 1.732 1.462 0 2.925-.136 4.371-.408a17.806 17.806 0 0 0 5.719-2.123 15.735 15.735 0 0 0 3.89-3.26c1.878-2.158 2.992-4.57 3.807-6.71h.332c2.045 0 3.308-.833 4.007-1.546a4.53 4.53 0 0 0 1.063-1.597l.15-.442-.349-.255v-.001Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M3.31 17.725h3.157c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289H3.31a.283.283 0 0 0-.283.289v2.887c.017.17.134.29.283.29ZM7.666 17.725h3.158c.15 0 .282-.119.282-.29V14.55a.283.283 0 0 0-.282-.289H7.666a.283.283 0 0 0-.283.289v2.887c.016.17.133.29.283.29ZM12.104 17.725h3.158c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289h-3.158a.283.283 0 0 0-.283.289v2.887c0 .17.117.29.283.29ZM16.475 17.725h3.159c.15 0 .282-.119.282-.29V14.55a.283.283 0 0 0-.282-.289h-3.159a.283.283 0 0 0-.283.289v2.887c0 .17.134.29.283.29ZM7.666 13.597h3.158c.15 0 .282-.136.282-.289v-2.887a.284.284 0 0 0-.282-.29H7.666a.284.284 0 0 0-.283.29v2.887c.016.153.133.29.283.29ZM12.104 13.597h3.158c.15 0 .283-.136.283-.289v-2.887a.284.284 0 0 0-.283-.29h-3.158a.283.283 0 0 0-.283.29v2.887c0 .153.117.29.283.29ZM16.475 13.597h3.159c.15 0 .282-.136.282-.289v-2.887a.295.295 0 0 0-.282-.29h-3.159a.283.283 0 0 0-.283.29v2.887c0 .153.134.29.283.29ZM16.475 9.453h3.159c.15 0 .282-.119.282-.29V6.277a.295.295 0 0 0-.282-.289h-3.159a.284.284 0 0 0-.283.29v2.887c0 .153.134.289.283.289ZM20.883 17.725h3.158c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289h-3.158a.283.283 0 0 0-.283.289v2.887c.016.17.133.29.283.29Z\"\n })));\n};\nexport default SvgDocker;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgEcr = function SvgEcr(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 37 41\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#ecr_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#ecr_svg__b)\",\n d: \"M13.249 34.7a.697.697 0 0 1-.356-.097L1.345 27.77A.707.707 0 0 1 1 27.164V12.647c0-.252.135-.486.353-.612l12.625-7.243a.698.698 0 0 1 .7.004l11.328 6.656a.7.7 0 0 1 .348.608c0 .254-.13.48-.348.608l-12.057 7.07v14.258a.706.706 0 0 1-.7.704ZM1.845 27.08l11.259 6.661V19.655c0-.25.133-.483.348-.608l11.914-6.987-11.042-6.488-12.479 7.16V27.08Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#ecr_svg__c)\",\n d: \"M15.767 34.703a.702.702 0 0 1-.7-.704v-6.152c0-.248.132-.481.346-.607l5.63-3.316v-6.788c0-.248.132-.48.344-.607l5.535-3.281a.698.698 0 0 1 1.055.606v13.43c0 .25-.133.483-.348.609l-11.511 6.715a.697.697 0 0 1-.352.096v-.001Zm.145-6.773v5.816L27.133 27.2V14.11l-5.245 3.11v6.788a.707.707 0 0 1-.347.608l-5.63 3.315Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"ecr_svg__b\",\n x1: 1.427,\n x2: 18.968,\n y1: 19.7,\n y2: 19.7,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#DF6B4A\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#E99B41\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"ecr_svg__c\",\n x1: 15.791,\n x2: 23.572,\n y1: 23.927,\n y2: 23.927,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#DF6B4A\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#E99B41\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"ecr_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M1 4.7h27v30H1z\"\n })))));\n};\nexport default SvgEcr;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGithub = function SvgGithub(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 1024 1024\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1B1F23\",\n fillRule: \"evenodd\",\n d: \"M512 0C229.12 0 0 229.12 0 512c0 226.56 146.56 417.92 350.08 485.76 25.6 4.48 35.2-10.88 35.2-24.32 0-12.16-.64-52.48-.64-95.36-128.64 23.68-161.92-31.36-172.16-60.16-5.76-14.72-30.72-60.16-52.48-72.32-17.92-9.6-43.52-33.28-.64-33.92 40.32-.64 69.12 37.12 78.72 52.48 46.08 77.44 119.68 55.68 149.12 42.24 4.48-33.28 17.92-55.68 32.64-68.48-113.92-12.8-232.96-56.96-232.96-252.8 0-55.68 19.84-101.76 52.48-137.6-5.12-12.8-23.04-65.28 5.12-135.68 0 0 42.88-13.44 140.8 52.48 40.96-11.52 84.48-17.28 128-17.28 43.52 0 87.04 5.76 128 17.28 97.92-66.56 140.8-52.48 140.8-52.48 28.16 70.4 10.24 122.88 5.12 135.68 32.64 35.84 52.48 81.28 52.48 137.6 0 196.48-119.68 240-233.6 252.8 18.56 16 34.56 46.72 34.56 94.72 0 68.48-.64 123.52-.64 140.8 0 13.44 9.6 29.44 35.2 24.32C877.44 929.92 1024 737.92 1024 512 1024 229.12 794.88 0 512 0Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgGithub;","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGitlab = function SvgGitlab(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E24329\",\n d: \"m13.8 32.71 5.08-15.638H8.719l5.081 15.638Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FC6D26\",\n d: \"M13.8 32.71 8.718 17.072H1.597L13.799 32.71Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FCA326\",\n d: \"M1.596 17.072.052 21.824c-.141.434.013.909.382 1.176l13.365 9.71L1.596 17.072Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E24329\",\n d: \"M1.597 17.072h7.121l-3.06-9.418a.526.526 0 0 0-1 0l-3.061 9.418Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FC6D26\",\n d: \"m13.8 32.71 5.082-15.638h7.122L13.8 32.71Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FCA326\",\n d: \"m26.004 17.072 1.544 4.752c.14.434-.014.909-.382 1.176L13.8 32.71l12.203-15.638Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E24329\",\n d: \"M26.002 17.072h-7.121l3.06-9.418a.526.526 0 0 1 1 0l3.061 9.418Z\"\n })));\n};\nexport default SvgGitlab;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGoogle = function SvgGoogle(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4285F4\",\n d: \"M23.745 12.27c0-.79-.07-1.54-.19-2.27h-11.3v4.51h6.47c-.29 1.48-1.14 2.73-2.4 3.58v3h3.86c2.26-2.09 3.56-5.17 3.56-8.82Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#34A853\",\n d: \"M12.255 24c3.24 0 5.95-1.08 7.93-2.91l-3.86-3c-1.08.72-2.45 1.16-4.07 1.16-3.13 0-5.78-2.11-6.73-4.96h-3.98v3.09C3.515 21.3 7.565 24 12.255 24Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FBBC05\",\n d: \"M5.525 14.29c-.25-.72-.38-1.49-.38-2.29s.14-1.57.38-2.29V6.62h-3.98a11.86 11.86 0 0 0 0 10.76l3.98-3.09Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EA4335\",\n d: \"M12.255 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C18.205 1.19 15.495 0 12.255 0c-4.69 0-8.74 2.7-10.71 6.62l3.98 3.09c.95-2.85 3.6-4.96 6.73-4.96Z\"\n })));\n};\nexport default SvgGoogle;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHelm = function SvgHelm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#helm_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeWidth: 2,\n d: \"M2.034 12.08h19.932M4.059 7.913A9.317 9.317 0 0 1 5.437 6.11m0 0a9.253 9.253 0 0 1 6.635-2.792c2.561 0 4.88 1.037 6.559 2.714M5.437 6.11 3.87 4.542M5.437 6.11l.009.008m13.185-.086a9.32 9.32 0 0 1 1.455 1.881M18.63 6.032l1.556-1.557M18.63 6.032l-.007.006m-6.63-4.993v2.273m7.975 12.751a9.315 9.315 0 0 1-1.378 1.803m0 0a9.253 9.253 0 0 1-6.635 2.792 9.252 9.252 0 0 1-6.559-2.713m13.194-.079 1.567 1.568m-1.567-1.568-.009-.008m-13.185.087a9.318 9.318 0 0 1-1.455-1.882m1.455 1.882-1.556 1.556m1.556-1.556.007-.007m6.63 4.993v-2.273\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"helm_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M24 0v24H0V0z\"\n })))));\n};\nexport default SvgHelm;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKubernetes = function SvgKubernetes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M13.849 32.493c-1.69 0-3.381-.014-5.07.007-.769.008-1.361-.264-1.843-.869C4.798 28.95 2.648 26.28.498 23.606c-.431-.536-.6-1.107-.436-1.809.79-3.376 1.55-6.76 2.322-10.142.154-.678.546-1.143 1.18-1.444a1799.08 1799.08 0 0 0 9.357-4.484c.652-.315 1.273-.295 1.92.015 3.096 1.493 6.195 2.983 9.3 4.457.658.312 1.057.789 1.217 1.488.77 3.383 1.536 6.766 2.32 10.145.15.648.014 1.196-.39 1.699-2.172 2.708-4.345 5.416-6.51 8.13-.467.587-1.055.843-1.794.837-1.71-.013-3.422-.004-5.133-.004l-.003-.001Zm-.435-21.608c.03.872-.075 1.005-.876 1.163-1.42.28-2.704.863-3.745 1.885-.392.386-.723.304-1.072.055-.27-.191-.487-.456-.73-.685-.166-.155-.322-.335-.512-.454-.28-.174-.572-.149-.776.132-.185.253-.139.526.07.743.143.147.326.257.5.371.259.174.537.321.787.509.507.381.554.64.253 1.185a7.636 7.636 0 0 0-.955 4.038c.027.783-.202 1.03-.988 1.12-.352.04-.707.061-1.056.12-.395.067-.675.287-.59.728.082.426.427.49.78.404.383-.095.748-.255 1.125-.371.772-.237 1.032-.112 1.356.626a7.471 7.471 0 0 0 2.582 3.164c.495.351.575.652.289 1.204-.134.257-.308.497-.461.746-.098.16-.2.318-.286.484-.172.332-.098.622.208.819.341.219.635.049.787-.25.206-.406.325-.855.49-1.282.264-.686.54-.823 1.218-.633a7.583 7.583 0 0 0 4.134.007c.672-.187.92-.075 1.186.588.155.387.252.798.425 1.177.155.343.416.621.837.398.391-.208.406-.559.205-.914-.196-.345-.434-.666-.63-1.01-.383-.679-.328-.91.29-1.364a7.518 7.518 0 0 0 2.56-3.26c.253-.615.494-.737 1.143-.545.399.118.781.293 1.183.394.359.091.729.078.868-.372.112-.366-.134-.667-.63-.749-.39-.065-.789-.074-1.18-.134-.624-.097-.852-.372-.826-.99.063-1.48-.252-2.866-.98-4.156-.277-.494-.233-.788.224-1.147.262-.205.56-.36.838-.543.172-.115.357-.223.5-.37.21-.216.254-.484.07-.743-.188-.266-.468-.29-.726-.162-.198.099-.36.279-.527.434-.228.214-.432.456-.67.657-.474.4-.76.392-1.21-.008a7.752 7.752 0 0 0-3.83-1.862c-.582-.107-.759-.297-.735-.898.016-.416.092-.83.129-1.245.045-.486-.227-.88-.594-.879-.367.002-.638.395-.59.882.034.332.09.661.139.993h-.003.002Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FDFDFE\",\n d: \"M13.413 10.885c-.046-.332-.104-.66-.138-.993-.049-.487.222-.88.59-.882.367-.001.639.393.594.879-.04.417-.115.83-.13 1.246-.022.6.153.79.735.897a7.741 7.741 0 0 1 3.83 1.862c.45.4.736.409 1.21.008.239-.2.443-.443.67-.657.167-.155.33-.336.527-.434.258-.128.54-.104.727.162.183.259.139.526-.071.742-.143.148-.327.255-.5.37-.277.185-.576.34-.838.544-.457.359-.501.654-.223 1.147.727 1.29 1.042 2.677.98 4.156-.027.617.202.892.825.99.392.06.79.07 1.18.134.497.083.744.383.63.75-.139.45-.509.462-.868.371-.401-.1-.785-.275-1.182-.394-.65-.192-.89-.07-1.144.545a7.518 7.518 0 0 1-2.56 3.26c-.618.453-.674.684-.29 1.363.196.345.433.666.63 1.01.202.357.187.707-.204.915-.421.223-.682-.056-.838-.398-.172-.377-.269-.79-.425-1.177-.267-.663-.513-.775-1.185-.588a7.576 7.576 0 0 1-4.134-.007c-.68-.189-.955-.051-1.218.633-.165.428-.285.877-.49 1.283-.15.298-.446.468-.787.249-.306-.196-.379-.487-.208-.819.086-.166.186-.324.285-.484.153-.25.326-.487.461-.746.287-.552.207-.853-.288-1.204a7.472 7.472 0 0 1-2.583-3.164c-.323-.739-.584-.862-1.356-.626-.377.116-.742.275-1.124.372-.353.087-.697.022-.78-.405-.086-.441.195-.66.59-.727.347-.06.703-.081 1.056-.121.787-.088 1.015-.337.987-1.12a7.637 7.637 0 0 1 .955-4.038c.301-.545.255-.804-.253-1.185-.25-.188-.528-.335-.787-.508-.173-.115-.356-.224-.5-.372-.208-.217-.255-.49-.07-.743.206-.28.498-.306.776-.132.19.12.346.297.513.454.243.23.46.494.73.685.349.249.679.331 1.072-.055 1.039-1.022 2.322-1.606 3.745-1.885.8-.157.905-.291.876-1.163h.002-.002Zm-.328 3.414h.034c0-.166-.009-.335.002-.5.015-.23-.07-.284-.293-.24a6.313 6.313 0 0 0-2.9 1.38c-.235.196-.189.307.038.462.67.46 1.324.944 1.994 1.404.605.416.977.232 1.025-.501.042-.667.067-1.336.1-2.005Zm-5.206 5.033c-.005.516.219.708.673.576.697-.202 1.399-.394 2.091-.61.635-.197.732-.591.248-1.049-.589-.558-1.217-1.076-1.802-1.641-.31-.301-.423-.151-.566.139a6.455 6.455 0 0 0-.644 2.584v.001Zm5.968 6.131c.545.015 1.074-.082 1.6-.213.215-.054.353-.088.198-.358-.444-.778-.85-1.578-1.31-2.347-.256-.43-.687-.426-.94.006-.454.773-.867 1.568-1.305 2.35-.114.204-.067.278.158.335.527.132 1.054.236 1.6.227v.001h-.001Zm6.009-6.113c-.049-.84-.229-1.711-.63-2.53-.162-.333-.346-.446-.66-.15-.562.526-1.152 1.026-1.713 1.555-.504.474-.399.87.278 1.074.696.212 1.396.407 2.094.608.64.185.643.184.63-.557Zm-3.068 1.703c-.902.04-1.014.21-.709.964.29.717.598 1.426.879 2.146.095.244.172.364.432.168.886-.67 1.565-1.5 1.992-2.53.053-.127.15-.297-.091-.34-.861-.146-1.725-.28-2.504-.408Zm-2.17-6.828h.02c.035.686.068 1.372.107 2.06.042.739.408.934 1.008.523.65-.447 1.272-.935 1.936-1.36.354-.229.275-.355.01-.572a6.244 6.244 0 0 0-2.725-1.294c-.358-.074-.392.048-.36.332.01.103 0 .207 0 .312h.004v-.001Zm-2.771 7.327c-.098-.212-.086-.491-.453-.478-.923.034-1.823.235-2.733.361-.32.044-.386.183-.26.46a6.1 6.1 0 0 0 1.935 2.412c.22.164.333.167.438-.128.19-.528.428-1.04.642-1.56.143-.345.28-.694.43-1.065v-.002Zm2.051-2.89c-.64-.002-1.016.252-1.03.696-.019.532.499 1.13.988 1.14.465.01.997-.554 1-1.06.003-.47-.372-.776-.958-.778v.002Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M13.086 14.3c-.032.667-.057 1.336-.1 2.004-.048.734-.42.917-1.024.501-.67-.46-1.324-.945-1.994-1.404-.227-.156-.272-.266-.039-.463a6.32 6.32 0 0 1 2.901-1.38c.224-.043.308.012.293.24-.011.166-.003.335-.003.502h-.034v-.001ZM7.88 19.332c.038-.86.233-1.747.645-2.584.143-.29.256-.441.567-.139.583.565 1.213 1.08 1.802 1.641.483.46.386.853-.248 1.05-.693.215-1.394.406-2.091.61-.454.131-.678-.06-.673-.577l-.001-.001ZM13.85 25.462c-.545.01-1.073-.096-1.6-.228-.225-.057-.27-.131-.157-.335.437-.781.85-1.578 1.304-2.35.253-.432.685-.437.941-.006.459.768.866 1.569 1.31 2.347.154.269.014.303-.198.357-.527.133-1.055.23-1.601.214ZM19.856 19.35c.013.74.01.744-.63.557-.697-.202-1.398-.397-2.094-.608-.676-.205-.781-.598-.278-1.074.562-.529 1.15-1.029 1.713-1.556.315-.294.498-.183.66.15.402.82.58 1.692.63 2.531ZM16.79 21.052c.778.126 1.642.262 2.504.41.24.04.143.21.091.339-.428 1.03-1.106 1.862-1.992 2.53-.26.196-.337.075-.432-.169-.28-.72-.588-1.43-.878-2.145-.306-.754-.193-.924.708-.964v-.001ZM14.62 14.224c0-.105.01-.21-.002-.313-.03-.283.003-.404.361-.33 1.02.21 1.919.638 2.724 1.293.266.217.346.343-.01.571-.663.427-1.285.914-1.936 1.36-.599.412-.966.217-1.008-.523-.038-.686-.07-1.373-.106-2.06h-.024v.002ZM11.846 21.55c-.15.372-.287.72-.43 1.066-.214.52-.45 1.03-.641 1.56-.105.294-.22.293-.439.128A6.113 6.113 0 0 1 8.4 21.892c-.126-.278-.06-.417.261-.46.91-.125 1.81-.328 2.733-.362.368-.014.355.267.453.479v.001ZM13.899 18.66c.585.001.961.305.959.777-.004.507-.535 1.07-1 1.06-.489-.011-1.007-.608-.99-1.14.015-.443.393-.699 1.032-.696l-.002-.002h.001Z\"\n })));\n};\nexport default SvgKubernetes;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMicrosoftIcon = function SvgMicrosoftIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M0 0h11.406v11.406H0V0ZM12.598 0H24v11.406H12.598V0ZM0 12.594h11.406V24H0V12.594ZM12.598 12.594H24V24H12.598V12.594Z\"\n })));\n};\nexport default SvgMicrosoftIcon;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMicrosoft = function SvgMicrosoft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F35325\",\n d: \"M11.246 7.461H0v11.247h11.246V7.46Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#81BC06\",\n d: \"M23.703 7.461H12.457v11.247h11.246V7.46Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05A6F0\",\n d: \"M11.246 19.919H0v11.246h11.246V19.92Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFBA08\",\n d: \"M23.703 19.919H12.457v11.246h11.246V19.92Z\"\n })));\n};\nexport default SvgMicrosoft;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgOpenldap = function SvgOpenldap(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 744.09 1052.4\",\n width: \"1em\",\n height: \"1em\"\n }, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__e\",\n x1: 80.916,\n x2: 89.429,\n y1: 129.23,\n y2: 129.23,\n gradientTransform: \"translate(244.83 -81.693) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#60c\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#60c\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__d\",\n x1: 80.916,\n x2: 89.429,\n y1: 129.23,\n y2: 129.23,\n gradientTransform: \"translate(216.56 -73.967) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#60c\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#60c\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__b\",\n x1: 8.535,\n x2: 77.015,\n y1: 384.81,\n y2: 465.09,\n gradientTransform: \"translate(267.18 -40.495) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#6d5744\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#6d5744\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__a\",\n x1: -41.915,\n x2: 100.23,\n y1: 163.64,\n y2: 197.66,\n gradientTransform: \"translate(267.18 -40.495) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#6d5744\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#6d5744\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__c\",\n x1: 420.17,\n x2: 416.51,\n y1: 220.22,\n y2: 202.05,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#212121\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#212121\",\n stopOpacity: 0\n }\n }))), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M416.93 357.28c-13.927 2.158-29.996 7.106-40.074 15.502 4.966 23.732 26.302-3.863 41.709 1.114 19.575-1.994 11.267-20.953-1.636-16.616zM405.02 320.44c-14.087-.44-30.791 1.47-42.241 7.87.518 24.24 26.564 1.039 40.793 8.764 19.608 1.639 14.927-18.525 1.447-16.634zM445.25 394.59c-13.87 2.5-29.812 7.842-39.68 16.484 5.548 23.602 26.199-4.51 41.724.087 19.52-2.475 10.748-21.224-2.044-16.57zM469.88 440.79c-14.484-5.122-45.334 19.408-19.277 22.574 8.32-8.557 21.103-5.338 32.541-7.27 13.791-10.401-3.588-17.608-13.264-15.303zM511.36 603.7c-19.378 6.19.023 20.385 12.165 15.99 8.792.11 17.767-.418 26.333.712 14.807-8.3-3.011-20.33-13.628-16.702h-24.87zM543.52 678c-16.558-7.786-30.682 18.894-7.972 16.243 11.17-3.076 30.464 6.068 35.019-8.248-1.659-13.088-18.785-5.98-27.047-7.995zM510.94 752.36c-23.064 11.227 20.121 24.639 19.417 29.155 5.015 8.059 5.422 11.558 9.593 13.687 18.953 4.068 9.72-18.678.806-25.048-8.268-8.393-17.81-15.759-29.816-17.794zM536.13 790.23l.06.24zM458.58 832.25c-21.038 7.37 4.813 20.578 14.908 23.685-2.962 12.592 14.925 29.912 18.094 9.738 1.794-20.17-15.98-29.587-33.002-33.423z\",\n style: {\n stroke: \"#816647\",\n strokeWidth: 2.5007,\n fill: \"#ff9\"\n }\n }), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n stroke: \"#015a01\"\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.98 488.01a31.122 36.497 0 1 1-1.22-64.48\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.9,\n fill: \"#6c3\"\n },\n transform: \"translate(-39.643 -60.964) scale(1.9236)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.8 445.27a33.986 36.899 0 1 1 9.737 39.546\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.88405,\n fill: \"#6c3\"\n },\n transform: \"rotate(-10.219 -127.089 1148.416) scale(1.95832)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.9 478.33a43.697 33.986 0 1 1 38.346 11.559\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.84894,\n fill: \"#6c3\"\n },\n transform: \"matrix(1.86568 .99923 -1.08995 1.6453 463.551 -138.373)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M205.36 406.05a50.381 30.214 0 1 1 75.368 24.902\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.86545,\n fill: \"#6c3\"\n },\n transform: \"matrix(1.82128 .74478 -.71166 1.9061 206.257 -166.5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.38 425.53a50.381 28.411 0 1 1 67.773.438\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.82037,\n fill: \"#6c3\"\n },\n transform: \"matrix(1.99535 .47632 -.45534 2.12327 90.042 -217.313)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.04 409.53a50.381 28.411 0 1 1 86.24 14.733\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.77966,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.0465 0 0 2.4093 -88.464 -261.585)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M225.39 392a46.972 26.895 0 1 1 62.784-15.176\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.806,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.1562 0 0 2.1396 -89.484 -106.989)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.51 375.64c4.938-9.01 1.653-17.354-7.625-24.469 6.077-17.646-8.654-60.144-35.031-91.812-1.38-1.658-3.293-2.985-5.625-4-6.188-22.424-26.148-28.54-43.875-23.594-23.792 6.64-44.719 13.087-44.719 29.25 0 8.436 5.46 16.034 14.188 21.375-.31.68-.594 1.362-.844 2.063-6.48 27.8 16.103 65.353 26.031 76.75.145.166.293.308.438.468-5.575 13.415 6.61 27.527 29.75 32.97\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.9,\n fill: \"#6c3\"\n },\n transform: \"translate(215.33 -72.118) scale(1.9236)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.1 192.18a35.714 25.423 0 1 1 60.364-7.458\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.75961,\n fill: \"#6c3\"\n },\n transform: \"rotate(-7.122 141.565 1368.623) scale(2.27916)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.18 192.64a35.714 26.026 0 1 1 58.892-5.404\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.75961,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.279 0 0 2.279 -132.014 -86.976)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M178.08 200.01a35.714 26.582 0 1 1 43.239-9.101\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.75961,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.279 0 0 2.279 -127.205 -135.85)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.64 164.22a50.528 44.244 0 1 1 42.772 22.373\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.9,\n fill: \"#6c3\"\n },\n transform: \"rotate(-25.365 260.383 483.741) scale(1.9236)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M345.16 123.48c-18.445 2.416-36.231 9.639-51.157 20.739 3.67 10.439 8.552 19.439 7.764 31.245 6.17 3.425 6.974.76 8.707 8.67-5.472 1.348 12.146 3.992 16.65 3.197 12.842-6.387 1.965-24.003 5.472-35.177-1.157-12.639 4.178-18.613 12.564-28.674zm-11.662 17.072c-1.079 1.83 2.06.045 0 0zm-54.47 17.26c-14.103 14.686-23.007 34.328-24.586 54.643 5.548 6.701 10.064 14.055 23.745 12.744 12.83-.612 25.13 13.586 38.054 3.77.558-10.675-11.82-20.203-21.377-24.201-10.807-5.478-9.337-17.826-11.324-24.49-4.484-7.632-1.208-4.536-4.03-14.411-.42-2.662-.528-5.365-.481-8.056zm-39.194 77.006c-12.088 13.667-14.622 34.874-6.492 51.157-8.447 11.861-13.275 28.947-6.387 42.527 8.684 9.376 15.535 18.781 23.923 27.836 5.148 4.231 29.949 1.327 22.899-9.392 3.62-9.74 11.573-4.67 20.46-5.546-.882-6.944-13.13-21.402-3.727-21.28-5.308-.467-10.441.912-16.634-.663-2.316 1.179-11.748 3.965-16.789 7.156-2.813-4.37-9.528-9.026-14.006-13.285 6.329-6.942 12.568-11.394 18.635-22.362-1.418-11.027 1.41-23.937-4.952-34.526-4.39-7.982-9.538-16.258-16.93-21.62zm21.04 29.576c-2.579 2.068 2.648 1.222 0 0zm33.063 1.262c-7.962 8.595-13.598-.637-22.603 6.853-7.391 6.563-7.957 18.171.767 23.49 4.06 2.449 8.14 13.005 11.977 4.824 3.508-.209 6.1-.73 12.383-6.252 8.126-2.643 16.85-9.205 7.935-11.722-1.73 2.567-1.673-1.994-4.267-3.908-2.254 2.354-1.054-11.239-6.192-13.285zm9.678 15.15c-4.602 4.341 3.15 1.218 0 0zm-11.963 20.438c6.236 3.03 17.23-.028 4.42.286-1.482.204-2.946-.174-4.42-.286zm12.203.481c-.595 3.29 1.896.633 0 0zm-56.026 14.908c-.85.904 1.544.19 0 0zm43.703 3.487c-2.573 1.483 1.96-.001 0 0zm.421.12c-.561.637 1.28.297 0 0zm-13.646 20.92c-1.301.21.812 1.138 0 0zm3.907.42c-3.404 3.408 4.722.294 0 0zm-38.713 20.139c-16.799 2.284-10.957 31.496 2.805 33.354 5.64 9.286 19.757 13.694 24.547 24.655 12.72 4.112 22.56-7.895 20.44-20.018 8.73 1.284 22.706-6.826 20.378-18.335-11.926-.224-22.746-2.603-33.62 2.757-15.887 2.693-25.953-11.899-34.549-22.415zm45.025 14.968c-2.295 3.054 1.946 1.48 0 0zm-.781 1.503c-1.04-3.208-2.889 3.588 0 0zm2.645-1.503c-3.15 1.919 5.565.92 0 0zm.842 1.683c-1.517 1.519 3.67.686 0 0zm22.362 4.268c-2.081 2.173 2.8 3.946 0 0zm1.923 42.44c-1.06 2.522 4.023 2.282 0 0zm-60.835.481c-3.129 19.345 11.046 36.912 26.69 46.468-7.272 14.968 24.864 4.591 22.53-7.431-3.52-4.406-3.597-8.426-6.66-12.226 10.34.225 18.674-.723 29.335-7.574 10.545-.483-9.431-19.033-14.573-17.474-7.491 6.703-18.908 3.173-26.725 11.463-8.885-6.562-19.78-11.221-30.598-13.225zm50.616 27.232c-2.016.842 3.15 1.795 0 0zm-.781 8.236c-5.884 2.548 3.093 1.194 0 0z\",\n style: {\n fill: \"url(#openldap_svg__a)\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M376.06 624.62c-5.876 3.042-21.757 3.705-21.12 7.535 6.706 3.036-9.727 2.31-3.046-1.524-6.055 3.63-4.387-1.105-6.973 4.509-4.344-.588-1.79-8.583-9.235-2.745-12.237 6.275-3.708 20.152 2.654 27.602 2.665 6.133 15.762-6.604 17.04 4.539 8.022-2.48 15.796-2.173 24.888-5.53 7.495-.574 12.594 10.91 15.569 5.95 7.221-1.065 4.553 7.088 9.323.252 5.226-7.084 10.894-21.606 4.856-21.06-2.713-2.06-4.296-9.432.008-2.996 4.307-2.722.144-4.5 6.852-4.492 4.604-4.489-10.706 2.535-3.846-2.481-8.94.797 7.612-4.563-4.702-3.546-8.26-1.493-26.336 1.196-28.377-1.918 6.607-4.343-4.686 1.95-3.89-4.095zm-30.177 6.853c-.382-2.596-2.783-.59 0 0zm38.413-5.35c-5.547 4.11 3.66 3.36 0 0zm-35.167 3.246c-5.571 2.012 3.462 2.668 0 0zm-4.508 2.044c-3.596 1.388 5.346 4.043 0 0zm-1.684.54c-.852 1.16.955 2.003 0 0zm69.792 10.28c-3.374 1.08 2.565 1.766 0 0zm.782 12.444 4.93 12.444c-1.211-4.275-1.661-9.11-4.93-12.444zm-65.764 27.592c-5.276 5.044-13.384 8.078-14.41 16.23-5.04 9.286.73 20.869 9.09 22.718 4.203 9.595 17.532 7.67 22.512 16.336 10.903 2.65 26.672.473 27.793-13.261 6.018-16.31 13.062 9.716 22.882 9.772 4.928-1.522 7.334-2.06 10.615 1.278 3.227-2.624 8.773-1.22 12.59-5.944 2.41-1.37 5.576-10.131-1.49-13.02-6.048-4.783-11.199-22.286-19.283-11.598-2.185-3.091-10.746-6.59-9.8-.397-5.938 4.84-10.636.017-5.796-4.921-11.975 1.757-23.053-.588-34.994-.398-5.478 1.504-14.347 1.281-6.786-4.471-3.455-4.987-10.878-6.38-12.924-12.323zm17.794 13.105c-10.605 2.308 7.362 2.827 0 0zm51.157 4.809c-1.854 2.246 4.144 1.687 0 0zm2.164 1.323c-2.217 4.01 3.012.564 0 0zm-77.066 20.859c-2.942 1.253 1.563 2.385 0 0zm102.19 2.284c.7 2.992 4.89 1.724 0 0zm-125.94 6.672c-8.115 5.513-20.707 9.841-24.887 18.094 5.362 7.538 9.86 15.711 12.55 23.686 3.711 1.483 12.27 11.936 10.233 7.152-2.548-3.394 10.374 6.403 2.557 2.03-3.485 5.547 6.905 14.76 12.921 6.704 3.367-2.554 11.628-6.886 5.261.043-6.153 14.272 11.76 23.915 21.881 23.324-1.587 5.039 13.156 3.343 10.16-3.787 9.783 6.205 10.034-12.581 12.15-18.922 1.04-4.433 2.08-8.866 3.118-13.3-1.89 2.532-9.142.334-9.002 1.835-4.931-4.11-13.488 3.44-16.666-.151-6.938-1.54-9.062-7.517-9.739-12.985-8.094.567-3.698.62-1.576-4.514-5.869-.315-13.837-1.76-12.14-7.101-11.402-4.656-2.209-15.071-10.819-21.29-1.93-.648-3.984-.769-6.003-.82zm-44.965 12.864c-8.59-.995-7.514 5.968-13.225 2.946-10.15 5.745-20.136-2.751-30.925-1.387-29.137.253-51.071 29.092-55.872 56.42-7.326 13.756 5.339-.477 13.637-2.2-2.174-12.195 15.58-25.188 15.597-13.978-2.572 4.957.562 35.905 9.372 42.415 5.65 7.411 15.864 7.438 16.829-3.37 2.964-7.94 10.06-14.312 13.028-18.147-6.703 3.544-3.79-6.904-7.88-9.219 6.738-6.241-3.49-25.475.967-30.577 1.888.822 19.213-10.243 18.074 3.77 1.16 3.555-8.118 5.14-2.024 8.433-7.658 4.665 3.455 5.39-3.427 9.498 3.253 5.399 6.01 9.833 2.165 15.028 5.35 2.88-.846 4.956 2.464 9.859 1.778 3.928 6.245.778 1.383 5.41-1.361 8.392 12.419 11.331 9.277 18.591 8.517 3.138 17.255 14.93 21.647 1.175 4.39-6.642 8.989-13.158 13.44-19.766-3.415 1.673-6.978-2.014-10.4-3.306 3.183-7.442-7.567-10.669-4.388-18.695 2.026-5.576-2.942-14.986 1.397-15.442-3.634-2.89 2.346.649-.435-4.335 3.824-1.818-1.302-7.133 5.59-7.094-4.774-7.513 7.287-4.69 3.06-10.753-6.328-3.212 11.084-14.42-1.016-12.034-3.592-.464-14.71-3.287-18.334-3.242zm68.409 12.564c-5.594.816-1.062 2.671 0 0zm-106.58 10.76c-3.124 2.508 2.53 1.994 0 0zm-.18 2.165c-2.707.23 3.602 2.232 0 0zm116.32 1.983c-.612 2.06 1.536.488 0 0zm-33.123 9.258c-1.11 1.048.899.708 0 0zm-75.743 29.816c.207 1.666-.16.54 0 0zm1.322.06c.487 1.064-.19.145 0 0zm112.77 2.164c-3.791 1.324 3.067 2.71 0 0z\",\n style: {\n fill: \"url(#openldap_svg__b)\"\n }\n }), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n stroke: \"#015a01\"\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.95 147.91c2.062 13.147-6.643 16.932-10.971 15.996\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 1,\n fill: \"#6c3\"\n },\n transform: \"translate(215.33 -72.118) scale(1.9236)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M247.45 144.66a14.908 15.413 0 0 1-28.87 1.41\",\n style: {\n stroke: \"#015a01\",\n fill: \"#6c3\"\n },\n transform: \"matrix(2.0679 0 0 1.9236 -85.252 -62.905)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M254.4 122.14a13.756 14.188 0 0 1-9.596 26.558\",\n style: {\n stroke: \"#015a01\",\n fill: \"#6c3\"\n },\n transform: \"matrix(1.69038 0 0 1.9236 8.062 -62.905)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M427.42 204.03a13.577 11.915 0 1 1-20.903 3.651\",\n style: {\n stroke: \"#333\",\n strokeWidth: 1.431,\n fill: \"url(#openldap_svg__c)\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M280.54 469.64c8.633 3.94 25.105 2 46.417-3.57M257.12 414.7c8.633 3.94 28.892 5.786 50.204.217M241.99 350.59c12.42 7.726 15.901 10.802 32.109 11.815\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 1.7313,\n fill: \"none\"\n }\n }), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n opacity: 0.45,\n stroke: \"#015a01\"\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M238.76 154.03a10.902 13.628 0 1 1-21.804 0 10.902 13.628 0 1 1 21.804 0z\",\n style: {\n opacity: 0.33,\n stroke: \"#015a01\",\n fill: \"#060\"\n },\n transform: \"matrix(1.91312 -1.0905 1.23997 1.6825 -284.739 205.84)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-2.467 124.52c-10.397 7.867 3.174 25.794 15.402 20.06 11.488-7.465-3.201-26.94-15.402-20.06z\",\n style: {\n opacity: 0.33,\n stroke: \"#015a01\",\n fill: \"#060\"\n },\n transform: \"translate(336.93 -40.977) scale(1.9236)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M403.28 150.64c-7.692.501-14.793 4.685-15.089 13.586a20.49 20.49 0 0 0 .48 3.306c-3.317-3.523-7.434-6.313-11.36-7.815-11.25-6.31-32.094-3.901-32.642 12.083 1.272 20.2 29.984 34.111 46.288 21.701 4.544-4.377 5.481-9.502 4.268-14.487 8.648 8.688 23.31 12.136 32.942 4.569 10.541-10.48-1.254-25.962-11.782-30.117-3.642-2.109-8.49-3.126-13.105-2.825z\",\n style: {\n opacity: 0.5696,\n stroke: \"#015a01\",\n strokeWidth: 1.9236,\n fill: \"#015a01\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M352.96 116.34c1.938-.888 4.249.037 5.182 2.073 0 0 3.183 13.713 11.456 25.004 2.145 6.463-6.445 8.713-8.763 4.015 0 0-.968-10.617-11.456-25.004s.648-4.744 3.581-6.088z\",\n style: {\n stroke: \"#424242\",\n strokeWidth: 1.9236,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M362.23 112.63a11.734 11.734 0 1 1-23.468 0 11.734 11.734 0 1 1 23.468 0z\",\n style: {\n stroke: \"#3c3c3c\",\n strokeWidth: 2.843,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M392.01 189.01c-3.48 7.067-14.963 8.53-25.649 3.27-10.687-5.262-16.529-15.256-13.05-22.323 3.48-7.067 12.924-3.34 25.649-3.269 11.911.067 16.529 15.255 13.05 22.322zM428.77 179.39c-2.932 6.147-12.61 7.42-21.616 2.844s-13.93-13.27-10.998-19.416c2.932-6.147 10.386-3.713 21.616-2.844 10.072.78 13.93 13.269 10.998 19.416z\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 1.9236,\n fill: \"#eee\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M386.95 174.62a6.554 6.292 0 1 1-13.107 0 6.554 6.292 0 1 1 13.107 0z\",\n style: {\n stroke: \"url(#openldap_svg__d)\",\n strokeWidth: 3.2702,\n fill: \"#212121\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M420.28 260.08c-66.519-.144-41.52 15.048-88.371 22.3-26.994 12.355 2.254 36.023-28.249 57.531-12.191 24.257 25.422 32.975 14.127 56.988 1.094 17.721 28.212 17.044 15.87 35.106.077 27.295 34.615 32.862 24.995 61.134 5.822 58.494 26.558 115.42 56.87 165.61 24.209 15.049 1.4 44.842 26.58 58.256-15.417 16.017-2.308 41.461-16.414 58.695-15.858 27.915-52.033 71.541-86.055 70.198-32.5 6.163-62.672-8.101-85.514 18.724-21.068 27.152 26.849 29.08 43.943 22.231 17.663-15.932 35.21-5.876 56.135-3.462 21.996 1.56 46.031-3.354 62.056-19.468 25.603.823 58.065-11.778 61.136-40.697 25.458-6.112 48.466-32.949 36.241-59.636 7.342-17.164 35.37-42.277 20.025-68.406 16.566-22.139-13.544-40.219-11.646-57.89 1.52-24.036-27.484-32.739-16.422-57.827-5.88-56.776-34.65-108.99-69.858-152.93-17.715-10.826-17.772-37.67-38.852-46.975-1.577-13.237-.082-35.222-15.13-46.08 12.85-21.035-11.481-49.556 20.581-57.405 9.32-6.825 11.765-6.15 17.952-15.995z\",\n style: {\n opacity: 0.16,\n strokeOpacity: 0.45631,\n stroke: \"#015a01\",\n strokeWidth: 1.9236,\n fill: \"#2f5a01\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m364.39 291.24-33.123 5.23c17.189-1.058 41.41 10.702 52.138 2.144 2.808-7.652-14.418-4.55-19.015-7.374zm18.755 37.451c-2.226.221-5.16.953-5.951.18-15.9.467-38.753 1.689-50.255 5.951l31.379 7.996c9.785-5.765 36.092 1.65 26.45-11.301 2.09-2.727.603-3.047-1.623-2.826zm15.269 47.37c-23.53 1.418-46.945 4.234-70.513 5.17 18.484 2.734 36.866 6.798 55.605 3.547 8.85-2.878 26.726 3.882 14.908-8.717zm30.418 42.621c-17.609 2.141-22.028.732-40.577 1.082-12.172-.35-44.69.348-44.244 2.946 15.711 2.07 31.36 6.102 47.189 2.464 8.774-3.204 54.756 6.425 37.631-6.492zm27.472 33.664c-30.006 4.477-61.241 1.051-90.411 10.881l33.363 3.907c16.451-8.86 54.588-1.713 59.693-10.94zM497 602.56c-7.134-.107-15.756 1.445-21.4.36-22.649.075-44.368 7.02-66.305 11.783 15.165.922 30.594 7.281 45.446 1.623 15.954-6.58 41.892-5.303 52.539-10.82-2.28-2.21-5.999-2.882-10.279-2.946zm13.526 44.965c-14.177-.298-32.495 2.867-43.582.902l-33.002 5.23c31.72-.05 63.44.025 95.16 0-3.034-4.524-10.069-5.953-18.575-6.132zm-6.913 48.692c-4.496-.07-8.982.188-13.526 1.022l-32.522 8.175c21.543-3.55 43.01 2.847 64.562-1.202 11.962 2.216 20.66-8.78 3.907-6.793-7.5-.175-14.929-1.085-22.422-1.202zM465.2 757.773l-29.576 7.995c23.849 2.836 47.753 6.214 71.656 1.503 9.744-1.574 4.567-13.92-3.667-5.59-12.552 1.862-25.699-3.404-38.413-3.908zm-33.063 63.961-33.123 5.23c26.419-2.515 51.986 6.292 78.328 4.689 5.416-14.802-36.343-7.572-45.206-9.919zm-38.773 30.297c-10.945.795-21.774 3.134-32.642 4.81 19.66-1.443 39.974 13.754 57.409 7.573 8.563.63 33.329-2.739 11.842-4.929-12.15-2.623-23.995-7.708-36.61-7.454z\",\n style: {\n opacity: 0.22,\n fill: \"#816647\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M304.45 326.16c-10.886 1.967-8.4 22.052 3.066 22.302 8.465 2.325 15.632 3.845 26.342.932 11.164-8.74-4.137-14.974-12.453-12.714-16.156 1.402-6.886-8.034-16.955-10.52zm5.951 53.08c-15.564 5.843-1.743 25.357 11.602 21.821 10.833.873 16.443-4.823 22.422-7.514 13.366-13.213-9.2-14.904-16.952-6.011-12.514 4.096-8.06-5.899-17.072-8.296zm50.736 40.877c-10.278-.312-16.719 10.516-26.51 10.099-15.413-2.714-11.509 17.881 2.164 13.285 10.433 1.739 13.941-8.465 23.925-9.317 8.076-.63 9.6-13.53.421-14.067zm19.717 50.916c-7.237 2.817-15.739 11.599-24.045 7.213-17.483-12.77-11.249 18.608-.901 14.127 9.028 2.152 20.787-3.388 25.428-6.792 3.646.512 11.826-13.3-.482-14.547zm-4.629 17.373c-1.757 1.064 1.7-.61 0 0zm48.632 150.16c-16.235 5.22 1.896 25.317 13.465 25.067 10.318.826 21.684.346 28.734-8.176 9.25-23.358-30.97 7.123-37.196-14.127l-1.45-1.515-3.553-1.25zm7.334 67.027c-12.786 3.28-2.84 22.219 3.727 28.433 9.873 6.706 22.122 6.794 33.616 5.38 11.174-8.715-4.149-14.989-12.453-12.714-8 1.03-16.762-3.311-17.255-12.143-1.53-3.684-2.48-8.882-7.634-8.957zm12.864 32.822-.6-.3zm-60.354 65.344c-11.482 3.658-6.54 21.416-.12 28.373 4.485 5.22 7.873 12.227 12.203 15.208 5.716 3.355 9.67 8.453 16.776 5.416 9.556-6.93-8.199-14.998-5.835-13.892-5.885-2.69-9.886-12.655-15.028-18.034-3.525-5.64 2.14-16.518-7.995-17.072zm11.963 43.462c-2.054-2.264-.507-.136 0 0zm-91.313-6.312c-10.66 4.691-10.693 19.058-10.219 29.212-1.488 10.106 2.839 20.308 12.804 24.048 16.495 8.538 9.815-16.676 2.104-14.427-4.5-4.573.282-13.545-1.622-19.356-.478-6.55 10.803-17.505-3.067-19.477zm-75.623 3.246c-8.979 2.724-15.863 14.021-15.509 26.03-2.008 9.592 3.418 22.026 10.4 23.864 15.634 10.556 16.95-11.274 2.886-14.668-.48-9.208-.568-19.474 8.14-25.047 3.09-4.211-.8-10.666-5.916-10.179zm172.17 6.372c.434.02.033.146 0 0zm-92.816 5.59c.286-.058-.476.461 0 0z\",\n style: {\n stroke: \"#816647\",\n strokeWidth: 2.5007,\n fill: \"#ff9\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M403.43 108.33c2.104.342 3.508 2.397 3.148 4.608 0 0-4.995 13.162-4.414 27.147-1.818 6.562-10.206 3.646-9.514-1.547 0 0 5.11-9.356 4.414-27.147-.695-17.79 3.182-3.579 6.366-3.061z\",\n style: {\n stroke: \"#424242\",\n strokeWidth: 1.9236,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M413.2 110.41a11.734 11.734 0 1 1-19.49-13.077 11.734 11.734 0 1 1 19.49 13.077z\",\n style: {\n stroke: \"#3c3c3c\",\n strokeWidth: 2.843,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M415.23 166.9a6.554 6.292 0 1 1-13.107 0 6.554 6.292 0 1 1 13.107 0z\",\n style: {\n stroke: \"url(#openldap_svg__e)\",\n strokeWidth: 3.2702,\n fill: \"#212121\"\n }\n }));\n};\nexport default SvgOpenldap;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgProget = function SvgProget(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#282B3A\",\n d: \"M23.586 13.035 13.46 7.381a2.24 2.24 0 0 0-2.192 0L1.144 13.035A2.255 2.255 0 0 0 0 15.036v11.198a2.255 2.255 0 0 0 1.144 1.961l10.125 5.654a2.24 2.24 0 0 0 2.192 0l10.125-5.693a2.248 2.248 0 0 0 1.151-1.962V15.036a2.246 2.246 0 0 0-1.151-2Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3FA9F5\",\n d: \"m16.01 18.213-3.375-1.89a.564.564 0 0 0-.548 0l-3.367 1.89a.556.556 0 0 0-.294.492v3.733a.556.556 0 0 0 .294.492l3.367 1.89a.564.564 0 0 0 .548 0l3.375-1.842a.564.564 0 0 0 .285-.493v-3.732a.564.564 0 0 0-.285-.54Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1696F0\",\n d: \"M6.742 23.772v-5.313l-3.375-1.834v8.338a1.136 1.136 0 0 0 .58.985l7.576 4.232v-3.772l-4.78-2.636Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#37BBF7\",\n d: \"M12.911 10.843a1.12 1.12 0 0 0-1.096 0l-7.647 4.273 3.399 1.874 4.764-2.676 4.741 2.628 3.336-1.906-7.497-4.193Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#79BFF2\",\n d: \"M18.026 18.372v5.4l-4.764 2.668v3.772l7.576-4.232a1.129 1.129 0 0 0 .571-.985V16.45l-3.383 1.922Z\"\n })));\n};\nexport default SvgProget;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgQuay = function SvgQuay(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#40B4E5\",\n fillRule: \"evenodd\",\n d: \"m21.696 7.1 6.024 12.901L21.696 32.9H16.57l6.021-12.899L16.571 7.1h5.125Z\",\n clipRule: \"evenodd\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003764\",\n fillRule: \"evenodd\",\n d: \"m16.57 32.9-6.024-12.899L16.57 7.1h5.126l-6.021 12.901 6.02 12.899H16.57Z\",\n clipRule: \"evenodd\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#40B4E5\",\n fillRule: \"evenodd\",\n d: \"M13.859 12.905 11.15 7.1H6.024l5.273 11.296 2.562-5.492ZM11.297 21.604 6.024 32.9h5.126l2.709-5.804-2.562-5.492Z\",\n clipRule: \"evenodd\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003764\",\n fillRule: \"evenodd\",\n d: \"M6.024 32.9 0 20.001 6.024 7.1h5.126L5.126 20.001 11.15 32.9H6.024Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgQuay;","import _ from 'lodash';\n\nconst categories = [\n 'docker',\n 'kubernetes',\n 'aci',\n 'portainer',\n 'edge',\n] as const;\ntype Category = (typeof categories)[number];\n\nenum DimensionConfig {\n PortainerVersion = 1,\n PortainerInstanceID,\n PortainerUserRole,\n PortainerEndpointUserRole,\n}\n\nexport interface TrackEventProps {\n category: Category;\n metadata?: Record<string, unknown>;\n value?: string | number;\n dimensions?: DimensionConfig;\n}\n\nexport function setPortainerStatus(instanceID: string, version: string) {\n setCustomDimension(DimensionConfig.PortainerInstanceID, instanceID);\n setCustomDimension(DimensionConfig.PortainerVersion, version);\n}\n\nexport function setUserRole(role: string) {\n setCustomDimension(DimensionConfig.PortainerUserRole, role);\n}\n\nexport function clearUserRole() {\n deleteCustomDimension(DimensionConfig.PortainerUserRole);\n}\n\nexport function setUserEndpointRole(role: string) {\n setCustomDimension(DimensionConfig.PortainerEndpointUserRole, role);\n}\n\nexport function clearUserEndpointRole() {\n deleteCustomDimension(DimensionConfig.PortainerEndpointUserRole);\n}\n\nfunction setCustomDimension(dimensionId: number, value: string) {\n push('setCustomDimension', dimensionId, value);\n}\n\nfunction deleteCustomDimension(dimensionId: number) {\n push('deleteCustomDimension', dimensionId.toString());\n}\n\nexport function push(\n name: string,\n ...args: (string | number | DimensionConfig)[]\n) {\n if (typeof window !== 'undefined') {\n window._paq.push([name, ...args]);\n }\n}\n\nexport function trackEvent(action: string, properties: TrackEventProps) {\n /**\n * @description Logs an event with an event category (Videos, Music, Games...), an event\n * action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...), and an optional\n * event name and optional numeric value.\n *\n * @link https://piwik.org/docs/event-tracking/\n * @link https://developer.piwik.org/api-reference/tracking-javascript#using-the-tracker-object\n *\n */\n\n let { value } = properties;\n const { metadata, dimensions, category } = properties;\n // PAQ requires that eventValue be an integer, see: http://piwik.org/docs/event-tracking\n if (value) {\n const parsed = parseInt(value.toString(), 10);\n value = Number.isNaN(parsed) ? 0 : parsed;\n }\n\n if (!category) {\n throw new Error('missing category');\n }\n\n if (!categories.includes(category)) {\n throw new Error('unsupported category');\n }\n\n let metadataString = '';\n if (metadata) {\n const kebabCasedMetadata = Object.fromEntries(\n Object.entries(metadata).map(([key, value]) => [_.kebabCase(key), value])\n );\n metadataString = JSON.stringify(kebabCasedMetadata).toLowerCase();\n }\n\n push(\n 'trackEvent',\n category,\n action.toLowerCase(),\n metadataString, // Changed in favour of Piwik documentation. Added fallback so it's backwards compatible.\n value || '',\n dimensions || <DimensionConfig>{}\n );\n}\n\ndeclare global {\n interface Window {\n _paq: [string, ...(string | number)[]][];\n }\n}\n","// try to declare constant where it's needed, not in a global file\nexport const API_ENDPOINT_AUTH = 'api/auth';\nexport const API_ENDPOINT_BACKUP = 'api/backup';\nexport const API_ENDPOINT_CUSTOM_TEMPLATES = 'api/custom_templates';\nexport const API_ENDPOINT_EDGE_GROUPS = 'api/edge_groups';\nexport const API_ENDPOINT_EDGE_JOBS = 'api/edge_jobs';\nexport const API_ENDPOINT_EDGE_STACKS = 'api/edge_stacks';\nexport const API_ENDPOINT_EDGE_TEMPLATES = 'api/edge_templates';\nexport const API_ENDPOINT_ENDPOINTS = 'api/endpoints';\nexport const API_ENDPOINT_ENDPOINT_GROUPS = 'api/endpoint_groups';\nexport const API_ENDPOINT_KUBERNETES = 'api/kubernetes';\nexport const API_ENDPOINT_MOTD = 'api/motd';\nexport const API_ENDPOINT_REGISTRIES = 'api/registries';\nexport const API_ENDPOINT_RESOURCE_CONTROLS = 'api/resource_controls';\nexport const API_ENDPOINT_SETTINGS = 'api/settings';\nexport const API_ENDPOINT_STACKS = 'api/stacks';\nexport const API_ENDPOINT_SUPPORT = 'api/support';\nexport const API_ENDPOINT_USERS = 'api/users';\nexport const API_ENDPOINT_TAGS = 'api/tags';\nexport const API_ENDPOINT_TEAMS = 'api/teams';\nexport const API_ENDPOINT_TEAM_MEMBERSHIPS = 'api/team_memberships';\nexport const API_ENDPOINT_TEMPLATES = 'api/templates';\nexport const API_ENDPOINT_WEBHOOKS = 'api/webhooks';\nexport const PAGINATION_MAX_ITEMS = 10;\nexport const APPLICATION_CACHE_VALIDITY = 3600;\nexport const CONSOLE_COMMANDS_LABEL_PREFIX = 'io.portainer.commands.';\nexport const PREDEFINED_NETWORKS = ['host', 'bridge', 'ingress', 'nat', 'none'];\nexport const PORTAINER_FADEOUT = 1500;\nexport const STACK_NAME_VALIDATION_REGEX = '^[-_a-z0-9]+$';\n","import { NodeStatus, TaskState } from 'docker-types/generated/1.41';\nimport _ from 'lodash';\n\nexport function trimVersionTag(fullName: string) {\n if (!fullName) {\n return fullName;\n }\n\n const versionIdx = fullName.lastIndexOf(':');\n if (versionIdx < 0) {\n return fullName;\n }\n\n const hostIdx = fullName.indexOf('/');\n if (hostIdx > versionIdx) {\n return fullName;\n }\n\n return fullName.substring(0, versionIdx);\n}\n\nexport function trimSHA(imageName: string) {\n if (!imageName) {\n return '';\n }\n if (imageName.indexOf('sha256:') === 0) {\n return imageName.substring(7, 19);\n }\n return _.split(imageName, '@sha256')[0];\n}\n\nexport function joinCommand(command: null | Array<string> = []) {\n if (!command) {\n return '';\n }\n\n return command.join(' ');\n}\n\nexport function taskStatusBadge(text?: TaskState) {\n const status = _.toLower(text);\n if (\n [\n 'new',\n 'allocated',\n 'assigned',\n 'accepted',\n 'preparing',\n 'ready',\n 'starting',\n 'remove',\n ].includes(status)\n ) {\n return 'info';\n }\n\n if (['pending'].includes(status)) {\n return 'warning';\n }\n\n if (['shutdown', 'failed', 'rejected', 'orphaned'].includes(status)) {\n return 'danger';\n }\n\n if (['complete'].includes(status)) {\n return 'primary';\n }\n\n if (['running'].includes(status)) {\n return 'success';\n }\n return 'default';\n}\n\nexport function nodeStatusBadge(text: NodeStatus['State']) {\n if (text === 'down' || text === 'unknown' || text === 'disconnected') {\n return 'danger';\n }\n\n return 'success';\n}\n\nexport function hideShaSum(imageName = '') {\n return imageName.split('@sha')[0];\n}\n","import { splitargs } from './splitargs';\n\nexport function commandStringToArray(command: string) {\n return splitargs(command);\n}\n\nexport function commandArrayToString(array: string[]) {\n return array.map((elem) => `'${elem}'`).join(' ');\n}\n","/**\n\nSplits strings into tokens by given separator except treating quoted part as a single token.\n\n\n#Usage\n```javascript\nvar splitargs = require('splitargs');\n\nvar i1 = \"I said 'I am sorry.', and he said \\\"it doesn't matter.\\\"\";\nvar o1 = splitargs(i1);\nconsole.log(o1);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n\n\nvar i2 = \"I said \\\"I am sorry.\\\", and he said \\\"it doesn't matter.\\\"\";\nvar o2 = splitargs(i2);\nconsole.log(o2);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n\n\nvar i3 = 'I said \"I am sorry.\", and he said \"it doesn\\'t matter.\"';\nvar o3 = splitargs(i3);\nconsole.log(o3);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n\n\nvar i4 = 'I said \\'I am sorry.\\', and he said \"it doesn\\'t matter.\"';\nvar o4 = splitargs(i4);\nconsole.log(o4);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n ```\n */\n\nexport function splitargs(\n input: string,\n sep?: RegExp | string,\n keepQuotes = false\n) {\n const separator = sep || /\\s/g;\n let singleQuoteOpen = false;\n let doubleQuoteOpen = false;\n let tokenBuffer = [];\n const ret = [];\n\n const arr = input.split('');\n for (let i = 0; i < arr.length; ++i) {\n const element = arr[i];\n const matches = element.match(separator);\n // TODO rewrite without continue\n /* eslint-disable no-continue */\n if (element === \"'\" && !doubleQuoteOpen) {\n if (keepQuotes) {\n tokenBuffer.push(element);\n }\n singleQuoteOpen = !singleQuoteOpen;\n continue;\n } else if (element === '\"' && !singleQuoteOpen) {\n if (keepQuotes) {\n tokenBuffer.push(element);\n }\n doubleQuoteOpen = !doubleQuoteOpen;\n continue;\n }\n /* eslint-enable no-continue */\n\n if (!singleQuoteOpen && !doubleQuoteOpen && matches) {\n if (tokenBuffer.length > 0) {\n ret.push(tokenBuffer.join(''));\n tokenBuffer = [];\n } else if (sep) {\n ret.push(element);\n }\n } else {\n tokenBuffer.push(element);\n }\n }\n\n if (tokenBuffer.length > 0) {\n ret.push(tokenBuffer.join(''));\n } else if (sep) {\n ret.push('');\n }\n\n return ret;\n}\n","// original code comes from https://www.npmjs.com/package/x256\n// only picking the used parts as there is no type definition\n// package is unmaintained and repository doesn't exist anymore\n\n// colors scraped from\n// http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html\n// %s/ *\\d\\+ \\+#\\([^ ]\\+\\)/\\1\\r/g\n\nimport rawColors from './rawColors.json';\n\nexport type RGBColor = [number, number, number];\nexport type TextColor = string | undefined;\n\nfunction hexToRGB(hex: string): RGBColor {\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n return [r, g, b];\n}\n\nexport const colors = rawColors.map(hexToRGB);\n\nexport const FOREGROUND_COLORS_BY_ANSI: {\n [k: string]: RGBColor;\n} = {\n black: colors[0],\n red: colors[1],\n green: colors[2],\n yellow: colors[3],\n blue: colors[4],\n magenta: colors[5],\n cyan: colors[6],\n white: colors[7],\n brightBlack: colors[8],\n brightRed: colors[9],\n brightGreen: colors[10],\n brightYellow: colors[11],\n brightBlue: colors[12],\n brightMagenta: colors[13],\n brightCyan: colors[14],\n brightWhite: colors[15],\n};\n\nexport const BACKGROUND_COLORS_BY_ANSI: {\n [k: string]: RGBColor;\n} = {\n bgBlack: colors[0],\n bgRed: colors[1],\n bgGreen: colors[2],\n bgYellow: colors[3],\n bgBlue: colors[4],\n bgMagenta: colors[5],\n bgCyan: colors[6],\n bgWhite: colors[7],\n bgBrightBlack: colors[8],\n bgBrightRed: colors[9],\n bgBrightGreen: colors[10],\n bgBrightYellow: colors[11],\n bgBrightBlue: colors[12],\n bgBrightMagenta: colors[13],\n bgBrightCyan: colors[14],\n bgBrightWhite: colors[15],\n};\n","import { FontWeight } from 'xterm';\n\nimport { type TextColor } from './colors';\n\nexport type Token = string | number;\n\nexport type Level =\n | 'debug'\n | 'info'\n | 'warn'\n | 'error'\n | 'DBG'\n | 'INF'\n | 'WRN'\n | 'ERR';\n\nexport type JSONStackTrace = {\n func: string;\n line: string;\n source: string;\n}[];\n\nexport type JSONLogs = {\n [k: string]: unknown;\n time: number;\n level: Level;\n caller: string;\n message: string;\n stack_trace?: JSONStackTrace;\n};\n\nexport type Span = {\n fgColor?: TextColor;\n bgColor?: TextColor;\n text: string;\n fontWeight?: FontWeight;\n};\n\nexport type FormattedLine = {\n spans: Span[];\n line: string;\n};\n\nexport const TIMESTAMP_LENGTH = 31; // 30 for timestamp + 1 for trailing space\n\nexport const Colors = {\n Grey: 'var(--text-log-viewer-color-json-grey)',\n Magenta: 'var(--text-log-viewer-color-json-magenta)',\n Yellow: 'var(--text-log-viewer-color-json-yellow)',\n Green: 'var(--text-log-viewer-color-json-green)',\n Red: 'var(--text-log-viewer-color-json-red)',\n Blue: 'var(--text-log-viewer-color-json-blue)',\n};\n","import { format } from 'date-fns';\nimport { takeRight } from 'lodash';\n\nimport { Span, Level, Colors, JSONStackTrace, FormattedLine } from './types';\n\nconst spaceSpan: Span = { text: ' ' };\n\nfunction logLevelToSpan(level: Level): Span {\n switch (level) {\n case 'debug':\n case 'DBG':\n return {\n fgColor: Colors.Grey,\n text: 'DBG',\n fontWeight: 'bold',\n };\n case 'info':\n case 'INF':\n return {\n fgColor: Colors.Green,\n text: 'INF',\n fontWeight: 'bold',\n };\n case 'warn':\n case 'WRN':\n return {\n fgColor: Colors.Yellow,\n text: 'WRN',\n fontWeight: 'bold',\n };\n case 'error':\n case 'ERR':\n return {\n fgColor: Colors.Red,\n text: 'ERR',\n fontWeight: 'bold',\n };\n default:\n return { text: level };\n }\n}\n\nexport function formatTime(\n time: number | string | undefined,\n spans: Span[],\n line: string\n) {\n let nl = line;\n if (time) {\n let date = '';\n if (typeof time === 'number') {\n // time is a number, so it is the number of seconds OR milliseconds since Unix Epoch (1970-01-01T00:00:00.000Z)\n // we need to know if time's unit is second or millisecond\n // 253402214400 is the numer of seconds between Unix Epoch and 9999-12-31T00:00:00.000Z\n // if time is greater than 253402214400, then time unit cannot be second, so it is millisecond\n const timestampInMilliseconds = time > 253402214400 ? time : time * 1000;\n date = format(new Date(timestampInMilliseconds), 'Y/MM/dd hh:mmaa');\n } else {\n date = time;\n }\n spans.push({ fgColor: Colors.Grey, text: date }, spaceSpan);\n nl += `${date} `;\n }\n return nl;\n}\n\nexport function formatLevel(\n level: Level | undefined,\n spans: Span[],\n line: string\n) {\n let nl = line;\n if (level) {\n const levelSpan = logLevelToSpan(level);\n spans.push(levelSpan, spaceSpan);\n nl += `${levelSpan.text} `;\n }\n return nl;\n}\n\nexport function formatCaller(\n caller: string | undefined,\n spans: Span[],\n line: string\n) {\n let nl = line;\n if (caller) {\n const trim = takeRight(caller.split('/'), 2).join('/');\n spans.push(\n { fgColor: Colors.Magenta, text: trim, fontWeight: 'bold' },\n spaceSpan\n );\n spans.push({ fgColor: Colors.Blue, text: '>' }, spaceSpan);\n nl += `${trim} > `;\n }\n return nl;\n}\n\nexport function formatMessage(\n message: string,\n spans: Span[],\n line: string,\n hasKeys: boolean\n) {\n let nl = line;\n if (message) {\n spans.push({ fgColor: Colors.Magenta, text: `${message}` }, spaceSpan);\n nl += `${message} `;\n\n if (hasKeys) {\n spans.push({ fgColor: Colors.Magenta, text: `|` }, spaceSpan);\n nl += '| ';\n }\n }\n return nl;\n}\n\nexport function formatKeyValuePair(\n key: string,\n value: unknown,\n spans: Span[],\n line: string,\n isLastKey: boolean\n) {\n let nl = line;\n\n const strValue = typeof value !== 'string' ? JSON.stringify(value) : value;\n\n spans.push(\n { fgColor: Colors.Blue, text: `${key}=` },\n {\n fgColor: key === 'error' || key === 'ERR' ? Colors.Red : Colors.Magenta,\n text: strValue,\n }\n );\n if (!isLastKey) spans.push(spaceSpan);\n nl += `${key}=${strValue}${!isLastKey ? ' ' : ''}`;\n\n return nl;\n}\n\nexport function formatStackTrace(\n stackTrace: JSONStackTrace | undefined,\n lines: FormattedLine[]\n) {\n if (stackTrace) {\n stackTrace.forEach(({ func, line: lineNumber, source }) => {\n const line = ` at ${func} (${source}:${lineNumber})`;\n const spans: Span[] = [\n spaceSpan,\n spaceSpan,\n spaceSpan,\n spaceSpan,\n { text: 'at ', fgColor: Colors.Grey },\n { text: func, fgColor: Colors.Red },\n { text: `(${source}:${lineNumber})`, fgColor: Colors.Grey },\n ];\n lines.push({ line, spans });\n });\n }\n}\n","import {\n formatCaller,\n formatKeyValuePair,\n formatLevel,\n formatMessage,\n formatStackTrace,\n formatTime,\n} from './formatters';\nimport {\n FormattedLine,\n JSONStackTrace,\n Level,\n Span,\n TIMESTAMP_LENGTH,\n} from './types';\n\nconst dateRegex = /(\\d{4}\\/\\d{2}\\/\\d{2} \\d{2}:\\d{2}[AP]M) /; // \"2022/02/01 04:30AM \"\nconst levelRegex = /(\\w{3}) /; // \"INF \" or \"ERR \"\nconst callerRegex = /(.+?.go:\\d+) /; // \"path/to/file.go:line \"\nconst chevRegex = /> /; // \"> \"\nconst messageAndPairsRegex = /(.*)/; // include the rest of the string in a separate group\n\nconst keyRegex = /(\\S+=)/g; // \"\"\n\nexport const ZerologRegex = concatRegex(\n dateRegex,\n levelRegex,\n callerRegex,\n chevRegex,\n messageAndPairsRegex\n);\n\nfunction concatRegex(...regs: RegExp[]) {\n const flags = Array.from(\n new Set(\n regs\n .map((r) => r.flags)\n .join('')\n .split('')\n )\n ).join('');\n const source = regs.map((r) => r.source).join('');\n return new RegExp(source, flags);\n}\n\ntype Pair = {\n key: string;\n value: string;\n};\n\nexport function formatZerologLogs(rawText: string, withTimestamps?: boolean) {\n const spans: Span[] = [];\n const lines: FormattedLine[] = [];\n let line = '';\n\n const text = withTimestamps ? rawText.substring(TIMESTAMP_LENGTH) : rawText;\n\n if (withTimestamps) {\n const timestamp = rawText.substring(0, TIMESTAMP_LENGTH);\n spans.push({ text: timestamp });\n line += `${timestamp} `;\n }\n\n const [, date, level, caller, messageAndPairs] =\n text.match(ZerologRegex) || [];\n\n const [message, pairs] = extractPairs(messageAndPairs);\n\n line += formatTime(date, spans, line);\n line += formatLevel(level as Level, spans, line);\n line += formatCaller(caller, spans, line);\n line += formatMessage(message, spans, line, !!pairs.length);\n\n let stackTrace: JSONStackTrace | undefined;\n const stackTraceIndex = pairs.findIndex((p) => p.key === 'stack_trace');\n\n if (stackTraceIndex !== -1) {\n stackTrace = JSON.parse(pairs[stackTraceIndex].value);\n pairs.splice(stackTraceIndex);\n }\n\n pairs.forEach(({ key, value }, idx) => {\n line += formatKeyValuePair(\n key,\n value,\n spans,\n line,\n idx === pairs.length - 1\n );\n });\n lines.push({ line, spans });\n\n formatStackTrace(stackTrace, lines);\n\n return lines;\n}\n\nfunction extractPairs(messageAndPairs: string): [string, Pair[]] {\n const pairs: Pair[] = [];\n let [message, rawPairs] = messageAndPairs.split('|');\n\n if (!messageAndPairs.includes('|') && !rawPairs) {\n rawPairs = message;\n message = '';\n }\n message = message.trim();\n rawPairs = rawPairs.trim();\n\n const matches = [...rawPairs.matchAll(keyRegex)];\n\n matches.forEach((m, idx) => {\n const rawKey = m[0];\n const key = rawKey.slice(0, -1);\n const start = m.index || 0;\n const end = idx !== matches.length - 1 ? matches[idx + 1].index : undefined;\n const value = (\n end\n ? rawPairs.slice(start + rawKey.length, end)\n : rawPairs.slice(start + rawKey.length)\n ).trim();\n pairs.push({ key, value });\n });\n\n return [message, pairs];\n}\n","import tokenize from '@nxmix/tokenize-ansi';\nimport { FontWeight } from 'xterm';\n\nimport {\n colors,\n BACKGROUND_COLORS_BY_ANSI,\n FOREGROUND_COLORS_BY_ANSI,\n RGBColor,\n} from './colors';\nimport { formatJSONLine } from './formatJSONLogs';\nimport { formatZerologLogs, ZerologRegex } from './formatZerologLogs';\nimport { Token, Span, TIMESTAMP_LENGTH, FormattedLine } from './types';\n\ntype FormatOptions = {\n stripHeaders?: boolean;\n withTimestamps?: boolean;\n splitter?: string;\n};\n\nconst defaultOptions: FormatOptions = {\n splitter: '\\n',\n};\n\nexport function formatLogs(\n rawLogs: string,\n {\n stripHeaders,\n withTimestamps,\n splitter = '\\n',\n }: FormatOptions = defaultOptions\n) {\n let logs = rawLogs;\n if (stripHeaders) {\n logs = stripHeadersFunc(logs);\n }\n // if JSON logs come serialized 2 times, parse them once to unwrap them\n if (logs.startsWith('\"')) {\n try {\n logs = JSON.parse(logs);\n } catch (error) {\n // noop, throw error away if logs cannot be parsed\n }\n }\n\n const tokens: Token[][] = tokenize(logs);\n const formattedLogs: FormattedLine[] = [];\n\n let fgColor: string | undefined;\n let bgColor: string | undefined;\n let fontWeight: FontWeight | undefined;\n let line = '';\n let spans: Span[] = [];\n\n tokens.forEach((token) => {\n const [type] = token;\n\n const fgAnsi = FOREGROUND_COLORS_BY_ANSI[type];\n const bgAnsi = BACKGROUND_COLORS_BY_ANSI[type];\n\n if (fgAnsi) {\n fgColor = cssColorFromRgb(fgAnsi);\n } else if (type === 'moreColor') {\n fgColor = extendedColorForToken(token);\n } else if (type === 'fgDefault') {\n fgColor = undefined;\n } else if (bgAnsi) {\n bgColor = cssColorFromRgb(bgAnsi);\n } else if (type === 'bgMoreColor') {\n bgColor = extendedColorForToken(token);\n } else if (type === 'bgDefault') {\n bgColor = undefined;\n } else if (type === 'reset') {\n fgColor = undefined;\n bgColor = undefined;\n fontWeight = undefined;\n } else if (type === 'bold') {\n fontWeight = 'bold';\n } else if (type === 'normal') {\n fontWeight = 'normal';\n } else if (type === 'text') {\n const tokenLines = (token[1] as string).split(splitter);\n\n tokenLines.forEach((tokenLine, idx) => {\n if (idx && line) {\n formattedLogs.push({ line, spans });\n line = '';\n spans = [];\n }\n\n const text = stripEscapeCodes(tokenLine);\n try {\n if (\n (!withTimestamps && text.startsWith('{')) ||\n (withTimestamps && text.substring(TIMESTAMP_LENGTH).startsWith('{'))\n ) {\n const lines = formatJSONLine(text, withTimestamps);\n formattedLogs.push(...lines);\n } else if (\n (!withTimestamps && ZerologRegex.test(text)) ||\n (withTimestamps &&\n ZerologRegex.test(text.substring(TIMESTAMP_LENGTH)))\n ) {\n const lines = formatZerologLogs(text, withTimestamps);\n formattedLogs.push(...lines);\n } else {\n spans.push({ fgColor, bgColor, text, fontWeight });\n line += text;\n }\n } catch (error) {\n // in case parsing fails for whatever reason, push the raw logs and continue\n spans.push({ fgColor, bgColor, text, fontWeight });\n line += text;\n }\n });\n }\n });\n if (line) {\n formattedLogs.push({ line, spans });\n }\n\n return formattedLogs;\n}\n\nfunction stripHeadersFunc(logs: string) {\n return logs.substring(8).replace(/\\r?\\n(.{8})/g, '\\n');\n}\n\nfunction stripEscapeCodes(logs: string) {\n return logs.replace(\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,\n ''\n );\n}\n\nfunction cssColorFromRgb(rgb: RGBColor) {\n const [r, g, b] = rgb;\n\n return `rgb(${r}, ${g}, ${b})`;\n}\n\n// assuming types based on original JS implementation\n// there is not much type definitions for the tokenize library\nfunction extendedColorForToken(token: Token[]) {\n const [, colorMode, colorRef] = token as [undefined, number, number];\n\n if (colorMode === 2) {\n return cssColorFromRgb(token.slice(2) as RGBColor);\n }\n\n if (colorMode === 5 && colors[colorRef]) {\n return cssColorFromRgb(colors[colorRef]);\n }\n\n return '';\n}\n","import { without } from 'lodash';\n\nimport { FormattedLine, Span, JSONLogs, TIMESTAMP_LENGTH } from './types';\nimport {\n formatCaller,\n formatKeyValuePair,\n formatLevel,\n formatMessage,\n formatStackTrace,\n formatTime,\n} from './formatters';\n\nfunction removeKnownKeys(keys: string[]) {\n return without(keys, 'time', 'level', 'caller', 'message', 'stack_trace');\n}\n\nexport function formatJSONLine(\n rawText: string,\n withTimestamps?: boolean\n): FormattedLine[] {\n const spans: Span[] = [];\n const lines: FormattedLine[] = [];\n let line = '';\n\n const text = withTimestamps ? rawText.substring(TIMESTAMP_LENGTH) : rawText;\n\n const json: JSONLogs = JSON.parse(text);\n const { time, level, caller, message, stack_trace: stackTrace } = json;\n const keys = removeKnownKeys(Object.keys(json));\n\n if (withTimestamps) {\n const timestamp = rawText.substring(0, TIMESTAMP_LENGTH);\n spans.push({ text: timestamp });\n line += `${timestamp} `;\n }\n line += formatTime(time, spans, line);\n line += formatLevel(level, spans, line);\n line += formatCaller(caller, spans, line);\n line += formatMessage(message, spans, line, !!keys.length);\n\n keys.forEach((key, idx) => {\n line += formatKeyValuePair(\n key,\n json[key],\n spans,\n line,\n idx === keys.length - 1\n );\n });\n\n lines.push({ line, spans });\n formatStackTrace(stackTrace, lines);\n\n return lines;\n}\n","import { BROWSER_OS_PLATFORM } from '@/react/constants';\n\nexport const NEW_LINE_BREAKER = BROWSER_OS_PLATFORM === 'win' ? '\\r\\n' : '\\n';\n","import { NEW_LINE_BREAKER } from './constants';\nimport { FormattedLine } from './types';\n\ntype FormatFunc = (line: FormattedLine) => string;\n\nexport function concatLogsToString(\n logs: FormattedLine[],\n formatFunc: FormatFunc = (line) => line.line\n) {\n return logs.reduce(\n (acc, formattedLine) => acc + formatFunc(formattedLine) + NEW_LINE_BREAKER,\n ''\n );\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport async function ping(environmentId: EnvironmentId) {\n try {\n await axios.get(`/endpoints/${environmentId}/docker/_ping`);\n } catch (error) {\n throw parseAxiosError(error as Error);\n }\n}\n","import helm from '@/assets/ico/vendor/helm.svg?c';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nexport const HelmIcon = <BadgeIcon icon={helm} />;\n","import { KubernetesPodNodeAffinityNodeSelectorRequirementOperators } from '../pod/models';\n\nexport function nodeAffinityValues(\n values: string | string[],\n operator: KubernetesPodNodeAffinityNodeSelectorRequirementOperators\n) {\n if (\n operator === KubernetesPodNodeAffinityNodeSelectorRequirementOperators.IN ||\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.NOT_IN\n ) {\n return values;\n }\n\n if (\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.EXISTS ||\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.DOES_NOT_EXIST\n ) {\n return '';\n }\n\n if (\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.GREATER_THAN ||\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.LOWER_THAN\n ) {\n return values[0];\n }\n return '';\n}\n","import {\n AppType,\n AppDataAccessPolicy,\n DeploymentType,\n} from '@/react/kubernetes/applications/types';\nimport { ServiceType } from '@/react/kubernetes/services/types';\n\n// The following constants are used by angular views and can be removed once they are no longer referenced\nexport const KubernetesApplicationTypes: Record<AppType, AppType> = {\n Deployment: 'Deployment',\n StatefulSet: 'StatefulSet',\n DaemonSet: 'DaemonSet',\n Pod: 'Pod',\n Helm: 'Helm',\n} as const;\n\nexport const KubernetesApplicationDeploymentTypes: Record<\n DeploymentType,\n DeploymentType\n> = {\n Global: 'Global',\n Replicated: 'Replicated',\n} as const;\n\nexport const KubernetesApplicationDataAccessPolicies: Record<\n AppDataAccessPolicy,\n AppDataAccessPolicy\n> = {\n Isolated: 'Isolated',\n Shared: 'Shared',\n} as const;\n\nexport const KubernetesApplicationServiceTypes: Record<\n ServiceType,\n ServiceType\n> = {\n ClusterIP: 'ClusterIP',\n NodePort: 'NodePort',\n LoadBalancer: 'LoadBalancer',\n ExternalName: 'ExternalName',\n} as const;\n","import { Transition, TransitionService } from '@uirouter/angularjs';\n\nimport { IAuthenticationService } from './services/types';\n\nexport enum AccessHeaders {\n Restricted = 'restricted',\n Admin = 'admin',\n EdgeAdmin = 'edge-admin',\n}\n\ntype Authorizations = string[];\ntype Access =\n | AccessHeaders.Restricted\n | AccessHeaders.Admin\n | AccessHeaders.EdgeAdmin\n | Authorizations;\n\nexport function requiresAuthHook(transitionService: TransitionService) {\n transitionService.onBefore({}, checkAuthorizations);\n}\n\n// exported for tests\nexport async function checkAuthorizations(transition: Transition) {\n const authService: IAuthenticationService = transition\n .injector()\n .get('Authentication');\n const stateTo = transition.to();\n const $state = transition.router.stateService;\n\n const { access } = stateTo.data || {};\n if (!isAccess(access)) {\n return undefined;\n }\n\n const isLoggedIn = await authService.init();\n\n if (!isLoggedIn) {\n // eslint-disable-next-line no-console\n console.info(\n 'User is not authenticated, redirecting to login, access:',\n access\n );\n return $state.target('portainer.logout');\n }\n\n if (typeof access === 'string') {\n if (access === 'restricted') {\n return undefined;\n }\n\n if (access === 'admin') {\n if (authService.isPureAdmin()) {\n return undefined;\n }\n\n // eslint-disable-next-line no-console\n console.info(\n 'User is not an admin, redirecting to home, access:',\n access\n );\n return $state.target('portainer.home');\n }\n\n if (access === 'edge-admin') {\n if (authService.isAdmin(true)) {\n return undefined;\n }\n\n // eslint-disable-next-line no-console\n console.info(\n 'User is not an edge admin, redirecting to home, access:',\n access\n );\n return $state.target('portainer.home');\n }\n }\n\n if (access.length > 0 && !authService.hasAuthorizations(access)) {\n // eslint-disable-next-line no-console\n console.info(\n 'User does not have the required authorizations, redirecting to home'\n );\n return $state.target('portainer.home');\n }\n\n return undefined;\n}\n\nfunction isAccess(access: unknown): access is Access {\n if (!access || (typeof access !== 'string' && !Array.isArray(access))) {\n return false;\n }\n\n if (Array.isArray(access)) {\n return access.every((a) => typeof a === 'string');\n }\n\n return ['restricted', 'admin', 'edge-admin'].includes(access);\n}\n","import {\n IComponentOptions,\n IComponentController,\n IFormController,\n IScope,\n} from 'angular';\n\nclass BoxSelectorController implements IComponentController {\n formCtrl!: IFormController;\n\n onChange!: (value: string | number) => void;\n\n radioName!: string;\n\n $scope: IScope;\n\n /* @ngInject */\n constructor($scope: IScope) {\n this.handleChange = this.handleChange.bind(this);\n\n this.$scope = $scope;\n }\n\n handleChange(value: string | number, limitedToBE: boolean) {\n this.$scope.$evalAsync(() => {\n this.formCtrl.$setValidity(this.radioName, !limitedToBE, this.formCtrl);\n this.onChange(value);\n });\n }\n}\n\nexport const BoxSelectorAngular: IComponentOptions = {\n template: `<box-selector-react\n value=\"$ctrl.value\"\n on-change=\"$ctrl.handleChange\"\n options=\"$ctrl.options\"\n radio-name=\"$ctrl.radioName\"\n slim=\"$ctrl.slim\"\n ></box-selector-react>`,\n bindings: {\n value: '<',\n onChange: '<',\n options: '<',\n radioName: '<',\n slim: '<',\n },\n require: {\n formCtrl: '^form',\n },\n controller: BoxSelectorController,\n};\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport { IconProps } from '@@/Icon';\n\nexport function buildOption<T extends number | string>(\n id: BoxSelectorOption<T>['id'],\n icon: IconProps['icon'],\n label: BoxSelectorOption<T>['label'],\n description: BoxSelectorOption<T>['description'],\n value: BoxSelectorOption<T>['value'],\n feature?: FeatureId\n): BoxSelectorOption<T> {\n return { id, icon, label, description, value, feature };\n}\n","import angular from 'angular';\n\nimport { react2angular } from '@/react-tools/react2angular';\n\nimport { BoxSelector } from '@@/BoxSelector';\n\nimport { BoxSelectorAngular } from './BoxSelectorAngular';\n\nexport { buildOption } from './utils';\nconst BoxSelectorReact = react2angular(BoxSelector, [\n 'isMulti',\n 'value',\n 'onChange',\n 'options',\n 'radioName',\n 'slim',\n 'hiddenSpacingCount',\n]);\n\nexport const boxSelectorModule = angular\n .module('app.portainer.component.box-selector', [])\n .component('boxSelectorReact', BoxSelectorReact)\n .component('boxSelector', BoxSelectorAngular).name;\n","export default class PortainerError extends Error {\n err?: unknown;\n\n isPortainerError = true;\n\n constructor(msg: string, err?: unknown) {\n super(msg);\n this.err = err;\n }\n}\n\nexport function isPortainerError(error: unknown): error is PortainerError {\n return (\n !!error &&\n typeof error === 'object' &&\n 'isPortainerError' in error &&\n (error as PortainerError).isPortainerError\n );\n}\n","export function getValueAsArrayOfStrings(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) {\n return [];\n }\n\n if (typeof value === 'number') {\n return [value.toString()];\n }\n\n return [value];\n}\n","/**\n * runs the provided promises in a sequence, and returns a promise that resolves when all promises have resolved\n *\n * @param promises a list of functions that return promises\n */\nexport function promiseSequence(promises: (() => Promise<unknown>)[]) {\n return promises.reduce(\n (promise, nextPromise) => promise.then(nextPromise),\n Promise.resolve(undefined as unknown)\n );\n}\n\nexport function isFulfilled<T>(\n result: PromiseSettledResult<T>\n): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled';\n}\n\nexport function isRejected<T>(\n result: PromiseSettledResult<T>\n): result is PromiseRejectedResult {\n return result.status === 'rejected';\n}\n\nexport function getFulfilledResults<T>(\n results: Array<PromiseSettledResult<T>>\n) {\n return results.filter(isFulfilled).map((result) => result.value);\n}\n","export function pluralize(val: number, word: string, plural = `${word}s`) {\n return [1, -1].includes(Number(val)) ? word : plural;\n}\n\nexport function addPlural(value: number, word: string, plural = `${word}s`) {\n return `${value} ${pluralize(value, word, plural)}`;\n}\n","import uuid from 'uuid';\n\nimport {\n API_ENDPOINT_EDGE_STACKS,\n API_ENDPOINT_STACKS,\n API_ENDPOINT_WEBHOOKS,\n} from '@/constants';\n\nimport { baseHref } from './pathHelper';\n\nconst baseUrl = getBaseUrl();\n\nexport function dockerWebhookUrl(token: string) {\n return `${baseUrl}${API_ENDPOINT_WEBHOOKS}/${token}`;\n}\n\nexport function baseStackWebhookUrl() {\n return `${baseUrl}${API_ENDPOINT_STACKS}/webhooks`;\n}\n\nexport function stackWebhookUrl(token: string) {\n return `${baseStackWebhookUrl()}/${token}`;\n}\n\nexport function createWebhookId() {\n return uuid();\n}\n\nexport function baseEdgeStackWebhookUrl() {\n return `${baseUrl}${API_ENDPOINT_EDGE_STACKS}/webhooks`;\n}\n\n/* @ngInject */\nexport function WebhookHelperFactory() {\n return {\n returnWebhookUrl: dockerWebhookUrl,\n getBaseStackWebhookUrl: baseStackWebhookUrl,\n returnStackWebhookUrl: stackWebhookUrl,\n };\n}\n\nfunction getBaseUrl() {\n const protocol = window.location.protocol.toLowerCase().replace(':', '');\n\n if (protocol === 'file') {\n return baseHref();\n }\n\n const { hostname } = window.location;\n const port = parseInt(window.location.port, 10);\n const displayPort =\n (protocol === 'http' && port === 80) ||\n (protocol === 'https' && port === 443) ||\n Number.isNaN(port)\n ? ''\n : `:${port}`;\n return `${protocol}://${hostname}${displayPort}${baseHref()}`;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { FDOConfiguration, DeviceConfiguration, Profile } from './model';\n\nconst BASE_URL = '/fdo';\n\nexport async function configureFDO(formValues: FDOConfiguration) {\n try {\n await axios.post(`${BASE_URL}/configure`, formValues);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to configure FDO');\n }\n}\n\nexport async function configureDevice(\n deviceId: string,\n deviceConfig: DeviceConfiguration\n) {\n try {\n await axios.post(`${BASE_URL}/configure/${deviceId}`, deviceConfig);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to configure device');\n }\n}\n\nexport async function createProfile(\n name: string,\n method: string,\n profileFileContent: string\n) {\n const payload = {\n name,\n profileFileContent,\n };\n try {\n await axios.post(`${BASE_URL}/profiles`, payload, {\n params: { method },\n });\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to create profile');\n }\n}\n\nexport async function getProfiles() {\n try {\n const { data: profiles } = await axios.get<Profile[]>(\n `${BASE_URL}/profiles`\n );\n return profiles;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve the profiles');\n }\n}\n\nexport async function getProfile(profileId: number) {\n try {\n const { data: profile } = await axios.get<Profile>(\n `${BASE_URL}/profiles/${profileId}`\n );\n return profile;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve profile');\n }\n}\n\nexport async function deleteProfile(profileId: number) {\n try {\n await axios.delete(`${BASE_URL}/profiles/${profileId}`);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to delete profile');\n }\n}\n\nexport async function updateProfile(\n id: number,\n name: string,\n profileFileContent: string\n) {\n const payload = {\n name,\n profileFileContent,\n };\n try {\n await axios.put(`${BASE_URL}/profiles/${id}`, payload);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to update profile');\n }\n}\n\nexport async function duplicateProfile(id: number) {\n try {\n const { data: profile } = await axios.post<Profile>(\n `${BASE_URL}/profiles/${id}/duplicate`\n );\n return profile;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to duplicate profile');\n }\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n OpenAMTConfiguration,\n AMTInformation,\n AuthorizationResponse,\n DeviceFeatures,\n} from '@/react/edge/edge-devices/open-amt/types';\n\nconst BASE_URL = '/open_amt';\n\nexport async function configureAMT(formValues: OpenAMTConfiguration) {\n try {\n await axios.post(`${BASE_URL}/configure`, formValues);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to configure AMT');\n }\n}\n\nexport async function getAMTInfo(environmentId: EnvironmentId) {\n try {\n const { data: amtInformation } = await axios.get<AMTInformation>(\n `${BASE_URL}/${environmentId}/info`\n );\n\n return amtInformation;\n } catch (e) {\n throw parseAxiosError(\n e as Error,\n 'Unable to retrieve environment information'\n );\n }\n}\n\nexport async function enableDeviceFeatures(\n environmentId: EnvironmentId,\n deviceGUID: string,\n features: DeviceFeatures\n) {\n try {\n const featuresPayload = { features };\n const { data: authorizationResponse } =\n await axios.post<AuthorizationResponse>(\n `${BASE_URL}/${environmentId}/devices/${deviceGUID}/features`,\n featuresPayload\n );\n return authorizationResponse;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to enable device features');\n }\n}\n","import Axios, {\n AxiosError,\n AxiosInstance,\n InternalAxiosRequestConfig,\n} from 'axios';\nimport {\n setupCache,\n buildMemoryStorage,\n CacheAxiosResponse,\n InterpreterResult,\n AxiosCacheInstance,\n} from 'axios-cache-interceptor';\nimport { loadProgressBar } from 'axios-progress-bar';\nimport 'axios-progress-bar/dist/nprogress.css';\n\nimport PortainerError from '@/portainer/error';\n\nimport {\n CACHE_DURATION,\n dispatchCacheRefreshEventIfNeeded,\n portainerAgentManagerOperation,\n portainerAgentTargetHeader,\n} from './http-request.helper';\n\nconst portainerCacheHeader = 'X-Portainer-Cache';\n\nconst storage = buildMemoryStorage();\n// mock the cache adapter\nexport const cache = {\n store: {\n clear: () => {\n storage.data = {};\n },\n },\n};\n\nfunction headerInterpreter(\n headers?: CacheAxiosResponse['headers']\n): InterpreterResult {\n if (!headers) {\n return 'not enough headers';\n }\n\n if (headers[portainerCacheHeader]) {\n return CACHE_DURATION;\n }\n\n return 'not enough headers';\n}\n\nconst axios = Axios.create({ baseURL: 'api' });\naxios.interceptors.request.use((req) => {\n dispatchCacheRefreshEventIfNeeded(req);\n return req;\n});\n\n// type guard the axios instance\nfunction isAxiosCacheInstance(\n a: AxiosInstance | AxiosCacheInstance\n): a is AxiosCacheInstance {\n return (a as AxiosCacheInstance).defaults.cache !== undefined;\n}\n\n// when entering a kubernetes environment, or updating user settings, update the cache adapter\nexport function updateAxiosAdapter(useCache: boolean) {\n if (useCache) {\n if (isAxiosCacheInstance(axios)) {\n return;\n }\n\n setupCache(axios, {\n storage,\n ttl: CACHE_DURATION,\n methods: ['get', 'head', 'options', 'post'],\n // cachePredicate determines if the response should be cached based on response\n cachePredicate: {\n containsHeaders: {\n [portainerCacheHeader]: () => true,\n },\n ignoreUrls: [/^(?!.*\\bkubernetes\\b).*$/gm],\n responseMatch: (res) => {\n if (res.config.method === 'post') {\n if (res.config.url?.includes('selfsubjectaccessreviews')) {\n return true;\n }\n return false;\n }\n return true;\n },\n },\n // headerInterpreter interprets the response headers to determine if the response should be cached\n headerInterpreter,\n });\n }\n}\n\nexport default axios;\n\nloadProgressBar(undefined, axios);\n\nexport const agentTargetHeader = 'X-PortainerAgent-Target';\n\nexport function agentInterceptor(config: InternalAxiosRequestConfig) {\n if (!config.url || !config.url.includes('/docker/')) {\n return config;\n }\n\n const newConfig = { ...config };\n const target = portainerAgentTargetHeader();\n if (target) {\n newConfig.headers[agentTargetHeader] = target;\n }\n\n if (portainerAgentManagerOperation()) {\n newConfig.headers['X-PortainerAgent-ManagerOperation'] = '1';\n }\n\n return newConfig;\n}\n\naxios.interceptors.request.use(agentInterceptor);\n\naxios.interceptors.response.use(undefined, (error) => {\n if (\n error.response?.status === 401 &&\n !error.config.url.includes('/v2/') &&\n !error.config.url.includes('/api/v4/') &&\n isTransitionRequiresAuthentication()\n ) {\n // eslint-disable-next-line no-console\n console.error('Unauthorized request, logging out');\n window.location.hash = '/logout';\n window.location.reload();\n }\n\n return Promise.reject(error);\n});\n\nconst UNAUTHENTICATED_ROUTES = [\n '/logout',\n '/internal-auth',\n '/auth',\n '/init/admin',\n];\nfunction isTransitionRequiresAuthentication() {\n return !UNAUTHENTICATED_ROUTES.some((route) =>\n window.location.hash.includes(route)\n );\n}\n\n/**\n * Parses an Axios error and returns a PortainerError.\n * @param err The original error.\n * @param msg An optional error message to prepend.\n * @param parseError A function to parse AxiosErrors. Defaults to defaultErrorParser.\n * @returns A PortainerError with the parsed error message and details.\n */\nexport function parseAxiosError(\n err: unknown,\n msg = '',\n parseError = defaultErrorParser\n) {\n let resultErr = err;\n let resultMsg = msg;\n\n if (isAxiosError(err)) {\n const { error, details } = parseError(err);\n resultErr = error;\n if (msg && details) {\n resultMsg = `${msg}: ${details}`;\n } else {\n resultMsg = msg || details;\n }\n }\n\n return new PortainerError(resultMsg, resultErr);\n}\n\ntype DefaultAxiosErrorType = {\n message: string;\n details?: string;\n};\n\nexport function defaultErrorParser(axiosError: AxiosError<unknown>) {\n if (isDefaultResponse(axiosError.response?.data)) {\n const message = axiosError.response?.data.message || '';\n const details = axiosError.response?.data.details || message;\n const error = new Error(message);\n return { error, details };\n }\n\n const details = axiosError.response?.data\n ? axiosError.response?.data.toString()\n : '';\n const error = new Error('Axios error');\n return { error, details };\n}\n\nexport function isDefaultResponse(\n data: unknown\n): data is DefaultAxiosErrorType {\n return (\n !!data &&\n typeof data === 'object' &&\n 'message' in data &&\n typeof data.message === 'string'\n );\n}\n\nexport function isAxiosError<ResponseType>(\n error: unknown\n): error is AxiosError<ResponseType> {\n return Axios.isAxiosError(error);\n}\n\nexport function arrayToJson<T>(arr?: Array<T>) {\n if (!arr) {\n return '';\n }\n\n return JSON.stringify(arr);\n}\n\nexport function json2formData(json: Record<string, unknown>) {\n const formData = new FormData();\n\n Object.entries(json).forEach(([key, value]) => {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (value instanceof File) {\n formData.append(key, value);\n return;\n }\n\n if (Array.isArray(value)) {\n formData.append(key, arrayToJson(value));\n return;\n }\n\n if (typeof value === 'object') {\n formData.append(key, JSON.stringify(value));\n return;\n }\n\n formData.append(key, value.toString());\n });\n\n return formData;\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport const CACHE_DURATION = 5 * 60 * 1000; // 5m in ms\n// event emitted when cache need to be refreshed\n// used to sync $http + axios cache clear\nexport const CACHE_REFRESH_EVENT = '__cache__refresh__event__';\n\n// utility function to dispatch catch refresh event\nexport function dispatchCacheRefreshEvent() {\n dispatchEvent(new CustomEvent(CACHE_REFRESH_EVENT, {}));\n}\n\n// perform checks on config.method and config.url\n// to dispatch event in only specific scenarios\nexport function dispatchCacheRefreshEventIfNeeded(req: AxiosRequestConfig) {\n if (\n req.method &&\n ['post', 'patch', 'put', 'delete'].includes(req.method.toLowerCase()) &&\n // don't clear cache when we try to check for namespaces accesses\n // otherwise we will clear it on every page\n req.url &&\n !req.url.includes('selfsubjectaccessreviews') &&\n req.url.includes('kubernetes')\n ) {\n dispatchCacheRefreshEvent();\n }\n}\n\ninterface Headers {\n agentTargetQueue: string[];\n agentManagerOperation: boolean;\n registryAuthentication?: string;\n agentTargetLastValue: string;\n}\n\nconst headers: Headers = {\n agentTargetQueue: [],\n agentManagerOperation: false,\n agentTargetLastValue: '',\n};\n\nexport function registryAuthenticationHeader() {\n return headers.registryAuthentication;\n}\n\nexport function setRegistryAuthenticationHeader(headerValue: string) {\n headers.registryAuthentication = headerValue;\n}\n\n// Due to the fact that async HTTP requests are decorated using an interceptor\n// we need to store and retrieve the headers using a first-in-first-out (FIFO) data structure.\n// Otherwise, sequential HTTP requests might end up using the same header value (incorrect in the case\n// of starting multiple containers on different nodes for example).\n// To prevent having to use the HttpRequestHelper.setPortainerAgentTargetHeader before EACH request,\n// we re-use the latest available header in the data structure (handy in thee case of multiple requests affecting\n// the same node in the same view).\nexport function portainerAgentTargetHeader() {\n if (headers.agentTargetQueue.length === 0) {\n return headers.agentTargetLastValue;\n }\n\n if (headers.agentTargetQueue.length === 1) {\n const [lastValue] = headers.agentTargetQueue;\n headers.agentTargetLastValue = lastValue;\n }\n\n return headers.agentTargetQueue.shift() || '';\n}\n\nexport function setPortainerAgentTargetHeader(headerValue: string) {\n if (headerValue) {\n headers.agentTargetQueue.push(headerValue);\n }\n}\n\nexport function setPortainerAgentManagerOperation(set: boolean) {\n headers.agentManagerOperation = set;\n}\n\nexport function portainerAgentManagerOperation() {\n return headers.agentManagerOperation;\n}\n\nexport function resetAgentHeaders() {\n headers.agentTargetQueue = [];\n headers.agentTargetLastValue = '';\n headers.agentManagerOperation = false;\n delete headers.registryAuthentication;\n}\n\n/* @ngInject */\nexport function HttpRequestHelperAngular() {\n return {\n registryAuthenticationHeader,\n setRegistryAuthenticationHeader,\n portainerAgentTargetHeader,\n setPortainerAgentTargetHeader,\n setPortainerAgentManagerOperation,\n portainerAgentManagerOperation,\n resetAgentHeaders,\n };\n}\n","import _ from 'lodash';\nimport toastr from 'toastr';\nimport sanitize from 'sanitize-html';\nimport { v4 as uuid } from 'uuid';\n\nimport { get as localStorageGet } from '@/react/hooks/useLocalStorage';\nimport { notificationsStore } from '@/react/portainer/notifications/notifications-store';\nimport { ToastNotification } from '@/react/portainer/notifications/types';\n\nconst { addNotification } = notificationsStore.getState();\n\ntoastr.options = {\n timeOut: 3000,\n closeButton: true,\n progressBar: true,\n tapToDismiss: false,\n escapeHtml: true,\n // custom button, using the lucide icon x.svg inside\n closeHtml: `<button type=\"button\"><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n>\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n</svg></button>`,\n};\n\nexport function notifySuccess(title: string, text: string) {\n saveNotification(title, text, 'success');\n toastr.success(sanitize(_.escape(text)), sanitize(_.escape(title)));\n}\n\nexport function notifyWarning(title: string, text: string) {\n saveNotification(title, text, 'warning');\n toastr.warning(sanitize(_.escape(text)), sanitize(title), { timeOut: 6000 });\n}\n\nexport function notifyError(title: string, e?: Error, fallbackText = '') {\n const msg = pickErrorMsg(e) || fallbackText;\n saveNotification(title, msg, 'error');\n\n if (!_.get(e, 'resource.password')) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n\n if (msg !== 'Invalid JWT token') {\n toastr.error(sanitize(_.escape(msg)), sanitize(title), { timeOut: 6000 });\n }\n}\n\nexport const success = notifySuccess;\nexport const error = notifyError;\nexport const warning = notifyWarning;\n\n/* @ngInject */\nexport function Notifications() {\n return {\n success: notifySuccess,\n warning: notifyWarning,\n error: notifyError,\n };\n}\n\nfunction pickErrorMsg(e?: Error) {\n if (!e) {\n return '';\n }\n\n const props = [\n 'err.data.details',\n 'err.data.message',\n 'data.details',\n 'data.message',\n 'data.content',\n 'data.error',\n 'message',\n 'err.data[0].message',\n 'err.data.err',\n 'data.err',\n 'msg',\n ];\n\n let msg = '';\n\n props.forEach((prop) => {\n const val = _.get(e, prop);\n if (typeof val === 'string') {\n msg = msg || val;\n }\n });\n\n return msg;\n}\n\nfunction saveNotification(title: string, text: string, type: string) {\n const notif: ToastNotification = {\n id: uuid(),\n title,\n details: text,\n type,\n timeStamp: new Date(),\n };\n const userId = localStorageGet('USER_ID', '');\n if (userId !== '') {\n addNotification(userId, notif);\n }\n}\n","import axios, { parseAxiosError } from '../services/axios';\n\nimport { Tag, TagId } from './types';\n\nexport async function getTags() {\n try {\n const { data } = await axios.get<Tag[]>(buildUrl());\n return data;\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to retrieve tags');\n }\n}\n\nexport async function createTag(name: string) {\n try {\n const { data: tag } = await axios.post<Tag>(buildUrl(), { name });\n return tag;\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to create tag');\n }\n}\n\nexport async function deleteTag(id: TagId) {\n try {\n await axios.delete(buildUrl(id));\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to delte tag');\n }\n}\n\nfunction buildUrl(id?: TagId) {\n let url = '/tags';\n if (id) {\n url += `/${id}`;\n }\n\n return url;\n}\n","import { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport {\n mutationOptions,\n withError,\n withInvalidate,\n} from '@/react-tools/react-query';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { createTag, getTags } from './tags.service';\nimport { Tag, TagId } from './types';\n\nexport const tagKeys = {\n all: ['tags'] as const,\n tag: (id: TagId) => [...tagKeys.all, id] as const,\n};\n\nexport function useTags<T = Tag[]>({\n select,\n enabled = true,\n}: { select?: (tags: Tag[]) => T; enabled?: boolean } = {}) {\n return useQuery(tagKeys.all, () => getTags(), {\n staleTime: 50,\n select,\n enabled,\n ...withError('Failed to retrieve tags'),\n });\n}\n\nexport function useTagsForEnvironment(environmentId: EnvironmentId) {\n const { data: tags, isLoading } = useTags({\n select: (tags) => tags.filter((tag) => tag.Endpoints[environmentId]),\n });\n\n return { tags, isLoading };\n}\n\nexport function useCreateTagMutation() {\n const queryClient = useQueryClient();\n\n return useMutation(\n createTag,\n mutationOptions(\n withError('Unable to create tag'),\n withInvalidate(queryClient, [tagKeys.all])\n )\n );\n}\n","import { useQuery } from 'react-query';\n\nimport { TeamRole, TeamMembership } from '@/react/portainer/users/teams/types';\nimport { useCurrentUser, useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { User, UserId } from './types';\nimport { getUserMemberships, getUsers } from './user.service';\n\ninterface UseUserMembershipOptions<TSelect> {\n select?(userMemberships: TeamMembership[]): TSelect;\n enabled?: boolean;\n}\n\nexport function useUserMembership<TSelect = TeamMembership[]>(\n userId: UserId,\n { enabled, select }: UseUserMembershipOptions<TSelect> = {}\n) {\n return useQuery(\n ['users', userId, 'memberships'],\n () => getUserMemberships(userId),\n { select, enabled }\n );\n}\n\nexport function useIsCurrentUserTeamLeader() {\n const { user } = useCurrentUser();\n const isAdminQuery = useIsEdgeAdmin();\n\n const query = useUserMembership(user.Id, {\n enabled: !isAdminQuery.isLoading && !isAdminQuery.isAdmin,\n select: (memberships) =>\n memberships.some((membership) => membership.Role === TeamRole.Leader),\n });\n\n if (isAdminQuery.isLoading) {\n return false;\n }\n\n return isAdminQuery.isAdmin ? true : !!query.data;\n}\n\nexport function useUsers<T = User[]>(\n includeAdministrator = false,\n environmentId = 0,\n enabled = true,\n select: (data: User[]) => T = (data) => data as unknown as T\n) {\n const users = useQuery(\n ['users', { includeAdministrator, environmentId }],\n () => getUsers(includeAdministrator, environmentId),\n {\n meta: {\n error: { title: 'Failure', message: 'Unable to load users' },\n },\n enabled,\n select,\n }\n );\n\n return users;\n}\n","import { UserId } from '../types';\n\nexport const userQueryKeys = {\n base: () => ['users'] as const,\n user: (id: UserId) => [...userQueryKeys.base(), id] as const,\n me: () => [...userQueryKeys.base(), 'me'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from '../user.service';\nimport { User } from '../types';\n\nimport { userQueryKeys } from './queryKeys';\n\ninterface CurrentUserResponse extends User {\n forceChangePassword: boolean;\n}\n\nexport function useLoadCurrentUser({ staleTime }: { staleTime?: number } = {}) {\n return useQuery(userQueryKeys.me(), () => getCurrentUser(), {\n ...withError('Unable to retrieve user details'),\n staleTime,\n });\n}\n\nexport async function getCurrentUser() {\n try {\n const { data: user } = await axios.get<CurrentUserResponse>(\n buildUrl(undefined, 'me')\n );\n\n return user;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve user details');\n }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from '../user.service';\nimport { User, UserId } from '../types';\n\nimport { userQueryKeys } from './queryKeys';\n\nexport function useUser(\n id: UserId,\n { staleTime }: { staleTime?: number } = {}\n) {\n return useQuery(userQueryKeys.user(id), () => getUser(id), {\n ...withError('Unable to retrieve user details'),\n staleTime,\n });\n}\n\nexport async function getUser(id: UserId) {\n try {\n const { data: user } = await axios.get<User>(buildUrl(id));\n\n return user;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve user details');\n }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { type UserId } from './types/user-id';\n\nexport { type UserId };\n\nexport enum Role {\n Admin = 1,\n Standard,\n EdgeAdmin,\n}\n\ninterface AuthorizationMap {\n [authorization: string]: boolean;\n}\n\nexport type User = {\n Id: UserId;\n Username: string;\n Role: Role;\n EndpointAuthorizations: {\n [endpointId: EnvironmentId]: AuthorizationMap;\n };\n UseCache: boolean;\n ThemeSettings: {\n color: 'dark' | 'light' | 'highcontrast' | 'auto';\n };\n};\n","import { Environment } from '@/react/portainer/environments/types';\nimport { isEdgeEnvironment } from '@/react/portainer/environments/utils';\n\nimport { Role, User } from './types';\n\nexport function filterNonAdministratorUsers(users: User[]) {\n return users.filter((user) => !isPureAdmin(user));\n}\n\ntype UserLike = Pick<User, 'Role'>;\n\n// To avoid creating divergence between CE and EE\n// isAdmin checks if the user is portainer admin or edge admin\nexport function isEdgeAdmin(\n user: UserLike | undefined,\n environment?: Pick<Environment, 'Type'> | null\n): boolean {\n return (\n isPureAdmin(user) ||\n (user?.Role === Role.EdgeAdmin &&\n (!environment || isEdgeEnvironment(environment.Type)))\n );\n}\n\n// To avoid creating divergence between CE and EE\n// isPureAdmin checks only if the user is portainer admin\n// See bouncer.IsAdmin and bouncer.PureAdminAccess\nexport function isPureAdmin(user?: UserLike): boolean {\n return !!user && user.Role === Role.Admin;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { TeamMembership } from '@/react/portainer/users/teams/types';\n\nimport { User, UserId } from './types';\nimport { filterNonAdministratorUsers } from './user.helpers';\n\nexport async function getUsers(\n includeAdministrators = false,\n environmentId = 0\n) {\n try {\n const { data } = await axios.get<User[]>(buildUrl(), {\n params: { environmentId },\n });\n\n return includeAdministrators ? data : filterNonAdministratorUsers(data);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve users');\n }\n}\n\nexport async function getUserMemberships(id: UserId) {\n try {\n const { data } = await axios.get<TeamMembership[]>(\n buildUrl(id, 'memberships')\n );\n return data;\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to retrieve user memberships');\n }\n}\n\nexport function buildUrl(id?: UserId, entity?: string) {\n let url = '/users';\n\n if (id) {\n url += `/${id}`;\n }\n\n if (entity) {\n url += `/${entity}`;\n }\n\n return url;\n}\n","import { SetStateAction } from 'react';\n\nexport function applySetStateAction<T>(applier: SetStateAction<T>, values?: T) {\n if (isFunction(applier)) {\n return values ? applier(values) : undefined;\n }\n return applier;\n\n function isFunction(value: unknown): value is (prevState: T) => T {\n return typeof value === 'function';\n }\n}\n","import {\n MutationCache,\n MutationOptions,\n QueryCache,\n QueryClient,\n QueryKey,\n QueryOptions,\n} from 'react-query';\n\nimport { notifyError } from '@/portainer/services/notifications';\n\nexport function withError(fallbackMessage?: string, title = 'Failure') {\n return {\n onError(error: unknown) {\n notifyError(title, error as Error, fallbackMessage);\n },\n };\n}\n\nexport function withGlobalError(fallbackMessage?: string, title = 'Failure') {\n return {\n meta: {\n error: { message: fallbackMessage, title },\n },\n };\n}\n\ntype OptionalReadonly<T> = T | Readonly<T>;\n\nexport function withInvalidate(\n queryClient: QueryClient,\n queryKeysToInvalidate: Array<OptionalReadonly<Array<string | number>>>,\n // skipRefresh will set the mutation state to success without waiting for the invalidated queries to refresh\n // see the following for info: https://tkdodo.eu/blog/mastering-mutations-in-react-query#awaited-promises\n { skipRefresh }: { skipRefresh?: boolean } = {}\n) {\n return {\n onSuccess() {\n const promise = Promise.all(\n queryKeysToInvalidate.map((keys) => queryClient.invalidateQueries(keys))\n );\n return skipRefresh\n ? undefined // don't wait for queries to refresh before setting state to success\n : promise; // stay loading until all queries are refreshed\n },\n };\n}\n\nexport function mutationOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(...options: MutationOptions<TData, TError, TVariables, TContext>[]) {\n return mergeOptions(options);\n}\n\nexport function queryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(...options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>[]) {\n return mergeOptions(options);\n}\n\nfunction mergeOptions<T>(options: T[]) {\n return options.reduce(\n (acc, option) => ({\n ...acc,\n ...option,\n }),\n {} as T\n );\n}\n\nexport function createQueryClient() {\n return new QueryClient({\n mutationCache: new MutationCache({\n onError: (error, variable, context, mutation) => {\n handleError(error, mutation.meta?.error);\n },\n }),\n queryCache: new QueryCache({\n onError: (error, mutation) => {\n handleError(error, mutation.meta?.error);\n },\n }),\n });\n}\n\nfunction handleError(error: unknown, errorMeta?: unknown) {\n if (errorMeta && typeof errorMeta === 'object') {\n const { title = 'Failure', message } = errorMeta as {\n title?: string;\n message?: string;\n };\n\n notifyError(title, error as Error, message);\n }\n}\n\nexport const queryClient = createQueryClient();\n","import ReactDOM from 'react-dom';\nimport { IComponentOptions, IController } from 'angular';\nimport { StrictMode } from 'react';\nimport _ from 'lodash';\n\nfunction toProps(\n propNames: string[],\n controller: IController,\n $q: ng.IQService\n) {\n return Object.fromEntries(\n propNames.map((key) => {\n const prop = controller[key];\n if (typeof prop !== 'function') {\n return [key, prop];\n }\n\n return [\n key,\n (...args: unknown[]) =>\n $q((resolve) => resolve(controller[key](...args))),\n ];\n })\n );\n}\n\nexport type PropNames<T> = Exclude<keyof T, number | symbol>;\n\n/**\n * react2angular is used to bind a React component to an AngularJS component\n * it used in an AngularJS module definition:\n *\n * `.component('componentName', react2angular(ComponentName, ['prop1', 'prop2']))`\n *\n * if the second parameter has any ts errors check that the component has the correct props\n */\nexport function react2angular<T, U extends PropNames<T>[]>(\n Component: React.ComponentType<T & JSX.IntrinsicAttributes>,\n propNames: U & ([PropNames<T>] extends [U[number]] ? unknown : PropNames<T>)\n): IComponentOptions & { name: string } {\n const bindings = Object.fromEntries(propNames.map((key) => [key, '<']));\n\n return {\n bindings,\n controller: Controller,\n name: _.camelCase(Component.displayName || Component.name),\n };\n\n /* @ngInject */\n function Controller(\n this: IController,\n $element: HTMLElement[],\n $q: ng.IQService\n ) {\n let isDestroyed = false;\n const el = $element[0];\n\n this.$onChanges = () => {\n if (!isDestroyed) {\n const props = toProps(propNames, this, $q);\n ReactDOM.render(\n <StrictMode>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Component {...(props as T & JSX.IntrinsicAttributes)} />\n </StrictMode>,\n\n el\n );\n }\n };\n\n this.$onDestroy = () => {\n if (!isDestroyed) {\n isDestroyed = true;\n ReactDOM.unmountComponentAtNode(el);\n }\n };\n }\n}\n\nexport const r2a = react2angular;\n","import { ComponentType, useEffect, useMemo, useState } from 'react';\n\ntype KeyRecord<T> = Record<keyof T, T[keyof T]>;\n\ntype KeysOfFunctions<T> = keyof {\n [K in keyof T as T[K] extends (v: never) => void ? K : never]: never;\n};\n\ntype KeysWithoutFunctions<T> = Exclude<keyof T, KeysOfFunctions<T>>;\n\n/**\n * React component wrapper that will sync AngularJS bound variables in React state.\n * This wrapper is mandatory to allow the binding of AngularJS variables directly in controlled components.\n *\n * Without this the component will be redrawn everytime the value changes in AngularJS (outside of React control)\n * and the redraw will create issues when typing in the inputs.\n *\n * Examples\n * ---\n * SINGLE PAIR\n * ```tsx\n * type Props = {\n * value: unknown;\n * onChange: (v: unknown) => void;\n * }\n *\n * function ReactComponent({ value, onChange }: Props) {\n * return <input value={value} onChange={onChange} />\n * }\n *\n * r2a(withControlledInput(ReactComponent), ['value', 'onChange']);\n *\n * ```\n * ---\n * MULTIPLE PAIRS\n * ```tsx\n * type Props = {\n * valueStr: string;\n * onChangeStr: (v: string) => void;\n * valueNum: number;\n * onChangeNum: (v: number) => void;\n * }\n *\n * function ReactComponent({ valueStr, onChangeStr, valueNum, onChangeNum }: Props) {\n * return (\n * <>\n * <input type=\"text\" value={valueStr} onChange={onChangeStr} />\n * <input type=\"number\" value={valueNum} onChange={onChangeNum} />\n * </>\n * );\n * }\n *\n * r2a(withControlledInput(ReactComponent, {\n * valueStr: 'onChangeStr',\n * valueNum: 'onChangeNum'\n * }),\n * ['valueStr', 'onChangeStr', 'valueNum', 'onChangeNum']\n * )\n *\n * ```\n *\n * @param WrappedComponent The React component to wrap\n * @param controlledValueOnChangePairs A map of `(value:onChange)-like` pairs.\n * @returns WrappedComponent\n */\nexport function withControlledInput<T>(\n WrappedComponent: ComponentType<T>,\n controlledValueOnChangePairs:\n | {\n [Key in KeysWithoutFunctions<T>]?: KeysOfFunctions<T>;\n }\n | { value?: 'onChange' } = { value: 'onChange' }\n): ComponentType<T> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n // extract keys of values that will be updated outside of React lifecycle and their handler functions\n const keysToControl = Object.entries(controlledValueOnChangePairs) as [\n keyof T,\n keyof T,\n ][];\n\n function WrapperComponent(props: T) {\n // map of key = value for all tracked values that will be changed outside of React lifecycle\n // e.g. save in React state the values that will be changed in AngularJS\n const [controlledValues, setControlledValues] = useState<KeyRecord<T>>(\n {} as KeyRecord<T>\n );\n\n // generate a map of `funckey = (v: typeof props[value_key]) => void` to wrapp all handler functions.\n // each wrapped handler is referencing the key of the value it is changing so we can't use a single sync func\n const handlers = useMemo(\n () =>\n Object.fromEntries(\n keysToControl.map(([valueKey, onChangeKey]) => [\n onChangeKey,\n // generate and save a func that uses the key of the updated value\n (value: T[keyof T]) => {\n // update the state with the value coming from WrappedComponent\n setControlledValues(\n (c) => ({ ...c, [valueKey]: value }) as KeyRecord<T>\n );\n\n // call the bound handler func to update the value outside of React\n // eslint-disable-next-line react/destructuring-assignment\n const onChange = props[onChangeKey];\n if (typeof onChange === 'function') {\n onChange(value);\n }\n },\n ])\n ),\n [props]\n );\n\n // update the React state when a prop changes from outside of React lifecycle\n // limit keys to update to only tracked values ; ignore untracked props and handler functions\n useEffect(() => {\n const toUpdate = Object.fromEntries(\n // eslint-disable-next-line react/destructuring-assignment\n keysToControl.map(([key]) => [key, props[key]])\n ) as KeyRecord<T>;\n\n setControlledValues(toUpdate);\n }, [props]);\n\n return <WrappedComponent {...props} {...handlers} {...controlledValues} />;\n }\n\n WrapperComponent.displayName = `withControlledInput(${displayName})`;\n\n return WrapperComponent;\n}\n","import { ComponentType } from 'react';\n\nimport { UserProvider } from '@/react/hooks/useUser';\n\nimport { withReactQuery } from './withReactQuery';\n\nexport function withCurrentUser<T>(\n WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>\n): ComponentType<T & JSX.IntrinsicAttributes> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n return (\n <UserProvider>\n <WrappedComponent {...props} />\n </UserProvider>\n );\n }\n\n WrapperComponent.displayName = `withCurrentUser(${displayName})`;\n\n // User provider makes a call to the API to get the current user.\n // We need to wrap it with React Query to make that call.\n return withReactQuery(WrapperComponent);\n}\n","import { IFormController, IComponentOptions, IModule } from 'angular';\nimport { FormikErrors } from 'formik';\nimport { SchemaOf, object } from 'yup';\nimport _ from 'lodash';\nimport { ComponentType } from 'react';\n\nimport { PropNames, r2a } from '@/react-tools/react2angular';\n\nimport { validateForm } from '@@/form-components/validate-form';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\ninterface FormFieldProps<TValue> {\n onChange(values: TValue): void; // update the values for the entire form object used in yup validation, not just one input.\n values: TValue; // current values\n errors?: FormikErrors<TValue> | ArrayError<TValue>;\n}\n\ntype WithFormFieldProps<TProps, TValue> = TProps & FormFieldProps<TValue>;\n\ntype ValidationResult<T> = FormikErrors<T> | undefined;\n\n/**\n * This utility function is used for wrapping React components with form validation.\n * When used inside an Angular form, it sets the form to invalid if the component values are invalid.\n * This function registers two AngularJS components:\n * 1. The React component with r2a wrapping:\n * - `onChange` and `values` must be manually passed to the React component from an Angular view.\n * - `errors` will be automatically passed to the React component and updated by the validation component.\n * 2. An AngularJS component that handles form validation, based on a yup validation schema:\n * - `validationData` can optionally be passed to the React component from an Angular view, which can be used in validation.\n *\n * @example\n * // Usage in Angular view\n * <component\n * values=\"ctrl.values\"\n * on-change=\"ctrl.handleChange\"\n * validation-data=\"ctrl.validationData\">\n * </component>\n */\nexport function withFormValidation<TProps, TValue, TData = never>(\n ngModule: IModule,\n Component: ComponentType<WithFormFieldProps<TProps, TValue>>,\n componentName: string,\n propNames: PropNames<TProps>[],\n schemaBuilder: (validationData?: TData) => SchemaOf<TValue>,\n isPrimitive = false\n) {\n const reactComponentName = `react${_.upperFirst(componentName)}`;\n\n ngModule\n .component(\n reactComponentName,\n r2a(Component, ['errors', 'onChange', 'values', ...propNames])\n )\n .component(\n componentName,\n createFormValidationComponent(\n reactComponentName,\n propNames,\n schemaBuilder,\n isPrimitive\n )\n );\n}\n\nexport function createFormValidationComponent<TFormModel, TData = never>(\n componentName: string,\n propNames: Array<string>,\n schemaBuilder: (validationData?: TData) => SchemaOf<TFormModel>,\n isPrimitive = false\n): IComponentOptions {\n const kebabName = _.kebabCase(componentName);\n const propsWithErrors = [...propNames, 'errors', 'values'];\n\n return {\n template: `<ng-form name=\"$ctrl.form\">\n <${kebabName} ${propsWithErrors\n .filter((p) => p !== 'onChange')\n .map((p) => `${_.kebabCase(p)}=\"$ctrl.${p}\"`)\n .join(' ')}\n on-change=\"($ctrl.handleChange)\"\n ></${kebabName}>\n </ng-form>`,\n controller: createFormValidatorController(schemaBuilder, isPrimitive),\n bindings: Object.fromEntries(\n [...propsWithErrors, 'validationData', 'onChange'].map((p) => [p, '<'])\n ),\n };\n}\n\nfunction createFormValidatorController<TFormModel, TData = never>(\n schemaBuilder: (validationData?: TData) => SchemaOf<TFormModel>,\n isPrimitive = false\n) {\n return class FormValidatorController {\n errors?: FormikErrors<TFormModel>;\n\n $async: <T>(fn: () => Promise<T>) => Promise<T>;\n\n form?: IFormController;\n\n values?: TFormModel;\n\n validationData?: TData;\n\n onChange?: (value: TFormModel) => void;\n\n /* @ngInject */\n constructor($async: <T>(fn: () => Promise<T>) => Promise<T>) {\n this.$async = $async;\n\n this.handleChange = this.handleChange.bind(this);\n this.runValidation = this.runValidation.bind(this);\n }\n\n async handleChange(newValues: TFormModel) {\n return this.$async(async () => {\n this.onChange?.(newValues);\n await this.runValidation(newValues);\n });\n }\n\n async runValidation(value: TFormModel) {\n return this.$async(async () => {\n this.form?.$setValidity('form', true, this.form);\n\n const schema = schemaBuilder(this.validationData);\n this.errors = await validate<TFormModel>(schema, value, isPrimitive);\n\n if (this.errors && Object.keys(this.errors).length > 0) {\n this.form?.$setValidity('form', false, this.form);\n }\n });\n }\n\n async $onChanges(changes: {\n values?: { currentValue: TFormModel };\n validationData?: { currentValue: TData };\n }) {\n if (changes.values) {\n await this.runValidation(changes.values.currentValue);\n }\n // also run validation if validationData changes\n if (changes.validationData) {\n await this.runValidation(this.values!);\n }\n }\n };\n}\n\nasync function validate<TFormModel>(\n schema: SchemaOf<TFormModel>,\n value: TFormModel,\n isPrimitive: boolean\n): Promise<ValidationResult<TFormModel>> {\n if (isPrimitive) {\n const result = await validateForm<{ value: TFormModel }>(\n () => object({ value: schema }),\n { value }\n );\n return result?.value as ValidationResult<TFormModel>;\n }\n return validateForm<TFormModel>(() => schema, value);\n}\n","import { ComponentType } from 'react';\nimport { QueryClientProvider } from 'react-query';\n\nimport { queryClient as defaultQueryClient } from './react-query';\n\nexport function withReactQuery<T>(\n WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>,\n queryClient = defaultQueryClient\n): ComponentType<T & JSX.IntrinsicAttributes> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n return (\n <QueryClientProvider client={queryClient}>\n <WrappedComponent {...props} />\n </QueryClientProvider>\n );\n }\n\n WrapperComponent.displayName = `withReactQuery(${displayName})`;\n\n return WrapperComponent;\n}\n","import { ComponentType } from 'react';\nimport { UIRouterContextComponent } from '@uirouter/react-hybrid';\n\nexport function withUIRouter<T>(\n WrappedComponent: ComponentType<T>\n): ComponentType<T> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n return (\n <UIRouterContextComponent>\n <WrappedComponent {...props} />\n </UIRouterContextComponent>\n );\n }\n\n WrapperComponent.displayName = `withUIRouter(${displayName})`;\n\n return WrapperComponent;\n}\n","import { NumberSchema, number } from 'yup';\n\n/**\n * Returns a Yup schema for a number that can also be NaN.\n *\n * This function is a workaround for a known issue in Yup where it throws type errors\n * when the number input is empty, having a value NaN. Yup doesn't like NaN values.\n * More details can be found in these GitHub issues:\n * https://github.com/jquense/yup/issues/1330\n * https://github.com/jquense/yup/issues/211\n *\n * @param errorMessage The custom error message to display when the value is required.\n * @returns A Yup number schema with a custom type error message.\n */\nexport function nanNumberSchema(\n errorMessage = 'Value is required'\n): NumberSchema {\n return number().typeError(errorMessage);\n}\n","export function getSchemeFromPort(port?: number): 'http' | 'https' {\n if (!port) {\n return 'http';\n }\n\n const hostPort = String(port);\n return hostPort.endsWith('443') ? 'https' : 'http';\n}\n","/**\n * Type definition for the callback function used in processItemsInBatches.\n * It should accept an item from the array as its first argument\n * and additional arguments (if any) as its second argument, and should return a Promise.\n */\ntype ProcessItemsCallback<T, Args extends never[]> = (\n item: T,\n ...args: Args\n) => Promise<void>;\n\n/**\n * Asynchronously processes an array of items in batches.\n * @param items An array of items to be processed.\n * @param processor A callback function of type ProcessItemsCallback that will be called for each item in the array.\n * @param batchSize The maximum number of items to process in each batch. Defaults to 100 if not provided.\n * @param args Additional arguments to be passed to the callback function for each item.\n */\nexport async function processItemsInBatches<T, Args extends never[]>(\n items: T[],\n processor: ProcessItemsCallback<T, Args>,\n batchSize = 100,\n ...args: Args\n): Promise<void> {\n while (items.length) {\n const batch = items.splice(0, batchSize);\n const batchPromises = batch.map((item) => processor(item, ...args));\n\n await Promise.all(batchPromises);\n }\n}\n","/**\n * Compares two semver strings.\n *\n * returns:\n * - `-1` if `a < b`\n * - `0` if `a == b`\n * - `1` if `a > b`\n */\nexport function semverCompare(a: string, b: string) {\n if (a.startsWith(`${b}-`)) {\n return -1;\n }\n\n if (b.startsWith(`${a}-`)) {\n return 1;\n }\n\n return a.localeCompare(b, undefined, {\n numeric: true,\n sensitivity: 'case',\n caseFirst: 'upper',\n });\n}\n\nexport function isVersionSmaller(a: string, b: string) {\n return semverCompare(a, b) < 0;\n}\n","import { openSwitchPrompt } from '@@/modals/SwitchPrompt';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport async function confirmStackUpdate(\n message: string,\n defaultValue: boolean\n) {\n const result = await openSwitchPrompt(\n 'Are you sure?',\n 'Re-pull image and redeploy',\n {\n message,\n confirmButton: buildConfirmButton('Update'),\n modalType: ModalType.Warn,\n defaultValue,\n }\n );\n\n return result ? { pullImage: result.value } : undefined;\n}\n","import { ResourceControlResponse } from '@/react/portainer/access-control/types';\nimport {\n AutoUpdateResponse,\n RepoConfigResponse,\n} from '@/react/portainer/gitops/types';\n\nexport type StackId = number;\n\nexport enum StackType {\n /**\n * Represents a stack managed via docker stack\n */\n DockerSwarm = 1,\n /**\n * Represents a stack managed via docker-compose\n */\n DockerCompose,\n /**\n * Represents a stack managed via kubectl\n */\n Kubernetes,\n}\n\nexport enum StackStatus {\n Active = 1,\n Inactive,\n}\n\nexport interface Stack {\n Id: number;\n Name: string;\n Type: StackType;\n EndpointID: number;\n SwarmID: string;\n EntryPoint: string;\n Env: {\n name: string;\n value: string;\n }[];\n ResourceControl?: ResourceControlResponse;\n Status: StackStatus;\n ProjectPath: string;\n CreationDate: number;\n CreatedBy: string;\n UpdateDate: number;\n UpdatedBy: string;\n AdditionalFiles?: string[];\n AutoUpdate?: AutoUpdateResponse;\n Option?: {\n Prune: boolean;\n Force: boolean;\n };\n GitConfig?: RepoConfigResponse;\n FromAppTemplate: boolean;\n Namespace?: string;\n IsComposeFormat: boolean;\n Webhook?: string;\n SupportRelativePath: boolean;\n FilesystemPath: string;\n StackFileVersion: string;\n PreviousDeploymentInfo: unknown;\n}\n\nexport type StackFile = {\n StackFileContent: string;\n};\n","import clsx from 'clsx';\nimport { AlertCircle, AlertTriangle, CheckCircle, XCircle } from 'lucide-react';\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport { Icon } from '@@/Icon';\n\ntype AlertType = 'success' | 'error' | 'info' | 'warn';\n\nconst alertSettings: Record<\n AlertType,\n { container: string; header: string; body: string; icon: ReactNode }\n> = {\n success: {\n container:\n 'border-green-4 bg-green-2 th-dark:bg-green-3 th-dark:border-green-5',\n header: 'text-green-8',\n body: 'text-green-7',\n icon: CheckCircle,\n },\n error: {\n container:\n 'border-error-4 bg-error-2 th-dark:bg-error-3 th-dark:border-error-5',\n header: 'text-error-8',\n body: 'text-error-7',\n icon: XCircle,\n },\n info: {\n container:\n 'border-blue-4 bg-blue-2 th-dark:bg-blue-3 th-dark:border-blue-5',\n header: 'text-blue-8',\n body: 'text-blue-7',\n icon: AlertCircle,\n },\n warn: {\n container:\n 'border-warning-4 bg-warning-2 th-dark:bg-warning-3 th-dark:border-warning-5',\n header: 'text-warning-8',\n body: 'text-warning-7',\n icon: AlertTriangle,\n },\n};\n\nexport function Alert({\n color,\n title,\n className,\n children,\n}: PropsWithChildren<{\n color: AlertType;\n title?: string;\n className?: string;\n}>) {\n const { container, header, body, icon } = alertSettings[color];\n\n return (\n <AlertContainer className={clsx(container, className)}>\n {title ? (\n <>\n <AlertHeader className={header}>\n <Icon icon={icon} />\n {title}\n </AlertHeader>\n <AlertBody className={body} hasTitle={!!title}>\n {children}\n </AlertBody>\n </>\n ) : (\n <AlertBody\n className={clsx(body, 'flex items-start gap-2')}\n hasTitle={!!title}\n >\n <Icon icon={icon} className=\"!mt-0.5 flex-none\" /> {children}\n </AlertBody>\n )}\n </AlertContainer>\n );\n}\n\nfunction AlertContainer({\n className,\n children,\n}: PropsWithChildren<{ className?: string }>) {\n return (\n <div className={clsx('rounded-md border-2 border-solid', 'p-3', className)}>\n {children}\n </div>\n );\n}\n\nfunction AlertHeader({\n className,\n children,\n}: PropsWithChildren<{ className?: string }>) {\n return (\n <h4\n className={clsx(\n 'text-base',\n '!m-0 mb-2 flex items-center gap-2',\n className\n )}\n >\n {children}\n </h4>\n );\n}\n\nfunction AlertBody({\n className,\n hasTitle,\n children,\n}: PropsWithChildren<{ className?: string; hasTitle: boolean }>) {\n return (\n <div className={clsx('text-sm', className, { 'ml-6': hasTitle })}>\n {children}\n </div>\n );\n}\n","import { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\nimport { Briefcase } from 'lucide-react';\n\nimport './BEFeatureIndicator.css';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { Icon } from '@@/Icon';\n\nimport { getFeatureDetails } from './utils';\n\nexport interface Props {\n featureId?: FeatureId;\n showIcon?: boolean;\n className?: string;\n}\n\nexport function BEFeatureIndicator({\n featureId,\n children,\n showIcon = true,\n className = '',\n}: PropsWithChildren<Props>) {\n const { url, limitedToBE } = getFeatureDetails(featureId);\n\n if (!limitedToBE) {\n return null;\n }\n return (\n <a\n className={clsx('be-indicator vertical-center text-xs', className)}\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children}\n {showIcon && <Icon icon={Briefcase} className=\"be-indicator-icon mr-1\" />}\n <span className=\"be-indicator-label break-words\">Business Feature</span>\n </a>\n );\n}\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nconst BE_URL = 'https://www.portainer.io/business-upsell?from=';\n\nexport function getFeatureDetails(featureId?: FeatureId) {\n if (!featureId) {\n return {};\n }\n const url = `${BE_URL}${featureId}`;\n\n const limitedToBE = isLimitedToBE(featureId);\n\n return { url, limitedToBE };\n}\n","import { Briefcase } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { Button } from '@@/buttons';\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\ninterface Props {\n featureId: FeatureId;\n heading: string;\n message: string;\n buttonText: string;\n className?: string;\n buttonClassName?: string;\n}\n\nexport function BETeaserButton({\n featureId,\n heading,\n message,\n buttonText,\n className,\n buttonClassName,\n}: Props) {\n return (\n <TooltipWithChildren\n className={className}\n heading={heading}\n BEFeatureID={featureId}\n message={message}\n >\n <span>\n <Button\n className={buttonClassName}\n icon={Briefcase}\n type=\"button\"\n color=\"default\"\n size=\"small\"\n onClick={() => {}}\n disabled\n >\n {buttonText}\n </Button>\n </span>\n </TooltipWithChildren>\n );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport type BadgeType =\n | 'success'\n | 'danger'\n | 'warn'\n | 'info'\n | 'successSecondary'\n | 'dangerSecondary'\n | 'warnSecondary'\n | 'infoSecondary';\n\n// the classes are typed in full because tailwind doesn't render the interpolated classes\nconst typeClasses: Record<BadgeType, string> = {\n success: clsx(\n `text-success-9 bg-success-2`,\n `th-dark:text-success-3 th-dark:bg-success-10`,\n `th-highcontrast:text-success-3 th-highcontrast:bg-success-10`\n ),\n warn: clsx(\n `text-warning-9 bg-warning-2`,\n `th-dark:text-warning-3 th-dark:bg-warning-10`,\n `th-highcontrast:text-warning-3 th-highcontrast:bg-warning-10`\n ),\n danger: clsx(\n `text-error-9 bg-error-2`,\n `th-dark:text-error-3 th-dark:bg-error-10`,\n `th-highcontrast:text-error-3 th-highcontrast:bg-error-10`\n ),\n info: clsx(\n `text-blue-9 bg-blue-2`,\n `th-dark:text-blue-3 th-dark:bg-blue-10`,\n `th-highcontrast:text-blue-3 th-highcontrast:bg-blue-10`\n ),\n // the secondary classes are a bit darker in light mode and a bit lighter in dark mode\n successSecondary: clsx(\n `text-success-9 bg-success-3`,\n `th-dark:text-success-3 th-dark:bg-success-9`,\n `th-highcontrast:text-success-3 th-highcontrast:bg-success-9`\n ),\n warnSecondary: clsx(\n `text-warning-9 bg-warning-3`,\n `th-dark:text-warning-3 th-dark:bg-warning-9`,\n `th-highcontrast:text-warning-3 th-highcontrast:bg-warning-9`\n ),\n dangerSecondary: clsx(\n `text-error-9 bg-error-3`,\n `th-dark:text-error-3 th-dark:bg-error-9`,\n `th-highcontrast:text-error-3 th-highcontrast:bg-error-9`\n ),\n infoSecondary: clsx(\n `text-blue-9 bg-blue-3`,\n `th-dark:text-blue-3 th-dark:bg-blue-9`,\n `th-highcontrast:text-blue-3 th-highcontrast:bg-blue-9`\n ),\n};\n\nexport interface Props {\n type?: BadgeType;\n className?: string;\n}\n\n// this component is used in tables and lists in portainer. It looks like this:\n// https://www.figma.com/file/g5TUMngrblkXM7NHSyQsD1/New-UI?node-id=76%3A2\nexport function Badge({\n type = 'info',\n className,\n children,\n}: PropsWithChildren<Props>) {\n const baseClasses =\n 'inline-flex w-fit items-center !text-xs font-medium rounded-full px-2 py-0.5';\n\n return (\n <span\n className={clsx(baseClasses, typeClasses[type], className)}\n role=\"status\"\n >\n {children}\n </span>\n );\n}\n","import clsx from 'clsx';\n\nimport { Icon, IconProps } from '@@/Icon';\n\nexport type BadgeSize = 'md' | 'lg' | 'xl' | '2xl' | '3xl';\n\nexport interface Props extends IconProps {\n size?: BadgeSize;\n}\n\nexport function BadgeIcon({ icon, size = '3xl', iconClass }: Props) {\n const sizeClasses = iconSizeToClasses(size);\n return (\n <div\n className={clsx(\n sizeClasses,\n `badge-icon\n inline-flex items-center\n justify-center rounded-full\n bg-blue-3\n text-blue-8 th-dark:bg-gray-9 th-dark:text-blue-3\n `\n )}\n >\n <Icon icon={icon} className={clsx('!flex', iconClass)} />\n </div>\n );\n}\n\nfunction iconSizeToClasses(size: BadgeSize) {\n switch (size) {\n case 'md':\n return 'h-6 w-6 text-md';\n case 'lg':\n return 'h-8 w-8 text-lg';\n case 'xl':\n return 'h-10 w-10 text-xl';\n case '2xl':\n return 'h-12 w-12 text-2xl';\n case '3xl':\n return 'h-14 w-14 text-3xl';\n default:\n return 'h-14 w-14 text-3xl';\n }\n}\n","import clsx from 'clsx';\nimport { ComponentProps, ComponentType, ElementType } from 'react';\n\nexport type AsComponentProps<E extends ElementType = ElementType> =\n ComponentProps<E> & {\n as?: E;\n };\n\nexport function BlocklistItem<T extends ElementType>({\n className,\n isSelected,\n children,\n as = 'button',\n ...props\n}: AsComponentProps & {\n isSelected?: boolean;\n as?: ComponentType<T>;\n}) {\n const Component = as as 'button';\n\n return (\n <Component\n type=\"button\"\n className={clsx(\n className,\n 'blocklist-item flex items-stretch overflow-hidden bg-transparent w-full !ml-0 no-link text-left',\n {\n 'blocklist-item--selected': isSelected,\n }\n )}\n role=\"listitem\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {children}\n </Component>\n );\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHelm = function SvgHelm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"currentColor\",\n viewBox: \"-2 -2 28 28\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.651 19.252c.704 1.005.96 2.039.573 2.31-.387.271-1.271-.324-1.975-1.329a5.039 5.039 0 0 1-.584-1.082 8.572 8.572 0 0 1-3.898 1.4c.081.34.13.737.13 1.166 0 1.227-.383 2.221-.856 2.221s-.856-.994-.856-2.221c0-.42.047-.807.125-1.142a8.568 8.568 0 0 1-3.944-1.284c-.127.301-.3.621-.524.942-.704 1.005-1.588 1.6-1.975 1.329-.387-.271-.131-1.305.573-2.31a5.12 5.12 0 0 1 .743-.85 8.53 8.53 0 0 1-1.309-1.479l1.124-.782a7.2 7.2 0 0 0 5.908 3.088 7.2 7.2 0 0 0 5.916-3.098l1.125.78a8.567 8.567 0 0 1-1.183 1.366c.296.241.605.573.887.975zM6.277 5.623A8.587 8.587 0 0 0 4.711 7.43l1.15.743a7.17 7.17 0 0 1 6.046-3.293 7.144 7.144 0 0 1 6.151 3.461l1.17-.711a8.658 8.658 0 0 0-1.56-1.895c.324-.245.671-.603.983-1.049.704-1.005.96-2.039.573-2.31-.387-.271-1.271.324-1.975 1.329-.294.419-.504.84-.627 1.212a8.488 8.488 0 0 0-3.9-1.364c.108-.372.175-.83.175-1.333 0-1.226-.383-2.22-.856-2.22s-.856.994-.856 2.221c0 .491.063.941.167 1.308a8.521 8.521 0 0 0-3.93 1.247 4.991 4.991 0 0 0-.58-1.071C6.139 2.7 5.255 2.106 4.868 2.377c-.387.271-.131 1.305.573 2.31.265.378.556.698.836.936zM.5 15.272h1.648V12.8h1.859v2.473h1.648v-6.23H4.008v2.319h-1.86V9.043H.5v6.229zm6.536-6.229v6.229h4.121v-1.38H8.684V12.78h2.032V11.4H8.684v-.978h2.377v-1.38l-4.025.001zm5.328 0v6.229h4.006v-1.38h-2.358V9.043h-1.648zm5.079 0v6.229h1.514v-1.84c0-.16-.008-.335-.024-.527a53.436 53.436 0 0 0-.053-.589 16.516 16.516 0 0 0-.067-.589 46.795 46.795 0 0 1-.067-.517h.038l.498 1.457.863 2.099h.613l.862-2.099.517-1.457h.038l-.067.518c-.026.192-.048.388-.067.589-.019.201-.037.398-.053.589a6.375 6.375 0 0 0-.024.527v1.84H23.5v-6.23h-1.706l-.939 2.588-.345 1.016h-.038l-.345-1.016-.978-2.588h-1.706z\"\n })));\n};\nexport default SvgHelm;","import { Edit, FileText, Globe, UploadCloud } from 'lucide-react';\n\nimport GitIcon from '@/assets/ico/git.svg?c';\nimport Helm from '@/assets/ico/helm.svg?c';\n\nimport { BoxSelectorOption } from '../types';\n\nexport const editor: BoxSelectorOption<'editor'> = {\n id: 'method_editor',\n icon: Edit,\n iconType: 'badge',\n label: 'Web editor',\n value: 'editor',\n};\n\nexport const upload: BoxSelectorOption<'upload'> = {\n id: 'method_upload',\n icon: UploadCloud,\n iconType: 'badge',\n label: 'Upload',\n value: 'upload',\n};\n\nexport const git: BoxSelectorOption<'repository'> = {\n id: 'method_repository',\n icon: GitIcon,\n iconType: 'logo',\n label: 'Repository',\n value: 'repository',\n};\n\nexport const edgeStackTemplate: BoxSelectorOption<'template'> = {\n id: 'method_template',\n icon: FileText,\n iconType: 'badge',\n label: 'Template',\n description: 'Use an Edge stack app or custom template',\n value: 'template',\n};\n\nexport const customTemplate: BoxSelectorOption<'template'> = {\n id: 'method_template',\n icon: FileText,\n iconType: 'badge',\n label: 'Custom template',\n value: 'template',\n};\n\nexport const helm: BoxSelectorOption<'helm'> = {\n id: 'method_helm',\n icon: Helm,\n label: 'Helm chart',\n value: 'helm',\n iconClass: '!text-[#0f1689] th-dark:!text-white th-highcontrast:!text-white',\n};\n\nexport const url: BoxSelectorOption<'url'> = {\n id: 'method_url',\n icon: Globe,\n iconType: 'badge',\n label: 'URL',\n value: 'url',\n};\n","import Kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport DockerCompose from '@/assets/ico/vendor/docker-compose.svg?c';\n\nimport { BoxSelectorOption } from '../types';\n\nexport const kubernetes: BoxSelectorOption<'kubernetes'> = {\n id: 'method_kubernetes',\n icon: Kubernetes,\n label: 'Kubernetes',\n description: 'Kubernetes manifest format',\n value: 'kubernetes',\n iconType: 'logo',\n};\n\nexport const compose: BoxSelectorOption<'compose'> = {\n id: 'method_compose',\n icon: DockerCompose,\n label: 'Compose',\n description: 'docker-compose format',\n value: 'compose',\n iconType: 'logo',\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-BoxSelector-BoxSelector-module__root\"};","// extracted by mini-css-extract-plugin\nexport default {\"boxSelectorItem\":\"app-react-components-BoxSelector-BoxSelectorItem-module__box-selector-item\",\"header\":\"app-react-components-BoxSelector-BoxSelectorItem-module__header\",\"imageContainer\":\"app-react-components-BoxSelector-BoxSelectorItem-module__image-container\",\"icon\":\"app-react-components-BoxSelector-BoxSelectorItem-module__icon\",\"slim\":\"app-react-components-BoxSelector-BoxSelectorItem-module__slim\",\"content\":\"app-react-components-BoxSelector-BoxSelectorItem-module__content\",\"limited\":\"app-react-components-BoxSelector-BoxSelectorItem-module__limited\",\"business\":\"app-react-components-BoxSelector-BoxSelectorItem-module__business\"};","import { Briefcase } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\ninterface Props {\n url?: string;\n showTooltip?: boolean;\n}\n\nexport function LimitedToBeBoxSelectorIndicator({\n url,\n showTooltip = true,\n}: Props) {\n return (\n <div className=\"absolute left-0 top-0 w-full\">\n <div className=\"mx-auto flex max-w-fit items-center rounded-b-lg border border-t-0 border-solid border-gray-6 bg-transparent px-3 py-1 text-gray-6\">\n <a\n className=\"inline-flex items-center text-xs text-gray-6\"\n href={url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Icon icon={Briefcase} className=\"!mr-1\" />\n <span>Business Feature</span>\n </a>\n {showTooltip && (\n <Tooltip\n size=\"sm\"\n message=\"Select this option to preview this business feature.\"\n />\n )}\n </div>\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-BoxSelector-BoxOption-module__root\"};","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\nimport type { Icon } from 'lucide-react';\n\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\nimport styles from './BoxOption.module.css';\nimport { BoxSelectorOption, Value } from './types';\n\ninterface Props<T extends Value> {\n radioName: string;\n option: BoxSelectorOption<T>;\n onSelect?(value: T): void;\n isSelected(value: T): boolean;\n disabled?: boolean;\n tooltip?: string;\n className?: string;\n type?: 'radio' | 'checkbox';\n checkIcon: Icon;\n}\n\nexport function BoxOption<T extends Value>({\n radioName,\n option,\n onSelect = () => {},\n isSelected,\n disabled,\n tooltip,\n className,\n type = 'radio',\n children,\n checkIcon: Check,\n}: PropsWithChildren<Props<T>>) {\n const selected = isSelected(option.value);\n\n const item = (\n <div className={clsx(styles.root, className)}>\n <input\n type={type}\n name={radioName}\n id={option.id}\n checked={selected}\n value={option.value.toString()}\n disabled={disabled}\n onChange={() => onSelect(option.value)}\n />\n\n <label htmlFor={option.id} data-cy={`${radioName}_${option.value}`}>\n {children}\n\n {!disabled && (\n <div\n className={clsx(\n 'absolute right-4 top-4 flex h-4 w-4 items-center justify-center border border-solid font-bold text-white',\n {\n 'border-gray-6 bg-white': !selected,\n 'border-blue-8 bg-blue-8': selected,\n },\n {\n 'rounded-full': type === 'radio',\n 'rounded-sm': type === 'checkbox',\n }\n )}\n >\n {selected && <Check className=\"lucide\" strokeWidth={3} />}\n </div>\n )}\n </label>\n </div>\n );\n\n if (tooltip) {\n return <TooltipWithChildren message={tooltip}>{item}</TooltipWithChildren>;\n }\n\n return item;\n}\n","import clsx from 'clsx';\n\nimport { Icon, IconProps } from '@@/Icon';\n\ntype Props = IconProps;\n\nexport function LogoIcon({ icon, iconClass }: Props) {\n return (\n <div\n className={`\n inline-flex h-14 w-14\n items-center justify-center text-7xl\n`}\n >\n <Icon icon={icon} className={clsx('!flex', iconClass)} />\n </div>\n );\n}\n","import clsx from 'clsx';\nimport { Icon as ReactFeatherComponentType, Check } from 'lucide-react';\nimport { Fragment } from 'react';\n\nimport { Icon } from '@/react/components/Icon';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\nimport { getFeatureDetails } from '@@/BEFeatureIndicator/utils';\n\nimport styles from './BoxSelectorItem.module.css';\nimport { BoxSelectorOption, Value } from './types';\nimport { LimitedToBeBoxSelectorIndicator } from './LimitedToBeBoxSelectorIndicator';\nimport { BoxOption } from './BoxOption';\nimport { LogoIcon } from './LogoIcon';\n\ntype Props<T extends Value> = {\n option: BoxSelectorOption<T>;\n radioName: string;\n disabled?: boolean;\n tooltip?: string;\n onSelect(value: T, limitedToBE: boolean): void;\n isSelected(value: T): boolean;\n type?: 'radio' | 'checkbox';\n slim?: boolean;\n checkIcon?: ReactFeatherComponentType;\n};\n\nexport function BoxSelectorItem<T extends Value>({\n radioName,\n option,\n onSelect = () => {},\n disabled,\n tooltip,\n type = 'radio',\n isSelected,\n slim = false,\n checkIcon = Check,\n}: Props<T>) {\n const { limitedToBE = false, url: featureUrl } = getFeatureDetails(\n option.feature\n );\n\n const ContentBox = slim ? 'div' : Fragment;\n\n return (\n <BoxOption\n className={clsx(styles.boxSelectorItem, {\n [styles.business]: limitedToBE,\n [styles.limited]: limitedToBE,\n })}\n radioName={radioName}\n option={option}\n isSelected={isSelected}\n disabled={isDisabled()}\n onSelect={(value) => onSelect(value, limitedToBE)}\n tooltip={tooltip}\n type={type}\n checkIcon={checkIcon}\n >\n {limitedToBE && (\n <LimitedToBeBoxSelectorIndicator\n url={featureUrl}\n // show tooltip only for radio type options because be-only checkbox options can't be selected\n showTooltip={type === 'radio'}\n />\n )}\n <div\n className={clsx('flex min-w-[140px] gap-2', {\n 'opacity-30': limitedToBE,\n 'h-full flex-col justify-start': !slim,\n 'slim items-center': slim,\n })}\n >\n <div className={clsx(styles.imageContainer, 'flex items-start')}>\n {renderIcon()}\n </div>\n <ContentBox>\n <div className={styles.header}>{option.label}</div>\n <p className=\"mb-0\">{option.description}</p>\n </ContentBox>\n </div>\n </BoxOption>\n );\n\n function isDisabled() {\n return disabled || (limitedToBE && option.disabledWhenLimited);\n }\n\n function renderIcon() {\n if (!option.icon) {\n return null;\n }\n\n if (option.iconType === 'badge') {\n return <BadgeIcon icon={option.icon} iconClass={option.iconClass} />;\n }\n\n if (option.iconType === 'raw') {\n return (\n <Icon\n icon={option.icon}\n className={clsx(styles.icon, option.iconClass, '!flex items-center')}\n />\n );\n }\n\n return <LogoIcon icon={option.icon} iconClass={option.iconClass} />;\n }\n}\n","import styles from './BoxSelector.module.css';\nimport { BoxSelectorItem } from './BoxSelectorItem';\nimport { BoxSelectorOption, Value } from './types';\n\ninterface IsMultiProps<T extends Value> {\n isMulti: true;\n value: T[];\n onChange(value: T[], limitedToBE: boolean): void;\n}\n\ninterface SingleProps<T extends Value> {\n isMulti?: never;\n value: T;\n onChange(value: T, limitedToBE: boolean): void;\n}\n\ntype Union<T extends Value> = IsMultiProps<T> | SingleProps<T>;\n\nexport type Props<T extends Value> = Union<T> & {\n radioName: string;\n options: ReadonlyArray<BoxSelectorOption<T>> | Array<BoxSelectorOption<T>>;\n slim?: boolean;\n hiddenSpacingCount?: number;\n};\n\nexport function BoxSelector<T extends Value>({\n radioName,\n options,\n slim = false,\n hiddenSpacingCount,\n ...props\n}: Props<T>) {\n return (\n <div className='form-group after:clear-both after:table after:content-[\"\"]'>\n <div className=\"col-sm-12\">\n <div className={styles.root} role=\"radiogroup\">\n {options\n .filter((option) => !option.hide)\n .map((option) => (\n <BoxSelectorItem\n key={option.id}\n radioName={radioName}\n option={option}\n onSelect={handleSelect}\n disabled={option.disabled && option.disabled()}\n tooltip={option.tooltip && option.tooltip()}\n type={props.isMulti ? 'checkbox' : 'radio'}\n isSelected={isSelected}\n slim={slim}\n />\n ))}\n {hiddenSpacingCount &&\n Array.from(Array(hiddenSpacingCount)).map((_, index) => (\n <div key={index} className=\"flex-1\" />\n ))}\n </div>\n </div>\n </div>\n );\n\n function handleSelect(optionValue: T, limitedToBE: boolean) {\n if (props.isMulti) {\n const newValue = isSelected(optionValue)\n ? props.value.filter((v) => v !== optionValue)\n : [...props.value, optionValue];\n props.onChange(newValue, limitedToBE);\n return;\n }\n\n if (isSelected(optionValue)) {\n return;\n }\n\n props.onChange(optionValue, limitedToBE);\n }\n\n function isSelected(optionValue: T) {\n if (props.isMulti) {\n return props.value.includes(optionValue);\n }\n\n return props.value === optionValue;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"code\":\"app-react-components-Code-Code-module__code\",\"root\":\"app-react-components-Code-Code-module__root\",\"copyButton\":\"app-react-components-Code-Code-module__copy-button\"};","import { Check, Copy } from 'lucide-react';\n\nimport { Button } from '@@/buttons';\nimport { useCopy } from '@@/buttons/CopyButton/useCopy';\nimport { Icon } from '@@/Icon';\n\nimport styles from './Code.module.css';\n\ninterface Props {\n showCopyButton?: boolean;\n children: string;\n}\n\nexport function Code({ children, showCopyButton }: Props) {\n const { handleCopy, copiedSuccessfully } = useCopy(children);\n\n return (\n <div className={styles.root}>\n <code className={styles.code}>{children}</code>\n\n {showCopyButton && (\n <Button color=\"link\" className={styles.copyButton} onClick={handleCopy}>\n <Icon\n icon={copiedSuccessfully ? Check : Copy}\n className=\"!ml-1\"\n mode={copiedSuccessfully ? 'success' : undefined}\n />\n </Button>\n )}\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-CodeEditor-module__root\"};","import CodeMirror from '@uiw/react-codemirror';\nimport { StreamLanguage, LanguageSupport } from '@codemirror/language';\nimport { yaml } from '@codemirror/legacy-modes/mode/yaml';\nimport { dockerFile } from '@codemirror/legacy-modes/mode/dockerfile';\nimport { shell } from '@codemirror/legacy-modes/mode/shell';\nimport { useMemo } from 'react';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { tags as highlightTags } from '@lezer/highlight';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\n\nimport styles from './CodeEditor.module.css';\nimport { TextTip } from './Tip/TextTip';\n\ninterface Props {\n id: string;\n placeholder?: string;\n yaml?: boolean;\n dockerFile?: boolean;\n shell?: boolean;\n readonly?: boolean;\n onChange: (value: string) => void;\n value: string;\n height?: string;\n}\n\nconst theme = createTheme({\n theme: 'light',\n settings: {\n background: 'var(--bg-codemirror-color)',\n foreground: 'var(--text-codemirror-color)',\n caret: 'var(--border-codemirror-cursor-color)',\n selection: 'var(--bg-codemirror-selected-color)',\n selectionMatch: 'var(--bg-codemirror-selected-color)',\n gutterBackground: 'var(--bg-codemirror-gutters-color)',\n },\n styles: [\n { tag: highlightTags.atom, color: 'var(--text-cm-default-color)' },\n { tag: highlightTags.meta, color: 'var(--text-cm-meta-color)' },\n {\n tag: [highlightTags.string, highlightTags.special(highlightTags.brace)],\n color: 'var(--text-cm-string-color)',\n },\n { tag: highlightTags.number, color: 'var(--text-cm-number-color)' },\n { tag: highlightTags.keyword, color: 'var(--text-cm-keyword-color)' },\n { tag: highlightTags.comment, color: 'var(--text-cm-comment-color)' },\n {\n tag: highlightTags.variableName,\n color: 'var(--text-cm-variable-name-color)',\n },\n ],\n});\n\nconst yamlLanguage = new LanguageSupport(StreamLanguage.define(yaml));\nconst dockerFileLanguage = new LanguageSupport(\n StreamLanguage.define(dockerFile)\n);\nconst shellLanguage = new LanguageSupport(StreamLanguage.define(shell));\n\nexport function CodeEditor({\n id,\n onChange,\n placeholder,\n readonly,\n value,\n height = '500px',\n yaml: isYaml,\n dockerFile: isDockerFile,\n shell: isShell,\n}: Props) {\n const extensions = useMemo(() => {\n const extensions = [];\n if (isYaml) {\n extensions.push(yamlLanguage);\n }\n if (isDockerFile) {\n extensions.push(dockerFileLanguage);\n }\n if (isShell) {\n extensions.push(shellLanguage);\n }\n return extensions;\n }, [isYaml, isDockerFile, isShell]);\n\n return (\n <>\n <div className=\"mb-2 flex items-center justify-between\">\n <div className=\"flex flex-1 items-center\">\n {!!placeholder && <TextTip color=\"blue\">{placeholder}</TextTip>}\n </div>\n\n <CopyButton\n fadeDelay={2500}\n copyText={value}\n color=\"link\"\n className=\"!pr-0 !text-sm !font-medium hover:no-underline focus:no-underline\"\n indicatorPosition=\"left\"\n >\n Copy to clipboard\n </CopyButton>\n </div>\n <CodeMirror\n className={styles.root}\n theme={theme}\n value={value}\n onChange={onChange}\n readOnly={readonly}\n id={id}\n extensions={extensions}\n height={height}\n basicSetup={{\n highlightSelectionMatches: false,\n autocompletion: false,\n }}\n />\n </>\n );\n}\n","import { PropsWithChildren } from 'react';\n\nexport function DashboardGrid({ children }: PropsWithChildren<unknown>) {\n return <div className=\"grid grid-cols-2 gap-3\">{children}</div>;\n}\n","import { ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { Loader2 } from 'lucide-react';\n\nimport { Icon, IconProps } from '@/react/components/Icon';\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { Link } from '@@/Link';\n\ninterface Props extends IconProps {\n type: string;\n pluralType?: string; // in case the pluralise function isn't suitable\n isLoading?: boolean;\n isRefetching?: boolean;\n value?: number;\n to?: string;\n params?: object;\n children?: ReactNode;\n dataCy?: string;\n}\n\nexport function DashboardItem({\n icon,\n type,\n pluralType,\n isLoading,\n isRefetching,\n value,\n to,\n params,\n children,\n dataCy,\n}: Props) {\n const Item = (\n <div\n className={clsx(\n 'relative rounded-lg border border-solid p-3',\n 'border-gray-5 bg-gray-2 hover:border-blue-7 hover:bg-blue-2',\n 'th-dark:border-gray-neutral-8 th-dark:bg-gray-iron-10 th-dark:hover:border-blue-8 th-dark:hover:bg-gray-10',\n 'th-highcontrast:border-white th-highcontrast:bg-black th-highcontrast:hover:border-blue-8 th-highcontrast:hover:bg-gray-11'\n )}\n data-cy={dataCy}\n >\n <div\n className={clsx(\n 'text-muted absolute right-2 top-2 flex items-center text-xs transition-opacity',\n isRefetching ? 'opacity-100' : 'opacity-0'\n )}\n >\n Refreshing total\n <Loader2 className=\"h-4 animate-spin-slow\" />\n </div>\n <div\n className={clsx(\n 'text-muted absolute right-2 top-2 flex items-center text-xs transition-opacity',\n isLoading ? 'opacity-100' : 'opacity-0'\n )}\n >\n Loading total\n <Loader2 className=\"h-4 animate-spin-slow\" />\n </div>\n <div className=\"flex items-center\" aria-label={type}>\n <div\n className={clsx(\n 'icon-badge mr-4 !p-2 text-2xl',\n 'bg-blue-3 text-blue-8',\n 'th-dark:bg-blue-3 th-dark:text-blue-8',\n 'th-highcontrast:bg-blue-3 th-highcontrast:text-blue-8'\n )}\n >\n <Icon icon={icon} />\n </div>\n\n <div className=\"flex flex-col justify-around\">\n <div\n className={clsx(\n 'text-2xl font-medium',\n 'text-gray-9',\n 'th-dark:text-white',\n 'th-highcontrast:text-white'\n )}\n aria-label=\"value\"\n >\n {typeof value === 'undefined' ? '-' : value}\n </div>\n <div\n className={clsx(\n 'text-xl',\n 'text-gray-7',\n 'th-dark:text-gray-warm-5',\n 'th-highcontrast:text-gray-warm-5'\n )}\n aria-label=\"resourceType\"\n >\n {pluralize(value || 0, type, pluralType)}\n </div>\n </div>\n\n <div className=\"ml-auto\">{children}</div>\n </div>\n </div>\n );\n\n if (to) {\n return (\n <Link to={to} className=\"!no-underline\" params={params}>\n {Item}\n </Link>\n );\n }\n return Item;\n}\n","import { DetailsTable as MainComponent } from './DetailsTable';\nimport { DetailsRow } from './DetailsRow';\n\ninterface DetailsTableSubcomponents {\n Row: typeof DetailsRow;\n}\n\nconst DetailsTable = MainComponent as typeof MainComponent &\n DetailsTableSubcomponents;\n\nDetailsTable.Row = DetailsRow;\n\nexport { DetailsTable };\n","import clsx from 'clsx';\nimport { Children, PropsWithChildren } from 'react';\n\ntype Props = {\n headers?: string[];\n dataCy?: string;\n className?: string;\n emptyMessage?: string;\n};\n\nexport function DetailsTable({\n headers = [],\n dataCy,\n className,\n emptyMessage,\n children,\n}: PropsWithChildren<Props>) {\n return (\n <table className={clsx('table', className)} data-cy={dataCy}>\n {headers.length > 0 && (\n <thead>\n <tr>\n {headers.map((header) => (\n <th key={header}>{header}</th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {Children.count(children) > 0 ? (\n children\n ) : (\n <tr>\n <td colSpan={headers.length} className=\"text-muted text-center\">\n {emptyMessage}\n </td>\n </tr>\n )}\n </tbody>\n </table>\n );\n}\n","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\ninterface Props {\n children: ReactNode;\n label: string;\n colClassName?: string;\n className?: string;\n columns?: Array<ReactNode>;\n}\n\nexport function DetailsRow({\n label,\n children,\n colClassName,\n className,\n columns,\n}: Props) {\n return (\n <tr className={className}>\n <td className={clsx(colClassName, 'min-w-[150px] !break-normal')}>\n {label}\n </td>\n <td className={colClassName} data-cy={`detailsTable-${label}Value`}>\n {children}\n </td>\n {columns?.map((column, index) => (\n <td key={index} className={colClassName}>\n {column}\n </td>\n ))}\n </tr>\n );\n}\n","import { ReactNode, useEffect, useState } from 'react';\n\ninterface Props {\n // props for the image to load\n src?: string; // a link to an external image\n fallbackIcon: ReactNode;\n alt?: string;\n className?: string;\n}\n\nexport function FallbackImage({ src, fallbackIcon, alt, className }: Props) {\n const [error, setError] = useState(false);\n\n useEffect(() => {\n setError(false);\n }, [src]);\n\n if (!error && src) {\n return (\n <img\n className={className}\n src={src}\n alt={alt}\n onError={() => setError(true)}\n />\n );\n }\n\n // fallback icon if there is an error loading the image\n return <>{fallbackIcon}</>;\n}\n","import { ReactNode } from 'react';\n\nimport { useDocsUrl } from '../PageHeader/ContextHelp/ContextHelp';\n\ntype HelpLinkProps = {\n docLink: string;\n target?: string;\n children?: ReactNode;\n};\n\nexport function HelpLink({\n docLink,\n target = '_blank',\n children,\n}: HelpLinkProps) {\n const docsUrl = useDocsUrl(docLink);\n\n return (\n <a href={docsUrl} target={target} rel=\"noopener noreferrer\">\n {children}\n </a>\n );\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDataflow1 = function SvgDataflow1(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M17 20h-.2c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C12 17.72 12 16.88 12 15.2V8.8c0-1.68 0-2.52.327-3.162a3 3 0 0 1 1.311-1.311C14.28 4 15.12 4 16.8 4h.2m0 16a2 2 0 1 0 4 0 2 2 0 0 0-4 0Zm0-16a2 2 0 1 0 4 0 2 2 0 0 0-4 0ZM7 12h10M7 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm10 0a2 2 0 1 0 4 0 2 2 0 0 0-4 0Z\"\n })));\n};\nexport default SvgDataflow1;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgRestoreWindow = function SvgRestoreWindow(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M10.5 2.003c-.675.009-1.08.048-1.408.215a2 2 0 0 0-.874.874c-.167.328-.206.733-.215 1.408M19.5 2.003c.675.009 1.08.048 1.408.215a2 2 0 0 1 .874.874c.167.328.206.733.215 1.408m0 9c-.009.675-.048 1.08-.215 1.408a2 2 0 0 1-.874.874c-.328.167-.733.206-1.408.215M22 8v2m-8-8h2M5.2 22h7.6c1.12 0 1.68 0 2.108-.218a2 2 0 0 0 .874-.874C16 20.48 16 19.92 16 18.8v-7.6c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874C14.48 8 13.92 8 12.8 8H5.2c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874C2 9.52 2 10.08 2 11.2v7.6c0 1.12 0 1.68.218 2.108a2 2 0 0 0 .874.874C3.52 22 4.08 22 5.2 22Z\"\n })));\n};\nexport default SvgRestoreWindow;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSort = function SvgSort(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M17 4v16m0 0-4-4m4 4 4-4M7 20V4m0 0L3 8m4-4 4 4\"\n })));\n};\nexport default SvgSort;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgPlaceholder = function SvgPlaceholder(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.3,\n d: \"M23.419 11.65a.43.43 0 0 0-.29-.218l-2.37-.604a.463.463 0 0 0-.58.362l-.532 2.152-2.055-.508-.096-.024a.608.608 0 0 0-.363.048.43.43 0 0 0-.217.29l-.532 2.152-2.152-.532a.463.463 0 0 0-.58.363l-.58 2.127-2.152-.532a.608.608 0 0 0-.363.049.431.431 0 0 0-.218.29l-.048.193-.556 2.273a.463.463 0 0 0 .363.58l9.38 2.345c.12.024.217.048.338.048.605 0 1.16-.41 1.306-1.015l2.37-9.477a.498.498 0 0 0-.073-.363Zm-8.97 4.157 2.104.532c.12.049.29.025.41-.048a.45.45 0 0 0 .218-.363l.412-1.668 1.353 1.79-.677 2.707-4.303-1.088.484-1.862Zm5.73 5.44a.382.382 0 0 1-.46.29l-8.92-2.224.338-1.33 7.398 1.862c.024 0 .073.024.097.024h.024c.024 0 .049 0 .097-.024h.024c.048 0 .073-.024.097-.048a.43.43 0 0 0 .217-.29l.846-3.41a.602.602 0 0 0-.072-.41L18.68 14.14l1.16.29a.463.463 0 0 0 .58-.363l.533-2.152 1.45.363-2.224 8.969ZM10.291 15.71a.485.485 0 0 0 .484-.483v-2.224h2.2a.485.485 0 0 0 .483-.483v-2.2h2.2a.485.485 0 0 0 .484-.483V7.613h1.982a.485.485 0 0 0 .483-.484V2.85c0-.749-.604-1.353-1.354-1.353h-15.4C1.105 1.496.5 2.1.5 2.85v14.07c0 .75.604 1.354 1.354 1.354h5.73a.485.485 0 0 0 .483-.483v-2.055l2.224-.025Zm2.2-3.674h-2.2a.485.485 0 0 0-.483.484v2.224H3.837v-1.475l1.885-1.427 1.644.943a.515.515 0 0 0 .58-.072L11.55 9.23l.943.75v2.055ZM7.1 17.282H1.854a.382.382 0 0 1-.387-.387V2.85c0-.218.17-.387.387-.387h15.4c.217 0 .386.17.386.387v3.82h-1.958a.485.485 0 0 0-.483.483v2.224h-1.934l-1.427-1.136c-.193-.145-.46-.145-.628.024l-3.675 3.506-1.596-.919c-.169-.097-.387-.097-.532.024l-2.345 1.765a.505.505 0 0 0-.193.387v2.224c0 .121.048.242.145.338a.477.477 0 0 0 .338.145H7.1l.001 1.547Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.3,\n d: \"M5.408 8.821a2.182 2.182 0 0 0 2.176-2.176A2.182 2.182 0 0 0 5.408 4.47a2.182 2.182 0 0 0-2.176 2.176c-.024 1.185.967 2.176 2.176 2.176Zm0-3.409c.677 0 1.208.556 1.208 1.209 0 .677-.556 1.209-1.208 1.209a1.212 1.212 0 0 1-1.209-1.21c-.024-.676.532-1.208 1.209-1.208Z\"\n })));\n};\nexport default SvgPlaceholder;","var _style, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAws = function SvgAws(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"aws_svg__Layer_1\",\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 304 182\"\n },\n viewBox: \"0 0 304 182\",\n width: \"1em\",\n height: \"1em\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".aws_svg__st1{fill-rule:evenodd;clip-rule:evenodd;fill:#f90}\")), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.4 66.4c0 3.7.4 6.7 1.1 8.9.8 2.2 1.8 4.6 3.2 7.2.5.8.7 1.6.7 2.3 0 1-.6 2-1.9 3L83.2 92c-.9.6-1.8.9-2.6.9-1 0-2-.5-3-1.4-1.4-1.5-2.6-3.1-3.6-4.7-1-1.7-2-3.6-3.1-5.9-7.8 9.2-17.6 13.8-29.4 13.8-8.4 0-15.1-2.4-20-7.2-4.9-4.8-7.4-11.2-7.4-19.2 0-8.5 3-15.4 9.1-20.6 6.1-5.2 14.2-7.8 24.5-7.8 3.4 0 6.9.3 10.6.8 3.7.5 7.5 1.3 11.5 2.2v-7.3c0-7.6-1.6-12.9-4.7-16-3.2-3.1-8.6-4.6-16.3-4.6-3.5 0-7.1.4-10.8 1.3-3.7.9-7.3 2-10.8 3.4-1.6.7-2.8 1.1-3.5 1.3-.7.2-1.2.3-1.6.3-1.4 0-2.1-1-2.1-3.1v-4.9c0-1.6.2-2.8.7-3.5.5-.7 1.4-1.4 2.8-2.1 3.5-1.8 7.7-3.3 12.6-4.5C41 1.9 46.2 1.3 51.7 1.3c11.9 0 20.6 2.7 26.2 8.1 5.5 5.4 8.3 13.6 8.3 24.6v32.4zM45.8 81.6c3.3 0 6.7-.6 10.3-1.8 3.6-1.2 6.8-3.4 9.5-6.4 1.6-1.9 2.8-4 3.4-6.4.6-2.4 1-5.3 1-8.7v-4.2c-2.9-.7-6-1.3-9.2-1.7-3.2-.4-6.3-.6-9.4-.6-6.7 0-11.6 1.3-14.9 4-3.3 2.7-4.9 6.5-4.9 11.5 0 4.7 1.2 8.2 3.7 10.6 2.4 2.5 5.9 3.7 10.5 3.7zm80.3 10.8c-1.8 0-3-.3-3.8-1-.8-.6-1.5-2-2.1-3.9L96.7 10.2c-.6-2-.9-3.3-.9-4 0-1.6.8-2.5 2.4-2.5h9.8c1.9 0 3.2.3 3.9 1 .8.6 1.4 2 2 3.9l16.8 66.2 15.6-66.2c.5-2 1.1-3.3 1.9-3.9.8-.6 2.2-1 4-1h8c1.9 0 3.2.3 4 1 .8.6 1.5 2 1.9 3.9l15.8 67 17.3-67c.6-2 1.3-3.3 2-3.9.8-.6 2.1-1 3.9-1h9.3c1.6 0 2.5.8 2.5 2.5 0 .5-.1 1-.2 1.6-.1.6-.3 1.4-.7 2.5l-24.1 77.3c-.6 2-1.3 3.3-2.1 3.9-.8.6-2.1 1-3.8 1h-8.6c-1.9 0-3.2-.3-4-1-.8-.7-1.5-2-1.9-4L156 23l-15.4 64.4c-.5 2-1.1 3.3-1.9 4-.8.7-2.2 1-4 1h-8.6zm128.5 2.7c-5.2 0-10.4-.6-15.4-1.8-5-1.2-8.9-2.5-11.5-4-1.6-.9-2.7-1.9-3.1-2.8-.4-.9-.6-1.9-.6-2.8v-5.1c0-2.1.8-3.1 2.3-3.1.6 0 1.2.1 1.8.3.6.2 1.5.6 2.5 1 3.4 1.5 7.1 2.7 11 3.5 4 .8 7.9 1.2 11.9 1.2 6.3 0 11.2-1.1 14.6-3.3 3.4-2.2 5.2-5.4 5.2-9.5 0-2.8-.9-5.1-2.7-7-1.8-1.9-5.2-3.6-10.1-5.2L246 52c-7.3-2.3-12.7-5.7-16-10.2-3.3-4.4-5-9.3-5-14.5 0-4.2.9-7.9 2.7-11.1 1.8-3.2 4.2-6 7.2-8.2 3-2.3 6.4-4 10.4-5.2 4-1.2 8.2-1.7 12.6-1.7 2.2 0 4.5.1 6.7.4 2.3.3 4.4.7 6.5 1.1 2 .5 3.9 1 5.7 1.6 1.8.6 3.2 1.2 4.2 1.8 1.4.8 2.4 1.6 3 2.5.6.8.9 1.9.9 3.3v4.7c0 2.1-.8 3.2-2.3 3.2-.8 0-2.1-.4-3.8-1.2-5.7-2.6-12.1-3.9-19.2-3.9-5.7 0-10.2.9-13.3 2.8-3.1 1.9-4.7 4.8-4.7 8.9 0 2.8 1 5.2 3 7.1 2 1.9 5.7 3.8 11 5.5l14.2 4.5c7.2 2.3 12.4 5.5 15.5 9.6 3.1 4.1 4.6 8.8 4.6 14 0 4.3-.9 8.2-2.6 11.6-1.8 3.4-4.2 6.4-7.3 8.8-3.1 2.5-6.8 4.3-11.1 5.6-4.5 1.4-9.2 2.1-14.3 2.1z\",\n style: {\n fill: \"#252f3e\"\n }\n }), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.5 143.7c-32.9 24.3-80.7 37.2-121.8 37.2-57.6 0-109.5-21.3-148.7-56.7-3.1-2.8-.3-6.6 3.4-4.4 42.4 24.6 94.7 39.5 148.8 39.5 36.5 0 76.6-7.6 113.5-23.2 5.5-2.5 10.2 3.6 4.8 7.6z\",\n className: \"aws_svg__st1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M287.2 128.1c-4.2-5.4-27.8-2.6-38.5-1.3-3.2.4-3.7-2.4-.8-4.5 18.8-13.2 49.7-9.4 53.3-5 3.6 4.5-1 35.4-18.6 50.2-2.7 2.3-5.3 1.1-4.1-1.9 4-9.9 12.9-32.2 8.7-37.5z\",\n className: \"aws_svg__st1\"\n })));\n};\nexport default SvgAws;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgCivo = function SvgCivo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 711.364 238.193\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#239DFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.539.081h-29.424c-5.424 0-8.981 4.179-8.981 9.423v219.13c0 5.245 3.557 9.447 8.981 9.447h29.424c5.424 0 9.595-4.202 9.595-9.447V9.504c0-5.244-4.171-9.423-9.595-9.423M181.662 173.122c-2.671-5.859-10.327-7.473-15.027-3.072-12.446 11.658-29.136 18.819-47.538 18.819-48.218 0-85.012-48.909-63.477-99.824 6.365-15.049 18.442-27.092 33.495-33.447 29.421-12.421 58.048-5.345 77.037 12.095 4.749 4.361 12.365 2.814 15.04-3.054l12.744-27.956c2.039-4.474.631-9.721-3.292-12.685C160.789 1.437 120.037-7.42 77.562 7.052 43.472 18.666 16.89 46.154 6.065 80.503c-25.894 82.163 34.749 157.69 113.032 157.69 27.245 0 52.286-9.214 72.327-24.633 3.786-2.913 4.973-8.113 2.991-12.462l-12.753-27.976zM705.299 80.503c-10.825-34.349-37.407-61.837-71.497-73.451-24.128-8.221-47.698-8.906-69.033-3.835-35.585 7.946-61.358 24.817-84.01 73.453l-45.455 98.598L358.15 5.667a9.498 9.498 0 0 0-8.626-5.56L315.818.054c-6.917-.011-11.524 7.142-8.653 13.436l100.064 218.79c1.542 3.383 4.917 5.67 8.634 5.671l1.637.131h37.841c.761 0 1.522-.157 2.244-.403 2.604-.887 4.798-2.745 5.938-5.311 0 0 50.098-114.027 50.681-115.402 15.244-35.949 24.495-50.922 48.691-61.206 18.307-7.78 39.955-8.727 60.885.753 14.57 6.599 26.028 18.657 32.122 33.443a80.065 80.065 0 0 1 6.122 28.142c.545 38.992-30.891 70.773-69.758 70.773-18.402 0-35.092-7.162-47.538-18.819-4.7-4.402-12.356-2.788-15.027 3.071L516.947 201.1c-1.981 4.348-.795 9.547 2.993 12.461 20.04 15.418 45.081 24.633 72.326 24.633 78.284-.001 138.926-75.528 113.033-157.691\"\n }))));\n};\nexport default SvgCivo;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDigitalocean = function SvgDigitalocean(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 -3.954 53.927 53.954\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#0080ff\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.915 50v-9.661c10.226 0 18.164-10.141 14.237-20.904a14.438 14.438 0 0 0-8.615-8.616C19.774 6.921 9.633 14.83 9.633 25.056H0C0 8.758 15.763-3.954 32.853 1.384 40.311 3.73 46.271 9.661 48.588 17.12 53.927 34.237 41.243 50 24.915 50\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.339 40.367h9.604v-9.604H15.34zm-7.401 7.401h7.4v-7.4h-7.4zm-6.187-7.4h6.187V34.18H1.751z\"\n }))));\n};\nexport default SvgDigitalocean;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGooglecloud = function SvgGooglecloud(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n preserveAspectRatio: \"xMidYMid\",\n viewBox: \"0 0 256 206\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EA4335\",\n d: \"m170.252 56.819 22.253-22.253 1.483-9.37C153.437-11.677 88.976-7.496 52.42 33.92 42.267 45.423 34.734 59.764 30.717 74.573l7.97-1.123 44.505-7.34 3.436-3.513c19.797-21.742 53.27-24.667 76.128-6.168l7.496.39Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4285F4\",\n d: \"M224.205 73.918a100.249 100.249 0 0 0-30.217-48.722l-31.232 31.232a55.515 55.515 0 0 1 20.379 44.037v5.544c15.35 0 27.797 12.445 27.797 27.796 0 15.352-12.446 27.485-27.797 27.485h-55.671l-5.466 5.934v33.34l5.466 5.231h55.67c39.93.311 72.553-31.494 72.864-71.424a72.303 72.303 0 0 0-31.793-60.453\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#34A853\",\n d: \"M71.87 205.796h55.593V161.29H71.87a27.275 27.275 0 0 1-11.399-2.498l-7.887 2.42-22.409 22.253-1.952 7.574c12.567 9.489 27.9 14.825 43.647 14.757\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FBBC05\",\n d: \"M71.87 61.425C31.94 61.664-.237 94.228.001 134.159a72.301 72.301 0 0 0 28.222 56.88l32.248-32.246c-13.99-6.322-20.208-22.786-13.887-36.776 6.32-13.99 22.786-20.208 36.775-13.888a27.796 27.796 0 0 1 13.887 13.888l32.248-32.248A72.224 72.224 0 0 0 71.87 61.425\"\n })));\n};\nexport default SvgGooglecloud;","var _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAkamai = function SvgAkamai(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: \"1em\",\n height: \"1em\"\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"akamai_svg__a\",\n clipPathUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h612v792H0Z\"\n })))), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n fill: \"#09c\",\n fillOpacity: 1\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0c-6.127 1.862-10.58 7.517-10.58 14.209 0 6.763 4.548 12.465 10.768 14.279.637.189.472.59-.306.59-8.271 0-14.986-6.669-14.986-14.869S-8.389-.66-.118-.66C.66-.66.707-.212 0 0\",\n style: {\n fill: \"#09c\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"matrix(5.60732 0 0 -5.60732 84.693 163.05)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n fill: \"#000\"\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0a10 10 0 0 0-.071 1.202 11.797 11.797 0 0 0 11.806 11.805c6.173 0 8.011-2.757 8.247-2.568.259.188-2.239 5.655-9.473 5.655A11.796 11.796 0 0 1-1.296 4.289c0-1.508.283-2.946.801-4.265C-.283-.542.047-.542 0 0\",\n style: {\n fill: \"#09c\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"matrix(5.60732 0 0 -5.60732 41.355 102.799)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n fill: \"#09c\",\n fillOpacity: 1\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0c3.063 1.343 6.928 1.39 10.721.047 2.545-.895 4.03-2.168 4.148-2.097.212.094-1.485 2.757-4.525 3.912A10.79 10.79 0 0 1-.165.259C-.495 0-.377-.165 0 0\",\n style: {\n fill: \"#09c\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"matrix(5.60732 0 0 -5.60732 69.102 55.1)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n fill: \"#f93\",\n fillOpacity: 1\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0c0-.848-.707-1.555-1.555-1.555-.849 0-1.555.683-1.555 1.555 0 .848.683 1.555 1.555 1.555S0 .872 0 0\",\n style: {\n fill: \"#f93\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"matrix(5.60732 0 0 -5.60732 409.333 86.283)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m525.457 729.914.188-2.074h3.276l-1.108 12.041h-4.877l-6.174-12.04h3.346l1.037 2.073zm-.165 2.333H522.3l2.57 5.207h.022zm8.177.849h.495l2.333 3.18h3.039l-3.228-4.052 1.98-4.383h-3.229l-1.296 3.417h-.471l-.73-3.417h-2.757l2.544 12.04h2.757z\",\n style: {\n fill: \"#f93\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"matrix(5.60732 0 0 -5.60732 -2820.89 4227.904)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#akamai_svg__a)\",\n style: {\n fill: \"#f93\",\n fillOpacity: 1\n },\n transform: \"matrix(5.60732 0 0 -5.60732 -2820.89 4227.904)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n style: {\n fill: \"#f93\",\n fillOpacity: 1\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h2.757l1.107 5.255C4.477 8.153 3.37 8.506.542 8.506c-1.979 0-3.888.024-4.43-2.591h2.757c.165.754.636.918 1.32.918 1.201 0 1.154-.494.989-1.272L.895 4.218H.778c-.095.966-1.32.942-2.098.942-2.002 0-3.181-.636-3.605-2.662-.447-2.144.566-2.616 2.498-2.616.966 0 2.262.189 2.71 1.343h.094Zm-.778 3.487c.896 0 1.485-.07 1.343-.777C.377 1.838 0 1.673-1.155 1.673c-.424 0-1.201 0-1.013.919.165.778.707.895 1.39.895\",\n style: {\n fill: \"#f93\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"translate(543.649 727.84)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n fill: \"#f93\",\n fillOpacity: 1\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0-.259-1.178h.118C.401-.188 1.508.094 2.451.094c1.178 0 2.356-.212 2.191-1.649h.118C5.16-.353 6.386.094 7.446.094c1.956 0 2.781-.801 2.356-2.757L8.577-8.436H5.82l1.037 4.878c.141.872.283 1.532-.778 1.532-1.084 0-1.437-.707-1.626-1.626L3.44-8.436H.683l1.084 5.114c.142.777.189 1.296-.777 1.296-1.131 0-1.485-.613-1.697-1.626L-1.72-8.436h-2.757L-2.686 0Z\",\n style: {\n fill: \"#f93\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"translate(551.99 736.277)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n fill: \"#f93\",\n fillOpacity: 1\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h2.757l1.131 5.255c.613 2.898-.495 3.251-3.322 3.251-1.98 0-3.889.024-4.43-2.591h2.757c.164.754.636.918 1.319.918 1.202 0 1.155-.494.99-1.272L.919 4.218H.801c-.094.966-1.319.942-2.097.942-2.003 0-3.181-.636-3.605-2.662-.448-2.144.565-2.616 2.497-2.616.967 0 2.263.189 2.71 1.343h.095Zm-.754 3.487c.895 0 1.484-.07 1.343-.777-.188-.872-.565-1.037-1.72-1.037-.424 0-1.202 0-1.013.919.165.778.707.895 1.39.895\",\n style: {\n fill: \"#f93\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"translate(566.906 727.84)\"\n }))), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M573.669 727.84h-2.757l1.767 8.437h2.78z\",\n style: {\n fill: \"#f93\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\"\n },\n transform: \"matrix(5.60732 0 0 -5.60732 -2820.89 4227.904)\"\n }));\n};\nexport default SvgAkamai;","// general icons\n\nimport dataflow from '@/assets/ico/dataflow-1.svg?c';\nimport git from '@/assets/ico/git.svg?c';\nimport kube from '@/assets/ico/kube.svg?c';\nimport laptopcode from '@/assets/ico/laptop-code.svg?c';\nimport ldap from '@/assets/ico/ldap.svg?c';\nimport linux from '@/assets/ico/linux.svg?c';\nimport memory from '@/assets/ico/memory.svg?c';\nimport restorewindow from '@/assets/ico/restore-window.svg?c';\nimport route from '@/assets/ico/route.svg?c';\nimport sort from '@/assets/ico/sort.svg?c';\nimport subscription from '@/assets/ico/subscription.svg?c';\nimport Placeholder from '@/assets/ico/placeholder.svg?c'; // Placeholder is used when an icon name cant be matched\n// vendor icons\nimport aws from '@/assets/ico/vendor/aws.svg?c';\nimport azure from '@/assets/ico/vendor/azure.svg?c';\nimport civo from '@/assets/ico/vendor/civo.svg?c';\nimport digitalocean from '@/assets/ico/vendor/digitalocean.svg?c';\nimport docker from '@/assets/ico/vendor/docker.svg?c';\nimport dockericon from '@/assets/ico/vendor/docker-icon.svg?c';\nimport dockercompose from '@/assets/ico/vendor/docker-compose.svg?c';\nimport ecr from '@/assets/ico/vendor/ecr.svg?c';\nimport github from '@/assets/ico/vendor/github.svg?c';\nimport gitlab from '@/assets/ico/vendor/gitlab.svg?c';\nimport google from '@/assets/ico/vendor/google.svg?c';\nimport googlecloud from '@/assets/ico/vendor/googlecloud.svg?c';\nimport kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport helm from '@/assets/ico/vendor/helm.svg?c';\nimport akamai from '@/assets/ico/vendor/akamai.svg?c';\nimport microsoft from '@/assets/ico/vendor/microsoft.svg?c';\nimport microsofticon from '@/assets/ico/vendor/microsoft-icon.svg?c';\nimport openldap from '@/assets/ico/vendor/openldap.svg?c';\nimport proget from '@/assets/ico/vendor/proget.svg?c';\nimport quay from '@/assets/ico/vendor/quay.svg?c';\n\nconst placeholder = Placeholder;\n\nexport const SvgIcons = {\n dataflow,\n dockericon,\n git,\n laptopcode,\n ldap,\n linux,\n memory,\n placeholder,\n restorewindow,\n route,\n sort,\n subscription,\n aws,\n azure,\n civo,\n digitalocean,\n docker,\n dockercompose,\n ecr,\n github,\n gitlab,\n google,\n googlecloud,\n kubernetes,\n helm,\n akamai,\n microsoft,\n microsofticon,\n openldap,\n proget,\n quay,\n kube,\n};\n\ninterface SvgProps {\n icon: keyof typeof SvgIcons;\n className?: string;\n}\n\nfunction Svg({ icon, className }: SvgProps) {\n const SvgIcon = SvgIcons[icon];\n\n if (!SvgIcon) {\n return (\n <span className={className} aria-hidden=\"true\">\n <Placeholder />\n </span>\n );\n }\n\n return (\n <span className={className} aria-hidden=\"true\">\n <SvgIcon />\n </span>\n );\n}\n\nexport default Svg;\n","import clsx from 'clsx';\nimport { ComponentType, ReactNode } from 'react';\nimport * as lucideIcons from 'lucide-react';\nimport { isValidElementType } from 'react-is';\n\nimport Svg, { SvgIcons } from './Svg';\n\nexport interface IconProps {\n icon: ReactNode | ComponentType<unknown>;\n iconClass?: string;\n}\n\nexport type IconMode =\n | 'alt'\n | 'primary'\n | 'primary-alt'\n | 'secondary'\n | 'secondary-alt'\n | 'warning'\n | 'warning-alt'\n | 'danger'\n | 'danger-alt'\n | 'success'\n | 'success-alt';\n\nexport type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface Props {\n icon: ReactNode | ComponentType<{ size?: string | number }>;\n className?: string;\n size?: IconSize;\n mode?: IconMode;\n spin?: boolean;\n}\n\nexport function Icon({ icon, className, mode, size, spin }: Props) {\n const classes = clsx(className, 'icon inline-flex', {\n [`icon-${mode}`]: mode,\n [`icon-${size}`]: size,\n 'animate-spin-slow': spin,\n });\n\n if (typeof icon !== 'string') {\n const Icon = isValidElementType(icon) ? icon : null;\n\n if (Icon) {\n return <Icon className={classes} aria-hidden=\"true\" role=\"img\" />;\n }\n\n return (\n <span className={classes} aria-hidden=\"true\" role=\"img\">\n {icon}\n </span>\n );\n }\n\n if (icon.indexOf('svg-') === 0) {\n const svgIcon = icon.replace('svg-', '');\n return (\n <Svg\n icon={svgIcon as keyof typeof SvgIcons}\n className={classes}\n aria-hidden=\"true\"\n />\n );\n }\n\n const iconName = icon\n .split('-')\n .map((s) => s.slice(0, 1).toUpperCase() + s.slice(1))\n .join('') as keyof typeof lucideIcons;\n const IconComponent = lucideIcons[iconName] as React.FC<\n React.SVGProps<SVGSVGElement>\n >;\n if (!IconComponent) {\n // console error so that the error is logged but no functionality is broken\n // eslint-disable-next-line no-console\n console.error(`Icon not found: '${icon}'`);\n return null;\n }\n\n return <IconComponent className={classes} aria-hidden=\"true\" />;\n}\n","import { PropsWithChildren } from 'react';\nimport { X } from 'lucide-react';\n\nimport { Widget, WidgetBody } from './Widget';\nimport { Button } from './buttons';\n\ninterface Props {\n title?: string;\n onDismiss?(): void;\n bodyClassName?: string;\n wrapperStyle?: Record<string, string>;\n}\n\nexport function InformationPanel({\n title,\n onDismiss,\n wrapperStyle,\n bodyClassName,\n children,\n}: PropsWithChildren<Props>) {\n return (\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <WidgetBody className={bodyClassName}>\n <div style={wrapperStyle}>\n {title && (\n <div className=\"form-section-title\">\n <span>{title}</span>\n {!!onDismiss && (\n <span className=\"small\" style={{ float: 'right' }}>\n <Button color=\"link\" icon={X} onClick={() => onDismiss()}>\n dismiss\n </Button>\n </span>\n )}\n </div>\n )}\n <div>{children}</div>\n </div>\n </WidgetBody>\n </Widget>\n </div>\n </div>\n );\n}\n","import { Loader2 } from 'lucide-react';\nimport { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\n\nimport { Icon } from '@@/Icon';\n\ntype Size = 'xs' | 'sm' | 'md';\n\nexport type Props = {\n className?: string;\n size?: Size;\n};\n\nconst sizeStyles: Record<Size, string> = {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-md',\n};\n\nexport function InlineLoader({\n children,\n className,\n size = 'sm',\n}: PropsWithChildren<Props>) {\n return (\n <div\n className={clsx(\n 'text-muted flex items-center gap-2',\n className,\n sizeStyles[size]\n )}\n >\n <Icon icon={Loader2} className=\"animate-spin-slow\" />\n {children}\n </div>\n );\n}\n","import { createStore } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\n\ninterface InsightsStore {\n insightIDsClosed: string[];\n addInsightIDClosed: (insightIDClosed: string) => void;\n isClosed: (insightID?: string) => boolean;\n}\n\nexport const insightStore = createStore<InsightsStore>()(\n persist(\n (set, get) => ({\n insightIDsClosed: [],\n addInsightIDClosed: (insightIDClosed: string) => {\n set((state) => {\n const currentIDsClosed = state.insightIDsClosed || [];\n return { insightIDsClosed: [...currentIDsClosed, insightIDClosed] };\n });\n },\n isClosed: (insightID?: string) => {\n if (!insightID) {\n return false;\n }\n const currentIDsClosed = get().insightIDsClosed || [];\n return currentIDsClosed.includes(insightID);\n },\n }),\n {\n name: keyBuilder('insightIDsClosed'),\n getStorage: () => localStorage,\n }\n )\n);\n","import clsx from 'clsx';\nimport { Lightbulb, X } from 'lucide-react';\nimport { ReactNode } from 'react';\nimport { useStore } from 'zustand';\n\nimport { Button } from '@@/buttons';\n\nimport { insightStore } from './insights-store';\n\nexport type Props = {\n header?: string;\n content?: ReactNode;\n insightCloseId?: string; // set if you want to be able to close the box and not show it again\n type?: 'default' | 'slim';\n className?: string;\n};\n\nexport function InsightsBox({\n header,\n content,\n insightCloseId,\n type = 'default',\n className,\n}: Props) {\n // allow to close the box and not show it again in local storage with zustand\n const { addInsightIDClosed, isClosed } = useStore(insightStore);\n const isInsightClosed = isClosed(insightCloseId);\n\n if (isInsightClosed) {\n return null;\n }\n\n return (\n <div\n className={clsx(\n 'relative flex w-full gap-1 rounded-lg bg-gray-modern-3 p-4 text-sm th-highcontrast:bg-legacy-grey-3 th-dark:bg-legacy-grey-3',\n type === 'slim' && 'p-2',\n className\n )}\n >\n <div className=\"mt-0.5 shrink-0\">\n <Lightbulb className=\"h-4 text-warning-7 th-highcontrast:text-warning-6 th-dark:text-warning-6\" />\n </div>\n <div>\n {header && (\n <p\n className={clsx(\n // text-[0.9em] matches .form-horizontal .control-label font-size used in many labels in portainer\n 'align-middle text-[0.9em] font-medium',\n insightCloseId && 'pr-10',\n content ? 'mb-2' : 'mb-0'\n )}\n >\n {header}\n </p>\n )}\n {content && (\n <div className={clsx('small', !header && insightCloseId && 'pr-6')}>\n {content}\n </div>\n )}\n </div>\n {insightCloseId && (\n <Button\n icon={X}\n className={clsx(\n 'absolute right-2 top-3 flex !text-gray-7 hover:!text-gray-8 th-highcontrast:!text-gray-6 th-highcontrast:hover:!text-gray-5 th-dark:!text-gray-6 th-dark:hover:!text-gray-5',\n type === 'slim' && insightCloseId && 'top-1'\n )}\n color=\"link\"\n size=\"medium\"\n onClick={() => addInsightIDClosed(insightCloseId)}\n />\n )}\n </div>\n );\n}\n","import { PropsWithChildren, AnchorHTMLAttributes } from 'react';\nimport { UISref, UISrefProps } from '@uirouter/react';\n\ninterface Props {\n title?: string;\n target?: AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n rel?: AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n}\n\nexport function Link({\n title = '',\n className,\n children,\n ...props\n}: PropsWithChildren<Props> & UISrefProps) {\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <UISref className={className} {...props}>\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a title={title} target={props.target} rel={props.rel}>\n {children}\n </a>\n </UISref>\n );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport function NavContainer({ children }: PropsWithChildren<unknown>) {\n return (\n <div\n className={clsx(\n 'rounded-lg border border-solid p-2',\n 'border-gray-5 bg-gray-2',\n 'th-dark:border-gray-neutral-8 th-dark:bg-gray-iron-10',\n 'th-highcontrast:border-white th-highcontrast:bg-black'\n )}\n >\n {children}\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"parent\":\"app-react-components-NavTabs-NavTabs-module__parent\"};","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\nimport styles from './NavTabs.module.css';\n\nexport interface Option<T extends string | number = string> {\n label: ReactNode;\n children?: ReactNode;\n id: T;\n hidden?: boolean;\n}\n\ninterface Props<T extends string | number> {\n options: Option<T>[];\n selectedId?: T;\n onSelect?(id: T): void;\n disabled?: boolean;\n type?: 'tabs' | 'pills';\n justified?: boolean;\n}\n\nexport function NavTabs<T extends string | number = string>({\n options,\n selectedId,\n onSelect = () => {},\n disabled,\n type = 'tabs',\n justified = false,\n}: Props<T>) {\n const selected = options.find((option) => option.id === selectedId);\n\n return (\n <div>\n <ul\n className={clsx('nav', `nav-${type}`, { 'nav-justified': justified })}\n >\n {options.map(\n (option) =>\n !option.hidden && (\n <li\n className={clsx({\n active: option.id === selectedId,\n [styles.parent]: !option.children,\n disabled,\n })}\n key={option.id}\n >\n {/* rule disabled because `nav-tabs` requires an anchor */}\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a\n onClick={() => handleSelect(option)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleSelect(option);\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n {option.label}\n </a>\n </li>\n )\n )}\n </ul>\n {selected && selected.children && (\n <div className=\"tab-content mt-3\">{selected.children}</div>\n )}\n </div>\n );\n\n function handleSelect(option: Option<T>) {\n if (disabled) {\n return;\n }\n\n if (option.children) {\n onSelect(option.id);\n }\n }\n}\n","import { HelpCircle } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { useSystemVersion } from '@/react/portainer/system/useSystemVersion';\n\nimport headerStyles from '../HeaderTitle.module.css';\nimport './ContextHelp.css';\n\nexport function ContextHelp() {\n const docsUrl = useDocsUrl();\n\n return (\n <div className={headerStyles.menuButton}>\n <a\n href={docsUrl}\n target=\"_blank\"\n color=\"none\"\n className={clsx(\n headerStyles.menuIcon,\n 'menu-icon',\n 'icon-badge mr-1 !p-2 text-lg',\n 'text-gray-8',\n 'th-dark:text-gray-warm-7'\n )}\n title=\"Help\"\n rel=\"noreferrer\"\n >\n <HelpCircle className=\"lucide\" />\n </a>\n </div>\n );\n}\n\nexport function useDocsUrl(doc?: string): string {\n const { state } = useCurrentStateAndParams();\n const versionQuery = useSystemVersion();\n\n if (!doc && !state) {\n return '';\n }\n\n let url = 'https://docs.portainer.io/';\n if (versionQuery.data) {\n let { ServerVersion } = versionQuery.data;\n if (ServerVersion[0] === 'v') {\n ServerVersion = ServerVersion.substring(1);\n }\n\n const parts = ServerVersion.split('.');\n if (parts.length >= 2) {\n const version = parts.slice(0, 2).join('.');\n url += `v/${version}`;\n }\n }\n\n if (doc) {\n return url + doc;\n }\n\n const { data } = state;\n if (\n data &&\n typeof data === 'object' &&\n 'docs' in data &&\n typeof data.docs === 'string'\n ) {\n return url + data.docs;\n }\n\n return url;\n}\n","import { Fragment } from 'react';\n\nimport { Link } from '@@/Link';\n\nexport interface Crumb {\n label: string;\n link?: string;\n linkParams?: Record<string, unknown>;\n}\ninterface Props {\n breadcrumbs: (Crumb | string)[] | string;\n}\n\nexport function Breadcrumbs({ breadcrumbs }: Props) {\n const breadcrumbsArray = Array.isArray(breadcrumbs)\n ? breadcrumbs\n : [breadcrumbs];\n\n return (\n <div className=\"space-x-2 text-xs font-medium text-gray-7 th-highcontrast:text-white th-dark:text-gray-5\">\n {breadcrumbsArray.map((crumb, index) => (\n <Fragment key={index}>\n <span>{renderCrumb(crumb)}</span>\n {index !== breadcrumbsArray.length - 1 && <span>></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 «\n </PageButton>\n ) : null}\n {directionLinks ? (\n <PageButton\n onPageChange={onPageChange}\n page={currentPage - 1}\n disabled={currentPage === 1}\n >\n ‹\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 ›\n </PageButton>\n ) : null}\n {boundaryLinks ? (\n <PageButton\n disabled={currentPage === last}\n onPageChange={onPageChange}\n page={last}\n >\n »\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 -> 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 -> 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 -> 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've renamed "Automatic updates" 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 "Command & logging" 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'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 'unlimited' 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'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®ular&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'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:${PORTAINER_EDGE_ID}</code> or{' '}\n <code>myapp:${PORTAINER_EDGE_GROUP}</code>. You\n can also use it with the relative path for volumes:{' '}\n <code>\n ./config/${PORTAINER_EDGE_ID}:/myapp/config\n </code>{' '}\n or{' '}\n <code>\n ./config/${PORTAINER_EDGE_GROUP}:/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'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 '\n {namespace}'. 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' 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'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 'Name' but, in\n fact, it'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'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'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'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'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 \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 with the \n <code className=\"bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black\">\n --authorization-mode\n </code>\n flag set to a comma-separated list that includes \n <code className=\"bg-gray-4 th-highcontrast:bg-black th-dark:bg-black\">\n RBAC\n </code>\n , for example: \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'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 "in-use" 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'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'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'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're\n experimenting with. These will be items in the early phases of\n development with limited testing.\n <br />\n Our goal is to gain early user feedback, so we can refine, enhance\n and ultimately make our features the best they can be. Disabling an\n experimental feature will prevent access to it.\n </div>\n\n <EnableOpenAIIntegrationSwitch />\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n loadingText=\"Saving settings...\"\n isLoading={mutation.isLoading}\n disabled={!isValid || !dirty}\n className=\"!ml-0\"\n data-cy=\"settings-experimentalButton\"\n >\n Save experimental settings\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n );\n}\n","import { FlaskConical } from 'lucide-react';\n\nimport { useExperimentalSettings } from '@/react/portainer/settings/queries';\n\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\n\nimport { ExperimentalFeaturesSettingsForm } from './ExperimentalFeaturesForm';\n\nexport function ExperimentalFeatures() {\n const settingsQuery = useExperimentalSettings();\n\n if (!settingsQuery.data) {\n return null;\n }\n\n const settings = settingsQuery.data;\n\n return (\n <Widget>\n <WidgetTitle icon={FlaskConical} title=\"Experimental features\" />\n <WidgetBody>\n <ExperimentalFeaturesSettingsForm\n settings={settings.experimentalFeatures}\n />\n </WidgetBody>\n </Widget>\n );\n}\n","import { useEffect } from 'react';\nimport angular from 'angular';\n\nimport { StateManager } from '@/portainer/services/types';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useSettings } from '../queries';\nimport { Settings } from '../types';\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { ApplicationSettingsPanel } from './ApplicationSettingsPanel';\nimport { BackupSettingsPanel } from './BackupSettingsView';\nimport { HelmCertPanel } from './HelmCertPanel';\nimport { HiddenContainersPanel } from './HiddenContainersPanel/HiddenContainersPanel';\nimport { KubeSettingsPanel } from './KubeSettingsPanel';\nimport { SSLSettingsPanelWrapper } from './SSLSettingsPanel/SSLSettingsPanel';\nimport { ExperimentalFeatures } from './ExperimentalFeatures';\n\nexport function SettingsView() {\n const settingsQuery = useSettings();\n\n useEffect(() => {\n if (settingsQuery.data) {\n const regEx = /#!.*#(.*)/;\n const match = window.location.hash.match(regEx);\n if (match && match[1]) {\n document.getElementById(match[1])?.scrollIntoView();\n }\n }\n }, [settingsQuery.data]);\n\n return (\n <>\n <PageHeader title=\"Settings\" breadcrumbs=\"Settings\" reload />\n\n <div className=\"mx-4 space-y-4\">\n {settingsQuery.data && (\n <>\n <ApplicationSettingsPanel\n onSuccess={handleSuccess}\n settings={settingsQuery.data}\n />\n\n <KubeSettingsPanel settings={settingsQuery.data} />\n </>\n )}\n\n <HelmCertPanel />\n\n <SSLSettingsPanelWrapper />\n\n {isBE && <ExperimentalFeatures />}\n\n <HiddenContainersPanel />\n\n <BackupSettingsPanel />\n </div>\n </>\n );\n}\n\nfunction handleSuccess(settings: Settings) {\n // to sync \"outside state\" - for angularjs\n // this is a hack, but it works\n // state manager should be replaced with a non angular solution, maybe using zustand\n const $injector = angular.element(document).injector();\n $injector.invoke(\n /* @ngInject */ (StateManager: StateManager) => {\n StateManager?.updateLogo(settings.LogoURL);\n StateManager?.updateSnapshotInterval(settings.SnapshotInterval);\n StateManager?.updateEnableTelemetry(settings.EnableTelemetry);\n }\n );\n}\n","import { object, string } from 'yup';\n\nimport { isValidUrl } from '@@/form-components/validate-url';\n\nexport function noDuplicateURLsSchema(urls: string[]) {\n return string()\n .required('URL is required')\n .test('not existing name', 'URL is already added', (newName) =>\n urls.every((name) => name !== newName)\n );\n}\n\nexport function validationSchema(urls: string[]) {\n return object().shape({\n URL: noDuplicateURLsSchema(urls)\n .test('valid-url', 'Invalid URL', (value) => !value || isValidUrl(value))\n .required('URL is required'),\n });\n}\n","import { Field, Form, Formik } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { Button } from '@@/buttons';\n\nimport { HelmRepositoryFormValues } from '../../AccountView/HelmRepositoryDatatable/types';\n\nimport { validationSchema } from './CreateHelmRepositoryForm.validation';\n\ntype Props = {\n isEditing?: boolean;\n isLoading: boolean;\n onSubmit: (formValues: HelmRepositoryFormValues) => void;\n URLs: string[];\n};\n\nconst defaultInitialValues: HelmRepositoryFormValues = {\n URL: '',\n};\n\nexport function HelmRepositoryForm({\n isEditing = false,\n isLoading,\n onSubmit,\n URLs,\n}: Props) {\n const router = useRouter();\n\n return (\n <Formik<HelmRepositoryFormValues>\n initialValues={defaultInitialValues}\n enableReinitialize\n validationSchema={() => validationSchema(URLs)}\n onSubmit={(values) => onSubmit(values)}\n validateOnMount\n >\n {({ values, errors, handleSubmit, isValid, dirty }) => (\n <Form className=\"form-horizontal\" onSubmit={handleSubmit} noValidate>\n <FormControl\n inputId=\"url-field\"\n label=\"URL\"\n errors={errors.URL}\n required\n >\n <Field\n as={Input}\n name=\"URL\"\n value={values.URL}\n autoComplete=\"off\"\n id=\"url-field\"\n />\n </FormControl>\n <div className=\"form-group\">\n <div className=\"col-sm-12 mt-3\">\n <LoadingButton\n disabled={!isValid || !dirty}\n isLoading={isLoading}\n loadingText=\"Saving Helm repository...\"\n >\n {isEditing ? 'Update Helm repository' : 'Save Helm repository'}\n </LoadingButton>\n {isEditing && (\n <Button\n color=\"default\"\n onClick={() => router.stateService.go('portainer.account')}\n >\n Cancel\n </Button>\n )}\n </div>\n </div>\n </Form>\n )}\n </Formik>\n );\n}\n","import { useRouter } from '@uirouter/react';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport {\n CreateHelmRepositoryPayload,\n HelmRepositoryFormValues,\n} from '../../AccountView/HelmRepositoryDatatable/types';\nimport {\n useHelmRepositories,\n useCreateHelmRepositoryMutation,\n} from '../../AccountView/HelmRepositoryDatatable/helm-repositories.service';\nimport { HelmRepositoryForm } from '../components/HelmRepositoryForm';\n\nexport function CreateHelmRepositoryForm() {\n const router = useRouter();\n const currentUser = useCurrentUser();\n\n const createHelmRepositoryMutation = useCreateHelmRepositoryMutation();\n const helmReposQuery = useHelmRepositories(currentUser.user.Id);\n\n const allRepositories =\n helmReposQuery.data?.UserRepositories.map((x) => x.URL) || [];\n if (helmReposQuery.data?.GlobalRepository) {\n allRepositories.push(helmReposQuery.data?.GlobalRepository);\n }\n\n return (\n <HelmRepositoryForm\n isLoading={createHelmRepositoryMutation.isLoading}\n onSubmit={onSubmit}\n URLs={allRepositories}\n />\n );\n\n function onSubmit(values: HelmRepositoryFormValues) {\n const payload: CreateHelmRepositoryPayload = {\n ...values,\n UserId: currentUser.user.Id,\n };\n createHelmRepositoryMutation.mutate(payload, {\n onSuccess: () => {\n router.stateService.go('portainer.account');\n },\n });\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-portainer-environments-wizard-components-Option-Option-module__root\",\"feature\":\"app-react-portainer-environments-wizard-components-Option-Option-module__feature\",\"teaser\":\"app-react-portainer-environments-wizard-components-Option-Option-module__teaser\",\"active\":\"app-react-portainer-environments-wizard-components-Option-Option-module__active\",\"iconComponent\":\"app-react-portainer-environments-wizard-components-Option-Option-module__icon-component\"};","import clsx from 'clsx';\nimport { ComponentType } from 'react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { BEFeatureIndicator } from '@@/BEFeatureIndicator';\n\nimport styles from './Option.module.css';\n\nexport interface SelectorItemType {\n icon: string | ComponentType<{ selected?: boolean; className?: string }>;\n title: string;\n description: string;\n}\n\ninterface Props extends SelectorItemType {\n active?: boolean;\n onClick?(): void;\n featureId?: FeatureId;\n}\n\nexport function Option({\n icon,\n active,\n description,\n title,\n onClick = () => {},\n featureId,\n}: Props) {\n const IconComponent = icon;\n const isLimited = isLimitedToBE(featureId);\n return (\n <button\n className={clsx(\n styles.root,\n isLimited ? styles.teaser : styles.feature,\n 'border-0',\n {\n [styles.active]: active,\n }\n )}\n type=\"button\"\n disabled={isLimited}\n onClick={onClick}\n >\n <div className=\"mt-2 flex items-end justify-center text-center\">\n <IconComponent selected={active} className={styles.iconComponent} />\n </div>\n\n <div className=\"mt-3 flex flex-col text-center\">\n <h3>{title}</h3>\n <h5>{description}</h5>\n {isLimited && (\n <BEFeatureIndicator\n showIcon={false}\n featureId={featureId}\n className=\"!whitespace-normal\"\n />\n )}\n </div>\n </button>\n );\n}\n","import axios, {\n parseAxiosError,\n json2formData,\n arrayToJson,\n} from '@/portainer/services/axios';\nimport { type EnvironmentGroupId } from '@/react/portainer/environments/environment-groups/types';\nimport { type TagId } from '@/portainer/tags/types';\nimport { EdgeAsyncIntervalsValues } from '@/react/edge/components/EdgeAsyncIntervalsForm';\n\nimport { type Environment, EnvironmentCreationTypes } from '../types';\n\nimport { buildUrl } from './utils';\n\nexport interface EnvironmentMetadata {\n groupId?: EnvironmentGroupId;\n tagIds?: TagId[];\n}\n\ninterface CreateLocalDockerEnvironment {\n name: string;\n socketPath?: string;\n publicUrl?: string;\n meta?: EnvironmentMetadata;\n}\n\nexport async function createLocalDockerEnvironment({\n name,\n socketPath = '',\n publicUrl = '',\n meta = { tagIds: [] },\n}: CreateLocalDockerEnvironment) {\n const url = prefixPath(socketPath);\n\n return createEnvironment(\n name,\n EnvironmentCreationTypes.LocalDockerEnvironment,\n {\n url,\n publicUrl,\n meta,\n }\n );\n\n function prefixPath(path: string) {\n if (path === '') {\n return path;\n }\n\n // Windows named pipe\n if (path.startsWith('//./pipe/')) {\n return `npipe://${path}`;\n }\n\n return `unix://${path}`;\n }\n}\n\ninterface CreateLocalKubernetesEnvironment {\n name: string;\n meta?: EnvironmentMetadata;\n}\n\nexport async function createLocalKubernetesEnvironment({\n name,\n meta = { tagIds: [] },\n}: CreateLocalKubernetesEnvironment) {\n return createEnvironment(\n name,\n EnvironmentCreationTypes.LocalKubernetesEnvironment,\n { meta, tls: { skipClientVerify: true, skipVerify: true } }\n );\n}\n\ninterface AzureSettings {\n applicationId: string;\n tenantId: string;\n authenticationKey: string;\n}\n\ninterface CreateAzureEnvironment {\n name: string;\n azure: AzureSettings;\n meta?: EnvironmentMetadata;\n}\n\nexport async function createAzureEnvironment({\n name,\n azure,\n meta = { tagIds: [] },\n}: CreateAzureEnvironment) {\n return createEnvironment(name, EnvironmentCreationTypes.AzureEnvironment, {\n meta,\n azure,\n });\n}\n\ninterface TLSSettings {\n skipVerify?: boolean;\n skipClientVerify?: boolean;\n caCertFile?: File;\n certFile?: File;\n keyFile?: File;\n}\n\ninterface EdgeSettings extends EdgeAsyncIntervalsValues {\n asyncMode: boolean;\n}\n\nexport interface EnvironmentOptions {\n url?: string;\n publicUrl?: string;\n meta?: EnvironmentMetadata;\n azure?: AzureSettings;\n tls?: TLSSettings;\n pollFrequency?: number;\n edge?: EdgeSettings;\n tunnelServerAddr?: string;\n}\n\ninterface CreateRemoteEnvironment {\n name: string;\n creationType: Exclude<\n EnvironmentCreationTypes,\n EnvironmentCreationTypes.EdgeAgentEnvironment\n >;\n url: string;\n options?: Omit<EnvironmentOptions, 'url'>;\n}\n\nexport async function createRemoteEnvironment({\n creationType,\n name,\n url,\n options = {},\n}: CreateRemoteEnvironment) {\n return createEnvironment(name, creationType, {\n ...options,\n url: `tcp://${url}`,\n });\n}\n\nexport interface CreateAgentEnvironmentValues {\n name: string;\n environmentUrl: string;\n meta: EnvironmentMetadata;\n}\n\nexport function createAgentEnvironment({\n name,\n environmentUrl,\n meta = { tagIds: [] },\n}: CreateAgentEnvironmentValues) {\n return createRemoteEnvironment({\n name,\n url: environmentUrl,\n creationType: EnvironmentCreationTypes.AgentEnvironment,\n options: {\n meta,\n tls: {\n skipVerify: true,\n skipClientVerify: true,\n },\n },\n });\n}\n\ninterface CreateEdgeAgentEnvironment {\n name: string;\n portainerUrl: string;\n tunnelServerAddr?: string;\n meta?: EnvironmentMetadata;\n pollFrequency: number;\n edge: EdgeSettings;\n}\n\nexport function createEdgeAgentEnvironment({\n name,\n portainerUrl,\n meta = { tagIds: [] },\n pollFrequency,\n edge,\n}: CreateEdgeAgentEnvironment) {\n return createEnvironment(\n name,\n EnvironmentCreationTypes.EdgeAgentEnvironment,\n {\n url: portainerUrl,\n tls: {\n skipVerify: true,\n skipClientVerify: true,\n },\n pollFrequency,\n edge,\n meta,\n }\n );\n}\n\nasync function createEnvironment(\n name: string,\n creationType: EnvironmentCreationTypes,\n options?: EnvironmentOptions\n) {\n let payload: Record<string, unknown> = {\n Name: name,\n EndpointCreationType: creationType,\n };\n\n if (options) {\n const { groupId, tagIds = [] } = options.meta || {};\n\n payload = {\n ...payload,\n URL: options.url,\n PublicURL: options.publicUrl,\n GroupID: groupId,\n TagIds: arrayToJson(tagIds),\n EdgeCheckinInterval: options.pollFrequency,\n };\n\n const { tls, azure } = options;\n\n if (tls) {\n payload = {\n ...payload,\n TLS: true,\n TLSSkipVerify: tls.skipVerify,\n TLSSkipClientVerify: tls.skipClientVerify,\n TLSCACertFile: tls.caCertFile,\n TLSCertFile: tls.certFile,\n TLSKeyFile: tls.keyFile,\n };\n }\n\n if (azure) {\n payload = {\n ...payload,\n AzureApplicationID: azure.applicationId,\n AzureTenantID: azure.tenantId,\n AzureAuthenticationKey: azure.authenticationKey,\n };\n }\n\n if (options.edge?.asyncMode) {\n payload = {\n ...payload,\n EdgeAsyncMode: true,\n EdgePingInterval: options.edge?.PingInterval,\n EdgeSnapshotInterval: options.edge?.SnapshotInterval,\n EdgeCommandInterval: options.edge?.CommandInterval,\n };\n }\n }\n\n const formPayload = json2formData(payload);\n try {\n const { data } = await axios.post<Environment>(buildUrl(), formPayload);\n\n return data;\n } catch (e) {\n throw parseAxiosError(e as Error);\n }\n}\n","import { useEffect, useState } from 'react';\nimport { useMutation } from 'react-query';\n\nimport { useEnvironmentList } from '@/react/portainer/environments/queries/useEnvironmentList';\nimport {\n Environment,\n EnvironmentType,\n} from '@/react/portainer/environments/types';\nimport {\n createLocalDockerEnvironment,\n createLocalKubernetesEnvironment,\n} from '@/react/portainer/environments/environment.service/create';\n\nexport function useConnectLocalEnvironment(): {\n status: 'error' | 'loading' | 'success';\n type?: EnvironmentType;\n} {\n const [localEnvironment, setLocalEnvironment] = useState<Environment>();\n\n const { isLoading, environment } = useFetchLocalEnvironment();\n\n const createLocalEnvironmentMutation = useMutation(createLocalEnvironment);\n\n const { mutate } = createLocalEnvironmentMutation;\n\n useEffect(() => {\n if (isLoading || localEnvironment) {\n return;\n }\n\n if (environment) {\n setLocalEnvironment(environment);\n return;\n }\n\n mutate(undefined, {\n onSuccess(environment) {\n setLocalEnvironment(environment);\n },\n });\n }, [environment, isLoading, localEnvironment, mutate]);\n\n return {\n status: getStatus(isLoading, createLocalEnvironmentMutation.status),\n type: localEnvironment?.Type,\n };\n}\n\nfunction getStatus(\n isLoading: boolean,\n mutationStatus: 'loading' | 'error' | 'success' | 'idle'\n): 'loading' | 'error' | 'success' {\n if (isLoading || mutationStatus === 'loading') {\n return 'loading';\n }\n\n if (mutationStatus === 'error') {\n return 'error';\n }\n\n return 'success';\n}\n\nasync function createLocalEnvironment() {\n try {\n return await createLocalKubernetesEnvironment({ name: 'local' });\n } catch (err) {\n return await createLocalDockerEnvironment({ name: 'local' });\n }\n}\n\nfunction useFetchLocalEnvironment() {\n const { environments, isLoading } = useEnvironmentList(\n {\n page: 0,\n pageLimit: 1,\n types: [\n EnvironmentType.Docker,\n EnvironmentType.AgentOnDocker,\n EnvironmentType.KubernetesLocal,\n ],\n },\n {\n refetchInterval: false,\n staleTime: Infinity,\n }\n );\n\n let environment: Environment | undefined;\n environments.forEach((value) => {\n if (!environment) {\n if (value.Type === EnvironmentType.AgentOnDocker) {\n if (value.Name === 'primary' && value.Id === 1) {\n environment = value;\n }\n } else {\n environment = value;\n }\n }\n });\n\n return {\n isLoading,\n environment,\n };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wizardButton\":\"app-react-portainer-environments-wizard-HomeView-HomeView-module__wizard-button\",\"link\":\"app-react-portainer-environments-wizard-HomeView-HomeView-module__link\"};","import { Wand2, Plug2 } from 'lucide-react';\n\nimport { EnvironmentType } from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\nimport DockerIcon from '@/assets/ico/vendor/docker-icon.svg?c';\nimport Kube from '@/assets/ico/kube.svg?c';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { Link } from '@@/Link';\n\nimport { Option } from '../components/Option';\n\nimport { useConnectLocalEnvironment } from './useFetchOrCreateLocalEnvironment';\nimport styles from './HomeView.module.css';\n\nexport function HomeView() {\n const localEnvironmentAdded = useConnectLocalEnvironment();\n const { trackEvent } = useAnalytics();\n return (\n <>\n <PageHeader\n title=\"Quick Setup\"\n breadcrumbs={[{ label: 'Environment Wizard' }]}\n reload\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <WidgetTitle title=\"Environment Wizard\" icon={Wand2} />\n <WidgetBody>\n <div className=\"row\">\n <div className=\"col-sm-12 form-section-title\">\n Welcome to Portainer\n </div>\n <div className=\"text-muted small\">\n {localEnvironmentAdded.status === 'success' && (\n <p>\n We have connected your local environment of{' '}\n {getTypeLabel(localEnvironmentAdded.type)} to Portainer.\n </p>\n )}\n\n {localEnvironmentAdded.status === 'error' && (\n <p>\n We could not connect your local environment to Portainer.\n <br />\n Please ensure your environment is correctly exposed. For\n help with installation visit{' '}\n <a\n href=\"https://documentation.portainer.io/quickstart/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n https://documentation.portainer.io/quickstart\n </a>\n </p>\n )}\n\n <p>\n Get started below with your local portainer or connect more\n container environments.\n </p>\n </div>\n\n <div className=\"flex flex-wrap gap-4\">\n {localEnvironmentAdded.status === 'success' && (\n <Link to=\"portainer.home\" className={styles.link}>\n <Option\n icon={\n localEnvironmentAdded.type === EnvironmentType.Docker\n ? DockerIcon\n : Kube\n }\n title=\"Get Started\"\n description=\"Proceed using the local environment which Portainer is running in\"\n onClick={() => trackLocalEnvironmentAnalytics()}\n />\n </Link>\n )}\n <Link to=\"portainer.wizard.endpoints\" className={styles.link}>\n <Option\n title=\"Add Environments\"\n icon={Plug2}\n description=\"Connect to other environments\"\n />\n </Link>\n </div>\n </div>\n </WidgetBody>\n </Widget>\n </div>\n </div>\n </>\n );\n\n function trackLocalEnvironmentAnalytics() {\n trackEvent('endpoint-wizard-endpoint-select', {\n category: 'portainer',\n metadata: { environment: 'Get-started-local-environment' },\n });\n }\n}\n\nfunction getTypeLabel(type?: EnvironmentType) {\n switch (type) {\n case EnvironmentType.Docker:\n return 'Docker';\n case EnvironmentType.AgentOnDocker:\n return 'Docker Agent';\n case EnvironmentType.KubernetesLocal:\n return 'Kubernetes';\n default:\n return '';\n }\n}\n","import { BoxSelector } from '@@/BoxSelector';\n\nimport { EnvironmentOption, EnvironmentOptionValue } from './environment-types';\n\ninterface Props {\n value: EnvironmentOptionValue[];\n onChange(value: EnvironmentOptionValue[]): void;\n options: EnvironmentOption[];\n hiddenSpacingCount?: number;\n}\n\nexport function EnvironmentSelector({\n value,\n onChange,\n options,\n hiddenSpacingCount,\n}: Props) {\n return (\n <BoxSelector\n options={options}\n isMulti\n value={value}\n onChange={onChange}\n radioName=\"type-selector\"\n hiddenSpacingCount={hiddenSpacingCount}\n />\n );\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKaasIcon = function SvgKaasIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 37 32\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326DE6\",\n fillRule: \"evenodd\",\n d: \"M9.626 28.14a7.623 7.623 0 0 1-3.111-14.502c.684-5.81 5.626-10.316 11.62-10.316 5.886 0 10.757 4.347 11.578 10.006a7.623 7.623 0 0 1-2.714 14.812v.001H9.626v-.002Z\",\n clipRule: \"evenodd\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M26.042 18.12c-.024 0-.049 0-.049-.026 0-.025-.048-.025-.097-.025-.098-.025-.196-.025-.294-.025-.048 0-.097 0-.146-.025h-.024a4.816 4.816 0 0 1-.831-.15.299.299 0 0 1-.171-.176l-.195-.05c.097-.727.048-1.48-.098-2.207a6.889 6.889 0 0 0-.855-2.056l.146-.15v-.025c0-.076.025-.176.074-.226.22-.2.44-.351.684-.502l.146-.075c.098-.05.171-.1.269-.15.024-.025.049-.025.073-.05.025-.025 0-.025 0-.05a.499.499 0 0 0 .098-.703.463.463 0 0 0-.342-.175.575.575 0 0 0-.342.125l-.024.025c-.025.025-.05.05-.074.05-.073.076-.146.15-.195.226-.025.05-.073.075-.098.1-.17.201-.39.402-.61.552-.05.025-.098.05-.147.05-.024 0-.073 0-.098-.025h-.024l-.196.125c-.195-.2-.415-.4-.61-.601a6.17 6.17 0 0 0-3.176-1.304l-.024-.2v.024c-.074-.05-.098-.125-.122-.2 0-.276 0-.552.048-.853v-.025c0-.05.025-.1.025-.15.024-.1.024-.2.049-.301v-.15c.024-.251-.171-.502-.416-.527-.146-.025-.293.05-.415.175a.502.502 0 0 0-.146.351v.126c0 .1.024.2.049.3.024.05.024.1.024.151v.025c.049.276.049.552.049.853-.025.075-.05.15-.122.2v.05l-.025.201c-.268.025-.537.075-.83.125-1.148.251-2.199.878-3.005 1.756l-.146-.1h-.025c-.024 0-.049.024-.098.024-.048 0-.097-.025-.146-.05a4.553 4.553 0 0 1-.61-.576c-.025-.05-.074-.076-.098-.1-.074-.076-.123-.151-.196-.227-.024-.025-.049-.025-.073-.05l-.025-.025a.575.575 0 0 0-.342-.125c-.146 0-.268.05-.342.175a.55.55 0 0 0 .098.703c.025 0 .025.025.025.025s.048.05.073.05c.073.05.17.1.268.15l.147.075c.244.15.489.301.684.502.049.05.098.15.073.226v-.025l.147.15c-.024.05-.049.075-.073.125a6.082 6.082 0 0 0-.855 4.112l-.196.05c0 .026-.024.026-.024.026-.025.075-.098.125-.171.175a4.427 4.427 0 0 1-.83.15c-.05 0-.098 0-.147.026-.098 0-.196.025-.293.025-.025 0-.05.025-.098.025-.024 0-.024 0-.049.025-.269.05-.44.3-.39.577a.455.455 0 0 0 .488.35c.049 0 .073 0 .122-.024.024 0 .024 0 .024-.025s.074 0 .098 0c.098-.025.196-.076.269-.1.049-.026.097-.05.146-.05h.025c.268-.101.513-.176.806-.227h.024c.073 0 .147.026.196.076.024 0 .024.025.024.025l.22-.025a6.055 6.055 0 0 0 2.003 2.933c.22.176.415.326.66.452l-.123.175c0 .025.025.025.025.025a.303.303 0 0 1 .024.251c-.098.25-.244.502-.39.727v.025c-.025.05-.05.076-.098.126-.05.05-.098.15-.171.25-.025.026-.025.05-.05.076 0 0 0 .025-.024.025a.523.523 0 0 0 .196.677c.049.025.122.05.17.05.196 0 .367-.125.465-.3 0 0 0-.026.024-.026 0-.025.025-.05.05-.075.024-.1.073-.176.097-.276l.049-.15c.073-.276.195-.527.317-.778a.382.382 0 0 1 .196-.15c.024 0 .024 0 .024-.025l.098-.2a5.62 5.62 0 0 0 2.125.4c.44 0 .88-.05 1.32-.175.268-.05.537-.15.78-.226l.098.176c.025 0 .025 0 .025.025a.38.38 0 0 1 .195.15c.123.25.245.502.318.777v.025l.049.15c.024.101.049.201.098.277.024.025.024.05.048.075 0 0 0 .025.025.025.098.176.268.3.464.3.073 0 .122-.024.195-.05a.417.417 0 0 0 .22-.275.66.66 0 0 0-.024-.376c0-.025-.025-.025-.025-.025 0-.025-.024-.05-.049-.075a.9.9 0 0 0-.17-.251.439.439 0 0 0-.098-.126v-.05a2.986 2.986 0 0 1-.391-.727.304.304 0 0 1 .024-.25c0-.026.025-.026.025-.026l-.073-.2a6.173 6.173 0 0 0 2.638-3.41l.195.025c.024 0 .024-.025.024-.025a.273.273 0 0 1 .196-.076h.024c.269.05.538.126.782.226h.024a.34.34 0 0 0 .147.05c.098.05.17.1.269.126.024 0 .048.025.097.025.025 0 .025 0 .05.025.048.025.073.025.121.025.22 0 .416-.15.489-.351a.586.586 0 0 0-.44-.527Zm-7.06-.778-.659.326-.66-.326-.17-.727.464-.602h.733l.464.602-.171.727Zm3.982-1.63c.123.527.147 1.053.098 1.58l-2.32-.677c-.22-.05-.343-.276-.294-.502a.406.406 0 0 1 .098-.175l1.832-1.705c.269.451.464.952.586 1.479Zm-1.319-2.407-2.003 1.454c-.17.1-.415.075-.537-.1a.23.23 0 0 1-.073-.176l-.147-2.532a4.55 4.55 0 0 1 2.76 1.354Zm-4.421-1.279.488-.1-.122 2.507a.412.412 0 0 1-.415.401c-.073 0-.122-.025-.195-.05l-2.028-1.48a4.816 4.816 0 0 1 2.272-1.278Zm-2.98 2.207 1.808 1.655a.41.41 0 0 1 .048.576c-.049.076-.097.1-.195.126l-2.37.702a5.39 5.39 0 0 1 .709-3.06Zm-.415 4.237 2.418-.426c.195 0 .39.125.415.326a.304.304 0 0 1-.024.25l-.929 2.307a4.914 4.914 0 0 1-1.88-2.457Zm5.545 3.11a4.823 4.823 0 0 1-1.05.125c-.514 0-1.051-.1-1.54-.25l1.197-2.232c.122-.151.318-.201.489-.1.073.05.122.1.195.175l1.173 2.181c-.147.025-.293.05-.464.1Zm2.98-2.182a4.728 4.728 0 0 1-1.466 1.504l-.953-2.357a.411.411 0 0 1 .22-.476c.073-.025.147-.05.22-.05l2.443.426a3.805 3.805 0 0 1-.464.953Z\"\n })));\n};\nexport default SvgKaasIcon;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgInstallKubernetes = function SvgInstallKubernetes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 32\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326DE6\",\n d: \"M26.186 14.647c.195.89.231 1.78.147 2.67l-4.22-1.205c-.399-.09-.621-.49-.532-.892a.722.722 0 0 1 .177-.312l1.616-1.47a7.45 7.45 0 0 1-1.734-1.709l-1.525 1.083c-.31.178-.755.134-.977-.179a.405.405 0 0 1-.133-.312l-.267-4.504a8.71 8.71 0 0 1 1.529.316 7.392 7.392 0 0 1 .148-2.392 11.5 11.5 0 0 0-1.766-.332l-.044-.357v.045c-.134-.09-.178-.223-.222-.357 0-.49 0-.981.088-1.516v-.045c0-.089.045-.178.045-.267.044-.179.044-.357.09-.536V2.11c.044-.446-.312-.892-.756-.937-.266-.044-.533.09-.755.312a.882.882 0 0 0-.266.625v.223c0 .178.044.357.089.535.044.09.044.178.044.268v.044c.09.49.09.981.09 1.517-.045.133-.09.267-.223.356v.09l-.044.356c-.489.045-.978.134-1.51.223-2.088.446-3.998 1.56-5.464 3.122l-.267-.179H9.5c-.045 0-.09.045-.178.045a.63.63 0 0 1-.267-.09 8.2 8.2 0 0 1-1.11-1.025c-.044-.09-.133-.134-.178-.179-.133-.133-.222-.267-.355-.401-.044-.045-.089-.045-.133-.09l-.044-.044a1.058 1.058 0 0 0-.622-.223c-.267 0-.488.09-.622.312a.962.962 0 0 0 .178 1.25c.044 0 .044.044.044.044s.089.089.133.089c.133.09.31.178.488.268l.267.133c.444.268.888.536 1.244.892.08.082.16.236.14.365l.26.26c-.046.089-.09.133-.134.223-1.377 2.184-1.955 4.771-1.554 7.312l-.356.09c0 .044-.044.044-.044.044-.044.134-.178.223-.31.313a8.217 8.217 0 0 1-1.511.267c-.089 0-.178 0-.267.045-.177 0-.355.044-.533.044-.044 0-.088.045-.177.045-.03 0-.06.015-.09.045a.87.87 0 0 0-.71 1.025.825.825 0 0 0 .889.625c.088 0 .133 0 .221-.045.03 0 .044-.015.044-.045 0-.044.133 0 .178 0 .178-.044.356-.133.489-.178a.63.63 0 0 1 .266-.09h.044a7.884 7.884 0 0 1 1.466-.4H6.7c.133 0 .266.044.355.133.044 0 .044.045.044.045l.4-.045c.666 2.051 1.91 3.88 3.642 5.217.4.312.755.58 1.2.803l-.223.312c0 .045.045.045.045.045a.53.53 0 0 1 .044.445c-.177.446-.444.892-.71 1.294v.045c-.045.089-.09.133-.178.223-.089.089-.178.267-.31.445-.045.045-.045.09-.09.134 0 0 0 .045-.044.045a.92.92 0 0 0 .355 1.204.82.82 0 0 0 .31.09c.356 0 .667-.224.844-.536 0 0 0-.045.044-.045 0-.044.045-.089.09-.133.043-.179.132-.313.177-.49l.089-.269c.133-.49.355-.936.577-1.382a.69.69 0 0 1 .355-.268c.03 0 .045-.015.045-.044l.178-.357a10.42 10.42 0 0 0 3.864.713c.8 0 1.6-.089 2.4-.312.488-.089.977-.267 1.421-.401l.178.312c.03 0 .044.015.044.045a.693.693 0 0 1 .356.267c.222.446.444.892.577 1.383v.044l.089.268c.044.178.089.357.178.49.044.045.044.09.088.134 0 0 0 .045.045.045.177.312.488.535.843.535.133 0 .222-.044.356-.089.177-.09.355-.268.4-.49a1.143 1.143 0 0 0-.045-.67c0-.044-.045-.044-.045-.044 0-.045-.044-.09-.088-.134a1.608 1.608 0 0 0-.311-.446.79.79 0 0 0-.178-.223v-.09a5.285 5.285 0 0 1-.71-1.293.528.528 0 0 1 .044-.445c0-.045.044-.045.044-.045l-.133-.357c2.266-1.382 3.998-3.523 4.797-6.064l.356.045c.045 0 .045-.045.045-.045a.503.503 0 0 1 .355-.134h.044c.49.09.977.223 1.422.402h.044a.63.63 0 0 0 .267.089c.178.09.31.178.488.223.045 0 .09.044.178.044.03 0 .06.015.089.045.089.045.133.045.222.045.4 0 .755-.268.888-.625a1.05 1.05 0 0 0-.8-.936c-.044 0-.088 0-.088-.045 0-.044-.09-.044-.178-.044-.178-.045-.355-.045-.533-.045-.089 0-.178 0-.267-.045h-.044a8.958 8.958 0 0 1-1.51-.267.537.537 0 0 1-.311-.313l-.356-.089c.144-1.049.113-2.127-.046-3.188a7.442 7.442 0 0 1-2.232-.105Zm-9.137.395h1.333l.844 1.07-.31 1.294-1.2.58-1.2-.58-.31-1.293.843-1.07Zm-1.332-7.09.888-.178-.222 4.46c0 .4-.356.713-.755.713-.133 0-.222-.045-.356-.09l-3.687-2.63c1.155-1.115 2.576-1.918 4.131-2.275Zm-5.42 3.925 3.287 2.942c.31.268.356.714.089 1.026-.089.134-.178.178-.355.223l-4.309 1.249a9.418 9.418 0 0 1 1.288-5.44Zm4.353 7.803-1.688 4.102c-1.554-1.025-2.798-2.586-3.42-4.37l4.397-.758c.355 0 .71.223.755.58a.53.53 0 0 1-.045.446h.001Zm4.975 5.261a8.956 8.956 0 0 1-1.91.223c-.932 0-1.91-.178-2.798-.446l2.176-3.968c.222-.268.578-.357.889-.179.133.09.222.179.355.313l2.133 3.879c-.267.044-.534.09-.845.178Zm5.42-3.88a8.498 8.498 0 0 1-2.665 2.676l-1.733-4.191a.726.726 0 0 1 .4-.848c.133-.044.266-.09.4-.09l4.441.76c-.222.623-.488 1.203-.844 1.694Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#344054\",\n d: \"M27.655 13.757c3.528 0 6.388-2.85 6.388-6.366 0-3.516-2.86-6.367-6.388-6.367s-6.388 2.85-6.388 6.367c0 3.516 2.86 6.366 6.388 6.366Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M29.5 9.79h-3.63a.778.778 0 0 1-.78-.775V7.98a.259.259 0 0 1 .52 0v1.035c0 .142.116.258.26.258h3.63c.144 0 .26-.116.26-.258V7.98a.259.259 0 0 1 .52 0v1.035a.778.778 0 0 1-.78.775Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M29.165 6.505a.26.26 0 0 0-.367 0l-.854.85V4.879a.259.259 0 0 0-.519 0v2.478l-.854-.851a.26.26 0 0 0-.367 0 .258.258 0 0 0 0 .366L27.5 8.163a.276.276 0 0 0 .04.033l.018.009.027.014.026.008.023.007a.268.268 0 0 0 .101 0l.024-.007.025-.008c.01-.004.018-.01.027-.014l.018-.01a.276.276 0 0 0 .04-.032l1.296-1.292a.259.259 0 0 0 0-.366Z\"\n })));\n};\nexport default SvgInstallKubernetes;","import { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport Docker from '@/assets/ico/vendor/docker.svg?c';\nimport Kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport Azure from '@/assets/ico/vendor/azure.svg?c';\nimport KaaS from '@/assets/ico/vendor/kaas-icon.svg?c';\nimport InstallK8s from '@/assets/ico/vendor/install-kubernetes.svg?c';\n\nimport { BoxSelectorOption } from '@@/BoxSelector';\n\nexport type EnvironmentOptionValue =\n | 'dockerStandalone'\n | 'dockerSwarm'\n | 'kubernetes'\n | 'aci'\n | 'kaas'\n | 'k8sInstall';\n\nexport interface EnvironmentOption\n extends BoxSelectorOption<EnvironmentOptionValue> {\n id: EnvironmentOptionValue;\n value: EnvironmentOptionValue;\n}\n\nexport const existingEnvironmentTypes: EnvironmentOption[] = [\n {\n id: 'dockerStandalone',\n value: 'dockerStandalone',\n label: 'Docker Standalone',\n icon: Docker,\n iconType: 'logo',\n description: 'Connect to Docker Standalone via URL/IP, API or Socket',\n },\n {\n id: 'dockerSwarm',\n value: 'dockerSwarm',\n label: 'Docker Swarm',\n icon: Docker,\n iconType: 'logo',\n description: 'Connect to Docker Swarm via URL/IP, API or Socket',\n },\n {\n id: 'kubernetes',\n value: 'kubernetes',\n label: 'Kubernetes',\n icon: Kubernetes,\n iconType: 'logo',\n description: 'Connect to a Kubernetes environment via URL/IP',\n },\n {\n id: 'aci',\n value: 'aci',\n label: 'ACI',\n description: 'Connect to ACI environment via API',\n iconType: 'logo',\n icon: Azure,\n },\n];\n\nexport const newEnvironmentTypes: EnvironmentOption[] = [\n {\n id: 'kaas',\n value: 'kaas',\n label: 'Provision KaaS Cluster',\n description:\n \"Provision a Kubernetes cluster via a cloud provider's Kubernetes as a Service\",\n icon: KaaS,\n iconType: 'logo',\n feature: FeatureId.KAAS_PROVISIONING,\n disabledWhenLimited: true,\n },\n {\n id: 'k8sInstall',\n value: 'k8sInstall',\n label: 'Create Kubernetes cluster',\n description: 'Create a Kubernetes cluster on existing infrastructure',\n icon: InstallK8s,\n iconType: 'logo',\n feature: FeatureId.K8SINSTALL,\n disabledWhenLimited: true,\n },\n];\n\nexport const environmentTypes = [\n ...existingEnvironmentTypes,\n ...newEnvironmentTypes,\n];\n\nexport const formTitles: Record<EnvironmentOptionValue, string> = {\n dockerStandalone: 'Connect to your Docker Standalone environment',\n dockerSwarm: 'Connect to your Docker Swarm environment',\n kubernetes: 'Connect to your Kubernetes environment',\n aci: 'Connect to your ACI environment',\n kaas: 'Provision a KaaS environment',\n k8sInstall: 'Create a Kubernetes cluster',\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"stepperWrapper\":\"app-react-components-Stepper-Stepper-module__stepper-wrapper\",\"stepWrapper\":\"app-react-components-Stepper-Stepper-module__step-wrapper\",\"step\":\"app-react-components-Stepper-Stepper-module__step\",\"stepName\":\"app-react-components-Stepper-Stepper-module__step-name\",\"active\":\"app-react-components-Stepper-Stepper-module__active\",\"stepCounter\":\"app-react-components-Stepper-Stepper-module__step-counter\",\"completed\":\"app-react-components-Stepper-Stepper-module__completed\"};","import clsx from 'clsx';\n\nimport styles from './Stepper.module.css';\n\nexport interface Step {\n label: string;\n}\n\ninterface Props {\n currentStep: number;\n steps: Step[];\n}\n\nexport function Stepper({ currentStep, steps }: Props) {\n return (\n <div className={styles.stepperWrapper}>\n {steps.map((step, index) => (\n <div\n key={step.label}\n className={clsx(styles.stepWrapper, {\n [styles.active]: index + 1 === currentStep,\n [styles.completed]: index + 1 < currentStep,\n })}\n >\n <div className={styles.step}>\n <div className={styles.stepCounter}>{index + 1}</div>\n <div className={styles.stepName}>{step.label}</div>\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import { useQueryClient, useMutation, MutationFunction } from 'react-query';\n\nimport {\n createRemoteEnvironment,\n createLocalDockerEnvironment,\n createAzureEnvironment,\n createAgentEnvironment,\n createEdgeAgentEnvironment,\n createLocalKubernetesEnvironment,\n} from '../environment.service/create';\n\nexport function useCreateAzureEnvironmentMutation() {\n return useGenericCreationMutation(createAzureEnvironment);\n}\n\nexport function useCreateLocalDockerEnvironmentMutation() {\n return useGenericCreationMutation(createLocalDockerEnvironment);\n}\n\nexport function useCreateLocalKubernetesEnvironmentMutation() {\n return useGenericCreationMutation(createLocalKubernetesEnvironment);\n}\n\nexport function useCreateRemoteEnvironmentMutation(\n creationType: Parameters<typeof createRemoteEnvironment>[0]['creationType']\n) {\n return useGenericCreationMutation(\n (\n params: Omit<\n Parameters<typeof createRemoteEnvironment>[0],\n 'creationType'\n >\n ) => createRemoteEnvironment({ creationType, ...params })\n );\n}\n\nexport function useCreateAgentEnvironmentMutation() {\n return useGenericCreationMutation(createAgentEnvironment);\n}\n\nexport function useCreateEdgeAgentEnvironmentMutation() {\n return useGenericCreationMutation(createEdgeAgentEnvironment);\n}\n\nfunction useGenericCreationMutation<TData = unknown, TVariables = void>(\n mutation: MutationFunction<TData, TVariables>\n) {\n const queryClient = useQueryClient();\n\n return useMutation(mutation, {\n onSuccess() {\n return queryClient.invalidateQueries(['environments']);\n },\n meta: {\n error: {\n title: 'Failure',\n message: 'Unable to create environment',\n },\n },\n });\n}\n","import { useField } from 'formik';\nimport { PropsWithChildren } from 'react';\n\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { TagSelector } from '@@/TagSelector';\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { GroupField } from './GroupsField';\n\nexport function MetadataFieldset({ children }: PropsWithChildren<unknown>) {\n const [tagProps, , tagHelpers] = useField('meta.tagIds');\n\n const { isPureAdmin } = useCurrentUser();\n\n return (\n <FormSection title=\"Metadata\">\n {children}\n\n <GroupField />\n\n <TagSelector\n value={tagProps.value}\n allowCreate={isPureAdmin}\n onChange={(value) => tagHelpers.setValue(value)}\n />\n </FormSection>\n );\n}\n","import { PropsWithChildren } from 'react';\n\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { MetadataFieldset } from './MetadataFieldset';\n\nexport function MoreSettingsSection({ children }: PropsWithChildren<unknown>) {\n return (\n <FormSection title=\"More settings\" className=\"ml-0\" isFoldable>\n <div className=\"ml-8\">\n {children}\n\n <MetadataFieldset />\n </div>\n </FormSection>\n );\n}\n","import { useField } from 'formik';\nimport { string } from 'yup';\n\nimport { getEnvironments } from '@/react/portainer/environments/environment.service';\nimport { useDebounce } from '@/react/hooks/useDebounce';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { useCachedValidation } from '@@/form-components/useCachedTest';\n\ninterface Props {\n readonly?: boolean;\n tooltip?: string;\n placeholder?: string;\n}\n\nexport function NameField({\n readonly,\n tooltip,\n placeholder = 'e.g. docker-prod01 / kubernetes-cluster01',\n}: Props) {\n const [{ value }, meta, { setValue }] = useField('name');\n\n const id = 'name-input';\n\n const [debouncedValue, setDebouncedValue] = useDebounce(value, setValue);\n\n return (\n <FormControl\n label=\"Name\"\n required\n errors={meta.error}\n inputId={id}\n tooltip={tooltip}\n >\n <Input\n id={id}\n name=\"name\"\n onChange={(e) => setDebouncedValue(e.target.value)}\n value={debouncedValue}\n data-cy=\"endpointCreate-nameInput\"\n placeholder={placeholder}\n readOnly={readonly}\n />\n </FormControl>\n );\n}\n\nexport async function isNameUnique(name = '') {\n if (!name) {\n return true;\n }\n\n try {\n const result = await getEnvironments({\n limit: 1,\n query: { name, excludeSnapshots: true },\n });\n return (\n result.totalCount === 0 || result.value.every((e) => e.Name !== name)\n );\n } catch (e) {\n // if backend fails to respond, assume name is unique, name validation happens also in the backend\n return true;\n }\n}\n\nexport function useNameValidation() {\n const uniquenessTest = useCachedValidation(isNameUnique);\n\n return string()\n .required('Name is required')\n .test('unique-name', 'Name should be unique', uniquenessTest);\n}\n","import { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport { PortainerTunnelAddrField } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { PortainerUrlField } from '@/react/portainer/common/PortainerUrlField';\n\nimport { NameField } from '../../NameField';\n\ninterface EdgeAgentFormProps {\n readonly?: boolean;\n asyncMode?: boolean;\n}\n\nexport function EdgeAgentFieldset({ readonly, asyncMode }: EdgeAgentFormProps) {\n return (\n <>\n <NameField readonly={readonly} />\n <PortainerUrlField\n fieldName=\"portainerUrl\"\n readonly={readonly}\n required\n />\n {isBE && !asyncMode && (\n <PortainerTunnelAddrField\n fieldName=\"tunnelServerAddr\"\n readonly={readonly}\n required\n />\n )}\n </>\n );\n}\n","import { object, number, array, SchemaOf } from 'yup';\n\nimport { EnvironmentMetadata } from '@/react/portainer/environments/environment.service/create';\n\nexport function metadataValidation(): SchemaOf<EnvironmentMetadata> {\n return object({\n groupId: number(),\n tagIds: array().of(number()).default([]),\n });\n}\n","import { Formik, Form } from 'formik';\nimport { Plug2 } from 'lucide-react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { useCreateEdgeAgentEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { Settings } from '@/react/portainer/settings/types';\nimport { EdgeCheckinIntervalField } from '@/react/edge/components/EdgeCheckInIntervalField';\nimport {\n EdgeAsyncIntervalsForm,\n EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n} from '@/react/edge/components/EdgeAsyncIntervalsForm';\nimport { useSettings } from '@/react/portainer/settings/queries';\nimport { buildDefaultValue as buildTunnelDefaultValue } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { buildDefaultValue as buildApiUrlDefaultValue } from '@/react/portainer/common/PortainerUrlField';\n\nimport { FormSection } from '@@/form-components/FormSection';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\n\nimport { MoreSettingsSection } from '../../MoreSettingsSection';\n\nimport { EdgeAgentFieldset } from './EdgeAgentFieldset';\nimport { useValidationSchema } from './EdgeAgentForm.validation';\nimport { FormValues } from './types';\n\ninterface Props {\n onCreate(environment: Environment): void;\n readonly: boolean;\n asyncMode: boolean;\n}\n\nexport function EdgeAgentForm({ onCreate, readonly, asyncMode }: Props) {\n const settingsQuery = useSettings();\n\n const createMutation = useCreateEdgeAgentEnvironmentMutation();\n const validation = useValidationSchema();\n\n if (!settingsQuery.data) {\n return null;\n }\n\n const settings = settingsQuery.data;\n\n const initialValues = buildInitialValues(settings);\n\n return (\n <Formik<FormValues>\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validateOnMount\n validationSchema={validation}\n >\n {({ isValid, setFieldValue, values }) => (\n <Form>\n <EdgeAgentFieldset readonly={readonly} asyncMode={asyncMode} />\n\n <MoreSettingsSection>\n <FormSection title=\"Check-in Intervals\">\n {asyncMode ? (\n <EdgeAsyncIntervalsForm\n values={values.edge}\n readonly={readonly}\n onChange={(values) => setFieldValue('edge', values)}\n />\n ) : (\n <EdgeCheckinIntervalField\n readonly={readonly}\n onChange={(value) => setFieldValue('pollFrequency', value)}\n value={values.pollFrequency}\n />\n )}\n </FormSection>\n </MoreSettingsSection>\n\n {!readonly && (\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <LoadingButton\n className=\"vertical-center\"\n isLoading={createMutation.isLoading}\n loadingText=\"Creating environment...\"\n disabled={!isValid}\n icon={Plug2}\n >\n Create\n </LoadingButton>\n </div>\n </div>\n )}\n </Form>\n )}\n </Formik>\n );\n\n function handleSubmit(values: typeof initialValues) {\n createMutation.mutate(\n {\n ...values,\n edge: {\n ...values.edge,\n asyncMode,\n },\n },\n {\n onSuccess(environment) {\n onCreate(environment);\n },\n }\n );\n }\n}\n\nexport function buildInitialValues(settings: Settings): FormValues {\n return {\n name: '',\n portainerUrl: settings.EdgePortainerUrl || buildApiUrlDefaultValue(),\n tunnelServerAddr:\n settings.Edge.TunnelServerAddress || buildTunnelDefaultValue(),\n pollFrequency: 0,\n meta: {\n groupId: 1,\n tagIds: [],\n },\n edge: {\n CommandInterval: EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n PingInterval: EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n SnapshotInterval: EDGE_ASYNC_INTERVAL_USE_DEFAULT,\n },\n };\n}\n","import { number, object, SchemaOf, string } from 'yup';\n\nimport {\n edgeAsyncIntervalsValidation,\n EdgeAsyncIntervalsValues,\n} from '@/react/edge/components/EdgeAsyncIntervalsForm';\nimport { validation as urlValidation } from '@/react/portainer/common/PortainerTunnelAddrField';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { metadataValidation } from '../../MetadataFieldset/validation';\nimport { useNameValidation } from '../../NameField';\n\nimport { FormValues } from './types';\n\nexport function useValidationSchema(): SchemaOf<FormValues> {\n const nameValidation = useNameValidation();\n\n return object().shape({\n name: nameValidation,\n portainerUrl: urlValidation(),\n tunnelServerAddr: string(),\n pollFrequency: number().required(),\n meta: metadataValidation(),\n edge: isBE\n ? edgeAsyncIntervalsValidation()\n : (null as unknown as SchemaOf<EdgeAsyncIntervalsValues>),\n });\n}\n","import { v4 as uuid } from 'uuid';\nimport { useReducer, useState } from 'react';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { EdgeScriptForm } from '@/react/edge/components/EdgeScriptForm';\nimport { CommandTab } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { OS, EdgeInfo } from '@/react/edge/components/EdgeScriptForm/types';\nimport { EdgeKeyDisplay } from '@/react/portainer/environments/ItemView/EdgeKeyDisplay';\n\nimport { Button } from '@@/buttons';\n\nimport { EdgeAgentForm } from './EdgeAgentForm';\n\ninterface Props {\n onCreate: (environment: Environment) => void;\n commands: CommandTab[] | Partial<Record<OS, CommandTab[]>>;\n asyncMode?: boolean;\n}\n\nexport function EdgeAgentTab({ onCreate, commands, asyncMode = false }: Props) {\n const [edgeInfo, setEdgeInfo] = useState<EdgeInfo>();\n const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n\n return (\n <>\n <EdgeAgentForm\n onCreate={handleCreate}\n readonly={!!edgeInfo}\n key={formKey}\n asyncMode={asyncMode}\n />\n\n {edgeInfo && (\n <>\n <div className=\"clear-both\" />\n\n <hr />\n\n <EdgeKeyDisplay edgeKey={edgeInfo.key} />\n\n <hr />\n\n <EdgeScriptForm\n edgeInfo={edgeInfo}\n commands={commands}\n asyncMode={asyncMode}\n />\n\n <hr />\n\n <div className=\"row\">\n <div className=\"flex justify-end\">\n <Button color=\"primary\" type=\"reset\" onClick={handleReset}>\n Add another environment\n </Button>\n </div>\n </div>\n </>\n )}\n </>\n );\n\n function handleCreate(environment: Environment) {\n setEdgeInfo({ key: environment.EdgeKey, id: environment.EdgeID || uuid() });\n onCreate(environment);\n }\n\n function handleReset() {\n setEdgeInfo(undefined);\n clearForm();\n }\n}\n","import { Field, useField } from 'formik';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nexport function EnvironmentUrlField() {\n const [, meta] = useField('environmentUrl');\n\n return (\n <FormControl\n label=\"Environment address\"\n errors={meta.error}\n required\n inputId=\"environment-url-field\"\n tooltip=\"<HOST>:<PORT> or <IP>:<PORT>\"\n >\n <Field\n id=\"environment-url-field\"\n name=\"environmentUrl\"\n as={Input}\n placeholder=\"e.g. 10.0.0.10:9001 or tasks.portainer_agent:9001\"\n data-cy=\"endpointCreate-endpointUrlAgentInput\"\n />\n </FormControl>\n );\n}\n","import { object, SchemaOf, string } from 'yup';\n\nimport { CreateAgentEnvironmentValues } from '@/react/portainer/environments/environment.service/create';\n\nimport { metadataValidation } from '../MetadataFieldset/validation';\nimport { useNameValidation } from '../NameField';\n\nexport function useValidation(): SchemaOf<CreateAgentEnvironmentValues> {\n return object({\n name: useNameValidation(),\n environmentUrl: environmentValidation(),\n meta: metadataValidation(),\n });\n}\n\nfunction environmentValidation() {\n return string()\n .required('This field is required')\n .test(\n 'address',\n 'Environment address must be of the form <IP>:<PORT> or <HOST>:<PORT>.',\n (environmentUrl) => validateAddress(environmentUrl)\n );\n}\n\nexport function validateAddress(address: string | undefined) {\n if (typeof address === 'undefined') {\n return false;\n }\n\n if (address.indexOf('://') > -1) {\n return false;\n }\n\n const [host, port] = address.split(':');\n\n if (\n host.length === 0 ||\n Number.isNaN(parseInt(port, 10)) ||\n port.match(/^[0-9]+$/) == null ||\n parseInt(port, 10) < 1 ||\n parseInt(port, 10) > 65535\n ) {\n return false;\n }\n\n return true;\n}\n","import { Form, Formik } from 'formik';\nimport { useReducer } from 'react';\nimport { Plug2 } from 'lucide-react';\n\nimport { useCreateAgentEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { CreateAgentEnvironmentValues } from '@/react/portainer/environments/environment.service/create';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\n\nimport { NameField } from '../NameField';\nimport { MoreSettingsSection } from '../MoreSettingsSection';\n\nimport { EnvironmentUrlField } from './EnvironmentUrlField';\nimport { useValidation } from './AgentForm.validation';\n\ninterface Props {\n onCreate(environment: Environment): void;\n}\n\nconst initialValues: CreateAgentEnvironmentValues = {\n environmentUrl: '',\n name: '',\n meta: {\n groupId: 1,\n tagIds: [],\n },\n};\n\nexport function AgentForm({ onCreate }: Props) {\n const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n\n const mutation = useCreateAgentEnvironmentMutation();\n const validation = useValidation();\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={validation}\n validateOnMount\n key={formKey}\n >\n {({ isValid, dirty }) => (\n <Form>\n <NameField />\n <EnvironmentUrlField />\n\n <MoreSettingsSection />\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n className=\"wizard-connect-button vertical-center\"\n loadingText=\"Connecting environment...\"\n isLoading={mutation.isLoading}\n disabled={!dirty || !isValid}\n icon={Plug2}\n >\n Connect\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n );\n\n function handleSubmit(values: CreateAgentEnvironmentValues) {\n mutation.mutate(values, {\n onSuccess(environment) {\n notifySuccess('Environment created', environment.Name);\n clearForm();\n onCreate(environment);\n },\n });\n }\n}\n","import { useState } from 'react';\n\nimport { useAgentDetails } from '@/react/portainer/environments/queries/useAgentDetails';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\nimport { Code } from '@@/Code';\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nconst deploymentsStandalone = [\n {\n id: 'linux',\n label: 'Linux & Windows WSL',\n command: linuxStandaloneCommand,\n },\n {\n id: 'win',\n label: 'Windows WCS',\n command: winStandaloneCommand,\n },\n];\n\nconst deploymentsSwarm = [\n {\n id: 'linux',\n label: 'Linux & Windows WSL',\n command: linuxSwarmCommand,\n },\n {\n id: 'win',\n label: 'Windows WCS',\n command: winSwarmCommand,\n },\n];\n\ninterface Props {\n isDockerStandalone?: boolean;\n}\n\nexport function DeploymentScripts({ isDockerStandalone }: Props) {\n const deployments = isDockerStandalone\n ? deploymentsStandalone\n : deploymentsSwarm;\n const [deployType, setDeployType] = useState(deployments[0].id);\n\n const agentDetailsQuery = useAgentDetails();\n\n if (!agentDetailsQuery) {\n return null;\n }\n\n const { agentVersion, agentSecret } = agentDetailsQuery;\n\n const options = deployments.map((c) => {\n const code = c.command(agentVersion, agentSecret);\n\n return {\n id: c.id,\n label: c.label,\n children: <DeployCode code={code} />,\n };\n });\n\n return (\n <NavContainer>\n <NavTabs\n options={options}\n onSelect={(id: string) => setDeployType(id)}\n selectedId={deployType}\n />\n </NavContainer>\n );\n}\n\ninterface DeployCodeProps {\n code: string;\n}\n\nfunction DeployCode({ code }: DeployCodeProps) {\n return (\n <>\n <div className=\"code-script\">\n <Code>{code}</Code>\n </div>\n <div className=\"mt-2\">\n <CopyButton copyText={code}>Copy command</CopyButton>\n </div>\n </>\n );\n}\n\nfunction linuxStandaloneCommand(agentVersion: string, agentSecret: string) {\n const secret =\n agentSecret === '' ? '' : `\\\\\\n -e AGENT_SECRET=${agentSecret} `;\n\n return `docker run -d \\\\\n -p 9001:9001 ${secret}\\\\\n --name portainer_agent \\\\\n --restart=always \\\\\n -v /var/run/docker.sock:/var/run/docker.sock \\\\\n -v /var/lib/docker/volumes:/var/lib/docker/volumes \\\\\n -v /:/host \\\\\n portainer/agent:${agentVersion}\n`;\n}\n\nfunction linuxSwarmCommand(agentVersion: string, agentSecret: string) {\n const secret =\n agentSecret === '' ? '' : `\\\\\\n -e AGENT_SECRET=${agentSecret} `;\n\n return `docker network create \\\\\n--driver overlay \\\\\n portainer_agent_network\n\ndocker service create \\\\\n --name portainer_agent \\\\\n --network portainer_agent_network \\\\\n -p 9001:9001/tcp ${secret}\\\\\n --mode global \\\\\n --constraint 'node.platform.os == linux' \\\\\n --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \\\\\n --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes \\\\\n --mount type=bind,src=//,dst=/host \\\\\n portainer/agent:${agentVersion}\n`;\n}\n\nfunction winStandaloneCommand(agentVersion: string, agentSecret: string) {\n const secret =\n agentSecret === '' ? '' : `\\\\\\n -e AGENT_SECRET=${agentSecret} `;\n\n return `docker run -d \\\\\n -p 9001:9001 ${secret}\\\\\n --name portainer_agent \\\\\n --restart=always \\\\\n -v C:\\\\:C:\\\\host \\\\\n -v C:\\\\ProgramData\\\\docker\\\\volumes:C:\\\\ProgramData\\\\docker\\\\volumes \\\\\n -v \\\\\\\\.\\\\pipe\\\\docker_engine:\\\\\\\\.\\\\pipe\\\\docker_engine \\\\\n portainer/agent:${agentVersion}\n`;\n}\n\nfunction winSwarmCommand(agentVersion: string, agentSecret: string) {\n const secret =\n agentSecret === '' ? '' : `\\\\\\n -e AGENT_SECRET=${agentSecret} `;\n\n return `docker network create \\\\\n--driver overlay \\\\\n portainer_agent_network && \\\\\ndocker service create \\\\\n --name portainer_agent \\\\\n --network portainer_agent_network \\\\\n -p 9001:9001/tcp ${secret}\\\\\n --mode global \\\\\n --constraint 'node.platform.os == windows' \\\\\n --mount type=npipe,src=\\\\\\\\.\\\\pipe\\\\docker_engine,dst=\\\\\\\\.\\\\pipe\\\\docker_engine \\\\\n --mount type=bind,src=C:\\\\ProgramData\\\\docker\\\\volumes,dst=C:\\\\ProgramData\\\\docker\\\\volumes \\\\\n portainer/agent:${agentVersion}\n`;\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { AgentForm } from '../../shared/AgentForm/AgentForm';\n\nimport { DeploymentScripts } from './DeploymentScripts';\n\ninterface Props {\n onCreate(environment: Environment): void;\n isDockerStandalone?: boolean;\n}\n\nexport function AgentTab({ onCreate, isDockerStandalone }: Props) {\n return (\n <>\n <DeploymentScripts isDockerStandalone={isDockerStandalone} />\n\n <div className=\"mt-5\">\n <AgentForm onCreate={onCreate} />\n </div>\n </>\n );\n}\n","import { Field, Form, Formik } from 'formik';\nimport { useReducer } from 'react';\nimport { Plug2 } from 'lucide-react';\n\nimport { useCreateRemoteEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n Environment,\n EnvironmentCreationTypes,\n} from '@/react/portainer/environments/types';\nimport { TLSFieldset } from '@/react/components/TLSFieldset/TLSFieldset';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { NameField } from '../../shared/NameField';\nimport { MoreSettingsSection } from '../../shared/MoreSettingsSection';\n\nimport { useValidation } from './APIForm.validation';\nimport { FormValues } from './types';\n\ninterface Props {\n onCreate(environment: Environment): void;\n}\n\nexport function APIForm({ onCreate }: Props) {\n const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n const initialValues: FormValues = {\n url: '',\n name: '',\n tlsConfig: {\n tls: false,\n skipVerify: false,\n },\n meta: {\n groupId: 1,\n tagIds: [],\n },\n };\n\n const mutation = useCreateRemoteEnvironmentMutation(\n EnvironmentCreationTypes.LocalDockerEnvironment\n );\n\n const validation = useValidation();\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={validation}\n validateOnMount\n key={formKey}\n >\n {({ values, errors, setFieldValue, isValid, dirty }) => (\n <Form>\n <NameField />\n\n <FormControl\n inputId=\"url-field\"\n label=\"Docker API URL\"\n required\n tooltip=\"URL or IP address of a Docker host. The Docker API must be exposed over a TCP port. Please refer to the Docker documentation to configure it.\"\n >\n <Field\n as={Input}\n id=\"url-field\"\n name=\"url\"\n placeholder=\"e.g. 10.0.0.10:2375 or mydocker.mydomain.com:2375\"\n />\n </FormControl>\n\n <TLSFieldset\n values={values.tlsConfig}\n onChange={(value) =>\n Object.entries(value).forEach(([key, value]) =>\n setFieldValue(`tlsConfig.${key}`, value)\n )\n }\n errors={errors.tlsConfig}\n />\n\n <MoreSettingsSection />\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n className=\"wizard-connect-button vertical-center\"\n loadingText=\"Connecting environment...\"\n isLoading={mutation.isLoading}\n disabled={!dirty || !isValid}\n icon={Plug2}\n >\n Connect\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n );\n\n function handleSubmit(values: FormValues) {\n const tls = getTlsValues();\n\n mutation.mutate(\n {\n name: values.name,\n url: values.url,\n options: {\n tls,\n meta: values.meta,\n },\n },\n {\n onSuccess(environment) {\n notifySuccess('Environment created', environment.Name);\n clearForm();\n onCreate(environment);\n },\n }\n );\n function getTlsValues() {\n if (!values.tlsConfig.tls) {\n return undefined;\n }\n\n return {\n skipVerify: values.tlsConfig.skipVerify,\n ...getCertFiles(),\n };\n\n function getCertFiles() {\n if (values.tlsConfig.skipVerify) {\n return {};\n }\n\n return {\n caCertFile: values.tlsConfig.caCertFile,\n certFile: values.tlsConfig.certFile,\n keyFile: values.tlsConfig.keyFile,\n };\n }\n }\n }\n}\n","import { object, SchemaOf, string } from 'yup';\n\nimport { tlsConfigValidation } from '@/react/components/TLSFieldset/TLSFieldset';\n\nimport { metadataValidation } from '../../shared/MetadataFieldset/validation';\nimport { useNameValidation } from '../../shared/NameField';\n\nimport { FormValues } from './types';\n\nexport function useValidation(): SchemaOf<FormValues> {\n return object({\n name: useNameValidation(),\n url: string().required('This field is required.'),\n tlsConfig: tlsConfigValidation(),\n meta: metadataValidation(),\n });\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { APIForm } from './APIForm';\n\ninterface Props {\n onCreate(environment: Environment): void;\n}\n\nexport function APITab({ onCreate }: Props) {\n return (\n <div className=\"mt-5\">\n <APIForm onCreate={onCreate} />\n </div>\n );\n}\n","import { useState } from 'react';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\nimport { Code } from '@@/Code';\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nconst deployments = [\n {\n id: 'linux',\n label: 'Linux',\n command: `-v \"/var/run/docker.sock:/var/run/docker.sock\"`,\n },\n {\n id: 'win',\n label: 'Windows',\n command: '-v \\\\.\\\\pipe\\\\docker_engine:\\\\.\\\\pipe\\\\docker_engine',\n },\n];\n\nexport function DeploymentScripts() {\n const [deployType, setDeployType] = useState(deployments[0].id);\n\n const options = deployments.map((c) => ({\n id: c.id,\n label: c.label,\n children: <DeployCode code={c.command} />,\n }));\n\n return (\n <NavContainer>\n <NavTabs\n options={options}\n onSelect={(id: string) => setDeployType(id)}\n selectedId={deployType}\n />\n </NavContainer>\n );\n}\n\ninterface DeployCodeProps {\n code: string;\n}\n\nfunction DeployCode({ code }: DeployCodeProps) {\n return (\n <>\n <span className=\"text-muted small\">\n When using the socket, ensure that you have started the Portainer\n container with the following Docker flag:\n </span>\n\n <Code>{code}</Code>\n <div className=\"mt-2\">\n <CopyButton copyText={code}>Copy command</CopyButton>\n </div>\n </>\n );\n}\n","import { Field, Form, Formik, useFormikContext } from 'formik';\nimport { useReducer } from 'react';\nimport { Plug2 } from 'lucide-react';\n\nimport { useCreateLocalDockerEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { Environment } from '@/react/portainer/environments/types';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { SwitchField } from '@@/form-components/SwitchField';\n\nimport { NameField } from '../../shared/NameField';\nimport { MoreSettingsSection } from '../../shared/MoreSettingsSection';\n\nimport { useValidation } from './SocketForm.validation';\nimport { FormValues } from './types';\n\ninterface Props {\n onCreate(environment: Environment): void;\n}\n\nexport function SocketForm({ onCreate }: Props) {\n const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n const initialValues: FormValues = {\n name: '',\n socketPath: '',\n overridePath: false,\n meta: { groupId: 1, tagIds: [] },\n };\n\n const mutation = useCreateLocalDockerEnvironmentMutation();\n const validation = useValidation();\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={validation}\n validateOnMount\n key={formKey}\n >\n {({ isValid, dirty }) => (\n <Form>\n <NameField />\n\n <OverrideSocketFieldset />\n\n <MoreSettingsSection />\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n className=\"wizard-connect-button vertical-center\"\n loadingText=\"Connecting environment...\"\n isLoading={mutation.isLoading}\n disabled={!dirty || !isValid}\n icon={Plug2}\n >\n Connect\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n );\n\n function handleSubmit(values: FormValues) {\n mutation.mutate(\n {\n name: values.name,\n socketPath: values.overridePath ? values.socketPath : '',\n meta: values.meta,\n },\n {\n onSuccess(environment) {\n notifySuccess('Environment created', environment.Name);\n clearForm();\n onCreate(environment);\n },\n }\n );\n }\n}\n\nfunction OverrideSocketFieldset() {\n const { values, setFieldValue, errors } = useFormikContext<FormValues>();\n\n return (\n <>\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <SwitchField\n checked={values.overridePath}\n onChange={(checked) => setFieldValue('overridePath', checked)}\n label=\"Override default socket path\"\n labelClass=\"col-sm-3 col-lg-2\"\n />\n </div>\n </div>\n {values.overridePath && (\n <FormControl\n label=\"Socket Path\"\n tooltip=\"Path to the Docker socket. Remember to bind-mount the socket, see the important notice above for more information.\"\n errors={errors.socketPath}\n >\n <Field\n name=\"socketPath\"\n as={Input}\n placeholder=\"e.g. /var/run/docker.sock (on Linux) or //./pipe/docker_engine (on Windows)\"\n />\n </FormControl>\n )}\n </>\n );\n}\n","import { boolean, object, SchemaOf, string } from 'yup';\n\nimport { metadataValidation } from '../../shared/MetadataFieldset/validation';\nimport { useNameValidation } from '../../shared/NameField';\n\nimport { FormValues } from './types';\n\nexport function useValidation(): SchemaOf<FormValues> {\n return object({\n name: useNameValidation(),\n meta: metadataValidation(),\n overridePath: boolean().default(false),\n socketPath: string()\n .default('')\n .when('overridePath', (overridePath, schema) =>\n overridePath\n ? schema.required(\n 'Socket Path is required when override path is enabled'\n )\n : schema\n ),\n });\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { DeploymentScripts } from '../APITab/DeploymentScripts';\n\nimport { SocketForm } from './SocketForm';\n\ninterface Props {\n onCreate(environment: Environment): void;\n}\n\nexport function SocketTab({ onCreate }: Props) {\n return (\n <>\n <DeploymentScripts />\n\n <div className=\"mt-5\">\n <SocketForm onCreate={onCreate} />\n </div>\n </>\n );\n}\n","import { useState } from 'react';\nimport { Zap, Network, Plug2 } from 'lucide-react';\nimport _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { commandsTabs } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport EdgeAgentStandardIcon from '@/react/edge/components/edge-agent-standard.svg?c';\nimport EdgeAgentAsyncIcon from '@/react/edge/components/edge-agent-async.svg?c';\n\nimport { BoxSelector, type BoxSelectorOption } from '@@/BoxSelector';\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nimport { AnalyticsStateKey } from '../types';\nimport { EdgeAgentTab } from '../shared/EdgeAgentTab';\n\nimport { AgentTab } from './AgentTab';\nimport { APITab } from './APITab';\nimport { SocketTab } from './SocketTab';\n\ninterface Props {\n onCreate(environment: Environment, analytics: AnalyticsStateKey): void;\n isDockerStandalone?: boolean;\n}\n\nconst options: BoxSelectorOption<\n 'agent' | 'api' | 'socket' | 'edgeAgentStandard' | 'edgeAgentAsync'\n>[] = _.compact([\n {\n id: 'agent',\n icon: <BadgeIcon icon={Zap} size=\"3xl\" />,\n label: 'Agent',\n description: '',\n value: 'agent',\n },\n {\n id: 'api',\n icon: <BadgeIcon icon={Network} size=\"3xl\" />,\n label: 'API',\n description: '',\n value: 'api',\n },\n {\n id: 'socket',\n icon: <BadgeIcon icon={Plug2} size=\"3xl\" />,\n label: 'Socket',\n description: '',\n value: 'socket',\n },\n {\n id: 'edgeAgentStandard',\n icon: <BadgeIcon icon={EdgeAgentStandardIcon} size=\"3xl\" />,\n label: 'Edge Agent Standard',\n description: '',\n value: 'edgeAgentStandard',\n },\n isBE && {\n id: 'edgeAgentAsync',\n icon: <BadgeIcon icon={EdgeAgentAsyncIcon} size=\"3xl\" />,\n label: 'Edge Agent Async',\n description: '',\n value: 'edgeAgentAsync',\n },\n]);\n\nexport function WizardDocker({ onCreate, isDockerStandalone }: Props) {\n const [creationType, setCreationType] = useState(options[0].value);\n\n const tab = getTab(creationType);\n\n return (\n <div className=\"form-horizontal\">\n <BoxSelector\n onChange={(v) => setCreationType(v)}\n options={options}\n value={creationType}\n radioName=\"creation-type\"\n />\n\n {tab}\n </div>\n );\n\n function getTab(\n creationType:\n | 'agent'\n | 'api'\n | 'socket'\n | 'edgeAgentStandard'\n | 'edgeAgentAsync'\n ) {\n switch (creationType) {\n case 'agent':\n return (\n <AgentTab\n onCreate={(environment) => onCreate(environment, 'dockerAgent')}\n isDockerStandalone={isDockerStandalone}\n />\n );\n case 'api':\n return (\n <APITab\n onCreate={(environment) => onCreate(environment, 'dockerApi')}\n />\n );\n case 'socket':\n return (\n <SocketTab\n onCreate={(environment) => onCreate(environment, 'localEndpoint')}\n />\n );\n case 'edgeAgentStandard':\n return (\n <EdgeAgentTab\n onCreate={(environment) =>\n onCreate(environment, 'dockerEdgeAgentStandard')\n }\n commands={{\n linux: isDockerStandalone\n ? [commandsTabs.standaloneLinux]\n : [commandsTabs.swarmLinux],\n win: isDockerStandalone\n ? [commandsTabs.standaloneWindow]\n : [commandsTabs.swarmWindows],\n }}\n />\n );\n case 'edgeAgentAsync':\n return (\n <EdgeAgentTab\n asyncMode\n onCreate={(environment) =>\n onCreate(environment, 'dockerEdgeAgentAsync')\n }\n commands={{\n linux: isDockerStandalone\n ? [commandsTabs.standaloneLinux]\n : [commandsTabs.swarmLinux],\n win: isDockerStandalone\n ? [commandsTabs.standaloneWindow]\n : [commandsTabs.swarmWindows],\n }}\n />\n );\n default:\n return null;\n }\n }\n}\n","import { Field, Form, Formik } from 'formik';\nimport { useReducer, useState } from 'react';\nimport { object, SchemaOf, string } from 'yup';\nimport { Network, Plug2 } from 'lucide-react';\n\nimport { useCreateAzureEnvironmentMutation } from '@/react/portainer/environments/queries/useCreateEnvironmentMutation';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { Environment } from '@/react/portainer/environments/types';\nimport { EnvironmentMetadata } from '@/react/portainer/environments/environment.service/create';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { Input } from '@@/form-components/Input';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { BoxSelector, BoxSelectorOption } from '@@/BoxSelector';\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nimport { NameField, useNameValidation } from '../shared/NameField';\nimport { AnalyticsStateKey } from '../types';\nimport { metadataValidation } from '../shared/MetadataFieldset/validation';\nimport { MoreSettingsSection } from '../shared/MoreSettingsSection';\n\ninterface FormValues {\n name: string;\n applicationId: string;\n tenantId: string;\n authenticationKey: string;\n meta: EnvironmentMetadata;\n}\n\nconst initialValues: FormValues = {\n name: '',\n applicationId: '',\n tenantId: '',\n authenticationKey: '',\n meta: {\n groupId: 1,\n tagIds: [],\n },\n};\n\nconst options: Array<BoxSelectorOption<'api'>> = [\n {\n description: '',\n icon: <BadgeIcon icon={Network} size=\"3xl\" />,\n id: 'api',\n label: 'API',\n value: 'api',\n },\n];\n\ninterface Props {\n onCreate(environment: Environment, analytics: AnalyticsStateKey): void;\n}\n\nexport function WizardAzure({ onCreate }: Props) {\n const [formKey, clearForm] = useReducer((state) => state + 1, 0);\n\n const [creationType, setCreationType] = useState(options[0].id);\n const mutation = useCreateAzureEnvironmentMutation();\n const validation = useValidation();\n\n return (\n <div className=\"form-horizontal\">\n <BoxSelector\n options={options}\n radioName=\"creation-type\"\n onChange={(value) => setCreationType(value)}\n value={creationType}\n />\n\n <Formik<FormValues>\n initialValues={initialValues}\n onSubmit={handleSubmit}\n key={formKey}\n validateOnMount\n validationSchema={validation}\n >\n {({ errors, dirty, isValid }) => (\n <Form>\n <NameField />\n\n <FormControl\n label=\"Application ID\"\n errors={errors.applicationId}\n inputId=\"applicationId-input\"\n required\n >\n <Field\n name=\"applicationId\"\n id=\"applicationId-input\"\n as={Input}\n placeholder=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n />\n </FormControl>\n\n <FormControl\n label=\"Tenant ID\"\n errors={errors.tenantId}\n inputId=\"tenantId-input\"\n required\n >\n <Field\n name=\"tenantId\"\n id=\"tenantId-input\"\n as={Input}\n placeholder=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n />\n </FormControl>\n\n <FormControl\n label=\"Authentication Key\"\n errors={errors.authenticationKey}\n inputId=\"authenticationKey-input\"\n required\n >\n <Field\n name=\"authenticationKey\"\n id=\"authenticationKey-input\"\n as={Input}\n placeholder=\"cOrXoK/1D35w8YQ8nH1/8ZGwzz45JIYD5jxHKXEQknk=\"\n />\n </FormControl>\n\n <MoreSettingsSection />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <LoadingButton\n className=\"vertical-center\"\n loadingText=\"Connecting environment...\"\n isLoading={mutation.isLoading}\n disabled={!dirty || !isValid}\n icon={Plug2}\n >\n Connect\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n </div>\n );\n\n function handleSubmit({\n applicationId,\n authenticationKey,\n meta,\n name,\n tenantId,\n }: typeof initialValues) {\n mutation.mutate(\n {\n name,\n azure: {\n applicationId,\n authenticationKey,\n tenantId,\n },\n meta,\n },\n {\n onSuccess(environment) {\n notifySuccess('Environment created', environment.Name);\n clearForm();\n onCreate(environment, 'aciApi');\n },\n }\n );\n }\n}\n\nfunction useValidation(): SchemaOf<FormValues> {\n return object({\n name: useNameValidation(),\n applicationId: string().required('Application ID is required'),\n tenantId: string().required('Tenant ID is required'),\n authenticationKey: string().required('Authentication Key is required'),\n meta: metadataValidation(),\n });\n}\n","import { useState } from 'react';\nimport { Info } from 'lucide-react';\n\nimport { getAgentShortVersion } from '@/portainer/views/endpoints/helpers';\nimport { useAgentDetails } from '@/react/portainer/environments/queries/useAgentDetails';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\nimport { Code } from '@@/Code';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { NavTabs } from '@@/NavTabs';\nimport { Icon } from '@@/Icon';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nconst deployments = [\n {\n id: 'k8sLoadBalancer',\n label: 'Kubernetes via load balancer',\n command: kubeLoadBalancerCommand,\n showAgentSecretMessage: true,\n },\n {\n id: 'k8sNodePort',\n label: 'Kubernetes via node port',\n command: kubeNodePortCommand,\n showAgentSecretMessage: true,\n },\n];\n\nexport function DeploymentScripts() {\n const [deployType, setDeployType] = useState(deployments[0].id);\n\n const agentDetailsQuery = useAgentDetails();\n\n if (!agentDetailsQuery) {\n return null;\n }\n\n const { agentVersion, agentSecret } = agentDetailsQuery;\n\n const options = deployments.map((c) => {\n const code = c.command(agentVersion);\n\n return {\n id: c.id,\n label: c.label,\n children: (\n <DeployCode\n agentSecret={agentSecret}\n showAgentSecretMessage={c.showAgentSecretMessage}\n code={code}\n />\n ),\n };\n });\n\n return (\n <>\n <FormSectionTitle>Information</FormSectionTitle>\n\n <div className=\"form-group\">\n <span className=\"col-sm-12 text-muted small\">\n Ensure that you have deployed the Portainer agent in your cluster\n first. Refer to the platform related command below to deploy it.\n </span>\n </div>\n\n <NavContainer>\n <NavTabs\n options={options}\n onSelect={(id: string) => setDeployType(id)}\n selectedId={deployType}\n />\n </NavContainer>\n </>\n );\n}\n\nfunction kubeNodePortCommand(agentVersion: string) {\n const agentShortVersion = getAgentShortVersion(agentVersion);\n\n return `kubectl apply -f https://downloads.portainer.io/ce${agentShortVersion}/portainer-agent-k8s-nodeport.yaml`;\n}\n\nfunction kubeLoadBalancerCommand(agentVersion: string) {\n const agentShortVersion = getAgentShortVersion(agentVersion);\n\n return `kubectl apply -f https://downloads.portainer.io/ce${agentShortVersion}/portainer-agent-k8s-lb.yaml`;\n}\n\ninterface LoadBalancerProps {\n agentSecret?: string;\n showAgentSecretMessage?: boolean;\n code: string;\n}\n\nfunction DeployCode({\n agentSecret,\n showAgentSecretMessage,\n code,\n}: LoadBalancerProps) {\n return (\n <>\n {showAgentSecretMessage && agentSecret && (\n <p className=\"text-muted small my-6\">\n <Icon icon={Info} mode=\"primary\" className=\"mr-1\" />\n Note that the environment variable AGENT_SECRET will need to be set to\n <code>{agentSecret}</code>. Please update the manifest that will be\n downloaded from the following script.\n </p>\n )}\n <Code>{code}</Code>\n <div className=\"mt-2\">\n <CopyButton copyText={code}>Copy command</CopyButton>\n </div>\n </>\n );\n}\n","import { Environment } from '@/react/portainer/environments/types';\n\nimport { AgentForm } from '../shared/AgentForm';\n\nimport { DeploymentScripts } from './DeploymentScripts';\n\ninterface Props {\n onCreate(environment: Environment): void;\n}\n\nexport function AgentPanel({ onCreate }: Props) {\n return (\n <>\n <DeploymentScripts />\n\n <div className=\"mt-5\">\n <AgentForm onCreate={onCreate} />\n </div>\n </>\n );\n}\n","import { Field, Form, Formik } from 'formik';\nimport { Plug2 } from 'lucide-react';\n\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { FormControl } from '@@/form-components/FormControl';\nimport { FormSectionTitle } from '@@/form-components/FormSectionTitle';\nimport { Input } from '@@/form-components/Input';\nimport { Button } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { useDocsUrl } from '@@/PageHeader/ContextHelp/ContextHelp';\n\nconst initialValues = {\n kubeConfig: '',\n name: '',\n meta: {\n groupId: 1,\n tagIds: [],\n },\n};\n\nexport function KubeConfigTeaserForm() {\n const kubeConfigImportDocUrl = useDocsUrl(\n '/admin/environments/add/kubernetes/import'\n );\n\n return (\n <Formik initialValues={initialValues} onSubmit={() => {}} validateOnMount>\n {() => (\n <Form>\n <FormSectionTitle>Environment details</FormSectionTitle>\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <TextTip color=\"blue\">\n <span className=\"text-muted\">\n <a\n href={kubeConfigImportDocUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Import the kubeconfig file\n </a>{' '}\n of an existing Kubernetes cluster located on-premise or on a\n cloud platform. This will create a corresponding environment\n in Portainer and install the agent on the cluster. Please\n ensure:\n </span>\n </TextTip>\n </div>\n <div className=\"col-sm-12 text-muted text-xs\">\n <ul className=\"p-2 pl-4\">\n <li>You have a load balancer enabled in your cluster</li>\n <li>You specify current-context in your kubeconfig</li>\n <li>\n The kubeconfig is self-contained - including any required\n credentials.\n </li>\n </ul>\n <p>\n Note: Officially supported cloud providers are Civo, Akamai\n Connected Cloud, DigitalOcean and Microsoft Azure (others are\n not guaranteed to work at present)\n </p>\n </div>\n </div>\n\n <FormControl label=\"Name\" required>\n <Field\n name=\"name\"\n as={Input}\n data-cy=\"endpointCreate-nameInput\"\n placeholder=\"e.g. docker-prod01 / kubernetes-cluster01\"\n readOnly\n />\n </FormControl>\n\n <FormControl\n label=\"Kubeconfig file\"\n required\n inputId=\"kubeconfig_file\"\n >\n <Button disabled>Select a file</Button>\n </FormControl>\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n className=\"wizard-connect-button !ml-0\"\n loadingText=\"Connecting environment...\"\n isLoading={false}\n disabled\n icon={Plug2}\n >\n Connect\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n );\n}\n","import { useState } from 'react';\nimport { Zap, UploadCloud } from 'lucide-react';\nimport _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { commandsTabs } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport EdgeAgentStandardIcon from '@/react/edge/components/edge-agent-standard.svg?c';\nimport EdgeAgentAsyncIcon from '@/react/edge/components/edge-agent-async.svg?c';\n\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport { BoxSelector } from '@@/BoxSelector';\nimport { BEOverlay } from '@@/BEFeatureIndicator/BEOverlay';\n\nimport { AnalyticsStateKey } from '../types';\nimport { EdgeAgentTab } from '../shared/EdgeAgentTab';\n\nimport { AgentPanel } from './AgentPanel';\nimport { KubeConfigTeaserForm } from './KubeConfigTeaserForm';\n\ninterface Props {\n onCreate(environment: Environment, analytics: AnalyticsStateKey): void;\n}\n\ntype CreationType =\n | 'agent'\n | 'edgeAgentStandard'\n | 'edgeAgentAsync'\n | 'kubeconfig';\n\nconst options: BoxSelectorOption<CreationType>[] = _.compact([\n {\n id: 'agent_endpoint',\n icon: Zap,\n iconType: 'badge',\n label: 'Agent',\n value: 'agent',\n description: '',\n },\n {\n id: 'edgeAgentStandard',\n icon: EdgeAgentStandardIcon,\n iconType: 'badge',\n label: 'Edge Agent Standard',\n description: '',\n value: 'edgeAgentStandard',\n },\n isBE && {\n id: 'edgeAgentAsync',\n icon: EdgeAgentAsyncIcon,\n iconType: 'badge',\n label: 'Edge Agent Async',\n description: '',\n value: 'edgeAgentAsync',\n },\n {\n id: 'kubeconfig_endpoint',\n icon: UploadCloud,\n iconType: 'badge',\n label: 'Import',\n value: 'kubeconfig',\n description: 'Import an existing Kubernetes config',\n feature: FeatureId.K8S_CREATE_FROM_KUBECONFIG,\n },\n]);\n\nexport function WizardKubernetes({ onCreate }: Props) {\n const [creationType, setCreationType] = useState(options[0].value);\n\n const tab = getTab(creationType);\n\n return (\n <div className=\"form-horizontal\">\n <BoxSelector\n onChange={(v) => setCreationType(v)}\n options={options}\n value={creationType}\n radioName=\"creation-type\"\n />\n\n {tab}\n </div>\n );\n\n function getTab(type: CreationType) {\n switch (type) {\n case 'agent':\n return (\n <AgentPanel\n onCreate={(environment) => onCreate(environment, 'kubernetesAgent')}\n />\n );\n case 'edgeAgentStandard':\n return (\n <EdgeAgentTab\n onCreate={(environment) =>\n onCreate(environment, 'kubernetesEdgeAgentStandard')\n }\n commands={[{ ...commandsTabs.k8sLinux, label: 'Linux' }]}\n />\n );\n case 'edgeAgentAsync':\n return (\n <EdgeAgentTab\n asyncMode\n onCreate={(environment) =>\n onCreate(environment, 'kubernetesEdgeAgentAsync')\n }\n commands={[{ ...commandsTabs.k8sLinux, label: 'Linux' }]}\n />\n );\n case 'kubeconfig':\n return (\n <div className=\"mb-3\">\n <BEOverlay featureId={FeatureId.K8S_CREATE_FROM_KUBECONFIG}>\n <KubeConfigTeaserForm />\n </BEOverlay>\n </div>\n );\n default:\n throw new Error('Creation type not supported');\n }\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wizardStepAction\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-EnvironmentsCreationView-module__wizard-step-action\",\"wizardWrapper\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-EnvironmentsCreationView-module__wizard-wrapper\"};","// extracted by mini-css-extract-plugin\nexport default {\"wizardListWrapper\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-wrapper\",\"wizardListEdgeStatus\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-edge-status\",\"wizardListImage\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-image\",\"wizardListTitle\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-title\",\"wizardListSubtitle\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-subtitle\",\"wizardListType\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-type\"};","import { Plug2 } from 'lucide-react';\n\nimport {\n environmentTypeIcon,\n endpointTypeName,\n stripProtocol,\n} from '@/portainer/filters/filters';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n isEdgeEnvironment,\n isUnassociatedEdgeEnvironment,\n} from '@/react/portainer/environments/utils';\nimport {\n ENVIRONMENTS_POLLING_INTERVAL,\n useEnvironmentList,\n} from '@/react/portainer/environments/queries/useEnvironmentList';\n\nimport { EdgeIndicator } from '@@/EdgeIndicator';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { Icon } from '@@/Icon';\n\nimport styles from './WizardEndpointsList.module.css';\n\ninterface Props {\n environmentIds: EnvironmentId[];\n}\n\nexport function WizardEndpointsList({ environmentIds }: Props) {\n const { environments } = useEnvironmentList(\n { endpointIds: environmentIds },\n {\n refetchInterval: (environments) => {\n if (!environments) {\n return false;\n }\n\n if (!environments.value.some(isUnassociatedEdgeEnvironment)) {\n return false;\n }\n\n return ENVIRONMENTS_POLLING_INTERVAL;\n },\n\n enabled: environmentIds.length > 0,\n }\n );\n\n return (\n <Widget>\n <WidgetTitle icon={Plug2} title=\"New Environments\" />\n <WidgetBody>\n {environments.map((environment) => (\n <div className={styles.wizardListWrapper} key={environment.Id}>\n <div className={styles.wizardListImage}>\n <Icon\n icon={environmentTypeIcon(environment.Type)}\n className=\"mr-1\"\n />\n </div>\n <div className={styles.wizardListTitle}>{environment.Name}</div>\n <div className={styles.wizardListSubtitle}>\n URL: {stripProtocol(environment.URL)}\n </div>\n <div className={styles.wizardListType}>\n Type: {endpointTypeName(environment.Type)}\n </div>\n {isEdgeEnvironment(environment.Type) && (\n <div className={styles.wizardListEdgeStatus}>\n <EdgeIndicator environment={environment} />\n </div>\n )}\n </div>\n ))}\n </WidgetBody>\n </Widget>\n );\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport {\n EnvironmentCreationView,\n EnvironmentTypeSelectView,\n HomeView,\n} from '@/react/portainer/environments/wizard';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AccessHeaders } from '@/portainer/authorization-guard';\n\nexport const wizardModule = angular\n .module('portainer.app.react.views.wizard', [])\n .component(\n 'wizardEnvironmentCreationView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EnvironmentCreationView))),\n []\n )\n )\n .component(\n 'wizardEnvironmentTypeSelectView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EnvironmentTypeSelectView))),\n []\n )\n )\n .component(\n 'wizardMainView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(HomeView))), [])\n )\n .config(config).name;\n\nfunction config($stateRegistryProvider: StateRegistry) {\n $stateRegistryProvider.register({\n name: 'portainer.wizard',\n url: '/wizard',\n views: {\n 'content@': {\n component: 'wizardMainView',\n },\n },\n data: {\n access: AccessHeaders.Admin,\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.wizard.endpoints',\n url: '/endpoints',\n views: {\n 'content@': {\n component: 'wizardEnvironmentTypeSelectView',\n },\n },\n params: {\n localEndpointId: 0,\n },\n data: {\n docs: '/admin/environments/add',\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.wizard.endpoints.create',\n url: '/create?envType',\n views: {\n 'content@': {\n component: 'wizardEnvironmentCreationView',\n },\n },\n params: {\n envType: '',\n },\n });\n}\n","import { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { useState } from 'react';\nimport _ from 'lodash';\nimport clsx from 'clsx';\nimport { ArrowLeft, ArrowRight, Wand2 } from 'lucide-react';\n\nimport { notifyError } from '@/portainer/services/notifications';\nimport {\n Environment,\n EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Stepper } from '@@/Stepper';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { PageHeader } from '@@/PageHeader';\nimport { Button } from '@@/buttons';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Icon } from '@@/Icon';\n\nimport {\n EnvironmentOptionValue,\n environmentTypes,\n formTitles,\n} from '../EnvironmentTypeSelectView/environment-types';\n\nimport { WizardDocker } from './WizardDocker';\nimport { WizardAzure } from './WizardAzure';\nimport { WizardKubernetes } from './WizardKubernetes';\nimport { AnalyticsState, AnalyticsStateKey } from './types';\nimport styles from './EnvironmentsCreationView.module.css';\nimport { WizardEndpointsList } from './WizardEndpointsList';\n\nexport function EnvironmentCreationView() {\n const {\n params: { localEndpointId: localEndpointIdParam },\n } = useCurrentStateAndParams();\n\n const [environmentIds, setEnvironmentIds] = useState<EnvironmentId[]>(() => {\n const localEndpointId = parseInt(localEndpointIdParam, 10);\n\n if (!localEndpointId || Number.isNaN(localEndpointId)) {\n return [];\n }\n\n return [localEndpointId];\n });\n\n const envTypes = useParamEnvironmentTypes();\n const { trackEvent } = useAnalytics();\n const router = useRouter();\n const steps = _.compact(\n envTypes.map((id) => environmentTypes.find((eType) => eType.id === id))\n );\n const { analytics, setAnalytics } = useAnalyticsState();\n\n const {\n currentStep,\n onNextClick,\n onPreviousClick,\n currentStepIndex,\n Component,\n isFirstStep,\n isLastStep,\n } = useStepper(steps, handleFinish);\n\n const isDockerStandalone = currentStep.id === 'dockerStandalone';\n\n return (\n <>\n <PageHeader\n title=\"Quick Setup\"\n breadcrumbs={[{ label: 'Environment Wizard' }]}\n reload\n />\n\n <div className={styles.wizardWrapper}>\n <Widget>\n <WidgetTitle icon={Wand2} title=\"Environment Wizard\" />\n <WidgetBody>\n <Stepper steps={steps} currentStep={currentStepIndex + 1} />\n\n <div className=\"mt-12\">\n <FormSection title={formTitles[currentStep.id]}>\n <Component\n onCreate={handleCreateEnvironment}\n isDockerStandalone={isDockerStandalone}\n />\n\n <div\n className={clsx(\n styles.wizardStepAction,\n 'flex justify-between'\n )}\n >\n <Button disabled={isFirstStep} onClick={onPreviousClick}>\n <Icon icon={ArrowLeft} /> Previous\n </Button>\n <Button onClick={onNextClick}>\n {isLastStep ? 'Close' : 'Next'}\n <Icon icon={ArrowRight} />\n </Button>\n </div>\n </FormSection>\n </div>\n </WidgetBody>\n </Widget>\n <div>\n <WizardEndpointsList environmentIds={environmentIds} />\n </div>\n </div>\n </>\n );\n\n function handleCreateEnvironment(\n environment: Environment,\n analytics: AnalyticsStateKey\n ) {\n setEnvironmentIds((prev) => [...prev, environment.Id]);\n setAnalytics(analytics);\n }\n\n function handleFinish() {\n trackEvent('endpoint-wizard-environment-add-finish', {\n category: 'portainer',\n metadata: Object.fromEntries(\n Object.entries(analytics).map(([key, value]) => [\n _.kebabCase(key),\n value,\n ])\n ),\n });\n if (localStorage.getItem('wizardReferrer') === 'environments') {\n localStorage.removeItem('wizardReferrer');\n router.stateService.go('portainer.endpoints');\n return;\n }\n router.stateService.go('portainer.home');\n }\n}\n\nfunction useParamEnvironmentTypes(): EnvironmentOptionValue[] {\n const {\n params: { envType },\n } = useCurrentStateAndParams();\n const router = useRouter();\n\n if (!envType) {\n notifyError('No environment type provided');\n router.stateService.go('portainer.wizard.endpoints');\n return [];\n }\n\n return Array.isArray(envType) ? envType : [envType];\n}\n\nfunction useStepper(\n steps: (typeof environmentTypes)[number][],\n onFinish: () => void\n) {\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n const isFirstStep = currentStepIndex === 0;\n const isLastStep = currentStepIndex === steps.length - 1;\n const currentStep = steps[currentStepIndex];\n\n return {\n currentStep,\n onNextClick,\n onPreviousClick,\n isFirstStep,\n isLastStep,\n currentStepIndex,\n Component: getComponent(currentStep.id),\n };\n\n function onNextClick() {\n if (!isLastStep) {\n setCurrentStepIndex(currentStepIndex + 1);\n return;\n }\n\n onFinish();\n }\n\n function onPreviousClick() {\n setCurrentStepIndex(currentStepIndex - 1);\n }\n\n function getComponent(id: EnvironmentOptionValue) {\n switch (id) {\n case 'dockerStandalone':\n case 'dockerSwarm':\n return WizardDocker;\n case 'aci':\n return WizardAzure;\n case 'kubernetes':\n return WizardKubernetes;\n default:\n throw new Error(`Unknown environment type ${id}`);\n }\n }\n}\n\nfunction useAnalyticsState() {\n const [analytics, setAnalyticsState] = useState<AnalyticsState>({\n dockerAgent: 0,\n dockerApi: 0,\n kubernetesAgent: 0,\n kubernetesEdgeAgentAsync: 0,\n kubernetesEdgeAgentStandard: 0,\n kaasAgent: 0,\n aciApi: 0,\n localEndpoint: 0,\n dockerEdgeAgentAsync: 0,\n dockerEdgeAgentStandard: 0,\n });\n\n return { analytics, setAnalytics };\n\n function setAnalytics(key: AnalyticsStateKey) {\n setAnalyticsState((prevState) => ({\n ...prevState,\n [key]: prevState[key] + 1,\n }));\n }\n}\n","import { useState } from 'react';\nimport { useRouter } from '@uirouter/react';\nimport _ from 'lodash';\nimport { Wand2 } from 'lucide-react';\n\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Button } from '@@/buttons';\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { EnvironmentSelector } from './EnvironmentSelector';\nimport {\n EnvironmentOptionValue,\n existingEnvironmentTypes,\n newEnvironmentTypes,\n} from './environment-types';\n\nexport function EnvironmentTypeSelectView() {\n const [types, setTypes] = useState<EnvironmentOptionValue[]>([]);\n const { trackEvent } = useAnalytics();\n const router = useRouter();\n\n return (\n <>\n <PageHeader\n title=\"Quick Setup\"\n breadcrumbs={[{ label: 'Environment Wizard' }]}\n reload\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <WidgetTitle icon={Wand2} title=\"Environment Wizard\" />\n <WidgetBody>\n <div className=\"form-horizontal\">\n <FormSection title=\"Select your environment(s)\">\n <p className=\"text-muted small\">\n You can onboard different types of environments, select all\n that apply.\n </p>\n <p className=\"control-label !mb-2\">\n Connect to existing environments\n </p>\n <EnvironmentSelector\n value={types}\n onChange={setTypes}\n options={existingEnvironmentTypes}\n />\n <p className=\"control-label !mb-2\">Set up new environments</p>\n <EnvironmentSelector\n value={types}\n onChange={setTypes}\n options={newEnvironmentTypes}\n hiddenSpacingCount={\n existingEnvironmentTypes.length -\n newEnvironmentTypes.length\n }\n />\n </FormSection>\n </div>\n <Button\n disabled={types.length === 0}\n onClick={() => startWizard()}\n >\n Start Wizard\n </Button>\n </WidgetBody>\n </Widget>\n </div>\n </div>\n </>\n );\n\n function startWizard() {\n if (types.length === 0) {\n return;\n }\n\n const environmentTypes = [\n ...existingEnvironmentTypes,\n ...newEnvironmentTypes,\n ];\n\n const steps = _.compact(\n types.map((id) => environmentTypes.find((eType) => eType.id === id))\n );\n\n trackEvent('endpoint-wizard-endpoint-select', {\n category: 'portainer',\n metadata: {\n environment: steps.map((step) => step.label).join('/'),\n },\n });\n\n router.stateService.go('portainer.wizard.endpoints.create', {\n envType: types,\n });\n }\n}\n","import { useRouter } from '@uirouter/react';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { Trash2, Users } from 'lucide-react';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport {\n mutationOptions,\n withError,\n withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Button } from '@@/buttons';\nimport { Widget } from '@@/Widget';\n\nimport { Team, TeamId, TeamMembership, TeamRole } from '../types';\nimport { deleteTeam } from '../teams.service';\n\ninterface Props {\n team: Team;\n memberships: TeamMembership[];\n isAdmin: boolean;\n}\n\nexport function Details({ team, memberships, isAdmin }: Props) {\n const deleteMutation = useDeleteTeam();\n const router = useRouter();\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n const leaderCount = memberships.filter(\n (m) => m.Role === TeamRole.Leader\n ).length;\n\n return (\n <div className=\"row\">\n <div className=\"col-lg-12 col-md-12 col-xs-12\">\n <Widget>\n <Widget.Title title=\"Team details\" icon={Users} />\n\n <Widget.Body className=\"no-padding\">\n <table className=\"table\">\n <tbody>\n <tr>\n <td>Name</td>\n <td>\n {!teamSyncQuery.data && team.Name}\n {isAdmin && (\n <Button\n color=\"danger\"\n size=\"xsmall\"\n onClick={handleDeleteClick}\n icon={Trash2}\n >\n Delete this team\n </Button>\n )}\n </td>\n </tr>\n <tr>\n <td>Leaders</td>\n <td>{!teamSyncQuery.data && leaderCount}</td>\n </tr>\n <tr>\n <td>Total users in team</td>\n <td>{memberships.length}</td>\n </tr>\n </tbody>\n </table>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n );\n\n async function handleDeleteClick() {\n const confirmed = await confirmDelete(\n `Do you want to delete this team? Users in this team will not be deleted.`\n );\n if (!confirmed) {\n return;\n }\n\n deleteMutation.mutate(team.Id, {\n onSuccess() {\n router.stateService.go('portainer.teams');\n },\n });\n }\n}\n\nfunction useDeleteTeam() {\n const queryClient = useQueryClient();\n return useMutation(\n (id: TeamId) => deleteTeam(id),\n\n mutationOptions(\n withError('Unable to delete team'),\n withInvalidate(queryClient, [['teams']])\n )\n );\n}\n","import { TeamId } from '@/react/portainer/users/teams/types';\n\nimport { createRowContext } from '@@/datatables/RowContext';\n\ninterface RowContext {\n disabled?: boolean;\n teamId: TeamId;\n}\n\nconst { RowProvider, useRowContext } = createRowContext<RowContext>();\n\nexport { RowProvider, useRowContext };\n","import { PlusCircle } from 'lucide-react';\nimport { CellContext, ColumnDef } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAddMemberMutation } from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\n\nimport { useRowContext } from './RowContext';\n\nexport const name: ColumnDef<User, string> = {\n header: 'Name',\n accessorFn: (row) => row.Username,\n id: 'name',\n cell: NameCell,\n};\n\nexport function NameCell({\n getValue,\n row: { original: user },\n}: CellContext<User, string>) {\n const name = getValue();\n const { disabled, teamId } = useRowContext();\n\n const addMemberMutation = useAddMemberMutation(teamId);\n\n return (\n <>\n {name}\n\n <Button\n color=\"link\"\n className=\"space-left nopadding\"\n disabled={disabled}\n icon={PlusCircle}\n onClick={() => handleAddMember()}\n >\n Add\n </Button>\n </>\n );\n\n function handleAddMember() {\n addMemberMutation.mutate([user.Id], {\n onSuccess() {\n notifySuccess('User added to team', name);\n },\n });\n }\n}\n","import { useMemo, useState } from 'react';\nimport { UserPlus, Users } from 'lucide-react';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAddMemberMutation } from '@/react/portainer/users/teams/queries';\nimport { TeamId } from '@/react/portainer/users/teams/types';\n\nimport { Button } from '@@/buttons';\nimport { Datatable } from '@@/datatables';\n\nimport { name } from './name-column';\nimport { RowProvider } from './RowContext';\n\nconst columns = [name];\n\ninterface Props {\n users: User[];\n disabled?: boolean;\n teamId: TeamId;\n}\n\nexport function UsersList({ users, disabled, teamId }: Props) {\n const [search, setSearch] = useState('');\n const [pageSize, setPageSize] = useState(10);\n const addMemberMutation = useAddMemberMutation(teamId);\n const [sortBy, setSortBy] = useState<\n { id: string; desc: boolean } | undefined\n >({ id: 'name', desc: false });\n\n const { isPureAdmin } = useCurrentUser();\n\n const rowContext = useMemo(() => ({ disabled, teamId }), [disabled, teamId]);\n\n return (\n <RowProvider context={rowContext}>\n <Datatable<User>\n dataset={users}\n columns={columns}\n titleIcon={Users}\n title=\"Users\"\n renderTableActions={() =>\n isPureAdmin && (\n <Button\n onClick={() => handleAddAllMembers(users.map((u) => u.Id))}\n disabled={disabled || users.length === 0}\n icon={UserPlus}\n >\n Add all users\n </Button>\n )\n }\n disableSelect\n settingsManager={{\n pageSize,\n setPageSize,\n sortBy,\n setSortBy: handleSetSort,\n search,\n setSearch,\n }}\n />\n </RowProvider>\n );\n\n function handleSetSort(colId: string | undefined, desc: boolean) {\n setSortBy(colId ? { id: colId, desc } : undefined);\n }\n\n function handleAddAllMembers(userIds: UserId[]) {\n addMemberMutation.mutate(userIds, {\n onSuccess() {\n notifySuccess('Success', 'All users successfully added');\n },\n });\n }\n}\n","import { TeamRole, TeamId } from '@/react/portainer/users/teams/types';\nimport { UserId } from '@/portainer/users/types';\n\nimport { createRowContext } from '@@/datatables/RowContext';\n\nexport interface RowContext {\n getRole(userId: UserId): TeamRole;\n disabled?: boolean;\n teamId: TeamId;\n}\n\nconst { RowProvider, useRowContext } = createRowContext<RowContext>();\n\nexport { RowProvider, useRowContext };\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\n\nexport const columnHelper = createColumnHelper<User>();\n","import { MinusCircle } from 'lucide-react';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n useRemoveMemberMutation,\n useTeamMemberships,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\n\nimport { useRowContext } from '../RowContext';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Username', {\n header: 'Name',\n id: 'name',\n cell: NameCell,\n});\n\nexport function NameCell({\n getValue,\n row: { original: user },\n}: CellContext<User, string>) {\n const name = getValue();\n const { disabled, teamId } = useRowContext();\n\n const membershipsQuery = useTeamMemberships(teamId);\n\n const removeMemberMutation = useRemoveMemberMutation(\n teamId,\n membershipsQuery.data\n );\n\n return (\n <>\n {name}\n\n <Button\n color=\"link\"\n className=\"space-left !p-0\"\n onClick={() => handleRemoveMember(user.Id)}\n disabled={disabled}\n icon={MinusCircle}\n >\n Remove\n </Button>\n </>\n );\n\n function handleRemoveMember(userId: UserId) {\n removeMemberMutation.mutate([userId], {\n onSuccess() {\n notifySuccess('User removed from team', name);\n },\n });\n }\n}\n","import { User as UserIcon, UserPlus, UserX } from 'lucide-react';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { TeamRole } from '@/react/portainer/users/teams/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n useTeamMemberships,\n useUpdateRoleMutation,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\n\nimport { useRowContext } from '../RowContext';\n\nimport { columnHelper } from './helper';\n\nexport const teamRole = columnHelper.accessor('Id', {\n header: 'Team Role',\n id: 'role',\n cell: RoleCell,\n});\n\nfunction RoleCell({\n row: { original: user },\n getValue,\n}: CellContext<User, User['Id']>) {\n const id = getValue();\n\n const { getRole, disabled, teamId } = useRowContext();\n const membershipsQuery = useTeamMemberships(teamId);\n const updateRoleMutation = useUpdateRoleMutation(\n teamId,\n membershipsQuery.data\n );\n\n const role = getRole(id);\n\n const { isPureAdmin } = useCurrentUser();\n\n const Cell = role === TeamRole.Leader ? LeaderCell : MemberCell;\n\n return (\n <Cell\n isAdmin={isPureAdmin}\n onClick={handleUpdateRole}\n disabled={disabled}\n />\n );\n\n function handleUpdateRole(role: TeamRole, onSuccessMessage: string) {\n updateRoleMutation.mutate(\n { userId: user.Id, role },\n {\n onSuccess() {\n notifySuccess(onSuccessMessage, user.Username);\n },\n }\n );\n }\n}\n\ninterface LeaderCellProps {\n isAdmin: boolean;\n onClick: (role: TeamRole, onSuccessMessage: string) => void;\n disabled?: boolean;\n}\n\nfunction LeaderCell({ isAdmin, onClick, disabled }: LeaderCellProps) {\n return (\n <div className=\"flex items-center\">\n <Icon className=\"space-right\" icon={UserPlus} mode=\"secondary-alt\" />\n\n {isAdmin && (\n <Button\n color=\"link\"\n className=\"nopadding\"\n onClick={() => onClick(TeamRole.Member, 'User is now team member')}\n disabled={disabled}\n icon={UserX}\n >\n Member\n </Button>\n )}\n </div>\n );\n}\n\ninterface MemberCellProps {\n onClick: (role: TeamRole, onSuccessMessage: string) => void;\n disabled?: boolean;\n}\n\nfunction MemberCell({ onClick, disabled }: MemberCellProps) {\n return (\n <div className=\"flex items-center\">\n <Icon className=\"space-right\" icon={UserIcon} mode=\"secondary-alt\" />\n <Button\n color=\"link\"\n className=\"nopadding\"\n onClick={() => onClick(TeamRole.Leader, 'User is now team leader')}\n disabled={disabled}\n icon={UserPlus}\n >\n Leader\n </Button>\n </div>\n );\n}\n","import { name } from './name-column';\nimport { teamRole } from './team-role-column';\n\nexport const columns = [name, teamRole];\n","import { useMemo, useState } from 'react';\nimport { Users, UserX } from 'lucide-react';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { TeamId, TeamRole } from '@/react/portainer/users/teams/types';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n useRemoveMemberMutation,\n useTeamMemberships,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\nimport { Datatable } from '@@/datatables';\n\nimport { RowContext, RowProvider } from './RowContext';\nimport { columns } from './columns';\n\ninterface Props {\n users: User[];\n roles: Record<UserId, TeamRole>;\n disabled?: boolean;\n teamId: TeamId;\n}\n\nexport function TeamMembersList({ users, roles, disabled, teamId }: Props) {\n const membershipsQuery = useTeamMemberships(teamId);\n\n const removeMemberMutation = useRemoveMemberMutation(\n teamId,\n membershipsQuery.data\n );\n\n const [search, setSearch] = useState('');\n const [pageSize, setPageSize] = useState(10);\n const [sortBy, setSortBy] = useState<\n { id: string; desc: boolean } | undefined\n >({ id: 'name', desc: false });\n\n const isPureAdmin = useIsPureAdmin();\n const rowContext = useMemo<RowContext>(\n () => ({\n getRole(userId: UserId) {\n return roles[userId];\n },\n disabled,\n teamId,\n }),\n [roles, disabled, teamId]\n );\n\n return (\n <RowProvider context={rowContext}>\n <Datatable<User>\n dataset={users}\n columns={columns}\n titleIcon={Users}\n title=\"Team members\"\n renderTableActions={() =>\n isPureAdmin && (\n <Button\n onClick={() => handleRemoveMembers(users.map((user) => user.Id))}\n disabled={disabled || users.length === 0}\n icon={UserX}\n >\n Remove all users\n </Button>\n )\n }\n disableSelect\n settingsManager={{\n pageSize,\n setPageSize,\n sortBy,\n setSortBy: handleSetSort,\n search,\n setSearch,\n }}\n />\n </RowProvider>\n );\n\n function handleSetSort(colId: string | undefined, desc: boolean) {\n setSortBy(colId ? { id: colId, desc } : undefined);\n }\n\n function handleRemoveMembers(userIds: UserId[]) {\n removeMemberMutation.mutate(userIds, {\n onSuccess() {\n notifySuccess('Success', 'All users successfully removed');\n },\n });\n }\n}\n","import _ from 'lodash';\n\nimport { User } from '@/portainer/users/types';\n\nimport { TeamId, TeamMembership } from '../../types';\n\nimport { UsersList } from './UsersList';\nimport { TeamMembersList } from './TeamMembersList';\n\ninterface Props {\n users: User[];\n memberships: TeamMembership[];\n disabled?: boolean;\n teamId: TeamId;\n}\n\nexport function TeamAssociationSelector({\n users,\n memberships,\n disabled,\n teamId,\n}: Props) {\n const teamUsers = _.compact(\n memberships.map((m) => users.find((user) => user.Id === m.UserID))\n );\n const usersNotInTeam = users.filter(\n (user) => !memberships.some((m) => m.UserID === user.Id)\n );\n const userRoles = Object.fromEntries(\n memberships.map((m) => [m.UserID, m.Role])\n );\n\n return (\n <div className=\"flex\">\n <div className=\"w-1/2\">\n <UsersList users={usersNotInTeam} disabled={disabled} teamId={teamId} />\n </div>\n <div className=\"w-1/2\">\n <TeamMembersList\n teamId={teamId}\n disabled={disabled}\n users={teamUsers}\n roles={userRoles}\n />\n </div>\n </div>\n );\n}\n","import { Formik, Field, Form } from 'formik';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useReducer } from 'react';\nimport { Plus } from 'lucide-react';\n\nimport { User } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Widget } from '@@/Widget';\nimport { Input } from '@@/form-components/Input';\nimport { UsersSelector } from '@@/UsersSelector';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { createTeam } from '../../teams.service';\nimport { Team } from '../../types';\n\nimport { FormValues } from './types';\nimport { validationSchema } from './CreateTeamForm.validation';\n\ninterface Props {\n users: User[];\n teams: Team[];\n}\n\nexport function CreateTeamForm({ users, teams }: Props) {\n const addTeamMutation = useAddTeamMutation();\n const [formKey, incFormKey] = useReducer((state: number) => state + 1, 0);\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n const initialValues = {\n name: '',\n leaders: [],\n };\n\n return (\n <div className=\"row\">\n <div className=\"col-lg-12 col-md-12 col-xs-12\">\n <Widget>\n <Widget.Title\n icon={Plus}\n title=\"Add a new team\"\n className=\"vertical-center\"\n />\n <Widget.Body>\n <Formik\n initialValues={initialValues}\n validationSchema={() => validationSchema(teams)}\n onSubmit={handleAddTeamClick}\n validateOnMount\n key={formKey}\n >\n {({\n values,\n errors,\n handleSubmit,\n setFieldValue,\n isSubmitting,\n isValid,\n }) => (\n <Form\n className=\"form-horizontal\"\n onSubmit={handleSubmit}\n noValidate\n >\n <FormControl\n inputId=\"team_name\"\n label=\"Name\"\n errors={errors.name}\n required\n >\n <Field\n as={Input}\n name=\"name\"\n id=\"team_name\"\n required\n placeholder=\"e.g. development\"\n data-cy=\"team-teamNameInput\"\n />\n </FormControl>\n\n {users.length > 0 && (\n <FormControl\n inputId=\"users-input\"\n label=\"Select team leader(s)\"\n tooltip=\"You can assign one or more leaders to this team. Team leaders can manage their teams users and resources.\"\n errors={errors.leaders}\n >\n <UsersSelector\n value={values.leaders}\n onChange={(leaders) =>\n setFieldValue('leaders', leaders)\n }\n users={users}\n dataCy=\"team-teamLeaderSelect\"\n inputId=\"users-input\"\n placeholder=\"Select one or more team leaders\"\n disabled={teamSyncQuery.data}\n />\n </FormControl>\n )}\n\n {teamSyncQuery.data && (\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <TextTip color=\"orange\">\n The team leader feature is disabled as external\n authentication is currently enabled with team sync.\n </TextTip>\n </div>\n </div>\n )}\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n disabled={!isValid}\n data-cy=\"team-createTeamButton\"\n isLoading={isSubmitting || addTeamMutation.isLoading}\n loadingText=\"Creating team...\"\n icon={Plus}\n >\n Create team\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n );\n\n async function handleAddTeamClick(values: FormValues) {\n addTeamMutation.mutate(values, {\n onSuccess() {\n incFormKey();\n notifySuccess('Team successfully added', '');\n },\n });\n }\n}\n\nexport function useAddTeamMutation() {\n const queryClient = useQueryClient();\n\n return useMutation(\n (values: FormValues) => createTeam(values.name, values.leaders),\n {\n meta: {\n error: {\n title: 'Failure',\n message: 'Failed to create team',\n },\n },\n onSuccess() {\n return queryClient.invalidateQueries(['teams']);\n },\n }\n );\n}\n","import { object, string, array, number } from 'yup';\n\nimport { Team } from '@/react/portainer/users/teams/types';\n\nexport function validationSchema(teams: Team[]) {\n return object().shape({\n name: string()\n .required('This field is required.')\n .test(\n 'is-unique',\n 'This team already exists.',\n (name) => !!name && teams.every((team) => team.Name !== name)\n ),\n leaders: array().of(number()),\n });\n}\n","import { useMutation, useQueryClient } from 'react-query';\nimport { Trash2, Users } from 'lucide-react';\nimport { ColumnDef } from '@tanstack/react-table';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { Team, TeamId } from '@/react/portainer/users/teams/types';\nimport { deleteTeam } from '@/react/portainer/users/teams/teams.service';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable } from '@@/datatables';\nimport { Button } from '@@/buttons';\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nconst storageKey = 'teams';\n\nconst columns: ColumnDef<Team>[] = [\n buildNameColumn<Team>('Name', 'portainer.teams.team'),\n];\n\ninterface Props {\n teams: Team[];\n isAdmin: boolean;\n}\n\nconst settingsStore = createPersistedStore(storageKey, 'name');\n\nexport function TeamsDatatable({ teams, isAdmin }: Props) {\n const { handleRemove } = useRemoveMutation();\n const tableState = useTableState(settingsStore, storageKey);\n\n return (\n <Datatable<Team>\n dataset={teams}\n columns={columns}\n settingsManager={tableState}\n title=\"Teams\"\n titleIcon={Users}\n renderTableActions={(selectedRows) =>\n isAdmin && (\n <Button\n color=\"dangerlight\"\n onClick={() => handleRemoveClick(selectedRows)}\n disabled={selectedRows.length === 0}\n icon={Trash2}\n >\n Remove\n </Button>\n )\n }\n emptyContentLabel=\"No teams found\"\n />\n );\n\n function handleRemoveClick(selectedRows: Team[]) {\n const ids = selectedRows.map((row) => row.Id);\n handleRemove(ids);\n }\n}\n\nfunction useRemoveMutation() {\n const queryClient = useQueryClient();\n\n const deleteMutation = useMutation(\n async (ids: TeamId[]) =>\n promiseSequence(ids.map((id) => () => deleteTeam(id))),\n {\n meta: {\n error: { title: 'Failure', message: 'Unable to remove team' },\n },\n onSuccess() {\n return queryClient.invalidateQueries(['teams']);\n },\n }\n );\n\n return { handleRemove };\n\n async function handleRemove(teams: TeamId[]) {\n const confirmed = await confirmDelete(\n 'Are you sure you want to remove the selected teams?'\n );\n\n if (!confirmed) {\n return;\n }\n\n deleteMutation.mutate(teams, {\n onSuccess: () => {\n notifySuccess('Teams successfully removed', '');\n },\n });\n }\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { ItemView, ListView } from '@/react/portainer/users/teams';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AccessHeaders } from '@/portainer/authorization-guard';\n\nexport const teamsModule = angular\n .module('portainer.app.teams', [])\n .config(config)\n .component(\n 'teamView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ItemView))), [])\n )\n .component(\n 'teamsView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), [])\n ).name;\n\n/* @ngInject */\nfunction config($stateRegistryProvider: StateRegistry) {\n $stateRegistryProvider.register({\n name: 'portainer.teams',\n url: '/teams',\n views: {\n 'content@': {\n component: 'teamsView',\n },\n },\n data: {\n docs: '/admin/user/teams',\n access: AccessHeaders.Restricted, // allow for team leaders\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.teams.team',\n url: '/:id',\n views: {\n 'content@': {\n component: 'teamView',\n },\n },\n });\n}\n","import { useRouter } from '@uirouter/react';\n\nimport { useUsers } from '@/portainer/users/queries';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useTeam, useTeamMemberships } from '../queries';\n\nimport { Details } from './Details';\nimport { TeamAssociationSelector } from './TeamAssociationSelector';\nimport { useTeamIdParam } from './useTeamIdParam';\n\nexport function ItemView() {\n const teamId = useTeamIdParam();\n\n const isPureAdmin = useIsPureAdmin();\n const router = useRouter();\n const teamQuery = useTeam(teamId, () =>\n router.stateService.go('portainer.teams')\n );\n const usersQuery = useUsers();\n const membershipsQuery = useTeamMemberships(teamId);\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n if (!teamQuery.data) {\n return null;\n }\n\n const team = teamQuery.data;\n\n return (\n <>\n <PageHeader\n title=\"Team details\"\n breadcrumbs={[{ label: 'Teams' }, { label: team.Name }]}\n reload\n />\n\n {membershipsQuery.data && (\n <Details\n team={team}\n memberships={membershipsQuery.data}\n isAdmin={isPureAdmin}\n />\n )}\n\n {teamSyncQuery.data && (\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <TextTip color=\"orange\">\n The team leader feature is disabled as external authentication is\n currently enabled with team sync.\n </TextTip>\n </div>\n </div>\n )}\n\n {usersQuery.data && membershipsQuery.data && (\n <TeamAssociationSelector\n teamId={teamId}\n memberships={membershipsQuery.data}\n users={usersQuery.data}\n disabled={teamSyncQuery.data}\n />\n )}\n </>\n );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nexport function useTeamIdParam() {\n const {\n params: { id: teamIdParam },\n } = useCurrentStateAndParams();\n const teamId = parseInt(teamIdParam, 10);\n\n if (!teamIdParam || Number.isNaN(teamId)) {\n throw new Error('Team ID is missing');\n }\n\n return teamId;\n}\n","import { useUsers } from '@/portainer/users/queries';\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useTeams } from '../queries';\n\nimport { CreateTeamForm } from './CreateTeamForm';\nimport { TeamsDatatable } from './TeamsDatatable';\n\nexport function ListView() {\n const { isPureAdmin } = useCurrentUser();\n\n const usersQuery = useUsers(false);\n const teamsQuery = useTeams(!isPureAdmin, 0);\n\n return (\n <>\n <PageHeader\n title=\"Teams\"\n breadcrumbs={[{ label: 'Teams management' }]}\n reload\n />\n\n {isPureAdmin && usersQuery.data && teamsQuery.data && (\n <CreateTeamForm users={usersQuery.data} teams={teamsQuery.data} />\n )}\n\n {teamsQuery.data && (\n <TeamsDatatable teams={teamsQuery.data} isAdmin={isPureAdmin} />\n )}\n </>\n );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeUpdateResponse, StatusType } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nexport type EdgeUpdateListItemResponse = EdgeUpdateResponse & {\n status: StatusType;\n statusMessage: string;\n};\n\nasync function getList(includeEdgeStacks?: boolean) {\n try {\n const { data } = await axios.get<EdgeUpdateListItemResponse[]>(buildUrl(), {\n params: { includeEdgeStacks },\n });\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to get list of edge update schedules'\n );\n }\n}\n\nexport function useList(includeEdgeStacks?: boolean) {\n return useQuery(queryKeys.list(includeEdgeStacks), () =>\n getList(includeEdgeStacks)\n );\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\nimport { UserId } from '@/portainer/users/types';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nexport enum ScheduleType {\n Update = 1,\n Rollback,\n}\n\nexport enum StatusType {\n Pending,\n Failed,\n Success,\n Sent,\n}\n\nexport type EdgeUpdateSchedule = {\n id: number;\n name: string;\n\n type: ScheduleType;\n\n created: number;\n createdBy: UserId;\n version: string;\n environmentsPreviousVersions: Record<EnvironmentId, string>;\n};\n\nexport type EdgeUpdateResponse = EdgeUpdateSchedule & {\n // from edge stack:\n edgeGroupIds: EdgeGroup['Id'][];\n scheduledTime: string;\n};\n","import { useQueryClient, useMutation } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n mutationOptions,\n withError,\n withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\n\nimport { buildUrl } from './urls';\nimport { queryKeys } from './query-keys';\n\nexport function useRemoveMutation() {\n const queryClient = useQueryClient();\n\n return useMutation(\n (schedules: EdgeUpdateSchedule[]) =>\n promiseSequence(\n schedules.map((schedule) => () => deleteUpdateSchedule(schedule.id))\n ),\n\n mutationOptions(\n withInvalidate(queryClient, [queryKeys.base()]),\n withError()\n )\n );\n}\n\nasync function deleteUpdateSchedule(id: EdgeUpdateSchedule['id']) {\n try {\n const { data } = await axios.delete<EdgeUpdateSchedule[]>(buildUrl(id));\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to delete edge update schedule'\n );\n }\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DecoratedItem } from '../types';\n\nexport const columnHelper = createColumnHelper<DecoratedItem>();\n","import { isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor('created', {\n id: 'created',\n header: 'Created',\n cell: ({ getValue }) => {\n const value = getValue();\n return isoDateFromTimestamp(value);\n },\n});\n","import { CellContext } from '@tanstack/react-table';\n\nimport { DecoratedItem } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const groups = columnHelper.accessor('edgeGroupNames', {\n header: 'Edge Groups',\n cell: GroupsCell,\n});\n\nexport function GroupsCell({\n getValue,\n}: CellContext<DecoratedItem, Array<string>>) {\n const groups = getValue();\n\n return groups.join(', ');\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { StatusType } from '../../types';\nimport { DecoratedItem } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const scheduleStatus = columnHelper.accessor('status', {\n header: 'Status',\n cell: StatusCell,\n});\n\nfunction StatusCell({\n getValue,\n row: {\n original: { statusMessage },\n },\n}: CellContext<DecoratedItem, DecoratedItem['status']>) {\n const status = getValue();\n\n switch (status) {\n case StatusType.Failed:\n return statusMessage;\n default:\n return StatusType[status];\n }\n}\n","import DateTimePicker from 'react-datetime-picker';\nimport { Calendar, X } from 'lucide-react';\nimport { useMemo } from 'react';\nimport { string } from 'yup';\nimport { useField } from 'formik';\n\nimport {\n isoDate,\n parseIsoDate,\n TIME_FORMAT,\n} from '@/portainer/filters/filters';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { FormValues } from './types';\n\ninterface Props {\n disabled?: boolean;\n}\n\nexport const FORMAT = 'YYYY-MM-DD HH:mm';\n\nexport function ScheduledTimeField({ disabled }: Props) {\n const [{ name, value }, { error }, { setValue }] =\n useField<FormValues['scheduledTime']>('scheduledTime');\n\n const dateValue = useMemo(() => parseIsoDate(value, FORMAT), [value]);\n\n if (!value) {\n return null;\n }\n\n return (\n <>\n <FormControl label=\"Schedule date & time\" errors={error}>\n {!disabled ? (\n <DateTimePicker\n format=\"y-MM-dd HH:mm\"\n className=\"form-control [&>div]:border-0\"\n onChange={(date) => {\n const dateToSave =\n date || new Date(Date.now() + 24 * 60 * 60 * 1000);\n setValue(isoDate(dateToSave.valueOf(), FORMAT));\n }}\n name={name}\n value={dateValue}\n calendarIcon={<Calendar className=\"lucide\" />}\n clearIcon={<X className=\"lucide\" />}\n disableClock\n minDate={new Date(Date.now() - 24 * 60 * 60 * 1000)}\n />\n ) : (\n <Input defaultValue={value} disabled />\n )}\n </FormControl>\n {!disabled && value && (\n <TextTip color=\"blue\">\n If time zone is not set on edge agent then UTC+0 will be used.\n </TextTip>\n )}\n </>\n );\n}\n\nexport function timeValidation() {\n return string()\n .required('Scheduled time is required')\n .test(\n 'validFormat',\n `Scheduled time must be in the format ${TIME_FORMAT}`,\n (value) => isValidDate(parseIsoDate(value))\n )\n .test(\n 'validDate',\n `Scheduled time must be bigger then ${\n (isoDate(Date.now() - 24 * 60 * 60 * 1000), FORMAT)\n }`,\n (value) =>\n parseIsoDate(value).valueOf() > Date.now() - 24 * 60 * 60 * 1000\n );\n}\n\nexport function defaultValue() {\n return isoDate(Date.now(), FORMAT);\n}\n\nfunction isValidDate(date: Date) {\n return date instanceof Date && !Number.isNaN(date.valueOf());\n}\n","import { formatDate } from '@/portainer/filters/filters';\n\nimport { FORMAT } from '../../common/ScheduledTimeField';\n\nimport { columnHelper } from './helper';\n\nexport const scheduledTime = columnHelper.accessor('scheduledTime', {\n header: 'Scheduled Time & Date',\n // make sure the value has the right format\n cell: ({ getValue }) => formatDate(getValue(), FORMAT, FORMAT),\n id: 'time',\n});\n","import { ScheduleType } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const scheduleType = columnHelper.accessor('type', {\n header: 'Type',\n cell: ({ getValue }) => {\n const value = getValue();\n\n return ScheduleType[value];\n },\n});\n","import { buildNameColumn } from '@@/datatables/buildNameColumn';\n\nimport { DecoratedItem } from '../types';\n\nimport { created } from './created';\nimport { groups } from './groups';\nimport { scheduleStatus } from './schedule-status';\nimport { scheduledTime } from './scheduled-time';\nimport { scheduleType } from './type';\n\nexport const columns = [\n buildNameColumn<DecoratedItem>('name', '.item'),\n scheduledTime,\n groups,\n scheduleType,\n scheduleStatus,\n created,\n];\n","import { Clock, Trash2 } from 'lucide-react';\nimport { useMemo } from 'react';\nimport _ from 'lodash';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable } from '@@/datatables';\nimport { PageHeader } from '@@/PageHeader';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useList } from '../queries/list';\nimport { EdgeUpdateSchedule, StatusType } from '../types';\nimport { useRemoveMutation } from '../queries/useRemoveMutation';\nimport { BetaAlert } from '../common/BetaAlert';\n\nimport { columns } from './columns';\nimport { createStore } from './datatable-store';\nimport { DecoratedItem } from './types';\n\nconst storageKey = 'update-schedules-list';\nconst settingsStore = createStore(storageKey);\n\nexport default withLimitToBE(ListView);\n\nexport function ListView() {\n const tableState = useTableState(settingsStore, storageKey);\n\n const listQuery = useList(true);\n const groupsQuery = useEdgeGroups({\n select: (groups) => Object.fromEntries(groups.map((g) => [g.Id, g.Name])),\n });\n\n const items: Array<DecoratedItem> = useMemo(() => {\n if (!listQuery.data || !groupsQuery.data) {\n return [];\n }\n\n return listQuery.data.map((item) => ({\n ...item,\n edgeGroupNames: _.compact(\n item.edgeGroupIds.map((id) => groupsQuery.data[id])\n ),\n }));\n }, [listQuery.data, groupsQuery.data]);\n\n if (!listQuery.data || !groupsQuery.data) {\n return null;\n }\n\n return (\n <>\n <PageHeader\n title=\"Update & Rollback\"\n breadcrumbs=\"Update and rollback\"\n reload\n />\n\n <BetaAlert\n className=\"mb-2 ml-[15px]\"\n message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n />\n\n <Datatable\n dataset={items}\n columns={columns}\n settingsManager={tableState}\n title=\"Update & rollback\"\n titleIcon={Clock}\n emptyContentLabel=\"No schedules found\"\n isLoading={listQuery.isLoading}\n renderTableActions={(selectedRows) => (\n <TableActions selectedRows={selectedRows} />\n )}\n isRowSelectable={(row) => row.original.status === StatusType.Pending}\n />\n </>\n );\n}\n\nfunction TableActions({\n selectedRows,\n}: {\n selectedRows: EdgeUpdateSchedule[];\n}) {\n const removeMutation = useRemoveMutation();\n return (\n <>\n <Button\n icon={Trash2}\n color=\"dangerlight\"\n onClick={() => handleRemove()}\n disabled={selectedRows.length === 0}\n >\n Remove\n </Button>\n\n <Link to=\".create\">\n <Button>Add update & rollback schedule</Button>\n </Link>\n </>\n );\n\n async function handleRemove() {\n const confirmed = await confirmDelete(\n 'Are you sure you want to remove these?'\n );\n if (!confirmed) {\n return;\n }\n\n removeMutation.mutate(selectedRows, {\n onSuccess: () => {\n notifySuccess('Success', 'Schedules successfully removed');\n },\n });\n }\n}\n","import {\n refreshableSettings,\n hiddenColumnsSettings,\n RefreshableTableSettings,\n SettableColumnsTableSettings,\n createPersistedStore,\n BasicTableSettings,\n} from '@/react/components/datatables/types';\n\ninterface TableSettings\n extends BasicTableSettings,\n SettableColumnsTableSettings,\n RefreshableTableSettings {}\n\nexport function createStore(storageKey: string) {\n return createPersistedStore<TableSettings>(\n storageKey,\n 'time',\n\n (set) => ({\n ...hiddenColumnsSettings(set),\n ...refreshableSettings(set),\n })\n );\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError, withInvalidate } from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nasync function create(schedule: FormValues) {\n try {\n const { data } = await axios.post<EdgeUpdateSchedule>(buildUrl(), schedule);\n\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to create edge update schedule'\n );\n }\n}\n\nexport function useCreateMutation() {\n const queryClient = useQueryClient();\n return useMutation(create, {\n ...withInvalidate(queryClient, [queryKeys.base()]),\n ...withError(),\n });\n}\n","import { Field, useField } from 'formik';\nimport { string } from 'yup';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { EdgeUpdateSchedule } from '../types';\n\nimport { FormValues } from './types';\n\nexport function NameField() {\n const [{ name }, { error }] = useField<FormValues['name']>('name');\n\n return (\n <FormControl\n label=\"Name\"\n required\n inputId=\"name-input\"\n errors={error}\n tooltip=\"A descriptive name helps identify the update or roll back schedule when you have more than one\"\n >\n <Field as={Input} name={name} id=\"name-input\" />\n </FormControl>\n );\n}\n\nexport function nameValidation(\n schedules: EdgeUpdateSchedule[],\n currentId?: EdgeUpdateSchedule['id']\n) {\n return string()\n .required('This field is required')\n .test('unique', 'Name must be unique', (value) =>\n schedules.every((s) => s.id === currentId || s.name !== value)\n );\n}\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nexport function useEdgeGroupsEnvironmentIds(\n edgeGroupsIds: Array<EdgeGroup['Id']>\n) {\n const groupsQuery = useEdgeGroups({\n select: (groups) =>\n Object.fromEntries(groups.map((g) => [g.Id, g.Endpoints])),\n });\n\n const envIds = useMemo(\n () =>\n _.uniq(\n _.compact(\n edgeGroupsIds.flatMap((id) =>\n groupsQuery.data ? groupsQuery.data[id] : []\n )\n )\n ),\n [edgeGroupsIds, groupsQuery.data]\n );\n\n return useMemo(\n () => ({\n data: groupsQuery.data ? envIds : null,\n isLoading: groupsQuery.isLoading,\n }),\n [envIds, groupsQuery.data, groupsQuery.isLoading]\n );\n}\n","import { Field, useField } from 'formik';\nimport _ from 'lodash';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { useSupportedAgentVersions } from '../queries/useSupportedAgentVersions';\n\nimport { FormValues } from './types';\n\n/**\n * in-case agents don't have any version field, it means they are version less then 2.15.x or that they still not associated.\n */\nconst DEFAULT_MIN_VERSION = '2.14.10';\n\nexport function VersionSelect({\n minVersion = DEFAULT_MIN_VERSION,\n}: {\n minVersion?: string;\n}) {\n const [{ value: version }, { error }, { setValue }] =\n useField<FormValues['version']>('version');\n const supportedAgentVersionsQuery = useSupportedAgentVersions(minVersion, {\n onSuccess(versions) {\n if (versions.includes(version)) {\n return;\n }\n\n setValue(_.last(versions) || '');\n },\n });\n\n if (!supportedAgentVersionsQuery.data) {\n return null;\n }\n\n if (!supportedAgentVersionsQuery.data.length) {\n return (\n <FormControl label=\"Version\">\n <TextTip>No supported versions available</TextTip>\n </FormControl>\n );\n }\n\n const supportedVersions = supportedAgentVersionsQuery.data.map((version) => ({\n label: version,\n value: version,\n }));\n\n return (\n <FormControl label=\"Version\" errors={error} inputId=\"version-input\">\n <Field\n id=\"version-input\"\n name=\"version\"\n as={Select}\n className=\"form-control\"\n placeholder=\"Version\"\n options={supportedVersions}\n />\n </FormControl>\n );\n}\n","import _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { semverCompare } from '@/react/common/semver-utils';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { VersionSelect } from './VersionSelect';\nimport { ScheduledTimeField } from './ScheduledTimeField';\n\ninterface Props {\n environments: Environment[];\n hasTimeZone: boolean;\n hasNoTimeZone: boolean;\n hasGroupSelected: boolean;\n version: string;\n}\n\nexport function UpdateScheduleDetailsFieldset({\n environments,\n hasTimeZone,\n hasNoTimeZone,\n hasGroupSelected,\n version,\n}: Props) {\n const minVersion = _.first(\n _.compact<string>(environments.map((env) => env.Agent.Version)).sort(\n (a, b) => semverCompare(a, b)\n )\n );\n\n return (\n <>\n {environments.length > 0 ? (\n !!version && (\n <TextTip color=\"blue\">\n {environments.length} environment(s) will be updated to {version}\n </TextTip>\n )\n ) : (\n <TextTip color=\"orange\">\n No environments options for the selected edge groups\n </TextTip>\n )}\n <VersionSelect minVersion={minVersion} />\n\n {hasTimeZone && hasGroupSelected && <ScheduledTimeField />}\n {hasNoTimeZone && (\n <TextTip>\n These edge groups have older versions of the edge agent that do not\n support scheduling, these will happen immediately\n </TextTip>\n )}\n </>\n );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\ninterface Options<T> {\n select?: (data: Record<EnvironmentId, string>) => T;\n onSuccess?(data: T): void;\n enabled?: boolean;\n}\n\nexport function usePreviousVersions<T = Record<EnvironmentId, string>>({\n select,\n onSuccess,\n enabled,\n}: Options<T> = {}) {\n return useQuery(queryKeys.previousVersions(), getPreviousVersions, {\n select,\n onSuccess,\n enabled,\n });\n}\n\nasync function getPreviousVersions() {\n try {\n const { data } = await axios.get<Record<EnvironmentId, string>>(\n buildUrl(undefined, 'previous_versions')\n );\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to get list of edge update schedules'\n );\n }\n}\n","import { useFormikContext } from 'formik';\nimport _ from 'lodash';\nimport { useMemo, useEffect } from 'react';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { usePreviousVersions } from '../queries/usePreviousVersions';\n\nimport { FormValues } from './types';\nimport { useEdgeGroupsEnvironmentIds } from './useEdgeGroupsEnvironmentIds';\n\nexport function RollbackOptions() {\n const { isLoading, count, version, versionError } = useSelectVersionOnMount();\n\n const groupNames = useGroupNames();\n\n if (versionError) {\n return <TextTip>{versionError}</TextTip>;\n }\n\n if (!count) {\n return (\n <TextTip>\n There are no rollback options available for your selected groups(s)\n </TextTip>\n );\n }\n\n if (isLoading || !groupNames) {\n return null;\n }\n\n return (\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n {count} edge device(s) from {groupNames} will rollback to version{' '}\n {version}\n </div>\n </div>\n );\n}\n\nfunction useSelectVersionOnMount() {\n const {\n values: { groupIds, version },\n setFieldValue,\n setFieldError,\n errors: { version: versionError },\n } = useFormikContext<FormValues>();\n\n const environmentIdsQuery = useEdgeGroupsEnvironmentIds(groupIds);\n\n const previousVersionsQuery = usePreviousVersions<string[]>({\n enabled: !!environmentIdsQuery.data,\n });\n\n const previousVersions = useMemo(\n () =>\n previousVersionsQuery.data\n ? _.uniq(\n _.compact(\n environmentIdsQuery.data?.map(\n (envId) => previousVersionsQuery.data[envId]\n )\n )\n )\n : [],\n [environmentIdsQuery.data, previousVersionsQuery.data]\n );\n\n useEffect(() => {\n switch (previousVersions.length) {\n case 0:\n setFieldValue('version', '');\n setFieldError('version', 'No rollback options available');\n break;\n case 1:\n setFieldValue('version', previousVersions[0]);\n break;\n default:\n setFieldError(\n 'version',\n 'Rollback is not available for these edge group as there are multiple version types to rollback to'\n );\n }\n }, [previousVersions, setFieldError, setFieldValue]);\n\n return {\n isLoading: previousVersionsQuery.isLoading,\n versionError,\n version,\n count: environmentIdsQuery.data?.length,\n };\n}\n\nfunction useGroupNames() {\n const {\n values: { groupIds },\n } = useFormikContext<FormValues>();\n\n const groupsQuery = useEdgeGroups({\n select: (groups) => Object.fromEntries(groups.map((g) => [g.Id, g.Name])),\n });\n\n if (!groupsQuery.data) {\n return null;\n }\n\n return groupIds.map((id) => groupsQuery.data[id]).join(', ');\n}\n","import { RollbackOptions } from './RollbackOptions';\nimport { ScheduledTimeField } from './ScheduledTimeField';\n\ninterface Props {\n hasTimeZone: boolean;\n hasGroupSelected: boolean;\n}\n\nexport function RollbackScheduleDetailsFieldset({\n hasTimeZone,\n hasGroupSelected,\n}: Props) {\n return (\n <div className=\"mt-3\">\n <RollbackOptions />\n {hasTimeZone && hasGroupSelected && <ScheduledTimeField />}\n </div>\n );\n}\n","import { useFormikContext } from 'formik';\nimport { number } from 'yup';\nimport { useEffect } from 'react';\n\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nimport { ScheduleType } from '../types';\n\nimport { useEdgeGroupsEnvironmentIds } from './useEdgeGroupsEnvironmentIds';\nimport { useEnvironments } from './useEnvironments';\nimport { defaultValue } from './ScheduledTimeField';\nimport { FormValues } from './types';\nimport { UpdateScheduleDetailsFieldset } from './UpdateScheduleDetailsFieldset';\nimport { RollbackScheduleDetailsFieldset } from './RollbackScheduleDetailsFieldset';\n\nexport function ScheduleTypeSelector() {\n const { values, setFieldValue } = useFormikContext<FormValues>();\n\n const environmentIdsQuery = useEdgeGroupsEnvironmentIds(values.groupIds);\n\n const edgeGroupsEnvironmentIds = environmentIdsQuery.data || [];\n const environments = useEnvironments(edgeGroupsEnvironmentIds);\n\n // old version is version that doesn't support scheduling of updates\n const hasNoTimeZone = environments.some((env) => !env.LocalTimeZone);\n const hasTimeZone = environments.some((env) => env.LocalTimeZone);\n const hasGroupSelected = values.groupIds.length > 0;\n\n useEffect(() => {\n if (!hasTimeZone || !hasGroupSelected) {\n setFieldValue('scheduledTime', '');\n } else if (!values.scheduledTime) {\n setFieldValue('scheduledTime', defaultValue());\n }\n }, [setFieldValue, hasTimeZone, values.scheduledTime, hasGroupSelected]);\n\n return (\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <NavContainer>\n <NavTabs\n options={[\n {\n id: ScheduleType.Update,\n label: 'Update',\n children: (\n <UpdateScheduleDetailsFieldset\n environments={environments}\n hasTimeZone={hasTimeZone}\n hasNoTimeZone={hasNoTimeZone}\n hasGroupSelected={hasGroupSelected}\n version={values.version}\n />\n ),\n },\n {\n id: ScheduleType.Rollback,\n label: 'Rollback',\n children: (\n <RollbackScheduleDetailsFieldset\n hasTimeZone={hasTimeZone}\n hasGroupSelected={hasGroupSelected}\n />\n ),\n },\n ]}\n selectedId={values.type}\n onSelect={handleChangeType}\n />\n </NavContainer>\n </div>\n </div>\n );\n\n function handleChangeType(scheduleType: ScheduleType) {\n setFieldValue('type', scheduleType);\n setFieldValue('version', '');\n }\n}\n\nexport function typeValidation() {\n return number()\n .oneOf([ScheduleType.Rollback, ScheduleType.Update])\n .default(ScheduleType.Update);\n}\n","import { useEnvironmentList } from '@/react/portainer/environments/queries/useEnvironmentList';\nimport { EdgeTypes, EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function useEnvironments(environmentsIds: Array<EnvironmentId>) {\n const environmentsQuery = useEnvironmentList(\n { endpointIds: environmentsIds, types: EdgeTypes, pageLimit: 0 },\n {\n enabled: environmentsIds.length > 0,\n }\n );\n\n return environmentsQuery.environments;\n}\n","import { array, object, SchemaOf, string, number } from 'yup';\n\nimport { parseIsoDate } from '@/portainer/filters/filters';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nimport { EdgeUpdateSchedule, ScheduleType } from '../types';\n\nimport { nameValidation } from './NameField';\nimport { typeValidation } from './ScheduleTypeSelector';\nimport { FormValues } from './types';\n\nexport function validation(\n schedules: EdgeUpdateSchedule[],\n edgeGroups: Array<EdgeGroup> | undefined,\n currentId?: EdgeUpdateSchedule['id']\n): SchemaOf<FormValues> {\n return object({\n groupIds: array()\n .of(number().default(0))\n .min(1, 'At least one group is required')\n .test(\n 'At least one group must have endpoints',\n (groupIds) =>\n !!(\n groupIds &&\n edgeGroups &&\n groupIds?.flatMap(\n (id) => edgeGroups?.find((group) => group.Id === id)?.Endpoints\n ).length > 0\n )\n ),\n name: nameValidation(schedules, currentId),\n type: typeValidation(),\n scheduledTime: string()\n .default('')\n .test('valid', (value) => !value || parseIsoDate(value) !== null),\n version: string()\n .default('')\n .when('type', {\n is: ScheduleType.Update,\n // update type\n then: (schema) => schema.required('Version is required'),\n // rollback\n otherwise: (schema) => schema.required('No rollback options available'),\n }),\n registryId: number().default(0),\n });\n}\n","import { FormikErrors, FormikHandlers } from 'formik';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/ReactSelect';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { FormValues } from './types';\n\ninterface Props {\n disabled?: boolean;\n onBlur: FormikHandlers['handleBlur'];\n value: FormValues['groupIds'];\n error?: FormikErrors<FormValues>['groupIds'];\n onChange(value: FormValues['groupIds']): void;\n}\n\nexport function EdgeGroupsField({\n disabled,\n onBlur,\n value,\n error,\n onChange,\n}: Props) {\n const groupsQuery = useEdgeGroups();\n\n const selectedGroups = groupsQuery.data?.filter((group) =>\n value.includes(group.Id)\n );\n\n return (\n <div>\n <FormControl\n label=\"Groups\"\n required\n inputId=\"groups-select\"\n errors={error}\n tooltip=\"Updates are done based on groups, allowing you to choose multiple devices at the same time and the ability to roll out progressively across all environments by scheduling them for different days.\"\n >\n <Select\n name=\"groupIds\"\n onBlur={onBlur}\n value={selectedGroups}\n inputId=\"groups-select\"\n placeholder=\"Select one or multiple group(s)\"\n onChange={(selectedGroups) =>\n onChange(selectedGroups.map((g) => g.Id))\n }\n isMulti\n options={groupsQuery.data || []}\n getOptionLabel={(group) => group.Name}\n getOptionValue={(group) => group.Id.toString()}\n closeMenuOnSelect={false}\n isDisabled={disabled}\n />\n </FormControl>\n <TextTip color=\"blue\">\n Select groups of Edge environments to update\n </TextTip>\n </div>\n );\n}\n","import { useMemo } from 'react';\nimport { Settings } from 'lucide-react';\nimport { Formik, Form as FormikForm } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Link } from '@@/Link';\n\nimport { ScheduleType } from '../types';\nimport { useCreateMutation } from '../queries/create';\nimport { FormValues } from '../common/types';\nimport { validation } from '../common/validation';\nimport { ScheduleTypeSelector } from '../common/ScheduleTypeSelector';\nimport { useList } from '../queries/list';\nimport { NameField } from '../common/NameField';\nimport { EdgeGroupsField } from '../common/EdgeGroupsField';\nimport { BetaAlert } from '../common/BetaAlert';\nimport { defaultValue } from '../common/ScheduledTimeField';\n\nexport default withLimitToBE(CreateView);\n\nfunction CreateView() {\n const initialValues = useMemo<FormValues>(\n () => ({\n name: '',\n groupIds: [],\n type: ScheduleType.Update,\n version: '',\n scheduledTime: defaultValue(),\n }),\n []\n );\n const edgeGroupsQuery = useEdgeGroups();\n const schedulesQuery = useList();\n\n const createMutation = useCreateMutation();\n const router = useRouter();\n\n if (!schedulesQuery.data) {\n return null;\n }\n\n const schedules = schedulesQuery.data;\n\n return (\n <>\n <PageHeader\n title=\"Update & Rollback\"\n breadcrumbs=\"Edge agent update and rollback\"\n reload\n />\n\n <BetaAlert\n className=\"mb-2 ml-[15px]\"\n message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <Widget.Title title=\"Update & Rollback Scheduler\" icon={Settings} />\n <Widget.Body>\n <TextTip color=\"blue\" className=\"mb-2\">\n Devices need to be allocated to an Edge group, visit the{' '}\n <Link to=\"edge.groups\">Edge Groups</Link> page to assign\n environments and create groups.\n </TextTip>\n\n <Formik\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validateOnMount\n validationSchema={() =>\n validation(schedules, edgeGroupsQuery.data)\n }\n >\n {({ isValid, setFieldValue, values, handleBlur, errors }) => (\n <FormikForm className=\"form-horizontal\">\n <NameField />\n <EdgeGroupsField\n onChange={(value) => setFieldValue('groupIds', value)}\n value={values.groupIds}\n onBlur={handleBlur}\n error={errors.groupIds}\n />\n\n <TextTip color=\"blue\">\n You can upgrade from any agent version to 2.17 or later\n only. You can not upgrade to an agent version prior to\n 2.17 . The ability to rollback to originating version is\n for 2.15.0+ only.\n </TextTip>\n\n <div className=\"mt-2\">\n <ScheduleTypeSelector />\n </div>\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n disabled={!isValid}\n isLoading={createMutation.isLoading}\n loadingText=\"Creating...\"\n >\n Create Schedule\n </LoadingButton>\n </div>\n </div>\n </FormikForm>\n )}\n </Formik>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n </>\n );\n\n function handleSubmit(values: FormValues) {\n createMutation.mutate(values, {\n onSuccess() {\n notifySuccess('Success', 'Created schedule successfully');\n router.stateService.go('^');\n },\n });\n }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeUpdateResponse, EdgeUpdateSchedule } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nexport function useItem(id: EdgeUpdateSchedule['id']) {\n return useQuery(queryKeys.item(id), () => getItem(id));\n}\n\ntype EdgeUpdateItemResponse = EdgeUpdateResponse & {\n isActive: boolean;\n};\n\nasync function getItem(id: EdgeUpdateSchedule['id']) {\n try {\n const { data } = await axios.get<EdgeUpdateItemResponse>(buildUrl(id), {\n params: { includeEdgeStack: true },\n });\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to get list of edge update schedules'\n );\n }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError, withInvalidate } from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\ninterface Update {\n id: EdgeUpdateSchedule['id'];\n values: Partial<FormValues>;\n}\n\nasync function update({ id, values }: Update) {\n try {\n const { data } = await axios.put<EdgeUpdateSchedule>(buildUrl(id), values);\n\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to update edge update schedule'\n );\n }\n}\n\nexport function useUpdateMutation() {\n const queryClient = useQueryClient();\n return useMutation(update, {\n ...withInvalidate(queryClient, [queryKeys.base()]),\n ...withError(),\n });\n}\n","import { Settings } from 'lucide-react';\nimport { Formik, Form as FormikForm } from 'formik';\nimport { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { object, SchemaOf } from 'yup';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { InformationPanel } from '@@/InformationPanel';\nimport { Link } from '@@/Link';\n\nimport { useItem } from '../queries/useItem';\nimport { validation } from '../common/validation';\nimport { useUpdateMutation } from '../queries/useUpdateMutation';\nimport { useList } from '../queries/list';\nimport { NameField, nameValidation } from '../common/NameField';\nimport { EdgeGroupsField } from '../common/EdgeGroupsField';\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\nimport { ScheduleTypeSelector } from '../common/ScheduleTypeSelector';\nimport { BetaAlert } from '../common/BetaAlert';\n\nexport default withLimitToBE(ItemView);\n\nfunction ItemView() {\n const {\n params: { id: idParam },\n } = useCurrentStateAndParams();\n\n const id = parseInt(idParam, 10);\n const edgeGroupsQuery = useEdgeGroups();\n\n if (!idParam || Number.isNaN(id)) {\n throw new Error('id is a required path param');\n }\n\n const updateMutation = useUpdateMutation();\n const router = useRouter();\n const itemQuery = useItem(id);\n const schedulesQuery = useList();\n\n if (!itemQuery.data || !schedulesQuery.data) {\n return null;\n }\n\n const item = itemQuery.data;\n const isScheduleActive = item.isActive;\n\n const schedules = schedulesQuery.data;\n\n const initialValuesActive: Partial<FormValues> = {\n name: item.name,\n };\n\n const initialValues: FormValues = {\n name: item.name,\n groupIds: item.edgeGroupIds,\n type: item.type,\n version: item.version,\n scheduledTime: item.scheduledTime,\n };\n\n const environmentsCount = Object.keys(\n item.environmentsPreviousVersions\n ).length;\n\n return (\n <>\n <PageHeader\n title=\"Update & Rollback\"\n breadcrumbs={[\n { label: 'Edge agent update and rollback', link: '^' },\n item.name,\n ]}\n reload\n />\n\n <BetaAlert\n className=\"mb-2 ml-[15px]\"\n message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <Widget.Title title=\"Update & Rollback Scheduler\" icon={Settings} />\n <Widget.Body>\n <TextTip color=\"blue\">\n Devices need to be allocated to an Edge group, visit the{' '}\n <Link to=\"edge.groups\">Edge Groups</Link> page to assign\n environments and create groups.\n </TextTip>\n\n <Formik\n initialValues={\n !isScheduleActive ? initialValues : initialValuesActive\n }\n onSubmit={(values) => {\n updateMutation.mutate(\n { id, values },\n {\n onSuccess() {\n notifySuccess(\n 'Success',\n 'Updated schedule successfully'\n );\n router.stateService.go('^');\n },\n }\n );\n }}\n validateOnMount\n validationSchema={() =>\n updateValidation(\n item.id,\n schedules,\n edgeGroupsQuery.data,\n isScheduleActive\n )\n }\n >\n {({ isValid, setFieldValue, values, handleBlur, errors }) => (\n <FormikForm className=\"form-horizontal\">\n <NameField />\n\n <EdgeGroupsField\n disabled={isScheduleActive}\n onChange={(value) => setFieldValue('groupIds', value)}\n value={\n isScheduleActive\n ? item.edgeGroupIds\n : values.groupIds || []\n }\n onBlur={handleBlur}\n error={errors.groupIds}\n />\n\n <div className=\"mt-2\">\n {isScheduleActive ? (\n <InformationPanel>\n <TextTip color=\"blue\">\n {environmentsCount} environment(s) will be updated\n to version {item.version} on {item.scheduledTime}{' '}\n (local time)\n </TextTip>\n </InformationPanel>\n ) : (\n <ScheduleTypeSelector />\n )}\n </div>\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n disabled={!isValid}\n isLoading={updateMutation.isLoading}\n loadingText=\"Updating...\"\n >\n Update Schedule\n </LoadingButton>\n </div>\n </div>\n </FormikForm>\n )}\n </Formik>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n </>\n );\n}\n\nfunction updateValidation(\n itemId: EdgeUpdateSchedule['id'],\n schedules: EdgeUpdateSchedule[],\n edgeGroups: Array<EdgeGroup> | undefined,\n isScheduleActive: boolean\n): SchemaOf<{ name: string } | FormValues> {\n return !isScheduleActive\n ? validation(schedules, edgeGroups, itemId)\n : object({ name: nameValidation(schedules, itemId) });\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport {\n ListView,\n CreateView,\n ItemView,\n} from '@/react/portainer/environments/update-schedules';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\n\nexport const updateSchedulesModule = angular\n .module('portainer.edge.updateSchedules', [])\n .component(\n 'updateSchedulesListView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), [])\n )\n .component(\n 'updateSchedulesCreateView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(CreateView))), [])\n )\n .component(\n 'updateSchedulesItemView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ItemView))), [])\n )\n .config(config).name;\n\nfunction config($stateRegistryProvider: StateRegistry) {\n $stateRegistryProvider.register({\n name: 'portainer.endpoints.updateSchedules',\n url: '/update-schedules',\n views: {\n 'content@': {\n component: 'updateSchedulesListView',\n },\n },\n data: {\n docs: '/admin/environments/update',\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.endpoints.updateSchedules.create',\n url: '/update-schedules/new',\n views: {\n 'content@': {\n component: 'updateSchedulesCreateView',\n },\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.endpoints.updateSchedules.item',\n url: '/update-schedules/:id',\n views: {\n 'content@': {\n component: 'updateSchedulesItemView',\n },\n },\n });\n}\n","import angular from 'angular';\n\nimport { HomeView } from '@/react/portainer/HomeView';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { CreateUserAccessToken } from '@/react/portainer/account/CreateAccessTokenView';\nimport { EdgeComputeSettingsView } from '@/react/portainer/settings/EdgeComputeView/EdgeComputeSettingsView';\nimport { EdgeAutoCreateScriptView } from '@/react/portainer/environments/EdgeAutoCreateScriptView';\nimport { ListView as EnvironmentsListView } from '@/react/portainer/environments/ListView';\nimport { BackupSettingsPanel } from '@/react/portainer/settings/SettingsView/BackupSettingsView/BackupSettingsPanel';\nimport { SettingsView } from '@/react/portainer/settings/SettingsView/SettingsView';\nimport { CreateHelmRepositoriesView } from '@/react/portainer/account/helm-repositories/CreateHelmRepositoryView';\n\nimport { wizardModule } from './wizard';\nimport { teamsModule } from './teams';\nimport { updateSchedulesModule } from './update-schedules';\n\nexport const viewsModule = angular\n .module('portainer.app.react.views', [\n wizardModule,\n teamsModule,\n updateSchedulesModule,\n ])\n .component(\n 'homeView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(HomeView))), [])\n )\n .component(\n 'edgeAutoCreateScriptView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EdgeAutoCreateScriptView))),\n []\n )\n )\n .component(\n 'createUserAccessToken',\n r2a(\n withReactQuery(withCurrentUser(withUIRouter(CreateUserAccessToken))),\n []\n )\n )\n .component(\n 'settingsEdgeCompute',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EdgeComputeSettingsView))),\n ['onSubmit', 'settings']\n )\n )\n .component(\n 'environmentsListView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(EnvironmentsListView))), [])\n )\n .component(\n 'backupSettingsPanel',\n r2a(withUIRouter(withReactQuery(withCurrentUser(BackupSettingsPanel))), [])\n )\n .component(\n 'settingsView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(SettingsView))), [])\n )\n .component(\n 'createHelmRepositoryView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(CreateHelmRepositoriesView))),\n []\n )\n ).name;\n","import { Settings } from '@/react/portainer/settings/types';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { EdgeComputeSettings } from './EdgeComputeSettings';\nimport { DeploymentSyncOptions } from './DeploymentSyncOptions/DeploymentSyncOptions';\nimport { AutomaticEdgeEnvCreation } from './AutomaticEdgeEnvCreation';\n\ninterface Props {\n settings: Settings;\n onSubmit(values: Settings): void;\n}\n\nexport function EdgeComputeSettingsView({ settings, onSubmit }: Props) {\n return (\n <div className=\"row\">\n <EdgeComputeSettings settings={settings} onSubmit={onSubmit} />\n\n <DeploymentSyncOptions />\n\n {isBE && <AutomaticEdgeEnvCreation />}\n </div>\n );\n}\n","import { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody } from '@@/Widget';\n\nimport { CreateHelmRepositoryForm } from './CreateHelmRespositoriesForm';\n\nexport function CreateHelmRepositoriesView() {\n return (\n <>\n <PageHeader\n title=\"Create Helm repository\"\n breadcrumbs={[\n { label: 'My account', link: 'portainer.account' },\n { label: 'Create Helm repository' },\n ]}\n reload\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <WidgetBody>\n <CreateHelmRepositoryForm />\n </WidgetBody>\n </Widget>\n </div>\n </div>\n </>\n );\n}\n","import angular from 'angular';\n\nimport { componentsModule } from './components';\nimport { viewsModule } from './views';\n\nexport const reactModule = angular.module('portainer.app.react', [\n viewsModule,\n componentsModule,\n]).name;\n","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n useReducer,\n} from 'react';\nimport angular, { IScope } from 'angular';\nimport _ from 'lodash';\n\nimport * as storage from '@/react/hooks/useLocalStorage';\n\n// using bootstrap breakpoint - https://getbootstrap.com/docs/5.0/layout/breakpoints/#min-width\nconst mobileWidth = 992;\nconst storageKey = 'toolbar_toggle';\n\ninterface State {\n isOpen: boolean;\n toggle(): void;\n}\n\nexport const Context = createContext<State | null>(null);\nContext.displayName = 'SidebarContext';\n\nexport function useSidebarState() {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error('useSidebarContext must be used within a SidebarProvider');\n }\n\n return context;\n}\n\nexport function SidebarProvider({ children }: { children: React.ReactNode }) {\n const state = useSidebarStateLocal();\n\n return <Context.Provider value={state}> {children} </Context.Provider>;\n}\n\nexport function TestSidebarProvider({ children }: PropsWithChildren<unknown>) {\n const [isOpen, toggle] = useReducer((state) => !state, true);\n\n const state = useMemo(\n () => ({ isOpen, toggle: () => toggle() }),\n [isOpen, toggle]\n );\n\n return <Context.Provider value={state}> {children} </Context.Provider>;\n}\n\n/* @ngInject */\nexport function AngularSidebarService($rootScope: IScope) {\n const state = {\n isOpen: false,\n };\n\n function isSidebarOpen() {\n return state.isOpen;\n }\n\n function setIsOpen(isOpen: boolean) {\n $rootScope.$evalAsync(() => {\n state.isOpen = isOpen;\n });\n }\n\n return { isSidebarOpen, setIsOpen };\n}\n\nfunction useSidebarStateLocal() {\n const [storageIsOpen, setIsOpenInStorage] = storage.useLocalStorage(\n storageKey,\n true\n );\n const [isOpen, setIsOpen, undoIsOpenChange] = useStateWithUndo(\n initialState()\n );\n\n const onResize = useMemo(\n () =>\n _.debounce(() => {\n if (isMobile()) {\n if (isOpen) {\n setIsOpen(false);\n }\n } else {\n undoIsOpenChange();\n }\n }, 50),\n [setIsOpen, undoIsOpenChange, isOpen]\n );\n\n useUpdateAngularService(isOpen);\n\n useEffect(() => {\n if (window.ddExtension) {\n return undefined;\n }\n\n window.addEventListener('resize', onResize);\n return () => window.removeEventListener('resize', onResize);\n }, [onResize]);\n\n return {\n isOpen,\n toggle,\n };\n\n function toggle(value = !isOpen) {\n setIsOpenInStorage(value);\n setIsOpen(value);\n }\n\n function initialState() {\n if (isMobile() || window.ddExtension) {\n return false;\n }\n\n return storageIsOpen;\n }\n}\n\nfunction useStateWithUndo<T>(\n initialState: T\n): [T, (value: T) => void, () => void] {\n const [state, setState] = useState(initialState);\n const prevState = useRef<T>();\n\n const undo = useCallback(() => {\n if (!prevState.current) {\n return;\n }\n\n setState(prevState.current);\n prevState.current = undefined;\n }, [prevState]);\n\n const handleSetState = useCallback(\n (newState: T) => {\n prevState.current = state;\n setState(newState);\n },\n [state]\n );\n\n return [state, handleSetState, undo];\n}\n\nfunction useUpdateAngularService(isOpen: boolean) {\n useEffect(() => {\n // to sync \"outside state\" - for angularjs\n const $injector = angular.element(document).injector();\n $injector.invoke(\n /* @ngInject */ (\n SidebarService: ReturnType<typeof AngularSidebarService>\n ) => {\n SidebarService.setIsOpen(isOpen);\n }\n );\n }, [isOpen]);\n}\n\nfunction isMobile() {\n const width = window.innerWidth;\n\n return width < mobileWidth;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-Sidebar-module__root\",\"nav\":\"app-react-sidebar-Sidebar-module__nav\",\"navListContainer\":\"app-react-sidebar-Sidebar-module__nav-list-container\"};","import { PropsWithChildren, AriaAttributes } from 'react';\nimport clsx from 'clsx';\n\ninterface Props {\n className?: string;\n label?: string;\n}\n\nexport function Wrapper({\n className,\n children,\n label,\n ...ariaProps\n}: PropsWithChildren<Props> & AriaAttributes) {\n return (\n <li\n className={clsx(\n className,\n 'flex min-h-8 text-gray-3 th-highcontrast:text-white [&>a]:text-inherit [&>a]:hover:text-inherit [&>a]:hover:no-underline'\n )}\n aria-label={label}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...ariaProps}\n >\n {children}\n </li>\n );\n}\n","import Tippy, { TippyProps } from '@tippyjs/react';\n\ntype Props = {\n content: React.ReactNode;\n children?: TippyProps['children'];\n};\n\nexport function SidebarTooltip({ children, content }: Props) {\n return (\n <Tippy\n className=\"sidebar !rounded-md bg-blue-9 p-3 !opacity-100 be:bg-gray-9 th-dark:bg-gray-true-9 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white\"\n content={content}\n delay={[0, 0]}\n duration={[0, 0]}\n zIndex={1000}\n placement=\"right\"\n arrow\n allowHTML\n interactive\n >\n {children}\n </Tippy>\n );\n}\n","import {\n TransitionOptions,\n useCurrentStateAndParams,\n useSrefActive,\n} from '@uirouter/react';\n\nexport type PathOptions = {\n ignorePaths?: string[];\n includePaths?: string[];\n};\n\n/**\n * Extends useSrefActive by ignoring or including paths and updating the classNames field returned when a child route is active.\n * @param to The route to match\n * @param activeClassName The active class names to return\n * @param params The route params\n * @param options The transition options\n * @param pathOptions The paths to ignore/include\n */\nexport function useSidebarSrefActive(\n to: string,\n // default values are the classes used in the sidebar for an active item\n activeClassName: string = 'bg-blue-5/25 be:bg-gray-5/25 th-dark:bg-gray-true-5/25',\n params: Partial<Record<string, string>> = {},\n options: TransitionOptions = {},\n pathOptions: PathOptions = {\n ignorePaths: [],\n includePaths: [],\n }\n) {\n const { state: { name: stateName = '' } = {} } = useCurrentStateAndParams();\n const anchorProps = useSrefActive(to, params || {}, activeClassName, options);\n\n // overwrite the className to '' if the the current route is in ignorePaths\n const isIgnorePathInRoute = pathOptions.ignorePaths?.some((path) =>\n stateName.includes(path)\n );\n if (isIgnorePathInRoute) {\n return { ...anchorProps, className: '' };\n }\n\n // overwrite the className to activeClassName if the the current route is in includePaths\n const isIncludePathInRoute = pathOptions.includePaths?.some((path) =>\n stateName.includes(path)\n );\n if (isIncludePathInRoute) {\n return { ...anchorProps, className: activeClassName };\n }\n\n return anchorProps;\n}\n","import { Icon as IconTest } from 'lucide-react';\nimport clsx from 'clsx';\nimport { MouseEventHandler, PropsWithChildren } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Icon } from '@@/Icon';\n\nimport { useSidebarState } from '../useSidebarState';\n\nimport { Wrapper } from './Wrapper';\nimport { SidebarTooltip } from './SidebarTooltip';\nimport { useSidebarSrefActive } from './useSidebarSrefActive';\n\ninterface Props extends AutomationTestingProps {\n icon?: IconTest;\n to: string;\n params?: object;\n label: string;\n isSubMenu?: boolean;\n ignorePaths?: string[];\n includePaths?: string[];\n}\n\nexport function SidebarItem({\n icon,\n to,\n params,\n label,\n isSubMenu = false,\n ignorePaths = [],\n includePaths = [],\n 'data-cy': dataCy,\n}: Props) {\n const { isOpen } = useSidebarState();\n const anchorProps = useSidebarSrefActive(to, undefined, params, undefined, {\n ignorePaths,\n includePaths,\n });\n\n const sidebarAnchor = (\n <Wrapper label={label}>\n <ItemAnchor\n href={anchorProps.href}\n onClick={anchorProps.onClick}\n className={anchorProps.className}\n dataCy={dataCy}\n isOpen={isOpen}\n isSubMenu={isSubMenu}\n >\n {!!icon && <Icon icon={icon} className={clsx('flex [&>svg]:w-4')} />}\n {(isOpen || isSubMenu) && <span>{label}</span>}\n </ItemAnchor>\n </Wrapper>\n );\n\n if (isOpen || isSubMenu) return sidebarAnchor;\n\n return (\n <SidebarTooltip\n content={\n <div className=\"bg-blue-8 be:bg-gray-8 th-dark:bg-gray-true-8 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white rounded\">\n <Wrapper label={label}>\n <ItemAnchor\n href={anchorProps.href}\n onClick={anchorProps.onClick}\n className={anchorProps.className}\n dataCy={dataCy}\n isOpen={isOpen}\n isSubMenu={isSubMenu}\n >\n <span className=\"px-3\">{label}</span>\n </ItemAnchor>\n </Wrapper>\n </div>\n }\n >\n <span className=\"w-full\">{sidebarAnchor}</span>\n </SidebarTooltip>\n );\n}\n\ntype ItemAnchorProps = {\n href?: string;\n onClick: MouseEventHandler<unknown>;\n className: string;\n isOpen: boolean;\n isSubMenu: boolean;\n dataCy?: string;\n};\n\nfunction ItemAnchor({\n href,\n onClick,\n className,\n isOpen,\n isSubMenu,\n dataCy,\n children,\n}: PropsWithChildren<ItemAnchorProps>) {\n return (\n <a\n href={href}\n onClick={onClick}\n className={clsx(\n className,\n 'text-inherit no-underline hover:text-inherit hover:no-underline focus:text-inherit focus:no-underline',\n 'flex h-8 w-full flex-1 items-center space-x-4 rounded-md text-sm',\n 'transition-colors duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20',\n {\n // submenu items are always expanded (in a tooltip or in the sidebar)\n 'w-full justify-start px-3': isOpen || isSubMenu,\n 'w-8 justify-center': !isOpen && !isSubMenu,\n }\n )}\n data-cy={dataCy}\n >\n {children}\n </a>\n );\n}\n","import { SidebarItem as MainComponent } from './SidebarItem';\nimport { Wrapper } from './Wrapper';\n\ninterface SubComponents {\n Wrapper: typeof Wrapper;\n}\n\nexport const SidebarItem: typeof MainComponent & SubComponents =\n MainComponent as typeof MainComponent & SubComponents;\n\nSidebarItem.Wrapper = Wrapper;\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport { useSidebarState } from './useSidebarState';\n\ninterface Props {\n title: ReactNode;\n showTitleWhenOpen?: boolean;\n 'aria-label'?: string;\n}\n\nexport function SidebarSection({\n title,\n children,\n showTitleWhenOpen,\n 'aria-label': ariaLabel,\n}: PropsWithChildren<Props>) {\n return (\n <div>\n <SidebarSectionTitle showWhenOpen={showTitleWhenOpen}>\n {title}\n </SidebarSectionTitle>\n\n <nav\n aria-label={typeof title === 'string' ? title : ariaLabel}\n className=\"mt-4\"\n >\n <ul>{children}</ul>\n </nav>\n </div>\n );\n}\n\ninterface TitleProps {\n showWhenOpen?: boolean;\n}\n\nexport function SidebarSectionTitle({\n showWhenOpen,\n children,\n}: PropsWithChildren<TitleProps>) {\n const { isOpen } = useSidebarState();\n\n if (!isOpen && !showWhenOpen) {\n return null;\n }\n\n return (\n <li className=\"ml-3 text-sm text-gray-3 transition-all duration-500 ease-in-out be:text-gray-6\">\n {children}\n </li>\n );\n}\n","import clsx from 'clsx';\nimport { ChevronDown } from 'lucide-react';\nimport { PropsWithChildren, useState } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\nimport { useSidebarState } from '../useSidebarState';\n\nimport { Wrapper } from './Wrapper';\nimport { PathOptions, useSidebarSrefActive } from './useSidebarSrefActive';\nimport { SidebarTooltip } from './SidebarTooltip';\n\ntype Props = {\n label: string;\n icon: React.ReactNode;\n to: string;\n pathOptions?: PathOptions;\n params?: object;\n listId: string;\n};\n\nexport function SidebarParent({\n children,\n icon,\n label: title,\n to,\n params,\n pathOptions,\n listId,\n 'data-cy': dataCy,\n}: PropsWithChildren<Props & AutomationTestingProps>) {\n const anchorProps = useSidebarSrefActive(\n to,\n undefined,\n params,\n {},\n pathOptions\n );\n\n const hasActiveChild = !!anchorProps.className;\n\n const { isOpen: isSidebarOpen } = useSidebarState();\n\n const [isExpanded, setIsExpanded] = useState(hasActiveChild);\n\n const parentItem = (\n <Wrapper className=\"flex flex-col\">\n <div\n className={clsx(\n 'w-full h-8 items-center ease-in-out transition-colors flex duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20 rounded-md',\n isSidebarOpen && 'pl-3',\n // only highlight the parent when the sidebar is closed/contracted and a child item is selected\n (!isSidebarOpen || !isExpanded) && anchorProps.className\n )}\n data-cy={dataCy}\n >\n <button\n type=\"button\"\n className=\"flex-1 h-full cursor-pointer flex items-center border-none bg-transparent\"\n onClick={() => setIsExpanded(true)}\n >\n <Link\n to={to}\n params={params}\n className={clsx(\n 'w-full h-full items-center flex list-none border-none text-inherit hover:text-inherit hover:no-underline focus:text-inherit focus:no-underline',\n {\n 'justify-start': isSidebarOpen,\n 'justify-center': !isSidebarOpen,\n }\n )}\n >\n <Icon icon={icon} />\n {isSidebarOpen && <span className=\"pl-4\">{title}</span>}\n </Link>\n </button>\n {isSidebarOpen && (\n <button\n type=\"button\"\n className=\"flex-none border-none bg-transparent flex items-center group p-0 px-3 h-8\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsExpanded((isExpanded) => !isExpanded);\n }}\n title={isExpanded ? 'Collapse' : 'Expand'}\n aria-expanded={isExpanded}\n aria-controls={listId}\n >\n <div className=\"flex items-center group-hover:bg-blue-5 be:group-hover:bg-gray-5 group-hover:th-dark:bg-gray-true-7 group-hover:bg-opacity-10 be:group-hover:bg-opacity-10 rounded-full p-[3px] transition ease-in-out\">\n <Icon\n icon={ChevronDown}\n size=\"md\"\n className={clsx('transition ease-in-out', {\n 'rotate-180': isExpanded,\n 'rotate-0': !isExpanded,\n })}\n />\n </div>\n </button>\n )}\n </div>\n </Wrapper>\n );\n\n const childList = (\n <ul\n id={listId}\n // pl-11 must be important because it needs to avoid the padding from '.root ul' in sidebar.module.css\n className={clsx('text-white !pl-11', {\n hidden: !isExpanded,\n block: isExpanded,\n })}\n >\n {children}\n </ul>\n );\n\n if (isSidebarOpen)\n return (\n <>\n {parentItem}\n {childList}\n </>\n );\n\n return (\n <SidebarTooltip\n content={\n <ul>\n <li className=\"flex items-center space-x-2 text-sm mb-1\">\n <span>{title}</span>\n </li>\n <div className=\"bg-blue-8 be:bg-gray-8 th-dark:bg-gray-true-8 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white rounded\">\n {children}\n </div>\n </ul>\n }\n >\n <span>{parentItem}</span>\n </SidebarTooltip>\n );\n}\n","import { Box, Clock, LayoutGrid, Layers, Puzzle, Edit } from 'lucide-react';\n\nimport { isBE } from '../portainer/feature-flags/feature-flags.service';\nimport { useSettings } from '../portainer/settings/queries';\n\nimport { SidebarItem } from './SidebarItem';\nimport { SidebarSection } from './SidebarSection';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\nexport function EdgeComputeSidebar() {\n // this sidebar is rendered only for admins, so we can safely assume that settingsQuery will succeed\n const settingsQuery = useSettings();\n\n if (!settingsQuery.data || !settingsQuery.data.EnableEdgeComputeFeatures) {\n return null;\n }\n\n const settings = settingsQuery.data;\n\n return (\n <SidebarSection title=\"Edge compute\">\n <SidebarItem\n to=\"edge.groups\"\n label=\"Edge Groups\"\n icon={LayoutGrid}\n data-cy=\"portainerSidebar-edgeGroups\"\n />\n <SidebarItem\n to=\"edge.stacks\"\n label=\"Edge Stacks\"\n icon={Layers}\n data-cy=\"portainerSidebar-edgeStacks\"\n />\n <SidebarItem\n to=\"edge.jobs\"\n label=\"Edge Jobs\"\n icon={Clock}\n data-cy=\"portainerSidebar-edgeJobs\"\n />\n {isBE && (\n <SidebarItem\n to=\"edge.configurations\"\n label=\"Edge Configurations\"\n icon={Puzzle}\n data-cy=\"portainerSidebar-edgeConfigurations\"\n />\n )}\n {isBE && !settings.TrustOnFirstConnect && (\n <SidebarItem\n to=\"edge.devices.waiting-room\"\n label=\"Waiting Room\"\n icon={Box}\n data-cy=\"portainerSidebar-edgeDevicesWaitingRoom\"\n />\n )}\n <SidebarParent\n icon={Edit}\n label=\"Edge Templates\"\n to=\"edge.templates\"\n data-cy=\"edgeSidebar-templates\"\n listId=\"edgeSidebar-templates\"\n >\n <SidebarItem\n label=\"Application\"\n to=\"edge.templates\"\n ignorePaths={['edge.templates.custom']}\n isSubMenu\n data-cy=\"edgeSidebar-appTemplates\"\n />\n <SidebarItem\n label=\"Custom\"\n to=\"edge.templates.custom\"\n isSubMenu\n data-cy=\"edgeSidebar-customTemplates\"\n />\n </SidebarParent>\n </SidebarSection>\n );\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDocker = function SvgDocker(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 105 95\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M102.014 39.337c-.27-.229-2.695-2.11-7.902-2.11-1.347 0-2.74.138-4.085.369-.989-7.02-6.69-10.416-6.914-10.598l-1.393-.826-.898 1.33a19.85 19.85 0 0 0-2.469 5.874c-.942 3.993-.36 7.754 1.617 10.966-2.381 1.376-6.242 1.697-7.05 1.744H9.16c-1.66 0-3.009 1.376-3.009 3.074a47.34 47.34 0 0 0 2.783 16.747c2.2 5.874 5.477 10.232 9.699 12.894 4.76 2.983 12.527 4.68 21.282 4.68 3.951 0 7.902-.369 11.81-1.103a48.094 48.094 0 0 0 15.446-5.734 42.497 42.497 0 0 0 10.507-8.809c5.073-5.826 8.082-12.341 10.283-18.123h.898c5.524 0 8.935-2.248 10.821-4.174 1.257-1.194 2.201-2.662 2.873-4.314l.404-1.193-.942-.69-.002-.004Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M15.086 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c.044.458.36.78.764.78ZM26.851 44.2h8.53c.405 0 .763-.32.763-.78v-7.8a.764.764 0 0 0-.763-.778h-8.53a.765.765 0 0 0-.764.779v7.799c.044.458.36.78.764.78ZM38.842 44.2h8.53c.404 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.765-.778h-8.53a.765.765 0 0 0-.764.779v7.799c0 .458.314.78.764.78ZM50.647 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c0 .458.36.78.764.78ZM26.851 33.05h8.53c.405 0 .763-.367.763-.78v-7.799c0-.413-.314-.781-.763-.781h-8.53a.766.766 0 0 0-.764.781v7.799c.044.413.36.78.764.78ZM38.842 33.05h8.53c.404 0 .765-.367.765-.78v-7.799a.766.766 0 0 0-.765-.781h-8.53a.766.766 0 0 0-.764.781v7.799c0 .413.314.78.764.78ZM50.647 33.05h8.53c.405 0 .765-.367.765-.78v-7.799c0-.413-.36-.781-.764-.781h-8.53a.766.766 0 0 0-.765.781v7.799c0 .413.36.78.764.78ZM50.647 21.856h8.53c.405 0 .765-.32.765-.78v-7.8c0-.413-.36-.78-.764-.78h-8.53a.766.766 0 0 0-.765.78v7.8c0 .412.36.78.764.78ZM62.551 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c.044.458.36.78.764.78Z\"\n })));\n};\nexport default SvgDocker;","var _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAzure = function SvgAzure(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 105 95\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__a)\",\n d: \"M40.041 11.192h21.975l-22.81 69.066a3.565 3.565 0 0 1-1.278 1.763 3.455 3.455 0 0 1-2.043.672h-17.1a3.444 3.444 0 0 1-1.599-.394 3.538 3.538 0 0 1-1.245-1.095 3.603 3.603 0 0 1-.618-1.556 3.658 3.658 0 0 1 .144-1.673l21.255-64.346c.235-.71.68-1.326 1.278-1.763a3.455 3.455 0 0 1 2.043-.671l-.002-.003Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0078D4\",\n d: \"M71.975 57.518H37.13c-.325 0-.64.098-.909.284a1.637 1.637 0 0 0-.592.758c-.12.308-.145.646-.074.967.072.323.237.616.474.84L58.42 81.725c.65.622 1.51.967 2.401.967h19.73l-8.576-25.178v.005Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__b)\",\n d: \"M40.042 11.193a3.44 3.44 0 0 0-2.062.682 3.54 3.54 0 0 0-1.265 1.8l-21.22 64.244a3.63 3.63 0 0 0 .434 3.265c.325.469.754.852 1.252 1.115.499.263 1.052.4 1.613.398h17.542a3.705 3.705 0 0 0 1.77-.854 3.816 3.816 0 0 0 1.107-1.647l4.232-12.742L58.56 81.861a3.529 3.529 0 0 0 2.25.838H80.47l-8.623-25.177-25.133.007 15.384-46.337H40.042Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__c)\",\n d: \"M68.109 13.625a3.579 3.579 0 0 0-1.275-1.76 3.448 3.448 0 0 0-2.04-.673h-24.49c.733 0 1.445.236 2.04.672a3.577 3.577 0 0 1 1.275 1.761l21.255 64.352c.178.537.228 1.11.144 1.673a3.602 3.602 0 0 1-.617 1.556c-.325.46-.75.836-1.246 1.095a3.437 3.437 0 0 1-1.598.394h24.49c.555 0 1.104-.135 1.598-.394a3.512 3.512 0 0 0 1.243-1.095c.325-.46.536-.995.618-1.556a3.658 3.658 0 0 0-.144-1.673L68.109 13.625Z\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__a\",\n x1: 48.052,\n x2: 24.328,\n y1: 16.492,\n y2: 85.073,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#114A8B\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0669BC\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__b\",\n x1: 55.179,\n x2: 49.877,\n y1: 48.598,\n y2: 50.351,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopOpacity: 0.3\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.07,\n stopOpacity: 0.2\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.32,\n stopOpacity: 0.1\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.62,\n stopOpacity: 0.05\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__c\",\n x1: 52.44,\n x2: 78.457,\n y1: 14.419,\n y2: 82.248,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#3CCBF4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#2892DF\"\n })))));\n};\nexport default SvgAzure;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKubernetes = function SvgKubernetes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 105 95\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M52.958 88.267c-5.243 0-10.485-.044-15.724.02-2.383.026-4.221-.819-5.716-2.694-6.63-8.317-13.299-16.6-19.966-24.89-1.337-1.661-1.862-3.43-1.352-5.608 2.448-10.471 4.806-20.967 7.202-31.456.479-2.1 1.694-3.543 3.661-4.476 9.69-4.605 19.357-9.246 29.019-13.907 2.022-.977 3.947-.917 5.954.046 9.602 4.63 19.211 9.251 28.844 13.822 2.037.968 3.276 2.447 3.77 4.616 2.39 10.491 4.765 20.985 7.198 31.463.466 2.01.044 3.707-1.213 5.268-6.734 8.399-13.473 16.796-20.186 25.215-1.449 1.82-3.272 2.614-5.565 2.594-5.305-.04-10.614-.01-15.92-.01l-.008-.005.002.002ZM51.61 21.251c.094 2.704-.234 3.12-2.717 3.607-4.407.867-8.387 2.678-11.614 5.846-1.217 1.198-2.242.944-3.326.17-.835-.592-1.509-1.413-2.263-2.122-.515-.483-.998-1.038-1.589-1.41-.865-.537-1.772-.46-2.406.411-.575.784-.43 1.631.218 2.303.444.457 1.01.797 1.548 1.152.804.538 1.668.995 2.441 1.577 1.574 1.183 1.718 1.986.785 3.677-2.153 3.894-3.117 8.067-2.962 12.521.086 2.428-.625 3.197-3.062 3.473-1.093.125-2.192.191-3.276.376-1.224.206-2.095.886-1.83 2.256.254 1.32 1.325 1.522 2.422 1.254 1.185-.297 2.317-.793 3.486-1.153 2.394-.733 3.202-.346 4.206 1.943 1.757 4.024 4.435 7.284 8.008 9.813 1.535 1.089 1.784 2.022.895 3.732-.416.799-.956 1.54-1.43 2.313-.304.497-.619.988-.885 1.504-.534 1.028-.306 1.928.645 2.538 1.057.678 1.969.151 2.441-.773.638-1.26 1.008-2.654 1.52-3.978.819-2.127 1.671-2.553 3.776-1.962 4.271 1.19 8.547 1.205 12.822.02 2.083-.578 2.853-.23 3.677 1.826.48 1.199.78 2.474 1.318 3.649.48 1.064 1.29 1.927 2.597 1.233 1.213-.643 1.259-1.732.633-2.834-.605-1.069-1.344-2.066-1.951-3.134-1.19-2.104-1.019-2.821.898-4.229 3.587-2.627 6.24-5.986 7.939-10.109.785-1.907 1.532-2.287 3.547-1.69 1.235.367 2.422.909 3.666 1.223 1.115.28 2.262.241 2.693-1.155.35-1.135-.415-2.068-1.952-2.322-1.209-.203-2.448-.231-3.661-.418-1.935-.3-2.643-1.152-2.562-3.07.194-4.587-.78-8.89-3.036-12.889-.864-1.53-.726-2.443.69-3.556.814-.637 1.738-1.118 2.6-1.686.535-.356 1.108-.692 1.55-1.148.653-.668.788-1.5.22-2.303-.584-.823-1.453-.898-2.254-.5-.614.305-1.114.862-1.632 1.345-.709.663-1.34 1.414-2.08 2.037-1.468 1.24-2.358 1.214-3.754-.026-3.421-3.045-7.388-4.95-11.878-5.774-1.803-.331-2.352-.922-2.278-2.783.05-1.293.285-2.575.4-3.864.14-1.506-.703-2.728-1.842-2.724-1.139.004-1.978 1.223-1.828 2.733.105 1.03.28 2.053.429 3.08h-.009.007Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FDFDFE\",\n d: \"M51.608 21.25c-.144-1.026-.323-2.047-.428-3.079-.15-1.51.689-2.729 1.827-2.733 1.14-.005 1.983 1.218 1.843 2.724-.12 1.293-.354 2.573-.4 3.864-.07 1.861.474 2.452 2.278 2.783 4.49.824 8.456 2.725 11.877 5.774 1.395 1.24 2.284 1.269 3.755.026.74-.623 1.373-1.374 2.08-2.037.515-.483 1.018-1.043 1.632-1.346.8-.397 1.672-.325 2.254.5.568.804.43 1.632-.221 2.304-.444.456-1.014.788-1.55 1.148-.859.573-1.788 1.053-2.599 1.686-1.418 1.113-1.554 2.026-.69 3.556 2.253 4 3.23 8.302 3.036 12.888-.081 1.917.63 2.769 2.561 3.071 1.213.187 2.448.216 3.662.418 1.538.256 2.303 1.187 1.951 2.322-.43 1.398-1.578 1.436-2.692 1.155-1.244-.312-2.433-.854-3.666-1.223-2.013-.597-2.758-.22-3.548 1.69-1.698 4.123-4.351 7.482-7.938 10.11-1.917 1.404-2.092 2.122-.899 4.228.606 1.069 1.34 2.065 1.952 3.134.625 1.105.58 2.189-.634 2.834-1.305.694-2.114-.17-2.597-1.233-.533-1.17-.834-2.452-1.318-3.649-.828-2.057-1.593-2.404-3.676-1.826-4.276 1.187-8.551 1.17-12.822-.02-2.11-.586-2.962-.16-3.777 1.962-.51 1.329-.883 2.72-1.52 3.978-.465.924-1.383 1.451-2.44.773-.95-.608-1.175-1.51-.646-2.538.27-.516.58-1.007.886-1.503.474-.773 1.01-1.51 1.43-2.314.889-1.71.64-2.646-.895-3.732-3.572-2.53-6.254-5.789-8.009-9.813-1.003-2.292-1.812-2.674-4.205-1.943-1.17.36-2.302.854-3.486 1.153-1.096.272-2.165.07-2.422-1.254-.265-1.37.605-2.046 1.83-2.256 1.079-.185 2.183-.25 3.276-.376 2.441-.272 3.147-1.043 3.062-3.473-.155-4.454.809-8.625 2.962-12.521.933-1.69.789-2.494-.785-3.677-.774-.582-1.637-1.039-2.442-1.576-.535-.356-1.103-.694-1.547-1.153-.65-.672-.794-1.52-.219-2.303.639-.87 1.544-.948 2.407-.41.59.37 1.073.922 1.589 1.41.754.71 1.43 1.53 2.262 2.122 1.084.773 2.107 1.027 3.327-.171 3.222-3.17 7.202-4.981 11.613-5.846 2.483-.488 2.81-.902 2.717-3.607h.009-.007ZM50.59 31.84h.105c0-.515-.026-1.038.009-1.553.045-.712-.219-.879-.91-.742-3.366.658-6.363 2.065-8.996 4.278-.726.608-.584.953.12 1.434 2.078 1.429 4.107 2.928 6.183 4.355 1.878 1.288 3.032.718 3.178-1.554.132-2.068.21-4.145.31-6.217ZM34.445 47.45c-.017 1.6.678 2.195 2.088 1.787 2.162-.628 4.337-1.223 6.485-1.89 1.968-.613 2.27-1.835.77-3.256-1.828-1.732-3.777-3.337-5.59-5.09-.963-.934-1.313-.468-1.757.432-1.279 2.595-1.884 5.347-1.998 8.012l.003.005Zm18.508 19.015c1.69.046 3.33-.254 4.964-.663.664-.167 1.093-.272.614-1.109-1.38-2.412-2.638-4.895-4.061-7.279-.796-1.335-2.134-1.32-2.918.02-1.408 2.397-2.689 4.862-4.046 7.288-.354.632-.21.863.49 1.038 1.632.41 3.267.734 4.959.703v.004l-.002-.002Zm18.636-18.958c-.15-2.603-.708-5.308-1.952-7.85-.505-1.03-1.073-1.381-2.048-.466-1.744 1.636-3.572 3.186-5.314 4.826-1.563 1.47-1.235 2.698.864 3.332 2.157.656 4.33 1.26 6.494 1.886 1.987.573 1.993.57 1.954-1.73l.002.002Zm-9.515 5.282c-2.798.125-3.143.652-2.197 2.99.9 2.221 1.854 4.42 2.724 6.653.295.758.535 1.129 1.34.523 2.747-2.077 4.855-4.652 6.18-7.846.163-.395.463-.924-.285-1.054-2.669-.456-5.349-.873-7.764-1.268l.002.002ZM55.342 31.61h.065c.11 2.127.21 4.255.33 6.386.132 2.294 1.268 2.9 3.126 1.625 2.018-1.386 3.948-2.9 6.005-4.22 1.1-.706.854-1.1.03-1.771a19.363 19.363 0 0 0-8.448-4.013c-1.113-.23-1.218.15-1.12 1.027.036.32.005.644.005.969h.009l-.002-.003Zm-8.593 22.725c-.303-.658-.264-1.525-1.403-1.484-2.863.106-5.655.73-8.476 1.12-.995.136-1.198.566-.81 1.43 1.365 3.009 3.358 5.503 6.005 7.478.68.507 1.034.516 1.36-.397.586-1.64 1.324-3.225 1.989-4.836.444-1.074.87-2.154 1.333-3.306v-.005h.002Zm6.363-8.965c-1.982-.004-3.152.784-3.198 2.158-.054 1.65 1.55 3.506 3.067 3.537 1.443.03 3.093-1.717 3.102-3.287.009-1.46-1.154-2.408-2.973-2.412l.005.004h-.003Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M50.594 31.84c-.1 2.073-.18 4.145-.31 6.218-.15 2.276-1.306 2.845-3.179 1.554-2.079-1.43-4.105-2.93-6.184-4.355-.703-.483-.843-.824-.12-1.434 2.634-2.213 5.63-3.618 8.997-4.278.695-.137.955.035.91.742-.036.515-.01 1.038-.01 1.556h-.104v-.004.002ZM34.448 47.45c.116-2.666.72-5.419 1.998-8.014.444-.902.793-1.37 1.757-.432 1.808 1.752 3.762 3.352 5.59 5.09 1.499 1.425 1.197 2.646-.77 3.256-2.149.668-4.322 1.26-6.485 1.89-1.408.409-2.103-.186-2.088-1.787l-.002-.004ZM52.96 66.46c-1.69.03-3.327-.297-4.96-.707-.7-.176-.84-.406-.49-1.038 1.358-2.424 2.639-4.896 4.046-7.289.785-1.339 2.123-1.354 2.918-.02 1.423 2.385 2.687 4.867 4.062 7.28.478.834.045.94-.615 1.108-1.632.411-3.272.712-4.964.663l.003.003ZM71.588 47.504c.04 2.298.03 2.307-1.954 1.73-2.164-.628-4.337-1.234-6.494-1.886-2.098-.637-2.424-1.857-.863-3.332 1.742-1.64 3.567-3.19 5.313-4.826.975-.913 1.543-.566 2.048.466 1.244 2.54 1.8 5.247 1.952 7.85l-.002-.002ZM62.079 52.783c2.413.391 5.09.813 7.764 1.27.743.124.445.656.284 1.053-1.33 3.196-3.432 5.773-6.18 7.846-.804.608-1.044.235-1.34-.523-.87-2.232-1.822-4.434-2.723-6.654-.949-2.337-.599-2.864 2.197-2.99l-.002-.002ZM55.348 31.606c0-.325.03-.648-.004-.968-.096-.878.009-1.254 1.119-1.028 3.16.652 5.95 1.983 8.448 4.013.824.672 1.073 1.063-.03 1.772-2.057 1.324-3.987 2.834-6.005 4.22-1.858 1.274-2.997.67-3.126-1.625-.12-2.128-.22-4.26-.33-6.386h-.074l.002.002ZM46.749 54.329c-.464 1.152-.89 2.232-1.334 3.306-.664 1.611-1.398 3.196-1.989 4.836-.325.913-.68.909-1.36.397-2.646-1.975-4.635-4.47-6.004-7.479-.393-.863-.19-1.293.809-1.429 2.822-.386 5.611-1.014 8.477-1.12 1.138-.044 1.1.828 1.403 1.484v.005h-.002ZM53.115 45.364c1.814.004 2.981.948 2.973 2.412-.011 1.57-1.66 3.317-3.102 3.286-1.515-.035-3.121-1.885-3.067-3.536.046-1.374 1.218-2.167 3.198-2.158l-.004-.005h.002Z\"\n })));\n};\nexport default SvgKubernetes;","import { getPlatformType } from '@/react/portainer/environments/utils';\nimport {\n EnvironmentType,\n PlatformType,\n} from '@/react/portainer/environments/types';\n\nimport Docker from './docker.svg?c';\nimport Azure from './azure.svg?c';\nimport Kubernetes from './kubernetes.svg?c';\n\nconst icons: {\n [key in PlatformType]: SvgrComponent;\n} = {\n [PlatformType.Docker]: Docker,\n [PlatformType.Kubernetes]: Kubernetes,\n [PlatformType.Azure]: Azure,\n};\n\nexport function getPlatformIcon(type: EnvironmentType) {\n const platform = getPlatformType(type);\n\n return icons[platform];\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-EnvironmentSidebar-module__root\",\"closeBtn\":\"app-react-sidebar-EnvironmentSidebar-module__closeBtn\"};","import { Layout } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { AutomationTestingProps } from '@/types';\n\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props extends AutomationTestingProps {\n environmentId: EnvironmentId;\n platformPath: string;\n}\n\nexport function DashboardLink({\n environmentId,\n platformPath,\n 'data-cy': dataCy,\n}: Props) {\n return (\n <SidebarItem\n to={`${platformPath}.dashboard`}\n params={{ endpointId: environmentId }}\n icon={Layout}\n label=\"Dashboard\"\n data-cy={dataCy}\n />\n );\n}\n","import { Box } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { DashboardLink } from '../items/DashboardLink';\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props {\n environmentId: EnvironmentId;\n}\n\nexport function AzureSidebar({ environmentId }: Props) {\n return (\n <>\n <DashboardLink\n environmentId={environmentId}\n platformPath=\"azure\"\n data-cy=\"azureSidebar-dashboard\"\n />\n <SidebarItem\n to=\"azure.containerinstances\"\n params={{ endpointId: environmentId }}\n icon={Box}\n label=\"Container instances\"\n data-cy=\"azureSidebar-containerInstances\"\n />\n </>\n );\n}\n","import { Database } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { AutomationTestingProps } from '@/types';\n\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props extends AutomationTestingProps {\n environmentId: EnvironmentId;\n platformPath: string;\n}\n\nexport function VolumesLink({\n environmentId,\n platformPath,\n 'data-cy': dataCy,\n}: Props) {\n return (\n <SidebarItem\n to={`${platformPath}.volumes`}\n params={{ endpointId: environmentId }}\n icon={Database}\n label=\"Volumes\"\n data-cy={dataCy}\n />\n );\n}\n","import {\n Box,\n Clock,\n Layers,\n List,\n Lock,\n Shuffle,\n Trello,\n Clipboard,\n Edit,\n Network,\n} from 'lucide-react';\n\nimport {\n type Environment,\n type EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { Authorized, useIsEnvironmentAdmin } from '@/react/hooks/useUser';\nimport { useInfo } from '@/react/docker/proxy/queries/useInfo';\nimport { useApiVersion } from '@/react/docker/proxy/queries/useVersion';\n\nimport { SidebarItem } from './SidebarItem';\nimport { DashboardLink } from './items/DashboardLink';\nimport { VolumesLink } from './items/VolumesLink';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\ninterface Props {\n environmentId: EnvironmentId;\n environment: Environment;\n}\n\nexport function DockerSidebar({ environmentId, environment }: Props) {\n const { authorized: isEnvironmentAdmin } = useIsEnvironmentAdmin({\n adminOnlyCE: true,\n });\n\n const areStacksVisible =\n isEnvironmentAdmin ||\n environment.SecuritySettings.allowStackManagementForRegularUsers;\n\n const envInfoQuery = useInfo(\n environmentId,\n (info) => !!info.Swarm?.NodeID && !!info.Swarm?.ControlAvailable\n );\n\n const apiVersion = useApiVersion(environmentId);\n\n const isSwarmManager = envInfoQuery.data;\n\n const setupSubMenuProps = isSwarmManager\n ? {\n label: 'Swarm',\n icon: Trello,\n to: 'docker.swarm',\n dataCy: 'portainerSidebar-swarm',\n }\n : {\n label: 'Host',\n icon: Trello,\n to: 'docker.host',\n dataCy: 'portainerSidebar-host',\n };\n\n const featSubMenuTo = isSwarmManager\n ? 'docker.swarm.featuresConfiguration'\n : 'docker.host.featuresConfiguration';\n const registrySubMenuTo = isSwarmManager\n ? 'docker.swarm.registries'\n : 'docker.host.registries';\n\n return (\n <>\n <DashboardLink\n environmentId={environmentId}\n platformPath=\"docker\"\n data-cy=\"dockerSidebar-dashboard\"\n />\n <SidebarParent\n icon={Edit}\n label=\"Templates\"\n to=\"docker.templates\"\n params={{ endpointId: environmentId }}\n data-cy=\"portainerSidebar-templates\"\n listId=\"dockerSidebar-templates\"\n >\n <SidebarItem\n label=\"Application\"\n to=\"docker.templates\"\n ignorePaths={['docker.templates.custom']}\n params={{ endpointId: environmentId }}\n isSubMenu\n data-cy=\"portainerSidebar-appTemplates\"\n />\n <SidebarItem\n label=\"Custom\"\n to=\"docker.templates.custom\"\n params={{ endpointId: environmentId }}\n isSubMenu\n data-cy=\"dockerSidebar-customTemplates\"\n />\n </SidebarParent>\n\n {areStacksVisible && (\n <SidebarItem\n to=\"docker.stacks\"\n params={{ endpointId: environmentId }}\n icon={Layers}\n label=\"Stacks\"\n data-cy=\"dockerSidebar-stacks\"\n />\n )}\n\n {isSwarmManager && (\n <SidebarItem\n to=\"docker.services\"\n params={{ endpointId: environmentId }}\n icon={Shuffle}\n label=\"Services\"\n data-cy=\"dockerSidebar-services\"\n />\n )}\n\n <SidebarItem\n to=\"docker.containers\"\n params={{ endpointId: environmentId }}\n icon={Box}\n label=\"Containers\"\n data-cy=\"dockerSidebar-containers\"\n />\n\n <SidebarItem\n to=\"docker.images\"\n params={{ endpointId: environmentId }}\n icon={List}\n label=\"Images\"\n data-cy=\"dockerSidebar-images\"\n />\n\n <SidebarItem\n to=\"docker.networks\"\n params={{ endpointId: environmentId }}\n icon={Network}\n label=\"Networks\"\n data-cy=\"dockerSidebar-networks\"\n />\n\n <VolumesLink\n environmentId={environmentId}\n platformPath=\"docker\"\n data-cy=\"dockerSidebar-volumes\"\n />\n\n {apiVersion >= 1.3 && isSwarmManager && (\n <SidebarItem\n to=\"docker.configs\"\n params={{ endpointId: environmentId }}\n icon={Clipboard}\n label=\"Configs\"\n data-cy=\"dockerSidebar-configs\"\n />\n )}\n\n {apiVersion >= 1.25 && isSwarmManager && (\n <SidebarItem\n to=\"docker.secrets\"\n params={{ endpointId: environmentId }}\n icon={Lock}\n label=\"Secrets\"\n data-cy=\"dockerSidebar-secrets\"\n />\n )}\n\n {!isSwarmManager && isEnvironmentAdmin && (\n <SidebarItem\n to=\"docker.events\"\n params={{ endpointId: environmentId }}\n icon={Clock}\n label=\"Events\"\n data-cy=\"dockerSidebar-events\"\n />\n )}\n\n <SidebarParent\n label={setupSubMenuProps.label}\n icon={setupSubMenuProps.icon}\n to={setupSubMenuProps.to}\n params={{ endpointId: environmentId }}\n data-cy=\"portainerSidebar-host-area\"\n listId=\"portainerSidebar-host-area\"\n >\n <SidebarItem\n label=\"Details\"\n isSubMenu\n to={setupSubMenuProps.to}\n params={{ endpointId: environmentId }}\n ignorePaths={[featSubMenuTo, registrySubMenuTo]}\n data-cy={setupSubMenuProps.dataCy}\n />\n\n <Authorized\n authorizations=\"PortainerEndpointUpdateSettings\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n label=\"Setup\"\n isSubMenu\n to={featSubMenuTo}\n params={{ endpointId: environmentId }}\n />\n </Authorized>\n\n <SidebarItem\n label=\"Registries\"\n isSubMenu\n to={registrySubMenuTo}\n params={{ endpointId: environmentId }}\n />\n </SidebarParent>\n </>\n );\n}\n","const terminalHeight = 495;\n\nexport function terminalClose() {\n update('100%', 'initial');\n}\n\nexport function terminalResize() {\n const contentWrapperHeight = window.innerHeight;\n const newContentWrapperHeight = contentWrapperHeight - terminalHeight;\n update(`${newContentWrapperHeight}px`, 'auto');\n}\n\nfunction update(height: string, overflowY: string) {\n const pageWrapper = document.getElementById('pageWrapper-wrapper');\n\n if (pageWrapper) {\n pageWrapper.style.height = height;\n pageWrapper.style.overflowY = overflowY;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__root\",\"header\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__header\",\"minimized\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__minimized\",\"title\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__title\",\"actions\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__actions\",\"terminalContainer\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__terminal-container\",\"loadingMessage\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__loading-message\"};","import { Terminal } from 'xterm';\nimport { fit } from 'xterm/lib/addons/fit/fit';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { RotateCw, X, Terminal as TerminalIcon } from 'lucide-react';\n\nimport { baseHref } from '@/portainer/helpers/pathHelper';\nimport {\n terminalClose,\n terminalResize,\n} from '@/portainer/services/terminal-window';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { error as notifyError } from '@/portainer/services/notifications';\n\nimport { Icon } from '@@/Icon';\nimport { Button } from '@@/buttons';\n\nimport styles from './KubectlShell.module.css';\n\ninterface ShellState {\n socket: WebSocket | null;\n minimized: boolean;\n}\n\ninterface Props {\n environmentId: EnvironmentId;\n onClose(): void;\n}\n\nexport function KubeCtlShell({ environmentId, onClose }: Props) {\n const [terminal] = useState(new Terminal());\n\n const [shell, setShell] = useState<ShellState>({\n socket: null,\n minimized: false,\n });\n\n const { socket } = shell;\n\n const terminalElem = useRef(null);\n\n const handleClose = useCallback(() => {\n terminalClose(); // only css trick\n socket?.close();\n terminal.dispose();\n onClose();\n }, [onClose, terminal, socket]);\n\n const openTerminal = useCallback(() => {\n if (!terminalElem.current) {\n return;\n }\n\n terminal.open(terminalElem.current);\n terminal.setOption('cursorBlink', true);\n terminal.focus();\n fit(terminal);\n terminal.writeln('#Run kubectl commands inside here');\n terminal.writeln('#e.g. kubectl get all');\n terminal.writeln('');\n }, [terminal]);\n\n // refresh socket listeners on socket updates\n useEffect(() => {\n if (!socket) {\n return () => {};\n }\n function onOpen() {\n openTerminal();\n }\n function onMessage(e: MessageEvent) {\n const encoded = new TextEncoder().encode(e.data);\n terminal.writeUtf8(encoded);\n }\n function onClose() {\n handleClose();\n }\n function onError(e: Event) {\n handleClose();\n if (socket?.readyState !== WebSocket.CLOSED) {\n notifyError(\n 'Failure',\n e as unknown as Error,\n 'Websocket connection error'\n );\n }\n }\n\n socket.addEventListener('open', onOpen);\n socket.addEventListener('message', onMessage);\n socket.addEventListener('close', onClose);\n socket.addEventListener('error', onError);\n\n return () => {\n socket.removeEventListener('open', onOpen);\n socket.removeEventListener('message', onMessage);\n socket.removeEventListener('close', onClose);\n socket.removeEventListener('error', onError);\n };\n }, [handleClose, openTerminal, socket, terminal]);\n\n // on component load/destroy\n useEffect(() => {\n const socket = new WebSocket(buildUrl(environmentId));\n setShell((shell) => ({ ...shell, socket }));\n\n terminal.onData((data) => socket.send(data));\n terminal.onKey(({ domEvent }) => {\n if (domEvent.ctrlKey && domEvent.code === 'KeyD') {\n close();\n }\n });\n\n window.addEventListener('resize', () => terminalResize());\n\n function close() {\n socket.close();\n terminal.dispose();\n window.removeEventListener('resize', terminalResize);\n }\n\n return close;\n }, [environmentId, terminal]);\n\n return (\n <div className={clsx(styles.root, { [styles.minimized]: shell.minimized })}>\n <div className={styles.header}>\n <div className={clsx(styles.title, 'vertical-center')}>\n <Icon icon={TerminalIcon} />\n kubectl shell\n </div>\n <div className={clsx(styles.actions, 'space-x-8')}>\n <Button\n color=\"link\"\n onClick={clearScreen}\n data-cy=\"k8sShell-refreshButton\"\n >\n <Icon icon={RotateCw} size=\"md\" />\n </Button>\n <Button\n color=\"link\"\n onClick={toggleMinimize}\n data-cy={shell.minimized ? 'k8sShell-restore' : 'k8sShell-minimise'}\n >\n <Icon\n icon={shell.minimized ? 'maximize-2' : 'minimize-2'}\n size=\"md\"\n data-cy={\n shell.minimized ? 'k8sShell-restore' : 'k8sShell-minimise'\n }\n />\n </Button>\n <Button\n color=\"link\"\n onClick={handleClose}\n data-cy=\"k8sShell-closeButton\"\n >\n <Icon icon={X} size=\"md\" />\n </Button>\n </div>\n </div>\n\n <div className={styles.terminalContainer} ref={terminalElem}>\n <div className={styles.loadingMessage}>Loading Terminal...</div>\n </div>\n </div>\n );\n\n function clearScreen() {\n terminal.clear();\n }\n\n function toggleMinimize() {\n if (shell.minimized) {\n terminalResize();\n setShell((shell) => ({ ...shell, minimized: false }));\n } else {\n terminalClose();\n setShell((shell) => ({ ...shell, minimized: true }));\n }\n }\n\n function buildUrl(environmentId: EnvironmentId) {\n const params = {\n endpointId: environmentId,\n };\n\n const wsProtocol =\n window.location.protocol === 'https:' ? 'wss://' : 'ws://';\n const path = `${baseHref()}api/websocket/kubernetes-shell`;\n const base = path.startsWith('http')\n ? path.replace(/^https?:\\/\\//i, '')\n : window.location.host + path;\n\n const queryParams = Object.entries(params)\n .map(([k, v]) => `${k}=${v}`)\n .join('&');\n return `${wsProtocol}${base}?${queryParams}`;\n }\n}\n","import { useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Terminal } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Button } from '@@/buttons';\n\nimport { useSidebarState } from '../../useSidebarState';\nimport { SidebarTooltip } from '../../SidebarItem/SidebarTooltip';\n\nimport { KubeCtlShell } from './KubectlShell';\n\ninterface Props {\n environmentId: EnvironmentId;\n}\nexport function KubectlShellButton({ environmentId }: Props) {\n const { isOpen: isSidebarOpen } = useSidebarState();\n\n const [open, setOpen] = useState(false);\n const { trackEvent } = useAnalytics();\n\n const button = (\n <Button\n color=\"primary\"\n size=\"small\"\n disabled={open}\n data-cy=\"k8sSidebar-shellButton\"\n onClick={() => handleOpen()}\n className={clsx('sidebar', !isSidebarOpen && '!p-1')}\n icon={Terminal}\n >\n {isSidebarOpen ? 'kubectl shell' : ''}\n </Button>\n );\n\n return (\n <>\n {!isSidebarOpen && (\n <SidebarTooltip\n content={\n <span className=\"text-sm whitespace-nowrap\">Kubectl Shell</span>\n }\n >\n <span className=\"flex w-full justify-center\">{button}</span>\n </SidebarTooltip>\n )}\n {isSidebarOpen && button}\n {open &&\n createPortal(\n <KubeCtlShell\n environmentId={environmentId}\n onClose={() => setOpen(false)}\n />,\n document.body\n )}\n </>\n );\n\n function handleOpen() {\n setOpen(true);\n\n trackEvent('kubernetes-kubectl-shell', { category: 'kubernetes' });\n }\n}\n","import { Box, Edit, Layers, Lock, Network, Server } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { Authorized } from '@/react/hooks/useUser';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { DashboardLink } from '../items/DashboardLink';\nimport { SidebarItem } from '../SidebarItem';\nimport { VolumesLink } from '../items/VolumesLink';\nimport { SidebarParent } from '../SidebarItem/SidebarParent';\n\nimport { KubectlShellButton } from './KubectlShell';\n\ninterface Props {\n environmentId: EnvironmentId;\n}\n\nexport function KubernetesSidebar({ environmentId }: Props) {\n return (\n <>\n <div className=\"w-full flex mb-2 justify-center -mt-2\">\n <KubectlShellButton environmentId={environmentId} />\n </div>\n\n <DashboardLink\n environmentId={environmentId}\n platformPath=\"kubernetes\"\n data-cy=\"k8sSidebar-dashboard\"\n />\n\n <SidebarItem\n to=\"kubernetes.templates.custom\"\n params={{ endpointId: environmentId }}\n icon={Edit}\n label=\"Custom Templates\"\n data-cy=\"k8sSidebar-customTemplates\"\n />\n\n <SidebarItem\n to=\"kubernetes.resourcePools\"\n params={{ endpointId: environmentId }}\n icon={Layers}\n label=\"Namespaces\"\n data-cy=\"k8sSidebar-namespaces\"\n />\n\n <SidebarItem\n to=\"kubernetes.applications\"\n params={{ endpointId: environmentId }}\n icon={Box}\n label=\"Applications\"\n data-cy=\"k8sSidebar-applications\"\n />\n\n <SidebarParent\n label=\"Networking\"\n icon={Network}\n to=\"kubernetes.services\"\n params={{ endpointId: environmentId }}\n pathOptions={{ includePaths: ['kubernetes.ingresses'] }}\n data-cy=\"k8sSidebar-networking\"\n listId=\"k8sSidebar-networking\"\n >\n <SidebarItem\n to=\"kubernetes.services\"\n params={{ endpointId: environmentId }}\n label=\"Services\"\n isSubMenu\n data-cy=\"k8sSidebar-services\"\n />\n\n <SidebarItem\n to=\"kubernetes.ingresses\"\n params={{ endpointId: environmentId }}\n label=\"Ingresses\"\n isSubMenu\n data-cy=\"k8sSidebar-ingresses\"\n />\n </SidebarParent>\n\n <SidebarItem\n to=\"kubernetes.configurations\"\n params={{ endpointId: environmentId }}\n icon={Lock}\n label=\"ConfigMaps & Secrets\"\n data-cy=\"k8sSidebar-configurations\"\n />\n\n <VolumesLink\n environmentId={environmentId}\n platformPath=\"kubernetes\"\n data-cy=\"k8sSidebar-volumes\"\n />\n\n <SidebarParent\n label=\"Cluster\"\n icon={Server}\n to=\"kubernetes.cluster\"\n params={{ endpointId: environmentId }}\n pathOptions={{ includePaths: ['kubernetes.registries'] }}\n data-cy=\"k8sSidebar-cluster-area\"\n listId=\"k8sSidebar-cluster-area\"\n >\n <SidebarItem\n label=\"Details\"\n to=\"kubernetes.cluster\"\n ignorePaths={[\n 'kubernetes.cluster.setup',\n 'kubernetes.cluster.securityConstraint',\n ]}\n params={{ endpointId: environmentId }}\n isSubMenu\n data-cy=\"k8sSidebar-cluster\"\n />\n <Authorized\n authorizations=\"K8sClusterSetupRW\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n to=\"kubernetes.cluster.setup\"\n params={{ endpointId: environmentId }}\n label=\"Setup\"\n isSubMenu\n data-cy=\"k8sSidebar-setup\"\n />\n </Authorized>\n\n <Authorized\n authorizations=\"K8sClusterSetupRW\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n to=\"kubernetes.cluster.securityConstraint\"\n params={{ endpointId: environmentId }}\n label=\"Security constraints\"\n isSubMenu\n data-cy=\"k8sSidebar-securityConstraints\"\n />\n </Authorized>\n\n {isBE && (\n <Authorized\n authorizations=\"K8sClusterSetupRW\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n to=\"kubernetes.cluster.securityConstraint\"\n params={{ endpointId: environmentId }}\n label=\"Security Constraints\"\n isSubMenu\n data-cy=\"k8sSidebar-securityConstraints\"\n />\n </Authorized>\n )}\n\n <SidebarItem\n to=\"kubernetes.registries\"\n params={{ endpointId: environmentId }}\n label=\"Registries\"\n isSubMenu\n data-cy=\"k8sSidebar-registries\"\n />\n </SidebarParent>\n </>\n );\n}\n","import { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { useEffect } from 'react';\nimport { X, Slash } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useStore } from 'zustand';\n\nimport {\n PlatformType,\n EnvironmentId,\n Environment,\n} from '@/react/portainer/environments/types';\nimport { getPlatformType } from '@/react/portainer/environments/utils';\nimport { useEnvironment } from '@/react/portainer/environments/queries/useEnvironment';\nimport { environmentStore } from '@/react/hooks/current-environment-store';\n\nimport { Icon } from '@@/Icon';\n\nimport { getPlatformIcon } from '../portainer/environments/utils/get-platform-icon';\n\nimport styles from './EnvironmentSidebar.module.css';\nimport { AzureSidebar } from './AzureSidebar';\nimport { DockerSidebar } from './DockerSidebar';\nimport { KubernetesSidebar } from './KubernetesSidebar';\nimport { SidebarSection, SidebarSectionTitle } from './SidebarSection';\nimport { useSidebarState } from './useSidebarState';\n\nexport function EnvironmentSidebar() {\n const { query: currentEnvironmentQuery, clearEnvironment } =\n useCurrentEnvironment();\n const environment = currentEnvironmentQuery.data;\n\n const { isOpen } = useSidebarState();\n\n if (!isOpen && !environment) {\n return null;\n }\n\n return (\n <div className={clsx(styles.root, 'rounded border border-dotted py-2')}>\n {environment ? (\n <Content environment={environment} onClear={clearEnvironment} />\n ) : (\n <SidebarSectionTitle>\n <div className=\"flex items-center gap-1\">\n <span>Environment:</span>\n <Icon icon={Slash} className=\"text-xl !text-gray-6\" />\n <span className=\"text-sm text-gray-6\">None selected</span>\n </div>\n </SidebarSectionTitle>\n )}\n </div>\n );\n}\n\ninterface ContentProps {\n environment: Environment;\n onClear: () => void;\n}\n\nfunction Content({ environment, onClear }: ContentProps) {\n const platform = getPlatformType(environment.Type);\n const Sidebar = getSidebar(platform);\n\n return (\n <SidebarSection\n title={<Title environment={environment} onClear={onClear} />}\n aria-label={environment.Name}\n showTitleWhenOpen\n >\n <div className=\"mt-2\">\n {Sidebar && (\n <Sidebar environmentId={environment.Id} environment={environment} />\n )}\n </div>\n </SidebarSection>\n );\n\n function getSidebar(platform: PlatformType) {\n const sidebar: {\n [key in PlatformType]: React.ComponentType<{\n environmentId: EnvironmentId;\n environment: Environment;\n }> | null;\n } = {\n [PlatformType.Azure]: AzureSidebar,\n [PlatformType.Docker]: DockerSidebar,\n [PlatformType.Kubernetes]: KubernetesSidebar,\n };\n\n return sidebar[platform];\n }\n}\n\nfunction useCurrentEnvironment() {\n const { params } = useCurrentStateAndParams();\n const router = useRouter();\n\n const envStore = useStore(environmentStore);\n const { setEnvironmentId } = envStore;\n useEffect(() => {\n const environmentId = parseInt(params.endpointId, 10);\n if (params.endpointId && !Number.isNaN(environmentId)) {\n setEnvironmentId(environmentId);\n }\n }, [setEnvironmentId, params.endpointId, params.environmentId]);\n\n return { query: useEnvironment(envStore.environmentId), clearEnvironment };\n\n function clearEnvironment() {\n if (params.endpointId || params.environmentId) {\n router.stateService.go('portainer.home');\n }\n\n envStore.clear();\n }\n}\n\ninterface TitleProps {\n environment: Environment;\n onClear(): void;\n}\n\nfunction Title({ environment, onClear }: TitleProps) {\n const { isOpen } = useSidebarState();\n\n const EnvironmentIcon = getPlatformIcon(environment.Type);\n\n if (!isOpen) {\n return (\n <div className=\"-ml-3 flex w-8 justify-center\" title={environment.Name}>\n <EnvironmentIcon className=\"text-2xl\" />\n </div>\n );\n }\n\n return (\n <div className=\"flex items-center\">\n <EnvironmentIcon className=\"mr-3 text-2xl\" />\n <span className=\"overflow-hidden text-ellipsis whitespace-nowrap text-white\">\n {environment.Name}\n </span>\n\n <button\n title=\"Clear environment\"\n type=\"button\"\n onClick={onClear}\n className={clsx(\n styles.closeBtn,\n 'ml-auto mr-2 flex h-5 w-5 items-center justify-center rounded border-0 p-1 text-sm text-gray-5 transition-colors duration-200 hover:text-white be:text-gray-6 be:hover:text-white'\n )}\n >\n <X />\n </button>\n </div>\n );\n}\n","import {\n Users,\n Award,\n Settings,\n HardDrive,\n Radio,\n FileText,\n Bell,\n} from 'lucide-react';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { SidebarItem } from './SidebarItem';\nimport { SidebarSection } from './SidebarSection';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\ninterface Props {\n isPureAdmin: boolean;\n isAdmin: boolean;\n isTeamLeader?: boolean;\n}\n\nexport function SettingsSidebar({ isPureAdmin, isAdmin, isTeamLeader }: Props) {\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n const isPureAdminOrTeamLeader =\n isPureAdmin || (isTeamLeader && !teamSyncQuery.data && !isAdmin);\n const showUsersSection = !window.ddExtension && isPureAdminOrTeamLeader;\n\n return (\n <SidebarSection title=\"Administration\">\n {showUsersSection && (\n <SidebarParent\n label=\"User-related\"\n icon={Users}\n to=\"portainer.users\"\n pathOptions={{ includePaths: ['portainer.teams', 'portainer.roles'] }}\n data-cy=\"portainerSidebar-userRelated\"\n listId=\"portainerSidebar-userRelated\"\n >\n <SidebarItem\n to=\"portainer.users\"\n label=\"Users\"\n isSubMenu\n data-cy=\"portainerSidebar-users\"\n />\n <SidebarItem\n to=\"portainer.teams\"\n label=\"Teams\"\n isSubMenu\n data-cy=\"portainerSidebar-teams\"\n />\n\n {isPureAdmin && (\n <SidebarItem\n to=\"portainer.roles\"\n label=\"Roles\"\n isSubMenu\n data-cy=\"portainerSidebar-roles\"\n />\n )}\n </SidebarParent>\n )}\n {isPureAdmin && (\n <>\n <SidebarParent\n label=\"Environment-related\"\n icon={HardDrive}\n to=\"portainer.endpoints\"\n pathOptions={{\n includePaths: [\n 'portainer.wizard.endpoints',\n 'portainer.groups',\n 'portainer.tags',\n ],\n }}\n data-cy=\"portainerSidebar-environments-area\"\n listId=\"portainer-environments\"\n >\n <SidebarItem\n label=\"Environments\"\n to=\"portainer.endpoints\"\n ignorePaths={['portainer.endpoints.updateSchedules']}\n includePaths={['portainer.wizard.endpoints']}\n isSubMenu\n data-cy=\"portainerSidebar-environments\"\n />\n <SidebarItem\n to=\"portainer.groups\"\n label=\"Groups\"\n isSubMenu\n data-cy=\"portainerSidebar-environmentGroups\"\n />\n <SidebarItem\n to=\"portainer.tags\"\n label=\"Tags\"\n isSubMenu\n data-cy=\"portainerSidebar-environmentTags\"\n />\n <EdgeUpdatesSidebarItem />\n </SidebarParent>\n\n <SidebarItem\n label=\"Registries\"\n to=\"portainer.registries\"\n icon={Radio}\n data-cy=\"portainerSidebar-registries\"\n />\n\n {isBE && (\n <SidebarItem\n to=\"portainer.licenses\"\n label=\"Licenses\"\n icon={Award}\n data-cy=\"portainerSidebar-licenses\"\n />\n )}\n\n <SidebarParent\n label=\"Logs\"\n to=\"portainer.authLogs\"\n icon={FileText}\n pathOptions={{\n includePaths: ['portainer.activityLogs'],\n }}\n data-cy=\"k8sSidebar-logs\"\n listId=\"k8sSidebar-logs\"\n >\n <SidebarItem\n label=\"Authentication\"\n to=\"portainer.authLogs\"\n isSubMenu\n data-cy=\"portainerSidebar-authLogs\"\n />\n <SidebarItem\n to=\"portainer.activityLogs\"\n label=\"Activity\"\n isSubMenu\n data-cy=\"portainerSidebar-activityLogs\"\n />\n </SidebarParent>\n </>\n )}\n {isBE && !isPureAdmin && isAdmin && (\n <SidebarParent\n label=\"Environment-related\"\n icon={HardDrive}\n to=\"portainer.endpoints.updateSchedules\"\n data-cy=\"portainerSidebar-environments-area\"\n listId=\"portainer-environments-area\"\n >\n <EdgeUpdatesSidebarItem />\n </SidebarParent>\n )}\n\n <SidebarItem\n to=\"portainer.notifications\"\n icon={Bell}\n label=\"Notifications\"\n data-cy=\"portainerSidebar-notifications\"\n />\n {isPureAdmin && (\n <SidebarParent\n to=\"portainer.settings\"\n label=\"Settings\"\n icon={Settings}\n data-cy=\"portainerSidebar-settings\"\n listId=\"portainer-settings\"\n >\n <SidebarItem\n to=\"portainer.settings\"\n label=\"General\"\n isSubMenu\n ignorePaths={[\n 'portainer.settings.authentication',\n 'portainer.settings.sharedcredentials',\n 'portainer.settings.edgeCompute',\n ]}\n data-cy=\"portainerSidebar-generalSettings\"\n />\n {!window.ddExtension && (\n <SidebarItem\n to=\"portainer.settings.authentication\"\n label=\"Authentication\"\n isSubMenu\n data-cy=\"portainerSidebar-authentication\"\n />\n )}\n {isBE && (\n <SidebarItem\n to=\"portainer.settings.sharedcredentials\"\n label=\"Shared Credentials\"\n isSubMenu\n data-cy=\"portainerSidebar-cloud\"\n />\n )}\n\n <SidebarItem\n to=\"portainer.settings.edgeCompute\"\n label=\"Edge Compute\"\n isSubMenu\n data-cy=\"portainerSidebar-edgeCompute\"\n />\n\n <SidebarItem.Wrapper label=\"Help / About\">\n <a\n href={\n process.env.PORTAINER_EDITION === 'CE'\n ? 'https://www.portainer.io/community_help'\n : 'https://documentation.portainer.io/r/business-support'\n }\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"hover:!underline focus:no-underline text-sm flex h-8 w-full items-center rounded px-3 transition-colors duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20\"\n >\n Help / About\n </a>\n </SidebarItem.Wrapper>\n </SidebarParent>\n )}\n </SidebarSection>\n );\n}\n\nfunction EdgeUpdatesSidebarItem() {\n const settingsQuery = usePublicSettings();\n\n if (!isBE || !settingsQuery.data?.EnableEdgeComputeFeatures) {\n return null;\n }\n\n return (\n <SidebarItem\n to=\"portainer.endpoints.updateSchedules\"\n label=\"Update & Rollback\"\n isSubMenu\n data-cy=\"portainerSidebar-updateSchedules\"\n />\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-Footer-UpdateNotifications-module__root\",\"dismissTitle\":\"app-react-sidebar-Footer-UpdateNotifications-module__dismissTitle\",\"dismissBtn\":\"app-react-sidebar-Footer-UpdateNotifications-module__dismissBtn\",\"actions\":\"app-react-sidebar-Footer-UpdateNotifications-module__actions\"};","import clsx from 'clsx';\nimport { DownloadCloud } from 'lucide-react';\n\nimport { useUIState } from '@/react/hooks/useUIState';\nimport { useSystemVersion } from '@/react/portainer/system/useSystemVersion';\n\nimport { Icon } from '@@/Icon';\n\nimport styles from './UpdateNotifications.module.css';\n\nexport function UpdateNotification() {\n const uiStateStore = useUIState();\n const query = useSystemVersion();\n\n if (!query.data || !query.data.UpdateAvailable) {\n return null;\n }\n\n const { LatestVersion } = query.data;\n\n if (\n !!uiStateStore.dismissedUpdateVersion &&\n LatestVersion?.length > 0 &&\n uiStateStore.dismissedUpdateVersion === LatestVersion\n ) {\n return null;\n }\n\n return (\n <div\n className={clsx(\n styles.root,\n 'rounded border py-2',\n 'bg-blue-11 th-dark:bg-gray-warm-11',\n 'border-blue-9 th-dark:border-gray-warm-9'\n )}\n >\n <div className={clsx(styles.dismissTitle, 'vertical-center')}>\n <Icon icon={DownloadCloud} mode=\"primary\" size=\"md\" />\n <span className=\"space-left\">\n New version available {LatestVersion}\n </span>\n </div>\n\n <div className={clsx(styles.actions)}>\n <button\n type=\"button\"\n className={clsx(styles.dismissBtn, 'space-right')}\n onClick={() => onDismiss(LatestVersion)}\n >\n Dismiss\n </button>\n <a\n className=\"hyperlink space-left\"\n target=\"_blank\"\n href={`https://github.com/portainer/portainer/releases/tag/${LatestVersion}`}\n rel=\"noreferrer\"\n >\n See what'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>©</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> </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 & published ports</a></li>\\n <li><a href ng-click=\\\"goToItem('service-resources')\\\">Resource limits & 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 & 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 <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 > with the <code class=\\\"bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black\\\">--authorization-mode</code> flag set to a\\n comma-separated list that includes <code class=\\\"bg-gray-4 th-highcontrast:bg-black th-dark:bg-black\\\">RBAC</code>, for example: \\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 Enter - Find next <br />\\n 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 Enter - Find next <br />\\n Shift+Enter - Find previous <br />'\\\"\\n class-name=\\\"'[&>span]:!text-left'\\\"\\n set-html-message=\\\"true\\\"\\n >\\n </portainer-tooltip>\\n </div>\\n </div>\\n <div class=\\\"trancluded-item form-group col-sm-9 col-lg-10 text-muted small\\\" ng-transclude=\\\"description\\\"></div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 col-lg-12\\\">\\n <code-editor\\n identifier=\\\"{{ $ctrl.identifier }}\\\"\\n placeholder=\\\"{{ $ctrl.placeholder }}\\\"\\n read-only=\\\"$ctrl.readOnly\\\"\\n yml=\\\"$ctrl.yml\\\"\\n value=\\\"$ctrl.value\\\"\\n on-change=\\\"($ctrl.onChange)\\\"\\n height=\\\"{{ $ctrl.height }}\\\"\\n ></code-editor>\\n </div>\\n </div>\\n </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/components/form-components/web-editor-form/web-editor-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"endpointGroupForm\\\" ng-if=\\\"$ctrl.model\\\">\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"group_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"group_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"e.g. my-group\\\" required auto-focus />\\n <div class=\\\"help-block\\\" ng-show=\\\"endpointGroupForm.group_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"endpointGroupForm.group_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- description-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"group_description\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Description</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"group_description\\\" ng-model=\\\"$ctrl.model.Description\\\" placeholder=\\\"e.g. production environments...\\\" />\\n </div>\\n </div>\\n <!-- !description-input -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Metadata </div>\\n\\n <tag-selector ng-if=\\\"$ctrl.model.TagIds\\\" value=\\\"$ctrl.model.TagIds\\\" on-change=\\\"($ctrl.onChangeTags)\\\" allow-create=\\\"$ctrl.state.allowCreateTag\\\"> </tag-selector>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.model.Id !== 1\\\">\\n <associated-endpoints-selector value=\\\"$ctrl.associatedEndpoints\\\" on-change=\\\"($ctrl.onChangeEnvironments)\\\"></associated-endpoints-selector>\\n </div>\\n\\n <div class=\\\"-mx-[15px]\\\">\\n <group-association-table\\n ng-if=\\\"$ctrl.model.Id === 1\\\"\\n title=\\\"'Unassociated environments'\\\"\\n empty-content-message=\\\"'No environment available'\\\"\\n query=\\\"$ctrl.unassociatedQuery\\\"\\n ></group-association-table>\\n </div>\\n\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-click=\\\"$ctrl.formAction()\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !endpointGroupForm.$valid\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/group-form/groupForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form name=\\\"$ctrl.redeployGitForm\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Redeploy from git repository </div>\\n <div class=\\\"form-group text-muted\\\">\\n <div class=\\\"col-sm-12\\\">\\n <p> Pull the latest manifest from git and redeploy the application. </p>\\n </div>\\n </div>\\n <git-form-auto-update-fieldset\\n value=\\\"$ctrl.formValues.AutoUpdate\\\"\\n on-change=\\\"($ctrl.onChangeAutoUpdate)\\\"\\n environment-type=\\\"KUBERNETES\\\"\\n is-force-pull-visible=\\\"false\\\"\\n base-webhook-url=\\\"{{ $ctrl.state.baseWebhookUrl }}\\\"\\n webhook-id=\\\"{{ $ctrl.state.webhookId }}\\\"\\n webhooks-docs=\\\"/user/kubernetes/applications/webhooks\\\"\\n ></git-form-auto-update-fieldset>\\n <time-window-display></time-window-display>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <p>\\n <a class=\\\"small interactive\\\" ng-click=\\\"$ctrl.state.showConfig = !$ctrl.state.showConfig\\\">\\n <pr-icon ng-if=\\\"$ctrl.state.showConfig\\\" icon=\\\"'minus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n <pr-icon ng-if=\\\"!$ctrl.state.showConfig\\\" icon=\\\"'plus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n {{ $ctrl.state.showConfig ? 'Hide' : 'Advanced' }} configuration\\n </a>\\n </p>\\n </div>\\n </div>\\n\\n <git-form-ref-field\\n ng-if=\\\"$ctrl.state.showConfig\\\"\\n value=\\\"$ctrl.formValues.RefName\\\"\\n on-change=\\\"($ctrl.onChangeRef)\\\"\\n model=\\\"$ctrl.formValues\\\"\\n is-url-valid=\\\"true\\\"\\n ></git-form-ref-field>\\n\\n <git-form-auth-fieldset\\n ng-if=\\\"$ctrl.state.showConfig\\\"\\n value=\\\"$ctrl.formValues\\\"\\n on-change=\\\"($ctrl.onChangeGitAuth)\\\"\\n is-auth-explanation-visible=\\\"true\\\"\\n is-auth-edit=\\\"$ctrl.state.isAuthEdit\\\"\\n ></git-form-auth-fieldset>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.showConfig\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n name=\\\"TLSSkipVerify\\\"\\n checked=\\\"$ctrl.formValues.TLSSkipVerify\\\"\\n tooltip=\\\"'Enabling this will allow skipping TLS validation for any self-signed certificate.'\\\"\\n label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n label=\\\"'Skip TLS Verification'\\\"\\n on-change=\\\"($ctrl.onChangeTLSSkipVerify)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <!-- #Git buttons -->\\n <button\\n class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"$ctrl.pullAndRedeployApplication()\\\"\\n ng-disabled=\\\"$ctrl.isSubmitButtonDisabled() || $ctrl.state.hasUnsavedChanges|| !$ctrl.redeployGitForm.$valid\\\"\\n style=\\\"margin-top: 7px; margin-left: 0\\\"\\n button-spinner=\\\"$ctrl.state.redeployInProgress\\\"\\n analytics-on\\n analytics-category=\\\"kubernetes\\\"\\n analytics-event=\\\"kubernetes-application-edit-git-pull\\\"\\n >\\n <span ng-show=\\\"!$ctrl.state.redeployInProgress\\\">\\n <pr-icon icon=\\\"'refresh-cw'\\\" class=\\\"!mr-1\\\"></pr-icon>\\n Pull and update application\\n </span>\\n <span ng-show=\\\"$ctrl.state.redeployInProgress\\\">In progress...</span>\\n </button>\\n\\n <button\\n class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"$ctrl.saveGitSettings()\\\"\\n ng-disabled=\\\"$ctrl.isSubmitButtonDisabled() || !$ctrl.state.hasUnsavedChanges|| !$ctrl.redeployGitForm.$valid\\\"\\n style=\\\"margin-top: 7px; margin-left: 0\\\"\\n button-spinner=\\\"$ctrl.state.saveGitSettingsInProgress\\\"\\n analytics-on\\n analytics-category=\\\"kubernetes\\\"\\n analytics-event=\\\"kubernetes-application-edit\\\"\\n analytics-properties=\\\"$ctrl.buildAnalyticsProperties()\\\"\\n >\\n <span ng-show=\\\"!$ctrl.state.saveGitSettingsInProgress\\\"> Save settings </span>\\n <span ng-show=\\\"$ctrl.state.saveGitSettingsInProgress\\\">In progress...</span>\\n </button>\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormEcr\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\">\\n For information on how to generate an Access Key, follow the\\n <a href=\\\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console\\\" target=\\\"_blank\\\">AWS guide</a>.\\n </span>\\n </div>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> ECR connection details </div>\\n\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"my-ecr-registry\\\" required auto-focus />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormEcr.registry_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n\\n <!-- url-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n <span class=\\\"required\\\">Registry URL</span>\\n <portainer-tooltip message=\\\"'URL of an Amazon Elastic Container Registry, which contains an account id and region.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"registry_url\\\"\\n name=\\\"registry_url\\\"\\n ng-model=\\\"$ctrl.model.URL\\\"\\n placeholder=\\\"aws-account-id.dkr.ecr.us-east-1.amazonaws.com/\\\"\\n required\\n />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_url.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormEcr.registry_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- url-input -->\\n\\n <!-- authentication-checkbox -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label=\\\"'Authentication'\\\"\\n label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n tooltip=\\\"'Enable this option if you need to specify credentials to connect to a private registry.'\\\"\\n name=\\\"'administrator'\\\"\\n checked=\\\"$ctrl.model.Authentication\\\"\\n on-change=\\\"($ctrl.toggleAuthentication)\\\"\\n label-class=\\\"'col-sm-2'\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n <!-- !authentication-checkbox -->\\n\\n <div ng-if=\\\"$ctrl.model.Authentication\\\">\\n <!-- aws-access-key -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_access_key\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">AWS Access Key</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_access_key\\\" name=\\\"registry_access_key\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_access_key.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormEcr.registry_access_key.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !aws-access-key -->\\n\\n <!-- aws-secret-access-key -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_secret_access_key\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">AWS Secret Access Key</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_secret_access_key\\\" name=\\\"registry_secret_access_key\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_secret_access_key.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormEcr.registry_secret_access_key.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !aws-secret-access-key -->\\n\\n <!-- region -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_region\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Region</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_region\\\" name=\\\"registry_region\\\" placeholder=\\\"us-west-1\\\" ng-model=\\\"$ctrl.model.Ecr.Region\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormEcr.registry_region.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormEcr.registry_region.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !region -->\\n </div>\\n\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormEcr.$valid\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"portainer\\\"\\n analytics-event=\\\"portainer-registry-creation\\\"\\n analytics-properties=\\\"{ metadata: { type: 'ecr' } }\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormAzure\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Azure registry details </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"my-azure-registry\\\" required auto-focus />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormAzure.registry_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- url-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n <span class=\\\"required\\\">Registry URL</span>\\n <portainer-tooltip message=\\\"'URL of an Azure Container Registry. Any protocol will be stripped.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"myproject.azurecr.io\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_url.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormAzure.registry_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- url-input -->\\n <!-- credentials-user -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_username.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormAzure.registry_username.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-user -->\\n <!-- credentials-password -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormAzure.registry_password.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormAzure.registry_password.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-password -->\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormAzure.$valid\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"portainer\\\"\\n analytics-event=\\\"portainer-registry-creation\\\"\\n analytics-properties=\\\"{ metadata: { type: 'azure' } }\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-azure/registry-form-azure.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormCustom\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\">\\n Docker requires you to connect to a <a href=\\\"https://docs.docker.com/registry/deploying/#running-a-domain-registry\\\" target=\\\"_blank\\\">secure registry</a>. You can find more\\n information about how to connect to an insecure registry <a href=\\\"https://docs.docker.com/registry/insecure/\\\" target=\\\"_blank\\\">in the Docker documentation</a>.\\n </span>\\n </div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> Custom registry details </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"my-custom-registry\\\" required auto-focus />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormCustom.registry_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- url-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n Registry URL\\n <portainer-tooltip message=\\\"'URL or IP address of a Docker registry. Any protocol and trailing slash will be stripped if present.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"10.0.0.10:5000 or myregistry.domain.tld\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_url.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormCustom.registry_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- url-input -->\\n <!-- authentication-checkbox -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label=\\\"'Authentication'\\\"\\n label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n tooltip=\\\"'Enable this option if you need to specify credentials to connect to this registry.'\\\"\\n name=\\\"'administrator'\\\"\\n checked=\\\"$ctrl.model.Authentication\\\"\\n on-change=\\\"($ctrl.toggleAuthentication)\\\"\\n label-class=\\\"'col-sm-2'\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n <!-- !authentication-checkbox -->\\n <div ng-if=\\\"$ctrl.model.Authentication\\\">\\n <!-- credentials-user -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_username.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormCustom.registry_username.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-user -->\\n <!-- credentials-password -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormCustom.registry_password.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormCustom.registry_password.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-password -->\\n </div>\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormCustom.$valid\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"portainer\\\"\\n analytics-event=\\\"portainer-registry-creation\\\"\\n analytics-properties=\\\"{ metadata: { type: 'custom' }}\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-custom/registry-form-custom.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormDockerhub\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\">\\n <p>\\n For information on how to generate a DockerHub Access Token, follow the\\n <a href=\\\"https://docs.docker.com/docker-hub/access-tokens/\\\" target=\\\"_blank\\\">dockerhub guide</a>.\\n </p>\\n </span>\\n </div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> DockerHub account details </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"dockerhub-prod-us\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormDockerhub.registry_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormDockerhub.registry_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- credentials-user -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">DockerHub username</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormDockerhub.registry_username.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormDockerhub.registry_username.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-user -->\\n <!-- credentials-password -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">DockerHub access token</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormDockerhub.registry_password.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormDockerhub.registry_password.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-password -->\\n\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormDockerhub.$valid\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"portainer\\\"\\n analytics-event=\\\"portainer-registry-creation\\\"\\n analytics-properties=\\\"{ metadata: { type: 'dockerhub' } }\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar vertical-center\\\">\\n <div class=\\\"toolBarTitle vertical-center\\\">\\n <pr-icon icon=\\\"$ctrl.titleIcon\\\" class-name=\\\"'icon-blue'\\\"></pr-icon>\\n {{ $ctrl.titleText }}\\n </div>\\n <div class=\\\"searchBar vertical-center\\\">\\n <pr-icon icon=\\\"'search'\\\" class=\\\"searchIcon\\\"></pr-icon>\\n <input type=\\\"text\\\" class=\\\"searchInput\\\" ng-model=\\\"$ctrl.state.textFilter\\\" ng-change=\\\"$ctrl.onTextFilterChange()\\\" placeholder=\\\"Search...\\\" auto-focus />\\n </div>\\n </div>\\n <div class=\\\"table-responsive\\\">\\n <table class=\\\"table-hover nowrap-cells table\\\">\\n <thead>\\n <tr>\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <span class=\\\"md-checkbox vertical-center\\\">\\n <input id=\\\"select_all\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.state.selectAll\\\" ng-change=\\\"$ctrl.selectAll()\\\" />\\n <label for=\\\"select_all\\\"></label>\\n </span>\\n <table-column-header\\n col-title=\\\"'Namespace'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'Namespace'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'Namespace' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('Namespace')\\\"\\n ></table-column-header>\\n </div>\\n </th>\\n <th>\\n <table-column-header\\n col-title=\\\"'Name'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n ></table-column-header>\\n </th>\\n <th>\\n <table-column-header\\n col-title=\\\"'PathWithNamespace'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'PathWithNamespace'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'PathWithNamespace' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('PathWithNamespace')\\\"\\n ></table-column-header>\\n </th>\\n <th>\\n <table-column-header col-title=\\\"'Description'\\\" can-sort=\\\"false\\\"></table-column-header>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n ng-class=\\\"{ active: item.Checked }\\\"\\n >\\n <td>\\n <span class=\\\"md-checkbox\\\">\\n <input id=\\\"select_{{ $index }}\\\" type=\\\"checkbox\\\" ng-model=\\\"item.Checked\\\" ng-click=\\\"$ctrl.selectItem(item, $event)\\\" ng-disabled=\\\"$ctrl.disableSelection(item)\\\" />\\n <label for=\\\"select_{{ $index }}\\\"></label>\\n </span>\\n {{ item.Namespace }}\\n </td>\\n <td>\\n {{ item.Name }}\\n </td>\\n <td>\\n {{ item.PathWithNamespace }}\\n </td>\\n <td>\\n {{ item.Description }}\\n </td>\\n </tr>\\n <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No projects available.</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n <div class=\\\"paginationControls\\\">\\n <form class=\\\"form-inline\\\">\\n <span class=\\\"limitSelector\\\">\\n <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\" data-cy=\\\"component-paginationSelect\\\">\\n <option value=\\\"0\\\">All</option>\\n <option value=\\\"10\\\">10</option>\\n <option value=\\\"25\\\">25</option>\\n <option value=\\\"50\\\">50</option>\\n <option value=\\\"100\\\">100</option>\\n </select>\\n </span>\\n <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n </form>\\n </div>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"registryFormGitlab\\\" ng-submit=\\\"$ctrl.retrieveRegistries()\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\">\\n <p>\\n For information on how to generate a GitLab Personal Access Token, follow the\\n <a href=\\\"https://gitlab.com/help/user/profile/personal_access_tokens.md\\\" target=\\\"_blank\\\">GitLab guide</a>.\\n </p>\\n </span>\\n </div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> GitLab registry connection details </div>\\n <!-- credentials-user -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.registry_username.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"registryFormGitlab.registry_username.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-user -->\\n <!-- credentials-pat -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_perso_acc_token\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Personal Access Token </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_perso_acc_token\\\" name=\\\"registry_perso_acc_token\\\" ng-model=\\\"$ctrl.model.Token\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.registry_perso_acc_token.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"registryFormGitlab.registry_perso_acc_token.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-pat -->\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-link btn-sm !ml-0 p-0 hover:no-underline\\\"\\n ng-if=\\\"!$ctrl.state.overrideConfiguration\\\"\\n ng-click=\\\"$ctrl.state.overrideConfiguration = true;\\\"\\n >\\n <pr-icon icon=\\\"'wrench'\\\"></pr-icon>\\n Override default configuration\\n </button>\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-link btn-sm !ml-0 p-0 hover:no-underline\\\"\\n ng-if=\\\"$ctrl.state.overrideConfiguration\\\"\\n ng-click=\\\"$ctrl.state.overrideConfiguration = false; $ctrl.resetDefaults()\\\"\\n >\\n <pr-icon icon=\\\"'settings'\\\"></pr-icon>\\n Use default configuration\\n </button>\\n </div>\\n </div>\\n\\n <!-- url-input -->\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.overrideConfiguration\\\">\\n <label for=\\\"instance_url\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n Instance URL\\n <portainer-tooltip message=\\\"'URL of Gitlab instance.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"instance_url\\\" name=\\\"instance_url\\\" ng-model=\\\"$ctrl.model.Gitlab.InstanceURL\\\" placeholder=\\\"https://gitlab.com\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.instance_url.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"registryFormGitlab.instance_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !url-input -->\\n <!-- url-input -->\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.overrideConfiguration\\\">\\n <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n Registry URL\\n <portainer-tooltip message=\\\"'URL of Gitlab registry instance.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"https://registry.gitlab.com\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"registryFormGitlab.registry_url.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"registryFormGitlab.registry_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !url-input -->\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button type=\\\"submit\\\" class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"$ctrl.actionInProgress || !registryFormGitlab.$valid\\\" button-spinner=\\\"$ctrl.actionInProgress\\\">\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">Retrieve projects</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n</form>\\n<div class=\\\"form-horizontal\\\" ng-if=\\\"$ctrl.projects\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> GitLab projects </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\"> Select the project's registries you want to manage. Portainer will create one registry for each selected project. </span>\\n <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-warning'\\\"></pr-icon>\\n If you can't select a project, make sure that registry feature is activated on it.\\n </span>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <gitlab-projects-datatable\\n title-text=\\\"GitLab projects\\\"\\n title-icon=\\\"list\\\"\\n dataset=\\\"$ctrl.projects\\\"\\n table-key=\\\"gitlab_projects\\\"\\n state=\\\"$ctrl.state.gitlab\\\"\\n order-by=\\\"Name\\\"\\n ></gitlab-projects-datatable>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n ng-click=\\\"$ctrl.createRegistries()\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.state.gitlab.selectedItemCount\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"portainer\\\"\\n analytics-event=\\\"portainer-registry-creation\\\"\\n analytics-properties=\\\"{ metadata: { type: 'gitlab' } }\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">Create registries</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</div>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormProGet\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Important notice </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 text-muted small\\\">\\n Any Portainer user that has access to this registry will be able to use the Registry Manager features against the content of any Feed in the ProGet registry that the ProGet\\n user has access to.\\n </div>\\n </div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> ProGet registry details </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"proget-registry\\\" required auto-focus />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormProGet.registry_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- url-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n <span class=\\\"required\\\">Registry URL</span>\\n <portainer-tooltip message=\\\"'The URL of the ProGet registry including the Feed name'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_url\\\" name=\\\"registry_url\\\" ng-model=\\\"$ctrl.model.URL\\\" placeholder=\\\"proget.example.com/example-registry\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_url.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormProGet.registry_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- url-input -->\\n <!-- base-url-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_base_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n <span class=\\\"required\\\">Base URL</span>\\n <portainer-tooltip message=\\\"'The base URL of the ProGet registry'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_base_url\\\" name=\\\"registry_base_url\\\" ng-model=\\\"$ctrl.model.BaseURL\\\" placeholder=\\\"proget.example.com\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_base_url.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormProGet.registry_base_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !base-url-input -->\\n <div>\\n <!-- credentials-user -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_username.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormProGet.registry_username.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-user -->\\n <!-- credentials-password -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormProGet.registry_password.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormProGet.registry_password.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-password -->\\n </div>\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormProGet.$valid\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"portainer\\\"\\n analytics-event=\\\"portainer-registry-creation\\\"\\n analytics-properties=\\\"{ metadata: { type: 'proget' } }\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-proget/registry-form-proget.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form class=\\\"form-horizontal\\\" name=\\\"$ctrl.registryFormQuay\\\" ng-submit=\\\"$ctrl.formAction()\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Quay account details </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_name\\\" name=\\\"registry_name\\\" ng-model=\\\"$ctrl.model.Name\\\" placeholder=\\\"Quay\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.registry_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormQuay.registry_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"used\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- credentials-user -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Username</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_username\\\" name=\\\"registry_username\\\" ng-model=\\\"$ctrl.model.Username\\\" required auto-focus />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.registry_username.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormQuay.registry_username.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-user -->\\n <!-- credentials-password -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"registry_password\\\" name=\\\"registry_password\\\" ng-model=\\\"$ctrl.model.Password\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.registry_password.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormQuay.registry_password.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-password -->\\n\\n <!-- organization-checkbox -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label=\\\"'Use organization registry'\\\"\\n checked=\\\"$ctrl.model.Quay.useOrganisation\\\"\\n on-change=\\\"($ctrl.toggleOrganisation)\\\"\\n label-class=\\\"'col-sm-2'\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n <!-- !organisation-checkbox -->\\n <div ng-if=\\\"$ctrl.model.Quay.useOrganisation\\\">\\n <!-- organisation_name -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"organisation_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Organization name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"organisation_name\\\" name=\\\"organisation_name\\\" ng-model=\\\"$ctrl.model.Quay.organisationName\\\" required />\\n <div class=\\\"help-block\\\" ng-show=\\\"$ctrl.registryFormQuay.organisation_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"$ctrl.registryFormQuay.organisation_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !organisation_name -->\\n </div>\\n\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.actionInProgress || !$ctrl.registryFormQuay.$valid\\\"\\n button-spinner=\\\"$ctrl.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"portainer\\\"\\n analytics-event=\\\"portainer-registry-creation\\\"\\n analytics-properties=\\\"{ metadata: { type: 'quay' } }\\\"\\n >\\n <span ng-hide=\\\"$ctrl.actionInProgress\\\">{{ $ctrl.formActionLabel }}</span>\\n <span ng-show=\\\"$ctrl.actionInProgress\\\">In progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/registry-form-quay/registry-form-quay.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<rd-widget>\\n <rd-widget-custom-header icon=\\\"$ctrl.template.Logo\\\" title-text=\\\"$ctrl.template.Title\\\"></rd-widget-custom-header>\\n <rd-widget-body classes=\\\"padding\\\">\\n <form class=\\\"form-horizontal\\\" name=\\\"stackTemplateForm\\\">\\n <!-- description -->\\n <div ng-if=\\\"$ctrl.template.Note\\\">\\n <div class=\\\"form-section-title\\\"> Information </div>\\n <div class=\\\"col-sm-12 form-group\\\">\\n <div class=\\\"template-note\\\" ng-bind-html=\\\"$ctrl.template.Note\\\"></div>\\n </div>\\n </div>\\n <!-- !description -->\\n <div class=\\\"form-section-title\\\"> Configuration </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"template_name\\\" class=\\\"col-sm-2 control-label text-left\\\">Name</label>\\n <div class=\\\"col-sm-6\\\">\\n <input type=\\\"text\\\" name=\\\"template_name\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.formValues.name\\\" ng-pattern=\\\"$ctrl.nameRegex\\\" placeholder=\\\"e.g. mystack\\\" required />\\n <div class=\\\"form-group\\\" ng-if=\\\"stackTemplateForm.template_name.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"stackTemplateForm.template_name.$error\\\">\\n <p ng-message=\\\"pattern\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n <span>This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').</span>\\n </p>\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>This field is required. </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <!-- !name-input -->\\n <!-- env -->\\n <div ng-repeat=\\\"var in $ctrl.template.Env\\\" ng-if=\\\"!var.preset || var.select\\\" class=\\\"form-group\\\">\\n <label for=\\\"field_{{ $index }}\\\" class=\\\"col-sm-2 control-label text-left\\\">\\n {{ var.label }}\\n <portainer-tooltip ng-if=\\\"var.description\\\" message=\\\"var.description\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-6\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-if=\\\"!var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\" />\\n <select class=\\\"form-control\\\" ng-if=\\\"var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\">\\n <option selected disabled hidden value=\\\"\\\">Select value</option>\\n <option ng-repeat=\\\"choice in var.select\\\" value=\\\"{{ choice.value }}\\\">{{ choice.text }}</option>\\n </select>\\n </div>\\n </div>\\n <!-- !env -->\\n <ng-transclude ng-transclude-slot=\\\"advanced\\\"></ng-transclude>\\n\\n <!-- access-control -->\\n <por-access-control-form form-data=\\\"$ctrl.formValues.AccessControlData\\\"></por-access-control-form>\\n <!-- !access-control -->\\n <!-- actions -->\\n <div class=\\\"form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary\\\"\\n ng-disabled=\\\"$ctrl.state.actionInProgress || !$ctrl.formValues.name || !$ctrl.state.deployable || stackTemplateForm.$invalid\\\"\\n ng-click=\\\"$ctrl.createTemplate()\\\"\\n button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"$ctrl.state.actionInProgress\\\">Deploy the stack</span>\\n <span ng-show=\\\"$ctrl.state.actionInProgress\\\">Deployment in progress...</span>\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"$ctrl.unselectTemplate($ctrl.template)\\\">Hide</button>\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.formValidationError\\\">\\n <div class=\\\"col-sm-12 small text-danger\\\" ng-if=\\\"$ctrl.state.formValidationError\\\">\\n <p class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>{{ $ctrl.state.formValidationError }} </p>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-if=\\\"!$ctrl.state.deployable\\\">\\n <div class=\\\"col-sm-12 small text-danger\\\" ng-if=\\\"!$ctrl.state.deployable\\\">\\n <p class=\\\"vertical-center\\\"> <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>This template type cannot be deployed on this environment. </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !actions -->\\n </form>\\n </rd-widget-body>\\n</rd-widget>\\n\";;\nvar path = 'app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<form name=\\\"$ctrl.redeployGitForm\\\" class=\\\"form-horizontal my-8\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Redeploy from git repository </div>\\n\\n <git-form-info-panel\\n class-name=\\\"'text-muted small'\\\"\\n url=\\\"$ctrl.model.URL\\\"\\n type=\\\"'stack'\\\"\\n config-file-path=\\\"$ctrl.model.ConfigFilePath\\\"\\n additional-files=\\\"$ctrl.stack.AdditionalFiles\\\"\\n ></git-form-info-panel>\\n\\n <git-form-auto-update-fieldset\\n value=\\\"$ctrl.formValues.AutoUpdate\\\"\\n on-change=\\\"($ctrl.onChangeAutoUpdate)\\\"\\n environment-type=\\\"DOCKER\\\"\\n is-force-pull-visible=\\\"$ctrl.stack.Type !== 3\\\"\\n base-webhook-url=\\\"{{ $ctrl.state.baseWebhookUrl }}\\\"\\n webhook-id=\\\"{{ $ctrl.state.webhookId }}\\\"\\n webhooks-docs=\\\"/user/docker/stacks/webhooks\\\"\\n ></git-form-auto-update-fieldset>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <p>\\n <a class=\\\"small interactive\\\" ng-click=\\\"$ctrl.state.showConfig = !$ctrl.state.showConfig\\\">\\n <pr-icon ng-if=\\\"$ctrl.state.showConfig\\\" icon=\\\"'minus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n <pr-icon ng-if=\\\"!$ctrl.state.showConfig\\\" icon=\\\"'plus'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n {{ $ctrl.state.showConfig ? 'Hide' : 'Advanced' }} configuration\\n </a>\\n </p>\\n </div>\\n </div>\\n\\n <git-form-ref-field\\n ng-if=\\\"$ctrl.state.showConfig\\\"\\n value=\\\"$ctrl.formValues.RefName\\\"\\n on-change=\\\"($ctrl.onChangeRef)\\\"\\n model=\\\"$ctrl.formValues\\\"\\n is-url-valid=\\\"true\\\"\\n stack-id=\\\"$ctrl.gitStackId\\\"\\n ></git-form-ref-field>\\n\\n <git-form-auth-fieldset\\n ng-if=\\\"$ctrl.state.showConfig\\\"\\n value=\\\"$ctrl.formValues\\\"\\n on-change=\\\"($ctrl.onChangeGitAuth)\\\"\\n is-auth-explanation-visible=\\\"true\\\"\\n is-auth-edit=\\\"$ctrl.state.isAuthEdit\\\"\\n ></git-form-auth-fieldset>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.showConfig\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n name=\\\"TLSSkipVerify\\\"\\n checked=\\\"$ctrl.formValues.TLSSkipVerify\\\"\\n tooltip=\\\"'Enabling this will allow skipping TLS validation for any self-signed certificate.'\\\"\\n label-class=\\\"'col-sm-3 col-lg-2'\\\"\\n label=\\\"'Skip TLS Verification'\\\"\\n on-change=\\\"($ctrl.onChangeTLSSkipVerify)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n\\n <div ng-if=\\\"$ctrl.state.showConfig\\\">\\n <relative-path-fieldset value=\\\"$ctrl.stack\\\" git-model=\\\"$ctrl.stack\\\" is-editing=\\\"true\\\" hide-edge-configs=\\\"true\\\"></relative-path-fieldset>\\n </div>\\n\\n <stack-environment-variables-panel\\n values=\\\"$ctrl.formValues.Env\\\"\\n on-change=\\\"($ctrl.onChangeEnvVar)\\\"\\n show-help-message=\\\"true\\\"\\n is-foldable=\\\"true\\\"\\n ></stack-environment-variables-panel>\\n\\n <option-panel ng-if=\\\"$ctrl.stack.Type === 1 && $ctrl.endpoint.apiVersion >= 1.27\\\" ng-model=\\\"$ctrl.formValues.Option\\\" on-change=\\\"($ctrl.onChangeOption)\\\"></option-panel>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n\\n <button\\n class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"$ctrl.submit()\\\"\\n ng-disabled=\\\"$ctrl.disablePullAndRedeployButton()\\\"\\n style=\\\"margin-top: 7px; margin-left: 0\\\"\\n button-spinner=\\\"$ctrl.state.redeployInProgress\\\"\\n analytics-on\\n analytics-event=\\\"docker-stack-pull-redeploy\\\"\\n analytics-category=\\\"docker\\\"\\n >\\n <span ng-hide=\\\"$ctrl.state.redeployInProgress\\\">\\n <pr-icon icon=\\\"'refresh-cw'\\\" class=\\\"!mr-1\\\"></pr-icon>\\n Pull and redeploy\\n </span>\\n <span ng-show=\\\"$ctrl.state.redeployInProgress\\\">In progress...</span>\\n </button>\\n\\n <button\\n class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"$ctrl.saveGitSettings()\\\"\\n ng-disabled=\\\"$ctrl.disableSaveSettingsButton()\\\"\\n style=\\\"margin-top: 7px; margin-left: 0\\\"\\n button-spinner=\\\"$ctrl.state.inProgress\\\"\\n analytics-on\\n analytics-event=\\\"docker-stack-update-git-settings\\\"\\n analytics-category=\\\"docker\\\"\\n analytics-properties=\\\"$ctrl.buildAnalyticsProperties()\\\"\\n >\\n <span ng-hide=\\\"$ctrl.state.inProgress\\\"> Save settings </span>\\n <span ng-show=\\\"$ctrl.state.inProgress\\\">In progress...</span>\\n </button>\\n</form>\\n\";;\nvar path = 'app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form class=\\\"form-horizontal\\\" name=\\\"$ctrl.optionForm\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\" style=\\\"margin-top: 10px; margin-left: 15px; width: 98%\\\"> Options </div>\\n\\n <!-- Prune service -->\\n <div class=\\\"col-sm-12\\\">\\n <label class=\\\"control-label text-left\\\">\\n Prune services\\n <portainer-tooltip position=\\\"'top'\\\" message=\\\"'Prune services that are no longer referenced.'\\\"></portainer-tooltip>\\n </label>\\n <label class=\\\"switch\\\" style=\\\"margin-left: 20px\\\"> <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.ngModel.Prune\\\" ng-change=\\\"$ctrl.switchPruneService()\\\" /><i></i> </label>\\n </div>\\n <!-- !Prune service -->\\n </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/components/option-panel/option-panel.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<!-- extension -->\\n<div class=\\\"blocklist-item\\\" ng-click=\\\"$ctrl.goTo($ctrl.model)\\\">\\n <div class=\\\"blocklist-item-box\\\">\\n <!-- extension-image -->\\n <span class=\\\"blocklist-item-logo\\\">\\n <img class=\\\"blocklist-item-logo\\\" ng-if=\\\"$ctrl.model.Id == 1 || $ctrl.model.Id == 2 || $ctrl.model.Id == 3\\\" src=\\\"\" + require(\"@/assets/images/support_1.png\") + \"\\\" />\\n <img class=\\\"blocklist-item-logo\\\" ng-if=\\\"$ctrl.model.Id == 4 || $ctrl.model.Id == 5\\\" src=\\\"\" + require(\"@/assets/images/support_2.png\") + \"\\\" />\\n </span>\\n <!-- !extension-image -->\\n <!-- extension-details -->\\n <span class=\\\"col-sm-12\\\">\\n <!-- blocklist-item-line1 -->\\n <div class=\\\"blocklist-item-line\\\">\\n <span>\\n <span class=\\\"blocklist-item-title\\\">\\n {{ $ctrl.model.Name }}\\n </span>\\n </span>\\n </div>\\n <!-- !blocklist-item-line1 -->\\n <!-- blocklist-item-line2 -->\\n <div class=\\\"blocklist-item-line\\\">\\n <span>\\n <span class=\\\"blocklist-item-desc\\\">\\n {{ $ctrl.model.ShortDescription }}\\n </span>\\n </span>\\n </div>\\n <!-- !blocklist-item-line2 -->\\n </span>\\n <!-- !extension-details -->\\n </div>\\n <!-- !extension -->\\n</div>\\n\";;\nvar path = 'app/portainer/components/product-list/product-item/productItem.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar\\\">\\n <div class=\\\"toolBarTitle\\\">\\n <pr-icon icon=\\\"'zap'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n {{ $ctrl.titleText }}\\n </div>\\n </div>\\n\\n <div class=\\\"blocklist\\\">\\n <product-item ng-repeat=\\\"product in $ctrl.products\\\" model=\\\"product\\\" go-to=\\\"$ctrl.goTo\\\"></product-item>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/product-list/productList.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"row\\\" ng-if=\\\"$ctrl.registry\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"radio\\\" title-text=\\\"Registry\\\"></rd-widget-header>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <table class=\\\"table\\\">\\n <tbody>\\n <tr>\\n <td style=\\\"padding-left: 20px\\\">Name</td>\\n <td>\\n {{ $ctrl.registry.Name }}\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"padding-left: 20px\\\">URL</td>\\n <td>\\n {{ $ctrl.registry.URL }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/components/registry-details/registry-details.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"sensitive-details-container\\\">\\n <div class=\\\"text-wrap\\\">{{ $ctrl.key }}</div>\\n <show-hide class=\\\"show-hide-container\\\" value=\\\"$ctrl.value\\\" use-asterisk=\\\"true\\\"></show-hide>\\n <copy-button value=\\\"$ctrl.value\\\"></copy-button>\\n</div>\\n\";;\nvar path = 'app/portainer/components/sensitive-details/sensitive-details.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"small text-muted text-wrap\\\">\\n <span ng-if=\\\"!$ctrl.show && $ctrl.useAsterisk\\\">********</span>\\n <span ng-if=\\\"$ctrl.show\\\">{{ $ctrl.value }}</span>\\n</div>\\n\\n<button type=\\\"button\\\" class=\\\"btn btn-link nopadding\\\" ng-click=\\\"$ctrl.show = !$ctrl.show\\\" title=\\\"Show/Hide value\\\">\\n <div ng-if=\\\"!$ctrl.show\\\">\\n <pr-icon icon=\\\"'eye-off'\\\"></pr-icon>\\n Show</div\\n >\\n <div ng-if=\\\"$ctrl.show\\\">\\n <pr-icon icon=\\\"'eye'\\\"></pr-icon>\\n Hide</div\\n >\\n</button>\\n\";;\nvar path = 'app/portainer/components/show-hide/show-hide.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n <rzslider rz-slider-options=\\\"$ctrl.options\\\" rz-slider-model=\\\"$ctrl.model\\\"></rzslider>\\n</div>\\n\";;\nvar path = 'app/portainer/components/slider/slider.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div authorization=\\\"PortainerStackMigrate\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Stack duplication / migration </div>\\n <rd-widget>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"dupStackForm\\\">\\n <div class=\\\"form-group\\\">\\n <span class=\\\"small\\\" style=\\\"margin-top: 10px\\\">\\n <p class=\\\"text-muted\\\"> This feature allows you to duplicate or migrate this stack. </p>\\n </span>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <input\\n class=\\\"form-control\\\"\\n placeholder=\\\"Stack name (optional for migration)\\\"\\n aria-placeholder=\\\"Stack name\\\"\\n name=\\\"new_stack_name\\\"\\n ng-pattern=\\\"$ctrl.STACK_NAME_VALIDATION_REGEX\\\"\\n ng-model=\\\"$ctrl.formValues.newName\\\"\\n />\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"dupStackForm.new_stack_name.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"dupStackForm.new_stack_name.$error\\\">\\n <p ng-message=\\\"pattern\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n <span>This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').</span>\\n </p>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.endpoints && $ctrl.groups\\\">\\n <por-select value=\\\"$ctrl.formValues.endpointId\\\" on-change=\\\"($ctrl.onChangeEnvironment)\\\" options=\\\"$ctrl.environmentSelectorOptions\\\"></por-select>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <button\\n class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"$ctrl.migrateStack()\\\"\\n ng-disabled=\\\"$ctrl.isMigrationButtonDisabled()\\\"\\n style=\\\"margin-top: 7px; margin-left: 0\\\"\\n button-spinner=\\\"$ctrl.state.migrationInProgress\\\"\\n >\\n <span ng-hide=\\\"$ctrl.state.migrationInProgress\\\">\\n <pr-icon icon=\\\"'arrow-right'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n Migrate\\n </span>\\n <span ng-show=\\\"$ctrl.state.migrationInProgress\\\">Migration in progress...</span>\\n </button>\\n <button\\n class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"$ctrl.duplicateStack()\\\"\\n ng-disabled=\\\"!$ctrl.isFormValidForDuplication() || $ctrl.state.duplicationInProgress || $ctrl.state.migrationInProgress\\\"\\n style=\\\"margin-top: 7px; margin-left: 0\\\"\\n button-spinner=\\\"$ctrl.state.duplicationInProgress\\\"\\n >\\n <span ng-hide=\\\"$ctrl.state.duplicationInProgress\\\">\\n <pr-icon icon=\\\"'copy'\\\" class-name=\\\"'space-right'\\\"></pr-icon>\\n Duplicate\\n </span>\\n <span ng-show=\\\"$ctrl.state.duplicationInProgress\\\">Duplication in progress...</span>\\n </button>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <div ng-if=\\\"$ctrl.yamlError && $ctrl.isEndpointSelected()\\\">\\n <span class=\\\"text-danger small\\\">{{ $ctrl.yamlError }}</span>\\n </div>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/stack-duplication-form/stack-duplication-form.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<i aria-hidden=\\\"true\\\" ng-class=\\\"['status-indicator', { ok: $ctrl.ok }]\\\"></i>\\n\";;\nvar path = 'app/portainer/components/status-indicator/status-indicator.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"mt-6\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"sliders\\\" title-text=\\\"User theme\\\"></rd-widget-header>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\">\\n <box-selector radio-name=\\\"'theme'\\\" value=\\\"$ctrl.state.themeColor\\\" options=\\\"$ctrl.state.availableThemes\\\" on-change=\\\"($ctrl.setThemeColor)\\\"></box-selector>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/components/theme/theme-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> Azure configuration </div>\\n <!-- applicationId-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"azure_credential_appid\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Application ID</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"azure_credential_appid\\\" ng-model=\\\"$ctrl.applicationId\\\" placeholder=\\\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\\\" required />\\n </div>\\n </div>\\n <!-- !applicationId-input -->\\n <!-- tenantId-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"azure_credential_tenantid\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Tenant ID</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"azure_credential_tenantid\\\" ng-model=\\\"$ctrl.tenantId\\\" placeholder=\\\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\\\" required />\\n </div>\\n </div>\\n <!-- !tenantId-input -->\\n <!-- authenticationkey-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"azure_credential_authkey\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Authentication key</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n name=\\\"azure_credential_authkey\\\"\\n ng-model=\\\"$ctrl.authenticationKey\\\"\\n placeholder=\\\"cOrXoK/1D35w8YQ8nH1/8ZGwzz45JIYD5jxHKXEQknk=\\\"\\n required\\n />\\n </div>\\n </div>\\n <!-- !authenticationkey-input -->\\n</div>\\n\";;\nvar path = 'app/portainer/environments/azure-endpoint-config/azureEndpointConfig.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\"> Provider </div>\\n\\n<box-selector value=\\\"$ctrl.value\\\" options=\\\"$ctrl.options\\\" on-change=\\\"($ctrl.onChange)\\\" radio-name=\\\"'oauth_provider'\\\"></box-selector>\\n\";;\nvar path = 'app/portainer/oauth/components/oauth-providers-selector/oauth-providers-selector.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form name=\\\"oauthSettingsForm\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Single Sign-On </div>\\n\\n <!-- SSO -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label=\\\"'Use SSO'\\\"\\n tooltip=\\\"'When using SSO the OAuth provider is not forced to prompt for credentials.'\\\"\\n name=\\\"'use-sso'\\\"\\n checked=\\\"$ctrl.settings.SSO\\\"\\n on-change=\\\"($ctrl.updateSSO)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n <!-- !SSO -->\\n\\n <!-- HideInternalAuth -->\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.SSO\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label=\\\"'Hide internal authentication prompt'\\\"\\n name=\\\"'hide-internal-auth'\\\"\\n feature-id=\\\"$ctrl.limitedFeature\\\"\\n checked=\\\"$ctrl.settings.HideInternalAuth\\\"\\n on-change=\\\"($ctrl.onChangeHideInternalAuth)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n <!-- !HideInternalAuth -->\\n\\n <auto-user-provision-toggle ng-model=\\\"$ctrl.settings.OAuthAutoCreateUsers\\\">\\n <field-description>\\n With automatic user provisioning enabled, Portainer will create user(s) automatically with the standard user role. If disabled, users must be created beforehand in Portainer\\n in order to login.\\n </field-description>\\n </auto-user-provision-toggle>\\n\\n <div ng-if=\\\"$ctrl.settings.OAuthAutoCreateUsers\\\">\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\">\\n <p>The users created by the automatic provisioning feature can be added to a default team on creation.</p>\\n <p>\\n By assigning newly created users to a team, they will be able to access the environments associated to that team. This setting is optional and if not set, newly created\\n users won't be able to access any environments.\\n </p>\\n </span>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Default team</label>\\n <span class=\\\"small text-muted\\\" style=\\\"margin-left: 20px\\\" ng-if=\\\"$ctrl.teams.length === 0\\\">\\n You have not yet created any teams. Head over to the <a ui-sref=\\\"portainer.teams\\\">Teams view</a> to manage teams.\\n </span>\\n\\n <div class=\\\"col-sm-9\\\" ng-if=\\\"$ctrl.teams.length > 0\\\">\\n <div class=\\\"col-sm-12 small text-muted\\\">\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n The default team option will be disabled when automatic team membership is enabled\\n </p>\\n </div>\\n <div class=\\\"col-xs-12 vertical-center\\\">\\n <select\\n class=\\\"form-control\\\"\\n ng-disabled=\\\"$ctrl.settings.OAuthAutoMapTeamMemberships\\\"\\n ng-model=\\\"$ctrl.settings.DefaultTeamID\\\"\\n ng-options=\\\"team.Id as team.Name for team in $ctrl.teams\\\"\\n >\\n <option value=\\\"\\\">No team</option>\\n </select>\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-md btn-danger\\\"\\n ng-click=\\\"$ctrl.settings.DefaultTeamID = null\\\"\\n ng-disabled=\\\"!$ctrl.settings.DefaultTeamID || $ctrl.settings.OAuthAutoMapTeamMemberships\\\"\\n ng-if=\\\"$ctrl.teams.length > 0\\\"\\n >\\n <pr-icon icon=\\\"'x'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> Team membership </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 text-muted small\\\"> Automatic team membership synchronizes the team membership based on a custom claim in the token from the OAuth provider. </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label=\\\"'Automatic team membership'\\\"\\n name=\\\"'tls'\\\"\\n feature-id=\\\"$ctrl.limitedFeature\\\"\\n checked=\\\"$ctrl.settings.OAuthAutoMapTeamMemberships\\\"\\n on-change=\\\"($ctrl.onToggleAutoTeamMembership)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n\\n <div ng-if=\\\"$ctrl.settings.OAuthAutoMapTeamMemberships\\\">\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Claim name\\n <portainer-tooltip message=\\\"'The OpenID Connect UserInfo Claim name that contains the team identifier the user belongs to.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <div class=\\\"col-xs-11 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"oauth_token_claim_name\\\" ng-model=\\\"$ctrl.settings.TeamMemberships.OAuthClaimName\\\" placeholder=\\\"groups\\\" />\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Statically assigned teams </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <span class=\\\"label label-default interactive vertical-center ml-4\\\" ng-click=\\\"$ctrl.addTeamMembershipMapping()\\\">\\n <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n add team mapping\\n </span>\\n\\n <div class=\\\"col-sm-12 form-inline\\\" ng-repeat=\\\"mapping in $ctrl.settings.TeamMemberships.OAuthClaimMappings\\\" style=\\\"margin-top: 0.75em\\\">\\n <div class=\\\"input-group input-group-sm col-sm-5\\\">\\n <span class=\\\"input-group-addon\\\">claim value regex</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"mapping.ClaimValRegex\\\" />\\n </div>\\n <span style=\\\"margin: 0px 0.5em\\\">maps to</span>\\n <div class=\\\"input-group input-group-sm col-sm-3 col-lg-4\\\">\\n <span class=\\\"input-group-addon\\\">team</span>\\n <select\\n class=\\\"form-control\\\"\\n ng-init=\\\"mapping.Team = mapping.Team || $ctrl.settings.DefaultTeamID\\\"\\n ng-model=\\\"mapping.Team\\\"\\n ng-options=\\\"team.Id as team.Name for team in $ctrl.teams\\\"\\n >\\n <option selected value=\\\"\\\">Select a team</option>\\n </select>\\n </div>\\n <button type=\\\"button\\\" class=\\\"btn btn-md btn-danger\\\" ng-click=\\\"$ctrl.removeTeamMembership($index)\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n\\n <div>\\n <div class=\\\"small text-warning vertical-center mt-1\\\" ng-show=\\\"!mapping.ClaimValRegex\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n Claim value regex is required.\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 text-muted small\\\" style=\\\"margin-bottom: 0.5em\\\"> The default team will be assigned when the user does not belong to any other team </div>\\n <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Default team</label>\\n <span class=\\\"small text-muted\\\" style=\\\"margin-left: 20px\\\" ng-if=\\\"$ctrl.teams.length === 0\\\">\\n You have not yet created any teams. Head over to the <a ui-sref=\\\"portainer.teams\\\">Teams view</a> to manage teams.\\n </span>\\n\\n <div class=\\\"col-sm-9\\\" ng-if=\\\"$ctrl.teams.length > 0\\\">\\n <div class=\\\"col-xs-11\\\">\\n <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.settings.DefaultTeamID\\\" ng-options=\\\"team.Id as team.Name for team in $ctrl.teams\\\">\\n <option value=\\\"\\\">No team</option>\\n </select>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <oauth-providers-selector on-change=\\\"($ctrl.onSelectProvider)\\\" value=\\\"$ctrl.state.provider\\\"></oauth-providers-selector>\\n\\n <div ng-if=\\\"$ctrl.state.provider == 'custom' || $ctrl.state.overrideConfiguration\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\">OAuth Configuration</div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_client_id\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n {{ $ctrl.state.provider == 'microsoft' ? 'Application ID' : 'Client ID' }}\\n <portainer-tooltip message=\\\"'Public identifier of the OAuth application'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n id=\\\"oauth_client_id\\\"\\n ng-model=\\\"$ctrl.settings.ClientID\\\"\\n placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_client_secret\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n {{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }}\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_client_secret\\\"\\n ng-model=\\\"$ctrl.settings.ClientSecret\\\"\\n placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n autocomplete=\\\"new-password\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_authorization_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Authorization URL\\n <portainer-tooltip message=\\\"'URL used to authenticate against the OAuth provider. Will redirect the user to the OAuth provider login view'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_authorization_uri\\\"\\n ng-model=\\\"$ctrl.settings.AuthorizationURI\\\"\\n placeholder=\\\"https://example.com/oauth/authorize\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_access_token_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Access token URL\\n <portainer-tooltip message=\\\"'URL used by Portainer to exchange a valid OAuth authentication code for an access token'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_access_token_uri\\\"\\n ng-model=\\\"$ctrl.settings.AccessTokenURI\\\"\\n placeholder=\\\"https://example.com/oauth/token\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_resource_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Resource URL\\n <portainer-tooltip message=\\\"'URL used by Portainer to retrieve information about the authenticated user'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_resource_uri\\\"\\n ng-model=\\\"$ctrl.settings.ResourceURI\\\"\\n placeholder=\\\"https://example.com/user\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_redirect_uri\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Redirect URL\\n <portainer-tooltip\\n message=\\\"'URL used by the OAuth provider to redirect the user after successful authentication. Should be set to your Portainer instance URL'\\\"\\n ></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_redirect_uri\\\"\\n ng-model=\\\"$ctrl.settings.RedirectURI\\\"\\n placeholder=\\\"http://yourportainer.com/\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_logout_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Logout URL\\n <portainer-tooltip\\n message=\\\"'URL used by Portainer to redirect the user to the OAuth provider in order to log the user out of the identity provider session.'\\\"\\n ></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_logout_url\\\"\\n ng-model=\\\"$ctrl.settings.LogoutURI\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_user_identifier\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n User identifier\\n <portainer-tooltip\\n message=\\\"'Identifier that will be used by Portainer to create an account for the authenticated user. Retrieved from the resource server specified via the Resource URL field'\\\"\\n ></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_user_identifier\\\"\\n ng-model=\\\"$ctrl.settings.UserIdentifier\\\"\\n placeholder=\\\"id\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_scopes\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Scopes\\n <portainer-tooltip\\n message=\\\"'Scopes required by the OAuth provider to retrieve information about the authenticated user. Refer to your OAuth provider documentation for more information about this'\\\"\\n ></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_scopes\\\"\\n ng-model=\\\"$ctrl.settings.Scopes\\\"\\n placeholder=\\\"id,email,name\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n />\\n </div>\\n </div>\\n\\n <oauth-auth-style value=\\\"$ctrl.settings.AuthStyle\\\" on-change=\\\"($ctrl.onChangeAuthStyle)\\\"></oauth-auth-style>\\n <save-auth-settings-button\\n on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n save-button-disabled=\\\"!$ctrl.isOAuthTeamMembershipFormValid() || oauthSettingsForm.$invalid\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeature\\\"\\n limited-feature-class=\\\"$ctrl.limitedFeatureClass\\\"\\n class-name=\\\"'oauth-save-settings-button'\\\"\\n ></save-auth-settings-button>\\n </div>\\n\\n <div ng-if=\\\"$ctrl.state.provider != 'custom'\\\" class=\\\"limited-be be-indicator-container\\\">\\n <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n <div class=\\\"limited-be-content\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\">OAuth Configuration</div>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.provider == 'microsoft'\\\">\\n <label for=\\\"oauth_microsoft_tenant_id\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Tenant ID\\n <portainer-tooltip message=\\\"'ID of the Azure Directory you wish to authenticate against. Also known as the Directory ID'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_microsoft_tenant_id\\\"\\n placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n ng-model=\\\"$ctrl.state.microsoftTenantID\\\"\\n ng-change=\\\"$ctrl.onMicrosoftTenantIDChange()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeature}}\\\"\\n limited-feature-class=\\\"limited-be\\\"\\n limited-feature-disabled\\n limited-feature-tabindex=\\\"-1\\\"\\n required\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_client_id\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n {{ $ctrl.state.provider == 'microsoft' ? 'Application ID' : 'Client ID' }}\\n <portainer-tooltip message=\\\"'Public identifier of the OAuth application'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n id=\\\"oauth_client_id\\\"\\n ng-model=\\\"$ctrl.settings.ClientID\\\"\\n placeholder=\\\"xxxxxxxxxxxxxxxxxxxx\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"oauth_client_secret\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n {{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }}\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n id=\\\"oauth_client_secret\\\"\\n ng-model=\\\"$ctrl.settings.ClientSecret\\\"\\n placeholder=\\\"*******\\\"\\n autocomplete=\\\"new-password\\\"\\n ng-class=\\\"['form-control', { 'limited-be': $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' }]\\\"\\n ng-disabled=\\\"$ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom'\\\"\\n tabindex=\\\"{{ $ctrl.isLimitedToBE && $ctrl.state.provider !== 'custom' ? -1 : 0 }}\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"!$ctrl.state.overrideConfiguration\\\" ng-click=\\\"$ctrl.state.overrideConfiguration = true;\\\">\\n <pr-icon icon=\\\"'wrench'\\\"></pr-icon>\\n Override default configuration\\n </a>\\n <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"$ctrl.state.overrideConfiguration\\\" ng-click=\\\"$ctrl.useDefaultProviderConfiguration($ctrl.state.provider)\\\">\\n <pr-icon icon=\\\"'settings'\\\"></pr-icon>\\n Use default configuration\\n </a>\\n </div>\\n </div>\\n <save-auth-settings-button\\n on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n save-button-disabled=\\\"!$ctrl.isOAuthTeamMembershipFormValid() || oauthSettingsForm.$invalid\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeature\\\"\\n limited-feature-class=\\\"$ctrl.limitedFeatureClass\\\"\\n class-name=\\\"'oauth-save-settings-button'\\\"\\n ></save-auth-settings-button>\\n </div>\\n </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/oauth/components/oauth-settings/oauth-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable access-viewer-datatable\\\">\\n <div class=\\\"toolBar vertical-center pl-0 pr-0\\\">\\n <div class=\\\"toolBarTitle vertical-center\\\">\\n <div>\\n <div class=\\\"form-section-title mb-1\\\">Access</div>\\n <div class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" size=\\\"'sm'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n <span class=\\\"small text-muted\\\"> Effective role for each environment will be displayed for the selected user </span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"searchBar vertical-center\\\">\\n <pr-icon icon=\\\"'search'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n <input\\n type=\\\"text\\\"\\n class=\\\"searchInput ml-1\\\"\\n ng-model=\\\"$ctrl.state.textFilter\\\"\\n ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n placeholder=\\\"Search...\\\"\\n ng-model-options=\\\"{ debounce: 300 }\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"table-responsive\\\">\\n <table class=\\\"table-hover nowrap-cells table\\\">\\n <thead>\\n <tr>\\n <th>\\n <table-column-header\\n col-title=\\\"'Environment'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'EndpointName'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'EndpointName' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('EndpointName')\\\"\\n ></table-column-header>\\n </th>\\n <th>\\n <table-column-header\\n col-title=\\\"'Role'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'RoleName'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'RoleName' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('RoleName')\\\"\\n ></table-column-header>\\n </th>\\n <th>Access origin</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit)) track by $index\\\"\\n >\\n <td>{{ item.EndpointName }}</td>\\n <td>{{ item.RoleName }}</td>\\n <td\\n >{{ item.TeamName ? 'Team' : 'User' }} <code ng-if=\\\"item.TeamName\\\">{{ item.TeamName }}</code> access defined on {{ item.AccessLocation }}\\n <code ng-if=\\\"item.GroupName\\\">{{ item.GroupName }}</code>\\n <a ng-if=\\\"!item.GroupName && $ctrl.isAdmin\\\" ui-sref=\\\"portainer.endpoints.endpoint.access({id: item.EndpointId})\\\"><pr-icon icon=\\\"'users'\\\"></pr-icon> Manage access </a>\\n <a ng-if=\\\"item.GroupName && $ctrl.isAdmin\\\" ui-sref=\\\"portainer.groups.group.access({id: item.GroupId})\\\"><pr-icon icon=\\\"'users'\\\"></pr-icon> Manage access </a>\\n </td>\\n </tr>\\n <tr ng-if=\\\"!$ctrl.dataset\\\">\\n <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Select a user to show associated access and role</td>\\n </tr>\\n <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">The selected user does not have access to any environment(s)</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n <div class=\\\"paginationControls\\\">\\n <form class=\\\"form-inline\\\">\\n <span class=\\\"limitSelector\\\">\\n <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n <option value=\\\"0\\\">All</option>\\n <option value=\\\"10\\\">10</option>\\n <option value=\\\"25\\\">25</option>\\n <option value=\\\"50\\\">50</option>\\n <option value=\\\"100\\\">100</option>\\n </select>\\n </span>\\n <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n </form>\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/components/access-viewer/access-viewer-datatable/access-viewer-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12\\\" style=\\\"margin-bottom: 0px\\\">\\n <div class=\\\"be-indicator-container limited-be\\\">\\n <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n <div class=\\\"limited-be-content\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"user-x\\\">\\n <header-title> Effective access viewer </header-title>\\n </rd-widget-header>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> User </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"small text-muted\\\" ng-if=\\\"$ctrl.users.length === 0\\\"> No user available </span>\\n\\n <por-select ng-if=\\\"$ctrl.users.length > 0\\\" value=\\\"$ctrl.selectedUserId\\\" options=\\\"$ctrl.users\\\" on-change=\\\"($ctrl.onUserSelect)\\\" placeholder=\\\"'Select a user'\\\">\\n </por-select>\\n </div>\\n </div>\\n <access-viewer-datatable table-key=\\\"access_viewer\\\" dataset=\\\"$ctrl.userRoles\\\" order-by=\\\"EndpointName\\\" is-admin=\\\"$ctrl.isAdmin\\\"> </access-viewer-datatable>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/components/access-viewer/access-viewer.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar vertical-center\\\">\\n <div class=\\\"toolBarTitle vertical-center\\\">\\n <div class=\\\"widget-icon space-right\\\">\\n <pr-icon icon=\\\"'file-code'\\\"></pr-icon>\\n </div>\\n {{ $ctrl.titleText }}\\n </div>\\n <div class=\\\"searchBar vertical-center\\\">\\n <pr-icon icon=\\\"'search'\\\" class=\\\"vertical-center\\\"></pr-icon>\\n <input\\n type=\\\"text\\\"\\n class=\\\"searchInput ml-1\\\"\\n ng-model=\\\"$ctrl.state.textFilter\\\"\\n ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n placeholder=\\\"Search...\\\"\\n auto-focus\\n ng-model-options=\\\"{ debounce: 300 }\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"table-responsive\\\">\\n <table class=\\\"table-hover nowrap-cells table\\\">\\n <thead>\\n <tr>\\n <th>\\n <table-column-header\\n col-title=\\\"'Name'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n ></table-column-header>\\n </th>\\n <th>\\n <table-column-header\\n col-title=\\\"'Description'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'Description'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'Description' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('Description')\\\"\\n ></table-column-header>\\n </th>\\n <th class=\\\"be-visual-indicator-col\\\"></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n ng-class=\\\"{ active: item.Checked }\\\"\\n >\\n <td>{{ item.Name }}</td>\\n <td>{{ item.Description }}</td>\\n <td class=\\\"be-visual-indicator-col\\\" ng-switch on=\\\"$ctrl.isDefaultItem(item)\\\">\\n <span ng-switch-when=\\\"false\\\">\\n <be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator>\\n </span>\\n <b ng-switch-when=\\\"true\\\">Default</b>\\n </td>\\n </tr>\\n <tr ng-if=\\\"!$ctrl.dataset\\\">\\n <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n </tr>\\n <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">No role available.</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n <div class=\\\"infoBar\\\" ng-if=\\\"$ctrl.state.selectedItemCount !== 0\\\"> {{ $ctrl.state.selectedItemCount }} item(s) selected </div>\\n <div class=\\\"paginationControls\\\">\\n <form class=\\\"form-inline\\\">\\n <span class=\\\"limitSelector\\\">\\n <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n <option value=\\\"0\\\">All</option>\\n <option value=\\\"10\\\">10</option>\\n <option value=\\\"25\\\">25</option>\\n <option value=\\\"50\\\">50</option>\\n <option value=\\\"100\\\">100</option>\\n </select>\\n </span>\\n <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n </form>\\n </div>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/components/roles-datatable/roles-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Roles'\\\" breadcrumbs=\\\"['Role management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <roles-datatable title-text=\\\"Roles\\\" dataset=\\\"$ctrl.roles\\\" table-key=\\\"roles\\\"></roles-datatable>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n <access-viewer> </access-viewer>\\n</div>\\n\";;\nvar path = 'app/portainer/rbac/views/roles/roles.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create registry'\\\" breadcrumbs=\\\"[{label:'Registries', link:'portainer.registries'}, 'Add registry']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Registry provider </div>\\n\\n <box-selector radio-name=\\\"'availableRegistry'\\\" value=\\\"$ctrl.state.registryValue\\\" options=\\\"$ctrl.state.availableRegistry\\\" on-change=\\\"($ctrl.setRegistry)\\\"></box-selector>\\n\\n <registry-form-quay\\n ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.QUAY\\\"\\n model=\\\"$ctrl.model\\\"\\n form-action=\\\"$ctrl.createRegistry\\\"\\n form-action-label=\\\"Add registry\\\"\\n action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n ></registry-form-quay>\\n\\n <registry-form-azure\\n ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.AZURE\\\"\\n model=\\\"$ctrl.model\\\"\\n form-action=\\\"$ctrl.createRegistry\\\"\\n form-action-label=\\\"Add registry\\\"\\n action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n ></registry-form-azure>\\n\\n <registry-form-custom\\n ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.CUSTOM\\\"\\n model=\\\"$ctrl.model\\\"\\n form-action=\\\"$ctrl.createRegistry\\\"\\n form-action-label=\\\"Add registry\\\"\\n action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n ></registry-form-custom>\\n\\n <registry-form-ecr\\n ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.ECR\\\"\\n model=\\\"$ctrl.model\\\"\\n form-action=\\\"$ctrl.createRegistry\\\"\\n form-action-label=\\\"Add registry\\\"\\n action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n ></registry-form-ecr>\\n\\n <registry-form-proget\\n ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.PROGET\\\"\\n model=\\\"$ctrl.model\\\"\\n form-action=\\\"$ctrl.createRegistry\\\"\\n form-action-label=\\\"Add registry\\\"\\n action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n ></registry-form-proget>\\n\\n <registry-form-gitlab\\n ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.GITLAB\\\"\\n model=\\\"$ctrl.model\\\"\\n retrieve-registries=\\\"$ctrl.retrieveGitlabRegistries\\\"\\n create-registries=\\\"$ctrl.createGitlabRegistries\\\"\\n projects=\\\"$ctrl.gitlabProjects\\\"\\n state=\\\"$ctrl.state\\\"\\n action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n reset-defaults=\\\"$ctrl.useDefaultGitlabConfiguration\\\"\\n ></registry-form-gitlab>\\n <registry-form-dockerhub\\n ng-if=\\\"$ctrl.model.Type === $ctrl.RegistryTypes.DOCKERHUB\\\"\\n model=\\\"$ctrl.model\\\"\\n form-action=\\\"$ctrl.createRegistry\\\"\\n form-action-label=\\\"Add registry\\\"\\n action-in-progress=\\\"$ctrl.state.actionInProgress\\\"\\n name-is-used=\\\"($ctrl.nameIsUsed)\\\"\\n ></registry-form-dockerhub>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/registry-management/views/create/createRegistry.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Registry details'\\\" breadcrumbs=\\\"[{label:'Registries', link:'portainer.registries'}, $ctrl.registry.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"!$ctrl.state.loading\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"editRegistry\\\">\\n <!-- provider -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Provider</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"$ctrl.provider\\\" disabled />\\n </div>\\n </div>\\n\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"registry_name\\\"\\n name=\\\"registry_name\\\"\\n ng-model=\\\"$ctrl.registry.Name\\\"\\n placeholder=\\\"e.g. my-registry\\\"\\n ng-change=\\\"$ctrl.onChangeName()\\\"\\n required\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"$ctrl.state.nameAlreadyExists\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div>\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n A registry with the same name already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_name.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"editRegistry.registry_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- registry-url-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n <span class=\\\"required\\\">Registry URL</span>\\n <portainer-tooltip message=\\\"'URL or IP address of a Docker registry. Any protocol or trailing slash will be stripped if present.'\\\"> </portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"registry_url\\\"\\n name=\\\"registry_url\\\"\\n ng-model=\\\"$ctrl.registry.URL\\\"\\n placeholder=\\\"e.g. 10.0.0.10:5000 or myregistry.domain.tld\\\"\\n ng-disabled=\\\"$ctrl.registry.Type === $ctrl.RegistryTypes.DOCKERHUB || $ctrl.registry.Type === $ctrl.RegistryTypes.QUAY || $ctrl.registry.Type === $ctrl.RegistryTypes.GITLAB\\\"\\n required\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_url.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"editRegistry.registry_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n\\n <!-- base-url-input -->\\n <div ng-if=\\\"$ctrl.registry.Type === $ctrl.RegistryTypes.PROGET\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_base_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n <span class=\\\"required\\\">Base URL</span>\\n <portainer-tooltip message=\\\"'The base URL of the ProGet registry.'\\\"> </portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"registry_base_url\\\"\\n name=\\\"registry_base_url\\\"\\n ng-model=\\\"$ctrl.registry.BaseURL\\\"\\n placeholder=\\\"e.g. 10.0.0.10:5000 or myregistry.domain.tld\\\"\\n required\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_base_url.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"editRegistry.registry_base_url.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !registry-url-input -->\\n\\n <!-- authentication-checkbox -->\\n <div\\n class=\\\"form-group\\\"\\n ng-if=\\\"\\n $ctrl.registry.Type !== $ctrl.RegistryTypes.DOCKERHUB &&\\n $ctrl.registry.Type !== $ctrl.RegistryTypes.QUAY &&\\n $ctrl.registry.Type !== $ctrl.RegistryTypes.PROGET &&\\n $ctrl.registry.Type !== $ctrl.RegistryTypes.AZURE &&\\n $ctrl.registry.Type !== $ctrl.RegistryTypes.GITLAB\\n \\\"\\n >\\n <label for=\\\"registry_auth\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Authentication\\n <portainer-tooltip message=\\\"'Enable this option if you need to specify credentials to connect to this registry.'\\\"> </portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <por-switch-field checked=\\\"$ctrl.registry.Authentication\\\" on-change=\\\"($ctrl.toggleAuthentication)\\\" switch-values=\\\"{on:'Yes',off:'No'}\\\"></por-switch-field>\\n </div>\\n </div>\\n <!-- !authentication-checkbox -->\\n\\n <!-- authentication-credentials -->\\n <div ng-if=\\\"$ctrl.registry.Authentication\\\">\\n <!-- credentials-user -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"credentials_username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n {{ $ctrl.registry.Type === $ctrl.RegistryTypes.ECR ? 'AWS Access Key' : 'Username' }}\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"credentials_username\\\" name=\\\"credentials_username\\\" ng-model=\\\"$ctrl.registry.Username\\\" required />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.credentials_username.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"editRegistry.credentials_username.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n <!-- !credentials-user -->\\n <!-- credentials-password -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"credentials_password\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n {{ $ctrl.passwordLabel() }}\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n id=\\\"credentials_password\\\"\\n name=\\\"credentials_password\\\"\\n placeholder=\\\"*******\\\"\\n ng-model=\\\"$ctrl.Password\\\"\\n autocomplete=\\\"off\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.credentials_password.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"editRegistry.credentials_password.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n <!-- region -->\\n <div ng-if=\\\"$ctrl.registry.Type == $ctrl.RegistryTypes.ECR\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"registry_region\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Region</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"registry_region\\\" name=\\\"registry_region\\\" ng-model=\\\"$ctrl.registry.Ecr.Region\\\" placeholder=\\\"us-west-1\\\" required />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.registry_region.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"editRegistry.registry_region.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !region -->\\n <!-- !credentials-password -->\\n </div>\\n <!-- !authentication-credentials -->\\n\\n <div ng-if=\\\"$ctrl.registry.Type == $ctrl.RegistryTypes.QUAY\\\">\\n <!-- organisation-checkbox -->\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Use organization registry </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <por-switch-field\\n checked=\\\"$ctrl.registry.Quay.UseOrganisation\\\"\\n on-change=\\\"($ctrl.toggleQuayUseOrganisation)\\\"\\n switch-values=\\\"{on:'Yes',off:'No'}\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n <!-- !organisation-checkbox -->\\n <div ng-if=\\\"$ctrl.registry.Quay.UseOrganisation\\\">\\n <!-- organisation_name -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"organisation_name\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Organization name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"organisation_name\\\" name=\\\"organisation_name\\\" ng-model=\\\"$ctrl.registry.Quay.OrganisationName\\\" required />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"editRegistry.organisation_name.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"editRegistry.organisation_name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n </div>\\n </div>\\n </div>\\n <!-- !organisation_name -->\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"$ctrl.isUpdateButtonDisabled() || editRegistry.$invalid\\\"\\n ng-click=\\\"$ctrl.updateRegistry()\\\"\\n button-spinner=\\\"$ctrl.state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"$ctrl.state.actionInProgress\\\">Update registry</span>\\n <span ng-show=\\\"$ctrl.state.actionInProgress\\\">Updating registry...</span>\\n </button>\\n <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.registries\\\">Cancel</a>\\n </div>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/registry-management/views/edit/registry.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Registries'\\\" breadcrumbs=\\\"['Registry management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<information-panel title-text=\\\"Information\\\">\\n <span class=\\\"small text-muted\\\"> View registries via an environment to manage access for user(s) and/or team(s) </span>\\n</information-panel>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <registries-datatable\\n title-text=\\\"Registries\\\"\\n title-icon=\\\"radio\\\"\\n dataset=\\\"registries\\\"\\n table-key=\\\"registries\\\"\\n order-by=\\\"Name\\\"\\n remove-action=\\\"removeAction\\\"\\n can-browse=\\\"canBrowse\\\"\\n ></registries-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/registry-management/views/list/registries.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\"> Automatic user provisioning </div>\\n<div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\" ng-transclude=\\\"description\\\"> </span>\\n</div>\\n<div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 vertical-center\\\">\\n <label for=\\\"tls\\\" class=\\\"control-label !pt-0 text-left\\\"> Automatic user provisioning </label>\\n <label class=\\\"switch my-0 ml-6\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.ngModel\\\" />\\n <span class=\\\"slider round\\\"></span>\\n </label>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/auto-user-provision-toggle/auto-user-provision-toggle.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form class=\\\"ad-settings\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-class=\\\"limited-be\\\">\\n <div class=\\\"be-indicator-container\\\">\\n <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeatureId\\\"></be-feature-indicator></div>\\n <div class=\\\"limited-be-content\\\">\\n <auto-user-provision-toggle ng-model=\\\"$ctrl.settings.AutoCreateUsers\\\">\\n <field-description>\\n With automatic user provisioning enabled, Portainer will create user(s) automatically with standard user role and assign them to team(s) which matches to LDAP group\\n name(s). If disabled, users must be created in Portainer beforehand.\\n </field-description>\\n </auto-user-provision-toggle>\\n\\n <div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n <div class=\\\"form-group col-sm-12 text-muted small\\\">\\n When using Microsoft AD authentication, Portainer will delegate user authentication to the Domain Controller(s) configured below; if there is no connectivity, Portainer\\n will fallback to internal authentication.\\n </div>\\n </div>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> AD configuration </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 small text-muted\\\">\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n You can configure multiple AD Controllers for authentication fallback. Make sure all servers are using the same configuration (i.e. if TLS is enabled, they should all\\n use the same certificates).\\n </p>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"display: flex; flex-wrap: wrap\\\">\\n AD Controller\\n <button\\n type=\\\"button\\\"\\n class=\\\"label label-default interactive vertical-center\\\"\\n style=\\\"border: 0\\\"\\n ng-click=\\\"$ctrl.addLDAPUrl()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n Add additional server\\n </button>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <div ng-repeat=\\\"url in $ctrl.settings.URLs track by $index\\\" style=\\\"display: flex; margin-bottom: 10px\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_url\\\"\\n ng-model=\\\"$ctrl.settings.URLs[$index]\\\"\\n placeholder=\\\"e.g. 10.0.0.10:389 or myldap.domain.tld:389\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n <button\\n ng-if=\\\"$index > 0\\\"\\n class=\\\"btn btn-sm btn-danger\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"$ctrl.removeLDAPUrl($index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_username\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n Service Account\\n <portainer-tooltip message=\\\"'Account that will be used to search for users.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_username\\\"\\n ng-model=\\\"$ctrl.settings.ReaderDN\\\"\\n placeholder=\\\"reader@domain.tld\\\"\\n ng-change=\\\"$ctrl.onAccountChange($ctrl.settings.ReaderDN)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n Service Account Password\\n <portainer-tooltip message=\\\"'If you do not enter a password, Portainer will leave the current password unchanged.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_password\\\"\\n ng-model=\\\"$ctrl.settings.Password\\\"\\n placeholder=\\\"password\\\"\\n autocomplete=\\\"new-password\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n </div>\\n\\n <ldap-connectivity-check\\n ng-if=\\\"!$ctrl.settings.TLSConfig.TLS && !$ctrl.settings.StartTLS\\\"\\n settings=\\\"$ctrl.settings\\\"\\n state=\\\"$ctrl.state\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-connectivity-check>\\n\\n <ldap-settings-security\\n title=\\\"AD Connectivity Security\\\"\\n settings=\\\"$ctrl.settings\\\"\\n tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n upload-in-progress=\\\"$ctrl.state.uploadInProgress\\\"\\n on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-settings-security>\\n\\n <ldap-connectivity-check\\n ng-if=\\\"$ctrl.settings.TLSConfig.TLS || $ctrl.settings.StartTLS\\\"\\n settings=\\\"$ctrl.settings\\\"\\n state=\\\"$ctrl.state\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-connectivity-check>\\n\\n <ldap-user-search\\n style=\\\"margin-top: 5px\\\"\\n show-username-format=\\\"true\\\"\\n settings=\\\"$ctrl.settings.SearchSettings\\\"\\n domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n base-filter=\\\"(objectClass=user)\\\"\\n on-search-click=\\\"($ctrl.searchUsers)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-user-search>\\n\\n <ldap-group-search\\n style=\\\"margin-top: 5px\\\"\\n settings=\\\"$ctrl.settings.GroupSearchSettings\\\"\\n domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n base-filter=\\\"(objectClass=group)\\\"\\n on-search-click=\\\"($ctrl.searchGroups)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-group-search>\\n\\n <ldap-custom-admin-group\\n style=\\\"margin-top: 5px\\\"\\n settings=\\\"$ctrl.settings\\\"\\n on-search-click=\\\"($ctrl.onSearchAdminGroupsClick)\\\"\\n selected-admin-groups=\\\"$ctrl.selectedAdminGroups\\\"\\n default-admin-group-search-filter=\\\"'(objectClass=groupOfNames)'\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n is-limited-feature-self-contained=\\\"false\\\"\\n ></ldap-custom-admin-group>\\n\\n <ldap-settings-test-login settings=\\\"$ctrl.settings\\\" limited-feature-id=\\\"$ctrl.limitedFeatureId\\\" is-limited-feature-self-contained=\\\"false\\\"></ldap-settings-test-login>\\n <save-auth-settings-button\\n on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n save-button-disabled=\\\"($ctrl.isSaveSettingButtonDisabled())\\\"\\n ></save-auth-settings-button>\\n </div>\\n </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ad-settings/ad-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\">\\n <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 col-lg-2 control-label vertical-center text-left\\\">\\n Connectivity check\\n <pr-icon icon=\\\"'check'\\\" mode=\\\"'success'\\\" ng-if=\\\"$ctrl.state.successfulConnectivityCheck\\\"></pr-icon>\\n <pr-icon icon=\\\"'x'\\\" mode=\\\"'danger'\\\" ng-if=\\\"$ctrl.state.failedConnectivityCheck\\\"></pr-icon>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"($ctrl.state.connectivityCheckInProgress) || (!$ctrl.settings.URLs.length) || ((!$ctrl.settings.ReaderDN || !$ctrl.settings.Password) && !$ctrl.settings.AnonymousMode)\\\"\\n ng-click=\\\"$ctrl.connectivityCheck()\\\"\\n button-spinner=\\\"$ctrl.state.connectivityCheckInProgress\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <span ng-hide=\\\"$ctrl.state.connectivityCheckInProgress\\\">Test connectivity</span>\\n <span ng-show=\\\"$ctrl.state.connectivityCheckInProgress\\\">Testing connectivity...</span>\\n </button>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-connectivity-check/ldap-connectivity-check.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title flex items-center\\\" style=\\\"float: initial\\\">\\n Auto-populate team admins <be-feature-indicator feature=\\\"$ctrl.limitedFeatureId\\\" class=\\\"space-left\\\" ng-if=\\\"$ctrl.isLimitedFeatureSelfContained\\\"></be-feature-indicator>\\n</div>\\n\\n<rd-widget>\\n <rd-widget-body>\\n <div class=\\\"w-full pt-3\\\" ng-repeat=\\\"config in $ctrl.settings.AdminGroupSearchSettings | limitTo: (1 - $ctrl.settings.AdminGroupSearchSettings)\\\">\\n <div class=\\\"form-group mb-3\\\" ng-if=\\\"$index > 0\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\"> Extra search configuration </span>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_admin_group_basedn_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Group Base DN\\n <portainer-tooltip message=\\\"'The distinguished name of the element from which the LDAP server will search for groups.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-4\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_admin_group_basedn_{{ $index }}\\\"\\n ng-model=\\\"config.GroupBaseDN\\\"\\n placeholder=\\\"dc=ldap,dc=domain,dc=tld\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n\\n <label for=\\\"ldap_admin_group_att_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Group Membership Attribute\\n <portainer-tooltip message=\\\"'LDAP attribute which denotes the group membership.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-4\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_admin_group_att_{{ $index }}\\\"\\n ng-model=\\\"config.GroupAttribute\\\"\\n placeholder=\\\"member\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_admin_group_filter_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Group Filter\\n <portainer-tooltip message=\\\"'The LDAP search filter used to select group elements, optional.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-10 vertical-center\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_admin_group_filter_{{ $index }}\\\"\\n ng-model=\\\"config.GroupFilter\\\"\\n placeholder=\\\"(objectClass=groupOfNames)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n <button class=\\\"btn btn-md btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.onRemoveClick($index)\\\" ng-if=\\\"$index > 0\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group mt-3\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button disabled class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n Add group search configuration\\n </button>\\n </div>\\n <div class=\\\"col-sm-12 vertical-center mt-2\\\">\\n <button\\n class=\\\"btn btm-sm btn-primary !ml-0\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"$ctrl.search()\\\"\\n limited-feature-dir=\\\"{{ $ctrl.limitedFeatureId }}\\\"\\n limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n Fetch Admin Group(s)\\n </button>\\n <span ng-if=\\\"$ctrl.groups && $ctrl.groups.length === 0\\\" class=\\\"vertical-center ml-6\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n No groups found\\n </span>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 vertical-center\\\">\\n <label for=\\\"admin-auto-populate\\\" class=\\\"control-label text-muted !pt-0 text-left\\\" ng-class=\\\"{ 'text-muted': !$ctrl.enableAssignAdminGroup }\\\">\\n Assign admin rights to group(s)\\n </label>\\n <label class=\\\"switch my-0 ml-7\\\" ng-class=\\\"{ 'business limited': $ctrl.isLimitedFeatureSelfContained }\\\">\\n <input id=\\\"admin-auto-populate\\\" ng-disabled=\\\"!$ctrl.enableAssignAdminGroup\\\" name=\\\"admin-auto-populate\\\" type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.AdminAutoPopulate\\\" />\\n <span class=\\\"slider round before:content-['']\\\"></span>\\n </label>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.AdminAutoPopulate && $ctrl.groups\\\">\\n <label for=\\\"group-access\\\" class=\\\"control-label col-sm-2 text-left\\\"> Select Group(s) </label>\\n <div class=\\\"col-sm-8\\\">\\n <por-select\\n data-cy=\\\"'group-access-selector'\\\"\\n input-id=\\\"'group-access'\\\"\\n value=\\\"$ctrl.selectedAdminGroups\\\"\\n on-change=\\\"($ctrl.onAdminGroupChange)\\\"\\n options=\\\"$ctrl.groups\\\"\\n placeholder=\\\"'Select one or more groups'\\\"\\n is-multi=\\\"true\\\"\\n >\\n </por-select>\\n </div>\\n </div>\\n </rd-widget-body>\\n</rd-widget>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> Group search configurations </div>\\n\\n<rd-widget ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\" style=\\\"display: block; margin-bottom: 10px\\\">\\n <rd-widget-body>\\n <div class=\\\"form-group\\\" ng-if=\\\"$index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\"> Extra search configuration </span>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_group_basedn_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Group Base DN\\n <portainer-tooltip message=\\\"'The distinguished name of the element from which the LDAP server will search for groups.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-4\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_group_basedn_{{ $index }}\\\" ng-model=\\\"config.GroupBaseDN\\\" placeholder=\\\"dc=ldap,dc=domain,dc=tld\\\" />\\n </div>\\n\\n <label for=\\\"ldap_group_att_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Group Membership Attribute\\n <portainer-tooltip message=\\\"'LDAP attribute which denotes the group membership.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-4\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_group_att_{{ $index }}\\\" ng-model=\\\"config.GroupAttribute\\\" placeholder=\\\"member\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_group_filter_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Group Filter\\n <portainer-tooltip message=\\\"'The LDAP search filter used to select group elements, optional.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-10 vertical-center\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_group_filter_{{ $index }}\\\" ng-model=\\\"config.GroupFilter\\\" placeholder=\\\"(objectClass=account)\\\" />\\n <button class=\\\"btn btn-md btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.onRemoveClick($index)\\\" ng-if=\\\"$index > 0\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 small\\\" style=\\\"color: #ffa719\\\">\\n <pr-icon icon=\\\"'briefcase'\\\" class-name=\\\"'icon icon-xs vertical-center'\\\"></pr-icon>\\n Users removal synchronize between groups and teams only available in\\n <a href=\\\"https://www.portainer.io/features?from=custom-login-banner\\\" target=\\\"_blank\\\">business edition.</a>\\n <portainer-tooltip\\n class=\\\"text-muted align-bottom\\\"\\n message=\\\"'Groups allows users to automatically be added to Portainer teams. However, automatically removing users from teams to keep it fully in sync is available in the Business Edition.'\\\"\\n ></portainer-tooltip>\\n </span>\\n </div>\\n </rd-widget-body>\\n</rd-widget>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n Add group search configuration\\n </button>\\n </div>\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n <be-teaser-button\\n feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n heading=\\\"'Display User/Group matching'\\\"\\n message=\\\"'Show the list of users and groups that match the Portainer search configurations.'\\\"\\n button-text=\\\"'Display User/Group matching'\\\"\\n button-class-name=\\\"'!ml-0'\\\"\\n ></be-teaser-button>\\n </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n <div class=\\\"form-group col-sm-12\\\">\\n <ldap-groups-datatable dataset=\\\"$ctrl.groups\\\" title-text=\\\"Groups\\\" title-icon=\\\"users\\\" table-key=\\\"ldapGroups\\\"></ldap-groups-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> User search configurations </div>\\n\\n<rd-widget ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\" style=\\\"display: block; margin-bottom: 10px\\\">\\n <rd-widget-body>\\n <div class=\\\"form-group\\\" ng-if=\\\"$index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\"> Extra search configuration </span>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_basedn_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Base DN\\n <portainer-tooltip message=\\\"'The distinguished name of the element from which the LDAP server will search for users.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-4\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_basedn_{{ $index }}\\\" ng-model=\\\"config.BaseDN\\\" placeholder=\\\"dc=ldap,dc=domain,dc=tld\\\" />\\n </div>\\n\\n <label for=\\\"ldap_username_att_{{ $index }}\\\" class=\\\"col-sm-4 col-md-3 col-lg-2 control-label text-left\\\">\\n Username attribute\\n <portainer-tooltip message=\\\"'LDAP attribute which denotes the username.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-3 col-lg-4\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_username_att_{{ $index }}\\\" ng-model=\\\"config.UserNameAttribute\\\" placeholder=\\\"uid\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_filter_{{ $index }}\\\" class=\\\"col-sm-4 col-md-2 control-label text-left\\\">\\n Filter\\n <portainer-tooltip message=\\\"'The LDAP search filter used to select user elements, optional.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8 col-md-10 vertical-center\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_filter_{{ $index }}\\\" ng-model=\\\"config.Filter\\\" placeholder=\\\"(objectClass=account)\\\" />\\n <button class=\\\"btn btn-md btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.onRemoveClick($index)\\\" ng-if=\\\"$index > 0\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n </rd-widget-body>\\n</rd-widget>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n Add user search configuration\\n </button>\\n </div>\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n <be-teaser-button\\n feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n heading=\\\"'Display Users'\\\"\\n message=\\\"'Allows you to display users from your LDAP server.'\\\"\\n button-text=\\\"'Display Users'\\\"\\n button-class-name=\\\"'!ml-0'\\\"\\n ></be-teaser-button>\\n </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n <div class=\\\"form-group col-sm-12\\\">\\n <ldap-users-datatable dataset=\\\"$ctrl.users\\\" title-text=\\\"Users\\\" title-icon=\\\"users\\\" table-key=\\\"ldapUsers\\\" order-by=\\\"\\\" reverse-order=\\\"\\\"></ldap-users-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"w-full px-5 pt-3\\\">\\n <div ng-if=\\\"$ctrl.index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n <span class=\\\"text-muted small\\\"> Extra search configuration </span>\\n <button\\n class=\\\"btn btn-sm btn-danger\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"$ctrl.onRemoveClick($ctrl.index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n </button>\\n </div>\\n\\n <ldap-settings-dn-builder\\n label=\\\"Group Search Path (optional)\\\"\\n suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n ng-model=\\\"$ctrl.config.GroupBaseDN\\\"\\n on-change=\\\"($ctrl.onChangeBaseDN)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-settings-dn-builder>\\n\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4 col-md-2 control-label text-left\\\"> Group Base DN </label>\\n <div class=\\\"col-sm-8 col-md-10\\\">\\n {{ $ctrl.config.GroupBaseDN }}\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 vertical-center\\\" style=\\\"margin-bottom: 5px\\\">\\n <label class=\\\"control-label !pt-0 text-left\\\">Groups</label>\\n <span class=\\\"label label-default interactive vertical-center\\\" style=\\\"margin-left: 10px\\\" ng-click=\\\"$ctrl.addGroup()\\\">\\n <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n add another group\\n </span>\\n </div>\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.groups.length\\\">\\n <div class=\\\"w-full px-5 pt-3\\\">\\n <div class=\\\"form-group no-margin-last-child\\\" ng-repeat=\\\"entry in $ctrl.groups\\\">\\n <div class=\\\"col-sm-4\\\">\\n <select class=\\\"form-control\\\" ng-model=\\\"entry.type\\\" ng-change=\\\"$ctrl.onGroupsChange()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n <option value=\\\"ou\\\">OU Name</option>\\n <option value=\\\"cn\\\">Folder Name</option>\\n </select>\\n </div>\\n <div class=\\\"col-sm-5\\\">\\n <input\\n class=\\\"form-control\\\"\\n ng-model=\\\"entry.value\\\"\\n ng-change=\\\"$ctrl.onGroupsChange()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n <div class=\\\"col-sm-3 text-right\\\">\\n <button\\n class=\\\"btn btn-md btn-danger\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"$ctrl.removeGroup($index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group no-margin-last-child\\\">\\n <label class=\\\"col-sm-4 col-md-2 control-label text-left\\\"> Group Filter </label>\\n <div class=\\\"col-sm-8 col-md-10\\\">\\n {{ $ctrl.config.GroupFilter }}\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> Group search configurations </div>\\n\\n<div style=\\\"margin-top: 10px\\\" ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\">\\n <ldap-group-search-item\\n config=\\\"config\\\"\\n domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n index=\\\"$index\\\"\\n base-filter=\\\"{{ $ctrl.baseFilter }}\\\"\\n on-remove-click=\\\"($ctrl.onRemoveClick)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-group-search-item>\\n</div>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button class=\\\"btn btn-sm btn-light vertical-center !ml-0\\\" ng-click=\\\"$ctrl.onAddClick()\\\" disabled>\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n Add group search configuration\\n </button>\\n </div>\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n <button class=\\\"btn btm-sm btn-primary\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.search()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n Display User/Group matching\\n </button>\\n </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n <div class=\\\"form-group col-sm-12\\\">\\n <ldap-groups-datatable dataset=\\\"$ctrl.groups\\\" title-text=\\\"Groups\\\" title-icon=\\\"users\\\" table-key=\\\"ldapGroups\\\"></ldap-groups-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar\\\">\\n <div class=\\\"toolBarTitle vertical-center\\\">\\n <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n {{ $ctrl.titleText }}\\n </div>\\n <div class=\\\"searchBar vertical-center\\\">\\n <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n <input\\n type=\\\"text\\\"\\n class=\\\"searchInput\\\"\\n ng-model=\\\"$ctrl.state.textFilter\\\"\\n ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n placeholder=\\\"Search...\\\"\\n auto-focus\\n ng-model-options=\\\"{ debounce: 300 }\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"table-responsive\\\">\\n <table class=\\\"table-hover nowrap-cells table\\\">\\n <thead>\\n <tr>\\n <th>\\n <table-column-header\\n col-title=\\\"'User Name'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n ></table-column-header>\\n </th>\\n <th>\\n <table-column-header col-title=\\\"'Groups'\\\" can-sort=\\\"false\\\"></table-column-header>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))\\\"\\n ng-class=\\\"{ active: item.Checked }\\\"\\n >\\n <td>\\n {{ item.Name }}\\n </td>\\n <td>\\n <p ng-repeat=\\\"group in item.Groups\\\" style=\\\"margin: 0\\\">{{ group }}</p>\\n </td>\\n </tr>\\n <tr ng-if=\\\"!$ctrl.dataset\\\">\\n <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n </tr>\\n <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">No groups found.</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n <div class=\\\"paginationControls\\\">\\n <form class=\\\"form-inline\\\">\\n <span class=\\\"limitSelector\\\">\\n <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n <option value=\\\"0\\\">All</option>\\n <option value=\\\"10\\\">10</option>\\n <option value=\\\"25\\\">25</option>\\n <option value=\\\"50\\\">50</option>\\n <option value=\\\"100\\\">100</option>\\n </select>\\n </span>\\n <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n </form>\\n </div>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-groups-datatable/ldap-groups-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n <div class=\\\"form-group col-sm-12 text-muted small\\\">\\n When using LDAP authentication, Portainer will delegate user authentication to a LDAP server and fallback to internal authentication if LDAP authentication fails.\\n </div>\\n</div>\\n\\n<div class=\\\"col-sm-12 form-section-title\\\"> LDAP configuration </div>\\n\\n<div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 small text-muted\\\">\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n You can configure multiple LDAP Servers for authentication fallback. Make sure all servers are using the same configuration (i.e. if TLS is enabled, they should all use the\\n same certificates).\\n </p>\\n </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n <label for=\\\"ldap_url\\\" class=\\\"col-sm-3 col-lg-2 control-label flex flex-wrap text-left\\\"> LDAP Server </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <div class=\\\"mb-3 flex\\\" ng-repeat=\\\"url in $ctrl.settings.URLs track by $index\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_url\\\" ng-model=\\\"$ctrl.settings.URLs[$index]\\\" placeholder=\\\"e.g. 10.0.0.10:389 or myldap.domain.tld:389\\\" required />\\n <button ng-if=\\\"$index > 0\\\" class=\\\"btn btn-sm btn-danger\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.removeLDAPUrl($index)\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <be-teaser-button\\n feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n heading=\\\"'Add additional server'\\\"\\n message=\\\"'Allows you to add an additional LDAP server.'\\\"\\n button-text=\\\"'Add additional server'\\\"\\n button-class-name=\\\"'!ml-0'\\\"\\n ></be-teaser-button>\\n </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n <label for=\\\"anonymous_mode\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\">\\n Anonymous mode\\n <portainer-tooltip message=\\\"'Enable this option if the server is configured for Anonymous access.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <label class=\\\"switch\\\">\\n <input type=\\\"checkbox\\\" id=\\\"anonymous_mode\\\" ng-model=\\\"$ctrl.settings.AnonymousMode\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n <span class=\\\"slider round\\\"></span>\\n </label>\\n </div>\\n</div>\\n<!-- !Anonymous mode-->\\n\\n<div ng-if=\\\"!$ctrl.settings.AnonymousMode\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_username\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Reader DN\\n <portainer-tooltip message=\\\"'Account that will be used to search for users.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"ldap_username\\\" ng-model=\\\"$ctrl.settings.ReaderDN\\\" placeholder=\\\"cn=user,dc=domain,dc=tld\\\" />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Password\\n <portainer-tooltip message=\\\"'If you do not enter a password, Portainer will leave the current password unchanged.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"ldap_password\\\" ng-model=\\\"$ctrl.settings.Password\\\" placeholder=\\\"password\\\" autocomplete=\\\"new-password\\\" />\\n </div>\\n </div>\\n</div>\\n\\n<ldap-connectivity-check\\n ng-if=\\\"!$ctrl.settings.TLSConfig.TLS && !$ctrl.settings.StartTLS\\\"\\n settings=\\\"$ctrl.settings\\\"\\n state=\\\"$ctrl.state\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n></ldap-connectivity-check>\\n\\n<ldap-settings-security\\n settings=\\\"$ctrl.settings\\\"\\n tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n upload-in-progress=\\\"$ctrl.state.uploadInProgress\\\"\\n on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n></ldap-settings-security>\\n\\n<ldap-connectivity-check\\n ng-if=\\\"$ctrl.settings.TLSConfig.TLS || $ctrl.settings.StartTLS\\\"\\n settings=\\\"$ctrl.settings\\\"\\n state=\\\"$ctrl.state\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n></ldap-connectivity-check>\\n\\n<div class=\\\"space-y-10\\\">\\n <ldap-custom-user-search\\n class=\\\"block\\\"\\n settings=\\\"$ctrl.settings.SearchSettings\\\"\\n on-search-click=\\\"($ctrl.onSearchUsersClick)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-custom-user-search>\\n\\n <ldap-custom-group-search\\n class=\\\"block\\\"\\n settings=\\\"$ctrl.settings.GroupSearchSettings\\\"\\n on-search-click=\\\"($ctrl.onSearchGroupsClick)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-custom-group-search>\\n\\n <ldap-custom-admin-group\\n class=\\\"block\\\"\\n settings=\\\"$ctrl.settings\\\"\\n on-search-click=\\\"($ctrl.onSearchAdminGroupsClick)\\\"\\n selected-admin-groups=\\\"$ctrl.selectedAdminGroups\\\"\\n default-admin-group-search-filter=\\\"'(objectClass=groupOfNames)'\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n is-limited-feature-self-contained=\\\"true\\\"\\n ></ldap-custom-admin-group>\\n\\n <ldap-settings-test-login\\n class=\\\"block\\\"\\n settings=\\\"$ctrl.settings\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n show-be-indicator-if-needed=\\\"true\\\"\\n is-limited-feature-self-contained=\\\"true\\\"\\n ></ldap-settings-test-login>\\n</div>\\n\\n<save-auth-settings-button\\n on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n save-button-disabled=\\\"!$ctrl.saveButtonDisabled()\\\"\\n limited-feature-dir=\\\"{{ $ctrl.limitedFeatureId }}\\\"\\n></save-auth-settings-button>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group ldap-dn-builder\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-bottom: 5px\\\">\\n <label class=\\\"control-label text-left\\\">{{ $ctrl.label || 'DN entries' }}</label>\\n <button\\n type=\\\"button\\\"\\n class=\\\"label label-default interactive vertical-center\\\"\\n style=\\\"margin-left: 10px; border: 0\\\"\\n ng-click=\\\"$ctrl.addEntry()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n add another entry\\n </button>\\n </div>\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.entries.length\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <div class=\\\"form-group no-margin-last-child\\\" ng-repeat=\\\"entry in $ctrl.entries\\\">\\n <div class=\\\"col-sm-4\\\">\\n <select class=\\\"form-control\\\" ng-model=\\\"entry.type\\\" ng-change=\\\"$ctrl.onEntriesChange()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n <option value=\\\"ou\\\">OU Name</option>\\n <option value=\\\"cn\\\">Folder Name</option>\\n </select>\\n </div>\\n <div class=\\\"col-sm-5\\\">\\n <input\\n class=\\\"form-control\\\"\\n ng-model=\\\"entry.value\\\"\\n ng-change=\\\"$ctrl.onEntriesChange()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n <div class=\\\"col-sm-3 text-right\\\">\\n <button\\n class=\\\"btn btn-md btn-primary\\\"\\n type=\\\"button\\\"\\n ng-disabled=\\\"$first\\\"\\n ng-click=\\\"$ctrl.moveUp($index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'arrow-up'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n <button\\n class=\\\"btn btn-md btn-primary\\\"\\n type=\\\"button\\\"\\n ng-disabled=\\\"$last\\\"\\n ng-click=\\\"$ctrl.moveDown($index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'arrow-down'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n <button\\n class=\\\"btn btn-md btn-danger\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"$ctrl.removeEntry($index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"form-group\\\">\\n <label for=\\\"group-name-input\\\" class=\\\"col-sm-4 control-label text-left\\\"> Group Name </label>\\n <div class=\\\"col-sm-7\\\" style=\\\"padding-left: 0\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"group-name-input\\\"\\n ng-model=\\\"$ctrl.groupName\\\"\\n ng-change=\\\"$ctrl.onGroupNameChange()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n <div class=\\\"col-sm-1\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-danger btn-md vertical-center\\\"\\n ng-if=\\\"$ctrl.onRemoveClick\\\"\\n ng-click=\\\"$ctrl.onRemoveClick()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n</div>\\n\\n<ldap-settings-dn-builder\\n ng-model=\\\"$ctrl.entries\\\"\\n label=\\\"Path to group\\\"\\n suffix=\\\"{{ $ctrl.suffix }}\\\"\\n on-change=\\\"($ctrl.onEntriesChange)\\\"\\n on-remove-click=\\\"($ctrl.removeGroup)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n></ldap-settings-dn-builder>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<ng-form limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-class=\\\"limited-be\\\" class=\\\"ldap-settings-openldap\\\">\\n <div class=\\\"be-indicator-container\\\">\\n <div class=\\\"limited-be-link vertical-center\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeatureId\\\"></be-feature-indicator></div>\\n <div class=\\\"limited-be-content\\\">\\n <div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n <div class=\\\"form-group col-sm-12 text-muted small\\\">\\n When using LDAP authentication, Portainer will delegate user authentication to a LDAP server and fallback to internal authentication if LDAP authentication fails.\\n </div>\\n </div>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> LDAP configuration </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 small text-muted\\\">\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n You can configure multiple LDAP Servers for authentication fallback. Make sure all servers are using the same configuration (i.e. if TLS is enabled, they should all use\\n the same certificates).\\n </p>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" style=\\\"display: flex; flex-wrap: wrap\\\">\\n LDAP Server\\n <button\\n type=\\\"button\\\"\\n class=\\\"label label-default interactive vertical-center\\\"\\n style=\\\"border: 0\\\"\\n ng-click=\\\"$ctrl.addLDAPUrl()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n Add additional server\\n </button>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <div ng-repeat=\\\"url in $ctrl.settings.URLs track by $index\\\" style=\\\"display: flex; margin-bottom: 10px\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_url\\\"\\n ng-model=\\\"$ctrl.settings.URLs[$index]\\\"\\n placeholder=\\\"e.g. 10.0.0.10:389 or myldap.domain.tld:389\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n <button\\n ng-if=\\\"$index > 0\\\"\\n class=\\\"btn btn-sm btn-danger\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"$ctrl.removeLDAPUrl($index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Anonymous mode-->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <label for=\\\"anonymous_mode\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\">\\n Anonymous mode\\n <portainer-tooltip message=\\\"'Enable this option if the server is configured for Anonymous access.'\\\"></portainer-tooltip>\\n </label>\\n\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <label class=\\\"switch\\\">\\n <input type=\\\"checkbox\\\" id=\\\"anonymous_mode\\\" ng-model=\\\"$ctrl.settings.AnonymousMode\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n <span class=\\\"slider round\\\"></span>\\n </label>\\n </div>\\n </div>\\n </div>\\n <!-- !Anonymous mode-->\\n\\n <div ng-if=\\\"!$ctrl.settings.AnonymousMode\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_username\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Reader DN\\n <portainer-tooltip message=\\\"'Account that will be used to search for users.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_username\\\"\\n ng-model=\\\"$ctrl.settings.ReaderDN\\\"\\n placeholder=\\\"cn=user,dc=domain,dc=tld\\\"\\n ng-change=\\\"$ctrl.onAccountChange($ctrl.settings.ReaderDN)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"ldap_password\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Password\\n <portainer-tooltip message=\\\"'If you do not enter a password, Portainer will leave the current password unchanged.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_password\\\"\\n ng-model=\\\"$ctrl.settings.Password\\\"\\n placeholder=\\\"password\\\"\\n autocomplete=\\\"new-password\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.AnonymousMode\\\">\\n <label for=\\\"ldap_domain_root\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Domain root </label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_domain_root\\\"\\n ng-model=\\\"$ctrl.domainSuffix\\\"\\n placeholder=\\\"dc=domain,dc=tld\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n </div>\\n\\n <ldap-connectivity-check\\n ng-if=\\\"!$ctrl.settings.TLSConfig.TLS && !$ctrl.settings.StartTLS\\\"\\n settings=\\\"$ctrl.settings\\\"\\n state=\\\"$ctrl.state\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-connectivity-check>\\n\\n <ldap-settings-security\\n title=\\\"Connectivity Security\\\"\\n settings=\\\"$ctrl.settings\\\"\\n tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n upload-in-progress=\\\"$ctrl.state.uploadInProgress\\\"\\n on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-settings-security>\\n\\n <ldap-connectivity-check\\n ng-if=\\\"$ctrl.settings.TLSConfig.TLS || $ctrl.settings.StartTLS\\\"\\n settings=\\\"$ctrl.settings\\\"\\n state=\\\"$ctrl.state\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-connectivity-check>\\n\\n <ldap-user-search\\n style=\\\"margin-top: 5px\\\"\\n settings=\\\"$ctrl.settings.SearchSettings\\\"\\n domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n base-filter=\\\"(objectClass=inetOrgPerson)\\\"\\n on-search-click=\\\"($ctrl.onSearchUsersClick)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-user-search>\\n\\n <ldap-group-search\\n style=\\\"margin-top: 5px\\\"\\n settings=\\\"$ctrl.settings.GroupSearchSettings\\\"\\n domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n base-filter=\\\"(objectClass=groupOfNames)\\\"\\n on-search-click=\\\"($ctrl.onSearchGroupsClick)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-group-search>\\n\\n <ldap-settings-test-login settings=\\\"$ctrl.settings\\\" limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"></ldap-settings-test-login>\\n <save-auth-settings-button\\n on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n save-button-disabled=\\\"!$ctrl.saveButtonDisabled()\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></save-auth-settings-button>\\n </div>\\n </div>\\n</ng-form>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\">\\n {{ $ctrl.title || 'LDAP security' }}\\n</div>\\n\\n<!-- starttls -->\\n<div class=\\\"form-group\\\" ng-if=\\\"!$ctrl.settings.TLSConfig.TLS\\\">\\n <label for=\\\"tls\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\" style=\\\"padding-top: 0\\\">\\n Use StartTLS\\n <portainer-tooltip message=\\\"'Enable this option if want to use StartTLS to secure the connection to the server. Ignored if Use TLS is selected.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <label class=\\\"switch\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.StartTLS\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n <span class=\\\"slider round\\\"></span>\\n </label>\\n </div>\\n</div>\\n<!-- !starttls -->\\n\\n<!-- tls-checkbox -->\\n<div class=\\\"form-group\\\" ng-if=\\\"!$ctrl.settings.StartTLS\\\">\\n <label for=\\\"tls\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\" style=\\\"padding-top: 0\\\">\\n Use TLS\\n <portainer-tooltip message=\\\"'Enable this option if you need to specify TLS certificates to connect to the LDAP server.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <label class=\\\"switch\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.TLSConfig.TLS\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n <span class=\\\"slider round\\\"></span>\\n </label>\\n </div>\\n</div>\\n<!-- !tls-checkbox -->\\n\\n<!-- tls-skip-verify -->\\n<div class=\\\"form-group\\\">\\n <label for=\\\"tls\\\" class=\\\"control-label col-sm-3 col-lg-2 text-left\\\" style=\\\"padding-top: 0\\\">\\n Skip verification of server certificate\\n <portainer-tooltip message=\\\"'Skip the verification of the server TLS certificate. Not recommended on unsecured networks.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <label class=\\\"switch\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"$ctrl.settings.TLSConfig.TLSSkipVerify\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\" />\\n <span class=\\\"slider round\\\"></span>\\n </label>\\n </div>\\n</div>\\n<!-- !tls-skip-verify -->\\n\\n<!-- ca-input -->\\n<div class=\\\"form-group\\\" ng-if=\\\"$ctrl.settings.TLSConfig.TLS || ($ctrl.settings.StartTLS && !$ctrl.settings.TLSConfig.TLSSkipVerify)\\\">\\n <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">TLS CA certificate</label>\\n <div class=\\\"col-sm-9 col-lg-10 vertical-center\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-sm btn-primary\\\"\\n ngf-select=\\\"$ctrl.onTlscaCertChange($file)\\\"\\n ng-model=\\\"$ctrl.tlscaCert\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n Select file\\n </button>\\n <span class=\\\"vertical-center\\\">\\n {{ $ctrl.tlscaCert.name }}\\n <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"$ctrl.tlscaCert && $ctrl.tlscaCert === $ctrl.settings.TLSConfig.TLSCACert\\\"></pr-icon>\\n <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"!$ctrl.tlscaCert\\\"></pr-icon>\\n <pr-icon icon=\\\"'loader-2'\\\" class-name=\\\"'animate-spin-slow ml-0.5'\\\" ng-if=\\\"$ctrl.uploadInProgress\\\"></pr-icon>\\n </span>\\n </div>\\n</div>\\n<!-- !ca-input -->\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-security/ldap-settings-security.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title flex items-center\\\" style=\\\"float: initial\\\">\\n Test login\\n <be-feature-indicator\\n ng-if=\\\"$ctrl.showBeIndicatorIfNeeded\\\"\\n feature=\\\"$ctrl.limitedFeatureId\\\"\\n class=\\\"space-left\\\"\\n ng-if=\\\"$ctrl.isLimitedFeatureSelfContained\\\"\\n ></be-feature-indicator>\\n</div>\\n\\n<rd-widget>\\n <rd-widget-body>\\n <div class=\\\"form-inline\\\">\\n <div class=\\\"form-group\\\" style=\\\"margin: 0\\\">\\n <label for=\\\"ldap_test_username\\\" style=\\\"font-size: 0.9em; margin-right: 5px\\\"> Username </label>\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_test_username\\\"\\n ng-model=\\\"$ctrl.username\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n\\n <div class=\\\"form-group no-margin\\\">\\n <label for=\\\"ldap_test_password\\\"> Password </label>\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n id=\\\"ldap_test_password\\\"\\n ng-model=\\\"$ctrl.password\\\"\\n autocomplete=\\\"new-password\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n ng-disabled=\\\"{{ $ctrl.isLimitedFeatureSelfContained }}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n />\\n </div>\\n\\n <div class=\\\"form-group !ml-0\\\">\\n <div class=\\\"vertical-center\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary\\\"\\n ng-disabled=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.LOADING || !$ctrl.username || !$ctrl.password\\\"\\n ng-click=\\\"$ctrl.testLogin($ctrl.username, $ctrl.password)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-class=\\\" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <span ng-if=\\\"$ctrl.state.testStatus !== $ctrl.TEST_STATUS.LOADING\\\">Test</span>\\n <span ng-if=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.LOADING\\\">Testing...</span>\\n </button>\\n <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.SUCCESS\\\"></pr-icon>\\n <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"$ctrl.state.testStatus === $ctrl.TEST_STATUS.FAILURE\\\"></pr-icon>\\n </div>\\n </div>\\n </div>\\n </rd-widget-body>\\n</rd-widget>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div>\\n <auto-user-provision-toggle ng-model=\\\"$ctrl.settings.AutoCreateUsers\\\">\\n <field-description>\\n With automatic user provisioning enabled, Portainer will create user(s) automatically with standard user role and assign them to team(s) which matches to LDAP group name(s).\\n If disabled, users must be created in Portainer beforehand.\\n </field-description>\\n </auto-user-provision-toggle>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> Server Type </div>\\n\\n <box-selector\\n style=\\\"margin-bottom: 0\\\"\\n radio-name=\\\"'ldap-server-type-selector'\\\"\\n value=\\\"$ctrl.settings.ServerType\\\"\\n options=\\\"$ctrl.boxSelectorOptions\\\"\\n on-change=\\\"($ctrl.onChangeServerType)\\\"\\n slim=\\\"true\\\"\\n ></box-selector>\\n\\n <ldap-settings-custom\\n ng-if=\\\"$ctrl.settings.ServerType === $ctrl.SERVER_TYPES.CUSTOM\\\"\\n settings=\\\"$ctrl.settings\\\"\\n tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n state=\\\"$ctrl.state\\\"\\n on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n on-search-users-click=\\\"($ctrl.searchUsers)\\\"\\n on-search-groups-click=\\\"($ctrl.searchGroups)\\\"\\n on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n save-button-disabled=\\\"$ctrl.isLdapFormValid\\\"\\n ></ldap-settings-custom>\\n <ldap-settings-open-ldap\\n ng-if=\\\"$ctrl.settings.ServerType === $ctrl.SERVER_TYPES.OPEN_LDAP\\\"\\n settings=\\\"$ctrl.settings\\\"\\n tlsca-cert=\\\"$ctrl.tlscaCert\\\"\\n state=\\\"$ctrl.state\\\"\\n on-tlsca-cert-change=\\\"($ctrl.onTlscaCertChange)\\\"\\n connectivity-check=\\\"$ctrl.connectivityCheck\\\"\\n on-search-users-click=\\\"($ctrl.searchUsers)\\\"\\n on-search-groups-click=\\\"($ctrl.searchGroups)\\\"\\n on-save-settings=\\\"($ctrl.onSaveSettings)\\\"\\n save-button-state=\\\"($ctrl.saveButtonState)\\\"\\n save-button-disabled=\\\"$ctrl.isLdapFormValid\\\"\\n ></ldap-settings-open-ldap>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"w-full px-5 pt-3\\\">\\n <div ng-if=\\\"$ctrl.index > 0\\\" style=\\\"margin-bottom: 10px\\\">\\n <span class=\\\"text-muted small\\\"> Extra search configuration </span>\\n <button\\n ng-if=\\\"$ctrl.index > 0\\\"\\n class=\\\"btn btn-sm btn-danger\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"$ctrl.onRemoveClick($ctrl.index)\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n </button>\\n </div>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.showUsernameFormat\\\">\\n <div class=\\\"col-sm-4\\\" style=\\\"margin-bottom: 5px\\\">\\n <label class=\\\"control-label text-left\\\">Username Format</label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <div class=\\\"input-group\\\">\\n <div class=\\\"input-group-btn\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-model=\\\"$ctrl.config.UserNameAttribute\\\"\\n uib-btn-radio=\\\"'sAMAccountName'\\\"\\n style=\\\"margin-left: 0px\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >username</button\\n >\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-model=\\\"$ctrl.config.UserNameAttribute\\\"\\n uib-btn-radio=\\\"'userPrincipalName'\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >user@domainname</button\\n >\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4 control-label text-left\\\"> Root Domain </label>\\n <div class=\\\"col-sm-8\\\">\\n {{ $ctrl.config.BaseDN }}\\n </div>\\n </div>\\n\\n <ldap-settings-dn-builder\\n ng-model=\\\"$ctrl.config.BaseDN\\\"\\n label=\\\"User Search Path (optional)\\\"\\n suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n on-change=\\\"($ctrl.onBaseDNChange)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-settings-dn-builder>\\n\\n <div class=\\\"form-group no-margin-last-child\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-bottom: 5px\\\">\\n <label class=\\\"control-label text-left\\\">Allowed Groups (optional)</label>\\n <button\\n type=\\\"button\\\"\\n class=\\\"label label-default interactive vertical-center\\\"\\n style=\\\"margin-left: 10px; border: 0\\\"\\n ng-click=\\\"$ctrl.addGroup()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n add another group\\n </button>\\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <div ng-repeat=\\\"group in $ctrl.groups track by $index\\\" style=\\\"margin-bottom: 10px\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <ldap-settings-group-dn-builder\\n ng-model=\\\"group\\\"\\n index=\\\"$index\\\"\\n suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n on-change=\\\"($ctrl.onGroupChange)\\\"\\n on-remove-click=\\\"($ctrl.removeGroup)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-settings-group-dn-builder>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4 control-label text-left\\\"> User Filter </label>\\n <div class=\\\"col-sm-8\\\">\\n {{ $ctrl.config.Filter }}\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\" style=\\\"float: initial\\\"> User search configurations </div>\\n\\n<div style=\\\"margin-top: 10px\\\" ng-repeat=\\\"config in $ctrl.settings | limitTo: (1 - $ctrl.settings)\\\">\\n <ldap-user-search-item\\n index=\\\"$index\\\"\\n config=\\\"config\\\"\\n domain-suffix=\\\"{{ $ctrl.domainSuffix }}\\\"\\n show-username-format=\\\"$ctrl.showUsernameFormat\\\"\\n base-filter=\\\"{{ $ctrl.baseFilter }}\\\"\\n on-remove-click=\\\"($ctrl.onRemoveClick)\\\"\\n limited-feature-id=\\\"$ctrl.limitedFeatureId\\\"\\n ></ldap-user-search-item>\\n</div>\\n\\n<div class=\\\"form-group\\\" style=\\\"margin-top: 10px\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n class=\\\"label label-default interactive vertical-center\\\"\\n style=\\\"border: 0\\\"\\n ng-click=\\\"$ctrl.onAddClick()\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-tabindex=\\\"-1\\\"\\n >\\n <pr-icon icon=\\\"'plus-circle'\\\"></pr-icon>\\n Add user search configuration\\n </button>\\n </div>\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px\\\">\\n <button class=\\\"btn btm-sm btn-primary\\\" type=\\\"button\\\" ng-click=\\\"$ctrl.search()\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\" limited-feature-tabindex=\\\"-1\\\">\\n Display Users\\n </button>\\n </div>\\n</div>\\n\\n<div ng-if=\\\"$ctrl.showTable\\\">\\n <div class=\\\"form-group col-sm-12\\\">\\n <ldap-users-datatable dataset=\\\"$ctrl.users\\\" title-text=\\\"Users\\\" title-icon=\\\"users\\\" table-key=\\\"ldapUsers\\\" order-by=\\\"\\\" reverse-order=\\\"\\\"></ldap-users-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar\\\">\\n <div class=\\\"toolBarTitle vertical-center\\\">\\n <pr-icon icon=\\\"$ctrl.titleIcon\\\"></pr-icon>\\n {{ $ctrl.titleText }}\\n </div>\\n <div class=\\\"searchBar vertical-center\\\">\\n <pr-icon icon=\\\"'search'\\\"></pr-icon>\\n <input\\n type=\\\"text\\\"\\n class=\\\"searchInput\\\"\\n ng-model=\\\"$ctrl.state.textFilter\\\"\\n ng-change=\\\"$ctrl.onTextFilterChange()\\\"\\n placeholder=\\\"Search...\\\"\\n auto-focus\\n ng-model-options=\\\"{ debounce: 300 }\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"table-responsive\\\">\\n <table class=\\\"table-hover nowrap-cells table\\\">\\n <thead>\\n <tr>\\n <th>\\n <table-column-header\\n col-title=\\\"'Name'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.state.orderBy === 'Name'\\\"\\n is-sorted-desc=\\\"$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder\\\"\\n ng-click=\\\"$ctrl.changeOrderBy('Name')\\\"\\n ></table-column-header>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n dir-paginate=\\\"item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit)) track by $index\\\"\\n ng-class=\\\"{ active: item.Checked }\\\"\\n >\\n <td>\\n <a ui-sref=\\\"portainer.groups.group({id: item.Id})\\\">{{ item }}</a>\\n </td>\\n </tr>\\n <tr ng-if=\\\"!$ctrl.dataset\\\">\\n <td colspan=\\\"3\\\" class=\\\"text-muted text-center\\\">Loading...</td>\\n </tr>\\n <tr ng-if=\\\"$ctrl.state.filteredDataSet.length === 0\\\">\\n <td colspan=\\\"5\\\" class=\\\"text-muted text-center\\\">No users found.</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" ng-if=\\\"$ctrl.dataset\\\">\\n <div class=\\\"paginationControls\\\">\\n <form class=\\\"form-inline\\\">\\n <span class=\\\"limitSelector\\\">\\n <span style=\\\"margin-right: 5px\\\"> Items per page </span>\\n <select class=\\\"form-control\\\" ng-model=\\\"$ctrl.state.paginatedItemLimit\\\" ng-change=\\\"$ctrl.changePaginationLimit()\\\">\\n <option value=\\\"0\\\">All</option>\\n <option value=\\\"10\\\">10</option>\\n <option value=\\\"25\\\">25</option>\\n <option value=\\\"50\\\">50</option>\\n <option value=\\\"100\\\">100</option>\\n </select>\\n </span>\\n <dir-pagination-controls max-size=\\\"5\\\"></dir-pagination-controls>\\n </form>\\n </div>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/ldap/ldap-users-datatable/ldap-users-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n<div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n ng-class=\\\"[$ctrl.className, 'btn btn-primary btn-sm !ml-0']\\\"\\n ng-click=\\\"$ctrl.onSaveSettings()\\\"\\n ng-disabled=\\\"$ctrl.saveButtonDisabled || $ctrl.saveButtonState\\\"\\n button-spinner=\\\"$ctrl.saveButtonState\\\"\\n limited-feature-dir=\\\"{{::$ctrl.limitedFeatureId}}\\\"\\n limited-feature-class=\\\"{{::$ctrl.limitedFeatureClass}}\\\"\\n >\\n <span ng-hide=\\\"$ctrl.saveButtonState\\\">Save settings</span>\\n <span ng-show=\\\"$ctrl.saveButtonState\\\">Saving...</span>\\n </button>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/settings/authentication/save-auth-settings-button/save-auth-settings-button.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable datatable-empty\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar vertical-center flex-wrap !gap-x-5 !gap-y-1\\\">\\n <div class=\\\"toolBarTitle vertical-center\\\">\\n <div class=\\\"widget-icon space-right\\\">\\n <pr-icon icon=\\\"'history'\\\"></pr-icon>\\n </div>\\n Activity logs\\n </div>\\n <div class=\\\"vertical-center\\\">\\n <datatable-searchbar on-change=\\\"($ctrl.onChangeKeyword)\\\" value=\\\"$ctrl.keyword\\\"></datatable-searchbar>\\n </div>\\n </div>\\n <div class=\\\"table-responsive\\\">\\n <table class=\\\"table-hover table\\\">\\n <thead>\\n <tr>\\n <th class=\\\"small-column\\\">\\n <div class=\\\"vertical-center\\\">\\n <table-column-header\\n col-title=\\\"'Time'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.sort.key === 'Timestamp'\\\"\\n is-sorted-desc=\\\"$ctrl.sort.key === 'Timestamp' && $ctrl.sort.desc\\\"\\n ng-click=\\\"$ctrl.changeSort('Timestamp')\\\"\\n >\\n </table-column-header>\\n </div>\\n </th>\\n <th class=\\\"small-column\\\">\\n <div class=\\\"vertical-center\\\">\\n <table-column-header\\n col-title=\\\"'User'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.sort.key === 'Username'\\\"\\n is-sorted-desc=\\\"$ctrl.sort.key === 'Username' && $ctrl.sort.desc\\\"\\n ng-click=\\\"$ctrl.changeSort('Username')\\\"\\n >\\n </table-column-header>\\n </div>\\n </th>\\n <th class=\\\"small-column\\\">\\n <div class=\\\"vertical-center\\\">\\n <table-column-header\\n col-title=\\\"'Environment'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.sort.key === 'Context'\\\"\\n is-sorted-desc=\\\"$ctrl.sort.key === 'Context' && $ctrl.sort.desc\\\"\\n ng-click=\\\"$ctrl.changeSort('Context')\\\"\\n >\\n </table-column-header>\\n </div>\\n </th>\\n\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <table-column-header col-title=\\\"'Action'\\\" can-sort=\\\"false\\\"> </table-column-header>\\n </div>\\n </th>\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <table-column-header col-title=\\\"'Payload'\\\" can-sort=\\\"false\\\"> </table-column-header>\\n </div>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr dir-paginate-start=\\\"item in $ctrl.logs | itemsPerPage: $ctrl.limit\\\" total-items=\\\"$ctrl.totalItems\\\" current-page=\\\"$ctrl.currentPage\\\">\\n <td></td>\\n <td></td>\\n <td></td>\\n <td></td>\\n <td></td>\\n </tr>\\n <tr dir-paginate-end ng-show=\\\"item.Expanded\\\">\\n <td colspan=\\\"5\\\">\\n <json-tree object=\\\"item.payload\\\" root-name=\\\"containerInfo.Id\\\" start-expanded=\\\"true\\\"></json-tree>\\n </td>\\n </tr>\\n <tr ng-if=\\\"!$ctrl.logs\\\">\\n <td class=\\\"text-muted text-center\\\" colspan=\\\"5\\\">Loading...</td>\\n </tr>\\n <tr ng-if=\\\"$ctrl.logs.length === 0\\\">\\n <td class=\\\"text-muted text-center\\\" colspan=\\\"8\\\"> No logs available. </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" ng-if=\\\"$ctrl.logs\\\">\\n <datatable-pagination limit=\\\"$ctrl.limit\\\" on-change-limit=\\\"($ctrl.handleChangeLimit)\\\" on-change-page=\\\"($ctrl.onChangePage)\\\"></datatable-pagination>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User activity logs'\\\" breadcrumbs=\\\"['User activity logs']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"mx-4\\\">\\n <div class=\\\"be-indicator-container limited-be\\\">\\n <div class=\\\"limited-be-link vertical-center m-4\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n <div class=\\\"limited-be-content !p-0 !pt-[15px]\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <div class=\\\"form-horizontal\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"dateRangeInput\\\" class=\\\"col-sm-2 control-label text-left\\\">Date range</label>\\n <div class=\\\"col-sm-6\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" disabled />\\n </div>\\n </div>\\n </div>\\n <p class=\\\"text-muted small vertical-center\\\">\\n <pr-icon icon=\\\"'info'\\\" class-name=\\\"'icon icon-sm icon-primary'\\\"></pr-icon>\\n Portainer user activity logs have a maximum retention of 7 days.\\n </p>\\n <div>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeature}}\\\" limited-feature-class=\\\"limited-be\\\" limited-feature-disabled>\\n <pr-icon icon=\\\"'download'\\\" class-name=\\\"'icon icon-sm'\\\"></pr-icon>\\n Export as CSV\\n </button>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <activity-logs-datatable\\n logs=\\\"$ctrl.state.logs\\\"\\n keyword=\\\"$ctrl.state.keyword\\\"\\n sort=\\\"$ctrl.state.sort\\\"\\n limit=\\\"$ctrl.state.limit\\\"\\n context-filter=\\\"$ctrl.state.contextFilter\\\"\\n total-items=\\\"$ctrl.state.totalItems\\\"\\n current-page=\\\"$ctrl.state.currentPage\\\"\\n feature=\\\"{{:: $ctrl.limitedFeature}}\\\"\\n on-change-keyword=\\\"($ctrl.onChangeKeyword)\\\"\\n on-change-sort=\\\"($ctrl.onChangeSort)\\\"\\n on-change-limit=\\\"($ctrl.onChangeLimit)\\\"\\n on-change-page=\\\"($ctrl.onChangePage)\\\"\\n ></activity-logs-datatable>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/activity-logs-view/activity-logs-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"datatable datatable-empty\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar vertical-center flex-wrap !gap-x-5 !gap-y-1\\\">\\n <div class=\\\"toolBarTitle vertical-center\\\">\\n <div class=\\\"widget-icon space-right\\\">\\n <pr-icon icon=\\\"'history'\\\"></pr-icon>\\n </div>\\n Authentication events\\n </div>\\n <div class=\\\"vertical-center\\\">\\n <datatable-searchbar on-change=\\\"($ctrl.onChangeKeyword)\\\"></datatable-searchbar>\\n </div>\\n </div>\\n <div class=\\\"table-responsive\\\">\\n <table class=\\\"table-hover nowrap-cells table\\\">\\n <thead>\\n <tr>\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <table-column-header\\n col-title=\\\"'Time'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.sort.key === 'Timestamp'\\\"\\n is-sorted-desc=\\\"$ctrl.sort.key === 'Timestamp' && $ctrl.sort.desc\\\"\\n ng-click=\\\"$ctrl.changeSort('Timestamp')\\\"\\n >\\n </table-column-header>\\n </div>\\n </th>\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <table-column-header\\n col-title=\\\"'Origin'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.sort.key === 'Origin'\\\"\\n is-sorted-desc=\\\"$ctrl.sort.key === 'Origin' && $ctrl.sort.desc\\\"\\n ng-click=\\\"$ctrl.changeSort('Origin')\\\"\\n >\\n </table-column-header>\\n </div>\\n </th>\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <table-column-header\\n col-title=\\\"'Context'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.sort.key === 'Context'\\\"\\n is-sorted-desc=\\\"$ctrl.sort.key === 'Context' && $ctrl.sort.desc\\\"\\n ng-click=\\\"$ctrl.changeSort('Context')\\\"\\n >\\n </table-column-header>\\n <datatable-filter labels=\\\"$ctrl.contextFilterLabels\\\" filter-key=\\\"context\\\" state=\\\"$ctrl.contextFilter\\\" on-change=\\\"($ctrl.onChangeContextFilter)\\\">\\n </datatable-filter>\\n </div>\\n </th>\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <table-column-header\\n col-title=\\\"'User'\\\"\\n can-sort=\\\"true\\\"\\n is-sorted=\\\"$ctrl.sort.key === 'Username'\\\"\\n is-sorted-desc=\\\"$ctrl.sort.key === 'Username' && $ctrl.sort.desc\\\"\\n ng-click=\\\"$ctrl.changeSort('Username')\\\"\\n >\\n </table-column-header>\\n </div>\\n </th>\\n <th>\\n <div class=\\\"vertical-center\\\">\\n <table-column-header col-title=\\\"'Result'\\\" can-sort=\\\"false\\\"> </table-column-header>\\n <datatable-filter labels=\\\"$ctrl.typeFilterLabels\\\" filter-key=\\\"type\\\" state=\\\"$ctrl.typeFilter\\\" on-change=\\\"($ctrl.onChangeTypeFilter)\\\"> </datatable-filter>\\n </div>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr dir-paginate=\\\"item in $ctrl.logs | itemsPerPage: $ctrl.limit\\\" total-items=\\\"$ctrl.totalItems\\\" current-page=\\\"$ctrl.currentPage\\\">\\n <td></td>\\n <td></td>\\n <td></td>\\n <td></td>\\n <td></td>\\n </tr>\\n <tr ng-if=\\\"!$ctrl.logs\\\">\\n <td class=\\\"text-muted text-center\\\" colspan=\\\"5\\\">Loading...</td>\\n </tr>\\n <tr ng-if=\\\"$ctrl.state.logs.length === 0\\\">\\n <td class=\\\"text-muted text-center\\\" colspan=\\\"8\\\"> No logs available. </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" ng-if=\\\"$ctrl.logs\\\">\\n <datatable-pagination limit=\\\"$ctrl.limit\\\" on-change-limit=\\\"($ctrl.handleChangeLimit)\\\" on-change-page=\\\"($ctrl.onChangePage)\\\"></datatable-pagination>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User authentication logs'\\\" breadcrumbs=\\\"['User authentication logs']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"mx-4\\\">\\n <div class=\\\"be-indicator-container limited-be\\\">\\n <div class=\\\"limited-be-link vertical-center m-4\\\"><be-feature-indicator feature=\\\"$ctrl.limitedFeature\\\"></be-feature-indicator></div>\\n <!-- 15px matches the padding for col-sm-12 for the widget and table -->\\n <div class=\\\"limited-be-content !p-0 !pt-[15px]\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <div class=\\\"form-horizontal\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"dateRangeInput\\\" class=\\\"col-sm-2 control-label text-left\\\">Date range</label>\\n <div class=\\\"col-sm-6\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" disabled />\\n </div>\\n </div>\\n </div>\\n <p class=\\\"text-muted small vertical-center\\\">\\n <pr-icon icon=\\\"'info'\\\" class-name=\\\"'icon icon-sm icon-primary'\\\"></pr-icon>\\n Portainer user authentication logs have a maximum retention of 7 days.\\n </p>\\n <div>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" limited-feature-dir=\\\"{{::$ctrl.limitedFeature}}\\\" limited-feature-class=\\\"limited-be\\\" limited-feature-disabled\\n ><pr-icon icon=\\\"'download'\\\" class-name=\\\"'icon icon-sm'\\\"></pr-icon>Export as CSV\\n </button>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <auth-logs-datatable\\n logs=\\\"$ctrl.state.logs\\\"\\n keyword=\\\"$ctrl.state.keyword\\\"\\n sort=\\\"$ctrl.state.sort\\\"\\n limit=\\\"$ctrl.state.limit\\\"\\n context-filter=\\\"$ctrl.state.contextFilter\\\"\\n type-filter=\\\"$ctrl.state.typeFilter\\\"\\n total-items=\\\"$ctrl.state.totalItems\\\"\\n current-page=\\\"$ctrl.state.currentPage\\\"\\n feature=\\\"{{:: $ctrl.limitedFeature}}\\\"\\n on-change-context-filter=\\\"($ctrl.onChangeContextFilter)\\\"\\n on-change-type-filter=\\\"($ctrl.onChangeTypeFilter)\\\"\\n on-change-keyword=\\\"($ctrl.onChangeKeyword)\\\"\\n on-change-sort=\\\"($ctrl.onChangeSort)\\\"\\n on-change-limit=\\\"($ctrl.onChangeLimit)\\\"\\n on-change-page=\\\"($ctrl.onChangePage)\\\"\\n ></auth-logs-datatable>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/user-activity/auth-logs-view/auth-logs-view.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User settings'\\\" breadcrumbs=\\\"['User settings']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<demo-feature-indicator ng-if=\\\"isDemoUser\\\" content=\\\"'You cannot change the password of this account in the demo version of Portainer.'\\\"> </demo-feature-indicator>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <theme-settings></theme-settings>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"lock\\\" title-text=\\\"Change user password\\\"></rd-widget-header>\\n <rd-widget-body>\\n <form name=\\\"form\\\" class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n <!-- current-password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"current_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Current password</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.currentPassword\\\" id=\\\"current_password\\\" />\\n </div>\\n </div>\\n <!-- !current-password-input -->\\n <!-- new-password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"new_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">New password</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.newPassword\\\" ng-minlength=\\\"requiredPasswordLength\\\" id=\\\"new_password\\\" name=\\\"new_password\\\" />\\n </div>\\n </div>\\n <!-- !new-password-input -->\\n\\n <!-- confirm-password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"confirm_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Confirm password</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <div class=\\\"input-group\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.confirmPassword\\\" id=\\\"confirm_password\\\" />\\n <span class=\\\"input-group-addon\\\">\\n <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"formValues.newPassword === formValues.confirmPassword\\\"></pr-icon>\\n <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"!(formValues.newPassword === formValues.confirmPassword)\\\"></pr-icon>\\n </span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n <div class=\\\"col-sm-8\\\">\\n <password-check-hint password-valid=\\\"form.new_password.$valid && formValues.newPassword\\\" force-change-password=\\\"forceChangePassword\\\"></password-check-hint>\\n </div>\\n </div>\\n <!-- !confirm-password-input -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"isDemoUser || (AuthenticationMethod !== 1 && !isInitialAdmin) || !formValues.currentPassword || !formValues.newPassword || form.$invalid || formValues.newPassword !== formValues.confirmPassword\\\"\\n ng-click=\\\"updatePassword()\\\"\\n >\\n Update password\\n </button>\\n <button type=\\\"submit\\\" class=\\\"btn btn-primary btn-sm\\\" ng-click=\\\"skipPasswordChange()\\\" ng-if=\\\"forceChangePassword && timesPasswordChangeSkipped < 2\\\">\\n Remind me later\\n </button>\\n <span class=\\\"text-muted small vertical-center\\\" style=\\\"margin-left: 5px\\\" ng-if=\\\"AuthenticationMethod === 2 && !isInitialAdmin\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n You cannot change your password when using LDAP authentication.\\n </span>\\n <span class=\\\"text-muted small vertical-center\\\" style=\\\"margin-left: 5px\\\" ng-if=\\\"AuthenticationMethod === 3 && !isInitialAdmin\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n You cannot change your password when using OAuth authentication.\\n </span>\\n </div>\\n </div>\\n <div ng-if=\\\"userRole === 1\\\">\\n <p class=\\\"text-muted vertical-center\\\">\\n <pr-icon icon=\\\"'alert-circle'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n Minimum password length is set <a ui-sref=\\\"portainer.settings.authentication\\\">here.</a>\\n </p>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\\n<application-settings-widget></application-settings-widget>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <access-tokens-datatable\\n title-text=\\\"Access tokens\\\"\\n title-icon=\\\"key\\\"\\n dataset=\\\"tokens\\\"\\n table-key=\\\"tokens\\\"\\n order-by=\\\"Description\\\"\\n remove-action=\\\"removeAction\\\"\\n ui-can-exit=\\\"uiCanExit\\\"\\n ></access-tokens-datatable>\\n </div>\\n</div>\\n\\n<helm-repository-datatable></helm-repository-datatable>\\n\";;\nvar path = 'app/portainer/views/account/account.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"page-wrapper\\\">\\n <!-- login box -->\\n <div class=\\\"simple-box container\\\">\\n <div class=\\\"col-sm-4 col-sm-offset-4\\\">\\n <!-- login box logo -->\\n <div class=\\\"row\\\">\\n <img ng-if=\\\"!ctrl.logo\\\" src=\\\"\" + require(\"@/assets/images/logo_alt.svg\") + \"\\\" class=\\\"simple-box-logo\\\" alt=\\\"Portainer\\\" />\\n <img ng-if=\\\"ctrl.logo\\\" ng-src=\\\"{{ ctrl.logo }}\\\" class=\\\"simple-box-logo\\\" />\\n </div>\\n <!-- !login box logo -->\\n\\n <div class=\\\"row p-5 text-center\\\">\\n <p class=\\\"text-xl\\\">Log in to your account</p>\\n <p class=\\\"text-md text-muted fw-bold\\\">Welcome back! Please enter your details</p>\\n </div>\\n\\n <!-- login panel -->\\n <div class=\\\"panel panel-default\\\" ng-if=\\\"!ctrl.state.loginInProgress\\\">\\n <div class=\\\"panel-body\\\">\\n <!-- login form -->\\n <form class=\\\"simple-box-form form-horizontal\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"display: flex; justify-content: center\\\" ng-if=\\\"ctrl.state.showOAuthLogin\\\">\\n <a ng-href=\\\"{{ ctrl.OAuthLoginURI }}\\\">\\n <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'Microsoft'\\\">\\n <pr-icon icon=\\\"'svg-microsoft'\\\"></pr-icon>\\n Login with Microsoft\\n </div>\\n <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'Google'\\\">\\n <pr-icon icon=\\\"'svg-google'\\\"></pr-icon>\\n Login with Google\\n </div>\\n <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'Github'\\\">\\n <pr-icon icon=\\\"'svg-github'\\\"></pr-icon>\\n Login with GitHub\\n </div>\\n <div class=\\\"btn btn-primary btn-lg btn-block\\\" ng-if=\\\"ctrl.state.OAuthProvider === 'OAuth'\\\">\\n <pr-icon icon=\\\"'log-in'\\\"></pr-icon>\\n Login with OAuth\\n </div>\\n </a>\\n </div>\\n </div>\\n\\n <!-- divider -->\\n <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.showOAuthLogin\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"display: flex; align-items: center; justify-content: center\\\">\\n <div class=\\\"striketext small text-muted\\\" style=\\\"display: flex; align-items: center; justify-content: center; width: 90%\\\">or</div>\\n </div>\\n </div>\\n\\n <!-- use internal auth button -->\\n <div class=\\\"form-group\\\" ng-if=\\\"ctrl.state.showOAuthLogin && !ctrl.state.showStandardLogin\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"display: flex; justify-content: center\\\">\\n <div class=\\\"btn btn-primary btn-md btn-block\\\" style=\\\"margin-left: 2px\\\" ng-click=\\\"ctrl.toggleStandardLogin()\\\"> Use internal authentication </div>\\n </div>\\n </div>\\n\\n <!-- !username input -->\\n <div ng-if=\\\"ctrl.state.showStandardLogin\\\">\\n <div class=\\\"pb-2\\\">Username</div>\\n <input\\n id=\\\"username\\\"\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n name=\\\"username\\\"\\n ng-model=\\\"ctrl.formValues.Username\\\"\\n auto-focus\\n data-cy=\\\"auth-usernameInput\\\"\\n placeholder=\\\"Enter your username\\\"\\n />\\n </div>\\n\\n <!-- password input -->\\n <div ng-if=\\\"ctrl.state.showStandardLogin\\\">\\n <div class=\\\"pb-2\\\">Password</div>\\n <div class=\\\"relative\\\">\\n <input\\n id=\\\"password\\\"\\n ng-attr-type=\\\"{{ ctrl.state.passwordInputType }}\\\"\\n class=\\\"form-control pr-10\\\"\\n name=\\\"password\\\"\\n ng-model=\\\"ctrl.formValues.Password\\\"\\n autocomplete=\\\"off\\\"\\n data-cy=\\\"auth-passwordInput\\\"\\n placeholder=\\\"Enter your password\\\"\\n ng-trim=\\\"false\\\"\\n />\\n <button\\n data-cy=\\\"auth-passwordInputToggle\\\"\\n type=\\\"button\\\"\\n ng-click=\\\"ctrl.toggleShowPassword()\\\"\\n class=\\\"absolute right-0 top-0 flex h-[34px] w-[50px] items-center justify-center border-none bg-transparent\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top\\\"\\n tooltip-class=\\\"portainer-tooltip\\\"\\n uib-tooltip=\\\"{{ ctrl.state.passwordInputType === 'password' ? 'Show password' : 'Hide password' }}\\\"\\n >\\n <pr-icon icon=\\\"ctrl.state.passwordInputType === 'password' ? 'eye-off' : 'eye'\\\" size=\\\"'md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group overflow-auto\\\" ng-if=\\\"ctrl.state.showStandardLogin\\\">\\n <!-- login button -->\\n <div class=\\\"col-sm-12 d-flex py-1\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-lg btn-block\\\"\\n ng-click=\\\"ctrl.authenticateUser()\\\"\\n button-spinner=\\\"ctrl.state.loginInProgress\\\"\\n ng-disabled=\\\"ctrl.state.loginInProgress\\\"\\n data-cy=\\\"auth-loginButton\\\"\\n >\\n <span ng-hide=\\\"ctrl.state.loginInProgress\\\">Login</span>\\n <span ng-show=\\\"ctrl.state.loginInProgress\\\">Login in progress...</span>\\n </button>\\n </div>\\n </div>\\n </form>\\n <!-- !login form -->\\n\\n <!-- error message -->\\n <div class=\\\"pull-right\\\" ng-if=\\\"ctrl.state.AuthenticationError\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\"></pr-icon>\\n <span class=\\\"small text-danger\\\">{{ ctrl.state.AuthenticationError }}</span>\\n </div>\\n </div>\\n </div>\\n\\n <!-- !login panel -->\\n <div class=\\\"panel panel-default\\\" ng-show=\\\"ctrl.state.loginInProgress\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"form-group text-center\\\">\\n <span class=\\\"small text-muted\\\">Authentication in progress... <span button-spinner=\\\"true\\\"></span></span>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !login box -->\\n</div>\\n\";;\nvar path = 'app/portainer/views/auth/auth.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Custom Templates'\\\" breadcrumbs=\\\"['Custom Templates']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <stack-from-template-form\\n ng-if=\\\"$ctrl.state.selectedTemplate\\\"\\n template=\\\"$ctrl.state.selectedTemplate\\\"\\n form-values=\\\"$ctrl.formValues\\\"\\n name-regex=\\\"$ctrl.state.templateNameRegex\\\"\\n state=\\\"$ctrl.state\\\"\\n create-template=\\\"$ctrl.createStack\\\"\\n unselect-template=\\\"$ctrl.unselectTemplate\\\"\\n >\\n <advanced-form>\\n <custom-templates-variables-field\\n ng-if=\\\"$ctrl.isTemplateVariablesEnabled\\\"\\n definitions=\\\"$ctrl.state.selectedTemplate.Variables\\\"\\n value=\\\"$ctrl.formValues.variables\\\"\\n on-change=\\\"($ctrl.onChangeTemplateVariables)\\\"\\n ></custom-templates-variables-field>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"$ctrl.state.selectedTemplate && !$ctrl.state.templateLoadFailed\\\">\\n <div class=\\\"col-sm-12\\\">\\n <a class=\\\"small interactive vertical-center\\\" ng-show=\\\"!$ctrl.state.showAdvancedOptions\\\" ng-click=\\\"$ctrl.state.showAdvancedOptions = true;\\\">\\n <pr-icon icon=\\\"'plus'\\\" class-name=\\\"space-right\\\" feather=\\\"true\\\"></pr-icon> {{ $ctrl.state.selectedTemplate.GitConfig !== null ? 'View' : 'Customize' }} stack\\n </a>\\n <a class=\\\"small interactive vertical-center\\\" ng-show=\\\"$ctrl.state.showAdvancedOptions\\\" ng-click=\\\"$ctrl.state.showAdvancedOptions = false;\\\">\\n <pr-icon icon=\\\"'minus'\\\" class-name=\\\"space-right\\\" feather=\\\"true\\\"></pr-icon> Hide {{ $ctrl.state.selectedTemplate.GitConfig === null ? 'custom' : '' }} stack\\n </a>\\n </div>\\n </div>\\n\\n <span ng-if=\\\"$ctrl.state.selectedTemplate && $ctrl.state.templateLoadFailed\\\">\\n <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"$ctrl.currentUser.isAdmin || $ctrl.currentUser.id === $ctrl.state.selectedTemplate.CreatedByUserId\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please\\n <a ui-sref=\\\"docker.templates.custom.edit({id: $ctrl.state.selectedTemplate.Id})\\\">click here</a> for configuration.</p\\n >\\n <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"!($ctrl.currentUser.isAdmin || $ctrl.currentUser.id === $ctrl.state.selectedTemplate.CreatedByUserId)\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please contact your administrator.</p\\n >\\n </span>\\n\\n <!-- web-editor -->\\n <web-editor-form\\n ng-if=\\\"$ctrl.state.showAdvancedOptions\\\"\\n identifier=\\\"custom-template-creation-editor\\\"\\n value=\\\"$ctrl.formValues.fileContent\\\"\\n on-change=\\\"($ctrl.editorUpdate)\\\"\\n ng-required=\\\"true\\\"\\n yml=\\\"true\\\"\\n placeholder=\\\"Define or paste the content of your docker compose file here\\\"\\n read-only=\\\"$ctrl.state.isEditorReadOnly\\\"\\n >\\n <editor-description>\\n <p>\\n You can get more information about Compose file format in the\\n <a href=\\\"https://docs.docker.com/compose/compose-file/\\\" target=\\\"_blank\\\"> official documentation </a>\\n .\\n </p>\\n </editor-description>\\n </web-editor-form>\\n <!-- !web-editor -->\\n </advanced-form>\\n </stack-from-template-form>\\n </div>\\n</div>\\n\\n<custom-templates-list\\n templates=\\\"$ctrl.templates\\\"\\n on-select=\\\"($ctrl.selectTemplate)\\\"\\n on-delete=\\\"($ctrl.confirmDelete)\\\"\\n selected-id=\\\"$ctrl.state.selectedTemplate.Id\\\"\\n storage-key=\\\"'docker-custom-templates'\\\"\\n></custom-templates-list>\\n\";;\nvar path = 'app/portainer/views/custom-templates/custom-templates-view/customTemplatesView.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'FDO Device Configuration'\\\" breadcrumbs=\\\"[{label:'Environments', link:'portainer.endpoints'}, 'Import FDO Device']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"wand-2\\\" title-text=\\\"Import Device Set up\\\"></rd-widget-header>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"fdoForm\\\">\\n <!-- info -->\\n <span class=\\\"small\\\">\\n <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n You are setting up a Portainer Edge Agent that will initiate the communications with the Portainer instance and your FDO Devices.\\n </p>\\n </span>\\n <!-- !info -->\\n <!-- import voucher -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Import Voucher </div>\\n <div>\\n <div class=\\\"form-group\\\" ng-show=\\\"!state.vouchersUploaded\\\">\\n <span class=\\\"small col-sm-12\\\">\\n <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n Import one or more Manufacturer's Ownership Vouchers to initiate device attestation\\n </p>\\n </span>\\n <div class=\\\"col-sm-8\\\">\\n <button\\n style=\\\"margin-left: 0px !important\\\"\\n class=\\\"btn btn-sm btn-primary\\\"\\n ngf-select=\\\"onVoucherFilesChange()\\\"\\n ng-model=\\\"formValues.VoucherFiles\\\"\\n name=\\\"VoucherFiles\\\"\\n ng-disabled=\\\"state.vouchersUploading\\\"\\n button-spinner=\\\"state.vouchersUploading\\\"\\n multiple\\n >\\n <span ng-hide=\\\"state.vouchersUploading\\\"\\n >Upload\\n <pr-icon icon=\\\"'upload'\\\" class-name=\\\"'ml-1'\\\"></pr-icon>\\n </span>\\n <span ng-show=\\\"state.vouchersUploading\\\">Uploading Voucher...</span>\\n </button>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"state.vouchersUploading\\\">\\n <div class=\\\"col-sm-12 small text-success\\\">\\n <p>Connecting to the Owner service...</p>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"state.vouchersUploaded\\\">\\n <div class=\\\"col-sm-12\\\">\\n <p>Ownership Voucher Uploaded <pr-icon icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon></p>\\n </div>\\n </div>\\n </div>\\n <!-- !import voucher -->\\n <!-- device details -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Device details </div>\\n <div>\\n <span class=\\\"small\\\">\\n <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n Device name will serve as your reference name in Portainer\\n </p>\\n </span>\\n <!-- device name input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"device_name\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Device Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n name=\\\"device_name\\\"\\n placeholder=\\\"e.g. FDO-Test01\\\"\\n ng-model=\\\"formValues.DeviceName\\\"\\n ng-required=\\\"state.vouchersUploaded\\\"\\n ng-disabled=\\\"!state.vouchersUploaded\\\"\\n auto-focus\\n data-cy=\\\"deviceImport-deviceNameInput\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"fdoForm.device_name.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"fdoForm.device_name.$error\\\">\\n <p ng-message=\\\"required\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.</p\\n >\\n </div>\\n </div>\\n </div>\\n <!-- !device name input -->\\n <!-- suffix input -->\\n <span class=\\\"small\\\">\\n <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n Suffix starting number will be appended to the end of the Device name, if initiating multiple devices this will be incrementally increased\\n </p>\\n </span>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"suffix\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Suffix starting number </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n name=\\\"suffix\\\"\\n ng-model=\\\"formValues.Suffix\\\"\\n ng-required=\\\"state.vouchersUploaded\\\"\\n ng-disabled=\\\"!state.vouchersUploaded\\\"\\n ng-pattern=\\\"/^[0-9]+$/\\\"\\n placeholder=\\\"1\\\"\\n required\\n data-cy=\\\"deviceImport-suffixInput\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"fdoForm.suffix.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"fdoForm.suffix.$error\\\">\\n <p ng-message=\\\"required\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.</p\\n >\\n <p ng-message=\\\"pattern\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field needs to be a positive integer number.</p\\n >\\n </div>\\n </div>\\n </div>\\n <!-- !suffix input -->\\n <!-- portainer-instance-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"endpoint_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Portainer server URL\\n <portainer-tooltip message=\\\"'URL of the Portainer instance that the agent will use to initiate the communications.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n name=\\\"endpoint_url\\\"\\n ng-model=\\\"formValues.PortainerURL\\\"\\n ng-required=\\\"state.vouchersUploaded\\\"\\n ng-disabled=\\\"!state.vouchersUploaded\\\"\\n placeholder=\\\"e.g. https://10.0.0.10:9443\\\"\\n required\\n data-cy=\\\"deviceImport-portainerServerUrlInput\\\"\\n />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-show=\\\"fdoForm.endpoint_url.$invalid\\\">\\n <div class=\\\"col-sm-12 small text-warning\\\">\\n <div ng-messages=\\\"fdoForm.endpoint_url.$error\\\">\\n <p ng-message=\\\"required\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.</p\\n >\\n </div>\\n </div>\\n </div>\\n <!-- !portainer-instance-input -->\\n </div>\\n <!-- device profile input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"device_profile\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Device Profile</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <select id=\\\"device_profile\\\" ng-model=\\\"formValues.DeviceProfile\\\" class=\\\"form-control\\\" ng-required=\\\"state.vouchersUploaded\\\" ng-disabled=\\\"!state.vouchersUploaded\\\">\\n <option selected disabled hidden value=\\\"\\\">Select a profile for your device</option>\\n <option ng-repeat=\\\"profile in profiles | orderBy: 'name'\\\" ng-value=\\\"profile.id\\\">{{ profile.name }}</option>\\n </select>\\n </div>\\n </div>\\n <!-- !device profile input -->\\n <!-- !device details -->\\n <!-- tags -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Set up Tags </div>\\n <div>\\n <span class=\\\"small\\\">\\n <p class=\\\"text-muted\\\" style=\\\"margin-top: 10px\\\">\\n <pr-icon icon=\\\"'info'\\\" mode=\\\"'primary'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n This is just an option if your device is under a certain group\\n </p>\\n </span>\\n <!-- group -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"device_group\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Group </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <select\\n class=\\\"form-control\\\"\\n ng-options=\\\"group.Id as group.Name for group in groups\\\"\\n ng-model=\\\"formValues.GroupId\\\"\\n id=\\\"device_group\\\"\\n ng-required=\\\"state.vouchersUploaded\\\"\\n ng-disabled=\\\"!state.vouchersUploaded\\\"\\n data-cy=\\\"deviceImport-deviceGroup\\\"\\n ></select>\\n </div>\\n </div>\\n <!-- !group -->\\n\\n <tag-selector ng-if=\\\"formValues\\\" value=\\\"formValues.TagIds\\\" allow-create=\\\"state.allowCreateTag\\\" on-change=\\\"(onChangeTags)\\\"> </tag-selector>\\n\\n <!-- actions -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-click=\\\"createEndpointAndConfigureDevice()\\\"\\n ng-disabled=\\\"state.actionInProgress || !state.vouchersUploaded || !fdoForm.$valid\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n data-cy=\\\"deviceImport-saveDeviceButton\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Save Configuration</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Saving...</span>\\n </button>\\n <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.endpoints\\\">Cancel</a>\\n </div>\\n </div>\\n <!-- !actions -->\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/devices/import/importDevice.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create profile'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Edge Compute']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"createProfileForm\\\">\\n <!-- name-input -->\\n <div class=\\\"col-sm-12 form-section-title\\\">Device Profile Details </div>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"stack_name\\\" class=\\\"col-sm-1 control-label text-left\\\">Name</label>\\n <div class=\\\"col-sm-11\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.name\\\" id=\\\"profile_name\\\" name=\\\"profile_name\\\" placeholder=\\\"e.g. myprofile\\\" auto-focus />\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- build-method -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Profile configuration </div>\\n <box-selector slim=\\\"true\\\" options=\\\"buildMethods\\\" value=\\\"state.method\\\"></box-selector>\\n\\n <!-- !build-method -->\\n\\n <web-editor-form\\n ng-if=\\\"state.method === 'editor'\\\"\\n identifier=\\\"profile-creation-editor\\\"\\n value=\\\"formValues.profileFileContent\\\"\\n on-change=\\\"(onChangeFileContent)\\\"\\n ng-required=\\\"true\\\"\\n >\\n </web-editor-form>\\n\\n <!-- actions -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.settings.edgeCompute\\\">Cancel</a>\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"state.actionInProgress\\n || !createProfileForm.$valid\\n || !formValues.profileFileContent\\n || !formValues.name\\\"\\n ng-click=\\\"createProfileAsync()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Save Profile</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Saving...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/devices/profiles/add/addProfile.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Edit profile'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Edge Compute']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"editProfileForm\\\">\\n <!-- name-input -->\\n <div class=\\\"col-sm-12 form-section-title\\\">Device Profile Details </div>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"stack_name\\\" class=\\\"col-sm-1 control-label text-left\\\">Name</label>\\n <div class=\\\"col-sm-11\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.name\\\" id=\\\"profile_name\\\" name=\\\"profile_name\\\" placeholder=\\\"e.g. myprofile\\\" auto-focus />\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- build-method -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Profile configuration </div>\\n\\n <box-selector slim=\\\"true\\\" options=\\\"buildMethods\\\" value=\\\"state.method\\\"></box-selector>\\n\\n <!-- !build-method -->\\n\\n <web-editor-form\\n ng-if=\\\"state.method === 'editor'\\\"\\n identifier=\\\"profile-creation-editor\\\"\\n value=\\\"formValues.profileFileContent\\\"\\n on-change=\\\"(onChangeFileContent)\\\"\\n ng-required=\\\"true\\\"\\n >\\n </web-editor-form>\\n\\n <!-- actions -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.settings.edgeCompute\\\">Cancel</a>\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"state.actionInProgress\\n || !editProfileForm.$valid\\n || !formValues.profileFileContent\\n || !formValues.name\\\"\\n ng-click=\\\"updateProfileAsync()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Update Profile</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Saving...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/devices/profiles/edit/editProfile.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Environment registries'\\\" breadcrumbs=\\\"['Registry management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <registries-datatable\\n title-text=\\\"Registries\\\"\\n title-icon=\\\"radio\\\"\\n dataset=\\\"$ctrl.registries\\\"\\n table-key=\\\"endpointRegistries\\\"\\n order-by=\\\"Name\\\"\\n endpoint-type=\\\"$ctrl.endpointType\\\"\\n can-manage-access=\\\"$ctrl.canManageAccess\\\"\\n can-browse=\\\"$ctrl.canBrowse\\\"\\n ></registries-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/endpoint-registries/registries.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n title=\\\"'Environment access'\\\"\\n breadcrumbs=\\\"[\\n { label:'Environments', link:'portainer.endpoints' },\\n {\\n label:ctrl.endpoint.Name,\\n link: 'portainer.endpoints.endpoint',\\n linkParams:{id: ctrl.endpoint.Id}\\n }, 'Access management']\\\"\\n reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"ctrl.endpoint\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"hard-drive\\\" title-text=\\\"Environment\\\"></rd-widget-header>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <table class=\\\"table\\\">\\n <tbody>\\n <tr>\\n <td>Name</td>\\n <td>\\n {{ ctrl.endpoint.Name }}\\n </td>\\n </tr>\\n <tr>\\n <td>URL</td>\\n <td>\\n {{ ctrl.endpoint.URL | stripprotocol }}\\n </td>\\n </tr>\\n <tr>\\n <td>Group</td>\\n <td>\\n <a ui-sref=\\\"portainer.groups.group({ id: ctrl.group.Id })\\\">{{ ctrl.group.Name }}</a>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\\n<por-access-management\\n ng-if=\\\"ctrl.endpoint && ctrl.group\\\"\\n access-controlled-entity=\\\"ctrl.endpoint\\\"\\n action-in-progress=\\\"ctrl.state.actionInProgress\\\"\\n entity-type=\\\"endpoint\\\"\\n inherit-from=\\\"ctrl.group\\\"\\n update-access=\\\"ctrl.updateAccess\\\"\\n limited-feature=\\\"ctrl.limitedFeature\\\"\\n>\\n</por-access-management>\\n\";;\nvar path = 'app/portainer/views/endpoints/access/endpointAccess.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header ng-if=\\\"endpoint\\\" title=\\\"'Environment details'\\\" breadcrumbs=\\\"[{label:'Environments', link:'portainer.endpoints'}, endpoint.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div ng-if=\\\"state.edgeEndpoint\\\">\\n <information-panel ng-if=\\\"state.edgeAssociated\\\" title-text=\\\"Edge information\\\">\\n <span class=\\\"small text-muted\\\">\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n This Edge environment is associated to an Edge environment {{ state.kubernetesEndpoint ? '(Kubernetes)' : '(Docker)' }}.\\n </p>\\n <p>\\n Edge key: <code>{{ endpoint.EdgeKey }}</code>\\n </p>\\n <p>\\n Edge identifier: <code>{{ endpoint.EdgeID }}</code>\\n </p>\\n <p>\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"state.actionInProgress\\\"\\n ng-click=\\\"onDisassociateEndpoint()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n analytics-on\\n analytics-event=\\\"edge-endpoint-disassociate\\\"\\n analytics-category=\\\"edge\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Disassociate</span>\\n </button>\\n </p>\\n </span>\\n </information-panel>\\n\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"!state.edgeAssociated\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <div class=\\\"col-sm-12 form-section-title\\\">Deploy an agent</div>\\n <span class=\\\"small text-muted\\\">\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-circle'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n Refer to the platform related command below to deploy the Edge agent in your remote cluster.\\n </p>\\n <p>\\n The agent will communicate with Portainer via <u>{{ edgeKeyDetails.instanceURL }}</u> and <u>tcp://{{ edgeKeyDetails.tunnelServerAddr }}</u>\\n </p>\\n </span>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> Edge agent deployment script </div>\\n <edge-script-form edge-info=\\\"{ key: endpoint.EdgeKey, id: endpoint.EdgeID }\\\" commands=\\\"state.edgeScriptCommands\\\" async-mode=\\\"endpoint.Edge.AsyncMode\\\"></edge-script-form>\\n\\n <edge-key-display edge-key=\\\"endpoint.EdgeKey\\\"> </edge-key-display>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n </div>\\n\\n <information-panel ng-if=\\\"state.kubernetesEndpoint && (!state.edgeEndpoint || state.edgeAssociated)\\\" title-text=\\\"Kubernetes features configuration\\\">\\n <span class=\\\"small text-muted vertical-center\\\">\\n <pr-icon icon=\\\"'wrench'\\\" mode=\\\"'primary'\\\"></pr-icon>\\n You should configure the features available in this Kubernetes environment in the\\n <a ui-sref=\\\"kubernetes.cluster.setup({endpointId: endpoint.Id})\\\">Kubernetes configuration</a> view.\\n </span>\\n </information-panel>\\n</div>\\n\\n<div class=\\\"row mt-4\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"$ctrl.endpointForm\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Configuration </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"container_name\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">Name</label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"container_name\\\" ng-model=\\\"endpoint.Name\\\" placeholder=\\\"e.g. kubernetes-cluster01 / docker-prod01\\\" />\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- endpoint-url-input -->\\n <div class=\\\"form-group\\\" ng-if=\\\"!state.edgeEndpoint\\\">\\n <label for=\\\"endpoint_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n <span ng-if=\\\"!state.agentEndpoint\\\">Environment URL</span>\\n <span ng-if=\\\"state.agentEndpoint\\\">Environment address</span>\\n <portainer-tooltip\\n ng-if=\\\"!state.agentEndpoint\\\"\\n message=\\\"'URL or IP address of a Docker host. The Docker API must be exposed over a TCP port. Please refer to the Docker documentation to configure it.'\\\"\\n >\\n </portainer-tooltip>\\n <portainer-tooltip ng-if=\\\"state.agentEndpoint\\\" message=\\\"'The address for the Portainer agent in the format <HOST>:<PORT> or <IP>:<PORT>'\\\"> </portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n ng-disabled=\\\"endpointType === 'local' || state.azureEndpoint\\\"\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"endpoint_url\\\"\\n ng-model=\\\"endpoint.URL\\\"\\n placeholder=\\\"e.g. 10.0.0.10:2375 or mydocker.mydomain.com:2375\\\"\\n />\\n </div>\\n </div>\\n <!-- !endpoint-url-input -->\\n <!-- endpoint-public-url-input -->\\n <div class=\\\"form-group\\\" ng-if=\\\"!state.azureEndpoint\\\">\\n <label for=\\\"endpoint_public_url\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\">\\n Public IP\\n <portainer-tooltip message=\\\"'URL or IP address where exposed containers will be reachable. This field is optional and will default to the environment URL.'\\\">\\n </portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"endpoint_public_url\\\" ng-model=\\\"endpoint.PublicURL\\\" placeholder=\\\"e.g. 10.0.0.10 or mydocker.mydomain.com\\\" />\\n </div>\\n </div>\\n\\n <div ng-if=\\\"endpoint && state.edgeEndpoint\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Check-in Intervals </div>\\n <edge-checkin-interval-field value=\\\"endpoint.EdgeCheckinInterval\\\" on-change=\\\"(onChangeCheckInInterval)\\\"></edge-checkin-interval-field>\\n </div>\\n\\n <!-- !endpoint-public-url-input -->\\n\\n <tls-fieldset\\n ng-if=\\\"!state.edgeEndpoint && endpoint.Status !== 4 && state.showTLSConfig\\\"\\n values=\\\"formValues.tlsConfig\\\"\\n on-change=\\\"(onChangeTLSConfigFormValues)\\\"\\n validation-data=\\\"{optionalCert: true}\\\"\\n ></tls-fieldset>\\n\\n <azure-endpoint-config\\n ng-if=\\\"state.azureEndpoint\\\"\\n application-id=\\\"endpoint.AzureCredentials.ApplicationID\\\"\\n tenant-id=\\\"endpoint.AzureCredentials.TenantID\\\"\\n authentication-key=\\\"endpoint.AzureCredentials.AuthenticationKey\\\"\\n ></azure-endpoint-config>\\n <div class=\\\"col-sm-12 form-section-title\\\"> Metadata </div>\\n <!-- group -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"endpoint_group\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Group </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <select ng-options=\\\"group.Id as group.Name for group in groups\\\" ng-model=\\\"endpoint.GroupId\\\" id=\\\"endpoint_group\\\" class=\\\"form-control\\\"></select>\\n </div>\\n </div>\\n <!-- !group -->\\n\\n <tag-selector ng-if=\\\"endpoint\\\" value=\\\"endpoint.TagIds\\\" allow-create=\\\"state.allowCreate\\\" on-change=\\\"(onChangeTags)\\\"></tag-selector>\\n\\n <!-- open-amt info -->\\n <div ng-if=\\\"state.showAMTInfo\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Open Active Management Technology </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"endpoint_managementinfoVersion\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> AMT Version </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" ng-disabled=\\\"true\\\" class=\\\"form-control\\\" id=\\\"endpoint_managementinfoVersion\\\" ng-model=\\\"endpoint.ManagementInfo['AMT']\\\" placeholder=\\\"Loading...\\\" />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"endpoint_managementinfoUUID\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> UUID </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input type=\\\"text\\\" ng-disabled=\\\"true\\\" class=\\\"form-control\\\" id=\\\"endpoint_managementinfoUUID\\\" ng-model=\\\"endpoint.ManagementInfo['UUID']\\\" placeholder=\\\"Loading...\\\" />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"endpoint_managementinfoBuildNumber\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Build Number </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n ng-disabled=\\\"true\\\"\\n class=\\\"form-control\\\"\\n id=\\\"endpoint_managementinfoBuildNumber\\\"\\n ng-model=\\\"endpoint.ManagementInfo['Build Number']\\\"\\n placeholder=\\\"Loading...\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"endpoint_managementinfoControlMode\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> Control Mode </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n ng-disabled=\\\"true\\\"\\n class=\\\"form-control\\\"\\n id=\\\"endpoint_managementinfoControlMode\\\"\\n ng-model=\\\"endpoint.ManagementInfo['Control Mode']\\\"\\n placeholder=\\\"Loading...\\\"\\n />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label for=\\\"endpoint_managementinfoDNSSuffix\\\" class=\\\"col-sm-3 col-lg-2 control-label text-left\\\"> DNS Suffix </label>\\n <div class=\\\"col-sm-9 col-lg-10\\\">\\n <input\\n type=\\\"text\\\"\\n ng-disabled=\\\"true\\\"\\n class=\\\"form-control\\\"\\n id=\\\"endpoint_managementinfoDNSSuffix\\\"\\n ng-model=\\\"endpoint.ManagementInfo['DNS Suffix']\\\"\\n placeholder=\\\"Loading...\\\"\\n />\\n </div>\\n </div>\\n </div>\\n <!-- !open-amt info -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n ng-disabled=\\\"state.actionInProgress || !endpoint.Name || !endpoint.URL || !$ctrl.endpointForm.$valid\\\"\\n ng-click=\\\"updateEndpoint()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Update environment</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Updating environment...</span>\\n </button>\\n <a type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" ui-sref=\\\"portainer.endpoints\\\">Cancel</a>\\n </div>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/endpoints/edit/endpoint.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n title=\\\"'KVM Control'\\\"\\n breadcrumbs=\\\"[\\n { label:'Environments', link:'portainer.endpoints' },\\n {\\n label:$state.endpoint.Name,\\n link: 'portainer.endpoints.endpoint',\\n linkParams:{id: $state.endpoint.Id}\\n },\\n $state.deviceName,\\n 'KVM Control']\\\"\\n reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"datatable\\\" ng-class=\\\"{ 'kvm-maximized': $state.maximized }\\\">\\n <rd-widget>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <div class=\\\"toolBar\\\">\\n <div class=\\\"toolBarTitle\\\">KVM Control</div>\\n <pr-icon icon=\\\"'x'\\\" ui-sref=\\\"edge.devices\\\" class-name=\\\"'interactive pull-right'\\\" size=\\\"'lg'\\\"></pr-icon>\\n <pr-icon ng-click=\\\"maximize()\\\" title=\\\"Maximize\\\" icon=\\\"'maximize-2'\\\" class-name=\\\"'!mr-2 interactive pull-right'\\\" size=\\\"'lg'\\\"></pr-icon>\\n <pr-icon ng-click=\\\"minimize()\\\" title=\\\"Minimize\\\" icon=\\\"'minimize-2'\\\" class-name=\\\"'!mr-2 interactive pull-right'\\\" size=\\\"'lg'\\\"></pr-icon>\\n </div>\\n <div class=\\\"actionBar\\\">\\n <kvm-control device-id=\\\"$state.deviceId\\\" server=\\\"$state.mpsServer\\\" token=\\\"$state.mpsToken\\\"> </kvm-control>\\n </div>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/endpoints/kvm/endpointKVM.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header\\n title=\\\"'Environment group access'\\\"\\n breadcrumbs=\\\"[\\n { label:'Groups', link:'portainer.groups' },\\n {\\n label:group.Name,\\n link: 'portainer.groups.group',\\n linkParams:{id: group.Id}\\n }, 'Access management']\\\"\\n reload=\\\"true\\\"\\n>\\n</page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"dice-4\\\" title-text=\\\"Group\\\"></rd-widget-header>\\n <rd-widget-body classes=\\\"no-padding\\\">\\n <table class=\\\"table\\\">\\n <tbody>\\n <tr>\\n <td>Name</td>\\n <td>\\n {{ group.Name }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\\n<por-access-management\\n ng-if=\\\"group\\\"\\n access-controlled-entity=\\\"group\\\"\\n entity-type=\\\"group\\\"\\n action-in-progress=\\\"state.actionInProgress\\\"\\n update-access=\\\"updateAccess\\\"\\n limited-feature=\\\"limitedFeature\\\"\\n></por-access-management>\\n\";;\nvar path = 'app/portainer/views/groups/access/groupAccess.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create environment group'\\\" breadcrumbs=\\\"[{label:'Environment groups', link:'portainer.groups'}, 'Add group']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <group-form\\n loaded=\\\"loaded\\\"\\n model=\\\"model\\\"\\n associated-endpoints=\\\"associatedEndpoints\\\"\\n form-action=\\\"create\\\"\\n form-action-label=\\\"Create the group\\\"\\n action-in-progress=\\\"state.actionInProgress\\\"\\n on-change-environments=\\\"(onChangeEnvironments)\\\"\\n ></group-form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/groups/create/creategroup.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Environment group details'\\\" breadcrumbs=\\\"[{label:'Groups', link:'portainer.groups'}, group.Name]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <group-form\\n loaded=\\\"loaded\\\"\\n model=\\\"group\\\"\\n associated-endpoints=\\\"associatedEndpoints\\\"\\n form-action=\\\"update\\\"\\n form-action-label=\\\"Update the group\\\"\\n action-in-progress=\\\"state.actionInProgress\\\"\\n on-change-environments=\\\"(onChangeEnvironments)\\\"\\n ></group-form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/groups/edit/group.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Environment groups'\\\" breadcrumbs=\\\"['Environment group management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <groups-datatable title-text=\\\"Environment groups\\\" title-icon=\\\"dice-4\\\" dataset=\\\"groups\\\" table-key=\\\"groups\\\" order-by=\\\"Name\\\" remove-action=\\\"removeAction\\\"></groups-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/groups/groups.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"page-wrapper\\\">\\n <!-- simple box -->\\n <div class=\\\"simple-box container\\\">\\n <div class=\\\"col-md-8 col-md-offset-2 col-sm-10 col-sm-offset-1\\\">\\n <!-- simple box logo -->\\n <div class=\\\"row\\\">\\n <img ng-if=\\\"logo\\\" ng-src=\\\"{{ logo }}\\\" class=\\\"simple-box-logo\\\" />\\n <img ng-if=\\\"!logo\\\" src=\\\"\" + require(\"@/assets/images/logo_alt.svg\") + \"\\\" class=\\\"simple-box-logo\\\" alt=\\\"Portainer\\\" />\\n </div>\\n <!-- !simple box logo -->\\n <!-- init password panel -->\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <!-- toggle -->\\n <div>\\n <a ng-click=\\\"togglePanel()\\\" class=\\\"vertical-center\\\">\\n <span>\\n <pr-icon icon=\\\"'chevron-down'\\\" ng-if=\\\"state.showInitPassword\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n <pr-icon icon=\\\"'chevron-right'\\\" ng-if=\\\"!state.showInitPassword\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n </span>\\n <span class=\\\"form-section-title\\\">New Portainer installation</span>\\n </a>\\n </div>\\n <!-- !toggle -->\\n\\n <!-- init password form -->\\n <form name=\\\"form\\\" class=\\\"simple-box-form form-horizontal padding-top\\\" ng-if=\\\"state.showInitPassword\\\">\\n <!-- note -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"small text-muted\\\"> Please create the initial administrator user. </span>\\n </div>\\n </div>\\n <!-- !note -->\\n <!-- username-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"username\\\" class=\\\"col-sm-4 control-label text-left\\\"> Username </label>\\n <div class=\\\"col-sm-8\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"username\\\" ng-model=\\\"formValues.Username\\\" placeholder=\\\"e.g. admin\\\" />\\n </div>\\n </div>\\n <!-- !username-input -->\\n <!-- new-password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"password\\\" class=\\\"col-sm-4 control-label text-left\\\">Password</label>\\n <div class=\\\"col-sm-8\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Password\\\" id=\\\"password\\\" name=\\\"password\\\" ng-minlength=\\\"requiredPasswordLength\\\" auto-focus />\\n </div>\\n </div>\\n <!-- !new-password-input -->\\n <!-- confirm-password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"confirm_password\\\" class=\\\"col-sm-4 control-label text-left\\\">Confirm password</label>\\n <div class=\\\"col-sm-8\\\">\\n <div class=\\\"input-group\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.ConfirmPassword\\\" id=\\\"confirm_password\\\" />\\n <span class=\\\"input-group-addon !rounded-r-[5px]\\\">\\n <pr-icon ng-if=\\\"form.password.$viewValue !== '' && form.password.$viewValue === formValues.ConfirmPassword\\\" icon=\\\"'check'\\\" mode=\\\"'success'\\\"></pr-icon>\\n <pr-icon ng-if=\\\"form.password.$viewValue === '' || form.password.$viewValue !== formValues.ConfirmPassword\\\" icon=\\\"'x'\\\" mode=\\\"'danger'\\\"></pr-icon>\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !confirm-password-input -->\\n <!-- note -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 text-warning\\\">\\n <p class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n <span>The password must be at least {{ requiredPasswordLength }} characters long.</span>\\n <pr-icon mode=\\\"'success'\\\" icon=\\\"'check'\\\" ng-if=\\\"form.password.$valid && formValues.Password\\\"></pr-icon>\\n </p>\\n </div>\\n </div>\\n <!-- !note -->\\n <!-- actions -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"state.actionInProgress || form.$invalid || !formValues.Password || !formValues.ConfirmPassword || form.password.$viewValue !== formValues.ConfirmPassword\\\"\\n ng-click=\\\"createAdminUser()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Create user</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Creating user...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n <!-- enableTelemetry-->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 vertical-center\\\">\\n <input type=\\\"checkbox\\\" name=\\\"toggle_enableTelemetry\\\" ng-model=\\\"formValues.enableTelemetry\\\" />\\n <span class=\\\"text-muted small\\\"\\n >Allow collection of anonymous statistics. You can find more information about this in our\\n <a class=\\\"hyperlink\\\" href=\\\"https://www.portainer.io/documentation/in-app-analytics-and-privacy-policy/\\\" target=\\\"_blank\\\">privacy policy</a>.</span\\n >\\n </div>\\n </div>\\n <!-- !enableTelemetry-->\\n </form>\\n <!-- !init password form -->\\n </div>\\n </div>\\n <!-- !init password panel -->\\n\\n <!-- restore backup panel -->\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <!-- toggle -->\\n <div>\\n <a ng-click=\\\"togglePanel()\\\" data-cy=\\\"init-installPortainerFromBackup\\\" class=\\\"vertical-center\\\">\\n <span\\n ><pr-icon icon=\\\"'chevron-down'\\\" ng-if=\\\"state.showRestorePortainer\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon>\\n <pr-icon icon=\\\"'chevron-right'\\\" ng-if=\\\"!state.showRestorePortainer\\\" size=\\\"'lg'\\\" class-name=\\\"'icon-primary'\\\"></pr-icon\\n ></span>\\n <span class=\\\"form-section-title\\\">Restore Portainer from backup</span>\\n </a>\\n </div>\\n <!-- !toggle -->\\n\\n <!-- restore form -->\\n <form class=\\\"simple-box-form form-horizontal padding-top\\\" ng-if=\\\"state.showRestorePortainer\\\">\\n <!-- note -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-9\\\">\\n <span class=\\\"small text-muted\\\">\\n This will restore the Portainer metadata which contains information about the environments, stacks and applications, as well as the configured users.\\n </span>\\n </div>\\n </div>\\n <!-- !note -->\\n\\n <box-selector slim=\\\"true\\\" options=\\\"restoreOptions\\\" value=\\\"formValues.restoreFormType\\\" on-change=\\\"(onChangeRestoreType)\\\" radio-name=\\\"'restore-type'\\\"></box-selector>\\n\\n <div ng-if=\\\"formValues.restoreFormType === RESTORE_FORM_TYPES.FILE\\\">\\n <!-- note -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"small text-muted\\\"> You can upload a backup file from your computer. </span>\\n </div>\\n </div>\\n <!-- !note -->\\n <!-- select-file-input -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12 vertical-center\\\">\\n <button\\n class=\\\"btn btn-sm btn-primary\\\"\\n ngf-select\\n accept=\\\".gz,.encrypted\\\"\\n ngf-accept=\\\"'application/x-tar,application/x-gzip'\\\"\\n ng-model=\\\"formValues.BackupFile\\\"\\n auto-focus\\n data-cy=\\\"init-selectBackupFileButton\\\"\\n >Select file</button\\n >\\n <span class=\\\"space-left vertical-center\\\">\\n {{ formValues.BackupFile.name }}\\n <pr-icon icon=\\\"'x-circle'\\\" class-name=\\\"'icon-danger'\\\" ng-if=\\\"!formValues.BackupFile\\\"></pr-icon>\\n </span>\\n </div>\\n </div>\\n <!-- password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"password\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n Password\\n <portainer-tooltip\\n message=\\\"'If the backup is password protected, provide the password in order to extract the backup file, otherwise this field can be left empty.'\\\"\\n ></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-4\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Password\\\" id=\\\"password\\\" data-cy=\\\"init-backupPasswordInput\\\" />\\n </div>\\n </div>\\n <!-- !password-input -->\\n </div>\\n <!-- !select-file-input -->\\n <div class=\\\"limited-be-content\\\" ng-if=\\\"formValues.restoreFormType === RESTORE_FORM_TYPES.S3\\\">\\n <!-- Access key id -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"access_key_id\\\" class=\\\"col-sm-3 control-label text-left\\\">Access key ID</label>\\n <div class=\\\"col-sm-9\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"access_key_id\\\" name=\\\"access_key_id\\\" ng-model=\\\"formValues.AccessKeyId\\\" required data-cy=\\\"init-accessKeyIdInput\\\" />\\n </div>\\n </div>\\n <!-- !Access key id -->\\n <!-- Secret access key -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"secret_access_key\\\" class=\\\"col-sm-3 control-label text-left\\\">Secret access key</label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n id=\\\"secret_access_key\\\"\\n name=\\\"secret_access_key\\\"\\n ng-model=\\\"formValues.SecretAccessKey\\\"\\n required\\n data-cy=\\\"init-secretAccessKeyInput\\\"\\n />\\n </div>\\n </div>\\n <!-- !Secret access key -->\\n <!-- Region -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"backup-s3-region\\\" class=\\\"col-sm-3 control-label text-left\\\">Region</label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n placeholder=\\\"default region is us-east-1 if left empty\\\"\\n id=\\\"backup-s3-region\\\"\\n name=\\\"backup-s3-region\\\"\\n ng-model=\\\"formValues.Region\\\"\\n data-cy=\\\"init-s3RegionInput\\\"\\n />\\n </div>\\n </div>\\n <!-- !Region -->\\n <!-- Bucket name -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"bucket_name\\\" class=\\\"col-sm-3 control-label text-left\\\">Bucket name</label>\\n <div class=\\\"col-sm-9\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"bucket_name\\\" name=\\\"bucket_name\\\" ng-model=\\\"formValues.BucketName\\\" required data-cy=\\\"init-bucketNameInput\\\" />\\n </div>\\n </div>\\n <!-- !Bucket name -->\\n <!-- S3 Compatible Host -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"s3-compatible-host\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n S3 Compatible Host\\n <portainer-tooltip message=\\\"'Hostname of a S3 service'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"s3-compatible-host\\\"\\n name=\\\"s3-compatible-host\\\"\\n ng-model=\\\"formValues.S3CompatibleHost\\\"\\n placeholder=\\\"leave empty for AWS S3\\\"\\n data-cy=\\\"init-s3CompatibleHostInput\\\"\\n />\\n </div>\\n </div>\\n <!-- !S3 Compatible Host -->\\n <!-- Filename -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"backup-s3-filename\\\" class=\\\"col-sm-3 control-label text-left\\\">Filename</label>\\n <div class=\\\"col-sm-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"backup-s3-filename\\\"\\n name=\\\"backup-s3-filename\\\"\\n ng-model=\\\"formValues.Filename\\\"\\n required\\n data-cy=\\\"init-backupFilenameInput\\\"\\n />\\n </div>\\n </div>\\n <!-- !Filename -->\\n <!-- password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"password\\\" class=\\\"col-sm-3 control-label text-left\\\">\\n Password\\n <portainer-tooltip\\n message=\\\"'If the backup is password protected, provide the password in order to extract the backup file, otherwise this field can be left empty.'\\\"\\n ></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-4\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.Password\\\" id=\\\"password\\\" data-cy=\\\"init-backupPasswordInput\\\" />\\n </div>\\n </div>\\n <!-- !password-input -->\\n </div>\\n <!-- note -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"small text-muted\\\"> You are about to restore Portainer from this backup. </span>\\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"small text-muted\\\"> After restoring has completed, please log in as a user that was known by the Portainer that was restored. </span>\\n </div>\\n </div>\\n <!-- !note -->\\n <!-- actions -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"!formValues.BackupFile || state.backupInProgress\\\"\\n ng-click=\\\"uploadBackup()\\\"\\n button-spinner=\\\"state.backupInProgress\\\"\\n data-cy=\\\"init-restorePortainerButton\\\"\\n >\\n <span ng-hide=\\\"state.backupInProgress\\\">Restore Portainer</span>\\n <span ng-show=\\\"state.backupInProgress\\\">Restoring Portainer...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !actions -->\\n </form>\\n <!-- !restore backup form -->\\n </div>\\n </div>\\n <!-- !restore backup panel -->\\n </div>\\n </div>\\n <!-- !simple box -->\\n</div>\\n\";;\nvar path = 'app/portainer/views/init/admin/initAdmin.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<div class=\\\"page-wrapper\\\">\\n <!-- login box -->\\n <div class=\\\"simple-box container\\\">\\n <div class=\\\"col-md-6 col-md-offset-3 col-sm-6 col-sm-offset-3\\\">\\n <!-- login box logo -->\\n <div class=\\\"row\\\">\\n <img ng-if=\\\"!ctrl.logo\\\" src=\\\"\" + require(\"@/assets/images/logo_alt.svg\") + \"\\\" class=\\\"simple-box-logo\\\" alt=\\\"Portainer\\\" />\\n <img ng-if=\\\"ctrl.logo\\\" ng-src=\\\"{{ ctrl.logo }}\\\" class=\\\"simple-box-logo\\\" />\\n </div>\\n <div class=\\\"row text-center\\\">\\n Logout in progress...\\n <pr-icon icon=\\\"'settings'\\\" class-name=\\\"'animate-spin-slow space-left'\\\"></pr-icon>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/logout/logout.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Authentication settings'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Authentication']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"users\\\" title-text=\\\"Authentication\\\"></rd-widget-header>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"authSettingsForm\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Configuration </div>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"user_timeout\\\" class=\\\"col-sm-2 control-label text-left\\\">\\n Session lifetime\\n <portainer-tooltip message=\\\"'Time before users are forced to relogin.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-10\\\">\\n <select\\n id=\\\"user_timeout\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"settings.UserSessionTimeout\\\"\\n ng-options=\\\"opt.value as opt.key for opt in state.availableUserSessionTimeoutOptions\\\"\\n ></select>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-yellow'\\\"></pr-icon>\\n Changing from default is only recommended if you have additional layers of authentication in front of Portainer.\\n </span>\\n </div>\\n\\n <div class=\\\"col-sm-12 form-section-title\\\"> Authentication method </div>\\n\\n <box-selector radio-name=\\\"'authOptions'\\\" value=\\\"authMethod\\\" options=\\\"authOptions\\\" on-change=\\\"(onChangeAuthMethod)\\\"></box-selector>\\n\\n <internal-auth\\n ng-if=\\\"authenticationMethodSelected(1)\\\"\\n on-save-settings=\\\"(saveSettings)\\\"\\n is-loading=\\\"state.actionInProgress\\\"\\n value=\\\"settings.InternalAuthSettings\\\"\\n on-change=\\\"(onChangePasswordLength)\\\"\\n ></internal-auth>\\n\\n <ldap-settings\\n ng-if=\\\"authenticationMethodSelected(2)\\\"\\n settings=\\\"formValues.ldap.ldapSettings\\\"\\n tlsca-cert=\\\"formValues.TLSCACert\\\"\\n state=\\\"state\\\"\\n connectivity-check=\\\"LDAPConnectivityCheck\\\"\\n on-save-settings=\\\"(saveSettings)\\\"\\n save-button-state=\\\"state.actionInProgress\\\"\\n is-ldap-form-valid=\\\"isLDAPFormValid\\\"\\n ></ldap-settings>\\n\\n <ad-settings\\n ng-if=\\\"authenticationMethodSelected(4)\\\"\\n settings=\\\"formValues.ldap.adSettings\\\"\\n tlsca-cert=\\\"formValues.TLSCACert\\\"\\n state=\\\"state\\\"\\n connectivity-check=\\\"LDAPConnectivityCheck\\\"\\n on-save-settings=\\\"(saveSettings)\\\"\\n save-button-state=\\\"state.actionInProgress\\\"\\n is-ldap-form-valid=\\\"isLDAPFormValid()\\\"\\n ></ad-settings>\\n\\n <oauth-settings\\n ng-if=\\\"authenticationMethodSelected(3)\\\"\\n settings=\\\"OAuthSettings\\\"\\n teams=\\\"teams\\\"\\n on-save-settings=\\\"(saveSettings)\\\"\\n save-button-state=\\\"state.actionInProgress\\\"\\n ></oauth-settings>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/settings/authentication/settingsAuthentication.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Settings'\\\" breadcrumbs=\\\"[{label:'Settings', link:'portainer.settings'}, 'Edge Compute']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.settings\\\">\\n <settings-edge-compute on-submit=\\\"($ctrl.onSubmitEdgeCompute)\\\" settings=\\\"($ctrl.settings)\\\"></settings-edge-compute>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.settings\\\">\\n <settings-open-amt on-submit=\\\"($ctrl.onSubmitOpenAMT)\\\" settings=\\\"($ctrl.settings)\\\"></settings-open-amt>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"$ctrl.settings\\\">\\n <settings-fdo on-submit=\\\"($ctrl.onSubmitFDO)\\\" settings=\\\"($ctrl.settings)\\\"></settings-fdo>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/settings/edge-compute/settingsEdgeCompute.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Create stack'\\\" breadcrumbs=\\\"[{label:'Stacks', link:'docker.stacks'}, 'Add stack']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"createStackForm\\\">\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"stack_name\\\" class=\\\"col-sm-1 control-label text-left\\\">Name</label>\\n <div class=\\\"col-sm-11\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"formValues.Name\\\"\\n id=\\\"stack_name\\\"\\n name=\\\"stack_name\\\"\\n placeholder=\\\"e.g. mystack\\\"\\n auto-focus\\n ng-pattern=\\\"STACK_NAME_VALIDATION_REGEX\\\"\\n />\\n <div class=\\\"help-block\\\" ng-show=\\\"createStackForm.stack_name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"createStackForm.stack_name.$error\\\">\\n <p ng-message=\\\"pattern\\\">\\n <span><pr-icon icon=\\\"'alert-triangle'\\\" class-name=\\\"'icon-sm icon-warning'\\\"></pr-icon></span>\\n This field must consist of lower case alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\" ng-if=\\\"state.StackType === 1\\\">\\n This stack will be deployed using the equivalent of the <code>docker stack deploy</code> command.\\n </span>\\n <div class=\\\"col-sm-12 text-muted small\\\" ng-if=\\\"state.StackType === 2 && composeSyntaxMaxVersion == 2\\\">\\n <div style=\\\"margin-bottom: 7px\\\">\\n This stack will be deployed using the equivalent of <code>docker compose</code>. Only Compose file format version <b>2</b> is supported at the moment.\\n </div>\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n Note: Due to a limitation of libcompose, the name of the stack will be standardized to remove all special characters and uppercase letters.\\n </div>\\n <span class=\\\"col-sm-12 text-muted small\\\" ng-if=\\\"state.StackType === 2 && composeSyntaxMaxVersion > 2\\\">\\n This stack will be deployed using <code>docker compose</code>.\\n </span>\\n </div>\\n <!-- build-method -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Build method </div>\\n\\n <box-selector slim=\\\"true\\\" radio-name=\\\"'build-method'\\\" options=\\\"buildMethods\\\" value=\\\"state.Method\\\" on-change=\\\"(onBuildMethodChange)\\\" slim=\\\"true\\\"></box-selector>\\n\\n <!-- !build-method -->\\n\\n <!-- upload -->\\n <div ng-show=\\\"state.Method === 'upload'\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Upload </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\"> You can upload a Compose file from your computer. </span>\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"state.uploadYamlValidationError\\\"\\n ><span class=\\\"text-danger small\\\">{{ state.uploadYamlValidationError }}</span></div\\n >\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-light\\\" ngf-select=\\\"uploadFile($file)\\\">\\n <pr-icon icon=\\\"'upload'\\\"></pr-icon>\\n Select file</button\\n >\\n <span style=\\\"margin-left: 5px\\\">\\n {{ formValues.StackFile.name }}\\n <pr-icon icon=\\\"'x'\\\" mode=\\\"'danger'\\\" ng-if=\\\"!formValues.StackFile\\\"></pr-icon>\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !upload -->\\n <git-form\\n ng-if=\\\"state.Method === 'repository'\\\"\\n value=\\\"formValues\\\"\\n on-change=\\\"(onChangeFormValues)\\\"\\n is-docker-standalone=\\\"isDockerStandalone\\\"\\n is-additional-files-field-visible=\\\"true\\\"\\n is-auth-explanation-visible=\\\"true\\\"\\n is-force-pull-visible=\\\"true\\\"\\n base-webhook-url=\\\"{{ state.baseWebhookUrl }}\\\"\\n webhook-id=\\\"{{ state.webhookId }}\\\"\\n webhooks-docs=\\\"/user/docker/stacks/webhooks\\\"\\n ></git-form>\\n\\n <div ng-show=\\\"state.Method === 'template'\\\">\\n <div class=\\\"col-sm-12\\\">\\n <custom-template-selector\\n new-template-path=\\\"docker.templates.custom.new\\\"\\n stack-type=\\\"state.StackType\\\"\\n on-change=\\\"(onChangeTemplateId)\\\"\\n value=\\\"state.selectedTemplateId\\\"\\n ></custom-template-selector>\\n\\n <custom-templates-variables-field\\n ng-if=\\\"isTemplateVariablesEnabled && state.selectedTemplate\\\"\\n definitions=\\\"state.selectedTemplate.Variables\\\"\\n value=\\\"formValues.Variables\\\"\\n on-change=\\\"(onChangeTemplateVariables)\\\"\\n ></custom-templates-variables-field>\\n\\n <span ng-if=\\\"state.Method === 'template' && state.selectedTemplateId && state.templateLoadFailed\\\">\\n <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"currentUser.isAdmin || currentUser.id === state.selectedTemplate.CreatedByUserId\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please\\n <a ui-sref=\\\"docker.templates.custom.edit({id: state.selectedTemplateId})\\\">click here</a> for configuration.</p\\n >\\n <p class=\\\"small vertical-center text-danger mb-5\\\" ng-if=\\\"!(currentUser.isAdmin || currentUser.id === state.selectedTemplate.CreatedByUserId)\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'danger'\\\" size=\\\"'md'\\\" feather=\\\"true\\\"></pr-icon>Custom template could not be loaded, please contact your administrator.</p\\n >\\n </span>\\n </div>\\n </div>\\n\\n <web-editor-form\\n ng-if=\\\"state.Method === 'editor' || (state.Method === 'template' && state.selectedTemplateId)\\\"\\n identifier=\\\"stack-creation-editor\\\"\\n value=\\\"formValues.StackFileContent\\\"\\n on-change=\\\"(onChangeFileContent)\\\"\\n ng-required=\\\"true\\\"\\n yml=\\\"true\\\"\\n placeholder=\\\"Define or paste the content of your docker compose file here\\\"\\n read-only=\\\"state.isEditorReadOnly\\\"\\n >\\n <editor-description>\\n <p>\\n You can get more information about Compose file format in the <a href=\\\"https://docs.docker.com/compose/compose-file/\\\" target=\\\"_blank\\\">official documentation</a>.\\n </p>\\n <p ng-if=\\\"state.editorYamlValidationError\\\" class=\\\"text-danger\\\">{{ state.editorYamlValidationError }}</p>\\n </editor-description>\\n </web-editor-form>\\n\\n <div ng-if=\\\"state.Method !== 'repository' && isAdmin && applicationState.endpoint.type !== 4\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\">\\n Webhooks\\n <por-switch-field\\n name=\\\"EnableWebhook\\\"\\n checked=\\\"formValues.EnableWebhook\\\"\\n label-class=\\\"'col-sm-2'\\\"\\n tooltip=\\\"'Create a webhook (or callback URI) to automate the update of this stack. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this stack.'\\\"\\n label=\\\"'Create a Stack webhook'\\\"\\n on-change=\\\"(onEnableWebhookChange)\\\"\\n feature-id=\\\"'stack-webhook'\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n\\n <!-- environment-variables -->\\n <stack-environment-variables-panel values=\\\"formValues.Env\\\" on-change=\\\"(handleEnvVarChange)\\\" show-alert=\\\"true\\\"> </stack-environment-variables-panel>\\n <!-- !environment-variables -->\\n <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n <!-- actions -->\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"state.actionInProgress\\n || !createStackForm.$valid\\n || ((state.Method === 'editor' || state.Method === 'template') && (!formValues.StackFileContent || state.editorYamlValidationError))\\n || (state.Method === 'upload' && (!formValues.StackFile || state.uploadYamlValidationError))\\n || (state.Method === 'repository' && ((!formValues.RepositoryURL || !formValues.ComposeFilePathInRepository) || (formValues.RepositoryAuthentication && !formValues.RepositoryPassword)))\\n || !formValues.Name\\\"\\n ng-click=\\\"deployStack()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n analytics-on\\n analytics-category=\\\"docker\\\"\\n analytics-event=\\\"docker-stack-create\\\"\\n analytics-properties=\\\"buildAnalyticsProperties()\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Deploy the stack</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Deployment in progress...</span>\\n </button>\\n <span class=\\\"text-danger\\\" ng-if=\\\"state.formValidationError\\\" style=\\\"margin-left: 5px\\\">{{ state.formValidationError }}</span>\\n </div>\\n </div>\\n <!-- !actions -->\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/stacks/create/createstack.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Stack details'\\\" breadcrumbs=\\\"[{label:'Stacks', link:'docker.stacks'}, stackName]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-body>\\n <uib-tabset active=\\\"state.activeTab\\\">\\n <!-- tab-info -->\\n <uib-tab index=\\\"0\\\">\\n <uib-tab-heading>\\n <pr-icon icon=\\\"'list'\\\"></pr-icon>\\n Stack\\n </uib-tab-heading>\\n <div style=\\\"margin-top: 10px\\\">\\n <!-- stack-information -->\\n <div ng-if=\\\"external || orphaned\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Information </div>\\n <div class=\\\"form-group\\\">\\n <span class=\\\"small\\\">\\n <p class=\\\"text-muted\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\" class-name=\\\"'mr-0.5'\\\"></pr-icon>\\n <span ng-if=\\\"external\\\">This stack was created outside of Portainer. Control over this stack is limited.</span>\\n <span ng-if=\\\"orphaned\\\">This stack is orphaned. You can re-associate it with the current environment using the \\\"Associate to this environment\\\" feature.</span>\\n </p>\\n </span>\\n </div>\\n </div>\\n <!-- !stack-information -->\\n <!-- stack-details -->\\n <div>\\n <div class=\\\"col-sm-12 form-section-title\\\"> Stack details </div>\\n <div class=\\\"form-group\\\">\\n {{ stackName }}\\n\\n <button\\n authorization=\\\"PortainerStackUpdate\\\"\\n ng-if=\\\"regular && stack.Status === 2\\\"\\n ng-disabled=\\\"state.actionInProgress\\\"\\n class=\\\"btn btn-xs btn-success\\\"\\n ng-click=\\\"startStack()\\\"\\n >\\n <pr-icon icon=\\\"'play'\\\"></pr-icon>\\n Start this stack\\n </button>\\n\\n <button\\n ng-if=\\\"regular && stack.Status === 1\\\"\\n authorization=\\\"PortainerStackUpdate\\\"\\n ng-disabled=\\\"state.actionInProgress\\\"\\n class=\\\"btn btn-xs btn-light\\\"\\n ng-click=\\\"stopStack()\\\"\\n >\\n <pr-icon icon=\\\"'stop-circle'\\\"></pr-icon>\\n Stop this stack\\n </button>\\n\\n <button authorization=\\\"PortainerStackDelete\\\" class=\\\"btn btn-xs btn-light\\\" ng-click=\\\"removeStack()\\\" ng-if=\\\"!external || stack.Type == 1\\\">\\n <pr-icon icon=\\\"'trash-2'\\\"></pr-icon>\\n Delete this stack\\n </button>\\n\\n <button\\n ng-if=\\\"regular && stackFileContent\\\"\\n class=\\\"btn btn-primary btn-xs\\\"\\n ui-sref=\\\"docker.templates.custom.new({fileContent: stackFileContent, type: stack.Type})\\\"\\n >\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n Create template from stack\\n </button>\\n <button\\n authorization=\\\"PortainerStackUpdate\\\"\\n ng-if=\\\"regular && stackFileContent && !stack.FromAppTemplate && stack.GitConfig\\\"\\n ng-disabled=\\\"state.actionInProgress\\\"\\n ng-click=\\\"detachStackFromGit()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n class=\\\"btn btn-primary btn-xs\\\"\\n >\\n <pr-icon icon=\\\"'arrow-right'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n <span ng-hide=\\\"state.actionInProgress\\\">Detach from Git</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Detachment in progress...</span>\\n </button>\\n </div>\\n </div>\\n <!-- !stack-details -->\\n\\n <!-- associate -->\\n <div ng-if=\\\"orphaned\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Associate to this environment </div>\\n <p class=\\\"small text-muted\\\"> This feature allows you to re-associate this stack to the current environment. </p>\\n <form class=\\\"form-horizontal\\\">\\n <por-access-control-form form-data=\\\"formValues.AccessControlData\\\" hide-title=\\\"true\\\"></por-access-control-form>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"state.actionInProgress\\\"\\n ng-click=\\\"associateStack()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n style=\\\"margin-left: -5px\\\"\\n >\\n <pr-icon icon=\\\"'refresh-cw'\\\" class=\\\"!mr-1\\\"></pr-icon>\\n <span ng-hide=\\\"state.actionInProgress\\\">Associate</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Association in progress...</span>\\n </button>\\n <span class=\\\"text-danger\\\" ng-if=\\\"state.formValidationError\\\" style=\\\"margin-left: 5px\\\">{{ state.formValidationError }}</span>\\n </div>\\n </div>\\n </form>\\n </div>\\n <!-- !associate -->\\n\\n <div ng-if=\\\"!orphaned\\\">\\n <stack-redeploy-git-form\\n ng-if=\\\"stack.GitConfig && !stack.FromAppTemplate && !state.actionInProgress\\\"\\n model=\\\"stack.GitConfig\\\"\\n stack=\\\"stack\\\"\\n authorization=\\\"PortainerStackUpdate\\\"\\n endpoint=\\\"applicationState.endpoint\\\"\\n >\\n </stack-redeploy-git-form>\\n <stack-duplication-form\\n ng-if=\\\"regular && endpoints.length > 0\\\"\\n endpoints=\\\"endpoints\\\"\\n groups=\\\"groups\\\"\\n current-endpoint-id=\\\"endpoint.Id\\\"\\n on-duplicate=\\\"duplicateStack(name, endpointId)\\\"\\n on-migrate=\\\"migrateStack(name, endpointId)\\\"\\n yaml-error=\\\"state.yamlError\\\"\\n >\\n </stack-duplication-form>\\n </div>\\n </div>\\n </uib-tab>\\n <!-- !tab-info -->\\n <!-- tab-file -->\\n <uib-tab index=\\\"1\\\" select=\\\"showEditor()\\\" ng-if=\\\"!external && (!stack.GitConfig || stack.FromAppTemplate)\\\">\\n <uib-tab-heading>\\n <pr-icon icon=\\\"'edit-2'\\\" class-name=\\\"'mr-1'\\\"></pr-icon>\\n Editor\\n </uib-tab-heading>\\n <form class=\\\"form-horizontal\\\" ng-if=\\\"state.showEditorTab\\\" style=\\\"margin-top: 10px\\\" name=\\\"stackUpdateForm\\\">\\n <div class=\\\"form-group\\\">\\n <span class=\\\"col-sm-12 text-muted small\\\" style=\\\"margin-bottom: 7px\\\" ng-if=\\\"stackType == STACK_TYPES.DockerCompose && composeSyntaxMaxVersion == 2\\\">\\n This stack will be deployed using the equivalent of <code>docker compose</code>. Only Compose file format version <b>2</b> is supported at the moment.\\n </span>\\n <span class=\\\"col-sm-12 text-muted small\\\" style=\\\"margin-bottom: 7px\\\" ng-if=\\\"stackType == STACK_TYPES.DockerCompose && composeSyntaxMaxVersion > 2\\\">\\n This stack will be deployed using <code>docker compose</code>.\\n </span>\\n <span class=\\\"col-sm-12 text-muted small\\\">\\n You can get more information about Compose file format in the <a href=\\\"https://docs.docker.com/compose/compose-file/\\\" target=\\\"_blank\\\">official documentation</a>.\\n </span>\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"state.yamlError\\\">\\n <span class=\\\"text-danger small\\\">{{ state.yamlError }}</span>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <code-editor\\n read-only=\\\"orphaned\\\"\\n identifier=\\\"stack-editor\\\"\\n placeholder=\\\"Define or paste the content of your docker compose file here\\\"\\n yml=\\\"true\\\"\\n on-change=\\\"(editorUpdate)\\\"\\n value=\\\"stackFileContent\\\"\\n ></code-editor>\\n </div>\\n </div>\\n\\n <!-- environment-variables -->\\n <div ng-if=\\\"stack\\\">\\n <stack-environment-variables-panel\\n values=\\\"formValues.Env\\\"\\n on-change=\\\"(handleEnvVarChange)\\\"\\n show-help-message=\\\"true\\\"\\n is-foldable=\\\"true\\\"\\n ></stack-environment-variables-panel>\\n </div>\\n <!-- !environment-variables -->\\n\\n <!-- webhook -->\\n <div ng-if=\\\"isAdmin && applicationState.endpoint.type !== 4\\\">\\n <div class=\\\"form-section-title\\\"> Webhooks</div>\\n <por-switch-field\\n name=\\\"EnableWebhook\\\"\\n checked=\\\"formValues.EnableWebhook\\\"\\n label-class=\\\"'col-sm-2'\\\"\\n tooltip=\\\"'Create a webhook (or callback URI) to automate the update of this stack. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this stack.'\\\"\\n label=\\\"'Create a Stack webhook'\\\"\\n feature-id=\\\"'stack-webhook'\\\"\\n ></por-switch-field>\\n </div>\\n <!-- !webhook -->\\n\\n <!-- options -->\\n <div ng-if=\\\"stack.Type === 1 && applicationState.endpoint.apiVersion >= 1.27\\\" authorization=\\\"PortainerStackUpdate\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Options </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n name=\\\"prune\\\"\\n checked=\\\"formValues.Prune\\\"\\n tooltip=\\\"'Prune services that are no longer referenced.'\\\"\\n label-class=\\\"'col-sm-2'\\\"\\n label=\\\"'Prune services'\\\"\\n on-change=\\\"(onPruneChange)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n </div>\\n <!-- !options -->\\n <div authorization=\\\"PortainerStackUpdate\\\">\\n <div class=\\\"col-sm-12 form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-sm btn-primary\\\"\\n ng-disabled=\\\"state.actionInProgress || state.yamlError || !stackUpdateForm.$valid || !stackFileContent || orphaned\\\"\\n ng-click=\\\"deployStack()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Update the stack</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Deployment in progress...</span>\\n </button>\\n </div>\\n </div>\\n </div>\\n </form>\\n </uib-tab>\\n <!-- !tab-file -->\\n </uib-tabset>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\\n<stack-containers-datatable\\n ng-if=\\\"stackType !== STACK_TYPES.DockerSwarm && (!orphaned || orphanedRunning)\\\"\\n stack-name=\\\"stackName\\\"\\n environment=\\\"endpoint\\\"\\n></stack-containers-datatable>\\n\\n<docker-services-datatable ng-if=\\\"services && (!orphaned || orphanedRunning)\\\" dataset=\\\"services\\\" title-icon=\\\"list\\\" on-refresh=\\\"(getServices)\\\"></docker-services-datatable>\\n\\n<!-- access-control-panel -->\\n<access-control-panel\\n ng-if=\\\"stack && !orphaned\\\"\\n resource-id=\\\"stack.EndpointId + '_' + stack.Name\\\"\\n resource-control=\\\"stack.ResourceControl\\\"\\n resource-type=\\\"resourceType\\\"\\n environment-id=\\\"stack.EndpointId\\\"\\n on-update-success=\\\"(onUpdateResourceControlSuccess)\\\"\\n>\\n</access-control-panel>\\n<!-- !access-control-panel -->\\n\";;\nvar path = 'app/portainer/views/stacks/edit/stack.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Stacks list'\\\" breadcrumbs=\\\"['Stacks']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<docker-stacks-datatable\\n ng-if=\\\"stacks\\\"\\n dataset=\\\"stacks\\\"\\n is-image-notification-enabled=\\\"enableImageNotification\\\"\\n on-remove=\\\"(removeAction)\\\"\\n on-refresh=\\\"(getStacks)\\\"\\n></docker-stacks-datatable>\\n\";;\nvar path = 'app/portainer/views/stacks/stacks.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Tags'\\\" breadcrumbs=\\\"['Tag management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"plus\\\" title-text=\\\"Add a new tag\\\"> </rd-widget-header>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" name=\\\"tagCreationForm\\\" ng-submit=\\\"createTag()\\\">\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"name\\\" class=\\\"col-sm-2 control-label required text-left\\\"> Name </label>\\n <div class=\\\"col-sm-10\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n name=\\\"name\\\"\\n ng-model=\\\"formValues.Name\\\"\\n ng-change=\\\"checkNameValidity(tagCreationForm)\\\"\\n placeholder=\\\"org/acme\\\"\\n required\\n auto-focus\\n />\\n <div class=\\\"help-block\\\" ng-show=\\\"tagCreationForm.name.$invalid\\\">\\n <div class=\\\"small text-warning\\\">\\n <div ng-messages=\\\"tagCreationForm.name.$error\\\">\\n <p ng-message=\\\"required\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This field is required.\\n </p>\\n <p ng-message=\\\"validName\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'alert-triangle'\\\" mode=\\\"'warning'\\\"></pr-icon>\\n This tag already exists.\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"state.actionInProgress || !tagCreationForm.$valid\\\"\\n ng-click=\\\"createTag()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\" class=\\\"vertical-center\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon>\\n Create tag\\n </span>\\n <span ng-show=\\\"state.actionInProgress\\\">Creating tag...</span>\\n </button>\\n </div>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <tags-datatable title-text=\\\"Tags\\\" title-icon=\\\"tag\\\" dataset=\\\"tags\\\" table-key=\\\"tags\\\" order-by=\\\"Name\\\" remove-action=\\\"removeAction\\\"></tags-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/tags/tags.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header id=\\\"'view-top'\\\" title=\\\"'Application templates list'\\\" breadcrumbs=\\\"['Templates']\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <!-- stack-form -->\\n <div class=\\\"col-sm-12\\\">\\n <stack-from-template-form\\n ng-if=\\\"state.selectedTemplate && (state.selectedTemplate.Type === 2 || state.selectedTemplate.Type === 3)\\\"\\n template=\\\"state.selectedTemplate\\\"\\n form-values=\\\"formValues\\\"\\n name-regex=\\\"state.templateNameRegex\\\"\\n state=\\\"state\\\"\\n create-template=\\\"createTemplate\\\"\\n unselect-template=\\\"unselectTemplate\\\"\\n >\\n </stack-from-template-form>\\n </div>\\n <!-- !stack-form -->\\n <!-- container-form -->\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"state.selectedTemplate && state.selectedTemplate.Type === 1\\\">\\n <rd-widget>\\n <rd-widget-custom-header icon=\\\"state.selectedTemplate.Logo\\\" title-text=\\\"state.selectedTemplate.Title\\\"> </rd-widget-custom-header>\\n <rd-widget-body classes=\\\"padding\\\">\\n <form class=\\\"form-horizontal\\\" name=\\\"selectedTemplateType1\\\">\\n <!-- description -->\\n <div ng-if=\\\"state.selectedTemplate.Note\\\">\\n <div class=\\\"form-section-title\\\"> Information </div>\\n <div class=\\\"col-sm-12 form-group\\\">\\n <div class=\\\"template-note\\\" ng-bind-html=\\\"state.selectedTemplate.Note\\\"></div>\\n </div>\\n </div>\\n <!-- !description -->\\n <div class=\\\"form-section-title\\\"> Configuration </div>\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"container_name\\\" class=\\\"col-sm-2 control-label text-left\\\">Name</label>\\n <div class=\\\"col-sm-6\\\">\\n <input type=\\\"text\\\" name=\\\"container_name\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.name\\\" placeholder=\\\"e.g. web (optional)\\\" />\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- network-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"container_network\\\" class=\\\"col-sm-2 control-label text-left\\\">Network</label>\\n <div class=\\\"col-sm-6\\\">\\n <select class=\\\"form-control\\\" ng-options=\\\"net.Name for net in availableNetworks | orderBy: 'Name'\\\" ng-model=\\\"formValues.network\\\">\\n <option disabled hidden value=\\\"\\\">Select a network</option>\\n </select>\\n </div>\\n </div>\\n <!-- !network-input -->\\n <!-- env -->\\n <div ng-repeat=\\\"var in state.selectedTemplate.Env\\\" ng-if=\\\"!var.preset || var.select\\\" class=\\\"form-group\\\">\\n <label for=\\\"field_{{ $index }}\\\" class=\\\"col-sm-2 control-label text-left\\\">\\n {{ var.label }}\\n <portainer-tooltip ng-if=\\\"var.description\\\" message=\\\"var.description\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-6\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-if=\\\"!var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\" />\\n <select class=\\\"form-control\\\" ng-if=\\\"var.select\\\" ng-model=\\\"var.value\\\" id=\\\"field_{{ $index }}\\\">\\n <option selected disabled hidden value=\\\"\\\">Select value</option>\\n <option ng-repeat=\\\"choice in var.select\\\" value=\\\"{{ choice.value }}\\\">{{ choice.text }}</option>\\n </select>\\n </div>\\n </div>\\n <!-- !env -->\\n <!-- access-control -->\\n <por-access-control-form form-data=\\\"formValues.AccessControlData\\\"></por-access-control-form>\\n <!-- !access-control -->\\n <div class=\\\"form-group col-sm-12\\\">\\n <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"!state.showAdvancedOptions\\\" ng-click=\\\"state.showAdvancedOptions = true;\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon> Show advanced options\\n </a>\\n <a class=\\\"small interactive vertical-center\\\" ng-if=\\\"state.showAdvancedOptions\\\" ng-click=\\\"state.showAdvancedOptions = false;\\\">\\n <pr-icon icon=\\\"'minus'\\\"></pr-icon> Hide advanced options\\n </a>\\n </div>\\n <div ng-if=\\\"state.showAdvancedOptions\\\">\\n <!-- port-mapping -->\\n <div class=\\\"form-group mt-2\\\">\\n <div class=\\\"col-sm-12\\\">\\n <label class=\\\"control-label text-left\\\">Port mapping</label>\\n <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Ports.length > 0\\\">\\n <div class=\\\"small text-muted\\\">Portainer will automatically assign a port if you leave the host port empty.</div>\\n <div class=\\\"form-inline mt-2\\\" ng-repeat=\\\"portBinding in state.selectedTemplate.Ports\\\">\\n <!-- host-port -->\\n <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n <span class=\\\"input-group-addon\\\">host</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"portBinding.hostPort\\\" placeholder=\\\"e.g. 80 or 1.2.3.4:80 (optional)\\\" />\\n </div>\\n <!-- !host-port -->\\n <pr-icon icon=\\\"'arrow-right'\\\"></pr-icon>\\n <!-- container-port -->\\n <div class=\\\"input-group col-sm-4 input-group-sm\\\">\\n <span class=\\\"input-group-addon\\\">container</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"portBinding.containerPort\\\" placeholder=\\\"e.g. 80\\\" />\\n </div>\\n <!-- !container-port -->\\n <!-- protocol-actions -->\\n <div class=\\\"input-group col-sm-3 input-group-sm\\\">\\n <div class=\\\"btn-group btn-group-sm\\\">\\n <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.protocol\\\" uib-btn-radio=\\\"'tcp'\\\">TCP</label>\\n <label class=\\\"btn btn-light\\\" ng-model=\\\"portBinding.protocol\\\" uib-btn-radio=\\\"'udp'\\\">UDP</label>\\n </div>\\n <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removePortBinding($index)\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n </button>\\n </div>\\n <!-- !protocol-actions -->\\n </div>\\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addPortBinding()\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add map additional port\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !port-mapping -->\\n <!-- volume-mapping -->\\n <div class=\\\"form-group mt-4\\\">\\n <div class=\\\"col-sm-12\\\">\\n <label class=\\\"control-label text-left\\\">Volume mapping</label>\\n <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Volumes.length > 0\\\">\\n <div class=\\\"small text-muted\\\">Portainer will automatically create and map a local volume when using the <b>auto</b> option.</div>\\n <div class=\\\"mt-2\\\" ng-repeat=\\\"volume in state.selectedTemplate.Volumes\\\">\\n <!-- volume-line1 -->\\n <div class=\\\"form-inline\\\">\\n <!-- container-path -->\\n <div class=\\\"input-group input-group-sm col-sm-6\\\">\\n <span class=\\\"input-group-addon\\\">container</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"volume.container\\\" placeholder=\\\"e.g. /path/in/container\\\" />\\n </div>\\n <!-- !container-path -->\\n <!-- volume-type -->\\n <div class=\\\"input-group col-sm-5 space-left\\\">\\n <div class=\\\"btn-group btn-group-sm\\\">\\n <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.type\\\" uib-btn-radio=\\\"'auto'\\\" ng-click=\\\"volume.bind = ''\\\">Auto</label>\\n <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.type\\\" uib-btn-radio=\\\"'volume'\\\" ng-click=\\\"volume.bind = ''\\\">Volume</label>\\n <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.type\\\" uib-btn-radio=\\\"'bind'\\\" ng-click=\\\"volume.bind = ''\\\" ng-if=\\\"isAdmin || allowBindMounts\\\">Bind</label>\\n </div>\\n <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removeVolume($index)\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n </button>\\n </div>\\n <!-- !volume-type -->\\n </div>\\n <!-- !volume-line1 -->\\n <!-- volume-line2 -->\\n <div class=\\\"form-inline mt-1\\\" ng-if=\\\"volume.type !== 'auto'\\\">\\n <pr-icon icon=\\\"'arrow-right'\\\"></pr-icon>\\n <!-- volume -->\\n <div class=\\\"input-group input-group-sm col-sm-6\\\" ng-if=\\\"volume.type === 'volume'\\\">\\n <div class=\\\"col-sm-12 input-group\\\">\\n <span class=\\\"input-group-addon\\\">volume</span>\\n <div class=\\\"col-sm-12 input-group\\\">\\n <select class=\\\"form-control\\\" ng-model=\\\"volume.bind\\\" ng-options=\\\"vol.Name as vol.Name for vol in availableVolumes\\\">\\n <option value=\\\"\\\" disabled selected>Select a volume</option>\\n </select>\\n </div>\\n </div>\\n </div>\\n <!-- !volume -->\\n <!-- bind -->\\n <div class=\\\"input-group input-group-sm col-sm-6\\\" ng-if=\\\"volume.type === 'bind'\\\">\\n <span class=\\\"input-group-addon\\\">host</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"volume.bind\\\" placeholder=\\\"e.g. /path/on/host\\\" />\\n </div>\\n <!-- !bind -->\\n <!-- read-only -->\\n <div class=\\\"input-group input-group-sm col-sm-5 space-left\\\">\\n <div class=\\\"btn-group btn-group-sm\\\">\\n <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.readonly\\\" uib-btn-radio=\\\"false\\\">Writable</label>\\n <label class=\\\"btn btn-light\\\" ng-model=\\\"volume.readonly\\\" uib-btn-radio=\\\"true\\\">Read-only</label>\\n </div>\\n </div>\\n <!-- !read-only -->\\n </div>\\n <!-- !volume-line2 -->\\n </div>\\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addVolume()\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add map additional volume\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !volume-mapping -->\\n <!-- extra-host -->\\n <div class=\\\"form-group mt-4\\\">\\n <div class=\\\"col-sm-12\\\">\\n <label class=\\\"control-label text-left\\\">Hosts file entries</label>\\n <!-- extra-host-input-list -->\\n <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Hosts.length > 0\\\">\\n <div class=\\\"form-inline mt-2\\\" ng-repeat=\\\"(idx, host) in state.selectedTemplate.Hosts track by $index\\\">\\n <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n <span class=\\\"input-group-addon\\\">value</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"state.selectedTemplate.Hosts[idx]\\\" placeholder=\\\"e.g. host:IP\\\" />\\n </div>\\n <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removeExtraHost($index)\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addExtraHost()\\\">\\n <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add additional entry\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !extra-host -->\\n <!-- labels -->\\n <div class=\\\"form-group mt-4\\\">\\n <div class=\\\"col-sm-12\\\">\\n <label class=\\\"control-label text-left\\\">Labels</label>\\n <!-- labels-input-list -->\\n <div class=\\\"mt-1\\\" ng-if=\\\"state.selectedTemplate.Labels.length > 0\\\">\\n <div class=\\\"form-inline mt-2\\\" ng-repeat=\\\"label in state.selectedTemplate.Labels\\\">\\n <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n <span class=\\\"input-group-addon\\\">name</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.name\\\" placeholder=\\\"e.g. com.example.foo\\\" />\\n </div>\\n <div class=\\\"input-group col-sm-5 input-group-sm\\\">\\n <span class=\\\"input-group-addon\\\">value</span>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"label.value\\\" placeholder=\\\"e.g. bar\\\" />\\n </div>\\n <button class=\\\"btn btn-light\\\" type=\\\"button\\\" ng-click=\\\"removeLabel($index)\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" class-name=\\\"'icon-secondary icon-md'\\\"></pr-icon>\\n </button>\\n </div>\\n </div>\\n <!-- !labels-input-list -->\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"form-group small interactive text-muted vertical-center mt-2\\\" ng-click=\\\"addLabel()\\\"> <pr-icon icon=\\\"'plus'\\\"></pr-icon> Add label </span>\\n </div>\\n </div>\\n </div>\\n <!-- !labels -->\\n <!-- hostname -->\\n <div class=\\\"form-group mt-4\\\">\\n <label for=\\\"container_hostname\\\" class=\\\"col-sm-2 control-label text-left\\\">Hostname</label>\\n <div class=\\\"col-sm-6\\\">\\n <input type=\\\"text\\\" name=\\\"container_hostname\\\" class=\\\"form-control\\\" ng-model=\\\"state.selectedTemplate.Hostname\\\" placeholder=\\\"leave empty to use docker default\\\" />\\n </div>\\n </div>\\n <!-- !hostname -->\\n </div>\\n <!-- !advanced-options -->\\n <!-- actions -->\\n <div class=\\\"form-section-title\\\"> Actions </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary\\\"\\n ng-disabled=\\\"state.actionInProgress || !formValues.network\\\"\\n ng-click=\\\"createTemplate()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\">Deploy the container</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Deployment in progress...</span>\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"unselectTemplate(state.selectedTemplate)\\\">Hide</button>\\n <span class=\\\"text-danger space-left\\\" ng-if=\\\"state.formValidationError\\\">{{ state.formValidationError }}</span>\\n </div>\\n </div>\\n <!-- !actions -->\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n <!-- container-form -->\\n</div>\\n\\n<app-templates-list\\n storage-key=\\\"'docker-app-templates'\\\"\\n templates=\\\"templates\\\"\\n on-select=\\\"(selectTemplate)\\\"\\n selected-id=\\\"state.selectedTemplate.Id\\\"\\n disabled-types=\\\"disabledTypes\\\"\\n></app-templates-list>\\n\";;\nvar path = 'app/portainer/views/templates/templates.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'User details'\\\" breadcrumbs=\\\"[{label:'Users', link:'portainer.users'}, formValues.username]\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"user\\\" title-text=\\\"User details\\\"></rd-widget-header>\\n <rd-widget-body>\\n <form class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"username_field\\\" class=\\\"col-sm-2 control-label required text-left\\\">Username</label>\\n <div class=\\\"col-sm-8\\\">\\n <input class=\\\"form-control\\\" ng-model=\\\"formValues.username\\\" id=\\\"username_field\\\" />\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\" ng-if=\\\"isAdmin\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label-class=\\\"'col-sm-3 col-lg-2 control-label text-left'\\\"\\n checked=\\\"formValues.Administrator\\\"\\n label=\\\"'Administrator'\\\"\\n tooltip=\\\"'Administrators have access to Portainer settings management as well as full control over all defined environments and their resources.'\\\"\\n on-change=\\\"(handleAdministratorChange)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-4\\\">\\n <button class=\\\"btn btn-primary btn-sm\\\" ng-disabled=\\\"!isSubmitEnabled()\\\" ng-click=\\\"updateUser()\\\">Save</button>\\n <button class=\\\"btn btn-danger btn-sm vertical-center\\\" ng-disabled=\\\"isDeleteDisabled()\\\" ng-click=\\\"deleteUser()\\\">\\n <pr-icon icon=\\\"'trash-2'\\\" size=\\\"'sm'\\\" class=\\\"vertical-center\\\"></pr-icon>Delete this user\\n </button>\\n </div>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"lock\\\" title-text=\\\"Change user password\\\"></rd-widget-header>\\n <rd-widget-body>\\n <form name=\\\"form\\\" class=\\\"form-horizontal\\\" style=\\\"margin-top: 15px\\\">\\n <!-- new-password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"new_password\\\" class=\\\"col-sm-2 control-label required text-left\\\">New password</label>\\n <div class=\\\"col-sm-8\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.newPassword\\\" id=\\\"new_password\\\" name=\\\"new_password\\\" ng-minlength=\\\"requiredPasswordLength\\\" />\\n </div>\\n </div>\\n <!-- !new-password-input -->\\n <!-- confirm-password-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"confirm_password\\\" class=\\\"col-sm-2 control-label required text-left\\\">Confirm password</label>\\n <div class=\\\"col-sm-8\\\">\\n <div class=\\\"input-group\\\">\\n <input type=\\\"password\\\" class=\\\"form-control\\\" ng-model=\\\"formValues.confirmPassword\\\" id=\\\"confirm_password\\\" />\\n <span class=\\\"input-group-addon\\\">\\n <pr-icon icon=\\\"'check'\\\" class=\\\"icon-success\\\" ng-if=\\\"form.new_password.$viewValue !== '' && form.new_password.$viewValue === formValues.confirmPassword\\\"></pr-icon>\\n <pr-icon icon=\\\"'x'\\\" class=\\\"icon-danger\\\" ng-if=\\\"!(form.new_password.$viewValue !== '' && form.new_password.$viewValue === formValues.confirmPassword)\\\"></pr-icon>\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !confirm-password-input -->\\n <password-check-hint password-valid=\\\"form.new_password.$valid && formValues.newPassword\\\"></password-check-hint>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-2\\\">\\n <button\\n type=\\\"submit\\\"\\n class=\\\"btn btn-primary btn-sm\\\"\\n ng-disabled=\\\"form.new_password.$viewValue === '' || form.$invalid || !formValues.newPassword || !formValues.confirmPassword || form.new_password.$viewValue !== formValues.confirmPassword\\\"\\n ng-click=\\\"updatePassword()\\\"\\n >Update password</button\\n >\\n </div>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/users/edit/user.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;","var _module_exports = \"<page-header title=\\\"'Users'\\\" breadcrumbs=\\\"['User management']\\\" reload=\\\"true\\\"> </page-header>\\n\\n<div class=\\\"row\\\" ng-if=\\\"isAdmin\\\">\\n <div class=\\\"col-lg-12 col-md-12 col-xs-12\\\">\\n <rd-widget>\\n <rd-widget-header icon=\\\"plus\\\" title-text=\\\"Add a new user\\\"> </rd-widget-header>\\n <rd-widget-body>\\n <form name=\\\"form\\\" class=\\\"form-horizontal\\\">\\n <!-- name-input -->\\n <div class=\\\"form-group\\\">\\n <label for=\\\"username\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">\\n Username\\n <portainer-tooltip ng-if=\\\"AuthenticationMethod === 2\\\" message=\\\"'Username must exactly match username defined in external LDAP source.'\\\"></portainer-tooltip>\\n </label>\\n <div class=\\\"col-sm-8\\\">\\n <div class=\\\"input-group\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"username\\\"\\n ng-model=\\\"formValues.Username\\\"\\n ng-change=\\\"checkUsernameValidity()\\\"\\n placeholder=\\\"e.g. jdoe\\\"\\n auto-focus\\n data-cy=\\\"user-usernameInput\\\"\\n />\\n <span class=\\\"input-group-addon\\\">\\n <pr-icon mode=\\\"'success'\\\" icon=\\\"'check'\\\" ng-if=\\\"state.validUsername\\\"></pr-icon>\\n <pr-icon mode=\\\"'danger'\\\" icon=\\\"'x'\\\" ng-if=\\\"!state.validUsername\\\"></pr-icon>\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !name-input -->\\n <!-- new-password-input -->\\n <div class=\\\"form-group\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n <label for=\\\"password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Password</label>\\n <div class=\\\"col-sm-8\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"formValues.Password\\\"\\n id=\\\"password\\\"\\n name=\\\"password\\\"\\n ng-minlength=\\\"requiredPasswordLength\\\"\\n data-cy=\\\"user-passwordInput\\\"\\n />\\n </div>\\n </div>\\n <!-- !new-password-input -->\\n <!-- confirm-password-input -->\\n <div class=\\\"form-group\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n <label for=\\\"confirm_password\\\" class=\\\"col-sm-3 col-lg-2 control-label required text-left\\\">Confirm password</label>\\n <div class=\\\"col-sm-8\\\">\\n <div class=\\\"input-group\\\">\\n <input\\n type=\\\"password\\\"\\n class=\\\"form-control form-control--has-icon\\\"\\n ng-model=\\\"formValues.ConfirmPassword\\\"\\n id=\\\"confirm_password\\\"\\n data-cy=\\\"user-passwordConfirmInput\\\"\\n />\\n <span class=\\\"input-group-addon\\\">\\n <pr-icon\\n mode=\\\"'success'\\\"\\n icon=\\\"'check'\\\"\\n aria-hidden=\\\"true\\\"\\n ng-if=\\\"form.password.$viewValue !== '' && form.password.$viewValue === formValues.ConfirmPassword\\\"\\n ></pr-icon>\\n <pr-icon\\n mode=\\\"'danger'\\\"\\n icon=\\\"'x'\\\"\\n aria-hidden=\\\"true\\\"\\n ng-if=\\\"!(form.password.$viewValue !== '' && form.password.$viewValue === formValues.ConfirmPassword)\\\"\\n ></pr-icon>\\n </span>\\n </div>\\n </div>\\n </div>\\n <!-- !confirm-password-input -->\\n\\n <!-- password-check-hint -->\\n <div class=\\\"form-group\\\" ng-if=\\\"AuthenticationMethod === 1\\\">\\n <div class=\\\"col-sm-3 col-lg-2\\\"></div>\\n <div class=\\\"col-sm-8\\\">\\n <password-check-hint password-valid=\\\"form.password.$valid && formValues.Password\\\"></password-check-hint>\\n </div>\\n </div>\\n <!-- ! password-check-hint -->\\n\\n <!-- admin-checkbox -->\\n <div class=\\\"form-group\\\" ng-if=\\\"isAdmin\\\">\\n <div class=\\\"col-sm-12\\\">\\n <por-switch-field\\n label-class=\\\"'col-sm-3 col-lg-2 control-label text-left'\\\"\\n checked=\\\"formValues.Administrator\\\"\\n label=\\\"'Administrator'\\\"\\n tooltip=\\\"'Administrators have access to Portainer settings management as well as full control over all defined environments and their resources.'\\\"\\n on-change=\\\"(handleAdministratorChange)\\\"\\n ></por-switch-field>\\n </div>\\n </div>\\n <!-- !admin-checkbox -->\\n <!-- teams -->\\n <div class=\\\"form-group\\\" ng-if=\\\"!formValues.Administrator\\\">\\n <label class=\\\"col-sm-3 col-lg-2 control-label text-left\\\" for=\\\"teams-selector\\\">Add to team(s)</label>\\n <div class=\\\"col-sm-8\\\">\\n <span class=\\\"small text-muted\\\" ng-if=\\\"teams.length === 0\\\">\\n You don't seem to have any teams to add users into. Head over to the <a ui-sref=\\\"portainer.teams\\\">Teams view</a> to create some.\\n </span>\\n <teams-selector\\n ng-if=\\\"teams.length > 0\\\"\\n value=\\\"formValues.TeamIds\\\"\\n teams=\\\"teams\\\"\\n placeholder=\\\"'Select one or more teams'\\\"\\n data-cy=\\\"'user-teamSelect'\\\"\\n on-change=\\\"(onChangeTeamIds)\\\"\\n input-id=\\\"'teams-selector'\\\"\\n disabled=\\\"teamSync\\\"\\n ></teams-selector>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-if=\\\"teamSync\\\">\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"small\\\">\\n <p class=\\\"small text-muted vertical-center\\\">\\n <pr-icon icon=\\\"'alert-circle'\\\" class-name=\\\"'icon-warning =vertical-center'\\\"></pr-icon>\\n The team leader feature is disabled as external authentication is currently enabled with team sync.\\n </p>\\n </span>\\n </div>\\n </div>\\n <!-- !teams -->\\n <div class=\\\"form-group\\\" ng-if=\\\"isAdmin && !formValues.Administrator && formValues.Teams.length === 0\\\">\\n <div class=\\\"col-sm-12\\\">\\n <span class=\\\"small text-muted vertical-center\\\">\\n <pr-icon class=\\\"vertical-center\\\" icon=\\\"'alert-circle'\\\" aria-hidden=\\\"true\\\" mode=\\\"'primary'\\\" size=\\\"'md'\\\"></pr-icon>\\n <span\\n >Note: non-administrator users who aren't in a team don't have access to any environments by default. Head over to the\\n <a ui-sref=\\\"portainer.endpoints\\\">Environments view</a> to manage their accesses.</span\\n >\\n </span>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"btn btn-primary btn-sm !ml-0\\\"\\n ng-disabled=\\\"state.actionInProgress || !state.validUsername || formValues.Username === '' || (AuthenticationMethod === 1 && (!formValues.Password || form.$invalid || formValues.Password !== formValues.ConfirmPassword))\\\"\\n ng-click=\\\"addUser()\\\"\\n button-spinner=\\\"state.actionInProgress\\\"\\n data-cy=\\\"user-createUserButton\\\"\\n >\\n <span ng-hide=\\\"state.actionInProgress\\\" class=\\\"vertical-center icon-white\\\"> <pr-icon icon=\\\"'plus'\\\" aria-hidden=\\\"true\\\" size=\\\"'md'\\\"></pr-icon> Create user</span>\\n <span ng-show=\\\"state.actionInProgress\\\">Creating user...</span>\\n </button>\\n <span class=\\\"text-danger\\\" ng-if=\\\"state.userCreationError\\\">\\n <pr-icon icon=\\\"'alert-circle'\\\" aria-hidden=\\\"true\\\" mode=\\\"'primary'\\\" size=\\\"'md'\\\"></pr-icon> {{ state.userCreationError }}\\n </span>\\n </div>\\n </div>\\n </form>\\n </rd-widget-body>\\n </rd-widget>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <users-datatable\\n title-text=\\\"Users\\\"\\n title-icon=\\\"user\\\"\\n dataset=\\\"users\\\"\\n table-key=\\\"users\\\"\\n order-by=\\\"Username\\\"\\n authentication-method=\\\"AuthenticationMethod\\\"\\n remove-action=\\\"removeAction\\\"\\n is-admin=\\\"isAdmin\\\"\\n ></users-datatable>\\n </div>\\n</div>\\n\";;\nvar path = 'app/portainer/views/users/users.html';\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, _module_exports) }]);\nmodule.exports = path;"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","_path","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","xmlns","width","height","fill","viewBox","d","_rect","_path2","x","rx","fillRule","clipRule","_g","_defs","clipPath","stroke","strokeLinecap","strokeLinejoin","strokeWidth","style","fillOpacity","_path3","_path4","x1","x2","y1","y2","gradientUnits","stopColor","offset","stopOpacity","_path5","_path6","_path7","gradientTransform","transform","opacity","strokeOpacity","categories","DimensionConfig","setPortainerStatus","instanceID","version","setCustomDimension","PortainerInstanceID","PortainerVersion","setUserRole","role","PortainerUserRole","clearUserRole","deleteCustomDimension","setUserEndpointRole","PortainerEndpointUserRole","clearUserEndpointRole","dimensionId","value","push","toString","name","window","_len","args","Array","_key","_paq","concat","trackEvent","action","properties","metadata","dimensions","category","parsed","parseInt","Number","isNaN","includes","metadataString","kebabCasedMetadata","fromEntries","entries","_ref","_ref2","_kebabCase","JSON","stringify","toLowerCase","API_ENDPOINT_AUTH","API_ENDPOINT_BACKUP","API_ENDPOINT_CUSTOM_TEMPLATES","API_ENDPOINT_EDGE_GROUPS","API_ENDPOINT_EDGE_JOBS","API_ENDPOINT_EDGE_STACKS","API_ENDPOINT_EDGE_TEMPLATES","API_ENDPOINT_ENDPOINTS","API_ENDPOINT_ENDPOINT_GROUPS","API_ENDPOINT_KUBERNETES","API_ENDPOINT_MOTD","API_ENDPOINT_REGISTRIES","API_ENDPOINT_RESOURCE_CONTROLS","API_ENDPOINT_SETTINGS","API_ENDPOINT_STACKS","API_ENDPOINT_SUPPORT","API_ENDPOINT_USERS","API_ENDPOINT_TAGS","API_ENDPOINT_TEAMS","API_ENDPOINT_TEAM_MEMBERSHIPS","API_ENDPOINT_TEMPLATES","API_ENDPOINT_WEBHOOKS","PAGINATION_MAX_ITEMS","APPLICATION_CACHE_VALIDITY","CONSOLE_COMMANDS_LABEL_PREFIX","PREDEFINED_NETWORKS","PORTAINER_FADEOUT","trimVersionTag","fullName","versionIdx","lastIndexOf","indexOf","substring","trimSHA","imageName","_split","joinCommand","command","undefined","join","taskStatusBadge","text","status","_toLower","nodeStatusBadge","hideShaSum","split","commandStringToArray","input","sep","keepQuotes","separator","singleQuoteOpen","doubleQuoteOpen","tokenBuffer","ret","arr","element","matches","match","splitargs","commandArrayToString","array","elem","colors","hex","slice","FOREGROUND_COLORS_BY_ANSI","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","BACKGROUND_COLORS_BY_ANSI","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBrightBlack","bgBrightRed","bgBrightGreen","bgBrightYellow","bgBrightBlue","bgBrightMagenta","bgBrightCyan","bgBrightWhite","TIMESTAMP_LENGTH","Colors","Grey","Magenta","Yellow","Green","Red","Blue","spaceSpan","formatTime","time","spans","line","nl","date","timestampInMilliseconds","format","Date","fgColor","formatLevel","level","levelSpan","fontWeight","logLevelToSpan","formatCaller","caller","trim","_takeRight","formatMessage","message","hasKeys","formatKeyValuePair","isLastKey","strValue","formatStackTrace","stackTrace","lines","forEach","func","lineNumber","keyRegex","ZerologRegex","regs","flags","from","Set","r","RegExp","concatRegex","formatZerologLogs","rawText","withTimestamps","timestamp","_slicedToArray","_extractPairs","messageAndPairs","pairs","_messageAndPairs$spli2","rawPairs","matchAll","m","idx","rawKey","start","index","end","extractPairs","_extractPairs2","stackTraceIndex","findIndex","p","parse","splice","_ref3","defaultOptions","splitter","formatLogs","rawLogs","stripHeaders","_ref$splitter","logs","replace","stripHeadersFunc","startsWith","error","bgColor","tokens","tokenize","formattedLogs","token","type","fgAnsi","bgAnsi","cssColorFromRgb","extendedColorForToken","tokenLine","stripEscapeCodes","json","stack_trace","_without","removeKnownKeys","formatJSONLine","_toConsumableArray","test","rgb","_rgb","g","b","colorMode","colorRef","NEW_LINE_BREAKER","BROWSER_OS_PLATFORM","concatLogsToString","formatFunc","reduce","acc","formattedLine","_regeneratorRuntime","t","n","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","v","values","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","ping","_x","_ping","fn","_callee","environmentId","_context","axios","get","t0","parseAxiosError","self","err","HelmIcon","_jsx","BadgeIcon","icon","helm","nodeAffinityValues","operator","KubernetesPodNodeAffinityNodeSelectorRequirementOperators","IN","NOT_IN","EXISTS","DOES_NOT_EXIST","GREATER_THAN","LOWER_THAN","KubernetesApplicationTypes","Deployment","StatefulSet","DaemonSet","Pod","Helm","KubernetesApplicationDeploymentTypes","Global","Replicated","KubernetesApplicationDataAccessPolicies","Isolated","Shared","KubernetesApplicationServiceTypes","ClusterIP","NodePort","LoadBalancer","ExternalName","AccessHeaders","requiresAuthHook","transitionService","onBefore","checkAuthorizations","_checkAuthorizations","transition","authService","stateTo","$state","access","injector","to","router","stateService","data","isAccess","init","console","isPureAdmin","isAdmin","hasAuthorizations","isArray","every","BoxSelectorAngular","template","bindings","onChange","options","radioName","slim","require","formCtrl","controller","BoxSelectorController","$scope","_classCallCheck","handleChange","$inject","limitedToBE","_this","$evalAsync","$setValidity","buildOption","label","description","feature","BoxSelectorReact","react2angular","BoxSelector","boxSelectorModule","angular","component","PortainerError","_Error","_inherits","_super","msg","_assertThisInitialized","_wrapNativeSuper","isPortainerError","getValueAsArrayOfStrings","promiseSequence","promises","promise","nextPromise","isFulfilled","result","isRejected","pluralize","val","word","plural","addPlural","baseUrl","protocol","location","baseHref","hostname","port","displayPort","getBaseUrl","dockerWebhookUrl","baseStackWebhookUrl","stackWebhookUrl","createWebhookId","uuid","baseEdgeStackWebhookUrl","WebhookHelperFactory","returnWebhookUrl","getBaseStackWebhookUrl","returnStackWebhookUrl","_asyncToGenerator","BASE_URL","configureFDO","_configureFDO","formValues","post","configureDevice","_x2","_x3","_configureDevice","_callee2","deviceId","deviceConfig","_context2","createProfile","_x4","_x5","_x6","_createProfile","_callee3","profileFileContent","payload","_context3","params","getProfiles","_getProfiles","_callee4","_yield$axios$get","profiles","_context4","getProfile","_x7","_getProfile","_callee5","profileId","_yield$axios$get2","profile","_context5","deleteProfile","_x8","_deleteProfile","_callee6","_context6","delete","updateProfile","_x9","_x10","_x11","_updateProfile","_callee7","_context7","put","duplicateProfile","_x12","_duplicateProfile","_callee8","_yield$axios$post","_context8","configureAMT","_configureAMT","getAMTInfo","_getAMTInfo","amtInformation","enableDeviceFeatures","_enableDeviceFeatures","deviceGUID","features","featuresPayload","authorizationResponse","portainerCacheHeader","storage","buildMemoryStorage","cache","store","clear","headerInterpreter","headers","CACHE_DURATION","Axios","baseURL","updateAxiosAdapter","useCache","defaults","setupCache","ttl","methods","cachePredicate","containsHeaders","_defineProperty","ignoreUrls","responseMatch","res","_res$config$url","config","url","interceptors","request","use","dispatchCacheRefreshEventIfNeeded","loadProgressBar","agentTargetHeader","agentInterceptor","newConfig","_objectSpread","portainerAgentTargetHeader","portainerAgentManagerOperation","response","_error$response","UNAUTHENTICATED_ROUTES","some","route","hash","reload","parseError","defaultErrorParser","resultErr","resultMsg","isAxiosError","_parseError","details","axiosError","_axiosError$response","_axiosError$response4","_axiosError$response5","isDefaultResponse","_axiosError$response2","_axiosError$response3","arrayToJson","json2formData","formData","FormData","File","append","CACHE_REFRESH_EVENT","dispatchCacheRefreshEvent","dispatchEvent","CustomEvent","agentTargetQueue","agentManagerOperation","agentTargetLastValue","registryAuthenticationHeader","registryAuthentication","setRegistryAuthenticationHeader","headerValue","lastValue","shift","setPortainerAgentTargetHeader","setPortainerAgentManagerOperation","set","resetAgentHeaders","HttpRequestHelperAngular","addNotification","notificationsStore","getState","notifySuccess","title","saveNotification","toastr","sanitize","_escape","notifyWarning","timeOut","notifyError","fallbackText","prop","_get","pickErrorMsg","closeButton","progressBar","tapToDismiss","escapeHtml","closeHtml","success","warning","Notifications","notif","timeStamp","userId","localStorageGet","_getTags","buildUrl","createTag","_createTag","tag","tagKeys","all","useTags","select","_ref$enabled","enabled","useQuery","getTags","staleTime","withError","useTagsForEnvironment","_useTags","tags","filter","Endpoints","isLoading","useCreateTagMutation","queryClient","useQueryClient","useMutation","mutationOptions","withInvalidate","useUserMembership","getUserMemberships","useIsCurrentUserTeamLeader","user","useCurrentUser","isAdminQuery","useIsEdgeAdmin","query","Id","memberships","membership","Role","TeamRole","Leader","useUsers","includeAdministrator","getUsers","meta","userQueryKeys","base","me","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","obj","hint","prim","toPrimitive","String","_toPrimitive","_toPropertyKey","getOwnPropertyDescriptors","defineProperties","useLoadCurrentUser","getCurrentUser","_getCurrentUser","useUser","getUser","_getUser","filterNonAdministratorUsers","users","isEdgeAdmin","environment","EdgeAdmin","isEdgeEnvironment","Type","Admin","_getUsers","includeAdministrators","_args","_getUserMemberships","entity","applySetStateAction","applier","fallbackMessage","onError","withGlobalError","queryKeysToInvalidate","skipRefresh","onSuccess","invalidateQueries","option","mergeOptions","handleError","errorMeta","_ref2$title","QueryClient","mutationCache","MutationCache","variable","context","mutation","_mutation$meta","queryCache","QueryCache","_mutation$meta2","Component","propNames","Controller","_camelCase","$element","$q","isDestroyed","el","$onChanges","toProps","ReactDOM","StrictMode","children","$onDestroy","r2a","withControlledInput","WrappedComponent","controlledValueOnChangePairs","keysToControl","WrapperComponent","_useState2","useState","controlledValues","setControlledValues","handlers","useMemo","valueKey","onChangeKey","useEffect","toUpdate","withCurrentUser","UserProvider","withReactQuery","_defineProperties","descriptor","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","withFormValidation","ngModule","componentName","schemaBuilder","isPrimitive","reactComponentName","_upperFirst","kebabName","propsWithErrors","createFormValidatorController","createFormValidationComponent","FormValidatorController","$async","instance","Constructor","runValidation","protoProps","_$onChanges","_runValidation","_handleChange","newValues","_this$onChange","_this2","_this2$form","schema","_this2$form2","form","validationData","validate","errors","changes","currentValue","_validate","validateForm","object","defaultQueryClient","QueryClientProvider","client","withUIRouter","UIRouterContextComponent","nanNumberSchema","errorMessage","number","typeError","getSchemeFromPort","endsWith","processItemsInBatches","_processItemsInBatches","items","processor","batchSize","batch","batchPromises","item","semverCompare","localeCompare","numeric","sensitivity","caseFirst","isVersionSmaller","confirmStackUpdate","_confirmStackUpdate","defaultValue","openSwitchPrompt","confirmButton","buildConfirmButton","modalType","ModalType","Warn","pullImage","StackType","StackStatus","alertSettings","container","header","body","CheckCircle","XCircle","AlertCircle","warn","AlertTriangle","Alert","color","className","_alertSettings$color","AlertContainer","clsx","_jsxs","_Fragment","AlertHeader","Icon","AlertBody","hasTitle","_ref4","BEFeatureIndicator","featureId","_ref$showIcon","showIcon","_ref$className","_getFeatureDetails","getFeatureDetails","href","rel","Briefcase","BE_URL","isLimitedToBE","BETeaserButton","heading","buttonText","buttonClassName","TooltipWithChildren","BEFeatureID","Button","size","onClick","disabled","typeClasses","danger","successSecondary","warnSecondary","dangerSecondary","infoSecondary","Badge","_ref$type","_ref$size","iconClass","sizeClasses","iconSizeToClasses","BlocklistItem","isSelected","_ref$as","as","_objectWithoutProperties","_excluded","editor","Edit","iconType","upload","UploadCloud","git","GitIcon","edgeStackTemplate","FileText","customTemplate","Globe","kubernetes","Kubernetes","compose","DockerCompose","LimitedToBeBoxSelectorIndicator","_ref$showTooltip","showTooltip","Tooltip","BoxOption","_ref$onSelect","onSelect","tooltip","Check","checkIcon","selected","styles","root","checked","htmlFor","LogoIcon","BoxSelectorItem","_clsx","_ref$slim","_ref$checkIcon","_getFeatureDetails$li","featureUrl","ContentBox","Fragment","boxSelectorItem","business","limited","disabledWhenLimited","_onSelect","imageContainer","hiddenSpacingCount","hide","handleSelect","isMulti","_","optionValue","newValue","Code","showCopyButton","_useCopy","useCopy","handleCopy","copiedSuccessfully","copyButton","Copy","mode","theme","createTheme","settings","background","foreground","caret","selection","selectionMatch","gutterBackground","highlightTags","atom","string","special","brace","keyword","comment","variableName","yamlLanguage","LanguageSupport","StreamLanguage","yaml","dockerFileLanguage","dockerFile","shellLanguage","shell","CodeEditor","placeholder","readonly","_ref$height","isYaml","isDockerFile","isShell","extensions","TextTip","CopyButton","fadeDelay","copyText","indicatorPosition","CodeMirror","readOnly","basicSetup","highlightSelectionMatches","autocompletion","DashboardGrid","DashboardItem","pluralType","isRefetching","dataCy","Item","Loader2","Link","DetailsTable","_ref$headers","emptyMessage","Children","count","colSpan","Row","colClassName","columns","column","FallbackImage","src","fallbackIcon","alt","setError","HelpLink","docLink","_ref$target","docsUrl","useDocsUrl","_style","Placeholder","SvgIcons","dataflow","dockericon","laptopcode","ldap","linux","memory","restorewindow","sort","subscription","aws","xmlSpace","enableBackground","azure","civo","digitalocean","docker","dockercompose","ecr","github","gitlab","google","googlecloud","preserveAspectRatio","akamai","clipPathUnits","microsoft","microsofticon","openldap","proget","quay","kube","SvgIcon","spin","classes","isValidElementType","_Icon","svgIcon","Svg","iconName","toUpperCase","IconComponent","lucideIcons","InformationPanel","onDismiss","wrapperStyle","bodyClassName","Widget","WidgetBody","float","X","sizeStyles","xs","sm","md","InlineLoader","insightStore","createStore","persist","insightIDsClosed","addInsightIDClosed","insightIDClosed","state","currentIDsClosed","isClosed","insightID","keyBuilder","getStorage","localStorage","InsightsBox","content","insightCloseId","_useStore","useStore","Lightbulb","_ref$title","UISref","NavContainer","NavTabs","selectedId","_ref$justified","justified","find","hidden","active","parent","onKeyDown","tabIndex","ContextHelp","headerStyles","menuButton","menuIcon","HelpCircle","doc","useCurrentStateAndParams","versionQuery","useSystemVersion","ServerVersion","parts","docs","Breadcrumbs","breadcrumbs","breadcrumbsArray","crumb","renderCrumb","link","linkParams","createContext","HeaderContainer","Provider","NotificationsMenu","notificationsStoreState","removeNotification","clearUserNotifications","userNotifications","reducedNotifications","Menu","MenuButton","Bell","notificationStyles","badge","MenuList","menuList","notificationContainer","itemLast","stopPropagation","preventDefault","notifications","notification","MenuLink","onDelete","notificationId","notificationLink","anchorProps","useSref","ReachMenuLink","menuLink","notificationIcon","notificationBody","notificationTitle","notificationDetails","deleteButton","Trash2","timeCreated","valueOf","diff","Math","floor","now","interval","Moment","UserMenu","User","Username","ChevronDown","arrowDown","HeaderTitle","useContext","useHeaderContext","ddExtension","PageHeader","_ref$breadcrumbs","loading","onReload","useRouter","RefreshCw","ItemsPerPageSelector","showAll","_onChange","MAX_SAFE_INTEGER","calculatePageNumber","position","currentPage","paginationRange","totalPages","halfWay","ceil","PageButton","page","onPageChange","PageInput","_onSubmit","_useFormik","useFormik","initialValues","onSubmit","validateOnMount","validationSchema","required","max","min","handleSubmit","setFieldValue","isValid","Input","step","onKeyPress","PageSelector","pageCount","_ref$maxSize","maxSize","_ref$directionLinks","directionLinks","_ref$boundaryLinks","boundaryLinks","_ref$isInputVisible","isInputVisible","pages","ellipsesNeeded","pageNumber","generatePagesArray","last","PaginationControls","pageLimit","onPageLimitChange","isPageInputVisible","TLSFieldset","SwitchField","labelClass","tls","skipVerify","FormControl","inputId","caCertFile","FileUploadField","file","certFile","keyFile","partialValue","MAX_FILE_SIZE","certValidation","optional","withFileSize","when","is","tlsConfigValidation","optionalCert","boolean","default","TagButton","onRemove","removeTagBtn","TagSelector","_ref$allowCreate","allowCreate","tagsQuery","opt","Name","ID","createTagMutation","selectedTags","_compact","SelectComponent","Creatable","Select","tagId","hideSelectedOptions","closeMenuOnSelect","handleAdd","noOptionsMessage","formatCreateLabel","inputValue","onCreateOption","mutate","TeamsSelector","teams","team","PortainerSelect","editorConfig","mac","lin","win","TerminalTooltip","SliderTooltip","child","delay","_ref$zIndex","zIndex","Tippy","appendTo","tooltipCentered","messageHTML","placement","showOnCreate","hideOnClick","trigger","arrow","allowHTML","tooltipContainer","_ref$color","_ref$icon","_ref$inline","inline","_ref$childrenWrapperC","childrenWrapperClassName","getMode","lg","xl","_ref$position","setHtmlMessage","htmlMessage","dangerouslySetInnerHTML","__html","_uniqueId","onClickHandler","tooltipBeteaser","tooltipMessage","maxWidth","interactive","tagName","getAttribute","open","UsersSelector","getOptionLabel","getOptionValue","selectedUsers","isDisabled","otherEditorConfig","searchCmdLabel","WebEditorForm","_ref$titleContent","titleContent","hideTitle","DefaultTitle","FormError","FormSectionTitle","usePreventExit","initialValue","check","isChanged","cleanText","preventExit","useTransitionHook","confirmed","confirm","handler","event","returnValue","addEventListener","removeEventListener","Loading","useWidgetContext","WidgetTitle","MainComponent","Body","Footer","Title","Taskbar","ButtonWithRef","forwardRef","ref","mRef","_ref$disabled","ariaProps","sizeClass","getIconSize","ButtonGroup","ariaLabel","_ref$fadeDelay","_ref$displayText","displayText","_ref$indicatorPositio","copiedIndicator","fadeout","document","setCopiedSuccessfully","fadeoutTime","setTimeout","clearTimeout","navigator","clipboard","writeText","inputEl","createElement","appendChild","execCommand","removeChild","LoadingButton","loadingText","buttonProps","loadingButtonIcon","defaultIcon","AddButton","_ref$to","Plus","ColumnVisibilityMenu","table","columnsToHide","getAllColumns","col","getCanHide","isExpanded","Columns","Checkbox","getIsVisible","columnDef","_capitalize","colId","visible","setColumnVisibility","getColumnVisibilityState","hiddenColumns","columnVisibility","Datatable","dataset","_ref$renderTableSetti","renderTableSettings","_ref$renderTableActio","renderTableActions","disableSelect","_ref$getRowId","getRowId","defaultGetRowId","_ref$isRowSelectable","isRowSelectable","titleId","titleIcon","emptyContentLabel","_ref$initialTableStat","initialTableState","settingsManager","_ref$renderRow","renderRow","defaultRenderRow","highlightedItemId","noWidget","getRowCanExpand","_ref$onPageChange","_ref$totalCount","totalCount","_ref$isServerSidePagi","isServerSidePagination","_ref$extendTableOptio","extendTableOptions","pageSize","enableRowSelection","disabledSelect","getIsSelectionEnabled","allColumns","lastSelectedId","getIsAllRowsSelected","indeterminate","getIsSomeRowsSelected","getToggleAllRowsSelectedHandler","getRowModel","rows","row","getCanSelect","cell","getIsSelected","getIsSomeSelected","getToggleSelectedHandler","shiftKey","_table$getRowModel","rowsById","rowsToToggle","idA","idB","range","foundStart","foundEnd","getRowRange","isLastSelected","toggleSelected","enableHiding","tableInstance","useReactTable","initialState","pagination","pageIndex","sorting","sortBy","globalFilter","search","defaultColumn","enableColumnFilter","sortingFn","autoResetExpanded","globalFilterFn","defaultGlobalFilterFn","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getFacetedRowModel","getFacetedUniqueValues","getFacetedMinMaxValues","getExpandedRowModel","getColumnCanGlobalFilter","manualPagination","getSortedRowModel","tableState","goToPage","handlePageChangeRef","useRef","useLayoutEffect","current","highlightedItemIdRef","rowID","totalRows","_chunk","sub","getRowPage","useGoToHighlightedRow","handlePageChange","selectedItems","getSelectedRowModel","original","Table","Container","DatatableHeader","onSearchChange","setGlobalFilter","setSearch","searchValue","_renderTableActions","_renderTableSettings","DatatableContent","_renderRow","onSortChange","desc","setSortBy","DatatableFooter","onPageSizeChange","setPageSize","getPageCount","totalSelected","setPageIndex","TableRow","cells","getVisibleCells","columnId","filterValue","getValue","filterValueLower","headerGroups","getHeaderGroups","pageRowModel","headerGroup","HeaderRow","Content","emptyContent","SelectedRowsCount","_onPageChange","searchBar","SearchBar","tableActions","Actions","tableTitleSettings","TitleActions","ExpandableDatatableTableRow","renderSubRow","expandOnClick","toggleExpanded","getIsExpanded","getCanExpand","ExpandableDatatable","_ref$getRowCanExpand","expandOnRowClick","MultipleSelectionFilter","_ref$value","filterKey","_ref$menuTitle","menuTitle","Filter","MenuPopover","filterHOC","_ref2$column","getFilterValue","setFilterValue","flatRows","add","valueAsArray","createRowContext","RowProvider","useRowContext","_ref$placeholder","_useDebounce2","useDebounce","setSearchValue","Search","useSearchBarState","_useLocalStorage2","useLocalStorage","sessionStorage","TableActions","TableTitleActions","TableContainer","HeaderCell","TableHeaderCell","SettingsMenu","TableSettingsMenu","TableTitle","TableHeaderRow","TableContent","TableFooter","_ref$noWidget","_ref$isLoading","_ref$emptyContent","TableContentOneColumn","canSort","render","onSortClick","isSorted","_ref$isSortedDesc","isSortedDesc","renderFilter","SortWrapper","_ref2$onClick","_ref2$isSortedDesc","TableHeaderSortIcons","sorted","descending","TableColumnHeaderAngular","colTitle","_ref3$isSortedDesc","sortDirection","getIsSorted","_header$column$column","_header$column$column2","getCanSort","toggleSorting","flexRender","getContext","getCanFilter","_header$column$column3","SortDownIcon","activeSortIcon","sortIcon","SortUpIcon","quickActions","MoreVertical","TableSettingsMenuAutoRefresh","isCheckVisible","setIsCheckVisible","isEnabled","alertVisible","alertHidden","onTransitionEnd","buildNameColumn","nameKey","path","buildNameColumnFromObject","idParam","idGetter","_ref$idParam","_ref$idGetter","_ref$linkParamsBuilde","linkParamsBuilder","accessorKey","renderValue","enableSorting","hasOwn","buildExpandColumn","getCanSomeRowsExpand","getToggleAllRowsExpandedHandler","getIsAllRowsExpanded","ChevronUp","enableGlobalFilter","hiddenColumnsSettings","setHiddenColumns","refreshableSettings","autoRefreshRate","setAutoRefreshRate","createPersistedStore","storageKey","initialSortBy","sortableSettings","paginationSettings","useRepeater","refreshRate","onRefresh","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","intervalId","setIntervalId","stopRepeater","useCallback","clearInterval","startRepeater","setInterval","useTableState","_useSearchBarState2","useTableStateWithStorage","useTableStateWithoutStorage","defaultSortKey","_useState4","_useState6","_useState8","AutocompleteSelect","searchResults","searchTerm","setSearchTerm","setSelected","Combobox","ComboboxInput","autoComplete","ComboboxPopover","ComboboxList","ComboboxOption","ButtonSelector","group","OptionItem","_ref$bold","bold","defaultRef","resolvedRef","AdvancedMode","onSimpleModeClick","editorValue","convertToArrayOfStrings","List","parseDotEnvFile","readFileAsText","reader","FileReader","readAsText","onload","onerror","EnvironmentVariableItem","InputLabeled","needsDeletion","partial","SimpleMode","onAdvancedModeClick","canUndoDelete","InputList","isAddButtonHidden","FileEnv","onChooseFile","setFile","fileTooBig","accept","EnvironmentVariablesFieldset","simpleMode","setSimpleMode","envVarValidation","buildUniquenessTest","EnvironmentVariablesPanel","explanation","showHelpMessage","_ref$isFoldable","isFoldable","alertMessage","FormSection","defaultFolded","StackEnvironmentVariablesPanel","VALUE_REGEX","KEY_VALUE_REGEX","NEWLINES_REGEX","parseArrayOfStrings","variableString","parsedKeyValArr","_ref$required","fileRef","createRef","fileInput","files","click","fileButton","Upload","FileUploadForm","FormActions","_ref$submitLabel","submitLabel","_ref$loadingText","_ref$tooltip","setTooltipHtmlMessage","sizeClassLabel","sizeClassChildren","_ref$titleSize","titleSize","_ref$defaultFolded","titleClassName","setIsExpanded","ChevronRight","tailwindTitleSize","InputGroup","Addon","useInputGroupContext","ButtonWrapper","hasKey","isObject","_ref$itemBuilder","itemBuilder","defaultItemBuilder","_ref$renderItem","renderItem","renderDefaultItem","_ref$addLabel","addLabel","_ref$itemKeyGetter","itemKeyGetter","movable","_ref$canUndoDelete","textTip","_ref$isAddButtonHidde","addButtonDataCy","_ref$isDeleteButtonHi","isDeleteButtonHidden","deleteButtonDataCy","addButtonError","initialItemsCount","isAddButtonVisible","isDeleteButtonVisible","handleChangeItem","handleMove","handleMoveUp","ArrowUp","handleMoveDown","ArrowDown","handleRemoveItem","CanUndoDeleteButton","itemIndex","handleToggleNeedsDeletion","newItem","checkValidIndex","targetIndex","arrayMove","fromIndex","newItemValue","newItems","DefaultItem","handleDeleteClick","RotateCw","isMultiProps","MultiSelect","SingleSelect","isClearable","bindToBody","components","aria","selectedValue","_first","findSelectedOptions","ReactSelect","isOptionDisabled","menuPortalTarget","valueArr","flatMap","isGroup","_excluded2","selectedOptions","_onChange2","_ref$isCreatable","isCreatable","ReactSelectCreatable","classNamePrefix","Slider","_marks","visibleTooltip","marks","translateMinValue","RcSlider","handleRender","sliderTooltip","node","handleProps","SliderWithInput","_ref$min","_ref$step","_ref$visibleTooltip","valueAsNumber","Switch","_ref$name","fieldClass","switchClass","valueExplanation","toggleName","useCachedValidation","asyncValidate","valid","_validateForm","strict","abortEarly","yupToFormErrors","list","testContext","mapper","seen","duplicates","has","ValidationError","mixed","fileValidation","withFileExtension","allowedExtensions","fileExtension","Dialog","buttons","requireString","setCount","countRef","retFn","_loop","button","timeout","intervalID","Modal","Header","openDialog","_openDialog","openModal","CloseButton","onClose","useModalContext","ariaLabelledBy","DialogOverlay","isOpen","DialogContent","Destructive","SwitchPrompt","_ref$confirmButton","switchLabel","_ref$defaultValue","setValue","buildCancelButton","_openSwitchPrompt","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","openConfirm","_openConfirm","cancelButtonLabel","confirmDestructive","confirmWebEditorDiscard","confirmDelete","confirmUpdate","_confirmUpdate","callback","confirmChangePassword","counter","_openModal","modal","unmountComponentAtNode","userAgent","STACK_NAME_VALIDATION_REGEX","statusIcon","Status","UpdatesAvailable","UpToDate","Loader","UpdatesUnknown","ResourceType","createOwnershipColumn","accessorFn","_row$ResourceControl","ResourceControl","Ownership","ResourceControlOwnership","ADMINISTRATORS","ownershipIcon","ownership","PRIVATE","EyeOff","RESTRICTED","Users","Eye","confirmContainerDeletion","_confirmContainerDeletion","removeVolumes","startContainer","_startContainer","nodeName","urlBuilder","transformResponse","genericHandler","stopContainer","_stopContainer","endpointId","_args2","recreateContainer","_recreateContainer","_args3","PullImage","restartContainer","_restartContainer","_args4","killContainer","_killContainer","_args5","pauseContainer","_x13","_pauseContainer","_args6","resumeContainer","_x14","_x15","_resumeContainer","_args7","renameContainer","_x16","_x17","_x18","_renameContainer","_args8","removeContainer","_x19","_x20","_removeContainer","_callee9","containerId","_ref9","_yield$axios$delete","_args9","_context9","force","ContainerStatus","confirmImageExport","_confirmImageExport","getUniqueTagListFromImages","images","_uniq","image","RepoTags","imageContainsURL","buildImageFullURIFromModel","imageModel","registry","UseRegistry","Registry","buildImageFullURI","Image","ensureTag","RegistryTypes","GITHUB","namespace","Github","UseOrganisation","OrganisationName","URL","buildImageURIForGithub","GITLAB","slash","Gitlab","ProjectPath","buildImageURIForGitLab","QUAY","Quay","buildImageURIForQuay","ANONYMOUS","buildImageURIForOtherRegistry","buildImageFullURIWithRegistry","defaultTag","subAction","getInfo","_getInfo","useInfo","useIsWindows","OSType","useIsStandAlone","_info$Swarm","Swarm","NodeID","useIsSwarm","_info$Swarm2","useSystemLimits","_infoQuery$data","_infoQuery$data2","infoQuery","maxCpu","NCPU","maxMemory","MemTotal","_getVersion","useApiVersion","getVersion","useVersion","ApiVersion","parseFloat","convertServiceToConfig","service","_service$Spec","_service$Spec2","_service$Spec3","_service$Spec4","_service$Spec5","_service$Spec6","_service$Spec7","Spec","Labels","TaskTemplate","Mode","UpdateConfig","Networks","EndpointSpec","confirmServiceForceUpdate","_confirmServiceForceUpdate","pullLatest","EDGE_ASYNC_INTERVAL_USE_DEFAULT","isDefault","defaultFieldSettings","snapshot","EdgeAsyncIntervalsForm","_ref$isDefaultHidden","isDefaultHidden","_ref$readonly","_ref$fieldSettings","fieldSettings","pingIntervalOptions","useIntervalOptions","snapshotIntervalOptions","commandIntervalOptions","PingInterval","SnapshotInterval","CommandInterval","intervals","edgeAsyncIntervalsValidation","oneOf","checkinIntervalOptions","EdgeCheckinIntervalField","_ref$label","currentTarget","OsSelector","os","Linux","LayoutGrid","ScriptTabs","edgeKey","edgeId","commands","platform","_ref$asyncMode","asyncMode","_ref$onPlatformChange","onPlatformChange","agentDetails","useAgentDetails","agentSecret","agentVersion","cmd","EdgeScriptSettingsFieldset","hideIdGetter","showMetaFields","_useFormikContext","useFormikContext","GroupField","EdgeGroupsSelector","edgeGroupsIds","isGroupVisible","Dynamic","horizontal","tagsIds","edgeIdGenerator","Field","allowSelfSignedCertificates","edgePropertiesFormInitialValues","envVars","authEnabled","tlsEnabled","EdgeScriptForm","edgeInfo","showOsSelector","Formik","shape","commandsTabs","k8sLinux","useAsyncMode","agentShortVersion","getAgentShortVersion","allEnvVars","moreVars","ENV_VAR_SEPARATOR","buildEnvVars","metaEnvVars","idEnvVar","edgeIdVar","selfSigned","swarmLinux","env","buildDockerEnvVars","buildDefaultDockerEnvVars","standaloneLinux","swarmWindows","standaloneWindow","allowSelfSignedCerts","VAR_LIST_SEPARATOR","fieldName","initialOptions","setOptions","settingsQuery","useSettings","queryKeys","getEdgeGroups","_getEdgeGroups","useEdgeGroups","EnvVarsFieldset","envValue","preset","getDefaultValues","definitions","_v$select$find","TemplateSelector","_value$template","_value$template2","customTemplatesQuery","appTemplatesQuery","_useOptions","useCustomTemplates","edge","useAppTemplates","templates","Categories","TemplateType","_appTemplatesQuery$da","Description","getTemplate","_customTemplatesQuery","_appTemplatesQuery$da2","formatGroupLabel","GroupLabel","TemplateNote","note","CustomTemplateFieldset","Note","CustomTemplatesVariablesField","Variables","AppTemplateFieldset","Env","TemplateFieldset","setInitialValues","setValues","_initialValues$templa","_values$template","variables","getAppVariablesDefaultValues","getVariablesFieldDefaultValues","getInitialTemplateValues","_ref$isGroupVisible","selector","InnerSelector","valueGroups","StatusType","DeploymentType","EditorType","useAnalytics","telemetryQuery","usePublicSettings","EnableTelemetry","useCurrentEnvironment","useEnvironmentId","useEnvironment","debouncedValue","setDebouncedValue","onChangeDebounces","_debounce","withLimitToBE","defaultPath","isBE","go","useLimitToBE","localStoragePrefix","setItem","getItem","useStateWrapper","setInputValue","updateInputValue","UserContext","useIsPureAdmin","forceEnvironmentId","noEnvScope","envId","envScope","envQuery","useAuthorizations","authorizations","_envQuery$data","adminOnlyCE","authorized","useIsEnvironmentAdmin","_ref2$adminOnlyCE","_user$EndpointAuthori","authorizationsArray","userEndpointAuthorizations","EndpointAuthorizations","authorization","Authorized","_ref3$adminOnlyCE","_ref3$childrenUnautho","childrenUnauthorized","userQuery","providerState","KUBE_STACK_NAME_VALIDATION_REGEX","AnnotationsBeTeaser","FeatureId","K8S_ANNOTATIONS","newPort","serviceName","targetPort","nodePort","generateIndexedName","appName","isNameUnique","services","generateUniqueName","initialIndex","uniqueName","serviceFormDefaultValues","Headless","Namespace","StackName","Ports","ApplicationName","ApplicationOwner","Ingress","Selector","generateNewIngressesFromFormPaths","oldIngresses","newServicesPorts","oldServicesPorts","_structuredClone","oldIngressPaths","ingressPaths","ingressPath","IngressName","newPortsWithIngress","_port$ingressPaths","newIngresses","structuredClone","oldIngressPath","_newMatchingIng$Paths","Path","newMatchingIng","ingress","oldPathIndex","Paths","prependWithSlash","Host","newIngIndex","newIngresspaths","servicePort","newIngressPath","_newMatchingIng$Paths2","ServiceName","Port","PathType","getServicePatchPayload","oldService","newService","oldPayload","getServicePayload","newPayload","compare","labels","appNameLabel","appOwnerLabel","appStackNameLabel","apiVersion","kind","spec","ports","clusterIP","appStackIdLabel","appNoteAnnotation","appDeployMethodLabel","defaultDeploymentUniqueLabel","appRevisionAnnotation","unchangedAnnotationKeysForRollbackPatch","appKindToDeploymentTypeMap","kubernetesErrorParser","parseKubernetesAxiosError","useIsRBACEnabledQuery","getIsRBACEnabled","_getIsRBACEnabled","useIngressControllerClassMapQuery","allowedOnly","getIngressControllerClassMap","_getIngressControllerClassMap","controllerMaps","updateIngressControllerClassMap","_updateIngressControllerClassMap","ingressControllerClassMap","_yield$axios$put","typeOptions","KubernetesConfigurationKinds","CONFIGMAP","FileCode","SECRET","Lock","getIngresses","_getIngresses","ingresses","getIngressControllers","_getIngressControllers","_yield$axios$get3","ingresscontrollers","createIngress","_createIngress","updateIngress","_updateIngress","deleteIngresses","_deleteIngresses","ingressName","getSelfSubjectAccessReview","_getSelfSubjectAccessReview","namespaceName","verb","resource","accessReview","resourceAttributes","getServices","_getServices","clusterServices","useServicesForCluster","namespaceNames","settledServicesPromise","allSettled","lookupApplications","refetchInterval","_options$autoRefreshR","useServicesQuery","serviceNames","getService","useMutationDeleteServices","deleteServices","lookupapplications","getNamespaceServices","_getNamespaceServices","queryParams","_getService","Accept","_deleteServices","getMetricsForAllNodes","_getMetricsForAllNodes","_yield$axios$get4","nodes","getMetricsForNode","_getMetricsForNode","_yield$axios$get5","getMetricsForAllPods","_getMetricsForAllPods","_yield$axios$get6","pods","getMetricsForPod","_getMetricsForPod","_callee10","podName","_yield$axios$get7","pod","_context10","Option","HomepageFilter","_ref$filterOptions","filterOptions","placeHolder","useHomePageFilter","authorizedUsers","authorizedTeams","AccessControlForm","formNamespace","accessControlEnabled","PUBLIC","EditDetails","AccessControlPanelDetails","authorizedTeamIds","resourceControl","resourceType","_ref$isAuthorisedToFe","isAuthorisedToFetchUsers","inheritanceMessage","parentType","resourceId","ResourceId","ResourceControlType","Service","InheritanceMessage","truncate","Volume","Stack","removeEndpointIdFromStackResourceId","getInheritanceMessage","_ref2$Ownership","_ref2$UserAccesses","UserAccesses","restrictedToUsers","_ref2$TeamAccesses","TeamAccesses","restrictedToTeams","authorizedUserIds","useAuthorizedUsers","ra","UserId","TeamId","useTeams","teamsLength","unauthoisedTeams","teamsMessage","isFetched","userMessage","getOwnershipTooltip","stackName","firstUnderlineIndex","Info","AccessControlPanelForm","onCancelClick","onUpdateSuccess","updateAccess","applyResourceControlChange","accessControl","parseAccessControlFormData","_handleSubmit","validateOnChange","isSubmitting","Form","isPublicVisible","AccessControlPanel","disableOwnershipChange","_useReducer2","useReducer","isEditMode","toggleEditMode","isTeamLeader","isInherited","inheritedVolume","inheritedContainer","inheritedFromStack","checkIfInherited","restrictions","isPartOfRestrictedUsers","isLeaderOfAnyRestrictedTeams","ua","isSuccess","userMemberships","ta","TeamID","useRestrictions","isEditDisabled","_handleUpdateSuccess","publicOption","useOptions","nonAdminOptions","AccessTypeSelector","UsersField","TeamsField","overrideTooltip","_ref$isPublicVisible","_useCurrentUser","_useLoadState","useLoadState","partialValues","withNamespace","ownershipParameters","parseOwnershipParameters","updateResourceControl","_createResourceControl","createResourceControl","applyResourceControl","accessControlData","resourceControlId","subResourcesIds","_updateResourceControl","ResourceControlViewModel","_createClass","Public","System","determineOwnership","adminOnly","publicOnly","administratorsOnly","public","currentUserId","defaultValues","getGitCredentials","_getGitCredentials","buildGitUrl","useGitCredentials","credentialId","CommonFields","Logo","change","validation","currentTemplateId","_ref2$templates","TEMPLATE_NAME_VALIDATION_REGEX","CustomTemplatesVariablesDefinitionField","isVariablesNamesFromParent","isNameReadonly","errorObj","of","VariableFieldItem","definition","_value$find","getError","fieldValue","platformOptions","Platform","LINUX","WINDOWS","PlatformField","DockerSwarm","TemplateTypeSelector","isTemplateVariablesEnabled","getTemplateVariables","templateStr","_validateAndParse","Mustache","validateAndParse","_validateAndParse2","intersectVariables","newVariables","oldVariablesWithLabel","_uniqBy","_ref5","renderTemplate","_ref6","def","escape","useDeleteEnvironmentsMutation","environments","resp","deleteEnvironments","deleted","_deleteEnvironments","endpoints","getGroups","_getGroups","groups","useGroups","getEnvironments","_getEnvironments","limit","_ref$sort","_ref$query","totalAvailable","updateAvailable","by","order","tagIds","endpointIds","getAgentVersions","_getAgentVersions","getEndpoint","_getEndpoint","endpoint","snapshotEndpoints","_snapshotEndpoints","getDeploymentOptions","_getDeploymentOptions","_endpoint$DeploymentO","publicSettings","getPublicSettings","GlobalDeploymentOptions","perEnvOverride","DeploymentOptions","overrideGlobalOptions","forceUpdateService","_forceUpdateService","_callee11","serviceID","_context11","environmentQueryKeys","registries","useSystemStatus","Version","AgentSecret","useEnvironmentDeploymentOptions","ENVIRONMENTS_POLLING_INTERVAL","SortOptions","isSortType","getSortType","refetchIfAnyOffline","EnvironmentStatus","Down","useEnvironmentList","_ref$page","_ref$pageLimit","_useQuery","environmentTypesArray","types","EnvironmentType","Docker","AgentOnDocker","Azure","EdgeAgentOnDocker","KubernetesLocal","AgentOnKubernetes","EdgeAgentOnKubernetes","keepPreviousData","useEnvironmentRegistries","queryOptions","useGenericRegistriesQuery","_getEnvironmentRegistries","getEnvironmentRegistries","useUpdateEnvironmentMutation","updateEnvironment","_updateEnvironment","uploadTLSFilesForEndpoint","TLSCACert","TLSCert","TLSKey","_uploadTLSFilesForEndpoint","tlscaCert","tlsCert","tlsKey","uploadCert","cert","folder","EdgeTypes","EnvironmentCreationTypes","PlatformType","BetaAlert","isHtml","betaIcon","getPlatformType","envType","isKubernetesEnvironment","getPlatformTypeName","isAgentEnvironment","isEdgeAsync","Edge","AsyncMode","isUnassociatedEdgeEnvironment","EdgeID","isLocalEnvironment","isDockerAPIEnvironment","getDashboardRoute","getPlatformRoute","_useField2","useField","fieldProps","metaProps","helpers","groupsQuery","Edition","FeatureState","process","currentEdition","CE","_init","edition","_features","K8S_RESOURCE_POOL_LB_QUOTA","BE","K8S_RESOURCE_POOL_STORAGE_QUOTA","K8S_CREATE_FROM_KUBECONFIG","KAAS_PROVISIONING","K8SINSTALL","ACTIVITY_AUDIT","EXTERNAL_AUTH_LDAP","HIDE_INTERNAL_AUTH","HIDE_INTERNAL_AUTHENTICATION_PROMPT","K8S_SETUP_DEFAULT","RBAC_ROLES","REGISTRY_MANAGEMENT","S3_BACKUP_SETTING","S3_RESTORE","TEAM_MEMBERSHIP","FORCE_REDEPLOYMENT","HIDE_AUTO_UPDATE_WINDOW","IMAGE_UP_TO_DATE_INDICATOR","STACK_PULL_IMAGE","STACK_WEBHOOK","CONTAINER_WEBHOOK","POD_SECURITY_POLICY_CONSTRAINT","HIDE_DOCKER_HUB_ANONYMOUS","CUSTOM_LOGIN_BANNER","K8S_EDIT_YAML","ENFORCE_DEPLOYMENT_OPTIONS","K8S_ADM_ONLY_USR_INGRESS_DEPLY","K8S_ADM_ONLY_SECRETS","K8S_ROLLING_RESTART","CA_FILE","K8S_REQUIRE_NOTE_ON_APPLICATIONS","selectShow","VISIBLE","LIMITED_BE","HIDDEN","withEdition","CredentialSelector","_gitCredentialsQuery$","gitCredentials","gitCredential","NewCredentialForm","SaveCredential","NewCredentialName","AuthFieldset","isAuthExplanationVisible","_useDebounce","RepositoryUsername","username","setUsername","_useDebounce3","RepositoryPassword","password","_useDebounce4","setPassword","RepositoryAuthentication","RepositoryGitCredentialID","gitAuthValidation","isAuthEdit","isCreatedFromCustomTemplate","auth","IntervalField","_useCaretPosition","setStart","setEnd","updateCaret","_node$current","selectionStart","selectionEnd","setSelectionRange","useCaretPosition","intervalValidation","WebhookSettings","docsLink","truncateLeftRight","ForceDeploymentSwitch","AutoUpdateSettings","environmentType","showForcePullImage","baseWebhookUrl","webhookId","webhookDocs","RepositoryMechanism","RepositoryFetchInterval","ForcePullImage","RepositoryAutomaticUpdatesForce","AutoUpdateFieldset","_ref$isForcePullVisib","isForcePullVisible","webhooksDocs","RepositoryAutomaticUpdates","parseAutoUpdateResponse","Interval","Webhook","ForceUpdate","transformAutoUpdateViewModel","viewModel","autoUpdateValidation","autoUpdates","mechanism","RepositoryWebhookId","_searchRepo","PathSelector","model","dirOnly","createdFromCustomTemplateId","creds","getAuthentication","repository","RepositoryURL","reference","RepositoryReferenceName","tlsSkipVerify","TLSSkipVerify","searchRepo","retry","cacheTime","useSearch","Boolean","RepositoryURLValid","ComposePathField","isCompose","isDockerStandalone","_useStateWrapper2","_checkRepo","_options$creds","gitCredentialId","GitFormUrlField","onChangeRepositoryValid","setForce","repoStatusQuery","onSettled","checkRepo","useCheckRepo","debouncedOnChange","RefreshCcw","AdditionalFileField","GitForm","_ref$environmentType","_ref$deployMethod","deployMethod","_ref$isDockerStandalo","isAdditionalFilesFieldVisible","_ref$errors","RefField","isUrlValid","ComposeFilePathInRepository","AdditionalFiles","AutoUpdate","TimeWindowDisplay","validateGitForm","_validateGitForm","buildGitValidationSchema","_unused","refFieldValidation","nullable","InfoPanel","configFilePath","_ref$additionalFiles","additionalFiles","_listRefs","_data","RefSelector","stackId","_useGitRefs","listRefs","useGitRefs","refs","unshift","Wrapper","tip","TimeWindowDisplayWrapper","currentEnvQuery","ChangeWindow","Enabled","timezone","moment","guess","isDST","_utcToTime","utcTime","parseInterval","startTime","tz","endTime","utcToTime","StartTime","EndTime","startTimeLocal","endTimeLocal","_parseInterval","startTimeUtc","endTimeUtc","shortTime","parseTime","originalTime","_originalTime$split2","startHour","startMin","setHours","setMinutes","toGitFormModel","ReferenceName","ConfigFilePath","Authentication","GitCredentialID","Password","confirmEnableTLSVerify","LicenseType","listeners","invalidated","_getLicenseInfo","_info","lastLoaded","abs","listener","useIntegratedLicenseInfo","_useNodesCount","useNodesCount","isLoadingNodes","_useNodesCount$data","nodesCount","_useLicenseInfo","getLicenseInfo","Trial","licenseInfo","usedNodes","newUserNotifications","removeNotifications","notificationIds","registryId","useRegistries","getRegistries","queryKey","fetcher","hideDefaultOverride","hideDefault","hideDefaultRegistryQuery","_settings$DefaultRegi","DefaultRegistry","Hide","DOCKERHUB","_getRegistries","getSettings","useUpdateSettingsMutation","updateSettings","useUpdateDefaultRegistrySettingsMutation","updateDefaultRegistry","useExperimentalSettings","experimental","getExperimentalSettings","_getExperimentalSettings","useUpdateExperimentalSettingsMutation","updateExperimentalSettings","_updateExperimentalSettings","_getPublicSettings","getGlobalDeploymentOptions","_getGlobalDeploymentOptions","_getSettings","_updateSettings","_updateDefaultRegistry","defaultRegistry","subResource","AuthenticationMethod","OAuthStyle","getNodesCount","_getNodesCount","getSystemStatus","_getSystemStatus","retryDelay","useIsDemo","DemoEnvironment","_getSystemVersion","getSystemVersion","AppTemplatesListItem","duplicateCustomTemplateType","SwarmStack","ComposeStack","getCustomTemplateType","TemplateItem","typeLabel","renderActions","appTemplateId","useSortAndFilterTemplates","listState","_listState$sortBy3","_listState$sortBy4","disabledTypes","filterByCategory","filterBySearch","_item$Note","_item$Name","filterByTemplateType","_listState$sortBy","_listState$sortBy2","sortMultiplier","sortByCategories","aCategory","bCategory","TemplateListSort","_value$id","_value$desc2","sortByContainer","sortByElement","_value$desc","sortButton","orderByFields","typeFilters","Filters","_ref$disabledTypes","_ref$fixedCategories","fixedCategories","_sortBy","templatesTypes","typeFiltersEnabled","setCategory","setTypes","AppTemplatesList","initialTemplates","templateLinkParams","setPage","filteredTemplates","pagedTemplates","registriesQuery","_getTemplatesWithRegistry","getTemplatesWithRegistry","_yield$getAppTemplate","getAppTemplates","TemplateViewModel","registryURL","reg","DockerHubViewModel","RegistryModel","_getAppTemplates","useFetchTemplateFile","fetchFilePreview","_fetchFilePreview","FileContent","setTemplatesV2","setTemplatesV3","templateV2ID","_data$volumes","_data$env","AdministratorOnly","administrator_only","getPlatform","logo","Repository","Hostname","PorImageRegistryModel","Command","Network","network","Privileged","privileged","Interactive","RestartPolicy","restart_policy","Hosts","hosts","envvar","_envvar$select$find","EnvVarType","PreSelected","Text","getEnvVarTypeAndValue","Volumes","volumes","_data$ports","portAndProtocol","hostAndContainerPort","hostPort","containerPort","templatePorts","Rocket","LinuxIcon","MicrosoftIcon","KubernetesIcon","CustomTemplatesListItem","isEditAllowed","CreatedByUserId","getTypeLabel","CustomTemplatesList","getCustomTemplate","_getCustomTemplate","useCustomTemplate","useCustomTemplateFile","getCustomTemplateFile","refetchOnReconnect","refetchOnWindowFocus","_getCustomTemplateGitFetch","getCustomTemplateGitFetch","_getCustomTemplateFileContent","getCustomTemplateFileContent","_getCustomTemplates","getCustomTemplates","_ref2$edge","onlyLedTeams","_ref$select","getTeams","useTeam","getTeam","useTeamMemberships","getTeamMemberships","useAddMemberMutation","teamId","userIds","createTeamMembership","Member","useRemoveMemberMutation","teamMemberships","UserID","deleteTeamMembership","useUpdateRoleMutation","updateTeamMembership","_createTeamMembership","_deleteTeamMembership","_updateTeamMembership","_getTeams","_getTeam","deleteTeam","_deleteTeam","createTeam","_createTeam","leaders","leaderId","_getTeamMemberships","ROOT_PATH","HostBrowserController","HostBrowserService","FileSaver","goToParent","browse","confirmDeleteFile","isRoot","getRelativePath","getFilesForPath","getFilesForPathAsync","downloadFile","downloadFileAsync","renameFile","renameFileAsync","deleteFile","deleteFileAsync","onFileSelectedForUpload","onFileSelectedForUploadAsync","rootPathRegex","parentPath","buildPath","ls","newName","filePath","newFilePath","rename","fileName","downloadData","Blob","saveAs","$onInit","_join","_slice","onFileUploaded","refreshList","autoNgTemplateLoaderTemplate1","templateUrl","NodeSelectorController","AgentService","agents","NodeName","VolumeBrowserController","volumeId","isUploadEnabled","HttpRequestHelper","VolumeBrowserService","renameAsync","download","downloadAsync","up","parentFolder","AgentViewModel","IPAddress","NodeRole","AgentFactory","$resource","StateManager","getAgentApiVersion","factory","BrowseFactory","browseGetResponse","responseType","AgentDockerhub","limits","HostFactory","AgentPingFactory","interceptor","responseError","AgentServiceFactory","Agent","AgentVersion1","agentApiVersion","$promise","hostInfo","HostBrowserServiceFactory","Browse","newPath","CurrentFilePath","NewFilePath","onProgress","AgentPingService","AgentPing","VolumeBrowserServiceFactory","BrowseVersion1","getBrowseService","volumeID","basePath","excludedPaths","$analyticsProvider","$windowProvider","$window","$get","pageTracking","trackRelativePath","api","setCustomVariable","varIndex","varName","scope","deleteCustomVariable","trackSiteSearch","searchCount","trackGoal","goalID","revenue","trackLink","linkType","registerSetUsername","registerPageTrack","registerEventTrack","registerExceptionTrack","stack","onStartupAngular","$rootScope","cfpLoadingBar","$transitions","originalSet","onStart","toList","treeChanges","toConfigs","viewService","_viewConfigs","vc","viewDecl","$context","$","ajaxSend","jqXhr","jqOpts","hasNoContentType","contentType","setRequestHeader","csrfCookie","cookieStore","innerHTML","head","prepend","csrfTokenHeader","csrfToken","csrfInterceptor","csrfTokenReaderInterceptorAngular","configApp","$urlRouterProvider","$httpProvider","localStorageServiceProvider","$uibTooltipProvider","$compileProvider","cfpLoadingBarProvider","reqConfig","setPrefix","patch","Terminal","applyAddon","fit","setTriggers","mouseenter","focus","outsideClick","includeSpinner","parentSelector","latencyThreshold","otherwise","TRUNCATE_LENGTH","truncateContainerName","setTruncateContainerName","hiddenQuickActions","setHiddenQuickActions","columnHelper","createColumnHelper","created","accessor","isoDateFromTimestamp","Created","host","linkProps","shortImageName","trimSHASum","ip","IP","TableSettingsContext","useTableSettings","getContextType","TableSettingsProvider","Names","shortName","_truncate","PublishedPortLink","hostURL","generateContainerURL","ExternalLink","stripTrailingSlash","_createRowContext","private","PublicURL","ContainerQuickActions","isActive","Starting","Running","Healthy","Unhealthy","showQuickActionLogs","showQuickActionInspect","showQuickActionStats","BarChart","showQuickActionExec","showQuickActionAttach","Paperclip","display","_settings$hiddenQuick","wrapperState","someOn","multiple","regex","hasHealthCheck","statusClassName","Paused","Stopped","Dead","Exited","getClassName","transformedStatus","StatusText","filterFn","snapshotQuery","plugins","rootQueryKeys","containers","containersQuery","containerQueryKeys","dockerQueryKeys","filters","gpus","_getContainerGpus","gpusQuery","getContainerGpus","useContainerGpus","useColumns","isHostColumnVisible","isGPUsColumnVisible","ContainersDatatableActions","isAddActionVisible","selectedItemCount","hasPausedItemsSelected","State","hasStoppedItemsSelected","hasRunningItemsSelected","executeActionOnContainerList","onStartClick","Play","onStopClick","Square","onKillClick","Slash","onRestartClick","onPauseClick","Pause","onResumeClick","_onRemoveClick","onRemoveClick","isOneContainerRunning","removeSelectedContainers","_executeActionOnContainerList","successMessage","_removeSelectedContainers","ContainersDatatableSettings","isRefreshVisible","toListViewModel","_response$Portainer","_response$Portainer2","_response$Portainer3","_Object$values$","_response$NetworkSett","_response$Ports","_response$Names","Portainer","NetworkSettings","createStatus","PublicPort","PrivatePort","names","Gpus","useShowGPUsColumn","environmentID","isDockerStandaloneQuery","ControlAvailable","enableGPUManagementQuery","EnableGPUManagement","QuickActionsSettings","actions","buildAction","useContainers","_getContainers","getContainers","_ref2$all","settingsStore","StatusMode","healthy","unhealthy","starting","GpusList","buildDockerUrl","buildProxyUrl","dockerAction","buildDockerProxyUrl","_getImages","withUsage","imageId","used","humanize","_item$tags","repoTags","tableKey","RemoveButtonMenu","positionRight","MenuItem","ImportExportButtons","isExportInProgress","onExportClick","Download","dateTime","isoDate","withMeta","isFilesTableMeta","EditForm","originalName","onSave","onReset","isEdit","custom","onRename","setIsEdit","Dir","onBrowse","Folder","FileIcon","hideIfCustom","onDownload","FilesTable","onGoToParent","isUploadAllowed","isEditState","setIsEditState","CornerLeftUp","Size","ModTime","editState","_e$target$files","CreatedAt","withGlobalFilter","isExternalStack","External","isRegularStack","Regular","isOrphanedStack","Orphaned","TableSettingsMenus","showOrphanedStacks","setShowOrphanedStacks","NameLink","Active","Inactive","_ref4$column","external","regular","orphaned","orphanedRunning","OrphanedRunning","ImageUpToDateTooltip","EnableImageNotification","_getStackImagesStatus","Message","StackImageStatus","enableImageNotificationQuery","_useStackImageNotific","getStackImagesStatus","isError","imageNotificationColumn","control","Warning","orphanedFilter","_item$ResourceControl","_item$IPAM$IPV4Config","_item$IPAM","IPAM","IPV4Configs","Subnet","_item$IPAM$IPV4Config2","_item$IPAM2","Gateway","_item$IPAM$IPV6Config","_item$IPAM3","IPV6Configs","_item$IPAM$IPV6Config2","_item$IPAM4","NestedTable","NestedDatatable","NestedNetworksDatatable","_getNetwork","networkId","_deleteNetwork","_disconnectContainer","Force","useDisconnectContainer","disconnectContainer","buildActions","disconnectMutation","isContainerNetworkTableMeta","connectContainer","_connectContainer","aliases","EndpointConfig","Aliases","_getNetworks","local","swarm","swarmAttachable","Scope","Attachable","NetworkSelector","_ref$additionalOption","additionalOptions","_ref$hiddenNetworks","hiddenNetworks","networksQuery","useNetworksForSelector","networks","isSwarmQuery","dockerApiVersion","getNetworks","useNetworks","ConnectNetworkForm","selectedNetworks","connectMutation","useConnectContainerMutation","isNetworkDefined","MacAddress","buildColumns","GlobalIPv6Address","IPv6Gateway","containersModule","extenders","ImageStatus","SERVICE","proxyQueryKeys","useNodes","_getNodes","getNodes","ConstraintModel","op","patterns","nodeId","nodeHostname","nodeRole","nodeLabels","engineLabels","eq","neq","matchesConstraint","constraint","matchesLabel","extractValue","_constraint$split$pop","extractCustomLabelKey","baseLabelKey","_constraint$split$shi","matchesServiceConstraints","_node$Description","_node$Spec","_node$Spec2","_node$Description2","Constraints","constraints","transformConstraints","Engine","encodeRegistryCredentials","credentials","btoa","updateService","_updateService","serviceId","rollback","ScaleForm","replicas","Replicas","_config$Mode","Model","onKeyUp","autoFocus","CheckSquare","ScaleServiceButton","Minimize2","schedulingMode","nodesQuery","tasks","Tasks","task","_task$Status","DesiredState","availableNodeCount","availableNodes","_node$Status","Availability","PublishedPort","TargetPort","environmentQuery","_item$Status","TaskTableQuickActions","taskId","_ref$state","slot","Slot","getNodeName","updated","TasksDatatable","getWebhooks","_getWebhooks","EndpointID","ResourceID","removeWebhooksForService","_removeWebhooksForService","webhooks","webhook","removeWebhook","_removeWebhook","_removeService","isUpdateActionVisible","removeMutation","ids","removeService","useRemoveServicesMutation","updateMutation","useForceUpdateServicesMutation","_handleUpdate","handleUpdate","_handleRemove","handleRemove","TableSettings","expanded","setExpanded","isTableMeta","getTableMeta","isAgent","servicesModule","isSlotColumnVisible","isSlotColumnsVisible","_ref$titleIcon","Shuffle","isStackColumnVisible","selectedRows","onExpandedChange","updater","withControlledSelected","rowSelection","onRowSelectionChange","haveAccessToNode","availability","engine","cpu","CPUs","networksModule","isIpColumnVisible","HardDrive","swarmModule","Trello","isBrowseVisible","dangling","volumesModule","isSwarm","Driver","Mountpoint","Database","Entrypoint","ExposedPorts","volume","getPairKey","getPairValue","health","Server","HeartPulse","FailingStreak","Log","Output","Box","_item$Subs","Subs","defColumns","hostColumn","imagesQuery","getImages","useImages","hasWriteAccessQuery","Clipboard","relativePath","Clock","isImageNotificationEnabled","canManageStacks","CreatedBy","UpdatedBy","Layers","allowSelection","componentsModule","systemNetworks","isSystemNetwork","networkName","NetworkDetailsTable","_network$IPAM","_network$IPAM2","onRemoveNetworkClicked","allowRemoveNetwork","ipv4Configs","DockerNetworkHelper","getIPV4Configs","Config","ipv6Configs","getIPV6Configs","Internal","getConfigDetails","IPRange","getAuxiliaryAddresses","AuxiliaryAddresses","configValue","auxiliaryAddresses","NetworkOptionsTable","networkEntries","tableHeaders","NetworkContainersTable","networkContainers","IPv4Address","IPv6Address","ContainersDatatable","IsPortainer","useContainer","_getContainer","getContainer","LogsDisabledInfoPanel","_useCurrentStateAndPa4","createWebhook","_createWebhook","WebhookType","_pullImage","ignoreErrors","authenticationDetails","imageURI","fromImage","createOrReplace","oldContainer","isReplace","_replace","_create","_containerResponse$Po","containerResponse","pullImageIfNeeded","alwaysPull","createAndStart","applyContainerSettings","enableWebhook","_containerResponse$Po2","extraNetworks","renameAndCreate","connectToExtraNetworks","_renameAndCreate","renamed","_applyContainerSettings","createContainerWebhook","_createAndStart","createContainer","_x21","_pullImageIfNeeded","pull","_x22","_x23","_x24","_createContainer","_x25","_x26","_x27","_createContainerWebhook","RegistryId","DockerContainer","getURL","getQuayUrl","getGithubUrl","isNumericPortBinding","isStringPortBinding","isValidPortRange","portRange","parsePortRange","portRangeString","stringPorts","intPorts","_map","parsePort","portPattern","useRegistry","_getRegistry","getRegistry","InputSearch","getIsDockerHubRegistry","SimpleForm","onChangeImage","registryUrl","getRegistryURL","isDockerHubRegistry","RegistrySelector","ImageField","DockerIcon","ImageFieldAutoComplete","imageOptions","isKnownRegistry","registryImages","_difference","getImagesForRegistry","_registry$Gitlab","_registry$Github","_registry$Github2","AdvancedForm","RateLimits","onRateLimit","registryQuery","RateLimitsInner","isAuthenticated","_ref2$isAuthenticated","_ref2$registryId","pullRateLimits","isValidForPull","_getLocalEnvironmentRateLimits","getLocalEnvironmentRateLimits","getEnvType","_getAgentEnvironmentRateLimits","getAgentEnvironmentRateLimits","getRateLimits","remaining","useRateLimits","ImageConfigFieldset","_getApiVersion","buildAgentUrl","NodeSelector","apiVersionQuery","getApiVersion","useAgentNodes","PortsMappingField","_ref$onChange","ArrowRight","BaseForm","onChangeName","onChangeImageName","isAgentOnSwarm","_environmentQuery$dat","useIsAgentOnSwarm","canUseWebhook","field","publishAllPorts","autoRemove","baseFormUtils","toRequest","oldConfig","portBindings","_forEach","portBinding","portInfo","containerPortRange","startPort","endPort","hostIp","hostAndPort","_split3","hostPortRange","startHostPort","endHostPort","extractPortInfo","_range","bindKey","HostIp","HostPort","parsePortBindingRequest","HostConfig","PublishAllPorts","PortBindings","AutoRemove","toViewModel","_config$Portainer","_config$HostConfig","_config$HostConfig2","_config$HostConfig3","parsedPorts","sortedPorts","_key$split2","containerPortNumber","binding","_binding$HostPort","parsePorts","rangePorts","nonRangePorts","sortPorts","lastPort","getRange","combinePorts","isDuplicating","isDuplicatingPortainer","isDockerhubRateLimited","accessControlSchema","bool","getDefaultViewModel","capabilities","CapabilitiesTab","cap","capabilitiesTabUtils","hideCapabilities","CapAdd","CapDrop","_getDefaults","getDefaults","missingCaps","consoleSettingTypes","ConsoleSettings","_getPlugins","useServicePlugins","systemOnly","pluginType","pluginVersion","systemPluginsQuery","Plugins","pluginsQuery","getPlugins","usePlugins","_pluginsQuery$data","systemPlugins","plugin","Interface","Types","aggregateData","LoggerConfig","pluginOptions","_ref2$item","entrypoint","workingDir","logConfig","getLogConfig","OverridableInput","override","CommandsTab","commandsTabUtils","LogConfig","WorkingDir","OpenStdin","Tty","getConsoleConfig","Cmd","LabelsTab","labelsTabUtils","CONTAINER_MODE","ContainerSelector","NetworkTab","networkMode","domain","macAddress","ipv4Address","ipv6Address","primaryDns","secondaryDns","hostsFileEntries","HostsFileEntryItem","networkTabUtils","fromContainerId","_oldConfig$Networking","hostName","Domainname","NetworkMode","Dns","ExtraHosts","NetworkingConfig","EndpointsConfig","IPAMConfig","al","_config$NetworkSettin","_config$Config","_config$Config2","runningContainers","_ref2$","_ref2$2","_getNetworkMode","_config$NetworkSettin2","_runningContainers$fi","networkContainerId","networkNames","getNetworkMode","_getNetworkMode2","_getNetworkMode2$","networkSettings","isWindows","DevicesField","pathOnHost","pathInContainer","NvidiaCapabilitiesOptions","GpuFieldset","_ref$gpus","_ref$usedGpus","usedGpus","usedAllGpus","enableGpuManagement","gpu","gpuCmd","devices","selectedGPUs","deviceStr","caps","gpuValue","capValue","onChangeValues","backspaceRemovesValue","actionMeta","_actionMeta$option","useSpecific","MultiValueRemove","_props$data","selectProps","gpuFieldsetUtils","deviceRequests","driver","otherDeviceRequests","deviceRequest","Count","DeviceIDs","Capabilities","_deviceRequest$Capabi","_o$Capabilities","toConfigMemory","decimals","tenth","pow","round","EPSILON","toViewModelMemory","toViewModelCpu","toConfigCpu","ResourceFieldset","_useSystemLimits","reservation","NanoCpus","MemoryReservation","Memory","resourcesValidation","_ref2$maxMemory","POSITIVE_INFINITY","_ref2$maxCpu","RuntimeSelector","Runtimes","runtime","RuntimeSection","allowPrivilegedMode","isInitFieldVisible","SysctlsField","ResourcesTab","isDevicesFieldVisible","isSysctlFieldVisible","renderLimits","isStandalone","gpuUseAll","gpuUseList","sysctls","sharedMemorySize","resources","resourcesTabUtils","Init","Runtime","Devices","device","PathOnHost","PathInContainer","CgroupPermissions","Sysctls","sysctl","ShmSize","DeviceRequests","toResourcesRequest","_config$HostConfig4","_config$HostConfig5","_config$HostConfig6","_config$HostConfig7","_config$HostConfig8","_config$HostConfig9","_config$HostConfig10","RestartPolicyTab","No","Always","OnFailure","UnlessStopped","restartPolicyTabUtils","volumeTypes","InputContext","_getVolumes","VolumeSelector","volumesQuery","getVolumes","useVolumes","vol1","vol2","vol","allowBindMounts","useInputContext","containerPath","VolumesTab","volumesTabUtils","validValues","binds","Binds","Mounts","mount","Source","Destination","RW","EnvVarsTab","envVarsTabUtils","_container$Config","restartPolicy","updateContainer","_updateContainer","EditResourcesForm","redeploy","isImageInvalid","savedInitValues","setSavedInitValues","_updateLimitsOrCreate","systemLimits","helper","resetForm","invalidateContainer","dirty","submitForm","settingUnlimitedResources","updateLimits","_updateLimits","MemorySwap","InnerForm","_ref$hideCapabilities","isDuplicate","tab","setTab","isEnvironmentAdminQuery","Settings","SecuritySettings","allowBindMountsForRegularUsers","allowPrivilegedModeForRegularUsers","allowDeviceMappingForRegularUsers","allowSysctlSettingForRegularUsers","ignoreCapabilities","CreateForm","_initialValuesQuery$i","isEnvironmentAdmin","setIsDockerhubRateLimited","useCreateOrReplaceMutation","initialValuesQuery","submitting","_fromContainer$Networ","_fromContainer$Config","_webhookQuery$data","_useCurrentStateAndPa2","fromContainerQuery","runningContainersQuery","webhookQuery","useWebhooks","fromContainer","_fromContainer$Id","imageConfig","findBestMatchRegistry","lastIndex","getImageConfig","useInitialValues","_useOldContainer","initialName","setName","debouncedName","timer","useDebouncedValue","oldContainerQuery","syncName","useOldContainer","useValidation","allowContainerCapabilitiesForRegularUsers","_initialValuesQuery$i2","sendAnalytics","containerImage","autoNgTemplateLoaderTemplate2","autoNgTemplateLoaderTemplate3","autoNgTemplateLoaderTemplate4","autoNgTemplateLoaderTemplate5","autoNgTemplateLoaderTemplate6","envInfoQuery","isSwarmManager","_containerQuery$data$","containerQuery","logsEnabled","$stateRegistryProvider","register","views","viewsModule","_network$Portainer","networkQuery","getNetwork","useNetwork","deleteNetworkMutation","deleteNetwork","filterContainersInNetwork","Containers","_onRemoveNetworkClicked","Options","reactModule","autoNgTemplateLoaderTemplate7","autoNgTemplateLoaderTemplate8","autoNgTemplateLoaderTemplate9","autoNgTemplateLoaderTemplate10","autoNgTemplateLoaderTemplate11","autoNgTemplateLoaderTemplate12","autoNgTemplateLoaderTemplate13","autoNgTemplateLoaderTemplate14","autoNgTemplateLoaderTemplate15","autoNgTemplateLoaderTemplate16","autoNgTemplateLoaderTemplate17","autoNgTemplateLoaderTemplate18","autoNgTemplateLoaderTemplate19","autoNgTemplateLoaderTemplate20","autoNgTemplateLoaderTemplate21","autoNgTemplateLoaderTemplate22","autoNgTemplateLoaderTemplate23","autoNgTemplateLoaderTemplate24","autoNgTemplateLoaderTemplate25","autoNgTemplateLoaderTemplate26","autoNgTemplateLoaderTemplate27","autoNgTemplateLoaderTemplate28","autoNgTemplateLoaderTemplate29","autoNgTemplateLoaderTemplate30","autoNgTemplateLoaderTemplate31","abstract","onEnter","EndpointService","SystemService","EndpointProvider","PortainerEndpointTypes","DockerEnvironment","AgentOnDockerEnvironment","EdgeAgentOnDockerEnvironment","Up","checkEndpointStatus","updateEndpoint","updateEndpointStatus","updateEndpointState","redirect","environmentName","clean","inherit","configs","controllerAs","configCreation","dashboard","events","imageBuild","imageImport","networkCreation","secrets","secret","secretCreation","serviceCreation","serviceLogs","stacks","stackContainer","stackCreation","swarmVisualizer","taskLogs","volumeBrowse","volumeCreation","ctrl","editModel","save","maximumRetryCount","updateRestartPolicy","agentCount","hostDetails","engineDetails","disks","refreshUrl","browseUrl","hostFeaturesEnabled","transclude","isBrowseEnabled","originalValue","removeLabel","onChangedLabels","updateLabel","originalKey","NodeService","LabelHelper","managerAddress","hasChanges","managerRole","updateNodeLabels","updateNodeAvailability","saveChanges","originalNode","fromKeyValueToLabelHash","updateNode","cancelChanges","porImageRegistryContainerController","DockerHubService","fetchRateLimits","setValidity","checkRateLimits","rateLimitExceeded","porImageRegistryController","ImageHelper","RegistryService","ImageService","onRegistryChange","onImageChange","$watch","prepareAutocomplete","_filter","_includes","_flatMap","imagesWithoutKnown","availableImages","displayedRegistryURL","showDefaultRegistry","_find","reloadRegistries","loadImages","inputClass","displayTimestamps","logCollectionChange","sinceTimestamp","lineCount","resourceName","availableSinceDatetime","subtract","copySupported","supported","logCollection","autoScroll","wrapLines","filteredLogs","selectedLines","handleLogsCollectionChange","handleLogsWrapLinesChange","handleDisplayTimestampsChange","copy","log","show","fadeOut","copySelection","clearSelection","selectLine","downloadLogs","logsAsString","applicationState","NetworkService","onChangeSelectedNodes","DatatableState","requiredNodeSelection","requiredConfigSelection","SelectedNetworkConfig","onChangeScope","provider","hasNetworks","availableNetworks","ConfigOnly","Sliders","Share2","MacvlanFormData","ParentNetworkCard","VolumesCIFSFormData","useCIFS","serverAddress","share","versions","versionsNumber","VolumesNFSFormData","useNFS","mountPoint","includeString","str","charCodeAt","strToHash","hashToHexColor","Ghost","createdBy","flattenConfig","ConfigID","ConfigName","FileName","Uid","UID","Gid","GID","credSpec","configConfig","createPortRange","portRangeText","colonIndex","substr","portBindingKeys","_keys","portBindingKeysByProtocol","_groupBy","portKey","portBindingKeysByHostIp","sortedPortBindingKeys","_orderBy","previousHostPort","previousContainerPort","portKeySplit","bindingHostPort","_flatten","_trimStart","isValidTag","createImageConfigForContainer","getImagesNamesForDownload","removeDigestFromRepository","agentProxy","_isEmpty","fromLabelHashToKeyValue","added","labelKV","static","nodeToConfig","flattenSecret","SecretID","SecretName","secretConfig","otherServicesTasks","ServiceId","keyValuePreferences","preferences","preference","strategy","Spread","SpreadDescriptor","keyValueConstraints","operatorIndices","indexEquals","getOperator","humanDuration","nanos","duration","unit","asMilliseconds","conversionFromNano","logOptions","keyValueLogDriverOpts","ipHostEntries","entry","keyValue","ContainerId","optionArray","mounts","j","ConfigViewModel","UpdatedAt","Index","Data","decodeURIComponent","atob","b64DecodeUnicode","statusText","ContainerViewModel","ImageID","Checked","ContainerStatsViewModel","read","preread","memory_stats","privateworkingset","MemoryUsage","MemoryCache","NumProcs","num_procs","stats","usage","PreviousCPUTotalUsage","precpu_stats","cpu_usage","total_usage","PreviousCPUSystemUsage","system_cpu_usage","CurrentCPUTotalUsage","cpu_stats","CurrentCPUSystemUsage","CPUCores","percpu_usage","online_cpus","_values","blkio_stats","io_service_bytes_recursive","readData","BytesRead","writeData","BytesWrite","noIOdata","ContainerDetailsViewModel","Args","EventViewModel","Time","Details","eventAttr","Actor","Attributes","Action","extra","hasColon","exitCode","createEventDetails","ImageViewModel","Tag","RepoDigests","digest","Used","ImageBuildModel","hasError","buildLogs","stream","errorDetail","ImageDetailsViewModel","Parent","DockerVersion","Os","Architecture","Author","ContainerConfig","ImageLayerViewModel","Order","Comment","Tags","PluginViewModel","SwarmViewModel","buildImage","ignoreLoadingBar","jsonObjectsToArrayHandler","buildImageOverride","commitContainer","repo","remove","logsHandler","top","exec","inspect","update","prune","resize","w","endpointID","history","insert","imageGetResponse","deleteImageHandler","connect","disconnect","isJSON","jsonString","fromJson","since","until","dataUsage","Build","FileUploadService","deferred","defer","remote","dockerfile","uploadFiles","buildImageFromFiles","configId","ContainerServiceFactory","$timeout","maximumRetryCounts","MaximumRetryCount","configuration","execConfig","stdout","stderr","timestamps","tail","parameters","containerStats","Exec","execId","ContainerService","containerByImageId","layers","imageLayer","registryModel","encodedCredentials","imageConfiguration","finally","pullImageAndIgnoreErrors","detail","pullImageAndAcknowledgeErrors","forceRemoval","NetworkViewModel","ConfigFrom","networkConfiguration","localNetworks","swarmNetworks","swarmAttachableNetworks","filteredNetworks","NodeViewModel","_data$Version","_data$Spec","_data$Spec2","_data$Spec3","_data$Spec4","_data$Description","_data$Description2","_data$Description3","_data$Description4","_data$Description5","_data$Description6","_data$Description7","_data$Description8","_data$Status","_data$Status2","_data$Status3","EngineLabels","PlatformArchitecture","PlatformOS","OS","Resources","NanoCPUs","MemoryBytes","EngineVersion","Addr","ManagerStatus","Reachability","ManagerAddr","Node","rawNode","Plugin","servicePlugins","system","aggregatedPlugins","volumePlugins","networkPlugins","loggingPlugins","SecretViewModel","_data$Portainer","Secret","secretId","ServiceViewModel","_data$Spec5","_data$Spec6","_data$Spec7","_data$Spec8","_data$Spec9","_data$Spec10","_data$Spec11","_data$Spec12","_data$Spec13","_data$Spec14","_data$Spec15","ContainerSpec","Limits","LimitNanoCPUs","LimitMemoryBytes","Reservations","ReservationNanoCPUs","ReservationMemoryBytes","RestartCondition","Condition","RestartDelay","Delay","RestartMaxAttempts","MaxAttempts","RestartWindow","Window","LogDriver","LogDriverName","LogDriverOpts","Placement","Preferences","Platforms","containerSpec","ContainerLabels","Arguments","Groups","TTY","ReadOnly","StopSignal","StopGracePeriod","HealthCheck","DNSConfig","Secrets","Configs","Endpoint","VirtualIPs","UpdateParallelism","Parallelism","UpdateDelay","UpdateFailureAction","FailureAction","UpdateOrder","RollbackConfig","Scale","EditName","serv","TaskViewModel","Updated","ServiceID","NodeId","ContainerID","Task","VolumeViewModel","VolumeHelper","driverOptions","DriverOpts","createDriverOptions","volumeConfiguration","volumeConfigurations","createVolumeQueries","createVolume","ConfigsController","ConfigService","removeAction","removeActionAsync","getConfigs","getConfigsAsync","actionCount","CreateConfigController","$transition$","FormValidator","ResourceControlService","AccessControlData","AccessControlFormData","ConfigContent","formValidationError","isEditorDirty","editorUpdate","createAsync","onbeforeunload","displayCodeEditor","labelName","labelValue","prepareLabelsConfig","prepareConfigData","configData","unescape","encodeURIComponent","prepareConfiguration","validateAccessControl","userDetails","getUserDetails","onUpdateResourceControlSuccess","removeConfig","ContainerHelper","ExecService","LocalStorage","SidebarService","socket","term","states","freeze","disconnected","connecting","connected","restcall","termWidth","cols","initTerm","resizeRestCall","isLinuxTerm","resizefun","WebSocket","onopen","send","onData","terminal_container","getElementById","setOption","onresize","$apply","isSidebarOpen","onmessage","write","onclose","loaded","containerCommands","$on","connectAttach","attachId","origin","k","resizeTTY","connectExec","isCustomCommand","customCommand","AttachStdin","AttachStdout","AttachStderr","createExec","isLinuxCommand","isLinuxTerminalCommand","close","dispose","autoconnectAttachView","initView","containerLabels","imageOS","handleIsCustomCommandChange","ConfirmRecreationModal","cannotPullImage","setPullLatest","_confirmContainerRecreation","$filter","Commit","activityTime","displayRecreateButton","displayCreateWebhookButton","containerWebhookFeature","commitInProgress","recreateContainerInProgress","pullImageValidity","setPullImageValidity","validity","computeDockerGPUCommand","gpuOptions","gpuStr","edit","newContainerName","StartedAt","utc","FinishedAt","portMapping","mapping","inSwarm","admin","allowHostNamespaceForRegularUsers","settingRestrictsRegularUsers","executeContainerAction","commitContainerAsync","kill","pause","unpause","restart","commit","confirmRemove","cleanAssociatedVolumes","recreate","confirmContainerRecreation","DisplayTextView","containerInfo","$interval","repeater","isDefined","cancel","setUpdateRepeater","skipHeaders","unix","changeLogCollection","logCollectionStatus","$document","ChartService","updateNetworkChart","chart","rx_bytes","tx","tx_bytes","UpdateNetworkChart","updateMemoryChart","UpdateMemoryChart","updateIOChart","noIOData","UpdateIOChart","updateCPUChart","possIntervals","windowsCpuUsage","calculateCPUPercentWindows","cpuPercent","cpuDelta","systemDelta","calculateCPUPercentUnix","UpdateCPUChart","networkChart","cpuChart","memoryChart","ioChart","containerTop","processInfo","networkStatsUnavailable","ioStatsUnavailable","changeUpdateRepeater","ready","networkChartCtx","CreateNetworkChart","cpuChartCtx","CreateCPUChart","memoryChartCtx","CreateMemoryChart","ioChartCtx","CreateIOChart","startChartUpdate","initCharts","Power","runningContainersFilter","stoppedContainersFilter","Heart","healthyContainersFilter","unhealthyContainersFilter","ImagesTotalSize","imagesTotalSize","PieChart","VolumeService","ServiceService","StackService","TagService","dismissInformationPanel","showStacks","buildGpusStr","gpuUseSet","gpusAvailable","exist","gpuAvailable","_str","endpointMode","allowStackManagementForRegularUsers","shouldShowStacks","showEnvUrl","EdgeAgentOnKubernetesEnvironment","containerStatusComponent","imagesTotalSizeComponent","volumeCount","networkCount","serviceCount","stackCount","gpuInfoStr","gpuFreeStr","endpointTags","TagIds","DockerFeaturesConfigurationController","$analytics","SettingsService","limitedFeatureAutoUpdate","limitedFeatureUpToDateImage","enableHostManagementFeatures","allowVolumeBrowserForRegularUsers","disableBindMountsForRegularUsers","disablePrivilegedModeForRegularUsers","disableHostNamespaceForRegularUsers","disableStackManagementForRegularUsers","disableDeviceMappingForRegularUsers","disableContainerCapabilitiesForRegularUsers","disableSysctlSettingForRegularUsers","actionInProgress","autoUpdateSettings","timeZone","onChangeField","onToggleAutoUpdate","onToggleGPUManagement","onGpusChange","onChangeEnableHostManagementFeatures","onChangeAllowVolumeBrowserForRegularUsers","onChangeDisableBindMountsForRegularUsers","onChangeDisablePrivilegedModeForRegularUsers","onChangeDisableHostNamespaceForRegularUsers","onChangeDisableStackManagementForRegularUsers","onChangeDisableDeviceMappingForRegularUsers","onChangeDisableContainerCapabilitiesForRegularUsers","onChangeDisableSysctlSettingForRegularUsers","enableGPUManagement","isContainerEditDisabled","validGpus","initialEnableGPUManagement","eventTrack","enableGPUManagementState","initialGPUs","numberOfGPUSAdded","numberOfGPUSRemoved","updateSecuritySettings","securitySettings","isDockerStandaloneEnv","versionDetails","releaseVersion","rootDirectory","DockerRootDir","storageDriver","loggingDriver","LoggingDriver","buildEngineDetails","arch","OperatingSystem","kernelVersion","KernelVersion","totalCPU","totalMemory","agentHostInfo","PCIDevices","PhysicalDisks","BuildImageController","BuildService","BuildType","activeTab","ImageNames","Valid","Unique","UploadFile","DockerFileContent","onChangeBuildType","checkName","repositoryRegExp","addImageName","removeImageName","imageNames","buildType","dockerfilePath","buildImageFromUpload","buildImageFromURL","dockerfileContent","buildImageFromDockerfileContent","buildImageFromDockerfileContentAndFiles","buildImageBasedOnBuildType","validImageNames","uiCanExit","selectAdditionalFiles","RegistryModalService","exportInProgress","sortType","sortReverse","toggleLayerCommand","layerId","toggleClass","toggle","tagImage","pushTag","registryModal","pushImage","pullTag","removeTag","deleteImage","removeImage","exportImage","downloadImages","loadRegistriesForDropdown","pullRateValid","confirmRemovalAction","downloadAction","isAuthorizedToDownload","uploadImage","imageIds","PluginService","checkAuxiliaryAddress","excludedIP","gateway","prepareAuxiliaryAddresses","ipamConfig","ipFormValues","auxAddress","createNetwork","managerOperation","DriverOptions","IPV4","IPV6","Macvlan","availableNetworkDrivers","CheckDuplicate","EnableIPv6","addDriverOption","removeDriverOption","addIPV4AuxAddress","addIPV6AuxAddress","removeIPV4AuxAddress","IPV4AuxiliaryAddressesError","removeIPV6AuxAddress","IPV6AuxiliaryAddressesError","checkIPV4AuxiliaryAddress","checkIPV6AuxiliaryAddress","validIPV4","_reduce","validIPV6","onChangeInternal","enable","onChangeAttachable","prepareIPAMConfiguration","prepareDriverOptions","creationContext","selectedNetworkConfig","modifyNetworkConfigurationForMacvlanConfigFrom","selectedNodes","nonSwarmNetworks","_remove","grouped","_toArray","agent","getRole","_concat","groupSwarmNetworksManagerNodesFirst","$stateParams","transformPlugins","pluginsList","buildHostDetails","nodeDetails","buildNodeDetails","DockerRegistryAccessController","GroupService","filterUsers","updateRegistryAccess","registryEndpointAccesses","endpointUsers","UserAccessPolicies","endpointTeams","TeamAccessPolicies","endpointGroupUsers","endpointGroup","endpointGroupTeams","userOrTeam","userAccess","UserAccessViewModel","teamAccess","TeamAccessViewModel","registryTo","viewReady","RegistryAccesses","GroupId","SecretService","encodeSecret","handleEncodeSecretChange","secretConfiguration","prepareSecretData","SecretController","removeSecret","getSecrets","ServiceHelper","ConfigHelper","SecretHelper","WebhookService","commandToArray","EntryPoint","ExtraNetworks","HostsEntries","PlacementConstraints","PlacementPreferences","CpuLimit","CpuReservation","MemoryLimit","MemoryLimitUnit","MemoryReservationUnit","handleWebHookChange","handleEnvVarChange","refreshSlider","$broadcast","addPortBinding","Protocol","PublishMode","removePortBinding","addExtraNetwork","removeExtraNetwork","addHostsEntry","removeHostsEntry","addVolume","Target","removeVolume","addConfig","checkIfConfigDuplicated","addSecret","overrideTarget","checkIfSecretDuplicated","addPlacementConstraint","removePlacementConstraint","addPlacementPreference","removePlacementPreference","addContainerLabel","removeContainerLabel","addLogDriverOpt","removeLogDriverOpt","$invalid","$error","volumesAreValid","rcPromise","registryID","webhookPromise","createServiceWebhook","createNewService","prepareSchedulingConfig","prepareImageConfig","preparePortsConfig","prepareCommandConfig","envVarsUtils","prepareEnvConfig","volumeObject","VolumeOptions","DriverConfig","prepareVolumes","_uniqWith","_isEqual","prepareNetworks","hostsEntries","host_ip","keyVal","prepareHostsEntries","translateHumanDurationToNanos","prepareUpdateConfig","prepareConfigConfig","prepareSecretConfig","translateKeyValueToPlacementConstraints","translateKeyValueToPlacementPreferences","preparePlacementConfig","prepareResourcesCpuConfig","memoryLimit","toFixed","memoryReservation","prepareResourcesMemoryConfig","prepareRestartPolicy","logOpts","prepareLogDriverConfig","availableLoggingDrivers","checkIfAllowedBindMounts","availableVolumes","availableSecrets","availableConfigs","maxCpus","sliderMaxCpu","sliderMaxMemory","initSlidersMaxValuesBasedOnNodeData","$location","$anchorScroll","TaskService","TaskHelper","WebhookHelper","WebhookExists","updateInProgress","deletionInProgress","rollbackInProgress","lastVersion","originalService","previousServiceValues","buildChanges","ServiceLabels","EnvironmentVariables","ServiceContainerLabels","Editable","ServiceSecrets","ServiceConfigs","credSpecId","oldCredSpecId","Privileges","CredentialSpec","translateHostnameIPToHostsEntries","ServiceMounts","ServiceConstraints","ServicePreferences","translateKeyValueToLogDriverOpts","isUpdating","transformResources","v1","v2","translateLogDriverOptsToKeyValue","translateConstraintsToKeyValue","translatePreferencesToKeyValue","translateHostsEntriesToHostnameIP","translateServiceArrays","translateNanosToHumanDuration","transformDurations","serviceNetworks","_some","ingressNetwork","addr","webhookID","webhookURL","Token","associateContainerToTask","associateTasksToService","retrievePorRegistryModelFromRepository","initialRegistryID","updateServiceAttribute","updateServiceArray","goToItem","addEnvironmentVariable","onChangeEnvVars","orgEnv","orgVar","serviceConfig","updateConfig","newSecret","filename","serviceSecret","updateContainerLabel","addMount","removeMount","onChangeMountType","updateMount","toggleMountReadOnly","isReadOnly","addNetwork","removeNetwork","removedElement","updateNetwork","updatePlacementConstraint","updatePlacementPreference","addPublishedPort","updatePublishedPort","removePortPublishedBinding","updateLogDriverOpt","updateLogDriverName","updateHostsEntry","onWebhookChange","updateWebhook","deleteWebhook","updateWebhookRegistryId","newRegistryID","registryChanged","updateServiceWebhook","copyWebhook","attribute","elements","originalImage","currentImage","mountsAreValid","rollbackService","filterNetworks","serviceNetwork","filterConfigs","extractNodeInfo","CPU","processTotalCPUAndMemory","systemStatus","SystemStatus","node_count","node_offset","extractNodesInfo","extractSwarmInfo","prepareVisualizerData","visualizerData","assignServiceInfo","assignTasksToNode","ShowInformationPanel","DisplayOnlyRunningTasks","DisplayNodeLabels","handleChangeDisplayOnlyRunningTasks","changeDisplayOnlyRunningTasks","handleChangeDisplayNodeLabels","changeDisplayNodeLabels","changeShowInformationPanel","storeSwarmVisualizerSettings","showInfoPanel","getSwarmVisualizerSettings","displayOnlyRunningTasks","displayNodeLabels","loadState","BrowseVolumeController","NFSData","CIFSData","availableVolumeDrivers","onUseNFSChange","onUseCIFSChange","prepareNFSConfiguration","versionNumber","prepareCIFSConfiguration","createVolumeConfiguration","containerFilter","isCioDriver","volumeData","getVolumeDataFromContainer","containersUsingVolume","endpointProvider","endpointRole","attached","isVolumeUsedByAService","showBrowseAction","EdgeStackDeploymentTypeSelector","hasDockerEndpoint","hasKubeEndpoint","allowKubeToSelectCompose","deploymentOptions","Compose","PrePullToggle","RetryDeployToggle","PrivateRegistryFieldset","formInvalid","_ref$clearRegistries","clearRegistries","setChecked","parseRegistries","_parseRegistries","fileContent","currentFile","PrivateRegistryFieldsetWrapper","onFieldError","isGit","dryRunMutation","_matchRegistry","matchRegistry","mutateAsync","transformGitAuthenticationViewModel","parseRelativePathResponse","SupportRelativePath","FilesystemPath","SupportPerDeviceConfigs","PerDeviceConfigsMatchType","PerDeviceConfigsGroupMatchType","PerDeviceConfigsPath","dummyGitForm","relativePathValidation","setErrors","_valide","valide","getPerDevConfigsFilterType","isPerDevConfigsFilterType","RelativePathFieldset","setState","gitModel","isEditing","hideEdgeConfigs","innerOnChange","_useEnableFsPath","enableFsPath0","enableFsPath1","toggleFsPath","gitoptsEdgeConfigDocUrl","pathTip0","createGitCredential","_createGitCredential","useSaveCredentialsIfRequired","saveCredentialsMutation","saveCredentials","_saveCredentialsIfRequired","authentication","credential","saveGitCredentialsIfNeeded","_saveGitCredentialsIfNeeded","credentialsId","cred","useValidateEnvironmentTypes","groupIds","edgeGroups","endpointTypes","EndpointTypes","hasType","updateEdgeStackGit","_updateEdgeStackGit","_stack$AutoUpdate","updateStackMutation","_useSaveCredentialsIf","isSaveCredentialsLoading","GitConfig","gitConfig","EdgeGroups","deploymentType","autoUpdate","refName","EnvVars","_updateStackMutation$","onUpdateSettingsClick","_handleUpdateSettings","gitPath","gitUrl","isUpdateVersion","updateVersion","getPayload","privateRegistryId","_registriesQuery$data","forms","_forms","handleContentChange","useManifestNamespaces","_useState3","cachedContent","setCachedContent","onEditorChange","edgeStack","setFieldError","_useCachedContent","setContentCache","getCachedContent","DeploymentForm","webhookEnabled","prePullImage","retryDeploy","columHelper","EdgeGroupAssociationTable","_tableState$sortBy","_tableState$sortBy2","onClickRow","environmentsQuery","_groupsQuery$data","Group","_tagsQuery$data","_getEdgeStack","GitCommitLink","cleanedUrl","commitHash","cleanGitRepoUrl","logsStatusQueryKey","edgeStackId","useLogsStatus","_getLogsStatus","getLogsStatus","collectLogs","_collectLogs","deleteLogs","_deleteLogs","_downloadLogs","contentDispositionHeader","LogsActions","logsStatusQuery","collectLogsMutation","downloadLogsMutation","deleteLogsMutation","useDeleteLogsMutation","collecting","loader","EnvironmentActions","Snapshots","ActionStatus","getStatusText","_getDashboardRoute","statusArray","Acknowledged","ImagesPulled","PausedDeploying","RollingBack","RolledBack","_last2","_last","TargetCommitHash","TargetFileVersion","endpointTargetVersionLabel","_ref7","GitConfigURL","_status$DeploymentInf","DeploymentInfo","ConfigHash","_status$DeploymentInf2","_status$DeploymentInf3","FileVersion","_ref8","_env$StackStatus$Stat","DeploymentReceived","RemoteUpdateSuccess","Removed","Pending","Deploying","Removing","getStateColor","_startCase","_edgeStackQuery$data","_edgeStackQuery$data2","_edgeStackQuery$data3","_edgeStackQuery$data5","edgeStackQuery","getEdgeStack","useEdgeStack","_useParamState","param","parseParam","paramValue","useParamState","_useParamState2","statusFilter","setStatusFilter","edgeStackStatus","currentFileVersion","StackFileVersion","gitConfigURL","gitConfigCommitHash","_edgeStackQuery$data4","envStatus","pendingStatus","envStatusSelectOptions","_edgeStack$Registries","Registries","UseManifestNamespaces","PrePullImage","RetryDeploy","excludeIds","LastCheckInDate","fromNow","useFilterStore","setEdgeGroups","setGroups","setTags","checkIn","setCheckIn","checkInOptions","edgeGroupsQuery","filterStore","_associateDevice","useLicenseOverused","moreNodes","integratedInfo","Essentials","updateEnvironmentRelations","_updateEnvironmentRelations","relations","createEdgeGroup","_createEdgeGroup","requestPayload","CreatableSelector","onCreate","_useField2$","onBlur","selectedValues","cur","findOption","_handleCreate","createMutation","newGroup","dynamic","createGroup","_createGroup","GroupSelector","newTag","isAssignedToGroup","AssignmentDialog","assignRelationsMutation","edgeGroupQueryKeys","groupQueryKeys","hasPreAssignedEdgeGroups","_e$EdgeGroups","hasPreAssignedTags","hasPreAssignedGroup","overrideTags","overrideEdgeGroups","overrideGroup","createPayload","noValidate","overusedTooltip","associateMutation","associateDevice","nodesCountQueryKey","licenseOverused","_handleRemoveDevice","handleRemoveDevice","_handleAssociateAndAssign","handleAssociateAndAssign","handleAssociateDevice","_useEnvironments","filterByEnvironmentsIds","groupId","_edgeGroupsQuery$data","edgeDeviceUntrusted","excludeSnapshots","edgeCheckInPassedSeconds","environmentEdgeGroupsQuery","envs","_environmentEdgeGroup","_env$TagIds","useEnvironments","GenericDatatable","_getEdgeStacks","EdgeStackStatus","lastStatus","hasOldVersion","_getStatus","numDeployments","MinusCircle","Completed","hasDeploying","hasRunning","hasFailed","getStatus","NumDeployments","DeploymentCounter","total","getTooltip","getLabel","aggregatedStatus","_deleteEdgeStack","edgeStackIds","deleteEdgeStack","initialHiddenColumns","EdgeStacksDatatable","edgeStacksQuery","getEdgeStacks","useEdgeStacks","edgeStacks","stackStatus","HasEdgeJob","HasEdgeStack","TrustedEndpoints","DeleteButton","confirmMessage","onConfirmed","_handleClick","handleClick","_deleteEdgeGroup","edgeGroupIds","edgeGroupId","deleteEdgeGroup","EdgeGroupsDatatable","HasEdgeConfig","deleteTemplate","_deleteTemplate","useViewType","createTemplate","Method","_createTemplateFromText","createTemplateFromText","_createTemplateFromFile","createTemplateFromFile","_createTemplateAndGitCredential","createTemplateAndGitCredential","newGitModel","Git","createTemplateFromGit","EdgeSettings","RelativePathSettings","_yield$axios$post2","EdgeTemplate","_createTemplateFromGit","_yield$axios$post3","getDefaultEdgeTemplateSettings","PrivateRegistryId","initialBuildMethods","edgeFieldsetValidation","StaggerConfig","dockerTexts","textByType","_textByType","useParseTemplateOnFileChange","oldVariables","_getTemplateVariables","_getTemplateVariables2","validationError","parseTemplate","EdgeSettingsFieldset","fileValues","buildMethods","isEditor","handleChangeFileContent","texts","AccessControl","edgeSetValues","deploymentOptionsQuery","viewType","isEdge","gitCredentialsQuery","variablesValidation","commonFieldsValidation","_deploymentOptionsQue","_deploymentOptionsQue2","hideWebEditor","hideFileUpload","_fileContentQuery$dat","defaultType","_ref$isEdge","_useAppTemplateParams","typeNum","getStackType","getTemplateId","useAppTemplateParams","_useAppTemplateParams2","fileContentQuery","updateTemplate","_updateTemplate","isEditorReadonly","gitFileContent","gitFileError","refreshGitFile","edgeValues","disableEditor","hideAddWithForm","useDisableEditor","templateId","templateFile","_template$ResourceCon","refetch","templatesModule","templatesQuery","templateType","deleteMutation","_handleDelete","templateQuery","WaitingRoomView","edgeStackModule","cronMethodOptions","Calendar","EdgeJobFormController","cronMethods","scheduleValues","displayed","cron","datetime","scheduleValue","cronMethod","cronRegex","onChangeEnvironments","onChangeGroups","onCronMethodChange","onBuildMethodChange","onChangeModel","defaultTime","CronExpression","cronToDatetime","Recurring","minutes","hours","month","formAction","strings","addLabelAction","removeLabelAction","formActionLabel","EdgeJobResultsDatatableController","$controller","autoRefresh","onSettingsRepeaterChange","onCollectLogsClick","onDatasetChange","anyCollecting","LogsStatus","titleText","orderBy","reverseOrder","onDownloadLogsClick","onClearLogsClick","refreshCallback","statusMap","EdgeStackStatusController","aggregateStatus","ok","acknowledged","tagOptions","groupTypeOptions","EdgeGroupFormController","dynamicQuery","tagsPartialMatch","onChangeTags","onChangeDynamic","onChangePartialMatch","PartialMatch","pageType","EdgeJobResultsFactory","logFile","clearLogs","EdgeJobsFactory","EdgeJobService","EdgeJobs","EdgeJobResults","edgeJobId","results","ScheduleCreateRequest","createSchedule","ScheduleUpdateRequest","EdgeStacks","StackFileContent","createEdgeStack","repositoryOptions","FilePathInRepository","CreateEdgeGroupController","EdgeGroupService","endpointGroups","EditEdgeGroupController","updateGroup","CreateEdgeJobViewController","createEdgeJob","createEdgeJobFromFileContent","createEdgeJobFromFileUpload","EdgeJobController","showEditorTab","updateAsync","downloadLogsAsync","collectLogsAsync","clearLogsAsync","refresh","refreshAsync","showEditor","edgeJob","updateEdgeJob","logFileName","associateEndpointsToResults","EndpointId","jobResults","oldFileContent","getScriptFile","EdgeJobsViewController","deleteJobsAsync","deleteJobs","edgeJobs","CreateEdgeStackViewController","EdgeStackService","FormHelper","StackFile","templateValues","createStack","createStackByMethod","createStackFromFileContent","createStackFromFileUpload","createStackFromGitRepository","onChangeDeploymentType","onEnvVarChange","setTemplateValues","onChangeTemplate","templateAction","newTemplateValues","oldTemplateId","newTemplateId","newFile","buildAnalyticsProperties","methodLabel","templateName","selectedTemplate","templatesResponse","preSelectTemplate","validateTemplate","getMethod","checkIfEndpointTypes","selectValidDeploymentType","validTypes","_right","right","_intersection","CreatedFromCustomTemplateID","formIsInvalid","createEdgeStackView","DockerComposeFormController","methodOptions","onChangeFileContent","onChangeFile","onChangeMethod","onChangeFormValues","isGitTemplate","edgeStacksDockerComposeForm","kubeManifestForm","kubeDeployDescription","KubeManifestFormController","onChangeUseManifestNamespaces","EditEdgeStackViewController","isStackDeployed","deployStack","deployStackAsync","stackFile","originalFileContent","initiallyContainsKubeEnv","isComposeStack","updateStack","stackFileContent","createModule","i18n","Backend","LanguageDetector","initReactI18next","debug","fallbackLng","interpolation","escapeValue","azureErrorParser","responseData","subscriptions","subscriptionId","resourceGroups","resourceGroup","resourceGroupName","containerGroups","containerGroup","containerGroupName","getContainerInstanceProvider","_getContainerInstanceProvider","resourceTypes","containerGroupType","_ref2$locations","locations","buildSubscriptionsUrl","buildResourceGroupUrl","buildContainerGroupUrl","useResourceGroups","queries","useQueries","queryFn","_queryFn","getResourceGroups","q","_getResourceGroups","useSubscriptions","_getSubscriptions","getSubscriptions","getSubscriptionResourceGroups","getSubscriptionLocations","containerInstanceProviders","_createContainerGroup","transformToPayload","_deleteContainerGroup","containerGroupId","containerPorts","addressPorts","osType","requests","memoryInGB","ipAddress","allocatePublicIP","CreateContainerInstanceForm","_useLoadFormState","_useSubscriptions","isLoadingSubscriptions","_useResourceGroups","isLoadingResourceGroups","_useProvider","providers","useProvider","isLoadingProviders","useLoadFormState","_useFormState","subscriptionOptions","initSubscriptionId","getFirstValue","subscriptionResourceGroups","useFormState","createContainerGroup","_containerGroup$Porta","useCreateInstanceMutation","positive","enableReinitialize","_getContainerGroup","_getResourceGroup","_getSubscription","getContainerGroups","_getContainerGroups","scheme","_handleRemoveClick","handleRemoveClick","containerIds","_parseId","_match","resourceGroupId","parseId","subscriptionQuery","getSubscription","useSubscription","resourceGroupQuery","getResourceGroup","useResourceGroup","getContainerGroup","useContainerGroup","containerInstanceData","containerInstanceProperties","aggregateContainerInstance","subscriptionName","ContainerGroup","subscriptionsQuery","useContainerGroups","_useRemoveMutation","containerGroupIds","deleteContainerGroup","useRemoveMutation","_subscriptionsQuery$d","resourceGroupsQuery","subscriptionsCount","resourceGroupsCount","Subscription","Package","azureModule","constantsModule","constant","initFeatureService","UI_ROUTER_REACT_HYBRID","analyticsModule","run","invertSorting","New","isUnsavedChanges","oldIngressControllers","newIngressControllers","_oldIngressController","_newIngressController","getUpdatedIngressControllers","allRows","allow","selectedRowClassNames","ClassName","isOption","OptionComponent","Label","MultiValueLabel","UserIcon","TeamIcon","RegistriesSelector","_ref$options","ingressKeys","useIngresses","namespaces","_settledIngressesProm","_settledServicesPromi","settledIngressesPromise","filteredIngresses","uniqueNamespacesWithIngress","updatedFilteredIngresses","flat","ing","ns","_ing$Paths","servicesInNamespace","serviceNamesInNamespace","updatedPaths","hasService","HasService","useIngressControllers","Card","isErrorType","isArrayErrorType","ContainerPortInput","serviceIndex","portIndex","ServicePortInput","AppIngressPathForm","_ingressHostOptions$","_ingressPath$Path","ingressPathErrors","ingressHostOptions","onChangeIngressPath","onRemoveIngressPath","ingressesQuery","selectedIngress","setSelectedIngress","ingressHostOptionsWithCurrentValue","_ingressPath$Host","_ingressHosts$","_ingressPath$IngressN","_ingressPath$IngressN2","_ingressNames$","_newIngressPath$Host","ingressHosts","newIngressHostValue","ingressNames","newIngressNameValue","newIngressOption","ingressOption","AppIngressPathsForm","servicePortIngressPaths","onChangeIngressPaths","ingressPathsErrors","_useIngressController","ingressControllers","ingressControllersQuery","allowedIngressHostNameOptions","allowedIngressClasses","ic","allowedIngresses","_ing$Hosts","_allowedIngressHostNa","_allowedIngressHostNa2","_allowedIngressHostNa3","_allowedIngressHostNa4","newIngressPathsValue","newIngressPaths","_allowedIngressHostNa5","_allowedIngressHostNa6","ClusterIpServiceForm","onChangeService","servicePorts","onChangePort","newClusterIpPort","newServices","servicePortErrors","newServicePorts","ClusterIpServicesForm","clusterIPServiceCount","_errors$index","newServicePort","ServiceTabs","serviceTypeOptions","selectedServiceType","setSelectedServiceType","NodePortServiceForm","newNodePortPort","initiallyHasIngressPath","_servicePort$nodePort","NodePortServicesForm","nodePortServiceCount","LoadBalancerServiceForm","newLoadBalancerPort","LoadBalancerServicesForm","_useEnvironment","Configuration","UseLoadBalancer","loadBalancerEnabled","loadBalancerEnabledQuery","loadBalancerServiceCount","ServiceTabLabel","serviceTypeLabel","serviceTypeCount","serviceTypeHasErrors","PublishingExplaination","ingressDiagram","getServiceForPort","defaultIsOpen","_ref$labelClass","_ref$inputClass","isRequired","minLength","isExpandable","isNoteOpen","setIsNoteOpen","getNakedPods","deployments","daemonSets","statefulSets","appLabels","deployment","_deployment$spec","matchLabels","daemonSet","_daemonSet$spec","statefulSet","_statefulSet$spec","nakedPods","_pod$metadata","podLabels","appLabel","applicationIsKind","appKind","application","isExternalApplication","_application$metadata","getRunningPods","availableReplicas","_deployment$status$av","_deployment$status","totalReplicas","_deployment$status$re","_deployment$status2","unavailableReplicas","_deployment$status$un","_deployment$status3","numberAvailable","_daemonSet$status$num","_daemonSet$status","desiredNumberScheduled","_daemonSet$status$des","_daemonSet$status2","numberUnavailable","_daemonSet$status$num2","_daemonSet$status3","_statefulSet$status$r","_statefulSet$status","readyReplicas","getTotalPods","_application$status$r","_application$status","_application$status$d","_application$status2","_application$status$r2","_application$status3","bytesToReadableFormat","memoryBytes","units","unitIndex","memoryValue","matchLabelsToLabelSelectorValue","filterRevisionsByOwnerUid","revisions","uid","revision","_revision$metadata","ownerReferences","or","getRollbackPatchPayload","revisionList","previousRevision","controllerRevisions","sortedControllerRevisions","_a$metadata2","_b$metadata2","creationTimestamp","getTime","getPreviousControllerRevision","_previousRevision$spe","_revisionTemplate$met","_application$metadata2","_previousRevision$met","replicaSets","sortedReplicaSets","_a$metadata","_b$metadata","annotations","getPreviousReplicaSetRevision","revisionTemplate","applicationAnnotations","applicationAnnotationsInPatch","annotationKey","revisionAnnotations","revisionAnnotationsInPatch","annotationValue","getNamespacePods","_getNamespacePods","labelSelector","getPod","_getPod","patchPod","_patchPod","deletePod","_deletePod","_getApplicationsForCluster","applications","getApplicationsForNamespace","_getApplicationsForNamespace","_yield$Promise$all","_yield$Promise$all2","getApplicationsByKind","_getApplication","_yield$Promise$allSet","_yield$Promise$allSet2","getApplicationByKind","_patchApplication","patchApplicationByKind","_patchApplicationByKind","_getApplicationByKind","_getApplicationsByKind","app","_getApplicationRevisionList","deploymentUid","replicaSetList","replicaSetsWithOwnerId","replicaSetsWithRevisionAnnotations","controllerRevisionList","controllerRevisionsWithOwnerId","getReplicaSetList","rs","_rs$metadata","getControllerRevisionList","t1","_x33","_x34","_x35","_getReplicaSetList","_x36","_x37","_x38","_getControllerRevisionList","getNamespaceHorizontalPodAutoscalers","_getNamespaceHorizontalPodAutoscalers","autoScalarList","_getNamespaceHorizontalPodAutoscaler","autoScalar","applicationsForCluster","applicationRevisions","applicationServices","ingressesForApplication","applicationHorizontalPodAutoscalers","applicationPods","useApplicationsQuery","environemtId","getApplicationsForCluster","useApplication","getApplication","useApplicationServices","_app$metadata","_app$spec","appSelectorLabels","filteredServices","_service$spec","serviceSelectorLabels","useApplicationHorizontalPodAutoscaler","_app$metadata3","horizontalPodAutoscalers","matchingHorizontalPodAutoscaler","horizontalPodAutoscaler","_horizontalPodAutosca","scaleTargetRef","_app$metadata2","scaleTargetRefName","scaleTargetRefKind","useApplicationPods","_app$spec2","appSelector","_options$autoRefreshR2","usePatchApplicationMutation","_ref4$contentType","patchApplication","useNamespaceQuery","_getNamespace","getNamespace","ApplicationSummaryWidget","_namespaceData$data","_application$metadata3","_application$metadata4","_stateAndParams$param","_useApplication","applicationQuery","isSystemNamespace","IsSystem","externalApplication","applicationRequests","_application$spec","_application$spec2","appContainers","_container$resources","_container$resources2","parseCpu","filesizeParser","getResourceRequests","applicationOwner","applicationDeployMethod","_application$metadata5","_application$metadata6","_application$metadata7","getApplicationDeployMethod","applicationNote","applicationNoteFormValues","setApplicationNoteFormValues","globalDeploymentOptionsQuery","failedCreateCondition","conditions","condition","reason","patchApplicationMutation","hideStacksFunctionality","phase","_patchApplicationNote","patchApplicationNote","_getStackFile","RestartApplicationButton","RedeployApplicationButton","redeployAppMutation","useRedeployApplicationMutation","_redeployApplication","redeployApplication","RollbackApplicationButton","appRevisionList","_x28","_x29","_x30","_x31","_x32","getApplicationRevisionList","useApplicationRevisionList","appRevisions","appDeployMethod","patchAppMutation","isRollbackNotAvailable","rollbackButton","_rollbackApplication","rollbackApplication","RotateCcw","_appRevisionList$item","ApplicationServicesTable","appServices","_service$metadata","_service$metadata2","_service$spec2","_service$spec3","_service$status","_service$spec4","_service$status2","_service$spec$externa","_service$spec5","_service$spec6","_service$spec7","_service$spec8","loadBalancer","externalIPs","ApplicationIngressesTable","namespaceIngresses","ingressPathsForAppServices","matchingIngressesPaths","_ingress$Paths","matchingIngressPaths","secure","TLS","getIngressPathsForAppServices","ApplicationAutoScalingTable","_appAutoScalar$spec","_appAutoScalar$spec2","_appAutoScalar$spec3","appAutoScalar","Move","minReplicas","maxReplicas","targetCPUUtilizationPercentage","ApplicationEnvVarsTable","appEnvVars","podSpec","appInitContainers","initContainers","appContainersEnvVars","_container$env","_container$envFrom","containerEnvVars","envVar","_envVar$valueFrom","_envVar$valueFrom2","_envVar$valueFrom3","_envVar$valueFrom4","_envVar$valueFrom5","envtype","valueFrom","configMapKeyRef","secretKeyRef","fieldPath","fieldRef","containerName","isInitContainer","resourseName","containerEnvFroms","envFrom","_envFrom$configMapRef","_envFrom$secretRef","configMapRef","secretRef","appInitContainersEnvVars","_container$env2","_container$envFrom2","_envVar$valueFrom6","_envVar$valueFrom7","_envVar$valueFrom8","_envVar$valueFrom9","_envVar$valueFrom10","_envFrom$configMapRef2","_envFrom$secretRef2","getApplicationEnvironmentVariables","Asterisk","Key","secretQueryKeys","secretsForCluster","useSecrets","useSecretsForCluster","_getSecretsForCluster","getSecretsForCluster","_getSecrets","secretsWithKind","deleteSecret","_deleteSecret","ApplicationVolumeConfigsTable","containerVolumeConfigs","appVolumes","configMap","_volume$configMap","_volume$secret","_volume$configMap2","_volume$secret2","_container$volumeMoun","volConfigMapItems","volumeConfigName","secretName","containerVolumeMount","volumeMounts","volumeMount","getApplicationVolumeConfigs","mountPath","isVolumeConfigNameFromSecret","_secret$metadata","ApplicationPersistentDataTable","persistedFolders","appVolumeClaimVolumes","volumeClaimTemplates","_vc$metadata","_vc$metadata2","persistentVolumeClaim","claimName","_v$persistentVolumeCl","_vc$persistentVolumeC","getVolumeClaimTemplates","appAllVolumes","appAllContainers","hostPath","matchingPods","_pod$spec","_pod$spec2","podContainers","podInitContainers","podContainer","getPodsMatchingContainer","isContainerInit","getPersistedFolders","dataAccessPolicy","getDataAccessPolicy","Boxes","persistedFolder","_persistedFolder$volu","_persistedFolder$volu2","_persistedFolder$volu3","ApplicationDetailsWidget","externalApp","appStackFileQuery","getStackFile","Pencil","SystemResourcesSettings","systemResourcesSettings","showSystemResources","setShowSystemResources","getBadgeColor","formatDate","lastTimestamp","eventTime","involvedObject","EventsDatatable","History","_row$metadata","_getNamespaceEvents","useNamespaceEventsQuery","getNamespaceEvents","imagePullPolicy","getContainerStatusType","podIp","creationDate","getActions","isServerMetricsEnabled","ApplicationContainersDatatable","useServerMetricsQuery","_env$Kubernetes","UseServerMetrics","podsQuery","_pod$metadata$name","_pod$spec$nodeName","_pod$spec3","_pod$status$podIP","_pod$status","_pod$status$startTime","_pod$status2","_pod$status3","podIP","computeContainerStatus","containerStatuses","statuses","waiting","running","nodeList","useNodesQuery","PlacementItem","_nodesLabels$item$lab","nodesLabels","availableNodeLabels","labelOptions","valueOptions","placementError","labelOption","striked","valueOption","placementOptions","AlignJustify","PlacementTypeBoxSelector","placementType","SummaryItem","resourceAction","summary","YAMLInspector","identifier","hideMessage","yml","YAML","_y$metadata","managedFields","resourceVersion","cleanYamlUnwantedFields","Minus","SystemResourceDescription","KubernetesNamespaceHelper","Applications","ResourcePool","SubRows","span","Highlighted","KubernetesApplicationHelper","StacksSettingsMenu","setSystemResources","NamespaceFilter","showSystem","transformedNamespaces","isSystem","transformNamespaces","isSelectedNamespaceFound","newNamespaceValue","_getKubernetesEndpoints","endpointsList","_node$metadata","isApi","isPublishedNode","getInternalNodeIpAddress","_node$status","addresses","address","masterLabels","StatusBadge","_node$spec","unschedulable","_node$status$conditio","getCPU","_node$status$allocata","allocatable","getMemory","_row$status$nodeInfo$","_row$status","nodeInfo","kubeletVersion","_node$status$nodeInfo","_getInternalNodeIpAdd","_getInternalNodeIpAdd2","ActionsCell","metricsEnabled","getColumns","ConfigurationData","overrideKeysErrors","configurationIndex","keyIndex","dataCyType","configurationType","overriddenKeyError","ConfigurationItem","_item$selectedConfigu2","configurations","onRemoveItem","formikError","configurationData","selectedConfiguration","_option$metadata","_configuration$metada","_item$selectedConfigu","overriden","overridenKeys","onToggleOverride","overridenKey","newOverridenKeys","configurationsValidationSchema","allPaths","configmap","configMapQueryKeys","configMaps","configMapsForCluster","useConfigMapsForCluster","_getConfigMapsForCluster","getConfigMapsForCluster","getConfigMaps","_getConfigMaps","configMapsWithKind","deleteConfigMap","_deleteConfigMap","PersistedFolderItem","_item$sizeUnit","_item$sizeUnit2","storageClasses","PVCOptions","applicationValues","isExistingPersistedFolder","isNewVolume","useNewVolume","existingVolume","sizeUnit","_option$value","sc","getStorageClassValue","_storageClasses$find","storageClass","pvc","persistentVolumeClaimName","PersistentVolumeClaim","_initialValues$index","_storageClasses$find2","matchingClass","_persistedFolder$stor","getAddButtonError","storageClassValidation","AccessModes","AllowVolumeExpansion","Provisioner","hasSuitableNode","cpuLimit","nodeLimits","nanParsedMemoryLimit","nanParsedCPULimit","nodeLimit","KubernetesResourceReservationHelper","megaBytesValue","NoMetricsServerWarning","useNamespacesQuery","allNamespaceAccessReviews","allowedNamespacesNames","allowedNamespaces","getNamespaces","allowed","_getNamespaces","emptyValue","TitleContent","isComposeFormat","applicationsModule","onChangeControllers","initialIngressControllers","allowNoneIngressClass","noIngressControllerLabel","view","ingControllerFormValues","setIngControllerFormValues","newIngFormValues","isCustomTypeExist","ingController","Route","updateIngressControllers","_updateIngressControllers","updatedIngressControllers","newAllowed","usedControllersToDisallow","selectedTeams","_environment$Kubernet","_useNodesQuery","_useKubernetesEndpoin","getKubernetesEndpoints","useKubernetesEndpointsQuery","kubernetesEndpoints","kubernetesEndpointsQuery","_excluded3","environmentUrl","nodeRowData","subsetAddresses","_endpoint$subsets","subsets","subset","_subset$addresses","nodeAddress","subsetAddress","useNodeRowData","_row$metadata$uid","persistedFoldersUseExistingVolumes","getOptions","setStackName","_ref$stacks","inputClassName","_ref$textTip","_ref$error","stackResults","insightsBoxContent","isAllowedToEdit","_useApplicationServic","servicesQuery","_useApplicationPods","_useNamespaceEventsQu","eventsQuery","_excluded4","relatedEvents","serviceIds","podIds","oldFormValues","appResourceSummaries","newFormValues","_oldFormValues$Servic","_newFormValues$Servic","_newFormValues$Persis","_newFormValues$AutoSc","_oldFormValues$AutoSc","_newFormValues$AutoSc2","_oldFormValues$AutoSc2","_newFormValues$AutoSc3","_oldFormValues$AutoSc3","_newFormValues$AutoSc4","_oldFormValues$AutoSc4","_newFormValues$AutoSc5","_oldFormValues$AutoSc5","_newFormValues$AutoSc6","_oldFormValues$AutoSc6","oldServices","updateAndCreateSummaries","deleteSummaries","updateAppSummaries","ApplicationType","serviceSummaries","Services","oldServiceMatched","getServiceUpdateSummary","oldServicePorts","OriginalIngresses","ingressSummaries","newIng","oldIngress","_newIngress$Paths","_oldIngress$Paths","isAnyNewPathMissingOldPath","isAnyOldPathMissingNewPath","oldIng","getIngressUpdateSummary","pvcSummaries","DataAccessPolicy","PersistedFolders","_volume$existingVolum3","newVolume","_oldFormValues$Persis","_newVolume$existingVo","oldVolume","createHPASummary","AutoScaler","isUsed","deleteHPASummary","updateHPASummary","targetCpuUtilizationPercentage","hpaSummaries","getUpdatedApplicationResources","appSummary","serviceFormSummaries","_formValues$Services","headlessSummary","ingressesSummaries","_formValues$Services2","servicePathsIngressNames","_formValues$Persisted","_volume$existingVolum","_volume$existingVolum2","hpaSummary","_formValues$AutoScale","getAppResourceSummaries","_ref$namespace","onNamespaceChange","newServiceNames","newIndex","existingName","uniqName","getUniqNames","newServiceName","serviceTypeCounts","getServiceTypeCounts","serviceHasErrors","getServiceTypeHasErrors","formServices","matchingService","nodePortServices","formServiceNames","formService","clusterNodePortsWithoutFormServices","npService","npServicePorts","formNodePortsWithoutCurrentService","formServicePorts","ingressHostAndPath","ingressPathsInNamespace","originalIngressPaths","allFormServicePortIngresses","formMatchingIngressHostPathCount","formIngressHostAndPath","nsMatchingIngressHostPathCount","nsIngressHostAndPath","originalMatchingIngressHostPathCount","originalIngressHostAndPath","Annotations","configMapsQuery","useConfigMaps","_configMaps$","selectedConfigMap","secretsQuery","_secrets$","_environmentQuery$dat2","existingPVCs","isAddPersistentFolderButtonShown","StorageClasses","_pvc$PersistentVolume","_pvc$PersistentVolume2","applicationName","uuidv4","nameLimited","persistedFolderFormValue","quota","namespaceQuotas","quotaExceeded","pfs","_forOwn","storagePfs","storageClassName","newPfs","requestedSize","sum","pf","storageAvailabilities","Storage","CreationDate","PreviousName","MountPath","Yaml","_Number","namespaceHasQuota","resourceQuotaCapacityExceeded","minMemoryLimit","minCpuLimit","maxMemoryLimit","maxCpuLimit","_value$","isExistingMemoryReservationUnchanged","_context$parent","isExistingCPUReservationUnchanged","_context$parent2","supportScalableReplicaDeployment","resourceReservationsOverflow","hasResourceLimit","replicaCount","_round","nonScalableStorage","isMetricsEnabled","autoScalerOverflow","_availableNodeLabels$","_values$placements","placements","nodeLabelPairs","allNodesLabels","pair","uniqueNodesLabels","allNodeValuesForKey","uniqueValues","useNodeLabels","existingPlacementLabels","firstAvailableNodeLabel","firstAvailableNodeLabelValue","nonDeletedPlacements","_useNamespacesQuery","namespacesQuery","nsName","hasQuota","isResourceQuotaCapacityExceeded","namespaceOptionCount","yupString","existingNames","supportGlobalDeployment","isQuotaExceeded","isNew","DefaultDatatableSettings","isHTTP","TLSs","isHttp","paths","_row$Labels","owner","_row$original$Labels","_row$original$Labels2","IngressDatatable","canAccessSystemResources","_useIngresses","ingressesWithIsSystem","useIngressesRowData","deleteIngressesMutation","selectedFlatRows","referrer","AnnotationsForm","handleAnnotationChange","removeAnnotation","annotationErrors","annotation","_annotationErrors$i","_annotationErrors$i2","_annotationErrors$i3","_annotationErrors$i4","Value","PathTypes","nginx","traefik","other","PlaceholderAnnotations","IngressForm","_rule$Hosts","_rule$Hosts2","rule","tlsOptions","handleTLSChange","addNewIngressHost","serviceOptions","handleHostChange","handleIngressChange","handlePathChange","addNewIngressRoute","removeIngressRoute","removeIngressHost","addNewAnnotation","reloadTLSCerts","ingressClassOptions","isIngressClassOptionsLoading","namespacesOptions","isNamespaceOptionsLoading","isIngressNamesLoading","handleNamespaceChange","hasNoHostRule","NoHost","placeholderAnnotation","IngressType","pathTypes","IngressClassName","ingressClassOption","hostIndex","TLSOption","pathIndex","_servicePorts$path$Se","_servicePorts$path$Se2","allOptions","selectedLabel","serviceOption","portOption","ServicePort","ignoreAnnotationsForEdit","prepareTLS","prepareRuleHostsFromIngress","getSecretByHost","random","getPVCs","_getPVCs","EnvironmentInfo","_tagsQuery$tags","environmentData","tagNames","Gauge","stripProtocol","isExternal","rowA","rowB","portA","portB","_row$ClusterIPs","ClusterIPs","clusterIPs","ipA","ipB","languages","language","ignorePunctuation","ExternalIPLink","externalIP","_row$ExternalIPs","_row$IngressStatus","_row$ExternalIPs2","ExternalIPs","IngressStatus","_row$original$Externa","linkTo","_row$original$Externa2","_getSchemeAndPort2","svc","_svc$Ports","getSchemeAndPort","aExternal","bExternal","targetPorts","CreationTimestamp","ServicesDatatable","_useServicesForCluste","servicesWithIsSystem","useServicesRowData","servicesRenderRow","deleteServicesMutation","WidgetTabs","currentTabIndex","tabs","selectedTabParam","findSelectedTabIndex","getIsConfigMapInUse","_appSpec$volumes","appSpec","hasEnvVarReference","valueFromEnv","_configMap$metadata","envFromEnv","_envVar$configMapRef","_configMap$metadata2","hasVolumeReference","_configMap$metadata3","configurationOwnerUsernameLabel","_row$metadata2","_row$metadata3","isSystemToken","isSystemConfigMap","hasConfigurationOwner","inUse","_row$original$metadat","_row$original$metadat2","_row$original$metadat3","_row$original$metadat4","_columnId","getCreatedAtText","ConfigMapsDatatable","_useConfigMapsForClus","_useApplicationsQuery","applicationsQuery","configMapRowData","applicationsLoading","_namespaces2","_configMap$metadata$n2","useConfigMapRowData","_namespaces","_configMap$metadata$n","deleteConfigMapMutation","successfulConfigMaps","failedConfigMaps","configMapsToDelete","_configMap$metadata$n3","_configMap$metadata$n4","_configMap$metadata4","getIsSecretInUse","_envVar$secretRef","_secret$metadata2","_secret$metadata3","_row$metadata4","isRegistrySecret","isSystemSecret","SecretsDatatable","_useSecretsForCluster","secretRowData","_namespaces3","_secret$metadata$name2","useSecretRowData","_secret$metadata$name","deleteSecretMutation","successfulSecrets","failedSecrets","secretsToDelete","_secret$metadata$name3","_secret$metadata$name4","_secret$metadata4","widget","useUnauthorizedRedirect","_ref$adminOnlyCE","isAuthorizedQuery","IngressClassDatatable","LoadBalancerFormSection","NamespaceSummary","resourceQuota","StorageQuotaItem","StorageQuotaFormSection","useClusterResourceLimitsQuery","_getResourceLimits","getResourceLimits","ResourceQuotaFormSection","_resourceLimitsQuery$","_resourceLimitsQuery$2","_resourceLimitsQuery$3","_resourceLimitsQuery$4","_Number2","enableResourceOverCommit","resourceLimitsQuery","RegistriesFormSection","NamespaceInnerForm","_environmentQuery$dat3","_environmentQuery$dat4","_environmentQuery$dat5","ingressClassesQuery","useLoadBalancer","EnableResourceOverCommit","enableIngressControllersPerNamespace","IngressAvailabilityPerNamespace","ingressClasses","registriesValidationSchema","getResourceQuotaValidationSchema","_Number3","cpuValue","_Number4","getNamespaceValidationSchema","notOneOf","updateEnvironmentRegistryAccess","_updateEnvironmentRegistryAccess","buildRegistryUrl","createNamespace","_createNamespace","CreateNamespaceForm","_useCurrentEnvironmen","createNamespaceMutation","createNamespacePayload","updateRegistriesPayload","namespaceIngressControllerPayload","updateRegistriesPromises","updateIngressControllerPromise","Namespaces","useCreateNamespaceMutation","userName","createNamespaceFormValues","memoryInBytes","Owner","ResourceQuota","registryFormValues","_selectedRegistry$Reg","selectedRegistry","envNamespacesWithAccess","SubRow","cellCount","unmetTaints","highlighted","unmatchedNodeSelectorLabels","unmatchedNodeAffinities","UnmetTaintsInfo","taints","isHighlighted","UnmatchedLabelsInfo","UnmatchedAffinitiesInfo","affinities","taint","effect","aff","acceptsApplication","enableResizing","PlacementsDatatable","hasPlacementWarning","placementsSettingsStore","usePlacementTableState","useApplicationYAML","_autoScalar$metadata","_useApplication2","applicationYAML","applicationYAMLQuery","_useServicesQuery","servicesYAML","servicesYAMLQuery","_useApplicationHorizo","autoScalarsQuery","_excluded5","_useHorizontalAutoSca","getNamespaceHorizontalPodAutoscaler","useHorizontalAutoScalarQuery","autoScalarYAML","autoScalarYAMLQuery","_excluded6","fullApplicationYaml","isApplicationYAMLLoading","ApplicationYAMLEditor","_useApplicationYAML","getIngressClassesFormValues","ingressClassesFormValues","noneIngressClassIndex","ingressClass","availableStorageClassPolicies","getStorageClasses","_getStorageClasses","storageClassList","transformStorageClassesToFormValues","_storageClass$metadat2","enabledStorage","_storageClass$metadat","accessMode","provisioner","allowVolumeExpansion","accessModeSchema","storageClassFormValuesSchema","_value$AccessModes","endpointChangeWindowSchema","ingressControllerClassMapSchema","configureValidationSchema","useServerMetrics","resourceOverCommitPercentage","restrictDefaultNamespace","restrictStandardUserIngressW","ingressAvailabilityPerNamespace","changeWindow","RBACAlert","EnableMetricsInput","metricsFound","setMetricsFound","getMetricsMutation","StorageAccessModeSelector","innerProps","StorageClassDatatable","storageClassValues","storageClassValue","accessModes","hasValidStorageConfiguration","patchStorageClass","_patchStorageClass","storageClassPatch","_handleSubmitConfigureCluster","configureClusterMutation","_initialValues$ingres","selectedStorageClasses","updatedEnvironment","storageClassPatches","restrictAccessToDefaultNamespace","assignFormValuesToEnvironment","createStorageClassPatches","updateEnvironmentPayload","oldStorageClasses","oldStorageClass","createStorageClassPayload","ResourceOverCommitPercentage","RestrictDefaultNamespace","RestrictStandardUserIngressW","AllowNoneIngressClass","ConfigureForm","_useStorageClassesFor","storageClassFormValues","useStorageClassesFormValues","formikHelpers","handleSubmitConfigureCluster","formikProps","isIngressClassesLoading","_useIsRBACEnabledQuer","isRBACEnabled","isRBACEnabledQuery","controllerClassMap","isFormChanged","_secretsResults$data","isAuthorizedToAddEdit","setNamespace","ingressRule","setIngressRule","isEditClassNameSet","setIsEditClassNameSet","_useNamespaceServices","useNamespaceServices","allServices","secretsResults","ingressesResults","createIngressMutation","updateIngressMutation","useUpdateIngress","_useMemo","_ingressesResults$dat","_ingressesResults$dat2","ruleCounterByNamespace","hostWithTLS","_ingress$TLS","_useMemo2","namespaceOptions","nsKey","groupedOptions","existingIngressClass","allowedIngressClassOptions","cls","disallowedIngressClasses","notFoundIngressClassOption","prevRules","_ingressControllers$f","_config$metadata","_config$metadata2","_config$metadata3","_ingressesResults$dat3","_ingressControllers$f2","prepareRuleFromIngress","_ingressRule$Hosts","hIndex","tlsOptionVals","_ingressRule$Hosts2","_host$Paths","pIndex","_servicePorts$service","currentServicePorts","groupedServiceOptions","_rule$Annotations","duplicatedAnnotations","re","duplicatedHosts","hi","_host$Paths2","pi","availableServiceNames","optionGroup","sn","isExists","exists","checkIfPathExistsWithHost","debouncedValidate","noHost","_rule$Annotations2","_rule$Annotations3","rules","newKey","addNewIngress","classNameToSend","stateAndParams","_usePlacementTableDat","placementsData","placementDataFromTolerations","tolerations","nodePlacements","matchKeyMatchValueMatchEffect","matchKeyAnyValueMatchEffect","matchKeyMatchValueAnyEffect","matchKeyAnyValueAnyEffect","anyKeyAnyValueAnyEffect","computeTolerations","placementDataFromAffinities","nodePlacementsFromAffinities","nodeIndex","_node$metadata2","podNodeSelectorLabels","nodeSelector","getUnmatchedNodeSelectorLabels","unmatchedRequiredNodeAffinities","basicNodeAffinity","affinity","nodeAffinity","requiredDuringSchedulingIgnoredDuringExecution","nodeSelectorTerms","selectorTerm","_selectorTerm$matchEx","matchExpressions","matchExpression","_node$metadata3","_node$metadata4","_node$metadata5","_matchExpression$valu","_node$metadata6","_matchExpression$valu2","_matchExpression$valu3","isIn","unmatchedAffinity","getUnmatchedRequiredNodeAffinities","computeAffinities","computePlacements","isPlacementsTableLoading","notAllowedOnEveryNode","nodePlacement","usePlacementTableData","placementsTableState","_useApplicationEvents","appEventsTableState","appEventsData","appEventWarningCount","isAppEventsTableLoading","useApplicationEventsTableData","LaptopCode","_usePVCsQuery","pvcs","usePVCsQuery","pvcsQuery","_excluded7","podID","setCommand","connectionStatus","setConnectionStatus","terminal","setTerminal","setSocket","disconnectConsole","terminalContainer","encoded","TextEncoder","encode","writeUtf8","TerminalIcon","ExpirationCache","Map","removeAll","registriesModule","customTemplateModule","KubernetesHealthService","$http","UserService","UseCache","KubernetesLocalEnvironment","AgentOnKubernetesEnvironment","endpointKubernetesSecurityConstraint","Kind","settingsKey","onPublishingModeClick","isPrimary","onChangeNamespaceDropdown","isAppsLoading","isSystemResources","isVisible","DatatableService","extend","expandAll","expandedItems","filteredDataSet","expandItem","isItemExpanded","KubernetesApplications","hasConfigurationSecrets","getPublishedUrls","setDataTableExpandedItems","expandItems","storedExpandedItems","onDataRefresh","getDataTableExpandedItems","onSettingsShowSystemChange","updateNamespace","setDataTableSettings","isDisplayed","ingressUrls","PublishedPorts","pp","IngressRules","loadBalancerURLs","LoadBalancerIPAddress","publishedUrls","Configurations","applyFilters","onStateFilterChange","prepareTableFromDataset","availableTypeFilters","onChangeNamespace","settingsLoaded","allNamespacesOption","visibleNamespaceOptions","defaultNS","storedStacksSettings","getDataTableSettings","setDefaults","storedOrder","getDataTableOrder","textFilter","getDataTableTextFilters","onTextFilterChange","storedFilters","getDataTableFilters","storedSettings","KubernetesConfigurationHelper","isSystemConfig","IsRegistrySecret","isExternalConfiguration","canManageAccess","isDefaultNamespace","disableRemove","namespaceStatusColor","KubernetesVolumesDatatableController","onInit","KubernetesVolumeHelper","isExternalVolume","HelmTemplatesListController","HelmService","selectedCategory","updateCategories","onCategoryChange","annotationCategories","charts","availableCategories","cat","selectAction","HelmTemplatesController","KubernetesResourcePoolService","installHelmchart","getHelmValues","selectHelmChart","getHelmRepoURLs","getLatestCharts","getResourcePools","clearHelmChart","onSelectHelmChart","contentvalues","originalvalues","Repo","Chart","Values","install","loadingValues","scrollTo","showCustomValues","reposLoading","GlobalRepository","UserRepositories","getHelmRepositories","globalRepository","userHelmReposUrls","uniqueHelmRepos","repos","helmRepos","chartsLoading","promiseList","chartPromises","latestCharts","tp","resourcePoolsLoading","nonSystemNamespaces","resourcePool","resourcePools","chartName","isDockerConfig","onChangeValidation","isCreation","KubernetesConfigurationDataController","editorUpdateAsync","onFileLoad","onFileLoadAsync","showSimpleMode","showAdvancedMode","KubernetesSecretTypeOptions","duplicateKeys","KubernetesFormValidationHelper","getDuplicates","invalidKeys","getInvalidKeys","addEntry","KubernetesConfigurationFormValuesEntry","newDataIndex","DOCKERCFG","addMissingKeys","DOCKERCONFIGJSON","BASICAUTH","SSHAUTH","BOOTSTRAPTOKEN","isRequiredKey","removeEntry","DataYaml","byteLength","encoding","chardet","Buffer","decoder","TextDecoder","IsBinary","isBinary","stringValue","decode","Base64","existingEntryIndex","isEntryRequired","SERVICEACCOUNTTOKEN","addEntryFromFile","temporaryFileReader","readAsArrayBuffer","IsSimple","parseYaml","parseData","cpuReservation","cpuUsage","memoryUsage","displayUsage","KubernetesResourceReservationController","usageValues","cpuReservationPercent","memoryReservationPercent","cpuUsagePercent","memoryUsagePercent","KubernetesApplicationConverter","Metadata","StackId","KubernetesPortainerApplicationStackIdLabel","KubernetesPortainerApplicationStackNameLabel","ApplicationKind","KubernetesPortainerApplicationKindLabel","KubernetesPortainerApplicationOwnerLabel","KubernetesPortainerApplicationNameLabel","KubernetesPortainerApplicationNote","imagePullSecrets","Pods","associatePodsAndApplication","Cpu","parseCPU","Requests","serviceType","ServiceType","ClusterIp","ExternalIp","KubernetesServiceTypes","LOAD_BALANCER","portsRefs","pList","pRefs","KubernetesApplicationPort","_apiPortsToPublishedPorts","KubernetesIngressHelper","findSBoundServiceIngressesRules","vcTemplates","inexistingPVC","matchingVolumeMount","KubernetesApplicationPersistedFolder","HostPath","ConfigurationVolumes","configurationName","configurationVolume","KubernetesApplicationConfigurationVolume","fileMountPath","rootMountPath","configurationKey","KubernetesApplication","applicationCommon","RunningPodsCount","TotalPodsCount","HeadlessServiceName","persistentVolumeClaims","KubernetesApplicationFormValues","generateServicesFormValuesFromServices","generateSelectorFromService","ImageModel","ReplicaCount","generateEnvVariablesFromEnv","generatePersistedFoldersFormValuesFromPersistedFolders","generateConfigurationFormValuesFromEnvAndVolumes","ConfigMaps","generateAutoScalerFormValueFromHorizontalPodAutoScaler","generatePublishedPortsFormValuesFromPublishedPorts","PublishingType","generatePlacementsFormValuesFromAffinity","Affinity","KubernetesCommonHelper","ownerToLabel","claims","KubernetesPersistentVolumeClaimConverter","applicationFormValuesToVolumeClaims","rwx","hasRWX","headlessService","KubernetesDeploymentConverter","applicationFormValuesToDeployment","KubernetesStatefulSetConverter","applicationFormValuesToStatefulSet","KubernetesDaemonSetConverter","applicationFormValuesToDaemonSet","KubernetesPodConverter","applicationFormValuesToPod","KubernetesServiceConverter","applicationFormValuesToHeadlessService","applicationFormValuesToService","applicationFormValuesToServices","KubernetesConfigMapConverter","KubernetesPortainerAccessConfigMap","KubernetesConfigMapCreatePayload","_unset","createAccessPayload","KubernetesConfigMap","ConfigurationOwner","KubernetesPortainerConfigurationOwnerLabel","binaryData","configurationOwner","omission","KubernetesConfigMapUpdatePayload","KubernetesConfiguration","SecretType","ServiceAccountName","volumeClaims","KubernetesDaemonSet","bytesValue","generateEnvFromEnvVariables","generateVolumesFromPersistentVolumClaims","generateEnvOrVolumesFromConfigurations","generateAffinityFromPlacements","KubernetesDaemonSetCreatePayload","assignOrDeleteIfEmpty","VolumeMounts","oldDaemonSet","newDaemonSet","JsonPatch","KubernetesDeployment","KubernetesDeploymentCreatePayload","oldDeployment","newDeployment","KubernetesEvent","Involved","KubernetesNamespaceConverter","KubernetesNamespace","ResourcePoolName","KubernetesPortainerResourcePoolNameLabel","ResourcePoolOwner","KubernetesPortainerResourcePoolOwnerLabel","isDefaultSystemNamespace","systemLabel","KubernetesPortainerNamespaceSystemLabel","KubernetesNamespaceCreatePayload","resourcePoolOwner","storageClassToPVCAccessModes","RWO","RWX","KubernetesPersistentVolumeClaim","existantPVC","KubernetesPersistentVolumClaimCreatePayload","oldPVC","newPVC","KubernetesResourcePool","KubernetesResourceQuotaConverter","resourcePoolFormValuesToResourceQuota","ingMap","IngressClasses","Selected","KubernetesIngressConverter","resourcePoolIngressClassFormValueToIngress","KubernetesResourceQuota","hard","KubernetesPortainerResourceQuotaCPULimit","KubernetesPortainerResourceQuotaMemoryLimit","MemoryLimitUsed","CpuLimitUsed","KubernetesResourceQuotaCreatePayload","KubernetesResourceQuotaHelper","generateResourceQuotaName","assignOrDeleteIfEmptyOrZero","KubernetesPortainerResourceQuotaCPURequest","KubernetesPortainerResourceQuotaMemoryRequest","oldQuota","newQuota","KubernetesResourcePoolFormValues","KubernetesResourceQuotaDefaults","HasQuota","StorageRequests","KubernetesSecretCreatePayload","stringData","KubernetesPortainerConfigurationDataAnnotation","KubernetesSecretUpdatePayload","KubernetesApplicationSecret","CUSTOM","customType","KubernetesService","publishedPort","IsNew","NeedsDeletion","KubernetesServicePort","ContainerPort","LoadBalancerPort","NODE_PORT","LoadBalancerNodePort","_publishedPortToServicePort","KubernetesServiceHelper","generateHeadlessServiceName","KubernetesServiceCreatePayload","KubernetesServiceHeadlessClusterIP","KubernetesStatefulSet","KubernetesStatefulSetCreatePayload","VolumeClaims","oldSFS","newSFS","KubernetesStorageClassConverter","KubernetesStorageClass","KubernetesStorageClassCreatePayload","newStorageClass","claim","pool","KubernetesVolume","kubeCustomTemplatesView","KubeCustomTemplatesViewController","CustomTemplateService","currentUser","getTemplates","selectTemplate","customTemplates","KubernetesEndpoint","leaderAnnotation","KubernetesEndpointAnnotationLeader","parsedJson","holderIdentity","HolderIdentity","Subsets","KubernetesEndpointSubset","Ips","_KubernetesEndpoint","_KubernetesEndpointSubset","KubernetesEndpointService","KubernetesEndpoints","getAllAsync","KubernetesEndpointConverter","apiToEndpoint","HelmFactory","helmUrl","templatesUrl","userHelmUrl","addHelmRepository","output","uninstall","release","listReleases","PodKubernetesInstanceLabel","PodManagedByLabel","cv","associateContainerPersistedFoldersAndConfigurations","KubernetesPortMapping","KubernetesPortMappingPort","envVariables","KubernetesApplicationEnvPayload","KubernetesApplicationEnvironmentVariableFormValue","nameIndex","configurationKind","filterCondition","finalRes","cfg","cfgEnv","cfgVol","keyEnv","keyVol","Sum","EnvCount","VolCount","_max","overrideThreshold","KubernetesApplicationConfigurationFormValue","fvKey","KubernetesApplicationConfigurationFormValueOverridenKey","finalEnv","finalVolumes","finalMounts","isBasic","envKeys","KubernetesApplicationEnvConfigMapPayload","KubernetesApplicationEnvSecretPayload","volKeys","groupedVolKeys","volumeName","generatedApplicationConfigVolumeName","itemsMap","KubernetesApplicationVolumeEntryPayload","KubernetesApplicationVolumeMountPayload","KubernetesApplicationVolumeConfigMapPayload","KubernetesApplicationVolumeSecretPayload","svcport","ingPath","newPaths","Raw","publishedPorts","generatePort","KubernetesApplicationPublishedPortFormValue","IngressRoute","IngressHost","IngressHosts","autoScaler","replicasCount","KubernetesApplicationAutoScalerFormValue","MinReplicas","MaxReplicas","TargetCPUUtilization","_startsWith","KubernetesApplicationPersistedFolderFormValue","KubernetesApplicationVolumePersistentPayload","podAffinity","Placements","PlacementType","exp","KubernetesApplicationPlacementFormValue","preferredDuringSchedulingIgnoredDuringExecution","KubernetesPodNodeAffinityPayload","expressions","KubernetesNodeSelectorRequirementPayload","KubernetesNodeSelectorTermPayload","KubernetesPreferredSchedulingTermPayload","KubernetesPodAffinity","helmManagedApps","namespacedHelmReleases","instanceLabel","helmAppsList","helmInstance","helmApp","HelmApplication","appsNotReady","replaceAll","helmApplications","getHelmApplications","helmAppNames","hma","nonHelmApplications","_set","_forIn","accesses","KubernetesPortainerConfigMapAccessKey","RoleId","envFind","volumeFind","getUsingApplications","setConfigurationUsed","configurationsUsed","configMappedByName","configMappedByVolume","customTags","oldEntry","serviceNodePorts","allOtherNodePorts","sNodePort","snp","KUBERNETES_DEFAULT_NAMESPACE","KUBERNETES_DEFAULT_SYSTEM_NAMESPACES","KubernetesPortainerResourceQuotaPrefix","bytes","base10","dm","safeFilesizeParser","KubernetesResourceReservation","_endsWith","mem","KubernetesServiceHeadlessPrefix","rawApp","_isMatch","KubernetesStack","describe","stacksFromApplications","KubernetesStackHelper","expect","toHaveLength","matchingNames","KubernetesHorizontalPodAutoScalerConverter","KubernetesHorizontalPodAutoScaler","TargetEntity","KubernetesHorizontalPodAutoScalerCreatePayload","oldScaler","newScaler","KubernetesHorizontalPodAutoScalerHelper","sList","_KubernetesHorizontalPodAutoScaler","_KubernetesHorizontalPodAutoScalerCreatePayload","getYaml","rawResponse","KubernetesHorizontalPodAutoScalerService","KubernetesHorizontalPodAutoScalers","getAsync","patchAsync","deleteAsync","KubernetesCommonParams","raw","apiToModel","horizontalPodAutoScaler","oldHorizontalPodAutoScaler","newHorizontalPodAutoScaler","patchPayload","KubernetesIngressClassAnnotation","KubernetesNginxRewriteTargetAnnotations","KubernetesTraefikRewriteTargetAnnotations","KubernetesNginxUseregexAnnotations","KubernetesIngressClassTypes","NGINX","TRAEFIK","PortainerIngressClassTypes","http","ingRule","KubernetesIngressRule","backend","KubernetesIngress","ingressClassName","_findIndex","originalIngress","originalIngresses","matchedIngress","IngressClass","_fromPairs","ics","fv","KubernetesResourcePoolIngressClassFormValue","WasSelected","hfv","KubernetesResourcePoolIngressClassHostFormValue","PreviousHost","_toPairs","KubernetesResourcePoolIngressClassAnnotationFormValue","AdvancedConfig","KubernetesIngressCreatePayload","hostsWithRules","updatedHost","KubernetesIngressRuleCreatePayload","KubernetesIngressRulePathCreatePayload","keptHosts","hostsWithoutRules","emptyRules","oldData","newData","KubernetesIngressClass","KubernetesCommonMetadataPayload","pathType","KubernetesIngressService","KubernetesIngresses","getOne","getAll","newIngress","_KubernetesApplicationConfigurationFormValueOverridenKey","_KubernetesApplicationConfigurationFormValue","_KubernetesApplicationEnvironmentVariableFormValue","_KubernetesApplicationPersistedFolderFormValue","_KubernetesApplicationAutoScalerFormValue","KubernetesFormValidationReferences","hasRefs","KubernetesApplicationQuotaDefaults","_KubernetesApplication","_KubernetesApplicationPersistedFolder","_KubernetesApplicationConfigurationVolume","_KubernetesApplicationPort","KubernetesDeploymentTypes","GIT","CONTENT","APPLICATION_FORM","_KubernetesApplicationVolumeMount","_KubernetesApplicationVolumePersistentPayload","_KubernetesApplicationVolumeConfigMapPayload","_KubernetesApplicationVolumeSecretPayload","_KubernetesApplicationVolumeEntryPayload","_KubernetesApplicationEnvPayload","_KubernetesApplicationEnvConfigMapPayload","_KubernetesApplicationEnvSecretPayload","_KubernetesCommonMetadataPayload","KubernetesPortainerConfigMapNamespace","KubernetesPortainerConfigMapConfigName","_KubernetesConfigMap","_KubernetesConfigMapCreatePayload","_KubernetesConfigMapUpdatePayload","_KubernetesConfigurationFormValues","OPAQUE","KubernetesConfigurationFormValues","_KubernetesConfigurationFormValuesEntry","_KubernetesConfiguration","_KubernetesDaemonSet","VoluemMounts","_KubernetesDaemonSetCreatePayload","updateStrategy","rollingUpdate","maxUnavailable","KubernetesDeployManifestTypes","KUBERNETES","KubernetesDeployBuildMethods","WEB_EDITOR","CUSTOM_TEMPLATE","HELM","KubernetesDeployRequestMethods","REPOSITORY","STRING","RepositoryMechanismTypes","WEBHOOK","INTERVAL","_KubernetesDeployment","_KubernetesDeploymentCreatePayload","maxSurge","_KubernetesEvent","KubernetesSystem_DefaultDeploymentUniqueLabelKey","KubernetesSystem_RevisionAnnotation","KubernetesSystem_RevisionHistoryAnnotation","KubernetesSystem_DesiredReplicasAnnotation","KubernetesSystem_MaxReplicasAnnotation","KubernetesSystem_AnnotationsToSkip","_KubernetesNamespaceCreatePayload","KubernetesNodesLimits","nodesLimits","MaxCPU","MaxMemory","convertCPU","calculateMaxCPUMemory","nodesLimitsArray","_maxBy","overflowForReplica","instances","overflowForGlobal","overflow","excludesPods","_KubernetesPortMappingPort","_KubernetesPortMapping","Expanded","RewriteTarget","KubernetesResourcePoolNginxRewriteAnnotationFormValue","KubernetesResourcePoolNginxUseregexAnnotationFormValue","KubernetesResourcePoolTraefikRewriteAnnotationFormValue","Quota","Ingresses","_KubernetesResourceReservation","KubernetesResourceTypes","NAMESPACE","RESOURCEQUOTA","DEPLOYMENT","STATEFULSET","DAEMONSET","PERSISTENT_VOLUME_CLAIM","INGRESS","HORIZONTAL_POD_AUTOSCALER","KubernetesResourceActions","CREATE","UPDATE","DELETE","_KubernetesApplicationSecret","_KubernetesSecretCreatePayload","_KubernetesSecretUpdatePayload","CLUSTER_IP","_KubernetesService","nodePortError","servicePortError","_KubernetesIngressService","_KubernetesServicePort","_KubernetesServiceCreatePayload","_KubernetesStack","_KubernetesStatefulSet","_KubernetesStatefulSetCreatePayload","partition","_KubernetesStorageClassAccessPolicies","KubernetesStorageClassAccessPolicies","_KubernetesStorageClass","_KubernetesStorageClassCreatePayload","_KubernetesPersistentVolumeClaim","_KubernetesVolume","_KubernetesPersistentVolumClaimCreatePayload","KubernetesNodeConverter","KubernetesNode","master","_has","KubernetesNodeConditionTypes","READY","memoryPressure","MEMORY_PRESSURE","PIDPressure","PID_PRESSURE","diskPressure","DISK_PRESSURE","networkUnavailable","NETWORK_UNAVAILABLE","Conditions","MemoryPressure","DiskPressure","NetworkUnavailable","KubernetesNodeAvailabilities","ACTIVE","KubernetesPortainerNodeDrainLabel","DRAIN","PAUSE","internalIP","Taints","KubernetesNodeTaint","Effect","KubernetesNodeDetails","apiToNode","architecture","operatingSystem","osImage","KubernetesNodeFormValues","KubernetesNodeTaintFormValues","KubernetesNodeLabelFormValues","filteredTaints","filteredLabels","KubernetesNodeCreatePayload","KubernetesNodeTaintPayload","oldNode","newNode","_KubernetesNodeFormValues","_KubernetesNodeTaintFormValues","IsChanged","_KubernetesNodeLabelFormValues","IsUsed","KubernetesNodeHelper","isSystemLabel","nodeSelectors","_KubernetesNode","Api","_KubernetesNodeDetails","_KubernetesNodeTaint","KubernetesNodeTaintEffects","NOSCHEDULE","PREFERNOSCHEDULE","NOEXECUTE","_KubernetesNodeCreatePayload","_KubernetesNodeTaintPayload","KubernetesNodeService","KubernetesNodes","apiToNodeDetails","errData","nodeFormValues","formValuesToNode","serviceSelector","KubernetesPod","ServiceSelector","Images","computeStatus","Restarts","_sumBy","KubernetesPodContainer","KubernetesPodContainerTypes","APP","PodName","PodIP","ImagePullPolicy","INIT","computeContainers","computeAffinity","Tolerations","KubernetesPodToleration","Operator","TolerationSeconds","tolerationSeconds","KubernetesPodEviction","oldPod","newPod","createPayloadFactory","_KubernetesPod","_KubernetesPodToleration","_KubernetesPodContainer","_KubernetesPodEviction","weight","KubernetesPodService","KubernetesPods","logsAsync","evictionAsync","podEvictionPayload","evictionPayload","evict","eviction","kubernetesRegistryAccessView","KubernetesRegistryAccessController","selectedResourcePools","savedResourcePools","onChangeResourcePools","updateNamespaces","removeNamespaces","nsToUpdate","getJSON","KubernetesNodesLimitsFactory","KubernetesPortainerNamespacesFactory","toggleSystem","getServiceAccounts","namespaceId","KubernetesApplicationService","KubernetesDeploymentService","KubernetesDaemonSetService","KubernetesStatefulSetService","KubernetesServiceService","KubernetesSecretService","KubernetesPersistentVolumeClaimService","KubernetesNamespaceService","patchPartialAsync","_getApplicationApiService","apiService","_generateIngressPatchPromises","autoScalers","rootItem","converterFunc","apiDeploymentToApplication","apiDaemonSetToApplication","apiStatefulSetToapplication","apiPodToApplication","boundService","findApplicationBoundService","boundServices","findApplicationBoundServices","associateContainersAndApplication","boundScaler","findApplicationBoundScaler","scaler","convertToApplication","servicesFound","deploymentApplications","daemonSetApplications","statefulSetApplications","boundPods","unboundPods","nakedPodsApplications","hideStacks","applicationFormValuesToApplication","claimPromises","applicationFormValuesToModel","originalServicePorts","oldApp","oldHeadlessService","oldClaims","newApp","newHeadlessService","newClaims","oldApiService","newApiService","newClaim","oldClaim","deleteAll","deleteSingle","newKind","newAutoScaler","oldKind","oldAutoScaler","oldAppPayload","newAppPayload","oldValues","applicationFormValuesToDeleteIngresses","KubernetesConfigMapService","KubernetesConfigMaps","getAccess","apiToPortainerAccessConfigMap","createAccess","updateAccessPayload","rawPromise","yamlPromise","defaultConfigMap","apiToConfigMap","updatePayload","KubernetesConfigurationService","KubernetesConfigurationConverter","secretToConfiguration","configMapToConfiguration","secretsConfigurations","configMapsConfigurations","configurationFormValuesToConfigMap","KubernetesSecretConverter","configurationFormValuesToSecret","KubernetesControllerRevisionService","KubernetesControllerRevisions","KubernetesDaemonSets","KubernetesDeployments","KubernetesEventService","KubernetesEvents","KubernetesEventConverter","apiToEvent","KubernetesHealth","pingAsync","KubernetesNamespaces","getJSONAsync","updateFinalizeAsync","apiToNamespace","ar","allNamespaces","$allSettled","fulfilled","KubernetesNodesLimitsService","KubernetesPersistentVolumeClaims","apiToPersistentVolumeClaim","KubernetesResourceQuotaService","KubernetesPortainerNamespaces","KubernetesResourcePoolConverter","formValuesToResourcePool","ingressPromises","registriesPromises","oldRegistries","newRegistries","del","createPromises","delPromises","patchPromises","old","keptRegistries","_intersectionBy","removedRegistries","newRegistriesPromises","removedRegistriesPromises","_pull","getQuota","apiToResourcePool","quotaAttempt","KubernetesResourceQuotas","apiToResourceQuota","KubernetesSecrets","apiToSecret","KubernetesServices","deleteSingleAsync","deleteAllAsync","formValuesServices","KubernetesStackService","KubernetesStatefulSets","headlessServiceName","oldStatefulSet","newStatefulSet","KubernetesStorageService","KubernetesStorage","apiToStorageClass","KubernetesVolumeService","KubernetesVolumeConverter","pvcToVolume","pools","storeNamespaces","KubernetesApplicationsController","getApplications","getApplicationsAsync","removeStacksAction","removeStacksActionAsync","selectTab","storeActiveTab","removeKubernetesStacksByName","storeNamespaceFilter","configuredApplications","getApplicationConfigurations","getNestedApplications","portMappingsFromApplications","flag","getActiveTab","currentName","$current","savedNamespace","getNamespaceFilter","preferredNamespace","UpdateIngressPrompt","hasOneIngress","hasOnePort","rulePlural","noMatchSentence","inputLabel","noMatch","KubernetesCreateApplicationController","ApplicationDeploymentTypes","ApplicationDataAccessPolicies","ApplicationTypes","ServiceTypes","appType","updateWebEditorInProgress","sliders","namespaceLimits","resourcePoolHasQuota","availableSizeUnits","alreadyExists","environmentVariables","configMapPaths","secretPaths","existingVolumes","stackNameError","editChanges","updateApplicationAsync","deployApplicationAsync","checkIngressesToUpdate","confirmUpdateApplicationAsync","onDataAccessPolicyChange","onServicesChange","onEnvironmentVariableChange","onConfigMapsChange","onSecretsChange","onChangePersistedFolder","onChangeResourceReservation","onChangeReplicaCount","onAutoScaleChange","onChangePlacements","updateApplicationType","getAppType","showDataAccessPolicySection","refreshReactComponent","onChangeNamespaceName","canSupportSharedAccess","isUpdateApplicationViaWebEditorButtonDisabled","isTemporaryRefresh","onChangeStackName","onChangeAppName","validatePersistedFolders","oldStackFileContent","resetDeploymentType","updateKubeStack","imageValidityIsValid","registryDetails","clearConfigMaps","clearSecrets","enviromnentVariables","newEnvVars","newEnvVar","resetPersistedFolders","onChangePersistedFolderPath","onChangeExistingVolumeSelection","ingressNamesUsed","uniqueIngressNamesUsed","ingressNamesLoaded","ingressNameUsed","refreshIngresses","storageClassAvailable","hasFolders","hasRWOOnly","isIsolated","isEditAndStatefulSet","getNonScalableStorage","storageOptions","enforceReplicaCountMinimum","nodeLimitsOverflow","effectiveInstances","nodeNumber","hasPortErrors","portError","publishViaIngressEnabled","isEditAndNoChangesMade","savedFormValues","isNewVolumeButtonDisabled","isEditAndExistingPersistedFolder","isExistingVolumeButtonDisabled","hasAvailableVolumes","isNonScalable","scalable","global","replica","replicated","isDeployUpdateButtonDisabled","inProgress","invalid","hasNoChanges","nonScalable","stackNameInvalid","updateSliders","namespaceWithQuota","minCpu","minMemory","_floor","updateNamespaceLimits","refreshStacks","refreshConfigurations","refreshApplications","applicationNames","refreshVolumes","filteredVolumes","isUnused","isRWX","ingressHostnames","refreshNamespaceData","resetFormValues","ingressesToUpdate","servicePortsToUpdate","confirmUpdateAppIngress","fullIngresses","updatedService","oldServiceIndex","numberOfPortsInOldService","updatedOldPorts","ingressForService","oldServicePort","ingressPathIndex","ingressUpdateIndex","ingressToUpdate","deployApplication","generateNodeLabelsFromNodes","applicationToFormValues","parseImageConfiguration","OriginalPersistedFolders","allSettledServices","settledService","fulfilledService","KubernetesHelmApplicationController","dataLoading","releases","app_version","getHelmApplication","KubernetesApplicationLogsController","getApplicationLogsAsync","updateAutoRefresh","applicationLogs","KubernetesApplicationStatsController","CPUUsage","getStats","findCharts","nodeCPU","getMetrics","podRaw","KubernetesClusterController","getNodesAsync","getEndpointsAsync","hasResourceUsageAccess","systemEndpoints","ep","kubernetesEndpoint","ips","getEndpoints","CPULimit","nodeNames","resourceReservation","computeResourceReservation","getResourceUsage","clusterResourceUsage","resourceUsage","KubernetesNodeController","getEvents","getEventsAsync","updateNodeAsync","drainNodeAsync","getNodeUsageAsync","onChangeTaintKey","duplicateTaintKeys","hasDuplicateTaintKeys","onChangeTaint","addTaint","removeTaint","restoreTaint","computeTaintsWarning","onChangeLabelKey","duplicateLabelKeys","hasDuplicateLabelKeys","onChangeLabel","restoreLabel","computeLabelsWarning","computeCordonWarning","availabilities","computeDrainWarning","drainNode","isNoChangesMade","isDrainError","isDrainOperation","isContainPortainer","isFormValid","nodeToFormValues","taintsWarning","labelsWarning","cordonWarning","drainWarning","confirmUpdateNode","getNodeUsage","hasEventWarnings","eventWarningCount","eventsLoading","KubernetesEventHelper","warningCount","availableEffects","computeUsedLabels","reorderLabels","KubernetesNodeStatsController","KubernetesCreateConfigMapController","createConfigurationAsync","getConfigurationsAsync","onResourcePoolSelectionChangeAsync","filteredConfigurations","alreadyExist","availableServiceAccounts","onResourcePoolSelectionChange","addRequiredKeysToForm","isConfigurationFormValid","isDataValid","createConfiguration","getConfigurations","KubernetesConfigMapController","getConfigurationAsync","updateConfiguration","updateConfigurationAsync","copyConfigurationValue","configurationLoading","oldDataYaml","getConfiguration","tagUsedDataKeys","configName","usedDataKeys","KubernetesConfigurationsController","refreshCallbackAsync","configurationsLoading","setConfigurationsUsed","KubernetesCreateSecretController","onSecretTypeChange","warningMessage","secretWarningMessage","KubernetesSecretController","secretType","secretTypeName","uniqueCheck","isSecretDataValid","KubernetesDeployController","deployOptions","buildMethod","DeployType","BuildMethod","tabLogsDisabled","templateLoadFailed","isEditorReadOnly","selectedHelmChart","ManifestDeployTypes","BuildMethods","onChangeTemplateId","deployAsync","getNamespacesAsync","onChangeDeployType","onChangeTemplateVariables","rendered","templateContent","EditorContent","buildLabel","COMPOSE","formatLabel","repositoryAutomaticUpdates","repositoryMechanism","automaticUpdatesLabel","disableDeploy","isWebEditorInvalid","isURLFormInvalid","ManifestURL","isCustomTemplateInvalid","isStackNameInvalid","isNamespaceInvalid","customTemplateFile","displayErrorLog","errorLog","stripAnsi","composeFormat","deployNamespace","namespace_toggle","ComposeFormat","ManifestFile","kubernetesDeploy","deploy","KubernetesResourcePoolAccessController","AccessService","authorizeAccessAsync","unauthorizeAccessAsync","onUsersAndTeamsChange","unauthorizeAccess","initAccessConfigMap","multiselectOutput","roles","endpointAccesses","KubernetesConfigMapHelper","parseJSONData","authorizedUsersAndTeams","accessConfigMap","poolAccesses","availableUsersAndTeams","newAccesses","modifiyNamespaceAccesses","authorizeAccess","storageClassSwitch","StorageClassSwitchController","KubernetesCreateResourcePoolController","IngressClassTypes","LBQuotaFeatureId","onToggleStorageQuota","onToggleLoadBalancerQuota","onToggleResourceQuota","onChangeIngressControllerAvailability","onRegistriesChange","handleMemoryLimitChange","handleCpuLimitChange","sClass","UseLoadBalancersQuota","isCreateButtonDisabled","isQuotaValid","isAlreadyExist","hasPrefixKube","checkDefaults","createResourcePool","allIngresses","canUseIngress","ingressClassesToFormValues","itemCanExpand","hasExpandableItems","KubernetesResourcePoolController","ResourceQuotaDefaults","StorageQuotaFeatureId","updateResourcePoolAsync","onToggleLoadBalancersQuota","isUpdateButtonDisabled","hasResourceQuotaBeenReduced","updateResourcePool","ingressesToDelete","registriesToDelete","WasChecked","warnings","quotaWarning","ingressWarning","registriesWarning","markUnmarkAsSystem","confirmMarkUnmarkAsSystem","ingressesLoading","hasWriteAuthorization","selectedRegistries","namespaceResourceUsage","quotaToResourcePoolFormValues","isEditable","KubernetesResourcePoolsController","getResourcePoolsAsync","finalizers","isTerminatingNS","limitedFeaturePodSecurityPolicy","KubernetesStackLogsController","generateLogsPromise","generateAppPromise","getStackLogsAsync","Logs","Application","filteredApplications","logsPromises","appColor","stackLogs","getApplicationResources","getCreatedApplicationResources","persistentVolumeClaimResources","appResourceType","oldAppResourceType","createdApplicationResourceSummary","headlessServiceUpdateResourceSummary","getServiceUpdateResourceSummary","claimSummaries","serviceUpdateResourceSummary","updateSummary","hpaUpdateSummary","serviceUpdate","emptyService","serviceCreate","serviceDelete","findCreateResources","newResources","oldResources","_differenceBy","findDeleteResources","findUpdateResources","_intersectionWith","newResource","oldResource","patches","isEqual","doGetResourcesSummary","actionFilter","getResourcesSummary","newNamespace","oldNamespace","KubernetesSummaryController","toggleSummary","generateResourceSummaryList","getArticle","article","expandedTemplate","storeKubernetesSummaryToggle","getConfigurationResources","getNamespaceResources","toggleValue","getKubernetesSummaryToggle","KubernetesVolumeController","getVolume","getVolumeAsync","updateVolumeAsync","onChangeSize","volumeSize","volumeSizeUnit","oldVolumeSize","sizeIsValid","updateVolume","increaseSize","volumeSharedAccessPolicies","volumeSharedAccessPolicyTooltips","policies","policy","matchingPolicy","KubernetesVolumesController","getVolumesAsync","storages","formatBytes","computeSize","buildStorages","getElementsByTagName","parentNode","insertBefore","BASENAME","directive","restrict","attrs","limitedFeatureDir","limitedFeatureAttrs","attr","apiServicesModule","environmentStore","setEnvironmentId","DEFAULT_TITLE","currentEndpoint","pingInterval","subscribe","setCurrentEndpoint","_state$currentEndpoin","GroupAssociationTable","createHelmRepository","_createHelmRepository","helmRepository","_getHelmRepositories","deleteHelmRepository","_deleteHelmRepository","deleteHelmRepositories","_deleteHelmRepositories","useHelmRepositories","helmRepositoryId","HelmRepositoryDatatableActions","deleteHelmRepoMutation","_onDeleteClick","onDeleteClick","HelmDatatableDescription","fileUploadField","switchField","VariablesFieldAngular","VariablesFieldController","checkValidity","customTemplatesModule","gitFormModule","FeatureFlag","useFeatureFlag","Features","FDOProfilesDatatableActions","isFDOEnabled","PlusCircle","_onDuplicateProfileClick","onDuplicateProfileClick","_onDeleteProfileClick","onDeleteProfileClick","newProfile","FDOProfilesDatatable","_useFDOProfiles","useFDOProfiles","SettingsFDOForm","fdoConfiguration","initialFDOEnabled","setIsFDOEnabled","_settings$fdoConfigur","ownerURL","ownerUsername","ownerPassword","edgeComputeFeaturesEnabled","EnableEdgeComputeFeatures","Laptop","_onChangedEnabled","onChangedEnabled","backgroundColor","alpha","padStart","padding","sliderProperties","strength","PasswordLengthSlider","sliderProps","getSliderProps","sliderValue","sliderBadge","getBadgeIcon","SaveAuthSettingsButton","isValidUrl","additionalCheck","edgeAgentCheckinInterval","enableTelemetry","loginBannerEnabled","loginBanner","logoEnabled","snapshotInterval","useToggledValue","toggleFieldName","_useField4","setIsEnabled","oldValue","setOldValue","_handleIsEnabledChange","DemoAlert","LogoFieldset","isDemoQuery","_useToggledValue2","TextArea","ScreenBannerFieldset","DEFAULT_URL","TemplatesUrlSection","buildTemplateDocUrl","EnableTelemetryField","ApplicationSettingsPanel","EdgeAgentCheckinInterval","CustomLoginBanner","LogoURL","TemplatesURL","SettingsIcon","HelmSection","KubeConfigSection","KubeNoteMinimumCharacters","DeploymentOptionsSection","globalDeploymentOptions","limitedFeature","_handleToggleAddWithForm","handleToggleAddWithForm","helmRepositoryUrl","kubeconfigExpiry","requireNoteOnApplications","minApplicationNoteLength","KubeSettingsPanel","HelmRepositoryURL","KubeconfigExpiry","kubeIcon","variantClassNames","beLinkContainerClassName","contentClassName","BEOverlay","_ref$variant","variant","useUpdateSSLConfigMutation","updateSSLConfig","_updateSSLConfig","clientCertFile","clientCert","t2","t3","HelmCertPanel","AddLabelForm","formKey","clearForm","HiddenContainersTable","HiddenContainersPanel","BlackListedLabels","withHideOnExtension","getSSLSettings","_getSSLSettings","SSLSettingsPanelWrapper","reloadingPage","setReloadingPage","forceHTTPS","httpEnabled","authStyleOptions","AutoDetect","InParams","InHeader","settingsModule","FDO","FlaskConical","setCertFile","_handleFileUpload","readFileContent","fileReader","base64","readAsDataURL","openAMTConfiguration","mpsServer","mpsUser","mpsPassword","domainName","certFileContent","certFileName","certFilePassword","handleFileUpload","onSaveSettings","RequiredPasswordLength","accessControlModule","EdgeKeyDisplay","environmentsModule","server","KVM","authToken","mouseDebounceTime","canvasHeight","canvasWidth","getRepositoryTags","_getRepositoryTags","useParams","_useParams2","useRepositoryTags","num","defaultRegistryMutation","hideDefaultRegistry","isLimited","handleShowOrHide","Book","_updateUser","ApplicationSettingsForm","updateSettingsMutation","updateUser","accountModule","_settingsQuery$data","passwordValid","forceChangePassword","minPasswordLength","showReactQueryDevtools","SHOW_REACT_QUERY_DEV_TOOLS","ReactQueryDevtools","_helmReposQuery$data3","_helmReposQuery$data4","helmReposQuery","isAdminUser","_helmReposQuery$data","_helmReposQuery$data$","_helmReposQuery$data2","helmrepository","_document$getElementB","scrollIntoView","usePaginationLimitState","paginationKey","paginationKeyBuilder","ConnectionType","EnvironmentStatusBadgeItem","EdgeIndicator","_ref$showLastCheckInD","showLastCheckInDate","heartbeat","Heartbeat","heartbeatup","heartbeatdown","Activity","EnvironmentStatusBadge","EnvironmentIcon","dockerEdge","kubeEdge","environmentTypeIcon","StatsItem","EnvironmentStatsDocker","StackCount","ServiceCount","ContainerStats","ContainerCount","RunningContainerCount","stopped","StoppedContainerCount","HealthyContainerCount","UnhealthyContainerCount","VolumeCount","ImageCount","TotalCPU","TotalMemory","NodeCount","actualTotal","EnvironmentStatsKubernetes","EnvironmentStats","_environment$Snapshot","getComponent","DockerEngineVersion","KubernetesEngineVersion","KubernetesVersion","EnvironmentTypeTag","Zap","LinkButton","EnvironmentBrowseButtons","onClickBrowse","onClickDisconnect","checkEdgeAsync","browseStatus","dashboardRoute","Wifi","WifiOff","BrowseStatusTag","Snapshot","Connected","Disconnected","EditButtons","configRoute","getDockerConfigRoute","getConfigRoute","buttonsClasses","ButtonsGrid","redirectTo","Edit2","AgentDetails","EdgeAgentDetails","associated","EnvironmentItem","groupName","snapshotTime","getSnapshotTime","useEnvironmentTagNames","downloadKubeconfigFile","_downloadKubeconfigFile","environmentIds","useListSelection","compareFn","setSelectedItems","currentItem","KubeconfigPrompt","envQueryParams","_usePaginationLimitSt2","setPageLimit","expiryQuery","expiry","prefix","expiryMessage","_useListSelection2","toggleSelection","_useEnvironmentList","isAllPageSelected","checkboxList","checkbox","_confirmKubeconfigSelection","confirmKubeconfigSelection","KubeconfigButton","setIsOpen","kubeEnvs","NoEnvironmentsInfoPanel","includeEdgeStacks","activeSchedules","supportedAgentVersions","previousVersions","useSupportedAgentVersions","minVersion","getSupportedAgentVersions","_getSupportedAgentVersions","UpdateBadge","supportedAgentVersionsQuery","sortByOptions","SortbySelector","onDescending","sortByDescending","sortByButton","EnvironmentListFilters","_agentVersionsQuery$d","agentVersions","clearFilter","connectionTypes","groupOnChange","groupState","platformTypes","setAgentVersions","setConnectionTypes","setPlatformTypes","sortByState","sortOnDescending","sortOnChange","statusOnChange","statusState","tagOnChange","tagState","agentVersionsQuery","connectionTypeOptions","_platformTypeConnecti","platformTypeConnectionType","API","EdgeAgentStandard","EdgeAgentAsync","connectionTypesDefaultOptions","getConnectionTypeOptions","platformTypeOptions","_connectionTypePlatfo","platformDefaultOptions","connectionTypePlatformType","getPlatformTypeOptions","groupOptions","uniqueGroup","uniqueTag","filterLeft","clearButton","filterRight","_activateDevice","AssociateAMTDialog","activateDeviceMutation","activateDevice","AMTButton","isOpenDialog","setOpenDialog","isOpenAmtEnabledQuery","IsAMTEnabled","edgeEnvironments","EnvironmentList","currentEnvStore","_useHomePageFilter2","searchBarValue","setSearchBarValue","_useHomePageFilter4","_useHomePageFilter6","_useHomePageFilter8","tagFilter","setTagFilter","_useHomePageFilter10","groupFilter","setGroupFilter","_useHomePageFilter12","sortByFilter","setSortByFilter","_useHomePageFilter14","setSortByDescending","_useHomePageFilter16","setSortByButton","_useHomePageFilter18","setStatusState","_useHomePageFilter20","setTagState","_useHomePageFilter22","setGroupState","_useHomePageFilter24","environmentsQueryParams","_typesByPlatform","_typesByConnection","typesByPlatform","typesByConnection","selectedTypesByPlatform","platformType","selectedTypesByConnection","connectionType","getTypes","provisioned","updateInformation","edgeAsync","getEdgeAsyncValue","queryWithSort","filteredStatus","filteredTags","filteredGroups","renderItems","_onClickBrowse","hasEdgeAsync","EdgeLoadingSpinner","useUIState","dismissedInfoPanels","dismissInfoPanel","dismissedInfoHash","dismissMotd","dismissedUpdateVersion","dismissUpdateVersion","_getMotd","MotdPanel","motd","getMotd","uiStateStore","Hash","Style","camelCaseKeys","ContentLayout","confirmEndpointSnapshot","_confirmEndpointSnapshot","getAPITokenValidationSchema","requirePassword","createUserAccessToken","_createUserAccessToken","userid","rawAPIKey","CreateUserAccessTokenInnerForm","showAuthentication","DisplayUserAccessToken","apikey","PortainerUrlField","PortainerTunnelAddrField","EdgeComputeSettings","_settings$Edge","EdgePortainerUrl","TunnelServerAddress","EnforceEdgeID","tunnelValidation","asyncIntervalFieldSettings","DeploymentSyncOptions","settingsMutation","EnabledWaitingRoomSwitch","inputProps","yup","EnableWaitingRoom","AutoEnvCreationSettingsForm","TrustOnFirstConnect","AutomaticEdgeEnvCreation","generateKey","_generateKey","asyncModeOptions","EdgeAgentStandardIcon","EdgeAgentAsyncIcon","edgeKeyMutation","useGenerateKeyMutation","resetKey","setAsyncMode","edgeComputeConfigurationOK","EdgeKeyInfo","tunnelUrl","EdgeAutoCreateScriptViewWrapper","Provisioning","_environment$StatusMe","_environment$StatusMe2","_environment$StatusMe3","_environment$StatusMe4","_environment$StatusMe5","StatusMessage","IsSetStatusMessage","ImportFdoDeviceButton","flagEnabledQuery","isFDOEnabledQuery","EnvironmentsDatatable","_tableState$sortBy3","environmentsWithGroups","GroupName","BackupFormType","DownloadCloud","S3","backupS3Settings","getBackupS3Settings","_getBackupS3Settings","updateBackupS3Settings","_updateBackupS3Settings","downloadBackup","_downloadBackup","blob","exportS3Backup","_exportS3Backup","passwordProtect","SecurityFieldset","switchDataCy","inputDataCy","setPasswordProtect","BackupFileForm","downloadMutate","scheduleAutomaticBackup","cronRule","accessKeyID","secretAccessKey","region","bucketName","s3CompatibleHost","BackupS3Form","exportS3Mutate","updateS3Mutate","useBackupS3Settings","handleExport","BackupSettingsPanel","backupType","setBackupType","fieldKey","EnableOpenAIIntegrationSwitch","OpenAIIntegration","ExperimentalFeaturesSettingsForm","ExperimentalFeatures","experimentalFeatures","handleSuccess","updateLogo","updateSnapshotInterval","updateEnableTelemetry","noDuplicateURLsSchema","urls","defaultInitialValues","HelmRepositoryForm","_ref$isEditing","URLs","CreateHelmRepositoryForm","createHelmRepositoryMutation","allRepositories","_ref$onClick","createLocalDockerEnvironment","_createLocalDockerEnvironment","_ref$socketPath","socketPath","_ref$publicUrl","publicUrl","_ref$meta","prefixPath","createEnvironment","LocalDockerEnvironment","createLocalKubernetesEnvironment","_createLocalKubernetesEnvironment","_ref2$meta","LocalKubernetesEnvironment","skipClientVerify","createAzureEnvironment","_createAzureEnvironment","_ref3$meta","AzureEnvironment","createRemoteEnvironment","_createRemoteEnvironment","creationType","_ref4$options","createAgentEnvironment","_ref5$meta","AgentEnvironment","createEdgeAgentEnvironment","portainerUrl","_ref6$meta","pollFrequency","EdgeAgentEnvironment","_createEnvironment","_options$edge","_ref7$tagIds","_options$edge2","_options$edge3","_options$edge4","formPayload","EndpointCreationType","GroupID","EdgeCheckinInterval","TLSSkipClientVerify","TLSCACertFile","TLSCertFile","TLSKeyFile","AzureApplicationID","applicationId","AzureTenantID","tenantId","AzureAuthenticationKey","authenticationKey","EdgeAsyncMode","EdgePingInterval","EdgeSnapshotInterval","EdgeCommandInterval","useConnectLocalEnvironment","localEnvironment","setLocalEnvironment","_useFetchLocalEnviron","Infinity","useFetchLocalEnvironment","createLocalEnvironmentMutation","createLocalEnvironment","mutationStatus","_createLocalEnvironment","EnvironmentSelector","existingEnvironmentTypes","newEnvironmentTypes","environmentTypes","formTitles","dockerStandalone","dockerSwarm","aci","kaas","k8sInstall","Stepper","currentStep","steps","useGenericCreationMutation","MetadataFieldset","tagProps","tagHelpers","MoreSettingsSection","NameField","_isNameUnique","useNameValidation","uniquenessTest","EdgeAgentFieldset","metadataValidation","EdgeAgentForm","nameValidation","urlValidation","tunnelServerAddr","useValidationSchema","buildInitialValues","Plug2","EdgeAgentTab","setEdgeInfo","EdgeKey","EnvironmentUrlField","_address$split2","validateAddress","AgentForm","deploymentsStandalone","deploymentsSwarm","DeploymentScripts","deployType","setDeployType","agentDetailsQuery","DeployCode","AgentTab","APIForm","tlsConfig","getTlsValues","APITab","SocketForm","overridePath","OverrideSocketFieldset","SocketTab","WizardDocker","setCreationType","_onCreate","_onCreate2","_onCreate3","_onCreate4","_onCreate5","getTab","WizardAzure","showAgentSecretMessage","AgentPanel","kubeConfig","KubeConfigTeaserForm","kubeConfigImportDocUrl","WizardKubernetes","WizardEndpointsList","endpointTypeName","wizardModule","localEndpointIdParam","localEndpointId","setEnvironmentIds","envTypes","useParamEnvironmentTypes","eType","_useAnalyticsState","dockerAgent","dockerApi","kubernetesAgent","kubernetesEdgeAgentAsync","kubernetesEdgeAgentStandard","kaasAgent","aciApi","localEndpoint","dockerEdgeAgentAsync","dockerEdgeAgentStandard","analytics","setAnalyticsState","setAnalytics","prevState","useAnalyticsState","_useStepper","onFinish","currentStepIndex","setCurrentStepIndex","isFirstStep","isLastStep","onNextClick","removeItem","onPreviousClick","useStepper","Wand2","ArrowLeft","startWizard","localEnvironmentAdded","Kube","teamSyncQuery","TeamSync","leaderCount","_handleDeleteClick","_useRowContext","addMemberMutation","UsersList","rowContext","UserPlus","membershipsQuery","removeMemberMutation","teamRole","updateRoleMutation","Cell","LeaderCell","MemberCell","onSuccessMessage","UserX","TeamMembersList","TeamAssociationSelector","teamUsers","usersNotInTeam","userRoles","CreateTeamForm","addTeamMutation","incFormKey","_handleAddTeamClick","TeamsDatatable","teamsModule","teamIdParam","useTeamIdParam","teamQuery","usersQuery","teamsQuery","Restricted","_getList","useList","getList","ScheduleType","_deleteUpdateSchedule","scheduleStatus","statusMessage","Failed","FORMAT","ScheduledTimeField","dateValue","parseIsoDate","DateTimePicker","dateToSave","calendarIcon","clearIcon","disableClock","minDate","scheduledTime","scheduleType","listQuery","edgeGroupNames","schedules","schedule","deleteUpdateSchedule","currentId","useEdgeGroupsEnvironmentIds","envIds","DEFAULT_MIN_VERSION","VersionSelect","_ref$minVersion","supportedVersions","UpdateScheduleDetailsFieldset","hasTimeZone","hasNoTimeZone","hasGroupSelected","getPreviousVersions","_getPreviousVersions","RollbackOptions","_useSelectVersionOnMo","_environmentIdsQuery$2","_useFormikContext$val","versionError","environmentIdsQuery","previousVersionsQuery","usePreviousVersions","_environmentIdsQuery$","useSelectVersionOnMount","groupNames","RollbackScheduleDetailsFieldset","ScheduleTypeSelector","environmentsIds","LocalTimeZone","Update","Rollback","_edgeGroups$find","EdgeGroupsField","selectedGroups","schedulesQuery","handleBlur","FormikForm","_getItem","includeEdgeStack","_update","itemQuery","useItem","isScheduleActive","initialValuesActive","environmentsCount","environmentsPreviousVersions","itemId","updateValidation","updateSchedulesModule","ListView","CreateView","ItemView","clearStore","connectingToEdgeEndpoint","setConnectingToEdgeEndpoint","_redirect","_confirmTriggerSnapshot","EdgeAutoCreateScriptView","_settings$data","newAPIToken","setNewAPIToken","constCurrentEnvironmentStore","deletionMutation","environmentsToDelete","deleteCluster","mobileWidth","useSidebarState","SidebarProvider","_storage$useLocalStor2","storageIsOpen","setIsOpenInStorage","_useStateWithUndo2","undoIsOpenChange","onResize","undo","handleSetState","newState","useStateWithUndo","isMobile","useUpdateAngularService","AngularSidebarService","innerWidth","SidebarTooltip","useSidebarSrefActive","_pathOptions$ignorePa","_pathOptions$includeP","activeClassName","pathOptions","ignorePaths","includePaths","stateName","useSrefActive","ItemAnchor","isSubMenu","SidebarItem","_ref$isSubMenu","_ref$ignorePaths","_ref$includePaths","sidebarAnchor","SidebarSection","showTitleWhenOpen","SidebarSectionTitle","showWhenOpen","SidebarParent","listId","hasActiveChild","parentItem","childList","block","EdgeComputeSidebar","Puzzle","icons","_icons","DashboardLink","platformPath","Layout","AzureSidebar","VolumesLink","DockerSidebar","areStacksVisible","setupSubMenuProps","featSubMenuTo","registrySubMenuTo","terminalHeight","terminalClose","terminalResize","contentWrapperHeight","innerHeight","overflowY","pageWrapper","KubeCtlShell","minimized","setShell","terminalElem","handleClose","openTerminal","writeln","onOpen","onMessage","readyState","CLOSED","wsProtocol","onKey","domEvent","ctrlKey","loadingMessage","KubectlShellButton","setOpen","createPortal","KubernetesSidebar","EnvironmentSidebar","envStore","clearEnvironment","onClear","_sidebar","Sidebar","getPlatformIcon","closeBtn","SettingsSidebar","isPureAdminOrTeamLeader","showUsersSection","EdgeUpdatesSidebarItem","Radio","Award","UpdateNotification","UpdateAvailable","LatestVersion","dismissTitle","dismissBtn","BuildInfoModalButton","isBuildInfoVisible","setIsBuildInfoVisible","statusQuery","BuildInfoModal","closeModal","_versionQuery$data","DatabaseVersion","versionInfo","BuildNumber","ImageTag","GitCommit","toolsList","Wrench","tools","NodejsVersion","YarnVersion","WebpackVersion","GoVersion","Variable","BEFooter","CEFooter","FooterContent","customLogo","_useSidebarState","collapseBtn","ChevronsLeft","ChevronsRight","fullLogoBE","fullLogoCE","smallLogo","getLogo","getSystemInfo","_getSystemInfo","upgradeEdition","_upgradeEdition","license","UploadLicenseDialog","goToLoading","goToGetLicense","isGetLicenseSubmitted","upgradeMutation","Upgrade","LoadingDialog","setEnabled","timeoutId","NonAdminUpgradeDialog","globalId","HubspotForm","portalId","formId","onSubmitted","elRef","_useHubspotForm","elId","loadHubspot","createForm","onFormSubmitted","useHubspotForm","_loadHubspot","hbspt","script","_createForm","onFormReady","_options$onFormReady","rest","GetLicenseDialog","goToUploadLicense","UpgradeDialog","setCurrentStep","setIsGetLicenseSubmitted","isSubmitted","getDialog","UpgradeBEBannerWrapper","nodesCountQuery","systemInfoQuery","systemInfo","upgrade","nodeCount","edgeAgents","enabledPlatforms","ArrowUpCircle","InnerSidebar","Home","sidebarModule","azureEndpointConfig","helpersModule","featureFlagModule","userActivityModule","loggedIn","initAuthentication","initialize","nextTransition","nextTransitionName","isTransitionRequiresAuthentication","account","logout","deviceImport","endpointAccess","endpointKVM","groupCreation","groupAccess","initAdmin","settingsAuthentication","InformationPanelAngular","dismissAction","updateAction","inheritFrom","Inherited","TeamService","RCO","onAuthorizedTeamsChange","AuthorizedTeams","onAuthorizedUsersChange","AuthorizedUsers","availableTeams","availableUsers","onChangeEnablement","AccessControlEnabled","onChangeOwnership","retrieveOwnershipDetails","setOwnership","setAuthorizedUsersAndTeams","porAccessManagement","accessControlledEntity","entityType","PorAccessManagementController","RoleService","onChangeUsersAndTeams","oldUserAccessPolicies","oldTeamAccessPolicies","updatedUserAccesses","updatedTeamAccesses","accessPolicies","generateAccessPolicies","userAccessPolicies","teamAccessPolicies","selectedRoleId","selectedRole","selectedUserAccesses","selectedTeamAccesses","selectedAccesses","isRoleLimitedToBE","RoleTypes","STANDARD","roleLabel","spinning","CodeEditorController","CodeMirrorService","editorElement","applyCodeMirrorOnElement","on","CopyButtonController","isFading","copyValueText","CustomTemplateSelectorController","handleChangeTemplate","stackType","customTemplateSelector","newTemplatePath","AccessTokensDatatableController","onClickAdd","DatatableColumnsVisibilityController","DatatableFilterController","onChangeItem","isChecked","datatableFilter","PaginationService","selectAll","paginatedItemLimit","displayTextFilter","resetSelectionState","onTextFilterChangeGeneric","setDataTableTextFilters","changeOrderBy","orderField","setDataTableOrder","selectItem","originalEvent","firstClickedItem","firstItemIndex","lastItemIndex","itemsInRange","isBetween","uniq","onSelectionChanged","changePaginationLimit","setPaginationLimit","showTextFilter","getPaginationLimit","$onInitGeneric","storedColumnVisibility","getColumnVisibilitySettings","datatableTitlebar","datatablePagination","onChangeLimit","enableNoLimit","onChangePage","canBrowse","endpointType","RegistriesDatatableController","enableGoToLink","goToRegistry","redirectToManageAccess","stringsDatatable","emptyDatasetMessage","columnHeader","UsersDatatableController","authenticationMethod","DemoFeatureIndicatorController","isDemo","demoEnvironment","demoFeatureIndicator","Shield","onChangeTLSMode","TLSMode","onToggleTLS","TLSConfig","CACert","EndpointSecurityFormData","$attrs","dom","$eval","focusDelay","focusIf","fileUploadForm","ngRequired","webEditorForm","WebEditorFormController","GroupFormController","associatedEndpoints","allowCreateTag","unassociatedQuery","KubernetesRedeployAppGitFormController","saveGitSettingsInProgress","redeployInProgress","showConfig","hasUnsavedChanges","RefName","onChangeRef","onChangeAutoUpdate","onChangeGitAuth","onChangeTLSSkipVerify","toJson","updateKubeGit","isSubmitButtonDisabled","kubernetesRedeployAppGitForm","toggleAuthentication","$postLink","registryFormEcr","registry_name","$validators","modelValue","nameIsUsed","registryFormAzure","registryFormCustom","registryFormDockerhub","disableSelection","RegistryEnabled","retrieveRegistries","createRegistries","projects","resetDefaults","registryFormProGet","toggleOrganisation","registryFormQuay","useOrganisation","unselectTemplate","nameRegex","advanced","stackRedeployGitForm","StackRedeployGitFormController","$compile","stackPullImageFeature","Prune","onChangeEnvVar","onChangeOption","automaticUpdates","autoSyncLabel","isSwarmStack","that","updateGit","removeInvalidEnvVars","updateGitStackSettings","disablePullAndRedeployButton","redeployGitForm","$valid","disableSaveSettingsButton","isAutoUpdateChanged","wasEnabled","requires","parentClasses","BeIndicatorController","beFeatureIndicator","GitFormController","runGitFormValidation","_$onInit","_runGitFormValidation","_this$gitForm","_this$gitForm2","gitForm","GitFormAuthFieldsetController","runGitValidation","_runGitValidation","_this$gitFormAuthFiel","_this$gitFormAuthFiel2","gitFormAuthFieldset","GitFormAutoUpdateFieldsetController","_this$gitFormAutoUpda","_this$gitFormAutoUpda2","gitFormAutoUpdate","GitFormRefFieldController","_this2$gitFormRefFiel","_this2$gitFormRefFiel2","gitFormRefField","tlsFieldsetModule","widgetModule","porAccessManagementModule","formComponentsModule","ngModel","invalidIntervalFormat","minimumInterval","which","onEnterKey","OptionPanelController","switchPruneService","goTo","products","useAsterisk","precision","SliderController","buildOptions","translate","sliderId","showSelectionBar","enforceStep","isFormValidForMigration","environmentSelectorOptions","duplicationInProgress","migrationInProgress","isFormValidForDuplication","yamlError","duplicateStack","onDuplicate","migrateStack","onMigrate","isMigrationButtonDisabled","currentEndpointId","isEndpointSelected","onChangeEnvironment","groupSet","groupEnvironments","statusIndicator","Sun","Moon","ThemeSettingsController","ThemeManager","setThemeColor","setTheme","autoTheme","themeColor","updateThemeSettings","updateUserTheme","availableThemes","ThemeSettings","left","filesize","TIME_FORMAT","toDate","strFormat","outFormat","arrayToStr","labelsToStr","Cloud","findAssociatedGroup","EndpointHelper","GenericHelper","findDeepAll","NetworkHelper","ResourceControlHelper","RCViewModelToOwnershipParameters","ResourceControlOwnershipParameters","RCFormDataToOwnershipParameters","subResources","retrieveAuthorizedUsers","retrieveAuthorizedTeams","ExternalStackViewModel","validateYAML","containerNames","originalContainersNames","yamlObject","mapAsMap","maxAliasCount","duplicateContainers","extractContainerNames","getExternalStacksFromLabel","getExternalStacksFromContainers","getExternalStacksFromServices","idsToTagNames","portConfiguration","exposedPorts","labelsArray","templateEnvironment","interactiveFlag","consoleConfiguration","openStdin","tty","generatedVolumesPile","keyValStr","pathname","Override","PortainerEndpointInitFormValues","PortainerEndpointConnectionTypes","KUBERNETES_LOCAL","TLSSKipClientVerify","AzureApplicationId","AzureTenantId","PortainerEndpointCreationTypes","DOCKER_LOCAL","REMOTE","AZURE","AGENT","EDGE","RegistryGitlabProject","project","PathWithNamespace","path_with_namespace","container_registry_enabled","EndpointGroupDefaultModel","AssociatedEndpoints","EndpointGroupModel","EndpointGroupCreateRequest","EndpointGroupUpdateRequest","RegistryViewModel","BaseURL","Ecr","RegistryManagementConfigurationDefaultModel","ECR","Region","PROGET","RegistryCreateFormValues","RegistryCreateRequest","ProjectId","InstanceURL","organisationName","RegistryRepositoryViewModel","TagsCount","RegistryRepositoryGitlabViewModel","ResourceControlCreatePayload","AdministratorsOnly","Teams","SubResourceIDs","SettingsViewModel","InternalAuthSettings","LDAPSettings","OAuthSettings","OAuthSettingsViewModel","FeatureFlagSettings","UserSessionTimeout","PublicSettingsViewModel","OAuthLoginURI","OAuthLogoutURI","EdgeSettingsViewModel","IsFDOEnabled","InternalAuthSettingsViewModel","LDAPSettingsViewModel","ReaderDN","SearchSettings","GroupSearchSettings","AutoCreateUsers","LDAPSearchSettings","BaseDN","UsernameAttribute","LDAPGroupSearchSettings","GroupBaseDN","GroupAttribute","GroupFilter","ClientID","ClientSecret","AccessTokenURI","AuthorizationURI","ResourceURI","RedirectURI","UserIdentifier","Scopes","OAuthAutoCreateUsers","DefaultTeamID","SSO","LogoutURI","AuthStyle","CheckinInterval","StatusViewModel","InstanceID","StatusVersionViewModel","TagViewModel","TeamViewModel","TeamMembershipModel","UserViewModel","PortainerAuthorizations","RoleName","UserTokenModel","dateCreated","lastUsed","WebhookViewModel","Microsoft","Google","OAuthProviderSelectorController","saveButtonState","MS_TENANT_ID_PLACEHOLDER","OAuthSettingsController","limitedFeatureClass","overrideConfiguration","microsoftTenantID","onSelectProvider","onMicrosoftTenantIDChange","useDefaultProviderConfiguration","updateSSO","addTeamMembershipMapping","removeTeamMembership","onToggleAutoTeamMembership","onChangeAuthStyle","tenantID","providerId","authUrl","accessTokenUrl","resourceUrl","logoutUrl","userIdentifier","scopes","authStyle","HideInternalAuth","OAuthAutoMapTeamMemberships","TeamMemberships","OAuthClaimMappings","ClaimValRegex","Team","isOAuthTeamMembershipFormValid","OAuthClaimName","getProviderByUrl","providerAuthURL","API_ENDPOINT_OAUTH","accessViewerDatatable","AccessViewerController","TeamMembershipService","selectedUserId","onUserSelect","allUsers","_entries","getRoleFromUserEndpointPolicy","getRoleFromUserEndpointGroupPolicy","getRoleFromTeamEndpointPolicies","getRoleFromTeamEndpointGroupPolicies","findLowestRole","policyRoles","accessPolicy","AccessViewerPolicyModel","groupUserAccessPolicies","groupTeamAccessPolicies","filteredUsers","leadingTeams","userLeadingTeams","isMember","leadingTeam","_keyBy","teamMemberUsers","accessViewer","rolesDatatable","RolesDatatableController","isDefaultItem","rolesView","RolesFactory","EndpointName","RolePriority","Priority","TeamName","AccessLocation","RoleViewModel","Authorizations","ENDPOINT_ADMIN","HELPDESK","READ_ONLY","OPERATOR","API_ENDPOINT_ROLES","rolesData","RolesController","CreateRegistryController","Proget","RegistryGitlabService","originViewReference","originalEndpointId","createRegistry","retrieveGitlabRegistries","createGitlabRegistries","selectDockerHub","selectEcr","selectQuayRegistry","selectProGetRegistry","selectAzureRegistry","selectGitlabRegistry","selectCustomRegistry","setRegistry","useDefaultQuayConfiguration","useDefaultGitlabConfiguration","useDefaultEcrConfiguration","gitlabProjects","registriesNames","registryValue","availableRegistry","RegistryController","toggleQuayUseOrganisation","passwordLabel","updateRegistry","nameAlreadyExists","getRegistryProvider","registryType","_pullAllBy","nonBrowsableTypes","regAttrMsg","registriesMsg","deleteRegistry","deleteSelectedRegistries","login","headersGetter","getS3Settings","saveS3Settings","restoreS3Backup","CustomTemplatesFactory","gitFetch","getEndpointsTotalCount","disassociate","snapshots","dockerhubLimits","gitlabResponseGetLink","repositories","addEndpoint","removeEndpoint","configure","checkLDAPConnectivity","API_ENDPOINT_SSL","SSLFactory","StackFactory","subaction","associate","swarmId","migrate","StackByNameFactory","queryMemberships","updatePassword","updateTheme","checkAdminUser","initAdminUser","getAccessTokens","deleteAccessToken","entityId","rejected","accessesAsync","newUserPolicies","_clone","newTeamPolicies","_mapAccessData","authorizedPolicies","inheritedPolicies","availableAccesses","authorizedAccesses","inherited","available","authorizedUserPolicies","authorizedTeamPolicies","inheritedUserPolicies","inheritedTeamPolicies","userAccesses","teamAccesses","userAccessData","teamAccessData","accessData","Backup","uploadBackup","CustomTemplateServiceFactory","$sanitize","CustomTemplates","html","createCustomTemplate","notify","groupID","endpointURL","createEndpoint","TLSCAFile","checkinInterval","createAzureEndpoint","UserTrusted","EndpointGroups","configureRegistry","registryManagementConfigurationModel","retrievePorRegistryModelFromRepositoryWithRegistries","match2","match3","match4","rcID","duplicateResourceControl","oldResourceControl","newResourceControl","SSLServiceFactory","SSL","SSLPayload","StackViewModel","SwarmId","SwarmID","IsComposeFormat","UpdateDate","FromAppTemplate","PreviousDeploymentInfo","StackByName","StackHelper","SwarmService","kubernetesDeployAsync","migrateSwarmStack","targetEndpointId","migrateComposeStack","includeOrphanedStacks","composeStacks","IncludeOrphanedStacks","swarmStacks","externalSwarmStacks","externalComposeStacks","unionStacks","externalStacks","externalStack","_unionWith","includeExternalStacks","createComposeStackFromFileUpload","createComposeStack","createSwarmStackFromFileUpload","createSwarmStack","createComposeStackFromFileContent","createSwarmStackFromFileContent","createComposeStackFromGitRepository","ComposeFile","createSwarmStackFromGitRepository","StatusServiceFactory","Support","createTagAsync","deleteTag","leaderIds","TeamLeaders","TemplateServiceFactory","Templates","TemplateHelper","repositoryUrl","composeFilePathInRepository","containerConfiguration","getDefaultContainerConfiguration","EnvToStringArray","portArrayToPortConfiguration","getConsoleConfiguration","updateContainerConfigurationWithLabels","createContainerConfiguration","createVolumeBindings","teamIds","teamMembershipQueries","createMembership","newPassword","currentPassword","NewPassword","userTokens","tokenId","Webhooks","asyncFunc","wrapper","Auth","OAuth","initAsync","OAuthLogin","OAuthLoginAsync","logoutAsync","userHelpers","redirectIfUnauthorized","getUserId","tryAutoLoginExtension","loadUserData","clearSessionStorage","cleanAuthData","storeLoginStateUUID","loginAsync","userData","endpointAuthorizations","portainerAuthorizations","userTheme","storeUserId","useUserHasAuthorization","defaultChartOptions","pos","tooltipCallback","scalesCallback","isStacked","animation","responsiveAnimationDuration","responsive","tooltips","intersect","callbacks","tooltipItem","datasetLabel","datasets","datasetIndex","yLabel","layout","hover","animationDuration","scales","yAxes","stacked","ticks","beginAtZero","LimitChartItems","CHART_LIMIT","byteBasedTooltipLabel","byteBasedAxisLabel","percentageBasedAxisLabel","percentageBasedTooltipLabel","borderColor","pointBackgroundColor","pointBorderColor","pointRadius","borderWidth","CreateChart","cacheValue","DatatableServiceFactory","TEXT_FILTER_KEY_PREFIX","storeDataTableSettings","setDataTableFilters","storeDataTableFilters","storeDataTableOrder","storeDataTableExpandedItems","setColumnVisibilitySettings","storeColumnVisibilitySettings","setDataTableSelectedItems","storeDataTableSelectedItems","getDataTableSelectedItems","uploadFile","RetryCount","RetryInterval","uploadLDAPTLSFiles","queue","uploadOwnershipVoucher","voucherFile","voucher","validator","localStorageService","getLoginStateUUID","storeEndpointState","getEndpointState","cleanEndpointState","storeApplicationState","getApplicationState","storeUIState","getUIState","deleteUserId","storePaginationLimit","storeDataTableTextFilters","storeJobImage","getJobImage","userID","storeLogoutReason","getLogoutReason","cleanLogoutReason","clearAll","NameValidatorFactory","validateEnvironmentName","paginationLimit","storedLimit","_getProjectsPage","projectsAsync","_getRepositoriesPage","repositoriesAsync","projectId","RegistrySelectPrompt","setRegistryId","registries2Options","selectRegistry","StateManagerFactory","InfoHelper","StatusService","manager","UI","timesPasswordChangeSkipped","dismissImportantInformation","setRequiredPasswordLength","requiredPasswordLength","setPasswordChangeSkipped","instanceId","resetPasswordChangeSkips","clearPasswordChangeSkips","cleanEndpoint","logoURL","updateEnableEdgeComputeFeatures","enableEdgeComputeFeatures","setOptOut","endpointState","appState","isAppStateValid","UIState","determineEndpointMode","endpointAPIVersion","documentElement","setAttribute","removeAttribute","systemTheme","matchMedia","defaultTheme","authenticationMethodTypesMap","INTERNAL","LDAP","OAUTH","authenticationMethodTypesLabels","authenticationActivityTypesMap","AuthSuccess","AuthFailure","Logout","authenticationActivityTypesLabels","autoUserProvisionToggle","ldapModule","saveAuthSettingsButton","AdSettingsController","LDAPService","domainSuffix","limitedFeatureId","onTlscaCertChange","searchUsers","searchGroups","parseDomainName","onAccountChange","part","addLDAPUrl","removeLDAPUrl","isSaveSettingButtonDisabled","isLdapFormValid","adSettings","connectivityCheck","ldapConnectivityCheck","ldapGroupsDatatable","ldapSettings","ldapGroupSearch","ldapGroupSearchItem","ldapUserSearch","ldapUserSearchItem","ldapSettingsCustom","ldapSettingsDnBuilder","ldapSettingsGroupDnBuilder","ldapCustomGroupSearch","ldapCustomAdminGroup","ldapSettingsOpenLdap","ldapSettingsSecurity","ldapSettingsTestLogin","ldapCustomUserSearch","ldapUsersDatatable","selectedAdminGroups","defaultAdminGroupSearchFilter","onSearchClick","isLimitedFeatureSelfContained","LdapCustomAdminGroupController","groupstest","enableAssignAdminGroup","onAddClick","onAdminGroupChange","AdminGroupSearchSettings","AdminAutoPopulate","AdminGroups","LdapCustomGroupSearchController","showTable","LdapCustomUserSearchController","UserNameAttribute","baseFilter","LdapSettingsAdGroupSearchItemController","onChangeBaseDN","baseDN","addGroup","removeGroup","$index","onGroupsChange","groupsFilter","onFilterChange","parseGroupFilter","LdapGroupSearchController","lastSetting","onSearchUsersClick","onSearchGroupsClick","saveButtonDisabled","LdapSettingsCustomController","suffix","LdapSettingsBaseDnBuilderController","onEntriesChange","moveUp","moveDown","dn","getOUValues","ouValues","parseBaseDN","isFirstChange","toIndex","LdapSettingsGroupDnBuilderController","onGroupNameChange","onGroupChange","groupNameEntry","parseEntries","$onChange","LdapSettingsOpenLDAPController","findDomainSuffix","parseDomainSuffix","serviceAccount","searchSettings","uploadInProgress","showBeIndicatorIfNeeded","TEST_STATUS","LOADING","SUCCESS","FAILURE","LdapSettingsTestLogin","testStatus","testLogin","buildLdapSettingsModel","AnonymousMode","ServerType","StartTLS","buildAdSettingsModel","buildOpenLDAPSettingsModel","Openldap","SERVER_TYPES","OPEN_LDAP","AD","LdapSettingsController","settingsDrafts","boxSelectorOptions","onChangeServerType","serverType","showUsernameFormat","LdapUserSearchItemController","onBaseDNChange","generateUserFilter","parseFilter","members","member","LdapUserSearchController","API_ENDPOINT_LDAP","cnName","authenticationModule","generalModule","ActivityLogsDatatableController","changeSort","handleChangeLimit","onChangeSort","activityLogsDatatable","totalItems","onChangeContextFilter","onChangeKeyword","ActivityLogsViewController","today","endOf","minValidDate","startOf","onChangeDate","loadLogs","startDate","endDate","activityLogsView","contextFilterLabels","typeFilterLabels","contextType","activityType","isAuthSuccess","isAuthFailure","authLogsDatatable","contextFilter","typeFilter","onChangeTypeFilter","AuthLogsViewController","filterState","authLogsView","NotificationsViewAngular","activeItemId","authLogsViewModule","activityLogsViewModule","confirmPassword","updateUserPassword","skipPasswordChange","userCanSkip","newTransition","userRole","selectedTokens","isInitialAdmin","isDemoUser","AuthenticationController","URLHelper","passwordInputType","showOAuthLogin","showStandardLogin","AuthenticationError","loginInProgress","OAuthProvider","checkForEndpointsAsync","postLoginSteps","oAuthLoginAsync","internalLoginAsync","authenticateUserAsync","manageOauthCodeReturn","authEnabledFlowAsync","toggleShowPassword","setPasswordInputType","inputType","generateOAuthLoginURI","determineOauthProvider","LoginURI","generateState","hasValidState","savedUUID","cleanParameters","authenticateUser","administratorExists","toggleStandardLogin","getParameter","CustomTemplatesViewController","DOCKER_STANDALONE","DOCKER_SWARM_MODE","showAdvancedOptions","deployable","templateNameRegex","getTemplatesAsync","removeTemplates","removeTemplatesAsync","createStackAsync","selectTemplateAsync","unselectTemplateAsync","getNetworksAsync","confirmDeleteAsync","createAction","isDeployable","vouchersUploading","vouchersUploaded","deviceIDs","DeviceName","DeviceProfile","VoucherFiles","PortainerURL","Suffix","onVoucherFilesChange","uploads","responses","guid","createEndpointAndConfigureDevice","deviceID","deviceName","createRemoteEndpoint","edgeID","AddProfileController","createProfileAsync","EditProfileController","profileID","updateProfileAsync","EndpointRegistriesController","EndpointAccessController","updateAccessAsync","EndpointController","clearAMTManagementInfo","versionValue","ManagementInfo","onChangeCheckInInterval","onChangeTLSConfigFormValues","azureEndpoint","agentEndpoint","edgeEndpoint","edgeAssociated","showAMTInfo","showTLSConfig","edgeScriptCommands","onDisassociateEndpoint","disassociateEndpoint","initialTagIds","AzureCredentials","ApplicationID","TenantID","AuthenticationKey","evt","dockerInfo","isDockerSwarmEnv","edgeKeyDetails","keyInformation","decodedKey","instanceURL","decodeEdgeKey","configureTLS","isDockerEndpoint","amtInfo","RawOutput","numbers","EndpointKVMController","maximized","maximize","minimize","ider","kvm","sol","redirection","userConsent","mpsAuthorization","mpsToken","onAssociate","onDisassociate","GroupsController","deleteGroup","restoreOptions","wait","seconds","BackupService","REDIRECT_REASON_TIMEOUT","backupInProgress","BackupFile","restoreAsyncFn","waitPortainerRestart","restoreAndRefresh","RESTORE_FORM_TYPES","FILE","ConfirmPassword","restoreFormType","showInitPassword","showRestorePortainer","togglePanel","onChangeRestoreType","createAdminUser","initAdministrator","LogoutController","MainController","ArrowDownCircle","Ldap","SettingsAuthenticationController","prepareLDAPSettings","tlscaFile","isADServer","uploadRequired","authMethod","availableUserSessionTimeoutOptions","authOptions","onChangeAuthMethod","onChangePasswordLength","authenticationMethodSelected","isOauthEnabled","LDAPConnectivityCheck","connectivityCheckInProgress","failedConnectivityCheck","successfulConnectivityCheck","saveSettings","isLDAPFormValid","isTLSMode","SettingsEdgeComputeController","onSubmitEdgeCompute","onSubmitOpenAMT","onSubmitFDO","defaultMTLS","UseSeparateCert","MTLS","editorYamlValidationError","uploadYamlValidationError","selectedTemplateId","stackWebhookFeature","EnableWebhook","onEnableWebhookChange","composeSyntaxMaxVersion","ComposeSyntaxMaxVersion","getContainerNames","stopStackAsync","startStackAsync","retrieveSwarmStackResources","stackFilter","assignSwarmStackResources","STACK_TYPES","onPruneChange","migrateRequest","removeStack","detachStackFromGit","associateStack","originalContainerNames","stopStack","startStack","createEnabled","loadExternalSwarmStack","loadExternalStack","resourcesPromise","StacksController","getStacks","deleteSelectedStacks","TagsController","checkNameValidity","TemplateService","enabledTypes","addExtraHost","removeExtraHost","stackfile","createStackFromTemplate","createComposeStackFromTemplate","templateConfiguration","createTemplateConfiguration","generatedVolumeCount","determineRequiredGeneratedVolumeCount","generatedVolumeIds","createXAutoGeneratedLocalVolumes","updateContainerConfigurationWithVolumes","createAndStartContainer","createContainerFromTemplate","showSwarmStacks","updatePasswordError","Administrator","handleAdministratorChange","deleteUser","oldUsername","isCurrentUser","isSubmitEnabled","isDeleteDisabled","userCreationError","validUsername","TeamIds","onChangeTeamIds","checkUsernameValidity","toLocaleLowerCase","addUser","createUser","deleteSelectedUsers","assignTeamLeaders","teamSync","_getContainerImagesStatus","containerID","_getServiceImagesStatus","_ref$resourceType","CONTAINER","_ref$nodeName","_useImageNotification","getServiceImagesStatus","getContainerImagesStatus","useImageNotification","_module_exports"],"sourceRoot":""}