{"version":3,"file":"main.f2b632d7a448eaa5d9e6.js","mappings":"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ErCKhuC,EAAAA,GAAAA,IAAO,CACZguC,OAAOpjC,EAAAA,GAAAA,MAASyP,SAAS,qBACzB+uD,YAAY5oE,EAAAA,GAAAA,MAAS+c,QAAQ,GAC7ByjF,aAAa4G,EAAAA,GAAAA,MAAOrqF,SAAQ,KFkCG7iC,KAC7B,+BACA,wDACA,SAAC5O,GAAK,OAAM07H,QAA6C,IAArB17H,EAAMs9F,UAA0B,KAG1E,EHtCEy+B,oBE6BK,SACL9iH,EACAorE,EACArlB,GAIA,MAAO,CACLA,SAAAA,EACA4zD,eAAe,EACf1wD,MIvCK,CACLo7B,WAAY,EACZp7B,MAAO,GACPgzD,aAAa,GJqCb30C,eANoBC,EAAAA,GAAAA,IAA2BvnE,EAAaorE,GAO5DlkF,KAAM,GACNsyH,YAAY,EACZoG,YAAY,EACZ1hD,MAAO,GACPyhD,iBAAiB,EAErB,GK+HaoD,GAlLsB,CACjC,CACE9/H,IAAK,UACLye,YAAa,+BACb82B,SAAS,GAEX,CACEv1C,IAAK,QACLye,YAAa,uCACb82B,SAAS,GAEX,CACEv1C,IAAK,cACLye,YAAa,wCACb82B,SAAS,GAEX,CACEv1C,IAAK,QACLye,YAAa,+DACb82B,SAAS,GAEX,CACEv1C,IAAK,UACLye,YAAa,8BACb82B,SAAS,GAEX,CACEv1C,IAAK,eACLye,YAAa,0DACb82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YACE,gIACF82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YACE,oFACF82B,SAAS,GAEX,CACEv1C,IAAK,OACLye,YAAa,gDACb82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YACE,2EACF82B,SAAS,GAEX,CACEv1C,IAAK,SACLye,YAAa,gDACb82B,SAAS,GAEX,CACEv1C,IAAK,mBACLye,YACE,mFACF82B,SAAS,GAEX,CACEv1C,IAAK,aACLye,YAAa,wCACb82B,SAAS,GAEX,CACEv1C,IAAK,UACLye,YAAa,yBACb82B,SAAS,GAEX,CACEv1C,IAAK,aACLye,YAAa,mCAEf,CACEze,IAAK,YACLye,YAAa,wDAEf,CACEze,IAAK,YACLye,YAAa,q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","sources":["webpack://portainer/./app/ sync ^(.*\\.(js$))[^.]*$/i","webpack://portainer/./app/assets/ico/git.svg","webpack://portainer/./app/assets/ico/icon_up-to-date.svg","webpack://portainer/./app/assets/ico/icon_updates-available.svg","webpack://portainer/./app/assets/ico/icon_updates-unknown.svg","webpack://portainer/./app/assets/ico/kube.svg","webpack://portainer/./app/assets/ico/laptop-code.svg","webpack://portainer/./app/assets/ico/ldap.svg","webpack://portainer/./app/assets/ico/linux.svg","webpack://portainer/./app/assets/ico/memory.svg","webpack://portainer/./app/assets/ico/route.svg","webpack://portainer/./app/assets/ico/subscription.svg","webpack://portainer/./app/assets/ico/vendor/azure.svg","webpack://portainer/./app/assets/ico/vendor/docker-compose.svg","webpack://portainer/./app/assets/ico/vendor/docker-icon.svg","webpack://portainer/./app/assets/ico/vendor/docker.svg","webpack://portainer/./app/assets/ico/vendor/ecr.svg","webpack://portainer/./app/assets/ico/vendor/github.svg","webpack://portainer/./app/assets/ico/vendor/gitlab.svg","webpack://portainer/./app/assets/ico/vendor/google.svg","webpack://portainer/./app/assets/ico/vendor/helm.svg","webpack://portainer/./app/assets/ico/vendor/kubernetes.svg","webpack://portainer/./app/assets/ico/vendor/microsoft-icon.svg","webpack://portainer/./app/assets/ico/vendor/microsoft.svg","webpack://portainer/./app/assets/ico/vendor/openldap.svg","webpack://portainer/./app/assets/ico/vendor/proget.svg","webpack://portainer/./app/assets/ico/vendor/quay.svg","webpack://portainer/./app/angulartics.matomo/analytics-services.ts","webpack://portainer/./app/constants.ts","webpack://portainer/./app/docker/filters/utils.ts","webpack://portainer/./app/docker/helpers/containers.ts","webpack://portainer/./app/docker/helpers/splitargs.ts","webpack://portainer/./app/docker/helpers/logHelper/colors/colors.ts","webpack://portainer/./app/docker/helpers/logHelper/types.ts","webpack://portainer/./app/docker/helpers/logHelper/formatters.ts","webpack://portainer/./app/docker/helpers/logHelper/formatZerologLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/formatLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/formatJSONLogs.ts","webpack://portainer/./app/docker/helpers/logHelper/constants.ts","webpack://portainer/./app/docker/helpers/logHelper/concatLogsToString.ts","webpack://portainer/./app/docker/services/ping.ts","webpack://portainer/./app/kubernetes/components/helm/helm-templates/HelmIcon.tsx","webpack://portainer/./app/kubernetes/filters/application.ts","webpack://portainer/./app/kubernetes/models/application/models/appConstants.ts","webpack://portainer/./app/portainer/authorization-guard.ts","webpack://portainer/./app/portainer/components/BoxSelector/BoxSelectorAngular.ts","webpack://portainer/./app/portainer/components/BoxSelector/utils.ts","webpack://portainer/./app/portainer/components/BoxSelector/index.ts","webpack://portainer/./app/portainer/error.ts","webpack://portainer/./app/portainer/helpers/array.ts","webpack://portainer/./app/portainer/helpers/promise-utils.ts","webpack://portainer/./app/portainer/helpers/strings.ts","webpack://portainer/./app/portainer/helpers/webhookHelper.ts","webpack://portainer/./app/portainer/hostmanagement/fdo/fdo.service.ts","webpack://portainer/./app/portainer/hostmanagement/open-amt/open-amt.service.ts","webpack://portainer/./app/portainer/services/axios.ts","webpack://portainer/./app/portainer/services/http-request.helper.ts","webpack://portainer/./app/portainer/services/notifications.ts","webpack://portainer/./app/portainer/tags/tags.service.ts","webpack://portainer/./app/portainer/tags/queries.ts","webpack://portainer/./app/portainer/users/queries.ts","webpack://portainer/./app/portainer/users/queries/queryKeys.ts","webpack://portainer/./app/portainer/users/queries/useLoadCurrentUser.ts","webpack://portainer/./app/portainer/users/queries/useUser.ts","webpack://portainer/./app/portainer/users/types.ts","webpack://portainer/./app/portainer/users/user.helpers.ts","webpack://portainer/./app/portainer/users/user.service.ts","webpack://portainer/./app/react-tools/apply-set-state-action.ts","webpack://portainer/./app/react-tools/react-query.ts","webpack://portainer/./app/react-tools/react2angular.tsx","webpack://portainer/./app/react-tools/withControlledInput.tsx","webpack://portainer/./app/react-tools/withCurrentUser.tsx","webpack://portainer/./app/react-tools/withFormValidation.ts","webpack://portainer/./app/react-tools/withReactQuery.tsx","webpack://portainer/./app/react-tools/withUIRouter.tsx","webpack://portainer/./app/react-tools/yup-schemas.ts","webpack://portainer/./app/react/common/network-utils.ts","webpack://portainer/./app/react/common/processItemsInBatches.ts","webpack://portainer/./app/react/common/semver-utils.ts","webpack://portainer/./app/react/common/stacks/common/confirm-stack-update.ts","webpack://portainer/./app/react/common/stacks/types.ts","webpack://portainer/./app/react/components/Alert/Alert.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/BEFeatureIndicator.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/utils.ts","webpack://portainer/./app/react/components/BETeaserButton.tsx","webpack://portainer/./app/react/components/Badge/Badge.tsx","webpack://portainer/./app/react/components/BadgeIcon/BadgeIcon.tsx","webpack://portainer/./app/react/components/Blocklist/BlocklistItem.tsx","webpack://portainer/./app/assets/ico/helm.svg","webpack://portainer/./app/react/components/BoxSelector/common-options/build-methods.tsx","webpack://portainer/./app/react/components/BoxSelector/common-options/deployment-methods.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelector.module.css?5efb","webpack://portainer/./app/react/components/BoxSelector/BoxSelectorItem.module.css?460b","webpack://portainer/./app/react/components/BoxSelector/LimitedToBeBoxSelectorIndicator.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxOption.module.css?13c4","webpack://portainer/./app/react/components/BoxSelector/BoxOption.tsx","webpack://portainer/./app/react/components/BoxSelector/LogoIcon.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelectorItem.tsx","webpack://portainer/./app/react/components/BoxSelector/BoxSelector.tsx","webpack://portainer/./app/react/components/Code/Code.module.css?c26c","webpack://portainer/./app/react/components/Code/Code.tsx","webpack://portainer/./app/react/components/CodeEditor.module.css?af7a","webpack://portainer/./app/react/components/CodeEditor.tsx","webpack://portainer/./app/react/components/DashboardItem/DashboardGrid.tsx","webpack://portainer/./app/react/components/DashboardItem/DashboardItem.tsx","webpack://portainer/./app/react/components/DetailsTable/index.tsx","webpack://portainer/./app/react/components/DetailsTable/DetailsTable.tsx","webpack://portainer/./app/react/components/DetailsTable/DetailsRow.tsx","webpack://portainer/./app/react/components/FallbackImage.tsx","webpack://portainer/./app/react/components/HelpLink/HelpLink.tsx","webpack://portainer/./app/assets/ico/dataflow-1.svg","webpack://portainer/./app/assets/ico/restore-window.svg","webpack://portainer/./app/assets/ico/sort.svg","webpack://portainer/./app/assets/ico/placeholder.svg","webpack://portainer/./app/assets/ico/vendor/aws.svg","webpack://portainer/./app/assets/ico/vendor/civo.svg","webpack://portainer/./app/assets/ico/vendor/digitalocean.svg","webpack://portainer/./app/assets/ico/vendor/googlecloud.svg","webpack://portainer/./app/assets/ico/vendor/linode.svg","webpack://portainer/./app/react/components/Svg.tsx","webpack://portainer/./app/react/components/Icon.tsx","webpack://portainer/./app/react/components/InformationPanel.tsx","webpack://portainer/./app/react/components/InlineLoader/InlineLoader.tsx","webpack://portainer/./app/react/components/InsightsBox/insights-store.ts","webpack://portainer/./app/react/components/InsightsBox/InsightsBox.tsx","webpack://portainer/./app/react/components/Link.tsx","webpack://portainer/./app/react/components/NavTabs/NavContainer.tsx","webpack://portainer/./app/react/components/NavTabs/NavTabs.module.css?76f4","webpack://portainer/./app/react/components/NavTabs/NavTabs.tsx","webpack://portainer/./app/react/components/PageHeader/ContextHelp/ContextHelp.tsx","webpack://portainer/./app/react/components/PageHeader/Breadcrumbs/Breadcrumbs.tsx","webpack://portainer/./app/react/components/PageHeader/HeaderContainer.module.css?63f1","webpack://portainer/./app/react/components/PageHeader/HeaderContainer.tsx","webpack://portainer/./app/react/components/PageHeader/NotificationsMenu.module.css?bd28","webpack://portainer/./app/react/components/PageHeader/NotificationsMenu.tsx","webpack://portainer/./app/react/components/PageHeader/UserMenu.tsx","webpack://portainer/./app/react/components/PageHeader/HeaderTitle.tsx","webpack://portainer/./app/react/components/PageHeader/PageHeader.tsx","webpack://portainer/./app/react/components/PaginationControls/ItemsPerPageSelector.tsx","webpack://portainer/./app/react/components/PaginationControls/calculatePageNumber.ts","webpack://portainer/./app/react/components/PaginationControls/PageButton.tsx","webpack://portainer/./app/react/components/PaginationControls/PageInput.tsx","webpack://portainer/./app/react/components/PaginationControls/PageSelector.tsx","webpack://portainer/./app/react/components/PaginationControls/generatePagesArray.ts","webpack://portainer/./app/react/components/PaginationControls/PaginationControls.tsx","webpack://portainer/./app/react/components/TLSFieldset/TLSFieldset.tsx","webpack://portainer/./app/react/components/TagButton/TagButton.module.css?d24c","webpack://portainer/./app/react/components/TagButton/TagButton.tsx","webpack://portainer/./app/react/components/TagSelector/TagSelector.tsx","webpack://portainer/./app/react/components/TeamsSelector/TeamsSelector.tsx","webpack://portainer/./app/react/components/TerminalTooltip/TerminalTooltip.tsx","webpack://portainer/./app/react/components/Tip/SliderTooltip/SliderTooltip.module.css?eb3b","webpack://portainer/./app/react/components/Tip/SliderTooltip/SliderTooltip.tsx","webpack://portainer/./app/react/components/Tip/TextTip/TextTip.tsx","webpack://portainer/./app/react/components/Tip/Tooltip/Tooltip.tsx","webpack://portainer/./app/react/components/Tip/TooltipWithChildren/TooltipWithChildren.module.css?cdcd","webpack://portainer/./app/react/components/Tip/TooltipWithChildren/TooltipWithChildren.tsx","webpack://portainer/./app/react/components/UsersSelector/UsersSelector.tsx","webpack://portainer/./app/react/components/WebEditorForm.tsx","webpack://portainer/./app/react/components/Widget/Loading.tsx","webpack://portainer/./app/react/components/Widget/Widget.tsx","webpack://portainer/./app/react/components/Widget/WidgetBody.tsx","webpack://portainer/./app/react/components/Widget/WidgetTitle.tsx","webpack://portainer/./app/react/components/Widget/index.ts","webpack://portainer/./app/react/components/Widget/WidgetFooter.tsx","webpack://portainer/./app/react/components/Widget/WidgetTaskbar.tsx","webpack://portainer/./app/react/components/buttons/Button.tsx","webpack://portainer/./app/react/components/buttons/ButtonGroup.tsx","webpack://portainer/./app/react/components/buttons/CopyButton/CopyButton.module.css?9c40","webpack://portainer/./app/react/components/buttons/CopyButton/CopyButton.tsx","webpack://portainer/./app/react/components/buttons/CopyButton/useCopy.ts","webpack://portainer/./app/react/components/buttons/LoadingButton.tsx","webpack://portainer/./app/react/components/buttons/AddButton.tsx","webpack://portainer/./app/react/components/datatables/ColumnVisibilityMenu.tsx","webpack://portainer/./app/react/components/datatables/Datatable.tsx","webpack://portainer/./app/react/components/datatables/select-column.tsx","webpack://portainer/./app/react/components/datatables/useGoToHighlightedRow.ts","webpack://portainer/./app/react/components/datatables/DatatableContent.tsx","webpack://portainer/./app/react/components/datatables/SelectedRowsCount.tsx","webpack://portainer/./app/react/components/datatables/DatatableFooter.tsx","webpack://portainer/./app/react/components/datatables/DatatableHeader.tsx","webpack://portainer/./app/react/components/datatables/ExpandableDatatableRow.tsx","webpack://portainer/./app/react/components/datatables/ExpandableDatatable.tsx","webpack://portainer/./app/react/components/datatables/Filter.tsx","webpack://portainer/./app/react/components/datatables/RowContext.tsx","webpack://portainer/./app/react/components/datatables/SearchBar.tsx","webpack://portainer/./app/react/components/datatables/Table.tsx","webpack://portainer/./app/react/components/datatables/TableActions.tsx","webpack://portainer/./app/react/components/datatables/TableContainer.tsx","webpack://portainer/./app/react/components/datatables/TableContent.tsx","webpack://portainer/./app/react/components/datatables/TableFooter.tsx","webpack://portainer/./app/react/components/datatables/TableHeaderCell.tsx","webpack://portainer/./app/react/components/datatables/TableHeaderRow.tsx","webpack://portainer/./app/react/components/datatables/sort-arrow-down.svg","webpack://portainer/./app/react/components/datatables/sort-arrow-up.svg","webpack://portainer/./app/react/components/datatables/TableHeaderSortIcons.module.css?aefe","webpack://portainer/./app/react/components/datatables/TableHeaderSortIcons.tsx","webpack://portainer/./app/react/components/datatables/TableRow.tsx","webpack://portainer/./app/react/components/datatables/TableSettingsMenu.tsx","webpack://portainer/./app/react/components/datatables/TableSettingsMenuAutoRefresh.module.css?1e3f","webpack://portainer/./app/react/components/datatables/TableSettingsMenuAutoRefresh.tsx","webpack://portainer/./app/react/components/datatables/TableTitle.tsx","webpack://portainer/./app/react/components/datatables/TableTitleActions.tsx","webpack://portainer/./app/react/components/datatables/buildNameColumn.tsx","webpack://portainer/./app/react/components/datatables/defaultGetRowId.ts","webpack://portainer/./app/react/components/datatables/expand-column.tsx","webpack://portainer/./app/react/components/datatables/types.ts","webpack://portainer/./app/react/components/datatables/useRepeater.ts","webpack://portainer/./app/react/components/datatables/useTableState.ts","webpack://portainer/./app/react/components/form-components/AutocompleteSelect/AutocompleteSelect.module.css?b43d","webpack://portainer/./app/react/components/form-components/AutocompleteSelect/AutocompleteSelect.tsx","webpack://portainer/./app/react/components/form-components/ButtonSelector/ButtonSelector.module.css?de7d","webpack://portainer/./app/react/components/form-components/ButtonSelector/ButtonSelector.tsx","webpack://portainer/./app/react/components/form-components/Checkbox.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/AdvancedMode.tsx","webpack://portainer/./app/portainer/services/fileUploadReact.ts","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariableItem.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/SimpleMode.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariablesFieldset.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/EnvironmentVariablesPanel.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/StackEnvironmentVariablesPanel.tsx","webpack://portainer/./app/react/components/form-components/EnvironmentVariablesFieldset/utils.ts","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadField.module.css?3d41","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadField.tsx","webpack://portainer/./app/react/components/form-components/FileUpload/FileUploadForm.tsx","webpack://portainer/./app/react/components/form-components/FormActions.tsx","webpack://portainer/./app/react/components/form-components/FormControl/FormControl.tsx","webpack://portainer/./app/react/components/form-components/FormError.tsx","webpack://portainer/./app/react/components/form-components/FormSection/FormSection.tsx","webpack://portainer/./app/react/components/form-components/FormSectionTitle/FormSectionTitle.tsx","webpack://portainer/./app/react/components/form-components/Input/InputLabeled.tsx","webpack://portainer/./app/react/components/form-components/Input/Input.tsx","webpack://portainer/./app/react/components/form-components/Input/Select.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroup.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/index.ts","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroupAddon.tsx","webpack://portainer/./app/react/components/form-components/InputGroup/InputGroupButtonWrapper.tsx","webpack://portainer/./app/react/components/form-components/InputList/utils.ts","webpack://portainer/./app/react/components/form-components/InputList/InputList.tsx","webpack://portainer/./app/react/components/form-components/PortainerSelect.tsx","webpack://portainer/./app/react/components/form-components/ReactSelect.tsx","webpack://portainer/./app/react/components/form-components/Slider/Slider.module.css?fdaa","webpack://portainer/./app/react/components/form-components/Slider/Slider.tsx","webpack://portainer/./app/react/components/form-components/Slider/SliderWithInput.tsx","webpack://portainer/./app/react/components/form-components/SwitchField/Switch.module.css?3a17","webpack://portainer/./app/react/components/form-components/SwitchField/Switch.tsx","webpack://portainer/./app/react/components/form-components/SwitchField/SwitchField.module.css?fb34","webpack://portainer/./app/react/components/form-components/SwitchField/SwitchField.tsx","webpack://portainer/./app/react/components/form-components/useCachedTest.ts","webpack://portainer/./app/react/components/form-components/validate-form.ts","webpack://portainer/./app/react/components/form-components/validate-unique.ts","webpack://portainer/./app/react/components/form-components/yup-file-validation.ts","webpack://portainer/./app/react/components/modals/Dialog.tsx","webpack://portainer/./app/react/components/modals/Modal/CloseButton.module.css?9c19","webpack://portainer/./app/react/components/modals/Modal/CloseButton.tsx","webpack://portainer/./app/react/components/modals/Modal/Modal.module.css?18cf","webpack://portainer/./app/react/components/modals/Modal/Modal.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalBody.module.css?1704","webpack://portainer/./app/react/components/modals/Modal/index.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalHeader.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalHeader.module.css?9399","webpack://portainer/./app/react/components/modals/Modal/ModalBody.tsx","webpack://portainer/./app/react/components/modals/Modal/ModalFooter.tsx","webpack://portainer/./app/react/components/modals/Modal/types.ts","webpack://portainer/./app/react/components/modals/SwitchPrompt.tsx","webpack://portainer/./app/react/components/modals/confirm.ts","webpack://portainer/./app/react/components/modals/types.ts","webpack://portainer/./app/react/components/modals/open-modal.tsx","webpack://portainer/./app/react/components/modals/utils.ts","webpack://portainer/./app/react/constants.ts","webpack://portainer/./app/react/docker/components/ImageStatus/helpers.ts","webpack://portainer/./app/react/docker/components/ImageStatus/types.ts","webpack://portainer/./app/react/docker/components/datatable/createOwnershipColumn.tsx","webpack://portainer/./app/react/docker/containers/common/confirm-container-delete-modal.ts","webpack://portainer/./app/react/docker/containers/containers.service.ts","webpack://portainer/./app/react/docker/containers/types.ts","webpack://portainer/./app/react/docker/images/common/ConfirmExportModal.tsx","webpack://portainer/./app/react/docker/images/utils.ts","webpack://portainer/./app/react/docker/proxy/queries/build-url.ts","webpack://portainer/./app/react/docker/proxy/queries/useInfo.ts","webpack://portainer/./app/react/docker/proxy/queries/useVersion.ts","webpack://portainer/./app/react/docker/services/common/convertServiceToConfig.ts","webpack://portainer/./app/react/docker/services/common/update-service-modal.ts","webpack://portainer/./app/react/edge/components/EdgeAsyncIntervalsForm.tsx","webpack://portainer/./app/react/edge/components/EdgeCheckInIntervalField.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/OsSelector.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/ScriptTabs.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptSettingsFieldset.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptForm.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/EdgeScriptForm.validation.tsx","webpack://portainer/./app/react/edge/components/EdgeScriptForm/scripts.ts","webpack://portainer/./app/react/edge/components/useIntervalOptions.ts","webpack://portainer/./app/react/edge/edge-groups/queries/build-url.ts","webpack://portainer/./app/react/edge/edge-groups/queries/query-keys.ts","webpack://portainer/./app/react/edge/edge-groups/queries/useEdgeGroups.ts","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/EnvVarsFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateNote.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/CustomTemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/AppTemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/EdgeGroupsSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/types.ts","webpack://portainer/./app/react/hooks/useAnalytics.ts","webpack://portainer/./app/react/hooks/useCurrentEnvironment.ts","webpack://portainer/./app/react/hooks/useDebounce.ts","webpack://portainer/./app/react/hooks/useEnvironmentId.ts","webpack://portainer/./app/react/hooks/useLimitToBE.tsx","webpack://portainer/./app/react/hooks/useLocalStorage.ts","webpack://portainer/./app/react/hooks/useStateWrapper.ts","webpack://portainer/./app/react/hooks/useUser.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/constants.ts","webpack://portainer/./app/react/kubernetes/annotations/AnnotationsBeTeaser.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/utils.ts","webpack://portainer/./app/react/kubernetes/applications/constants.ts","webpack://portainer/./app/react/kubernetes/axiosError.ts","webpack://portainer/./app/react/kubernetes/cluster/getIsRBACEnabled.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/useIngressControllerClassMap.ts","webpack://portainer/./app/react/kubernetes/configs/CreateView/options.tsx","webpack://portainer/./app/react/kubernetes/ingresses/service.ts","webpack://portainer/./app/react/kubernetes/namespaces/getSelfSubjectAccessReview.ts","webpack://portainer/./app/react/kubernetes/networks/services/service.ts","webpack://portainer/./app/react/kubernetes/services/service.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/HomepageFilter.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlForm/AccessControlForm.validation.ts","webpack://portainer/./app/react/portainer/access-control/AccessControlForm/AccessControlForm.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelDetails.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelForm.module.css?dfbc","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanelForm.tsx","webpack://portainer/./app/react/portainer/access-control/AccessControlPanel/AccessControlPanel.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/useOptions.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/AccessTypeSelector.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/UsersField.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/TeamsField.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/EditDetails.tsx","webpack://portainer/./app/react/portainer/access-control/EditDetails/useLoadState.ts","webpack://portainer/./app/react/portainer/access-control/access-control.service.ts","webpack://portainer/./app/react/portainer/access-control/models/ResourceControlViewModel.ts","webpack://portainer/./app/react/portainer/access-control/types.ts","webpack://portainer/./app/react/portainer/access-control/utils.ts","webpack://portainer/./app/react/portainer/account/git-credentials/git-credentials.service.ts","webpack://portainer/./app/react/portainer/custom-templates/components/CommonFields.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesDefinitionField/CustomTemplatesVariablesDefinitionField.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/VariableFieldItem.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/CustomTemplatesVariablesField.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/CustomTemplatesVariablesField/getDefaultValues.ts","webpack://portainer/./app/react/portainer/custom-templates/components/PlatformSelector.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/TemplateTypeSelector.tsx","webpack://portainer/./app/react/portainer/custom-templates/components/utils.ts","webpack://portainer/./app/react/portainer/environments/ListView/useDeleteEnvironmentsMutation.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/environment-groups.service.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/build-url.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/environment.service/index.ts","webpack://portainer/./app/react/portainer/environments/environment.service/utils.ts","webpack://portainer/./app/react/portainer/environments/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/queries/useAgentDetails.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironment.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironmentList.ts","webpack://portainer/./app/react/portainer/environments/queries/useEnvironmentRegistries.ts","webpack://portainer/./app/react/portainer/environments/queries/useUpdateEnvironmentMutation.ts","webpack://portainer/./app/react/portainer/environments/types.ts","webpack://portainer/./app/assets/ico/beta.svg","webpack://portainer/./app/react/portainer/environments/update-schedules/common/BetaAlert.tsx","webpack://portainer/./app/react/portainer/environments/utils/index.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/GroupsField.tsx","webpack://portainer/./app/react/portainer/feature-flags/enums.ts","webpack://portainer/./app/react/portainer/feature-flags/feature-flags.service.ts","webpack://portainer/./app/react/portainer/feature-flags/withEdition.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/CredentialSelector.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/NewCredentialForm.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/AuthFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/IntervalField.tsx","webpack://portainer/./app/react/components/form-components/useCaretPosition.ts","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/WebhookSettings.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/ForceDeploymentSwitch.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/AutoUpdateSettings.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/AutoUpdateFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/AutoUpdateFieldset/validation.ts","webpack://portainer/./app/react/portainer/gitops/queries/useSearch.ts","webpack://portainer/./app/react/portainer/gitops/ComposePathField/PathSelector.tsx","webpack://portainer/./app/react/portainer/gitops/ComposePathField/ComposePathField.tsx","webpack://portainer/./app/react/portainer/gitops/queries/useCheckRepo.ts","webpack://portainer/./app/react/portainer/gitops/GitFormUrlField.tsx","webpack://portainer/./app/react/portainer/gitops/AdditionalFilesField.tsx","webpack://portainer/./app/react/portainer/gitops/GitForm.tsx","webpack://portainer/./app/react/portainer/gitops/InfoPanel.tsx","webpack://portainer/./app/react/portainer/gitops/queries/useGitRefs.ts","webpack://portainer/./app/react/portainer/gitops/RefField/RefSelector.tsx","webpack://portainer/./app/react/portainer/gitops/RefField/RefField.tsx","webpack://portainer/./app/react/portainer/gitops/TimeWindowDisplay.tsx","webpack://portainer/./app/react/portainer/gitops/types.ts","webpack://portainer/./app/react/portainer/gitops/utils.ts","webpack://portainer/./app/react/portainer/licenses/types.ts","webpack://portainer/./app/react/portainer/licenses/license.service.ts","webpack://portainer/./app/react/portainer/licenses/use-license.service.ts","webpack://portainer/./app/react/portainer/notifications/notifications-store.ts","webpack://portainer/./app/react/portainer/registries/queries/build-url.ts","webpack://portainer/./app/react/portainer/registries/queries/query-keys.ts","webpack://portainer/./app/react/portainer/registries/queries/useRegistries.ts","webpack://portainer/./app/react/portainer/registries/types/registry.ts","webpack://portainer/./app/react/portainer/settings/queries/useSettings.ts","webpack://portainer/./app/react/portainer/settings/queries/useExperimentalSettings.ts","webpack://portainer/./app/react/portainer/settings/queries/useExperimentalSettingsMutation.ts","webpack://portainer/./app/react/portainer/settings/queries/queryKeys.ts","webpack://portainer/./app/react/portainer/settings/queries/usePublicSettings.ts","webpack://portainer/./app/react/portainer/settings/settings.service.ts","webpack://portainer/./app/react/portainer/settings/types.ts","webpack://portainer/./app/react/portainer/system/build-url.ts","webpack://portainer/./app/react/portainer/system/query-keys.ts","webpack://portainer/./app/react/portainer/system/useNodesCount.ts","webpack://portainer/./app/react/portainer/system/useSystemStatus.ts","webpack://portainer/./app/react/portainer/system/useSystemVersion.ts","webpack://portainer/./app/react/portainer/templates/app-templates/AppTemplatesListItem.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/useSortAndFilter.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/TemplateListSort/TemplateListSort.module.css?aa64","webpack://portainer/./app/react/portainer/templates/app-templates/TemplateListSort/TemplateListSort.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/Filters.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/AppTemplatesList.tsx","webpack://portainer/./app/react/portainer/templates/app-templates/queries/build-url.ts","webpack://portainer/./app/react/portainer/templates/app-templates/queries/useAppTemplates.ts","webpack://portainer/./app/react/portainer/templates/app-templates/queries/useFetchTemplateFile.ts","webpack://portainer/./app/react/portainer/templates/app-templates/types.ts","webpack://portainer/./app/react/portainer/templates/app-templates/view-model.ts","webpack://portainer/./app/react/portainer/templates/components/TemplateItem.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/ListView/CustomTemplatesListItem.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/ListView/CustomTemplatesList.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/build-url.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/query-keys.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplate.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplateFile.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCustomTemplates.ts","webpack://portainer/./app/react/portainer/templates/types.ts","webpack://portainer/./app/react/portainer/users/teams/queries.ts","webpack://portainer/./app/react/portainer/users/teams/team-membership.service.ts","webpack://portainer/./app/react/portainer/users/teams/teams.service.ts","webpack://portainer/./app/react/portainer/users/teams/types.ts","webpack://portainer/./app/__mocks__/fileMock.js","webpack://portainer/./app/__mocks__/styleMock.js","webpack://portainer/./app/agent/components/host-browser/hostBrowserController.js","webpack://portainer/./app/agent/components/host-browser/index.js","webpack://portainer/./app/agent/components/node-selector/index.js","webpack://portainer/./app/agent/components/node-selector/nodeSelectorController.js","webpack://portainer/./app/agent/components/volume-browser/index.js","webpack://portainer/./app/agent/components/volume-browser/volumeBrowserController.js","webpack://portainer/./app/agent/index.js","webpack://portainer/./app/agent/models/agent.js","webpack://portainer/./app/agent/rest/agent.js","webpack://portainer/./app/agent/rest/browse.js","webpack://portainer/./app/agent/rest/dockerhub.js","webpack://portainer/./app/agent/rest/host.js","webpack://portainer/./app/agent/rest/ping.js","webpack://portainer/./app/agent/rest/response/browse.js","webpack://portainer/./app/agent/rest/v1/agent.js","webpack://portainer/./app/agent/rest/v1/browse.js","webpack://portainer/./app/agent/services/agentService.js","webpack://portainer/./app/agent/services/hostBrowserService.js","webpack://portainer/./app/agent/services/pingService.js","webpack://portainer/./app/agent/services/volumeBrowserService.js","webpack://portainer/./app/angulartics.matomo/index.js","webpack://portainer/./app/app.js","webpack://portainer/./app/assets/css/colors.ts","webpack://portainer/./app/portainer/services/csrf.ts","webpack://portainer/./app/config.js","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/datatable-store.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/created.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/host.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/image.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/ip.tsx","webpack://portainer/./app/react/components/datatables/useTableSettings.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/components/ImageStatus/PublishedPortLink.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/RowContext.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/ports.tsx","webpack://portainer/./app/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions.module.css?9085","webpack://portainer/./app/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/quick-actions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/stack.tsx","webpack://portainer/./app/react/components/datatables/filter-types.ts","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/state.tsx","webpack://portainer/./app/react/docker/queries/utils/root.ts","webpack://portainer/./app/react/docker/queries/utils/container.ts","webpack://portainer/./app/react/docker/queries/utils/index.ts","webpack://portainer/./app/react/docker/containers/queries/query-keys.ts","webpack://portainer/./app/react/docker/containers/queries/gpus.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/gpus.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/columns/index.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableActions.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatableSettings.tsx","webpack://portainer/./app/react/docker/containers/utils.ts","webpack://portainer/./app/react/components/datatables/QuickActionsSettings.tsx","webpack://portainer/./app/react/docker/containers/queries/containers.ts","webpack://portainer/./app/react/common/stacks/ItemView/StackContainersDatatable.tsx","webpack://portainer/./app/react/docker/containers/ItemView/HealthStatus.tsx","webpack://portainer/./app/react/docker/host/SetupView/GpusList.tsx","webpack://portainer/./app/react/docker/images/queries/build-url.ts","webpack://portainer/./app/react/docker/queries/utils/build-url.ts","webpack://portainer/./app/react/docker/images/queries/queryKeys.ts","webpack://portainer/./app/react/docker/images/queries/useImages.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/created.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/id.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/size.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/index.ts","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/tags.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/columns/host.tsx","webpack://portainer/./app/react/docker/images/ListView/ImagesDatatable/ImagesDatatable.tsx","webpack://portainer/./app/react/docker/events/EventsDatatables.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/columns.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/ConfigsDatatable.tsx","webpack://portainer/./app/react/docker/configs/ListView/ConfigsDatatable/store.ts","webpack://portainer/./app/react/components/datatables/extend-options/withMeta.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/helper.ts","webpack://portainer/./app/react/docker/components/FilesTable/types.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/NameCell.tsx","webpack://portainer/./app/react/docker/components/FilesTable/columns/index.ts","webpack://portainer/./app/react/docker/components/FilesTable/columns/ActionsCell.tsx","webpack://portainer/./app/react/docker/components/FilesTable/FilesTable.tsx","webpack://portainer/./app/react/docker/host/BrowseView/AgentHostBrowser.tsx","webpack://portainer/./app/react/docker/volumes/BrowseView/AgentVolumeBrowser.tsx","webpack://portainer/./app/react/docker/containers/StatsView/ProcessesDatatable.tsx","webpack://portainer/./app/react/docker/secrets/ListView/SecretsDatatable.tsx","webpack://portainer/./app/react/components/datatables/extend-options/withGlobalFilter.ts","webpack://portainer/./app/react/docker/stacks/view-models/utils.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/TableSettingsMenus.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/components/datatable/TableColumnHeaderImageUpToDate.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/getStackImagesStatus.ts","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/StackImageStatus.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/image-notification.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/control.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/StacksDatatable.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/store.ts","webpack://portainer/./app/react/docker/networks/ListView/columns/helper.ts","webpack://portainer/./app/react/docker/networks/ListView/columns/name.tsx","webpack://portainer/./app/react/docker/networks/ListView/columns/index.ts","webpack://portainer/./app/react/components/datatables/NestedTable.tsx","webpack://portainer/./app/react/components/datatables/NestedDatatable.tsx","webpack://portainer/./app/react/docker/networks/ListView/NestedNetwordsTable.tsx","webpack://portainer/./app/react/docker/networks/ListView/NetworksDatatable.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/helper.ts","webpack://portainer/./app/react/docker/networks/network.service.ts","webpack://portainer/./app/react/docker/networks/queries.ts","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/actions.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/types.ts","webpack://portainer/./app/react/docker/networks/queries/buildUrl.ts","webpack://portainer/./app/react/docker/networks/queries/useConnectContainer.ts","webpack://portainer/./app/react/docker/networks/queries/queryKeys.ts","webpack://portainer/./app/react/docker/networks/queries/useNetworks.ts","webpack://portainer/./app/react/docker/containers/components/NetworkSelector.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/ConnectNetworkForm.tsx","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/ContainerNetworksDatatable.tsx","webpack://portainer/./app/docker/react/components/containers.ts","webpack://portainer/./app/react/docker/containers/ItemView/ContainerNetworksDatatable/columns.tsx","webpack://portainer/./app/react/components/datatables/extend-options/mergeOptions.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/image.tsx","webpack://portainer/./app/react/docker/proxy/queries/nodes/build-url.ts","webpack://portainer/./app/react/docker/proxy/queries/query-keys.ts","webpack://portainer/./app/react/docker/proxy/queries/nodes/query-keys.ts","webpack://portainer/./app/react/docker/proxy/queries/nodes/useNodes.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/constraint-helper.ts","webpack://portainer/./app/react/docker/images/queries/encodeRegistryCredentials.ts","webpack://portainer/./app/react/docker/services/axios/urlBuilder.ts","webpack://portainer/./app/react/docker/services/queries/query-keys.ts","webpack://portainer/./app/react/docker/services/queries/useUpdateServiceMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/ScaleForm.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/ScaleServiceButton.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/schedulingMode/schedulingMode.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/ports.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/status.tsx","webpack://portainer/./app/react/docker/services/common/TaskTableQuickActions.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/actions.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/slot.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/node.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/updated.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TasksDatatable/task-column.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TasksDatatable/TasksDatatable.tsx","webpack://portainer/./app/react/docker/services/webhooks/build-url.ts","webpack://portainer/./app/react/docker/services/webhooks/getWebhooks.ts","webpack://portainer/./app/react/docker/services/webhooks/removeWebhook.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/useRemoveServicesMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/useForceUpdateServicesMutation.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/TableSettings.tsx","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/ServicesDatatable.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/task.tsx","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/meta.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/TasksDatatable.tsx","webpack://portainer/./app/docker/react/components/services.ts","webpack://portainer/./app/react/docker/services/ItemView/TasksDatatable/columns/index.ts","webpack://portainer/./app/react/docker/services/ListView/ServicesDatatable/columns/index.ts","webpack://portainer/./app/react/components/datatables/extend-options/withControlledSelected.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/column-helper.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/types.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/status.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/availability.tsx","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/columns/index.ts","webpack://portainer/./app/react/docker/networks/CreateView/MacvlanNodesSelector/MacvlanNodesSelector.tsx","webpack://portainer/./app/docker/react/components/networks.ts","webpack://portainer/./app/react/docker/networks/CreateView/MacvlanNodesSelector/useColumns.ts","webpack://portainer/./app/react/docker/swarm/SwarmView/NodesDatatable/NodesDatatable.tsx","webpack://portainer/./app/docker/react/components/swarm.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/TableActions.tsx","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/helper.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/name.tsx","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/tableMeta.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/VolumesDatatable.tsx","webpack://portainer/./app/docker/react/components/volumes.ts","webpack://portainer/./app/react/docker/volumes/ListView/VolumesDatatable/columns/index.ts","webpack://portainer/./app/docker/react/components/index.ts","webpack://portainer/./app/react/docker/images/ItemView/DockerfileDetails.tsx","webpack://portainer/./app/react/docker/stacks/ListView/StacksDatatable/columns/index.ts","webpack://portainer/./app/react/docker/networks/network.helper.ts","webpack://portainer/./app/react/docker/networks/ItemView/NetworkDetailsTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/NetworkOptionsTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/NetworkContainersTable.tsx","webpack://portainer/./app/react/docker/networks/ItemView/ItemView.tsx","webpack://portainer/./app/react/docker/containers/ListView/ContainersDatatable/ContainersDatatable.tsx","webpack://portainer/./app/react/docker/containers/queries/container.ts","webpack://portainer/./app/react/docker/containers/LogView/LogView.tsx","webpack://portainer/./app/react/portainer/webhooks/build-url.ts","webpack://portainer/./app/react/portainer/webhooks/createWebhook.ts","webpack://portainer/./app/react/portainer/webhooks/types.ts","webpack://portainer/./app/react/docker/images/queries/usePullImageMutation.ts","webpack://portainer/./app/react/docker/containers/CreateView/useCreateMutation.tsx","webpack://portainer/./app/react/portainer/registries/utils/getUrl.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.viewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.requestModel.ts","webpack://portainer/./app/react/docker/proxy/queries/images/queryKeys.ts","webpack://portainer/./app/react/docker/proxy/queries/images/useImages.ts","webpack://portainer/./app/react/portainer/registries/queries/useRegistry.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/InputSearch.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/utils.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/SimpleForm.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/AdvancedForm.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/RateLimits.tsx","webpack://portainer/./app/react/components/ImageConfigFieldset/ImageConfigFieldset.tsx","webpack://portainer/./app/react/docker/agent/queries/useApiVersion.ts","webpack://portainer/./app/react/docker/agent/queries/build-url.ts","webpack://portainer/./app/react/docker/agent/queries/useAgentNodes.ts","webpack://portainer/./app/react/docker/agent/NodeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/BaseForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/BaseForm/PortsMappingField.validation.ts","webpack://portainer/./app/react/components/ImageConfigFieldset/validation.ts","webpack://portainer/./app/react/portainer/registries/utils/getImageConfig.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/CapabilitiesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/CapabilitiesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/ConsoleSettings.tsx","webpack://portainer/./app/react/docker/proxy/queries/useServicePlugins.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/LoggerConfig.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/toViewModel.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/OverridableInput.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/CommandsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CommandsTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/Item.tsx","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/LabelsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/LabelsTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/ContainerSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/NetworkTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/NetworkTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/DevicesField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/GpuFieldset.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/GpuFieldset/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/memory-utils.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/ResourcesFieldset.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/RuntimeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/RuntimeSection.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/SysctlsField.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/ResourcesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/RestartPolicyTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/RestartPolicyTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/types.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/context.ts","webpack://portainer/./app/react/docker/volumes/queries/query-keys.ts","webpack://portainer/./app/react/docker/volumes/queries/useVolumes.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/VolumeSelector.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/Item.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/VolumesTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/toViewModel.ts","webpack://portainer/./app/react/docker/containers/CreateView/VolumesTab/validation.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/EnvVarsTab.tsx","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/index.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/EnvVarsTab/toViewModel.ts","webpack://portainer/./app/react/portainer/webhooks/query-keys.ts","webpack://portainer/./app/react/portainer/webhooks/useWebhooks.ts","webpack://portainer/./app/react/docker/containers/CreateView/useInitialValues.ts","webpack://portainer/./app/react/docker/containers/queries/useUpdateContainer.ts","webpack://portainer/./app/react/docker/containers/CreateView/ResourcesTab/EditResourceForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/InnerForm.tsx","webpack://portainer/./app/react/docker/containers/CreateView/toRequest.ts","webpack://portainer/./app/react/docker/containers/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/registries/utils/findRegistryMatch.ts","webpack://portainer/./app/react/hooks/useDebouncedValue.ts","webpack://portainer/./app/react/docker/containers/CreateView/validation.ts","webpack://portainer/./app/docker/react/views/containers.ts","webpack://portainer/./app/react/docker/containers/ListView/ListView.tsx","webpack://portainer/./app/docker/react/views/index.ts","webpack://portainer/./app/docker/react/index.ts","webpack://portainer/./app/docker/__module.js","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy-controller.js","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy.js","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboard-cluster-agent-info.js","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfoController.js","webpack://portainer/./app/docker/components/host-overview/host-overview.js","webpack://portainer/./app/docker/components/host-view-panels/devices-panel/devices-panel.js","webpack://portainer/./app/docker/components/host-view-panels/disks-panel/disks-panel.js","webpack://portainer/./app/docker/components/host-view-panels/engine-details-panel/engine-details-panel.js","webpack://portainer/./app/docker/components/host-view-panels/host-details-panel/host-details-panel.js","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select-controller.js","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select.js","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table-controller.js","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table.js","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel-controller.js","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.controller.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.controller.js","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.js","webpack://portainer/./app/docker/components/log-viewer/log-viewer.js","webpack://portainer/./app/docker/components/log-viewer/logViewerController.js","webpack://portainer/./app/docker/components/network-macvlan-form/network-macvlan-form.js","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanFormController.js","webpack://portainer/./app/react/docker/networks/CreateView/macvlanOptions.tsx","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanFormModel.js","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsForm.js","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsFormModel.js","webpack://portainer/./app/docker/components/volumesNFSForm/volumes-nfs-form.js","webpack://portainer/./app/docker/components/volumesNFSForm/volumesNFSFormModel.js","webpack://portainer/./app/docker/filters/filters.js","webpack://portainer/./app/docker/helpers/configHelper.js","webpack://portainer/./app/docker/helpers/containerHelper.js","webpack://portainer/./app/docker/helpers/imageHelper.js","webpack://portainer/./app/docker/helpers/infoHelper.js","webpack://portainer/./app/docker/helpers/labelHelper.js","webpack://portainer/./app/docker/helpers/networkHelper.js","webpack://portainer/./app/docker/helpers/nodeHelper.js","webpack://portainer/./app/docker/helpers/secretHelper.js","webpack://portainer/./app/docker/helpers/serviceHelper.js","webpack://portainer/./app/docker/helpers/taskHelper.js","webpack://portainer/./app/docker/helpers/volumeHelper.js","webpack://portainer/./app/docker/models/config.js","webpack://portainer/./app/docker/models/container.js","webpack://portainer/./app/docker/models/event.js","webpack://portainer/./app/docker/models/image.js","webpack://portainer/./app/docker/models/imageDetails.js","webpack://portainer/./app/docker/models/imageLayer.js","webpack://portainer/./app/docker/models/plugin.js","webpack://portainer/./app/docker/models/porImageRegistry.js","webpack://portainer/./app/docker/models/swarm.js","webpack://portainer/./app/docker/rest/build.js","webpack://portainer/./app/docker/rest/commit.js","webpack://portainer/./app/docker/rest/config.js","webpack://portainer/./app/docker/rest/container.js","webpack://portainer/./app/docker/rest/exec.js","webpack://portainer/./app/docker/rest/image.js","webpack://portainer/./app/docker/rest/network.js","webpack://portainer/./app/docker/rest/node.js","webpack://portainer/./app/docker/rest/plugin.js","webpack://portainer/./app/docker/rest/response/handlers.js","webpack://portainer/./app/docker/rest/response/image.js","webpack://portainer/./app/docker/rest/secret.js","webpack://portainer/./app/docker/rest/service.js","webpack://portainer/./app/docker/rest/swarm.js","webpack://portainer/./app/docker/rest/system.js","webpack://portainer/./app/docker/rest/task.js","webpack://portainer/./app/docker/rest/volume.js","webpack://portainer/./app/docker/services/buildService.js","webpack://portainer/./app/docker/services/configService.js","webpack://portainer/./app/docker/services/containerService.js","webpack://portainer/./app/docker/services/execService.js","webpack://portainer/./app/docker/services/imageService.js","webpack://portainer/./app/docker/models/network.ts","webpack://portainer/./app/docker/services/networkService.js","webpack://portainer/./app/docker/models/node.ts","webpack://portainer/./app/docker/services/nodeService.js","webpack://portainer/./app/docker/services/pluginService.js","webpack://portainer/./app/docker/models/secret.ts","webpack://portainer/./app/docker/services/secretService.js","webpack://portainer/./app/docker/models/service.ts","webpack://portainer/./app/docker/services/serviceService.js","webpack://portainer/./app/docker/services/swarmService.js","webpack://portainer/./app/docker/services/systemService.js","webpack://portainer/./app/docker/models/task.ts","webpack://portainer/./app/docker/services/taskService.js","webpack://portainer/./app/docker/models/volume.ts","webpack://portainer/./app/docker/services/volumeService.js","webpack://portainer/./app/docker/views/configs/configsController.js","webpack://portainer/./app/docker/views/configs/create/createConfigController.js","webpack://portainer/./app/docker/views/configs/edit/configController.js","webpack://portainer/./app/docker/views/containers/console/containerConsoleController.js","webpack://portainer/./app/react/docker/containers/ItemView/ConfirmRecreationModal.tsx","webpack://portainer/./app/docker/views/containers/edit/containerController.js","webpack://portainer/./app/docker/views/containers/inspect/containerInspectController.js","webpack://portainer/./app/docker/views/containers/logs/containerLogsController.js","webpack://portainer/./app/docker/views/containers/stats/containerStatsController.js","webpack://portainer/./app/react/docker/DashboardView/ContainerStatus.tsx","webpack://portainer/./app/react/docker/DashboardView/ImagesTotalSize.tsx","webpack://portainer/./app/docker/views/dashboard/dashboardController.js","webpack://portainer/./app/docker/views/docker-features-configuration/docker-features-configuration.controller.js","webpack://portainer/./app/docker/views/docker-features-configuration/index.js","webpack://portainer/./app/docker/views/events/eventsController.js","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view-controller.js","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view.js","webpack://portainer/./app/docker/views/host/host-view-controller.js","webpack://portainer/./app/docker/views/host/host-view.js","webpack://portainer/./app/docker/views/images/build/buildImageController.js","webpack://portainer/./app/docker/views/images/edit/imageController.js","webpack://portainer/./app/docker/views/images/imagesController.js","webpack://portainer/./app/docker/views/images/import/importImageController.js","webpack://portainer/./app/docker/views/networks/create/createNetworkController.js","webpack://portainer/./app/docker/views/networks/networksController.js","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser-controller.js","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser.js","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view-controller.js","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view.js","webpack://portainer/./app/docker/views/registries/access/registryAccess.js","webpack://portainer/./app/docker/views/registries/access/registryAccessController.js","webpack://portainer/./app/docker/views/secrets/create/createSecretController.js","webpack://portainer/./app/docker/views/secrets/edit/secretController.js","webpack://portainer/./app/docker/views/secrets/secretsController.js","webpack://portainer/./app/docker/views/services/create/createServiceController.js","webpack://portainer/./app/docker/views/services/edit/serviceController.js","webpack://portainer/./app/docker/views/services/logs/serviceLogsController.js","webpack://portainer/./app/docker/views/services/servicesController.js","webpack://portainer/./app/docker/views/swarm/swarmController.js","webpack://portainer/./app/docker/views/swarm/visualizer/swarmVisualizerController.js","webpack://portainer/./app/docker/views/tasks/edit/taskController.js","webpack://portainer/./app/docker/views/tasks/logs/taskLogsController.js","webpack://portainer/./app/docker/views/volumes/browse/browseVolumeController.js","webpack://portainer/./app/docker/views/volumes/create/createVolumeController.js","webpack://portainer/./app/docker/views/volumes/edit/volumeController.js","webpack://portainer/./app/docker/views/volumes/volumesController.js","webpack://portainer/./app/react/edge/edge-stacks/components/EdgeStackDeploymentTypeSelector.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/PrePullToggle.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/RetryDeployToggle.tsx","webpack://portainer/./app/react/edge/edge-stacks/components/PrivateRegistryFieldset.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/buildUrl.ts","webpack://portainer/./app/react/edge/edge-stacks/queries/useParseRegistries.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/PrivateRegistryFieldsetWrapper.tsx","webpack://portainer/./app/react/portainer/gitops/AuthFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/utils.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/validation.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/useValidation.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/types.ts","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/RelativePathFieldset.tsx","webpack://portainer/./app/react/portainer/gitops/RelativePathFieldset/useEnableFsPath.ts","webpack://portainer/./app/react/portainer/account/git-credentials/queries/useCreateGitCredentialsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/useEdgeGroupHasType.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/GitForm/useUpdateEdgeStackGitMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/GitForm/GitForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/EditEdgeStackForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/ComposeForm.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EditEdgeStackForm/KubernetesForm.tsx","webpack://portainer/./app/react/edge/components/EdgeGroupAssociationTable.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/query-keys.ts","webpack://portainer/./app/react/edge/edge-stacks/queries/useEdgeStack.ts","webpack://portainer/./app/react/portainer/gitops/GitCommitLink.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useLogsStatus.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useCollectLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useDeleteLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/useDownloadLogsMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/LogsActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/EnvironmentActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/ActionStatus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/columns.tsx","webpack://portainer/./app/react/edge/edge-stacks/ItemView/EnvironmentsDatatable/EnvironmentsDatatable.tsx","webpack://portainer/./app/edge/react/components/index.ts","webpack://portainer/./app/react/hooks/useParamState.ts","webpack://portainer/./app/react/edge/components/AssociatedEdgeEnvironmentsSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/columns.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/filter-store.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/Filter.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/queries.ts","webpack://portainer/./app/react/portainer/environments/queries/useUpdateEnvironmentsRelationsMutation.ts","webpack://portainer/./app/react/edge/edge-groups/queries/useCreateEdgeGroupMutation.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/CreatableSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/EdgeGroupSelector.tsx","webpack://portainer/./app/react/portainer/environments/environment-groups/queries/useCreateGroupMutation.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/GroupSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/Selectors/TagSelector.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/utils.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/AssignmentDialog.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/AssignmentDialog/createPayload.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/TableActions.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/Datatable.tsx","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/Datatable/useEnvironments.ts","webpack://portainer/./app/react/edge/edge-devices/WaitingRoomView/WaitingRoomView.tsx","webpack://portainer/./app/react/edge/edge-stacks/queries/useEdgeStacks.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/EdgeStacksStatus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/DeploymentCounter.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/columns.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/TableSettingsMenus.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/useDeleteEdgeStacksMutation.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/TableActions.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/EdgeStacksDatatable.tsx","webpack://portainer/./app/react/edge/edge-stacks/ListView/EdgeStacksDatatable/store.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/helper.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/index.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/columns/name.tsx","webpack://portainer/./app/react/components/buttons/DeleteButton.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/useDeleteEdgeGroupMutation.ts","webpack://portainer/./app/react/edge/edge-groups/ListView/TableActions.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/EdgeGroupsDatatable.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useDeleteTemplateMutation.ts","webpack://portainer/./app/react/edge/templates/custom-templates/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/useViewType.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useCreateTemplateMutation.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/types.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/types.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.validation.ts","webpack://portainer/./app/react/common/stacks/common/form-texts.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/useParseTemplateOnFileChange.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/EdgeSettingsFieldset.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/InnerForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/CreateForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/useValidation.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/useInitialValues.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/queries/useUpdateTemplateMutation.ts","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/InnerForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/EditForm.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/useValidation.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/useInitialValues.ts","webpack://portainer/./app/edge/react/views/templates.ts","webpack://portainer/./app/react/edge/templates/AppTemplatesView/AppTemplatesView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/templates/custom-templates/EditView/EditView.tsx","webpack://portainer/./app/edge/react/views/index.ts","webpack://portainer/./app/react/edge/edge-stacks/ListView/ListView.tsx","webpack://portainer/./app/react/edge/edge-groups/ListView/ListView.tsx","webpack://portainer/./app/edge/react/index.ts","webpack://portainer/./app/edge/__module.js","webpack://portainer/./app/react/edge/edge-jobs/CreateView/cron-method-options.tsx","webpack://portainer/./app/edge/components/edge-job-form/edgeJobFormController.js","webpack://portainer/./app/edge/components/edge-job-form/index.js","webpack://portainer/./app/edge/components/edge-job-results-datatable/edgeJobResultsDatatableController.js","webpack://portainer/./app/edge/components/edge-job-results-datatable/index.js","webpack://portainer/./app/edge/components/edge-jobs-datatable/index.js","webpack://portainer/./app/edge/components/edge-stack-status/edgeStackStatusController.js","webpack://portainer/./app/edge/components/edge-stack-status/index.js","webpack://portainer/./app/react/edge/edge-groups/CreateView/tag-options.tsx","webpack://portainer/./app/react/edge/edge-groups/CreateView/group-type-options.tsx","webpack://portainer/./app/edge/components/group-form/groupFormController.js","webpack://portainer/./app/edge/components/group-form/index.js","webpack://portainer/./app/edge/rest/edge-groups.js","webpack://portainer/./app/edge/rest/edge-job-results.js","webpack://portainer/./app/edge/rest/edge-jobs.js","webpack://portainer/./app/edge/rest/edge-stacks.js","webpack://portainer/./app/edge/services/edge-group.js","webpack://portainer/./app/edge/services/edge-job.js","webpack://portainer/./app/edge/services/edge-stack.js","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/createEdgeGroupViewController.js","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/index.js","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/editEdgeGroupViewController.js","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/index.js","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/index.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/edgeJobController.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/index.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/edgeJobsViewController.js","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.controller.js","webpack://portainer/./app/react/edge/edge-stacks/utils.ts","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.controller.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/index.js","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.controller.js","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/index.js","webpack://portainer/./app/edge/views/edge-stacks/index.js","webpack://portainer/./app/i18n.ts","webpack://portainer/./app/azure/react/components/index.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.module.css?a1c2","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.tsx","webpack://portainer/./app/react/azure/services/utils.ts","webpack://portainer/./app/react/azure/queries/query-keys.ts","webpack://portainer/./app/react/azure/queries/useProvider.ts","webpack://portainer/./app/react/azure/queries/utils.ts","webpack://portainer/./app/react/azure/queries/useResourceGroups.ts","webpack://portainer/./app/react/azure/queries/useSubscriptions.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/utils.ts","webpack://portainer/./app/react/azure/services/container-groups.service.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/useCreateInstanceMutation.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateContainerInstanceForm.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/useLoadFormState.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateContainerInstanceForm.validation.ts","webpack://portainer/./app/react/azure/container-instances/CreateView/PortsMappingField.validation.ts","webpack://portainer/./app/react/azure/queries/useContainerGroup.ts","webpack://portainer/./app/react/azure/queries/useResourceGroup.ts","webpack://portainer/./app/react/azure/queries/useSubscription.ts","webpack://portainer/./app/react/azure/queries/useContainerGroups.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/helper.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/name.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/columns/location.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/ports.tsx","webpack://portainer/./app/react/azure/utils.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/index.ts","webpack://portainer/./app/react/azure/container-instances/ListView/columns/ownership.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/ContainersDatatable.tsx","webpack://portainer/./app/react/azure/container-instances/ListView/ListView.tsx","webpack://portainer/./app/azure/react/views/index.ts","webpack://portainer/./app/react/azure/container-instances/ItemView/ItemView.tsx","webpack://portainer/./app/react/azure/container-instances/CreateView/CreateView.tsx","webpack://portainer/./app/react/azure/DashboardView/DashboardView.tsx","webpack://portainer/./app/azure/react/index.ts","webpack://portainer/./app/azure/index.ts","webpack://portainer/./app/ng-constants.ts","webpack://portainer/./app/index.js","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/availability.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatableAngular.tsx","webpack://portainer/./app/react/kubernetes/namespaces/AccessView/NamespaceAccessUsersSelector.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesSelector.tsx","webpack://portainer/./app/react/kubernetes/ingresses/queries.ts","webpack://portainer/./app/react/components/Card/Card.tsx","webpack://portainer/./app/react/components/form-components/formikUtils.ts","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ContainerPortInput.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServicePortInput.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/ingress/AppIngressPathForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/ingress/AppIngressPathsForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/cluster-ip/ClusterIpServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/cluster-ip/ClusterIpServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServiceTabs.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/node-port/NodePortServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/node-port/NodePortServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/load-balancer/LoadBalancerServiceForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/load-balancer/LoadBalancerServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/components/ServiceTabLabel.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/PublishingExplaination.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/kubeServicesValidation.ts","webpack://portainer/./app/react/components/Note/Note.tsx","webpack://portainer/./app/react/kubernetes/applications/utils.ts","webpack://portainer/./app/react/kubernetes/applications/pod.service.ts","webpack://portainer/./app/react/kubernetes/applications/application.service.ts","webpack://portainer/./app/react/kubernetes/applications/autoscaling.service.ts","webpack://portainer/./app/react/kubernetes/applications/application.queries.ts","webpack://portainer/./app/react/kubernetes/namespaces/queries/useNamespaceQuery.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationSummaryWidget.tsx","webpack://portainer/./app/react/common/stacks/stack.service.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RestartApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RedeployApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/RollbackApplicationButton.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationServicesTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationIngressesTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationAutoScalingTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationEnvVarsTable.tsx","webpack://portainer/./app/react/kubernetes/configs/secret.service.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationVolumeConfigsTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationPersistentDataTable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationDetailsWidget.tsx","webpack://portainer/./app/react/kubernetes/datatables/SystemResourcesSettings.tsx","webpack://portainer/./app/react/kubernetes/datatables/default-kube-datatable-store.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/eventType.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/message.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/date.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/columns/kind.tsx","webpack://portainer/./app/react/kubernetes/components/KubernetesEventsDatatable/EventsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/useNamespaceEventsQuery.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationEventsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/pod.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/image.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/imagePullPolicy.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/node.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/podIp.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/creationDate.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/actions.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/ApplicationContainersDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/nodes.service.ts","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementTypeBoxSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ApplicationSummarySection/ApplicationSummarySection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ApplicationSummarySection/utils.ts","webpack://portainer/./app/react/kubernetes/components/YAMLInspector.tsx","webpack://portainer/./app/react/kubernetes/datatables/SystemResourceDescription.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/columns.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/SubRows.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/StacksSettingsMenu.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/NamespaceFilter.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/TableActions.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsStacksDatatable/ApplicationsStacksDatatable.tsx","webpack://portainer/./app/react/kubernetes/cluster/kubernetesEndpoint.service.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/role.tsx","webpack://portainer/./app/react/components/StatusBadge.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/cpu.tsx","webpack://portainer/./app/react/kubernetes/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/memory.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/version.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/ip.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/actions.tsx","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/cluster/HomeView/NodesDatatable/NodesDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigurationKey.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigurationItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/configurationValidationSchema.ts","webpack://portainer/./app/react/kubernetes/configs/configmap.service.ts","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/PersistedFolderItem.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/PersistedFoldersFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PersistedFoldersFormSection/persistedFoldersValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/ResourceReservationFormSection/resourceReservationValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AutoScalingFormSection/AutoScalingFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/queries/useNamespacesQuery.ts","webpack://portainer/./app/react/kubernetes/applications/components/NamespaceSelector/namespaceSelectorValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/EditYamlFormSection.tsx","webpack://portainer/./app/kubernetes/react/components/applications.ts","webpack://portainer/./app/kubernetes/react/components/index.ts","webpack://portainer/./app/react/kubernetes/cluster/RegistryAccessView/NamespacesSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/ListView/ApplicationsDatatable/HelmInsightsBox.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/DataAccessPolicyFormSection.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/StackName.tsx","webpack://portainer/./app/react/kubernetes/DeployView/StackName/StackNameLabelInsight.tsx","webpack://portainer/./app/react/kubernetes/applications/CreateView/application-services/KubeServicesForm.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigMapsFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ConfigurationsFormSection/SecretsFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ResourceReservationFormSection/ResourceReservationFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ReplicationFormSection/ReplicationFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/ReplicationFormSection/replicationValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AutoScalingFormSection/autoScalingValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/PlacementFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/PlacementFormSection/placementValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/NamespaceSelector/NamespaceSelector.tsx","webpack://portainer/./app/react/kubernetes/applications/components/NameFormSection/NameFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/NameFormSection/nameValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/AppDeploymentTypeFormSection/AppDeploymentTypeFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/AppDeploymentTypeFormSection/deploymentTypeValidation.ts","webpack://portainer/./app/react/kubernetes/applications/components/EnvironmentVariablesFormSection/EnvironmentVariablesFormSection.tsx","webpack://portainer/./app/react/kubernetes/applications/components/EnvironmentVariablesFormSection/kubeEnvVarValidationSchema.ts","webpack://portainer/./app/react/kubernetes/datatables/DefaultDatatableSettings.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/className.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/ingressRules.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/IngressDatatable.tsx","webpack://portainer/./app/react/kubernetes/annotations/AnnotationsForm.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/IngressForm.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/utils.ts","webpack://portainer/./app/react/kubernetes/volumes/usePVCsQuery.ts","webpack://portainer/./app/react/kubernetes/dashboard/EnvironmentInfo.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/type.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/ports.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/clusterIP.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/ExternalIPLink.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/externalIP.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/targetPorts.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/index.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/application.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/ServicesDatatable.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesDatatable/datatable-store.ts","webpack://portainer/./app/react/components/Widget/WidgetTabs.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/configs/constants.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigMapsDatatable/ConfigMapsDatatable.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/name.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/namespace.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/created.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/columns/index.ts","webpack://portainer/./app/react/kubernetes/configs/ListView/SecretsDatatable/SecretsDatatable.tsx","webpack://portainer/./app/react/kubernetes/configs/ListView/ConfigmapsAndSecretsView.tsx","webpack://portainer/./app/react/hooks/useUnauthorizedRedirect.ts","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatable.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/LoadBalancerFormSection/LoadBalancerFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/NamespaceSummary.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/StorageQuotaFormSection/StorageQuotaItem.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/StorageQuotaFormSection/StorageQuotaFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/queries/useResourceLimitsQuery.ts","webpack://portainer/./app/react/kubernetes/namespaces/components/ResourceQuotaFormSection/ResourceQuotaFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesFormSection.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/NamespaceInnerForm.tsx","webpack://portainer/./app/react/kubernetes/namespaces/components/RegistriesFormSection/registriesValidationSchema.ts","webpack://portainer/./app/react/kubernetes/namespaces/components/ResourceQuotaFormSection/getResourceQuotaValidationSchema.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/registries.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/queries/useCreateNamespaceMutation.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceForm.tsx","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/utils.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/PlacementsDatatableSubRow.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/helper.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/status.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/columns/index.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/PlacementsDatatable.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/PlacementsDatatable/usePlacementTableData.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/useApplicationEventsTableData.tsx","webpack://portainer/./app/react/kubernetes/applications/DetailsView/AppYAMLEditor/useApplicationYAML.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/AppYAMLEditor/ApplicationYAMLEditor.tsx","webpack://portainer/./app/react/kubernetes/cluster/ingressClass/IngressClassDatatable/utils.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/useStorageClasses.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/validation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/RBACAlert.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/EnableMetricsInput.tsx","webpack://portainer/./app/react/kubernetes/queries/useGetMetricsMutation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/StorageAccessModeSelector.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/StorageClassDatatable.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/useConfigureClusterMutation.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/handleSubmitConfigureCluster.ts","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureForm/ConfigureForm.tsx","webpack://portainer/./app/kubernetes/react/views/index.ts","webpack://portainer/./app/react/kubernetes/namespaces/CreateView/CreateNamespaceView.tsx","webpack://portainer/./app/react/kubernetes/services/ServicesView/ServicesView.tsx","webpack://portainer/./app/react/kubernetes/ingresses/IngressDatatable/index.tsx","webpack://portainer/./app/react/kubernetes/ingresses/CreateIngressView/CreateIngressView.tsx","webpack://portainer/./app/react/kubernetes/networks/services/queries.ts","webpack://portainer/./app/react/kubernetes/applications/DetailsView/ApplicationDetailsView.tsx","webpack://portainer/./app/react/kubernetes/cluster/ConfigureView/ConfigureView.tsx","webpack://portainer/./app/react/kubernetes/dashboard/DashboardView.tsx","webpack://portainer/./app/react/kubernetes/applications/ConsoleView/ConsoleView.tsx","webpack://portainer/./app/kubernetes/react/index.ts","webpack://portainer/./app/kubernetes/__module.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.controller.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/configurations-datatable/configurationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/events-datatable/eventsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatableController.js","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatable.js","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatableController.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.controller.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.controller.js","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.js","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.js","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservation.js","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservationController.js","webpack://portainer/./app/kubernetes/components/view-loading/viewLoading.js","webpack://portainer/./app/kubernetes/converters/application.js","webpack://portainer/./app/kubernetes/converters/configMap.js","webpack://portainer/./app/kubernetes/converters/configuration.js","webpack://portainer/./app/kubernetes/converters/daemonSet.js","webpack://portainer/./app/kubernetes/converters/deployment.js","webpack://portainer/./app/kubernetes/converters/event.js","webpack://portainer/./app/kubernetes/converters/namespace.js","webpack://portainer/./app/kubernetes/converters/persistentVolumeClaim.js","webpack://portainer/./app/kubernetes/converters/resourcePool.js","webpack://portainer/./app/kubernetes/converters/resourceQuota.js","webpack://portainer/./app/kubernetes/converters/secret.js","webpack://portainer/./app/kubernetes/converters/service.js","webpack://portainer/./app/kubernetes/converters/statefulSet.js","webpack://portainer/./app/kubernetes/converters/storageClass.js","webpack://portainer/./app/kubernetes/converters/volume.js","webpack://portainer/./app/kubernetes/custom-templates/index.js","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/index.js","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.controller.js","webpack://portainer/./app/kubernetes/endpoint/converter.js","webpack://portainer/./app/kubernetes/endpoint/models.js","webpack://portainer/./app/kubernetes/endpoint/rest.js","webpack://portainer/./app/kubernetes/endpoint/service.js","webpack://portainer/./app/kubernetes/filters/applicationFilters.js","webpack://portainer/./app/kubernetes/filters/configurationFilters.js","webpack://portainer/./app/kubernetes/filters/eventFilters.js","webpack://portainer/./app/kubernetes/filters/filters.js","webpack://portainer/./app/kubernetes/helm/rest.js","webpack://portainer/./app/kubernetes/helm/service.js","webpack://portainer/./app/kubernetes/helpers/application/index.js","webpack://portainer/./app/kubernetes/helpers/commonHelper.js","webpack://portainer/./app/kubernetes/helpers/configMapHelper.js","webpack://portainer/./app/kubernetes/helpers/configurationHelper.js","webpack://portainer/./app/kubernetes/helpers/eventHelper.js","webpack://portainer/./app/kubernetes/helpers/formValidationHelper.js","webpack://portainer/./app/kubernetes/helpers/namespaceHelper.js","webpack://portainer/./app/kubernetes/helpers/resourceQuotaHelper.js","webpack://portainer/./app/kubernetes/helpers/resourceReservationHelper.js","webpack://portainer/./app/kubernetes/helpers/serviceHelper.js","webpack://portainer/./app/kubernetes/helpers/stackHelper.js","webpack://portainer/./app/kubernetes/helpers/stackHelper.test.js","webpack://portainer/./app/kubernetes/helpers/volumeHelper.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/converter.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/helper.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/models.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/payload.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/rest.js","webpack://portainer/./app/kubernetes/horizontal-pod-auto-scaler/service.js","webpack://portainer/./app/kubernetes/ingress/constants.js","webpack://portainer/./app/kubernetes/ingress/converter.js","webpack://portainer/./app/kubernetes/ingress/helper.js","webpack://portainer/./app/kubernetes/ingress/models.js","webpack://portainer/./app/kubernetes/ingress/payloads.js","webpack://portainer/./app/kubernetes/ingress/rest.js","webpack://portainer/./app/kubernetes/ingress/service.js","webpack://portainer/./app/kubernetes/models/application/formValues.js","webpack://portainer/./app/kubernetes/models/application/models/constants.js","webpack://portainer/./app/kubernetes/models/application/models/index.js","webpack://portainer/./app/kubernetes/models/application/payloads.js","webpack://portainer/./app/kubernetes/models/common/params.js","webpack://portainer/./app/kubernetes/models/common/payloads.js","webpack://portainer/./app/kubernetes/models/config-map/models.js","webpack://portainer/./app/kubernetes/models/config-map/payloads.js","webpack://portainer/./app/kubernetes/models/configuration/formvalues.js","webpack://portainer/./app/kubernetes/models/configuration/models.js","webpack://portainer/./app/kubernetes/models/daemon-set/models.js","webpack://portainer/./app/kubernetes/models/daemon-set/payloads.js","webpack://portainer/./app/kubernetes/models/deploy.js","webpack://portainer/./app/kubernetes/models/deployment/models.js","webpack://portainer/./app/kubernetes/models/deployment/payloads.js","webpack://portainer/./app/kubernetes/models/event/models.js","webpack://portainer/./app/kubernetes/models/history/models.js","webpack://portainer/./app/kubernetes/models/namespace/models.js","webpack://portainer/./app/kubernetes/models/namespace/payloads.js","webpack://portainer/./app/kubernetes/models/nodes-limits/models.js","webpack://portainer/./app/kubernetes/models/port/models.js","webpack://portainer/./app/kubernetes/models/resource-pool/formValues.js","webpack://portainer/./app/kubernetes/models/resource-pool/models.js","webpack://portainer/./app/kubernetes/models/resource-quota/models.js","webpack://portainer/./app/kubernetes/models/resource-quota/payloads.js","webpack://portainer/./app/kubernetes/models/resource-reservation/models.js","webpack://portainer/./app/kubernetes/models/resource-types/models.js","webpack://portainer/./app/kubernetes/models/secret/models.js","webpack://portainer/./app/kubernetes/models/secret/payloads.js","webpack://portainer/./app/kubernetes/models/service/models.js","webpack://portainer/./app/kubernetes/models/service/payloads.js","webpack://portainer/./app/kubernetes/models/stack/models.js","webpack://portainer/./app/kubernetes/models/stateful-set/models.js","webpack://portainer/./app/kubernetes/models/stateful-set/payloads.js","webpack://portainer/./app/kubernetes/models/storage-class/models.js","webpack://portainer/./app/kubernetes/models/storage-class/payload.js","webpack://portainer/./app/kubernetes/models/volume/models.js","webpack://portainer/./app/kubernetes/models/volume/payloads.js","webpack://portainer/./app/kubernetes/node/converter.js","webpack://portainer/./app/kubernetes/node/filters.js","webpack://portainer/./app/kubernetes/node/formValues.js","webpack://portainer/./app/kubernetes/node/helper.js","webpack://portainer/./app/kubernetes/node/models.js","webpack://portainer/./app/kubernetes/node/payload.js","webpack://portainer/./app/kubernetes/node/rest.js","webpack://portainer/./app/kubernetes/node/service.js","webpack://portainer/./app/kubernetes/pod/converter.js","webpack://portainer/./app/kubernetes/pod/models/affinities.ts","webpack://portainer/./app/kubernetes/pod/models/index.js","webpack://portainer/./app/kubernetes/pod/payloads/affinities.js","webpack://portainer/./app/kubernetes/pod/payloads/create.js","webpack://portainer/./app/kubernetes/pod/service.js","webpack://portainer/./app/kubernetes/registries/index.js","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/index.js","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/kube-registry-access-view.controller.js","webpack://portainer/./app/react/kubernetes/cluster/RegistryAccessView/ConfirmDeleteAccess.tsx","webpack://portainer/./app/kubernetes/rest/configMap.js","webpack://portainer/./app/kubernetes/rest/controllerRevision.js","webpack://portainer/./app/kubernetes/rest/daemonSet.js","webpack://portainer/./app/kubernetes/rest/deployment.js","webpack://portainer/./app/kubernetes/rest/endpoint.js","webpack://portainer/./app/kubernetes/rest/event.js","webpack://portainer/./app/kubernetes/rest/health.js","webpack://portainer/./app/kubernetes/rest/namespace.js","webpack://portainer/./app/kubernetes/rest/nodesLimits.js","webpack://portainer/./app/kubernetes/rest/persistentVolumeClaim.js","webpack://portainer/./app/kubernetes/rest/pod.js","webpack://portainer/./app/kubernetes/rest/portainer-namespace.js","webpack://portainer/./app/kubernetes/rest/replicaSet.js","webpack://portainer/./app/kubernetes/rest/resourceQuota.js","webpack://portainer/./app/kubernetes/rest/response/transform.js","webpack://portainer/./app/kubernetes/rest/secret.js","webpack://portainer/./app/kubernetes/rest/service.js","webpack://portainer/./app/kubernetes/rest/serviceAccount.js","webpack://portainer/./app/kubernetes/rest/statefulSet.js","webpack://portainer/./app/kubernetes/rest/storage.js","webpack://portainer/./app/kubernetes/services/applicationService.js","webpack://portainer/./app/kubernetes/services/configMapService.js","webpack://portainer/./app/kubernetes/services/configurationService.js","webpack://portainer/./app/kubernetes/services/controllerRevisionService.js","webpack://portainer/./app/kubernetes/services/daemonSetService.js","webpack://portainer/./app/kubernetes/services/deploymentService.js","webpack://portainer/./app/kubernetes/services/eventService.js","webpack://portainer/./app/kubernetes/services/healthService.js","webpack://portainer/./app/kubernetes/services/namespaceService.js","webpack://portainer/./app/kubernetes/services/nodesLimitsService.js","webpack://portainer/./app/kubernetes/services/persistentVolumeClaimService.js","webpack://portainer/./app/kubernetes/services/resourcePoolService.js","webpack://portainer/./app/kubernetes/services/resourceQuotaService.js","webpack://portainer/./app/kubernetes/services/secretService.js","webpack://portainer/./app/kubernetes/services/serviceService.js","webpack://portainer/./app/kubernetes/services/stackService.js","webpack://portainer/./app/kubernetes/services/statefulSetService.js","webpack://portainer/./app/kubernetes/services/storageService.js","webpack://portainer/./app/kubernetes/services/volumeService.js","webpack://portainer/./app/kubernetes/store/namespace.js","webpack://portainer/./app/kubernetes/views/applications/applications.js","webpack://portainer/./app/kubernetes/views/applications/applicationsController.js","webpack://portainer/./app/kubernetes/views/applications/create/createApplication.js","webpack://portainer/./app/react/kubernetes/applications/CreateView/UpdateIngressPrompt.tsx","webpack://portainer/./app/kubernetes/views/applications/create/createApplicationController.js","webpack://portainer/./app/kubernetes/views/applications/helm/helm.controller.js","webpack://portainer/./app/kubernetes/views/applications/helm/index.js","webpack://portainer/./app/kubernetes/views/applications/logs/logs.js","webpack://portainer/./app/kubernetes/views/applications/logs/logsController.js","webpack://portainer/./app/kubernetes/views/applications/stats/stats.js","webpack://portainer/./app/kubernetes/views/applications/stats/statsController.js","webpack://portainer/./app/kubernetes/views/cluster/cluster.js","webpack://portainer/./app/kubernetes/views/cluster/clusterController.js","webpack://portainer/./app/kubernetes/views/cluster/node/node.js","webpack://portainer/./app/kubernetes/views/cluster/node/nodeController.js","webpack://portainer/./app/react/kubernetes/cluster/NodeView/ConfirmUpdateNode.tsx","webpack://portainer/./app/kubernetes/views/cluster/node/stats/stats.js","webpack://portainer/./app/kubernetes/views/cluster/node/stats/statsController.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMap.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMapController.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMap.js","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMapController.js","webpack://portainer/./app/kubernetes/views/configurations/configurationsController.js","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecret.js","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecretController.js","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secret.js","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secretController.js","webpack://portainer/./app/kubernetes/views/configurations/validation.js","webpack://portainer/./app/kubernetes/views/deploy/deploy.js","webpack://portainer/./app/kubernetes/views/deploy/deployController.js","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccess.js","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccessController.js","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/index.js","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.controller.js","webpack://portainer/./app/kubernetes/views/resource-pools/create/createResourcePoolController.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/controller.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/index.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePool.js","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePoolController.js","webpack://portainer/./app/react/kubernetes/namespaces/ItemView/ConfirmUpdateNamespace.tsx","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePools.js","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePoolsController.js","webpack://portainer/./app/kubernetes/views/security-constraint/constraintController.js","webpack://portainer/./app/kubernetes/views/stacks/logs/logs.js","webpack://portainer/./app/kubernetes/views/stacks/logs/logsController.js","webpack://portainer/./app/kubernetes/views/summary/resources/applicationResources.js","webpack://portainer/./app/kubernetes/views/summary/resources/configurationResources.js","webpack://portainer/./app/kubernetes/views/summary/resources/helpers.js","webpack://portainer/./app/kubernetes/views/summary/resources/namespaceResources.js","webpack://portainer/./app/kubernetes/views/summary/summary.js","webpack://portainer/./app/kubernetes/views/summary/summaryController.js","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/controller.js","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/index.js","webpack://portainer/./app/kubernetes/views/volumes/edit/volume.js","webpack://portainer/./app/kubernetes/views/volumes/edit/volumeController.js","webpack://portainer/./app/react/kubernetes/volumes/ItemView/ConfirmRedeployModal.tsx","webpack://portainer/./app/kubernetes/views/volumes/volumes.js","webpack://portainer/./app/kubernetes/views/volumes/volumesController.js","webpack://portainer/./app/matomo-setup.js","webpack://portainer/./app/react/portainer/feature-flags/limited-feature.directive.ts","webpack://portainer/./app/react/portainer/feature-flags/index.ts","webpack://portainer/./app/portainer/services/api/index.ts","webpack://portainer/./app/react/hooks/current-environment-store.ts","webpack://portainer/./app/portainer/services/endpointProvider.ts","webpack://portainer/./app/portainer/services/index.ts","webpack://portainer/./app/react/portainer/environments/environment-groups/components/GroupAssociationTable.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/index.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/helper.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/columns/url.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/helm-repositories.service.ts","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/HelmRepositoryDatatableActions.tsx","webpack://portainer/./app/react/portainer/account/AccountView/HelmRepositoryDatatable/HelmRepositoryDatatable.tsx","webpack://portainer/./app/portainer/react/components/file-upload-field.ts","webpack://portainer/./app/portainer/react/components/switch-field.ts","webpack://portainer/./app/portainer/react/components/custom-templates/variables-field.ts","webpack://portainer/./app/portainer/react/components/custom-templates/index.ts","webpack://portainer/./app/portainer/react/components/git-form.ts","webpack://portainer/./app/react/portainer/feature-flags/useFeatureFlag.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/created.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/helper.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/columns/index.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/FDOProfilesDatatableActions.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/FDOProfilesDatatable.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/FDOProfilesDatatable/useFDOProfiles.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.module.css?f2a1","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsFDO/SettingsFDO.validation.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsOpenAMT/SettingsOpenAMT.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/Badge.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/PasswordLengthSlider/PasswordLengthSlider.module.css?000c","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/PasswordLengthSlider/PasswordLengthSlider.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/SaveAuthSettingsButton.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/InternalAuth.tsx","webpack://portainer/./app/react/components/form-components/validate-url.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/useToggledValue.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/DemoAlert.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/LogoFieldset.tsx","webpack://portainer/./app/react/components/form-components/Input/Textarea.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/ScreenBannerFieldset.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/TemplatesUrlSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/EnableTelemetryField.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ApplicationSettingsPanel/ApplicationSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/HelmSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeConfigSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeNoteMinimumCharacters.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/DeploymentOptionsSection.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/KubeSettingsPanel/KubeSettingsPanel.tsx","webpack://portainer/./app/react/components/BEFeatureIndicator/BEOverlay.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/useUpdateSSLConfigMutation.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HelmCertPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/AddLabelForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/HiddenContainersTable.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/HiddenContainersPanel/HiddenContainersPanel.tsx","webpack://portainer/./app/react/hooks/withHideOnExtension.tsx","webpack://portainer/./app/react/portainer/settings/queries/useSSLSettings.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/SSLSettingsPanel/SSLSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/AuthenticationView/OAuth/AuthStyleField.tsx","webpack://portainer/./app/portainer/react/components/settings.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/SettingsOpenAMT/SettingsOpenAMT.validation.ts","webpack://portainer/./app/react/portainer/access-control/AccessManagement/PorAccessManagementUsersSelector.tsx","webpack://portainer/./app/portainer/react/components/access-control.ts","webpack://portainer/./app/react/portainer/access-control/PorAccessControlForm/TeamsSelector.tsx","webpack://portainer/./app/react/portainer/access-control/PorAccessControlForm/UsersSelector.tsx","webpack://portainer/./app/react/portainer/environments/ItemView/EdgeKeyDisplay.tsx","webpack://portainer/./app/portainer/react/components/environments.ts","webpack://portainer/./app/react/portainer/environments/KvmView/KVMControl/KVMControl.tsx","webpack://portainer/./app/react/portainer/registries/repositories/ListView/useRepositoryTags.ts","webpack://portainer/./app/react/portainer/registries/repositories/ListView/columns.tsx","webpack://portainer/./app/portainer/react/components/registries.ts","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryName.tsx","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryAction.tsx","webpack://portainer/./app/react/portainer/registries/ListView/DefaultRegistry/DefaultRegistryDomain.tsx","webpack://portainer/./app/react/portainer/registries/repositories/ListView/RepositoriesDatatable.tsx","webpack://portainer/./app/react/portainer/account/useUpdateUserMutation.tsx","webpack://portainer/./app/react/portainer/account/AccountView/ApplicationSettings/ApplicationSettingsForm.tsx","webpack://portainer/./app/portainer/react/components/account.ts","webpack://portainer/./app/react/portainer/account/AccountView/ApplicationSettings/ApplicationSettingsWidget.tsx","webpack://portainer/./app/portainer/react/components/index.ts","webpack://portainer/./app/react/components/PasswordCheckHint.tsx","webpack://portainer/./app/react/components/ReactQueryDevtoolsWrapper.tsx","webpack://portainer/./app/react/portainer/environments/environment-groups/components/AssociatedEnvironmentsSelector.tsx","webpack://portainer/./app/react/hooks/usePaginationLimitState.ts","webpack://portainer/./app/assets/ico/heartbeat-up.svg","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/types.ts","webpack://portainer/./app/assets/ico/heartbeat-down.svg","webpack://portainer/./app/react/components/EnvironmentStatusBadgeItem.tsx","webpack://portainer/./app/react/components/EdgeIndicator.tsx","webpack://portainer/./app/react/components/EnvironmentStatusBadge.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentIcon.tsx","webpack://portainer/./app/react/components/StatsItem.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStatsDocker.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStatsKubernetes.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentStats.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EngineVersion.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentTypeTag.tsx","webpack://portainer/./app/react/components/LinkButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentBrowseButtons.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EditButtons.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/AgentDetails.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/kubeconfig.service.ts","webpack://portainer/./app/react/hooks/useListSelection.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigPrompt.module.css?e1e9","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigPrompt.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/KubeconfigButton/KubeconfigButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/NoEnvironmentsInfoPanel.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/query-keys.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/urls.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useSupportedAgentVersions.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/UpdateBadge.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/SortbySelector.module.css?a959","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/SortbySelector.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentList.module.css?ca38","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentListFilters.tsx","webpack://portainer/./app/react/portainer/environments/queries/useAgentVersionsList.ts","webpack://portainer/./app/react/edge/edge-devices/open-amt/useActivateDevicesMutation.ts","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/AMTButton/AssociateAMTDialog.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/AMTButton/AMTButton.tsx","webpack://portainer/./app/react/portainer/HomeView/EnvironmentList/EnvironmentList.tsx","webpack://portainer/./app/react/portainer/HomeView/EdgeLoadingSpinner.module.css?deac","webpack://portainer/./app/react/portainer/HomeView/EdgeLoadingSpinner.tsx","webpack://portainer/./app/react/hooks/useUIState.tsx","webpack://portainer/./app/react/portainer/HomeView/home.service.ts","webpack://portainer/./app/react/portainer/HomeView/MotdPanel.tsx","webpack://portainer/./app/react/portainer/HomeView/HomeView.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAcccessToken.validation.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/useCreateUserAccessTokenMutation.ts","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAccessTokenInnerForm.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/DisplayUserAccessToken.tsx","webpack://portainer/./app/react/portainer/account/CreateAccessTokenView/CreateUserAccessToken.tsx","webpack://portainer/./app/react/portainer/common/PortainerUrlField.tsx","webpack://portainer/./app/react/portainer/common/PortainerTunnelAddrField.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettings/EdgeComputeSettings.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettings/EdgeComputeSettings.validation.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/DeploymentSyncOptions/DeploymentSyncOptions.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/EnableWaitingRoomSwitch.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/AutoEnvCreationSettingsForm.tsx","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/AutomaticEdgeEnvCreation/AutomaticEdgeEnvCreation.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/edge.ts","webpack://portainer/./app/react/edge/components/edge-agent-standard.svg","webpack://portainer/./app/react/edge/components/edge-agent-async.svg","webpack://portainer/./app/react/portainer/environments/EdgeAutoCreateScriptView/AutomaticEdgeEnvCreation/AutomaticEdgeEnvCreation.tsx","webpack://portainer/./app/react/portainer/environments/EdgeAutoCreateScriptView/EdgeAutoCreateScriptView.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/helper.ts","webpack://portainer/./app/react/portainer/environments/ListView/columns/actions.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/name.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/type.tsx","webpack://portainer/./app/react/portainer/environments/ListView/columns/index.ts","webpack://portainer/./app/react/portainer/environments/ListView/columns/url.tsx","webpack://portainer/./app/react/portainer/environments/ListView/ImportFdoDeviceButton.tsx","webpack://portainer/./app/react/portainer/environments/ListView/EnvironmentsDatatable.tsx","webpack://portainer/./app/react/portainer/environments/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/backup-options.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/backupSettings.service.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/queryKeys.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useBackupS3Settings.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useUpdateBackupS3SettingsMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useDownloadBackupMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/queries/useExportS3BackupMutation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupFileForm.validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/SecurityFieldset.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupFileForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupS3Form.validation.ts","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupS3Form.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/BackupSettingsView/BackupSettingsPanel.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/EnableOpenAIIntegrationSwitch.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/ExperimentalFeaturesForm.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/ExperimentalFeatures/ExperimentalFeatures.tsx","webpack://portainer/./app/react/portainer/settings/SettingsView/SettingsView.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/components/CreateHelmRepositoryForm.validation.ts","webpack://portainer/./app/react/portainer/account/helm-repositories/components/HelmRepositoryForm.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/CreateHelmRepositoryView/CreateHelmRespositoriesForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/components/Option/Option.module.css?6843","webpack://portainer/./app/react/portainer/environments/wizard/components/Option/Option.tsx","webpack://portainer/./app/react/portainer/environments/environment.service/create.ts","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/useFetchOrCreateLocalEnvironment.ts","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/HomeView.module.css?3029","webpack://portainer/./app/react/portainer/environments/wizard/HomeView/HomeView.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/EnvironmentSelector.tsx","webpack://portainer/./app/assets/ico/vendor/kaas-icon.svg","webpack://portainer/./app/assets/ico/vendor/install-kubernetes.svg","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/environment-types.ts","webpack://portainer/./app/react/components/Stepper/Stepper.module.css?ee23","webpack://portainer/./app/react/components/Stepper/Stepper.tsx","webpack://portainer/./app/react/portainer/environments/queries/useCreateEnvironmentMutation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/MetadataFieldset.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MoreSettingsSection.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/NameField.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentFieldset.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/MetadataFieldset/validation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentForm/EdgeAgentForm.validation.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/EdgeAgentTab/EdgeAgentTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/EnvironmentUrlField.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/AgentForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/AgentForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/AgentTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APIForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APIForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/APITab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/APITab/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketForm.validation.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/SocketTab/SocketTab.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/WizardDocker.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardAzure/WizardAzure.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/DeploymentScripts.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/AgentPanel.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/KubeConfigTeaserForm.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardKubernetes/WizardKubernetes.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/EnvironmentsCreationView.module.css?2094","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardEndpointsList/WizardEndpointsList.module.css?db60","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardEndpointsList/WizardEndpointsList.tsx","webpack://portainer/./app/portainer/react/views/wizard.ts","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentsCreationView/EnvironmentsCreationView.tsx","webpack://portainer/./app/react/portainer/environments/wizard/EnvironmentTypeSelectView/EndpointTypeView.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/Details.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/RowContext.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/name-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/UsersList/UsersList.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/RowContext.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/helper.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/name-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/team-role-column.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/columns/index.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamMembersList/TeamMembersList.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/TeamAssociationSelector/TeamAssociationSelector.tsx","webpack://portainer/./app/react/portainer/users/teams/ListView/CreateTeamForm/CreateTeamForm.tsx","webpack://portainer/./app/react/portainer/users/teams/ListView/CreateTeamForm/CreateTeamForm.validation.ts","webpack://portainer/./app/react/portainer/users/teams/ListView/TeamsDatatable/TeamsDatatable.tsx","webpack://portainer/./app/portainer/react/views/teams.ts","webpack://portainer/./app/react/portainer/users/teams/ItemView/ItemView.tsx","webpack://portainer/./app/react/portainer/users/teams/ItemView/useTeamIdParam.ts","webpack://portainer/./app/react/portainer/users/teams/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/list.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/types.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useRemoveMutation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/helper.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/created.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/groups.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/schedule-status.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/ScheduledTimeField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/scheduled-time.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/type.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/columns/index.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/ListView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/ListView/datatable-store.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/create.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/NameField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/useEdgeGroupsEnvironmentIds.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/VersionSelect.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/UpdateScheduleDetailsFieldset.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/usePreviousVersions.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/RollbackOptions.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/RollbackScheduleDetailsFieldset.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/ScheduleTypeSelector.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/common/useEnvironments.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/validation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/common/EdgeGroupsField.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/CreateView/CreateView.tsx","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useItem.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/queries/useUpdateMutation.ts","webpack://portainer/./app/react/portainer/environments/update-schedules/ItemView/ItemView.tsx","webpack://portainer/./app/portainer/react/views/update-schedules.ts","webpack://portainer/./app/portainer/react/views/index.ts","webpack://portainer/./app/react/portainer/settings/EdgeComputeView/EdgeComputeSettingsView.tsx","webpack://portainer/./app/react/portainer/account/helm-repositories/CreateHelmRepositoryView/CreateHelmRepositoriesView.tsx","webpack://portainer/./app/portainer/react/index.ts","webpack://portainer/./app/react/sidebar/useSidebarState.tsx","webpack://portainer/./app/react/sidebar/Sidebar.module.css?f14d","webpack://portainer/./app/react/sidebar/SidebarItem/Wrapper.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarTooltip.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/useSidebarSrefActive.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarItem.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/index.ts","webpack://portainer/./app/react/sidebar/SidebarSection.tsx","webpack://portainer/./app/react/sidebar/SidebarItem/SidebarParent.tsx","webpack://portainer/./app/react/sidebar/EdgeComputeSidebar.tsx","webpack://portainer/./app/react/portainer/environments/utils/docker.svg","webpack://portainer/./app/react/portainer/environments/utils/azure.svg","webpack://portainer/./app/react/portainer/environments/utils/kubernetes.svg","webpack://portainer/./app/react/portainer/environments/utils/get-platform-icon.ts","webpack://portainer/./app/react/sidebar/EnvironmentSidebar.module.css?43f4","webpack://portainer/./app/react/sidebar/items/DashboardLink.tsx","webpack://portainer/./app/react/sidebar/AzureSidebar/AzureSidebar.tsx","webpack://portainer/./app/react/sidebar/items/VolumesLink.tsx","webpack://portainer/./app/react/sidebar/DockerSidebar.tsx","webpack://portainer/./app/portainer/services/terminal-window.ts","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShell.module.css?3135","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShell.tsx","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubectlShell/KubectlShellButton.tsx","webpack://portainer/./app/react/sidebar/KubernetesSidebar/KubernetesSidebar.tsx","webpack://portainer/./app/react/sidebar/EnvironmentSidebar.tsx","webpack://portainer/./app/react/sidebar/SettingsSidebar.tsx","webpack://portainer/./app/react/sidebar/Footer/UpdateNotifications.module.css?f05e","webpack://portainer/./app/react/sidebar/Footer/UpdateNotifications.tsx","webpack://portainer/./app/react/sidebar/Footer/portainer_logo.svg","webpack://portainer/./app/react/sidebar/Footer/Footer.module.css?214d","webpack://portainer/./app/react/sidebar/Footer/BuildInfoModal.tsx","webpack://portainer/./app/react/sidebar/Footer/Footer.tsx","webpack://portainer/./app/react/sidebar/Header.module.css?1fea","webpack://portainer/./app/react/sidebar/Header.tsx","webpack://portainer/./app/react/portainer/system/useSystemInfo.ts","webpack://portainer/./app/react/portainer/system/useUpgradeEditionMutation.ts","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UploadLicenseDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/LoadingDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/NonAdminUpgradeDialog.tsx","webpack://portainer/./app/react/components/HubspotForm.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/GetLicenseDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UpgradeDialog.tsx","webpack://portainer/./app/react/sidebar/UpgradeBEBanner/UpgradeBEBanner.tsx","webpack://portainer/./app/react/sidebar/Sidebar.tsx","webpack://portainer/./app/portainer/react/views/sidebar.ts","webpack://portainer/./app/portainer/environments/index.ts","webpack://portainer/./app/portainer/helpers/index.ts","webpack://portainer/./app/portainer/__module.js","webpack://portainer/./app/portainer/components/InformationPanel/InformationPanelAngular.js","webpack://portainer/./app/portainer/components/access-datatable/accessDatatable.js","webpack://portainer/./app/portainer/components/access-datatable/accessDatatableController.js","webpack://portainer/./app/portainer/components/accessControlForm/por-access-control-form.js","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlFormController.js","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlFormModel.js","webpack://portainer/./app/portainer/components/accessManagement/index.js","webpack://portainer/./app/portainer/components/accessManagement/por-access-management.js","webpack://portainer/./app/portainer/components/accessManagement/porAccessManagementController.js","webpack://portainer/./app/portainer/components/autofocus.js","webpack://portainer/./app/portainer/components/buttonSpinner.js","webpack://portainer/./app/portainer/components/code-editor/code-editor.controller.js","webpack://portainer/./app/portainer/components/code-editor/code-editor.js","webpack://portainer/./app/portainer/components/code-editor/codeEditorController.js","webpack://portainer/./app/portainer/components/copy-button/copy-button.controller.js","webpack://portainer/./app/portainer/components/copy-button/copy-button.js","webpack://portainer/./app/portainer/components/custom-template-selector/custom-template-selector.controller.js","webpack://portainer/./app/portainer/components/custom-template-selector/index.js","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.controller.js","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/index.js","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.controller.js","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/index.js","webpack://portainer/./app/portainer/components/datatables/filter/datatable-filter.controller.js","webpack://portainer/./app/portainer/components/datatables/filter/index.js","webpack://portainer/./app/portainer/components/datatables/genericDatatableController.js","webpack://portainer/./app/portainer/components/datatables/groups-datatable/groupsDatatable.js","webpack://portainer/./app/portainer/components/datatables/index.js","webpack://portainer/./app/portainer/components/datatables/pagination/index.js","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatable.js","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatableController.js","webpack://portainer/./app/portainer/components/datatables/strings-datatable/index.js","webpack://portainer/./app/portainer/components/datatables/tags-datatable/tagsDatatable.js","webpack://portainer/./app/portainer/components/datatables/titlebar/index.js","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatable.js","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatableController.js","webpack://portainer/./app/portainer/components/demo-feature-indicator/demo-feature-indicator.controller.js","webpack://portainer/./app/portainer/components/demo-feature-indicator/index.js","webpack://portainer/./app/portainer/components/endpointSecurity/por-endpoint-security.js","webpack://portainer/./app/react/portainer/environments/ItemView/tls-options.tsx","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurityController.js","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurityModel.js","webpack://portainer/./app/portainer/components/focusIf.js","webpack://portainer/./app/portainer/components/form-components/file-upload-form/index.js","webpack://portainer/./app/portainer/components/form-components/index.js","webpack://portainer/./app/portainer/components/form-components/web-editor-form/index.js","webpack://portainer/./app/portainer/components/form-components/web-editor-form/web-editor-form.controller.js","webpack://portainer/./app/portainer/components/forms/group-form/group-form.js","webpack://portainer/./app/portainer/components/forms/group-form/groupFormController.js","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.controller.js","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.js","webpack://portainer/./app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.js","webpack://portainer/./app/portainer/components/forms/registry-form-azure/registry-form-azure.js","webpack://portainer/./app/portainer/components/forms/registry-form-custom/registry-form-custom.js","webpack://portainer/./app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatableController.js","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.js","webpack://portainer/./app/portainer/components/forms/registry-form-proget/registry-form-proget.js","webpack://portainer/./app/portainer/components/forms/registry-form-quay/registry-form-quay.js","webpack://portainer/./app/portainer/components/forms/stack-from-template-form/index.js","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/index.js","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.controller.js","webpack://portainer/./app/portainer/components/widget/index.ts","webpack://portainer/./app/portainer/components/widget/rd-widget.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-body.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-custom-header.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-footer.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-title.ts","webpack://portainer/./app/portainer/components/widget/rd-widget-taskbar.ts","webpack://portainer/./app/portainer/components/BEFeatureIndicator/BEFeatureIndicator.controller.ts","webpack://portainer/./app/portainer/components/BEFeatureIndicator/index.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auth-fieldset.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auth-fieldset.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auto-update-fieldset.controller.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-auto-update-fieldset.ts","webpack://portainer/./app/portainer/components/forms/git-form/git-form-ref-field.ts","webpack://portainer/./app/portainer/components/forms/git-form/index.ts","webpack://portainer/./app/portainer/components/tls-fieldset/index.ts","webpack://portainer/./app/portainer/components/index.js","webpack://portainer/./app/portainer/components/intervalFormat.js","webpack://portainer/./app/portainer/components/onEnterKey.js","webpack://portainer/./app/portainer/components/option-panel/index.js","webpack://portainer/./app/portainer/components/option-panel/option-panel.controller.js","webpack://portainer/./app/portainer/components/product-list/product-item/product-item.js","webpack://portainer/./app/portainer/components/product-list/product-list.js","webpack://portainer/./app/portainer/components/registry-details/index.js","webpack://portainer/./app/portainer/components/sensitive-details/sensitive-details.js","webpack://portainer/./app/portainer/components/show-hide/show-hide.js","webpack://portainer/./app/portainer/components/slider/slider.js","webpack://portainer/./app/portainer/components/slider/sliderController.js","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form-controller.js","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form.js","webpack://portainer/./app/portainer/components/status-indicator/index.js","webpack://portainer/./app/portainer/components/template-widget.js","webpack://portainer/./app/react/portainer/account/AccountView/theme-options.tsx","webpack://portainer/./app/portainer/components/theme/theme-settings.controller.js","webpack://portainer/./app/portainer/components/theme/theme-settings.js","webpack://portainer/./app/portainer/environments/azure-endpoint-config/azure-endpoint-config.js","webpack://portainer/./app/portainer/filters/filters.js","webpack://portainer/./app/portainer/filters/index.js","webpack://portainer/./app/portainer/helpers/endpointHelper.js","webpack://portainer/./app/portainer/helpers/formHelper.js","webpack://portainer/./app/portainer/helpers/genericHelper.js","webpack://portainer/./app/portainer/helpers/networkHelper.js","webpack://portainer/./app/portainer/helpers/pathHelper.js","webpack://portainer/./app/portainer/helpers/resourceControlHelper.js","webpack://portainer/./app/react/docker/stacks/view-models/external-stack.ts","webpack://portainer/./app/portainer/helpers/stackHelper.js","webpack://portainer/./app/portainer/helpers/tagHelper.js","webpack://portainer/./app/portainer/helpers/templateHelper.js","webpack://portainer/./app/portainer/helpers/urlHelper.js","webpack://portainer/./app/portainer/models/access.js","webpack://portainer/./app/portainer/models/dockerhub.js","webpack://portainer/./app/portainer/models/endpoint/formValues.js","webpack://portainer/./app/portainer/models/endpoint/models.js","webpack://portainer/./app/portainer/models/gitlabRegistry.js","webpack://portainer/./app/portainer/models/group.js","webpack://portainer/./app/portainer/models/registry.js","webpack://portainer/./app/portainer/models/registryRepository.js","webpack://portainer/./app/portainer/models/registryTypes.js","webpack://portainer/./app/portainer/models/resourceControl/resourceControlCreatePayload.js","webpack://portainer/./app/portainer/models/resourceControl/resourceControlOwnershipParameters.js","webpack://portainer/./app/portainer/models/schedule.js","webpack://portainer/./app/portainer/models/settings.js","webpack://portainer/./app/portainer/models/status.js","webpack://portainer/./app/portainer/models/tag.js","webpack://portainer/./app/portainer/models/team.js","webpack://portainer/./app/portainer/models/teamMembership.js","webpack://portainer/./app/portainer/models/user.js","webpack://portainer/./app/portainer/models/webhook.js","webpack://portainer/./app/portainer/oauth/__module.js","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/index.js","webpack://portainer/./app/react/portainer/settings/AuthenticationView/oauth-options.tsx","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/oauth-provider-selector.controller.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/index.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/oauth-settings.controller.js","webpack://portainer/./app/portainer/oauth/components/oauth-settings/providers.js","webpack://portainer/./app/portainer/oauth/services/rest/oauth.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer-datatable/index.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer.controller.js","webpack://portainer/./app/portainer/rbac/components/access-viewer/index.js","webpack://portainer/./app/portainer/rbac/components/roles-datatable/index.js","webpack://portainer/./app/portainer/rbac/components/roles-datatable/roles-datatable.controller.js","webpack://portainer/./app/portainer/rbac/index.js","webpack://portainer/./app/portainer/rbac/models/access.js","webpack://portainer/./app/portainer/rbac/models/role.js","webpack://portainer/./app/portainer/rbac/services/role.rest.js","webpack://portainer/./app/portainer/rbac/services/role.service.js","webpack://portainer/./app/portainer/rbac/views/roles/index.js","webpack://portainer/./app/portainer/rbac/views/roles/roles.controller.js","webpack://portainer/./app/portainer/registry-management/index.js","webpack://portainer/./app/portainer/registry-management/views/create/createRegistry.js","webpack://portainer/./app/react/portainer/registries/CreateView/options.tsx","webpack://portainer/./app/portainer/registry-management/views/create/createRegistryController.js","webpack://portainer/./app/portainer/registry-management/views/edit/registry.js","webpack://portainer/./app/portainer/registry-management/views/edit/registryController.js","webpack://portainer/./app/portainer/registry-management/views/list/registriesController.js","webpack://portainer/./app/portainer/rest/auth.js","webpack://portainer/./app/portainer/rest/backup.js","webpack://portainer/./app/portainer/rest/customTemplate.js","webpack://portainer/./app/portainer/rest/endpoint.js","webpack://portainer/./app/portainer/rest/gitlab.js","webpack://portainer/./app/portainer/rest/group.js","webpack://portainer/./app/portainer/rest/registry.js","webpack://portainer/./app/portainer/rest/resourceControl.js","webpack://portainer/./app/portainer/rest/settings.js","webpack://portainer/./app/portainer/rest/ssl.js","webpack://portainer/./app/portainer/rest/stack.js","webpack://portainer/./app/portainer/rest/support.js","webpack://portainer/./app/portainer/rest/tag.js","webpack://portainer/./app/portainer/rest/team.js","webpack://portainer/./app/portainer/rest/teamMembership.js","webpack://portainer/./app/portainer/rest/template.js","webpack://portainer/./app/portainer/rest/transform/getEndpointsTotalCount.js","webpack://portainer/./app/portainer/rest/transform/gitlabResponseGetLink.js","webpack://portainer/./app/portainer/rest/user.js","webpack://portainer/./app/portainer/rest/webhooks.js","webpack://portainer/./app/portainer/services/allSettled.js","webpack://portainer/./app/portainer/services/api/accessService.js","webpack://portainer/./app/portainer/services/api/backupService.js","webpack://portainer/./app/portainer/services/api/customTemplate.js","webpack://portainer/./app/portainer/services/api/dockerhubService.js","webpack://portainer/./app/portainer/services/api/endpointService.js","webpack://portainer/./app/portainer/services/api/groupService.js","webpack://portainer/./app/portainer/services/api/registryService.js","webpack://portainer/./app/portainer/services/api/resourceControlService.js","webpack://portainer/./app/portainer/services/api/settingsService.js","webpack://portainer/./app/portainer/services/api/sslService.js","webpack://portainer/./app/react/docker/stacks/view-models/stack.ts","webpack://portainer/./app/portainer/services/api/stackService.js","webpack://portainer/./app/portainer/services/api/statusService.js","webpack://portainer/./app/portainer/services/api/supportService.js","webpack://portainer/./app/portainer/services/api/tagService.js","webpack://portainer/./app/portainer/services/api/teamMembershipService.js","webpack://portainer/./app/portainer/services/api/teamService.js","webpack://portainer/./app/portainer/services/api/templateService.js","webpack://portainer/./app/portainer/services/api/userService.js","webpack://portainer/./app/portainer/services/api/webhookService.js","webpack://portainer/./app/portainer/services/async.js","webpack://portainer/./app/portainer/services/authentication.js","webpack://portainer/./app/portainer/services/chartService.js","webpack://portainer/./app/portainer/services/datatableService.js","webpack://portainer/./app/portainer/services/fileUpload.js","webpack://portainer/./app/portainer/services/formValidator.js","webpack://portainer/./app/portainer/services/localStorage.js","webpack://portainer/./app/portainer/services/nameValidator.js","webpack://portainer/./app/portainer/services/pagination.js","webpack://portainer/./app/portainer/services/registryGitlabService.js","webpack://portainer/./app/react/docker/images/ItemView/RegistrySelectPrompt.tsx","webpack://portainer/./app/portainer/services/registryModalService.js","webpack://portainer/./app/portainer/services/session-storage.js","webpack://portainer/./app/portainer/services/stateManager.js","webpack://portainer/./app/portainer/services/themeManager.js","webpack://portainer/./app/portainer/settings/authentication/auth-method-constants.js","webpack://portainer/./app/portainer/settings/authentication/auth-type-constants.js","webpack://portainer/./app/portainer/settings/authentication/auto-user-provision-toggle/index.js","webpack://portainer/./app/portainer/settings/authentication/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/ad-settings.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-connectivity-check/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-groups-datatable/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-security/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings.model.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/index.js","webpack://portainer/./app/react/portainer/settings/AuthenticationView/ldap-options.tsx","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.controller.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-users-datatable/index.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap.rest.js","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap.service.js","webpack://portainer/./app/portainer/settings/authentication/save-auth-settings-button/index.js","webpack://portainer/./app/portainer/settings/general/index.js","webpack://portainer/./app/portainer/settings/index.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.controller.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/index.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.controller.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.js","webpack://portainer/./app/portainer/user-activity/activity-logs-view/index.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.controller.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/index.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.controller.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.js","webpack://portainer/./app/portainer/user-activity/auth-logs-view/index.js","webpack://portainer/./app/react/portainer/notifications/columns/helper.ts","webpack://portainer/./app/react/portainer/notifications/columns/type.tsx","webpack://portainer/./app/react/portainer/notifications/columns/title.tsx","webpack://portainer/./app/react/portainer/notifications/columns/details.tsx","webpack://portainer/./app/react/portainer/notifications/columns/index.tsx","webpack://portainer/./app/react/portainer/notifications/columns/time.tsx","webpack://portainer/./app/react/portainer/notifications/NotificationsView.tsx","webpack://portainer/./app/portainer/user-activity/index.js","webpack://portainer/./app/portainer/views/account/accountController.js","webpack://portainer/./app/portainer/views/auth/authController.js","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/index.js","webpack://portainer/./app/portainer/views/devices/import/importDeviceController.js","webpack://portainer/./app/portainer/views/devices/profiles/add/addProfileController.js","webpack://portainer/./app/portainer/views/devices/profiles/add/index.js","webpack://portainer/./app/portainer/views/devices/profiles/edit/editProfileController.js","webpack://portainer/./app/portainer/views/devices/profiles/edit/index.js","webpack://portainer/./app/portainer/views/endpoint-registries/registries.js","webpack://portainer/./app/portainer/views/endpoint-registries/registriesController.js","webpack://portainer/./app/portainer/views/endpoints/access/endpointAccessController.js","webpack://portainer/./app/portainer/views/endpoints/edit/endpointController.js","webpack://portainer/./app/react/portainer/environments/ItemView/ConfirmDisassociateModel.tsx","webpack://portainer/./app/portainer/views/endpoints/helpers.js","webpack://portainer/./app/portainer/views/endpoints/kvm/endpointKVMController.js","webpack://portainer/./app/portainer/views/groups/access/groupAccessController.js","webpack://portainer/./app/portainer/views/groups/create/createGroupController.js","webpack://portainer/./app/portainer/views/groups/edit/groupController.js","webpack://portainer/./app/portainer/views/groups/groupsController.js","webpack://portainer/./app/react/portainer/init/InitAdminView/restore-options.tsx","webpack://portainer/./app/portainer/views/init/admin/initAdminController.js","webpack://portainer/./app/portainer/views/logout/logoutController.js","webpack://portainer/./app/portainer/views/main/mainController.js","webpack://portainer/./app/assets/ico/oauth.svg","webpack://portainer/./app/react/portainer/settings/AuthenticationView/InternalAuth/options.tsx","webpack://portainer/./app/portainer/views/settings/authentication/settingsAuthenticationController.js","webpack://portainer/./app/portainer/views/settings/edge-compute/index.js","webpack://portainer/./app/portainer/views/settings/edge-compute/settingsEdgeComputeController.js","webpack://portainer/./app/portainer/views/stacks/create/createStackController.js","webpack://portainer/./app/portainer/views/stacks/edit/stackController.js","webpack://portainer/./app/portainer/views/stacks/stacksController.js","webpack://portainer/./app/portainer/views/tags/tagsController.js","webpack://portainer/./app/portainer/views/templates/templatesController.js","webpack://portainer/./app/portainer/views/users/edit/userController.js","webpack://portainer/./app/portainer/views/users/usersController.js","webpack://portainer/./app/react/docker/components/ImageStatus/useImageNotification.ts","webpack://portainer/./app/react/docker/components/ImageStatus/ImageStatus.tsx","webpack://portainer/./app/vendors.js","webpack://portainer/./app/react/components/PageHeader/HeaderTitle.module.css?dde6","webpack://portainer/./app/agent/components/host-browser/hostBrowser.html","webpack://portainer/./app/agent/components/node-selector/nodeSelector.html","webpack://portainer/./app/agent/components/volume-browser/volumeBrowser.html","webpack://portainer/./app/docker/components/container-restart-policy/container-restart-policy.html","webpack://portainer/./app/docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfo.html","webpack://portainer/./app/docker/components/host-overview/host-overview.html","webpack://portainer/./app/docker/components/host-view-panels/devices-panel/devices-panel.html","webpack://portainer/./app/docker/components/host-view-panels/disks-panel/disks-panel.html","webpack://portainer/./app/docker/components/host-view-panels/engine-details-panel/engine-details-panel.html","webpack://portainer/./app/docker/components/host-view-panels/host-details-panel/host-details-panel.html","webpack://portainer/./app/docker/components/host-view-panels/node-availability-select/node-availability-select.html","webpack://portainer/./app/docker/components/host-view-panels/node-labels-table/node-labels-table.html","webpack://portainer/./app/docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.html","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry-rate-limits.html","webpack://portainer/./app/docker/components/imageRegistry/por-image-registry.html","webpack://portainer/./app/docker/components/log-viewer/logViewer.html","webpack://portainer/./app/docker/components/network-macvlan-form/networkMacvlanForm.html","webpack://portainer/./app/docker/components/volumesCIFSForm/volumesCifsForm.html","webpack://portainer/./app/docker/components/volumesNFSForm/volumesnfsForm.html","webpack://portainer/./app/docker/views/configs/configs.html","webpack://portainer/./app/docker/views/configs/create/createconfig.html","webpack://portainer/./app/docker/views/configs/edit/config.html","webpack://portainer/./app/docker/views/containers/console/attach.html","webpack://portainer/./app/docker/views/containers/console/exec.html","webpack://portainer/./app/docker/views/containers/edit/container.html","webpack://portainer/./app/docker/views/containers/inspect/containerinspect.html","webpack://portainer/./app/docker/views/containers/logs/containerlogs.html","webpack://portainer/./app/docker/views/containers/stats/containerstats.html","webpack://portainer/./app/docker/views/dashboard/dashboard.html","webpack://portainer/./app/docker/views/docker-features-configuration/docker-features-configuration.html","webpack://portainer/./app/docker/views/events/events.html","webpack://portainer/./app/docker/views/host/host-browser-view/host-browser-view.html","webpack://portainer/./app/docker/views/host/host-view.html","webpack://portainer/./app/docker/views/images/build/buildimage.html","webpack://portainer/./app/docker/views/images/edit/image.html","webpack://portainer/./app/docker/views/images/images.html","webpack://portainer/./app/docker/views/images/import/importimage.html","webpack://portainer/./app/docker/views/networks/create/createnetwork.html","webpack://portainer/./app/docker/views/networks/networks.html","webpack://portainer/./app/docker/views/nodes/node-browser/node-browser.html","webpack://portainer/./app/docker/views/nodes/node-details/node-details-view.html","webpack://portainer/./app/docker/views/registries/access/registryAccess.html","webpack://portainer/./app/docker/views/secrets/create/createsecret.html","webpack://portainer/./app/docker/views/secrets/edit/secret.html","webpack://portainer/./app/docker/views/secrets/secrets.html","webpack://portainer/./app/docker/views/services/create/createservice.html","webpack://portainer/./app/docker/views/services/create/includes/config.html","webpack://portainer/./app/docker/views/services/create/includes/resources-placement.html","webpack://portainer/./app/docker/views/services/create/includes/secret.html","webpack://portainer/./app/docker/views/services/create/includes/update-restart.html","webpack://portainer/./app/docker/views/services/edit/includes/configs.html","webpack://portainer/./app/docker/views/services/edit/includes/constraints.html","webpack://portainer/./app/docker/views/services/edit/includes/container-specs.html","webpack://portainer/./app/docker/views/services/edit/includes/containerlabels.html","webpack://portainer/./app/docker/views/services/edit/includes/environmentvariables.html","webpack://portainer/./app/docker/views/services/edit/includes/hosts.html","webpack://portainer/./app/docker/views/services/edit/includes/image.html","webpack://portainer/./app/docker/views/services/edit/includes/logging.html","webpack://portainer/./app/docker/views/services/edit/includes/mounts.html","webpack://portainer/./app/docker/views/services/edit/includes/networks.html","webpack://portainer/./app/docker/views/services/edit/includes/placementPreferences.html","webpack://portainer/./app/docker/views/services/edit/includes/ports.html","webpack://portainer/./app/docker/views/services/edit/includes/resources.html","webpack://portainer/./app/docker/views/services/edit/includes/restart.html","webpack://portainer/./app/docker/views/services/edit/includes/secrets.html","webpack://portainer/./app/docker/views/services/edit/includes/servicelabels.html","webpack://portainer/./app/docker/views/services/edit/includes/tasks.html","webpack://portainer/./app/docker/views/services/edit/includes/updateconfig.html","webpack://portainer/./app/docker/views/services/edit/service.html","webpack://portainer/./app/docker/views/services/logs/servicelogs.html","webpack://portainer/./app/docker/views/services/services.html","webpack://portainer/./app/docker/views/swarm/swarm.html","webpack://portainer/./app/docker/views/swarm/visualizer/swarmvisualizer.html","webpack://portainer/./app/docker/views/tasks/edit/task.html","webpack://portainer/./app/docker/views/tasks/logs/tasklogs.html","webpack://portainer/./app/docker/views/volumes/browse/browsevolume.html","webpack://portainer/./app/docker/views/volumes/create/createvolume.html","webpack://portainer/./app/docker/views/volumes/edit/volume.html","webpack://portainer/./app/docker/views/volumes/volumes.html","webpack://portainer/./app/edge/components/edge-job-form/edgeJobForm.html","webpack://portainer/./app/edge/components/edge-job-results-datatable/edgeJobResultsDatatable.html","webpack://portainer/./app/edge/components/edge-jobs-datatable/edgeJobsDatatable.html","webpack://portainer/./app/edge/components/edge-stack-status/edgeStackStatus.html","webpack://portainer/./app/edge/components/group-form/groupForm.html","webpack://portainer/./app/edge/views/edge-groups/createEdgeGroupView/createEdgeGroupView.html","webpack://portainer/./app/edge/views/edge-groups/editEdgeGroupView/editEdgeGroupView.html","webpack://portainer/./app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobView.html","webpack://portainer/./app/edge/views/edge-jobs/edgeJob/edgeJob.html","webpack://portainer/./app/edge/views/edge-jobs/edgeJobsView/edgeJobsView.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/kube-deploy-description.html","webpack://portainer/./app/edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.html","webpack://portainer/./app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackView.html","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.html","webpack://portainer/./app/kubernetes/components/datatables/applications-datatable/applicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/events-datatable/eventsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.html","webpack://portainer/./app/kubernetes/components/datatables/volumes-datatable/volumesDatatable.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.html","webpack://portainer/./app/kubernetes/components/helm/helm-templates/helm-templates.html","webpack://portainer/./app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html","webpack://portainer/./app/kubernetes/components/resource-reservation/resourceReservation.html","webpack://portainer/./app/kubernetes/components/view-loading/viewLoading.html","webpack://portainer/./app/kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.html","webpack://portainer/./app/kubernetes/registries/kube-registry-access-view/kube-registry-access-view.html","webpack://portainer/./app/kubernetes/views/applications/applications.html","webpack://portainer/./app/kubernetes/views/applications/create/createApplication.html","webpack://portainer/./app/kubernetes/views/applications/helm/helm.html","webpack://portainer/./app/kubernetes/views/applications/logs/logs.html","webpack://portainer/./app/kubernetes/views/applications/stats/stats.html","webpack://portainer/./app/kubernetes/views/cluster/cluster.html","webpack://portainer/./app/kubernetes/views/cluster/node/node.html","webpack://portainer/./app/kubernetes/views/cluster/node/stats/stats.html","webpack://portainer/./app/kubernetes/views/configurations/configmap/create/createConfigMap.html","webpack://portainer/./app/kubernetes/views/configurations/configmap/edit/configMap.html","webpack://portainer/./app/kubernetes/views/configurations/secret/create/createSecret.html","webpack://portainer/./app/kubernetes/views/configurations/secret/edit/secret.html","webpack://portainer/./app/kubernetes/views/deploy/deploy.html","webpack://portainer/./app/kubernetes/views/resource-pools/access/resourcePoolAccess.html","webpack://portainer/./app/kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.html","webpack://portainer/./app/kubernetes/views/resource-pools/edit/components/ingresses-datatable/template.html","webpack://portainer/./app/kubernetes/views/resource-pools/edit/resourcePool.html","webpack://portainer/./app/kubernetes/views/resource-pools/resourcePools.html","webpack://portainer/./app/kubernetes/views/security-constraint/constraint.html","webpack://portainer/./app/kubernetes/views/stacks/logs/logs.html","webpack://portainer/./app/kubernetes/views/summary/summary.html","webpack://portainer/./app/kubernetes/views/volumes/components/volumes-storages-datatable/template.html","webpack://portainer/./app/kubernetes/views/volumes/edit/volume.html","webpack://portainer/./app/kubernetes/views/volumes/volumes.html","webpack://portainer/./app/portainer/components/BEFeatureIndicator/BEFeatureIndicator.html","webpack://portainer/./app/portainer/components/InformationPanel/InformationPanelAngular.html","webpack://portainer/./app/portainer/components/access-datatable/accessDatatable.html","webpack://portainer/./app/portainer/components/accessControlForm/porAccessControlForm.html","webpack://portainer/./app/portainer/components/accessManagement/porAccessManagement.html","webpack://portainer/./app/portainer/components/code-editor/code-editor.html","webpack://portainer/./app/portainer/components/copy-button/copy-button.html","webpack://portainer/./app/portainer/components/custom-template-selector/custom-template-selector.html","webpack://portainer/./app/portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.html","webpack://portainer/./app/portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.html","webpack://portainer/./app/portainer/components/datatables/filter/datatable-filter.html","webpack://portainer/./app/portainer/components/datatables/groups-datatable/groupsDatatable.html","webpack://portainer/./app/portainer/components/datatables/pagination/pagination.html","webpack://portainer/./app/portainer/components/datatables/registries-datatable/registriesDatatable.html","webpack://portainer/./app/portainer/components/datatables/strings-datatable/strings-datatable.html","webpack://portainer/./app/portainer/components/datatables/tags-datatable/tagsDatatable.html","webpack://portainer/./app/portainer/components/datatables/titlebar/datatable-titlebar.html","webpack://portainer/./app/portainer/components/datatables/users-datatable/usersDatatable.html","webpack://portainer/./app/portainer/components/demo-feature-indicator/demo-feature-indicator.html","webpack://portainer/./app/portainer/components/endpointSecurity/porEndpointSecurity.html","webpack://portainer/./app/portainer/components/form-components/file-upload-form/file-upload-form.html","webpack://portainer/./app/portainer/components/form-components/web-editor-form/web-editor-form.html","webpack://portainer/./app/portainer/components/forms/group-form/groupForm.html","webpack://portainer/./app/portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.html","webpack://portainer/./app/portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.html","webpack://portainer/./app/portainer/components/forms/registry-form-azure/registry-form-azure.html","webpack://portainer/./app/portainer/components/forms/registry-form-custom/registry-form-custom.html","webpack://portainer/./app/portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.html","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.html","webpack://portainer/./app/portainer/components/forms/registry-form-gitlab/registry-form-gitlab.html","webpack://portainer/./app/portainer/components/forms/registry-form-proget/registry-form-proget.html","webpack://portainer/./app/portainer/components/forms/registry-form-quay/registry-form-quay.html","webpack://portainer/./app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html","webpack://portainer/./app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html","webpack://portainer/./app/portainer/components/option-panel/option-panel.html","webpack://portainer/./app/portainer/components/product-list/product-item/productItem.html","webpack://portainer/./app/portainer/components/product-list/productList.html","webpack://portainer/./app/portainer/components/registry-details/registry-details.html","webpack://portainer/./app/portainer/components/sensitive-details/sensitive-details.html","webpack://portainer/./app/portainer/components/show-hide/show-hide.html","webpack://portainer/./app/portainer/components/slider/slider.html","webpack://portainer/./app/portainer/components/stack-duplication-form/stack-duplication-form.html","webpack://portainer/./app/portainer/components/status-indicator/status-indicator.html","webpack://portainer/./app/portainer/components/theme/theme-settings.html","webpack://portainer/./app/portainer/environments/azure-endpoint-config/azureEndpointConfig.html","webpack://portainer/./app/portainer/oauth/components/oauth-providers-selector/oauth-providers-selector.html","webpack://portainer/./app/portainer/oauth/components/oauth-settings/oauth-settings.html","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer-datatable/access-viewer-datatable.html","webpack://portainer/./app/portainer/rbac/components/access-viewer/access-viewer.html","webpack://portainer/./app/portainer/rbac/components/roles-datatable/roles-datatable.html","webpack://portainer/./app/portainer/rbac/views/roles/roles.html","webpack://portainer/./app/portainer/registry-management/views/create/createRegistry.html","webpack://portainer/./app/portainer/registry-management/views/edit/registry.html","webpack://portainer/./app/portainer/registry-management/views/list/registries.html","webpack://portainer/./app/portainer/settings/authentication/auto-user-provision-toggle/auto-user-provision-toggle.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ad-settings/ad-settings.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-connectivity-check/ldap-connectivity-check.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-groups-datatable/ldap-groups-datatable.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-security/ldap-settings-security.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-settings/ldap-settings.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.html","webpack://portainer/./app/portainer/settings/authentication/ldap/ldap-users-datatable/ldap-users-datatable.html","webpack://portainer/./app/portainer/settings/authentication/save-auth-settings-button/save-auth-settings-button.html","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.html","webpack://portainer/./app/portainer/user-activity/activity-logs-view/activity-logs-view.html","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.html","webpack://portainer/./app/portainer/user-activity/auth-logs-view/auth-logs-view.html","webpack://portainer/./app/portainer/views/account/account.html","webpack://portainer/./app/portainer/views/auth/auth.html","webpack://portainer/./app/portainer/views/custom-templates/custom-templates-view/customTemplatesView.html","webpack://portainer/./app/portainer/views/devices/import/importDevice.html","webpack://portainer/./app/portainer/views/devices/profiles/add/addProfile.html","webpack://portainer/./app/portainer/views/devices/profiles/edit/editProfile.html","webpack://portainer/./app/portainer/views/endpoint-registries/registries.html","webpack://portainer/./app/portainer/views/endpoints/access/endpointAccess.html","webpack://portainer/./app/portainer/views/endpoints/edit/endpoint.html","webpack://portainer/./app/portainer/views/endpoints/kvm/endpointKVM.html","webpack://portainer/./app/portainer/views/groups/access/groupAccess.html","webpack://portainer/./app/portainer/views/groups/create/creategroup.html","webpack://portainer/./app/portainer/views/groups/edit/group.html","webpack://portainer/./app/portainer/views/groups/groups.html","webpack://portainer/./app/portainer/views/init/admin/initAdmin.html","webpack://portainer/./app/portainer/views/logout/logout.html","webpack://portainer/./app/portainer/views/settings/authentication/settingsAuthentication.html","webpack://portainer/./app/portainer/views/settings/edge-compute/settingsEdgeCompute.html","webpack://portainer/./app/portainer/views/stacks/create/createstack.html","webpack://portainer/./app/portainer/views/stacks/edit/stack.html","webpack://portainer/./app/portainer/views/stacks/stacks.html","webpack://portainer/./app/portainer/views/tags/tags.html","webpack://portainer/./app/portainer/views/templates/templates.html","webpack://portainer/./app/portainer/views/users/edit/user.html","webpack://portainer/./app/portainer/views/users/users.html"],"sourcesContent":["var map = {\n\t\"./__mocks__/fileMock.js\": 8770,\n\t\"./__mocks__/styleMock.js\": 77569,\n\t\"./agent/components/host-browser/hostBrowserController.js\": 46553,\n\t\"./agent/components/host-browser/index.js\": 22635,\n\t\"./agent/components/node-selector/index.js\": 46977,\n\t\"./agent/components/node-selector/nodeSelectorController.js\": 10604,\n\t\"./agent/components/volume-browser/index.js\": 92560,\n\t\"./agent/components/volume-browser/volumeBrowserController.js\": 15231,\n\t\"./agent/index.js\": 43719,\n\t\"./agent/models/agent.js\": 69554,\n\t\"./agent/rest/agent.js\": 49727,\n\t\"./agent/rest/browse.js\": 10823,\n\t\"./agent/rest/dockerhub.js\": 65745,\n\t\"./agent/rest/host.js\": 22305,\n\t\"./agent/rest/ping.js\": 73444,\n\t\"./agent/rest/response/browse.js\": 96914,\n\t\"./agent/rest/v1/agent.js\": 26284,\n\t\"./agent/rest/v1/browse.js\": 25778,\n\t\"./agent/services/agentService.js\": 4849,\n\t\"./agent/services/hostBrowserService.js\": 43242,\n\t\"./agent/services/pingService.js\": 14161,\n\t\"./agent/services/volumeBrowserService.js\": 90427,\n\t\"./angulartics.matomo/index.js\": 27014,\n\t\"./app.js\": 41935,\n\t\"./assets/css/index.js\": 78110,\n\t\"./config.js\": 63369,\n\t\"./docker/__module.js\": 30857,\n\t\"./docker/components/container-restart-policy/container-restart-policy-controller.js\": 47318,\n\t\"./docker/components/container-restart-policy/container-restart-policy.js\": 44585,\n\t\"./docker/components/dashboard-cluster-agent-info/dashboard-cluster-agent-info.js\": 58421,\n\t\"./docker/components/dashboard-cluster-agent-info/dashboardClusterAgentInfoController.js\": 83995,\n\t\"./docker/components/host-overview/host-overview.js\": 83015,\n\t\"./docker/components/host-view-panels/devices-panel/devices-panel.js\": 1596,\n\t\"./docker/components/host-view-panels/disks-panel/disks-panel.js\": 76878,\n\t\"./docker/components/host-view-panels/engine-details-panel/engine-details-panel.js\": 44300,\n\t\"./docker/components/host-view-panels/host-details-panel/host-details-panel.js\": 42009,\n\t\"./docker/components/host-view-panels/node-availability-select/node-availability-select-controller.js\": 98209,\n\t\"./docker/components/host-view-panels/node-availability-select/node-availability-select.js\": 78218,\n\t\"./docker/components/host-view-panels/node-labels-table/node-labels-table-controller.js\": 29119,\n\t\"./docker/components/host-view-panels/node-labels-table/node-labels-table.js\": 90820,\n\t\"./docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel-controller.js\": 65553,\n\t\"./docker/components/host-view-panels/swarm-node-details-panel/swarm-node-details-panel.js\": 74092,\n\t\"./docker/components/imageRegistry/por-image-registry-rate-limits.controller.js\": 25760,\n\t\"./docker/components/imageRegistry/por-image-registry-rate-limits.js\": 70698,\n\t\"./docker/components/imageRegistry/por-image-registry.controller.js\": 81199,\n\t\"./docker/components/imageRegistry/por-image-registry.js\": 25898,\n\t\"./docker/components/log-viewer/log-viewer.js\": 74961,\n\t\"./docker/components/log-viewer/logViewerController.js\": 40433,\n\t\"./docker/components/network-macvlan-form/network-macvlan-form.js\": 69020,\n\t\"./docker/components/network-macvlan-form/networkMacvlanFormController.js\": 78160,\n\t\"./docker/components/network-macvlan-form/networkMacvlanFormModel.js\": 93262,\n\t\"./docker/components/volumesCIFSForm/volumesCifsForm.js\": 42365,\n\t\"./docker/components/volumesCIFSForm/volumesCifsFormModel.js\": 53333,\n\t\"./docker/components/volumesNFSForm/volumes-nfs-form.js\": 23295,\n\t\"./docker/components/volumesNFSForm/volumesNFSFormModel.js\": 3744,\n\t\"./docker/filters/filters.js\": 79688,\n\t\"./docker/helpers/configHelper.js\": 88307,\n\t\"./docker/helpers/containerHelper.js\": 69389,\n\t\"./docker/helpers/imageHelper.js\": 29447,\n\t\"./docker/helpers/infoHelper.js\": 60259,\n\t\"./docker/helpers/labelHelper.js\": 93269,\n\t\"./docker/helpers/networkHelper.js\": 78830,\n\t\"./docker/helpers/nodeHelper.js\": 16772,\n\t\"./docker/helpers/secretHelper.js\": 20802,\n\t\"./docker/helpers/serviceHelper.js\": 91889,\n\t\"./docker/helpers/taskHelper.js\": 60775,\n\t\"./docker/helpers/volumeHelper.js\": 58706,\n\t\"./docker/models/config.js\": 56765,\n\t\"./docker/models/container.js\": 48442,\n\t\"./docker/models/event.js\": 58129,\n\t\"./docker/models/image.js\": 51088,\n\t\"./docker/models/imageDetails.js\": 22350,\n\t\"./docker/models/imageLayer.js\": 64263,\n\t\"./docker/models/plugin.js\": 35791,\n\t\"./docker/models/porImageRegistry.js\": 73801,\n\t\"./docker/models/swarm.js\": 54047,\n\t\"./docker/rest/build.js\": 4280,\n\t\"./docker/rest/commit.js\": 65955,\n\t\"./docker/rest/config.js\": 14875,\n\t\"./docker/rest/container.js\": 75871,\n\t\"./docker/rest/exec.js\": 61221,\n\t\"./docker/rest/image.js\": 15978,\n\t\"./docker/rest/network.js\": 1741,\n\t\"./docker/rest/node.js\": 73981,\n\t\"./docker/rest/plugin.js\": 27690,\n\t\"./docker/rest/response/handlers.js\": 40455,\n\t\"./docker/rest/response/image.js\": 16008,\n\t\"./docker/rest/secret.js\": 40186,\n\t\"./docker/rest/service.js\": 58109,\n\t\"./docker/rest/swarm.js\": 35445,\n\t\"./docker/rest/system.js\": 86045,\n\t\"./docker/rest/task.js\": 96929,\n\t\"./docker/rest/volume.js\": 82726,\n\t\"./docker/services/buildService.js\": 62678,\n\t\"./docker/services/configService.js\": 91218,\n\t\"./docker/services/containerService.js\": 8361,\n\t\"./docker/services/execService.js\": 10710,\n\t\"./docker/services/imageService.js\": 20793,\n\t\"./docker/services/networkService.js\": 55314,\n\t\"./docker/services/nodeService.js\": 62559,\n\t\"./docker/services/pluginService.js\": 34347,\n\t\"./docker/services/secretService.js\": 47488,\n\t\"./docker/services/serviceService.js\": 79289,\n\t\"./docker/services/swarmService.js\": 3304,\n\t\"./docker/services/systemService.js\": 92882,\n\t\"./docker/services/taskService.js\": 52933,\n\t\"./docker/services/volumeService.js\": 20089,\n\t\"./docker/views/configs/configsController.js\": 18914,\n\t\"./docker/views/configs/create/createConfigController.js\": 33695,\n\t\"./docker/views/configs/edit/configController.js\": 56530,\n\t\"./docker/views/containers/console/containerConsoleController.js\": 42077,\n\t\"./docker/views/containers/edit/containerController.js\": 31061,\n\t\"./docker/views/containers/inspect/containerInspectController.js\": 24127,\n\t\"./docker/views/containers/logs/containerLogsController.js\": 6983,\n\t\"./docker/views/containers/stats/containerStatsController.js\": 97076,\n\t\"./docker/views/dashboard/dashboardController.js\": 93961,\n\t\"./docker/views/docker-features-configuration/docker-features-configuration.controller.js\": 3482,\n\t\"./docker/views/docker-features-configuration/index.js\": 68369,\n\t\"./docker/views/events/eventsController.js\": 4278,\n\t\"./docker/views/host/host-browser-view/host-browser-view-controller.js\": 37531,\n\t\"./docker/views/host/host-browser-view/host-browser-view.js\": 11431,\n\t\"./docker/views/host/host-view-controller.js\": 28499,\n\t\"./docker/views/host/host-view.js\": 52042,\n\t\"./docker/views/images/build/buildImageController.js\": 98239,\n\t\"./docker/views/images/edit/imageController.js\": 64896,\n\t\"./docker/views/images/imagesController.js\": 96425,\n\t\"./docker/views/images/import/importImageController.js\": 12828,\n\t\"./docker/views/networks/create/createNetworkController.js\": 85253,\n\t\"./docker/views/networks/networksController.js\": 11820,\n\t\"./docker/views/nodes/node-browser/node-browser-controller.js\": 38979,\n\t\"./docker/views/nodes/node-browser/node-browser.js\": 98442,\n\t\"./docker/views/nodes/node-details/node-details-view-controller.js\": 81776,\n\t\"./docker/views/nodes/node-details/node-details-view.js\": 26480,\n\t\"./docker/views/registries/access/registryAccess.js\": 42407,\n\t\"./docker/views/registries/access/registryAccessController.js\": 78669,\n\t\"./docker/views/secrets/create/createSecretController.js\": 62994,\n\t\"./docker/views/secrets/edit/secretController.js\": 70683,\n\t\"./docker/views/secrets/secretsController.js\": 57672,\n\t\"./docker/views/services/create/createServiceController.js\": 53723,\n\t\"./docker/views/services/edit/serviceController.js\": 38745,\n\t\"./docker/views/services/logs/serviceLogsController.js\": 10094,\n\t\"./docker/views/services/servicesController.js\": 757,\n\t\"./docker/views/swarm/swarmController.js\": 58931,\n\t\"./docker/views/swarm/visualizer/swarmVisualizerController.js\": 58652,\n\t\"./docker/views/tasks/edit/taskController.js\": 80555,\n\t\"./docker/views/tasks/logs/taskLogsController.js\": 49572,\n\t\"./docker/views/volumes/browse/browseVolumeController.js\": 47335,\n\t\"./docker/views/volumes/create/createVolumeController.js\": 58716,\n\t\"./docker/views/volumes/edit/volumeController.js\": 82974,\n\t\"./docker/views/volumes/volumesController.js\": 99313,\n\t\"./edge/__module.js\": 35402,\n\t\"./edge/components/edge-job-form/edgeJobFormController.js\": 73760,\n\t\"./edge/components/edge-job-form/index.js\": 34678,\n\t\"./edge/components/edge-job-results-datatable/edgeJobResultsDatatableController.js\": 23702,\n\t\"./edge/components/edge-job-results-datatable/index.js\": 49076,\n\t\"./edge/components/edge-jobs-datatable/index.js\": 35885,\n\t\"./edge/components/edge-stack-status/edgeStackStatusController.js\": 56122,\n\t\"./edge/components/edge-stack-status/index.js\": 60559,\n\t\"./edge/components/group-form/groupFormController.js\": 482,\n\t\"./edge/components/group-form/index.js\": 42796,\n\t\"./edge/rest/edge-groups.js\": 15850,\n\t\"./edge/rest/edge-job-results.js\": 31413,\n\t\"./edge/rest/edge-jobs.js\": 98715,\n\t\"./edge/rest/edge-stacks.js\": 34264,\n\t\"./edge/services/edge-group.js\": 61629,\n\t\"./edge/services/edge-job.js\": 68817,\n\t\"./edge/services/edge-stack.js\": 59571,\n\t\"./edge/views/edge-groups/createEdgeGroupView/createEdgeGroupViewController.js\": 53138,\n\t\"./edge/views/edge-groups/createEdgeGroupView/index.js\": 31089,\n\t\"./edge/views/edge-groups/editEdgeGroupView/editEdgeGroupViewController.js\": 49542,\n\t\"./edge/views/edge-groups/editEdgeGroupView/index.js\": 77505,\n\t\"./edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js\": 11922,\n\t\"./edge/views/edge-jobs/createEdgeJobView/index.js\": 86642,\n\t\"./edge/views/edge-jobs/edgeJob/edgeJobController.js\": 13385,\n\t\"./edge/views/edge-jobs/edgeJob/index.js\": 94650,\n\t\"./edge/views/edge-jobs/edgeJobsView/edgeJobsViewController.js\": 82106,\n\t\"./edge/views/edge-jobs/edgeJobsView/index.js\": 51751,\n\t\"./edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.controller.js\": 58094,\n\t\"./edge/views/edge-stacks/createEdgeStackView/create-edge-stack-view.js\": 53675,\n\t\"./edge/views/edge-stacks/createEdgeStackView/docker-compose-form/docker-compose-form.controller.js\": 94244,\n\t\"./edge/views/edge-stacks/createEdgeStackView/docker-compose-form/index.js\": 6346,\n\t\"./edge/views/edge-stacks/createEdgeStackView/index.js\": 63701,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-deploy-description/index.js\": 73448,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/index.js\": 27055,\n\t\"./edge/views/edge-stacks/createEdgeStackView/kube-manifest-form/kube-manifest-form.controller.js\": 64324,\n\t\"./edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js\": 50649,\n\t\"./edge/views/edge-stacks/editEdgeStackView/index.js\": 40755,\n\t\"./edge/views/edge-stacks/index.js\": 24810,\n\t\"./index.js\": 68826,\n\t\"./kubernetes/__module.js\": 39077,\n\t\"./kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.controller.js\": 91277,\n\t\"./kubernetes/components/datatables/applications-datatable-details/applications-datatable-details.js\": 5149,\n\t\"./kubernetes/components/datatables/applications-datatable/applicationsDatatable.js\": 30021,\n\t\"./kubernetes/components/datatables/applications-datatable/applicationsDatatableController.js\": 36915,\n\t\"./kubernetes/components/datatables/configurations-datatable/configurationsDatatableController.js\": 54709,\n\t\"./kubernetes/components/datatables/events-datatable/eventsDatatable.js\": 32068,\n\t\"./kubernetes/components/datatables/integrated-applications-datatable/integratedApplicationsDatatable.js\": 73118,\n\t\"./kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatable.js\": 46190,\n\t\"./kubernetes/components/datatables/node-applications-datatable/nodeApplicationsDatatableController.js\": 51383,\n\t\"./kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatable.js\": 8265,\n\t\"./kubernetes/components/datatables/resource-pool-applications-datatable/resourcePoolApplicationsDatatableController.js\": 17687,\n\t\"./kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatable.js\": 58881,\n\t\"./kubernetes/components/datatables/resource-pools-datatable/resourcePoolsDatatableController.js\": 14542,\n\t\"./kubernetes/components/datatables/volumes-datatable/volumesDatatable.js\": 7387,\n\t\"./kubernetes/components/datatables/volumes-datatable/volumesDatatableController.js\": 66454,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list-item/helm-templates-list-item.js\": 99213,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.controller.js\": 98117,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates-list/helm-templates-list.js\": 93578,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates.controller.js\": 38761,\n\t\"./kubernetes/components/helm/helm-templates/helm-templates.js\": 41377,\n\t\"./kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.js\": 77349,\n\t\"./kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js\": 57232,\n\t\"./kubernetes/components/resource-reservation/resourceReservation.js\": 63047,\n\t\"./kubernetes/components/resource-reservation/resourceReservationController.js\": 81879,\n\t\"./kubernetes/components/view-loading/viewLoading.js\": 59834,\n\t\"./kubernetes/converters/application.js\": 64570,\n\t\"./kubernetes/converters/configMap.js\": 96171,\n\t\"./kubernetes/converters/configuration.js\": 21835,\n\t\"./kubernetes/converters/daemonSet.js\": 34489,\n\t\"./kubernetes/converters/deployment.js\": 80552,\n\t\"./kubernetes/converters/event.js\": 67922,\n\t\"./kubernetes/converters/namespace.js\": 20949,\n\t\"./kubernetes/converters/persistentVolumeClaim.js\": 83204,\n\t\"./kubernetes/converters/resourcePool.js\": 22374,\n\t\"./kubernetes/converters/resourceQuota.js\": 94055,\n\t\"./kubernetes/converters/secret.js\": 87641,\n\t\"./kubernetes/converters/service.js\": 55774,\n\t\"./kubernetes/converters/statefulSet.js\": 60746,\n\t\"./kubernetes/converters/storageClass.js\": 42553,\n\t\"./kubernetes/converters/volume.js\": 26212,\n\t\"./kubernetes/custom-templates/index.js\": 98487,\n\t\"./kubernetes/custom-templates/kube-custom-templates-view/index.js\": 87277,\n\t\"./kubernetes/custom-templates/kube-custom-templates-view/kube-custom-templates-view.controller.js\": 26960,\n\t\"./kubernetes/endpoint/converter.js\": 84352,\n\t\"./kubernetes/endpoint/models.js\": 92100,\n\t\"./kubernetes/endpoint/rest.js\": 89152,\n\t\"./kubernetes/endpoint/service.js\": 53405,\n\t\"./kubernetes/filters/applicationFilters.js\": 91951,\n\t\"./kubernetes/filters/configurationFilters.js\": 3662,\n\t\"./kubernetes/filters/eventFilters.js\": 59514,\n\t\"./kubernetes/filters/filters.js\": 69698,\n\t\"./kubernetes/helm/rest.js\": 53067,\n\t\"./kubernetes/helm/service.js\": 99193,\n\t\"./kubernetes/helpers/application/index.js\": 18724,\n\t\"./kubernetes/helpers/commonHelper.js\": 55302,\n\t\"./kubernetes/helpers/configMapHelper.js\": 3781,\n\t\"./kubernetes/helpers/configurationHelper.js\": 13195,\n\t\"./kubernetes/helpers/eventHelper.js\": 66965,\n\t\"./kubernetes/helpers/formValidationHelper.js\": 92530,\n\t\"./kubernetes/helpers/namespaceHelper.js\": 88454,\n\t\"./kubernetes/helpers/resourceQuotaHelper.js\": 28832,\n\t\"./kubernetes/helpers/resourceReservationHelper.js\": 46717,\n\t\"./kubernetes/helpers/serviceHelper.js\": 63094,\n\t\"./kubernetes/helpers/stackHelper.js\": 75511,\n\t\"./kubernetes/helpers/stackHelper.test.js\": 55561,\n\t\"./kubernetes/helpers/volumeHelper.js\": 24038,\n\t\"./kubernetes/horizontal-pod-auto-scaler/converter.js\": 67635,\n\t\"./kubernetes/horizontal-pod-auto-scaler/helper.js\": 5229,\n\t\"./kubernetes/horizontal-pod-auto-scaler/models.js\": 88400,\n\t\"./kubernetes/horizontal-pod-auto-scaler/payload.js\": 73242,\n\t\"./kubernetes/horizontal-pod-auto-scaler/rest.js\": 94711,\n\t\"./kubernetes/horizontal-pod-auto-scaler/service.js\": 30862,\n\t\"./kubernetes/ingress/constants.js\": 9273,\n\t\"./kubernetes/ingress/converter.js\": 90497,\n\t\"./kubernetes/ingress/helper.js\": 14854,\n\t\"./kubernetes/ingress/models.js\": 75914,\n\t\"./kubernetes/ingress/payloads.js\": 7971,\n\t\"./kubernetes/ingress/rest.js\": 51121,\n\t\"./kubernetes/ingress/service.js\": 85357,\n\t\"./kubernetes/models/application/formValues.js\": 13258,\n\t\"./kubernetes/models/application/models/constants.js\": 61360,\n\t\"./kubernetes/models/application/models/index.js\": 59182,\n\t\"./kubernetes/models/application/payloads.js\": 58962,\n\t\"./kubernetes/models/common/params.js\": 50963,\n\t\"./kubernetes/models/common/payloads.js\": 22255,\n\t\"./kubernetes/models/config-map/models.js\": 76970,\n\t\"./kubernetes/models/config-map/payloads.js\": 15481,\n\t\"./kubernetes/models/configuration/formvalues.js\": 53716,\n\t\"./kubernetes/models/configuration/models.js\": 96506,\n\t\"./kubernetes/models/daemon-set/models.js\": 67733,\n\t\"./kubernetes/models/daemon-set/payloads.js\": 70306,\n\t\"./kubernetes/models/deploy.js\": 26000,\n\t\"./kubernetes/models/deployment/models.js\": 78710,\n\t\"./kubernetes/models/deployment/payloads.js\": 46811,\n\t\"./kubernetes/models/event/models.js\": 7799,\n\t\"./kubernetes/models/history/models.js\": 60557,\n\t\"./kubernetes/models/namespace/models.js\": 7462,\n\t\"./kubernetes/models/namespace/payloads.js\": 48651,\n\t\"./kubernetes/models/nodes-limits/models.js\": 2150,\n\t\"./kubernetes/models/port/models.js\": 5846,\n\t\"./kubernetes/models/resource-pool/formValues.js\": 87160,\n\t\"./kubernetes/models/resource-pool/models.js\": 49706,\n\t\"./kubernetes/models/resource-quota/models.js\": 50042,\n\t\"./kubernetes/models/resource-quota/payloads.js\": 53986,\n\t\"./kubernetes/models/resource-reservation/models.js\": 18199,\n\t\"./kubernetes/models/resource-types/models.js\": 30151,\n\t\"./kubernetes/models/secret/models.js\": 60134,\n\t\"./kubernetes/models/secret/payloads.js\": 44602,\n\t\"./kubernetes/models/service/models.js\": 3586,\n\t\"./kubernetes/models/service/payloads.js\": 89836,\n\t\"./kubernetes/models/stack/models.js\": 52814,\n\t\"./kubernetes/models/stateful-set/models.js\": 51041,\n\t\"./kubernetes/models/stateful-set/payloads.js\": 68196,\n\t\"./kubernetes/models/storage-class/models.js\": 60943,\n\t\"./kubernetes/models/storage-class/payload.js\": 15886,\n\t\"./kubernetes/models/volume/models.js\": 15145,\n\t\"./kubernetes/models/volume/payloads.js\": 1003,\n\t\"./kubernetes/node/converter.js\": 48013,\n\t\"./kubernetes/node/filters.js\": 19577,\n\t\"./kubernetes/node/formValues.js\": 40900,\n\t\"./kubernetes/node/helper.js\": 4993,\n\t\"./kubernetes/node/models.js\": 83561,\n\t\"./kubernetes/node/payload.js\": 29296,\n\t\"./kubernetes/node/rest.js\": 60198,\n\t\"./kubernetes/node/service.js\": 73707,\n\t\"./kubernetes/pod/converter.js\": 88090,\n\t\"./kubernetes/pod/models/index.js\": 16426,\n\t\"./kubernetes/pod/payloads/affinities.js\": 28882,\n\t\"./kubernetes/pod/payloads/create.js\": 56254,\n\t\"./kubernetes/pod/service.js\": 383,\n\t\"./kubernetes/registries/index.js\": 21246,\n\t\"./kubernetes/registries/kube-registry-access-view/index.js\": 81652,\n\t\"./kubernetes/registries/kube-registry-access-view/kube-registry-access-view.controller.js\": 34517,\n\t\"./kubernetes/rest/configMap.js\": 98737,\n\t\"./kubernetes/rest/controllerRevision.js\": 59985,\n\t\"./kubernetes/rest/daemonSet.js\": 6706,\n\t\"./kubernetes/rest/deployment.js\": 39356,\n\t\"./kubernetes/rest/endpoint.js\": 45198,\n\t\"./kubernetes/rest/event.js\": 34232,\n\t\"./kubernetes/rest/health.js\": 77772,\n\t\"./kubernetes/rest/namespace.js\": 82527,\n\t\"./kubernetes/rest/nodesLimits.js\": 22602,\n\t\"./kubernetes/rest/persistentVolumeClaim.js\": 97550,\n\t\"./kubernetes/rest/pod.js\": 23359,\n\t\"./kubernetes/rest/portainer-namespace.js\": 18866,\n\t\"./kubernetes/rest/replicaSet.js\": 80562,\n\t\"./kubernetes/rest/resourceQuota.js\": 35381,\n\t\"./kubernetes/rest/response/transform.js\": 76549,\n\t\"./kubernetes/rest/secret.js\": 47870,\n\t\"./kubernetes/rest/service.js\": 5132,\n\t\"./kubernetes/rest/serviceAccount.js\": 63675,\n\t\"./kubernetes/rest/statefulSet.js\": 1700,\n\t\"./kubernetes/rest/storage.js\": 6642,\n\t\"./kubernetes/services/applicationService.js\": 72686,\n\t\"./kubernetes/services/configMapService.js\": 89776,\n\t\"./kubernetes/services/configurationService.js\": 97128,\n\t\"./kubernetes/services/controllerRevisionService.js\": 44073,\n\t\"./kubernetes/services/daemonSetService.js\": 30703,\n\t\"./kubernetes/services/deploymentService.js\": 41968,\n\t\"./kubernetes/services/eventService.js\": 55654,\n\t\"./kubernetes/services/healthService.js\": 10931,\n\t\"./kubernetes/services/namespaceService.js\": 31894,\n\t\"./kubernetes/services/nodesLimitsService.js\": 97437,\n\t\"./kubernetes/services/persistentVolumeClaimService.js\": 33560,\n\t\"./kubernetes/services/resourcePoolService.js\": 41401,\n\t\"./kubernetes/services/resourceQuotaService.js\": 85419,\n\t\"./kubernetes/services/secretService.js\": 64507,\n\t\"./kubernetes/services/serviceService.js\": 95225,\n\t\"./kubernetes/services/stackService.js\": 24640,\n\t\"./kubernetes/services/statefulSetService.js\": 44050,\n\t\"./kubernetes/services/storageService.js\": 1777,\n\t\"./kubernetes/services/volumeService.js\": 72804,\n\t\"./kubernetes/store/namespace.js\": 44238,\n\t\"./kubernetes/views/applications/applications.js\": 58886,\n\t\"./kubernetes/views/applications/applicationsController.js\": 47191,\n\t\"./kubernetes/views/applications/create/createApplication.js\": 44522,\n\t\"./kubernetes/views/applications/create/createApplicationController.js\": 56506,\n\t\"./kubernetes/views/applications/helm/helm.controller.js\": 96398,\n\t\"./kubernetes/views/applications/helm/index.js\": 23051,\n\t\"./kubernetes/views/applications/logs/logs.js\": 7029,\n\t\"./kubernetes/views/applications/logs/logsController.js\": 72888,\n\t\"./kubernetes/views/applications/stats/stats.js\": 70483,\n\t\"./kubernetes/views/applications/stats/statsController.js\": 62581,\n\t\"./kubernetes/views/cluster/cluster.js\": 37553,\n\t\"./kubernetes/views/cluster/clusterController.js\": 30227,\n\t\"./kubernetes/views/cluster/node/node.js\": 78297,\n\t\"./kubernetes/views/cluster/node/nodeController.js\": 94455,\n\t\"./kubernetes/views/cluster/node/stats/stats.js\": 69780,\n\t\"./kubernetes/views/cluster/node/stats/statsController.js\": 26162,\n\t\"./kubernetes/views/configurations/configmap/create/createConfigMap.js\": 32116,\n\t\"./kubernetes/views/configurations/configmap/create/createConfigMapController.js\": 6444,\n\t\"./kubernetes/views/configurations/configmap/edit/configMap.js\": 19888,\n\t\"./kubernetes/views/configurations/configmap/edit/configMapController.js\": 70738,\n\t\"./kubernetes/views/configurations/configurationsController.js\": 42408,\n\t\"./kubernetes/views/configurations/secret/create/createSecret.js\": 40948,\n\t\"./kubernetes/views/configurations/secret/create/createSecretController.js\": 72225,\n\t\"./kubernetes/views/configurations/secret/edit/secret.js\": 23645,\n\t\"./kubernetes/views/configurations/secret/edit/secretController.js\": 14132,\n\t\"./kubernetes/views/configurations/validation.js\": 56167,\n\t\"./kubernetes/views/deploy/deploy.js\": 78076,\n\t\"./kubernetes/views/deploy/deployController.js\": 8155,\n\t\"./kubernetes/views/resource-pools/access/resourcePoolAccess.js\": 3625,\n\t\"./kubernetes/views/resource-pools/access/resourcePoolAccessController.js\": 65291,\n\t\"./kubernetes/views/resource-pools/components/storage-class-switch/index.js\": 38444,\n\t\"./kubernetes/views/resource-pools/components/storage-class-switch/storage-class-switch.controller.js\": 57451,\n\t\"./kubernetes/views/resource-pools/create/createResourcePoolController.js\": 59553,\n\t\"./kubernetes/views/resource-pools/edit/components/ingresses-datatable/controller.js\": 19046,\n\t\"./kubernetes/views/resource-pools/edit/components/ingresses-datatable/index.js\": 96653,\n\t\"./kubernetes/views/resource-pools/edit/resourcePool.js\": 25851,\n\t\"./kubernetes/views/resource-pools/edit/resourcePoolController.js\": 98772,\n\t\"./kubernetes/views/resource-pools/resourcePools.js\": 86414,\n\t\"./kubernetes/views/resource-pools/resourcePoolsController.js\": 16699,\n\t\"./kubernetes/views/security-constraint/constraintController.js\": 68524,\n\t\"./kubernetes/views/stacks/logs/logs.js\": 60946,\n\t\"./kubernetes/views/stacks/logs/logsController.js\": 66000,\n\t\"./kubernetes/views/summary/resources/applicationResources.js\": 55208,\n\t\"./kubernetes/views/summary/resources/configurationResources.js\": 63476,\n\t\"./kubernetes/views/summary/resources/helpers.js\": 13919,\n\t\"./kubernetes/views/summary/resources/namespaceResources.js\": 15754,\n\t\"./kubernetes/views/summary/summary.js\": 28812,\n\t\"./kubernetes/views/summary/summaryController.js\": 56936,\n\t\"./kubernetes/views/volumes/components/volumes-storages-datatable/controller.js\": 7845,\n\t\"./kubernetes/views/volumes/components/volumes-storages-datatable/index.js\": 88453,\n\t\"./kubernetes/views/volumes/edit/volume.js\": 66730,\n\t\"./kubernetes/views/volumes/edit/volumeController.js\": 527,\n\t\"./kubernetes/views/volumes/volumes.js\": 56094,\n\t\"./kubernetes/views/volumes/volumesController.js\": 20451,\n\t\"./matomo-setup.js\": 77113,\n\t\"./portainer/__module.js\": 72221,\n\t\"./portainer/components/InformationPanel/InformationPanelAngular.js\": 96475,\n\t\"./portainer/components/access-datatable/accessDatatable.js\": 73623,\n\t\"./portainer/components/access-datatable/accessDatatableController.js\": 14984,\n\t\"./portainer/components/accessControlForm/por-access-control-form.js\": 56996,\n\t\"./portainer/components/accessControlForm/porAccessControlFormController.js\": 29761,\n\t\"./portainer/components/accessControlForm/porAccessControlFormModel.js\": 48228,\n\t\"./portainer/components/accessManagement/index.js\": 60251,\n\t\"./portainer/components/accessManagement/por-access-management.js\": 43697,\n\t\"./portainer/components/accessManagement/porAccessManagementController.js\": 91660,\n\t\"./portainer/components/autofocus.js\": 35882,\n\t\"./portainer/components/buttonSpinner.js\": 77830,\n\t\"./portainer/components/code-editor/code-editor.controller.js\": 11505,\n\t\"./portainer/components/code-editor/code-editor.js\": 47076,\n\t\"./portainer/components/code-editor/codeEditorController.js\": 42276,\n\t\"./portainer/components/copy-button/copy-button.controller.js\": 31145,\n\t\"./portainer/components/copy-button/copy-button.js\": 40931,\n\t\"./portainer/components/custom-template-selector/custom-template-selector.controller.js\": 15793,\n\t\"./portainer/components/custom-template-selector/index.js\": 3992,\n\t\"./portainer/components/datatables/access-tokens-datatable/access-tokens-datatable.controller.js\": 40991,\n\t\"./portainer/components/datatables/access-tokens-datatable/index.js\": 7602,\n\t\"./portainer/components/datatables/datatable-columns-visibility/datatable-columns-visibility.controller.js\": 65372,\n\t\"./portainer/components/datatables/datatable-columns-visibility/index.js\": 83812,\n\t\"./portainer/components/datatables/filter/datatable-filter.controller.js\": 14979,\n\t\"./portainer/components/datatables/filter/index.js\": 4955,\n\t\"./portainer/components/datatables/genericDatatableController.js\": 65307,\n\t\"./portainer/components/datatables/groups-datatable/groupsDatatable.js\": 54933,\n\t\"./portainer/components/datatables/index.js\": 4691,\n\t\"./portainer/components/datatables/pagination/index.js\": 75936,\n\t\"./portainer/components/datatables/registries-datatable/registriesDatatable.js\": 56988,\n\t\"./portainer/components/datatables/registries-datatable/registriesDatatableController.js\": 41069,\n\t\"./portainer/components/datatables/strings-datatable/index.js\": 52540,\n\t\"./portainer/components/datatables/tags-datatable/tagsDatatable.js\": 434,\n\t\"./portainer/components/datatables/titlebar/index.js\": 92754,\n\t\"./portainer/components/datatables/users-datatable/usersDatatable.js\": 25416,\n\t\"./portainer/components/datatables/users-datatable/usersDatatableController.js\": 36636,\n\t\"./portainer/components/demo-feature-indicator/demo-feature-indicator.controller.js\": 31032,\n\t\"./portainer/components/demo-feature-indicator/index.js\": 49345,\n\t\"./portainer/components/endpointSecurity/por-endpoint-security.js\": 73593,\n\t\"./portainer/components/endpointSecurity/porEndpointSecurityController.js\": 33165,\n\t\"./portainer/components/endpointSecurity/porEndpointSecurityModel.js\": 41104,\n\t\"./portainer/components/focusIf.js\": 10726,\n\t\"./portainer/components/form-components/file-upload-form/index.js\": 36507,\n\t\"./portainer/components/form-components/index.js\": 35879,\n\t\"./portainer/components/form-components/web-editor-form/index.js\": 90518,\n\t\"./portainer/components/form-components/web-editor-form/web-editor-form.controller.js\": 55821,\n\t\"./portainer/components/forms/group-form/group-form.js\": 31579,\n\t\"./portainer/components/forms/group-form/groupFormController.js\": 77593,\n\t\"./portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.controller.js\": 18136,\n\t\"./portainer/components/forms/kubernetes-redeploy-app-git-form/kubernetes-redeploy-app-git-form.js\": 49982,\n\t\"./portainer/components/forms/registry-form-aws-ecr/registry-form-ecr.js\": 71694,\n\t\"./portainer/components/forms/registry-form-azure/registry-form-azure.js\": 29407,\n\t\"./portainer/components/forms/registry-form-custom/registry-form-custom.js\": 39860,\n\t\"./portainer/components/forms/registry-form-dockerhub/registry-form-dockerhub.js\": 31814,\n\t\"./portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatable.js\": 28940,\n\t\"./portainer/components/forms/registry-form-gitlab/gitlab-projects-datatable/gitlabProjectsDatatableController.js\": 23316,\n\t\"./portainer/components/forms/registry-form-gitlab/registry-form-gitlab.js\": 96583,\n\t\"./portainer/components/forms/registry-form-proget/registry-form-proget.js\": 94563,\n\t\"./portainer/components/forms/registry-form-quay/registry-form-quay.js\": 77445,\n\t\"./portainer/components/forms/stack-from-template-form/index.js\": 83262,\n\t\"./portainer/components/forms/stack-redeploy-git-form/index.js\": 13804,\n\t\"./portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.controller.js\": 99674,\n\t\"./portainer/components/index.js\": 67636,\n\t\"./portainer/components/intervalFormat.js\": 80762,\n\t\"./portainer/components/onEnterKey.js\": 11887,\n\t\"./portainer/components/option-panel/index.js\": 25899,\n\t\"./portainer/components/option-panel/option-panel.controller.js\": 11145,\n\t\"./portainer/components/product-list/product-item/product-item.js\": 36229,\n\t\"./portainer/components/product-list/product-list.js\": 6508,\n\t\"./portainer/components/registry-details/index.js\": 63786,\n\t\"./portainer/components/sensitive-details/sensitive-details.js\": 90586,\n\t\"./portainer/components/show-hide/show-hide.js\": 93960,\n\t\"./portainer/components/slider/slider.js\": 89732,\n\t\"./portainer/components/slider/sliderController.js\": 89463,\n\t\"./portainer/components/stack-duplication-form/stack-duplication-form-controller.js\": 23686,\n\t\"./portainer/components/stack-duplication-form/stack-duplication-form.js\": 45781,\n\t\"./portainer/components/status-indicator/index.js\": 6963,\n\t\"./portainer/components/template-widget.js\": 12556,\n\t\"./portainer/components/theme/theme-settings.controller.js\": 91181,\n\t\"./portainer/components/theme/theme-settings.js\": 59087,\n\t\"./portainer/environments/azure-endpoint-config/azure-endpoint-config.js\": 65088,\n\t\"./portainer/filters/filters.js\": 54958,\n\t\"./portainer/filters/index.js\": 50968,\n\t\"./portainer/helpers/endpointHelper.js\": 36954,\n\t\"./portainer/helpers/formHelper.js\": 70782,\n\t\"./portainer/helpers/genericHelper.js\": 90331,\n\t\"./portainer/helpers/networkHelper.js\": 53586,\n\t\"./portainer/helpers/pathHelper.js\": 24000,\n\t\"./portainer/helpers/resourceControlHelper.js\": 61018,\n\t\"./portainer/helpers/stackHelper.js\": 66891,\n\t\"./portainer/helpers/tagHelper.js\": 89170,\n\t\"./portainer/helpers/templateHelper.js\": 87913,\n\t\"./portainer/helpers/urlHelper.js\": 14103,\n\t\"./portainer/models/access.js\": 35489,\n\t\"./portainer/models/dockerhub.js\": 82337,\n\t\"./portainer/models/endpoint/formValues.js\": 62642,\n\t\"./portainer/models/endpoint/models.js\": 50975,\n\t\"./portainer/models/gitlabRegistry.js\": 73274,\n\t\"./portainer/models/group.js\": 3788,\n\t\"./portainer/models/registry.js\": 11337,\n\t\"./portainer/models/registryRepository.js\": 49938,\n\t\"./portainer/models/registryTypes.js\": 16887,\n\t\"./portainer/models/resourceControl/resourceControlCreatePayload.js\": 31060,\n\t\"./portainer/models/resourceControl/resourceControlOwnershipParameters.js\": 75679,\n\t\"./portainer/models/schedule.js\": 9167,\n\t\"./portainer/models/settings.js\": 95111,\n\t\"./portainer/models/status.js\": 44257,\n\t\"./portainer/models/tag.js\": 9557,\n\t\"./portainer/models/team.js\": 18486,\n\t\"./portainer/models/teamMembership.js\": 84236,\n\t\"./portainer/models/user.js\": 69617,\n\t\"./portainer/models/webhook.js\": 29843,\n\t\"./portainer/oauth/__module.js\": 70847,\n\t\"./portainer/oauth/components/oauth-providers-selector/index.js\": 99387,\n\t\"./portainer/oauth/components/oauth-providers-selector/oauth-provider-selector.controller.js\": 25148,\n\t\"./portainer/oauth/components/oauth-settings/index.js\": 85122,\n\t\"./portainer/oauth/components/oauth-settings/oauth-settings.controller.js\": 51362,\n\t\"./portainer/oauth/components/oauth-settings/providers.js\": 28121,\n\t\"./portainer/oauth/services/rest/oauth.js\": 19870,\n\t\"./portainer/rbac/components/access-viewer/access-viewer-datatable/index.js\": 40912,\n\t\"./portainer/rbac/components/access-viewer/access-viewer.controller.js\": 10992,\n\t\"./portainer/rbac/components/access-viewer/index.js\": 71450,\n\t\"./portainer/rbac/components/roles-datatable/index.js\": 22839,\n\t\"./portainer/rbac/components/roles-datatable/roles-datatable.controller.js\": 76033,\n\t\"./portainer/rbac/index.js\": 12966,\n\t\"./portainer/rbac/models/access.js\": 5681,\n\t\"./portainer/rbac/models/role.js\": 48315,\n\t\"./portainer/rbac/services/role.rest.js\": 94881,\n\t\"./portainer/rbac/services/role.service.js\": 4220,\n\t\"./portainer/rbac/views/roles/index.js\": 17093,\n\t\"./portainer/rbac/views/roles/roles.controller.js\": 87146,\n\t\"./portainer/registry-management/index.js\": 88339,\n\t\"./portainer/registry-management/views/create/createRegistry.js\": 93976,\n\t\"./portainer/registry-management/views/create/createRegistryController.js\": 97992,\n\t\"./portainer/registry-management/views/edit/registry.js\": 25500,\n\t\"./portainer/registry-management/views/edit/registryController.js\": 49324,\n\t\"./portainer/registry-management/views/list/registriesController.js\": 25705,\n\t\"./portainer/rest/auth.js\": 71170,\n\t\"./portainer/rest/backup.js\": 86194,\n\t\"./portainer/rest/customTemplate.js\": 94953,\n\t\"./portainer/rest/endpoint.js\": 93934,\n\t\"./portainer/rest/gitlab.js\": 28435,\n\t\"./portainer/rest/group.js\": 14394,\n\t\"./portainer/rest/registry.js\": 37573,\n\t\"./portainer/rest/resourceControl.js\": 62779,\n\t\"./portainer/rest/settings.js\": 63662,\n\t\"./portainer/rest/ssl.js\": 11196,\n\t\"./portainer/rest/stack.js\": 57296,\n\t\"./portainer/rest/support.js\": 56040,\n\t\"./portainer/rest/tag.js\": 28055,\n\t\"./portainer/rest/team.js\": 66488,\n\t\"./portainer/rest/teamMembership.js\": 75931,\n\t\"./portainer/rest/template.js\": 25543,\n\t\"./portainer/rest/transform/getEndpointsTotalCount.js\": 21837,\n\t\"./portainer/rest/transform/gitlabResponseGetLink.js\": 94180,\n\t\"./portainer/rest/user.js\": 14363,\n\t\"./portainer/rest/webhooks.js\": 81515,\n\t\"./portainer/services/allSettled.js\": 39435,\n\t\"./portainer/services/api/accessService.js\": 91261,\n\t\"./portainer/services/api/backupService.js\": 2646,\n\t\"./portainer/services/api/customTemplate.js\": 36570,\n\t\"./portainer/services/api/dockerhubService.js\": 34431,\n\t\"./portainer/services/api/endpointService.js\": 96133,\n\t\"./portainer/services/api/groupService.js\": 9959,\n\t\"./portainer/services/api/registryService.js\": 71247,\n\t\"./portainer/services/api/resourceControlService.js\": 19355,\n\t\"./portainer/services/api/settingsService.js\": 40630,\n\t\"./portainer/services/api/sslService.js\": 69704,\n\t\"./portainer/services/api/stackService.js\": 36958,\n\t\"./portainer/services/api/statusService.js\": 1265,\n\t\"./portainer/services/api/supportService.js\": 45989,\n\t\"./portainer/services/api/tagService.js\": 82679,\n\t\"./portainer/services/api/teamMembershipService.js\": 5872,\n\t\"./portainer/services/api/teamService.js\": 92915,\n\t\"./portainer/services/api/templateService.js\": 9511,\n\t\"./portainer/services/api/userService.js\": 84672,\n\t\"./portainer/services/api/webhookService.js\": 23846,\n\t\"./portainer/services/async.js\": 40677,\n\t\"./portainer/services/authentication.js\": 1848,\n\t\"./portainer/services/chartService.js\": 93408,\n\t\"./portainer/services/datatableService.js\": 41507,\n\t\"./portainer/services/fileUpload.js\": 99670,\n\t\"./portainer/services/formValidator.js\": 25128,\n\t\"./portainer/services/localStorage.js\": 76793,\n\t\"./portainer/services/nameValidator.js\": 53058,\n\t\"./portainer/services/pagination.js\": 29686,\n\t\"./portainer/services/registryGitlabService.js\": 29128,\n\t\"./portainer/services/registryModalService.js\": 5513,\n\t\"./portainer/services/session-storage.js\": 53125,\n\t\"./portainer/services/stateManager.js\": 53518,\n\t\"./portainer/services/themeManager.js\": 60997,\n\t\"./portainer/settings/authentication/auth-method-constants.js\": 81960,\n\t\"./portainer/settings/authentication/auth-type-constants.js\": 64501,\n\t\"./portainer/settings/authentication/auto-user-provision-toggle/index.js\": 92367,\n\t\"./portainer/settings/authentication/index.js\": 98108,\n\t\"./portainer/settings/authentication/ldap/ad-settings/ad-settings.controller.js\": 34821,\n\t\"./portainer/settings/authentication/ldap/ad-settings/index.js\": 83460,\n\t\"./portainer/settings/authentication/ldap/index.js\": 64057,\n\t\"./portainer/settings/authentication/ldap/ldap-connectivity-check/index.js\": 7729,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-admin-group/index.js\": 75022,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-admin-group/ldap-custom-admin-group.controller.js\": 70629,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-group-search/index.js\": 5760,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-group-search/ldap-custom-group-search.controller.js\": 3709,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-user-search/index.js\": 33606,\n\t\"./portainer/settings/authentication/ldap/ldap-custom-user-search/ldap-custom-user-search.controller.js\": 85870,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search-item/index.js\": 58735,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search-item/ldap-group-search-item.controller.js\": 52265,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search/index.js\": 56050,\n\t\"./portainer/settings/authentication/ldap/ldap-group-search/ldap-group-search.controller.js\": 34244,\n\t\"./portainer/settings/authentication/ldap/ldap-groups-datatable/index.js\": 37844,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-custom/index.js\": 89554,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-custom/ldap-settings-custom.controller.js\": 87592,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-dn-builder/index.js\": 93492,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-dn-builder/ldap-settings-dn-builder.controller.js\": 20819,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/index.js\": 2797,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-group-dn-builder/ldap-settings-group-dn-builder.controller.js\": 95086,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-openldap/index.js\": 66076,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-openldap/ldap-settings-openldap.controller.js\": 12900,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-security/index.js\": 69183,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-test-login/index.js\": 47807,\n\t\"./portainer/settings/authentication/ldap/ldap-settings-test-login/ldap-settings-test-login.controller.js\": 5376,\n\t\"./portainer/settings/authentication/ldap/ldap-settings.model.js\": 68006,\n\t\"./portainer/settings/authentication/ldap/ldap-settings/index.js\": 14454,\n\t\"./portainer/settings/authentication/ldap/ldap-settings/ldap-settings.controller.js\": 42970,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search-item/index.js\": 71465,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search-item/ldap-user-search-item.controller.js\": 97943,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search/index.js\": 96596,\n\t\"./portainer/settings/authentication/ldap/ldap-user-search/ldap-user-search.controller.js\": 56478,\n\t\"./portainer/settings/authentication/ldap/ldap-users-datatable/index.js\": 66199,\n\t\"./portainer/settings/authentication/ldap/ldap.rest.js\": 40818,\n\t\"./portainer/settings/authentication/ldap/ldap.service.js\": 58677,\n\t\"./portainer/settings/authentication/save-auth-settings-button/index.js\": 97069,\n\t\"./portainer/settings/general/index.js\": 86697,\n\t\"./portainer/settings/index.js\": 54875,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-datatable/activity-logs-datatable.controller.js\": 36759,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-datatable/index.js\": 18919,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-view.controller.js\": 45949,\n\t\"./portainer/user-activity/activity-logs-view/activity-logs-view.js\": 65147,\n\t\"./portainer/user-activity/activity-logs-view/index.js\": 92020,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-datatable/auth-logs-datatable.controller.js\": 45727,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-datatable/index.js\": 90370,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-view.controller.js\": 63963,\n\t\"./portainer/user-activity/auth-logs-view/auth-logs-view.js\": 51936,\n\t\"./portainer/user-activity/auth-logs-view/index.js\": 42384,\n\t\"./portainer/user-activity/index.js\": 10381,\n\t\"./portainer/views/account/accountController.js\": 42523,\n\t\"./portainer/views/auth/authController.js\": 6049,\n\t\"./portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js\": 44243,\n\t\"./portainer/views/custom-templates/custom-templates-view/index.js\": 94439,\n\t\"./portainer/views/devices/import/importDeviceController.js\": 23893,\n\t\"./portainer/views/devices/profiles/add/addProfileController.js\": 61483,\n\t\"./portainer/views/devices/profiles/add/index.js\": 30518,\n\t\"./portainer/views/devices/profiles/edit/editProfileController.js\": 75238,\n\t\"./portainer/views/devices/profiles/edit/index.js\": 50100,\n\t\"./portainer/views/endpoint-registries/registries.js\": 27921,\n\t\"./portainer/views/endpoint-registries/registriesController.js\": 3587,\n\t\"./portainer/views/endpoints/access/endpointAccessController.js\": 88740,\n\t\"./portainer/views/endpoints/edit/endpointController.js\": 54141,\n\t\"./portainer/views/endpoints/helpers.js\": 71329,\n\t\"./portainer/views/endpoints/kvm/endpointKVMController.js\": 31995,\n\t\"./portainer/views/groups/access/groupAccessController.js\": 23172,\n\t\"./portainer/views/groups/create/createGroupController.js\": 86770,\n\t\"./portainer/views/groups/edit/groupController.js\": 2226,\n\t\"./portainer/views/groups/groupsController.js\": 6347,\n\t\"./portainer/views/init/admin/initAdminController.js\": 15430,\n\t\"./portainer/views/logout/logoutController.js\": 47263,\n\t\"./portainer/views/main/mainController.js\": 21026,\n\t\"./portainer/views/settings/authentication/settingsAuthenticationController.js\": 41295,\n\t\"./portainer/views/settings/edge-compute/index.js\": 45711,\n\t\"./portainer/views/settings/edge-compute/settingsEdgeComputeController.js\": 27110,\n\t\"./portainer/views/stacks/create/createStackController.js\": 30322,\n\t\"./portainer/views/stacks/edit/stackController.js\": 60582,\n\t\"./portainer/views/stacks/stacksController.js\": 95637,\n\t\"./portainer/views/tags/tagsController.js\": 86378,\n\t\"./portainer/views/templates/templatesController.js\": 51750,\n\t\"./portainer/views/users/edit/userController.js\": 56899,\n\t\"./portainer/views/users/usersController.js\": 49531,\n\t\"./react/docker/components/ImageStatus/index.js\": 60355,\n\t\"./vendors.js\": 4185\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 19338;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGit = function SvgGit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E15B39\",\n d: \"M27.363 17.908 15.537 5.66a2.121 2.121 0 0 0-3.075 0l-2.364 2.45 3.212 3.326c.255-.109.535-.17.829-.17 1.202 0 2.177 1.01 2.177 2.255 0 .304-.058.594-.164.859l3.075 3.185c.256-.11.535-.17.83-.17 1.202 0 2.176 1.01 2.176 2.255 0 1.245-.974 2.255-2.177 2.255-1.202 0-2.177-1.01-2.177-2.255 0-.304.058-.594.164-.859l-3.067-3.177v8.025a2.258 2.258 0 0 1 1.34 2.082c0 1.246-.975 2.255-2.178 2.255-1.202 0-2.177-1.01-2.177-2.255 0-.938.553-1.742 1.34-2.082v-8.035a2.258 2.258 0 0 1-1.34-2.083c0-.304.059-.594.164-.858L8.913 9.336.637 17.908c-.85.88-.85 2.304 0 3.184L12.463 33.34c.85.88 2.225.88 3.074 0l11.826-12.248c.85-.88.85-2.305 0-3.184Z\"\n })));\n};\nexport default SvgGit;","var _rect, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpToDate = function SvgIconUpToDate(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 15 14\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n x: 0.5,\n fill: \"#039855\",\n rx: 7\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0BA5EC\",\n fillRule: \"evenodd\",\n d: \"M10.473 4.31 6.296 8.343 5.188 7.158a.606.606 0 0 0-.758-.041.535.535 0 0 0-.152.706L5.59 9.958c.129.198.35.32.601.32.24 0 .467-.122.595-.32.21-.275 4.218-5.052 4.218-5.052.525-.537-.111-1.01-.531-.601v.006Z\",\n clipRule: \"evenodd\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M11.14 4.305c-.128-.18-.432-.229-.667 0v.006l-.083.08-4.094 3.95-1.108-1.183a.606.606 0 0 0-.758-.041.535.535 0 0 0-.152.706L5.59 9.958a.701.701 0 0 0 .601.32.716.716 0 0 0 .608-.337c.059-.074.233-.285.48-.582.791-.952 2.327-2.786 3.158-3.777l.567-.676a1.215 1.215 0 0 0 .026-.028c.202-.222.207-.43.114-.567l-.004-.006Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgIconUpToDate;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpdatesAvailable = function SvgIconUpdatesAvailable(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 15 14\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#icon_updates-available_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n x: 0.5,\n fill: \"#F79009\",\n rx: 7\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M4.817 4.559a.75.75 0 0 1 1.06 0l1.681 1.68 1.68-1.68a.75.75 0 1 1 1.06 1.06L8.619 7.3l1.68 1.68a.75.75 0 1 1-1.06 1.061l-1.68-1.68-1.68 1.68a.75.75 0 1 1-1.06-1.06l1.68-1.68-1.68-1.68a.75.75 0 0 1 0-1.061Z\",\n clipRule: \"evenodd\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"icon_updates-available_svg__a\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n x: 0.5,\n fill: \"#fff\",\n rx: 7\n })))));\n};\nexport default SvgIconUpdatesAvailable;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgIconUpdatesUnknown = function SvgIconUpdatesUnknown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 15 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#98A2B3\",\n fillRule: \"evenodd\",\n d: \"M2.895 7a1 1 0 0 1 1-1h7.21a1 1 0 1 1 0 2h-7.21a1 1 0 0 1-1-1Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgIconUpdatesUnknown;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKube = function SvgKube(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 2v10m0 0v10m0-10 7.071-7.071M12 12l-7.071 7.071M12 12h10m-10 0H2m10 0 7.071 7.071M12 12 4.929 4.929m15.404 7.07a8.333 8.333 0 1 1-16.666 0 8.333 8.333 0 0 1 16.666 0Z\"\n })));\n};\nexport default SvgKube;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLaptopCode = function SvgLaptopCode(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 25 25\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M21.089 16.592v-8.8c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874c-.428-.218-.988-.218-2.108-.218h-11.6c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874c-.218.428-.218.988-.218 2.108v8.8m1.666 4h14.667c.62 0 .93 0 1.184-.068a2 2 0 0 0 1.414-1.415c.069-.254.069-.564.069-1.184 0-.31 0-.465-.034-.592a1 1 0 0 0-.708-.707c-.127-.034-.282-.034-.592-.034H3.422c-.31 0-.465 0-.592.034a1 1 0 0 0-.707.707c-.034.127-.034.282-.034.592 0 .62 0 .93.068 1.184a2 2 0 0 0 1.414 1.415c.254.068.564.068 1.184.068Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"m14.089 13.582 2.5-2.5-2.5-2.5m-4 0-2.5 2.5 2.5 2.5\"\n })));\n};\nexport default SvgLaptopCode;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLdap = function SvgLdap(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 79 44\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CB2026\",\n d: \"m45.322 11.32 9.313 15.984 9.317 15.982H26.693l9.313-15.982 9.316-15.985ZM64.157 38.703H79l-9.316-15.985L60.37 6.737 52.95 19.473l6.213 10.666 4.994 8.564ZM31.93 29.558l-3.985-6.84L18.63 6.737 9.316 22.718 0 38.703H26.6l2.615-4.487 2.716-4.659ZM33.295 27.224l.468-.801L40.421 15 31.78.175l-7.123 12.223 5.869 10.07 2.77 4.756Z\"\n })));\n};\nexport default SvgLdap;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLinux = function SvgLinux(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 24 24\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.613 19.27c-.703-.29-1.004-.672-.976-1.243.031-.664-.348-1.152-.528-1.347.11-.414.426-1.844 0-3.09-.457-1.332-1.851-3.367-3.289-5.367-.59-.82-.617-1.715-.648-2.746-.031-.989-.067-2.106-.617-3.348C14.957.777 13.758 0 12.265 0c-.89 0-1.804.277-2.503.762-1.438.992-1.25 3.156-1.121 4.586.015.195.03.382.039.539.086 1.402.008 2.14-.09 2.367-.067.144-.383.562-.719 1.008-.348.457-.738.972-1.062 1.457-.387.582-.696 1.469-.997 2.328-.218.629-.43 1.223-.628 1.578a2.143 2.143 0 0 0-.211 1.613c-.145.102-.356.301-.532.676-.214.453-.648.7-1.55.875-.414.082-.7.258-.848.516-.219.379-.102.851.008 1.175.16.477.058.778-.121 1.325-.043.125-.09.27-.137.425-.074.25-.047.477.082.672.34.524 1.336.707 2.36.828.609.07 1.277.317 1.925.551.633.235 1.29.473 1.887.547.09.008.18.016.265.016.899 0 1.305-.598 1.434-.844a15.825 15.825 0 0 1 2.59-.305c1.144-.03 2.254.196 2.57.266.098.187.36.621.774.844.226.125.547.195.87.195.348 0 1.009-.082 1.532-.633.523-.555 1.828-1.258 2.777-1.773.215-.117.414-.223.586-.32.535-.297.828-.72.801-1.165-.02-.367-.266-.687-.633-.84Zm-11.84-.106c-.066-.469-.671-.934-1.37-1.473-.571-.441-1.22-.941-1.395-1.363-.371-.871-.078-2.406.426-3.195.253-.395.457-.992.656-1.574.21-.625.433-1.274.68-1.555.39-.445.753-1.305.816-1.984.367.351.934.793 1.46.793a.806.806 0 0 0 .235-.032c.36-.101.887-.406 1.399-.703.437-.254.98-.566 1.187-.598.348.504 2.387 5.012 2.594 6.457a6.878 6.878 0 0 1-.098 2.461 2.163 2.163 0 0 0-.242-.015c-.566 0-.719.308-.758.492-.097.48-.11 2.016-.11 2.363-.206.262-1.241 1.489-2.73 1.707-.609.09-1.175.133-1.683.133-.438 0-.715-.035-.832-.05l-.746-.856c.293-.145.59-.453.511-1.008Zm.95-14.117-.07.035c0-.05-.008-.105-.016-.156-.082-.469-.395-.813-.742-.813-.024 0-.051.004-.079.008-.207.035-.37.191-.457.41.079-.484.352-.84.676-.84.383 0 .703.512.703 1.122 0 .078-.004.152-.015.234Zm2.964.363c.036-.11.055-.23.055-.355 0-.555-.351-.985-.797-.985-.437 0-.793.442-.793.985 0 .035 0 .074.004.11a1.269 1.269 0 0 1-.066-.024 1.504 1.504 0 0 1-.078-.477c0-.66.422-1.195.941-1.195.52 0 .942.535.942 1.195 0 .277-.079.54-.207.746Zm-.382 1.285c-.008.032-.024.047-.2.14-.09.044-.199.103-.335.188l-.094.055c-.371.227-1.242.754-1.477.785-.16.02-.258-.043-.48-.195-.051-.031-.106-.07-.164-.106-.403-.265-.66-.554-.688-.667.13-.102.457-.356.621-.504.336-.317.676-.528.844-.528.012 0 .02.004.027.004.196.035.684.23 1.04.371.164.067.308.121.406.16.316.106.48.247.5.297Zm2.828 14.664c.18-.8.383-1.89.351-2.53-.007-.15-.023-.306-.035-.462-.023-.285-.058-.715-.023-.84.008-.004.015-.007.023-.007.004.367.082 1.097.668 1.355.176.074.375.113.594.113.586 0 1.238-.285 1.504-.554.16-.157.289-.348.383-.5.02.058.03.136.027.234-.035.543.227 1.262.727 1.527l.074.04c.18.093.652.34.66.46 0 0-.004.012-.031.035-.117.11-.535.325-.938.532-.719.363-1.531.781-1.894 1.164-.516.539-1.098.902-1.45.902a.361.361 0 0 1-.113-.015c-.383-.118-.695-.668-.527-1.454ZM3.14 19.316c-.04-.183-.07-.324-.036-.464.024-.102.532-.215.75-.262.305-.067.622-.133.829-.258.277-.172.43-.484.562-.758.098-.199.2-.406.316-.472a.066.066 0 0 1 .036-.008c.222 0 .691.465.96.886.067.106.192.317.34.56.438.733 1.036 1.733 1.348 2.07.281.304.738.882.625 1.382-.082.383-.52.7-.621.77a.728.728 0 0 1-.14.011c-.598 0-1.782-.5-2.419-.765l-.093-.04c-.356-.148-.938-.241-1.496-.335-.45-.07-1.059-.168-1.16-.258-.083-.094.011-.395.097-.656.059-.192.121-.387.156-.594a2.162 2.162 0 0 0-.054-.809Zm0 0\",\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"currentColor\",\n fillOpacity: 1\n }\n }));\n};\nexport default SvgLinux;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMemory = function SvgMemory(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M14.5 18.3v2.58m2.5-9.84v-3M5.5 18.3v2.58M10 18.3v2.58m0-2.58h5.2c1.68 0 4.658 0 5.3-.327a3 3 0 0 0 1.311-1.311c.243-.477.305-1.183.322-2.142M10 18.3H8.8c-1.68 0-4.52 0-5.162-.327a3 3 0 0 1-1.311-1.311c-.243-.477-.305-1.183-.321-2.142M19 18.3v2.58m-6.88-9.84v-3m-5.04 3v-3m-5.074 6.48C2 14.188 2 13.932 2 13.5V8.8c0-1.68 0-2.52.327-3.162a3 3 0 0 1 1.311-1.311C4.28 4 7.12 4 8.8 4h6.4c1.68 0 4.658 0 5.3.327a3 3 0 0 1 1.311 1.311c.327.642.327 1.482.327 3.162v4.7c0 .432 0 .688-.006 1.02m-20.126 0h20.127\"\n })));\n};\nexport default SvgMemory;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgRoute = function SvgRoute(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M11.5 5h.434c3.048 0 4.571 0 5.15.547a2 2 0 0 1 .586 1.845c-.156.781-1.4 1.66-3.888 3.42l-4.064 2.876c-2.488 1.76-3.732 2.639-3.888 3.42a2 2 0 0 0 .586 1.845c.579.547 2.102.547 5.15.547h.934M8 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm14 14a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n })));\n};\nexport default SvgRoute;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSubscription = function SvgSubscription(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 22 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.8,\n d: \"M20.864 8.083H1.697m8.625 8.625h7.475c1.074 0 1.61 0 2.02-.209.361-.183.654-.476.838-.837.21-.41.21-.947.21-2.02V6.358c0-1.073 0-1.61-.21-2.02a1.917 1.917 0 0 0-.837-.837c-.41-.21-.947-.21-2.02-.21h-1.726m-5.75 13.417 1.917 1.917m-1.917-1.917 1.917-1.916m-5.75 1.916H4.764c-1.073 0-1.61 0-2.02-.209a1.916 1.916 0 0 1-.838-.837c-.209-.41-.209-.947-.209-2.02V6.358c0-1.073 0-1.61.21-2.02.183-.36.476-.654.837-.837.41-.21.947-.21 2.02-.21h7.475m0 0-1.917 1.917m1.917-1.916-1.917-1.917\"\n })));\n};\nexport default SvgSubscription;","var _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAzure = function SvgAzure(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__a)\",\n d: \"M8.34 7.955h7.401L8.058 31.222a1.2 1.2 0 0 1-.43.595c-.2.147-.442.226-.689.226H1.18a1.16 1.16 0 0 1-.538-.133 1.191 1.191 0 0 1-.628-.893 1.233 1.233 0 0 1 .049-.564l7.16-21.677c.078-.24.228-.447.43-.594.2-.147.441-.226.688-.226v-.001Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0078D4\",\n d: \"M19.096 23.562H7.358a.536.536 0 0 0-.506.35.565.565 0 0 0 .135.61l7.543 7.194c.22.21.508.326.809.326h6.646l-2.89-8.482v.002Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__b)\",\n d: \"M8.34 7.955c-.25 0-.493.08-.695.23-.202.15-.351.363-.426.606L.07 30.435a1.224 1.224 0 0 0 .146 1.1c.11.157.254.287.422.375.168.089.354.135.543.134h5.91c.22-.04.425-.139.595-.287.17-.148.3-.34.373-.555l1.426-4.293 5.091 4.854c.213.18.481.28.758.282h6.622l-2.905-8.482-8.465.002 5.181-15.61H8.34Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__c)\",\n d: \"M17.794 8.775a1.205 1.205 0 0 0-.43-.594c-.2-.147-.44-.226-.687-.226h-8.25c.248 0 .487.08.688.226.2.147.35.355.43.594l7.159 21.68a1.222 1.222 0 0 1-.58 1.456c-.166.087-.35.133-.537.133h8.249a1.159 1.159 0 0 0 .957-.502 1.231 1.231 0 0 0 .16-1.088l-7.16-21.68Z\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__a\",\n x1: 11.038,\n x2: 3.044,\n y1: 9.741,\n y2: 32.844,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#114A8B\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0669BC\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__b\",\n x1: 13.438,\n x2: 11.652,\n y1: 20.556,\n y2: 21.147,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopOpacity: 0.3\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.07,\n stopOpacity: 0.2\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.32,\n stopOpacity: 0.1\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.62,\n stopOpacity: 0.05\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__c\",\n x1: 12.516,\n x2: 21.281,\n y1: 9.042,\n y2: 31.892,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#3CCBF4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#2892DF\"\n })))));\n};\nexport default SvgAzure;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDockerCompose = function SvgDockerCompose(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#docker-compose_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#B8C9DA\",\n d: \"M26.923 21.727c-2.571 0-2.82 2.047-2.82 2.047l1.671-.474s1.248-.65 2.347.574c1.198 1.248.55 3.37 0 4.17-.774 1.247-3.843 1.397-4.044 1.347-1.348-2.87-4.469-2.996-4.469-2.996l3.37-3.095s3.52-3.42 3.52-6.615c0-3.195-3.695-6.64-3.695-6.64s-1.523-1.198-1.523-2.22c0-1.723 3.47-2.197 5.417-3.22 1.947-1.023.45-3.844-.324-4.294-1.522-.649-2.371.525-2.371.525L22.354 4.98l-1.198.474s-.95-.05-1.723.924c-.774.973-.15 3.12-.15 3.12s-1.298-.673-3.494-.673c-7.189 0-7.838 5.99-7.838 7.04 0 1.047.574 3.144 1.398 4.143.823.998 2.645 3.095 2.645 4.417 0 2.097-3.295 3.37-4.992 3.37-2.321 0-3.22-1.423-3.22-2.396 0-1.398.924-2.921 1.473-3.944.549-1.023-.35-2.322-.35-2.322l-1.198.55-2.421-1.374s.03-2.178-.068-2.228c-.45.1-.98.78-.98 1.88 0 1.5 1.596 1.739 2.436 2.061 1.136.438 1.132 1.508.384 2.53-.748 1.024-1.298 3.246-1.298 4.344 0 2.196 2.846 3.22 4.767 3.22 2.97 0 4.992-1.548 4.992-1.548s.274 1.723.274 2.571c0 .849-.773 1.648-2.096 1.648s-2.371-.598-2.371-.598-2.696-1.748-3.82-1.748c-1.971 0-2.67 2.022-2.67 2.472 0 .45.324 1.472.598 1.847.275.375 1.698.95 2.073.849.374-.1.524-.924.45-1.198-.076-.275-1.323-1.048-1.323-1.423s.216-.7.89-.7c.673 0 1.46.593 2.682 1.742.89.837 3.164 1.844 4.59 1.778.948-.043 2.758-.477 3.145-1.971.221-.857-.1-3.37.124-2.72.225.648.765 1.809 2.357 2.873.548.365 3.103 1.067 4.706.472 1.998-.375 3.096-3.145 3.12-3.17 2.123 0 3.546-.8 5.018-1.573 1.473-.774 1.448-3.42 1.448-4.843 0-1.847-2.72-3.144-3.794-3.144l.003-.004Zm-13.18 8.488s-.499-.749-.499-1.548c0-.8.175-1.522 1.473-2.022-.026.026-1.182 1.133-.974 3.57Zm5.318 2.47c-1.947 0-3.02-1.922-3.02-3.17 0-1.247.649-2.096.649-2.096s.03.632.03.757c0 .124.341 1.24 1.115 2.039.774.799 3.896.973 3.822 1.048-.5.998-1.923 1.423-2.596 1.423Zm2.597-3.862a4.908 4.908 0 0 1-2.13-1.292c1.498-.093 2.228 1.33 2.13 1.292Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#99B3D1\",\n d: \"M11.512 13.05c.876-.953 1.107-2.166.516-2.71-.298-.274-.75-.323-1.237-.184-1.135.804-1.831 1.85-2.257 2.835.01.322.11.605.323.8.59.543 1.78.212 2.656-.74l-.001-.002ZM14.802 11.476c.67-.386 1.015-1.043.77-1.466-.244-.424-.986-.454-1.656-.067-.67.386-1.014 1.043-.77 1.467.244.423.986.453 1.656.066ZM8.914 34.851c.24-.44-.133-1.103-.831-1.48s-1.455-.324-1.694.116c-.095.174-.09.383-.012.595.427.412 1.206.806 2.012 1.11.235-.047.426-.158.524-.34h.001ZM15.145 27.415c-.326-.193-.763-.036-1.102.348a6.483 6.483 0 0 0-.353 1.824c.06.103.136.19.233.247.424.251 1.04-.088 1.377-.755.337-.668.268-1.413-.155-1.665ZM15.311 30.244c-.234.463-.185.978.108 1.152.286.17.698-.05.935-.492a3.355 3.355 0 0 1-.37-1.232c-.244.034-.507.244-.673.572Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#8597A9\",\n d: \"M21.593 28.782A4.824 4.824 0 0 1 20 27.968c.153.592.424 1.969-.003 2.975.857.171 1.634.239 1.594.28-.034.067-.082.126-.124.189.16-.135.67-.62.649-1.338-.015-.508-.237-.978-.527-1.345.015.038.016.058.003.053h.001ZM23.6 19.116c-.587.849-1.834 2.122-1.834 2.122s-2.572 1.498-3.545 3.47c0 0 1.29-.788 3.543-.392l1.15-1.055s3.52-3.42 3.52-6.615c0-1.597-.924-3.258-1.848-4.518-.024.666-.101 1.497-.324 2.047.026.45.4 3.294-.662 4.942ZM4.61 22.497c.204-.396.423-.695.6-1.01.738-1.304-.367-2.396-.367-2.396l-1.198.549-1.51-.856c-.099.242-.203.516-.237.683-.01.05.005.119.039.196.38.12.552.322.815.414.596.21.992.829.77 1.562.285.323.724.616 1.088.857v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M17.942 25.473s.078-1.054.988-2.101c.91-1.048 1.385-1.329 2.32-2.144.937-.814 2.434-2.041 2.774-4.21.23-1.299.127-2.813-.548-3.895-.674-1.082-2.31-3.108-5.443-3.832-3.132-.725-5.566.287-5.566.287s-4.063 1.464-4.372 6.117c-.07 1.34.264 2.144.264 2.144s.435 1.37 1.043 2.124c.607.753 1.318 1.631 1.318 1.631s1.303 1.327 1.303 2.878c0 .618-.242 1.199-.64 1.61-.395.41-1.551 1.977-4.547 1.977-1.82 0-3.29-1.158-3.29-2.47 0-1.076.342-1.996.756-2.7.415-.705 1.118-1.562 1.118-2.384 0-.553-.562-1.334-.562-1.334l.11-.103s.568.652.568 1.425c0 .478-.088.772-.203 1.01-.115.237-1.439 2.269-1.439 3.708 0 .804.512 2.38 2.94 2.38 1.8 0 2.754-.547 3.87-1.375.635-.49 1.112-1.157 1.112-1.769 0-.61-.2-1.123-.633-1.728a17.442 17.442 0 0 0-1.303-1.642c-.575-.65-2.287-2.183-2.287-5.547 0-1.593 1.398-7.001 8.43-7.001 1.547 0 8.667 1.316 8.667 7.437 0 1.78-.983 4.029-2.497 5.277-1.515 1.248-3.727 2.691-4.254 4.23h.003Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#121313\",\n d: \"M19.585 26.438s-.559.158-.42.098c.212-.092.843-.539 1.204-.905.716-.728 5.784-4.99 5.784-8.49 0-3.252-2.208-5.332-2.208-5.332s-.326-.278-1.286-1.41c-.96-1.13-1.232-1.487-1.341-1.87-.207-.355-.2-1.491.513-1.988.712-.498.853-.449.853-.449l.018.17s-.994.426-1.286 1.332c-.06.298-.12.91.592 1.619l1.937 1.928s2.728 2.261 2.728 6.002c0 1.152-.669 2.998-1.752 4.228-1.083 1.229-3.566 3.887-5.335 5.067ZM19.082 9.328s-.616-1.32-.277-2.542c.336-1.03 1.29-1.346 2.423-1.474.177.036.198.12.198.12s-1.675.142-2.282 1.742c-.191.58.047 1.788.256 2.237.04.067-.318-.083-.318-.083ZM14.625 19.985c-.67-.52-1.672-.315-2.158.3-.54.686-.485 1.682.182 2.17.504.368 1.698.287 2.158-.3.605-.774.471-1.664-.182-2.17Zm-.01 2.018c-.409.522-1.463.58-1.92.266-.492-.338-.65-1.325-.165-1.933a1.43 1.43 0 0 1 1.016-.537c-.06.073-.096.126-.096.225 0 .238.201.432.452.432.25 0 .452-.157.452-.396 0-.02-.004-.04-.007-.058.036.023.072.04.106.068.575.46.702 1.243.164 1.933h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M14.452 20.07c-.034-.027-.07-.045-.106-.068.003.02.007.038.007.058a.442.442 0 0 1-.452.432.442.442 0 0 1-.452-.432c0-.1.037-.19.097-.262a1.431 1.431 0 0 0-1.016.537c-.486.607-.328 1.594.163 1.933.458.315 1.512.256 1.921-.267.54-.688.412-1.472-.163-1.932Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#121313\",\n d: \"M17.796 20.463c-.67-.519-1.672-.315-2.158.3-.54.686-.486 1.682.182 2.17.504.368 1.698.287 2.158-.3.605-.773.471-1.664-.182-2.17Zm-.01 2.018c-.409.523-1.463.581-1.92.267-.492-.338-.65-1.325-.165-1.933.263-.33.638-.51 1.016-.538-.06.073-.096.126-.096.225 0 .24.201.433.452.433.25 0 .452-.157.452-.397a.31.31 0 0 0-.007-.058c.035.024.072.04.106.069.575.46.702 1.243.164 1.932h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M17.623 20.549c-.034-.027-.07-.046-.106-.069.003.02.007.038.007.058a.442.442 0 0 1-.452.433.442.442 0 0 1-.453-.433c0-.099.037-.189.097-.262a1.43 1.43 0 0 0-1.016.538c-.485.606-.327 1.593.164 1.933.458.314 1.512.256 1.921-.267.54-.688.412-1.473-.163-1.933v.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#151516\",\n d: \"m1.188 18.105-.14-2.05s-.063-.258.24-.357l2.954-.97s.508-.108.92.031c.412.14 1.716.688 1.716.688s.318.106.318.45c0 .343-.023 1.655-.023 1.655s.002.517-.208.634c-.21.116-3.046 1.558-3.046 1.558s-.47.11-.761-.081c-.292-.192-1.683-1.01-1.683-1.01s-.286-.165-.286-.548h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"m1.29 16.3.095 1.761s.007.265.424.52 1.557.9 1.557.9.122.067.122-.237V17.58s.077-.36-.122-.437c-.2-.076-1.909-.93-1.909-.93s-.167-.15-.167.087v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"M3.679 19.122v-1.586s-.043-.308.268-.42c.312-.113 2.653-1.103 2.653-1.103s.278-.13.278.188v1.348s-.005.26-.23.393-2.68 1.413-2.68 1.413-.288.091-.288-.234l-.001.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m1.632 16.003 1.824.935s.193.119.544-.028l2.548-1.062s.243-.135.019-.209c-.224-.073-1.699-.663-1.699-.663s-.363-.085-.646 0c-.282.086-2.452.788-2.452.788s-.409.097-.139.239h.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05446D\",\n d: \"M3.252 19.219a.093.093 0 0 1-.035-.007l-.043-.017c-.056-.022-.1-.1-.103-.181l-.048-1.647c-.002-.054.016-.098.048-.121a.085.085 0 0 1 .083-.01l.044.018c.056.022.1.1.102.18l.049 1.648c.001.054-.016.098-.049.12a.088.088 0 0 1-.05.017h.002Zm.002-.098-.018.046.018-.046Zm-.131-1.79v.035l.048 1.646c.001.048.027.087.04.093l.041.016v-.035l-.048-1.646c-.002-.048-.027-.087-.04-.093l-.041-.016ZM2.874 18.996a.091.091 0 0 1-.035-.007l-.043-.017c-.057-.022-.1-.099-.103-.18l-.048-1.648c-.002-.054.016-.098.048-.12a.087.087 0 0 1 .084-.01l.044.017c.057.022.1.1.103.181l.048 1.647c.001.054-.016.098-.048.121a.085.085 0 0 1-.05.016Zm.002-.098-.018.047.018-.047Zm-.131-1.79v.035l.048 1.647c.002.048.027.086.04.092l.041.016v-.034l-.048-1.647c-.002-.047-.027-.086-.04-.092l-.041-.016ZM2.479 18.791a.093.093 0 0 1-.035-.007l-.044-.017c-.056-.022-.1-.1-.102-.181l-.049-1.647c-.001-.054.016-.098.049-.121a.088.088 0 0 1 .084-.01l.044.018c.056.022.1.1.102.181l.049 1.647c0 .054-.017.098-.049.121a.088.088 0 0 1-.05.016Zm0-.098-.017.046.019-.046H2.48Zm-.13-1.79s-.002.015 0 .034l.048 1.646c0 .048.026.087.04.093l.04.016s.002-.015 0-.035l-.048-1.646c-.001-.049-.027-.087-.04-.093l-.04-.016v.001ZM2.083 18.528a.083.083 0 0 1-.034-.007l-.044-.017c-.056-.022-.1-.098-.102-.178l-.047-1.615c-.002-.053.016-.096.048-.119a.09.09 0 0 1 .084-.01l.044.018c.056.022.1.098.103.179l.047 1.615c.001.053-.016.096-.047.12a.087.087 0 0 1-.05.015h-.002Zm0-.098-.016.046.018-.046h-.001Zm-.13-1.755v.032l.048 1.616c.001.046.026.084.039.089l.042.016v-.032l-.048-1.616c0-.046-.026-.084-.04-.089l-.04-.016ZM1.689 18.308a.112.112 0 0 1-.033-.006l-.044-.016c-.057-.02-.1-.097-.103-.175l-.046-1.592c-.001-.052.016-.094.047-.117a.09.09 0 0 1 .084-.01l.044.017c.057.02.1.097.103.176l.046 1.59c.001.052-.016.095-.047.118a.088.088 0 0 1-.051.016v-.001Zm.001-.098-.017.046.017-.046Zm-.128-1.726s-.002.013-.001.03l.046 1.592c.001.045.027.082.04.087l.04.016s.002-.014 0-.031l-.045-1.59c-.001-.046-.027-.082-.04-.088l-.041-.015.001-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M27.797 23.567c-.609-.427-.915-.528-1.476-.528-.562 0-.783.43-.783.43s.655-.257 1.057-.257c.403 0 1.997.824 1.997 2.519 0 2.537-2.072 3.484-3.76 3.484-.318 0-.62-.012-.906-.032l.138.384c.25.028.493.044.715.044 2.015 0 3.077-1.054 3.51-1.6.432-.546.627-1.53.627-2.26 0-.73-.511-1.755-1.119-2.182v-.002ZM21.721 29.055l-.14-.308c-.953-.318-1.617-.754-2.077-1.172.01.031.031.078.082.14a.7.7 0 0 1 .126.303c.202.194.395.356.545.446.383.205.898.41 1.464.59v.002ZM18.556 26.265c-.054.097.007.281.134.503l.088-.057c-.163-.267-.222-.446-.222-.446Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M14.745 26.62s-1.283 1.112-1.283 2.863c0 1.752.746 2.79.944 3.006.199.215 1.856 2.289 5.3 2.289 1.246 0 4.606-1.044 4.606-4.302 0-1.91-1.685-4.07-4.915-4.07-.889.041-1.468.728-1.468 1.233 0 .758.448 1.236 1.01 1.236.502 0 .832-.223.832-.817 0-.3-.243-.47-.305-.51-.06-.041.244.324.174.657-.07.332-.225.575-.684.575-.314 0-.946-.424-.824-1.117.084-.423.468-.928 1.242-1.02 1.36-.161 4.58.842 4.58 3.807 0 2.085-1.918 4.2-4.249 4.2-2.33 0-3.637-1.044-3.637-1.044s-2.234-1.82-2.234-4.1c0-1.07.141-1.893.9-2.872\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M16.676 27.48s-.603.685-.603 1.879c0 1.193.87 3.106 2.775 3.106 1.257 0 2.966-.943 2.966-2.306 0-1.244-1.009-2.608-2.348-2.608-.03-.031.039-.07.123-.07.084 0 .914.007 1.677.666.762.658.972 1.305.972 1.984 0 .68-.16 1.305-.966 1.91-.804.606-1.34.862-2.424.862-1.082 0-2.037-.968-2.037-.968s-.926-.861-.926-2.396c0-.556.445-2.015.792-2.059h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M18.415 30.296c-.693-.39-1.641-1.062-1.765-3.53 0 0-.51 2.51 1.336 3.827.705.527 1.494.8 3.409.908l.232-.325c-1.15-.157-2.377-.428-3.21-.88h-.002ZM30.925 26.408c0-1.16.041-4.812-4.253-4.812-1.461 0-2.69 1.295-2.69 2.25.075 0 .168-.087.168-.087s.101-.787.742-1.279c.644-.495.95-.643 1.78-.643.829 0 3.821.469 3.821 4.191 0 1.987-.957 3.526-2.393 4.219-1.176.567-2.323.96-4.002 1.026l-.082.285c3.882-.018 6.91-2.177 6.91-5.15h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#090D0F\",\n d: \"M1.154 16.142s-.531-.054-.834.496c-.302.55-.438 1.272-.196 1.943.243.671.742.9 1.254 1.08.512.18 2.163.665 2.163 1.57 0 .461-.7 1.583-1.057 2.134-.358.55-.969 2.015-.969 3.688 0 1.494 1.623 3.405 4.815 3.405 1.6 0 3.144-.46 5.008-1.509.225-.159.075-.561.075-.561s-2.11 1.577-5.094 1.577c-2.077 0-4.392-1.162-4.392-2.97 0-1.808.341-2.886.753-3.606.412-.72.977-1.48.977-2.172 0-.691-.672-1.34-1.172-1.544-.5-.204-1.33-.403-1.711-.665-.38-.262-.456-.932-.456-1.17 0-.24-.017-1.04.521-1.507.126-.083.315-.19.315-.19v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#101111\",\n d: \"M14.986 25.233s-.326-.15-.865-.15c-.76 0-2.956 1.023-2.956 2.494 0 1.472 1.408 4.966-1.54 4.966-1.795 0-3.427-1.22-3.427-1.22s-1.388-1.07-2.743-1.07S.6 31.415.6 33.023c0 1.61 1.425 2.857 2.37 2.857.946 0 1.098-.688 1.098-.688s.236-.587-.122-.896c-.357-.31-1.204-.736-1.204-1.365 0-.628.714-.596.714-.596s.653-.04 1.387.596c.735.637 3.005 3.15 5.795 3.15 1.956 0 2.72-.841 3.055-1.329.334-.488.962-1.395.385-3.087-.64-1.877-1.737-3.677.66-5.03 0 .013-1.07.232-1.583 1.461-.305.774.042 1.925.259 2.784.216.859.678 2.42-.065 3.4-.566.747-1.373 1.312-2.689 1.312s-2.54-.564-2.54-.564-1.031-.377-1.876-1.088c-.844-.71-1.514-1.266-1.514-1.266s-.603-.485-1.345-.485c-.743 0-.924.505-.924.717 0 .212.11.672.429.9.32.229.588.435.712.585.125.15.244.443.081.7-.162.255-.27.41-.68.41-.41 0-.789-.244-1.062-.462-.274-.218-.75-.785-.87-1.259-.122-.474-.102-.756-.102-.756s.042-.642.33-1.116c.287-.474.957-1.278 2.157-1.278.489 0 1.017.175 1.798.645.78.47 1.788 1.112 1.788 1.112s.946.637 2.525.637c1.03 0 1.716-.38 2.127-.953.412-.573.314-1.603.064-3.066-.25-1.464-.414-1.933.436-2.837.792-.843 1.904-1.108 2.793-.935h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0E1011\",\n d: \"m15.683 34.62.07 1.566s-.056.399.416.697c.473.299 3.518 2.317 3.518 2.317s.356.238.857-.061c.5-.299 2.348-1.413 2.348-1.413s.226-.142.251-.517c.026-.376.088-1.567.088-1.567s.031-.156-.247-.344c-.278-.188-4.065-1.85-4.065-1.85s-.375-.164-.782-.028c-.407.136-2.065.719-2.065.719s-.404.187-.391.48h.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m16.254 34.515 3.683 1.967s.223.154.568 0 1.9-.988 1.9-.988.255-.083-.11-.253c-.366-.168-3.474-1.648-3.474-1.648s-.168-.137-.493-.044c-.326.094-2.037.673-2.037.673s-.412.092-.037.293Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"m15.889 34.73.107 1.43s-.02.263.403.49c.424.225 3.472 2.299 3.472 2.299s.23.107.23-.282c0-.388-.025-1.511-.025-1.511s.034-.266-.186-.392l-3.766-2.121s-.235-.132-.235.086Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"m20.334 38.667-.019-1.618s-.047-.23.196-.351c.245-.123 2.247-1.104 2.247-1.104s.18-.11.178.173c0 .284-.043 1.444-.043 1.444s-.03.177-.187.276l-2.143 1.323s-.23.154-.23-.142Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05446D\",\n d: \"M20.662 38.552a.099.099 0 0 1-.059-.019c-.031-.021-.048-.06-.048-.106l.002-1.5c0-.077.048-.152.113-.174l.05-.018a.11.11 0 0 1 .098.011c.03.022.048.061.048.106l-.002 1.5c0 .078-.049.153-.113.175l-.052.018a.11.11 0 0 1-.038.007Zm.1-1.725-.06.018c-.022.007-.047.045-.047.082l-.002 1.5c0 .015.004.025.007.027l.058-.019c.022-.008.048-.043.048-.081l.002-1.5c0-.016-.005-.025-.007-.027ZM21.152 38.196a.105.105 0 0 1-.061-.02.122.122 0 0 1-.046-.1l.007-1.37c0-.07.05-.142.114-.163l.052-.016a.109.109 0 0 1 .098.014.12.12 0 0 1 .046.098l-.007 1.37c0 .071-.05.143-.114.164l-.052.016a.139.139 0 0 1-.037.005v.002Zm.106-1.576-.062.018c-.022.007-.046.038-.046.07l-.007 1.37c0 .012.003.017.006.018l.062-.017c.022-.007.046-.038.046-.07l.007-1.37c0-.012-.003-.017-.006-.019ZM21.617 37.867a.102.102 0 0 1-.064-.02.11.11 0 0 1-.042-.094l.01-1.277c0-.068.052-.136.116-.155l.051-.017a.11.11 0 0 1 .1.015c.028.021.043.055.043.093l-.01 1.276a.172.172 0 0 1-.115.156l-.052.015a.127.127 0 0 1-.036.006l-.001.002Zm.107-1.468-.008.001-.05.016a.073.073 0 0 0-.047.063l-.01 1.276c0 .008.002.013.003.014h.013l.052-.015a.071.071 0 0 0 .046-.062l.01-1.277c0-.007 0-.011-.003-.014h-.005V36.4ZM22.079 37.606a.104.104 0 0 1-.064-.02.11.11 0 0 1-.042-.094l.01-1.276c0-.068.052-.136.115-.156l.052-.015a.114.114 0 0 1 .1.015.11.11 0 0 1 .042.093l-.01 1.277a.172.172 0 0 1-.116.156l-.051.015a.128.128 0 0 1-.036.005Zm.107-1.468s-.005 0-.008.002l-.052.015a.071.071 0 0 0-.046.062l-.01 1.276c0 .008.002.013.003.014h.013l.052-.016c.024-.007.045-.037.046-.062l.01-1.277c0-.008-.002-.012-.003-.014h-.005ZM22.517 37.368a.105.105 0 0 1-.064-.021.112.112 0 0 1-.042-.09l.012-1.235a.17.17 0 0 1 .116-.152l.052-.015a.113.113 0 0 1 .1.016c.027.02.043.053.042.09l-.012 1.236c0 .068-.05.133-.116.152l-.052.015a.126.126 0 0 1-.036.005v-.001Zm.106-1.421h-.004l-.052.015c-.023.007-.045.035-.045.059l-.012 1.235c.005.013.01.013.016.01l.052-.015a.072.072 0 0 0 .047-.059l.011-1.235c-.003-.009-.007-.011-.011-.011l-.002.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0E1011\",\n d: \"m26.434 23.134-2.906.688s-.415.01-.399.573c.016.563.084 1.738.084 1.738s.09.523.594.703c.506.18 2.19.925 2.19.925s.216.177.535.062c.321-.117 2.06-.803 2.06-.803s.4-.866.058-1.936c-.344-1.069-1.198-1.951-2.216-1.951v.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"M26.393 27.334V25.5s-.029-.267.182-.338c.211-.07 1.497-.52 1.497-.52s.17-.117.286.091c.115.208.233.612.233 1.03 0 .416-.107.86-.107.86s-.049.163-.19.216c-.143.053-1.706.662-1.706.662s-.194.126-.194-.167h-.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"M26.213 25.537v1.701s.038.283-.093.232a316.13 316.13 0 0 1-2.387-1.063s-.222-.145-.24-.518c-.019-.374-.097-1.472-.097-1.472s-.016-.218.149-.133c.165.083 2.261.865 2.384.906.124.042.284.17.284.348Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m23.634 24.12 2.262.8s.217.204.71.023a61.772 61.772 0 0 1 1.404-.483s.205-.046.086-.196c-.118-.15-.403-.57-1.246-.963-.199-.083-.474-.004-.67.049-.196.053-2.496.598-2.496.598s-.232.108-.05.172Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#121313\",\n d: \"M18.993 3.577s.26-2.1.302-2.34c.043-.238.22-.387.647-.439.393-.048 2.573-.333 2.573-.333s.498-.127 1.034.16c.535.287 3.027 1.632 3.216 1.76.19.13.361.16.285.777a62.834 62.834 0 0 1-.296 1.984s.052.321-.344.433c-.395.112-3.171.827-3.171.827s-.354.135-.877-.164c-.522-.298-3.059-1.903-3.187-1.99-.128-.086-.25-.25-.18-.675h-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#090D0F\",\n d: \"M26.793 4.271s.674-.355.674-1.293c0-.787-.564-2.747-2.032-2.747-1.216 0-1.55.75-1.55.75l-.179-.152S24.18 0 25.436 0c1.257 0 2.342 1.678 2.342 3.042 0 1.054-1.057 1.739-1.057 1.739l.074-.51-.002.001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29B4FA\",\n d: \"m19.237 3.717.255-2.254s-.013-.27.174-.15c.186.118 3.172 1.948 3.172 1.948s.216.163.14.59c-.074.425-.223 1.98-.223 1.98s.018.224-.23.088c-.249-.136-3.19-1.876-3.19-1.876s-.127-.078-.098-.326Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F5983\",\n d: \"m22.999 5.98.24-2.374s.048-.2.24-.227c.19-.028 3.228-.571 3.228-.571s.204-.014.15.314l-.338 1.98s-.075.219-.275.305c-.2.087-2.962.723-2.962.723s-.297.109-.286-.15H23Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#72CCFA\",\n d: \"m19.976 1.162 3.052 1.894s.145.156.623.076c.477-.08 2.809-.497 2.809-.497s.148 0 .084-.066C26.479 2.504 23.39.857 23.39.857s-.26-.19-.8-.14c-.54.048-2.58.287-2.58.287s-.22.045-.035.16l.001-.002Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05446D\",\n d: \"M25.869 27.127a.108.108 0 0 1-.033-.004l-.048-.015c-.061-.02-.11-.092-.114-.17l-.075-1.52c-.003-.048.014-.09.044-.113a.1.1 0 0 1 .09-.015l.048.015c.061.02.11.093.114.17l.075 1.521c.003.047-.014.089-.044.112a.097.097 0 0 1-.058.02Zm-.003-.099h.003s.004-.009.004-.029l-.075-1.52c-.002-.041-.028-.076-.046-.081l-.048-.015s-.007.008-.007.027l.075 1.521c.002.042.029.075.046.081l.048.015v.001ZM25.372 26.87a.099.099 0 0 1-.031-.004l-.049-.014c-.062-.019-.112-.088-.115-.162l-.07-1.42a.126.126 0 0 1 .043-.106.102.102 0 0 1 .091-.017l.049.014c.062.019.112.088.115.162l.07 1.42a.126.126 0 0 1-.043.107.095.095 0 0 1-.06.02Zm-.158-1.628s-.008.007-.008.023l.069 1.42c.001.034.025.067.045.072l.048.015h.004s.004-.008.004-.023l-.069-1.42c-.001-.034-.025-.066-.045-.072l-.048-.014v-.001ZM24.886 26.68a.096.096 0 0 1-.03-.005l-.05-.015c-.062-.018-.111-.087-.114-.161l-.07-1.42a.125.125 0 0 1 .043-.107.102.102 0 0 1 .091-.016l.049.015c.062.018.111.088.115.161l.069 1.421a.123.123 0 0 1-.043.106.095.095 0 0 1-.06.021Zm-.003-.1h.003s.006 0 .005-.022l-.07-1.42c0-.034-.025-.067-.044-.072l-.049-.015s-.008.007-.008.023l.07 1.42c0 .034.025.066.044.072l.049.014ZM24.404 26.475a.096.096 0 0 1-.031-.005l-.049-.014c-.062-.018-.112-.087-.115-.161l-.07-1.42a.125.125 0 0 1 .044-.107.102.102 0 0 1 .09-.016l.05.014c.061.018.11.087.114.161l.07 1.42a.126.126 0 0 1-.043.107.095.095 0 0 1-.06.02Zm-.158-1.629s-.008.007-.008.023l.07 1.421c0 .034.024.066.044.072l.049.014h.003s.005-.007.003-.024l-.069-1.42c0-.034-.025-.066-.045-.072l-.048-.014h.001ZM23.913 26.265a.085.085 0 0 1-.03-.005l-.048-.014c-.062-.017-.112-.085-.115-.158l-.068-1.381a.122.122 0 0 1 .041-.104.105.105 0 0 1 .092-.017l.049.014c.062.017.112.085.115.158l.068 1.381a.121.121 0 0 1-.041.104.098.098 0 0 1-.061.02l-.002.002Zm-.155-1.584s-.01.008-.008.021l.068 1.382c0 .032.025.063.043.068l.049.014h.005s.004-.007.003-.021l-.068-1.382c-.001-.032-.024-.063-.044-.068l-.048-.014ZM23.496 5.818h-.083a.162.162 0 0 1-.116-.056.17.17 0 0 1-.037-.132l.265-1.933a.198.198 0 0 1 .189-.168h.078a.162.162 0 0 1 .115.055.17.17 0 0 1 .037.134L23.68 5.65a.194.194 0 0 1-.185.168v-.001Zm.215-2.191c-.041 0-.081.038-.087.083l-.264 1.933a.073.073 0 0 0 .014.056c.01.013.025.019.042.02h.08c.043 0 .083-.036.089-.082l.264-1.933a.073.073 0 0 0-.014-.056.057.057 0 0 0-.043-.02h-.08v-.001ZM24.158 5.691h-.004l-.078-.002a.15.15 0 0 1-.116-.055.17.17 0 0 1-.036-.132l.264-1.933a.193.193 0 0 1 .185-.168h.004l.078.002c.045 0 .086.02.114.054a.17.17 0 0 1 .037.133l-.264 1.933a.193.193 0 0 1-.185.168Zm-.001-.098c.042 0 .083-.038.088-.083l.264-1.933a.069.069 0 0 0-.013-.055.058.058 0 0 0-.043-.02l-.078-.002h-.002c-.041 0-.082.038-.087.083l-.264 1.933a.069.069 0 0 0 .014.055c.01.013.025.018.042.02l.079.002ZM24.821 5.554h-.083a.162.162 0 0 1-.115-.056.171.171 0 0 1-.037-.133l.264-1.933a.193.193 0 0 1 .185-.169h.084a.162.162 0 0 1 .115.056.17.17 0 0 1 .037.134l-.264 1.932a.193.193 0 0 1-.186.169Zm.216-2.191c-.042 0-.082.038-.088.083l-.264 1.932a.073.073 0 0 0 .014.057c.01.013.025.018.042.02h.081c.042 0 .082-.036.088-.082l.264-1.933a.073.073 0 0 0-.014-.057.057.057 0 0 0-.043-.02h-.08ZM25.431 5.404h-.083a.162.162 0 0 1-.115-.056.17.17 0 0 1-.037-.132l.264-1.933a.194.194 0 0 1 .186-.168h.082a.162.162 0 0 1 .115.055.17.17 0 0 1 .037.133l-.264 1.932a.192.192 0 0 1-.185.169Zm.216-2.191c-.041 0-.082.038-.088.083l-.264 1.933a.072.072 0 0 0 .014.056c.01.013.025.018.043.02h.08c.04 0 .081-.036.087-.081l.264-1.933a.073.073 0 0 0-.014-.056.058.058 0 0 0-.042-.02h-.08v-.002ZM26.082 5.282h-.081a.162.162 0 0 1-.116-.056.17.17 0 0 1-.037-.132l.265-1.933a.194.194 0 0 1 .185-.169h.082a.162.162 0 0 1 .115.056.17.17 0 0 1 .037.132l-.264 1.933a.194.194 0 0 1-.186.169Zm.216-2.191c-.041 0-.082.038-.087.083l-.264 1.932a.073.073 0 0 0 .013.057c.01.012.026.018.043.02h.08c.041 0 .081-.036.087-.082l.264-1.933a.073.073 0 0 0-.014-.057.058.058 0 0 0-.042-.02h-.08Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"docker-compose_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h30.925v39.29H0z\"\n })))));\n};\nexport default SvgDockerCompose;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDockerIcon = function SvgDockerIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 34 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M19.033 9.676h3.194Zm-3.802 0h3.194Zm-3.726 0h3.194Zm-3.727 0h3.118Zm-3.802 0H7.17Zm3.802-3.498h3.118Zm3.727 0h3.194Zm3.726 0h3.194Zm0-3.498h3.194Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeWidth: 2.887,\n d: \"M19.033 9.676h3.194m-6.996 0h3.194m-6.92 0h3.194m-6.92 0h3.117m-6.92 0H7.17m.608-3.498h3.118m.609 0h3.194m.532 0h3.194M15.23 2.68h3.194\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M32.417 9.828s-1.369-1.293-4.182-.836c-.305-2.206-2.662-3.498-2.662-3.498s-2.205 2.661-.608 5.627c-.456.228-1.217.532-2.358.532H1.695c-.38 1.445-.38 11.027 10.114 11.027 7.528 0 13.156-3.498 15.817-9.886 3.955.304 4.791-2.966 4.791-2.966Z\"\n })));\n};\nexport default SvgDockerIcon;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDocker = function SvgDocker(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M35.492 15.925c-.1-.085-.997-.782-2.925-.782a9.03 9.03 0 0 0-1.513.137c-.366-2.6-2.477-3.856-2.56-3.924l-.515-.306-.333.493a7.35 7.35 0 0 0-.913 2.175c-.35 1.478-.134 2.87.598 4.06-.881.509-2.31.628-2.61.645H1.116c-.615 0-1.114.51-1.114 1.138a17.526 17.526 0 0 0 1.03 6.2c.815 2.175 2.028 3.788 3.591 4.774 1.762 1.104 4.638 1.732 7.88 1.732 1.462 0 2.925-.136 4.371-.408a17.806 17.806 0 0 0 5.719-2.123 15.735 15.735 0 0 0 3.89-3.26c1.878-2.158 2.992-4.57 3.807-6.71h.332c2.045 0 3.308-.833 4.007-1.546a4.53 4.53 0 0 0 1.063-1.597l.15-.442-.349-.255v-.001Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M3.31 17.725h3.157c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289H3.31a.283.283 0 0 0-.283.289v2.887c.017.17.134.29.283.29ZM7.666 17.725h3.158c.15 0 .282-.119.282-.29V14.55a.283.283 0 0 0-.282-.289H7.666a.283.283 0 0 0-.283.289v2.887c.016.17.133.29.283.29ZM12.104 17.725h3.158c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289h-3.158a.283.283 0 0 0-.283.289v2.887c0 .17.117.29.283.29ZM16.475 17.725h3.159c.15 0 .282-.119.282-.29V14.55a.283.283 0 0 0-.282-.289h-3.159a.283.283 0 0 0-.283.289v2.887c0 .17.134.29.283.29ZM7.666 13.597h3.158c.15 0 .282-.136.282-.289v-2.887a.284.284 0 0 0-.282-.29H7.666a.284.284 0 0 0-.283.29v2.887c.016.153.133.29.283.29ZM12.104 13.597h3.158c.15 0 .283-.136.283-.289v-2.887a.284.284 0 0 0-.283-.29h-3.158a.283.283 0 0 0-.283.29v2.887c0 .153.117.29.283.29ZM16.475 13.597h3.159c.15 0 .282-.136.282-.289v-2.887a.295.295 0 0 0-.282-.29h-3.159a.283.283 0 0 0-.283.29v2.887c0 .153.134.29.283.29ZM16.475 9.453h3.159c.15 0 .282-.119.282-.29V6.277a.295.295 0 0 0-.282-.289h-3.159a.284.284 0 0 0-.283.29v2.887c0 .153.134.289.283.289ZM20.883 17.725h3.158c.15 0 .283-.119.283-.29V14.55a.283.283 0 0 0-.283-.289h-3.158a.283.283 0 0 0-.283.289v2.887c.016.17.133.29.283.29Z\"\n })));\n};\nexport default SvgDocker;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgEcr = function SvgEcr(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 37 41\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#ecr_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#ecr_svg__b)\",\n d: \"M13.249 34.7a.697.697 0 0 1-.356-.097L1.345 27.77A.707.707 0 0 1 1 27.164V12.647c0-.252.135-.486.353-.612l12.625-7.243a.698.698 0 0 1 .7.004l11.328 6.656a.7.7 0 0 1 .348.608c0 .254-.13.48-.348.608l-12.057 7.07v14.258a.706.706 0 0 1-.7.704ZM1.845 27.08l11.259 6.661V19.655c0-.25.133-.483.348-.608l11.914-6.987-11.042-6.488-12.479 7.16V27.08Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#ecr_svg__c)\",\n d: \"M15.767 34.703a.702.702 0 0 1-.7-.704v-6.152c0-.248.132-.481.346-.607l5.63-3.316v-6.788c0-.248.132-.48.344-.607l5.535-3.281a.698.698 0 0 1 1.055.606v13.43c0 .25-.133.483-.348.609l-11.511 6.715a.697.697 0 0 1-.352.096v-.001Zm.145-6.773v5.816L27.133 27.2V14.11l-5.245 3.11v6.788a.707.707 0 0 1-.347.608l-5.63 3.315Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"ecr_svg__b\",\n x1: 1.427,\n x2: 18.968,\n y1: 19.7,\n y2: 19.7,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#DF6B4A\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#E99B41\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"ecr_svg__c\",\n x1: 15.791,\n x2: 23.572,\n y1: 23.927,\n y2: 23.927,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#DF6B4A\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#E99B41\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"ecr_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M1 4.7h27v30H1z\"\n })))));\n};\nexport default SvgEcr;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGithub = function SvgGithub(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 1024 1024\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1B1F23\",\n fillRule: \"evenodd\",\n d: \"M512 0C229.12 0 0 229.12 0 512c0 226.56 146.56 417.92 350.08 485.76 25.6 4.48 35.2-10.88 35.2-24.32 0-12.16-.64-52.48-.64-95.36-128.64 23.68-161.92-31.36-172.16-60.16-5.76-14.72-30.72-60.16-52.48-72.32-17.92-9.6-43.52-33.28-.64-33.92 40.32-.64 69.12 37.12 78.72 52.48 46.08 77.44 119.68 55.68 149.12 42.24 4.48-33.28 17.92-55.68 32.64-68.48-113.92-12.8-232.96-56.96-232.96-252.8 0-55.68 19.84-101.76 52.48-137.6-5.12-12.8-23.04-65.28 5.12-135.68 0 0 42.88-13.44 140.8 52.48 40.96-11.52 84.48-17.28 128-17.28 43.52 0 87.04 5.76 128 17.28 97.92-66.56 140.8-52.48 140.8-52.48 28.16 70.4 10.24 122.88 5.12 135.68 32.64 35.84 52.48 81.28 52.48 137.6 0 196.48-119.68 240-233.6 252.8 18.56 16 34.56 46.72 34.56 94.72 0 68.48-.64 123.52-.64 140.8 0 13.44 9.6 29.44 35.2 24.32C877.44 929.92 1024 737.92 1024 512 1024 229.12 794.88 0 512 0Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgGithub;","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGitlab = function SvgGitlab(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E24329\",\n d: \"m13.8 32.71 5.08-15.638H8.719l5.081 15.638Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FC6D26\",\n d: \"M13.8 32.71 8.718 17.072H1.597L13.799 32.71Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FCA326\",\n d: \"M1.596 17.072.052 21.824c-.141.434.013.909.382 1.176l13.365 9.71L1.596 17.072Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E24329\",\n d: \"M1.597 17.072h7.121l-3.06-9.418a.526.526 0 0 0-1 0l-3.061 9.418Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FC6D26\",\n d: \"m13.8 32.71 5.082-15.638h7.122L13.8 32.71Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FCA326\",\n d: \"m26.004 17.072 1.544 4.752c.14.434-.014.909-.382 1.176L13.8 32.71l12.203-15.638Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E24329\",\n d: \"M26.002 17.072h-7.121l3.06-9.418a.526.526 0 0 1 1 0l3.061 9.418Z\"\n })));\n};\nexport default SvgGitlab;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGoogle = function SvgGoogle(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4285F4\",\n d: \"M23.745 12.27c0-.79-.07-1.54-.19-2.27h-11.3v4.51h6.47c-.29 1.48-1.14 2.73-2.4 3.58v3h3.86c2.26-2.09 3.56-5.17 3.56-8.82Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#34A853\",\n d: \"M12.255 24c3.24 0 5.95-1.08 7.93-2.91l-3.86-3c-1.08.72-2.45 1.16-4.07 1.16-3.13 0-5.78-2.11-6.73-4.96h-3.98v3.09C3.515 21.3 7.565 24 12.255 24Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FBBC05\",\n d: \"M5.525 14.29c-.25-.72-.38-1.49-.38-2.29s.14-1.57.38-2.29V6.62h-3.98a11.86 11.86 0 0 0 0 10.76l3.98-3.09Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EA4335\",\n d: \"M12.255 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C18.205 1.19 15.495 0 12.255 0c-4.69 0-8.74 2.7-10.71 6.62l3.98 3.09c.95-2.85 3.6-4.96 6.73-4.96Z\"\n })));\n};\nexport default SvgGoogle;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHelm = function SvgHelm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#helm_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeWidth: 2,\n d: \"M2.034 12.08h19.932M4.059 7.913A9.317 9.317 0 0 1 5.437 6.11m0 0a9.253 9.253 0 0 1 6.635-2.792c2.561 0 4.88 1.037 6.559 2.714M5.437 6.11 3.87 4.542M5.437 6.11l.009.008m13.185-.086a9.32 9.32 0 0 1 1.455 1.881M18.63 6.032l1.556-1.557M18.63 6.032l-.007.006m-6.63-4.993v2.273m7.975 12.751a9.315 9.315 0 0 1-1.378 1.803m0 0a9.253 9.253 0 0 1-6.635 2.792 9.252 9.252 0 0 1-6.559-2.713m13.194-.079 1.567 1.568m-1.567-1.568-.009-.008m-13.185.087a9.318 9.318 0 0 1-1.455-1.882m1.455 1.882-1.556 1.556m1.556-1.556.007-.007m6.63 4.993v-2.273\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"helm_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M24 0v24H0V0z\"\n })))));\n};\nexport default SvgHelm;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKubernetes = function SvgKubernetes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M13.849 32.493c-1.69 0-3.381-.014-5.07.007-.769.008-1.361-.264-1.843-.869C4.798 28.95 2.648 26.28.498 23.606c-.431-.536-.6-1.107-.436-1.809.79-3.376 1.55-6.76 2.322-10.142.154-.678.546-1.143 1.18-1.444a1799.08 1799.08 0 0 0 9.357-4.484c.652-.315 1.273-.295 1.92.015 3.096 1.493 6.195 2.983 9.3 4.457.658.312 1.057.789 1.217 1.488.77 3.383 1.536 6.766 2.32 10.145.15.648.014 1.196-.39 1.699-2.172 2.708-4.345 5.416-6.51 8.13-.467.587-1.055.843-1.794.837-1.71-.013-3.422-.004-5.133-.004l-.003-.001Zm-.435-21.608c.03.872-.075 1.005-.876 1.163-1.42.28-2.704.863-3.745 1.885-.392.386-.723.304-1.072.055-.27-.191-.487-.456-.73-.685-.166-.155-.322-.335-.512-.454-.28-.174-.572-.149-.776.132-.185.253-.139.526.07.743.143.147.326.257.5.371.259.174.537.321.787.509.507.381.554.64.253 1.185a7.636 7.636 0 0 0-.955 4.038c.027.783-.202 1.03-.988 1.12-.352.04-.707.061-1.056.12-.395.067-.675.287-.59.728.082.426.427.49.78.404.383-.095.748-.255 1.125-.371.772-.237 1.032-.112 1.356.626a7.471 7.471 0 0 0 2.582 3.164c.495.351.575.652.289 1.204-.134.257-.308.497-.461.746-.098.16-.2.318-.286.484-.172.332-.098.622.208.819.341.219.635.049.787-.25.206-.406.325-.855.49-1.282.264-.686.54-.823 1.218-.633a7.583 7.583 0 0 0 4.134.007c.672-.187.92-.075 1.186.588.155.387.252.798.425 1.177.155.343.416.621.837.398.391-.208.406-.559.205-.914-.196-.345-.434-.666-.63-1.01-.383-.679-.328-.91.29-1.364a7.518 7.518 0 0 0 2.56-3.26c.253-.615.494-.737 1.143-.545.399.118.781.293 1.183.394.359.091.729.078.868-.372.112-.366-.134-.667-.63-.749-.39-.065-.789-.074-1.18-.134-.624-.097-.852-.372-.826-.99.063-1.48-.252-2.866-.98-4.156-.277-.494-.233-.788.224-1.147.262-.205.56-.36.838-.543.172-.115.357-.223.5-.37.21-.216.254-.484.07-.743-.188-.266-.468-.29-.726-.162-.198.099-.36.279-.527.434-.228.214-.432.456-.67.657-.474.4-.76.392-1.21-.008a7.752 7.752 0 0 0-3.83-1.862c-.582-.107-.759-.297-.735-.898.016-.416.092-.83.129-1.245.045-.486-.227-.88-.594-.879-.367.002-.638.395-.59.882.034.332.09.661.139.993h-.003.002Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FDFDFE\",\n d: \"M13.413 10.885c-.046-.332-.104-.66-.138-.993-.049-.487.222-.88.59-.882.367-.001.639.393.594.879-.04.417-.115.83-.13 1.246-.022.6.153.79.735.897a7.741 7.741 0 0 1 3.83 1.862c.45.4.736.409 1.21.008.239-.2.443-.443.67-.657.167-.155.33-.336.527-.434.258-.128.54-.104.727.162.183.259.139.526-.071.742-.143.148-.327.255-.5.37-.277.185-.576.34-.838.544-.457.359-.501.654-.223 1.147.727 1.29 1.042 2.677.98 4.156-.027.617.202.892.825.99.392.06.79.07 1.18.134.497.083.744.383.63.75-.139.45-.509.462-.868.371-.401-.1-.785-.275-1.182-.394-.65-.192-.89-.07-1.144.545a7.518 7.518 0 0 1-2.56 3.26c-.618.453-.674.684-.29 1.363.196.345.433.666.63 1.01.202.357.187.707-.204.915-.421.223-.682-.056-.838-.398-.172-.377-.269-.79-.425-1.177-.267-.663-.513-.775-1.185-.588a7.576 7.576 0 0 1-4.134-.007c-.68-.189-.955-.051-1.218.633-.165.428-.285.877-.49 1.283-.15.298-.446.468-.787.249-.306-.196-.379-.487-.208-.819.086-.166.186-.324.285-.484.153-.25.326-.487.461-.746.287-.552.207-.853-.288-1.204a7.472 7.472 0 0 1-2.583-3.164c-.323-.739-.584-.862-1.356-.626-.377.116-.742.275-1.124.372-.353.087-.697.022-.78-.405-.086-.441.195-.66.59-.727.347-.06.703-.081 1.056-.121.787-.088 1.015-.337.987-1.12a7.637 7.637 0 0 1 .955-4.038c.301-.545.255-.804-.253-1.185-.25-.188-.528-.335-.787-.508-.173-.115-.356-.224-.5-.372-.208-.217-.255-.49-.07-.743.206-.28.498-.306.776-.132.19.12.346.297.513.454.243.23.46.494.73.685.349.249.679.331 1.072-.055 1.039-1.022 2.322-1.606 3.745-1.885.8-.157.905-.291.876-1.163h.002-.002Zm-.328 3.414h.034c0-.166-.009-.335.002-.5.015-.23-.07-.284-.293-.24a6.313 6.313 0 0 0-2.9 1.38c-.235.196-.189.307.038.462.67.46 1.324.944 1.994 1.404.605.416.977.232 1.025-.501.042-.667.067-1.336.1-2.005Zm-5.206 5.033c-.005.516.219.708.673.576.697-.202 1.399-.394 2.091-.61.635-.197.732-.591.248-1.049-.589-.558-1.217-1.076-1.802-1.641-.31-.301-.423-.151-.566.139a6.455 6.455 0 0 0-.644 2.584v.001Zm5.968 6.131c.545.015 1.074-.082 1.6-.213.215-.054.353-.088.198-.358-.444-.778-.85-1.578-1.31-2.347-.256-.43-.687-.426-.94.006-.454.773-.867 1.568-1.305 2.35-.114.204-.067.278.158.335.527.132 1.054.236 1.6.227v.001h-.001Zm6.009-6.113c-.049-.84-.229-1.711-.63-2.53-.162-.333-.346-.446-.66-.15-.562.526-1.152 1.026-1.713 1.555-.504.474-.399.87.278 1.074.696.212 1.396.407 2.094.608.64.185.643.184.63-.557Zm-3.068 1.703c-.902.04-1.014.21-.709.964.29.717.598 1.426.879 2.146.095.244.172.364.432.168.886-.67 1.565-1.5 1.992-2.53.053-.127.15-.297-.091-.34-.861-.146-1.725-.28-2.504-.408Zm-2.17-6.828h.02c.035.686.068 1.372.107 2.06.042.739.408.934 1.008.523.65-.447 1.272-.935 1.936-1.36.354-.229.275-.355.01-.572a6.244 6.244 0 0 0-2.725-1.294c-.358-.074-.392.048-.36.332.01.103 0 .207 0 .312h.004v-.001Zm-2.771 7.327c-.098-.212-.086-.491-.453-.478-.923.034-1.823.235-2.733.361-.32.044-.386.183-.26.46a6.1 6.1 0 0 0 1.935 2.412c.22.164.333.167.438-.128.19-.528.428-1.04.642-1.56.143-.345.28-.694.43-1.065v-.002Zm2.051-2.89c-.64-.002-1.016.252-1.03.696-.019.532.499 1.13.988 1.14.465.01.997-.554 1-1.06.003-.47-.372-.776-.958-.778v.002Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M13.086 14.3c-.032.667-.057 1.336-.1 2.004-.048.734-.42.917-1.024.501-.67-.46-1.324-.945-1.994-1.404-.227-.156-.272-.266-.039-.463a6.32 6.32 0 0 1 2.901-1.38c.224-.043.308.012.293.24-.011.166-.003.335-.003.502h-.034v-.001ZM7.88 19.332c.038-.86.233-1.747.645-2.584.143-.29.256-.441.567-.139.583.565 1.213 1.08 1.802 1.641.483.46.386.853-.248 1.05-.693.215-1.394.406-2.091.61-.454.131-.678-.06-.673-.577l-.001-.001ZM13.85 25.462c-.545.01-1.073-.096-1.6-.228-.225-.057-.27-.131-.157-.335.437-.781.85-1.578 1.304-2.35.253-.432.685-.437.941-.006.459.768.866 1.569 1.31 2.347.154.269.014.303-.198.357-.527.133-1.055.23-1.601.214ZM19.856 19.35c.013.74.01.744-.63.557-.697-.202-1.398-.397-2.094-.608-.676-.205-.781-.598-.278-1.074.562-.529 1.15-1.029 1.713-1.556.315-.294.498-.183.66.15.402.82.58 1.692.63 2.531ZM16.79 21.052c.778.126 1.642.262 2.504.41.24.04.143.21.091.339-.428 1.03-1.106 1.862-1.992 2.53-.26.196-.337.075-.432-.169-.28-.72-.588-1.43-.878-2.145-.306-.754-.193-.924.708-.964v-.001ZM14.62 14.224c0-.105.01-.21-.002-.313-.03-.283.003-.404.361-.33 1.02.21 1.919.638 2.724 1.293.266.217.346.343-.01.571-.663.427-1.285.914-1.936 1.36-.599.412-.966.217-1.008-.523-.038-.686-.07-1.373-.106-2.06h-.024v.002ZM11.846 21.55c-.15.372-.287.72-.43 1.066-.214.52-.45 1.03-.641 1.56-.105.294-.22.293-.439.128A6.113 6.113 0 0 1 8.4 21.892c-.126-.278-.06-.417.261-.46.91-.125 1.81-.328 2.733-.362.368-.014.355.267.453.479v.001ZM13.899 18.66c.585.001.961.305.959.777-.004.507-.535 1.07-1 1.06-.489-.011-1.007-.608-.99-1.14.015-.443.393-.699 1.032-.696l-.002-.002h.001Z\"\n })));\n};\nexport default SvgKubernetes;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMicrosoftIcon = function SvgMicrosoftIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M0 0h11.406v11.406H0V0ZM12.598 0H24v11.406H12.598V0ZM0 12.594h11.406V24H0V12.594ZM12.598 12.594H24V24H12.598V12.594Z\"\n })));\n};\nexport default SvgMicrosoftIcon;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgMicrosoft = function SvgMicrosoft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F35325\",\n d: \"M11.246 7.461H0v11.247h11.246V7.46Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#81BC06\",\n d: \"M23.703 7.461H12.457v11.247h11.246V7.46Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05A6F0\",\n d: \"M11.246 19.919H0v11.246h11.246V19.92Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFBA08\",\n d: \"M23.703 19.919H12.457v11.246h11.246V19.92Z\"\n })));\n};\nexport default SvgMicrosoft;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgOpenldap = function SvgOpenldap(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 744.09 1052.4\",\n width: \"1em\",\n height: \"1em\"\n }, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__e\",\n x1: 80.916,\n x2: 89.429,\n y1: 129.23,\n y2: 129.23,\n gradientTransform: \"translate(244.83 -81.693) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#60c\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#60c\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__d\",\n x1: 80.916,\n x2: 89.429,\n y1: 129.23,\n y2: 129.23,\n gradientTransform: \"translate(216.56 -73.967) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#60c\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#60c\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__b\",\n x1: 8.535,\n x2: 77.015,\n y1: 384.81,\n y2: 465.09,\n gradientTransform: \"translate(267.18 -40.495) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#6d5744\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#6d5744\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__a\",\n x1: -41.915,\n x2: 100.23,\n y1: 163.64,\n y2: 197.66,\n gradientTransform: \"translate(267.18 -40.495) scale(1.9236)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#6d5744\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#6d5744\",\n stopOpacity: 0\n }\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"openldap_svg__c\",\n x1: 420.17,\n x2: 416.51,\n y1: 220.22,\n y2: 202.05,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n style: {\n stopColor: \"#212121\"\n }\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#212121\",\n stopOpacity: 0\n }\n }))), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M416.93 357.28c-13.927 2.158-29.996 7.106-40.074 15.502 4.966 23.732 26.302-3.863 41.709 1.114 19.575-1.994 11.267-20.953-1.636-16.616zM405.02 320.44c-14.087-.44-30.791 1.47-42.241 7.87.518 24.24 26.564 1.039 40.793 8.764 19.608 1.639 14.927-18.525 1.447-16.634zM445.25 394.59c-13.87 2.5-29.812 7.842-39.68 16.484 5.548 23.602 26.199-4.51 41.724.087 19.52-2.475 10.748-21.224-2.044-16.57zM469.88 440.79c-14.484-5.122-45.334 19.408-19.277 22.574 8.32-8.557 21.103-5.338 32.541-7.27 13.791-10.401-3.588-17.608-13.264-15.303zM511.36 603.7c-19.378 6.19.023 20.385 12.165 15.99 8.792.11 17.767-.418 26.333.712 14.807-8.3-3.011-20.33-13.628-16.702h-24.87zM543.52 678c-16.558-7.786-30.682 18.894-7.972 16.243 11.17-3.076 30.464 6.068 35.019-8.248-1.659-13.088-18.785-5.98-27.047-7.995zM510.94 752.36c-23.064 11.227 20.121 24.639 19.417 29.155 5.015 8.059 5.422 11.558 9.593 13.687 18.953 4.068 9.72-18.678.806-25.048-8.268-8.393-17.81-15.759-29.816-17.794zM536.13 790.23l.06.24zM458.58 832.25c-21.038 7.37 4.813 20.578 14.908 23.685-2.962 12.592 14.925 29.912 18.094 9.738 1.794-20.17-15.98-29.587-33.002-33.423z\",\n style: {\n stroke: \"#816647\",\n strokeWidth: 2.5007,\n fill: \"#ff9\"\n }\n }), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n stroke: \"#015a01\"\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.98 488.01a31.122 36.497 0 1 1-1.22-64.48\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.9,\n fill: \"#6c3\"\n },\n transform: \"translate(-39.643 -60.964) scale(1.9236)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.8 445.27a33.986 36.899 0 1 1 9.737 39.546\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.88405,\n fill: \"#6c3\"\n },\n transform: \"rotate(-10.219 -127.089 1148.416) scale(1.95832)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.9 478.33a43.697 33.986 0 1 1 38.346 11.559\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.84894,\n fill: \"#6c3\"\n },\n transform: \"matrix(1.86568 .99923 -1.08995 1.6453 463.551 -138.373)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M205.36 406.05a50.381 30.214 0 1 1 75.368 24.902\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.86545,\n fill: \"#6c3\"\n },\n transform: \"matrix(1.82128 .74478 -.71166 1.9061 206.257 -166.5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.38 425.53a50.381 28.411 0 1 1 67.773.438\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.82037,\n fill: \"#6c3\"\n },\n transform: \"matrix(1.99535 .47632 -.45534 2.12327 90.042 -217.313)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.04 409.53a50.381 28.411 0 1 1 86.24 14.733\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.77966,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.0465 0 0 2.4093 -88.464 -261.585)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M225.39 392a46.972 26.895 0 1 1 62.784-15.176\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.806,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.1562 0 0 2.1396 -89.484 -106.989)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.51 375.64c4.938-9.01 1.653-17.354-7.625-24.469 6.077-17.646-8.654-60.144-35.031-91.812-1.38-1.658-3.293-2.985-5.625-4-6.188-22.424-26.148-28.54-43.875-23.594-23.792 6.64-44.719 13.087-44.719 29.25 0 8.436 5.46 16.034 14.188 21.375-.31.68-.594 1.362-.844 2.063-6.48 27.8 16.103 65.353 26.031 76.75.145.166.293.308.438.468-5.575 13.415 6.61 27.527 29.75 32.97\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.9,\n fill: \"#6c3\"\n },\n transform: \"translate(215.33 -72.118) scale(1.9236)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.1 192.18a35.714 25.423 0 1 1 60.364-7.458\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.75961,\n fill: \"#6c3\"\n },\n transform: \"rotate(-7.122 141.565 1368.623) scale(2.27916)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.18 192.64a35.714 26.026 0 1 1 58.892-5.404\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.75961,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.279 0 0 2.279 -132.014 -86.976)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M178.08 200.01a35.714 26.582 0 1 1 43.239-9.101\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.75961,\n fill: \"#6c3\"\n },\n transform: \"matrix(2.279 0 0 2.279 -127.205 -135.85)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.64 164.22a50.528 44.244 0 1 1 42.772 22.373\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 0.9,\n fill: \"#6c3\"\n },\n transform: \"rotate(-25.365 260.383 483.741) scale(1.9236)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M345.16 123.48c-18.445 2.416-36.231 9.639-51.157 20.739 3.67 10.439 8.552 19.439 7.764 31.245 6.17 3.425 6.974.76 8.707 8.67-5.472 1.348 12.146 3.992 16.65 3.197 12.842-6.387 1.965-24.003 5.472-35.177-1.157-12.639 4.178-18.613 12.564-28.674zm-11.662 17.072c-1.079 1.83 2.06.045 0 0zm-54.47 17.26c-14.103 14.686-23.007 34.328-24.586 54.643 5.548 6.701 10.064 14.055 23.745 12.744 12.83-.612 25.13 13.586 38.054 3.77.558-10.675-11.82-20.203-21.377-24.201-10.807-5.478-9.337-17.826-11.324-24.49-4.484-7.632-1.208-4.536-4.03-14.411-.42-2.662-.528-5.365-.481-8.056zm-39.194 77.006c-12.088 13.667-14.622 34.874-6.492 51.157-8.447 11.861-13.275 28.947-6.387 42.527 8.684 9.376 15.535 18.781 23.923 27.836 5.148 4.231 29.949 1.327 22.899-9.392 3.62-9.74 11.573-4.67 20.46-5.546-.882-6.944-13.13-21.402-3.727-21.28-5.308-.467-10.441.912-16.634-.663-2.316 1.179-11.748 3.965-16.789 7.156-2.813-4.37-9.528-9.026-14.006-13.285 6.329-6.942 12.568-11.394 18.635-22.362-1.418-11.027 1.41-23.937-4.952-34.526-4.39-7.982-9.538-16.258-16.93-21.62zm21.04 29.576c-2.579 2.068 2.648 1.222 0 0zm33.063 1.262c-7.962 8.595-13.598-.637-22.603 6.853-7.391 6.563-7.957 18.171.767 23.49 4.06 2.449 8.14 13.005 11.977 4.824 3.508-.209 6.1-.73 12.383-6.252 8.126-2.643 16.85-9.205 7.935-11.722-1.73 2.567-1.673-1.994-4.267-3.908-2.254 2.354-1.054-11.239-6.192-13.285zm9.678 15.15c-4.602 4.341 3.15 1.218 0 0zm-11.963 20.438c6.236 3.03 17.23-.028 4.42.286-1.482.204-2.946-.174-4.42-.286zm12.203.481c-.595 3.29 1.896.633 0 0zm-56.026 14.908c-.85.904 1.544.19 0 0zm43.703 3.487c-2.573 1.483 1.96-.001 0 0zm.421.12c-.561.637 1.28.297 0 0zm-13.646 20.92c-1.301.21.812 1.138 0 0zm3.907.42c-3.404 3.408 4.722.294 0 0zm-38.713 20.139c-16.799 2.284-10.957 31.496 2.805 33.354 5.64 9.286 19.757 13.694 24.547 24.655 12.72 4.112 22.56-7.895 20.44-20.018 8.73 1.284 22.706-6.826 20.378-18.335-11.926-.224-22.746-2.603-33.62 2.757-15.887 2.693-25.953-11.899-34.549-22.415zm45.025 14.968c-2.295 3.054 1.946 1.48 0 0zm-.781 1.503c-1.04-3.208-2.889 3.588 0 0zm2.645-1.503c-3.15 1.919 5.565.92 0 0zm.842 1.683c-1.517 1.519 3.67.686 0 0zm22.362 4.268c-2.081 2.173 2.8 3.946 0 0zm1.923 42.44c-1.06 2.522 4.023 2.282 0 0zm-60.835.481c-3.129 19.345 11.046 36.912 26.69 46.468-7.272 14.968 24.864 4.591 22.53-7.431-3.52-4.406-3.597-8.426-6.66-12.226 10.34.225 18.674-.723 29.335-7.574 10.545-.483-9.431-19.033-14.573-17.474-7.491 6.703-18.908 3.173-26.725 11.463-8.885-6.562-19.78-11.221-30.598-13.225zm50.616 27.232c-2.016.842 3.15 1.795 0 0zm-.781 8.236c-5.884 2.548 3.093 1.194 0 0z\",\n style: {\n fill: \"url(#openldap_svg__a)\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M376.06 624.62c-5.876 3.042-21.757 3.705-21.12 7.535 6.706 3.036-9.727 2.31-3.046-1.524-6.055 3.63-4.387-1.105-6.973 4.509-4.344-.588-1.79-8.583-9.235-2.745-12.237 6.275-3.708 20.152 2.654 27.602 2.665 6.133 15.762-6.604 17.04 4.539 8.022-2.48 15.796-2.173 24.888-5.53 7.495-.574 12.594 10.91 15.569 5.95 7.221-1.065 4.553 7.088 9.323.252 5.226-7.084 10.894-21.606 4.856-21.06-2.713-2.06-4.296-9.432.008-2.996 4.307-2.722.144-4.5 6.852-4.492 4.604-4.489-10.706 2.535-3.846-2.481-8.94.797 7.612-4.563-4.702-3.546-8.26-1.493-26.336 1.196-28.377-1.918 6.607-4.343-4.686 1.95-3.89-4.095zm-30.177 6.853c-.382-2.596-2.783-.59 0 0zm38.413-5.35c-5.547 4.11 3.66 3.36 0 0zm-35.167 3.246c-5.571 2.012 3.462 2.668 0 0zm-4.508 2.044c-3.596 1.388 5.346 4.043 0 0zm-1.684.54c-.852 1.16.955 2.003 0 0zm69.792 10.28c-3.374 1.08 2.565 1.766 0 0zm.782 12.444 4.93 12.444c-1.211-4.275-1.661-9.11-4.93-12.444zm-65.764 27.592c-5.276 5.044-13.384 8.078-14.41 16.23-5.04 9.286.73 20.869 9.09 22.718 4.203 9.595 17.532 7.67 22.512 16.336 10.903 2.65 26.672.473 27.793-13.261 6.018-16.31 13.062 9.716 22.882 9.772 4.928-1.522 7.334-2.06 10.615 1.278 3.227-2.624 8.773-1.22 12.59-5.944 2.41-1.37 5.576-10.131-1.49-13.02-6.048-4.783-11.199-22.286-19.283-11.598-2.185-3.091-10.746-6.59-9.8-.397-5.938 4.84-10.636.017-5.796-4.921-11.975 1.757-23.053-.588-34.994-.398-5.478 1.504-14.347 1.281-6.786-4.471-3.455-4.987-10.878-6.38-12.924-12.323zm17.794 13.105c-10.605 2.308 7.362 2.827 0 0zm51.157 4.809c-1.854 2.246 4.144 1.687 0 0zm2.164 1.323c-2.217 4.01 3.012.564 0 0zm-77.066 20.859c-2.942 1.253 1.563 2.385 0 0zm102.19 2.284c.7 2.992 4.89 1.724 0 0zm-125.94 6.672c-8.115 5.513-20.707 9.841-24.887 18.094 5.362 7.538 9.86 15.711 12.55 23.686 3.711 1.483 12.27 11.936 10.233 7.152-2.548-3.394 10.374 6.403 2.557 2.03-3.485 5.547 6.905 14.76 12.921 6.704 3.367-2.554 11.628-6.886 5.261.043-6.153 14.272 11.76 23.915 21.881 23.324-1.587 5.039 13.156 3.343 10.16-3.787 9.783 6.205 10.034-12.581 12.15-18.922 1.04-4.433 2.08-8.866 3.118-13.3-1.89 2.532-9.142.334-9.002 1.835-4.931-4.11-13.488 3.44-16.666-.151-6.938-1.54-9.062-7.517-9.739-12.985-8.094.567-3.698.62-1.576-4.514-5.869-.315-13.837-1.76-12.14-7.101-11.402-4.656-2.209-15.071-10.819-21.29-1.93-.648-3.984-.769-6.003-.82zm-44.965 12.864c-8.59-.995-7.514 5.968-13.225 2.946-10.15 5.745-20.136-2.751-30.925-1.387-29.137.253-51.071 29.092-55.872 56.42-7.326 13.756 5.339-.477 13.637-2.2-2.174-12.195 15.58-25.188 15.597-13.978-2.572 4.957.562 35.905 9.372 42.415 5.65 7.411 15.864 7.438 16.829-3.37 2.964-7.94 10.06-14.312 13.028-18.147-6.703 3.544-3.79-6.904-7.88-9.219 6.738-6.241-3.49-25.475.967-30.577 1.888.822 19.213-10.243 18.074 3.77 1.16 3.555-8.118 5.14-2.024 8.433-7.658 4.665 3.455 5.39-3.427 9.498 3.253 5.399 6.01 9.833 2.165 15.028 5.35 2.88-.846 4.956 2.464 9.859 1.778 3.928 6.245.778 1.383 5.41-1.361 8.392 12.419 11.331 9.277 18.591 8.517 3.138 17.255 14.93 21.647 1.175 4.39-6.642 8.989-13.158 13.44-19.766-3.415 1.673-6.978-2.014-10.4-3.306 3.183-7.442-7.567-10.669-4.388-18.695 2.026-5.576-2.942-14.986 1.397-15.442-3.634-2.89 2.346.649-.435-4.335 3.824-1.818-1.302-7.133 5.59-7.094-4.774-7.513 7.287-4.69 3.06-10.753-6.328-3.212 11.084-14.42-1.016-12.034-3.592-.464-14.71-3.287-18.334-3.242zm68.409 12.564c-5.594.816-1.062 2.671 0 0zm-106.58 10.76c-3.124 2.508 2.53 1.994 0 0zm-.18 2.165c-2.707.23 3.602 2.232 0 0zm116.32 1.983c-.612 2.06 1.536.488 0 0zm-33.123 9.258c-1.11 1.048.899.708 0 0zm-75.743 29.816c.207 1.666-.16.54 0 0zm1.322.06c.487 1.064-.19.145 0 0zm112.77 2.164c-3.791 1.324 3.067 2.71 0 0z\",\n style: {\n fill: \"url(#openldap_svg__b)\"\n }\n }), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n stroke: \"#015a01\"\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.95 147.91c2.062 13.147-6.643 16.932-10.971 15.996\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 1,\n fill: \"#6c3\"\n },\n transform: \"translate(215.33 -72.118) scale(1.9236)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M247.45 144.66a14.908 15.413 0 0 1-28.87 1.41\",\n style: {\n stroke: \"#015a01\",\n fill: \"#6c3\"\n },\n transform: \"matrix(2.0679 0 0 1.9236 -85.252 -62.905)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M254.4 122.14a13.756 14.188 0 0 1-9.596 26.558\",\n style: {\n stroke: \"#015a01\",\n fill: \"#6c3\"\n },\n transform: \"matrix(1.69038 0 0 1.9236 8.062 -62.905)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M427.42 204.03a13.577 11.915 0 1 1-20.903 3.651\",\n style: {\n stroke: \"#333\",\n strokeWidth: 1.431,\n fill: \"url(#openldap_svg__c)\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M280.54 469.64c8.633 3.94 25.105 2 46.417-3.57M257.12 414.7c8.633 3.94 28.892 5.786 50.204.217M241.99 350.59c12.42 7.726 15.901 10.802 32.109 11.815\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 1.7313,\n fill: \"none\"\n }\n }), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n opacity: 0.45,\n stroke: \"#015a01\"\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M238.76 154.03a10.902 13.628 0 1 1-21.804 0 10.902 13.628 0 1 1 21.804 0z\",\n style: {\n opacity: 0.33,\n stroke: \"#015a01\",\n fill: \"#060\"\n },\n transform: \"matrix(1.91312 -1.0905 1.23997 1.6825 -284.739 205.84)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-2.467 124.52c-10.397 7.867 3.174 25.794 15.402 20.06 11.488-7.465-3.201-26.94-15.402-20.06z\",\n style: {\n opacity: 0.33,\n stroke: \"#015a01\",\n fill: \"#060\"\n },\n transform: \"translate(336.93 -40.977) scale(1.9236)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M403.28 150.64c-7.692.501-14.793 4.685-15.089 13.586a20.49 20.49 0 0 0 .48 3.306c-3.317-3.523-7.434-6.313-11.36-7.815-11.25-6.31-32.094-3.901-32.642 12.083 1.272 20.2 29.984 34.111 46.288 21.701 4.544-4.377 5.481-9.502 4.268-14.487 8.648 8.688 23.31 12.136 32.942 4.569 10.541-10.48-1.254-25.962-11.782-30.117-3.642-2.109-8.49-3.126-13.105-2.825z\",\n style: {\n opacity: 0.5696,\n stroke: \"#015a01\",\n strokeWidth: 1.9236,\n fill: \"#015a01\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M352.96 116.34c1.938-.888 4.249.037 5.182 2.073 0 0 3.183 13.713 11.456 25.004 2.145 6.463-6.445 8.713-8.763 4.015 0 0-.968-10.617-11.456-25.004s.648-4.744 3.581-6.088z\",\n style: {\n stroke: \"#424242\",\n strokeWidth: 1.9236,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M362.23 112.63a11.734 11.734 0 1 1-23.468 0 11.734 11.734 0 1 1 23.468 0z\",\n style: {\n stroke: \"#3c3c3c\",\n strokeWidth: 2.843,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M392.01 189.01c-3.48 7.067-14.963 8.53-25.649 3.27-10.687-5.262-16.529-15.256-13.05-22.323 3.48-7.067 12.924-3.34 25.649-3.269 11.911.067 16.529 15.255 13.05 22.322zM428.77 179.39c-2.932 6.147-12.61 7.42-21.616 2.844s-13.93-13.27-10.998-19.416c2.932-6.147 10.386-3.713 21.616-2.844 10.072.78 13.93 13.269 10.998 19.416z\",\n style: {\n stroke: \"#015a01\",\n strokeWidth: 1.9236,\n fill: \"#eee\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M386.95 174.62a6.554 6.292 0 1 1-13.107 0 6.554 6.292 0 1 1 13.107 0z\",\n style: {\n stroke: \"url(#openldap_svg__d)\",\n strokeWidth: 3.2702,\n fill: \"#212121\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M420.28 260.08c-66.519-.144-41.52 15.048-88.371 22.3-26.994 12.355 2.254 36.023-28.249 57.531-12.191 24.257 25.422 32.975 14.127 56.988 1.094 17.721 28.212 17.044 15.87 35.106.077 27.295 34.615 32.862 24.995 61.134 5.822 58.494 26.558 115.42 56.87 165.61 24.209 15.049 1.4 44.842 26.58 58.256-15.417 16.017-2.308 41.461-16.414 58.695-15.858 27.915-52.033 71.541-86.055 70.198-32.5 6.163-62.672-8.101-85.514 18.724-21.068 27.152 26.849 29.08 43.943 22.231 17.663-15.932 35.21-5.876 56.135-3.462 21.996 1.56 46.031-3.354 62.056-19.468 25.603.823 58.065-11.778 61.136-40.697 25.458-6.112 48.466-32.949 36.241-59.636 7.342-17.164 35.37-42.277 20.025-68.406 16.566-22.139-13.544-40.219-11.646-57.89 1.52-24.036-27.484-32.739-16.422-57.827-5.88-56.776-34.65-108.99-69.858-152.93-17.715-10.826-17.772-37.67-38.852-46.975-1.577-13.237-.082-35.222-15.13-46.08 12.85-21.035-11.481-49.556 20.581-57.405 9.32-6.825 11.765-6.15 17.952-15.995z\",\n style: {\n opacity: 0.16,\n strokeOpacity: 0.45631,\n stroke: \"#015a01\",\n strokeWidth: 1.9236,\n fill: \"#2f5a01\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m364.39 291.24-33.123 5.23c17.189-1.058 41.41 10.702 52.138 2.144 2.808-7.652-14.418-4.55-19.015-7.374zm18.755 37.451c-2.226.221-5.16.953-5.951.18-15.9.467-38.753 1.689-50.255 5.951l31.379 7.996c9.785-5.765 36.092 1.65 26.45-11.301 2.09-2.727.603-3.047-1.623-2.826zm15.269 47.37c-23.53 1.418-46.945 4.234-70.513 5.17 18.484 2.734 36.866 6.798 55.605 3.547 8.85-2.878 26.726 3.882 14.908-8.717zm30.418 42.621c-17.609 2.141-22.028.732-40.577 1.082-12.172-.35-44.69.348-44.244 2.946 15.711 2.07 31.36 6.102 47.189 2.464 8.774-3.204 54.756 6.425 37.631-6.492zm27.472 33.664c-30.006 4.477-61.241 1.051-90.411 10.881l33.363 3.907c16.451-8.86 54.588-1.713 59.693-10.94zM497 602.56c-7.134-.107-15.756 1.445-21.4.36-22.649.075-44.368 7.02-66.305 11.783 15.165.922 30.594 7.281 45.446 1.623 15.954-6.58 41.892-5.303 52.539-10.82-2.28-2.21-5.999-2.882-10.279-2.946zm13.526 44.965c-14.177-.298-32.495 2.867-43.582.902l-33.002 5.23c31.72-.05 63.44.025 95.16 0-3.034-4.524-10.069-5.953-18.575-6.132zm-6.913 48.692c-4.496-.07-8.982.188-13.526 1.022l-32.522 8.175c21.543-3.55 43.01 2.847 64.562-1.202 11.962 2.216 20.66-8.78 3.907-6.793-7.5-.175-14.929-1.085-22.422-1.202zM465.2 757.773l-29.576 7.995c23.849 2.836 47.753 6.214 71.656 1.503 9.744-1.574 4.567-13.92-3.667-5.59-12.552 1.862-25.699-3.404-38.413-3.908zm-33.063 63.961-33.123 5.23c26.419-2.515 51.986 6.292 78.328 4.689 5.416-14.802-36.343-7.572-45.206-9.919zm-38.773 30.297c-10.945.795-21.774 3.134-32.642 4.81 19.66-1.443 39.974 13.754 57.409 7.573 8.563.63 33.329-2.739 11.842-4.929-12.15-2.623-23.995-7.708-36.61-7.454z\",\n style: {\n opacity: 0.22,\n fill: \"#816647\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M304.45 326.16c-10.886 1.967-8.4 22.052 3.066 22.302 8.465 2.325 15.632 3.845 26.342.932 11.164-8.74-4.137-14.974-12.453-12.714-16.156 1.402-6.886-8.034-16.955-10.52zm5.951 53.08c-15.564 5.843-1.743 25.357 11.602 21.821 10.833.873 16.443-4.823 22.422-7.514 13.366-13.213-9.2-14.904-16.952-6.011-12.514 4.096-8.06-5.899-17.072-8.296zm50.736 40.877c-10.278-.312-16.719 10.516-26.51 10.099-15.413-2.714-11.509 17.881 2.164 13.285 10.433 1.739 13.941-8.465 23.925-9.317 8.076-.63 9.6-13.53.421-14.067zm19.717 50.916c-7.237 2.817-15.739 11.599-24.045 7.213-17.483-12.77-11.249 18.608-.901 14.127 9.028 2.152 20.787-3.388 25.428-6.792 3.646.512 11.826-13.3-.482-14.547zm-4.629 17.373c-1.757 1.064 1.7-.61 0 0zm48.632 150.16c-16.235 5.22 1.896 25.317 13.465 25.067 10.318.826 21.684.346 28.734-8.176 9.25-23.358-30.97 7.123-37.196-14.127l-1.45-1.515-3.553-1.25zm7.334 67.027c-12.786 3.28-2.84 22.219 3.727 28.433 9.873 6.706 22.122 6.794 33.616 5.38 11.174-8.715-4.149-14.989-12.453-12.714-8 1.03-16.762-3.311-17.255-12.143-1.53-3.684-2.48-8.882-7.634-8.957zm12.864 32.822-.6-.3zm-60.354 65.344c-11.482 3.658-6.54 21.416-.12 28.373 4.485 5.22 7.873 12.227 12.203 15.208 5.716 3.355 9.67 8.453 16.776 5.416 9.556-6.93-8.199-14.998-5.835-13.892-5.885-2.69-9.886-12.655-15.028-18.034-3.525-5.64 2.14-16.518-7.995-17.072zm11.963 43.462c-2.054-2.264-.507-.136 0 0zm-91.313-6.312c-10.66 4.691-10.693 19.058-10.219 29.212-1.488 10.106 2.839 20.308 12.804 24.048 16.495 8.538 9.815-16.676 2.104-14.427-4.5-4.573.282-13.545-1.622-19.356-.478-6.55 10.803-17.505-3.067-19.477zm-75.623 3.246c-8.979 2.724-15.863 14.021-15.509 26.03-2.008 9.592 3.418 22.026 10.4 23.864 15.634 10.556 16.95-11.274 2.886-14.668-.48-9.208-.568-19.474 8.14-25.047 3.09-4.211-.8-10.666-5.916-10.179zm172.17 6.372c.434.02.033.146 0 0zm-92.816 5.59c.286-.058-.476.461 0 0z\",\n style: {\n stroke: \"#816647\",\n strokeWidth: 2.5007,\n fill: \"#ff9\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M403.43 108.33c2.104.342 3.508 2.397 3.148 4.608 0 0-4.995 13.162-4.414 27.147-1.818 6.562-10.206 3.646-9.514-1.547 0 0 5.11-9.356 4.414-27.147-.695-17.79 3.182-3.579 6.366-3.061z\",\n style: {\n stroke: \"#424242\",\n strokeWidth: 1.9236,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M413.2 110.41a11.734 11.734 0 1 1-19.49-13.077 11.734 11.734 0 1 1 19.49 13.077z\",\n style: {\n stroke: \"#3c3c3c\",\n strokeWidth: 2.843,\n fill: \"#474747\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M415.23 166.9a6.554 6.292 0 1 1-13.107 0 6.554 6.292 0 1 1 13.107 0z\",\n style: {\n stroke: \"url(#openldap_svg__e)\",\n strokeWidth: 3.2702,\n fill: \"#212121\"\n }\n }));\n};\nexport default SvgOpenldap;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgProget = function SvgProget(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#282B3A\",\n d: \"M23.586 13.035 13.46 7.381a2.24 2.24 0 0 0-2.192 0L1.144 13.035A2.255 2.255 0 0 0 0 15.036v11.198a2.255 2.255 0 0 0 1.144 1.961l10.125 5.654a2.24 2.24 0 0 0 2.192 0l10.125-5.693a2.248 2.248 0 0 0 1.151-1.962V15.036a2.246 2.246 0 0 0-1.151-2Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3FA9F5\",\n d: \"m16.01 18.213-3.375-1.89a.564.564 0 0 0-.548 0l-3.367 1.89a.556.556 0 0 0-.294.492v3.733a.556.556 0 0 0 .294.492l3.367 1.89a.564.564 0 0 0 .548 0l3.375-1.842a.564.564 0 0 0 .285-.493v-3.732a.564.564 0 0 0-.285-.54Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1696F0\",\n d: \"M6.742 23.772v-5.313l-3.375-1.834v8.338a1.136 1.136 0 0 0 .58.985l7.576 4.232v-3.772l-4.78-2.636Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#37BBF7\",\n d: \"M12.911 10.843a1.12 1.12 0 0 0-1.096 0l-7.647 4.273 3.399 1.874 4.764-2.676 4.741 2.628 3.336-1.906-7.497-4.193Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#79BFF2\",\n d: \"M18.026 18.372v5.4l-4.764 2.668v3.772l7.576-4.232a1.129 1.129 0 0 0 .571-.985V16.45l-3.383 1.922Z\"\n })));\n};\nexport default SvgProget;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgQuay = function SvgQuay(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 36 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#40B4E5\",\n fillRule: \"evenodd\",\n d: \"m21.696 7.1 6.024 12.901L21.696 32.9H16.57l6.021-12.899L16.571 7.1h5.125Z\",\n clipRule: \"evenodd\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003764\",\n fillRule: \"evenodd\",\n d: \"m16.57 32.9-6.024-12.899L16.57 7.1h5.126l-6.021 12.901 6.02 12.899H16.57Z\",\n clipRule: \"evenodd\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#40B4E5\",\n fillRule: \"evenodd\",\n d: \"M13.859 12.905 11.15 7.1H6.024l5.273 11.296 2.562-5.492ZM11.297 21.604 6.024 32.9h5.126l2.709-5.804-2.562-5.492Z\",\n clipRule: \"evenodd\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003764\",\n fillRule: \"evenodd\",\n d: \"M6.024 32.9 0 20.001 6.024 7.1h5.126L5.126 20.001 11.15 32.9H6.024Z\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgQuay;","import _ from 'lodash';\n\nconst categories = [\n 'docker',\n 'kubernetes',\n 'aci',\n 'portainer',\n 'edge',\n] as const;\ntype Category = (typeof categories)[number];\n\nenum DimensionConfig {\n PortainerVersion = 1,\n PortainerInstanceID,\n PortainerUserRole,\n PortainerEndpointUserRole,\n}\n\nexport interface TrackEventProps {\n category: Category;\n metadata?: Record<string, unknown>;\n value?: string | number;\n dimensions?: DimensionConfig;\n}\n\nexport function setPortainerStatus(instanceID: string, version: string) {\n setCustomDimension(DimensionConfig.PortainerInstanceID, instanceID);\n setCustomDimension(DimensionConfig.PortainerVersion, version);\n}\n\nexport function setUserRole(role: string) {\n setCustomDimension(DimensionConfig.PortainerUserRole, role);\n}\n\nexport function clearUserRole() {\n deleteCustomDimension(DimensionConfig.PortainerUserRole);\n}\n\nexport function setUserEndpointRole(role: string) {\n setCustomDimension(DimensionConfig.PortainerEndpointUserRole, role);\n}\n\nexport function clearUserEndpointRole() {\n deleteCustomDimension(DimensionConfig.PortainerEndpointUserRole);\n}\n\nfunction setCustomDimension(dimensionId: number, value: string) {\n push('setCustomDimension', dimensionId, value);\n}\n\nfunction deleteCustomDimension(dimensionId: number) {\n push('deleteCustomDimension', dimensionId.toString());\n}\n\nexport function push(\n name: string,\n ...args: (string | number | DimensionConfig)[]\n) {\n if (typeof window !== 'undefined') {\n window._paq.push([name, ...args]);\n }\n}\n\nexport function trackEvent(action: string, properties: TrackEventProps) {\n /**\n * @description Logs an event with an event category (Videos, Music, Games...), an event\n * action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...), and an optional\n * event name and optional numeric value.\n *\n * @link https://piwik.org/docs/event-tracking/\n * @link https://developer.piwik.org/api-reference/tracking-javascript#using-the-tracker-object\n *\n */\n\n let { value } = properties;\n const { metadata, dimensions, category } = properties;\n // PAQ requires that eventValue be an integer, see: http://piwik.org/docs/event-tracking\n if (value) {\n const parsed = parseInt(value.toString(), 10);\n value = Number.isNaN(parsed) ? 0 : parsed;\n }\n\n if (!category) {\n throw new Error('missing category');\n }\n\n if (!categories.includes(category)) {\n throw new Error('unsupported category');\n }\n\n let metadataString = '';\n if (metadata) {\n const kebabCasedMetadata = Object.fromEntries(\n Object.entries(metadata).map(([key, value]) => [_.kebabCase(key), value])\n );\n metadataString = JSON.stringify(kebabCasedMetadata).toLowerCase();\n }\n\n push(\n 'trackEvent',\n category,\n action.toLowerCase(),\n metadataString, // Changed in favour of Piwik documentation. Added fallback so it's backwards compatible.\n value || '',\n dimensions || <DimensionConfig>{}\n );\n}\n\ndeclare global {\n interface Window {\n _paq: [string, ...(string | number)[]][];\n }\n}\n","// try to declare constant where it's needed, not in a global file\nexport const API_ENDPOINT_AUTH = 'api/auth';\nexport const API_ENDPOINT_BACKUP = 'api/backup';\nexport const API_ENDPOINT_CUSTOM_TEMPLATES = 'api/custom_templates';\nexport const API_ENDPOINT_EDGE_GROUPS = 'api/edge_groups';\nexport const API_ENDPOINT_EDGE_JOBS = 'api/edge_jobs';\nexport const API_ENDPOINT_EDGE_STACKS = 'api/edge_stacks';\nexport const API_ENDPOINT_EDGE_TEMPLATES = 'api/edge_templates';\nexport const API_ENDPOINT_ENDPOINTS = 'api/endpoints';\nexport const API_ENDPOINT_ENDPOINT_GROUPS = 'api/endpoint_groups';\nexport const API_ENDPOINT_KUBERNETES = 'api/kubernetes';\nexport const API_ENDPOINT_MOTD = 'api/motd';\nexport const API_ENDPOINT_REGISTRIES = 'api/registries';\nexport const API_ENDPOINT_RESOURCE_CONTROLS = 'api/resource_controls';\nexport const API_ENDPOINT_SETTINGS = 'api/settings';\nexport const API_ENDPOINT_STACKS = 'api/stacks';\nexport const API_ENDPOINT_SUPPORT = 'api/support';\nexport const API_ENDPOINT_USERS = 'api/users';\nexport const API_ENDPOINT_TAGS = 'api/tags';\nexport const API_ENDPOINT_TEAMS = 'api/teams';\nexport const API_ENDPOINT_TEAM_MEMBERSHIPS = 'api/team_memberships';\nexport const API_ENDPOINT_TEMPLATES = 'api/templates';\nexport const API_ENDPOINT_WEBHOOKS = 'api/webhooks';\nexport const PAGINATION_MAX_ITEMS = 10;\nexport const APPLICATION_CACHE_VALIDITY = 3600;\nexport const CONSOLE_COMMANDS_LABEL_PREFIX = 'io.portainer.commands.';\nexport const PREDEFINED_NETWORKS = ['host', 'bridge', 'ingress', 'nat', 'none'];\nexport const PORTAINER_FADEOUT = 1500;\nexport const STACK_NAME_VALIDATION_REGEX = '^[-_a-z0-9]+$';\n","import { NodeStatus, TaskState } from 'docker-types/generated/1.41';\nimport _ from 'lodash';\n\nexport function trimVersionTag(fullName: string) {\n if (!fullName) {\n return fullName;\n }\n\n const versionIdx = fullName.lastIndexOf(':');\n if (versionIdx < 0) {\n return fullName;\n }\n\n const hostIdx = fullName.indexOf('/');\n if (hostIdx > versionIdx) {\n return fullName;\n }\n\n return fullName.substring(0, versionIdx);\n}\n\nexport function trimSHA(imageName: string) {\n if (!imageName) {\n return '';\n }\n if (imageName.indexOf('sha256:') === 0) {\n return imageName.substring(7, 19);\n }\n return _.split(imageName, '@sha256')[0];\n}\n\nexport function joinCommand(command: null | Array<string> = []) {\n if (!command) {\n return '';\n }\n\n return command.join(' ');\n}\n\nexport function taskStatusBadge(text?: TaskState) {\n const status = _.toLower(text);\n if (\n [\n 'new',\n 'allocated',\n 'assigned',\n 'accepted',\n 'preparing',\n 'ready',\n 'starting',\n 'remove',\n ].includes(status)\n ) {\n return 'info';\n }\n\n if (['pending'].includes(status)) {\n return 'warning';\n }\n\n if (['shutdown', 'failed', 'rejected', 'orphaned'].includes(status)) {\n return 'danger';\n }\n\n if (['complete'].includes(status)) {\n return 'primary';\n }\n\n if (['running'].includes(status)) {\n return 'success';\n }\n return 'default';\n}\n\nexport function nodeStatusBadge(text: NodeStatus['State']) {\n if (text === 'down' || text === 'unknown' || text === 'disconnected') {\n return 'danger';\n }\n\n return 'success';\n}\n\nexport function hideShaSum(imageName = '') {\n return imageName.split('@sha')[0];\n}\n","import { splitargs } from './splitargs';\n\nexport function commandStringToArray(command: string) {\n return splitargs(command);\n}\n\nexport function commandArrayToString(array: string[]) {\n return array.map((elem) => `'${elem}'`).join(' ');\n}\n","/**\n\nSplits strings into tokens by given separator except treating quoted part as a single token.\n\n\n#Usage\n```javascript\nvar splitargs = require('splitargs');\n\nvar i1 = \"I said 'I am sorry.', and he said \\\"it doesn't matter.\\\"\";\nvar o1 = splitargs(i1);\nconsole.log(o1);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n\n\nvar i2 = \"I said \\\"I am sorry.\\\", and he said \\\"it doesn't matter.\\\"\";\nvar o2 = splitargs(i2);\nconsole.log(o2);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n\n\nvar i3 = 'I said \"I am sorry.\", and he said \"it doesn\\'t matter.\"';\nvar o3 = splitargs(i3);\nconsole.log(o3);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n\n\nvar i4 = 'I said \\'I am sorry.\\', and he said \"it doesn\\'t matter.\"';\nvar o4 = splitargs(i4);\nconsole.log(o4);\n\n[ 'I',\n 'said',\n 'I am sorry.,',\n 'and',\n 'he',\n 'said',\n 'it doesn\\'t matter.' ]\n ```\n */\n\nexport function splitargs(\n input: string,\n sep?: RegExp | string,\n keepQuotes = false\n) {\n const separator = sep || /\\s/g;\n let singleQuoteOpen = false;\n let doubleQuoteOpen = false;\n let tokenBuffer = [];\n const ret = [];\n\n const arr = input.split('');\n for (let i = 0; i < arr.length; ++i) {\n const element = arr[i];\n const matches = element.match(separator);\n // TODO rewrite without continue\n /* eslint-disable no-continue */\n if (element === \"'\" && !doubleQuoteOpen) {\n if (keepQuotes) {\n tokenBuffer.push(element);\n }\n singleQuoteOpen = !singleQuoteOpen;\n continue;\n } else if (element === '\"' && !singleQuoteOpen) {\n if (keepQuotes) {\n tokenBuffer.push(element);\n }\n doubleQuoteOpen = !doubleQuoteOpen;\n continue;\n }\n /* eslint-enable no-continue */\n\n if (!singleQuoteOpen && !doubleQuoteOpen && matches) {\n if (tokenBuffer.length > 0) {\n ret.push(tokenBuffer.join(''));\n tokenBuffer = [];\n } else if (sep) {\n ret.push(element);\n }\n } else {\n tokenBuffer.push(element);\n }\n }\n\n if (tokenBuffer.length > 0) {\n ret.push(tokenBuffer.join(''));\n } else if (sep) {\n ret.push('');\n }\n\n return ret;\n}\n","// original code comes from https://www.npmjs.com/package/x256\n// only picking the used parts as there is no type definition\n// package is unmaintained and repository doesn't exist anymore\n\n// colors scraped from\n// http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html\n// %s/ *\\d\\+ \\+#\\([^ ]\\+\\)/\\1\\r/g\n\nimport rawColors from './rawColors.json';\n\nexport type RGBColor = [number, number, number];\nexport type TextColor = string | undefined;\n\nfunction hexToRGB(hex: string): RGBColor {\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n return [r, g, b];\n}\n\nexport const colors = rawColors.map(hexToRGB);\n\nexport const FOREGROUND_COLORS_BY_ANSI: {\n [k: string]: RGBColor;\n} = {\n black: colors[0],\n red: colors[1],\n green: colors[2],\n yellow: colors[3],\n blue: colors[4],\n magenta: colors[5],\n cyan: colors[6],\n white: colors[7],\n brightBlack: colors[8],\n brightRed: colors[9],\n brightGreen: colors[10],\n brightYellow: colors[11],\n brightBlue: colors[12],\n brightMagenta: colors[13],\n brightCyan: colors[14],\n brightWhite: colors[15],\n};\n\nexport const BACKGROUND_COLORS_BY_ANSI: {\n [k: string]: RGBColor;\n} = {\n bgBlack: colors[0],\n bgRed: colors[1],\n bgGreen: colors[2],\n bgYellow: colors[3],\n bgBlue: colors[4],\n bgMagenta: colors[5],\n bgCyan: colors[6],\n bgWhite: colors[7],\n bgBrightBlack: colors[8],\n bgBrightRed: colors[9],\n bgBrightGreen: colors[10],\n bgBrightYellow: colors[11],\n bgBrightBlue: colors[12],\n bgBrightMagenta: colors[13],\n bgBrightCyan: colors[14],\n bgBrightWhite: colors[15],\n};\n","import { FontWeight } from 'xterm';\n\nimport { type TextColor } from './colors';\n\nexport type Token = string | number;\n\nexport type Level =\n | 'debug'\n | 'info'\n | 'warn'\n | 'error'\n | 'DBG'\n | 'INF'\n | 'WRN'\n | 'ERR';\n\nexport type JSONStackTrace = {\n func: string;\n line: string;\n source: string;\n}[];\n\nexport type JSONLogs = {\n [k: string]: unknown;\n time: number;\n level: Level;\n caller: string;\n message: string;\n stack_trace?: JSONStackTrace;\n};\n\nexport type Span = {\n fgColor?: TextColor;\n bgColor?: TextColor;\n text: string;\n fontWeight?: FontWeight;\n};\n\nexport type FormattedLine = {\n spans: Span[];\n line: string;\n};\n\nexport const TIMESTAMP_LENGTH = 31; // 30 for timestamp + 1 for trailing space\n\nexport const Colors = {\n Grey: 'var(--text-log-viewer-color-json-grey)',\n Magenta: 'var(--text-log-viewer-color-json-magenta)',\n Yellow: 'var(--text-log-viewer-color-json-yellow)',\n Green: 'var(--text-log-viewer-color-json-green)',\n Red: 'var(--text-log-viewer-color-json-red)',\n Blue: 'var(--text-log-viewer-color-json-blue)',\n};\n","import { format } from 'date-fns';\nimport { takeRight } from 'lodash';\n\nimport { Span, Level, Colors, JSONStackTrace, FormattedLine } from './types';\n\nconst spaceSpan: Span = { text: ' ' };\n\nfunction logLevelToSpan(level: Level): Span {\n switch (level) {\n case 'debug':\n case 'DBG':\n return {\n fgColor: Colors.Grey,\n text: 'DBG',\n fontWeight: 'bold',\n };\n case 'info':\n case 'INF':\n return {\n fgColor: Colors.Green,\n text: 'INF',\n fontWeight: 'bold',\n };\n case 'warn':\n case 'WRN':\n return {\n fgColor: Colors.Yellow,\n text: 'WRN',\n fontWeight: 'bold',\n };\n case 'error':\n case 'ERR':\n return {\n fgColor: Colors.Red,\n text: 'ERR',\n fontWeight: 'bold',\n };\n default:\n return { text: level };\n }\n}\n\nexport function formatTime(\n time: number | string | undefined,\n spans: Span[],\n line: string\n) {\n let nl = line;\n if (time) {\n let date = '';\n if (typeof time === 'number') {\n // time is a number, so it is the number of seconds OR milliseconds since Unix Epoch (1970-01-01T00:00:00.000Z)\n // we need to know if time's unit is second or millisecond\n // 253402214400 is the numer of seconds between Unix Epoch and 9999-12-31T00:00:00.000Z\n // if time is greater than 253402214400, then time unit cannot be second, so it is millisecond\n const timestampInMilliseconds = time > 253402214400 ? time : time * 1000;\n date = format(new Date(timestampInMilliseconds), 'Y/MM/dd hh:mmaa');\n } else {\n date = time;\n }\n spans.push({ fgColor: Colors.Grey, text: date }, spaceSpan);\n nl += `${date} `;\n }\n return nl;\n}\n\nexport function formatLevel(\n level: Level | undefined,\n spans: Span[],\n line: string\n) {\n let nl = line;\n if (level) {\n const levelSpan = logLevelToSpan(level);\n spans.push(levelSpan, spaceSpan);\n nl += `${levelSpan.text} `;\n }\n return nl;\n}\n\nexport function formatCaller(\n caller: string | undefined,\n spans: Span[],\n line: string\n) {\n let nl = line;\n if (caller) {\n const trim = takeRight(caller.split('/'), 2).join('/');\n spans.push(\n { fgColor: Colors.Magenta, text: trim, fontWeight: 'bold' },\n spaceSpan\n );\n spans.push({ fgColor: Colors.Blue, text: '>' }, spaceSpan);\n nl += `${trim} > `;\n }\n return nl;\n}\n\nexport function formatMessage(\n message: string,\n spans: Span[],\n line: string,\n hasKeys: boolean\n) {\n let nl = line;\n if (message) {\n spans.push({ fgColor: Colors.Magenta, text: `${message}` }, spaceSpan);\n nl += `${message} `;\n\n if (hasKeys) {\n spans.push({ fgColor: Colors.Magenta, text: `|` }, spaceSpan);\n nl += '| ';\n }\n }\n return nl;\n}\n\nexport function formatKeyValuePair(\n key: string,\n value: unknown,\n spans: Span[],\n line: string,\n isLastKey: boolean\n) {\n let nl = line;\n\n const strValue = typeof value !== 'string' ? JSON.stringify(value) : value;\n\n spans.push(\n { fgColor: Colors.Blue, text: `${key}=` },\n {\n fgColor: key === 'error' || key === 'ERR' ? Colors.Red : Colors.Magenta,\n text: strValue,\n }\n );\n if (!isLastKey) spans.push(spaceSpan);\n nl += `${key}=${strValue}${!isLastKey ? ' ' : ''}`;\n\n return nl;\n}\n\nexport function formatStackTrace(\n stackTrace: JSONStackTrace | undefined,\n lines: FormattedLine[]\n) {\n if (stackTrace) {\n stackTrace.forEach(({ func, line: lineNumber, source }) => {\n const line = ` at ${func} (${source}:${lineNumber})`;\n const spans: Span[] = [\n spaceSpan,\n spaceSpan,\n spaceSpan,\n spaceSpan,\n { text: 'at ', fgColor: Colors.Grey },\n { text: func, fgColor: Colors.Red },\n { text: `(${source}:${lineNumber})`, fgColor: Colors.Grey },\n ];\n lines.push({ line, spans });\n });\n }\n}\n","import {\n formatCaller,\n formatKeyValuePair,\n formatLevel,\n formatMessage,\n formatStackTrace,\n formatTime,\n} from './formatters';\nimport {\n FormattedLine,\n JSONStackTrace,\n Level,\n Span,\n TIMESTAMP_LENGTH,\n} from './types';\n\nconst dateRegex = /(\\d{4}\\/\\d{2}\\/\\d{2} \\d{2}:\\d{2}[AP]M) /; // \"2022/02/01 04:30AM \"\nconst levelRegex = /(\\w{3}) /; // \"INF \" or \"ERR \"\nconst callerRegex = /(.+?.go:\\d+) /; // \"path/to/file.go:line \"\nconst chevRegex = /> /; // \"> \"\nconst messageAndPairsRegex = /(.*)/; // include the rest of the string in a separate group\n\nconst keyRegex = /(\\S+=)/g; // \"\"\n\nexport const ZerologRegex = concatRegex(\n dateRegex,\n levelRegex,\n callerRegex,\n chevRegex,\n messageAndPairsRegex\n);\n\nfunction concatRegex(...regs: RegExp[]) {\n const flags = Array.from(\n new Set(\n regs\n .map((r) => r.flags)\n .join('')\n .split('')\n )\n ).join('');\n const source = regs.map((r) => r.source).join('');\n return new RegExp(source, flags);\n}\n\ntype Pair = {\n key: string;\n value: string;\n};\n\nexport function formatZerologLogs(rawText: string, withTimestamps?: boolean) {\n const spans: Span[] = [];\n const lines: FormattedLine[] = [];\n let line = '';\n\n const text = withTimestamps ? rawText.substring(TIMESTAMP_LENGTH) : rawText;\n\n if (withTimestamps) {\n const timestamp = rawText.substring(0, TIMESTAMP_LENGTH);\n spans.push({ text: timestamp });\n line += `${timestamp} `;\n }\n\n const [, date, level, caller, messageAndPairs] =\n text.match(ZerologRegex) || [];\n\n const [message, pairs] = extractPairs(messageAndPairs);\n\n line += formatTime(date, spans, line);\n line += formatLevel(level as Level, spans, line);\n line += formatCaller(caller, spans, line);\n line += formatMessage(message, spans, line, !!pairs.length);\n\n let stackTrace: JSONStackTrace | undefined;\n const stackTraceIndex = pairs.findIndex((p) => p.key === 'stack_trace');\n\n if (stackTraceIndex !== -1) {\n stackTrace = JSON.parse(pairs[stackTraceIndex].value);\n pairs.splice(stackTraceIndex);\n }\n\n pairs.forEach(({ key, value }, idx) => {\n line += formatKeyValuePair(\n key,\n value,\n spans,\n line,\n idx === pairs.length - 1\n );\n });\n lines.push({ line, spans });\n\n formatStackTrace(stackTrace, lines);\n\n return lines;\n}\n\nfunction extractPairs(messageAndPairs: string): [string, Pair[]] {\n const pairs: Pair[] = [];\n let [message, rawPairs] = messageAndPairs.split('|');\n\n if (!messageAndPairs.includes('|') && !rawPairs) {\n rawPairs = message;\n message = '';\n }\n message = message.trim();\n rawPairs = rawPairs.trim();\n\n const matches = [...rawPairs.matchAll(keyRegex)];\n\n matches.forEach((m, idx) => {\n const rawKey = m[0];\n const key = rawKey.slice(0, -1);\n const start = m.index || 0;\n const end = idx !== matches.length - 1 ? matches[idx + 1].index : undefined;\n const value = (\n end\n ? rawPairs.slice(start + rawKey.length, end)\n : rawPairs.slice(start + rawKey.length)\n ).trim();\n pairs.push({ key, value });\n });\n\n return [message, pairs];\n}\n","import tokenize from '@nxmix/tokenize-ansi';\nimport { FontWeight } from 'xterm';\n\nimport {\n colors,\n BACKGROUND_COLORS_BY_ANSI,\n FOREGROUND_COLORS_BY_ANSI,\n RGBColor,\n} from './colors';\nimport { formatJSONLine } from './formatJSONLogs';\nimport { formatZerologLogs, ZerologRegex } from './formatZerologLogs';\nimport { Token, Span, TIMESTAMP_LENGTH, FormattedLine } from './types';\n\ntype FormatOptions = {\n stripHeaders?: boolean;\n withTimestamps?: boolean;\n splitter?: string;\n};\n\nconst defaultOptions: FormatOptions = {\n splitter: '\\n',\n};\n\nexport function formatLogs(\n rawLogs: string,\n {\n stripHeaders,\n withTimestamps,\n splitter = '\\n',\n }: FormatOptions = defaultOptions\n) {\n let logs = rawLogs;\n if (stripHeaders) {\n logs = stripHeadersFunc(logs);\n }\n // if JSON logs come serialized 2 times, parse them once to unwrap them\n if (logs.startsWith('\"')) {\n try {\n logs = JSON.parse(logs);\n } catch (error) {\n // noop, throw error away if logs cannot be parsed\n }\n }\n\n const tokens: Token[][] = tokenize(logs);\n const formattedLogs: FormattedLine[] = [];\n\n let fgColor: string | undefined;\n let bgColor: string | undefined;\n let fontWeight: FontWeight | undefined;\n let line = '';\n let spans: Span[] = [];\n\n tokens.forEach((token) => {\n const [type] = token;\n\n const fgAnsi = FOREGROUND_COLORS_BY_ANSI[type];\n const bgAnsi = BACKGROUND_COLORS_BY_ANSI[type];\n\n if (fgAnsi) {\n fgColor = cssColorFromRgb(fgAnsi);\n } else if (type === 'moreColor') {\n fgColor = extendedColorForToken(token);\n } else if (type === 'fgDefault') {\n fgColor = undefined;\n } else if (bgAnsi) {\n bgColor = cssColorFromRgb(bgAnsi);\n } else if (type === 'bgMoreColor') {\n bgColor = extendedColorForToken(token);\n } else if (type === 'bgDefault') {\n bgColor = undefined;\n } else if (type === 'reset') {\n fgColor = undefined;\n bgColor = undefined;\n fontWeight = undefined;\n } else if (type === 'bold') {\n fontWeight = 'bold';\n } else if (type === 'normal') {\n fontWeight = 'normal';\n } else if (type === 'text') {\n const tokenLines = (token[1] as string).split(splitter);\n\n tokenLines.forEach((tokenLine, idx) => {\n if (idx && line) {\n formattedLogs.push({ line, spans });\n line = '';\n spans = [];\n }\n\n const text = stripEscapeCodes(tokenLine);\n try {\n if (\n (!withTimestamps && text.startsWith('{')) ||\n (withTimestamps && text.substring(TIMESTAMP_LENGTH).startsWith('{'))\n ) {\n const lines = formatJSONLine(text, withTimestamps);\n formattedLogs.push(...lines);\n } else if (\n (!withTimestamps && ZerologRegex.test(text)) ||\n (withTimestamps &&\n ZerologRegex.test(text.substring(TIMESTAMP_LENGTH)))\n ) {\n const lines = formatZerologLogs(text, withTimestamps);\n formattedLogs.push(...lines);\n } else {\n spans.push({ fgColor, bgColor, text, fontWeight });\n line += text;\n }\n } catch (error) {\n // in case parsing fails for whatever reason, push the raw logs and continue\n spans.push({ fgColor, bgColor, text, fontWeight });\n line += text;\n }\n });\n }\n });\n if (line) {\n formattedLogs.push({ line, spans });\n }\n\n return formattedLogs;\n}\n\nfunction stripHeadersFunc(logs: string) {\n return logs.substring(8).replace(/\\r?\\n(.{8})/g, '\\n');\n}\n\nfunction stripEscapeCodes(logs: string) {\n return logs.replace(\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,\n ''\n );\n}\n\nfunction cssColorFromRgb(rgb: RGBColor) {\n const [r, g, b] = rgb;\n\n return `rgb(${r}, ${g}, ${b})`;\n}\n\n// assuming types based on original JS implementation\n// there is not much type definitions for the tokenize library\nfunction extendedColorForToken(token: Token[]) {\n const [, colorMode, colorRef] = token as [undefined, number, number];\n\n if (colorMode === 2) {\n return cssColorFromRgb(token.slice(2) as RGBColor);\n }\n\n if (colorMode === 5 && colors[colorRef]) {\n return cssColorFromRgb(colors[colorRef]);\n }\n\n return '';\n}\n","import { without } from 'lodash';\n\nimport { FormattedLine, Span, JSONLogs, TIMESTAMP_LENGTH } from './types';\nimport {\n formatCaller,\n formatKeyValuePair,\n formatLevel,\n formatMessage,\n formatStackTrace,\n formatTime,\n} from './formatters';\n\nfunction removeKnownKeys(keys: string[]) {\n return without(keys, 'time', 'level', 'caller', 'message', 'stack_trace');\n}\n\nexport function formatJSONLine(\n rawText: string,\n withTimestamps?: boolean\n): FormattedLine[] {\n const spans: Span[] = [];\n const lines: FormattedLine[] = [];\n let line = '';\n\n const text = withTimestamps ? rawText.substring(TIMESTAMP_LENGTH) : rawText;\n\n const json: JSONLogs = JSON.parse(text);\n const { time, level, caller, message, stack_trace: stackTrace } = json;\n const keys = removeKnownKeys(Object.keys(json));\n\n if (withTimestamps) {\n const timestamp = rawText.substring(0, TIMESTAMP_LENGTH);\n spans.push({ text: timestamp });\n line += `${timestamp} `;\n }\n line += formatTime(time, spans, line);\n line += formatLevel(level, spans, line);\n line += formatCaller(caller, spans, line);\n line += formatMessage(message, spans, line, !!keys.length);\n\n keys.forEach((key, idx) => {\n line += formatKeyValuePair(\n key,\n json[key],\n spans,\n line,\n idx === keys.length - 1\n );\n });\n\n lines.push({ line, spans });\n formatStackTrace(stackTrace, lines);\n\n return lines;\n}\n","import { BROWSER_OS_PLATFORM } from '@/react/constants';\n\nexport const NEW_LINE_BREAKER = BROWSER_OS_PLATFORM === 'win' ? '\\r\\n' : '\\n';\n","import { NEW_LINE_BREAKER } from './constants';\nimport { FormattedLine } from './types';\n\ntype FormatFunc = (line: FormattedLine) => string;\n\nexport function concatLogsToString(\n logs: FormattedLine[],\n formatFunc: FormatFunc = (line) => line.line\n) {\n return logs.reduce(\n (acc, formattedLine) => acc + formatFunc(formattedLine) + NEW_LINE_BREAKER,\n ''\n );\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nexport async function ping(environmentId: EnvironmentId) {\n try {\n await axios.get(`/endpoints/${environmentId}/docker/_ping`);\n } catch (error) {\n throw parseAxiosError(error as Error);\n }\n}\n","import helm from '@/assets/ico/vendor/helm.svg?c';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\n\nexport const HelmIcon = <BadgeIcon icon={helm} />;\n","import { KubernetesPodNodeAffinityNodeSelectorRequirementOperators } from '../pod/models';\n\nexport function nodeAffinityValues(\n values: string | string[],\n operator: KubernetesPodNodeAffinityNodeSelectorRequirementOperators\n) {\n if (\n operator === KubernetesPodNodeAffinityNodeSelectorRequirementOperators.IN ||\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.NOT_IN\n ) {\n return values;\n }\n\n if (\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.EXISTS ||\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.DOES_NOT_EXIST\n ) {\n return '';\n }\n\n if (\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.GREATER_THAN ||\n operator ===\n KubernetesPodNodeAffinityNodeSelectorRequirementOperators.LOWER_THAN\n ) {\n return values[0];\n }\n return '';\n}\n","import {\n AppType,\n AppDataAccessPolicy,\n DeploymentType,\n} from '@/react/kubernetes/applications/types';\nimport { ServiceType } from '@/react/kubernetes/services/types';\n\n// The following constants are used by angular views and can be removed once they are no longer referenced\nexport const KubernetesApplicationTypes: Record<AppType, AppType> = {\n Deployment: 'Deployment',\n StatefulSet: 'StatefulSet',\n DaemonSet: 'DaemonSet',\n Pod: 'Pod',\n Helm: 'Helm',\n} as const;\n\nexport const KubernetesApplicationDeploymentTypes: Record<\n DeploymentType,\n DeploymentType\n> = {\n Global: 'Global',\n Replicated: 'Replicated',\n} as const;\n\nexport const KubernetesApplicationDataAccessPolicies: Record<\n AppDataAccessPolicy,\n AppDataAccessPolicy\n> = {\n Isolated: 'Isolated',\n Shared: 'Shared',\n} as const;\n\nexport const KubernetesApplicationServiceTypes: Record<\n ServiceType,\n ServiceType\n> = {\n ClusterIP: 'ClusterIP',\n NodePort: 'NodePort',\n LoadBalancer: 'LoadBalancer',\n ExternalName: 'ExternalName',\n} as const;\n","import { Transition, TransitionService } from '@uirouter/angularjs';\n\nimport { IAuthenticationService } from './services/types';\n\nexport enum AccessHeaders {\n Restricted = 'restricted',\n Admin = 'admin',\n EdgeAdmin = 'edge-admin',\n}\n\ntype Authorizations = string[];\ntype Access =\n | AccessHeaders.Restricted\n | AccessHeaders.Admin\n | AccessHeaders.EdgeAdmin\n | Authorizations;\n\nexport function requiresAuthHook(transitionService: TransitionService) {\n transitionService.onBefore({}, checkAuthorizations);\n}\n\n// exported for tests\nexport async function checkAuthorizations(transition: Transition) {\n const authService: IAuthenticationService = transition\n .injector()\n .get('Authentication');\n const stateTo = transition.to();\n const $state = transition.router.stateService;\n\n const { access } = stateTo.data || {};\n if (!isAccess(access)) {\n return undefined;\n }\n\n const isLoggedIn = await authService.init();\n\n if (!isLoggedIn) {\n // eslint-disable-next-line no-console\n console.info(\n 'User is not authenticated, redirecting to login, access:',\n access\n );\n return $state.target('portainer.logout');\n }\n\n if (typeof access === 'string') {\n if (access === 'restricted') {\n return undefined;\n }\n\n if (access === 'admin') {\n if (authService.isPureAdmin()) {\n return undefined;\n }\n\n // eslint-disable-next-line no-console\n console.info(\n 'User is not an admin, redirecting to home, access:',\n access\n );\n return $state.target('portainer.home');\n }\n\n if (access === 'edge-admin') {\n if (authService.isAdmin(true)) {\n return undefined;\n }\n\n // eslint-disable-next-line no-console\n console.info(\n 'User is not an edge admin, redirecting to home, access:',\n access\n );\n return $state.target('portainer.home');\n }\n }\n\n if (access.length > 0 && !authService.hasAuthorizations(access)) {\n // eslint-disable-next-line no-console\n console.info(\n 'User does not have the required authorizations, redirecting to home'\n );\n return $state.target('portainer.home');\n }\n\n return undefined;\n}\n\nfunction isAccess(access: unknown): access is Access {\n if (!access || (typeof access !== 'string' && !Array.isArray(access))) {\n return false;\n }\n\n if (Array.isArray(access)) {\n return access.every((a) => typeof a === 'string');\n }\n\n return ['restricted', 'admin', 'edge-admin'].includes(access);\n}\n","import {\n IComponentOptions,\n IComponentController,\n IFormController,\n IScope,\n} from 'angular';\n\nclass BoxSelectorController implements IComponentController {\n formCtrl!: IFormController;\n\n onChange!: (value: string | number) => void;\n\n radioName!: string;\n\n $scope: IScope;\n\n /* @ngInject */\n constructor($scope: IScope) {\n this.handleChange = this.handleChange.bind(this);\n\n this.$scope = $scope;\n }\n\n handleChange(value: string | number, limitedToBE: boolean) {\n this.$scope.$evalAsync(() => {\n this.formCtrl.$setValidity(this.radioName, !limitedToBE, this.formCtrl);\n this.onChange(value);\n });\n }\n}\n\nexport const BoxSelectorAngular: IComponentOptions = {\n template: `<box-selector-react\n value=\"$ctrl.value\"\n on-change=\"$ctrl.handleChange\"\n options=\"$ctrl.options\"\n radio-name=\"$ctrl.radioName\"\n slim=\"$ctrl.slim\"\n ></box-selector-react>`,\n bindings: {\n value: '<',\n onChange: '<',\n options: '<',\n radioName: '<',\n slim: '<',\n },\n require: {\n formCtrl: '^form',\n },\n controller: BoxSelectorController,\n};\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport { IconProps } from '@@/Icon';\n\nexport function buildOption<T extends number | string>(\n id: BoxSelectorOption<T>['id'],\n icon: IconProps['icon'],\n label: BoxSelectorOption<T>['label'],\n description: BoxSelectorOption<T>['description'],\n value: BoxSelectorOption<T>['value'],\n feature?: FeatureId\n): BoxSelectorOption<T> {\n return { id, icon, label, description, value, feature };\n}\n","import angular from 'angular';\n\nimport { react2angular } from '@/react-tools/react2angular';\n\nimport { BoxSelector } from '@@/BoxSelector';\n\nimport { BoxSelectorAngular } from './BoxSelectorAngular';\n\nexport { buildOption } from './utils';\nconst BoxSelectorReact = react2angular(BoxSelector, [\n 'isMulti',\n 'value',\n 'onChange',\n 'options',\n 'radioName',\n 'slim',\n 'hiddenSpacingCount',\n]);\n\nexport const boxSelectorModule = angular\n .module('app.portainer.component.box-selector', [])\n .component('boxSelectorReact', BoxSelectorReact)\n .component('boxSelector', BoxSelectorAngular).name;\n","export default class PortainerError extends Error {\n err?: unknown;\n\n isPortainerError = true;\n\n constructor(msg: string, err?: unknown) {\n super(msg);\n this.err = err;\n }\n}\n\nexport function isPortainerError(error: unknown): error is PortainerError {\n return (\n !!error &&\n typeof error === 'object' &&\n 'isPortainerError' in error &&\n (error as PortainerError).isPortainerError\n );\n}\n","export function getValueAsArrayOfStrings(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) {\n return [];\n }\n\n if (typeof value === 'number') {\n return [value.toString()];\n }\n\n return [value];\n}\n","/**\n * runs the provided promises in a sequence, and returns a promise that resolves when all promises have resolved\n *\n * @param promises a list of functions that return promises\n */\nexport function promiseSequence(promises: (() => Promise<unknown>)[]) {\n return promises.reduce(\n (promise, nextPromise) => promise.then(nextPromise),\n Promise.resolve(undefined as unknown)\n );\n}\n\nexport function isFulfilled<T>(\n result: PromiseSettledResult<T>\n): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled';\n}\n\nexport function isRejected<T>(\n result: PromiseSettledResult<T>\n): result is PromiseRejectedResult {\n return result.status === 'rejected';\n}\n\nexport function getFulfilledResults<T>(\n results: Array<PromiseSettledResult<T>>\n) {\n return results.filter(isFulfilled).map((result) => result.value);\n}\n","export function pluralize(val: number, word: string, plural = `${word}s`) {\n return [1, -1].includes(Number(val)) ? word : plural;\n}\n\nexport function addPlural(value: number, word: string, plural = `${word}s`) {\n return `${value} ${pluralize(value, word, plural)}`;\n}\n","import uuid from 'uuid';\n\nimport {\n API_ENDPOINT_EDGE_STACKS,\n API_ENDPOINT_STACKS,\n API_ENDPOINT_WEBHOOKS,\n} from '@/constants';\n\nimport { baseHref } from './pathHelper';\n\nconst baseUrl = getBaseUrl();\n\nexport function dockerWebhookUrl(token: string) {\n return `${baseUrl}${API_ENDPOINT_WEBHOOKS}/${token}`;\n}\n\nexport function baseStackWebhookUrl() {\n return `${baseUrl}${API_ENDPOINT_STACKS}/webhooks`;\n}\n\nexport function stackWebhookUrl(token: string) {\n return `${baseStackWebhookUrl()}/${token}`;\n}\n\nexport function createWebhookId() {\n return uuid();\n}\n\nexport function baseEdgeStackWebhookUrl() {\n return `${baseUrl}${API_ENDPOINT_EDGE_STACKS}/webhooks`;\n}\n\n/* @ngInject */\nexport function WebhookHelperFactory() {\n return {\n returnWebhookUrl: dockerWebhookUrl,\n getBaseStackWebhookUrl: baseStackWebhookUrl,\n returnStackWebhookUrl: stackWebhookUrl,\n };\n}\n\nfunction getBaseUrl() {\n const protocol = window.location.protocol.toLowerCase().replace(':', '');\n\n if (protocol === 'file') {\n return baseHref();\n }\n\n const { hostname } = window.location;\n const port = parseInt(window.location.port, 10);\n const displayPort =\n (protocol === 'http' && port === 80) ||\n (protocol === 'https' && port === 443) ||\n Number.isNaN(port)\n ? ''\n : `:${port}`;\n return `${protocol}://${hostname}${displayPort}${baseHref()}`;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { FDOConfiguration, DeviceConfiguration, Profile } from './model';\n\nconst BASE_URL = '/fdo';\n\nexport async function configureFDO(formValues: FDOConfiguration) {\n try {\n await axios.post(`${BASE_URL}/configure`, formValues);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to configure FDO');\n }\n}\n\nexport async function configureDevice(\n deviceId: string,\n deviceConfig: DeviceConfiguration\n) {\n try {\n await axios.post(`${BASE_URL}/configure/${deviceId}`, deviceConfig);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to configure device');\n }\n}\n\nexport async function createProfile(\n name: string,\n method: string,\n profileFileContent: string\n) {\n const payload = {\n name,\n profileFileContent,\n };\n try {\n await axios.post(`${BASE_URL}/profiles`, payload, {\n params: { method },\n });\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to create profile');\n }\n}\n\nexport async function getProfiles() {\n try {\n const { data: profiles } = await axios.get<Profile[]>(\n `${BASE_URL}/profiles`\n );\n return profiles;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve the profiles');\n }\n}\n\nexport async function getProfile(profileId: number) {\n try {\n const { data: profile } = await axios.get<Profile>(\n `${BASE_URL}/profiles/${profileId}`\n );\n return profile;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve profile');\n }\n}\n\nexport async function deleteProfile(profileId: number) {\n try {\n await axios.delete(`${BASE_URL}/profiles/${profileId}`);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to delete profile');\n }\n}\n\nexport async function updateProfile(\n id: number,\n name: string,\n profileFileContent: string\n) {\n const payload = {\n name,\n profileFileContent,\n };\n try {\n await axios.put(`${BASE_URL}/profiles/${id}`, payload);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to update profile');\n }\n}\n\nexport async function duplicateProfile(id: number) {\n try {\n const { data: profile } = await axios.post<Profile>(\n `${BASE_URL}/profiles/${id}/duplicate`\n );\n return profile;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to duplicate profile');\n }\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n OpenAMTConfiguration,\n AMTInformation,\n AuthorizationResponse,\n DeviceFeatures,\n} from '@/react/edge/edge-devices/open-amt/types';\n\nconst BASE_URL = '/open_amt';\n\nexport async function configureAMT(formValues: OpenAMTConfiguration) {\n try {\n await axios.post(`${BASE_URL}/configure`, formValues);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to configure AMT');\n }\n}\n\nexport async function getAMTInfo(environmentId: EnvironmentId) {\n try {\n const { data: amtInformation } = await axios.get<AMTInformation>(\n `${BASE_URL}/${environmentId}/info`\n );\n\n return amtInformation;\n } catch (e) {\n throw parseAxiosError(\n e as Error,\n 'Unable to retrieve environment information'\n );\n }\n}\n\nexport async function enableDeviceFeatures(\n environmentId: EnvironmentId,\n deviceGUID: string,\n features: DeviceFeatures\n) {\n try {\n const featuresPayload = { features };\n const { data: authorizationResponse } =\n await axios.post<AuthorizationResponse>(\n `${BASE_URL}/${environmentId}/devices/${deviceGUID}/features`,\n featuresPayload\n );\n return authorizationResponse;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to enable device features');\n }\n}\n","import Axios, {\n AxiosError,\n AxiosInstance,\n InternalAxiosRequestConfig,\n} from 'axios';\nimport {\n setupCache,\n buildMemoryStorage,\n CacheAxiosResponse,\n InterpreterResult,\n AxiosCacheInstance,\n} from 'axios-cache-interceptor';\nimport { loadProgressBar } from 'axios-progress-bar';\nimport 'axios-progress-bar/dist/nprogress.css';\n\nimport PortainerError from '@/portainer/error';\n\nimport {\n CACHE_DURATION,\n dispatchCacheRefreshEventIfNeeded,\n portainerAgentManagerOperation,\n portainerAgentTargetHeader,\n} from './http-request.helper';\n\nconst portainerCacheHeader = 'X-Portainer-Cache';\n\nconst storage = buildMemoryStorage();\n// mock the cache adapter\nexport const cache = {\n store: {\n clear: () => {\n storage.data = {};\n },\n },\n};\n\nfunction headerInterpreter(\n headers?: CacheAxiosResponse['headers']\n): InterpreterResult {\n if (!headers) {\n return 'not enough headers';\n }\n\n if (headers[portainerCacheHeader]) {\n return CACHE_DURATION;\n }\n\n return 'not enough headers';\n}\n\nconst axios = Axios.create({ baseURL: 'api' });\naxios.interceptors.request.use((req) => {\n dispatchCacheRefreshEventIfNeeded(req);\n return req;\n});\n\n// type guard the axios instance\nfunction isAxiosCacheInstance(\n a: AxiosInstance | AxiosCacheInstance\n): a is AxiosCacheInstance {\n return (a as AxiosCacheInstance).defaults.cache !== undefined;\n}\n\n// when entering a kubernetes environment, or updating user settings, update the cache adapter\nexport function updateAxiosAdapter(useCache: boolean) {\n if (useCache) {\n if (isAxiosCacheInstance(axios)) {\n return;\n }\n\n setupCache(axios, {\n storage,\n ttl: CACHE_DURATION,\n methods: ['get', 'head', 'options', 'post'],\n // cachePredicate determines if the response should be cached based on response\n cachePredicate: {\n containsHeaders: {\n [portainerCacheHeader]: () => true,\n },\n ignoreUrls: [/^(?!.*\\bkubernetes\\b).*$/gm],\n responseMatch: (res) => {\n if (res.config.method === 'post') {\n if (res.config.url?.includes('selfsubjectaccessreviews')) {\n return true;\n }\n return false;\n }\n return true;\n },\n },\n // headerInterpreter interprets the response headers to determine if the response should be cached\n headerInterpreter,\n });\n }\n}\n\nexport default axios;\n\nloadProgressBar(undefined, axios);\n\nexport const agentTargetHeader = 'X-PortainerAgent-Target';\n\nexport function agentInterceptor(config: InternalAxiosRequestConfig) {\n if (!config.url || !config.url.includes('/docker/')) {\n return config;\n }\n\n const newConfig = { ...config };\n const target = portainerAgentTargetHeader();\n if (target) {\n newConfig.headers[agentTargetHeader] = target;\n }\n\n if (portainerAgentManagerOperation()) {\n newConfig.headers['X-PortainerAgent-ManagerOperation'] = '1';\n }\n\n return newConfig;\n}\n\naxios.interceptors.request.use(agentInterceptor);\n\naxios.interceptors.response.use(undefined, (error) => {\n if (\n error.response?.status === 401 &&\n !error.config.url.includes('/v2/') &&\n !error.config.url.includes('/api/v4/') &&\n isTransitionRequiresAuthentication()\n ) {\n // eslint-disable-next-line no-console\n console.error('Unauthorized request, logging out');\n window.location.hash = '/logout';\n window.location.reload();\n }\n\n return Promise.reject(error);\n});\n\nconst UNAUTHENTICATED_ROUTES = [\n '/logout',\n '/internal-auth',\n '/auth',\n '/init/admin',\n];\nfunction isTransitionRequiresAuthentication() {\n return !UNAUTHENTICATED_ROUTES.some((route) =>\n window.location.hash.includes(route)\n );\n}\n\n/**\n * Parses an Axios error and returns a PortainerError.\n * @param err The original error.\n * @param msg An optional error message to prepend.\n * @param parseError A function to parse AxiosErrors. Defaults to defaultErrorParser.\n * @returns A PortainerError with the parsed error message and details.\n */\nexport function parseAxiosError(\n err: unknown,\n msg = '',\n parseError = defaultErrorParser\n) {\n let resultErr = err;\n let resultMsg = msg;\n\n if (isAxiosError(err)) {\n const { error, details } = parseError(err);\n resultErr = error;\n if (msg && details) {\n resultMsg = `${msg}: ${details}`;\n } else {\n resultMsg = msg || details;\n }\n }\n\n return new PortainerError(resultMsg, resultErr);\n}\n\ntype DefaultAxiosErrorType = {\n message: string;\n details?: string;\n};\n\nexport function defaultErrorParser(axiosError: AxiosError<unknown>) {\n if (isDefaultResponse(axiosError.response?.data)) {\n const message = axiosError.response?.data.message || '';\n const details = axiosError.response?.data.details || message;\n const error = new Error(message);\n return { error, details };\n }\n\n const details = axiosError.response?.data\n ? axiosError.response?.data.toString()\n : '';\n const error = new Error('Axios error');\n return { error, details };\n}\n\nexport function isDefaultResponse(\n data: unknown\n): data is DefaultAxiosErrorType {\n return (\n !!data &&\n typeof data === 'object' &&\n 'message' in data &&\n typeof data.message === 'string'\n );\n}\n\nexport function isAxiosError<ResponseType>(\n error: unknown\n): error is AxiosError<ResponseType> {\n return Axios.isAxiosError(error);\n}\n\nexport function arrayToJson<T>(arr?: Array<T>) {\n if (!arr) {\n return '';\n }\n\n return JSON.stringify(arr);\n}\n\nexport function json2formData(json: Record<string, unknown>) {\n const formData = new FormData();\n\n Object.entries(json).forEach(([key, value]) => {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (value instanceof File) {\n formData.append(key, value);\n return;\n }\n\n if (Array.isArray(value)) {\n formData.append(key, arrayToJson(value));\n return;\n }\n\n if (typeof value === 'object') {\n formData.append(key, JSON.stringify(value));\n return;\n }\n\n formData.append(key, value.toString());\n });\n\n return formData;\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport const CACHE_DURATION = 5 * 60 * 1000; // 5m in ms\n// event emitted when cache need to be refreshed\n// used to sync $http + axios cache clear\nexport const CACHE_REFRESH_EVENT = '__cache__refresh__event__';\n\n// utility function to dispatch catch refresh event\nexport function dispatchCacheRefreshEvent() {\n dispatchEvent(new CustomEvent(CACHE_REFRESH_EVENT, {}));\n}\n\n// perform checks on config.method and config.url\n// to dispatch event in only specific scenarios\nexport function dispatchCacheRefreshEventIfNeeded(req: AxiosRequestConfig) {\n if (\n req.method &&\n ['post', 'patch', 'put', 'delete'].includes(req.method.toLowerCase()) &&\n // don't clear cache when we try to check for namespaces accesses\n // otherwise we will clear it on every page\n req.url &&\n !req.url.includes('selfsubjectaccessreviews') &&\n req.url.includes('kubernetes')\n ) {\n dispatchCacheRefreshEvent();\n }\n}\n\ninterface Headers {\n agentTargetQueue: string[];\n agentManagerOperation: boolean;\n registryAuthentication?: string;\n agentTargetLastValue: string;\n}\n\nconst headers: Headers = {\n agentTargetQueue: [],\n agentManagerOperation: false,\n agentTargetLastValue: '',\n};\n\nexport function registryAuthenticationHeader() {\n return headers.registryAuthentication;\n}\n\nexport function setRegistryAuthenticationHeader(headerValue: string) {\n headers.registryAuthentication = headerValue;\n}\n\n// Due to the fact that async HTTP requests are decorated using an interceptor\n// we need to store and retrieve the headers using a first-in-first-out (FIFO) data structure.\n// Otherwise, sequential HTTP requests might end up using the same header value (incorrect in the case\n// of starting multiple containers on different nodes for example).\n// To prevent having to use the HttpRequestHelper.setPortainerAgentTargetHeader before EACH request,\n// we re-use the latest available header in the data structure (handy in thee case of multiple requests affecting\n// the same node in the same view).\nexport function portainerAgentTargetHeader() {\n if (headers.agentTargetQueue.length === 0) {\n return headers.agentTargetLastValue;\n }\n\n if (headers.agentTargetQueue.length === 1) {\n const [lastValue] = headers.agentTargetQueue;\n headers.agentTargetLastValue = lastValue;\n }\n\n return headers.agentTargetQueue.shift() || '';\n}\n\nexport function setPortainerAgentTargetHeader(headerValue: string) {\n if (headerValue) {\n headers.agentTargetQueue.push(headerValue);\n }\n}\n\nexport function setPortainerAgentManagerOperation(set: boolean) {\n headers.agentManagerOperation = set;\n}\n\nexport function portainerAgentManagerOperation() {\n return headers.agentManagerOperation;\n}\n\nexport function resetAgentHeaders() {\n headers.agentTargetQueue = [];\n headers.agentTargetLastValue = '';\n headers.agentManagerOperation = false;\n delete headers.registryAuthentication;\n}\n\n/* @ngInject */\nexport function HttpRequestHelperAngular() {\n return {\n registryAuthenticationHeader,\n setRegistryAuthenticationHeader,\n portainerAgentTargetHeader,\n setPortainerAgentTargetHeader,\n setPortainerAgentManagerOperation,\n portainerAgentManagerOperation,\n resetAgentHeaders,\n };\n}\n","import _ from 'lodash';\nimport toastr from 'toastr';\nimport sanitize from 'sanitize-html';\nimport { v4 as uuid } from 'uuid';\n\nimport { get as localStorageGet } from '@/react/hooks/useLocalStorage';\nimport { notificationsStore } from '@/react/portainer/notifications/notifications-store';\nimport { ToastNotification } from '@/react/portainer/notifications/types';\n\nconst { addNotification } = notificationsStore.getState();\n\ntoastr.options = {\n timeOut: 3000,\n closeButton: true,\n progressBar: true,\n tapToDismiss: false,\n escapeHtml: true,\n // custom button, using the lucide icon x.svg inside\n closeHtml: `<button type=\"button\"><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n>\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n</svg></button>`,\n};\n\nexport function notifySuccess(title: string, text: string) {\n saveNotification(title, text, 'success');\n toastr.success(sanitize(_.escape(text)), sanitize(_.escape(title)));\n}\n\nexport function notifyWarning(title: string, text: string) {\n saveNotification(title, text, 'warning');\n toastr.warning(sanitize(_.escape(text)), sanitize(title), { timeOut: 6000 });\n}\n\nexport function notifyError(title: string, e?: Error, fallbackText = '') {\n const msg = pickErrorMsg(e) || fallbackText;\n saveNotification(title, msg, 'error');\n\n if (!_.get(e, 'resource.password')) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n\n if (msg !== 'Invalid JWT token') {\n toastr.error(sanitize(_.escape(msg)), sanitize(title), { timeOut: 6000 });\n }\n}\n\nexport const success = notifySuccess;\nexport const error = notifyError;\nexport const warning = notifyWarning;\n\n/* @ngInject */\nexport function Notifications() {\n return {\n success: notifySuccess,\n warning: notifyWarning,\n error: notifyError,\n };\n}\n\nfunction pickErrorMsg(e?: Error) {\n if (!e) {\n return '';\n }\n\n const props = [\n 'err.data.details',\n 'err.data.message',\n 'data.details',\n 'data.message',\n 'data.content',\n 'data.error',\n 'message',\n 'err.data[0].message',\n 'err.data.err',\n 'data.err',\n 'msg',\n ];\n\n let msg = '';\n\n props.forEach((prop) => {\n const val = _.get(e, prop);\n if (typeof val === 'string') {\n msg = msg || val;\n }\n });\n\n return msg;\n}\n\nfunction saveNotification(title: string, text: string, type: string) {\n const notif: ToastNotification = {\n id: uuid(),\n title,\n details: text,\n type,\n timeStamp: new Date(),\n };\n const userId = localStorageGet('USER_ID', '');\n if (userId !== '') {\n addNotification(userId, notif);\n }\n}\n","import axios, { parseAxiosError } from '../services/axios';\n\nimport { Tag, TagId } from './types';\n\nexport async function getTags() {\n try {\n const { data } = await axios.get<Tag[]>(buildUrl());\n return data;\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to retrieve tags');\n }\n}\n\nexport async function createTag(name: string) {\n try {\n const { data: tag } = await axios.post<Tag>(buildUrl(), { name });\n return tag;\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to create tag');\n }\n}\n\nexport async function deleteTag(id: TagId) {\n try {\n await axios.delete(buildUrl(id));\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to delte tag');\n }\n}\n\nfunction buildUrl(id?: TagId) {\n let url = '/tags';\n if (id) {\n url += `/${id}`;\n }\n\n return url;\n}\n","import { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport {\n mutationOptions,\n withError,\n withInvalidate,\n} from '@/react-tools/react-query';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { createTag, getTags } from './tags.service';\nimport { Tag, TagId } from './types';\n\nexport const tagKeys = {\n all: ['tags'] as const,\n tag: (id: TagId) => [...tagKeys.all, id] as const,\n};\n\nexport function useTags<T = Tag[]>({\n select,\n enabled = true,\n}: { select?: (tags: Tag[]) => T; enabled?: boolean } = {}) {\n return useQuery(tagKeys.all, () => getTags(), {\n staleTime: 50,\n select,\n enabled,\n ...withError('Failed to retrieve tags'),\n });\n}\n\nexport function useTagsForEnvironment(environmentId: EnvironmentId) {\n const { data: tags, isLoading } = useTags({\n select: (tags) => tags.filter((tag) => tag.Endpoints[environmentId]),\n });\n\n return { tags, isLoading };\n}\n\nexport function useCreateTagMutation() {\n const queryClient = useQueryClient();\n\n return useMutation(\n createTag,\n mutationOptions(\n withError('Unable to create tag'),\n withInvalidate(queryClient, [tagKeys.all])\n )\n );\n}\n","import { useQuery } from 'react-query';\n\nimport { TeamRole, TeamMembership } from '@/react/portainer/users/teams/types';\nimport { useCurrentUser, useIsEdgeAdmin } from '@/react/hooks/useUser';\n\nimport { User, UserId } from './types';\nimport { getUserMemberships, getUsers } from './user.service';\n\ninterface UseUserMembershipOptions<TSelect> {\n select?(userMemberships: TeamMembership[]): TSelect;\n enabled?: boolean;\n}\n\nexport function useUserMembership<TSelect = TeamMembership[]>(\n userId: UserId,\n { enabled, select }: UseUserMembershipOptions<TSelect> = {}\n) {\n return useQuery(\n ['users', userId, 'memberships'],\n () => getUserMemberships(userId),\n { select, enabled }\n );\n}\n\nexport function useIsCurrentUserTeamLeader() {\n const { user } = useCurrentUser();\n const isAdminQuery = useIsEdgeAdmin();\n\n const query = useUserMembership(user.Id, {\n enabled: !isAdminQuery.isLoading && !isAdminQuery.isAdmin,\n select: (memberships) =>\n memberships.some((membership) => membership.Role === TeamRole.Leader),\n });\n\n if (isAdminQuery.isLoading) {\n return false;\n }\n\n return isAdminQuery.isAdmin ? true : !!query.data;\n}\n\nexport function useUsers<T = User[]>(\n includeAdministrator = false,\n environmentId = 0,\n enabled = true,\n select: (data: User[]) => T = (data) => data as unknown as T\n) {\n const users = useQuery(\n ['users', { includeAdministrator, environmentId }],\n () => getUsers(includeAdministrator, environmentId),\n {\n meta: {\n error: { title: 'Failure', message: 'Unable to load users' },\n },\n enabled,\n select,\n }\n );\n\n return users;\n}\n","import { UserId } from '../types';\n\nexport const userQueryKeys = {\n base: () => ['users'] as const,\n user: (id: UserId) => [...userQueryKeys.base(), id] as const,\n me: () => [...userQueryKeys.base(), 'me'] as const,\n};\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from '../user.service';\nimport { User } from '../types';\n\nimport { userQueryKeys } from './queryKeys';\n\ninterface CurrentUserResponse extends User {\n forceChangePassword: boolean;\n}\n\nexport function useLoadCurrentUser({ staleTime }: { staleTime?: number } = {}) {\n return useQuery(userQueryKeys.me(), () => getCurrentUser(), {\n ...withError('Unable to retrieve user details'),\n staleTime,\n });\n}\n\nexport async function getCurrentUser() {\n try {\n const { data: user } = await axios.get<CurrentUserResponse>(\n buildUrl(undefined, 'me')\n );\n\n return user;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve user details');\n }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError } from '@/react-tools/react-query';\n\nimport { buildUrl } from '../user.service';\nimport { User, UserId } from '../types';\n\nimport { userQueryKeys } from './queryKeys';\n\nexport function useUser(\n id: UserId,\n { staleTime }: { staleTime?: number } = {}\n) {\n return useQuery(userQueryKeys.user(id), () => getUser(id), {\n ...withError('Unable to retrieve user details'),\n staleTime,\n });\n}\n\nexport async function getUser(id: UserId) {\n try {\n const { data: user } = await axios.get<User>(buildUrl(id));\n\n return user;\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve user details');\n }\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { type UserId } from './types/user-id';\n\nexport { type UserId };\n\nexport enum Role {\n Admin = 1,\n Standard,\n EdgeAdmin,\n}\n\ninterface AuthorizationMap {\n [authorization: string]: boolean;\n}\n\nexport type User = {\n Id: UserId;\n Username: string;\n Role: Role;\n EndpointAuthorizations: {\n [endpointId: EnvironmentId]: AuthorizationMap;\n };\n UseCache: boolean;\n ThemeSettings: {\n color: 'dark' | 'light' | 'highcontrast' | 'auto';\n };\n};\n","import { Environment } from '@/react/portainer/environments/types';\nimport { isEdgeEnvironment } from '@/react/portainer/environments/utils';\n\nimport { Role, User } from './types';\n\nexport function filterNonAdministratorUsers(users: User[]) {\n return users.filter((user) => !isPureAdmin(user));\n}\n\ntype UserLike = Pick<User, 'Role'>;\n\n// To avoid creating divergence between CE and EE\n// isAdmin checks if the user is portainer admin or edge admin\nexport function isEdgeAdmin(\n user: UserLike | undefined,\n environment?: Pick<Environment, 'Type'> | null\n): boolean {\n return (\n isPureAdmin(user) ||\n (user?.Role === Role.EdgeAdmin &&\n (!environment || isEdgeEnvironment(environment.Type)))\n );\n}\n\n// To avoid creating divergence between CE and EE\n// isPureAdmin checks only if the user is portainer admin\n// See bouncer.IsAdmin and bouncer.PureAdminAccess\nexport function isPureAdmin(user?: UserLike): boolean {\n return !!user && user.Role === Role.Admin;\n}\n","import axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { TeamMembership } from '@/react/portainer/users/teams/types';\n\nimport { User, UserId } from './types';\nimport { filterNonAdministratorUsers } from './user.helpers';\n\nexport async function getUsers(\n includeAdministrators = false,\n environmentId = 0\n) {\n try {\n const { data } = await axios.get<User[]>(buildUrl(), {\n params: { environmentId },\n });\n\n return includeAdministrators ? data : filterNonAdministratorUsers(data);\n } catch (e) {\n throw parseAxiosError(e as Error, 'Unable to retrieve users');\n }\n}\n\nexport async function getUserMemberships(id: UserId) {\n try {\n const { data } = await axios.get<TeamMembership[]>(\n buildUrl(id, 'memberships')\n );\n return data;\n } catch (err) {\n throw parseAxiosError(err as Error, 'Unable to retrieve user memberships');\n }\n}\n\nexport function buildUrl(id?: UserId, entity?: string) {\n let url = '/users';\n\n if (id) {\n url += `/${id}`;\n }\n\n if (entity) {\n url += `/${entity}`;\n }\n\n return url;\n}\n","import { SetStateAction } from 'react';\n\nexport function applySetStateAction<T>(applier: SetStateAction<T>, values?: T) {\n if (isFunction(applier)) {\n return values ? applier(values) : undefined;\n }\n return applier;\n\n function isFunction(value: unknown): value is (prevState: T) => T {\n return typeof value === 'function';\n }\n}\n","import {\n MutationCache,\n MutationOptions,\n QueryCache,\n QueryClient,\n QueryKey,\n QueryOptions,\n} from 'react-query';\n\nimport { notifyError } from '@/portainer/services/notifications';\n\nexport function withError(fallbackMessage?: string, title = 'Failure') {\n return {\n onError(error: unknown) {\n notifyError(title, error as Error, fallbackMessage);\n },\n };\n}\n\nexport function withGlobalError(fallbackMessage?: string, title = 'Failure') {\n return {\n meta: {\n error: { message: fallbackMessage, title },\n },\n };\n}\n\ntype OptionalReadonly<T> = T | Readonly<T>;\n\nexport function withInvalidate(\n queryClient: QueryClient,\n queryKeysToInvalidate: Array<OptionalReadonly<Array<string | number>>>,\n // skipRefresh will set the mutation state to success without waiting for the invalidated queries to refresh\n // see the following for info: https://tkdodo.eu/blog/mastering-mutations-in-react-query#awaited-promises\n { skipRefresh }: { skipRefresh?: boolean } = {}\n) {\n return {\n onSuccess() {\n const promise = Promise.all(\n queryKeysToInvalidate.map((keys) => queryClient.invalidateQueries(keys))\n );\n return skipRefresh\n ? undefined // don't wait for queries to refresh before setting state to success\n : promise; // stay loading until all queries are refreshed\n },\n };\n}\n\nexport function mutationOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(...options: MutationOptions<TData, TError, TVariables, TContext>[]) {\n return mergeOptions(options);\n}\n\nexport function queryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(...options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>[]) {\n return mergeOptions(options);\n}\n\nfunction mergeOptions<T>(options: T[]) {\n return options.reduce(\n (acc, option) => ({\n ...acc,\n ...option,\n }),\n {} as T\n );\n}\n\nexport function createQueryClient() {\n return new QueryClient({\n mutationCache: new MutationCache({\n onError: (error, variable, context, mutation) => {\n handleError(error, mutation.meta?.error);\n },\n }),\n queryCache: new QueryCache({\n onError: (error, mutation) => {\n handleError(error, mutation.meta?.error);\n },\n }),\n });\n}\n\nfunction handleError(error: unknown, errorMeta?: unknown) {\n if (errorMeta && typeof errorMeta === 'object') {\n const { title = 'Failure', message } = errorMeta as {\n title?: string;\n message?: string;\n };\n\n notifyError(title, error as Error, message);\n }\n}\n\nexport const queryClient = createQueryClient();\n","import ReactDOM from 'react-dom';\nimport { IComponentOptions, IController } from 'angular';\nimport { StrictMode } from 'react';\nimport _ from 'lodash';\n\nfunction toProps(\n propNames: string[],\n controller: IController,\n $q: ng.IQService\n) {\n return Object.fromEntries(\n propNames.map((key) => {\n const prop = controller[key];\n if (typeof prop !== 'function') {\n return [key, prop];\n }\n\n return [\n key,\n (...args: unknown[]) =>\n $q((resolve) => resolve(controller[key](...args))),\n ];\n })\n );\n}\n\nexport type PropNames<T> = Exclude<keyof T, number | symbol>;\n\n/**\n * react2angular is used to bind a React component to an AngularJS component\n * it used in an AngularJS module definition:\n *\n * `.component('componentName', react2angular(ComponentName, ['prop1', 'prop2']))`\n *\n * if the second parameter has any ts errors check that the component has the correct props\n */\nexport function react2angular<T, U extends PropNames<T>[]>(\n Component: React.ComponentType<T & JSX.IntrinsicAttributes>,\n propNames: U & ([PropNames<T>] extends [U[number]] ? unknown : PropNames<T>)\n): IComponentOptions & { name: string } {\n const bindings = Object.fromEntries(propNames.map((key) => [key, '<']));\n\n return {\n bindings,\n controller: Controller,\n name: _.camelCase(Component.displayName || Component.name),\n };\n\n /* @ngInject */\n function Controller(\n this: IController,\n $element: HTMLElement[],\n $q: ng.IQService\n ) {\n let isDestroyed = false;\n const el = $element[0];\n\n this.$onChanges = () => {\n if (!isDestroyed) {\n const props = toProps(propNames, this, $q);\n ReactDOM.render(\n <StrictMode>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Component {...(props as T & JSX.IntrinsicAttributes)} />\n </StrictMode>,\n\n el\n );\n }\n };\n\n this.$onDestroy = () => {\n if (!isDestroyed) {\n isDestroyed = true;\n ReactDOM.unmountComponentAtNode(el);\n }\n };\n }\n}\n\nexport const r2a = react2angular;\n","import { ComponentType, useEffect, useMemo, useState } from 'react';\n\ntype KeyRecord<T> = Record<keyof T, T[keyof T]>;\n\ntype KeysOfFunctions<T> = keyof {\n [K in keyof T as T[K] extends (v: never) => void ? K : never]: never;\n};\n\ntype KeysWithoutFunctions<T> = Exclude<keyof T, KeysOfFunctions<T>>;\n\n/**\n * React component wrapper that will sync AngularJS bound variables in React state.\n * This wrapper is mandatory to allow the binding of AngularJS variables directly in controlled components.\n *\n * Without this the component will be redrawn everytime the value changes in AngularJS (outside of React control)\n * and the redraw will create issues when typing in the inputs.\n *\n * Examples\n * ---\n * SINGLE PAIR\n * ```tsx\n * type Props = {\n * value: unknown;\n * onChange: (v: unknown) => void;\n * }\n *\n * function ReactComponent({ value, onChange }: Props) {\n * return <input value={value} onChange={onChange} />\n * }\n *\n * r2a(withControlledInput(ReactComponent), ['value', 'onChange']);\n *\n * ```\n * ---\n * MULTIPLE PAIRS\n * ```tsx\n * type Props = {\n * valueStr: string;\n * onChangeStr: (v: string) => void;\n * valueNum: number;\n * onChangeNum: (v: number) => void;\n * }\n *\n * function ReactComponent({ valueStr, onChangeStr, valueNum, onChangeNum }: Props) {\n * return (\n * <>\n * <input type=\"text\" value={valueStr} onChange={onChangeStr} />\n * <input type=\"number\" value={valueNum} onChange={onChangeNum} />\n * </>\n * );\n * }\n *\n * r2a(withControlledInput(ReactComponent, {\n * valueStr: 'onChangeStr',\n * valueNum: 'onChangeNum'\n * }),\n * ['valueStr', 'onChangeStr', 'valueNum', 'onChangeNum']\n * )\n *\n * ```\n *\n * @param WrappedComponent The React component to wrap\n * @param controlledValueOnChangePairs A map of `(value:onChange)-like` pairs.\n * @returns WrappedComponent\n */\nexport function withControlledInput<T>(\n WrappedComponent: ComponentType<T>,\n controlledValueOnChangePairs:\n | {\n [Key in KeysWithoutFunctions<T>]?: KeysOfFunctions<T>;\n }\n | { value?: 'onChange' } = { value: 'onChange' }\n): ComponentType<T> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n // extract keys of values that will be updated outside of React lifecycle and their handler functions\n const keysToControl = Object.entries(controlledValueOnChangePairs) as [\n keyof T,\n keyof T,\n ][];\n\n function WrapperComponent(props: T) {\n // map of key = value for all tracked values that will be changed outside of React lifecycle\n // e.g. save in React state the values that will be changed in AngularJS\n const [controlledValues, setControlledValues] = useState<KeyRecord<T>>(\n {} as KeyRecord<T>\n );\n\n // generate a map of `funckey = (v: typeof props[value_key]) => void` to wrapp all handler functions.\n // each wrapped handler is referencing the key of the value it is changing so we can't use a single sync func\n const handlers = useMemo(\n () =>\n Object.fromEntries(\n keysToControl.map(([valueKey, onChangeKey]) => [\n onChangeKey,\n // generate and save a func that uses the key of the updated value\n (value: T[keyof T]) => {\n // update the state with the value coming from WrappedComponent\n setControlledValues(\n (c) => ({ ...c, [valueKey]: value }) as KeyRecord<T>\n );\n\n // call the bound handler func to update the value outside of React\n // eslint-disable-next-line react/destructuring-assignment\n const onChange = props[onChangeKey];\n if (typeof onChange === 'function') {\n onChange(value);\n }\n },\n ])\n ),\n [props]\n );\n\n // update the React state when a prop changes from outside of React lifecycle\n // limit keys to update to only tracked values ; ignore untracked props and handler functions\n useEffect(() => {\n const toUpdate = Object.fromEntries(\n // eslint-disable-next-line react/destructuring-assignment\n keysToControl.map(([key]) => [key, props[key]])\n ) as KeyRecord<T>;\n\n setControlledValues(toUpdate);\n }, [props]);\n\n return <WrappedComponent {...props} {...handlers} {...controlledValues} />;\n }\n\n WrapperComponent.displayName = `withControlledInput(${displayName})`;\n\n return WrapperComponent;\n}\n","import { ComponentType } from 'react';\n\nimport { UserProvider } from '@/react/hooks/useUser';\n\nimport { withReactQuery } from './withReactQuery';\n\nexport function withCurrentUser<T>(\n WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>\n): ComponentType<T & JSX.IntrinsicAttributes> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n return (\n <UserProvider>\n <WrappedComponent {...props} />\n </UserProvider>\n );\n }\n\n WrapperComponent.displayName = `withCurrentUser(${displayName})`;\n\n // User provider makes a call to the API to get the current user.\n // We need to wrap it with React Query to make that call.\n return withReactQuery(WrapperComponent);\n}\n","import { IFormController, IComponentOptions, IModule } from 'angular';\nimport { FormikErrors } from 'formik';\nimport { SchemaOf, object } from 'yup';\nimport _ from 'lodash';\nimport { ComponentType } from 'react';\n\nimport { PropNames, r2a } from '@/react-tools/react2angular';\n\nimport { validateForm } from '@@/form-components/validate-form';\nimport { ArrayError } from '@@/form-components/InputList/InputList';\n\ninterface FormFieldProps<TValue> {\n onChange(values: TValue): void; // update the values for the entire form object used in yup validation, not just one input.\n values: TValue; // current values\n errors?: FormikErrors<TValue> | ArrayError<TValue>;\n}\n\ntype WithFormFieldProps<TProps, TValue> = TProps & FormFieldProps<TValue>;\n\ntype ValidationResult<T> = FormikErrors<T> | undefined;\n\n/**\n * This utility function is used for wrapping React components with form validation.\n * When used inside an Angular form, it sets the form to invalid if the component values are invalid.\n * This function registers two AngularJS components:\n * 1. The React component with r2a wrapping:\n * - `onChange` and `values` must be manually passed to the React component from an Angular view.\n * - `errors` will be automatically passed to the React component and updated by the validation component.\n * 2. An AngularJS component that handles form validation, based on a yup validation schema:\n * - `validationData` can optionally be passed to the React component from an Angular view, which can be used in validation.\n *\n * @example\n * // Usage in Angular view\n * <component\n * values=\"ctrl.values\"\n * on-change=\"ctrl.handleChange\"\n * validation-data=\"ctrl.validationData\">\n * </component>\n */\nexport function withFormValidation<TProps, TValue, TData = never>(\n ngModule: IModule,\n Component: ComponentType<WithFormFieldProps<TProps, TValue>>,\n componentName: string,\n propNames: PropNames<TProps>[],\n schemaBuilder: (validationData?: TData) => SchemaOf<TValue>,\n isPrimitive = false\n) {\n const reactComponentName = `react${_.upperFirst(componentName)}`;\n\n ngModule\n .component(\n reactComponentName,\n r2a(Component, ['errors', 'onChange', 'values', ...propNames])\n )\n .component(\n componentName,\n createFormValidationComponent(\n reactComponentName,\n propNames,\n schemaBuilder,\n isPrimitive\n )\n );\n}\n\nexport function createFormValidationComponent<TFormModel, TData = never>(\n componentName: string,\n propNames: Array<string>,\n schemaBuilder: (validationData?: TData) => SchemaOf<TFormModel>,\n isPrimitive = false\n): IComponentOptions {\n const kebabName = _.kebabCase(componentName);\n const propsWithErrors = [...propNames, 'errors', 'values'];\n\n return {\n template: `<ng-form name=\"$ctrl.form\">\n <${kebabName} ${propsWithErrors\n .filter((p) => p !== 'onChange')\n .map((p) => `${_.kebabCase(p)}=\"$ctrl.${p}\"`)\n .join(' ')}\n on-change=\"($ctrl.handleChange)\"\n ></${kebabName}>\n </ng-form>`,\n controller: createFormValidatorController(schemaBuilder, isPrimitive),\n bindings: Object.fromEntries(\n [...propsWithErrors, 'validationData', 'onChange'].map((p) => [p, '<'])\n ),\n };\n}\n\nfunction createFormValidatorController<TFormModel, TData = never>(\n schemaBuilder: (validationData?: TData) => SchemaOf<TFormModel>,\n isPrimitive = false\n) {\n return class FormValidatorController {\n errors?: FormikErrors<TFormModel>;\n\n $async: <T>(fn: () => Promise<T>) => Promise<T>;\n\n form?: IFormController;\n\n values?: TFormModel;\n\n validationData?: TData;\n\n onChange?: (value: TFormModel) => void;\n\n /* @ngInject */\n constructor($async: <T>(fn: () => Promise<T>) => Promise<T>) {\n this.$async = $async;\n\n this.handleChange = this.handleChange.bind(this);\n this.runValidation = this.runValidation.bind(this);\n }\n\n async handleChange(newValues: TFormModel) {\n return this.$async(async () => {\n this.onChange?.(newValues);\n await this.runValidation(newValues);\n });\n }\n\n async runValidation(value: TFormModel) {\n return this.$async(async () => {\n this.form?.$setValidity('form', true, this.form);\n\n const schema = schemaBuilder(this.validationData);\n this.errors = await validate<TFormModel>(schema, value, isPrimitive);\n\n if (this.errors && Object.keys(this.errors).length > 0) {\n this.form?.$setValidity('form', false, this.form);\n }\n });\n }\n\n async $onChanges(changes: {\n values?: { currentValue: TFormModel };\n validationData?: { currentValue: TData };\n }) {\n if (changes.values) {\n await this.runValidation(changes.values.currentValue);\n }\n // also run validation if validationData changes\n if (changes.validationData) {\n await this.runValidation(this.values!);\n }\n }\n };\n}\n\nasync function validate<TFormModel>(\n schema: SchemaOf<TFormModel>,\n value: TFormModel,\n isPrimitive: boolean\n): Promise<ValidationResult<TFormModel>> {\n if (isPrimitive) {\n const result = await validateForm<{ value: TFormModel }>(\n () => object({ value: schema }),\n { value }\n );\n return result?.value as ValidationResult<TFormModel>;\n }\n return validateForm<TFormModel>(() => schema, value);\n}\n","import { ComponentType } from 'react';\nimport { QueryClientProvider } from 'react-query';\n\nimport { queryClient as defaultQueryClient } from './react-query';\n\nexport function withReactQuery<T>(\n WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>,\n queryClient = defaultQueryClient\n): ComponentType<T & JSX.IntrinsicAttributes> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n return (\n <QueryClientProvider client={queryClient}>\n <WrappedComponent {...props} />\n </QueryClientProvider>\n );\n }\n\n WrapperComponent.displayName = `withReactQuery(${displayName})`;\n\n return WrapperComponent;\n}\n","import { ComponentType } from 'react';\nimport { UIRouterContextComponent } from '@uirouter/react-hybrid';\n\nexport function withUIRouter<T>(\n WrappedComponent: ComponentType<T>\n): ComponentType<T> {\n // Try to create a nice displayName for React Dev Tools.\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n function WrapperComponent(props: T & JSX.IntrinsicAttributes) {\n return (\n <UIRouterContextComponent>\n <WrappedComponent {...props} />\n </UIRouterContextComponent>\n );\n }\n\n WrapperComponent.displayName = `withUIRouter(${displayName})`;\n\n return WrapperComponent;\n}\n","import { NumberSchema, number } from 'yup';\n\n/**\n * Returns a Yup schema for a number that can also be NaN.\n *\n * This function is a workaround for a known issue in Yup where it throws type errors\n * when the number input is empty, having a value NaN. Yup doesn't like NaN values.\n * More details can be found in these GitHub issues:\n * https://github.com/jquense/yup/issues/1330\n * https://github.com/jquense/yup/issues/211\n *\n * @param errorMessage The custom error message to display when the value is required.\n * @returns A Yup number schema with a custom type error message.\n */\nexport function nanNumberSchema(\n errorMessage = 'Value is required'\n): NumberSchema {\n return number().typeError(errorMessage);\n}\n","export function getSchemeFromPort(port?: number): 'http' | 'https' {\n if (!port) {\n return 'http';\n }\n\n const hostPort = String(port);\n return hostPort.endsWith('443') ? 'https' : 'http';\n}\n","/**\n * Type definition for the callback function used in processItemsInBatches.\n * It should accept an item from the array as its first argument\n * and additional arguments (if any) as its second argument, and should return a Promise.\n */\ntype ProcessItemsCallback<T, Args extends never[]> = (\n item: T,\n ...args: Args\n) => Promise<void>;\n\n/**\n * Asynchronously processes an array of items in batches.\n * @param items An array of items to be processed.\n * @param processor A callback function of type ProcessItemsCallback that will be called for each item in the array.\n * @param batchSize The maximum number of items to process in each batch. Defaults to 100 if not provided.\n * @param args Additional arguments to be passed to the callback function for each item.\n */\nexport async function processItemsInBatches<T, Args extends never[]>(\n items: T[],\n processor: ProcessItemsCallback<T, Args>,\n batchSize = 100,\n ...args: Args\n): Promise<void> {\n while (items.length) {\n const batch = items.splice(0, batchSize);\n const batchPromises = batch.map((item) => processor(item, ...args));\n\n await Promise.all(batchPromises);\n }\n}\n","/**\n * Compares two semver strings.\n *\n * returns:\n * - `-1` if `a < b`\n * - `0` if `a == b`\n * - `1` if `a > b`\n */\nexport function semverCompare(a: string, b: string) {\n if (a.startsWith(`${b}-`)) {\n return -1;\n }\n\n if (b.startsWith(`${a}-`)) {\n return 1;\n }\n\n return a.localeCompare(b, undefined, {\n numeric: true,\n sensitivity: 'case',\n caseFirst: 'upper',\n });\n}\n\nexport function isVersionSmaller(a: string, b: string) {\n return semverCompare(a, b) < 0;\n}\n","import { openSwitchPrompt } from '@@/modals/SwitchPrompt';\nimport { ModalType } from '@@/modals';\nimport { buildConfirmButton } from '@@/modals/utils';\n\nexport async function confirmStackUpdate(\n message: string,\n defaultValue: boolean\n) {\n const result = await openSwitchPrompt(\n 'Are you sure?',\n 'Re-pull image and redeploy',\n {\n message,\n confirmButton: buildConfirmButton('Update'),\n modalType: ModalType.Warn,\n defaultValue,\n }\n );\n\n return result ? { pullImage: result.value } : undefined;\n}\n","import { ResourceControlResponse } from '@/react/portainer/access-control/types';\nimport {\n AutoUpdateResponse,\n RepoConfigResponse,\n} from '@/react/portainer/gitops/types';\n\nexport type StackId = number;\n\nexport enum StackType {\n /**\n * Represents a stack managed via docker stack\n */\n DockerSwarm = 1,\n /**\n * Represents a stack managed via docker-compose\n */\n DockerCompose,\n /**\n * Represents a stack managed via kubectl\n */\n Kubernetes,\n}\n\nexport enum StackStatus {\n Active = 1,\n Inactive,\n}\n\nexport interface Stack {\n Id: number;\n Name: string;\n Type: StackType;\n EndpointID: number;\n SwarmID: string;\n EntryPoint: string;\n Env: {\n name: string;\n value: string;\n }[];\n ResourceControl?: ResourceControlResponse;\n Status: StackStatus;\n ProjectPath: string;\n CreationDate: number;\n CreatedBy: string;\n UpdateDate: number;\n UpdatedBy: string;\n AdditionalFiles?: string[];\n AutoUpdate?: AutoUpdateResponse;\n Option?: {\n Prune: boolean;\n Force: boolean;\n };\n GitConfig?: RepoConfigResponse;\n FromAppTemplate: boolean;\n Namespace?: string;\n IsComposeFormat: boolean;\n Webhook?: string;\n SupportRelativePath: boolean;\n FilesystemPath: string;\n StackFileVersion: string;\n PreviousDeploymentInfo: unknown;\n}\n\nexport type StackFile = {\n StackFileContent: string;\n};\n","import clsx from 'clsx';\nimport { AlertCircle, AlertTriangle, CheckCircle, XCircle } from 'lucide-react';\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport { Icon } from '@@/Icon';\n\ntype AlertType = 'success' | 'error' | 'info' | 'warn';\n\nconst alertSettings: Record<\n AlertType,\n { container: string; header: string; body: string; icon: ReactNode }\n> = {\n success: {\n container:\n 'border-green-4 bg-green-2 th-dark:bg-green-3 th-dark:border-green-5',\n header: 'text-green-8',\n body: 'text-green-7',\n icon: CheckCircle,\n },\n error: {\n container:\n 'border-error-4 bg-error-2 th-dark:bg-error-3 th-dark:border-error-5',\n header: 'text-error-8',\n body: 'text-error-7',\n icon: XCircle,\n },\n info: {\n container:\n 'border-blue-4 bg-blue-2 th-dark:bg-blue-3 th-dark:border-blue-5',\n header: 'text-blue-8',\n body: 'text-blue-7',\n icon: AlertCircle,\n },\n warn: {\n container:\n 'border-warning-4 bg-warning-2 th-dark:bg-warning-3 th-dark:border-warning-5',\n header: 'text-warning-8',\n body: 'text-warning-7',\n icon: AlertTriangle,\n },\n};\n\nexport function Alert({\n color,\n title,\n className,\n children,\n}: PropsWithChildren<{\n color: AlertType;\n title?: string;\n className?: string;\n}>) {\n const { container, header, body, icon } = alertSettings[color];\n\n return (\n <AlertContainer className={clsx(container, className)}>\n {title ? (\n <>\n <AlertHeader className={header}>\n <Icon icon={icon} />\n {title}\n </AlertHeader>\n <AlertBody className={body} hasTitle={!!title}>\n {children}\n </AlertBody>\n </>\n ) : (\n <AlertBody\n className={clsx(body, 'flex items-start gap-2')}\n hasTitle={!!title}\n >\n <Icon icon={icon} className=\"!mt-0.5 flex-none\" /> {children}\n </AlertBody>\n )}\n </AlertContainer>\n );\n}\n\nfunction AlertContainer({\n className,\n children,\n}: PropsWithChildren<{ className?: string }>) {\n return (\n <div className={clsx('rounded-md border-2 border-solid', 'p-3', className)}>\n {children}\n </div>\n );\n}\n\nfunction AlertHeader({\n className,\n children,\n}: PropsWithChildren<{ className?: string }>) {\n return (\n <h4\n className={clsx(\n 'text-base',\n '!m-0 mb-2 flex items-center gap-2',\n className\n )}\n >\n {children}\n </h4>\n );\n}\n\nfunction AlertBody({\n className,\n hasTitle,\n children,\n}: PropsWithChildren<{ className?: string; hasTitle: boolean }>) {\n return (\n <div className={clsx('text-sm', className, { 'ml-6': hasTitle })}>\n {children}\n </div>\n );\n}\n","import { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\nimport { Briefcase } from 'lucide-react';\n\nimport './BEFeatureIndicator.css';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { Icon } from '@@/Icon';\n\nimport { getFeatureDetails } from './utils';\n\nexport interface Props {\n featureId?: FeatureId;\n showIcon?: boolean;\n className?: string;\n}\n\nexport function BEFeatureIndicator({\n featureId,\n children,\n showIcon = true,\n className = '',\n}: PropsWithChildren<Props>) {\n const { url, limitedToBE } = getFeatureDetails(featureId);\n\n if (!limitedToBE) {\n return null;\n }\n return (\n <a\n className={clsx('be-indicator vertical-center text-xs', className)}\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children}\n {showIcon && <Icon icon={Briefcase} className=\"be-indicator-icon mr-1\" />}\n <span className=\"be-indicator-label break-words\">Business Feature</span>\n </a>\n );\n}\n","import { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isLimitedToBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nconst BE_URL = 'https://www.portainer.io/business-upsell?from=';\n\nexport function getFeatureDetails(featureId?: FeatureId) {\n if (!featureId) {\n return {};\n }\n const url = `${BE_URL}${featureId}`;\n\n const limitedToBE = isLimitedToBE(featureId);\n\n return { url, limitedToBE };\n}\n","import { Briefcase } from 'lucide-react';\n\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\n\nimport { Button } from '@@/buttons';\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\ninterface Props {\n featureId: FeatureId;\n heading: string;\n message: string;\n buttonText: string;\n className?: string;\n buttonClassName?: string;\n}\n\nexport function BETeaserButton({\n featureId,\n heading,\n message,\n buttonText,\n className,\n buttonClassName,\n}: Props) {\n return (\n <TooltipWithChildren\n className={className}\n heading={heading}\n BEFeatureID={featureId}\n message={message}\n >\n <span>\n <Button\n className={buttonClassName}\n icon={Briefcase}\n type=\"button\"\n color=\"default\"\n size=\"small\"\n onClick={() => {}}\n disabled\n >\n {buttonText}\n </Button>\n </span>\n </TooltipWithChildren>\n );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport type BadgeType =\n | 'success'\n | 'danger'\n | 'warn'\n | 'info'\n | 'successSecondary'\n | 'dangerSecondary'\n | 'warnSecondary'\n | 'infoSecondary';\n\n// the classes are typed in full because tailwind doesn't render the interpolated classes\nconst typeClasses: Record<BadgeType, string> = {\n success: clsx(\n `text-success-9 bg-success-2`,\n `th-dark:text-success-3 th-dark:bg-success-10`,\n `th-highcontrast:text-success-3 th-highcontrast:bg-success-10`\n ),\n warn: clsx(\n `text-warning-9 bg-warning-2`,\n `th-dark:text-warning-3 th-dark:bg-warning-10`,\n `th-highcontrast:text-warning-3 th-highcontrast:bg-warning-10`\n ),\n danger: clsx(\n `text-error-9 bg-error-2`,\n `th-dark:text-error-3 th-dark:bg-error-10`,\n `th-highcontrast:text-error-3 th-highcontrast:bg-error-10`\n ),\n info: clsx(\n `text-blue-9 bg-blue-2`,\n `th-dark:text-blue-3 th-dark:bg-blue-10`,\n `th-highcontrast:text-blue-3 th-highcontrast:bg-blue-10`\n ),\n // the secondary classes are a bit darker in light mode and a bit lighter in dark mode\n successSecondary: clsx(\n `text-success-9 bg-success-3`,\n `th-dark:text-success-3 th-dark:bg-success-9`,\n `th-highcontrast:text-success-3 th-highcontrast:bg-success-9`\n ),\n warnSecondary: clsx(\n `text-warning-9 bg-warning-3`,\n `th-dark:text-warning-3 th-dark:bg-warning-9`,\n `th-highcontrast:text-warning-3 th-highcontrast:bg-warning-9`\n ),\n dangerSecondary: clsx(\n `text-error-9 bg-error-3`,\n `th-dark:text-error-3 th-dark:bg-error-9`,\n `th-highcontrast:text-error-3 th-highcontrast:bg-error-9`\n ),\n infoSecondary: clsx(\n `text-blue-9 bg-blue-3`,\n `th-dark:text-blue-3 th-dark:bg-blue-9`,\n `th-highcontrast:text-blue-3 th-highcontrast:bg-blue-9`\n ),\n};\n\nexport interface Props {\n type?: BadgeType;\n className?: string;\n}\n\n// this component is used in tables and lists in portainer. It looks like this:\n// https://www.figma.com/file/g5TUMngrblkXM7NHSyQsD1/New-UI?node-id=76%3A2\nexport function Badge({\n type = 'info',\n className,\n children,\n}: PropsWithChildren<Props>) {\n const baseClasses =\n 'inline-flex w-fit items-center !text-xs font-medium rounded-full px-2 py-0.5';\n\n return (\n <span\n className={clsx(baseClasses, typeClasses[type], className)}\n role=\"status\"\n >\n {children}\n </span>\n );\n}\n","import clsx from 'clsx';\n\nimport { Icon, IconProps } from '@@/Icon';\n\nexport type BadgeSize = 'md' | 'lg' | 'xl' | '2xl' | '3xl';\n\nexport interface Props extends IconProps {\n size?: BadgeSize;\n}\n\nexport function BadgeIcon({ icon, size = '3xl', iconClass }: Props) {\n const sizeClasses = iconSizeToClasses(size);\n return (\n <div\n className={clsx(\n sizeClasses,\n `badge-icon\n inline-flex items-center\n justify-center rounded-full\n bg-blue-3\n text-blue-8 th-dark:bg-gray-9 th-dark:text-blue-3\n `\n )}\n >\n <Icon icon={icon} className={clsx('!flex', iconClass)} />\n </div>\n );\n}\n\nfunction iconSizeToClasses(size: BadgeSize) {\n switch (size) {\n case 'md':\n return 'h-6 w-6 text-md';\n case 'lg':\n return 'h-8 w-8 text-lg';\n case 'xl':\n return 'h-10 w-10 text-xl';\n case '2xl':\n return 'h-12 w-12 text-2xl';\n case '3xl':\n return 'h-14 w-14 text-3xl';\n default:\n return 'h-14 w-14 text-3xl';\n }\n}\n","import clsx from 'clsx';\nimport { ComponentProps, ComponentType, ElementType } from 'react';\n\nexport type AsComponentProps<E extends ElementType = ElementType> =\n ComponentProps<E> & {\n as?: E;\n };\n\nexport function BlocklistItem<T extends ElementType>({\n className,\n isSelected,\n children,\n as = 'button',\n ...props\n}: AsComponentProps & {\n isSelected?: boolean;\n as?: ComponentType<T>;\n}) {\n const Component = as as 'button';\n\n return (\n <Component\n type=\"button\"\n className={clsx(\n className,\n 'blocklist-item flex items-stretch overflow-hidden bg-transparent w-full !ml-0 no-link text-left',\n {\n 'blocklist-item--selected': isSelected,\n }\n )}\n role=\"listitem\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {children}\n </Component>\n );\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgHelm = function SvgHelm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"currentColor\",\n viewBox: \"-2 -2 28 28\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.651 19.252c.704 1.005.96 2.039.573 2.31-.387.271-1.271-.324-1.975-1.329a5.039 5.039 0 0 1-.584-1.082 8.572 8.572 0 0 1-3.898 1.4c.081.34.13.737.13 1.166 0 1.227-.383 2.221-.856 2.221s-.856-.994-.856-2.221c0-.42.047-.807.125-1.142a8.568 8.568 0 0 1-3.944-1.284c-.127.301-.3.621-.524.942-.704 1.005-1.588 1.6-1.975 1.329-.387-.271-.131-1.305.573-2.31a5.12 5.12 0 0 1 .743-.85 8.53 8.53 0 0 1-1.309-1.479l1.124-.782a7.2 7.2 0 0 0 5.908 3.088 7.2 7.2 0 0 0 5.916-3.098l1.125.78a8.567 8.567 0 0 1-1.183 1.366c.296.241.605.573.887.975zM6.277 5.623A8.587 8.587 0 0 0 4.711 7.43l1.15.743a7.17 7.17 0 0 1 6.046-3.293 7.144 7.144 0 0 1 6.151 3.461l1.17-.711a8.658 8.658 0 0 0-1.56-1.895c.324-.245.671-.603.983-1.049.704-1.005.96-2.039.573-2.31-.387-.271-1.271.324-1.975 1.329-.294.419-.504.84-.627 1.212a8.488 8.488 0 0 0-3.9-1.364c.108-.372.175-.83.175-1.333 0-1.226-.383-2.22-.856-2.22s-.856.994-.856 2.221c0 .491.063.941.167 1.308a8.521 8.521 0 0 0-3.93 1.247 4.991 4.991 0 0 0-.58-1.071C6.139 2.7 5.255 2.106 4.868 2.377c-.387.271-.131 1.305.573 2.31.265.378.556.698.836.936zM.5 15.272h1.648V12.8h1.859v2.473h1.648v-6.23H4.008v2.319h-1.86V9.043H.5v6.229zm6.536-6.229v6.229h4.121v-1.38H8.684V12.78h2.032V11.4H8.684v-.978h2.377v-1.38l-4.025.001zm5.328 0v6.229h4.006v-1.38h-2.358V9.043h-1.648zm5.079 0v6.229h1.514v-1.84c0-.16-.008-.335-.024-.527a53.436 53.436 0 0 0-.053-.589 16.516 16.516 0 0 0-.067-.589 46.795 46.795 0 0 1-.067-.517h.038l.498 1.457.863 2.099h.613l.862-2.099.517-1.457h.038l-.067.518c-.026.192-.048.388-.067.589-.019.201-.037.398-.053.589a6.375 6.375 0 0 0-.024.527v1.84H23.5v-6.23h-1.706l-.939 2.588-.345 1.016h-.038l-.345-1.016-.978-2.588h-1.706z\"\n })));\n};\nexport default SvgHelm;","import { Edit, FileText, Globe, UploadCloud } from 'lucide-react';\n\nimport GitIcon from '@/assets/ico/git.svg?c';\nimport Helm from '@/assets/ico/helm.svg?c';\n\nimport { BoxSelectorOption } from '../types';\n\nexport const editor: BoxSelectorOption<'editor'> = {\n id: 'method_editor',\n icon: Edit,\n iconType: 'badge',\n label: 'Web editor',\n value: 'editor',\n};\n\nexport const upload: BoxSelectorOption<'upload'> = {\n id: 'method_upload',\n icon: UploadCloud,\n iconType: 'badge',\n label: 'Upload',\n value: 'upload',\n};\n\nexport const git: BoxSelectorOption<'repository'> = {\n id: 'method_repository',\n icon: GitIcon,\n iconType: 'logo',\n label: 'Repository',\n value: 'repository',\n};\n\nexport const edgeStackTemplate: BoxSelectorOption<'template'> = {\n id: 'method_template',\n icon: FileText,\n iconType: 'badge',\n label: 'Template',\n description: 'Use an Edge stack app or custom template',\n value: 'template',\n};\n\nexport const customTemplate: BoxSelectorOption<'template'> = {\n id: 'method_template',\n icon: FileText,\n iconType: 'badge',\n label: 'Custom template',\n value: 'template',\n};\n\nexport const helm: BoxSelectorOption<'helm'> = {\n id: 'method_helm',\n icon: Helm,\n label: 'Helm chart',\n value: 'helm',\n iconClass: '!text-[#0f1689] th-dark:!text-white th-highcontrast:!text-white',\n};\n\nexport const url: BoxSelectorOption<'url'> = {\n id: 'method_url',\n icon: Globe,\n iconType: 'badge',\n label: 'URL',\n value: 'url',\n};\n","import Kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport DockerCompose from '@/assets/ico/vendor/docker-compose.svg?c';\n\nimport { BoxSelectorOption } from '../types';\n\nexport const kubernetes: BoxSelectorOption<'kubernetes'> = {\n id: 'method_kubernetes',\n icon: Kubernetes,\n label: 'Kubernetes',\n description: 'Kubernetes manifest format',\n value: 'kubernetes',\n iconType: 'logo',\n};\n\nexport const compose: BoxSelectorOption<'compose'> = {\n id: 'method_compose',\n icon: DockerCompose,\n label: 'Compose',\n description: 'docker-compose format',\n value: 'compose',\n iconType: 'logo',\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-BoxSelector-BoxSelector-module__root\"};","// extracted by mini-css-extract-plugin\nexport default {\"boxSelectorItem\":\"app-react-components-BoxSelector-BoxSelectorItem-module__box-selector-item\",\"header\":\"app-react-components-BoxSelector-BoxSelectorItem-module__header\",\"imageContainer\":\"app-react-components-BoxSelector-BoxSelectorItem-module__image-container\",\"icon\":\"app-react-components-BoxSelector-BoxSelectorItem-module__icon\",\"slim\":\"app-react-components-BoxSelector-BoxSelectorItem-module__slim\",\"content\":\"app-react-components-BoxSelector-BoxSelectorItem-module__content\",\"limited\":\"app-react-components-BoxSelector-BoxSelectorItem-module__limited\",\"business\":\"app-react-components-BoxSelector-BoxSelectorItem-module__business\"};","import { Briefcase } from 'lucide-react';\n\nimport { Icon } from '@@/Icon';\nimport { Tooltip } from '@@/Tip/Tooltip';\n\ninterface Props {\n url?: string;\n showTooltip?: boolean;\n}\n\nexport function LimitedToBeBoxSelectorIndicator({\n url,\n showTooltip = true,\n}: Props) {\n return (\n <div className=\"absolute left-0 top-0 w-full\">\n <div className=\"mx-auto flex max-w-fit items-center rounded-b-lg border border-t-0 border-solid border-gray-6 bg-transparent px-3 py-1 text-gray-6\">\n <a\n className=\"inline-flex items-center text-xs text-gray-6\"\n href={url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Icon icon={Briefcase} className=\"!mr-1\" />\n <span>Business Feature</span>\n </a>\n {showTooltip && (\n <Tooltip\n size=\"sm\"\n message=\"Select this option to preview this business feature.\"\n />\n )}\n </div>\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-BoxSelector-BoxOption-module__root\"};","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\nimport type { Icon } from 'lucide-react';\n\nimport { TooltipWithChildren } from '@@/Tip/TooltipWithChildren';\n\nimport styles from './BoxOption.module.css';\nimport { BoxSelectorOption, Value } from './types';\n\ninterface Props<T extends Value> {\n radioName: string;\n option: BoxSelectorOption<T>;\n onSelect?(value: T): void;\n isSelected(value: T): boolean;\n disabled?: boolean;\n tooltip?: string;\n className?: string;\n type?: 'radio' | 'checkbox';\n checkIcon: Icon;\n}\n\nexport function BoxOption<T extends Value>({\n radioName,\n option,\n onSelect = () => {},\n isSelected,\n disabled,\n tooltip,\n className,\n type = 'radio',\n children,\n checkIcon: Check,\n}: PropsWithChildren<Props<T>>) {\n const selected = isSelected(option.value);\n\n const item = (\n <div className={clsx(styles.root, className)}>\n <input\n type={type}\n name={radioName}\n id={option.id}\n checked={selected}\n value={option.value.toString()}\n disabled={disabled}\n onChange={() => onSelect(option.value)}\n />\n\n <label htmlFor={option.id} data-cy={`${radioName}_${option.value}`}>\n {children}\n\n {!disabled && (\n <div\n className={clsx(\n 'absolute right-4 top-4 flex h-4 w-4 items-center justify-center border border-solid font-bold text-white',\n {\n 'border-gray-6 bg-white': !selected,\n 'border-blue-8 bg-blue-8': selected,\n },\n {\n 'rounded-full': type === 'radio',\n 'rounded-sm': type === 'checkbox',\n }\n )}\n >\n {selected && <Check className=\"lucide\" strokeWidth={3} />}\n </div>\n )}\n </label>\n </div>\n );\n\n if (tooltip) {\n return <TooltipWithChildren message={tooltip}>{item}</TooltipWithChildren>;\n }\n\n return item;\n}\n","import clsx from 'clsx';\n\nimport { Icon, IconProps } from '@@/Icon';\n\ntype Props = IconProps;\n\nexport function LogoIcon({ icon, iconClass }: Props) {\n return (\n <div\n className={`\n inline-flex h-14 w-14\n items-center justify-center text-7xl\n`}\n >\n <Icon icon={icon} className={clsx('!flex', iconClass)} />\n </div>\n );\n}\n","import clsx from 'clsx';\nimport { Icon as ReactFeatherComponentType, Check } from 'lucide-react';\nimport { Fragment } from 'react';\n\nimport { Icon } from '@/react/components/Icon';\n\nimport { BadgeIcon } from '@@/BadgeIcon';\nimport { getFeatureDetails } from '@@/BEFeatureIndicator/utils';\n\nimport styles from './BoxSelectorItem.module.css';\nimport { BoxSelectorOption, Value } from './types';\nimport { LimitedToBeBoxSelectorIndicator } from './LimitedToBeBoxSelectorIndicator';\nimport { BoxOption } from './BoxOption';\nimport { LogoIcon } from './LogoIcon';\n\ntype Props<T extends Value> = {\n option: BoxSelectorOption<T>;\n radioName: string;\n disabled?: boolean;\n tooltip?: string;\n onSelect(value: T, limitedToBE: boolean): void;\n isSelected(value: T): boolean;\n type?: 'radio' | 'checkbox';\n slim?: boolean;\n checkIcon?: ReactFeatherComponentType;\n};\n\nexport function BoxSelectorItem<T extends Value>({\n radioName,\n option,\n onSelect = () => {},\n disabled,\n tooltip,\n type = 'radio',\n isSelected,\n slim = false,\n checkIcon = Check,\n}: Props<T>) {\n const { limitedToBE = false, url: featureUrl } = getFeatureDetails(\n option.feature\n );\n\n const ContentBox = slim ? 'div' : Fragment;\n\n return (\n <BoxOption\n className={clsx(styles.boxSelectorItem, {\n [styles.business]: limitedToBE,\n [styles.limited]: limitedToBE,\n })}\n radioName={radioName}\n option={option}\n isSelected={isSelected}\n disabled={isDisabled()}\n onSelect={(value) => onSelect(value, limitedToBE)}\n tooltip={tooltip}\n type={type}\n checkIcon={checkIcon}\n >\n {limitedToBE && (\n <LimitedToBeBoxSelectorIndicator\n url={featureUrl}\n // show tooltip only for radio type options because be-only checkbox options can't be selected\n showTooltip={type === 'radio'}\n />\n )}\n <div\n className={clsx('flex min-w-[140px] gap-2', {\n 'opacity-30': limitedToBE,\n 'h-full flex-col justify-start': !slim,\n 'slim items-center': slim,\n })}\n >\n <div className={clsx(styles.imageContainer, 'flex items-start')}>\n {renderIcon()}\n </div>\n <ContentBox>\n <div className={styles.header}>{option.label}</div>\n <p className=\"mb-0\">{option.description}</p>\n </ContentBox>\n </div>\n </BoxOption>\n );\n\n function isDisabled() {\n return disabled || (limitedToBE && option.disabledWhenLimited);\n }\n\n function renderIcon() {\n if (!option.icon) {\n return null;\n }\n\n if (option.iconType === 'badge') {\n return <BadgeIcon icon={option.icon} iconClass={option.iconClass} />;\n }\n\n if (option.iconType === 'raw') {\n return (\n <Icon\n icon={option.icon}\n className={clsx(styles.icon, option.iconClass, '!flex items-center')}\n />\n );\n }\n\n return <LogoIcon icon={option.icon} iconClass={option.iconClass} />;\n }\n}\n","import styles from './BoxSelector.module.css';\nimport { BoxSelectorItem } from './BoxSelectorItem';\nimport { BoxSelectorOption, Value } from './types';\n\ninterface IsMultiProps<T extends Value> {\n isMulti: true;\n value: T[];\n onChange(value: T[], limitedToBE: boolean): void;\n}\n\ninterface SingleProps<T extends Value> {\n isMulti?: never;\n value: T;\n onChange(value: T, limitedToBE: boolean): void;\n}\n\ntype Union<T extends Value> = IsMultiProps<T> | SingleProps<T>;\n\nexport type Props<T extends Value> = Union<T> & {\n radioName: string;\n options: ReadonlyArray<BoxSelectorOption<T>> | Array<BoxSelectorOption<T>>;\n slim?: boolean;\n hiddenSpacingCount?: number;\n};\n\nexport function BoxSelector<T extends Value>({\n radioName,\n options,\n slim = false,\n hiddenSpacingCount,\n ...props\n}: Props<T>) {\n return (\n <div className='form-group after:clear-both after:table after:content-[\"\"]'>\n <div className=\"col-sm-12\">\n <div className={styles.root} role=\"radiogroup\">\n {options\n .filter((option) => !option.hide)\n .map((option) => (\n <BoxSelectorItem\n key={option.id}\n radioName={radioName}\n option={option}\n onSelect={handleSelect}\n disabled={option.disabled && option.disabled()}\n tooltip={option.tooltip && option.tooltip()}\n type={props.isMulti ? 'checkbox' : 'radio'}\n isSelected={isSelected}\n slim={slim}\n />\n ))}\n {hiddenSpacingCount &&\n Array.from(Array(hiddenSpacingCount)).map((_, index) => (\n <div key={index} className=\"flex-1\" />\n ))}\n </div>\n </div>\n </div>\n );\n\n function handleSelect(optionValue: T, limitedToBE: boolean) {\n if (props.isMulti) {\n const newValue = isSelected(optionValue)\n ? props.value.filter((v) => v !== optionValue)\n : [...props.value, optionValue];\n props.onChange(newValue, limitedToBE);\n return;\n }\n\n if (isSelected(optionValue)) {\n return;\n }\n\n props.onChange(optionValue, limitedToBE);\n }\n\n function isSelected(optionValue: T) {\n if (props.isMulti) {\n return props.value.includes(optionValue);\n }\n\n return props.value === optionValue;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"code\":\"app-react-components-Code-Code-module__code\",\"root\":\"app-react-components-Code-Code-module__root\",\"copyButton\":\"app-react-components-Code-Code-module__copy-button\"};","import { Check, Copy } from 'lucide-react';\n\nimport { Button } from '@@/buttons';\nimport { useCopy } from '@@/buttons/CopyButton/useCopy';\nimport { Icon } from '@@/Icon';\n\nimport styles from './Code.module.css';\n\ninterface Props {\n showCopyButton?: boolean;\n children: string;\n}\n\nexport function Code({ children, showCopyButton }: Props) {\n const { handleCopy, copiedSuccessfully } = useCopy(children);\n\n return (\n <div className={styles.root}>\n <code className={styles.code}>{children}</code>\n\n {showCopyButton && (\n <Button color=\"link\" className={styles.copyButton} onClick={handleCopy}>\n <Icon\n icon={copiedSuccessfully ? Check : Copy}\n className=\"!ml-1\"\n mode={copiedSuccessfully ? 'success' : undefined}\n />\n </Button>\n )}\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-components-CodeEditor-module__root\"};","import CodeMirror from '@uiw/react-codemirror';\nimport { StreamLanguage, LanguageSupport } from '@codemirror/language';\nimport { yaml } from '@codemirror/legacy-modes/mode/yaml';\nimport { dockerFile } from '@codemirror/legacy-modes/mode/dockerfile';\nimport { shell } from '@codemirror/legacy-modes/mode/shell';\nimport { useMemo } from 'react';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { tags as highlightTags } from '@lezer/highlight';\n\nimport { CopyButton } from '@@/buttons/CopyButton';\n\nimport styles from './CodeEditor.module.css';\nimport { TextTip } from './Tip/TextTip';\n\ninterface Props {\n id: string;\n placeholder?: string;\n yaml?: boolean;\n dockerFile?: boolean;\n shell?: boolean;\n readonly?: boolean;\n onChange: (value: string) => void;\n value: string;\n height?: string;\n}\n\nconst theme = createTheme({\n theme: 'light',\n settings: {\n background: 'var(--bg-codemirror-color)',\n foreground: 'var(--text-codemirror-color)',\n caret: 'var(--border-codemirror-cursor-color)',\n selection: 'var(--bg-codemirror-selected-color)',\n selectionMatch: 'var(--bg-codemirror-selected-color)',\n gutterBackground: 'var(--bg-codemirror-gutters-color)',\n },\n styles: [\n { tag: highlightTags.atom, color: 'var(--text-cm-default-color)' },\n { tag: highlightTags.meta, color: 'var(--text-cm-meta-color)' },\n {\n tag: [highlightTags.string, highlightTags.special(highlightTags.brace)],\n color: 'var(--text-cm-string-color)',\n },\n { tag: highlightTags.number, color: 'var(--text-cm-number-color)' },\n { tag: highlightTags.keyword, color: 'var(--text-cm-keyword-color)' },\n { tag: highlightTags.comment, color: 'var(--text-cm-comment-color)' },\n {\n tag: highlightTags.variableName,\n color: 'var(--text-cm-variable-name-color)',\n },\n ],\n});\n\nconst yamlLanguage = new LanguageSupport(StreamLanguage.define(yaml));\nconst dockerFileLanguage = new LanguageSupport(\n StreamLanguage.define(dockerFile)\n);\nconst shellLanguage = new LanguageSupport(StreamLanguage.define(shell));\n\nexport function CodeEditor({\n id,\n onChange,\n placeholder,\n readonly,\n value,\n height = '500px',\n yaml: isYaml,\n dockerFile: isDockerFile,\n shell: isShell,\n}: Props) {\n const extensions = useMemo(() => {\n const extensions = [];\n if (isYaml) {\n extensions.push(yamlLanguage);\n }\n if (isDockerFile) {\n extensions.push(dockerFileLanguage);\n }\n if (isShell) {\n extensions.push(shellLanguage);\n }\n return extensions;\n }, [isYaml, isDockerFile, isShell]);\n\n return (\n <>\n <div className=\"mb-2 flex items-center justify-between\">\n <div className=\"flex flex-1 items-center\">\n {!!placeholder && <TextTip color=\"blue\">{placeholder}</TextTip>}\n </div>\n\n <CopyButton\n fadeDelay={2500}\n copyText={value}\n color=\"link\"\n className=\"!pr-0 !text-sm !font-medium hover:no-underline focus:no-underline\"\n indicatorPosition=\"left\"\n >\n Copy to clipboard\n </CopyButton>\n </div>\n <CodeMirror\n className={styles.root}\n theme={theme}\n value={value}\n onChange={onChange}\n readOnly={readonly}\n id={id}\n extensions={extensions}\n height={height}\n basicSetup={{\n highlightSelectionMatches: false,\n autocompletion: false,\n }}\n />\n </>\n );\n}\n","import { PropsWithChildren } from 'react';\n\nexport function DashboardGrid({ children }: PropsWithChildren<unknown>) {\n return <div className=\"grid grid-cols-2 gap-3\">{children}</div>;\n}\n","import { ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { Loader2 } from 'lucide-react';\n\nimport { Icon, IconProps } from '@/react/components/Icon';\nimport { pluralize } from '@/portainer/helpers/strings';\n\nimport { Link } from '@@/Link';\n\ninterface Props extends IconProps {\n type: string;\n pluralType?: string; // in case the pluralise function isn't suitable\n isLoading?: boolean;\n isRefetching?: boolean;\n value?: number;\n to?: string;\n params?: object;\n children?: ReactNode;\n dataCy?: string;\n}\n\nexport function DashboardItem({\n icon,\n type,\n pluralType,\n isLoading,\n isRefetching,\n value,\n to,\n params,\n children,\n dataCy,\n}: Props) {\n const Item = (\n <div\n className={clsx(\n 'relative rounded-lg border border-solid p-3',\n 'border-gray-5 bg-gray-2 hover:border-blue-7 hover:bg-blue-2',\n 'th-dark:border-gray-neutral-8 th-dark:bg-gray-iron-10 th-dark:hover:border-blue-8 th-dark:hover:bg-gray-10',\n 'th-highcontrast:border-white th-highcontrast:bg-black th-highcontrast:hover:border-blue-8 th-highcontrast:hover:bg-gray-11'\n )}\n data-cy={dataCy}\n >\n <div\n className={clsx(\n 'text-muted absolute right-2 top-2 flex items-center text-xs transition-opacity',\n isRefetching ? 'opacity-100' : 'opacity-0'\n )}\n >\n Refreshing total\n <Loader2 className=\"h-4 animate-spin-slow\" />\n </div>\n <div\n className={clsx(\n 'text-muted absolute right-2 top-2 flex items-center text-xs transition-opacity',\n isLoading ? 'opacity-100' : 'opacity-0'\n )}\n >\n Loading total\n <Loader2 className=\"h-4 animate-spin-slow\" />\n </div>\n <div className=\"flex items-center\" aria-label={type}>\n <div\n className={clsx(\n 'icon-badge mr-4 !p-2 text-2xl',\n 'bg-blue-3 text-blue-8',\n 'th-dark:bg-blue-3 th-dark:text-blue-8',\n 'th-highcontrast:bg-blue-3 th-highcontrast:text-blue-8'\n )}\n >\n <Icon icon={icon} />\n </div>\n\n <div className=\"flex flex-col justify-around\">\n <div\n className={clsx(\n 'text-2xl font-medium',\n 'text-gray-9',\n 'th-dark:text-white',\n 'th-highcontrast:text-white'\n )}\n aria-label=\"value\"\n >\n {typeof value === 'undefined' ? '-' : value}\n </div>\n <div\n className={clsx(\n 'text-xl',\n 'text-gray-7',\n 'th-dark:text-gray-warm-5',\n 'th-highcontrast:text-gray-warm-5'\n )}\n aria-label=\"resourceType\"\n >\n {pluralize(value || 0, type, pluralType)}\n </div>\n </div>\n\n <div className=\"ml-auto\">{children}</div>\n </div>\n </div>\n );\n\n if (to) {\n return (\n <Link to={to} className=\"!no-underline\" params={params}>\n {Item}\n </Link>\n );\n }\n return Item;\n}\n","import { DetailsTable as MainComponent } from './DetailsTable';\nimport { DetailsRow } from './DetailsRow';\n\ninterface DetailsTableSubcomponents {\n Row: typeof DetailsRow;\n}\n\nconst DetailsTable = MainComponent as typeof MainComponent &\n DetailsTableSubcomponents;\n\nDetailsTable.Row = DetailsRow;\n\nexport { DetailsTable };\n","import clsx from 'clsx';\nimport { Children, PropsWithChildren } from 'react';\n\ntype Props = {\n headers?: string[];\n dataCy?: string;\n className?: string;\n emptyMessage?: string;\n};\n\nexport function DetailsTable({\n headers = [],\n dataCy,\n className,\n emptyMessage,\n children,\n}: PropsWithChildren<Props>) {\n return (\n <table className={clsx('table', className)} data-cy={dataCy}>\n {headers.length > 0 && (\n <thead>\n <tr>\n {headers.map((header) => (\n <th key={header}>{header}</th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {Children.count(children) > 0 ? (\n children\n ) : (\n <tr>\n <td colSpan={headers.length} className=\"text-muted text-center\">\n {emptyMessage}\n </td>\n </tr>\n )}\n </tbody>\n </table>\n );\n}\n","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\ninterface Props {\n children: ReactNode;\n label: string;\n colClassName?: string;\n className?: string;\n columns?: Array<ReactNode>;\n}\n\nexport function DetailsRow({\n label,\n children,\n colClassName,\n className,\n columns,\n}: Props) {\n return (\n <tr className={className}>\n <td className={clsx(colClassName, 'min-w-[150px] !break-normal')}>\n {label}\n </td>\n <td className={colClassName} data-cy={`detailsTable-${label}Value`}>\n {children}\n </td>\n {columns?.map((column, index) => (\n <td key={index} className={colClassName}>\n {column}\n </td>\n ))}\n </tr>\n );\n}\n","import { ReactNode, useEffect, useState } from 'react';\n\ninterface Props {\n // props for the image to load\n src?: string; // a link to an external image\n fallbackIcon: ReactNode;\n alt?: string;\n className?: string;\n}\n\nexport function FallbackImage({ src, fallbackIcon, alt, className }: Props) {\n const [error, setError] = useState(false);\n\n useEffect(() => {\n setError(false);\n }, [src]);\n\n if (!error && src) {\n return (\n <img\n className={className}\n src={src}\n alt={alt}\n onError={() => setError(true)}\n />\n );\n }\n\n // fallback icon if there is an error loading the image\n return <>{fallbackIcon}</>;\n}\n","import { ReactNode } from 'react';\n\nimport { useDocsUrl } from '../PageHeader/ContextHelp/ContextHelp';\n\ntype HelpLinkProps = {\n docLink: string;\n target?: string;\n children?: ReactNode;\n};\n\nexport function HelpLink({\n docLink,\n target = '_blank',\n children,\n}: HelpLinkProps) {\n const docsUrl = useDocsUrl(docLink);\n\n return (\n <a href={docsUrl} target={target} rel=\"noopener noreferrer\">\n {children}\n </a>\n );\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDataflow1 = function SvgDataflow1(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M17 20h-.2c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C12 17.72 12 16.88 12 15.2V8.8c0-1.68 0-2.52.327-3.162a3 3 0 0 1 1.311-1.311C14.28 4 15.12 4 16.8 4h.2m0 16a2 2 0 1 0 4 0 2 2 0 0 0-4 0Zm0-16a2 2 0 1 0 4 0 2 2 0 0 0-4 0ZM7 12h10M7 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm10 0a2 2 0 1 0 4 0 2 2 0 0 0-4 0Z\"\n })));\n};\nexport default SvgDataflow1;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgRestoreWindow = function SvgRestoreWindow(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M10.5 2.003c-.675.009-1.08.048-1.408.215a2 2 0 0 0-.874.874c-.167.328-.206.733-.215 1.408M19.5 2.003c.675.009 1.08.048 1.408.215a2 2 0 0 1 .874.874c.167.328.206.733.215 1.408m0 9c-.009.675-.048 1.08-.215 1.408a2 2 0 0 1-.874.874c-.328.167-.733.206-1.408.215M22 8v2m-8-8h2M5.2 22h7.6c1.12 0 1.68 0 2.108-.218a2 2 0 0 0 .874-.874C16 20.48 16 19.92 16 18.8v-7.6c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874C14.48 8 13.92 8 12.8 8H5.2c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874C2 9.52 2 10.08 2 11.2v7.6c0 1.12 0 1.68.218 2.108a2 2 0 0 0 .874.874C3.52 22 4.08 22 5.2 22Z\"\n })));\n};\nexport default SvgRestoreWindow;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSort = function SvgSort(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M17 4v16m0 0-4-4m4 4 4-4M7 20V4m0 0L3 8m4-4 4 4\"\n })));\n};\nexport default SvgSort;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgPlaceholder = function SvgPlaceholder(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.3,\n d: \"M23.419 11.65a.43.43 0 0 0-.29-.218l-2.37-.604a.463.463 0 0 0-.58.362l-.532 2.152-2.055-.508-.096-.024a.608.608 0 0 0-.363.048.43.43 0 0 0-.217.29l-.532 2.152-2.152-.532a.463.463 0 0 0-.58.363l-.58 2.127-2.152-.532a.608.608 0 0 0-.363.049.431.431 0 0 0-.218.29l-.048.193-.556 2.273a.463.463 0 0 0 .363.58l9.38 2.345c.12.024.217.048.338.048.605 0 1.16-.41 1.306-1.015l2.37-9.477a.498.498 0 0 0-.073-.363Zm-8.97 4.157 2.104.532c.12.049.29.025.41-.048a.45.45 0 0 0 .218-.363l.412-1.668 1.353 1.79-.677 2.707-4.303-1.088.484-1.862Zm5.73 5.44a.382.382 0 0 1-.46.29l-8.92-2.224.338-1.33 7.398 1.862c.024 0 .073.024.097.024h.024c.024 0 .049 0 .097-.024h.024c.048 0 .073-.024.097-.048a.43.43 0 0 0 .217-.29l.846-3.41a.602.602 0 0 0-.072-.41L18.68 14.14l1.16.29a.463.463 0 0 0 .58-.363l.533-2.152 1.45.363-2.224 8.969ZM10.291 15.71a.485.485 0 0 0 .484-.483v-2.224h2.2a.485.485 0 0 0 .483-.483v-2.2h2.2a.485.485 0 0 0 .484-.483V7.613h1.982a.485.485 0 0 0 .483-.484V2.85c0-.749-.604-1.353-1.354-1.353h-15.4C1.105 1.496.5 2.1.5 2.85v14.07c0 .75.604 1.354 1.354 1.354h5.73a.485.485 0 0 0 .483-.483v-2.055l2.224-.025Zm2.2-3.674h-2.2a.485.485 0 0 0-.483.484v2.224H3.837v-1.475l1.885-1.427 1.644.943a.515.515 0 0 0 .58-.072L11.55 9.23l.943.75v2.055ZM7.1 17.282H1.854a.382.382 0 0 1-.387-.387V2.85c0-.218.17-.387.387-.387h15.4c.217 0 .386.17.386.387v3.82h-1.958a.485.485 0 0 0-.483.483v2.224h-1.934l-1.427-1.136c-.193-.145-.46-.145-.628.024l-3.675 3.506-1.596-.919c-.169-.097-.387-.097-.532.024l-2.345 1.765a.505.505 0 0 0-.193.387v2.224c0 .121.048.242.145.338a.477.477 0 0 0 .338.145H7.1l.001 1.547Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.3,\n d: \"M5.408 8.821a2.182 2.182 0 0 0 2.176-2.176A2.182 2.182 0 0 0 5.408 4.47a2.182 2.182 0 0 0-2.176 2.176c-.024 1.185.967 2.176 2.176 2.176Zm0-3.409c.677 0 1.208.556 1.208 1.209 0 .677-.556 1.209-1.208 1.209a1.212 1.212 0 0 1-1.209-1.21c-.024-.676.532-1.208 1.209-1.208Z\"\n })));\n};\nexport default SvgPlaceholder;","var _style, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAws = function SvgAws(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"aws_svg__Layer_1\",\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 304 182\"\n },\n viewBox: \"0 0 304 182\",\n width: \"1em\",\n height: \"1em\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".aws_svg__st1{fill-rule:evenodd;clip-rule:evenodd;fill:#f90}\")), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.4 66.4c0 3.7.4 6.7 1.1 8.9.8 2.2 1.8 4.6 3.2 7.2.5.8.7 1.6.7 2.3 0 1-.6 2-1.9 3L83.2 92c-.9.6-1.8.9-2.6.9-1 0-2-.5-3-1.4-1.4-1.5-2.6-3.1-3.6-4.7-1-1.7-2-3.6-3.1-5.9-7.8 9.2-17.6 13.8-29.4 13.8-8.4 0-15.1-2.4-20-7.2-4.9-4.8-7.4-11.2-7.4-19.2 0-8.5 3-15.4 9.1-20.6 6.1-5.2 14.2-7.8 24.5-7.8 3.4 0 6.9.3 10.6.8 3.7.5 7.5 1.3 11.5 2.2v-7.3c0-7.6-1.6-12.9-4.7-16-3.2-3.1-8.6-4.6-16.3-4.6-3.5 0-7.1.4-10.8 1.3-3.7.9-7.3 2-10.8 3.4-1.6.7-2.8 1.1-3.5 1.3-.7.2-1.2.3-1.6.3-1.4 0-2.1-1-2.1-3.1v-4.9c0-1.6.2-2.8.7-3.5.5-.7 1.4-1.4 2.8-2.1 3.5-1.8 7.7-3.3 12.6-4.5C41 1.9 46.2 1.3 51.7 1.3c11.9 0 20.6 2.7 26.2 8.1 5.5 5.4 8.3 13.6 8.3 24.6v32.4zM45.8 81.6c3.3 0 6.7-.6 10.3-1.8 3.6-1.2 6.8-3.4 9.5-6.4 1.6-1.9 2.8-4 3.4-6.4.6-2.4 1-5.3 1-8.7v-4.2c-2.9-.7-6-1.3-9.2-1.7-3.2-.4-6.3-.6-9.4-.6-6.7 0-11.6 1.3-14.9 4-3.3 2.7-4.9 6.5-4.9 11.5 0 4.7 1.2 8.2 3.7 10.6 2.4 2.5 5.9 3.7 10.5 3.7zm80.3 10.8c-1.8 0-3-.3-3.8-1-.8-.6-1.5-2-2.1-3.9L96.7 10.2c-.6-2-.9-3.3-.9-4 0-1.6.8-2.5 2.4-2.5h9.8c1.9 0 3.2.3 3.9 1 .8.6 1.4 2 2 3.9l16.8 66.2 15.6-66.2c.5-2 1.1-3.3 1.9-3.9.8-.6 2.2-1 4-1h8c1.9 0 3.2.3 4 1 .8.6 1.5 2 1.9 3.9l15.8 67 17.3-67c.6-2 1.3-3.3 2-3.9.8-.6 2.1-1 3.9-1h9.3c1.6 0 2.5.8 2.5 2.5 0 .5-.1 1-.2 1.6-.1.6-.3 1.4-.7 2.5l-24.1 77.3c-.6 2-1.3 3.3-2.1 3.9-.8.6-2.1 1-3.8 1h-8.6c-1.9 0-3.2-.3-4-1-.8-.7-1.5-2-1.9-4L156 23l-15.4 64.4c-.5 2-1.1 3.3-1.9 4-.8.7-2.2 1-4 1h-8.6zm128.5 2.7c-5.2 0-10.4-.6-15.4-1.8-5-1.2-8.9-2.5-11.5-4-1.6-.9-2.7-1.9-3.1-2.8-.4-.9-.6-1.9-.6-2.8v-5.1c0-2.1.8-3.1 2.3-3.1.6 0 1.2.1 1.8.3.6.2 1.5.6 2.5 1 3.4 1.5 7.1 2.7 11 3.5 4 .8 7.9 1.2 11.9 1.2 6.3 0 11.2-1.1 14.6-3.3 3.4-2.2 5.2-5.4 5.2-9.5 0-2.8-.9-5.1-2.7-7-1.8-1.9-5.2-3.6-10.1-5.2L246 52c-7.3-2.3-12.7-5.7-16-10.2-3.3-4.4-5-9.3-5-14.5 0-4.2.9-7.9 2.7-11.1 1.8-3.2 4.2-6 7.2-8.2 3-2.3 6.4-4 10.4-5.2 4-1.2 8.2-1.7 12.6-1.7 2.2 0 4.5.1 6.7.4 2.3.3 4.4.7 6.5 1.1 2 .5 3.9 1 5.7 1.6 1.8.6 3.2 1.2 4.2 1.8 1.4.8 2.4 1.6 3 2.5.6.8.9 1.9.9 3.3v4.7c0 2.1-.8 3.2-2.3 3.2-.8 0-2.1-.4-3.8-1.2-5.7-2.6-12.1-3.9-19.2-3.9-5.7 0-10.2.9-13.3 2.8-3.1 1.9-4.7 4.8-4.7 8.9 0 2.8 1 5.2 3 7.1 2 1.9 5.7 3.8 11 5.5l14.2 4.5c7.2 2.3 12.4 5.5 15.5 9.6 3.1 4.1 4.6 8.8 4.6 14 0 4.3-.9 8.2-2.6 11.6-1.8 3.4-4.2 6.4-7.3 8.8-3.1 2.5-6.8 4.3-11.1 5.6-4.5 1.4-9.2 2.1-14.3 2.1z\",\n style: {\n fill: \"#252f3e\"\n }\n }), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.5 143.7c-32.9 24.3-80.7 37.2-121.8 37.2-57.6 0-109.5-21.3-148.7-56.7-3.1-2.8-.3-6.6 3.4-4.4 42.4 24.6 94.7 39.5 148.8 39.5 36.5 0 76.6-7.6 113.5-23.2 5.5-2.5 10.2 3.6 4.8 7.6z\",\n className: \"aws_svg__st1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M287.2 128.1c-4.2-5.4-27.8-2.6-38.5-1.3-3.2.4-3.7-2.4-.8-4.5 18.8-13.2 49.7-9.4 53.3-5 3.6 4.5-1 35.4-18.6 50.2-2.7 2.3-5.3 1.1-4.1-1.9 4-9.9 12.9-32.2 8.7-37.5z\",\n className: \"aws_svg__st1\"\n })));\n};\nexport default SvgAws;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgCivo = function SvgCivo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 711.364 238.193\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#239DFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.539.081h-29.424c-5.424 0-8.981 4.179-8.981 9.423v219.13c0 5.245 3.557 9.447 8.981 9.447h29.424c5.424 0 9.595-4.202 9.595-9.447V9.504c0-5.244-4.171-9.423-9.595-9.423M181.662 173.122c-2.671-5.859-10.327-7.473-15.027-3.072-12.446 11.658-29.136 18.819-47.538 18.819-48.218 0-85.012-48.909-63.477-99.824 6.365-15.049 18.442-27.092 33.495-33.447 29.421-12.421 58.048-5.345 77.037 12.095 4.749 4.361 12.365 2.814 15.04-3.054l12.744-27.956c2.039-4.474.631-9.721-3.292-12.685C160.789 1.437 120.037-7.42 77.562 7.052 43.472 18.666 16.89 46.154 6.065 80.503c-25.894 82.163 34.749 157.69 113.032 157.69 27.245 0 52.286-9.214 72.327-24.633 3.786-2.913 4.973-8.113 2.991-12.462l-12.753-27.976zM705.299 80.503c-10.825-34.349-37.407-61.837-71.497-73.451-24.128-8.221-47.698-8.906-69.033-3.835-35.585 7.946-61.358 24.817-84.01 73.453l-45.455 98.598L358.15 5.667a9.498 9.498 0 0 0-8.626-5.56L315.818.054c-6.917-.011-11.524 7.142-8.653 13.436l100.064 218.79c1.542 3.383 4.917 5.67 8.634 5.671l1.637.131h37.841c.761 0 1.522-.157 2.244-.403 2.604-.887 4.798-2.745 5.938-5.311 0 0 50.098-114.027 50.681-115.402 15.244-35.949 24.495-50.922 48.691-61.206 18.307-7.78 39.955-8.727 60.885.753 14.57 6.599 26.028 18.657 32.122 33.443a80.065 80.065 0 0 1 6.122 28.142c.545 38.992-30.891 70.773-69.758 70.773-18.402 0-35.092-7.162-47.538-18.819-4.7-4.402-12.356-2.788-15.027 3.071L516.947 201.1c-1.981 4.348-.795 9.547 2.993 12.461 20.04 15.418 45.081 24.633 72.326 24.633 78.284-.001 138.926-75.528 113.033-157.691\"\n }))));\n};\nexport default SvgCivo;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDigitalocean = function SvgDigitalocean(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 -3.954 53.927 53.954\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#0080ff\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.915 50v-9.661c10.226 0 18.164-10.141 14.237-20.904a14.438 14.438 0 0 0-8.615-8.616C19.774 6.921 9.633 14.83 9.633 25.056H0C0 8.758 15.763-3.954 32.853 1.384 40.311 3.73 46.271 9.661 48.588 17.12 53.927 34.237 41.243 50 24.915 50\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.339 40.367h9.604v-9.604H15.34zm-7.401 7.401h7.4v-7.4h-7.4zm-6.187-7.4h6.187V34.18H1.751z\"\n }))));\n};\nexport default SvgDigitalocean;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGooglecloud = function SvgGooglecloud(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n preserveAspectRatio: \"xMidYMid\",\n viewBox: \"0 0 256 206\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EA4335\",\n d: \"m170.252 56.819 22.253-22.253 1.483-9.37C153.437-11.677 88.976-7.496 52.42 33.92 42.267 45.423 34.734 59.764 30.717 74.573l7.97-1.123 44.505-7.34 3.436-3.513c19.797-21.742 53.27-24.667 76.128-6.168l7.496.39Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4285F4\",\n d: \"M224.205 73.918a100.249 100.249 0 0 0-30.217-48.722l-31.232 31.232a55.515 55.515 0 0 1 20.379 44.037v5.544c15.35 0 27.797 12.445 27.797 27.796 0 15.352-12.446 27.485-27.797 27.485h-55.671l-5.466 5.934v33.34l5.466 5.231h55.67c39.93.311 72.553-31.494 72.864-71.424a72.303 72.303 0 0 0-31.793-60.453\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#34A853\",\n d: \"M71.87 205.796h55.593V161.29H71.87a27.275 27.275 0 0 1-11.399-2.498l-7.887 2.42-22.409 22.253-1.952 7.574c12.567 9.489 27.9 14.825 43.647 14.757\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FBBC05\",\n d: \"M71.87 61.425C31.94 61.664-.237 94.228.001 134.159a72.301 72.301 0 0 0 28.222 56.88l32.248-32.246c-13.99-6.322-20.208-22.786-13.887-36.776 6.32-13.99 22.786-20.208 36.775-13.888a27.796 27.796 0 0 1 13.887 13.888l32.248-32.248A72.224 72.224 0 0 0 71.87 61.425\"\n })));\n};\nexport default SvgGooglecloud;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLinode = function SvgLinode(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 32 32\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#123d10\",\n d: \"m9.545 14.42-1.2-8.258L3.37 3.074l1.612 7.8 4.562 3.556zm1.38 9.443-.852-5.823-4.356-3.63 1.17 5.648 4.038 3.804zm-3.383-.64.862 4.165L12 31.205 11.386 27l-3.842-3.78zm11.644-1.806-1.837-1.402.014.33a.19.19 0 0 1-.084.166l-1.386.934 1.507 1.23c.02.02.03.027.035.036l.022.042c.008.027.01.037.01.048l.064 1.45 1.7 1.423-.036-4.26zm6.3-4.507-.36 4.153-1.2-.828.13-2.118c0-.024-.002-.033-.003-.04-.006-.032-.012-.046-.02-.06s-.02-.028-.032-.04a.23.23 0 0 0-.032-.028l-2.56-1.69.037-1.856 4.03 2.51\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#33b652\",\n d: \"m16.59 11.116-.335-7.84-7.53 2.894 1.23 8.4 6.635-3.453zm.4 9.135-.246-5.78-6.27 3.57.88 6.01 5.638-3.798zm.127 2.93-5.333 3.816.648 4.422 4.872-3.88-.186-4.357zm2.465-1.762.036 4.275 3.8-3.032.253-4.17-4.1 2.926zm9.48-6.782-.534 3.955-2.998 2.4.352-4.068 3.18-2.276\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231f20\",\n d: \"m17.472 22.812-.008-.042a.21.21 0 0 0-.019-.044c-.015-.024-.023-.032-.03-.04l-1.52-1.24 1.386-.934a.19.19 0 0 0 .084-.166l-.014-.33 1.837 1.402.036 4.26-1.7-1.423-.062-1.44zm-7.398-4.772.852 5.823-4.038-3.804-1.17-5.648 4.356 3.63zm6.904 2.212L11.34 24.05l-.88-6.01 6.27-3.57.246 5.78zm-.725-16.975.335 7.84-6.635 3.453-1.23-8.4 7.53-2.894zM8.335 6.16l1.2 8.258-4.562-3.556-1.612-7.8L8.335 6.16zm.07 21.225-.862-4.165L11.386 27l.615 4.203-3.596-3.817zm8.885.152-4.872 3.88-.648-4.422 5.333-3.816.186 4.357zm6.116-4.876-3.8 3.032-.036-4.275 4.1-2.926-.253 4.17zm.53-2.428.13-2.118c0-.024-.002-.033-.003-.04-.006-.032-.012-.046-.02-.06s-.02-.028-.032-.04a.23.23 0 0 0-.032-.028l-2.56-1.69.037-1.856 4.03 2.51-.36 4.153-1.2-.828zm1.58.747.352-4.068 3.18-2.276-.534 3.955-2.998 2.4zm3.97-6.77-.006-.03a.176.176 0 0 0-.01-.03.23.23 0 0 0-.027-.045c-.02-.023-.03-.03-.04-.038l-4.368-2.42a.182.182 0 0 0-.192.008l-3.674 2.246c-.006 0-.01.01-.016.013s-.013.01-.02.015l-.016.02c-.005.008-.01.01-.014.018s-.008.017-.01.026-.006.013-.008.02-.003.02-.004.03l-.042 1.97-1.494-.987a.186.186 0 0 0-.205 0l-2.15 1.314-.093-2.186-.007-.042a.118.118 0 0 0-.007-.02.19.19 0 0 0-.011-.024c-.004-.008-.008-.013-.013-.02l-.015-.02c-.005-.007-.012-.01-.02-.016l-2.25-1.514 2.094-1.1a.192.192 0 0 0 .103-.178l-.352-8.228a.313.313 0 0 0-.005-.03c-.006-.03-.013-.045-.022-.06s-.022-.03-.032-.04c-.017-.017-.022-.02-.028-.024-.017-.008-.02-.008-.022-.015L10.873.115a.19.19 0 0 0-.14-.011L3.036 2.502l-.05.028-.04.037-.014.023c-.004.008-.01.015-.013.024l-.01.03c-.006.03-.005.04-.005.05l.001.027 1.718 8.302c.01.044.034.084.07.112l2.33 1.817-1.685.802c-.02.008-.022.015-.026.016l-.027.023c-.022.024-.028.036-.034.047a.14.14 0 0 0-.02.062.24.24 0 0 0 .002.055l1.292 6.25a.19.19 0 0 0 .056.1l1.622 1.528-1.075.658c-.014.008-.026.02-.038.03a.282.282 0 0 0-.032.045.22.22 0 0 0-.021.065.171.171 0 0 0 .003.055l1 4.842a.195.195 0 0 0 .048.092l4.048 4.298c.006.008.013.01.02.017.02.017.033.024.047.03.027.008.05.013.072.013s.038 0 .056-.01.022-.008.027-.015c.008 0 .014-.01.02-.014l5.223-4.157a.195.195 0 0 0 .072-.157l-.122-2.85 1.74 1.464c.02.015.03.023.04.028s.02.008.025.015c.02.008.038.01.057.01s.037-.008.056-.01c.017-.008.022-.008.026-.015.01-.008.017-.01.026-.017l4.186-3.337a.192.192 0 0 0 .072-.138l.127-2.09 1.27.884c.012.008.015.015.02.015.007.008.015.008.023.01.033.015.05.015.067.015s.038 0 .056-.01.02-.008.026-.015c.01-.008.02-.012.03-.018l3.415-2.722a.183.183 0 0 0 .07-.124l.604-4.47.001-.037\"\n })));\n};\nexport default SvgLinode;","// general icons\n\nimport dataflow from '@/assets/ico/dataflow-1.svg?c';\nimport git from '@/assets/ico/git.svg?c';\nimport kube from '@/assets/ico/kube.svg?c';\nimport laptopcode from '@/assets/ico/laptop-code.svg?c';\nimport ldap from '@/assets/ico/ldap.svg?c';\nimport linux from '@/assets/ico/linux.svg?c';\nimport memory from '@/assets/ico/memory.svg?c';\nimport restorewindow from '@/assets/ico/restore-window.svg?c';\nimport route from '@/assets/ico/route.svg?c';\nimport sort from '@/assets/ico/sort.svg?c';\nimport subscription from '@/assets/ico/subscription.svg?c';\nimport Placeholder from '@/assets/ico/placeholder.svg?c'; // Placeholder is used when an icon name cant be matched\n// vendor icons\nimport aws from '@/assets/ico/vendor/aws.svg?c';\nimport azure from '@/assets/ico/vendor/azure.svg?c';\nimport civo from '@/assets/ico/vendor/civo.svg?c';\nimport digitalocean from '@/assets/ico/vendor/digitalocean.svg?c';\nimport docker from '@/assets/ico/vendor/docker.svg?c';\nimport dockericon from '@/assets/ico/vendor/docker-icon.svg?c';\nimport dockercompose from '@/assets/ico/vendor/docker-compose.svg?c';\nimport ecr from '@/assets/ico/vendor/ecr.svg?c';\nimport github from '@/assets/ico/vendor/github.svg?c';\nimport gitlab from '@/assets/ico/vendor/gitlab.svg?c';\nimport google from '@/assets/ico/vendor/google.svg?c';\nimport googlecloud from '@/assets/ico/vendor/googlecloud.svg?c';\nimport kubernetes from '@/assets/ico/vendor/kubernetes.svg?c';\nimport helm from '@/assets/ico/vendor/helm.svg?c';\nimport linode from '@/assets/ico/vendor/linode.svg?c';\nimport microsoft from '@/assets/ico/vendor/microsoft.svg?c';\nimport microsofticon from '@/assets/ico/vendor/microsoft-icon.svg?c';\nimport openldap from '@/assets/ico/vendor/openldap.svg?c';\nimport proget from '@/assets/ico/vendor/proget.svg?c';\nimport quay from '@/assets/ico/vendor/quay.svg?c';\n\nconst placeholder = Placeholder;\n\nexport const SvgIcons = {\n dataflow,\n dockericon,\n git,\n laptopcode,\n ldap,\n linux,\n memory,\n placeholder,\n restorewindow,\n route,\n sort,\n subscription,\n aws,\n azure,\n civo,\n digitalocean,\n docker,\n dockercompose,\n ecr,\n github,\n gitlab,\n google,\n googlecloud,\n kubernetes,\n helm,\n linode,\n microsoft,\n microsofticon,\n openldap,\n proget,\n quay,\n kube,\n};\n\ninterface SvgProps {\n icon: keyof typeof SvgIcons;\n className?: string;\n}\n\nfunction Svg({ icon, className }: SvgProps) {\n const SvgIcon = SvgIcons[icon];\n\n if (!SvgIcon) {\n return (\n <span className={className} aria-hidden=\"true\">\n <Placeholder />\n </span>\n );\n }\n\n return (\n <span className={className} aria-hidden=\"true\">\n <SvgIcon />\n </span>\n );\n}\n\nexport default Svg;\n","import clsx from 'clsx';\nimport { ComponentType, ReactNode } from 'react';\nimport * as lucideIcons from 'lucide-react';\nimport { isValidElementType } from 'react-is';\n\nimport Svg, { SvgIcons } from './Svg';\n\nexport interface IconProps {\n icon: ReactNode | ComponentType<unknown>;\n iconClass?: string;\n}\n\nexport type IconMode =\n | 'alt'\n | 'primary'\n | 'primary-alt'\n | 'secondary'\n | 'secondary-alt'\n | 'warning'\n | 'warning-alt'\n | 'danger'\n | 'danger-alt'\n | 'success'\n | 'success-alt';\n\nexport type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface Props {\n icon: ReactNode | ComponentType<{ size?: string | number }>;\n className?: string;\n size?: IconSize;\n mode?: IconMode;\n spin?: boolean;\n}\n\nexport function Icon({ icon, className, mode, size, spin }: Props) {\n const classes = clsx(className, 'icon inline-flex', {\n [`icon-${mode}`]: mode,\n [`icon-${size}`]: size,\n 'animate-spin-slow': spin,\n });\n\n if (typeof icon !== 'string') {\n const Icon = isValidElementType(icon) ? icon : null;\n\n if (Icon) {\n return <Icon className={classes} aria-hidden=\"true\" role=\"img\" />;\n }\n\n return (\n <span className={classes} aria-hidden=\"true\" role=\"img\">\n {icon}\n </span>\n );\n }\n\n if (icon.indexOf('svg-') === 0) {\n const svgIcon = icon.replace('svg-', '');\n return (\n <Svg\n icon={svgIcon as keyof typeof SvgIcons}\n className={classes}\n aria-hidden=\"true\"\n />\n );\n }\n\n const iconName = icon\n .split('-')\n .map((s) => s.slice(0, 1).toUpperCase() + s.slice(1))\n .join('') as keyof typeof lucideIcons;\n const IconComponent = lucideIcons[iconName] as React.FC<\n React.SVGProps<SVGSVGElement>\n >;\n if (!IconComponent) {\n // console error so that the error is logged but no functionality is broken\n // eslint-disable-next-line no-console\n console.error(`Icon not found: '${icon}'`);\n return null;\n }\n\n return <IconComponent className={classes} aria-hidden=\"true\" />;\n}\n","import { PropsWithChildren } from 'react';\nimport { X } from 'lucide-react';\n\nimport { Widget, WidgetBody } from './Widget';\nimport { Button } from './buttons';\n\ninterface Props {\n title?: string;\n onDismiss?(): void;\n bodyClassName?: string;\n wrapperStyle?: Record<string, string>;\n}\n\nexport function InformationPanel({\n title,\n onDismiss,\n wrapperStyle,\n bodyClassName,\n children,\n}: PropsWithChildren<Props>) {\n return (\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <WidgetBody className={bodyClassName}>\n <div style={wrapperStyle}>\n {title && (\n <div className=\"form-section-title\">\n <span>{title}</span>\n {!!onDismiss && (\n <span className=\"small\" style={{ float: 'right' }}>\n <Button color=\"link\" icon={X} onClick={() => onDismiss()}>\n dismiss\n </Button>\n </span>\n )}\n </div>\n )}\n <div>{children}</div>\n </div>\n </WidgetBody>\n </Widget>\n </div>\n </div>\n );\n}\n","import { Loader2 } from 'lucide-react';\nimport { PropsWithChildren } from 'react';\nimport clsx from 'clsx';\n\nimport { Icon } from '@@/Icon';\n\ntype Size = 'xs' | 'sm' | 'md';\n\nexport type Props = {\n className?: string;\n size?: Size;\n};\n\nconst sizeStyles: Record<Size, string> = {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-md',\n};\n\nexport function InlineLoader({\n children,\n className,\n size = 'sm',\n}: PropsWithChildren<Props>) {\n return (\n <div\n className={clsx(\n 'text-muted flex items-center gap-2',\n className,\n sizeStyles[size]\n )}\n >\n <Icon icon={Loader2} className=\"animate-spin-slow\" />\n {children}\n </div>\n );\n}\n","import { createStore } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nimport { keyBuilder } from '@/react/hooks/useLocalStorage';\n\ninterface InsightsStore {\n insightIDsClosed: string[];\n addInsightIDClosed: (insightIDClosed: string) => void;\n isClosed: (insightID?: string) => boolean;\n}\n\nexport const insightStore = createStore<InsightsStore>()(\n persist(\n (set, get) => ({\n insightIDsClosed: [],\n addInsightIDClosed: (insightIDClosed: string) => {\n set((state) => {\n const currentIDsClosed = state.insightIDsClosed || [];\n return { insightIDsClosed: [...currentIDsClosed, insightIDClosed] };\n });\n },\n isClosed: (insightID?: string) => {\n if (!insightID) {\n return false;\n }\n const currentIDsClosed = get().insightIDsClosed || [];\n return currentIDsClosed.includes(insightID);\n },\n }),\n {\n name: keyBuilder('insightIDsClosed'),\n getStorage: () => localStorage,\n }\n )\n);\n","import clsx from 'clsx';\nimport { Lightbulb, X } from 'lucide-react';\nimport { ReactNode } from 'react';\nimport { useStore } from 'zustand';\n\nimport { Button } from '@@/buttons';\n\nimport { insightStore } from './insights-store';\n\nexport type Props = {\n header?: string;\n content?: ReactNode;\n insightCloseId?: string; // set if you want to be able to close the box and not show it again\n type?: 'default' | 'slim';\n className?: string;\n};\n\nexport function InsightsBox({\n header,\n content,\n insightCloseId,\n type = 'default',\n className,\n}: Props) {\n // allow to close the box and not show it again in local storage with zustand\n const { addInsightIDClosed, isClosed } = useStore(insightStore);\n const isInsightClosed = isClosed(insightCloseId);\n\n if (isInsightClosed) {\n return null;\n }\n\n return (\n <div\n className={clsx(\n 'relative flex w-full gap-1 rounded-lg bg-gray-modern-3 p-4 text-sm th-highcontrast:bg-legacy-grey-3 th-dark:bg-legacy-grey-3',\n type === 'slim' && 'p-2',\n className\n )}\n >\n <div className=\"mt-0.5 shrink-0\">\n <Lightbulb className=\"h-4 text-warning-7 th-highcontrast:text-warning-6 th-dark:text-warning-6\" />\n </div>\n <div>\n {header && (\n <p\n className={clsx(\n // text-[0.9em] matches .form-horizontal .control-label font-size used in many labels in portainer\n 'align-middle text-[0.9em] font-medium',\n insightCloseId && 'pr-10',\n content ? 'mb-2' : 'mb-0'\n )}\n >\n {header}\n </p>\n )}\n {content && (\n <div className={clsx('small', !header && insightCloseId && 'pr-6')}>\n {content}\n </div>\n )}\n </div>\n {insightCloseId && (\n <Button\n icon={X}\n className={clsx(\n 'absolute right-2 top-3 flex !text-gray-7 hover:!text-gray-8 th-highcontrast:!text-gray-6 th-highcontrast:hover:!text-gray-5 th-dark:!text-gray-6 th-dark:hover:!text-gray-5',\n type === 'slim' && insightCloseId && 'top-1'\n )}\n color=\"link\"\n size=\"medium\"\n onClick={() => addInsightIDClosed(insightCloseId)}\n />\n )}\n </div>\n );\n}\n","import { PropsWithChildren, AnchorHTMLAttributes } from 'react';\nimport { UISref, UISrefProps } from '@uirouter/react';\n\ninterface Props {\n title?: string;\n target?: AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n rel?: AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n}\n\nexport function Link({\n title = '',\n className,\n children,\n ...props\n}: PropsWithChildren<Props> & UISrefProps) {\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <UISref className={className} {...props}>\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a title={title} target={props.target} rel={props.rel}>\n {children}\n </a>\n </UISref>\n );\n}\n","import clsx from 'clsx';\nimport { PropsWithChildren } from 'react';\n\nexport function NavContainer({ children }: PropsWithChildren<unknown>) {\n return (\n <div\n className={clsx(\n 'rounded-lg border border-solid p-2',\n 'border-gray-5 bg-gray-2',\n 'th-dark:border-gray-neutral-8 th-dark:bg-gray-iron-10',\n 'th-highcontrast:border-white th-highcontrast:bg-black'\n )}\n >\n {children}\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"parent\":\"app-react-components-NavTabs-NavTabs-module__parent\"};","import clsx from 'clsx';\nimport { ReactNode } from 'react';\n\nimport styles from './NavTabs.module.css';\n\nexport interface Option<T extends string | number = string> {\n label: ReactNode;\n children?: ReactNode;\n id: T;\n hidden?: boolean;\n}\n\ninterface Props<T extends string | number> {\n options: Option<T>[];\n selectedId?: T;\n onSelect?(id: T): void;\n disabled?: boolean;\n type?: 'tabs' | 'pills';\n justified?: boolean;\n}\n\nexport function NavTabs<T extends string | number = string>({\n options,\n selectedId,\n onSelect = () => {},\n disabled,\n type = 'tabs',\n justified = false,\n}: Props<T>) {\n const selected = options.find((option) => option.id === selectedId);\n\n return (\n <div>\n <ul\n className={clsx('nav', `nav-${type}`, { 'nav-justified': justified })}\n >\n {options.map(\n (option) =>\n !option.hidden && (\n <li\n className={clsx({\n active: option.id === selectedId,\n [styles.parent]: !option.children,\n disabled,\n })}\n key={option.id}\n >\n {/* rule disabled because `nav-tabs` requires an anchor */}\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a\n onClick={() => handleSelect(option)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleSelect(option);\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n {option.label}\n </a>\n </li>\n )\n )}\n </ul>\n {selected && selected.children && (\n <div className=\"tab-content mt-3\">{selected.children}</div>\n )}\n </div>\n );\n\n function handleSelect(option: Option<T>) {\n if (disabled) {\n return;\n }\n\n if (option.children) {\n onSelect(option.id);\n }\n }\n}\n","import { HelpCircle } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useCurrentStateAndParams } from '@uirouter/react';\n\nimport { useSystemVersion } from '@/react/portainer/system/useSystemVersion';\n\nimport headerStyles from '../HeaderTitle.module.css';\nimport './ContextHelp.css';\n\nexport function ContextHelp() {\n const docsUrl = useDocsUrl();\n\n return (\n <div className={headerStyles.menuButton}>\n <a\n href={docsUrl}\n target=\"_blank\"\n color=\"none\"\n className={clsx(\n headerStyles.menuIcon,\n 'menu-icon',\n 'icon-badge mr-1 !p-2 text-lg',\n 'text-gray-8',\n 'th-dark:text-gray-warm-7'\n )}\n title=\"Help\"\n rel=\"noreferrer\"\n >\n <HelpCircle className=\"lucide\" />\n </a>\n </div>\n );\n}\n\nexport function useDocsUrl(doc?: string): string {\n const { state } = useCurrentStateAndParams();\n const versionQuery = useSystemVersion();\n\n if (!doc && !state) {\n return '';\n }\n\n let url = 'https://docs.portainer.io/';\n if (versionQuery.data) {\n let { ServerVersion } = versionQuery.data;\n if (ServerVersion[0] === 'v') {\n ServerVersion = ServerVersion.substring(1);\n }\n\n const parts = ServerVersion.split('.');\n if (parts.length >= 2) {\n const version = parts.slice(0, 2).join('.');\n url += `v/${version}`;\n }\n }\n\n if (doc) {\n return url + doc;\n }\n\n const { data } = state;\n if (\n data &&\n typeof data === 'object' &&\n 'docs' in data &&\n typeof data.docs === 'string'\n ) {\n return url + data.docs;\n }\n\n return url;\n}\n","import { Fragment } from 'react';\n\nimport { Link } from '@@/Link';\n\nexport interface Crumb {\n label: string;\n link?: string;\n linkParams?: Record<string, unknown>;\n}\ninterface Props {\n breadcrumbs: (Crumb | string)[] | string;\n}\n\nexport function Breadcrumbs({ breadcrumbs }: Props) {\n const breadcrumbsArray = Array.isArray(breadcrumbs)\n ? breadcrumbs\n : [breadcrumbs];\n\n return (\n <div className=\"space-x-2 text-xs font-medium text-gray-7 th-highcontrast:text-white th-dark:text-gray-5\">\n {breadcrumbsArray.map((crumb, index) => (\n <Fragment key={index}>\n <span>{renderCrumb(crumb)}</span>\n {index !== breadcrumbsArray.length - 1 && <span>></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, Linode,\n DigitalOcean and Microsoft Azure (others are not guaranteed to\n work at present)\n </p>\n </div>\n </div>\n\n <FormControl label=\"Name\" required>\n <Field\n name=\"name\"\n as={Input}\n data-cy=\"endpointCreate-nameInput\"\n placeholder=\"e.g. docker-prod01 / kubernetes-cluster01\"\n readOnly\n />\n </FormControl>\n\n <FormControl\n label=\"Kubeconfig file\"\n required\n inputId=\"kubeconfig_file\"\n >\n <Button disabled>Select a file</Button>\n </FormControl>\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n className=\"wizard-connect-button !ml-0\"\n loadingText=\"Connecting environment...\"\n isLoading={false}\n disabled\n icon={Plug2}\n >\n Connect\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n );\n}\n","import { useState } from 'react';\nimport { Zap, UploadCloud } from 'lucide-react';\nimport _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { commandsTabs } from '@/react/edge/components/EdgeScriptForm/scripts';\nimport { FeatureId } from '@/react/portainer/feature-flags/enums';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\nimport EdgeAgentStandardIcon from '@/react/edge/components/edge-agent-standard.svg?c';\nimport EdgeAgentAsyncIcon from '@/react/edge/components/edge-agent-async.svg?c';\n\nimport { BoxSelectorOption } from '@@/BoxSelector/types';\nimport { BoxSelector } from '@@/BoxSelector';\nimport { BEOverlay } from '@@/BEFeatureIndicator/BEOverlay';\n\nimport { AnalyticsStateKey } from '../types';\nimport { EdgeAgentTab } from '../shared/EdgeAgentTab';\n\nimport { AgentPanel } from './AgentPanel';\nimport { KubeConfigTeaserForm } from './KubeConfigTeaserForm';\n\ninterface Props {\n onCreate(environment: Environment, analytics: AnalyticsStateKey): void;\n}\n\ntype CreationType =\n | 'agent'\n | 'edgeAgentStandard'\n | 'edgeAgentAsync'\n | 'kubeconfig';\n\nconst options: BoxSelectorOption<CreationType>[] = _.compact([\n {\n id: 'agent_endpoint',\n icon: Zap,\n iconType: 'badge',\n label: 'Agent',\n value: 'agent',\n description: '',\n },\n {\n id: 'edgeAgentStandard',\n icon: EdgeAgentStandardIcon,\n iconType: 'badge',\n label: 'Edge Agent Standard',\n description: '',\n value: 'edgeAgentStandard',\n },\n isBE && {\n id: 'edgeAgentAsync',\n icon: EdgeAgentAsyncIcon,\n iconType: 'badge',\n label: 'Edge Agent Async',\n description: '',\n value: 'edgeAgentAsync',\n },\n {\n id: 'kubeconfig_endpoint',\n icon: UploadCloud,\n iconType: 'badge',\n label: 'Import',\n value: 'kubeconfig',\n description: 'Import an existing Kubernetes config',\n feature: FeatureId.K8S_CREATE_FROM_KUBECONFIG,\n },\n]);\n\nexport function WizardKubernetes({ onCreate }: Props) {\n const [creationType, setCreationType] = useState(options[0].value);\n\n const tab = getTab(creationType);\n\n return (\n <div className=\"form-horizontal\">\n <BoxSelector\n onChange={(v) => setCreationType(v)}\n options={options}\n value={creationType}\n radioName=\"creation-type\"\n />\n\n {tab}\n </div>\n );\n\n function getTab(type: CreationType) {\n switch (type) {\n case 'agent':\n return (\n <AgentPanel\n onCreate={(environment) => onCreate(environment, 'kubernetesAgent')}\n />\n );\n case 'edgeAgentStandard':\n return (\n <EdgeAgentTab\n onCreate={(environment) =>\n onCreate(environment, 'kubernetesEdgeAgentStandard')\n }\n commands={[{ ...commandsTabs.k8sLinux, label: 'Linux' }]}\n />\n );\n case 'edgeAgentAsync':\n return (\n <EdgeAgentTab\n asyncMode\n onCreate={(environment) =>\n onCreate(environment, 'kubernetesEdgeAgentAsync')\n }\n commands={[{ ...commandsTabs.k8sLinux, label: 'Linux' }]}\n />\n );\n case 'kubeconfig':\n return (\n <div className=\"mb-3\">\n <BEOverlay featureId={FeatureId.K8S_CREATE_FROM_KUBECONFIG}>\n <KubeConfigTeaserForm />\n </BEOverlay>\n </div>\n );\n default:\n throw new Error('Creation type not supported');\n }\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wizardStepAction\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-EnvironmentsCreationView-module__wizard-step-action\",\"wizardWrapper\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-EnvironmentsCreationView-module__wizard-wrapper\"};","// extracted by mini-css-extract-plugin\nexport default {\"wizardListWrapper\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-wrapper\",\"wizardListEdgeStatus\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-edge-status\",\"wizardListImage\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-image\",\"wizardListTitle\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-title\",\"wizardListSubtitle\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-subtitle\",\"wizardListType\":\"app-react-portainer-environments-wizard-EnvironmentsCreationView-WizardEndpointsList-WizardEndpointsList-module__wizard-list-type\"};","import { Plug2 } from 'lucide-react';\n\nimport {\n environmentTypeIcon,\n endpointTypeName,\n stripProtocol,\n} from '@/portainer/filters/filters';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport {\n isEdgeEnvironment,\n isUnassociatedEdgeEnvironment,\n} from '@/react/portainer/environments/utils';\nimport {\n ENVIRONMENTS_POLLING_INTERVAL,\n useEnvironmentList,\n} from '@/react/portainer/environments/queries/useEnvironmentList';\n\nimport { EdgeIndicator } from '@@/EdgeIndicator';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { Icon } from '@@/Icon';\n\nimport styles from './WizardEndpointsList.module.css';\n\ninterface Props {\n environmentIds: EnvironmentId[];\n}\n\nexport function WizardEndpointsList({ environmentIds }: Props) {\n const { environments } = useEnvironmentList(\n { endpointIds: environmentIds },\n {\n refetchInterval: (environments) => {\n if (!environments) {\n return false;\n }\n\n if (!environments.value.some(isUnassociatedEdgeEnvironment)) {\n return false;\n }\n\n return ENVIRONMENTS_POLLING_INTERVAL;\n },\n\n enabled: environmentIds.length > 0,\n }\n );\n\n return (\n <Widget>\n <WidgetTitle icon={Plug2} title=\"New Environments\" />\n <WidgetBody>\n {environments.map((environment) => (\n <div className={styles.wizardListWrapper} key={environment.Id}>\n <div className={styles.wizardListImage}>\n <Icon\n icon={environmentTypeIcon(environment.Type)}\n className=\"mr-1\"\n />\n </div>\n <div className={styles.wizardListTitle}>{environment.Name}</div>\n <div className={styles.wizardListSubtitle}>\n URL: {stripProtocol(environment.URL)}\n </div>\n <div className={styles.wizardListType}>\n Type: {endpointTypeName(environment.Type)}\n </div>\n {isEdgeEnvironment(environment.Type) && (\n <div className={styles.wizardListEdgeStatus}>\n <EdgeIndicator environment={environment} />\n </div>\n )}\n </div>\n ))}\n </WidgetBody>\n </Widget>\n );\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport {\n EnvironmentCreationView,\n EnvironmentTypeSelectView,\n HomeView,\n} from '@/react/portainer/environments/wizard';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AccessHeaders } from '@/portainer/authorization-guard';\n\nexport const wizardModule = angular\n .module('portainer.app.react.views.wizard', [])\n .component(\n 'wizardEnvironmentCreationView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EnvironmentCreationView))),\n []\n )\n )\n .component(\n 'wizardEnvironmentTypeSelectView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EnvironmentTypeSelectView))),\n []\n )\n )\n .component(\n 'wizardMainView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(HomeView))), [])\n )\n .config(config).name;\n\nfunction config($stateRegistryProvider: StateRegistry) {\n $stateRegistryProvider.register({\n name: 'portainer.wizard',\n url: '/wizard',\n views: {\n 'content@': {\n component: 'wizardMainView',\n },\n },\n data: {\n access: AccessHeaders.Admin,\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.wizard.endpoints',\n url: '/endpoints',\n views: {\n 'content@': {\n component: 'wizardEnvironmentTypeSelectView',\n },\n },\n params: {\n localEndpointId: 0,\n },\n data: {\n docs: '/admin/environments/add',\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.wizard.endpoints.create',\n url: '/create?envType',\n views: {\n 'content@': {\n component: 'wizardEnvironmentCreationView',\n },\n },\n params: {\n envType: '',\n },\n });\n}\n","import { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { useState } from 'react';\nimport _ from 'lodash';\nimport clsx from 'clsx';\nimport { ArrowLeft, ArrowRight, Wand2 } from 'lucide-react';\n\nimport { notifyError } from '@/portainer/services/notifications';\nimport {\n Environment,\n EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Stepper } from '@@/Stepper';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { PageHeader } from '@@/PageHeader';\nimport { Button } from '@@/buttons';\nimport { FormSection } from '@@/form-components/FormSection';\nimport { Icon } from '@@/Icon';\n\nimport {\n EnvironmentOptionValue,\n environmentTypes,\n formTitles,\n} from '../EnvironmentTypeSelectView/environment-types';\n\nimport { WizardDocker } from './WizardDocker';\nimport { WizardAzure } from './WizardAzure';\nimport { WizardKubernetes } from './WizardKubernetes';\nimport { AnalyticsState, AnalyticsStateKey } from './types';\nimport styles from './EnvironmentsCreationView.module.css';\nimport { WizardEndpointsList } from './WizardEndpointsList';\n\nexport function EnvironmentCreationView() {\n const {\n params: { localEndpointId: localEndpointIdParam },\n } = useCurrentStateAndParams();\n\n const [environmentIds, setEnvironmentIds] = useState<EnvironmentId[]>(() => {\n const localEndpointId = parseInt(localEndpointIdParam, 10);\n\n if (!localEndpointId || Number.isNaN(localEndpointId)) {\n return [];\n }\n\n return [localEndpointId];\n });\n\n const envTypes = useParamEnvironmentTypes();\n const { trackEvent } = useAnalytics();\n const router = useRouter();\n const steps = _.compact(\n envTypes.map((id) => environmentTypes.find((eType) => eType.id === id))\n );\n const { analytics, setAnalytics } = useAnalyticsState();\n\n const {\n currentStep,\n onNextClick,\n onPreviousClick,\n currentStepIndex,\n Component,\n isFirstStep,\n isLastStep,\n } = useStepper(steps, handleFinish);\n\n const isDockerStandalone = currentStep.id === 'dockerStandalone';\n\n return (\n <>\n <PageHeader\n title=\"Quick Setup\"\n breadcrumbs={[{ label: 'Environment Wizard' }]}\n reload\n />\n\n <div className={styles.wizardWrapper}>\n <Widget>\n <WidgetTitle icon={Wand2} title=\"Environment Wizard\" />\n <WidgetBody>\n <Stepper steps={steps} currentStep={currentStepIndex + 1} />\n\n <div className=\"mt-12\">\n <FormSection title={formTitles[currentStep.id]}>\n <Component\n onCreate={handleCreateEnvironment}\n isDockerStandalone={isDockerStandalone}\n />\n\n <div\n className={clsx(\n styles.wizardStepAction,\n 'flex justify-between'\n )}\n >\n <Button disabled={isFirstStep} onClick={onPreviousClick}>\n <Icon icon={ArrowLeft} /> Previous\n </Button>\n <Button onClick={onNextClick}>\n {isLastStep ? 'Close' : 'Next'}\n <Icon icon={ArrowRight} />\n </Button>\n </div>\n </FormSection>\n </div>\n </WidgetBody>\n </Widget>\n <div>\n <WizardEndpointsList environmentIds={environmentIds} />\n </div>\n </div>\n </>\n );\n\n function handleCreateEnvironment(\n environment: Environment,\n analytics: AnalyticsStateKey\n ) {\n setEnvironmentIds((prev) => [...prev, environment.Id]);\n setAnalytics(analytics);\n }\n\n function handleFinish() {\n trackEvent('endpoint-wizard-environment-add-finish', {\n category: 'portainer',\n metadata: Object.fromEntries(\n Object.entries(analytics).map(([key, value]) => [\n _.kebabCase(key),\n value,\n ])\n ),\n });\n if (localStorage.getItem('wizardReferrer') === 'environments') {\n localStorage.removeItem('wizardReferrer');\n router.stateService.go('portainer.endpoints');\n return;\n }\n router.stateService.go('portainer.home');\n }\n}\n\nfunction useParamEnvironmentTypes(): EnvironmentOptionValue[] {\n const {\n params: { envType },\n } = useCurrentStateAndParams();\n const router = useRouter();\n\n if (!envType) {\n notifyError('No environment type provided');\n router.stateService.go('portainer.wizard.endpoints');\n return [];\n }\n\n return Array.isArray(envType) ? envType : [envType];\n}\n\nfunction useStepper(\n steps: (typeof environmentTypes)[number][],\n onFinish: () => void\n) {\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n const isFirstStep = currentStepIndex === 0;\n const isLastStep = currentStepIndex === steps.length - 1;\n const currentStep = steps[currentStepIndex];\n\n return {\n currentStep,\n onNextClick,\n onPreviousClick,\n isFirstStep,\n isLastStep,\n currentStepIndex,\n Component: getComponent(currentStep.id),\n };\n\n function onNextClick() {\n if (!isLastStep) {\n setCurrentStepIndex(currentStepIndex + 1);\n return;\n }\n\n onFinish();\n }\n\n function onPreviousClick() {\n setCurrentStepIndex(currentStepIndex - 1);\n }\n\n function getComponent(id: EnvironmentOptionValue) {\n switch (id) {\n case 'dockerStandalone':\n case 'dockerSwarm':\n return WizardDocker;\n case 'aci':\n return WizardAzure;\n case 'kubernetes':\n return WizardKubernetes;\n default:\n throw new Error(`Unknown environment type ${id}`);\n }\n }\n}\n\nfunction useAnalyticsState() {\n const [analytics, setAnalyticsState] = useState<AnalyticsState>({\n dockerAgent: 0,\n dockerApi: 0,\n kubernetesAgent: 0,\n kubernetesEdgeAgentAsync: 0,\n kubernetesEdgeAgentStandard: 0,\n kaasAgent: 0,\n aciApi: 0,\n localEndpoint: 0,\n dockerEdgeAgentAsync: 0,\n dockerEdgeAgentStandard: 0,\n });\n\n return { analytics, setAnalytics };\n\n function setAnalytics(key: AnalyticsStateKey) {\n setAnalyticsState((prevState) => ({\n ...prevState,\n [key]: prevState[key] + 1,\n }));\n }\n}\n","import { useState } from 'react';\nimport { useRouter } from '@uirouter/react';\nimport _ from 'lodash';\nimport { Wand2 } from 'lucide-react';\n\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Button } from '@@/buttons';\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody, WidgetTitle } from '@@/Widget';\nimport { FormSection } from '@@/form-components/FormSection';\n\nimport { EnvironmentSelector } from './EnvironmentSelector';\nimport {\n EnvironmentOptionValue,\n existingEnvironmentTypes,\n newEnvironmentTypes,\n} from './environment-types';\n\nexport function EnvironmentTypeSelectView() {\n const [types, setTypes] = useState<EnvironmentOptionValue[]>([]);\n const { trackEvent } = useAnalytics();\n const router = useRouter();\n\n return (\n <>\n <PageHeader\n title=\"Quick Setup\"\n breadcrumbs={[{ label: 'Environment Wizard' }]}\n reload\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <WidgetTitle icon={Wand2} title=\"Environment Wizard\" />\n <WidgetBody>\n <div className=\"form-horizontal\">\n <FormSection title=\"Select your environment(s)\">\n <p className=\"text-muted small\">\n You can onboard different types of environments, select all\n that apply.\n </p>\n <p className=\"control-label !mb-2\">\n Connect to existing environments\n </p>\n <EnvironmentSelector\n value={types}\n onChange={setTypes}\n options={existingEnvironmentTypes}\n />\n <p className=\"control-label !mb-2\">Set up new environments</p>\n <EnvironmentSelector\n value={types}\n onChange={setTypes}\n options={newEnvironmentTypes}\n hiddenSpacingCount={\n existingEnvironmentTypes.length -\n newEnvironmentTypes.length\n }\n />\n </FormSection>\n </div>\n <Button\n disabled={types.length === 0}\n onClick={() => startWizard()}\n >\n Start Wizard\n </Button>\n </WidgetBody>\n </Widget>\n </div>\n </div>\n </>\n );\n\n function startWizard() {\n if (types.length === 0) {\n return;\n }\n\n const environmentTypes = [\n ...existingEnvironmentTypes,\n ...newEnvironmentTypes,\n ];\n\n const steps = _.compact(\n types.map((id) => environmentTypes.find((eType) => eType.id === id))\n );\n\n trackEvent('endpoint-wizard-endpoint-select', {\n category: 'portainer',\n metadata: {\n environment: steps.map((step) => step.label).join('/'),\n },\n });\n\n router.stateService.go('portainer.wizard.endpoints.create', {\n envType: types,\n });\n }\n}\n","import { useRouter } from '@uirouter/react';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { Trash2, Users } from 'lucide-react';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport {\n mutationOptions,\n withError,\n withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Button } from '@@/buttons';\nimport { Widget } from '@@/Widget';\n\nimport { Team, TeamId, TeamMembership, TeamRole } from '../types';\nimport { deleteTeam } from '../teams.service';\n\ninterface Props {\n team: Team;\n memberships: TeamMembership[];\n isAdmin: boolean;\n}\n\nexport function Details({ team, memberships, isAdmin }: Props) {\n const deleteMutation = useDeleteTeam();\n const router = useRouter();\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n const leaderCount = memberships.filter(\n (m) => m.Role === TeamRole.Leader\n ).length;\n\n return (\n <div className=\"row\">\n <div className=\"col-lg-12 col-md-12 col-xs-12\">\n <Widget>\n <Widget.Title title=\"Team details\" icon={Users} />\n\n <Widget.Body className=\"no-padding\">\n <table className=\"table\">\n <tbody>\n <tr>\n <td>Name</td>\n <td>\n {!teamSyncQuery.data && team.Name}\n {isAdmin && (\n <Button\n color=\"danger\"\n size=\"xsmall\"\n onClick={handleDeleteClick}\n icon={Trash2}\n >\n Delete this team\n </Button>\n )}\n </td>\n </tr>\n <tr>\n <td>Leaders</td>\n <td>{!teamSyncQuery.data && leaderCount}</td>\n </tr>\n <tr>\n <td>Total users in team</td>\n <td>{memberships.length}</td>\n </tr>\n </tbody>\n </table>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n );\n\n async function handleDeleteClick() {\n const confirmed = await confirmDelete(\n `Do you want to delete this team? Users in this team will not be deleted.`\n );\n if (!confirmed) {\n return;\n }\n\n deleteMutation.mutate(team.Id, {\n onSuccess() {\n router.stateService.go('portainer.teams');\n },\n });\n }\n}\n\nfunction useDeleteTeam() {\n const queryClient = useQueryClient();\n return useMutation(\n (id: TeamId) => deleteTeam(id),\n\n mutationOptions(\n withError('Unable to delete team'),\n withInvalidate(queryClient, [['teams']])\n )\n );\n}\n","import { TeamId } from '@/react/portainer/users/teams/types';\n\nimport { createRowContext } from '@@/datatables/RowContext';\n\ninterface RowContext {\n disabled?: boolean;\n teamId: TeamId;\n}\n\nconst { RowProvider, useRowContext } = createRowContext<RowContext>();\n\nexport { RowProvider, useRowContext };\n","import { PlusCircle } from 'lucide-react';\nimport { CellContext, ColumnDef } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAddMemberMutation } from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\n\nimport { useRowContext } from './RowContext';\n\nexport const name: ColumnDef<User, string> = {\n header: 'Name',\n accessorFn: (row) => row.Username,\n id: 'name',\n cell: NameCell,\n};\n\nexport function NameCell({\n getValue,\n row: { original: user },\n}: CellContext<User, string>) {\n const name = getValue();\n const { disabled, teamId } = useRowContext();\n\n const addMemberMutation = useAddMemberMutation(teamId);\n\n return (\n <>\n {name}\n\n <Button\n color=\"link\"\n className=\"space-left nopadding\"\n disabled={disabled}\n icon={PlusCircle}\n onClick={() => handleAddMember()}\n >\n Add\n </Button>\n </>\n );\n\n function handleAddMember() {\n addMemberMutation.mutate([user.Id], {\n onSuccess() {\n notifySuccess('User added to team', name);\n },\n });\n }\n}\n","import { useMemo, useState } from 'react';\nimport { UserPlus, Users } from 'lucide-react';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { useAddMemberMutation } from '@/react/portainer/users/teams/queries';\nimport { TeamId } from '@/react/portainer/users/teams/types';\n\nimport { Button } from '@@/buttons';\nimport { Datatable } from '@@/datatables';\n\nimport { name } from './name-column';\nimport { RowProvider } from './RowContext';\n\nconst columns = [name];\n\ninterface Props {\n users: User[];\n disabled?: boolean;\n teamId: TeamId;\n}\n\nexport function UsersList({ users, disabled, teamId }: Props) {\n const [search, setSearch] = useState('');\n const [pageSize, setPageSize] = useState(10);\n const addMemberMutation = useAddMemberMutation(teamId);\n const [sortBy, setSortBy] = useState<\n { id: string; desc: boolean } | undefined\n >({ id: 'name', desc: false });\n\n const { isPureAdmin } = useCurrentUser();\n\n const rowContext = useMemo(() => ({ disabled, teamId }), [disabled, teamId]);\n\n return (\n <RowProvider context={rowContext}>\n <Datatable<User>\n dataset={users}\n columns={columns}\n titleIcon={Users}\n title=\"Users\"\n renderTableActions={() =>\n isPureAdmin && (\n <Button\n onClick={() => handleAddAllMembers(users.map((u) => u.Id))}\n disabled={disabled || users.length === 0}\n icon={UserPlus}\n >\n Add all users\n </Button>\n )\n }\n disableSelect\n settingsManager={{\n pageSize,\n setPageSize,\n sortBy,\n setSortBy: handleSetSort,\n search,\n setSearch,\n }}\n />\n </RowProvider>\n );\n\n function handleSetSort(colId: string | undefined, desc: boolean) {\n setSortBy(colId ? { id: colId, desc } : undefined);\n }\n\n function handleAddAllMembers(userIds: UserId[]) {\n addMemberMutation.mutate(userIds, {\n onSuccess() {\n notifySuccess('Success', 'All users successfully added');\n },\n });\n }\n}\n","import { TeamRole, TeamId } from '@/react/portainer/users/teams/types';\nimport { UserId } from '@/portainer/users/types';\n\nimport { createRowContext } from '@@/datatables/RowContext';\n\nexport interface RowContext {\n getRole(userId: UserId): TeamRole;\n disabled?: boolean;\n teamId: TeamId;\n}\n\nconst { RowProvider, useRowContext } = createRowContext<RowContext>();\n\nexport { RowProvider, useRowContext };\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\n\nexport const columnHelper = createColumnHelper<User>();\n","import { MinusCircle } from 'lucide-react';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n useRemoveMemberMutation,\n useTeamMemberships,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\n\nimport { useRowContext } from '../RowContext';\n\nimport { columnHelper } from './helper';\n\nexport const name = columnHelper.accessor('Username', {\n header: 'Name',\n id: 'name',\n cell: NameCell,\n});\n\nexport function NameCell({\n getValue,\n row: { original: user },\n}: CellContext<User, string>) {\n const name = getValue();\n const { disabled, teamId } = useRowContext();\n\n const membershipsQuery = useTeamMemberships(teamId);\n\n const removeMemberMutation = useRemoveMemberMutation(\n teamId,\n membershipsQuery.data\n );\n\n return (\n <>\n {name}\n\n <Button\n color=\"link\"\n className=\"space-left !p-0\"\n onClick={() => handleRemoveMember(user.Id)}\n disabled={disabled}\n icon={MinusCircle}\n >\n Remove\n </Button>\n </>\n );\n\n function handleRemoveMember(userId: UserId) {\n removeMemberMutation.mutate([userId], {\n onSuccess() {\n notifySuccess('User removed from team', name);\n },\n });\n }\n}\n","import { User as UserIcon, UserPlus, UserX } from 'lucide-react';\nimport { CellContext } from '@tanstack/react-table';\n\nimport { User } from '@/portainer/users/types';\nimport { useCurrentUser } from '@/react/hooks/useUser';\nimport { TeamRole } from '@/react/portainer/users/teams/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n useTeamMemberships,\n useUpdateRoleMutation,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\nimport { Icon } from '@@/Icon';\n\nimport { useRowContext } from '../RowContext';\n\nimport { columnHelper } from './helper';\n\nexport const teamRole = columnHelper.accessor('Id', {\n header: 'Team Role',\n id: 'role',\n cell: RoleCell,\n});\n\nfunction RoleCell({\n row: { original: user },\n getValue,\n}: CellContext<User, User['Id']>) {\n const id = getValue();\n\n const { getRole, disabled, teamId } = useRowContext();\n const membershipsQuery = useTeamMemberships(teamId);\n const updateRoleMutation = useUpdateRoleMutation(\n teamId,\n membershipsQuery.data\n );\n\n const role = getRole(id);\n\n const { isPureAdmin } = useCurrentUser();\n\n const Cell = role === TeamRole.Leader ? LeaderCell : MemberCell;\n\n return (\n <Cell\n isAdmin={isPureAdmin}\n onClick={handleUpdateRole}\n disabled={disabled}\n />\n );\n\n function handleUpdateRole(role: TeamRole, onSuccessMessage: string) {\n updateRoleMutation.mutate(\n { userId: user.Id, role },\n {\n onSuccess() {\n notifySuccess(onSuccessMessage, user.Username);\n },\n }\n );\n }\n}\n\ninterface LeaderCellProps {\n isAdmin: boolean;\n onClick: (role: TeamRole, onSuccessMessage: string) => void;\n disabled?: boolean;\n}\n\nfunction LeaderCell({ isAdmin, onClick, disabled }: LeaderCellProps) {\n return (\n <div className=\"flex items-center\">\n <Icon className=\"space-right\" icon={UserPlus} mode=\"secondary-alt\" />\n\n {isAdmin && (\n <Button\n color=\"link\"\n className=\"nopadding\"\n onClick={() => onClick(TeamRole.Member, 'User is now team member')}\n disabled={disabled}\n icon={UserX}\n >\n Member\n </Button>\n )}\n </div>\n );\n}\n\ninterface MemberCellProps {\n onClick: (role: TeamRole, onSuccessMessage: string) => void;\n disabled?: boolean;\n}\n\nfunction MemberCell({ onClick, disabled }: MemberCellProps) {\n return (\n <div className=\"flex items-center\">\n <Icon className=\"space-right\" icon={UserIcon} mode=\"secondary-alt\" />\n <Button\n color=\"link\"\n className=\"nopadding\"\n onClick={() => onClick(TeamRole.Leader, 'User is now team leader')}\n disabled={disabled}\n icon={UserPlus}\n >\n Leader\n </Button>\n </div>\n );\n}\n","import { name } from './name-column';\nimport { teamRole } from './team-role-column';\n\nexport const columns = [name, teamRole];\n","import { useMemo, useState } from 'react';\nimport { Users, UserX } from 'lucide-react';\n\nimport { User, UserId } from '@/portainer/users/types';\nimport { TeamId, TeamRole } from '@/react/portainer/users/teams/types';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport {\n useRemoveMemberMutation,\n useTeamMemberships,\n} from '@/react/portainer/users/teams/queries';\n\nimport { Button } from '@@/buttons';\nimport { Datatable } from '@@/datatables';\n\nimport { RowContext, RowProvider } from './RowContext';\nimport { columns } from './columns';\n\ninterface Props {\n users: User[];\n roles: Record<UserId, TeamRole>;\n disabled?: boolean;\n teamId: TeamId;\n}\n\nexport function TeamMembersList({ users, roles, disabled, teamId }: Props) {\n const membershipsQuery = useTeamMemberships(teamId);\n\n const removeMemberMutation = useRemoveMemberMutation(\n teamId,\n membershipsQuery.data\n );\n\n const [search, setSearch] = useState('');\n const [pageSize, setPageSize] = useState(10);\n const [sortBy, setSortBy] = useState<\n { id: string; desc: boolean } | undefined\n >({ id: 'name', desc: false });\n\n const isPureAdmin = useIsPureAdmin();\n const rowContext = useMemo<RowContext>(\n () => ({\n getRole(userId: UserId) {\n return roles[userId];\n },\n disabled,\n teamId,\n }),\n [roles, disabled, teamId]\n );\n\n return (\n <RowProvider context={rowContext}>\n <Datatable<User>\n dataset={users}\n columns={columns}\n titleIcon={Users}\n title=\"Team members\"\n renderTableActions={() =>\n isPureAdmin && (\n <Button\n onClick={() => handleRemoveMembers(users.map((user) => user.Id))}\n disabled={disabled || users.length === 0}\n icon={UserX}\n >\n Remove all users\n </Button>\n )\n }\n disableSelect\n settingsManager={{\n pageSize,\n setPageSize,\n sortBy,\n setSortBy: handleSetSort,\n search,\n setSearch,\n }}\n />\n </RowProvider>\n );\n\n function handleSetSort(colId: string | undefined, desc: boolean) {\n setSortBy(colId ? { id: colId, desc } : undefined);\n }\n\n function handleRemoveMembers(userIds: UserId[]) {\n removeMemberMutation.mutate(userIds, {\n onSuccess() {\n notifySuccess('Success', 'All users successfully removed');\n },\n });\n }\n}\n","import _ from 'lodash';\n\nimport { User } from '@/portainer/users/types';\n\nimport { TeamId, TeamMembership } from '../../types';\n\nimport { UsersList } from './UsersList';\nimport { TeamMembersList } from './TeamMembersList';\n\ninterface Props {\n users: User[];\n memberships: TeamMembership[];\n disabled?: boolean;\n teamId: TeamId;\n}\n\nexport function TeamAssociationSelector({\n users,\n memberships,\n disabled,\n teamId,\n}: Props) {\n const teamUsers = _.compact(\n memberships.map((m) => users.find((user) => user.Id === m.UserID))\n );\n const usersNotInTeam = users.filter(\n (user) => !memberships.some((m) => m.UserID === user.Id)\n );\n const userRoles = Object.fromEntries(\n memberships.map((m) => [m.UserID, m.Role])\n );\n\n return (\n <div className=\"flex\">\n <div className=\"w-1/2\">\n <UsersList users={usersNotInTeam} disabled={disabled} teamId={teamId} />\n </div>\n <div className=\"w-1/2\">\n <TeamMembersList\n teamId={teamId}\n disabled={disabled}\n users={teamUsers}\n roles={userRoles}\n />\n </div>\n </div>\n );\n}\n","import { Formik, Field, Form } from 'formik';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useReducer } from 'react';\nimport { Plus } from 'lucide-react';\n\nimport { User } from '@/portainer/users/types';\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Widget } from '@@/Widget';\nimport { Input } from '@@/form-components/Input';\nimport { UsersSelector } from '@@/UsersSelector';\nimport { LoadingButton } from '@@/buttons/LoadingButton';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { createTeam } from '../../teams.service';\nimport { Team } from '../../types';\n\nimport { FormValues } from './types';\nimport { validationSchema } from './CreateTeamForm.validation';\n\ninterface Props {\n users: User[];\n teams: Team[];\n}\n\nexport function CreateTeamForm({ users, teams }: Props) {\n const addTeamMutation = useAddTeamMutation();\n const [formKey, incFormKey] = useReducer((state: number) => state + 1, 0);\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n const initialValues = {\n name: '',\n leaders: [],\n };\n\n return (\n <div className=\"row\">\n <div className=\"col-lg-12 col-md-12 col-xs-12\">\n <Widget>\n <Widget.Title\n icon={Plus}\n title=\"Add a new team\"\n className=\"vertical-center\"\n />\n <Widget.Body>\n <Formik\n initialValues={initialValues}\n validationSchema={() => validationSchema(teams)}\n onSubmit={handleAddTeamClick}\n validateOnMount\n key={formKey}\n >\n {({\n values,\n errors,\n handleSubmit,\n setFieldValue,\n isSubmitting,\n isValid,\n }) => (\n <Form\n className=\"form-horizontal\"\n onSubmit={handleSubmit}\n noValidate\n >\n <FormControl\n inputId=\"team_name\"\n label=\"Name\"\n errors={errors.name}\n required\n >\n <Field\n as={Input}\n name=\"name\"\n id=\"team_name\"\n required\n placeholder=\"e.g. development\"\n data-cy=\"team-teamNameInput\"\n />\n </FormControl>\n\n {users.length > 0 && (\n <FormControl\n inputId=\"users-input\"\n label=\"Select team leader(s)\"\n tooltip=\"You can assign one or more leaders to this team. Team leaders can manage their teams users and resources.\"\n errors={errors.leaders}\n >\n <UsersSelector\n value={values.leaders}\n onChange={(leaders) =>\n setFieldValue('leaders', leaders)\n }\n users={users}\n dataCy=\"team-teamLeaderSelect\"\n inputId=\"users-input\"\n placeholder=\"Select one or more team leaders\"\n disabled={teamSyncQuery.data}\n />\n </FormControl>\n )}\n\n {teamSyncQuery.data && (\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <TextTip color=\"orange\">\n The team leader feature is disabled as external\n authentication is currently enabled with team sync.\n </TextTip>\n </div>\n </div>\n )}\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n disabled={!isValid}\n data-cy=\"team-createTeamButton\"\n isLoading={isSubmitting || addTeamMutation.isLoading}\n loadingText=\"Creating team...\"\n icon={Plus}\n >\n Create team\n </LoadingButton>\n </div>\n </div>\n </Form>\n )}\n </Formik>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n );\n\n async function handleAddTeamClick(values: FormValues) {\n addTeamMutation.mutate(values, {\n onSuccess() {\n incFormKey();\n notifySuccess('Team successfully added', '');\n },\n });\n }\n}\n\nexport function useAddTeamMutation() {\n const queryClient = useQueryClient();\n\n return useMutation(\n (values: FormValues) => createTeam(values.name, values.leaders),\n {\n meta: {\n error: {\n title: 'Failure',\n message: 'Failed to create team',\n },\n },\n onSuccess() {\n return queryClient.invalidateQueries(['teams']);\n },\n }\n );\n}\n","import { object, string, array, number } from 'yup';\n\nimport { Team } from '@/react/portainer/users/teams/types';\n\nexport function validationSchema(teams: Team[]) {\n return object().shape({\n name: string()\n .required('This field is required.')\n .test(\n 'is-unique',\n 'This team already exists.',\n (name) => !!name && teams.every((team) => team.Name !== name)\n ),\n leaders: array().of(number()),\n });\n}\n","import { useMutation, useQueryClient } from 'react-query';\nimport { Trash2, Users } from 'lucide-react';\nimport { ColumnDef } from '@tanstack/react-table';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport { Team, TeamId } from '@/react/portainer/users/teams/types';\nimport { deleteTeam } from '@/react/portainer/users/teams/teams.service';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable } from '@@/datatables';\nimport { Button } from '@@/buttons';\nimport { buildNameColumn } from '@@/datatables/buildNameColumn';\nimport { createPersistedStore } from '@@/datatables/types';\nimport { useTableState } from '@@/datatables/useTableState';\n\nconst storageKey = 'teams';\n\nconst columns: ColumnDef<Team>[] = [\n buildNameColumn<Team>('Name', 'portainer.teams.team'),\n];\n\ninterface Props {\n teams: Team[];\n isAdmin: boolean;\n}\n\nconst settingsStore = createPersistedStore(storageKey, 'name');\n\nexport function TeamsDatatable({ teams, isAdmin }: Props) {\n const { handleRemove } = useRemoveMutation();\n const tableState = useTableState(settingsStore, storageKey);\n\n return (\n <Datatable<Team>\n dataset={teams}\n columns={columns}\n settingsManager={tableState}\n title=\"Teams\"\n titleIcon={Users}\n renderTableActions={(selectedRows) =>\n isAdmin && (\n <Button\n color=\"dangerlight\"\n onClick={() => handleRemoveClick(selectedRows)}\n disabled={selectedRows.length === 0}\n icon={Trash2}\n >\n Remove\n </Button>\n )\n }\n emptyContentLabel=\"No teams found\"\n />\n );\n\n function handleRemoveClick(selectedRows: Team[]) {\n const ids = selectedRows.map((row) => row.Id);\n handleRemove(ids);\n }\n}\n\nfunction useRemoveMutation() {\n const queryClient = useQueryClient();\n\n const deleteMutation = useMutation(\n async (ids: TeamId[]) =>\n promiseSequence(ids.map((id) => () => deleteTeam(id))),\n {\n meta: {\n error: { title: 'Failure', message: 'Unable to remove team' },\n },\n onSuccess() {\n return queryClient.invalidateQueries(['teams']);\n },\n }\n );\n\n return { handleRemove };\n\n async function handleRemove(teams: TeamId[]) {\n const confirmed = await confirmDelete(\n 'Are you sure you want to remove the selected teams?'\n );\n\n if (!confirmed) {\n return;\n }\n\n deleteMutation.mutate(teams, {\n onSuccess: () => {\n notifySuccess('Teams successfully removed', '');\n },\n });\n }\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { ItemView, ListView } from '@/react/portainer/users/teams';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { AccessHeaders } from '@/portainer/authorization-guard';\n\nexport const teamsModule = angular\n .module('portainer.app.teams', [])\n .config(config)\n .component(\n 'teamView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ItemView))), [])\n )\n .component(\n 'teamsView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), [])\n ).name;\n\n/* @ngInject */\nfunction config($stateRegistryProvider: StateRegistry) {\n $stateRegistryProvider.register({\n name: 'portainer.teams',\n url: '/teams',\n views: {\n 'content@': {\n component: 'teamsView',\n },\n },\n data: {\n docs: '/admin/user/teams',\n access: AccessHeaders.Restricted, // allow for team leaders\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.teams.team',\n url: '/:id',\n views: {\n 'content@': {\n component: 'teamView',\n },\n },\n });\n}\n","import { useRouter } from '@uirouter/react';\n\nimport { useUsers } from '@/portainer/users/queries';\nimport { useIsPureAdmin } from '@/react/hooks/useUser';\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\n\nimport { TextTip } from '@@/Tip/TextTip';\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useTeam, useTeamMemberships } from '../queries';\n\nimport { Details } from './Details';\nimport { TeamAssociationSelector } from './TeamAssociationSelector';\nimport { useTeamIdParam } from './useTeamIdParam';\n\nexport function ItemView() {\n const teamId = useTeamIdParam();\n\n const isPureAdmin = useIsPureAdmin();\n const router = useRouter();\n const teamQuery = useTeam(teamId, () =>\n router.stateService.go('portainer.teams')\n );\n const usersQuery = useUsers();\n const membershipsQuery = useTeamMemberships(teamId);\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n if (!teamQuery.data) {\n return null;\n }\n\n const team = teamQuery.data;\n\n return (\n <>\n <PageHeader\n title=\"Team details\"\n breadcrumbs={[{ label: 'Teams' }, { label: team.Name }]}\n reload\n />\n\n {membershipsQuery.data && (\n <Details\n team={team}\n memberships={membershipsQuery.data}\n isAdmin={isPureAdmin}\n />\n )}\n\n {teamSyncQuery.data && (\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <TextTip color=\"orange\">\n The team leader feature is disabled as external authentication is\n currently enabled with team sync.\n </TextTip>\n </div>\n </div>\n )}\n\n {usersQuery.data && membershipsQuery.data && (\n <TeamAssociationSelector\n teamId={teamId}\n memberships={membershipsQuery.data}\n users={usersQuery.data}\n disabled={teamSyncQuery.data}\n />\n )}\n </>\n );\n}\n","import { useCurrentStateAndParams } from '@uirouter/react';\n\nexport function useTeamIdParam() {\n const {\n params: { id: teamIdParam },\n } = useCurrentStateAndParams();\n const teamId = parseInt(teamIdParam, 10);\n\n if (!teamIdParam || Number.isNaN(teamId)) {\n throw new Error('Team ID is missing');\n }\n\n return teamId;\n}\n","import { useUsers } from '@/portainer/users/queries';\nimport { useCurrentUser } from '@/react/hooks/useUser';\n\nimport { PageHeader } from '@@/PageHeader';\n\nimport { useTeams } from '../queries';\n\nimport { CreateTeamForm } from './CreateTeamForm';\nimport { TeamsDatatable } from './TeamsDatatable';\n\nexport function ListView() {\n const { isPureAdmin } = useCurrentUser();\n\n const usersQuery = useUsers(false);\n const teamsQuery = useTeams(!isPureAdmin, 0);\n\n return (\n <>\n <PageHeader\n title=\"Teams\"\n breadcrumbs={[{ label: 'Teams management' }]}\n reload\n />\n\n {isPureAdmin && usersQuery.data && teamsQuery.data && (\n <CreateTeamForm users={usersQuery.data} teams={teamsQuery.data} />\n )}\n\n {teamsQuery.data && (\n <TeamsDatatable teams={teamsQuery.data} isAdmin={isPureAdmin} />\n )}\n </>\n );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeUpdateResponse, StatusType } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nexport type EdgeUpdateListItemResponse = EdgeUpdateResponse & {\n status: StatusType;\n statusMessage: string;\n};\n\nasync function getList(includeEdgeStacks?: boolean) {\n try {\n const { data } = await axios.get<EdgeUpdateListItemResponse[]>(buildUrl(), {\n params: { includeEdgeStacks },\n });\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to get list of edge update schedules'\n );\n }\n}\n\nexport function useList(includeEdgeStacks?: boolean) {\n return useQuery(queryKeys.list(includeEdgeStacks), () =>\n getList(includeEdgeStacks)\n );\n}\n","import { EnvironmentId } from '@/react/portainer/environments/types';\nimport { UserId } from '@/portainer/users/types';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nexport enum ScheduleType {\n Update = 1,\n Rollback,\n}\n\nexport enum StatusType {\n Pending,\n Failed,\n Success,\n Sent,\n}\n\nexport type EdgeUpdateSchedule = {\n id: number;\n name: string;\n\n type: ScheduleType;\n\n created: number;\n createdBy: UserId;\n version: string;\n environmentsPreviousVersions: Record<EnvironmentId, string>;\n};\n\nexport type EdgeUpdateResponse = EdgeUpdateSchedule & {\n // from edge stack:\n edgeGroupIds: EdgeGroup['Id'][];\n scheduledTime: string;\n};\n","import { useQueryClient, useMutation } from 'react-query';\n\nimport { promiseSequence } from '@/portainer/helpers/promise-utils';\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport {\n mutationOptions,\n withError,\n withInvalidate,\n} from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\n\nimport { buildUrl } from './urls';\nimport { queryKeys } from './query-keys';\n\nexport function useRemoveMutation() {\n const queryClient = useQueryClient();\n\n return useMutation(\n (schedules: EdgeUpdateSchedule[]) =>\n promiseSequence(\n schedules.map((schedule) => () => deleteUpdateSchedule(schedule.id))\n ),\n\n mutationOptions(\n withInvalidate(queryClient, [queryKeys.base()]),\n withError()\n )\n );\n}\n\nasync function deleteUpdateSchedule(id: EdgeUpdateSchedule['id']) {\n try {\n const { data } = await axios.delete<EdgeUpdateSchedule[]>(buildUrl(id));\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to delete edge update schedule'\n );\n }\n}\n","import { createColumnHelper } from '@tanstack/react-table';\n\nimport { DecoratedItem } from '../types';\n\nexport const columnHelper = createColumnHelper<DecoratedItem>();\n","import { isoDateFromTimestamp } from '@/portainer/filters/filters';\n\nimport { columnHelper } from './helper';\n\nexport const created = columnHelper.accessor('created', {\n id: 'created',\n header: 'Created',\n cell: ({ getValue }) => {\n const value = getValue();\n return isoDateFromTimestamp(value);\n },\n});\n","import { CellContext } from '@tanstack/react-table';\n\nimport { DecoratedItem } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const groups = columnHelper.accessor('edgeGroupNames', {\n header: 'Edge Groups',\n cell: GroupsCell,\n});\n\nexport function GroupsCell({\n getValue,\n}: CellContext<DecoratedItem, Array<string>>) {\n const groups = getValue();\n\n return groups.join(', ');\n}\n","import { CellContext } from '@tanstack/react-table';\n\nimport { StatusType } from '../../types';\nimport { DecoratedItem } from '../types';\n\nimport { columnHelper } from './helper';\n\nexport const scheduleStatus = columnHelper.accessor('status', {\n header: 'Status',\n cell: StatusCell,\n});\n\nfunction StatusCell({\n getValue,\n row: {\n original: { statusMessage },\n },\n}: CellContext<DecoratedItem, DecoratedItem['status']>) {\n const status = getValue();\n\n switch (status) {\n case StatusType.Failed:\n return statusMessage;\n default:\n return StatusType[status];\n }\n}\n","import DateTimePicker from 'react-datetime-picker';\nimport { Calendar, X } from 'lucide-react';\nimport { useMemo } from 'react';\nimport { string } from 'yup';\nimport { useField } from 'formik';\n\nimport {\n isoDate,\n parseIsoDate,\n TIME_FORMAT,\n} from '@/portainer/filters/filters';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { FormValues } from './types';\n\ninterface Props {\n disabled?: boolean;\n}\n\nexport const FORMAT = 'YYYY-MM-DD HH:mm';\n\nexport function ScheduledTimeField({ disabled }: Props) {\n const [{ name, value }, { error }, { setValue }] =\n useField<FormValues['scheduledTime']>('scheduledTime');\n\n const dateValue = useMemo(() => parseIsoDate(value, FORMAT), [value]);\n\n if (!value) {\n return null;\n }\n\n return (\n <>\n <FormControl label=\"Schedule date & time\" errors={error}>\n {!disabled ? (\n <DateTimePicker\n format=\"y-MM-dd HH:mm\"\n className=\"form-control [&>div]:border-0\"\n onChange={(date) => {\n const dateToSave =\n date || new Date(Date.now() + 24 * 60 * 60 * 1000);\n setValue(isoDate(dateToSave.valueOf(), FORMAT));\n }}\n name={name}\n value={dateValue}\n calendarIcon={<Calendar className=\"lucide\" />}\n clearIcon={<X className=\"lucide\" />}\n disableClock\n minDate={new Date(Date.now() - 24 * 60 * 60 * 1000)}\n />\n ) : (\n <Input defaultValue={value} disabled />\n )}\n </FormControl>\n {!disabled && value && (\n <TextTip color=\"blue\">\n If time zone is not set on edge agent then UTC+0 will be used.\n </TextTip>\n )}\n </>\n );\n}\n\nexport function timeValidation() {\n return string()\n .required('Scheduled time is required')\n .test(\n 'validFormat',\n `Scheduled time must be in the format ${TIME_FORMAT}`,\n (value) => isValidDate(parseIsoDate(value))\n )\n .test(\n 'validDate',\n `Scheduled time must be bigger then ${\n (isoDate(Date.now() - 24 * 60 * 60 * 1000), FORMAT)\n }`,\n (value) =>\n parseIsoDate(value).valueOf() > Date.now() - 24 * 60 * 60 * 1000\n );\n}\n\nexport function defaultValue() {\n return isoDate(Date.now(), FORMAT);\n}\n\nfunction isValidDate(date: Date) {\n return date instanceof Date && !Number.isNaN(date.valueOf());\n}\n","import { formatDate } from '@/portainer/filters/filters';\n\nimport { FORMAT } from '../../common/ScheduledTimeField';\n\nimport { columnHelper } from './helper';\n\nexport const scheduledTime = columnHelper.accessor('scheduledTime', {\n header: 'Scheduled Time & Date',\n // make sure the value has the right format\n cell: ({ getValue }) => formatDate(getValue(), FORMAT, FORMAT),\n id: 'time',\n});\n","import { ScheduleType } from '../../types';\n\nimport { columnHelper } from './helper';\n\nexport const scheduleType = columnHelper.accessor('type', {\n header: 'Type',\n cell: ({ getValue }) => {\n const value = getValue();\n\n return ScheduleType[value];\n },\n});\n","import { buildNameColumn } from '@@/datatables/buildNameColumn';\n\nimport { DecoratedItem } from '../types';\n\nimport { created } from './created';\nimport { groups } from './groups';\nimport { scheduleStatus } from './schedule-status';\nimport { scheduledTime } from './scheduled-time';\nimport { scheduleType } from './type';\n\nexport const columns = [\n buildNameColumn<DecoratedItem>('name', '.item'),\n scheduledTime,\n groups,\n scheduleType,\n scheduleStatus,\n created,\n];\n","import { Clock, Trash2 } from 'lucide-react';\nimport { useMemo } from 'react';\nimport _ from 'lodash';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { confirmDelete } from '@@/modals/confirm';\nimport { Datatable } from '@@/datatables';\nimport { PageHeader } from '@@/PageHeader';\nimport { Button } from '@@/buttons';\nimport { Link } from '@@/Link';\nimport { useTableState } from '@@/datatables/useTableState';\n\nimport { useList } from '../queries/list';\nimport { EdgeUpdateSchedule, StatusType } from '../types';\nimport { useRemoveMutation } from '../queries/useRemoveMutation';\nimport { BetaAlert } from '../common/BetaAlert';\n\nimport { columns } from './columns';\nimport { createStore } from './datatable-store';\nimport { DecoratedItem } from './types';\n\nconst storageKey = 'update-schedules-list';\nconst settingsStore = createStore(storageKey);\n\nexport default withLimitToBE(ListView);\n\nexport function ListView() {\n const tableState = useTableState(settingsStore, storageKey);\n\n const listQuery = useList(true);\n const groupsQuery = useEdgeGroups({\n select: (groups) => Object.fromEntries(groups.map((g) => [g.Id, g.Name])),\n });\n\n const items: Array<DecoratedItem> = useMemo(() => {\n if (!listQuery.data || !groupsQuery.data) {\n return [];\n }\n\n return listQuery.data.map((item) => ({\n ...item,\n edgeGroupNames: _.compact(\n item.edgeGroupIds.map((id) => groupsQuery.data[id])\n ),\n }));\n }, [listQuery.data, groupsQuery.data]);\n\n if (!listQuery.data || !groupsQuery.data) {\n return null;\n }\n\n return (\n <>\n <PageHeader\n title=\"Update & Rollback\"\n breadcrumbs=\"Update and rollback\"\n reload\n />\n\n <BetaAlert\n className=\"mb-2 ml-[15px]\"\n message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n />\n\n <Datatable\n dataset={items}\n columns={columns}\n settingsManager={tableState}\n title=\"Update & rollback\"\n titleIcon={Clock}\n emptyContentLabel=\"No schedules found\"\n isLoading={listQuery.isLoading}\n renderTableActions={(selectedRows) => (\n <TableActions selectedRows={selectedRows} />\n )}\n isRowSelectable={(row) => row.original.status === StatusType.Pending}\n />\n </>\n );\n}\n\nfunction TableActions({\n selectedRows,\n}: {\n selectedRows: EdgeUpdateSchedule[];\n}) {\n const removeMutation = useRemoveMutation();\n return (\n <>\n <Button\n icon={Trash2}\n color=\"dangerlight\"\n onClick={() => handleRemove()}\n disabled={selectedRows.length === 0}\n >\n Remove\n </Button>\n\n <Link to=\".create\">\n <Button>Add update & rollback schedule</Button>\n </Link>\n </>\n );\n\n async function handleRemove() {\n const confirmed = await confirmDelete(\n 'Are you sure you want to remove these?'\n );\n if (!confirmed) {\n return;\n }\n\n removeMutation.mutate(selectedRows, {\n onSuccess: () => {\n notifySuccess('Success', 'Schedules successfully removed');\n },\n });\n }\n}\n","import {\n refreshableSettings,\n hiddenColumnsSettings,\n RefreshableTableSettings,\n SettableColumnsTableSettings,\n createPersistedStore,\n BasicTableSettings,\n} from '@/react/components/datatables/types';\n\ninterface TableSettings\n extends BasicTableSettings,\n SettableColumnsTableSettings,\n RefreshableTableSettings {}\n\nexport function createStore(storageKey: string) {\n return createPersistedStore<TableSettings>(\n storageKey,\n 'time',\n\n (set) => ({\n ...hiddenColumnsSettings(set),\n ...refreshableSettings(set),\n })\n );\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError, withInvalidate } from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nasync function create(schedule: FormValues) {\n try {\n const { data } = await axios.post<EdgeUpdateSchedule>(buildUrl(), schedule);\n\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to create edge update schedule'\n );\n }\n}\n\nexport function useCreateMutation() {\n const queryClient = useQueryClient();\n return useMutation(create, {\n ...withInvalidate(queryClient, [queryKeys.base()]),\n ...withError(),\n });\n}\n","import { Field, useField } from 'formik';\nimport { string } from 'yup';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Input } from '@@/form-components/Input';\n\nimport { EdgeUpdateSchedule } from '../types';\n\nimport { FormValues } from './types';\n\nexport function NameField() {\n const [{ name }, { error }] = useField<FormValues['name']>('name');\n\n return (\n <FormControl\n label=\"Name\"\n required\n inputId=\"name-input\"\n errors={error}\n tooltip=\"A descriptive name helps identify the update or roll back schedule when you have more than one\"\n >\n <Field as={Input} name={name} id=\"name-input\" />\n </FormControl>\n );\n}\n\nexport function nameValidation(\n schedules: EdgeUpdateSchedule[],\n currentId?: EdgeUpdateSchedule['id']\n) {\n return string()\n .required('This field is required')\n .test('unique', 'Name must be unique', (value) =>\n schedules.every((s) => s.id === currentId || s.name !== value)\n );\n}\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nexport function useEdgeGroupsEnvironmentIds(\n edgeGroupsIds: Array<EdgeGroup['Id']>\n) {\n const groupsQuery = useEdgeGroups({\n select: (groups) =>\n Object.fromEntries(groups.map((g) => [g.Id, g.Endpoints])),\n });\n\n const envIds = useMemo(\n () =>\n _.uniq(\n _.compact(\n edgeGroupsIds.flatMap((id) =>\n groupsQuery.data ? groupsQuery.data[id] : []\n )\n )\n ),\n [edgeGroupsIds, groupsQuery.data]\n );\n\n return useMemo(\n () => ({\n data: groupsQuery.data ? envIds : null,\n isLoading: groupsQuery.isLoading,\n }),\n [envIds, groupsQuery.data, groupsQuery.isLoading]\n );\n}\n","import { Field, useField } from 'formik';\nimport _ from 'lodash';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/Input';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { useSupportedAgentVersions } from '../queries/useSupportedAgentVersions';\n\nimport { FormValues } from './types';\n\n/**\n * in-case agents don't have any version field, it means they are version less then 2.15.x or that they still not associated.\n */\nconst DEFAULT_MIN_VERSION = '2.14.10';\n\nexport function VersionSelect({\n minVersion = DEFAULT_MIN_VERSION,\n}: {\n minVersion?: string;\n}) {\n const [{ value: version }, { error }, { setValue }] =\n useField<FormValues['version']>('version');\n const supportedAgentVersionsQuery = useSupportedAgentVersions(minVersion, {\n onSuccess(versions) {\n if (versions.includes(version)) {\n return;\n }\n\n setValue(_.last(versions) || '');\n },\n });\n\n if (!supportedAgentVersionsQuery.data) {\n return null;\n }\n\n if (!supportedAgentVersionsQuery.data.length) {\n return (\n <FormControl label=\"Version\">\n <TextTip>No supported versions available</TextTip>\n </FormControl>\n );\n }\n\n const supportedVersions = supportedAgentVersionsQuery.data.map((version) => ({\n label: version,\n value: version,\n }));\n\n return (\n <FormControl label=\"Version\" errors={error} inputId=\"version-input\">\n <Field\n id=\"version-input\"\n name=\"version\"\n as={Select}\n className=\"form-control\"\n placeholder=\"Version\"\n options={supportedVersions}\n />\n </FormControl>\n );\n}\n","import _ from 'lodash';\n\nimport { Environment } from '@/react/portainer/environments/types';\nimport { semverCompare } from '@/react/common/semver-utils';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { VersionSelect } from './VersionSelect';\nimport { ScheduledTimeField } from './ScheduledTimeField';\n\ninterface Props {\n environments: Environment[];\n hasTimeZone: boolean;\n hasNoTimeZone: boolean;\n hasGroupSelected: boolean;\n version: string;\n}\n\nexport function UpdateScheduleDetailsFieldset({\n environments,\n hasTimeZone,\n hasNoTimeZone,\n hasGroupSelected,\n version,\n}: Props) {\n const minVersion = _.first(\n _.compact<string>(environments.map((env) => env.Agent.Version)).sort(\n (a, b) => semverCompare(a, b)\n )\n );\n\n return (\n <>\n {environments.length > 0 ? (\n !!version && (\n <TextTip color=\"blue\">\n {environments.length} environment(s) will be updated to {version}\n </TextTip>\n )\n ) : (\n <TextTip color=\"orange\">\n No environments options for the selected edge groups\n </TextTip>\n )}\n <VersionSelect minVersion={minVersion} />\n\n {hasTimeZone && hasGroupSelected && <ScheduledTimeField />}\n {hasNoTimeZone && (\n <TextTip>\n These edge groups have older versions of the edge agent that do not\n support scheduling, these will happen immediately\n </TextTip>\n )}\n </>\n );\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\ninterface Options<T> {\n select?: (data: Record<EnvironmentId, string>) => T;\n onSuccess?(data: T): void;\n enabled?: boolean;\n}\n\nexport function usePreviousVersions<T = Record<EnvironmentId, string>>({\n select,\n onSuccess,\n enabled,\n}: Options<T> = {}) {\n return useQuery(queryKeys.previousVersions(), getPreviousVersions, {\n select,\n onSuccess,\n enabled,\n });\n}\n\nasync function getPreviousVersions() {\n try {\n const { data } = await axios.get<Record<EnvironmentId, string>>(\n buildUrl(undefined, 'previous_versions')\n );\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to get list of edge update schedules'\n );\n }\n}\n","import { useFormikContext } from 'formik';\nimport _ from 'lodash';\nimport { useMemo, useEffect } from 'react';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { usePreviousVersions } from '../queries/usePreviousVersions';\n\nimport { FormValues } from './types';\nimport { useEdgeGroupsEnvironmentIds } from './useEdgeGroupsEnvironmentIds';\n\nexport function RollbackOptions() {\n const { isLoading, count, version, versionError } = useSelectVersionOnMount();\n\n const groupNames = useGroupNames();\n\n if (versionError) {\n return <TextTip>{versionError}</TextTip>;\n }\n\n if (!count) {\n return (\n <TextTip>\n There are no rollback options available for your selected groups(s)\n </TextTip>\n );\n }\n\n if (isLoading || !groupNames) {\n return null;\n }\n\n return (\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n {count} edge device(s) from {groupNames} will rollback to version{' '}\n {version}\n </div>\n </div>\n );\n}\n\nfunction useSelectVersionOnMount() {\n const {\n values: { groupIds, version },\n setFieldValue,\n setFieldError,\n errors: { version: versionError },\n } = useFormikContext<FormValues>();\n\n const environmentIdsQuery = useEdgeGroupsEnvironmentIds(groupIds);\n\n const previousVersionsQuery = usePreviousVersions<string[]>({\n enabled: !!environmentIdsQuery.data,\n });\n\n const previousVersions = useMemo(\n () =>\n previousVersionsQuery.data\n ? _.uniq(\n _.compact(\n environmentIdsQuery.data?.map(\n (envId) => previousVersionsQuery.data[envId]\n )\n )\n )\n : [],\n [environmentIdsQuery.data, previousVersionsQuery.data]\n );\n\n useEffect(() => {\n switch (previousVersions.length) {\n case 0:\n setFieldValue('version', '');\n setFieldError('version', 'No rollback options available');\n break;\n case 1:\n setFieldValue('version', previousVersions[0]);\n break;\n default:\n setFieldError(\n 'version',\n 'Rollback is not available for these edge group as there are multiple version types to rollback to'\n );\n }\n }, [previousVersions, setFieldError, setFieldValue]);\n\n return {\n isLoading: previousVersionsQuery.isLoading,\n versionError,\n version,\n count: environmentIdsQuery.data?.length,\n };\n}\n\nfunction useGroupNames() {\n const {\n values: { groupIds },\n } = useFormikContext<FormValues>();\n\n const groupsQuery = useEdgeGroups({\n select: (groups) => Object.fromEntries(groups.map((g) => [g.Id, g.Name])),\n });\n\n if (!groupsQuery.data) {\n return null;\n }\n\n return groupIds.map((id) => groupsQuery.data[id]).join(', ');\n}\n","import { RollbackOptions } from './RollbackOptions';\nimport { ScheduledTimeField } from './ScheduledTimeField';\n\ninterface Props {\n hasTimeZone: boolean;\n hasGroupSelected: boolean;\n}\n\nexport function RollbackScheduleDetailsFieldset({\n hasTimeZone,\n hasGroupSelected,\n}: Props) {\n return (\n <div className=\"mt-3\">\n <RollbackOptions />\n {hasTimeZone && hasGroupSelected && <ScheduledTimeField />}\n </div>\n );\n}\n","import { useFormikContext } from 'formik';\nimport { number } from 'yup';\nimport { useEffect } from 'react';\n\nimport { NavTabs } from '@@/NavTabs';\nimport { NavContainer } from '@@/NavTabs/NavContainer';\n\nimport { ScheduleType } from '../types';\n\nimport { useEdgeGroupsEnvironmentIds } from './useEdgeGroupsEnvironmentIds';\nimport { useEnvironments } from './useEnvironments';\nimport { defaultValue } from './ScheduledTimeField';\nimport { FormValues } from './types';\nimport { UpdateScheduleDetailsFieldset } from './UpdateScheduleDetailsFieldset';\nimport { RollbackScheduleDetailsFieldset } from './RollbackScheduleDetailsFieldset';\n\nexport function ScheduleTypeSelector() {\n const { values, setFieldValue } = useFormikContext<FormValues>();\n\n const environmentIdsQuery = useEdgeGroupsEnvironmentIds(values.groupIds);\n\n const edgeGroupsEnvironmentIds = environmentIdsQuery.data || [];\n const environments = useEnvironments(edgeGroupsEnvironmentIds);\n\n // old version is version that doesn't support scheduling of updates\n const hasNoTimeZone = environments.some((env) => !env.LocalTimeZone);\n const hasTimeZone = environments.some((env) => env.LocalTimeZone);\n const hasGroupSelected = values.groupIds.length > 0;\n\n useEffect(() => {\n if (!hasTimeZone || !hasGroupSelected) {\n setFieldValue('scheduledTime', '');\n } else if (!values.scheduledTime) {\n setFieldValue('scheduledTime', defaultValue());\n }\n }, [setFieldValue, hasTimeZone, values.scheduledTime, hasGroupSelected]);\n\n return (\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <NavContainer>\n <NavTabs\n options={[\n {\n id: ScheduleType.Update,\n label: 'Update',\n children: (\n <UpdateScheduleDetailsFieldset\n environments={environments}\n hasTimeZone={hasTimeZone}\n hasNoTimeZone={hasNoTimeZone}\n hasGroupSelected={hasGroupSelected}\n version={values.version}\n />\n ),\n },\n {\n id: ScheduleType.Rollback,\n label: 'Rollback',\n children: (\n <RollbackScheduleDetailsFieldset\n hasTimeZone={hasTimeZone}\n hasGroupSelected={hasGroupSelected}\n />\n ),\n },\n ]}\n selectedId={values.type}\n onSelect={handleChangeType}\n />\n </NavContainer>\n </div>\n </div>\n );\n\n function handleChangeType(scheduleType: ScheduleType) {\n setFieldValue('type', scheduleType);\n setFieldValue('version', '');\n }\n}\n\nexport function typeValidation() {\n return number()\n .oneOf([ScheduleType.Rollback, ScheduleType.Update])\n .default(ScheduleType.Update);\n}\n","import { useEnvironmentList } from '@/react/portainer/environments/queries/useEnvironmentList';\nimport { EdgeTypes, EnvironmentId } from '@/react/portainer/environments/types';\n\nexport function useEnvironments(environmentsIds: Array<EnvironmentId>) {\n const environmentsQuery = useEnvironmentList(\n { endpointIds: environmentsIds, types: EdgeTypes, pageLimit: 0 },\n {\n enabled: environmentsIds.length > 0,\n }\n );\n\n return environmentsQuery.environments;\n}\n","import { array, object, SchemaOf, string, number } from 'yup';\n\nimport { parseIsoDate } from '@/portainer/filters/filters';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nimport { EdgeUpdateSchedule, ScheduleType } from '../types';\n\nimport { nameValidation } from './NameField';\nimport { typeValidation } from './ScheduleTypeSelector';\nimport { FormValues } from './types';\n\nexport function validation(\n schedules: EdgeUpdateSchedule[],\n edgeGroups: Array<EdgeGroup> | undefined,\n currentId?: EdgeUpdateSchedule['id']\n): SchemaOf<FormValues> {\n return object({\n groupIds: array()\n .of(number().default(0))\n .min(1, 'At least one group is required')\n .test(\n 'At least one group must have endpoints',\n (groupIds) =>\n !!(\n groupIds &&\n edgeGroups &&\n groupIds?.flatMap(\n (id) => edgeGroups?.find((group) => group.Id === id)?.Endpoints\n ).length > 0\n )\n ),\n name: nameValidation(schedules, currentId),\n type: typeValidation(),\n scheduledTime: string()\n .default('')\n .test('valid', (value) => !value || parseIsoDate(value) !== null),\n version: string()\n .default('')\n .when('type', {\n is: ScheduleType.Update,\n // update type\n then: (schema) => schema.required('Version is required'),\n // rollback\n otherwise: (schema) => schema.required('No rollback options available'),\n }),\n registryId: number().default(0),\n });\n}\n","import { FormikErrors, FormikHandlers } from 'formik';\n\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { FormControl } from '@@/form-components/FormControl';\nimport { Select } from '@@/form-components/ReactSelect';\nimport { TextTip } from '@@/Tip/TextTip';\n\nimport { FormValues } from './types';\n\ninterface Props {\n disabled?: boolean;\n onBlur: FormikHandlers['handleBlur'];\n value: FormValues['groupIds'];\n error?: FormikErrors<FormValues>['groupIds'];\n onChange(value: FormValues['groupIds']): void;\n}\n\nexport function EdgeGroupsField({\n disabled,\n onBlur,\n value,\n error,\n onChange,\n}: Props) {\n const groupsQuery = useEdgeGroups();\n\n const selectedGroups = groupsQuery.data?.filter((group) =>\n value.includes(group.Id)\n );\n\n return (\n <div>\n <FormControl\n label=\"Groups\"\n required\n inputId=\"groups-select\"\n errors={error}\n tooltip=\"Updates are done based on groups, allowing you to choose multiple devices at the same time and the ability to roll out progressively across all environments by scheduling them for different days.\"\n >\n <Select\n name=\"groupIds\"\n onBlur={onBlur}\n value={selectedGroups}\n inputId=\"groups-select\"\n placeholder=\"Select one or multiple group(s)\"\n onChange={(selectedGroups) =>\n onChange(selectedGroups.map((g) => g.Id))\n }\n isMulti\n options={groupsQuery.data || []}\n getOptionLabel={(group) => group.Name}\n getOptionValue={(group) => group.Id.toString()}\n closeMenuOnSelect={false}\n isDisabled={disabled}\n />\n </FormControl>\n <TextTip color=\"blue\">\n Select groups of Edge environments to update\n </TextTip>\n </div>\n );\n}\n","import { useMemo } from 'react';\nimport { Settings } from 'lucide-react';\nimport { Formik, Form as FormikForm } from 'formik';\nimport { useRouter } from '@uirouter/react';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { Link } from '@@/Link';\n\nimport { ScheduleType } from '../types';\nimport { useCreateMutation } from '../queries/create';\nimport { FormValues } from '../common/types';\nimport { validation } from '../common/validation';\nimport { ScheduleTypeSelector } from '../common/ScheduleTypeSelector';\nimport { useList } from '../queries/list';\nimport { NameField } from '../common/NameField';\nimport { EdgeGroupsField } from '../common/EdgeGroupsField';\nimport { BetaAlert } from '../common/BetaAlert';\nimport { defaultValue } from '../common/ScheduledTimeField';\n\nexport default withLimitToBE(CreateView);\n\nfunction CreateView() {\n const initialValues = useMemo<FormValues>(\n () => ({\n name: '',\n groupIds: [],\n type: ScheduleType.Update,\n version: '',\n scheduledTime: defaultValue(),\n }),\n []\n );\n const edgeGroupsQuery = useEdgeGroups();\n const schedulesQuery = useList();\n\n const createMutation = useCreateMutation();\n const router = useRouter();\n\n if (!schedulesQuery.data) {\n return null;\n }\n\n const schedules = schedulesQuery.data;\n\n return (\n <>\n <PageHeader\n title=\"Update & Rollback\"\n breadcrumbs=\"Edge agent update and rollback\"\n reload\n />\n\n <BetaAlert\n className=\"mb-2 ml-[15px]\"\n message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <Widget.Title title=\"Update & Rollback Scheduler\" icon={Settings} />\n <Widget.Body>\n <TextTip color=\"blue\" className=\"mb-2\">\n Devices need to be allocated to an Edge group, visit the{' '}\n <Link to=\"edge.groups\">Edge Groups</Link> page to assign\n environments and create groups.\n </TextTip>\n\n <Formik\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validateOnMount\n validationSchema={() =>\n validation(schedules, edgeGroupsQuery.data)\n }\n >\n {({ isValid, setFieldValue, values, handleBlur, errors }) => (\n <FormikForm className=\"form-horizontal\">\n <NameField />\n <EdgeGroupsField\n onChange={(value) => setFieldValue('groupIds', value)}\n value={values.groupIds}\n onBlur={handleBlur}\n error={errors.groupIds}\n />\n\n <TextTip color=\"blue\">\n You can upgrade from any agent version to 2.17 or later\n only. You can not upgrade to an agent version prior to\n 2.17 . The ability to rollback to originating version is\n for 2.15.0+ only.\n </TextTip>\n\n <div className=\"mt-2\">\n <ScheduleTypeSelector />\n </div>\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n disabled={!isValid}\n isLoading={createMutation.isLoading}\n loadingText=\"Creating...\"\n >\n Create Schedule\n </LoadingButton>\n </div>\n </div>\n </FormikForm>\n )}\n </Formik>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n </>\n );\n\n function handleSubmit(values: FormValues) {\n createMutation.mutate(values, {\n onSuccess() {\n notifySuccess('Success', 'Created schedule successfully');\n router.stateService.go('^');\n },\n });\n }\n}\n","import { useQuery } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\n\nimport { EdgeUpdateResponse, EdgeUpdateSchedule } from '../types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\nexport function useItem(id: EdgeUpdateSchedule['id']) {\n return useQuery(queryKeys.item(id), () => getItem(id));\n}\n\ntype EdgeUpdateItemResponse = EdgeUpdateResponse & {\n isActive: boolean;\n};\n\nasync function getItem(id: EdgeUpdateSchedule['id']) {\n try {\n const { data } = await axios.get<EdgeUpdateItemResponse>(buildUrl(id), {\n params: { includeEdgeStack: true },\n });\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to get list of edge update schedules'\n );\n }\n}\n","import { useMutation, useQueryClient } from 'react-query';\n\nimport axios, { parseAxiosError } from '@/portainer/services/axios';\nimport { withError, withInvalidate } from '@/react-tools/react-query';\n\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\n\nimport { queryKeys } from './query-keys';\nimport { buildUrl } from './urls';\n\ninterface Update {\n id: EdgeUpdateSchedule['id'];\n values: Partial<FormValues>;\n}\n\nasync function update({ id, values }: Update) {\n try {\n const { data } = await axios.put<EdgeUpdateSchedule>(buildUrl(id), values);\n\n return data;\n } catch (err) {\n throw parseAxiosError(\n err as Error,\n 'Failed to update edge update schedule'\n );\n }\n}\n\nexport function useUpdateMutation() {\n const queryClient = useQueryClient();\n return useMutation(update, {\n ...withInvalidate(queryClient, [queryKeys.base()]),\n ...withError(),\n });\n}\n","import { Settings } from 'lucide-react';\nimport { Formik, Form as FormikForm } from 'formik';\nimport { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { object, SchemaOf } from 'yup';\n\nimport { notifySuccess } from '@/portainer/services/notifications';\nimport { withLimitToBE } from '@/react/hooks/useLimitToBE';\nimport { useEdgeGroups } from '@/react/edge/edge-groups/queries/useEdgeGroups';\nimport { EdgeGroup } from '@/react/edge/edge-groups/types';\n\nimport { PageHeader } from '@@/PageHeader';\nimport { Widget } from '@@/Widget';\nimport { LoadingButton } from '@@/buttons';\nimport { TextTip } from '@@/Tip/TextTip';\nimport { InformationPanel } from '@@/InformationPanel';\nimport { Link } from '@@/Link';\n\nimport { useItem } from '../queries/useItem';\nimport { validation } from '../common/validation';\nimport { useUpdateMutation } from '../queries/useUpdateMutation';\nimport { useList } from '../queries/list';\nimport { NameField, nameValidation } from '../common/NameField';\nimport { EdgeGroupsField } from '../common/EdgeGroupsField';\nimport { EdgeUpdateSchedule } from '../types';\nimport { FormValues } from '../common/types';\nimport { ScheduleTypeSelector } from '../common/ScheduleTypeSelector';\nimport { BetaAlert } from '../common/BetaAlert';\n\nexport default withLimitToBE(ItemView);\n\nfunction ItemView() {\n const {\n params: { id: idParam },\n } = useCurrentStateAndParams();\n\n const id = parseInt(idParam, 10);\n const edgeGroupsQuery = useEdgeGroups();\n\n if (!idParam || Number.isNaN(id)) {\n throw new Error('id is a required path param');\n }\n\n const updateMutation = useUpdateMutation();\n const router = useRouter();\n const itemQuery = useItem(id);\n const schedulesQuery = useList();\n\n if (!itemQuery.data || !schedulesQuery.data) {\n return null;\n }\n\n const item = itemQuery.data;\n const isScheduleActive = item.isActive;\n\n const schedules = schedulesQuery.data;\n\n const initialValuesActive: Partial<FormValues> = {\n name: item.name,\n };\n\n const initialValues: FormValues = {\n name: item.name,\n groupIds: item.edgeGroupIds,\n type: item.type,\n version: item.version,\n scheduledTime: item.scheduledTime,\n };\n\n const environmentsCount = Object.keys(\n item.environmentsPreviousVersions\n ).length;\n\n return (\n <>\n <PageHeader\n title=\"Update & Rollback\"\n breadcrumbs={[\n { label: 'Edge agent update and rollback', link: '^' },\n item.name,\n ]}\n reload\n />\n\n <BetaAlert\n className=\"mb-2 ml-[15px]\"\n message=\"Beta feature - currently limited to standalone Linux edge devices.\"\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <Widget.Title title=\"Update & Rollback Scheduler\" icon={Settings} />\n <Widget.Body>\n <TextTip color=\"blue\">\n Devices need to be allocated to an Edge group, visit the{' '}\n <Link to=\"edge.groups\">Edge Groups</Link> page to assign\n environments and create groups.\n </TextTip>\n\n <Formik\n initialValues={\n !isScheduleActive ? initialValues : initialValuesActive\n }\n onSubmit={(values) => {\n updateMutation.mutate(\n { id, values },\n {\n onSuccess() {\n notifySuccess(\n 'Success',\n 'Updated schedule successfully'\n );\n router.stateService.go('^');\n },\n }\n );\n }}\n validateOnMount\n validationSchema={() =>\n updateValidation(\n item.id,\n schedules,\n edgeGroupsQuery.data,\n isScheduleActive\n )\n }\n >\n {({ isValid, setFieldValue, values, handleBlur, errors }) => (\n <FormikForm className=\"form-horizontal\">\n <NameField />\n\n <EdgeGroupsField\n disabled={isScheduleActive}\n onChange={(value) => setFieldValue('groupIds', value)}\n value={\n isScheduleActive\n ? item.edgeGroupIds\n : values.groupIds || []\n }\n onBlur={handleBlur}\n error={errors.groupIds}\n />\n\n <div className=\"mt-2\">\n {isScheduleActive ? (\n <InformationPanel>\n <TextTip color=\"blue\">\n {environmentsCount} environment(s) will be updated\n to version {item.version} on {item.scheduledTime}{' '}\n (local time)\n </TextTip>\n </InformationPanel>\n ) : (\n <ScheduleTypeSelector />\n )}\n </div>\n\n <div className=\"form-group\">\n <div className=\"col-sm-12\">\n <LoadingButton\n disabled={!isValid}\n isLoading={updateMutation.isLoading}\n loadingText=\"Updating...\"\n >\n Update Schedule\n </LoadingButton>\n </div>\n </div>\n </FormikForm>\n )}\n </Formik>\n </Widget.Body>\n </Widget>\n </div>\n </div>\n </>\n );\n}\n\nfunction updateValidation(\n itemId: EdgeUpdateSchedule['id'],\n schedules: EdgeUpdateSchedule[],\n edgeGroups: Array<EdgeGroup> | undefined,\n isScheduleActive: boolean\n): SchemaOf<{ name: string } | FormValues> {\n return !isScheduleActive\n ? validation(schedules, edgeGroups, itemId)\n : object({ name: nameValidation(schedules, itemId) });\n}\n","import angular from 'angular';\nimport { StateRegistry } from '@uirouter/angularjs';\n\nimport { r2a } from '@/react-tools/react2angular';\nimport {\n ListView,\n CreateView,\n ItemView,\n} from '@/react/portainer/environments/update-schedules';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\n\nexport const updateSchedulesModule = angular\n .module('portainer.edge.updateSchedules', [])\n .component(\n 'updateSchedulesListView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ListView))), [])\n )\n .component(\n 'updateSchedulesCreateView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(CreateView))), [])\n )\n .component(\n 'updateSchedulesItemView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(ItemView))), [])\n )\n .config(config).name;\n\nfunction config($stateRegistryProvider: StateRegistry) {\n $stateRegistryProvider.register({\n name: 'portainer.endpoints.updateSchedules',\n url: '/update-schedules',\n views: {\n 'content@': {\n component: 'updateSchedulesListView',\n },\n },\n data: {\n docs: '/admin/environments/update',\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.endpoints.updateSchedules.create',\n url: '/update-schedules/new',\n views: {\n 'content@': {\n component: 'updateSchedulesCreateView',\n },\n },\n });\n\n $stateRegistryProvider.register({\n name: 'portainer.endpoints.updateSchedules.item',\n url: '/update-schedules/:id',\n views: {\n 'content@': {\n component: 'updateSchedulesItemView',\n },\n },\n });\n}\n","import angular from 'angular';\n\nimport { HomeView } from '@/react/portainer/HomeView';\nimport { withCurrentUser } from '@/react-tools/withCurrentUser';\nimport { r2a } from '@/react-tools/react2angular';\nimport { withReactQuery } from '@/react-tools/withReactQuery';\nimport { withUIRouter } from '@/react-tools/withUIRouter';\nimport { CreateUserAccessToken } from '@/react/portainer/account/CreateAccessTokenView';\nimport { EdgeComputeSettingsView } from '@/react/portainer/settings/EdgeComputeView/EdgeComputeSettingsView';\nimport { EdgeAutoCreateScriptView } from '@/react/portainer/environments/EdgeAutoCreateScriptView';\nimport { ListView as EnvironmentsListView } from '@/react/portainer/environments/ListView';\nimport { BackupSettingsPanel } from '@/react/portainer/settings/SettingsView/BackupSettingsView/BackupSettingsPanel';\nimport { SettingsView } from '@/react/portainer/settings/SettingsView/SettingsView';\nimport { CreateHelmRepositoriesView } from '@/react/portainer/account/helm-repositories/CreateHelmRepositoryView';\n\nimport { wizardModule } from './wizard';\nimport { teamsModule } from './teams';\nimport { updateSchedulesModule } from './update-schedules';\n\nexport const viewsModule = angular\n .module('portainer.app.react.views', [\n wizardModule,\n teamsModule,\n updateSchedulesModule,\n ])\n .component(\n 'homeView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(HomeView))), [])\n )\n .component(\n 'edgeAutoCreateScriptView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EdgeAutoCreateScriptView))),\n []\n )\n )\n .component(\n 'createUserAccessToken',\n r2a(\n withReactQuery(withCurrentUser(withUIRouter(CreateUserAccessToken))),\n []\n )\n )\n .component(\n 'settingsEdgeCompute',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(EdgeComputeSettingsView))),\n ['onSubmit', 'settings']\n )\n )\n .component(\n 'environmentsListView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(EnvironmentsListView))), [])\n )\n .component(\n 'backupSettingsPanel',\n r2a(withUIRouter(withReactQuery(withCurrentUser(BackupSettingsPanel))), [])\n )\n .component(\n 'settingsView',\n r2a(withUIRouter(withReactQuery(withCurrentUser(SettingsView))), [])\n )\n .component(\n 'createHelmRepositoryView',\n r2a(\n withUIRouter(withReactQuery(withCurrentUser(CreateHelmRepositoriesView))),\n []\n )\n ).name;\n","import { Settings } from '@/react/portainer/settings/types';\n\nimport { isBE } from '../../feature-flags/feature-flags.service';\n\nimport { EdgeComputeSettings } from './EdgeComputeSettings';\nimport { DeploymentSyncOptions } from './DeploymentSyncOptions/DeploymentSyncOptions';\nimport { AutomaticEdgeEnvCreation } from './AutomaticEdgeEnvCreation';\n\ninterface Props {\n settings: Settings;\n onSubmit(values: Settings): void;\n}\n\nexport function EdgeComputeSettingsView({ settings, onSubmit }: Props) {\n return (\n <div className=\"row\">\n <EdgeComputeSettings settings={settings} onSubmit={onSubmit} />\n\n <DeploymentSyncOptions />\n\n {isBE && <AutomaticEdgeEnvCreation />}\n </div>\n );\n}\n","import { PageHeader } from '@@/PageHeader';\nimport { Widget, WidgetBody } from '@@/Widget';\n\nimport { CreateHelmRepositoryForm } from './CreateHelmRespositoriesForm';\n\nexport function CreateHelmRepositoriesView() {\n return (\n <>\n <PageHeader\n title=\"Create Helm repository\"\n breadcrumbs={[\n { label: 'My account', link: 'portainer.account' },\n { label: 'Create Helm repository' },\n ]}\n reload\n />\n\n <div className=\"row\">\n <div className=\"col-sm-12\">\n <Widget>\n <WidgetBody>\n <CreateHelmRepositoryForm />\n </WidgetBody>\n </Widget>\n </div>\n </div>\n </>\n );\n}\n","import angular from 'angular';\n\nimport { componentsModule } from './components';\nimport { viewsModule } from './views';\n\nexport const reactModule = angular.module('portainer.app.react', [\n viewsModule,\n componentsModule,\n]).name;\n","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n useReducer,\n} from 'react';\nimport angular, { IScope } from 'angular';\nimport _ from 'lodash';\n\nimport * as storage from '@/react/hooks/useLocalStorage';\n\n// using bootstrap breakpoint - https://getbootstrap.com/docs/5.0/layout/breakpoints/#min-width\nconst mobileWidth = 992;\nconst storageKey = 'toolbar_toggle';\n\ninterface State {\n isOpen: boolean;\n toggle(): void;\n}\n\nexport const Context = createContext<State | null>(null);\nContext.displayName = 'SidebarContext';\n\nexport function useSidebarState() {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error('useSidebarContext must be used within a SidebarProvider');\n }\n\n return context;\n}\n\nexport function SidebarProvider({ children }: { children: React.ReactNode }) {\n const state = useSidebarStateLocal();\n\n return <Context.Provider value={state}> {children} </Context.Provider>;\n}\n\nexport function TestSidebarProvider({ children }: PropsWithChildren<unknown>) {\n const [isOpen, toggle] = useReducer((state) => !state, true);\n\n const state = useMemo(\n () => ({ isOpen, toggle: () => toggle() }),\n [isOpen, toggle]\n );\n\n return <Context.Provider value={state}> {children} </Context.Provider>;\n}\n\n/* @ngInject */\nexport function AngularSidebarService($rootScope: IScope) {\n const state = {\n isOpen: false,\n };\n\n function isSidebarOpen() {\n return state.isOpen;\n }\n\n function setIsOpen(isOpen: boolean) {\n $rootScope.$evalAsync(() => {\n state.isOpen = isOpen;\n });\n }\n\n return { isSidebarOpen, setIsOpen };\n}\n\nfunction useSidebarStateLocal() {\n const [storageIsOpen, setIsOpenInStorage] = storage.useLocalStorage(\n storageKey,\n true\n );\n const [isOpen, setIsOpen, undoIsOpenChange] = useStateWithUndo(\n initialState()\n );\n\n const onResize = useMemo(\n () =>\n _.debounce(() => {\n if (isMobile()) {\n if (isOpen) {\n setIsOpen(false);\n }\n } else {\n undoIsOpenChange();\n }\n }, 50),\n [setIsOpen, undoIsOpenChange, isOpen]\n );\n\n useUpdateAngularService(isOpen);\n\n useEffect(() => {\n if (window.ddExtension) {\n return undefined;\n }\n\n window.addEventListener('resize', onResize);\n return () => window.removeEventListener('resize', onResize);\n }, [onResize]);\n\n return {\n isOpen,\n toggle,\n };\n\n function toggle(value = !isOpen) {\n setIsOpenInStorage(value);\n setIsOpen(value);\n }\n\n function initialState() {\n if (isMobile() || window.ddExtension) {\n return false;\n }\n\n return storageIsOpen;\n }\n}\n\nfunction useStateWithUndo<T>(\n initialState: T\n): [T, (value: T) => void, () => void] {\n const [state, setState] = useState(initialState);\n const prevState = useRef<T>();\n\n const undo = useCallback(() => {\n if (!prevState.current) {\n return;\n }\n\n setState(prevState.current);\n prevState.current = undefined;\n }, [prevState]);\n\n const handleSetState = useCallback(\n (newState: T) => {\n prevState.current = state;\n setState(newState);\n },\n [state]\n );\n\n return [state, handleSetState, undo];\n}\n\nfunction useUpdateAngularService(isOpen: boolean) {\n useEffect(() => {\n // to sync \"outside state\" - for angularjs\n const $injector = angular.element(document).injector();\n $injector.invoke(\n /* @ngInject */ (\n SidebarService: ReturnType<typeof AngularSidebarService>\n ) => {\n SidebarService.setIsOpen(isOpen);\n }\n );\n }, [isOpen]);\n}\n\nfunction isMobile() {\n const width = window.innerWidth;\n\n return width < mobileWidth;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-Sidebar-module__root\",\"nav\":\"app-react-sidebar-Sidebar-module__nav\",\"navListContainer\":\"app-react-sidebar-Sidebar-module__nav-list-container\"};","import { PropsWithChildren, AriaAttributes } from 'react';\nimport clsx from 'clsx';\n\ninterface Props {\n className?: string;\n label?: string;\n}\n\nexport function Wrapper({\n className,\n children,\n label,\n ...ariaProps\n}: PropsWithChildren<Props> & AriaAttributes) {\n return (\n <li\n className={clsx(\n className,\n 'flex min-h-8 text-gray-3 th-highcontrast:text-white [&>a]:text-inherit [&>a]:hover:text-inherit [&>a]:hover:no-underline'\n )}\n aria-label={label}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...ariaProps}\n >\n {children}\n </li>\n );\n}\n","import Tippy, { TippyProps } from '@tippyjs/react';\n\ntype Props = {\n content: React.ReactNode;\n children?: TippyProps['children'];\n};\n\nexport function SidebarTooltip({ children, content }: Props) {\n return (\n <Tippy\n className=\"sidebar !rounded-md bg-blue-9 p-3 !opacity-100 be:bg-gray-9 th-dark:bg-gray-true-9 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white\"\n content={content}\n delay={[0, 0]}\n duration={[0, 0]}\n zIndex={1000}\n placement=\"right\"\n arrow\n allowHTML\n interactive\n >\n {children}\n </Tippy>\n );\n}\n","import {\n TransitionOptions,\n useCurrentStateAndParams,\n useSrefActive,\n} from '@uirouter/react';\n\nexport type PathOptions = {\n ignorePaths?: string[];\n includePaths?: string[];\n};\n\n/**\n * Extends useSrefActive by ignoring or including paths and updating the classNames field returned when a child route is active.\n * @param to The route to match\n * @param activeClassName The active class names to return\n * @param params The route params\n * @param options The transition options\n * @param pathOptions The paths to ignore/include\n */\nexport function useSidebarSrefActive(\n to: string,\n // default values are the classes used in the sidebar for an active item\n activeClassName: string = 'bg-blue-5/25 be:bg-gray-5/25 th-dark:bg-gray-true-5/25',\n params: Partial<Record<string, string>> = {},\n options: TransitionOptions = {},\n pathOptions: PathOptions = {\n ignorePaths: [],\n includePaths: [],\n }\n) {\n const { state: { name: stateName = '' } = {} } = useCurrentStateAndParams();\n const anchorProps = useSrefActive(to, params || {}, activeClassName, options);\n\n // overwrite the className to '' if the the current route is in ignorePaths\n const isIgnorePathInRoute = pathOptions.ignorePaths?.some((path) =>\n stateName.includes(path)\n );\n if (isIgnorePathInRoute) {\n return { ...anchorProps, className: '' };\n }\n\n // overwrite the className to activeClassName if the the current route is in includePaths\n const isIncludePathInRoute = pathOptions.includePaths?.some((path) =>\n stateName.includes(path)\n );\n if (isIncludePathInRoute) {\n return { ...anchorProps, className: activeClassName };\n }\n\n return anchorProps;\n}\n","import { Icon as IconTest } from 'lucide-react';\nimport clsx from 'clsx';\nimport { MouseEventHandler, PropsWithChildren } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Icon } from '@@/Icon';\n\nimport { useSidebarState } from '../useSidebarState';\n\nimport { Wrapper } from './Wrapper';\nimport { SidebarTooltip } from './SidebarTooltip';\nimport { useSidebarSrefActive } from './useSidebarSrefActive';\n\ninterface Props extends AutomationTestingProps {\n icon?: IconTest;\n to: string;\n params?: object;\n label: string;\n isSubMenu?: boolean;\n ignorePaths?: string[];\n includePaths?: string[];\n}\n\nexport function SidebarItem({\n icon,\n to,\n params,\n label,\n isSubMenu = false,\n ignorePaths = [],\n includePaths = [],\n 'data-cy': dataCy,\n}: Props) {\n const { isOpen } = useSidebarState();\n const anchorProps = useSidebarSrefActive(to, undefined, params, undefined, {\n ignorePaths,\n includePaths,\n });\n\n const sidebarAnchor = (\n <Wrapper label={label}>\n <ItemAnchor\n href={anchorProps.href}\n onClick={anchorProps.onClick}\n className={anchorProps.className}\n dataCy={dataCy}\n isOpen={isOpen}\n isSubMenu={isSubMenu}\n >\n {!!icon && <Icon icon={icon} className={clsx('flex [&>svg]:w-4')} />}\n {(isOpen || isSubMenu) && <span>{label}</span>}\n </ItemAnchor>\n </Wrapper>\n );\n\n if (isOpen || isSubMenu) return sidebarAnchor;\n\n return (\n <SidebarTooltip\n content={\n <div className=\"bg-blue-8 be:bg-gray-8 th-dark:bg-gray-true-8 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white rounded\">\n <Wrapper label={label}>\n <ItemAnchor\n href={anchorProps.href}\n onClick={anchorProps.onClick}\n className={anchorProps.className}\n dataCy={dataCy}\n isOpen={isOpen}\n isSubMenu={isSubMenu}\n >\n <span className=\"px-3\">{label}</span>\n </ItemAnchor>\n </Wrapper>\n </div>\n }\n >\n <span className=\"w-full\">{sidebarAnchor}</span>\n </SidebarTooltip>\n );\n}\n\ntype ItemAnchorProps = {\n href?: string;\n onClick: MouseEventHandler<unknown>;\n className: string;\n isOpen: boolean;\n isSubMenu: boolean;\n dataCy?: string;\n};\n\nfunction ItemAnchor({\n href,\n onClick,\n className,\n isOpen,\n isSubMenu,\n dataCy,\n children,\n}: PropsWithChildren<ItemAnchorProps>) {\n return (\n <a\n href={href}\n onClick={onClick}\n className={clsx(\n className,\n 'text-inherit no-underline hover:text-inherit hover:no-underline focus:text-inherit focus:no-underline',\n 'flex h-8 w-full flex-1 items-center space-x-4 rounded-md text-sm',\n 'transition-colors duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20',\n {\n // submenu items are always expanded (in a tooltip or in the sidebar)\n 'w-full justify-start px-3': isOpen || isSubMenu,\n 'w-8 justify-center': !isOpen && !isSubMenu,\n }\n )}\n data-cy={dataCy}\n >\n {children}\n </a>\n );\n}\n","import { SidebarItem as MainComponent } from './SidebarItem';\nimport { Wrapper } from './Wrapper';\n\ninterface SubComponents {\n Wrapper: typeof Wrapper;\n}\n\nexport const SidebarItem: typeof MainComponent & SubComponents =\n MainComponent as typeof MainComponent & SubComponents;\n\nSidebarItem.Wrapper = Wrapper;\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport { useSidebarState } from './useSidebarState';\n\ninterface Props {\n title: ReactNode;\n showTitleWhenOpen?: boolean;\n 'aria-label'?: string;\n}\n\nexport function SidebarSection({\n title,\n children,\n showTitleWhenOpen,\n 'aria-label': ariaLabel,\n}: PropsWithChildren<Props>) {\n return (\n <div>\n <SidebarSectionTitle showWhenOpen={showTitleWhenOpen}>\n {title}\n </SidebarSectionTitle>\n\n <nav\n aria-label={typeof title === 'string' ? title : ariaLabel}\n className=\"mt-4\"\n >\n <ul>{children}</ul>\n </nav>\n </div>\n );\n}\n\ninterface TitleProps {\n showWhenOpen?: boolean;\n}\n\nexport function SidebarSectionTitle({\n showWhenOpen,\n children,\n}: PropsWithChildren<TitleProps>) {\n const { isOpen } = useSidebarState();\n\n if (!isOpen && !showWhenOpen) {\n return null;\n }\n\n return (\n <li className=\"ml-3 text-sm text-gray-3 transition-all duration-500 ease-in-out be:text-gray-6\">\n {children}\n </li>\n );\n}\n","import clsx from 'clsx';\nimport { ChevronDown } from 'lucide-react';\nimport { PropsWithChildren, useState } from 'react';\n\nimport { AutomationTestingProps } from '@/types';\n\nimport { Icon } from '@@/Icon';\nimport { Link } from '@@/Link';\n\nimport { useSidebarState } from '../useSidebarState';\n\nimport { Wrapper } from './Wrapper';\nimport { PathOptions, useSidebarSrefActive } from './useSidebarSrefActive';\nimport { SidebarTooltip } from './SidebarTooltip';\n\ntype Props = {\n label: string;\n icon: React.ReactNode;\n to: string;\n pathOptions?: PathOptions;\n params?: object;\n listId: string;\n};\n\nexport function SidebarParent({\n children,\n icon,\n label: title,\n to,\n params,\n pathOptions,\n listId,\n 'data-cy': dataCy,\n}: PropsWithChildren<Props & AutomationTestingProps>) {\n const anchorProps = useSidebarSrefActive(\n to,\n undefined,\n params,\n {},\n pathOptions\n );\n\n const hasActiveChild = !!anchorProps.className;\n\n const { isOpen: isSidebarOpen } = useSidebarState();\n\n const [isExpanded, setIsExpanded] = useState(hasActiveChild);\n\n const parentItem = (\n <Wrapper className=\"flex flex-col\">\n <div\n className={clsx(\n 'w-full h-8 items-center ease-in-out transition-colors flex duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20 rounded-md',\n isSidebarOpen && 'pl-3',\n // only highlight the parent when the sidebar is closed/contracted and a child item is selected\n (!isSidebarOpen || !isExpanded) && anchorProps.className\n )}\n data-cy={dataCy}\n >\n <button\n type=\"button\"\n className=\"flex-1 h-full cursor-pointer flex items-center border-none bg-transparent\"\n onClick={() => setIsExpanded(true)}\n >\n <Link\n to={to}\n params={params}\n className={clsx(\n 'w-full h-full items-center flex list-none border-none text-inherit hover:text-inherit hover:no-underline focus:text-inherit focus:no-underline',\n {\n 'justify-start': isSidebarOpen,\n 'justify-center': !isSidebarOpen,\n }\n )}\n >\n <Icon icon={icon} />\n {isSidebarOpen && <span className=\"pl-4\">{title}</span>}\n </Link>\n </button>\n {isSidebarOpen && (\n <button\n type=\"button\"\n className=\"flex-none border-none bg-transparent flex items-center group p-0 px-3 h-8\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsExpanded((isExpanded) => !isExpanded);\n }}\n title={isExpanded ? 'Collapse' : 'Expand'}\n aria-expanded={isExpanded}\n aria-controls={listId}\n >\n <div className=\"flex items-center group-hover:bg-blue-5 be:group-hover:bg-gray-5 group-hover:th-dark:bg-gray-true-7 group-hover:bg-opacity-10 be:group-hover:bg-opacity-10 rounded-full p-[3px] transition ease-in-out\">\n <Icon\n icon={ChevronDown}\n size=\"md\"\n className={clsx('transition ease-in-out', {\n 'rotate-180': isExpanded,\n 'rotate-0': !isExpanded,\n })}\n />\n </div>\n </button>\n )}\n </div>\n </Wrapper>\n );\n\n const childList = (\n <ul\n id={listId}\n // pl-11 must be important because it needs to avoid the padding from '.root ul' in sidebar.module.css\n className={clsx('text-white !pl-11', {\n hidden: !isExpanded,\n block: isExpanded,\n })}\n >\n {children}\n </ul>\n );\n\n if (isSidebarOpen)\n return (\n <>\n {parentItem}\n {childList}\n </>\n );\n\n return (\n <SidebarTooltip\n content={\n <ul>\n <li className=\"flex items-center space-x-2 text-sm mb-1\">\n <span>{title}</span>\n </li>\n <div className=\"bg-blue-8 be:bg-gray-8 th-dark:bg-gray-true-8 th-highcontrast:bg-black th-highcontrast:border th-highcontrast:border-solid th-highcontrast:border-white rounded\">\n {children}\n </div>\n </ul>\n }\n >\n <span>{parentItem}</span>\n </SidebarTooltip>\n );\n}\n","import { Box, Clock, LayoutGrid, Layers, Puzzle, Edit } from 'lucide-react';\n\nimport { isBE } from '../portainer/feature-flags/feature-flags.service';\nimport { useSettings } from '../portainer/settings/queries';\n\nimport { SidebarItem } from './SidebarItem';\nimport { SidebarSection } from './SidebarSection';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\nexport function EdgeComputeSidebar() {\n // this sidebar is rendered only for admins, so we can safely assume that settingsQuery will succeed\n const settingsQuery = useSettings();\n\n if (!settingsQuery.data || !settingsQuery.data.EnableEdgeComputeFeatures) {\n return null;\n }\n\n const settings = settingsQuery.data;\n\n return (\n <SidebarSection title=\"Edge compute\">\n <SidebarItem\n to=\"edge.groups\"\n label=\"Edge Groups\"\n icon={LayoutGrid}\n data-cy=\"portainerSidebar-edgeGroups\"\n />\n <SidebarItem\n to=\"edge.stacks\"\n label=\"Edge Stacks\"\n icon={Layers}\n data-cy=\"portainerSidebar-edgeStacks\"\n />\n <SidebarItem\n to=\"edge.jobs\"\n label=\"Edge Jobs\"\n icon={Clock}\n data-cy=\"portainerSidebar-edgeJobs\"\n />\n {isBE && (\n <SidebarItem\n to=\"edge.configurations\"\n label=\"Edge Configurations\"\n icon={Puzzle}\n data-cy=\"portainerSidebar-edgeConfigurations\"\n />\n )}\n {isBE && !settings.TrustOnFirstConnect && (\n <SidebarItem\n to=\"edge.devices.waiting-room\"\n label=\"Waiting Room\"\n icon={Box}\n data-cy=\"portainerSidebar-edgeDevicesWaitingRoom\"\n />\n )}\n <SidebarParent\n icon={Edit}\n label=\"Edge Templates\"\n to=\"edge.templates\"\n data-cy=\"edgeSidebar-templates\"\n listId=\"edgeSidebar-templates\"\n >\n <SidebarItem\n label=\"Application\"\n to=\"edge.templates\"\n ignorePaths={['edge.templates.custom']}\n isSubMenu\n data-cy=\"edgeSidebar-appTemplates\"\n />\n <SidebarItem\n label=\"Custom\"\n to=\"edge.templates.custom\"\n isSubMenu\n data-cy=\"edgeSidebar-customTemplates\"\n />\n </SidebarParent>\n </SidebarSection>\n );\n}\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgDocker = function SvgDocker(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 105 95\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M102.014 39.337c-.27-.229-2.695-2.11-7.902-2.11-1.347 0-2.74.138-4.085.369-.989-7.02-6.69-10.416-6.914-10.598l-1.393-.826-.898 1.33a19.85 19.85 0 0 0-2.469 5.874c-.942 3.993-.36 7.754 1.617 10.966-2.381 1.376-6.242 1.697-7.05 1.744H9.16c-1.66 0-3.009 1.376-3.009 3.074a47.34 47.34 0 0 0 2.783 16.747c2.2 5.874 5.477 10.232 9.699 12.894 4.76 2.983 12.527 4.68 21.282 4.68 3.951 0 7.902-.369 11.81-1.103a48.094 48.094 0 0 0 15.446-5.734 42.497 42.497 0 0 0 10.507-8.809c5.073-5.826 8.082-12.341 10.283-18.123h.898c5.524 0 8.935-2.248 10.821-4.174 1.257-1.194 2.201-2.662 2.873-4.314l.404-1.193-.942-.69-.002-.004Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0091E2\",\n d: \"M15.086 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c.044.458.36.78.764.78ZM26.851 44.2h8.53c.405 0 .763-.32.763-.78v-7.8a.764.764 0 0 0-.763-.778h-8.53a.765.765 0 0 0-.764.779v7.799c.044.458.36.78.764.78ZM38.842 44.2h8.53c.404 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.765-.778h-8.53a.765.765 0 0 0-.764.779v7.799c0 .458.314.78.764.78ZM50.647 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c0 .458.36.78.764.78ZM26.851 33.05h8.53c.405 0 .763-.367.763-.78v-7.799c0-.413-.314-.781-.763-.781h-8.53a.766.766 0 0 0-.764.781v7.799c.044.413.36.78.764.78ZM38.842 33.05h8.53c.404 0 .765-.367.765-.78v-7.799a.766.766 0 0 0-.765-.781h-8.53a.766.766 0 0 0-.764.781v7.799c0 .413.314.78.764.78ZM50.647 33.05h8.53c.405 0 .765-.367.765-.78v-7.799c0-.413-.36-.781-.764-.781h-8.53a.766.766 0 0 0-.765.781v7.799c0 .413.36.78.764.78ZM50.647 21.856h8.53c.405 0 .765-.32.765-.78v-7.8c0-.413-.36-.78-.764-.78h-8.53a.766.766 0 0 0-.765.78v7.8c0 .412.36.78.764.78ZM62.551 44.2h8.53c.405 0 .765-.32.765-.78v-7.8a.764.764 0 0 0-.764-.778h-8.53a.765.765 0 0 0-.765.779v7.799c.044.458.36.78.764.78Z\"\n })));\n};\nexport default SvgDocker;","var _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAzure = function SvgAzure(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 105 95\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__a)\",\n d: \"M40.041 11.192h21.975l-22.81 69.066a3.565 3.565 0 0 1-1.278 1.763 3.455 3.455 0 0 1-2.043.672h-17.1a3.444 3.444 0 0 1-1.599-.394 3.538 3.538 0 0 1-1.245-1.095 3.603 3.603 0 0 1-.618-1.556 3.658 3.658 0 0 1 .144-1.673l21.255-64.346c.235-.71.68-1.326 1.278-1.763a3.455 3.455 0 0 1 2.043-.671l-.002-.003Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0078D4\",\n d: \"M71.975 57.518H37.13c-.325 0-.64.098-.909.284a1.637 1.637 0 0 0-.592.758c-.12.308-.145.646-.074.967.072.323.237.616.474.84L58.42 81.725c.65.622 1.51.967 2.401.967h19.73l-8.576-25.178v.005Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__b)\",\n d: \"M40.042 11.193a3.44 3.44 0 0 0-2.062.682 3.54 3.54 0 0 0-1.265 1.8l-21.22 64.244a3.63 3.63 0 0 0 .434 3.265c.325.469.754.852 1.252 1.115.499.263 1.052.4 1.613.398h17.542a3.705 3.705 0 0 0 1.77-.854 3.816 3.816 0 0 0 1.107-1.647l4.232-12.742L58.56 81.861a3.529 3.529 0 0 0 2.25.838H80.47l-8.623-25.177-25.133.007 15.384-46.337H40.042Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#azure_svg__c)\",\n d: \"M68.109 13.625a3.579 3.579 0 0 0-1.275-1.76 3.448 3.448 0 0 0-2.04-.673h-24.49c.733 0 1.445.236 2.04.672a3.577 3.577 0 0 1 1.275 1.761l21.255 64.352c.178.537.228 1.11.144 1.673a3.602 3.602 0 0 1-.617 1.556c-.325.46-.75.836-1.246 1.095a3.437 3.437 0 0 1-1.598.394h24.49c.555 0 1.104-.135 1.598-.394a3.512 3.512 0 0 0 1.243-1.095c.325-.46.536-.995.618-1.556a3.658 3.658 0 0 0-.144-1.673L68.109 13.625Z\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__a\",\n x1: 48.052,\n x2: 24.328,\n y1: 16.492,\n y2: 85.073,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#114A8B\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0669BC\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__b\",\n x1: 55.179,\n x2: 49.877,\n y1: 48.598,\n y2: 50.351,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopOpacity: 0.3\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.07,\n stopOpacity: 0.2\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.32,\n stopOpacity: 0.1\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.62,\n stopOpacity: 0.05\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"azure_svg__c\",\n x1: 52.44,\n x2: 78.457,\n y1: 14.419,\n y2: 82.248,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#3CCBF4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#2892DF\"\n })))));\n};\nexport default SvgAzure;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKubernetes = function SvgKubernetes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 105 95\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M52.958 88.267c-5.243 0-10.485-.044-15.724.02-2.383.026-4.221-.819-5.716-2.694-6.63-8.317-13.299-16.6-19.966-24.89-1.337-1.661-1.862-3.43-1.352-5.608 2.448-10.471 4.806-20.967 7.202-31.456.479-2.1 1.694-3.543 3.661-4.476 9.69-4.605 19.357-9.246 29.019-13.907 2.022-.977 3.947-.917 5.954.046 9.602 4.63 19.211 9.251 28.844 13.822 2.037.968 3.276 2.447 3.77 4.616 2.39 10.491 4.765 20.985 7.198 31.463.466 2.01.044 3.707-1.213 5.268-6.734 8.399-13.473 16.796-20.186 25.215-1.449 1.82-3.272 2.614-5.565 2.594-5.305-.04-10.614-.01-15.92-.01l-.008-.005.002.002ZM51.61 21.251c.094 2.704-.234 3.12-2.717 3.607-4.407.867-8.387 2.678-11.614 5.846-1.217 1.198-2.242.944-3.326.17-.835-.592-1.509-1.413-2.263-2.122-.515-.483-.998-1.038-1.589-1.41-.865-.537-1.772-.46-2.406.411-.575.784-.43 1.631.218 2.303.444.457 1.01.797 1.548 1.152.804.538 1.668.995 2.441 1.577 1.574 1.183 1.718 1.986.785 3.677-2.153 3.894-3.117 8.067-2.962 12.521.086 2.428-.625 3.197-3.062 3.473-1.093.125-2.192.191-3.276.376-1.224.206-2.095.886-1.83 2.256.254 1.32 1.325 1.522 2.422 1.254 1.185-.297 2.317-.793 3.486-1.153 2.394-.733 3.202-.346 4.206 1.943 1.757 4.024 4.435 7.284 8.008 9.813 1.535 1.089 1.784 2.022.895 3.732-.416.799-.956 1.54-1.43 2.313-.304.497-.619.988-.885 1.504-.534 1.028-.306 1.928.645 2.538 1.057.678 1.969.151 2.441-.773.638-1.26 1.008-2.654 1.52-3.978.819-2.127 1.671-2.553 3.776-1.962 4.271 1.19 8.547 1.205 12.822.02 2.083-.578 2.853-.23 3.677 1.826.48 1.199.78 2.474 1.318 3.649.48 1.064 1.29 1.927 2.597 1.233 1.213-.643 1.259-1.732.633-2.834-.605-1.069-1.344-2.066-1.951-3.134-1.19-2.104-1.019-2.821.898-4.229 3.587-2.627 6.24-5.986 7.939-10.109.785-1.907 1.532-2.287 3.547-1.69 1.235.367 2.422.909 3.666 1.223 1.115.28 2.262.241 2.693-1.155.35-1.135-.415-2.068-1.952-2.322-1.209-.203-2.448-.231-3.661-.418-1.935-.3-2.643-1.152-2.562-3.07.194-4.587-.78-8.89-3.036-12.889-.864-1.53-.726-2.443.69-3.556.814-.637 1.738-1.118 2.6-1.686.535-.356 1.108-.692 1.55-1.148.653-.668.788-1.5.22-2.303-.584-.823-1.453-.898-2.254-.5-.614.305-1.114.862-1.632 1.345-.709.663-1.34 1.414-2.08 2.037-1.468 1.24-2.358 1.214-3.754-.026-3.421-3.045-7.388-4.95-11.878-5.774-1.803-.331-2.352-.922-2.278-2.783.05-1.293.285-2.575.4-3.864.14-1.506-.703-2.728-1.842-2.724-1.139.004-1.978 1.223-1.828 2.733.105 1.03.28 2.053.429 3.08h-.009.007Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FDFDFE\",\n d: \"M51.608 21.25c-.144-1.026-.323-2.047-.428-3.079-.15-1.51.689-2.729 1.827-2.733 1.14-.005 1.983 1.218 1.843 2.724-.12 1.293-.354 2.573-.4 3.864-.07 1.861.474 2.452 2.278 2.783 4.49.824 8.456 2.725 11.877 5.774 1.395 1.24 2.284 1.269 3.755.026.74-.623 1.373-1.374 2.08-2.037.515-.483 1.018-1.043 1.632-1.346.8-.397 1.672-.325 2.254.5.568.804.43 1.632-.221 2.304-.444.456-1.014.788-1.55 1.148-.859.573-1.788 1.053-2.599 1.686-1.418 1.113-1.554 2.026-.69 3.556 2.253 4 3.23 8.302 3.036 12.888-.081 1.917.63 2.769 2.561 3.071 1.213.187 2.448.216 3.662.418 1.538.256 2.303 1.187 1.951 2.322-.43 1.398-1.578 1.436-2.692 1.155-1.244-.312-2.433-.854-3.666-1.223-2.013-.597-2.758-.22-3.548 1.69-1.698 4.123-4.351 7.482-7.938 10.11-1.917 1.404-2.092 2.122-.899 4.228.606 1.069 1.34 2.065 1.952 3.134.625 1.105.58 2.189-.634 2.834-1.305.694-2.114-.17-2.597-1.233-.533-1.17-.834-2.452-1.318-3.649-.828-2.057-1.593-2.404-3.676-1.826-4.276 1.187-8.551 1.17-12.822-.02-2.11-.586-2.962-.16-3.777 1.962-.51 1.329-.883 2.72-1.52 3.978-.465.924-1.383 1.451-2.44.773-.95-.608-1.175-1.51-.646-2.538.27-.516.58-1.007.886-1.503.474-.773 1.01-1.51 1.43-2.314.889-1.71.64-2.646-.895-3.732-3.572-2.53-6.254-5.789-8.009-9.813-1.003-2.292-1.812-2.674-4.205-1.943-1.17.36-2.302.854-3.486 1.153-1.096.272-2.165.07-2.422-1.254-.265-1.37.605-2.046 1.83-2.256 1.079-.185 2.183-.25 3.276-.376 2.441-.272 3.147-1.043 3.062-3.473-.155-4.454.809-8.625 2.962-12.521.933-1.69.789-2.494-.785-3.677-.774-.582-1.637-1.039-2.442-1.576-.535-.356-1.103-.694-1.547-1.153-.65-.672-.794-1.52-.219-2.303.639-.87 1.544-.948 2.407-.41.59.37 1.073.922 1.589 1.41.754.71 1.43 1.53 2.262 2.122 1.084.773 2.107 1.027 3.327-.171 3.222-3.17 7.202-4.981 11.613-5.846 2.483-.488 2.81-.902 2.717-3.607h.009-.007ZM50.59 31.84h.105c0-.515-.026-1.038.009-1.553.045-.712-.219-.879-.91-.742-3.366.658-6.363 2.065-8.996 4.278-.726.608-.584.953.12 1.434 2.078 1.429 4.107 2.928 6.183 4.355 1.878 1.288 3.032.718 3.178-1.554.132-2.068.21-4.145.31-6.217ZM34.445 47.45c-.017 1.6.678 2.195 2.088 1.787 2.162-.628 4.337-1.223 6.485-1.89 1.968-.613 2.27-1.835.77-3.256-1.828-1.732-3.777-3.337-5.59-5.09-.963-.934-1.313-.468-1.757.432-1.279 2.595-1.884 5.347-1.998 8.012l.003.005Zm18.508 19.015c1.69.046 3.33-.254 4.964-.663.664-.167 1.093-.272.614-1.109-1.38-2.412-2.638-4.895-4.061-7.279-.796-1.335-2.134-1.32-2.918.02-1.408 2.397-2.689 4.862-4.046 7.288-.354.632-.21.863.49 1.038 1.632.41 3.267.734 4.959.703v.004l-.002-.002Zm18.636-18.958c-.15-2.603-.708-5.308-1.952-7.85-.505-1.03-1.073-1.381-2.048-.466-1.744 1.636-3.572 3.186-5.314 4.826-1.563 1.47-1.235 2.698.864 3.332 2.157.656 4.33 1.26 6.494 1.886 1.987.573 1.993.57 1.954-1.73l.002.002Zm-9.515 5.282c-2.798.125-3.143.652-2.197 2.99.9 2.221 1.854 4.42 2.724 6.653.295.758.535 1.129 1.34.523 2.747-2.077 4.855-4.652 6.18-7.846.163-.395.463-.924-.285-1.054-2.669-.456-5.349-.873-7.764-1.268l.002.002ZM55.342 31.61h.065c.11 2.127.21 4.255.33 6.386.132 2.294 1.268 2.9 3.126 1.625 2.018-1.386 3.948-2.9 6.005-4.22 1.1-.706.854-1.1.03-1.771a19.363 19.363 0 0 0-8.448-4.013c-1.113-.23-1.218.15-1.12 1.027.036.32.005.644.005.969h.009l-.002-.003Zm-8.593 22.725c-.303-.658-.264-1.525-1.403-1.484-2.863.106-5.655.73-8.476 1.12-.995.136-1.198.566-.81 1.43 1.365 3.009 3.358 5.503 6.005 7.478.68.507 1.034.516 1.36-.397.586-1.64 1.324-3.225 1.989-4.836.444-1.074.87-2.154 1.333-3.306v-.005h.002Zm6.363-8.965c-1.982-.004-3.152.784-3.198 2.158-.054 1.65 1.55 3.506 3.067 3.537 1.443.03 3.093-1.717 3.102-3.287.009-1.46-1.154-2.408-2.973-2.412l.005.004h-.003Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#326CE4\",\n d: \"M50.594 31.84c-.1 2.073-.18 4.145-.31 6.218-.15 2.276-1.306 2.845-3.179 1.554-2.079-1.43-4.105-2.93-6.184-4.355-.703-.483-.843-.824-.12-1.434 2.634-2.213 5.63-3.618 8.997-4.278.695-.137.955.035.91.742-.036.515-.01 1.038-.01 1.556h-.104v-.004.002ZM34.448 47.45c.116-2.666.72-5.419 1.998-8.014.444-.902.793-1.37 1.757-.432 1.808 1.752 3.762 3.352 5.59 5.09 1.499 1.425 1.197 2.646-.77 3.256-2.149.668-4.322 1.26-6.485 1.89-1.408.409-2.103-.186-2.088-1.787l-.002-.004ZM52.96 66.46c-1.69.03-3.327-.297-4.96-.707-.7-.176-.84-.406-.49-1.038 1.358-2.424 2.639-4.896 4.046-7.289.785-1.339 2.123-1.354 2.918-.02 1.423 2.385 2.687 4.867 4.062 7.28.478.834.045.94-.615 1.108-1.632.411-3.272.712-4.964.663l.003.003ZM71.588 47.504c.04 2.298.03 2.307-1.954 1.73-2.164-.628-4.337-1.234-6.494-1.886-2.098-.637-2.424-1.857-.863-3.332 1.742-1.64 3.567-3.19 5.313-4.826.975-.913 1.543-.566 2.048.466 1.244 2.54 1.8 5.247 1.952 7.85l-.002-.002ZM62.079 52.783c2.413.391 5.09.813 7.764 1.27.743.124.445.656.284 1.053-1.33 3.196-3.432 5.773-6.18 7.846-.804.608-1.044.235-1.34-.523-.87-2.232-1.822-4.434-2.723-6.654-.949-2.337-.599-2.864 2.197-2.99l-.002-.002ZM55.348 31.606c0-.325.03-.648-.004-.968-.096-.878.009-1.254 1.119-1.028 3.16.652 5.95 1.983 8.448 4.013.824.672 1.073 1.063-.03 1.772-2.057 1.324-3.987 2.834-6.005 4.22-1.858 1.274-2.997.67-3.126-1.625-.12-2.128-.22-4.26-.33-6.386h-.074l.002.002ZM46.749 54.329c-.464 1.152-.89 2.232-1.334 3.306-.664 1.611-1.398 3.196-1.989 4.836-.325.913-.68.909-1.36.397-2.646-1.975-4.635-4.47-6.004-7.479-.393-.863-.19-1.293.809-1.429 2.822-.386 5.611-1.014 8.477-1.12 1.138-.044 1.1.828 1.403 1.484v.005h-.002ZM53.115 45.364c1.814.004 2.981.948 2.973 2.412-.011 1.57-1.66 3.317-3.102 3.286-1.515-.035-3.121-1.885-3.067-3.536.046-1.374 1.218-2.167 3.198-2.158l-.004-.005h.002Z\"\n })));\n};\nexport default SvgKubernetes;","import { getPlatformType } from '@/react/portainer/environments/utils';\nimport {\n EnvironmentType,\n PlatformType,\n} from '@/react/portainer/environments/types';\n\nimport Docker from './docker.svg?c';\nimport Azure from './azure.svg?c';\nimport Kubernetes from './kubernetes.svg?c';\n\nconst icons: {\n [key in PlatformType]: SvgrComponent;\n} = {\n [PlatformType.Docker]: Docker,\n [PlatformType.Kubernetes]: Kubernetes,\n [PlatformType.Azure]: Azure,\n};\n\nexport function getPlatformIcon(type: EnvironmentType) {\n const platform = getPlatformType(type);\n\n return icons[platform];\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-EnvironmentSidebar-module__root\",\"closeBtn\":\"app-react-sidebar-EnvironmentSidebar-module__closeBtn\"};","import { Layout } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { AutomationTestingProps } from '@/types';\n\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props extends AutomationTestingProps {\n environmentId: EnvironmentId;\n platformPath: string;\n}\n\nexport function DashboardLink({\n environmentId,\n platformPath,\n 'data-cy': dataCy,\n}: Props) {\n return (\n <SidebarItem\n to={`${platformPath}.dashboard`}\n params={{ endpointId: environmentId }}\n icon={Layout}\n label=\"Dashboard\"\n data-cy={dataCy}\n />\n );\n}\n","import { Box } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\n\nimport { DashboardLink } from '../items/DashboardLink';\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props {\n environmentId: EnvironmentId;\n}\n\nexport function AzureSidebar({ environmentId }: Props) {\n return (\n <>\n <DashboardLink\n environmentId={environmentId}\n platformPath=\"azure\"\n data-cy=\"azureSidebar-dashboard\"\n />\n <SidebarItem\n to=\"azure.containerinstances\"\n params={{ endpointId: environmentId }}\n icon={Box}\n label=\"Container instances\"\n data-cy=\"azureSidebar-containerInstances\"\n />\n </>\n );\n}\n","import { Database } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { AutomationTestingProps } from '@/types';\n\nimport { SidebarItem } from '../SidebarItem';\n\ninterface Props extends AutomationTestingProps {\n environmentId: EnvironmentId;\n platformPath: string;\n}\n\nexport function VolumesLink({\n environmentId,\n platformPath,\n 'data-cy': dataCy,\n}: Props) {\n return (\n <SidebarItem\n to={`${platformPath}.volumes`}\n params={{ endpointId: environmentId }}\n icon={Database}\n label=\"Volumes\"\n data-cy={dataCy}\n />\n );\n}\n","import {\n Box,\n Clock,\n Layers,\n List,\n Lock,\n Shuffle,\n Trello,\n Clipboard,\n Edit,\n Network,\n} from 'lucide-react';\n\nimport {\n type Environment,\n type EnvironmentId,\n} from '@/react/portainer/environments/types';\nimport { Authorized, useIsEnvironmentAdmin } from '@/react/hooks/useUser';\nimport { useInfo } from '@/react/docker/proxy/queries/useInfo';\nimport { useApiVersion } from '@/react/docker/proxy/queries/useVersion';\n\nimport { SidebarItem } from './SidebarItem';\nimport { DashboardLink } from './items/DashboardLink';\nimport { VolumesLink } from './items/VolumesLink';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\ninterface Props {\n environmentId: EnvironmentId;\n environment: Environment;\n}\n\nexport function DockerSidebar({ environmentId, environment }: Props) {\n const { authorized: isEnvironmentAdmin } = useIsEnvironmentAdmin({\n adminOnlyCE: true,\n });\n\n const areStacksVisible =\n isEnvironmentAdmin ||\n environment.SecuritySettings.allowStackManagementForRegularUsers;\n\n const envInfoQuery = useInfo(\n environmentId,\n (info) => !!info.Swarm?.NodeID && !!info.Swarm?.ControlAvailable\n );\n\n const apiVersion = useApiVersion(environmentId);\n\n const isSwarmManager = envInfoQuery.data;\n\n const setupSubMenuProps = isSwarmManager\n ? {\n label: 'Swarm',\n icon: Trello,\n to: 'docker.swarm',\n dataCy: 'portainerSidebar-swarm',\n }\n : {\n label: 'Host',\n icon: Trello,\n to: 'docker.host',\n dataCy: 'portainerSidebar-host',\n };\n\n const featSubMenuTo = isSwarmManager\n ? 'docker.swarm.featuresConfiguration'\n : 'docker.host.featuresConfiguration';\n const registrySubMenuTo = isSwarmManager\n ? 'docker.swarm.registries'\n : 'docker.host.registries';\n\n return (\n <>\n <DashboardLink\n environmentId={environmentId}\n platformPath=\"docker\"\n data-cy=\"dockerSidebar-dashboard\"\n />\n <SidebarParent\n icon={Edit}\n label=\"Templates\"\n to=\"docker.templates\"\n params={{ endpointId: environmentId }}\n data-cy=\"portainerSidebar-templates\"\n listId=\"dockerSidebar-templates\"\n >\n <SidebarItem\n label=\"Application\"\n to=\"docker.templates\"\n ignorePaths={['docker.templates.custom']}\n params={{ endpointId: environmentId }}\n isSubMenu\n data-cy=\"portainerSidebar-appTemplates\"\n />\n <SidebarItem\n label=\"Custom\"\n to=\"docker.templates.custom\"\n params={{ endpointId: environmentId }}\n isSubMenu\n data-cy=\"dockerSidebar-customTemplates\"\n />\n </SidebarParent>\n\n {areStacksVisible && (\n <SidebarItem\n to=\"docker.stacks\"\n params={{ endpointId: environmentId }}\n icon={Layers}\n label=\"Stacks\"\n data-cy=\"dockerSidebar-stacks\"\n />\n )}\n\n {isSwarmManager && (\n <SidebarItem\n to=\"docker.services\"\n params={{ endpointId: environmentId }}\n icon={Shuffle}\n label=\"Services\"\n data-cy=\"dockerSidebar-services\"\n />\n )}\n\n <SidebarItem\n to=\"docker.containers\"\n params={{ endpointId: environmentId }}\n icon={Box}\n label=\"Containers\"\n data-cy=\"dockerSidebar-containers\"\n />\n\n <SidebarItem\n to=\"docker.images\"\n params={{ endpointId: environmentId }}\n icon={List}\n label=\"Images\"\n data-cy=\"dockerSidebar-images\"\n />\n\n <SidebarItem\n to=\"docker.networks\"\n params={{ endpointId: environmentId }}\n icon={Network}\n label=\"Networks\"\n data-cy=\"dockerSidebar-networks\"\n />\n\n <VolumesLink\n environmentId={environmentId}\n platformPath=\"docker\"\n data-cy=\"dockerSidebar-volumes\"\n />\n\n {apiVersion >= 1.3 && isSwarmManager && (\n <SidebarItem\n to=\"docker.configs\"\n params={{ endpointId: environmentId }}\n icon={Clipboard}\n label=\"Configs\"\n data-cy=\"dockerSidebar-configs\"\n />\n )}\n\n {apiVersion >= 1.25 && isSwarmManager && (\n <SidebarItem\n to=\"docker.secrets\"\n params={{ endpointId: environmentId }}\n icon={Lock}\n label=\"Secrets\"\n data-cy=\"dockerSidebar-secrets\"\n />\n )}\n\n {!isSwarmManager && isEnvironmentAdmin && (\n <SidebarItem\n to=\"docker.events\"\n params={{ endpointId: environmentId }}\n icon={Clock}\n label=\"Events\"\n data-cy=\"dockerSidebar-events\"\n />\n )}\n\n <SidebarParent\n label={setupSubMenuProps.label}\n icon={setupSubMenuProps.icon}\n to={setupSubMenuProps.to}\n params={{ endpointId: environmentId }}\n data-cy=\"portainerSidebar-host-area\"\n listId=\"portainerSidebar-host-area\"\n >\n <SidebarItem\n label=\"Details\"\n isSubMenu\n to={setupSubMenuProps.to}\n params={{ endpointId: environmentId }}\n ignorePaths={[featSubMenuTo, registrySubMenuTo]}\n data-cy={setupSubMenuProps.dataCy}\n />\n\n <Authorized\n authorizations=\"PortainerEndpointUpdateSettings\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n label=\"Setup\"\n isSubMenu\n to={featSubMenuTo}\n params={{ endpointId: environmentId }}\n />\n </Authorized>\n\n <SidebarItem\n label=\"Registries\"\n isSubMenu\n to={registrySubMenuTo}\n params={{ endpointId: environmentId }}\n />\n </SidebarParent>\n </>\n );\n}\n","const terminalHeight = 495;\n\nexport function terminalClose() {\n update('100%', 'initial');\n}\n\nexport function terminalResize() {\n const contentWrapperHeight = window.innerHeight;\n const newContentWrapperHeight = contentWrapperHeight - terminalHeight;\n update(`${newContentWrapperHeight}px`, 'auto');\n}\n\nfunction update(height: string, overflowY: string) {\n const pageWrapper = document.getElementById('pageWrapper-wrapper');\n\n if (pageWrapper) {\n pageWrapper.style.height = height;\n pageWrapper.style.overflowY = overflowY;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__root\",\"header\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__header\",\"minimized\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__minimized\",\"title\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__title\",\"actions\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__actions\",\"terminalContainer\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__terminal-container\",\"loadingMessage\":\"app-react-sidebar-KubernetesSidebar-KubectlShell-KubectlShell-module__loading-message\"};","import { Terminal } from 'xterm';\nimport { fit } from 'xterm/lib/addons/fit/fit';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { RotateCw, X, Terminal as TerminalIcon } from 'lucide-react';\n\nimport { baseHref } from '@/portainer/helpers/pathHelper';\nimport {\n terminalClose,\n terminalResize,\n} from '@/portainer/services/terminal-window';\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { error as notifyError } from '@/portainer/services/notifications';\n\nimport { Icon } from '@@/Icon';\nimport { Button } from '@@/buttons';\n\nimport styles from './KubectlShell.module.css';\n\ninterface ShellState {\n socket: WebSocket | null;\n minimized: boolean;\n}\n\ninterface Props {\n environmentId: EnvironmentId;\n onClose(): void;\n}\n\nexport function KubeCtlShell({ environmentId, onClose }: Props) {\n const [terminal] = useState(new Terminal());\n\n const [shell, setShell] = useState<ShellState>({\n socket: null,\n minimized: false,\n });\n\n const { socket } = shell;\n\n const terminalElem = useRef(null);\n\n const handleClose = useCallback(() => {\n terminalClose(); // only css trick\n socket?.close();\n terminal.dispose();\n onClose();\n }, [onClose, terminal, socket]);\n\n const openTerminal = useCallback(() => {\n if (!terminalElem.current) {\n return;\n }\n\n terminal.open(terminalElem.current);\n terminal.setOption('cursorBlink', true);\n terminal.focus();\n fit(terminal);\n terminal.writeln('#Run kubectl commands inside here');\n terminal.writeln('#e.g. kubectl get all');\n terminal.writeln('');\n }, [terminal]);\n\n // refresh socket listeners on socket updates\n useEffect(() => {\n if (!socket) {\n return () => {};\n }\n function onOpen() {\n openTerminal();\n }\n function onMessage(e: MessageEvent) {\n const encoded = new TextEncoder().encode(e.data);\n terminal.writeUtf8(encoded);\n }\n function onClose() {\n handleClose();\n }\n function onError(e: Event) {\n handleClose();\n if (socket?.readyState !== WebSocket.CLOSED) {\n notifyError(\n 'Failure',\n e as unknown as Error,\n 'Websocket connection error'\n );\n }\n }\n\n socket.addEventListener('open', onOpen);\n socket.addEventListener('message', onMessage);\n socket.addEventListener('close', onClose);\n socket.addEventListener('error', onError);\n\n return () => {\n socket.removeEventListener('open', onOpen);\n socket.removeEventListener('message', onMessage);\n socket.removeEventListener('close', onClose);\n socket.removeEventListener('error', onError);\n };\n }, [handleClose, openTerminal, socket, terminal]);\n\n // on component load/destroy\n useEffect(() => {\n const socket = new WebSocket(buildUrl(environmentId));\n setShell((shell) => ({ ...shell, socket }));\n\n terminal.onData((data) => socket.send(data));\n terminal.onKey(({ domEvent }) => {\n if (domEvent.ctrlKey && domEvent.code === 'KeyD') {\n close();\n }\n });\n\n window.addEventListener('resize', () => terminalResize());\n\n function close() {\n socket.close();\n terminal.dispose();\n window.removeEventListener('resize', terminalResize);\n }\n\n return close;\n }, [environmentId, terminal]);\n\n return (\n <div className={clsx(styles.root, { [styles.minimized]: shell.minimized })}>\n <div className={styles.header}>\n <div className={clsx(styles.title, 'vertical-center')}>\n <Icon icon={TerminalIcon} />\n kubectl shell\n </div>\n <div className={clsx(styles.actions, 'space-x-8')}>\n <Button\n color=\"link\"\n onClick={clearScreen}\n data-cy=\"k8sShell-refreshButton\"\n >\n <Icon icon={RotateCw} size=\"md\" />\n </Button>\n <Button\n color=\"link\"\n onClick={toggleMinimize}\n data-cy={shell.minimized ? 'k8sShell-restore' : 'k8sShell-minimise'}\n >\n <Icon\n icon={shell.minimized ? 'maximize-2' : 'minimize-2'}\n size=\"md\"\n data-cy={\n shell.minimized ? 'k8sShell-restore' : 'k8sShell-minimise'\n }\n />\n </Button>\n <Button\n color=\"link\"\n onClick={handleClose}\n data-cy=\"k8sShell-closeButton\"\n >\n <Icon icon={X} size=\"md\" />\n </Button>\n </div>\n </div>\n\n <div className={styles.terminalContainer} ref={terminalElem}>\n <div className={styles.loadingMessage}>Loading Terminal...</div>\n </div>\n </div>\n );\n\n function clearScreen() {\n terminal.clear();\n }\n\n function toggleMinimize() {\n if (shell.minimized) {\n terminalResize();\n setShell((shell) => ({ ...shell, minimized: false }));\n } else {\n terminalClose();\n setShell((shell) => ({ ...shell, minimized: true }));\n }\n }\n\n function buildUrl(environmentId: EnvironmentId) {\n const params = {\n endpointId: environmentId,\n };\n\n const wsProtocol =\n window.location.protocol === 'https:' ? 'wss://' : 'ws://';\n const path = `${baseHref()}api/websocket/kubernetes-shell`;\n const base = path.startsWith('http')\n ? path.replace(/^https?:\\/\\//i, '')\n : window.location.host + path;\n\n const queryParams = Object.entries(params)\n .map(([k, v]) => `${k}=${v}`)\n .join('&');\n return `${wsProtocol}${base}?${queryParams}`;\n }\n}\n","import { useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Terminal } from 'lucide-react';\nimport clsx from 'clsx';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { useAnalytics } from '@/react/hooks/useAnalytics';\n\nimport { Button } from '@@/buttons';\n\nimport { useSidebarState } from '../../useSidebarState';\nimport { SidebarTooltip } from '../../SidebarItem/SidebarTooltip';\n\nimport { KubeCtlShell } from './KubectlShell';\n\ninterface Props {\n environmentId: EnvironmentId;\n}\nexport function KubectlShellButton({ environmentId }: Props) {\n const { isOpen: isSidebarOpen } = useSidebarState();\n\n const [open, setOpen] = useState(false);\n const { trackEvent } = useAnalytics();\n\n const button = (\n <Button\n color=\"primary\"\n size=\"small\"\n disabled={open}\n data-cy=\"k8sSidebar-shellButton\"\n onClick={() => handleOpen()}\n className={clsx('sidebar', !isSidebarOpen && '!p-1')}\n icon={Terminal}\n >\n {isSidebarOpen ? 'kubectl shell' : ''}\n </Button>\n );\n\n return (\n <>\n {!isSidebarOpen && (\n <SidebarTooltip\n content={\n <span className=\"text-sm whitespace-nowrap\">Kubectl Shell</span>\n }\n >\n <span className=\"flex w-full justify-center\">{button}</span>\n </SidebarTooltip>\n )}\n {isSidebarOpen && button}\n {open &&\n createPortal(\n <KubeCtlShell\n environmentId={environmentId}\n onClose={() => setOpen(false)}\n />,\n document.body\n )}\n </>\n );\n\n function handleOpen() {\n setOpen(true);\n\n trackEvent('kubernetes-kubectl-shell', { category: 'kubernetes' });\n }\n}\n","import { Box, Edit, Layers, Lock, Network, Server } from 'lucide-react';\n\nimport { EnvironmentId } from '@/react/portainer/environments/types';\nimport { Authorized } from '@/react/hooks/useUser';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { DashboardLink } from '../items/DashboardLink';\nimport { SidebarItem } from '../SidebarItem';\nimport { VolumesLink } from '../items/VolumesLink';\nimport { SidebarParent } from '../SidebarItem/SidebarParent';\n\nimport { KubectlShellButton } from './KubectlShell';\n\ninterface Props {\n environmentId: EnvironmentId;\n}\n\nexport function KubernetesSidebar({ environmentId }: Props) {\n return (\n <>\n <div className=\"w-full flex mb-2 justify-center -mt-2\">\n <KubectlShellButton environmentId={environmentId} />\n </div>\n\n <DashboardLink\n environmentId={environmentId}\n platformPath=\"kubernetes\"\n data-cy=\"k8sSidebar-dashboard\"\n />\n\n <SidebarItem\n to=\"kubernetes.templates.custom\"\n params={{ endpointId: environmentId }}\n icon={Edit}\n label=\"Custom Templates\"\n data-cy=\"k8sSidebar-customTemplates\"\n />\n\n <SidebarItem\n to=\"kubernetes.resourcePools\"\n params={{ endpointId: environmentId }}\n icon={Layers}\n label=\"Namespaces\"\n data-cy=\"k8sSidebar-namespaces\"\n />\n\n <SidebarItem\n to=\"kubernetes.applications\"\n params={{ endpointId: environmentId }}\n icon={Box}\n label=\"Applications\"\n data-cy=\"k8sSidebar-applications\"\n />\n\n <SidebarParent\n label=\"Networking\"\n icon={Network}\n to=\"kubernetes.services\"\n params={{ endpointId: environmentId }}\n pathOptions={{ includePaths: ['kubernetes.ingresses'] }}\n data-cy=\"k8sSidebar-networking\"\n listId=\"k8sSidebar-networking\"\n >\n <SidebarItem\n to=\"kubernetes.services\"\n params={{ endpointId: environmentId }}\n label=\"Services\"\n isSubMenu\n data-cy=\"k8sSidebar-services\"\n />\n\n <SidebarItem\n to=\"kubernetes.ingresses\"\n params={{ endpointId: environmentId }}\n label=\"Ingresses\"\n isSubMenu\n data-cy=\"k8sSidebar-ingresses\"\n />\n </SidebarParent>\n\n <SidebarItem\n to=\"kubernetes.configurations\"\n params={{ endpointId: environmentId }}\n icon={Lock}\n label=\"ConfigMaps & Secrets\"\n data-cy=\"k8sSidebar-configurations\"\n />\n\n <VolumesLink\n environmentId={environmentId}\n platformPath=\"kubernetes\"\n data-cy=\"k8sSidebar-volumes\"\n />\n\n <SidebarParent\n label=\"Cluster\"\n icon={Server}\n to=\"kubernetes.cluster\"\n params={{ endpointId: environmentId }}\n pathOptions={{ includePaths: ['kubernetes.registries'] }}\n data-cy=\"k8sSidebar-cluster-area\"\n listId=\"k8sSidebar-cluster-area\"\n >\n <SidebarItem\n label=\"Details\"\n to=\"kubernetes.cluster\"\n ignorePaths={[\n 'kubernetes.cluster.setup',\n 'kubernetes.cluster.securityConstraint',\n ]}\n params={{ endpointId: environmentId }}\n isSubMenu\n data-cy=\"k8sSidebar-cluster\"\n />\n <Authorized\n authorizations=\"K8sClusterSetupRW\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n to=\"kubernetes.cluster.setup\"\n params={{ endpointId: environmentId }}\n label=\"Setup\"\n isSubMenu\n data-cy=\"k8sSidebar-setup\"\n />\n </Authorized>\n\n <Authorized\n authorizations=\"K8sClusterSetupRW\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n to=\"kubernetes.cluster.securityConstraint\"\n params={{ endpointId: environmentId }}\n label=\"Security constraints\"\n isSubMenu\n data-cy=\"k8sSidebar-securityConstraints\"\n />\n </Authorized>\n\n {isBE && (\n <Authorized\n authorizations=\"K8sClusterSetupRW\"\n adminOnlyCE\n environmentId={environmentId}\n >\n <SidebarItem\n to=\"kubernetes.cluster.securityConstraint\"\n params={{ endpointId: environmentId }}\n label=\"Security Constraints\"\n isSubMenu\n data-cy=\"k8sSidebar-securityConstraints\"\n />\n </Authorized>\n )}\n\n <SidebarItem\n to=\"kubernetes.registries\"\n params={{ endpointId: environmentId }}\n label=\"Registries\"\n isSubMenu\n data-cy=\"k8sSidebar-registries\"\n />\n </SidebarParent>\n </>\n );\n}\n","import { useCurrentStateAndParams, useRouter } from '@uirouter/react';\nimport { useEffect } from 'react';\nimport { X, Slash } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useStore } from 'zustand';\n\nimport {\n PlatformType,\n EnvironmentId,\n Environment,\n} from '@/react/portainer/environments/types';\nimport { getPlatformType } from '@/react/portainer/environments/utils';\nimport { useEnvironment } from '@/react/portainer/environments/queries/useEnvironment';\nimport { environmentStore } from '@/react/hooks/current-environment-store';\n\nimport { Icon } from '@@/Icon';\n\nimport { getPlatformIcon } from '../portainer/environments/utils/get-platform-icon';\n\nimport styles from './EnvironmentSidebar.module.css';\nimport { AzureSidebar } from './AzureSidebar';\nimport { DockerSidebar } from './DockerSidebar';\nimport { KubernetesSidebar } from './KubernetesSidebar';\nimport { SidebarSection, SidebarSectionTitle } from './SidebarSection';\nimport { useSidebarState } from './useSidebarState';\n\nexport function EnvironmentSidebar() {\n const { query: currentEnvironmentQuery, clearEnvironment } =\n useCurrentEnvironment();\n const environment = currentEnvironmentQuery.data;\n\n const { isOpen } = useSidebarState();\n\n if (!isOpen && !environment) {\n return null;\n }\n\n return (\n <div className={clsx(styles.root, 'rounded border border-dotted py-2')}>\n {environment ? (\n <Content environment={environment} onClear={clearEnvironment} />\n ) : (\n <SidebarSectionTitle>\n <div className=\"flex items-center gap-1\">\n <span>Environment:</span>\n <Icon icon={Slash} className=\"text-xl !text-gray-6\" />\n <span className=\"text-sm text-gray-6\">None selected</span>\n </div>\n </SidebarSectionTitle>\n )}\n </div>\n );\n}\n\ninterface ContentProps {\n environment: Environment;\n onClear: () => void;\n}\n\nfunction Content({ environment, onClear }: ContentProps) {\n const platform = getPlatformType(environment.Type);\n const Sidebar = getSidebar(platform);\n\n return (\n <SidebarSection\n title={<Title environment={environment} onClear={onClear} />}\n aria-label={environment.Name}\n showTitleWhenOpen\n >\n <div className=\"mt-2\">\n {Sidebar && (\n <Sidebar environmentId={environment.Id} environment={environment} />\n )}\n </div>\n </SidebarSection>\n );\n\n function getSidebar(platform: PlatformType) {\n const sidebar: {\n [key in PlatformType]: React.ComponentType<{\n environmentId: EnvironmentId;\n environment: Environment;\n }> | null;\n } = {\n [PlatformType.Azure]: AzureSidebar,\n [PlatformType.Docker]: DockerSidebar,\n [PlatformType.Kubernetes]: KubernetesSidebar,\n };\n\n return sidebar[platform];\n }\n}\n\nfunction useCurrentEnvironment() {\n const { params } = useCurrentStateAndParams();\n const router = useRouter();\n\n const envStore = useStore(environmentStore);\n const { setEnvironmentId } = envStore;\n useEffect(() => {\n const environmentId = parseInt(params.endpointId, 10);\n if (params.endpointId && !Number.isNaN(environmentId)) {\n setEnvironmentId(environmentId);\n }\n }, [setEnvironmentId, params.endpointId, params.environmentId]);\n\n return { query: useEnvironment(envStore.environmentId), clearEnvironment };\n\n function clearEnvironment() {\n if (params.endpointId || params.environmentId) {\n router.stateService.go('portainer.home');\n }\n\n envStore.clear();\n }\n}\n\ninterface TitleProps {\n environment: Environment;\n onClear(): void;\n}\n\nfunction Title({ environment, onClear }: TitleProps) {\n const { isOpen } = useSidebarState();\n\n const EnvironmentIcon = getPlatformIcon(environment.Type);\n\n if (!isOpen) {\n return (\n <div className=\"-ml-3 flex w-8 justify-center\" title={environment.Name}>\n <EnvironmentIcon className=\"text-2xl\" />\n </div>\n );\n }\n\n return (\n <div className=\"flex items-center\">\n <EnvironmentIcon className=\"mr-3 text-2xl\" />\n <span className=\"overflow-hidden text-ellipsis whitespace-nowrap text-white\">\n {environment.Name}\n </span>\n\n <button\n title=\"Clear environment\"\n type=\"button\"\n onClick={onClear}\n className={clsx(\n styles.closeBtn,\n 'ml-auto mr-2 flex h-5 w-5 items-center justify-center rounded border-0 p-1 text-sm text-gray-5 transition-colors duration-200 hover:text-white be:text-gray-6 be:hover:text-white'\n )}\n >\n <X />\n </button>\n </div>\n );\n}\n","import {\n Users,\n Award,\n Settings,\n HardDrive,\n Radio,\n FileText,\n Bell,\n} from 'lucide-react';\n\nimport { usePublicSettings } from '@/react/portainer/settings/queries';\nimport { isBE } from '@/react/portainer/feature-flags/feature-flags.service';\n\nimport { SidebarItem } from './SidebarItem';\nimport { SidebarSection } from './SidebarSection';\nimport { SidebarParent } from './SidebarItem/SidebarParent';\n\ninterface Props {\n isPureAdmin: boolean;\n isAdmin: boolean;\n isTeamLeader?: boolean;\n}\n\nexport function SettingsSidebar({ isPureAdmin, isAdmin, isTeamLeader }: Props) {\n const teamSyncQuery = usePublicSettings<boolean>({\n select: (settings) => settings.TeamSync,\n });\n\n const isPureAdminOrTeamLeader =\n isPureAdmin || (isTeamLeader && !teamSyncQuery.data && !isAdmin);\n const showUsersSection = !window.ddExtension && isPureAdminOrTeamLeader;\n\n return (\n <SidebarSection title=\"Administration\">\n {showUsersSection && (\n <SidebarParent\n label=\"User-related\"\n icon={Users}\n to=\"portainer.users\"\n pathOptions={{ includePaths: ['portainer.teams', 'portainer.roles'] }}\n data-cy=\"portainerSidebar-userRelated\"\n listId=\"portainerSidebar-userRelated\"\n >\n <SidebarItem\n to=\"portainer.users\"\n label=\"Users\"\n isSubMenu\n data-cy=\"portainerSidebar-users\"\n />\n <SidebarItem\n to=\"portainer.teams\"\n label=\"Teams\"\n isSubMenu\n data-cy=\"portainerSidebar-teams\"\n />\n\n {isPureAdmin && (\n <SidebarItem\n to=\"portainer.roles\"\n label=\"Roles\"\n isSubMenu\n data-cy=\"portainerSidebar-roles\"\n />\n )}\n </SidebarParent>\n )}\n {isPureAdmin && (\n <>\n <SidebarParent\n label=\"Environment-related\"\n icon={HardDrive}\n to=\"portainer.endpoints\"\n pathOptions={{\n includePaths: [\n 'portainer.wizard.endpoints',\n 'portainer.groups',\n 'portainer.tags',\n ],\n }}\n data-cy=\"portainerSidebar-environments-area\"\n listId=\"portainer-environments\"\n >\n <SidebarItem\n label=\"Environments\"\n to=\"portainer.endpoints\"\n ignorePaths={['portainer.endpoints.updateSchedules']}\n includePaths={['portainer.wizard.endpoints']}\n isSubMenu\n data-cy=\"portainerSidebar-environments\"\n />\n <SidebarItem\n to=\"portainer.groups\"\n label=\"Groups\"\n isSubMenu\n data-cy=\"portainerSidebar-environmentGroups\"\n />\n <SidebarItem\n to=\"portainer.tags\"\n label=\"Tags\"\n isSubMenu\n data-cy=\"portainerSidebar-environmentTags\"\n />\n <EdgeUpdatesSidebarItem />\n </SidebarParent>\n\n <SidebarItem\n label=\"Registries\"\n to=\"portainer.registries\"\n icon={Radio}\n data-cy=\"portainerSidebar-registries\"\n />\n\n {isBE && (\n <SidebarItem\n to=\"portainer.licenses\"\n label=\"Licenses\"\n icon={Award}\n data-cy=\"portainerSidebar-licenses\"\n />\n )}\n\n <SidebarParent\n label=\"Logs\"\n to=\"portainer.authLogs\"\n icon={FileText}\n pathOptions={{\n includePaths: ['portainer.activityLogs'],\n }}\n data-cy=\"k8sSidebar-logs\"\n listId=\"k8sSidebar-logs\"\n >\n <SidebarItem\n label=\"Authentication\"\n to=\"portainer.authLogs\"\n isSubMenu\n data-cy=\"portainerSidebar-authLogs\"\n />\n <SidebarItem\n to=\"portainer.activityLogs\"\n label=\"Activity\"\n isSubMenu\n data-cy=\"portainerSidebar-activityLogs\"\n />\n </SidebarParent>\n </>\n )}\n {isBE && !isPureAdmin && isAdmin && (\n <SidebarParent\n label=\"Environment-related\"\n icon={HardDrive}\n to=\"portainer.endpoints.updateSchedules\"\n data-cy=\"portainerSidebar-environments-area\"\n listId=\"portainer-environments-area\"\n >\n <EdgeUpdatesSidebarItem />\n </SidebarParent>\n )}\n\n <SidebarItem\n to=\"portainer.notifications\"\n icon={Bell}\n label=\"Notifications\"\n data-cy=\"portainerSidebar-notifications\"\n />\n {isPureAdmin && (\n <SidebarParent\n to=\"portainer.settings\"\n label=\"Settings\"\n icon={Settings}\n data-cy=\"portainerSidebar-settings\"\n listId=\"portainer-settings\"\n >\n <SidebarItem\n to=\"portainer.settings\"\n label=\"General\"\n isSubMenu\n ignorePaths={[\n 'portainer.settings.authentication',\n 'portainer.settings.sharedcredentials',\n 'portainer.settings.edgeCompute',\n ]}\n data-cy=\"portainerSidebar-generalSettings\"\n />\n {!window.ddExtension && (\n <SidebarItem\n to=\"portainer.settings.authentication\"\n label=\"Authentication\"\n isSubMenu\n data-cy=\"portainerSidebar-authentication\"\n />\n )}\n {isBE && (\n <SidebarItem\n to=\"portainer.settings.sharedcredentials\"\n label=\"Shared Credentials\"\n isSubMenu\n data-cy=\"portainerSidebar-cloud\"\n />\n )}\n\n <SidebarItem\n to=\"portainer.settings.edgeCompute\"\n label=\"Edge Compute\"\n isSubMenu\n data-cy=\"portainerSidebar-edgeCompute\"\n />\n\n <SidebarItem.Wrapper label=\"Help / About\">\n <a\n href={\n process.env.PORTAINER_EDITION === 'CE'\n ? 'https://www.portainer.io/community_help'\n : 'https://documentation.portainer.io/r/business-support'\n }\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"hover:!underline focus:no-underline text-sm flex h-8 w-full items-center rounded px-3 transition-colors duration-200 hover:bg-blue-5/20 be:hover:bg-gray-5/20 th-dark:hover:bg-gray-true-5/20\"\n >\n Help / About\n </a>\n </SidebarItem.Wrapper>\n </SidebarParent>\n )}\n </SidebarSection>\n );\n}\n\nfunction EdgeUpdatesSidebarItem() {\n const settingsQuery = usePublicSettings();\n\n if (!isBE || !settingsQuery.data?.EnableEdgeComputeFeatures) {\n return null;\n }\n\n return (\n <SidebarItem\n to=\"portainer.endpoints.updateSchedules\"\n label=\"Update & Rollback\"\n isSubMenu\n data-cy=\"portainerSidebar-updateSchedules\"\n />\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"app-react-sidebar-Footer-UpdateNotifications-module__root\",\"dismissTitle\":\"app-react-sidebar-Footer-UpdateNotifications-module__dismissTitle\",\"dismissBtn\":\"app-react-sidebar-Footer-UpdateNotifications-module__dismissBtn\",\"actions\":\"app-react-sidebar-Footer-UpdateNotifications-module__actions\"};","import clsx from 'clsx';\nimport { DownloadCloud } from 'lucide-react';\n\nimport { useUIState } from '@/react/hooks/useUIState';\nimport { useSystemVersion } from '@/react/portainer/system/useSystemVersion';\n\nimport { Icon } from '@@/Icon';\n\nimport styles from './UpdateNotifications.module.css';\n\nexport function UpdateNotification() {\n const uiStateStore = useUIState();\n const query = useSystemVersion();\n\n if (!query.data || !query.data.UpdateAvailable) {\n return null;\n }\n\n const { LatestVersion } = query.data;\n\n if (\n !!uiStateStore.dismissedUpdateVersion &&\n LatestVersion?.length > 0 &&\n uiStateStore.dismissedUpdateVersion === LatestVersion\n ) {\n return null;\n }\n\n return (\n <div\n className={clsx(\n styles.root,\n 'rounded border py-2',\n 'bg-blue-11 th-dark:bg-gray-warm-11',\n 'border-blue-9 th-dark:border-gray-warm-9'\n )}\n >\n <div className={clsx(styles.dismissTitle, 'vertical-center')}>\n <Icon icon={DownloadCloud} mode=\"primary\" size=\"md\" />\n <span className=\"space-left\">\n New version available {LatestVersion}\n </span>\n </div>\n\n <div className={clsx(styles.actions)}>\n <button\n type=\"button\"\n className={clsx(styles.dismissBtn, 'space-right')}\n onClick={() => onDismiss(LatestVersion)}\n >\n Dismiss\n </button>\n <a\n className=\"hyperlink space-left\"\n target=\"_blank\"\n href={`https://github.com/portainer/portainer/releases/tag/${LatestVersion}`}\n rel=\"noreferrer\"\n >\n See what'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","linode","microsoft","microsofticon","openldap","proget","quay","kube","SvgIcon","spin","classes","isValidElementType","_Icon","svgIcon","Svg","iconName","toUpperCase","IconComponent","lucideIcons","InformationPanel","onDismiss","wrapperStyle","bodyClassName","Widget","WidgetBody","float","X","sizeStyles","xs","sm","md","InlineLoader","insightStore","createStore","persist","insightIDsClosed","addInsightIDClosed","insightIDClosed","state","currentIDsClosed","isClosed","insightID","keyBuilder","getStorage","localStorage","InsightsBox","content","insightCloseId","_useStore","useStore","Lightbulb","_ref$title","UISref","NavContainer","NavTabs","selectedId","_ref$justified","justified","find","hidden","active","parent","onKeyDown","tabIndex","ContextHelp","headerStyles","menuButton","menuIcon","HelpCircle","doc","useCurrentStateAndParams","versionQuery","useSystemVersion","ServerVersion","parts","docs","Breadcrumbs","breadcrumbs","breadcrumbsArray","crumb","renderCrumb","link","linkParams","createContext","HeaderContainer","Provider","NotificationsMenu","notificationsStoreState","removeNotification","clearUserNotifications","userNotifications","reducedNotifications","Menu","MenuButton","Bell","notificationStyles","badge","MenuList","menuList","notificationContainer","itemLast","stopPropagation","preventDefault","notifications","notification","MenuLink","onDelete","notificationId","notificationLink","anchorProps","useSref","ReachMenuLink","menuLink","notificationIcon","notificationBody","notificationTitle","notificationDetails","deleteButton","Trash2","timeCreated","valueOf","diff","Math","floor","now","interval","Moment","UserMenu","User","Username","ChevronDown","arrowDown","HeaderTitle","useContext","useHeaderContext","ddExtension","PageHeader","_ref$breadcrumbs","loading","onReload","useRouter","RefreshCw","ItemsPerPageSelector","showAll","_onChange","MAX_SAFE_INTEGER","calculatePageNumber","position","currentPage","paginationRange","totalPages","halfWay","ceil","PageButton","page","onPageChange","PageInput","_onSubmit","_useFormik","useFormik","initialValues","onSubmit","validateOnMount","validationSchema","required","max","min","handleSubmit","setFieldValue","isValid","Input","step","onKeyPress","PageSelector","pageCount","_ref$maxSize","maxSize","_ref$directionLinks","directionLinks","_ref$boundaryLinks","boundaryLinks","_ref$isInputVisible","isInputVisible","pages","ellipsesNeeded","pageNumber","generatePagesArray","last","PaginationControls","pageLimit","onPageLimitChange","isPageInputVisible","TLSFieldset","SwitchField","labelClass","tls","skipVerify","FormControl","inputId","caCertFile","FileUploadField","file","certFile","keyFile","partialValue","MAX_FILE_SIZE","certValidation","optional","withFileSize","when","is","tlsConfigValidation","optionalCert","boolean","default","TagButton","onRemove","removeTagBtn","TagSelector","_ref$allowCreate","allowCreate","tagsQuery","opt","Name","ID","createTagMutation","selectedTags","_compact","SelectComponent","Creatable","Select","tagId","hideSelectedOptions","closeMenuOnSelect","handleAdd","noOptionsMessage","formatCreateLabel","inputValue","onCreateOption","mutate","TeamsSelector","teams","team","PortainerSelect","editorConfig","mac","lin","win","TerminalTooltip","SliderTooltip","child","delay","_ref$zIndex","zIndex","Tippy","appendTo","tooltipCentered","messageHTML","placement","showOnCreate","hideOnClick","trigger","arrow","allowHTML","tooltipContainer","_ref$color","_ref$icon","_ref$inline","inline","_ref$childrenWrapperC","childrenWrapperClassName","getMode","lg","xl","_ref$position","setHtmlMessage","htmlMessage","dangerouslySetInnerHTML","__html","_uniqueId","onClickHandler","tooltipBeteaser","tooltipMessage","maxWidth","interactive","tagName","getAttribute","open","UsersSelector","getOptionLabel","getOptionValue","selectedUsers","isDisabled","otherEditorConfig","searchCmdLabel","WebEditorForm","_ref$titleContent","titleContent","hideTitle","DefaultTitle","FormError","FormSectionTitle","usePreventExit","initialValue","check","isChanged","cleanText","preventExit","useTransitionHook","confirmed","confirm","handler","event","returnValue","addEventListener","removeEventListener","Loading","useWidgetContext","WidgetTitle","MainComponent","Body","Footer","Title","Taskbar","ButtonWithRef","forwardRef","ref","mRef","_ref$disabled","ariaProps","sizeClass","getIconSize","ButtonGroup","ariaLabel","_ref$fadeDelay","_ref$displayText","displayText","_ref$indicatorPositio","copiedIndicator","fadeout","document","setCopiedSuccessfully","fadeoutTime","setTimeout","clearTimeout","navigator","clipboard","writeText","inputEl","createElement","appendChild","execCommand","removeChild","LoadingButton","loadingText","buttonProps","loadingButtonIcon","defaultIcon","AddButton","_ref$to","Plus","ColumnVisibilityMenu","table","columnsToHide","getAllColumns","col","getCanHide","isExpanded","Columns","Checkbox","getIsVisible","columnDef","_capitalize","colId","visible","setColumnVisibility","getColumnVisibilityState","hiddenColumns","columnVisibility","Datatable","dataset","_ref$renderTableSetti","renderTableSettings","_ref$renderTableActio","renderTableActions","disableSelect","_ref$getRowId","getRowId","defaultGetRowId","_ref$isRowSelectable","isRowSelectable","titleId","titleIcon","emptyContentLabel","_ref$initialTableStat","initialTableState","settingsManager","_ref$renderRow","renderRow","defaultRenderRow","highlightedItemId","noWidget","getRowCanExpand","_ref$onPageChange","_ref$totalCount","totalCount","_ref$isServerSidePagi","isServerSidePagination","_ref$extendTableOptio","extendTableOptions","pageSize","enableRowSelection","disabledSelect","getIsSelectionEnabled","allColumns","lastSelectedId","getIsAllRowsSelected","indeterminate","getIsSomeRowsSelected","getToggleAllRowsSelectedHandler","getRowModel","rows","row","getCanSelect","cell","getIsSelected","getIsSomeSelected","getToggleSelectedHandler","shiftKey","_table$getRowModel","rowsById","rowsToToggle","idA","idB","range","foundStart","foundEnd","getRowRange","isLastSelected","toggleSelected","enableHiding","tableInstance","useReactTable","initialState","pagination","pageIndex","sorting","sortBy","globalFilter","search","defaultColumn","enableColumnFilter","sortingFn","autoResetExpanded","globalFilterFn","defaultGlobalFilterFn","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getFacetedRowModel","getFacetedUniqueValues","getFacetedMinMaxValues","getExpandedRowModel","getColumnCanGlobalFilter","manualPagination","getSortedRowModel","tableState","goToPage","handlePageChangeRef","useRef","useLayoutEffect","current","highlightedItemIdRef","rowID","totalRows","_chunk","sub","getRowPage","useGoToHighlightedRow","handlePageChange","selectedItems","getSelectedRowModel","original","Table","Container","DatatableHeader","onSearchChange","setGlobalFilter","setSearch","searchValue","_renderTableActions","_renderTableSettings","DatatableContent","_renderRow","onSortChange","desc","setSortBy","DatatableFooter","onPageSizeChange","setPageSize","getPageCount","totalSelected","setPageIndex","TableRow","cells","getVisibleCells","columnId","filterValue","getValue","filterValueLower","headerGroups","getHeaderGroups","pageRowModel","headerGroup","HeaderRow","Content","emptyContent","SelectedRowsCount","_onPageChange","searchBar","SearchBar","tableActions","Actions","tableTitleSettings","TitleActions","ExpandableDatatableTableRow","renderSubRow","expandOnClick","toggleExpanded","getIsExpanded","getCanExpand","ExpandableDatatable","_ref$getRowCanExpand","expandOnRowClick","MultipleSelectionFilter","_ref$value","filterKey","_ref$menuTitle","menuTitle","Filter","MenuPopover","filterHOC","_ref2$column","getFilterValue","setFilterValue","flatRows","add","valueAsArray","createRowContext","RowProvider","useRowContext","_ref$placeholder","_useDebounce2","useDebounce","setSearchValue","Search","useSearchBarState","_useLocalStorage2","useLocalStorage","sessionStorage","TableActions","TableTitleActions","TableContainer","HeaderCell","TableHeaderCell","SettingsMenu","TableSettingsMenu","TableTitle","TableHeaderRow","TableContent","TableFooter","_ref$noWidget","_ref$isLoading","_ref$emptyContent","TableContentOneColumn","canSort","render","onSortClick","isSorted","_ref$isSortedDesc","isSortedDesc","renderFilter","SortWrapper","_ref2$onClick","_ref2$isSortedDesc","TableHeaderSortIcons","sorted","descending","TableColumnHeaderAngular","colTitle","_ref3$isSortedDesc","sortDirection","getIsSorted","_header$column$column","_header$column$column2","getCanSort","toggleSorting","flexRender","getContext","getCanFilter","_header$column$column3","SortDownIcon","activeSortIcon","sortIcon","SortUpIcon","quickActions","MoreVertical","TableSettingsMenuAutoRefresh","isCheckVisible","setIsCheckVisible","isEnabled","alertVisible","alertHidden","onTransitionEnd","buildNameColumn","nameKey","path","buildNameColumnFromObject","idParam","idGetter","_ref$idParam","_ref$idGetter","_ref$linkParamsBuilde","linkParamsBuilder","accessorKey","renderValue","enableSorting","hasOwn","buildExpandColumn","getCanSomeRowsExpand","getToggleAllRowsExpandedHandler","getIsAllRowsExpanded","ChevronUp","enableGlobalFilter","hiddenColumnsSettings","setHiddenColumns","refreshableSettings","autoRefreshRate","setAutoRefreshRate","createPersistedStore","storageKey","initialSortBy","sortableSettings","paginationSettings","useRepeater","refreshRate","onRefresh","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","intervalId","setIntervalId","stopRepeater","useCallback","clearInterval","startRepeater","setInterval","useTableState","_useSearchBarState2","useTableStateWithStorage","useTableStateWithoutStorage","defaultSortKey","_useState4","_useState6","_useState8","AutocompleteSelect","searchResults","searchTerm","setSearchTerm","setSelected","Combobox","ComboboxInput","autoComplete","ComboboxPopover","ComboboxList","ComboboxOption","ButtonSelector","group","OptionItem","_ref$bold","bold","defaultRef","resolvedRef","AdvancedMode","onSimpleModeClick","editorValue","convertToArrayOfStrings","List","parseDotEnvFile","readFileAsText","reader","FileReader","readAsText","onload","onerror","EnvironmentVariableItem","InputLabeled","needsDeletion","partial","SimpleMode","onAdvancedModeClick","canUndoDelete","InputList","isAddButtonHidden","FileEnv","onChooseFile","setFile","fileTooBig","accept","EnvironmentVariablesFieldset","simpleMode","setSimpleMode","envVarValidation","buildUniquenessTest","EnvironmentVariablesPanel","explanation","showHelpMessage","_ref$isFoldable","isFoldable","alertMessage","FormSection","defaultFolded","StackEnvironmentVariablesPanel","VALUE_REGEX","KEY_VALUE_REGEX","NEWLINES_REGEX","parseArrayOfStrings","variableString","parsedKeyValArr","_ref$required","fileRef","createRef","fileInput","files","click","fileButton","Upload","FileUploadForm","FormActions","_ref$submitLabel","submitLabel","_ref$loadingText","_ref$tooltip","setTooltipHtmlMessage","sizeClassLabel","sizeClassChildren","_ref$titleSize","titleSize","_ref$defaultFolded","titleClassName","setIsExpanded","ChevronRight","tailwindTitleSize","InputGroup","Addon","useInputGroupContext","ButtonWrapper","hasKey","isObject","_ref$itemBuilder","itemBuilder","defaultItemBuilder","_ref$renderItem","renderItem","renderDefaultItem","_ref$addLabel","addLabel","_ref$itemKeyGetter","itemKeyGetter","movable","_ref$canUndoDelete","textTip","_ref$isAddButtonHidde","addButtonDataCy","_ref$isDeleteButtonHi","isDeleteButtonHidden","deleteButtonDataCy","addButtonError","initialItemsCount","isAddButtonVisible","isDeleteButtonVisible","handleChangeItem","handleMove","handleMoveUp","ArrowUp","handleMoveDown","ArrowDown","handleRemoveItem","CanUndoDeleteButton","itemIndex","handleToggleNeedsDeletion","newItem","checkValidIndex","targetIndex","arrayMove","fromIndex","newItemValue","newItems","DefaultItem","handleDeleteClick","RotateCw","isMultiProps","MultiSelect","SingleSelect","isClearable","bindToBody","components","aria","selectedValue","_first","findSelectedOptions","ReactSelect","isOptionDisabled","menuPortalTarget","valueArr","flatMap","isGroup","_excluded2","selectedOptions","_onChange2","_ref$isCreatable","isCreatable","ReactSelectCreatable","classNamePrefix","Slider","_marks","visibleTooltip","marks","translateMinValue","RcSlider","handleRender","sliderTooltip","node","handleProps","SliderWithInput","_ref$min","_ref$step","_ref$visibleTooltip","valueAsNumber","Switch","_ref$name","fieldClass","switchClass","valueExplanation","toggleName","useCachedValidation","asyncValidate","valid","_validateForm","strict","abortEarly","yupToFormErrors","list","testContext","mapper","seen","duplicates","has","ValidationError","mixed","fileValidation","withFileExtension","allowedExtensions","fileExtension","Dialog","buttons","requireString","setCount","countRef","retFn","_loop","button","timeout","intervalID","Modal","Header","openDialog","_openDialog","openModal","CloseButton","onClose","useModalContext","ariaLabelledBy","DialogOverlay","isOpen","DialogContent","Destructive","SwitchPrompt","_ref$confirmButton","switchLabel","_ref$defaultValue","setValue","buildCancelButton","_openSwitchPrompt","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","openConfirm","_openConfirm","cancelButtonLabel","confirmDestructive","confirmWebEditorDiscard","confirmDelete","confirmUpdate","_confirmUpdate","callback","confirmChangePassword","counter","_openModal","modal","unmountComponentAtNode","userAgent","STACK_NAME_VALIDATION_REGEX","statusIcon","Status","UpdatesAvailable","UpToDate","Loader","UpdatesUnknown","ResourceType","createOwnershipColumn","accessorFn","_row$ResourceControl","ResourceControl","Ownership","ResourceControlOwnership","ADMINISTRATORS","ownershipIcon","ownership","PRIVATE","EyeOff","RESTRICTED","Users","Eye","confirmContainerDeletion","_confirmContainerDeletion","removeVolumes","startContainer","_startContainer","nodeName","urlBuilder","transformResponse","genericHandler","stopContainer","_stopContainer","endpointId","_args2","recreateContainer","_recreateContainer","_args3","PullImage","restartContainer","_restartContainer","_args4","killContainer","_killContainer","_args5","pauseContainer","_x13","_pauseContainer","_args6","resumeContainer","_x14","_x15","_resumeContainer","_args7","renameContainer","_x16","_x17","_x18","_renameContainer","_args8","removeContainer","_x19","_x20","_removeContainer","_callee9","containerId","_ref9","_yield$axios$delete","_args9","_context9","force","ContainerStatus","confirmImageExport","_confirmImageExport","getUniqueTagListFromImages","images","_uniq","image","RepoTags","imageContainsURL","buildImageFullURIFromModel","imageModel","registry","UseRegistry","Registry","buildImageFullURI","Image","ensureTag","RegistryTypes","GITHUB","namespace","Github","UseOrganisation","OrganisationName","URL","buildImageURIForGithub","GITLAB","slash","Gitlab","ProjectPath","buildImageURIForGitLab","QUAY","Quay","buildImageURIForQuay","ANONYMOUS","buildImageURIForOtherRegistry","buildImageFullURIWithRegistry","defaultTag","subAction","getInfo","_getInfo","useInfo","useIsWindows","OSType","useIsStandAlone","_info$Swarm","Swarm","NodeID","useIsSwarm","_info$Swarm2","useSystemLimits","_infoQuery$data","_infoQuery$data2","infoQuery","maxCpu","NCPU","maxMemory","MemTotal","_getVersion","useApiVersion","getVersion","useVersion","ApiVersion","parseFloat","convertServiceToConfig","service","_service$Spec","_service$Spec2","_service$Spec3","_service$Spec4","_service$Spec5","_service$Spec6","_service$Spec7","Spec","Labels","TaskTemplate","Mode","UpdateConfig","Networks","EndpointSpec","confirmServiceForceUpdate","_confirmServiceForceUpdate","pullLatest","EDGE_ASYNC_INTERVAL_USE_DEFAULT","isDefault","defaultFieldSettings","snapshot","EdgeAsyncIntervalsForm","_ref$isDefaultHidden","isDefaultHidden","_ref$readonly","_ref$fieldSettings","fieldSettings","pingIntervalOptions","useIntervalOptions","snapshotIntervalOptions","commandIntervalOptions","PingInterval","SnapshotInterval","CommandInterval","intervals","edgeAsyncIntervalsValidation","oneOf","checkinIntervalOptions","EdgeCheckinIntervalField","_ref$label","currentTarget","OsSelector","os","Linux","LayoutGrid","ScriptTabs","edgeKey","edgeId","commands","platform","_ref$asyncMode","asyncMode","_ref$onPlatformChange","onPlatformChange","agentDetails","useAgentDetails","agentSecret","agentVersion","cmd","EdgeScriptSettingsFieldset","hideIdGetter","showMetaFields","_useFormikContext","useFormikContext","GroupField","EdgeGroupsSelector","edgeGroupsIds","isGroupVisible","Dynamic","horizontal","tagsIds","edgeIdGenerator","Field","allowSelfSignedCertificates","edgePropertiesFormInitialValues","envVars","authEnabled","tlsEnabled","EdgeScriptForm","edgeInfo","showOsSelector","Formik","shape","commandsTabs","k8sLinux","useAsyncMode","agentShortVersion","getAgentShortVersion","allEnvVars","moreVars","ENV_VAR_SEPARATOR","buildEnvVars","metaEnvVars","idEnvVar","edgeIdVar","selfSigned","swarmLinux","env","buildDockerEnvVars","buildDefaultDockerEnvVars","standaloneLinux","swarmWindows","standaloneWindow","allowSelfSignedCerts","VAR_LIST_SEPARATOR","fieldName","initialOptions","setOptions","settingsQuery","useSettings","queryKeys","getEdgeGroups","_getEdgeGroups","useEdgeGroups","EnvVarsFieldset","envValue","preset","getDefaultValues","definitions","_v$select$find","TemplateSelector","_value$template","_value$template2","customTemplatesQuery","appTemplatesQuery","_useOptions","useCustomTemplates","edge","useAppTemplates","templates","Categories","TemplateType","_appTemplatesQuery$da","Description","getTemplate","_customTemplatesQuery","_appTemplatesQuery$da2","formatGroupLabel","GroupLabel","TemplateNote","note","CustomTemplateFieldset","Note","CustomTemplatesVariablesField","Variables","AppTemplateFieldset","Env","TemplateFieldset","setInitialValues","setValues","_initialValues$templa","_values$template","variables","getAppVariablesDefaultValues","getVariablesFieldDefaultValues","getInitialTemplateValues","_ref$isGroupVisible","selector","InnerSelector","valueGroups","StatusType","DeploymentType","EditorType","useAnalytics","telemetryQuery","usePublicSettings","EnableTelemetry","useCurrentEnvironment","useEnvironmentId","useEnvironment","debouncedValue","setDebouncedValue","onChangeDebounces","_debounce","withLimitToBE","defaultPath","isBE","go","useLimitToBE","localStoragePrefix","setItem","getItem","useStateWrapper","setInputValue","updateInputValue","UserContext","useIsPureAdmin","forceEnvironmentId","noEnvScope","envId","envScope","envQuery","useAuthorizations","authorizations","_envQuery$data","adminOnlyCE","authorized","useIsEnvironmentAdmin","_ref2$adminOnlyCE","_user$EndpointAuthori","authorizationsArray","userEndpointAuthorizations","EndpointAuthorizations","authorization","Authorized","_ref3$adminOnlyCE","_ref3$childrenUnautho","childrenUnauthorized","userQuery","providerState","KUBE_STACK_NAME_VALIDATION_REGEX","AnnotationsBeTeaser","FeatureId","K8S_ANNOTATIONS","newPort","serviceName","targetPort","nodePort","generateIndexedName","appName","isNameUnique","services","generateUniqueName","initialIndex","uniqueName","serviceFormDefaultValues","Headless","Namespace","StackName","Ports","ApplicationName","ApplicationOwner","Ingress","Selector","generateNewIngressesFromFormPaths","oldIngresses","newServicesPorts","oldServicesPorts","_structuredClone","oldIngressPaths","ingressPaths","ingressPath","IngressName","newPortsWithIngress","_port$ingressPaths","newIngresses","structuredClone","oldIngressPath","_newMatchingIng$Paths","Path","newMatchingIng","ingress","oldPathIndex","Paths","prependWithSlash","Host","newIngIndex","newIngresspaths","servicePort","newIngressPath","_newMatchingIng$Paths2","ServiceName","Port","PathType","getServicePatchPayload","oldService","newService","oldPayload","getServicePayload","newPayload","compare","labels","appNameLabel","appOwnerLabel","appStackNameLabel","apiVersion","kind","spec","ports","clusterIP","appStackIdLabel","appNoteAnnotation","appDeployMethodLabel","defaultDeploymentUniqueLabel","appRevisionAnnotation","unchangedAnnotationKeysForRollbackPatch","appKindToDeploymentTypeMap","kubernetesErrorParser","parseKubernetesAxiosError","useIsRBACEnabledQuery","getIsRBACEnabled","_getIsRBACEnabled","useIngressControllerClassMapQuery","allowedOnly","getIngressControllerClassMap","_getIngressControllerClassMap","controllerMaps","updateIngressControllerClassMap","_updateIngressControllerClassMap","ingressControllerClassMap","_yield$axios$put","typeOptions","KubernetesConfigurationKinds","CONFIGMAP","FileCode","SECRET","Lock","getIngresses","_getIngresses","ingresses","getIngressControllers","_getIngressControllers","_yield$axios$get3","ingresscontrollers","createIngress","_createIngress","updateIngress","_updateIngress","deleteIngresses","_deleteIngresses","ingressName","getSelfSubjectAccessReview","_getSelfSubjectAccessReview","namespaceName","verb","resource","accessReview","resourceAttributes","getServices","_getServices","clusterServices","useServicesForCluster","namespaceNames","settledServicesPromise","allSettled","lookupApplications","refetchInterval","_options$autoRefreshR","useServicesQuery","serviceNames","getService","useMutationDeleteServices","deleteServices","lookupapplications","getNamespaceServices","_getNamespaceServices","queryParams","_getService","Accept","_deleteServices","getMetricsForAllNodes","_getMetricsForAllNodes","_yield$axios$get4","nodes","getMetricsForNode","_getMetricsForNode","_yield$axios$get5","getMetricsForAllPods","_getMetricsForAllPods","_yield$axios$get6","pods","getMetricsForPod","_getMetricsForPod","_callee10","podName","_yield$axios$get7","pod","_context10","Option","HomepageFilter","_ref$filterOptions","filterOptions","placeHolder","useHomePageFilter","authorizedUsers","authorizedTeams","AccessControlForm","formNamespace","accessControlEnabled","PUBLIC","EditDetails","AccessControlPanelDetails","authorizedTeamIds","resourceControl","resourceType","_ref$isAuthorisedToFe","isAuthorisedToFetchUsers","inheritanceMessage","parentType","resourceId","ResourceId","ResourceControlType","Service","InheritanceMessage","truncate","Volume","Stack","removeEndpointIdFromStackResourceId","getInheritanceMessage","_ref2$Ownership","_ref2$UserAccesses","UserAccesses","restrictedToUsers","_ref2$TeamAccesses","TeamAccesses","restrictedToTeams","authorizedUserIds","useAuthorizedUsers","ra","UserId","TeamId","useTeams","teamsLength","unauthoisedTeams","teamsMessage","isFetched","userMessage","getOwnershipTooltip","stackName","firstUnderlineIndex","Info","AccessControlPanelForm","onCancelClick","onUpdateSuccess","updateAccess","applyResourceControlChange","accessControl","parseAccessControlFormData","_handleSubmit","validateOnChange","isSubmitting","Form","isPublicVisible","AccessControlPanel","disableOwnershipChange","_useReducer2","useReducer","isEditMode","toggleEditMode","isTeamLeader","isInherited","inheritedVolume","inheritedContainer","inheritedFromStack","checkIfInherited","restrictions","isPartOfRestrictedUsers","isLeaderOfAnyRestrictedTeams","ua","isSuccess","userMemberships","ta","TeamID","useRestrictions","isEditDisabled","_handleUpdateSuccess","publicOption","useOptions","nonAdminOptions","AccessTypeSelector","UsersField","TeamsField","overrideTooltip","_ref$isPublicVisible","_useCurrentUser","_useLoadState","useLoadState","partialValues","withNamespace","ownershipParameters","parseOwnershipParameters","updateResourceControl","_createResourceControl","createResourceControl","applyResourceControl","accessControlData","resourceControlId","subResourcesIds","_updateResourceControl","ResourceControlViewModel","_createClass","Public","System","determineOwnership","adminOnly","publicOnly","administratorsOnly","public","currentUserId","defaultValues","getGitCredentials","_getGitCredentials","buildGitUrl","useGitCredentials","credentialId","CommonFields","Logo","change","validation","currentTemplateId","_ref2$templates","TEMPLATE_NAME_VALIDATION_REGEX","CustomTemplatesVariablesDefinitionField","isVariablesNamesFromParent","isNameReadonly","errorObj","of","VariableFieldItem","definition","_value$find","getError","fieldValue","platformOptions","Platform","LINUX","WINDOWS","PlatformField","DockerSwarm","TemplateTypeSelector","isTemplateVariablesEnabled","getTemplateVariables","templateStr","_validateAndParse","Mustache","validateAndParse","_validateAndParse2","intersectVariables","newVariables","oldVariablesWithLabel","_uniqBy","_ref5","renderTemplate","_ref6","def","escape","useDeleteEnvironmentsMutation","environments","resp","deleteEnvironments","deleted","_deleteEnvironments","endpoints","getGroups","_getGroups","groups","useGroups","getEnvironments","_getEnvironments","limit","_ref$sort","_ref$query","totalAvailable","updateAvailable","by","order","tagIds","endpointIds","getAgentVersions","_getAgentVersions","getEndpoint","_getEndpoint","endpoint","snapshotEndpoints","_snapshotEndpoints","getDeploymentOptions","_getDeploymentOptions","_endpoint$DeploymentO","publicSettings","getPublicSettings","GlobalDeploymentOptions","perEnvOverride","DeploymentOptions","overrideGlobalOptions","forceUpdateService","_forceUpdateService","_callee11","serviceID","_context11","environmentQueryKeys","registries","useSystemStatus","Version","AgentSecret","useEnvironmentDeploymentOptions","ENVIRONMENTS_POLLING_INTERVAL","SortOptions","isSortType","getSortType","refetchIfAnyOffline","EnvironmentStatus","Down","useEnvironmentList","_ref$page","_ref$pageLimit","_useQuery","environmentTypesArray","types","EnvironmentType","Docker","AgentOnDocker","Azure","EdgeAgentOnDocker","KubernetesLocal","AgentOnKubernetes","EdgeAgentOnKubernetes","keepPreviousData","useEnvironmentRegistries","queryOptions","useGenericRegistriesQuery","_getEnvironmentRegistries","getEnvironmentRegistries","useUpdateEnvironmentMutation","updateEnvironment","_updateEnvironment","uploadTLSFilesForEndpoint","TLSCACert","TLSCert","TLSKey","_uploadTLSFilesForEndpoint","tlscaCert","tlsCert","tlsKey","uploadCert","cert","folder","EdgeTypes","EnvironmentCreationTypes","PlatformType","BetaAlert","isHtml","betaIcon","getPlatformType","envType","isKubernetesEnvironment","getPlatformTypeName","isAgentEnvironment","isEdgeAsync","Edge","AsyncMode","isUnassociatedEdgeEnvironment","EdgeID","isLocalEnvironment","isDockerAPIEnvironment","getDashboardRoute","getPlatformRoute","_useField2","useField","fieldProps","metaProps","helpers","groupsQuery","Edition","FeatureState","process","currentEdition","CE","_init","edition","_features","K8S_RESOURCE_POOL_LB_QUOTA","BE","K8S_RESOURCE_POOL_STORAGE_QUOTA","K8S_CREATE_FROM_KUBECONFIG","KAAS_PROVISIONING","K8SINSTALL","ACTIVITY_AUDIT","EXTERNAL_AUTH_LDAP","HIDE_INTERNAL_AUTH","HIDE_INTERNAL_AUTHENTICATION_PROMPT","K8S_SETUP_DEFAULT","RBAC_ROLES","REGISTRY_MANAGEMENT","S3_BACKUP_SETTING","S3_RESTORE","TEAM_MEMBERSHIP","FORCE_REDEPLOYMENT","HIDE_AUTO_UPDATE_WINDOW","IMAGE_UP_TO_DATE_INDICATOR","STACK_PULL_IMAGE","STACK_WEBHOOK","CONTAINER_WEBHOOK","POD_SECURITY_POLICY_CONSTRAINT","HIDE_DOCKER_HUB_ANONYMOUS","CUSTOM_LOGIN_BANNER","K8S_EDIT_YAML","ENFORCE_DEPLOYMENT_OPTIONS","K8S_ADM_ONLY_USR_INGRESS_DEPLY","K8S_ADM_ONLY_SECRETS","K8S_ROLLING_RESTART","CA_FILE","K8S_REQUIRE_NOTE_ON_APPLICATIONS","selectShow","VISIBLE","LIMITED_BE","HIDDEN","withEdition","CredentialSelector","_gitCredentialsQuery$","gitCredentials","gitCredential","NewCredentialForm","SaveCredential","NewCredentialName","AuthFieldset","isAuthExplanationVisible","_useDebounce","RepositoryUsername","username","setUsername","_useDebounce3","RepositoryPassword","password","_useDebounce4","setPassword","RepositoryAuthentication","RepositoryGitCredentialID","gitAuthValidation","isAuthEdit","isCreatedFromCustomTemplate","auth","IntervalField","_useCaretPosition","setStart","setEnd","updateCaret","_node$current","selectionStart","selectionEnd","setSelectionRange","useCaretPosition","intervalValidation","WebhookSettings","docsLink","truncateLeftRight","ForceDeploymentSwitch","AutoUpdateSettings","environmentType","showForcePullImage","baseWebhookUrl","webhookId","webhookDocs","RepositoryMechanism","RepositoryFetchInterval","ForcePullImage","RepositoryAutomaticUpdatesForce","AutoUpdateFieldset","_ref$isForcePullVisib","isForcePullVisible","webhooksDocs","RepositoryAutomaticUpdates","parseAutoUpdateResponse","Interval","Webhook","ForceUpdate","transformAutoUpdateViewModel","viewModel","autoUpdateValidation","autoUpdates","mechanism","RepositoryWebhookId","_searchRepo","PathSelector","model","dirOnly","createdFromCustomTemplateId","creds","getAuthentication","repository","RepositoryURL","reference","RepositoryReferenceName","tlsSkipVerify","TLSSkipVerify","searchRepo","retry","cacheTime","useSearch","Boolean","RepositoryURLValid","ComposePathField","isCompose","isDockerStandalone","_useStateWrapper2","_checkRepo","_options$creds","gitCredentialId","GitFormUrlField","onChangeRepositoryValid","setForce","repoStatusQuery","onSettled","checkRepo","useCheckRepo","debouncedOnChange","RefreshCcw","AdditionalFileField","GitForm","_ref$environmentType","_ref$deployMethod","deployMethod","_ref$isDockerStandalo","isAdditionalFilesFieldVisible","_ref$errors","RefField","isUrlValid","ComposeFilePathInRepository","AdditionalFiles","AutoUpdate","TimeWindowDisplay","validateGitForm","_validateGitForm","buildGitValidationSchema","_unused","refFieldValidation","nullable","InfoPanel","configFilePath","_ref$additionalFiles","additionalFiles","_listRefs","_data","RefSelector","stackId","_useGitRefs","listRefs","useGitRefs","refs","unshift","Wrapper","tip","TimeWindowDisplayWrapper","currentEnvQuery","ChangeWindow","Enabled","timezone","moment","guess","isDST","_utcToTime","utcTime","parseInterval","startTime","tz","endTime","utcToTime","StartTime","EndTime","startTimeLocal","endTimeLocal","_parseInterval","startTimeUtc","endTimeUtc","shortTime","parseTime","originalTime","_originalTime$split2","startHour","startMin","setHours","setMinutes","toGitFormModel","ReferenceName","ConfigFilePath","Authentication","GitCredentialID","Password","confirmEnableTLSVerify","LicenseType","listeners","invalidated","_getLicenseInfo","_info","lastLoaded","abs","listener","useIntegratedLicenseInfo","_useNodesCount","useNodesCount","isLoadingNodes","_useNodesCount$data","nodesCount","_useLicenseInfo","getLicenseInfo","Trial","licenseInfo","usedNodes","newUserNotifications","removeNotifications","notificationIds","registryId","useRegistries","getRegistries","queryKey","fetcher","hideDefaultOverride","hideDefault","hideDefaultRegistryQuery","_settings$DefaultRegi","DefaultRegistry","Hide","DOCKERHUB","_getRegistries","getSettings","useUpdateSettingsMutation","updateSettings","useUpdateDefaultRegistrySettingsMutation","updateDefaultRegistry","useExperimentalSettings","experimental","getExperimentalSettings","_getExperimentalSettings","useUpdateExperimentalSettingsMutation","updateExperimentalSettings","_updateExperimentalSettings","_getPublicSettings","getGlobalDeploymentOptions","_getGlobalDeploymentOptions","_getSettings","_updateSettings","_updateDefaultRegistry","defaultRegistry","subResource","AuthenticationMethod","OAuthStyle","getNodesCount","_getNodesCount","getSystemStatus","_getSystemStatus","retryDelay","useIsDemo","DemoEnvironment","_getSystemVersion","getSystemVersion","AppTemplatesListItem","duplicateCustomTemplateType","SwarmStack","ComposeStack","getCustomTemplateType","TemplateItem","typeLabel","renderActions","appTemplateId","useSortAndFilterTemplates","listState","_listState$sortBy3","_listState$sortBy4","disabledTypes","filterByCategory","filterBySearch","_item$Note","_item$Name","filterByTemplateType","_listState$sortBy","_listState$sortBy2","sortMultiplier","sortByCategories","aCategory","bCategory","TemplateListSort","_value$id","_value$desc2","sortByContainer","sortByElement","_value$desc","sortButton","orderByFields","typeFilters","Filters","_ref$disabledTypes","_ref$fixedCategories","fixedCategories","_sortBy","templatesTypes","typeFiltersEnabled","setCategory","setTypes","AppTemplatesList","initialTemplates","templateLinkParams","setPage","filteredTemplates","pagedTemplates","registriesQuery","_getTemplatesWithRegistry","getTemplatesWithRegistry","_yield$getAppTemplate","getAppTemplates","TemplateViewModel","registryURL","reg","DockerHubViewModel","RegistryModel","_getAppTemplates","useFetchTemplateFile","fetchFilePreview","_fetchFilePreview","FileContent","setTemplatesV2","setTemplatesV3","templateV2ID","_data$volumes","_data$env","AdministratorOnly","administrator_only","getPlatform","logo","Repository","Hostname","PorImageRegistryModel","Command","Network","network","Privileged","privileged","Interactive","RestartPolicy","restart_policy","Hosts","hosts","envvar","_envvar$select$find","EnvVarType","PreSelected","Text","getEnvVarTypeAndValue","Volumes","volumes","_data$ports","portAndProtocol","hostAndContainerPort","hostPort","containerPort","templatePorts","Rocket","LinuxIcon","MicrosoftIcon","KubernetesIcon","CustomTemplatesListItem","isEditAllowed","CreatedByUserId","getTypeLabel","CustomTemplatesList","getCustomTemplate","_getCustomTemplate","useCustomTemplate","useCustomTemplateFile","getCustomTemplateFile","refetchOnReconnect","refetchOnWindowFocus","_getCustomTemplateGitFetch","getCustomTemplateGitFetch","_getCustomTemplateFileContent","getCustomTemplateFileContent","_getCustomTemplates","getCustomTemplates","_ref2$edge","onlyLedTeams","_ref$select","getTeams","useTeam","getTeam","useTeamMemberships","getTeamMemberships","useAddMemberMutation","teamId","userIds","createTeamMembership","Member","useRemoveMemberMutation","teamMemberships","UserID","deleteTeamMembership","useUpdateRoleMutation","updateTeamMembership","_createTeamMembership","_deleteTeamMembership","_updateTeamMembership","_getTeams","_getTeam","deleteTeam","_deleteTeam","createTeam","_createTeam","leaders","leaderId","_getTeamMemberships","ROOT_PATH","HostBrowserController","HostBrowserService","FileSaver","goToParent","browse","confirmDeleteFile","isRoot","getRelativePath","getFilesForPath","getFilesForPathAsync","downloadFile","downloadFileAsync","renameFile","renameFileAsync","deleteFile","deleteFileAsync","onFileSelectedForUpload","onFileSelectedForUploadAsync","rootPathRegex","parentPath","buildPath","ls","newName","filePath","newFilePath","rename","fileName","downloadData","Blob","saveAs","$onInit","_join","_slice","onFileUploaded","refreshList","autoNgTemplateLoaderTemplate1","templateUrl","NodeSelectorController","AgentService","agents","NodeName","VolumeBrowserController","volumeId","isUploadEnabled","HttpRequestHelper","VolumeBrowserService","renameAsync","download","downloadAsync","up","parentFolder","AgentViewModel","IPAddress","NodeRole","AgentFactory","$resource","StateManager","getAgentApiVersion","factory","BrowseFactory","browseGetResponse","responseType","AgentDockerhub","limits","HostFactory","AgentPingFactory","interceptor","responseError","AgentServiceFactory","Agent","AgentVersion1","agentApiVersion","$promise","hostInfo","HostBrowserServiceFactory","Browse","newPath","CurrentFilePath","NewFilePath","onProgress","AgentPingService","AgentPing","VolumeBrowserServiceFactory","BrowseVersion1","getBrowseService","volumeID","basePath","excludedPaths","$analyticsProvider","$windowProvider","$window","$get","pageTracking","trackRelativePath","api","setCustomVariable","varIndex","varName","scope","deleteCustomVariable","trackSiteSearch","searchCount","trackGoal","goalID","revenue","trackLink","linkType","registerSetUsername","registerPageTrack","registerEventTrack","registerExceptionTrack","stack","onStartupAngular","$rootScope","cfpLoadingBar","$transitions","originalSet","onStart","toList","treeChanges","toConfigs","viewService","_viewConfigs","vc","viewDecl","$context","$","ajaxSend","jqXhr","jqOpts","hasNoContentType","contentType","setRequestHeader","csrfCookie","cookieStore","innerHTML","head","prepend","csrfTokenHeader","csrfToken","csrfInterceptor","csrfTokenReaderInterceptorAngular","configApp","$urlRouterProvider","$httpProvider","localStorageServiceProvider","$uibTooltipProvider","$compileProvider","cfpLoadingBarProvider","reqConfig","setPrefix","patch","Terminal","applyAddon","fit","setTriggers","mouseenter","focus","outsideClick","includeSpinner","parentSelector","latencyThreshold","otherwise","TRUNCATE_LENGTH","truncateContainerName","setTruncateContainerName","hiddenQuickActions","setHiddenQuickActions","columnHelper","createColumnHelper","created","accessor","isoDateFromTimestamp","Created","host","linkProps","shortImageName","trimSHASum","ip","IP","TableSettingsContext","useTableSettings","getContextType","TableSettingsProvider","Names","shortName","_truncate","PublishedPortLink","hostURL","generateContainerURL","ExternalLink","stripTrailingSlash","_createRowContext","private","PublicURL","ContainerQuickActions","isActive","Starting","Running","Healthy","Unhealthy","showQuickActionLogs","showQuickActionInspect","showQuickActionStats","BarChart","showQuickActionExec","showQuickActionAttach","Paperclip","display","_settings$hiddenQuick","wrapperState","someOn","multiple","regex","hasHealthCheck","statusClassName","Paused","Stopped","Dead","Exited","getClassName","transformedStatus","StatusText","filterFn","snapshotQuery","plugins","rootQueryKeys","containers","containersQuery","containerQueryKeys","dockerQueryKeys","filters","gpus","_getContainerGpus","gpusQuery","getContainerGpus","useContainerGpus","useColumns","isHostColumnVisible","isGPUsColumnVisible","ContainersDatatableActions","isAddActionVisible","selectedItemCount","hasPausedItemsSelected","State","hasStoppedItemsSelected","hasRunningItemsSelected","executeActionOnContainerList","onStartClick","Play","onStopClick","Square","onKillClick","Slash","onRestartClick","onPauseClick","Pause","onResumeClick","_onRemoveClick","onRemoveClick","isOneContainerRunning","removeSelectedContainers","_executeActionOnContainerList","successMessage","_removeSelectedContainers","ContainersDatatableSettings","isRefreshVisible","toListViewModel","_response$Portainer","_response$Portainer2","_response$Portainer3","_Object$values$","_response$NetworkSett","_response$Ports","_response$Names","Portainer","NetworkSettings","createStatus","PublicPort","PrivatePort","names","Gpus","useShowGPUsColumn","environmentID","isDockerStandaloneQuery","ControlAvailable","enableGPUManagementQuery","EnableGPUManagement","QuickActionsSettings","actions","buildAction","useContainers","_getContainers","getContainers","_ref2$all","settingsStore","StatusMode","healthy","unhealthy","starting","GpusList","buildDockerUrl","buildProxyUrl","dockerAction","buildDockerProxyUrl","_getImages","withUsage","imageId","used","humanize","_item$tags","repoTags","tableKey","RemoveButtonMenu","positionRight","MenuItem","ImportExportButtons","isExportInProgress","onExportClick","Download","dateTime","isoDate","withMeta","isFilesTableMeta","EditForm","originalName","onSave","onReset","isEdit","custom","onRename","setIsEdit","Dir","onBrowse","Folder","FileIcon","hideIfCustom","onDownload","FilesTable","onGoToParent","isUploadAllowed","isEditState","setIsEditState","CornerLeftUp","Size","ModTime","editState","_e$target$files","CreatedAt","withGlobalFilter","isExternalStack","External","isRegularStack","Regular","isOrphanedStack","Orphaned","TableSettingsMenus","showOrphanedStacks","setShowOrphanedStacks","NameLink","Active","Inactive","_ref4$column","external","regular","orphaned","orphanedRunning","OrphanedRunning","ImageUpToDateTooltip","EnableImageNotification","_getStackImagesStatus","Message","StackImageStatus","enableImageNotificationQuery","_useStackImageNotific","getStackImagesStatus","isError","imageNotificationColumn","control","Warning","orphanedFilter","_item$ResourceControl","_item$IPAM$IPV4Config","_item$IPAM","IPAM","IPV4Configs","Subnet","_item$IPAM$IPV4Config2","_item$IPAM2","Gateway","_item$IPAM$IPV6Config","_item$IPAM3","IPV6Configs","_item$IPAM$IPV6Config2","_item$IPAM4","NestedTable","NestedDatatable","NestedNetworksDatatable","_getNetwork","networkId","_deleteNetwork","_disconnectContainer","Force","useDisconnectContainer","disconnectContainer","buildActions","disconnectMutation","isContainerNetworkTableMeta","connectContainer","_connectContainer","aliases","EndpointConfig","Aliases","_getNetworks","local","swarm","swarmAttachable","Scope","Attachable","NetworkSelector","_ref$additionalOption","additionalOptions","_ref$hiddenNetworks","hiddenNetworks","networksQuery","useNetworksForSelector","networks","isSwarmQuery","dockerApiVersion","getNetworks","useNetworks","ConnectNetworkForm","selectedNetworks","connectMutation","useConnectContainerMutation","isNetworkDefined","MacAddress","buildColumns","GlobalIPv6Address","IPv6Gateway","containersModule","extenders","ImageStatus","SERVICE","proxyQueryKeys","useNodes","_getNodes","getNodes","ConstraintModel","op","patterns","nodeId","nodeHostname","nodeRole","nodeLabels","engineLabels","eq","neq","matchesConstraint","constraint","matchesLabel","extractValue","_constraint$split$pop","extractCustomLabelKey","baseLabelKey","_constraint$split$shi","matchesServiceConstraints","_node$Description","_node$Spec","_node$Spec2","_node$Description2","Constraints","constraints","transformConstraints","Engine","encodeRegistryCredentials","credentials","btoa","updateService","_updateService","serviceId","rollback","ScaleForm","replicas","Replicas","_config$Mode","Model","onKeyUp","autoFocus","CheckSquare","ScaleServiceButton","Minimize2","schedulingMode","nodesQuery","tasks","Tasks","task","_task$Status","DesiredState","availableNodeCount","availableNodes","_node$Status","Availability","PublishedPort","TargetPort","environmentQuery","_item$Status","TaskTableQuickActions","taskId","_ref$state","slot","Slot","getNodeName","updated","TasksDatatable","getWebhooks","_getWebhooks","EndpointID","ResourceID","removeWebhooksForService","_removeWebhooksForService","webhooks","webhook","removeWebhook","_removeWebhook","_removeService","isUpdateActionVisible","removeMutation","ids","removeService","useRemoveServicesMutation","updateMutation","useForceUpdateServicesMutation","_handleUpdate","handleUpdate","_handleRemove","handleRemove","TableSettings","expanded","setExpanded","isTableMeta","getTableMeta","isAgent","servicesModule","isSlotColumnVisible","isSlotColumnsVisible","_ref$titleIcon","Shuffle","isStackColumnVisible","selectedRows","onExpandedChange","updater","withControlledSelected","rowSelection","onRowSelectionChange","haveAccessToNode","availability","engine","cpu","CPUs","networksModule","isIpColumnVisible","HardDrive","swarmModule","Trello","isBrowseVisible","dangling","volumesModule","isSwarm","Driver","Mountpoint","Database","Entrypoint","ExposedPorts","volume","getPairKey","getPairValue","health","Server","HeartPulse","FailingStreak","Log","Output","Box","_item$Subs","Subs","defColumns","hostColumn","imagesQuery","getImages","useImages","hasWriteAccessQuery","Clipboard","relativePath","Clock","isImageNotificationEnabled","canManageStacks","CreatedBy","UpdatedBy","Layers","allowSelection","componentsModule","systemNetworks","isSystemNetwork","networkName","NetworkDetailsTable","_network$IPAM","_network$IPAM2","onRemoveNetworkClicked","allowRemoveNetwork","ipv4Configs","DockerNetworkHelper","getIPV4Configs","Config","ipv6Configs","getIPV6Configs","Internal","getConfigDetails","IPRange","getAuxiliaryAddresses","AuxiliaryAddresses","configValue","auxiliaryAddresses","NetworkOptionsTable","networkEntries","tableHeaders","NetworkContainersTable","networkContainers","IPv4Address","IPv6Address","ContainersDatatable","IsPortainer","useContainer","_getContainer","getContainer","LogsDisabledInfoPanel","_useCurrentStateAndPa4","createWebhook","_createWebhook","WebhookType","_pullImage","ignoreErrors","authenticationDetails","imageURI","fromImage","createOrReplace","oldContainer","isReplace","_replace","_create","_containerResponse$Po","containerResponse","pullImageIfNeeded","alwaysPull","createAndStart","applyContainerSettings","enableWebhook","_containerResponse$Po2","extraNetworks","renameAndCreate","connectToExtraNetworks","_renameAndCreate","renamed","_applyContainerSettings","createContainerWebhook","_createAndStart","createContainer","_x21","_pullImageIfNeeded","pull","_x22","_x23","_x24","_createContainer","_x25","_x26","_x27","_createContainerWebhook","RegistryId","DockerContainer","getURL","getQuayUrl","getGithubUrl","isNumericPortBinding","isStringPortBinding","isValidPortRange","portRange","parsePortRange","portRangeString","stringPorts","intPorts","_map","parsePort","portPattern","useRegistry","_getRegistry","getRegistry","InputSearch","getIsDockerHubRegistry","SimpleForm","onChangeImage","registryUrl","getRegistryURL","isDockerHubRegistry","RegistrySelector","ImageField","DockerIcon","ImageFieldAutoComplete","imageOptions","isKnownRegistry","registryImages","_difference","getImagesForRegistry","_registry$Gitlab","_registry$Github","_registry$Github2","AdvancedForm","RateLimits","onRateLimit","registryQuery","RateLimitsInner","isAuthenticated","_ref2$isAuthenticated","_ref2$registryId","pullRateLimits","isValidForPull","_getLocalEnvironmentRateLimits","getLocalEnvironmentRateLimits","getEnvType","_getAgentEnvironmentRateLimits","getAgentEnvironmentRateLimits","getRateLimits","remaining","useRateLimits","ImageConfigFieldset","_getApiVersion","buildAgentUrl","NodeSelector","apiVersionQuery","getApiVersion","useAgentNodes","PortsMappingField","_ref$onChange","ArrowRight","BaseForm","onChangeName","onChangeImageName","isAgentOnSwarm","_environmentQuery$dat","useIsAgentOnSwarm","canUseWebhook","field","publishAllPorts","autoRemove","baseFormUtils","toRequest","oldConfig","portBindings","_forEach","portBinding","portInfo","containerPortRange","startPort","endPort","hostIp","hostAndPort","_split3","hostPortRange","startHostPort","endHostPort","extractPortInfo","_range","bindKey","HostIp","HostPort","parsePortBindingRequest","HostConfig","PublishAllPorts","PortBindings","AutoRemove","toViewModel","_config$Portainer","_config$HostConfig","_config$HostConfig2","_config$HostConfig3","parsedPorts","sortedPorts","_key$split2","containerPortNumber","binding","_binding$HostPort","parsePorts","rangePorts","nonRangePorts","sortPorts","lastPort","getRange","combinePorts","isDuplicating","isDuplicatingPortainer","isDockerhubRateLimited","accessControlSchema","bool","getDefaultViewModel","capabilities","CapabilitiesTab","cap","capabilitiesTabUtils","hideCapabilities","CapAdd","CapDrop","_getDefaults","getDefaults","missingCaps","consoleSettingTypes","ConsoleSettings","_getPlugins","useServicePlugins","systemOnly","pluginType","pluginVersion","systemPluginsQuery","Plugins","pluginsQuery","getPlugins","usePlugins","_pluginsQuery$data","systemPlugins","plugin","Interface","Types","aggregateData","LoggerConfig","pluginOptions","_ref2$item","entrypoint","workingDir","logConfig","getLogConfig","OverridableInput","override","CommandsTab","commandsTabUtils","LogConfig","WorkingDir","OpenStdin","Tty","getConsoleConfig","Cmd","LabelsTab","labelsTabUtils","CONTAINER_MODE","ContainerSelector","NetworkTab","networkMode","domain","macAddress","ipv4Address","ipv6Address","primaryDns","secondaryDns","hostsFileEntries","HostsFileEntryItem","networkTabUtils","fromContainerId","_oldConfig$Networking","hostName","Domainname","NetworkMode","Dns","ExtraHosts","NetworkingConfig","EndpointsConfig","IPAMConfig","al","_config$NetworkSettin","_config$Config","_config$Config2","runningContainers","_ref2$","_ref2$2","_getNetworkMode","_config$NetworkSettin2","_runningContainers$fi","networkContainerId","networkNames","getNetworkMode","_getNetworkMode2","_getNetworkMode2$","networkSettings","isWindows","DevicesField","pathOnHost","pathInContainer","NvidiaCapabilitiesOptions","GpuFieldset","_ref$gpus","_ref$usedGpus","usedGpus","usedAllGpus","enableGpuManagement","gpu","gpuCmd","devices","selectedGPUs","deviceStr","caps","gpuValue","capValue","onChangeValues","backspaceRemovesValue","actionMeta","_actionMeta$option","useSpecific","MultiValueRemove","_props$data","selectProps","gpuFieldsetUtils","deviceRequests","driver","otherDeviceRequests","deviceRequest","Count","DeviceIDs","Capabilities","_deviceRequest$Capabi","_o$Capabilities","toConfigMemory","decimals","tenth","pow","round","EPSILON","toViewModelMemory","toViewModelCpu","toConfigCpu","ResourceFieldset","_useSystemLimits","reservation","NanoCpus","MemoryReservation","Memory","resourcesValidation","_ref2$maxMemory","POSITIVE_INFINITY","_ref2$maxCpu","RuntimeSelector","Runtimes","runtime","RuntimeSection","allowPrivilegedMode","isInitFieldVisible","SysctlsField","ResourcesTab","isDevicesFieldVisible","isSysctlFieldVisible","renderLimits","isStandalone","gpuUseAll","gpuUseList","sysctls","sharedMemorySize","resources","resourcesTabUtils","Init","Runtime","Devices","device","PathOnHost","PathInContainer","CgroupPermissions","Sysctls","sysctl","ShmSize","DeviceRequests","toResourcesRequest","_config$HostConfig4","_config$HostConfig5","_config$HostConfig6","_config$HostConfig7","_config$HostConfig8","_config$HostConfig9","_config$HostConfig10","RestartPolicyTab","No","Always","OnFailure","UnlessStopped","restartPolicyTabUtils","volumeTypes","InputContext","_getVolumes","VolumeSelector","volumesQuery","getVolumes","useVolumes","vol1","vol2","vol","allowBindMounts","useInputContext","containerPath","VolumesTab","volumesTabUtils","validValues","binds","Binds","Mounts","mount","Source","Destination","RW","EnvVarsTab","envVarsTabUtils","_container$Config","restartPolicy","updateContainer","_updateContainer","EditResourcesForm","redeploy","isImageInvalid","savedInitValues","setSavedInitValues","_updateLimitsOrCreate","systemLimits","helper","resetForm","invalidateContainer","dirty","submitForm","settingUnlimitedResources","updateLimits","_updateLimits","MemorySwap","InnerForm","_ref$hideCapabilities","isDuplicate","tab","setTab","isEnvironmentAdminQuery","Settings","SecuritySettings","allowBindMountsForRegularUsers","allowPrivilegedModeForRegularUsers","allowDeviceMappingForRegularUsers","allowSysctlSettingForRegularUsers","ignoreCapabilities","CreateForm","_initialValuesQuery$i","isEnvironmentAdmin","setIsDockerhubRateLimited","useCreateOrReplaceMutation","initialValuesQuery","submitting","_fromContainer$Networ","_fromContainer$Config","_webhookQuery$data","_useCurrentStateAndPa2","fromContainerQuery","runningContainersQuery","webhookQuery","useWebhooks","fromContainer","_fromContainer$Id","imageConfig","findBestMatchRegistry","lastIndex","getImageConfig","useInitialValues","_useOldContainer","initialName","setName","debouncedName","timer","useDebouncedValue","oldContainerQuery","syncName","useOldContainer","useValidation","allowContainerCapabilitiesForRegularUsers","_initialValuesQuery$i2","sendAnalytics","containerImage","autoNgTemplateLoaderTemplate2","autoNgTemplateLoaderTemplate3","autoNgTemplateLoaderTemplate4","autoNgTemplateLoaderTemplate5","autoNgTemplateLoaderTemplate6","envInfoQuery","isSwarmManager","_containerQuery$data$","containerQuery","logsEnabled","$stateRegistryProvider","register","views","viewsModule","_network$Portainer","networkQuery","getNetwork","useNetwork","deleteNetworkMutation","deleteNetwork","filterContainersInNetwork","Containers","_onRemoveNetworkClicked","Options","reactModule","autoNgTemplateLoaderTemplate7","autoNgTemplateLoaderTemplate8","autoNgTemplateLoaderTemplate9","autoNgTemplateLoaderTemplate10","autoNgTemplateLoaderTemplate11","autoNgTemplateLoaderTemplate12","autoNgTemplateLoaderTemplate13","autoNgTemplateLoaderTemplate14","autoNgTemplateLoaderTemplate15","autoNgTemplateLoaderTemplate16","autoNgTemplateLoaderTemplate17","autoNgTemplateLoaderTemplate18","autoNgTemplateLoaderTemplate19","autoNgTemplateLoaderTemplate20","autoNgTemplateLoaderTemplate21","autoNgTemplateLoaderTemplate22","autoNgTemplateLoaderTemplate23","autoNgTemplateLoaderTemplate24","autoNgTemplateLoaderTemplate25","autoNgTemplateLoaderTemplate26","autoNgTemplateLoaderTemplate27","autoNgTemplateLoaderTemplate28","autoNgTemplateLoaderTemplate29","autoNgTemplateLoaderTemplate30","autoNgTemplateLoaderTemplate31","abstract","onEnter","EndpointService","SystemService","EndpointProvider","PortainerEndpointTypes","DockerEnvironment","AgentOnDockerEnvironment","EdgeAgentOnDockerEnvironment","Up","checkEndpointStatus","updateEndpoint","updateEndpointStatus","updateEndpointState","redirect","environmentName","clean","inherit","configs","controllerAs","configCreation","dashboard","events","imageBuild","imageImport","networkCreation","secrets","secret","secretCreation","serviceCreation","serviceLogs","stacks","stackContainer","stackCreation","swarmVisualizer","taskLogs","volumeBrowse","volumeCreation","ctrl","editModel","save","maximumRetryCount","updateRestartPolicy","agentCount","hostDetails","engineDetails","disks","refreshUrl","browseUrl","hostFeaturesEnabled","transclude","isBrowseEnabled","originalValue","removeLabel","onChangedLabels","updateLabel","originalKey","NodeService","LabelHelper","managerAddress","hasChanges","managerRole","updateNodeLabels","updateNodeAvailability","saveChanges","originalNode","fromKeyValueToLabelHash","updateNode","cancelChanges","porImageRegistryContainerController","DockerHubService","fetchRateLimits","setValidity","checkRateLimits","rateLimitExceeded","porImageRegistryController","ImageHelper","RegistryService","ImageService","onRegistryChange","onImageChange","$watch","prepareAutocomplete","_filter","_includes","_flatMap","imagesWithoutKnown","availableImages","displayedRegistryURL","showDefaultRegistry","_find","reloadRegistries","loadImages","inputClass","displayTimestamps","logCollectionChange","sinceTimestamp","lineCount","resourceName","availableSinceDatetime","subtract","copySupported","supported","logCollection","autoScroll","wrapLines","filteredLogs","selectedLines","handleLogsCollectionChange","handleLogsWrapLinesChange","handleDisplayTimestampsChange","copy","log","show","fadeOut","copySelection","clearSelection","selectLine","downloadLogs","logsAsString","applicationState","NetworkService","onChangeSelectedNodes","DatatableState","requiredNodeSelection","requiredConfigSelection","SelectedNetworkConfig","onChangeScope","provider","hasNetworks","availableNetworks","ConfigOnly","Sliders","Share2","MacvlanFormData","ParentNetworkCard","VolumesCIFSFormData","useCIFS","serverAddress","share","versions","versionsNumber","VolumesNFSFormData","useNFS","mountPoint","includeString","str","charCodeAt","strToHash","hashToHexColor","Ghost","createdBy","flattenConfig","ConfigID","ConfigName","FileName","Uid","UID","Gid","GID","credSpec","configConfig","createPortRange","portRangeText","colonIndex","substr","portBindingKeys","_keys","portBindingKeysByProtocol","_groupBy","portKey","portBindingKeysByHostIp","sortedPortBindingKeys","_orderBy","previousHostPort","previousContainerPort","portKeySplit","bindingHostPort","_flatten","_trimStart","isValidTag","createImageConfigForContainer","getImagesNamesForDownload","removeDigestFromRepository","agentProxy","_isEmpty","fromLabelHashToKeyValue","added","labelKV","static","nodeToConfig","flattenSecret","SecretID","SecretName","secretConfig","otherServicesTasks","ServiceId","keyValuePreferences","preferences","preference","strategy","Spread","SpreadDescriptor","keyValueConstraints","operatorIndices","indexEquals","getOperator","humanDuration","nanos","duration","unit","asMilliseconds","conversionFromNano","logOptions","keyValueLogDriverOpts","ipHostEntries","entry","keyValue","ContainerId","optionArray","mounts","j","ConfigViewModel","UpdatedAt","Index","Data","decodeURIComponent","atob","b64DecodeUnicode","statusText","ContainerViewModel","ImageID","Checked","ContainerStatsViewModel","read","preread","memory_stats","privateworkingset","MemoryUsage","MemoryCache","NumProcs","num_procs","stats","usage","PreviousCPUTotalUsage","precpu_stats","cpu_usage","total_usage","PreviousCPUSystemUsage","system_cpu_usage","CurrentCPUTotalUsage","cpu_stats","CurrentCPUSystemUsage","CPUCores","percpu_usage","online_cpus","_values","blkio_stats","io_service_bytes_recursive","readData","BytesRead","writeData","BytesWrite","noIOdata","ContainerDetailsViewModel","Args","EventViewModel","Time","Details","eventAttr","Actor","Attributes","Action","extra","hasColon","exitCode","createEventDetails","ImageViewModel","Tag","RepoDigests","digest","Used","ImageBuildModel","hasError","buildLogs","stream","errorDetail","ImageDetailsViewModel","Parent","DockerVersion","Os","Architecture","Author","ContainerConfig","ImageLayerViewModel","Order","Comment","Tags","PluginViewModel","SwarmViewModel","buildImage","ignoreLoadingBar","jsonObjectsToArrayHandler","buildImageOverride","commitContainer","repo","remove","logsHandler","top","exec","inspect","update","prune","resize","w","endpointID","history","insert","imageGetResponse","deleteImageHandler","connect","disconnect","isJSON","jsonString","fromJson","since","until","dataUsage","Build","FileUploadService","deferred","defer","remote","dockerfile","uploadFiles","buildImageFromFiles","configId","ContainerServiceFactory","$timeout","maximumRetryCounts","MaximumRetryCount","configuration","execConfig","stdout","stderr","timestamps","tail","parameters","containerStats","Exec","execId","ContainerService","containerByImageId","layers","imageLayer","registryModel","encodedCredentials","imageConfiguration","finally","pullImageAndIgnoreErrors","detail","pullImageAndAcknowledgeErrors","forceRemoval","NetworkViewModel","ConfigFrom","networkConfiguration","localNetworks","swarmNetworks","swarmAttachableNetworks","filteredNetworks","NodeViewModel","_data$Version","_data$Spec","_data$Spec2","_data$Spec3","_data$Spec4","_data$Description","_data$Description2","_data$Description3","_data$Description4","_data$Description5","_data$Description6","_data$Description7","_data$Description8","_data$Status","_data$Status2","_data$Status3","EngineLabels","PlatformArchitecture","PlatformOS","OS","Resources","NanoCPUs","MemoryBytes","EngineVersion","Addr","ManagerStatus","Reachability","ManagerAddr","Node","rawNode","Plugin","servicePlugins","system","aggregatedPlugins","volumePlugins","networkPlugins","loggingPlugins","SecretViewModel","_data$Portainer","Secret","secretId","ServiceViewModel","_data$Spec5","_data$Spec6","_data$Spec7","_data$Spec8","_data$Spec9","_data$Spec10","_data$Spec11","_data$Spec12","_data$Spec13","_data$Spec14","_data$Spec15","ContainerSpec","Limits","LimitNanoCPUs","LimitMemoryBytes","Reservations","ReservationNanoCPUs","ReservationMemoryBytes","RestartCondition","Condition","RestartDelay","Delay","RestartMaxAttempts","MaxAttempts","RestartWindow","Window","LogDriver","LogDriverName","LogDriverOpts","Placement","Preferences","Platforms","containerSpec","ContainerLabels","Arguments","Groups","TTY","ReadOnly","StopSignal","StopGracePeriod","HealthCheck","DNSConfig","Secrets","Configs","Endpoint","VirtualIPs","UpdateParallelism","Parallelism","UpdateDelay","UpdateFailureAction","FailureAction","UpdateOrder","RollbackConfig","Scale","EditName","serv","TaskViewModel","Updated","ServiceID","NodeId","ContainerID","Task","VolumeViewModel","VolumeHelper","driverOptions","DriverOpts","createDriverOptions","volumeConfiguration","volumeConfigurations","createVolumeQueries","createVolume","ConfigsController","ConfigService","removeAction","removeActionAsync","getConfigs","getConfigsAsync","actionCount","CreateConfigController","$transition$","FormValidator","ResourceControlService","AccessControlData","AccessControlFormData","ConfigContent","formValidationError","isEditorDirty","editorUpdate","createAsync","onbeforeunload","displayCodeEditor","labelName","labelValue","prepareLabelsConfig","prepareConfigData","configData","unescape","encodeURIComponent","prepareConfiguration","validateAccessControl","userDetails","getUserDetails","onUpdateResourceControlSuccess","removeConfig","ContainerHelper","ExecService","LocalStorage","SidebarService","socket","term","states","freeze","disconnected","connecting","connected","restcall","termWidth","cols","initTerm","resizeRestCall","isLinuxTerm","resizefun","WebSocket","onopen","send","onData","terminal_container","getElementById","setOption","onresize","$apply","isSidebarOpen","onmessage","write","onclose","loaded","containerCommands","$on","connectAttach","attachId","origin","k","resizeTTY","connectExec","isCustomCommand","customCommand","AttachStdin","AttachStdout","AttachStderr","createExec","isLinuxCommand","isLinuxTerminalCommand","close","dispose","autoconnectAttachView","initView","containerLabels","imageOS","handleIsCustomCommandChange","ConfirmRecreationModal","cannotPullImage","setPullLatest","_confirmContainerRecreation","$filter","Commit","activityTime","displayRecreateButton","displayCreateWebhookButton","containerWebhookFeature","commitInProgress","recreateContainerInProgress","pullImageValidity","setPullImageValidity","validity","computeDockerGPUCommand","gpuOptions","gpuStr","edit","newContainerName","StartedAt","utc","FinishedAt","portMapping","mapping","inSwarm","admin","allowHostNamespaceForRegularUsers","settingRestrictsRegularUsers","executeContainerAction","commitContainerAsync","kill","pause","unpause","restart","commit","confirmRemove","cleanAssociatedVolumes","recreate","confirmContainerRecreation","DisplayTextView","containerInfo","$interval","repeater","isDefined","cancel","setUpdateRepeater","skipHeaders","unix","changeLogCollection","logCollectionStatus","$document","ChartService","updateNetworkChart","chart","rx_bytes","tx","tx_bytes","UpdateNetworkChart","updateMemoryChart","UpdateMemoryChart","updateIOChart","noIOData","UpdateIOChart","updateCPUChart","possIntervals","windowsCpuUsage","calculateCPUPercentWindows","cpuPercent","cpuDelta","systemDelta","calculateCPUPercentUnix","UpdateCPUChart","networkChart","cpuChart","memoryChart","ioChart","containerTop","processInfo","networkStatsUnavailable","ioStatsUnavailable","changeUpdateRepeater","ready","networkChartCtx","CreateNetworkChart","cpuChartCtx","CreateCPUChart","memoryChartCtx","CreateMemoryChart","ioChartCtx","CreateIOChart","startChartUpdate","initCharts","Power","runningContainersFilter","stoppedContainersFilter","Heart","healthyContainersFilter","unhealthyContainersFilter","ImagesTotalSize","imagesTotalSize","PieChart","VolumeService","ServiceService","StackService","TagService","dismissInformationPanel","showStacks","buildGpusStr","gpuUseSet","gpusAvailable","exist","gpuAvailable","_str","endpointMode","allowStackManagementForRegularUsers","shouldShowStacks","showEnvUrl","EdgeAgentOnKubernetesEnvironment","containerStatusComponent","imagesTotalSizeComponent","volumeCount","networkCount","serviceCount","stackCount","gpuInfoStr","gpuFreeStr","endpointTags","TagIds","DockerFeaturesConfigurationController","$analytics","SettingsService","limitedFeatureAutoUpdate","limitedFeatureUpToDateImage","enableHostManagementFeatures","allowVolumeBrowserForRegularUsers","disableBindMountsForRegularUsers","disablePrivilegedModeForRegularUsers","disableHostNamespaceForRegularUsers","disableStackManagementForRegularUsers","disableDeviceMappingForRegularUsers","disableContainerCapabilitiesForRegularUsers","disableSysctlSettingForRegularUsers","actionInProgress","autoUpdateSettings","timeZone","onChangeField","onToggleAutoUpdate","onToggleGPUManagement","onGpusChange","onChangeEnableHostManagementFeatures","onChangeAllowVolumeBrowserForRegularUsers","onChangeDisableBindMountsForRegularUsers","onChangeDisablePrivilegedModeForRegularUsers","onChangeDisableHostNamespaceForRegularUsers","onChangeDisableStackManagementForRegularUsers","onChangeDisableDeviceMappingForRegularUsers","onChangeDisableContainerCapabilitiesForRegularUsers","onChangeDisableSysctlSettingForRegularUsers","enableGPUManagement","isContainerEditDisabled","validGpus","initialEnableGPUManagement","eventTrack","enableGPUManagementState","initialGPUs","numberOfGPUSAdded","numberOfGPUSRemoved","updateSecuritySettings","securitySettings","isDockerStandaloneEnv","versionDetails","releaseVersion","rootDirectory","DockerRootDir","storageDriver","loggingDriver","LoggingDriver","buildEngineDetails","arch","OperatingSystem","kernelVersion","KernelVersion","totalCPU","totalMemory","agentHostInfo","PCIDevices","PhysicalDisks","BuildImageController","BuildService","BuildType","activeTab","ImageNames","Valid","Unique","UploadFile","DockerFileContent","onChangeBuildType","checkName","repositoryRegExp","addImageName","removeImageName","imageNames","buildType","dockerfilePath","buildImageFromUpload","buildImageFromURL","dockerfileContent","buildImageFromDockerfileContent","buildImageFromDockerfileContentAndFiles","buildImageBasedOnBuildType","validImageNames","uiCanExit","selectAdditionalFiles","RegistryModalService","exportInProgress","sortType","sortReverse","toggleLayerCommand","layerId","toggleClass","toggle","tagImage","pushTag","registryModal","pushImage","pullTag","removeTag","deleteImage","removeImage","exportImage","downloadImages","loadRegistriesForDropdown","pullRateValid","confirmRemovalAction","downloadAction","isAuthorizedToDownload","uploadImage","imageIds","PluginService","checkAuxiliaryAddress","excludedIP","gateway","prepareAuxiliaryAddresses","ipamConfig","ipFormValues","auxAddress","createNetwork","managerOperation","DriverOptions","IPV4","IPV6","Macvlan","availableNetworkDrivers","CheckDuplicate","EnableIPv6","addDriverOption","removeDriverOption","addIPV4AuxAddress","addIPV6AuxAddress","removeIPV4AuxAddress","IPV4AuxiliaryAddressesError","removeIPV6AuxAddress","IPV6AuxiliaryAddressesError","checkIPV4AuxiliaryAddress","checkIPV6AuxiliaryAddress","validIPV4","_reduce","validIPV6","onChangeInternal","enable","onChangeAttachable","prepareIPAMConfiguration","prepareDriverOptions","creationContext","selectedNetworkConfig","modifyNetworkConfigurationForMacvlanConfigFrom","selectedNodes","nonSwarmNetworks","_remove","grouped","_toArray","agent","getRole","_concat","groupSwarmNetworksManagerNodesFirst","$stateParams","transformPlugins","pluginsList","buildHostDetails","nodeDetails","buildNodeDetails","DockerRegistryAccessController","GroupService","filterUsers","updateRegistryAccess","registryEndpointAccesses","endpointUsers","UserAccessPolicies","endpointTeams","TeamAccessPolicies","endpointGroupUsers","endpointGroup","endpointGroupTeams","userOrTeam","userAccess","UserAccessViewModel","teamAccess","TeamAccessViewModel","registryTo","viewReady","RegistryAccesses","GroupId","SecretService","encodeSecret","handleEncodeSecretChange","secretConfiguration","prepareSecretData","SecretController","removeSecret","getSecrets","ServiceHelper","ConfigHelper","SecretHelper","WebhookService","commandToArray","EntryPoint","ExtraNetworks","HostsEntries","PlacementConstraints","PlacementPreferences","CpuLimit","CpuReservation","MemoryLimit","MemoryLimitUnit","MemoryReservationUnit","handleWebHookChange","handleEnvVarChange","refreshSlider","$broadcast","addPortBinding","Protocol","PublishMode","removePortBinding","addExtraNetwork","removeExtraNetwork","addHostsEntry","removeHostsEntry","addVolume","Target","removeVolume","addConfig","checkIfConfigDuplicated","addSecret","overrideTarget","checkIfSecretDuplicated","addPlacementConstraint","removePlacementConstraint","addPlacementPreference","removePlacementPreference","addContainerLabel","removeContainerLabel","addLogDriverOpt","removeLogDriverOpt","$invalid","$error","volumesAreValid","rcPromise","registryID","webhookPromise","createServiceWebhook","createNewService","prepareSchedulingConfig","prepareImageConfig","preparePortsConfig","prepareCommandConfig","envVarsUtils","prepareEnvConfig","volumeObject","VolumeOptions","DriverConfig","prepareVolumes","_uniqWith","_isEqual","prepareNetworks","hostsEntries","host_ip","keyVal","prepareHostsEntries","translateHumanDurationToNanos","prepareUpdateConfig","prepareConfigConfig","prepareSecretConfig","translateKeyValueToPlacementConstraints","translateKeyValueToPlacementPreferences","preparePlacementConfig","prepareResourcesCpuConfig","memoryLimit","toFixed","memoryReservation","prepareResourcesMemoryConfig","prepareRestartPolicy","logOpts","prepareLogDriverConfig","availableLoggingDrivers","checkIfAllowedBindMounts","availableVolumes","availableSecrets","availableConfigs","maxCpus","sliderMaxCpu","sliderMaxMemory","initSlidersMaxValuesBasedOnNodeData","$location","$anchorScroll","TaskService","TaskHelper","WebhookHelper","WebhookExists","updateInProgress","deletionInProgress","rollbackInProgress","lastVersion","originalService","previousServiceValues","buildChanges","ServiceLabels","EnvironmentVariables","ServiceContainerLabels","Editable","ServiceSecrets","ServiceConfigs","credSpecId","oldCredSpecId","Privileges","CredentialSpec","translateHostnameIPToHostsEntries","ServiceMounts","ServiceConstraints","ServicePreferences","translateKeyValueToLogDriverOpts","isUpdating","transformResources","v1","v2","translateLogDriverOptsToKeyValue","translateConstraintsToKeyValue","translatePreferencesToKeyValue","translateHostsEntriesToHostnameIP","translateServiceArrays","translateNanosToHumanDuration","transformDurations","serviceNetworks","_some","ingressNetwork","addr","webhookID","webhookURL","Token","associateContainerToTask","associateTasksToService","retrievePorRegistryModelFromRepository","initialRegistryID","updateServiceAttribute","updateServiceArray","goToItem","addEnvironmentVariable","onChangeEnvVars","orgEnv","orgVar","serviceConfig","updateConfig","newSecret","filename","serviceSecret","updateContainerLabel","addMount","removeMount","onChangeMountType","updateMount","toggleMountReadOnly","isReadOnly","addNetwork","removeNetwork","removedElement","updateNetwork","updatePlacementConstraint","updatePlacementPreference","addPublishedPort","updatePublishedPort","removePortPublishedBinding","updateLogDriverOpt","updateLogDriverName","updateHostsEntry","onWebhookChange","updateWebhook","deleteWebhook","updateWebhookRegistryId","newRegistryID","registryChanged","updateServiceWebhook","copyWebhook","attribute","elements","originalImage","currentImage","mountsAreValid","rollbackService","filterNetworks","serviceNetwork","filterConfigs","extractNodeInfo","CPU","processTotalCPUAndMemory","systemStatus","SystemStatus","node_count","node_offset","extractNodesInfo","extractSwarmInfo","prepareVisualizerData","visualizerData","assignServiceInfo","assignTasksToNode","ShowInformationPanel","DisplayOnlyRunningTasks","DisplayNodeLabels","handleChangeDisplayOnlyRunningTasks","changeDisplayOnlyRunningTasks","handleChangeDisplayNodeLabels","changeDisplayNodeLabels","changeShowInformationPanel","storeSwarmVisualizerSettings","showInfoPanel","getSwarmVisualizerSettings","displayOnlyRunningTasks","displayNodeLabels","loadState","BrowseVolumeController","NFSData","CIFSData","availableVolumeDrivers","onUseNFSChange","onUseCIFSChange","prepareNFSConfiguration","versionNumber","prepareCIFSConfiguration","createVolumeConfiguration","containerFilter","isCioDriver","volumeData","getVolumeDataFromContainer","containersUsingVolume","endpointProvider","endpointRole","attached","isVolumeUsedByAService","showBrowseAction","EdgeStackDeploymentTypeSelector","hasDockerEndpoint","hasKubeEndpoint","allowKubeToSelectCompose","deploymentOptions","Compose","PrePullToggle","RetryDeployToggle","PrivateRegistryFieldset","formInvalid","_ref$clearRegistries","clearRegistries","setChecked","parseRegistries","_parseRegistries","fileContent","currentFile","PrivateRegistryFieldsetWrapper","onFieldError","isGit","dryRunMutation","_matchRegistry","matchRegistry","mutateAsync","transformGitAuthenticationViewModel","parseRelativePathResponse","SupportRelativePath","FilesystemPath","SupportPerDeviceConfigs","PerDeviceConfigsMatchType","PerDeviceConfigsGroupMatchType","PerDeviceConfigsPath","dummyGitForm","relativePathValidation","setErrors","_valide","valide","getPerDevConfigsFilterType","isPerDevConfigsFilterType","RelativePathFieldset","setState","gitModel","isEditing","hideEdgeConfigs","innerOnChange","_useEnableFsPath","enableFsPath0","enableFsPath1","toggleFsPath","gitoptsEdgeConfigDocUrl","pathTip0","createGitCredential","_createGitCredential","useSaveCredentialsIfRequired","saveCredentialsMutation","saveCredentials","_saveCredentialsIfRequired","authentication","credential","saveGitCredentialsIfNeeded","_saveGitCredentialsIfNeeded","credentialsId","cred","useValidateEnvironmentTypes","groupIds","edgeGroups","endpointTypes","EndpointTypes","hasType","updateEdgeStackGit","_updateEdgeStackGit","_stack$AutoUpdate","updateStackMutation","_useSaveCredentialsIf","isSaveCredentialsLoading","GitConfig","gitConfig","EdgeGroups","deploymentType","autoUpdate","refName","EnvVars","_updateStackMutation$","onUpdateSettingsClick","_handleUpdateSettings","gitPath","gitUrl","isUpdateVersion","updateVersion","getPayload","privateRegistryId","_registriesQuery$data","forms","_forms","handleContentChange","useManifestNamespaces","_useState3","cachedContent","setCachedContent","onEditorChange","edgeStack","setFieldError","_useCachedContent","setContentCache","getCachedContent","DeploymentForm","webhookEnabled","prePullImage","retryDeploy","columHelper","EdgeGroupAssociationTable","_tableState$sortBy","_tableState$sortBy2","onClickRow","environmentsQuery","_groupsQuery$data","Group","_tagsQuery$data","_getEdgeStack","GitCommitLink","cleanedUrl","commitHash","cleanGitRepoUrl","logsStatusQueryKey","edgeStackId","useLogsStatus","_getLogsStatus","getLogsStatus","collectLogs","_collectLogs","deleteLogs","_deleteLogs","_downloadLogs","contentDispositionHeader","LogsActions","logsStatusQuery","collectLogsMutation","downloadLogsMutation","deleteLogsMutation","useDeleteLogsMutation","collecting","loader","EnvironmentActions","Snapshots","ActionStatus","getStatusText","_getDashboardRoute","statusArray","Acknowledged","ImagesPulled","PausedDeploying","RollingBack","RolledBack","_last2","_last","TargetCommitHash","TargetFileVersion","endpointTargetVersionLabel","_ref7","GitConfigURL","_status$DeploymentInf","DeploymentInfo","ConfigHash","_status$DeploymentInf2","_status$DeploymentInf3","FileVersion","_ref8","_env$StackStatus$Stat","DeploymentReceived","RemoteUpdateSuccess","Removed","Pending","Deploying","Removing","getStateColor","_startCase","_edgeStackQuery$data","_edgeStackQuery$data2","_edgeStackQuery$data3","_edgeStackQuery$data5","edgeStackQuery","getEdgeStack","useEdgeStack","_useParamState","param","parseParam","paramValue","useParamState","_useParamState2","statusFilter","setStatusFilter","edgeStackStatus","currentFileVersion","StackFileVersion","gitConfigURL","gitConfigCommitHash","_edgeStackQuery$data4","envStatus","pendingStatus","envStatusSelectOptions","_edgeStack$Registries","Registries","UseManifestNamespaces","PrePullImage","RetryDeploy","excludeIds","LastCheckInDate","fromNow","useFilterStore","setEdgeGroups","setGroups","setTags","checkIn","setCheckIn","checkInOptions","edgeGroupsQuery","filterStore","_associateDevice","useLicenseOverused","moreNodes","integratedInfo","Essentials","updateEnvironmentRelations","_updateEnvironmentRelations","relations","createEdgeGroup","_createEdgeGroup","requestPayload","CreatableSelector","onCreate","_useField2$","onBlur","selectedValues","cur","findOption","_handleCreate","createMutation","newGroup","dynamic","createGroup","_createGroup","GroupSelector","newTag","isAssignedToGroup","AssignmentDialog","assignRelationsMutation","edgeGroupQueryKeys","groupQueryKeys","hasPreAssignedEdgeGroups","_e$EdgeGroups","hasPreAssignedTags","hasPreAssignedGroup","overrideTags","overrideEdgeGroups","overrideGroup","createPayload","noValidate","overusedTooltip","associateMutation","associateDevice","nodesCountQueryKey","licenseOverused","_handleRemoveDevice","handleRemoveDevice","_handleAssociateAndAssign","handleAssociateAndAssign","handleAssociateDevice","_useEnvironments","filterByEnvironmentsIds","groupId","_edgeGroupsQuery$data","edgeDeviceUntrusted","excludeSnapshots","edgeCheckInPassedSeconds","environmentEdgeGroupsQuery","envs","_environmentEdgeGroup","_env$TagIds","useEnvironments","GenericDatatable","_getEdgeStacks","EdgeStackStatus","lastStatus","hasOldVersion","_getStatus","numDeployments","MinusCircle","Completed","hasDeploying","hasRunning","hasFailed","getStatus","NumDeployments","DeploymentCounter","total","getTooltip","getLabel","aggregatedStatus","_deleteEdgeStack","edgeStackIds","deleteEdgeStack","initialHiddenColumns","EdgeStacksDatatable","edgeStacksQuery","getEdgeStacks","useEdgeStacks","edgeStacks","stackStatus","HasEdgeJob","HasEdgeStack","TrustedEndpoints","DeleteButton","confirmMessage","onConfirmed","_handleClick","handleClick","_deleteEdgeGroup","edgeGroupIds","edgeGroupId","deleteEdgeGroup","EdgeGroupsDatatable","HasEdgeConfig","deleteTemplate","_deleteTemplate","useViewType","createTemplate","Method","_createTemplateFromText","createTemplateFromText","_createTemplateFromFile","createTemplateFromFile","_createTemplateAndGitCredential","createTemplateAndGitCredential","newGitModel","Git","createTemplateFromGit","EdgeSettings","RelativePathSettings","_yield$axios$post2","EdgeTemplate","_createTemplateFromGit","_yield$axios$post3","getDefaultEdgeTemplateSettings","PrivateRegistryId","initialBuildMethods","edgeFieldsetValidation","StaggerConfig","dockerTexts","textByType","_textByType","useParseTemplateOnFileChange","oldVariables","_getTemplateVariables","_getTemplateVariables2","validationError","parseTemplate","EdgeSettingsFieldset","fileValues","buildMethods","isEditor","handleChangeFileContent","texts","AccessControl","edgeSetValues","deploymentOptionsQuery","viewType","isEdge","gitCredentialsQuery","variablesValidation","commonFieldsValidation","_deploymentOptionsQue","_deploymentOptionsQue2","hideWebEditor","hideFileUpload","_fileContentQuery$dat","defaultType","_ref$isEdge","_useAppTemplateParams","typeNum","getStackType","getTemplateId","useAppTemplateParams","_useAppTemplateParams2","fileContentQuery","updateTemplate","_updateTemplate","isEditorReadonly","gitFileContent","gitFileError","refreshGitFile","edgeValues","disableEditor","hideAddWithForm","useDisableEditor","templateId","templateFile","_template$ResourceCon","refetch","templatesModule","templatesQuery","templateType","deleteMutation","_handleDelete","templateQuery","WaitingRoomView","edgeStackModule","cronMethodOptions","Calendar","EdgeJobFormController","cronMethods","scheduleValues","displayed","cron","datetime","scheduleValue","cronMethod","cronRegex","onChangeEnvironments","onChangeGroups","onCronMethodChange","onBuildMethodChange","onChangeModel","defaultTime","CronExpression","cronToDatetime","Recurring","minutes","hours","month","formAction","strings","addLabelAction","removeLabelAction","formActionLabel","EdgeJobResultsDatatableController","$controller","autoRefresh","onSettingsRepeaterChange","onCollectLogsClick","onDatasetChange","anyCollecting","LogsStatus","titleText","orderBy","reverseOrder","onDownloadLogsClick","onClearLogsClick","refreshCallback","statusMap","EdgeStackStatusController","aggregateStatus","ok","acknowledged","tagOptions","groupTypeOptions","EdgeGroupFormController","dynamicQuery","tagsPartialMatch","onChangeTags","onChangeDynamic","onChangePartialMatch","PartialMatch","pageType","EdgeJobResultsFactory","logFile","clearLogs","EdgeJobsFactory","EdgeJobService","EdgeJobs","EdgeJobResults","edgeJobId","results","ScheduleCreateRequest","createSchedule","ScheduleUpdateRequest","EdgeStacks","StackFileContent","createEdgeStack","repositoryOptions","FilePathInRepository","CreateEdgeGroupController","EdgeGroupService","endpointGroups","EditEdgeGroupController","updateGroup","CreateEdgeJobViewController","createEdgeJob","createEdgeJobFromFileContent","createEdgeJobFromFileUpload","EdgeJobController","showEditorTab","updateAsync","downloadLogsAsync","collectLogsAsync","clearLogsAsync","refresh","refreshAsync","showEditor","edgeJob","updateEdgeJob","logFileName","associateEndpointsToResults","EndpointId","jobResults","oldFileContent","getScriptFile","EdgeJobsViewController","deleteJobsAsync","deleteJobs","edgeJobs","CreateEdgeStackViewController","EdgeStackService","FormHelper","StackFile","templateValues","createStack","createStackByMethod","createStackFromFileContent","createStackFromFileUpload","createStackFromGitRepository","onChangeDeploymentType","onEnvVarChange","setTemplateValues","onChangeTemplate","templateAction","newTemplateValues","oldTemplateId","newTemplateId","newFile","buildAnalyticsProperties","methodLabel","templateName","selectedTemplate","templatesResponse","preSelectTemplate","validateTemplate","getMethod","checkIfEndpointTypes","selectValidDeploymentType","validTypes","_right","right","_intersection","CreatedFromCustomTemplateID","formIsInvalid","createEdgeStackView","DockerComposeFormController","methodOptions","onChangeFileContent","onChangeFile","onChangeMethod","onChangeFormValues","isGitTemplate","edgeStacksDockerComposeForm","kubeManifestForm","kubeDeployDescription","KubeManifestFormController","onChangeUseManifestNamespaces","EditEdgeStackViewController","isStackDeployed","deployStack","deployStackAsync","stackFile","originalFileContent","initiallyContainsKubeEnv","isComposeStack","updateStack","stackFileContent","createModule","i18n","Backend","LanguageDetector","initReactI18next","debug","fallbackLng","interpolation","escapeValue","azureErrorParser","responseData","subscriptions","subscriptionId","resourceGroups","resourceGroup","resourceGroupName","containerGroups","containerGroup","containerGroupName","getContainerInstanceProvider","_getContainerInstanceProvider","resourceTypes","containerGroupType","_ref2$locations","locations","buildSubscriptionsUrl","buildResourceGroupUrl","buildContainerGroupUrl","useResourceGroups","queries","useQueries","queryFn","_queryFn","getResourceGroups","q","_getResourceGroups","useSubscriptions","_getSubscriptions","getSubscriptions","getSubscriptionResourceGroups","getSubscriptionLocations","containerInstanceProviders","_createContainerGroup","transformToPayload","_deleteContainerGroup","containerGroupId","containerPorts","addressPorts","osType","requests","memoryInGB","ipAddress","allocatePublicIP","CreateContainerInstanceForm","_useLoadFormState","_useSubscriptions","isLoadingSubscriptions","_useResourceGroups","isLoadingResourceGroups","_useProvider","providers","useProvider","isLoadingProviders","useLoadFormState","_useFormState","subscriptionOptions","initSubscriptionId","getFirstValue","subscriptionResourceGroups","useFormState","createContainerGroup","_containerGroup$Porta","useCreateInstanceMutation","positive","enableReinitialize","_getContainerGroup","_getResourceGroup","_getSubscription","getContainerGroups","_getContainerGroups","scheme","_handleRemoveClick","handleRemoveClick","containerIds","_parseId","_match","resourceGroupId","parseId","subscriptionQuery","getSubscription","useSubscription","resourceGroupQuery","getResourceGroup","useResourceGroup","getContainerGroup","useContainerGroup","containerInstanceData","containerInstanceProperties","aggregateContainerInstance","subscriptionName","ContainerGroup","subscriptionsQuery","useContainerGroups","_useRemoveMutation","containerGroupIds","deleteContainerGroup","useRemoveMutation","_subscriptionsQuery$d","resourceGroupsQuery","subscriptionsCount","resourceGroupsCount","Subscription","Package","azureModule","constantsModule","constant","initFeatureService","UI_ROUTER_REACT_HYBRID","analyticsModule","run","invertSorting","New","isUnsavedChanges","oldIngressControllers","newIngressControllers","_oldIngressController","_newIngressController","getUpdatedIngressControllers","allRows","allow","selectedRowClassNames","ClassName","isOption","OptionComponent","Label","MultiValueLabel","UserIcon","TeamIcon","RegistriesSelector","_ref$options","ingressKeys","useIngresses","namespaces","_settledIngressesProm","_settledServicesPromi","settledIngressesPromise","filteredIngresses","uniqueNamespacesWithIngress","updatedFilteredIngresses","flat","ing","ns","_ing$Paths","servicesInNamespace","serviceNamesInNamespace","updatedPaths","hasService","HasService","useIngressControllers","Card","isErrorType","isArrayErrorType","ContainerPortInput","serviceIndex","portIndex","ServicePortInput","AppIngressPathForm","_ingressHostOptions$","_ingressPath$Path","ingressPathErrors","ingressHostOptions","onChangeIngressPath","onRemoveIngressPath","ingressesQuery","selectedIngress","setSelectedIngress","ingressHostOptionsWithCurrentValue","_ingressPath$Host","_ingressHosts$","_ingressPath$IngressN","_ingressPath$IngressN2","_ingressNames$","_newIngressPath$Host","ingressHosts","newIngressHostValue","ingressNames","newIngressNameValue","newIngressOption","ingressOption","AppIngressPathsForm","servicePortIngressPaths","onChangeIngressPaths","ingressPathsErrors","_useIngressController","ingressControllers","ingressControllersQuery","allowedIngressHostNameOptions","allowedIngressClasses","ic","allowedIngresses","_ing$Hosts","_allowedIngressHostNa","_allowedIngressHostNa2","_allowedIngressHostNa3","_allowedIngressHostNa4","newIngressPathsValue","newIngressPaths","_allowedIngressHostNa5","_allowedIngressHostNa6","ClusterIpServiceForm","onChangeService","servicePorts","onChangePort","newClusterIpPort","newServices","servicePortErrors","newServicePorts","ClusterIpServicesForm","clusterIPServiceCount","_errors$index","newServicePort","ServiceTabs","serviceTypeOptions","selectedServiceType","setSelectedServiceType","NodePortServiceForm","newNodePortPort","initiallyHasIngressPath","_servicePort$nodePort","NodePortServicesForm","nodePortServiceCount","LoadBalancerServiceForm","newLoadBalancerPort","LoadBalancerServicesForm","_useEnvironment","Configuration","UseLoadBalancer","loadBalancerEnabled","loadBalancerEnabledQuery","loadBalancerServiceCount","ServiceTabLabel","serviceTypeLabel","serviceTypeCount","serviceTypeHasErrors","PublishingExplaination","ingressDiagram","getServiceForPort","defaultIsOpen","_ref$labelClass","_ref$inputClass","isRequired","minLength","isExpandable","isNoteOpen","setIsNoteOpen","getNakedPods","deployments","daemonSets","statefulSets","appLabels","deployment","_deployment$spec","matchLabels","daemonSet","_daemonSet$spec","statefulSet","_statefulSet$spec","nakedPods","_pod$metadata","podLabels","appLabel","applicationIsKind","appKind","application","isExternalApplication","_application$metadata","getRunningPods","availableReplicas","_deployment$status$av","_deployment$status","totalReplicas","_deployment$status$re","_deployment$status2","unavailableReplicas","_deployment$status$un","_deployment$status3","numberAvailable","_daemonSet$status$num","_daemonSet$status","desiredNumberScheduled","_daemonSet$status$des","_daemonSet$status2","numberUnavailable","_daemonSet$status$num2","_daemonSet$status3","_statefulSet$status$r","_statefulSet$status","readyReplicas","getTotalPods","_application$status$r","_application$status","_application$status$d","_application$status2","_application$status$r2","_application$status3","bytesToReadableFormat","memoryBytes","units","unitIndex","memoryValue","matchLabelsToLabelSelectorValue","filterRevisionsByOwnerUid","revisions","uid","revision","_revision$metadata","ownerReferences","or","getRollbackPatchPayload","revisionList","previousRevision","controllerRevisions","sortedControllerRevisions","_a$metadata2","_b$metadata2","creationTimestamp","getTime","getPreviousControllerRevision","_previousRevision$spe","_revisionTemplate$met","_application$metadata2","_previousRevision$met","replicaSets","sortedReplicaSets","_a$metadata","_b$metadata","annotations","getPreviousReplicaSetRevision","revisionTemplate","applicationAnnotations","applicationAnnotationsInPatch","annotationKey","revisionAnnotations","revisionAnnotationsInPatch","annotationValue","getNamespacePods","_getNamespacePods","labelSelector","getPod","_getPod","patchPod","_patchPod","deletePod","_deletePod","_getApplicationsForCluster","applications","getApplicationsForNamespace","_getApplicationsForNamespace","_yield$Promise$all","_yield$Promise$all2","getApplicationsByKind","_getApplication","_yield$Promise$allSet","_yield$Promise$allSet2","getApplicationByKind","_patchApplication","patchApplicationByKind","_patchApplicationByKind","_getApplicationByKind","_getApplicationsByKind","app","_getApplicationRevisionList","deploymentUid","replicaSetList","replicaSetsWithOwnerId","replicaSetsWithRevisionAnnotations","controllerRevisionList","controllerRevisionsWithOwnerId","getReplicaSetList","rs","_rs$metadata","getControllerRevisionList","t1","_x33","_x34","_x35","_getReplicaSetList","_x36","_x37","_x38","_getControllerRevisionList","getNamespaceHorizontalPodAutoscalers","_getNamespaceHorizontalPodAutoscalers","autoScalarList","_getNamespaceHorizontalPodAutoscaler","autoScalar","applicationsForCluster","applicationRevisions","applicationServices","ingressesForApplication","applicationHorizontalPodAutoscalers","applicationPods","useApplicationsQuery","environemtId","getApplicationsForCluster","useApplication","getApplication","useApplicationServices","_app$metadata","_app$spec","appSelectorLabels","filteredServices","_service$spec","serviceSelectorLabels","useApplicationHorizontalPodAutoscaler","_app$metadata3","horizontalPodAutoscalers","matchingHorizontalPodAutoscaler","horizontalPodAutoscaler","_horizontalPodAutosca","scaleTargetRef","_app$metadata2","scaleTargetRefName","scaleTargetRefKind","useApplicationPods","_app$spec2","appSelector","_options$autoRefreshR2","usePatchApplicationMutation","_ref4$contentType","patchApplication","useNamespaceQuery","_getNamespace","getNamespace","ApplicationSummaryWidget","_namespaceData$data","_application$metadata3","_application$metadata4","_stateAndParams$param","_useApplication","applicationQuery","isSystemNamespace","IsSystem","externalApplication","applicationRequests","_application$spec","_application$spec2","appContainers","_container$resources","_container$resources2","parseCpu","filesizeParser","getResourceRequests","applicationOwner","applicationDeployMethod","_application$metadata5","_application$metadata6","_application$metadata7","getApplicationDeployMethod","applicationNote","applicationNoteFormValues","setApplicationNoteFormValues","globalDeploymentOptionsQuery","failedCreateCondition","conditions","condition","reason","patchApplicationMutation","hideStacksFunctionality","phase","_patchApplicationNote","patchApplicationNote","_getStackFile","RestartApplicationButton","RedeployApplicationButton","redeployAppMutation","useRedeployApplicationMutation","_redeployApplication","redeployApplication","RollbackApplicationButton","appRevisionList","_x28","_x29","_x30","_x31","_x32","getApplicationRevisionList","useApplicationRevisionList","appRevisions","appDeployMethod","patchAppMutation","isRollbackNotAvailable","rollbackButton","_rollbackApplication","rollbackApplication","RotateCcw","_appRevisionList$item","ApplicationServicesTable","appServices","_service$metadata","_service$metadata2","_service$spec2","_service$spec3","_service$status","_service$spec4","_service$status2","_service$spec$externa","_service$spec5","_service$spec6","_service$spec7","_service$spec8","loadBalancer","externalIPs","ApplicationIngressesTable","namespaceIngresses","ingressPathsForAppServices","matchingIngressesPaths","_ingress$Paths","matchingIngressPaths","secure","TLS","getIngressPathsForAppServices","ApplicationAutoScalingTable","_appAutoScalar$spec","_appAutoScalar$spec2","_appAutoScalar$spec3","appAutoScalar","Move","minReplicas","maxReplicas","targetCPUUtilizationPercentage","ApplicationEnvVarsTable","appEnvVars","podSpec","appInitContainers","initContainers","appContainersEnvVars","_container$env","_container$envFrom","containerEnvVars","envVar","_envVar$valueFrom","_envVar$valueFrom2","_envVar$valueFrom3","_envVar$valueFrom4","_envVar$valueFrom5","envtype","valueFrom","configMapKeyRef","secretKeyRef","fieldPath","fieldRef","containerName","isInitContainer","resourseName","containerEnvFroms","envFrom","_envFrom$configMapRef","_envFrom$secretRef","configMapRef","secretRef","appInitContainersEnvVars","_container$env2","_container$envFrom2","_envVar$valueFrom6","_envVar$valueFrom7","_envVar$valueFrom8","_envVar$valueFrom9","_envVar$valueFrom10","_envFrom$configMapRef2","_envFrom$secretRef2","getApplicationEnvironmentVariables","Asterisk","Key","secretQueryKeys","secretsForCluster","useSecrets","useSecretsForCluster","_getSecretsForCluster","getSecretsForCluster","_getSecrets","secretsWithKind","deleteSecret","_deleteSecret","ApplicationVolumeConfigsTable","containerVolumeConfigs","appVolumes","configMap","_volume$configMap","_volume$secret","_volume$configMap2","_volume$secret2","_container$volumeMoun","volConfigMapItems","volumeConfigName","secretName","containerVolumeMount","volumeMounts","volumeMount","getApplicationVolumeConfigs","mountPath","isVolumeConfigNameFromSecret","_secret$metadata","ApplicationPersistentDataTable","persistedFolders","appVolumeClaimVolumes","volumeClaimTemplates","_vc$metadata","_vc$metadata2","persistentVolumeClaim","claimName","_v$persistentVolumeCl","_vc$persistentVolumeC","getVolumeClaimTemplates","appAllVolumes","appAllContainers","hostPath","matchingPods","_pod$spec","_pod$spec2","podContainers","podInitContainers","podContainer","getPodsMatchingContainer","isContainerInit","getPersistedFolders","dataAccessPolicy","getDataAccessPolicy","Boxes","persistedFolder","_persistedFolder$volu","_persistedFolder$volu2","_persistedFolder$volu3","ApplicationDetailsWidget","externalApp","appStackFileQuery","getStackFile","Pencil","SystemResourcesSettings","systemResourcesSettings","showSystemResources","setShowSystemResources","getBadgeColor","formatDate","lastTimestamp","eventTime","involvedObject","EventsDatatable","History","_row$metadata","_getNamespaceEvents","useNamespaceEventsQuery","getNamespaceEvents","imagePullPolicy","getContainerStatusType","podIp","creationDate","getActions","isServerMetricsEnabled","ApplicationContainersDatatable","useServerMetricsQuery","_env$Kubernetes","UseServerMetrics","podsQuery","_pod$metadata$name","_pod$spec$nodeName","_pod$spec3","_pod$status$podIP","_pod$status","_pod$status$startTime","_pod$status2","_pod$status3","podIP","computeContainerStatus","containerStatuses","statuses","waiting","running","nodeList","useNodesQuery","PlacementItem","_nodesLabels$item$lab","nodesLabels","availableNodeLabels","labelOptions","valueOptions","placementError","labelOption","striked","valueOption","placementOptions","AlignJustify","PlacementTypeBoxSelector","placementType","SummaryItem","resourceAction","summary","YAMLInspector","identifier","hideMessage","yml","YAML","_y$metadata","managedFields","resourceVersion","cleanYamlUnwantedFields","Minus","SystemResourceDescription","KubernetesNamespaceHelper","Applications","ResourcePool","SubRows","span","Highlighted","KubernetesApplicationHelper","StacksSettingsMenu","setSystemResources","NamespaceFilter","showSystem","transformedNamespaces","isSystem","transformNamespaces","isSelectedNamespaceFound","newNamespaceValue","_getKubernetesEndpoints","endpointsList","_node$metadata","isApi","isPublishedNode","getInternalNodeIpAddress","_node$status","addresses","address","masterLabels","StatusBadge","_node$spec","unschedulable","_node$status$conditio","getCPU","_node$status$allocata","allocatable","getMemory","_row$status$nodeInfo$","_row$status","nodeInfo","kubeletVersion","_node$status$nodeInfo","_getInternalNodeIpAdd","_getInternalNodeIpAdd2","ActionsCell","metricsEnabled","getColumns","ConfigurationData","overrideKeysErrors","configurationIndex","keyIndex","dataCyType","configurationType","overriddenKeyError","ConfigurationItem","_item$selectedConfigu2","configurations","onRemoveItem","formikError","configurationData","selectedConfiguration","_option$metadata","_configuration$metada","_item$selectedConfigu","overriden","overridenKeys","onToggleOverride","overridenKey","newOverridenKeys","configurationsValidationSchema","allPaths","configmap","configMapQueryKeys","configMaps","configMapsForCluster","useConfigMapsForCluster","_getConfigMapsForCluster","getConfigMapsForCluster","getConfigMaps","_getConfigMaps","configMapsWithKind","deleteConfigMap","_deleteConfigMap","PersistedFolderItem","_item$sizeUnit","_item$sizeUnit2","storageClasses","PVCOptions","applicationValues","isExistingPersistedFolder","isNewVolume","useNewVolume","existingVolume","sizeUnit","_option$value","sc","getStorageClassValue","_storageClasses$find","storageClass","pvc","persistentVolumeClaimName","PersistentVolumeClaim","_initialValues$index","_storageClasses$find2","matchingClass","_persistedFolder$stor","getAddButtonError","storageClassValidation","AccessModes","AllowVolumeExpansion","Provisioner","hasSuitableNode","cpuLimit","nodeLimits","nanParsedMemoryLimit","nanParsedCPULimit","nodeLimit","KubernetesResourceReservationHelper","megaBytesValue","NoMetricsServerWarning","useNamespacesQuery","allNamespaceAccessReviews","allowedNamespacesNames","allowedNamespaces","getNamespaces","allowed","_getNamespaces","emptyValue","TitleContent","isComposeFormat","applicationsModule","onChangeControllers","initialIngressControllers","allowNoneIngressClass","noIngressControllerLabel","view","ingControllerFormValues","setIngControllerFormValues","newIngFormValues","isCustomTypeExist","ingController","Route","updateIngressControllers","_updateIngressControllers","updatedIngressControllers","newAllowed","usedControllersToDisallow","selectedTeams","_environment$Kubernet","_useNodesQuery","_useKubernetesEndpoin","getKubernetesEndpoints","useKubernetesEndpointsQuery","kubernetesEndpoints","kubernetesEndpointsQuery","_excluded3","environmentUrl","nodeRowData","subsetAddresses","_endpoint$subsets","subsets","subset","_subset$addresses","nodeAddress","subsetAddress","useNodeRowData","_row$metadata$uid","persistedFoldersUseExistingVolumes","getOptions","setStackName","_ref$stacks","inputClassName","_ref$textTip","_ref$error","stackResults","insightsBoxContent","isAllowedToEdit","_useApplicationServic","servicesQuery","_useApplicationPods","_useNamespaceEventsQu","eventsQuery","_excluded4","relatedEvents","serviceIds","podIds","oldFormValues","appResourceSummaries","newFormValues","_oldFormValues$Servic","_newFormValues$Servic","_newFormValues$Persis","_newFormValues$AutoSc","_oldFormValues$AutoSc","_newFormValues$AutoSc2","_oldFormValues$AutoSc2","_newFormValues$AutoSc3","_oldFormValues$AutoSc3","_newFormValues$AutoSc4","_oldFormValues$AutoSc4","_newFormValues$AutoSc5","_oldFormValues$AutoSc5","_newFormValues$AutoSc6","_oldFormValues$AutoSc6","oldServices","updateAndCreateSummaries","deleteSummaries","updateAppSummaries","ApplicationType","serviceSummaries","Services","oldServiceMatched","getServiceUpdateSummary","oldServicePorts","OriginalIngresses","ingressSummaries","newIng","oldIngress","_newIngress$Paths","_oldIngress$Paths","isAnyNewPathMissingOldPath","isAnyOldPathMissingNewPath","oldIng","getIngressUpdateSummary","pvcSummaries","DataAccessPolicy","PersistedFolders","_volume$existingVolum3","newVolume","_oldFormValues$Persis","_newVolume$existingVo","oldVolume","createHPASummary","AutoScaler","isUsed","deleteHPASummary","updateHPASummary","targetCpuUtilizationPercentage","hpaSummaries","getUpdatedApplicationResources","appSummary","serviceFormSummaries","_formValues$Services","headlessSummary","ingressesSummaries","_formValues$Services2","servicePathsIngressNames","_formValues$Persisted","_volume$existingVolum","_volume$existingVolum2","hpaSummary","_formValues$AutoScale","getAppResourceSummaries","_ref$namespace","onNamespaceChange","newServiceNames","newIndex","existingName","uniqName","getUniqNames","newServiceName","serviceTypeCounts","getServiceTypeCounts","serviceHasErrors","getServiceTypeHasErrors","formServices","matchingService","nodePortServices","formServiceNames","formService","clusterNodePortsWithoutFormServices","npService","npServicePorts","formNodePortsWithoutCurrentService","formServicePorts","ingressHostAndPath","ingressPathsInNamespace","originalIngressPaths","allFormServicePortIngresses","formMatchingIngressHostPathCount","formIngressHostAndPath","nsMatchingIngressHostPathCount","nsIngressHostAndPath","originalMatchingIngressHostPathCount","originalIngressHostAndPath","Annotations","configMapsQuery","useConfigMaps","_configMaps$","selectedConfigMap","secretsQuery","_secrets$","_environmentQuery$dat2","existingPVCs","isAddPersistentFolderButtonShown","StorageClasses","_pvc$PersistentVolume","_pvc$PersistentVolume2","applicationName","uuidv4","nameLimited","persistedFolderFormValue","quota","namespaceQuotas","quotaExceeded","pfs","_forOwn","storagePfs","storageClassName","newPfs","requestedSize","sum","pf","storageAvailabilities","Storage","CreationDate","PreviousName","MountPath","Yaml","_Number","namespaceHasQuota","resourceQuotaCapacityExceeded","minMemoryLimit","minCpuLimit","maxMemoryLimit","maxCpuLimit","_value$","isExistingMemoryReservationUnchanged","_context$parent","isExistingCPUReservationUnchanged","_context$parent2","supportScalableReplicaDeployment","resourceReservationsOverflow","hasResourceLimit","replicaCount","_round","nonScalableStorage","isMetricsEnabled","autoScalerOverflow","_availableNodeLabels$","_values$placements","placements","nodeLabelPairs","allNodesLabels","pair","uniqueNodesLabels","allNodeValuesForKey","uniqueValues","useNodeLabels","existingPlacementLabels","firstAvailableNodeLabel","firstAvailableNodeLabelValue","nonDeletedPlacements","_useNamespacesQuery","namespacesQuery","nsName","hasQuota","isResourceQuotaCapacityExceeded","namespaceOptionCount","yupString","existingNames","supportGlobalDeployment","isQuotaExceeded","isNew","DefaultDatatableSettings","isHTTP","TLSs","isHttp","paths","_row$Labels","owner","_row$original$Labels","_row$original$Labels2","IngressDatatable","canAccessSystemResources","_useIngresses","ingressesWithIsSystem","useIngressesRowData","deleteIngressesMutation","selectedFlatRows","referrer","AnnotationsForm","handleAnnotationChange","removeAnnotation","annotationErrors","annotation","_annotationErrors$i","_annotationErrors$i2","_annotationErrors$i3","_annotationErrors$i4","Value","PathTypes","nginx","traefik","other","PlaceholderAnnotations","IngressForm","_rule$Hosts","_rule$Hosts2","rule","tlsOptions","handleTLSChange","addNewIngressHost","serviceOptions","handleHostChange","handleIngressChange","handlePathChange","addNewIngressRoute","removeIngressRoute","removeIngressHost","addNewAnnotation","reloadTLSCerts","ingressClassOptions","isIngressClassOptionsLoading","namespacesOptions","isNamespaceOptionsLoading","isIngressNamesLoading","handleNamespaceChange","hasNoHostRule","NoHost","placeholderAnnotation","IngressType","pathTypes","IngressClassName","ingressClassOption","hostIndex","TLSOption","pathIndex","_servicePorts$path$Se","_servicePorts$path$Se2","allOptions","selectedLabel","serviceOption","portOption","ServicePort","ignoreAnnotationsForEdit","prepareTLS","prepareRuleHostsFromIngress","getSecretByHost","random","getPVCs","_getPVCs","EnvironmentInfo","_tagsQuery$tags","environmentData","tagNames","Gauge","stripProtocol","isExternal","rowA","rowB","portA","portB","_row$ClusterIPs","ClusterIPs","clusterIPs","ipA","ipB","languages","language","ignorePunctuation","ExternalIPLink","externalIP","_row$ExternalIPs","_row$IngressStatus","_row$ExternalIPs2","ExternalIPs","IngressStatus","_row$original$Externa","linkTo","_row$original$Externa2","_getSchemeAndPort2","svc","_svc$Ports","getSchemeAndPort","aExternal","bExternal","targetPorts","CreationTimestamp","ServicesDatatable","_useServicesForCluste","servicesWithIsSystem","useServicesRowData","servicesRenderRow","deleteServicesMutation","WidgetTabs","currentTabIndex","tabs","selectedTabParam","findSelectedTabIndex","getIsConfigMapInUse","_appSpec$volumes","appSpec","hasEnvVarReference","valueFromEnv","_configMap$metadata","envFromEnv","_envVar$configMapRef","_configMap$metadata2","hasVolumeReference","_configMap$metadata3","configurationOwnerUsernameLabel","_row$metadata2","_row$metadata3","isSystemToken","isSystemConfigMap","hasConfigurationOwner","inUse","_row$original$metadat","_row$original$metadat2","_row$original$metadat3","_row$original$metadat4","_columnId","getCreatedAtText","ConfigMapsDatatable","_useConfigMapsForClus","_useApplicationsQuery","applicationsQuery","configMapRowData","applicationsLoading","_namespaces2","_configMap$metadata$n2","useConfigMapRowData","_namespaces","_configMap$metadata$n","deleteConfigMapMutation","successfulConfigMaps","failedConfigMaps","configMapsToDelete","_configMap$metadata$n3","_configMap$metadata$n4","_configMap$metadata4","getIsSecretInUse","_envVar$secretRef","_secret$metadata2","_secret$metadata3","_row$metadata4","isRegistrySecret","isSystemSecret","SecretsDatatable","_useSecretsForCluster","secretRowData","_namespaces3","_secret$metadata$name2","useSecretRowData","_secret$metadata$name","deleteSecretMutation","successfulSecrets","failedSecrets","secretsToDelete","_secret$metadata$name3","_secret$metadata$name4","_secret$metadata4","widget","useUnauthorizedRedirect","_ref$adminOnlyCE","isAuthorizedQuery","IngressClassDatatable","LoadBalancerFormSection","NamespaceSummary","resourceQuota","StorageQuotaItem","StorageQuotaFormSection","useClusterResourceLimitsQuery","_getResourceLimits","getResourceLimits","ResourceQuotaFormSection","_resourceLimitsQuery$","_resourceLimitsQuery$2","_resourceLimitsQuery$3","_resourceLimitsQuery$4","_Number2","enableResourceOverCommit","resourceLimitsQuery","RegistriesFormSection","NamespaceInnerForm","_environmentQuery$dat3","_environmentQuery$dat4","_environmentQuery$dat5","ingressClassesQuery","useLoadBalancer","EnableResourceOverCommit","enableIngressControllersPerNamespace","IngressAvailabilityPerNamespace","ingressClasses","registriesValidationSchema","getResourceQuotaValidationSchema","_Number3","cpuValue","_Number4","getNamespaceValidationSchema","notOneOf","updateEnvironmentRegistryAccess","_updateEnvironmentRegistryAccess","buildRegistryUrl","createNamespace","_createNamespace","CreateNamespaceForm","_useCurrentEnvironmen","createNamespaceMutation","createNamespacePayload","updateRegistriesPayload","namespaceIngressControllerPayload","updateRegistriesPromises","updateIngressControllerPromise","Namespaces","useCreateNamespaceMutation","userName","createNamespaceFormValues","memoryInBytes","Owner","ResourceQuota","registryFormValues","_selectedRegistry$Reg","selectedRegistry","envNamespacesWithAccess","SubRow","cellCount","unmetTaints","highlighted","unmatchedNodeSelectorLabels","unmatchedNodeAffinities","UnmetTaintsInfo","taints","isHighlighted","UnmatchedLabelsInfo","UnmatchedAffinitiesInfo","affinities","taint","effect","aff","acceptsApplication","enableResizing","PlacementsDatatable","hasPlacementWarning","placementsSettingsStore","usePlacementTableState","useApplicationYAML","_autoScalar$metadata","_useApplication2","applicationYAML","applicationYAMLQuery","_useServicesQuery","servicesYAML","servicesYAMLQuery","_useApplicationHorizo","autoScalarsQuery","_excluded5","_useHorizontalAutoSca","getNamespaceHorizontalPodAutoscaler","useHorizontalAutoScalarQuery","autoScalarYAML","autoScalarYAMLQuery","_excluded6","fullApplicationYaml","isApplicationYAMLLoading","ApplicationYAMLEditor","_useApplicationYAML","getIngressClassesFormValues","ingressClassesFormValues","noneIngressClassIndex","ingressClass","availableStorageClassPolicies","getStorageClasses","_getStorageClasses","storageClassList","transformStorageClassesToFormValues","_storageClass$metadat2","enabledStorage","_storageClass$metadat","accessMode","provisioner","allowVolumeExpansion","accessModeSchema","storageClassFormValuesSchema","_value$AccessModes","endpointChangeWindowSchema","ingressControllerClassMapSchema","configureValidationSchema","useServerMetrics","resourceOverCommitPercentage","restrictDefaultNamespace","restrictStandardUserIngressW","ingressAvailabilityPerNamespace","changeWindow","RBACAlert","EnableMetricsInput","metricsFound","setMetricsFound","getMetricsMutation","StorageAccessModeSelector","innerProps","StorageClassDatatable","storageClassValues","storageClassValue","accessModes","hasValidStorageConfiguration","patchStorageClass","_patchStorageClass","storageClassPatch","_handleSubmitConfigureCluster","configureClusterMutation","_initialValues$ingres","selectedStorageClasses","updatedEnvironment","storageClassPatches","restrictAccessToDefaultNamespace","assignFormValuesToEnvironment","createStorageClassPatches","updateEnvironmentPayload","oldStorageClasses","oldStorageClass","createStorageClassPayload","ResourceOverCommitPercentage","RestrictDefaultNamespace","RestrictStandardUserIngressW","AllowNoneIngressClass","ConfigureForm","_useStorageClassesFor","storageClassFormValues","useStorageClassesFormValues","formikHelpers","handleSubmitConfigureCluster","formikProps","isIngressClassesLoading","_useIsRBACEnabledQuer","isRBACEnabled","isRBACEnabledQuery","controllerClassMap","isFormChanged","_secretsResults$data","isAuthorizedToAddEdit","setNamespace","ingressRule","setIngressRule","isEditClassNameSet","setIsEditClassNameSet","_useNamespaceServices","useNamespaceServices","allServices","secretsResults","ingressesResults","createIngressMutation","updateIngressMutation","useUpdateIngress","_useMemo","_ingressesResults$dat","_ingressesResults$dat2","ruleCounterByNamespace","hostWithTLS","_ingress$TLS","_useMemo2","namespaceOptions","nsKey","groupedOptions","existingIngressClass","allowedIngressClassOptions","cls","disallowedIngressClasses","notFoundIngressClassOption","prevRules","_ingressControllers$f","_config$metadata","_config$metadata2","_config$metadata3","_ingressesResults$dat3","_ingressControllers$f2","prepareRuleFromIngress","_ingressRule$Hosts","hIndex","tlsOptionVals","_ingressRule$Hosts2","_host$Paths","pIndex","_servicePorts$service","currentServicePorts","groupedServiceOptions","_rule$Annotations","duplicatedAnnotations","re","duplicatedHosts","hi","_host$Paths2","pi","availableServiceNames","optionGroup","sn","isExists","exists","checkIfPathExistsWithHost","debouncedValidate","noHost","_rule$Annotations2","_rule$Annotations3","rules","newKey","addNewIngress","classNameToSend","stateAndParams","_usePlacementTableDat","placementsData","placementDataFromTolerations","tolerations","nodePlacements","matchKeyMatchValueMatchEffect","matchKeyAnyValueMatchEffect","matchKeyMatchValueAnyEffect","matchKeyAnyValueAnyEffect","anyKeyAnyValueAnyEffect","computeTolerations","placementDataFromAffinities","nodePlacementsFromAffinities","nodeIndex","_node$metadata2","podNodeSelectorLabels","nodeSelector","getUnmatchedNodeSelectorLabels","unmatchedRequiredNodeAffinities","basicNodeAffinity","affinity","nodeAffinity","requiredDuringSchedulingIgnoredDuringExecution","nodeSelectorTerms","selectorTerm","_selectorTerm$matchEx","matchExpressions","matchExpression","_node$metadata3","_node$metadata4","_node$metadata5","_matchExpression$valu","_node$metadata6","_matchExpression$valu2","_matchExpression$valu3","isIn","unmatchedAffinity","getUnmatchedRequiredNodeAffinities","computeAffinities","computePlacements","isPlacementsTableLoading","notAllowedOnEveryNode","nodePlacement","usePlacementTableData","placementsTableState","_useApplicationEvents","appEventsTableState","appEventsData","appEventWarningCount","isAppEventsTableLoading","useApplicationEventsTableData","LaptopCode","_usePVCsQuery","pvcs","usePVCsQuery","pvcsQuery","_excluded7","podID","setCommand","connectionStatus","setConnectionStatus","terminal","setTerminal","setSocket","disconnectConsole","terminalContainer","encoded","TextEncoder","encode","writeUtf8","TerminalIcon","ExpirationCache","Map","removeAll","registriesModule","customTemplateModule","KubernetesHealthService","$http","UserService","UseCache","KubernetesLocalEnvironment","AgentOnKubernetesEnvironment","endpointKubernetesSecurityConstraint","Kind","settingsKey","onPublishingModeClick","isPrimary","onChangeNamespaceDropdown","isAppsLoading","isSystemResources","isVisible","DatatableService","extend","expandAll","expandedItems","filteredDataSet","expandItem","isItemExpanded","KubernetesApplications","hasConfigurationSecrets","getPublishedUrls","setDataTableExpandedItems","expandItems","storedExpandedItems","onDataRefresh","getDataTableExpandedItems","onSettingsShowSystemChange","updateNamespace","setDataTableSettings","isDisplayed","ingressUrls","PublishedPorts","pp","IngressRules","loadBalancerURLs","LoadBalancerIPAddress","publishedUrls","Configurations","applyFilters","onStateFilterChange","prepareTableFromDataset","availableTypeFilters","onChangeNamespace","settingsLoaded","allNamespacesOption","visibleNamespaceOptions","defaultNS","storedStacksSettings","getDataTableSettings","setDefaults","storedOrder","getDataTableOrder","textFilter","getDataTableTextFilters","onTextFilterChange","storedFilters","getDataTableFilters","storedSettings","KubernetesConfigurationHelper","isSystemConfig","IsRegistrySecret","isExternalConfiguration","canManageAccess","isDefaultNamespace","disableRemove","namespaceStatusColor","KubernetesVolumesDatatableController","onInit","KubernetesVolumeHelper","isExternalVolume","HelmTemplatesListController","HelmService","selectedCategory","updateCategories","onCategoryChange","annotationCategories","charts","availableCategories","cat","selectAction","HelmTemplatesController","KubernetesResourcePoolService","installHelmchart","getHelmValues","selectHelmChart","getHelmRepoURLs","getLatestCharts","getResourcePools","clearHelmChart","onSelectHelmChart","contentvalues","originalvalues","Repo","Chart","Values","install","loadingValues","scrollTo","showCustomValues","reposLoading","GlobalRepository","UserRepositories","getHelmRepositories","globalRepository","userHelmReposUrls","uniqueHelmRepos","repos","helmRepos","chartsLoading","promiseList","chartPromises","latestCharts","tp","resourcePoolsLoading","nonSystemNamespaces","resourcePool","resourcePools","chartName","isDockerConfig","onChangeValidation","isCreation","KubernetesConfigurationDataController","editorUpdateAsync","onFileLoad","onFileLoadAsync","showSimpleMode","showAdvancedMode","KubernetesSecretTypeOptions","duplicateKeys","KubernetesFormValidationHelper","getDuplicates","invalidKeys","getInvalidKeys","addEntry","KubernetesConfigurationFormValuesEntry","newDataIndex","DOCKERCFG","addMissingKeys","DOCKERCONFIGJSON","BASICAUTH","SSHAUTH","BOOTSTRAPTOKEN","isRequiredKey","removeEntry","DataYaml","byteLength","encoding","chardet","Buffer","decoder","TextDecoder","IsBinary","isBinary","stringValue","decode","Base64","existingEntryIndex","isEntryRequired","SERVICEACCOUNTTOKEN","addEntryFromFile","temporaryFileReader","readAsArrayBuffer","IsSimple","parseYaml","parseData","cpuReservation","cpuUsage","memoryUsage","displayUsage","KubernetesResourceReservationController","usageValues","cpuReservationPercent","memoryReservationPercent","cpuUsagePercent","memoryUsagePercent","KubernetesApplicationConverter","Metadata","StackId","KubernetesPortainerApplicationStackIdLabel","KubernetesPortainerApplicationStackNameLabel","ApplicationKind","KubernetesPortainerApplicationKindLabel","KubernetesPortainerApplicationOwnerLabel","KubernetesPortainerApplicationNameLabel","KubernetesPortainerApplicationNote","imagePullSecrets","Pods","associatePodsAndApplication","Cpu","parseCPU","Requests","serviceType","ServiceType","ClusterIp","ExternalIp","KubernetesServiceTypes","LOAD_BALANCER","portsRefs","pList","pRefs","KubernetesApplicationPort","_apiPortsToPublishedPorts","KubernetesIngressHelper","findSBoundServiceIngressesRules","vcTemplates","inexistingPVC","matchingVolumeMount","KubernetesApplicationPersistedFolder","HostPath","ConfigurationVolumes","configurationName","configurationVolume","KubernetesApplicationConfigurationVolume","fileMountPath","rootMountPath","configurationKey","KubernetesApplication","applicationCommon","RunningPodsCount","TotalPodsCount","HeadlessServiceName","persistentVolumeClaims","KubernetesApplicationFormValues","generateServicesFormValuesFromServices","generateSelectorFromService","ImageModel","ReplicaCount","generateEnvVariablesFromEnv","generatePersistedFoldersFormValuesFromPersistedFolders","generateConfigurationFormValuesFromEnvAndVolumes","ConfigMaps","generateAutoScalerFormValueFromHorizontalPodAutoScaler","generatePublishedPortsFormValuesFromPublishedPorts","PublishingType","generatePlacementsFormValuesFromAffinity","Affinity","KubernetesCommonHelper","ownerToLabel","claims","KubernetesPersistentVolumeClaimConverter","applicationFormValuesToVolumeClaims","rwx","hasRWX","headlessService","KubernetesDeploymentConverter","applicationFormValuesToDeployment","KubernetesStatefulSetConverter","applicationFormValuesToStatefulSet","KubernetesDaemonSetConverter","applicationFormValuesToDaemonSet","KubernetesPodConverter","applicationFormValuesToPod","KubernetesServiceConverter","applicationFormValuesToHeadlessService","applicationFormValuesToService","applicationFormValuesToServices","KubernetesConfigMapConverter","KubernetesPortainerAccessConfigMap","KubernetesConfigMapCreatePayload","_unset","createAccessPayload","KubernetesConfigMap","ConfigurationOwner","KubernetesPortainerConfigurationOwnerLabel","binaryData","configurationOwner","omission","KubernetesConfigMapUpdatePayload","KubernetesConfiguration","SecretType","ServiceAccountName","volumeClaims","KubernetesDaemonSet","bytesValue","generateEnvFromEnvVariables","generateVolumesFromPersistentVolumClaims","generateEnvOrVolumesFromConfigurations","generateAffinityFromPlacements","KubernetesDaemonSetCreatePayload","assignOrDeleteIfEmpty","VolumeMounts","oldDaemonSet","newDaemonSet","JsonPatch","KubernetesDeployment","KubernetesDeploymentCreatePayload","oldDeployment","newDeployment","KubernetesEvent","Involved","KubernetesNamespaceConverter","KubernetesNamespace","ResourcePoolName","KubernetesPortainerResourcePoolNameLabel","ResourcePoolOwner","KubernetesPortainerResourcePoolOwnerLabel","isDefaultSystemNamespace","systemLabel","KubernetesPortainerNamespaceSystemLabel","KubernetesNamespaceCreatePayload","resourcePoolOwner","storageClassToPVCAccessModes","RWO","RWX","KubernetesPersistentVolumeClaim","existantPVC","KubernetesPersistentVolumClaimCreatePayload","oldPVC","newPVC","KubernetesResourcePool","KubernetesResourceQuotaConverter","resourcePoolFormValuesToResourceQuota","ingMap","IngressClasses","Selected","KubernetesIngressConverter","resourcePoolIngressClassFormValueToIngress","KubernetesResourceQuota","hard","KubernetesPortainerResourceQuotaCPULimit","KubernetesPortainerResourceQuotaMemoryLimit","MemoryLimitUsed","CpuLimitUsed","KubernetesResourceQuotaCreatePayload","KubernetesResourceQuotaHelper","generateResourceQuotaName","assignOrDeleteIfEmptyOrZero","KubernetesPortainerResourceQuotaCPURequest","KubernetesPortainerResourceQuotaMemoryRequest","oldQuota","newQuota","KubernetesResourcePoolFormValues","KubernetesResourceQuotaDefaults","HasQuota","StorageRequests","KubernetesSecretCreatePayload","stringData","KubernetesPortainerConfigurationDataAnnotation","KubernetesSecretUpdatePayload","KubernetesApplicationSecret","CUSTOM","customType","KubernetesService","publishedPort","IsNew","NeedsDeletion","KubernetesServicePort","ContainerPort","LoadBalancerPort","NODE_PORT","LoadBalancerNodePort","_publishedPortToServicePort","KubernetesServiceHelper","generateHeadlessServiceName","KubernetesServiceCreatePayload","KubernetesServiceHeadlessClusterIP","KubernetesStatefulSet","KubernetesStatefulSetCreatePayload","VolumeClaims","oldSFS","newSFS","KubernetesStorageClassConverter","KubernetesStorageClass","KubernetesStorageClassCreatePayload","newStorageClass","claim","pool","KubernetesVolume","kubeCustomTemplatesView","KubeCustomTemplatesViewController","CustomTemplateService","currentUser","getTemplates","selectTemplate","customTemplates","KubernetesEndpoint","leaderAnnotation","KubernetesEndpointAnnotationLeader","parsedJson","holderIdentity","HolderIdentity","Subsets","KubernetesEndpointSubset","Ips","_KubernetesEndpoint","_KubernetesEndpointSubset","KubernetesEndpointService","KubernetesEndpoints","getAllAsync","KubernetesEndpointConverter","apiToEndpoint","HelmFactory","helmUrl","templatesUrl","userHelmUrl","addHelmRepository","output","uninstall","release","listReleases","PodKubernetesInstanceLabel","PodManagedByLabel","cv","associateContainerPersistedFoldersAndConfigurations","KubernetesPortMapping","KubernetesPortMappingPort","envVariables","KubernetesApplicationEnvPayload","KubernetesApplicationEnvironmentVariableFormValue","nameIndex","configurationKind","filterCondition","finalRes","cfg","cfgEnv","cfgVol","keyEnv","keyVol","Sum","EnvCount","VolCount","_max","overrideThreshold","KubernetesApplicationConfigurationFormValue","fvKey","KubernetesApplicationConfigurationFormValueOverridenKey","finalEnv","finalVolumes","finalMounts","isBasic","envKeys","KubernetesApplicationEnvConfigMapPayload","KubernetesApplicationEnvSecretPayload","volKeys","groupedVolKeys","volumeName","generatedApplicationConfigVolumeName","itemsMap","KubernetesApplicationVolumeEntryPayload","KubernetesApplicationVolumeMountPayload","KubernetesApplicationVolumeConfigMapPayload","KubernetesApplicationVolumeSecretPayload","svcport","ingPath","newPaths","Raw","publishedPorts","generatePort","KubernetesApplicationPublishedPortFormValue","IngressRoute","IngressHost","IngressHosts","autoScaler","replicasCount","KubernetesApplicationAutoScalerFormValue","MinReplicas","MaxReplicas","TargetCPUUtilization","_startsWith","KubernetesApplicationPersistedFolderFormValue","KubernetesApplicationVolumePersistentPayload","podAffinity","Placements","PlacementType","exp","KubernetesApplicationPlacementFormValue","preferredDuringSchedulingIgnoredDuringExecution","KubernetesPodNodeAffinityPayload","expressions","KubernetesNodeSelectorRequirementPayload","KubernetesNodeSelectorTermPayload","KubernetesPreferredSchedulingTermPayload","KubernetesPodAffinity","helmManagedApps","namespacedHelmReleases","instanceLabel","helmAppsList","helmInstance","helmApp","HelmApplication","appsNotReady","replaceAll","helmApplications","getHelmApplications","helmAppNames","hma","nonHelmApplications","_set","_forIn","accesses","KubernetesPortainerConfigMapAccessKey","RoleId","envFind","volumeFind","getUsingApplications","setConfigurationUsed","configurationsUsed","configMappedByName","configMappedByVolume","customTags","oldEntry","serviceNodePorts","allOtherNodePorts","sNodePort","snp","KUBERNETES_DEFAULT_NAMESPACE","KUBERNETES_DEFAULT_SYSTEM_NAMESPACES","KubernetesPortainerResourceQuotaPrefix","bytes","base10","dm","safeFilesizeParser","KubernetesResourceReservation","_endsWith","mem","KubernetesServiceHeadlessPrefix","rawApp","_isMatch","KubernetesStack","describe","stacksFromApplications","KubernetesStackHelper","expect","toHaveLength","matchingNames","KubernetesHorizontalPodAutoScalerConverter","KubernetesHorizontalPodAutoScaler","TargetEntity","KubernetesHorizontalPodAutoScalerCreatePayload","oldScaler","newScaler","KubernetesHorizontalPodAutoScalerHelper","sList","_KubernetesHorizontalPodAutoScaler","_KubernetesHorizontalPodAutoScalerCreatePayload","getYaml","rawResponse","KubernetesHorizontalPodAutoScalerService","KubernetesHorizontalPodAutoScalers","getAsync","patchAsync","deleteAsync","KubernetesCommonParams","raw","apiToModel","horizontalPodAutoScaler","oldHorizontalPodAutoScaler","newHorizontalPodAutoScaler","patchPayload","KubernetesIngressClassAnnotation","KubernetesNginxRewriteTargetAnnotations","KubernetesTraefikRewriteTargetAnnotations","KubernetesNginxUseregexAnnotations","KubernetesIngressClassTypes","NGINX","TRAEFIK","PortainerIngressClassTypes","http","ingRule","KubernetesIngressRule","backend","KubernetesIngress","ingressClassName","_findIndex","originalIngress","originalIngresses","matchedIngress","IngressClass","_fromPairs","ics","fv","KubernetesResourcePoolIngressClassFormValue","WasSelected","hfv","KubernetesResourcePoolIngressClassHostFormValue","PreviousHost","_toPairs","KubernetesResourcePoolIngressClassAnnotationFormValue","AdvancedConfig","KubernetesIngressCreatePayload","hostsWithRules","updatedHost","KubernetesIngressRuleCreatePayload","KubernetesIngressRulePathCreatePayload","keptHosts","hostsWithoutRules","emptyRules","oldData","newData","KubernetesIngressClass","KubernetesCommonMetadataPayload","pathType","KubernetesIngressService","KubernetesIngresses","getOne","getAll","newIngress","_KubernetesApplicationConfigurationFormValueOverridenKey","_KubernetesApplicationConfigurationFormValue","_KubernetesApplicationEnvironmentVariableFormValue","_KubernetesApplicationPersistedFolderFormValue","_KubernetesApplicationAutoScalerFormValue","KubernetesFormValidationReferences","hasRefs","KubernetesApplicationQuotaDefaults","_KubernetesApplication","_KubernetesApplicationPersistedFolder","_KubernetesApplicationConfigurationVolume","_KubernetesApplicationPort","KubernetesDeploymentTypes","GIT","CONTENT","APPLICATION_FORM","_KubernetesApplicationVolumeMount","_KubernetesApplicationVolumePersistentPayload","_KubernetesApplicationVolumeConfigMapPayload","_KubernetesApplicationVolumeSecretPayload","_KubernetesApplicationVolumeEntryPayload","_KubernetesApplicationEnvPayload","_KubernetesApplicationEnvConfigMapPayload","_KubernetesApplicationEnvSecretPayload","_KubernetesCommonMetadataPayload","KubernetesPortainerConfigMapNamespace","KubernetesPortainerConfigMapConfigName","_KubernetesConfigMap","_KubernetesConfigMapCreatePayload","_KubernetesConfigMapUpdatePayload","_KubernetesConfigurationFormValues","OPAQUE","KubernetesConfigurationFormValues","_KubernetesConfigurationFormValuesEntry","_KubernetesConfiguration","_KubernetesDaemonSet","VoluemMounts","_KubernetesDaemonSetCreatePayload","updateStrategy","rollingUpdate","maxUnavailable","KubernetesDeployManifestTypes","KUBERNETES","KubernetesDeployBuildMethods","WEB_EDITOR","CUSTOM_TEMPLATE","HELM","KubernetesDeployRequestMethods","REPOSITORY","STRING","RepositoryMechanismTypes","WEBHOOK","INTERVAL","_KubernetesDeployment","_KubernetesDeploymentCreatePayload","maxSurge","_KubernetesEvent","KubernetesSystem_DefaultDeploymentUniqueLabelKey","KubernetesSystem_RevisionAnnotation","KubernetesSystem_RevisionHistoryAnnotation","KubernetesSystem_DesiredReplicasAnnotation","KubernetesSystem_MaxReplicasAnnotation","KubernetesSystem_AnnotationsToSkip","_KubernetesNamespaceCreatePayload","KubernetesNodesLimits","nodesLimits","MaxCPU","MaxMemory","convertCPU","calculateMaxCPUMemory","nodesLimitsArray","_maxBy","overflowForReplica","instances","overflowForGlobal","overflow","excludesPods","_KubernetesPortMappingPort","_KubernetesPortMapping","Expanded","RewriteTarget","KubernetesResourcePoolNginxRewriteAnnotationFormValue","KubernetesResourcePoolNginxUseregexAnnotationFormValue","KubernetesResourcePoolTraefikRewriteAnnotationFormValue","Quota","Ingresses","_KubernetesResourceReservation","KubernetesResourceTypes","NAMESPACE","RESOURCEQUOTA","DEPLOYMENT","STATEFULSET","DAEMONSET","PERSISTENT_VOLUME_CLAIM","INGRESS","HORIZONTAL_POD_AUTOSCALER","KubernetesResourceActions","CREATE","UPDATE","DELETE","_KubernetesApplicationSecret","_KubernetesSecretCreatePayload","_KubernetesSecretUpdatePayload","CLUSTER_IP","_KubernetesService","nodePortError","servicePortError","_KubernetesIngressService","_KubernetesServicePort","_KubernetesServiceCreatePayload","_KubernetesStack","_KubernetesStatefulSet","_KubernetesStatefulSetCreatePayload","partition","_KubernetesStorageClassAccessPolicies","KubernetesStorageClassAccessPolicies","_KubernetesStorageClass","_KubernetesStorageClassCreatePayload","_KubernetesPersistentVolumeClaim","_KubernetesVolume","_KubernetesPersistentVolumClaimCreatePayload","KubernetesNodeConverter","KubernetesNode","master","_has","KubernetesNodeConditionTypes","READY","memoryPressure","MEMORY_PRESSURE","PIDPressure","PID_PRESSURE","diskPressure","DISK_PRESSURE","networkUnavailable","NETWORK_UNAVAILABLE","Conditions","MemoryPressure","DiskPressure","NetworkUnavailable","KubernetesNodeAvailabilities","ACTIVE","KubernetesPortainerNodeDrainLabel","DRAIN","PAUSE","internalIP","Taints","KubernetesNodeTaint","Effect","KubernetesNodeDetails","apiToNode","architecture","operatingSystem","osImage","KubernetesNodeFormValues","KubernetesNodeTaintFormValues","KubernetesNodeLabelFormValues","filteredTaints","filteredLabels","KubernetesNodeCreatePayload","KubernetesNodeTaintPayload","oldNode","newNode","_KubernetesNodeFormValues","_KubernetesNodeTaintFormValues","IsChanged","_KubernetesNodeLabelFormValues","IsUsed","KubernetesNodeHelper","isSystemLabel","nodeSelectors","_KubernetesNode","Api","_KubernetesNodeDetails","_KubernetesNodeTaint","KubernetesNodeTaintEffects","NOSCHEDULE","PREFERNOSCHEDULE","NOEXECUTE","_KubernetesNodeCreatePayload","_KubernetesNodeTaintPayload","KubernetesNodeService","KubernetesNodes","apiToNodeDetails","errData","nodeFormValues","formValuesToNode","serviceSelector","KubernetesPod","ServiceSelector","Images","computeStatus","Restarts","_sumBy","KubernetesPodContainer","KubernetesPodContainerTypes","APP","PodName","PodIP","ImagePullPolicy","INIT","computeContainers","computeAffinity","Tolerations","KubernetesPodToleration","Operator","TolerationSeconds","tolerationSeconds","KubernetesPodEviction","oldPod","newPod","createPayloadFactory","_KubernetesPod","_KubernetesPodToleration","_KubernetesPodContainer","_KubernetesPodEviction","weight","KubernetesPodService","KubernetesPods","logsAsync","evictionAsync","podEvictionPayload","evictionPayload","evict","eviction","kubernetesRegistryAccessView","KubernetesRegistryAccessController","selectedResourcePools","savedResourcePools","onChangeResourcePools","updateNamespaces","removeNamespaces","nsToUpdate","getJSON","KubernetesNodesLimitsFactory","KubernetesPortainerNamespacesFactory","toggleSystem","getServiceAccounts","namespaceId","KubernetesApplicationService","KubernetesDeploymentService","KubernetesDaemonSetService","KubernetesStatefulSetService","KubernetesServiceService","KubernetesSecretService","KubernetesPersistentVolumeClaimService","KubernetesNamespaceService","patchPartialAsync","_getApplicationApiService","apiService","_generateIngressPatchPromises","autoScalers","rootItem","converterFunc","apiDeploymentToApplication","apiDaemonSetToApplication","apiStatefulSetToapplication","apiPodToApplication","boundService","findApplicationBoundService","boundServices","findApplicationBoundServices","associateContainersAndApplication","boundScaler","findApplicationBoundScaler","scaler","convertToApplication","servicesFound","deploymentApplications","daemonSetApplications","statefulSetApplications","boundPods","unboundPods","nakedPodsApplications","hideStacks","applicationFormValuesToApplication","claimPromises","applicationFormValuesToModel","originalServicePorts","oldApp","oldHeadlessService","oldClaims","newApp","newHeadlessService","newClaims","oldApiService","newApiService","newClaim","oldClaim","deleteAll","deleteSingle","newKind","newAutoScaler","oldKind","oldAutoScaler","oldAppPayload","newAppPayload","oldValues","applicationFormValuesToDeleteIngresses","KubernetesConfigMapService","KubernetesConfigMaps","getAccess","apiToPortainerAccessConfigMap","createAccess","updateAccessPayload","rawPromise","yamlPromise","defaultConfigMap","apiToConfigMap","updatePayload","KubernetesConfigurationService","KubernetesConfigurationConverter","secretToConfiguration","configMapToConfiguration","secretsConfigurations","configMapsConfigurations","configurationFormValuesToConfigMap","KubernetesSecretConverter","configurationFormValuesToSecret","KubernetesControllerRevisionService","KubernetesControllerRevisions","KubernetesDaemonSets","KubernetesDeployments","KubernetesEventService","KubernetesEvents","KubernetesEventConverter","apiToEvent","KubernetesHealth","pingAsync","KubernetesNamespaces","getJSONAsync","updateFinalizeAsync","apiToNamespace","ar","allNamespaces","$allSettled","fulfilled","KubernetesNodesLimitsService","KubernetesPersistentVolumeClaims","apiToPersistentVolumeClaim","KubernetesResourceQuotaService","KubernetesPortainerNamespaces","KubernetesResourcePoolConverter","formValuesToResourcePool","ingressPromises","registriesPromises","oldRegistries","newRegistries","del","createPromises","delPromises","patchPromises","old","keptRegistries","_intersectionBy","removedRegistries","newRegistriesPromises","removedRegistriesPromises","_pull","getQuota","apiToResourcePool","quotaAttempt","KubernetesResourceQuotas","apiToResourceQuota","KubernetesSecrets","apiToSecret","KubernetesServices","deleteSingleAsync","deleteAllAsync","formValuesServices","KubernetesStackService","KubernetesStatefulSets","headlessServiceName","oldStatefulSet","newStatefulSet","KubernetesStorageService","KubernetesStorage","apiToStorageClass","KubernetesVolumeService","KubernetesVolumeConverter","pvcToVolume","pools","storeNamespaces","KubernetesApplicationsController","getApplications","getApplicationsAsync","removeStacksAction","removeStacksActionAsync","selectTab","storeActiveTab","removeKubernetesStacksByName","storeNamespaceFilter","configuredApplications","getApplicationConfigurations","getNestedApplications","portMappingsFromApplications","flag","getActiveTab","currentName","$current","savedNamespace","getNamespaceFilter","preferredNamespace","UpdateIngressPrompt","hasOneIngress","hasOnePort","rulePlural","noMatchSentence","inputLabel","noMatch","KubernetesCreateApplicationController","ApplicationDeploymentTypes","ApplicationDataAccessPolicies","ApplicationTypes","ServiceTypes","appType","updateWebEditorInProgress","sliders","namespaceLimits","resourcePoolHasQuota","availableSizeUnits","alreadyExists","environmentVariables","configMapPaths","secretPaths","existingVolumes","stackNameError","editChanges","updateApplicationAsync","deployApplicationAsync","checkIngressesToUpdate","confirmUpdateApplicationAsync","onDataAccessPolicyChange","onServicesChange","onEnvironmentVariableChange","onConfigMapsChange","onSecretsChange","onChangePersistedFolder","onChangeResourceReservation","onChangeReplicaCount","onAutoScaleChange","onChangePlacements","updateApplicationType","getAppType","showDataAccessPolicySection","refreshReactComponent","onChangeNamespaceName","canSupportSharedAccess","isUpdateApplicationViaWebEditorButtonDisabled","isTemporaryRefresh","onChangeStackName","onChangeAppName","validatePersistedFolders","oldStackFileContent","resetDeploymentType","updateKubeStack","imageValidityIsValid","registryDetails","clearConfigMaps","clearSecrets","enviromnentVariables","newEnvVars","newEnvVar","resetPersistedFolders","onChangePersistedFolderPath","onChangeExistingVolumeSelection","ingressNamesUsed","uniqueIngressNamesUsed","ingressNamesLoaded","ingressNameUsed","refreshIngresses","storageClassAvailable","hasFolders","hasRWOOnly","isIsolated","isEditAndStatefulSet","getNonScalableStorage","storageOptions","enforceReplicaCountMinimum","nodeLimitsOverflow","effectiveInstances","nodeNumber","hasPortErrors","portError","publishViaIngressEnabled","isEditAndNoChangesMade","savedFormValues","isNewVolumeButtonDisabled","isEditAndExistingPersistedFolder","isExistingVolumeButtonDisabled","hasAvailableVolumes","isNonScalable","scalable","global","replica","replicated","isDeployUpdateButtonDisabled","inProgress","invalid","hasNoChanges","nonScalable","stackNameInvalid","updateSliders","namespaceWithQuota","minCpu","minMemory","_floor","updateNamespaceLimits","refreshStacks","refreshConfigurations","refreshApplications","applicationNames","refreshVolumes","filteredVolumes","isUnused","isRWX","ingressHostnames","refreshNamespaceData","resetFormValues","ingressesToUpdate","servicePortsToUpdate","confirmUpdateAppIngress","fullIngresses","updatedService","oldServiceIndex","numberOfPortsInOldService","updatedOldPorts","ingressForService","oldServicePort","ingressPathIndex","ingressUpdateIndex","ingressToUpdate","deployApplication","generateNodeLabelsFromNodes","applicationToFormValues","parseImageConfiguration","OriginalPersistedFolders","allSettledServices","settledService","fulfilledService","KubernetesHelmApplicationController","dataLoading","releases","app_version","getHelmApplication","KubernetesApplicationLogsController","getApplicationLogsAsync","updateAutoRefresh","applicationLogs","KubernetesApplicationStatsController","CPUUsage","getStats","findCharts","nodeCPU","getMetrics","podRaw","KubernetesClusterController","getNodesAsync","getEndpointsAsync","hasResourceUsageAccess","systemEndpoints","ep","kubernetesEndpoint","ips","getEndpoints","CPULimit","nodeNames","resourceReservation","computeResourceReservation","getResourceUsage","clusterResourceUsage","resourceUsage","KubernetesNodeController","getEvents","getEventsAsync","updateNodeAsync","drainNodeAsync","getNodeUsageAsync","onChangeTaintKey","duplicateTaintKeys","hasDuplicateTaintKeys","onChangeTaint","addTaint","removeTaint","restoreTaint","computeTaintsWarning","onChangeLabelKey","duplicateLabelKeys","hasDuplicateLabelKeys","onChangeLabel","restoreLabel","computeLabelsWarning","computeCordonWarning","availabilities","computeDrainWarning","drainNode","isNoChangesMade","isDrainError","isDrainOperation","isContainPortainer","isFormValid","nodeToFormValues","taintsWarning","labelsWarning","cordonWarning","drainWarning","confirmUpdateNode","getNodeUsage","hasEventWarnings","eventWarningCount","eventsLoading","KubernetesEventHelper","warningCount","availableEffects","computeUsedLabels","reorderLabels","KubernetesNodeStatsController","KubernetesCreateConfigMapController","createConfigurationAsync","getConfigurationsAsync","onResourcePoolSelectionChangeAsync","filteredConfigurations","alreadyExist","availableServiceAccounts","onResourcePoolSelectionChange","addRequiredKeysToForm","isConfigurationFormValid","isDataValid","createConfiguration","getConfigurations","KubernetesConfigMapController","getConfigurationAsync","updateConfiguration","updateConfigurationAsync","copyConfigurationValue","configurationLoading","oldDataYaml","getConfiguration","tagUsedDataKeys","configName","usedDataKeys","KubernetesConfigurationsController","refreshCallbackAsync","configurationsLoading","setConfigurationsUsed","KubernetesCreateSecretController","onSecretTypeChange","warningMessage","secretWarningMessage","KubernetesSecretController","secretType","secretTypeName","uniqueCheck","isSecretDataValid","KubernetesDeployController","deployOptions","buildMethod","DeployType","BuildMethod","tabLogsDisabled","templateLoadFailed","isEditorReadOnly","selectedHelmChart","ManifestDeployTypes","BuildMethods","onChangeTemplateId","deployAsync","getNamespacesAsync","onChangeDeployType","onChangeTemplateVariables","rendered","templateContent","EditorContent","buildLabel","COMPOSE","formatLabel","repositoryAutomaticUpdates","repositoryMechanism","automaticUpdatesLabel","disableDeploy","isWebEditorInvalid","isURLFormInvalid","ManifestURL","isCustomTemplateInvalid","isStackNameInvalid","isNamespaceInvalid","customTemplateFile","displayErrorLog","errorLog","stripAnsi","composeFormat","deployNamespace","namespace_toggle","ComposeFormat","ManifestFile","kubernetesDeploy","deploy","KubernetesResourcePoolAccessController","AccessService","authorizeAccessAsync","unauthorizeAccessAsync","onUsersAndTeamsChange","unauthorizeAccess","initAccessConfigMap","multiselectOutput","roles","endpointAccesses","KubernetesConfigMapHelper","parseJSONData","authorizedUsersAndTeams","accessConfigMap","poolAccesses","availableUsersAndTeams","newAccesses","modifiyNamespaceAccesses","authorizeAccess","storageClassSwitch","StorageClassSwitchController","KubernetesCreateResourcePoolController","IngressClassTypes","LBQuotaFeatureId","onToggleStorageQuota","onToggleLoadBalancerQuota","onToggleResourceQuota","onChangeIngressControllerAvailability","onRegistriesChange","handleMemoryLimitChange","handleCpuLimitChange","sClass","UseLoadBalancersQuota","isCreateButtonDisabled","isQuotaValid","isAlreadyExist","hasPrefixKube","checkDefaults","createResourcePool","allIngresses","canUseIngress","ingressClassesToFormValues","itemCanExpand","hasExpandableItems","KubernetesResourcePoolController","ResourceQuotaDefaults","StorageQuotaFeatureId","updateResourcePoolAsync","onToggleLoadBalancersQuota","isUpdateButtonDisabled","hasResourceQuotaBeenReduced","updateResourcePool","ingressesToDelete","registriesToDelete","WasChecked","warnings","quotaWarning","ingressWarning","registriesWarning","markUnmarkAsSystem","confirmMarkUnmarkAsSystem","ingressesLoading","hasWriteAuthorization","selectedRegistries","namespaceResourceUsage","quotaToResourcePoolFormValues","isEditable","KubernetesResourcePoolsController","getResourcePoolsAsync","finalizers","isTerminatingNS","limitedFeaturePodSecurityPolicy","KubernetesStackLogsController","generateLogsPromise","generateAppPromise","getStackLogsAsync","Logs","Application","filteredApplications","logsPromises","appColor","stackLogs","getApplicationResources","getCreatedApplicationResources","persistentVolumeClaimResources","appResourceType","oldAppResourceType","createdApplicationResourceSummary","headlessServiceUpdateResourceSummary","getServiceUpdateResourceSummary","claimSummaries","serviceUpdateResourceSummary","updateSummary","hpaUpdateSummary","serviceUpdate","emptyService","serviceCreate","serviceDelete","findCreateResources","newResources","oldResources","_differenceBy","findDeleteResources","findUpdateResources","_intersectionWith","newResource","oldResource","patches","isEqual","doGetResourcesSummary","actionFilter","getResourcesSummary","newNamespace","oldNamespace","KubernetesSummaryController","toggleSummary","generateResourceSummaryList","getArticle","article","expandedTemplate","storeKubernetesSummaryToggle","getConfigurationResources","getNamespaceResources","toggleValue","getKubernetesSummaryToggle","KubernetesVolumeController","getVolume","getVolumeAsync","updateVolumeAsync","onChangeSize","volumeSize","volumeSizeUnit","oldVolumeSize","sizeIsValid","updateVolume","increaseSize","volumeSharedAccessPolicies","volumeSharedAccessPolicyTooltips","policies","policy","matchingPolicy","KubernetesVolumesController","getVolumesAsync","storages","formatBytes","computeSize","buildStorages","getElementsByTagName","parentNode","insertBefore","BASENAME","directive","restrict","attrs","limitedFeatureDir","limitedFeatureAttrs","attr","apiServicesModule","environmentStore","setEnvironmentId","DEFAULT_TITLE","currentEndpoint","pingInterval","subscribe","setCurrentEndpoint","_state$currentEndpoin","GroupAssociationTable","createHelmRepository","_createHelmRepository","helmRepository","_getHelmRepositories","deleteHelmRepository","_deleteHelmRepository","deleteHelmRepositories","_deleteHelmRepositories","useHelmRepositories","helmRepositoryId","HelmRepositoryDatatableActions","deleteHelmRepoMutation","_onDeleteClick","onDeleteClick","HelmDatatableDescription","fileUploadField","switchField","VariablesFieldAngular","VariablesFieldController","checkValidity","customTemplatesModule","gitFormModule","FeatureFlag","useFeatureFlag","Features","FDOProfilesDatatableActions","isFDOEnabled","PlusCircle","_onDuplicateProfileClick","onDuplicateProfileClick","_onDeleteProfileClick","onDeleteProfileClick","newProfile","FDOProfilesDatatable","_useFDOProfiles","useFDOProfiles","SettingsFDOForm","fdoConfiguration","initialFDOEnabled","setIsFDOEnabled","_settings$fdoConfigur","ownerURL","ownerUsername","ownerPassword","edgeComputeFeaturesEnabled","EnableEdgeComputeFeatures","Laptop","_onChangedEnabled","onChangedEnabled","backgroundColor","alpha","padStart","padding","sliderProperties","strength","PasswordLengthSlider","sliderProps","getSliderProps","sliderValue","sliderBadge","getBadgeIcon","SaveAuthSettingsButton","isValidUrl","additionalCheck","edgeAgentCheckinInterval","enableTelemetry","loginBannerEnabled","loginBanner","logoEnabled","snapshotInterval","useToggledValue","toggleFieldName","_useField4","setIsEnabled","oldValue","setOldValue","_handleIsEnabledChange","DemoAlert","LogoFieldset","isDemoQuery","_useToggledValue2","TextArea","ScreenBannerFieldset","DEFAULT_URL","TemplatesUrlSection","buildTemplateDocUrl","EnableTelemetryField","ApplicationSettingsPanel","EdgeAgentCheckinInterval","CustomLoginBanner","LogoURL","TemplatesURL","SettingsIcon","HelmSection","KubeConfigSection","KubeNoteMinimumCharacters","DeploymentOptionsSection","globalDeploymentOptions","limitedFeature","_handleToggleAddWithForm","handleToggleAddWithForm","helmRepositoryUrl","kubeconfigExpiry","requireNoteOnApplications","minApplicationNoteLength","KubeSettingsPanel","HelmRepositoryURL","KubeconfigExpiry","kubeIcon","variantClassNames","beLinkContainerClassName","contentClassName","BEOverlay","_ref$variant","variant","useUpdateSSLConfigMutation","updateSSLConfig","_updateSSLConfig","clientCertFile","clientCert","t2","t3","HelmCertPanel","AddLabelForm","formKey","clearForm","HiddenContainersTable","HiddenContainersPanel","BlackListedLabels","withHideOnExtension","getSSLSettings","_getSSLSettings","SSLSettingsPanelWrapper","reloadingPage","setReloadingPage","forceHTTPS","httpEnabled","authStyleOptions","AutoDetect","InParams","InHeader","settingsModule","FDO","FlaskConical","setCertFile","_handleFileUpload","readFileContent","fileReader","base64","readAsDataURL","openAMTConfiguration","mpsServer","mpsUser","mpsPassword","domainName","certFileContent","certFileName","certFilePassword","handleFileUpload","onSaveSettings","RequiredPasswordLength","accessControlModule","EdgeKeyDisplay","environmentsModule","server","KVM","authToken","mouseDebounceTime","canvasHeight","canvasWidth","getRepositoryTags","_getRepositoryTags","useParams","_useParams2","useRepositoryTags","num","defaultRegistryMutation","hideDefaultRegistry","isLimited","handleShowOrHide","Book","_updateUser","ApplicationSettingsForm","updateSettingsMutation","updateUser","accountModule","_settingsQuery$data","passwordValid","forceChangePassword","minPasswordLength","showReactQueryDevtools","SHOW_REACT_QUERY_DEV_TOOLS","ReactQueryDevtools","_helmReposQuery$data3","_helmReposQuery$data4","helmReposQuery","isAdminUser","_helmReposQuery$data","_helmReposQuery$data$","_helmReposQuery$data2","helmrepository","_document$getElementB","scrollIntoView","usePaginationLimitState","paginationKey","paginationKeyBuilder","ConnectionType","EnvironmentStatusBadgeItem","EdgeIndicator","_ref$showLastCheckInD","showLastCheckInDate","heartbeat","Heartbeat","heartbeatup","heartbeatdown","Activity","EnvironmentStatusBadge","EnvironmentIcon","dockerEdge","kubeEdge","environmentTypeIcon","StatsItem","EnvironmentStatsDocker","StackCount","ServiceCount","ContainerStats","ContainerCount","RunningContainerCount","stopped","StoppedContainerCount","HealthyContainerCount","UnhealthyContainerCount","VolumeCount","ImageCount","TotalCPU","TotalMemory","NodeCount","actualTotal","EnvironmentStatsKubernetes","EnvironmentStats","_environment$Snapshot","getComponent","DockerEngineVersion","KubernetesEngineVersion","KubernetesVersion","EnvironmentTypeTag","Zap","LinkButton","EnvironmentBrowseButtons","onClickBrowse","onClickDisconnect","checkEdgeAsync","browseStatus","dashboardRoute","Wifi","WifiOff","BrowseStatusTag","Snapshot","Connected","Disconnected","EditButtons","configRoute","getDockerConfigRoute","getConfigRoute","buttonsClasses","ButtonsGrid","redirectTo","Edit2","AgentDetails","EdgeAgentDetails","associated","EnvironmentItem","groupName","snapshotTime","getSnapshotTime","useEnvironmentTagNames","downloadKubeconfigFile","_downloadKubeconfigFile","environmentIds","useListSelection","compareFn","setSelectedItems","currentItem","KubeconfigPrompt","envQueryParams","_usePaginationLimitSt2","setPageLimit","expiryQuery","expiry","prefix","expiryMessage","_useListSelection2","toggleSelection","_useEnvironmentList","isAllPageSelected","checkboxList","checkbox","_confirmKubeconfigSelection","confirmKubeconfigSelection","KubeconfigButton","setIsOpen","kubeEnvs","NoEnvironmentsInfoPanel","includeEdgeStacks","activeSchedules","supportedAgentVersions","previousVersions","useSupportedAgentVersions","minVersion","getSupportedAgentVersions","_getSupportedAgentVersions","UpdateBadge","supportedAgentVersionsQuery","sortByOptions","SortbySelector","onDescending","sortByDescending","sortByButton","EnvironmentListFilters","_agentVersionsQuery$d","agentVersions","clearFilter","connectionTypes","groupOnChange","groupState","platformTypes","setAgentVersions","setConnectionTypes","setPlatformTypes","sortByState","sortOnDescending","sortOnChange","statusOnChange","statusState","tagOnChange","tagState","agentVersionsQuery","connectionTypeOptions","_platformTypeConnecti","platformTypeConnectionType","API","EdgeAgentStandard","EdgeAgentAsync","connectionTypesDefaultOptions","getConnectionTypeOptions","platformTypeOptions","_connectionTypePlatfo","platformDefaultOptions","connectionTypePlatformType","getPlatformTypeOptions","groupOptions","uniqueGroup","uniqueTag","filterLeft","clearButton","filterRight","_activateDevice","AssociateAMTDialog","activateDeviceMutation","activateDevice","AMTButton","isOpenDialog","setOpenDialog","isOpenAmtEnabledQuery","IsAMTEnabled","edgeEnvironments","EnvironmentList","currentEnvStore","_useHomePageFilter2","searchBarValue","setSearchBarValue","_useHomePageFilter4","_useHomePageFilter6","_useHomePageFilter8","tagFilter","setTagFilter","_useHomePageFilter10","groupFilter","setGroupFilter","_useHomePageFilter12","sortByFilter","setSortByFilter","_useHomePageFilter14","setSortByDescending","_useHomePageFilter16","setSortByButton","_useHomePageFilter18","setStatusState","_useHomePageFilter20","setTagState","_useHomePageFilter22","setGroupState","_useHomePageFilter24","environmentsQueryParams","_typesByPlatform","_typesByConnection","typesByPlatform","typesByConnection","selectedTypesByPlatform","platformType","selectedTypesByConnection","connectionType","getTypes","provisioned","updateInformation","edgeAsync","getEdgeAsyncValue","queryWithSort","filteredStatus","filteredTags","filteredGroups","renderItems","_onClickBrowse","hasEdgeAsync","EdgeLoadingSpinner","useUIState","dismissedInfoPanels","dismissInfoPanel","dismissedInfoHash","dismissMotd","dismissedUpdateVersion","dismissUpdateVersion","_getMotd","MotdPanel","motd","getMotd","uiStateStore","Hash","Style","camelCaseKeys","ContentLayout","confirmEndpointSnapshot","_confirmEndpointSnapshot","getAPITokenValidationSchema","requirePassword","createUserAccessToken","_createUserAccessToken","userid","rawAPIKey","CreateUserAccessTokenInnerForm","showAuthentication","DisplayUserAccessToken","apikey","PortainerUrlField","PortainerTunnelAddrField","EdgeComputeSettings","_settings$Edge","EdgePortainerUrl","TunnelServerAddress","EnforceEdgeID","tunnelValidation","asyncIntervalFieldSettings","DeploymentSyncOptions","settingsMutation","EnabledWaitingRoomSwitch","inputProps","yup","EnableWaitingRoom","AutoEnvCreationSettingsForm","TrustOnFirstConnect","AutomaticEdgeEnvCreation","generateKey","_generateKey","asyncModeOptions","EdgeAgentStandardIcon","EdgeAgentAsyncIcon","edgeKeyMutation","useGenerateKeyMutation","resetKey","setAsyncMode","edgeComputeConfigurationOK","EdgeKeyInfo","tunnelUrl","EdgeAutoCreateScriptViewWrapper","Provisioning","_environment$StatusMe","_environment$StatusMe2","_environment$StatusMe3","_environment$StatusMe4","_environment$StatusMe5","StatusMessage","IsSetStatusMessage","ImportFdoDeviceButton","flagEnabledQuery","isFDOEnabledQuery","EnvironmentsDatatable","_tableState$sortBy3","environmentsWithGroups","GroupName","BackupFormType","DownloadCloud","S3","backupS3Settings","getBackupS3Settings","_getBackupS3Settings","updateBackupS3Settings","_updateBackupS3Settings","downloadBackup","_downloadBackup","blob","exportS3Backup","_exportS3Backup","passwordProtect","SecurityFieldset","switchDataCy","inputDataCy","setPasswordProtect","BackupFileForm","downloadMutate","scheduleAutomaticBackup","cronRule","accessKeyID","secretAccessKey","region","bucketName","s3CompatibleHost","BackupS3Form","exportS3Mutate","updateS3Mutate","useBackupS3Settings","handleExport","BackupSettingsPanel","backupType","setBackupType","fieldKey","EnableOpenAIIntegrationSwitch","OpenAIIntegration","ExperimentalFeaturesSettingsForm","ExperimentalFeatures","experimentalFeatures","handleSuccess","updateLogo","updateSnapshotInterval","updateEnableTelemetry","noDuplicateURLsSchema","urls","defaultInitialValues","HelmRepositoryForm","_ref$isEditing","URLs","CreateHelmRepositoryForm","createHelmRepositoryMutation","allRepositories","_ref$onClick","createLocalDockerEnvironment","_createLocalDockerEnvironment","_ref$socketPath","socketPath","_ref$publicUrl","publicUrl","_ref$meta","prefixPath","createEnvironment","LocalDockerEnvironment","createLocalKubernetesEnvironment","_createLocalKubernetesEnvironment","_ref2$meta","LocalKubernetesEnvironment","skipClientVerify","createAzureEnvironment","_createAzureEnvironment","_ref3$meta","AzureEnvironment","createRemoteEnvironment","_createRemoteEnvironment","creationType","_ref4$options","createAgentEnvironment","_ref5$meta","AgentEnvironment","createEdgeAgentEnvironment","portainerUrl","_ref6$meta","pollFrequency","EdgeAgentEnvironment","_createEnvironment","_options$edge","_ref7$tagIds","_options$edge2","_options$edge3","_options$edge4","formPayload","EndpointCreationType","GroupID","EdgeCheckinInterval","TLSSkipClientVerify","TLSCACertFile","TLSCertFile","TLSKeyFile","AzureApplicationID","applicationId","AzureTenantID","tenantId","AzureAuthenticationKey","authenticationKey","EdgeAsyncMode","EdgePingInterval","EdgeSnapshotInterval","EdgeCommandInterval","useConnectLocalEnvironment","localEnvironment","setLocalEnvironment","_useFetchLocalEnviron","Infinity","useFetchLocalEnvironment","createLocalEnvironmentMutation","createLocalEnvironment","mutationStatus","_createLocalEnvironment","EnvironmentSelector","existingEnvironmentTypes","newEnvironmentTypes","environmentTypes","formTitles","dockerStandalone","dockerSwarm","aci","kaas","k8sInstall","Stepper","currentStep","steps","useGenericCreationMutation","MetadataFieldset","tagProps","tagHelpers","MoreSettingsSection","NameField","_isNameUnique","useNameValidation","uniquenessTest","EdgeAgentFieldset","metadataValidation","EdgeAgentForm","nameValidation","urlValidation","tunnelServerAddr","useValidationSchema","buildInitialValues","Plug2","EdgeAgentTab","setEdgeInfo","EdgeKey","EnvironmentUrlField","_address$split2","validateAddress","AgentForm","deploymentsStandalone","deploymentsSwarm","DeploymentScripts","deployType","setDeployType","agentDetailsQuery","DeployCode","AgentTab","APIForm","tlsConfig","getTlsValues","APITab","SocketForm","overridePath","OverrideSocketFieldset","SocketTab","WizardDocker","setCreationType","_onCreate","_onCreate2","_onCreate3","_onCreate4","_onCreate5","getTab","WizardAzure","showAgentSecretMessage","AgentPanel","kubeConfig","KubeConfigTeaserForm","kubeConfigImportDocUrl","WizardKubernetes","WizardEndpointsList","endpointTypeName","wizardModule","localEndpointIdParam","localEndpointId","setEnvironmentIds","envTypes","useParamEnvironmentTypes","eType","_useAnalyticsState","dockerAgent","dockerApi","kubernetesAgent","kubernetesEdgeAgentAsync","kubernetesEdgeAgentStandard","kaasAgent","aciApi","localEndpoint","dockerEdgeAgentAsync","dockerEdgeAgentStandard","analytics","setAnalyticsState","setAnalytics","prevState","useAnalyticsState","_useStepper","onFinish","currentStepIndex","setCurrentStepIndex","isFirstStep","isLastStep","onNextClick","removeItem","onPreviousClick","useStepper","Wand2","ArrowLeft","startWizard","localEnvironmentAdded","Kube","teamSyncQuery","TeamSync","leaderCount","_handleDeleteClick","_useRowContext","addMemberMutation","UsersList","rowContext","UserPlus","membershipsQuery","removeMemberMutation","teamRole","updateRoleMutation","Cell","LeaderCell","MemberCell","onSuccessMessage","UserX","TeamMembersList","TeamAssociationSelector","teamUsers","usersNotInTeam","userRoles","CreateTeamForm","addTeamMutation","incFormKey","_handleAddTeamClick","TeamsDatatable","teamsModule","teamIdParam","useTeamIdParam","teamQuery","usersQuery","teamsQuery","Restricted","_getList","useList","getList","ScheduleType","_deleteUpdateSchedule","scheduleStatus","statusMessage","Failed","FORMAT","ScheduledTimeField","dateValue","parseIsoDate","DateTimePicker","dateToSave","calendarIcon","clearIcon","disableClock","minDate","scheduledTime","scheduleType","listQuery","edgeGroupNames","schedules","schedule","deleteUpdateSchedule","currentId","useEdgeGroupsEnvironmentIds","envIds","DEFAULT_MIN_VERSION","VersionSelect","_ref$minVersion","supportedVersions","UpdateScheduleDetailsFieldset","hasTimeZone","hasNoTimeZone","hasGroupSelected","getPreviousVersions","_getPreviousVersions","RollbackOptions","_useSelectVersionOnMo","_environmentIdsQuery$2","_useFormikContext$val","versionError","environmentIdsQuery","previousVersionsQuery","usePreviousVersions","_environmentIdsQuery$","useSelectVersionOnMount","groupNames","RollbackScheduleDetailsFieldset","ScheduleTypeSelector","environmentsIds","LocalTimeZone","Update","Rollback","_edgeGroups$find","EdgeGroupsField","selectedGroups","schedulesQuery","handleBlur","FormikForm","_getItem","includeEdgeStack","_update","itemQuery","useItem","isScheduleActive","initialValuesActive","environmentsCount","environmentsPreviousVersions","itemId","updateValidation","updateSchedulesModule","ListView","CreateView","ItemView","clearStore","connectingToEdgeEndpoint","setConnectingToEdgeEndpoint","_redirect","_confirmTriggerSnapshot","EdgeAutoCreateScriptView","_settings$data","newAPIToken","setNewAPIToken","constCurrentEnvironmentStore","deletionMutation","environmentsToDelete","deleteCluster","mobileWidth","useSidebarState","SidebarProvider","_storage$useLocalStor2","storageIsOpen","setIsOpenInStorage","_useStateWithUndo2","undoIsOpenChange","onResize","undo","handleSetState","newState","useStateWithUndo","isMobile","useUpdateAngularService","AngularSidebarService","innerWidth","SidebarTooltip","useSidebarSrefActive","_pathOptions$ignorePa","_pathOptions$includeP","activeClassName","pathOptions","ignorePaths","includePaths","stateName","useSrefActive","ItemAnchor","isSubMenu","SidebarItem","_ref$isSubMenu","_ref$ignorePaths","_ref$includePaths","sidebarAnchor","SidebarSection","showTitleWhenOpen","SidebarSectionTitle","showWhenOpen","SidebarParent","listId","hasActiveChild","parentItem","childList","block","EdgeComputeSidebar","Puzzle","icons","_icons","DashboardLink","platformPath","Layout","AzureSidebar","VolumesLink","DockerSidebar","areStacksVisible","setupSubMenuProps","featSubMenuTo","registrySubMenuTo","terminalHeight","terminalClose","terminalResize","contentWrapperHeight","innerHeight","overflowY","pageWrapper","KubeCtlShell","minimized","setShell","terminalElem","handleClose","openTerminal","writeln","onOpen","onMessage","readyState","CLOSED","wsProtocol","onKey","domEvent","ctrlKey","loadingMessage","KubectlShellButton","setOpen","createPortal","KubernetesSidebar","EnvironmentSidebar","envStore","clearEnvironment","onClear","_sidebar","Sidebar","getPlatformIcon","closeBtn","SettingsSidebar","isPureAdminOrTeamLeader","showUsersSection","EdgeUpdatesSidebarItem","Radio","Award","UpdateNotification","UpdateAvailable","LatestVersion","dismissTitle","dismissBtn","BuildInfoModalButton","isBuildInfoVisible","setIsBuildInfoVisible","statusQuery","BuildInfoModal","closeModal","_versionQuery$data","DatabaseVersion","versionInfo","BuildNumber","ImageTag","GitCommit","toolsList","Wrench","tools","NodejsVersion","YarnVersion","WebpackVersion","GoVersion","Variable","BEFooter","CEFooter","FooterContent","customLogo","_useSidebarState","collapseBtn","ChevronsLeft","ChevronsRight","fullLogoBE","fullLogoCE","smallLogo","getLogo","getSystemInfo","_getSystemInfo","upgradeEdition","_upgradeEdition","license","UploadLicenseDialog","goToLoading","goToGetLicense","isGetLicenseSubmitted","upgradeMutation","Upgrade","LoadingDialog","setEnabled","timeoutId","NonAdminUpgradeDialog","globalId","HubspotForm","portalId","formId","onSubmitted","elRef","_useHubspotForm","elId","loadHubspot","createForm","onFormSubmitted","useHubspotForm","_loadHubspot","hbspt","script","_createForm","onFormReady","_options$onFormReady","rest","GetLicenseDialog","goToUploadLicense","UpgradeDialog","setCurrentStep","setIsGetLicenseSubmitted","isSubmitted","getDialog","UpgradeBEBannerWrapper","nodesCountQuery","systemInfoQuery","systemInfo","upgrade","nodeCount","edgeAgents","enabledPlatforms","ArrowUpCircle","InnerSidebar","Home","sidebarModule","azureEndpointConfig","helpersModule","featureFlagModule","userActivityModule","loggedIn","initAuthentication","initialize","nextTransition","nextTransitionName","isTransitionRequiresAuthentication","account","logout","deviceImport","endpointAccess","endpointKVM","groupCreation","groupAccess","initAdmin","settingsAuthentication","InformationPanelAngular","dismissAction","updateAction","inheritFrom","Inherited","TeamService","RCO","onAuthorizedTeamsChange","AuthorizedTeams","onAuthorizedUsersChange","AuthorizedUsers","availableTeams","availableUsers","onChangeEnablement","AccessControlEnabled","onChangeOwnership","retrieveOwnershipDetails","setOwnership","setAuthorizedUsersAndTeams","porAccessManagement","accessControlledEntity","entityType","PorAccessManagementController","RoleService","onChangeUsersAndTeams","oldUserAccessPolicies","oldTeamAccessPolicies","updatedUserAccesses","updatedTeamAccesses","accessPolicies","generateAccessPolicies","userAccessPolicies","teamAccessPolicies","selectedRoleId","selectedRole","selectedUserAccesses","selectedTeamAccesses","selectedAccesses","isRoleLimitedToBE","RoleTypes","STANDARD","roleLabel","spinning","CodeEditorController","CodeMirrorService","editorElement","applyCodeMirrorOnElement","on","CopyButtonController","isFading","copyValueText","CustomTemplateSelectorController","handleChangeTemplate","stackType","customTemplateSelector","newTemplatePath","AccessTokensDatatableController","onClickAdd","DatatableColumnsVisibilityController","DatatableFilterController","onChangeItem","isChecked","datatableFilter","PaginationService","selectAll","paginatedItemLimit","displayTextFilter","resetSelectionState","onTextFilterChangeGeneric","setDataTableTextFilters","changeOrderBy","orderField","setDataTableOrder","selectItem","originalEvent","firstClickedItem","firstItemIndex","lastItemIndex","itemsInRange","isBetween","uniq","onSelectionChanged","changePaginationLimit","setPaginationLimit","showTextFilter","getPaginationLimit","$onInitGeneric","storedColumnVisibility","getColumnVisibilitySettings","datatableTitlebar","datatablePagination","onChangeLimit","enableNoLimit","onChangePage","canBrowse","endpointType","RegistriesDatatableController","enableGoToLink","goToRegistry","redirectToManageAccess","stringsDatatable","emptyDatasetMessage","columnHeader","UsersDatatableController","authenticationMethod","DemoFeatureIndicatorController","isDemo","demoEnvironment","demoFeatureIndicator","Shield","onChangeTLSMode","TLSMode","onToggleTLS","TLSConfig","CACert","EndpointSecurityFormData","$attrs","dom","$eval","focusDelay","focusIf","fileUploadForm","ngRequired","webEditorForm","WebEditorFormController","GroupFormController","associatedEndpoints","allowCreateTag","unassociatedQuery","KubernetesRedeployAppGitFormController","saveGitSettingsInProgress","redeployInProgress","showConfig","hasUnsavedChanges","RefName","onChangeRef","onChangeAutoUpdate","onChangeGitAuth","onChangeTLSSkipVerify","toJson","updateKubeGit","isSubmitButtonDisabled","kubernetesRedeployAppGitForm","toggleAuthentication","$postLink","registryFormEcr","registry_name","$validators","modelValue","nameIsUsed","registryFormAzure","registryFormCustom","registryFormDockerhub","disableSelection","RegistryEnabled","retrieveRegistries","createRegistries","projects","resetDefaults","registryFormProGet","toggleOrganisation","registryFormQuay","useOrganisation","unselectTemplate","nameRegex","advanced","stackRedeployGitForm","StackRedeployGitFormController","$compile","stackPullImageFeature","Prune","onChangeEnvVar","onChangeOption","automaticUpdates","autoSyncLabel","isSwarmStack","that","updateGit","removeInvalidEnvVars","updateGitStackSettings","disablePullAndRedeployButton","redeployGitForm","$valid","disableSaveSettingsButton","isAutoUpdateChanged","wasEnabled","requires","parentClasses","BeIndicatorController","beFeatureIndicator","GitFormController","runGitFormValidation","_$onInit","_runGitFormValidation","_this$gitForm","_this$gitForm2","gitForm","GitFormAuthFieldsetController","runGitValidation","_runGitValidation","_this$gitFormAuthFiel","_this$gitFormAuthFiel2","gitFormAuthFieldset","GitFormAutoUpdateFieldsetController","_this$gitFormAutoUpda","_this$gitFormAutoUpda2","gitFormAutoUpdate","GitFormRefFieldController","_this2$gitFormRefFiel","_this2$gitFormRefFiel2","gitFormRefField","tlsFieldsetModule","widgetModule","porAccessManagementModule","formComponentsModule","ngModel","invalidIntervalFormat","minimumInterval","which","onEnterKey","OptionPanelController","switchPruneService","goTo","products","useAsterisk","precision","SliderController","buildOptions","translate","sliderId","showSelectionBar","enforceStep","isFormValidForMigration","environmentSelectorOptions","duplicationInProgress","migrationInProgress","isFormValidForDuplication","yamlError","duplicateStack","onDuplicate","migrateStack","onMigrate","isMigrationButtonDisabled","currentEndpointId","isEndpointSelected","onChangeEnvironment","groupSet","groupEnvironments","statusIndicator","Sun","Moon","ThemeSettingsController","ThemeManager","setThemeColor","setTheme","autoTheme","themeColor","updateThemeSettings","updateUserTheme","availableThemes","ThemeSettings","left","filesize","TIME_FORMAT","toDate","strFormat","outFormat","arrayToStr","labelsToStr","Cloud","findAssociatedGroup","EndpointHelper","GenericHelper","findDeepAll","NetworkHelper","ResourceControlHelper","RCViewModelToOwnershipParameters","ResourceControlOwnershipParameters","RCFormDataToOwnershipParameters","subResources","retrieveAuthorizedUsers","retrieveAuthorizedTeams","ExternalStackViewModel","validateYAML","containerNames","originalContainersNames","yamlObject","mapAsMap","maxAliasCount","duplicateContainers","extractContainerNames","getExternalStacksFromLabel","getExternalStacksFromContainers","getExternalStacksFromServices","idsToTagNames","portConfiguration","exposedPorts","labelsArray","templateEnvironment","interactiveFlag","consoleConfiguration","openStdin","tty","generatedVolumesPile","keyValStr","pathname","Override","PortainerEndpointInitFormValues","PortainerEndpointConnectionTypes","KUBERNETES_LOCAL","TLSSKipClientVerify","AzureApplicationId","AzureTenantId","PortainerEndpointCreationTypes","DOCKER_LOCAL","REMOTE","AZURE","AGENT","EDGE","RegistryGitlabProject","project","PathWithNamespace","path_with_namespace","container_registry_enabled","EndpointGroupDefaultModel","AssociatedEndpoints","EndpointGroupModel","EndpointGroupCreateRequest","EndpointGroupUpdateRequest","RegistryViewModel","BaseURL","Ecr","RegistryManagementConfigurationDefaultModel","ECR","Region","PROGET","RegistryCreateFormValues","RegistryCreateRequest","ProjectId","InstanceURL","organisationName","RegistryRepositoryViewModel","TagsCount","RegistryRepositoryGitlabViewModel","ResourceControlCreatePayload","AdministratorsOnly","Teams","SubResourceIDs","SettingsViewModel","InternalAuthSettings","LDAPSettings","OAuthSettings","OAuthSettingsViewModel","FeatureFlagSettings","UserSessionTimeout","PublicSettingsViewModel","OAuthLoginURI","OAuthLogoutURI","EdgeSettingsViewModel","IsFDOEnabled","InternalAuthSettingsViewModel","LDAPSettingsViewModel","ReaderDN","SearchSettings","GroupSearchSettings","AutoCreateUsers","LDAPSearchSettings","BaseDN","UsernameAttribute","LDAPGroupSearchSettings","GroupBaseDN","GroupAttribute","GroupFilter","ClientID","ClientSecret","AccessTokenURI","AuthorizationURI","ResourceURI","RedirectURI","UserIdentifier","Scopes","OAuthAutoCreateUsers","DefaultTeamID","SSO","LogoutURI","AuthStyle","CheckinInterval","StatusViewModel","InstanceID","StatusVersionViewModel","TagViewModel","TeamViewModel","TeamMembershipModel","UserViewModel","PortainerAuthorizations","RoleName","UserTokenModel","dateCreated","lastUsed","WebhookViewModel","Microsoft","Google","OAuthProviderSelectorController","saveButtonState","MS_TENANT_ID_PLACEHOLDER","OAuthSettingsController","limitedFeatureClass","overrideConfiguration","microsoftTenantID","onSelectProvider","onMicrosoftTenantIDChange","useDefaultProviderConfiguration","updateSSO","addTeamMembershipMapping","removeTeamMembership","onToggleAutoTeamMembership","onChangeAuthStyle","tenantID","providerId","authUrl","accessTokenUrl","resourceUrl","logoutUrl","userIdentifier","scopes","authStyle","HideInternalAuth","OAuthAutoMapTeamMemberships","TeamMemberships","OAuthClaimMappings","ClaimValRegex","Team","isOAuthTeamMembershipFormValid","OAuthClaimName","getProviderByUrl","providerAuthURL","API_ENDPOINT_OAUTH","accessViewerDatatable","AccessViewerController","TeamMembershipService","selectedUserId","onUserSelect","allUsers","_entries","getRoleFromUserEndpointPolicy","getRoleFromUserEndpointGroupPolicy","getRoleFromTeamEndpointPolicies","getRoleFromTeamEndpointGroupPolicies","findLowestRole","policyRoles","accessPolicy","AccessViewerPolicyModel","groupUserAccessPolicies","groupTeamAccessPolicies","filteredUsers","leadingTeams","userLeadingTeams","isMember","leadingTeam","_keyBy","teamMemberUsers","accessViewer","rolesDatatable","RolesDatatableController","isDefaultItem","rolesView","RolesFactory","EndpointName","RolePriority","Priority","TeamName","AccessLocation","RoleViewModel","Authorizations","ENDPOINT_ADMIN","HELPDESK","READ_ONLY","OPERATOR","API_ENDPOINT_ROLES","rolesData","RolesController","CreateRegistryController","Proget","RegistryGitlabService","originViewReference","originalEndpointId","createRegistry","retrieveGitlabRegistries","createGitlabRegistries","selectDockerHub","selectEcr","selectQuayRegistry","selectProGetRegistry","selectAzureRegistry","selectGitlabRegistry","selectCustomRegistry","setRegistry","useDefaultQuayConfiguration","useDefaultGitlabConfiguration","useDefaultEcrConfiguration","gitlabProjects","registriesNames","registryValue","availableRegistry","RegistryController","toggleQuayUseOrganisation","passwordLabel","updateRegistry","nameAlreadyExists","getRegistryProvider","registryType","_pullAllBy","nonBrowsableTypes","regAttrMsg","registriesMsg","deleteRegistry","deleteSelectedRegistries","login","headersGetter","getS3Settings","saveS3Settings","restoreS3Backup","CustomTemplatesFactory","gitFetch","getEndpointsTotalCount","disassociate","snapshots","dockerhubLimits","gitlabResponseGetLink","repositories","addEndpoint","removeEndpoint","configure","checkLDAPConnectivity","API_ENDPOINT_SSL","SSLFactory","StackFactory","subaction","associate","swarmId","migrate","StackByNameFactory","queryMemberships","updatePassword","updateTheme","checkAdminUser","initAdminUser","getAccessTokens","deleteAccessToken","entityId","rejected","accessesAsync","newUserPolicies","_clone","newTeamPolicies","_mapAccessData","authorizedPolicies","inheritedPolicies","availableAccesses","authorizedAccesses","inherited","available","authorizedUserPolicies","authorizedTeamPolicies","inheritedUserPolicies","inheritedTeamPolicies","userAccesses","teamAccesses","userAccessData","teamAccessData","accessData","Backup","uploadBackup","CustomTemplateServiceFactory","$sanitize","CustomTemplates","html","createCustomTemplate","notify","groupID","endpointURL","createEndpoint","TLSCAFile","checkinInterval","createAzureEndpoint","UserTrusted","EndpointGroups","configureRegistry","registryManagementConfigurationModel","retrievePorRegistryModelFromRepositoryWithRegistries","match2","match3","match4","rcID","duplicateResourceControl","oldResourceControl","newResourceControl","SSLServiceFactory","SSL","SSLPayload","StackViewModel","SwarmId","SwarmID","IsComposeFormat","UpdateDate","FromAppTemplate","PreviousDeploymentInfo","StackByName","StackHelper","SwarmService","kubernetesDeployAsync","migrateSwarmStack","targetEndpointId","migrateComposeStack","includeOrphanedStacks","composeStacks","IncludeOrphanedStacks","swarmStacks","externalSwarmStacks","externalComposeStacks","unionStacks","externalStacks","externalStack","_unionWith","includeExternalStacks","createComposeStackFromFileUpload","createComposeStack","createSwarmStackFromFileUpload","createSwarmStack","createComposeStackFromFileContent","createSwarmStackFromFileContent","createComposeStackFromGitRepository","ComposeFile","createSwarmStackFromGitRepository","StatusServiceFactory","Support","createTagAsync","deleteTag","leaderIds","TeamLeaders","TemplateServiceFactory","Templates","TemplateHelper","repositoryUrl","composeFilePathInRepository","containerConfiguration","getDefaultContainerConfiguration","EnvToStringArray","portArrayToPortConfiguration","getConsoleConfiguration","updateContainerConfigurationWithLabels","createContainerConfiguration","createVolumeBindings","teamIds","teamMembershipQueries","createMembership","newPassword","currentPassword","NewPassword","userTokens","tokenId","Webhooks","asyncFunc","wrapper","Auth","OAuth","initAsync","OAuthLogin","OAuthLoginAsync","logoutAsync","userHelpers","redirectIfUnauthorized","getUserId","tryAutoLoginExtension","loadUserData","clearSessionStorage","cleanAuthData","storeLoginStateUUID","loginAsync","userData","endpointAuthorizations","portainerAuthorizations","userTheme","storeUserId","useUserHasAuthorization","defaultChartOptions","pos","tooltipCallback","scalesCallback","isStacked","animation","responsiveAnimationDuration","responsive","tooltips","intersect","callbacks","tooltipItem","datasetLabel","datasets","datasetIndex","yLabel","layout","hover","animationDuration","scales","yAxes","stacked","ticks","beginAtZero","LimitChartItems","CHART_LIMIT","byteBasedTooltipLabel","byteBasedAxisLabel","percentageBasedAxisLabel","percentageBasedTooltipLabel","borderColor","pointBackgroundColor","pointBorderColor","pointRadius","borderWidth","CreateChart","cacheValue","DatatableServiceFactory","TEXT_FILTER_KEY_PREFIX","storeDataTableSettings","setDataTableFilters","storeDataTableFilters","storeDataTableOrder","storeDataTableExpandedItems","setColumnVisibilitySettings","storeColumnVisibilitySettings","setDataTableSelectedItems","storeDataTableSelectedItems","getDataTableSelectedItems","uploadFile","RetryCount","RetryInterval","uploadLDAPTLSFiles","queue","uploadOwnershipVoucher","voucherFile","voucher","validator","localStorageService","getLoginStateUUID","storeEndpointState","getEndpointState","cleanEndpointState","storeApplicationState","getApplicationState","storeUIState","getUIState","deleteUserId","storePaginationLimit","storeDataTableTextFilters","storeJobImage","getJobImage","userID","storeLogoutReason","getLogoutReason","cleanLogoutReason","clearAll","NameValidatorFactory","validateEnvironmentName","paginationLimit","storedLimit","_getProjectsPage","projectsAsync","_getRepositoriesPage","repositoriesAsync","projectId","RegistrySelectPrompt","setRegistryId","registries2Options","selectRegistry","StateManagerFactory","InfoHelper","StatusService","manager","UI","timesPasswordChangeSkipped","dismissImportantInformation","setRequiredPasswordLength","requiredPasswordLength","setPasswordChangeSkipped","instanceId","resetPasswordChangeSkips","clearPasswordChangeSkips","cleanEndpoint","logoURL","updateEnableEdgeComputeFeatures","enableEdgeComputeFeatures","setOptOut","endpointState","appState","isAppStateValid","UIState","determineEndpointMode","endpointAPIVersion","documentElement","setAttribute","removeAttribute","systemTheme","matchMedia","defaultTheme","authenticationMethodTypesMap","INTERNAL","LDAP","OAUTH","authenticationMethodTypesLabels","authenticationActivityTypesMap","AuthSuccess","AuthFailure","Logout","authenticationActivityTypesLabels","autoUserProvisionToggle","ldapModule","saveAuthSettingsButton","AdSettingsController","LDAPService","domainSuffix","limitedFeatureId","onTlscaCertChange","searchUsers","searchGroups","parseDomainName","onAccountChange","part","addLDAPUrl","removeLDAPUrl","isSaveSettingButtonDisabled","isLdapFormValid","adSettings","connectivityCheck","ldapConnectivityCheck","ldapGroupsDatatable","ldapSettings","ldapGroupSearch","ldapGroupSearchItem","ldapUserSearch","ldapUserSearchItem","ldapSettingsCustom","ldapSettingsDnBuilder","ldapSettingsGroupDnBuilder","ldapCustomGroupSearch","ldapCustomAdminGroup","ldapSettingsOpenLdap","ldapSettingsSecurity","ldapSettingsTestLogin","ldapCustomUserSearch","ldapUsersDatatable","selectedAdminGroups","defaultAdminGroupSearchFilter","onSearchClick","isLimitedFeatureSelfContained","LdapCustomAdminGroupController","groupstest","enableAssignAdminGroup","onAddClick","onAdminGroupChange","AdminGroupSearchSettings","AdminAutoPopulate","AdminGroups","LdapCustomGroupSearchController","showTable","LdapCustomUserSearchController","UserNameAttribute","baseFilter","LdapSettingsAdGroupSearchItemController","onChangeBaseDN","baseDN","addGroup","removeGroup","$index","onGroupsChange","groupsFilter","onFilterChange","parseGroupFilter","LdapGroupSearchController","lastSetting","onSearchUsersClick","onSearchGroupsClick","saveButtonDisabled","LdapSettingsCustomController","suffix","LdapSettingsBaseDnBuilderController","onEntriesChange","moveUp","moveDown","dn","getOUValues","ouValues","parseBaseDN","isFirstChange","toIndex","LdapSettingsGroupDnBuilderController","onGroupNameChange","onGroupChange","groupNameEntry","parseEntries","$onChange","LdapSettingsOpenLDAPController","findDomainSuffix","parseDomainSuffix","serviceAccount","searchSettings","uploadInProgress","showBeIndicatorIfNeeded","TEST_STATUS","LOADING","SUCCESS","FAILURE","LdapSettingsTestLogin","testStatus","testLogin","buildLdapSettingsModel","AnonymousMode","ServerType","StartTLS","buildAdSettingsModel","buildOpenLDAPSettingsModel","Openldap","SERVER_TYPES","OPEN_LDAP","AD","LdapSettingsController","settingsDrafts","boxSelectorOptions","onChangeServerType","serverType","showUsernameFormat","LdapUserSearchItemController","onBaseDNChange","generateUserFilter","parseFilter","members","member","LdapUserSearchController","API_ENDPOINT_LDAP","cnName","authenticationModule","generalModule","ActivityLogsDatatableController","changeSort","handleChangeLimit","onChangeSort","activityLogsDatatable","totalItems","onChangeContextFilter","onChangeKeyword","ActivityLogsViewController","today","endOf","minValidDate","startOf","onChangeDate","loadLogs","startDate","endDate","activityLogsView","contextFilterLabels","typeFilterLabels","contextType","activityType","isAuthSuccess","isAuthFailure","authLogsDatatable","contextFilter","typeFilter","onChangeTypeFilter","AuthLogsViewController","filterState","authLogsView","NotificationsViewAngular","activeItemId","authLogsViewModule","activityLogsViewModule","confirmPassword","updateUserPassword","skipPasswordChange","userCanSkip","newTransition","userRole","selectedTokens","isInitialAdmin","isDemoUser","AuthenticationController","URLHelper","passwordInputType","showOAuthLogin","showStandardLogin","AuthenticationError","loginInProgress","OAuthProvider","checkForEndpointsAsync","postLoginSteps","oAuthLoginAsync","internalLoginAsync","authenticateUserAsync","manageOauthCodeReturn","authEnabledFlowAsync","toggleShowPassword","setPasswordInputType","inputType","generateOAuthLoginURI","determineOauthProvider","LoginURI","generateState","hasValidState","savedUUID","cleanParameters","authenticateUser","administratorExists","toggleStandardLogin","getParameter","CustomTemplatesViewController","DOCKER_STANDALONE","DOCKER_SWARM_MODE","showAdvancedOptions","deployable","templateNameRegex","getTemplatesAsync","removeTemplates","removeTemplatesAsync","createStackAsync","selectTemplateAsync","unselectTemplateAsync","getNetworksAsync","confirmDeleteAsync","createAction","isDeployable","vouchersUploading","vouchersUploaded","deviceIDs","DeviceName","DeviceProfile","VoucherFiles","PortainerURL","Suffix","onVoucherFilesChange","uploads","responses","guid","createEndpointAndConfigureDevice","deviceID","deviceName","createRemoteEndpoint","edgeID","AddProfileController","createProfileAsync","EditProfileController","profileID","updateProfileAsync","EndpointRegistriesController","EndpointAccessController","updateAccessAsync","EndpointController","clearAMTManagementInfo","versionValue","ManagementInfo","onChangeCheckInInterval","onChangeTLSConfigFormValues","azureEndpoint","agentEndpoint","edgeEndpoint","edgeAssociated","showAMTInfo","showTLSConfig","edgeScriptCommands","onDisassociateEndpoint","disassociateEndpoint","initialTagIds","AzureCredentials","ApplicationID","TenantID","AuthenticationKey","evt","dockerInfo","isDockerSwarmEnv","edgeKeyDetails","keyInformation","decodedKey","instanceURL","decodeEdgeKey","configureTLS","isDockerEndpoint","amtInfo","RawOutput","numbers","EndpointKVMController","maximized","maximize","minimize","ider","kvm","sol","redirection","userConsent","mpsAuthorization","mpsToken","onAssociate","onDisassociate","GroupsController","deleteGroup","restoreOptions","wait","seconds","BackupService","REDIRECT_REASON_TIMEOUT","backupInProgress","BackupFile","restoreAsyncFn","waitPortainerRestart","restoreAndRefresh","RESTORE_FORM_TYPES","FILE","ConfirmPassword","restoreFormType","showInitPassword","showRestorePortainer","togglePanel","onChangeRestoreType","createAdminUser","initAdministrator","LogoutController","MainController","ArrowDownCircle","Ldap","SettingsAuthenticationController","prepareLDAPSettings","tlscaFile","isADServer","uploadRequired","authMethod","availableUserSessionTimeoutOptions","authOptions","onChangeAuthMethod","onChangePasswordLength","authenticationMethodSelected","isOauthEnabled","LDAPConnectivityCheck","connectivityCheckInProgress","failedConnectivityCheck","successfulConnectivityCheck","saveSettings","isLDAPFormValid","isTLSMode","SettingsEdgeComputeController","onSubmitEdgeCompute","onSubmitOpenAMT","onSubmitFDO","defaultMTLS","UseSeparateCert","MTLS","editorYamlValidationError","uploadYamlValidationError","selectedTemplateId","stackWebhookFeature","EnableWebhook","onEnableWebhookChange","composeSyntaxMaxVersion","ComposeSyntaxMaxVersion","getContainerNames","stopStackAsync","startStackAsync","retrieveSwarmStackResources","stackFilter","assignSwarmStackResources","STACK_TYPES","onPruneChange","migrateRequest","removeStack","detachStackFromGit","associateStack","originalContainerNames","stopStack","startStack","createEnabled","loadExternalSwarmStack","loadExternalStack","resourcesPromise","StacksController","getStacks","deleteSelectedStacks","TagsController","checkNameValidity","TemplateService","enabledTypes","addExtraHost","removeExtraHost","stackfile","createStackFromTemplate","createComposeStackFromTemplate","templateConfiguration","createTemplateConfiguration","generatedVolumeCount","determineRequiredGeneratedVolumeCount","generatedVolumeIds","createXAutoGeneratedLocalVolumes","updateContainerConfigurationWithVolumes","createAndStartContainer","createContainerFromTemplate","showSwarmStacks","updatePasswordError","Administrator","handleAdministratorChange","deleteUser","oldUsername","isCurrentUser","isSubmitEnabled","isDeleteDisabled","userCreationError","validUsername","TeamIds","onChangeTeamIds","checkUsernameValidity","toLocaleLowerCase","addUser","createUser","deleteSelectedUsers","assignTeamLeaders","teamSync","_getContainerImagesStatus","containerID","_getServiceImagesStatus","_ref$resourceType","CONTAINER","_ref$nodeName","_useImageNotification","getServiceImagesStatus","getContainerImagesStatus","useImageNotification","_module_exports"],"sourceRoot":""}