@rancher/shell 3.0.7 → 3.0.8-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/brand/suse/banner.svg +1 -0
- package/assets/brand/suse/dark/banner.svg +1 -0
- package/assets/brand/suse/dark/login-landscape.svg +1 -0
- package/assets/brand/suse/dark/rancher-logo.svg +1 -1
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/brand/suse/login-landscape.svg +1 -0
- package/assets/brand/suse/metadata.json +11 -1
- package/assets/brand/suse/rancher-logo.svg +1 -1
- package/assets/fonts/suse/suse-v2-latin-300.woff +0 -0
- package/assets/fonts/suse/suse-v2-latin-300.woff2 +0 -0
- package/assets/fonts/suse/suse-v2-latin-600.woff +0 -0
- package/assets/fonts/suse/suse-v2-latin-600.woff2 +0 -0
- package/assets/fonts/suse/suse-v2-latin-700.woff +0 -0
- package/assets/fonts/suse/suse-v2-latin-700.woff2 +0 -0
- package/assets/fonts/suse/suse-v2-latin-800.woff +0 -0
- package/assets/fonts/suse/suse-v2-latin-800.woff2 +0 -0
- package/assets/fonts/suse/suse-v2-latin-regular.woff +0 -0
- package/assets/fonts/suse/suse-v2-latin-regular.woff2 +0 -0
- package/assets/images/content/README.md +5 -0
- package/assets/images/content/cloud-native.svg +84 -0
- package/assets/images/content/dark/cloud-native.svg +21 -0
- package/assets/images/content/dark/shield.svg +59 -0
- package/assets/images/content/dark/suse.svg +10 -0
- package/assets/images/content/shield.svg +59 -0
- package/assets/images/content/suse.svg +10 -0
- package/assets/images/vendor/githubapp.svg +13 -0
- package/assets/styles/base/_typography.scss +2 -1
- package/assets/styles/fonts/_fontstack.scss +53 -1
- package/assets/styles/global/_cards.scss +0 -3
- package/assets/styles/global/_layout.scss +21 -35
- package/assets/styles/themes/_dark.scss +1 -1
- package/assets/styles/themes/_light.scss +1 -1
- package/assets/styles/themes/_modern.scss +16 -8
- package/assets/styles/themes/_suse.scss +116 -24
- package/assets/translations/en-us.yaml +185 -21
- package/assets/translations/zh-hans.yaml +0 -4
- package/components/AutoscalerCard.vue +113 -0
- package/components/AutoscalerTab.vue +94 -0
- package/components/BackLink.vue +8 -0
- package/components/BannerGraphic.vue +36 -21
- package/components/BrandImage.vue +17 -6
- package/components/ClusterIconMenu.vue +1 -1
- package/components/ClusterProviderIcon.vue +1 -1
- package/components/Cron/CronExpressionEditor.vue +1 -1
- package/components/Cron/CronExpressionEditorModal.vue +1 -1
- package/components/Drawer/Chrome.vue +2 -6
- package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +4 -9
- package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +3 -8
- package/components/Drawer/ResourceDetailDrawer/composables.ts +3 -4
- package/components/Drawer/ResourceDetailDrawer/index.vue +4 -9
- package/components/Drawer/ResourceDetailDrawer/types.ts +17 -0
- package/components/Drawer/types.ts +3 -0
- package/components/DynamicContent/DynamicContentBanner.vue +102 -0
- package/components/DynamicContent/DynamicContentCloseButton.vue +42 -0
- package/components/DynamicContent/DynamicContentIcon.vue +132 -0
- package/components/DynamicContent/DynamicContentPanel.vue +112 -0
- package/components/DynamicContent/content.ts +78 -0
- package/components/EmberPage.vue +1 -1
- package/components/IconOrSvg.vue +2 -2
- package/components/Inactivity.vue +222 -106
- package/components/InstallHelmCharts.vue +2 -2
- package/components/PaginatedResourceTable.vue +2 -6
- package/components/PopoverCard.vue +192 -0
- package/components/Questions/__tests__/index.test.ts +159 -0
- package/components/Resource/Detail/CopyToClipboard.vue +4 -1
- package/components/Resource/Detail/FetchLoader/composables.ts +18 -4
- package/components/Resource/Detail/Metadata/Annotations/index.vue +2 -2
- package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +1 -1
- package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +4 -0
- package/components/Resource/Detail/Metadata/KeyValueRow.vue +1 -1
- package/components/Resource/Detail/Metadata/Labels/index.vue +2 -2
- package/components/Resource/Detail/Metadata/composables.ts +9 -9
- package/components/Resource/Detail/Metadata/index.vue +3 -3
- package/components/Resource/Detail/ResourcePopover/ResourcePopoverCard.vue +2 -19
- package/components/Resource/Detail/ResourcePopover/__tests__/ResourcePopoverCard.test.ts +0 -29
- package/components/Resource/Detail/ResourcePopover/__tests__/index.test.ts +132 -150
- package/components/Resource/Detail/ResourcePopover/index.vue +54 -159
- package/components/Resource/Detail/TitleBar/__tests__/index.test.ts +0 -2
- package/components/Resource/Detail/TitleBar/composables.ts +2 -1
- package/components/Resource/Detail/TitleBar/index.vue +10 -6
- package/components/Resource/Detail/composables.ts +12 -0
- package/components/ResourceDetail/Masthead/latest.vue +29 -0
- package/components/ResourceDetail/index.vue +5 -2
- package/components/ResourceList/Masthead.vue +1 -1
- package/components/SortableTable/index.vue +18 -2
- package/components/Tabbed/__tests__/index.test.ts +86 -0
- package/components/{nav/WindowManager → Window}/ContainerLogs.vue +1 -1
- package/components/{nav/WindowManager → Window}/ContainerLogsActions.vue +1 -0
- package/components/{nav/WindowManager → Window}/__tests__/ContainerLogs.test.ts +1 -1
- package/components/{nav/WindowManager → Window}/__tests__/ContainerShell.test.ts +2 -2
- package/components/__tests__/AutoscalerCard.test.ts +154 -0
- package/components/__tests__/AutoscalerTab.test.ts +125 -0
- package/components/__tests__/PopoverCard.test.ts +204 -0
- package/components/auth/SelectPrincipal.vue +24 -6
- package/components/auth/__tests__/SelectPrincipal.test.ts +119 -0
- package/components/fleet/FleetConfigMapSelector.vue +117 -0
- package/components/fleet/FleetSecretSelector.vue +127 -0
- package/components/fleet/__tests__/FleetConfigMapSelector.test.ts +125 -0
- package/components/fleet/__tests__/FleetSecretSelector.test.ts +82 -0
- package/components/form/FileImageSelector.vue +13 -4
- package/components/form/FileSelector.vue +11 -2
- package/components/form/ResourceLabeledSelect.vue +1 -0
- package/components/form/__tests__/ResourceLabeledSelect.test.ts +90 -0
- package/components/formatter/Autoscaler.vue +97 -0
- package/components/formatter/InternalExternalIP.vue +198 -24
- package/components/formatter/__tests__/Autoscaler.test.ts +156 -0
- package/components/formatter/__tests__/InternalExternalIP.test.ts +133 -0
- package/components/google/util/__tests__/formatter.test.ts +47 -0
- package/components/google/util/formatter.ts +5 -2
- package/components/nav/Group.vue +12 -3
- package/components/nav/Header.vue +37 -16
- package/components/nav/NamespaceFilter.vue +13 -1
- package/components/nav/NotificationCenter/index.vue +2 -1
- package/components/nav/TopLevelMenu.helper.ts +16 -6
- package/components/nav/TopLevelMenu.vue +4 -2
- package/components/{DraggableZone.vue → nav/WindowManager/PinArea.vue} +47 -80
- package/components/nav/WindowManager/composables/useComponentsMount.ts +70 -0
- package/components/nav/WindowManager/composables/useDimensionsHandler.ts +105 -0
- package/components/nav/WindowManager/composables/useDragHandler.ts +99 -0
- package/components/nav/WindowManager/composables/usePanelHandler.ts +72 -0
- package/components/nav/WindowManager/composables/usePanelsHandler.ts +14 -0
- package/components/nav/WindowManager/composables/useResizeHandler.ts +167 -0
- package/components/nav/WindowManager/composables/useTabsHandler.ts +51 -0
- package/components/nav/WindowManager/constants.ts +23 -0
- package/components/nav/WindowManager/index.vue +61 -575
- package/components/nav/WindowManager/panels/HorizontalPanel.vue +265 -0
- package/components/nav/WindowManager/panels/TabBodyContainer.vue +39 -0
- package/components/nav/WindowManager/panels/VerticalPanel.vue +308 -0
- package/components/templates/default.vue +4 -40
- package/components/templates/home.vue +31 -5
- package/components/templates/plain.vue +30 -4
- package/components/templates/standalone.vue +1 -1
- package/composables/useI18n.ts +10 -1
- package/composables/useInterval.ts +15 -0
- package/config/__test__/uiplugins.test.ts +309 -0
- package/config/labels-annotations.js +9 -1
- package/config/product/auth.js +1 -0
- package/config/product/explorer.js +3 -1
- package/config/product/manager.js +20 -9
- package/config/query-params.js +1 -0
- package/config/router/routes.js +10 -2
- package/config/settings.ts +10 -2
- package/config/store.js +4 -2
- package/config/table-headers.js +8 -0
- package/config/types.js +11 -0
- package/config/uiplugins.js +46 -2
- package/config/version.js +1 -1
- package/core/__test__/extension-manager-impl.test.js +236 -0
- package/core/extension-manager-impl.js +23 -6
- package/core/plugin-helpers.ts +2 -0
- package/core/types-provisioning.ts +4 -1
- package/detail/pod.vue +1 -0
- package/detail/provisioning.cattle.io.cluster.vue +13 -1
- package/dialog/AddonConfigConfirmationDialog.vue +45 -1
- package/dialog/DeveloperLoadExtensionDialog.vue +12 -3
- package/dialog/RollbackWorkloadDialog.vue +2 -5
- package/directives/ui-context.ts +103 -0
- package/edit/__tests__/fleet.cattle.io.helmop.test.ts +52 -11
- package/edit/auth/AuthProviderWarningBanners.vue +14 -1
- package/edit/auth/__tests__/oidc.test.ts +26 -0
- package/edit/auth/github-app-steps.vue +97 -0
- package/edit/auth/github-steps.vue +75 -0
- package/edit/auth/github.vue +99 -65
- package/edit/auth/oidc.vue +5 -1
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +1 -0
- package/edit/cloudcredential.vue +1 -1
- package/edit/configmap.vue +1 -0
- package/edit/constraints.gatekeeper.sh.constraint/index.vue +1 -0
- package/edit/fleet.cattle.io.gitrepo.vue +0 -10
- package/edit/fleet.cattle.io.helmop.vue +51 -2
- package/edit/helm.cattle.io.projecthelmchart.vue +1 -0
- package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +1 -0
- package/edit/logging-flow/index.vue +1 -0
- package/edit/logging.banzaicloud.io.output/index.vue +1 -0
- package/edit/management.cattle.io.fleetworkspace.vue +1 -1
- package/edit/management.cattle.io.project.vue +1 -0
- package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +4 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +2 -1
- package/edit/monitoring.coreos.com.prometheusrule/index.vue +1 -0
- package/edit/monitoring.coreos.com.receiver/index.vue +2 -1
- package/edit/monitoring.coreos.com.route.vue +1 -1
- package/edit/namespace.vue +1 -0
- package/edit/networking.istio.io.destinationrule/index.vue +1 -0
- package/edit/networking.k8s.io.ingress/index.vue +1 -0
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +15 -5
- package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +1 -0
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -0
- package/edit/node.vue +1 -0
- package/edit/persistentvolume/index.vue +27 -22
- package/edit/persistentvolume/plugins/awsElasticBlockStore.vue +13 -14
- package/edit/persistentvolume/plugins/azureDisk.vue +49 -48
- package/edit/persistentvolume/plugins/azureFile.vue +15 -14
- package/edit/persistentvolume/plugins/cephfs.vue +15 -14
- package/edit/persistentvolume/plugins/cinder.vue +15 -14
- package/edit/persistentvolume/plugins/csi.vue +18 -16
- package/edit/persistentvolume/plugins/fc.vue +13 -14
- package/edit/persistentvolume/plugins/flexVolume.vue +15 -14
- package/edit/persistentvolume/plugins/flocker.vue +1 -3
- package/edit/persistentvolume/plugins/gcePersistentDisk.vue +13 -14
- package/edit/persistentvolume/plugins/glusterfs.vue +15 -14
- package/edit/persistentvolume/plugins/hostPath.vue +40 -39
- package/edit/persistentvolume/plugins/iscsi.vue +13 -14
- package/edit/persistentvolume/plugins/local.vue +1 -3
- package/edit/persistentvolume/plugins/longhorn.vue +23 -22
- package/edit/persistentvolume/plugins/nfs.vue +15 -14
- package/edit/persistentvolume/plugins/photonPersistentDisk.vue +1 -14
- package/edit/persistentvolume/plugins/portworxVolume.vue +15 -14
- package/edit/persistentvolume/plugins/quobyte.vue +15 -14
- package/edit/persistentvolume/plugins/rbd.vue +15 -14
- package/edit/persistentvolume/plugins/scaleIO.vue +15 -14
- package/edit/persistentvolume/plugins/storageos.vue +15 -14
- package/edit/persistentvolume/plugins/vsphereVolume.vue +1 -3
- package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +32 -5
- package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.test.ts +35 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/Networking.test.ts +155 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +11 -9
- package/edit/provisioning.cattle.io.cluster/index.vue +25 -15
- package/edit/provisioning.cattle.io.cluster/rke2.vue +98 -17
- package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +28 -2
- package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +107 -5
- package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +92 -4
- package/edit/secret/index.vue +1 -1
- package/edit/service.vue +9 -4
- package/edit/serviceaccount.vue +1 -0
- package/edit/storage.k8s.io.storageclass/index.vue +1 -0
- package/edit/workload/index.vue +2 -1
- package/edit/workload/mixins/workload.js +1 -1
- package/initialize/App.vue +4 -4
- package/initialize/install-directives.js +2 -0
- package/initialize/install-plugins.js +19 -2
- package/list/projectsecret.vue +1 -1
- package/list/provisioning.cattle.io.cluster.vue +15 -2
- package/machine-config/amazonec2.vue +42 -135
- package/machine-config/azure.vue +1 -1
- package/machine-config/components/EC2Networking.vue +490 -0
- package/machine-config/components/__tests__/EC2Networking.test.ts +148 -0
- package/machine-config/components/__tests__/utils/vpcSubnetMockData.js +294 -0
- package/machine-config/digitalocean.vue +11 -0
- package/machine-config/google.vue +1 -1
- package/mixins/__tests__/brand.spec.ts +2 -2
- package/mixins/__tests__/chart.test.ts +21 -0
- package/mixins/brand.js +1 -7
- package/mixins/chart.js +8 -2
- package/mixins/create-edit-view/index.js +5 -0
- package/models/__tests__/chart.test.ts +49 -12
- package/models/__tests__/compliance.cattle.io.clusterscanprofile.spec.js +30 -0
- package/models/__tests__/provisioning.cattle.io.cluster.test.ts +112 -5
- package/models/catalog.cattle.io.app.js +1 -1
- package/models/chart.js +28 -14
- package/models/cluster/node.js +13 -6
- package/models/cluster.x-k8s.io.machine.js +10 -20
- package/models/cluster.x-k8s.io.machinedeployment.js +5 -1
- package/models/compliance.cattle.io.clusterscanprofile.js +1 -1
- package/models/management.cattle.io.authconfig.js +1 -0
- package/models/management.cattle.io.cluster.js +21 -3
- package/models/management.cattle.io.kontainerdriver.js +1 -0
- package/models/provisioning.cattle.io.cluster.js +249 -33
- package/package.json +6 -5
- package/pages/auth/login.vue +43 -4
- package/pages/auth/verify.vue +1 -1
- package/pages/c/_cluster/apps/charts/AppChartCardSubHeader.vue +3 -2
- package/pages/c/_cluster/apps/charts/__tests__/chart.test.ts +135 -0
- package/pages/c/_cluster/apps/charts/chart.vue +35 -17
- package/pages/c/_cluster/apps/charts/index.vue +11 -13
- package/pages/c/_cluster/apps/charts/install.vue +1 -1
- package/pages/c/_cluster/explorer/EventsTable.vue +89 -3
- package/pages/c/_cluster/explorer/index.vue +8 -6
- package/pages/c/_cluster/explorer/tools/index.vue +3 -3
- package/pages/c/_cluster/manager/hostedprovider/index.vue +220 -0
- package/pages/c/_cluster/settings/brand.vue +1 -1
- package/pages/c/_cluster/settings/performance.vue +12 -25
- package/pages/c/_cluster/uiplugins/__tests__/index.test.ts +7 -0
- package/pages/c/_cluster/uiplugins/catalogs.vue +147 -0
- package/pages/c/_cluster/uiplugins/index.vue +126 -184
- package/pages/home.vue +327 -16
- package/pkg/dynamic-importer.lib.js +4 -0
- package/plugins/axios.js +2 -1
- package/plugins/dashboard-client-init.js +3 -0
- package/plugins/dashboard-store/actions.js +1 -1
- package/plugins/dashboard-store/getters.js +18 -1
- package/plugins/dashboard-store/resource-class.js +21 -6
- package/plugins/dynamic-content.js +13 -0
- package/plugins/i18n.js +8 -0
- package/plugins/steve/__tests__/steve-pagination-utils.test.ts +333 -0
- package/plugins/steve/steve-pagination-utils.ts +41 -22
- package/plugins/steve/subscribe.js +17 -9
- package/plugins/subscribe-events.ts +4 -2
- package/rancher-components/Form/Checkbox/Checkbox.vue +1 -1
- package/rancher-components/Pill/RcStatusBadge/RcStatusBadge.vue +6 -34
- package/rancher-components/Pill/RcStatusBadge/index.ts +0 -1
- package/rancher-components/Pill/RcStatusBadge/types.ts +1 -1
- package/rancher-components/Pill/RcStatusIndicator/RcStatusIndicator.vue +5 -28
- package/rancher-components/Pill/RcStatusIndicator/types.ts +2 -1
- package/rancher-components/Pill/types.ts +0 -1
- package/rancher-components/RcDropdown/RcDropdownItem.vue +1 -0
- package/rancher-components/RcDropdown/RcDropdownItemSelect.vue +5 -1
- package/rancher-components/RcIcon/RcIcon.test.ts +51 -0
- package/rancher-components/RcIcon/RcIcon.vue +46 -0
- package/rancher-components/RcIcon/index.ts +1 -0
- package/rancher-components/RcIcon/types.ts +160 -0
- package/rancher-components/utils/status.test.ts +67 -0
- package/rancher-components/utils/status.ts +77 -0
- package/scripts/extension/publish +1 -1
- package/scripts/typegen.sh +1 -0
- package/store/action-menu.js +8 -0
- package/store/auth.js +11 -6
- package/store/aws.js +8 -6
- package/store/catalog.js +6 -0
- package/store/features.js +2 -0
- package/store/index.js +45 -20
- package/store/notifications.ts +51 -4
- package/store/plugins.js +7 -3
- package/store/prefs.js +12 -6
- package/store/type-map.js +3 -3
- package/store/ui-context.ts +86 -0
- package/store/wm.ts +244 -0
- package/types/kube/kube-api.ts +2 -1
- package/types/notifications/index.ts +27 -3
- package/types/rancher/index.d.ts +1 -0
- package/types/resources/settings.d.ts +29 -7
- package/types/shell/index.d.ts +138 -4
- package/types/store/__tests__/pagination.types.spec.ts +137 -0
- package/types/store/pagination.types.ts +157 -9
- package/types/store/subscribe-events.types.ts +8 -1
- package/types/store/subscribe.types.ts +1 -0
- package/types/window-manager.ts +24 -0
- package/utils/__tests__/cluster.test.ts +379 -1
- package/utils/__tests__/object.test.ts +19 -0
- package/utils/__tests__/provider.test.ts +98 -0
- package/utils/__tests__/selector-typed.test.ts +263 -0
- package/utils/__tests__/version.test.ts +19 -1
- package/utils/autoscaler-utils.ts +7 -0
- package/utils/back-off.ts +3 -3
- package/utils/brand.ts +29 -0
- package/utils/chart.js +18 -0
- package/utils/cluster.js +157 -3
- package/utils/color.js +1 -1
- package/utils/dynamic-content/__tests__/announcement.test.ts +498 -0
- package/utils/dynamic-content/__tests__/config.test.ts +187 -0
- package/utils/dynamic-content/__tests__/index.test.ts +390 -0
- package/utils/dynamic-content/__tests__/info.test.ts +275 -0
- package/utils/dynamic-content/__tests__/new-release.test.ts +216 -0
- package/utils/dynamic-content/__tests__/support-notice.test.ts +262 -0
- package/utils/dynamic-content/__tests__/util.test.ts +235 -0
- package/utils/dynamic-content/announcement.ts +142 -0
- package/utils/dynamic-content/config.ts +55 -0
- package/utils/dynamic-content/example.json +40 -0
- package/utils/dynamic-content/index.ts +277 -0
- package/utils/dynamic-content/info.ts +261 -0
- package/utils/dynamic-content/new-release.ts +126 -0
- package/utils/dynamic-content/notification-handler.ts +48 -0
- package/utils/dynamic-content/support-notice.ts +169 -0
- package/utils/dynamic-content/types.d.ts +153 -0
- package/utils/dynamic-content/util.ts +122 -0
- package/utils/dynamic-importer.js +2 -2
- package/utils/favicon.js +4 -4
- package/utils/inactivity.ts +104 -0
- package/utils/object.js +20 -2
- package/utils/pagination-utils.ts +19 -4
- package/utils/pagination-wrapper.ts +12 -8
- package/utils/provider.ts +14 -0
- package/utils/release-notes.ts +1 -1
- package/utils/scroll.js +7 -0
- package/utils/selector-typed.ts +6 -2
- package/utils/settings.ts +15 -0
- package/utils/validators/machine-pool.ts +13 -3
- package/utils/version.js +15 -0
- package/assets/images/icons/document.svg +0 -3
- package/plugins/nuxt-client-init.js +0 -3
- package/store/wm.js +0 -95
- /package/components/{nav/WindowManager → Window}/ChartReadme.vue +0 -0
- /package/components/{nav/WindowManager → Window}/ContainerShell.vue +0 -0
- /package/components/{nav/WindowManager → Window}/KubectlShell.vue +0 -0
- /package/components/{nav/WindowManager → Window}/MachineSsh.vue +0 -0
- /package/components/{nav/WindowManager → Window}/Window.vue +0 -0
package/store/wm.ts
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { STORAGE_KEY } from '@shell/components/nav/WindowManager/constants';
|
|
2
|
+
import { Layout, Position, Tab } from '@shell/types/window-manager';
|
|
3
|
+
import { addObject, removeObject } from '@shell/utils/array';
|
|
4
|
+
import { BOTTOM, LEFT, RIGHT } from '@shell/utils/position';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This module defines the Vuex store for the window manager, managing tabs, their positions,
|
|
8
|
+
* active states, panel dimensions, and user preferences.
|
|
9
|
+
*
|
|
10
|
+
* The store can be used to add, switch, and close tabs, as well as manage panel dimensions and locked positions.
|
|
11
|
+
* The store can be accessed also by Rancher extensions to integrate to handle the window manager.
|
|
12
|
+
*/
|
|
13
|
+
export interface State {
|
|
14
|
+
tabs: Array<Tab>;
|
|
15
|
+
active: Record<Position | string, string>;
|
|
16
|
+
open: Record<Position | string, boolean>;
|
|
17
|
+
panelHeight: Record<Position | string, number | null>;
|
|
18
|
+
panelWidth: Record<Position | string, number | null>;
|
|
19
|
+
userPin: Position | string | null;
|
|
20
|
+
lockedPositions: Position[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function moveTabByReference(tabs: Tab[], fromPosition: Position | undefined, toPosition: Position, tabId: string) {
|
|
24
|
+
const idx = tabs.findIndex((t) => t.id === tabId && t.position === fromPosition);
|
|
25
|
+
|
|
26
|
+
if (idx === -1) return;
|
|
27
|
+
const [tab] = tabs.splice(idx, 1);
|
|
28
|
+
|
|
29
|
+
tab.position = toPosition;
|
|
30
|
+
|
|
31
|
+
tabs.push(tab);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const state = function() {
|
|
35
|
+
return {
|
|
36
|
+
tabs: [],
|
|
37
|
+
active: {},
|
|
38
|
+
open: {},
|
|
39
|
+
panelHeight: { [BOTTOM]: window.localStorage.getItem(STORAGE_KEY[BOTTOM]) },
|
|
40
|
+
panelWidth: {
|
|
41
|
+
[LEFT]: window.localStorage.getItem(STORAGE_KEY[LEFT]),
|
|
42
|
+
[RIGHT]: window.localStorage.getItem(STORAGE_KEY[RIGHT]),
|
|
43
|
+
},
|
|
44
|
+
userPin: null,
|
|
45
|
+
lockedPositions: [],
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const getters = {
|
|
50
|
+
byId: (state: State) => (id: string) => state.tabs.find((x) => x.id === id),
|
|
51
|
+
tabs: (state: State) => state.tabs,
|
|
52
|
+
isOpen: (state: State) => (position: string) => state.open[position],
|
|
53
|
+
panelWidth: (state: State) => state.panelWidth,
|
|
54
|
+
panelHeight: (state: State) => state.panelHeight,
|
|
55
|
+
userPin: (state: State) => state.userPin,
|
|
56
|
+
lockedPositions: (state: State) => state.lockedPositions,
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const mutations = {
|
|
60
|
+
/**
|
|
61
|
+
* Adds a new tab to the window manager.
|
|
62
|
+
*
|
|
63
|
+
* Usage:
|
|
64
|
+
*
|
|
65
|
+
* store.dispatch('wm/open', {
|
|
66
|
+
* id: PRODUCT_NAME,
|
|
67
|
+
* extensionId: PRODUCT_NAME,
|
|
68
|
+
* label: 'Label',
|
|
69
|
+
* component: 'LabelComponent',
|
|
70
|
+
* position: 'bottom',
|
|
71
|
+
* layouts: [
|
|
72
|
+
* Layout.default,
|
|
73
|
+
* Layout.home
|
|
74
|
+
* ],
|
|
75
|
+
* showHeader: false,
|
|
76
|
+
* }, { root: true });
|
|
77
|
+
*
|
|
78
|
+
* This will add a new tab with the specified properties to the window manager and set it as active.
|
|
79
|
+
*/
|
|
80
|
+
addTab(state: State, tab: Tab) {
|
|
81
|
+
const existing = state.tabs.find((x) => x.id === tab.id);
|
|
82
|
+
|
|
83
|
+
if (tab.position === undefined || tab.position as string === 'undefined') {
|
|
84
|
+
tab.position = (window.localStorage.getItem(STORAGE_KEY['pin']) || BOTTOM) as Position;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (!existing) {
|
|
88
|
+
if (state.lockedPositions.includes(BOTTOM)) {
|
|
89
|
+
tab.position = BOTTOM;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (tab.layouts === undefined) {
|
|
93
|
+
tab.layouts = [Layout.default];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (tab.showHeader === undefined) {
|
|
97
|
+
tab.showHeader = true;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
addObject(state.tabs, tab);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
state.active[tab.position] = tab.id;
|
|
104
|
+
state.open = { ...state.open, [tab.position]: true };
|
|
105
|
+
|
|
106
|
+
state.userPin = tab.position;
|
|
107
|
+
window.localStorage.setItem(STORAGE_KEY['pin'], tab.position);
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Switches a tab to a different position within the window manager.
|
|
112
|
+
*
|
|
113
|
+
* Usage:
|
|
114
|
+
* store.commit('wm/switchTab', { tabId: 'tab1', targetPosition: LEFT });
|
|
115
|
+
*
|
|
116
|
+
* This will move the tab with ID 'tab1' to the LEFT position and update the active tab accordingly.
|
|
117
|
+
*/
|
|
118
|
+
switchTab(state: State, { tabId, targetPosition }: { tabId: string, targetPosition: Position }) {
|
|
119
|
+
const current = { ...(state.tabs.find((x) => x.id === tabId) || {}) };
|
|
120
|
+
|
|
121
|
+
if (current) {
|
|
122
|
+
moveTabByReference(state.tabs, current.position, targetPosition, tabId);
|
|
123
|
+
|
|
124
|
+
state.active[targetPosition] = tabId;
|
|
125
|
+
state.open = { ...state.open, [targetPosition]: true };
|
|
126
|
+
|
|
127
|
+
if (current.position !== targetPosition) {
|
|
128
|
+
const oldPositionTabs = state.tabs.filter((t) => t.position === current.position);
|
|
129
|
+
|
|
130
|
+
if (current.position) {
|
|
131
|
+
state.active[current.position] = oldPositionTabs[0]?.id || '';
|
|
132
|
+
state.open[current.position] = oldPositionTabs.length > 0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
state.userPin = targetPosition;
|
|
138
|
+
window.localStorage.setItem(STORAGE_KEY['pin'], targetPosition);
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
closeTab(state: State, { id }: { id: string }) {
|
|
142
|
+
const tab = state.tabs.find((x) => x.id === id);
|
|
143
|
+
|
|
144
|
+
if ( !tab ) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
let idx = state.tabs.indexOf(tab);
|
|
149
|
+
|
|
150
|
+
removeObject(state.tabs, tab);
|
|
151
|
+
if ( idx >= state.tabs.length ) {
|
|
152
|
+
idx = state.tabs.length - 1;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if ( idx >= 0 ) {
|
|
156
|
+
state.active[tab.position] = state.tabs[idx].id;
|
|
157
|
+
} else {
|
|
158
|
+
state.open[tab.position] = false;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const oldPositionTabs = state.tabs.filter((t) => t.position === tab.position);
|
|
162
|
+
|
|
163
|
+
if (tab.position) {
|
|
164
|
+
state.active[tab.position] = oldPositionTabs[0]?.id || '';
|
|
165
|
+
state.open[tab.position] = oldPositionTabs.length > 0;
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
|
|
169
|
+
removeTab(state: State, tab: Tab) {
|
|
170
|
+
removeObject(state.tabs, tab);
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
setOpen(state: State, { position, open }: { position: string, open: boolean }) {
|
|
174
|
+
state.open = { ...state.open, [position]: open };
|
|
175
|
+
},
|
|
176
|
+
|
|
177
|
+
setActive(state: State, { position, id }: { position: string, id: string }) {
|
|
178
|
+
state.active[position] = id;
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
setPanelHeight(state: State, { position, height }: { position: string, height: number | null }) {
|
|
182
|
+
state.panelHeight[position] = height;
|
|
183
|
+
window.localStorage.setItem(STORAGE_KEY[BOTTOM], `${ height }`);
|
|
184
|
+
|
|
185
|
+
for (const tab of state.tabs) {
|
|
186
|
+
if (tab.position === position) {
|
|
187
|
+
tab.containerHeight = height;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
|
|
192
|
+
setPanelWidth(state: State, { position, width }: { position: Position, width: number | null }) {
|
|
193
|
+
state.panelWidth[position] = width;
|
|
194
|
+
window.localStorage.setItem(STORAGE_KEY[position as keyof typeof STORAGE_KEY], `${ width }`);
|
|
195
|
+
|
|
196
|
+
for (const tab of state.tabs) {
|
|
197
|
+
if (tab.position === position) {
|
|
198
|
+
tab.containerWidth = width;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Sets the user's preferred pin position for tabs in the window manager.
|
|
205
|
+
*
|
|
206
|
+
* Usage:
|
|
207
|
+
* store.commit('wm/setUserPin', LEFT);
|
|
208
|
+
*
|
|
209
|
+
* This will set the user's preferred pin position to LEFT and store it in local storage.
|
|
210
|
+
*/
|
|
211
|
+
setUserPin(state: State, pin: string) {
|
|
212
|
+
state.userPin = pin;
|
|
213
|
+
window.localStorage.setItem(STORAGE_KEY['pin'], pin);
|
|
214
|
+
},
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Sets the locked positions for tabs in the window manager.
|
|
218
|
+
*
|
|
219
|
+
* Usage:
|
|
220
|
+
* store.commit('wm/setLockedPositions', [LEFT, RIGHT]);
|
|
221
|
+
*
|
|
222
|
+
* This will lock tabs to the specified positions, preventing them from being moved elsewhere.
|
|
223
|
+
*/
|
|
224
|
+
setLockedPositions(state: State, positions: Position[]) {
|
|
225
|
+
state.lockedPositions = positions;
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
export const actions = {
|
|
230
|
+
close({ commit }: { state: State, getters: any, commit: any }, id: string) {
|
|
231
|
+
if ( !id ) {
|
|
232
|
+
throw new Error('[wm] id is not provided');
|
|
233
|
+
}
|
|
234
|
+
commit('closeTab', { id });
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
open({ commit }: { commit: any }, tab: Tab) {
|
|
238
|
+
if ( !tab.id ) {
|
|
239
|
+
throw new Error('[wm] id is not provided');
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
commit('addTab', tab);
|
|
243
|
+
}
|
|
244
|
+
};
|
package/types/kube/kube-api.ts
CHANGED
|
@@ -14,6 +14,7 @@ export enum NotificationLevel {
|
|
|
14
14
|
Success, // eslint-disable-line no-unused-vars
|
|
15
15
|
Warning, // eslint-disable-line no-unused-vars
|
|
16
16
|
Error, // eslint-disable-line no-unused-vars
|
|
17
|
+
Hidden, // eslint-disable-line no-unused-vars
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
/**
|
|
@@ -29,7 +30,7 @@ export type NotificationAction = {
|
|
|
29
30
|
* Defines the User Preference linked to a notification
|
|
30
31
|
*/
|
|
31
32
|
export type NotificationPreference = {
|
|
32
|
-
key: string; // User preference key to use when setting the preference when the notification is marked as read
|
|
33
|
+
key: string; // User preference key to use when setting the preference when the notification is marked as read/unread
|
|
33
34
|
value: string; // User preference value to use when setting the preference when the notification is marked as read
|
|
34
35
|
unsetValue?: string; // User preference value to use when setting the preference when the notification is marked as unread - defaults to empty string
|
|
35
36
|
};
|
|
@@ -47,6 +48,13 @@ export type EncryptedNotification = {
|
|
|
47
48
|
primaryAction?: NotificationAction;
|
|
48
49
|
// Secondary to be shown in the notification (optional)
|
|
49
50
|
secondaryAction?: NotificationAction;
|
|
51
|
+
// User Preference tied to the notification (optional) (the preference will be updated when the notification is marked read)
|
|
52
|
+
preference?: NotificationPreference;
|
|
53
|
+
// Handler to be associated with this notification that can invoke additional behaviour when the notification changes
|
|
54
|
+
// This is the name of the handler (the handlers are added as extensions). Notifications are persisted in the store, so can't use functions.
|
|
55
|
+
handlerName?: string;
|
|
56
|
+
// Additional data to be stored with the notification (optional)
|
|
57
|
+
data?: any;
|
|
50
58
|
};
|
|
51
59
|
|
|
52
60
|
/**
|
|
@@ -57,8 +65,6 @@ export type Notification = {
|
|
|
57
65
|
id: string;
|
|
58
66
|
// Progress (0-100) for notifications of type `Task` (optional)
|
|
59
67
|
progress?: number;
|
|
60
|
-
// User Preference tied to the notification (optional) (the preference will be updated when the notification is marked read)
|
|
61
|
-
preference?: NotificationPreference;
|
|
62
68
|
} & EncryptedNotification;
|
|
63
69
|
|
|
64
70
|
/**
|
|
@@ -72,3 +78,21 @@ export type StoredNotification = {
|
|
|
72
78
|
created: Date;
|
|
73
79
|
read: Boolean;
|
|
74
80
|
} & Notification;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Name to use when registering a custom notification handler
|
|
84
|
+
*/
|
|
85
|
+
export const NotificationHandlerExtensionName = 'notification-handler';
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Interface for notification handler
|
|
89
|
+
*/
|
|
90
|
+
export interface NotificationHandler {
|
|
91
|
+
/**
|
|
92
|
+
* Called when a notification with this handler has its read status is updated (read or unread)
|
|
93
|
+
*
|
|
94
|
+
* @param notification Notification that was marked read or unread
|
|
95
|
+
* @param read Indicates whether the notification was updated to be read or unread
|
|
96
|
+
*/
|
|
97
|
+
onReadUpdated(notification: Notification, read: boolean): void;
|
|
98
|
+
}
|
package/types/rancher/index.d.ts
CHANGED
|
@@ -20,14 +20,39 @@ export interface PaginationSettingsStore {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
/*
|
|
24
24
|
* Determine which resources can utilise server-side pagination
|
|
25
25
|
*/
|
|
26
26
|
export interface PaginationSettingsStores {
|
|
27
27
|
[store: string]: PaginationSettingsStore
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Names of pagination features used in pagination settings (not featureflags)
|
|
32
|
+
*/
|
|
33
|
+
export type PaginationFeatureName = 'listAutoRefreshToggle' | 'listManualRefresh' | 'homePageCluster'
|
|
34
|
+
|
|
35
|
+
export type PaginationFeatureHomePageClusterConfig = {
|
|
36
|
+
threshold: number,
|
|
37
|
+
results: number,
|
|
38
|
+
pagesPerRow: number
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Details of a specific pagination feature
|
|
43
|
+
*/
|
|
44
|
+
export type PaginationFeature<Config = any> = {
|
|
45
|
+
version: number,
|
|
46
|
+
enabled: boolean,
|
|
47
|
+
configuration?: Config,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* List of specific features that can be enabled / disabled
|
|
52
|
+
*/
|
|
53
|
+
export type PaginationSettingsFeatures = {
|
|
54
|
+
[key in PaginationFeatureName]?: PaginationFeature
|
|
55
|
+
}
|
|
31
56
|
|
|
32
57
|
/**
|
|
33
58
|
* Settings to handle server side pagination
|
|
@@ -45,11 +70,7 @@ export interface PaginationSettings {
|
|
|
45
70
|
/**
|
|
46
71
|
* List of specific features that can be enabled / disabled
|
|
47
72
|
*/
|
|
48
|
-
features?:
|
|
49
|
-
[key in PaginationFeature]: {
|
|
50
|
-
enabled: boolean,
|
|
51
|
-
}
|
|
52
|
-
},
|
|
73
|
+
features?: PaginationSettingsFeatures,
|
|
53
74
|
|
|
54
75
|
/**
|
|
55
76
|
* Debounce the amount of time between a resource changing and the backend sending a resource.changes message
|
|
@@ -82,6 +103,7 @@ type ManagedFields = {
|
|
|
82
103
|
time: string;
|
|
83
104
|
};
|
|
84
105
|
|
|
106
|
+
// Note - this should now be @RancherKubeMetadata
|
|
85
107
|
type Metadata = {
|
|
86
108
|
creationTimestamp: string;
|
|
87
109
|
fields: string[];
|
package/types/shell/index.d.ts
CHANGED
|
@@ -70,12 +70,16 @@ export namespace CAPI {
|
|
|
70
70
|
let SECRET_AUTH: string;
|
|
71
71
|
let SECRET_WILL_DELETE: string;
|
|
72
72
|
let UI_CUSTOM_PROVIDER: string;
|
|
73
|
+
let AUTOSCALER_CLUSTER_PAUSE: string;
|
|
74
|
+
let AUTOSCALER_MACHINE_POOL_MIN_SIZE: string;
|
|
75
|
+
let AUTOSCALER_MACHINE_POOL_MAX_SIZE: string;
|
|
73
76
|
}
|
|
74
77
|
export namespace CATALOG {
|
|
75
78
|
let CERTIFIED: string;
|
|
76
79
|
let _RANCHER: string;
|
|
77
80
|
let _PARTNER: string;
|
|
78
81
|
let _OTHER: string;
|
|
82
|
+
let PRIME_ONLY: string;
|
|
79
83
|
let EXPERIMENTAL: string;
|
|
80
84
|
let NAMESPACE: string;
|
|
81
85
|
let RELEASE_NAME: string;
|
|
@@ -174,6 +178,7 @@ export const STEP: "step";
|
|
|
174
178
|
export const LOGGED_OUT: "logged-out";
|
|
175
179
|
export const IS_SSO: "is-sso";
|
|
176
180
|
export const IS_SLO: "is-slo";
|
|
181
|
+
export const IS_SESSION_IDLE: "is-session-idle";
|
|
177
182
|
export const UPGRADED: "upgraded";
|
|
178
183
|
export const TIMED_OUT: "timed-out";
|
|
179
184
|
export const AUTH_TEST: "test";
|
|
@@ -1999,6 +2004,18 @@ export namespace PROJECT {
|
|
|
1999
2004
|
let labelKey_124: string;
|
|
2000
2005
|
export { labelKey_124 as labelKey };
|
|
2001
2006
|
}
|
|
2007
|
+
export namespace AUTOSCALER_ENABLED {
|
|
2008
|
+
let name_128: string;
|
|
2009
|
+
export { name_128 as name };
|
|
2010
|
+
let labelKey_125: string;
|
|
2011
|
+
export { labelKey_125 as labelKey };
|
|
2012
|
+
let value_127: string;
|
|
2013
|
+
export { value_127 as value };
|
|
2014
|
+
let sort_116: string[];
|
|
2015
|
+
export { sort_116 as sort };
|
|
2016
|
+
let formatter_71: string;
|
|
2017
|
+
export { formatter_71 as formatter };
|
|
2018
|
+
}
|
|
2002
2019
|
}
|
|
2003
2020
|
|
|
2004
2021
|
// @shell/config/types
|
|
@@ -2190,6 +2207,15 @@ export namespace MANAGEMENT {
|
|
|
2190
2207
|
export let CLUSTER_PROXY_CONFIG: string;
|
|
2191
2208
|
export let OIDC_CLIENT: string;
|
|
2192
2209
|
}
|
|
2210
|
+
export namespace BRAND {
|
|
2211
|
+
let SUSE: string;
|
|
2212
|
+
let CSP: string;
|
|
2213
|
+
let FEDERAL: string;
|
|
2214
|
+
let RGS: string;
|
|
2215
|
+
}
|
|
2216
|
+
export namespace EXT {
|
|
2217
|
+
let USER_ACTIVITY: string;
|
|
2218
|
+
}
|
|
2193
2219
|
export namespace CAPI {
|
|
2194
2220
|
let CAPI_CLUSTER: string;
|
|
2195
2221
|
let MACHINE_DEPLOYMENT: string;
|
|
@@ -2318,6 +2344,8 @@ export const ZERO_TIME: "0001-01-01T00:00:00Z";
|
|
|
2318
2344
|
export const DEFAULT_GRAFANA_STORAGE_SIZE: "10Gi";
|
|
2319
2345
|
export const DEPRECATED: "Deprecated";
|
|
2320
2346
|
export const EXPERIMENTAL: "Experimental";
|
|
2347
|
+
export const AUTOSCALER_CONFIG_MAP_ID: "kube-system/cluster-autoscaler-status";
|
|
2348
|
+
export const HOSTED_PROVIDER: "hostedprovider";
|
|
2321
2349
|
}
|
|
2322
2350
|
|
|
2323
2351
|
// @shell/config/version
|
|
@@ -2332,7 +2360,7 @@ export function getVersionData(): {
|
|
|
2332
2360
|
export function setVersionData(v: any): void;
|
|
2333
2361
|
export function getKubeVersionData(): {};
|
|
2334
2362
|
export function setKubeVersionData(v: any): void;
|
|
2335
|
-
export const CURRENT_RANCHER_VERSION: "2.
|
|
2363
|
+
export const CURRENT_RANCHER_VERSION: "2.13";
|
|
2336
2364
|
}
|
|
2337
2365
|
|
|
2338
2366
|
// @shell/mixins/components/ResourceList/resource-list.config
|
|
@@ -2421,6 +2449,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
2421
2449
|
type: BooleanConstructor;
|
|
2422
2450
|
default: any;
|
|
2423
2451
|
};
|
|
2452
|
+
defaultTab: {
|
|
2453
|
+
type: StringConstructor;
|
|
2454
|
+
default: any;
|
|
2455
|
+
};
|
|
2424
2456
|
}>, {}, {
|
|
2425
2457
|
errors: any[];
|
|
2426
2458
|
}, {
|
|
@@ -2478,6 +2510,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
2478
2510
|
type: BooleanConstructor;
|
|
2479
2511
|
default: any;
|
|
2480
2512
|
};
|
|
2513
|
+
defaultTab: {
|
|
2514
|
+
type: StringConstructor;
|
|
2515
|
+
default: any;
|
|
2516
|
+
};
|
|
2481
2517
|
}>> & Readonly<{
|
|
2482
2518
|
[x: `on${Capitalize<string>}`]: (...args: any[]) => any;
|
|
2483
2519
|
}>, {
|
|
@@ -2488,6 +2524,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
2488
2524
|
liveValue: Record<string, any>;
|
|
2489
2525
|
realMode: string;
|
|
2490
2526
|
useTabbedHash: boolean;
|
|
2527
|
+
defaultTab: string;
|
|
2491
2528
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2492
2529
|
export default _default;
|
|
2493
2530
|
}
|
|
@@ -3294,7 +3331,7 @@ export default class Resource {
|
|
|
3294
3331
|
weight: number;
|
|
3295
3332
|
divider?: undefined;
|
|
3296
3333
|
})[];
|
|
3297
|
-
showConfiguration(returnFocusSelector: any): void;
|
|
3334
|
+
showConfiguration(returnFocusSelector: any, defaultTab: any): void;
|
|
3298
3335
|
get _availableActions(): ({
|
|
3299
3336
|
action: string;
|
|
3300
3337
|
label: any;
|
|
@@ -3612,6 +3649,26 @@ export default class Resource {
|
|
|
3612
3649
|
}
|
|
3613
3650
|
}
|
|
3614
3651
|
|
|
3652
|
+
// @shell/plugins/i18n
|
|
3653
|
+
|
|
3654
|
+
declare module '@shell/plugins/i18n' {
|
|
3655
|
+
/**
|
|
3656
|
+
* @param {import('vuex').Store<any>} store
|
|
3657
|
+
* @param {string} key
|
|
3658
|
+
* @param {Record<string, any>} [args]
|
|
3659
|
+
* @param {boolean} [raw]
|
|
3660
|
+
* @param {boolean} [escapehtml]
|
|
3661
|
+
* @returns {string}
|
|
3662
|
+
*/
|
|
3663
|
+
export function stringFor(store: import("vuex").Store<any>, key: string, args?: Record<string, any>, raw?: boolean, escapehtml?: boolean): string;
|
|
3664
|
+
export function directiveSsr(vnode: any, binding: any): void;
|
|
3665
|
+
export default i18n;
|
|
3666
|
+
declare namespace i18n {
|
|
3667
|
+
let name: string;
|
|
3668
|
+
function install(vueApp: any, _options: any): void;
|
|
3669
|
+
}
|
|
3670
|
+
}
|
|
3671
|
+
|
|
3615
3672
|
// @shell/plugins/steve/hybrid-class
|
|
3616
3673
|
|
|
3617
3674
|
declare module '@shell/plugins/steve/hybrid-class' {
|
|
@@ -3671,6 +3728,8 @@ export const STEVE_CACHE: any;
|
|
|
3671
3728
|
export const UIEXTENSION: any;
|
|
3672
3729
|
export const PROVISIONING_PRE_BOOTSTRAP: any;
|
|
3673
3730
|
export const SCHEDULING_CUSTOMIZATION: any;
|
|
3731
|
+
export const SCC: any;
|
|
3732
|
+
export const AUTOSCALER: any;
|
|
3674
3733
|
export namespace getters {
|
|
3675
3734
|
function get(state: any, getters: any, rootState: any, rootGetters: any): (name: any) => any;
|
|
3676
3735
|
}
|
|
@@ -3754,6 +3813,10 @@ export const _RKE2: "rke2";
|
|
|
3754
3813
|
export const PROVISIONER: any;
|
|
3755
3814
|
export const MENU_MAX_CLUSTERS: 10;
|
|
3756
3815
|
export const SCALE_POOL_PROMPT: any;
|
|
3816
|
+
export const READ_NEW_RELEASE: any;
|
|
3817
|
+
export const READ_SUPPORT_NOTICE: any;
|
|
3818
|
+
export const READ_UPCOMING_SUPPORT_NOTICE: any;
|
|
3819
|
+
export const READ_ANNOUNCEMENTS: any;
|
|
3757
3820
|
export function state(): {
|
|
3758
3821
|
cookiesLoaded: boolean;
|
|
3759
3822
|
data: {};
|
|
@@ -3923,6 +3986,19 @@ export function getIndividualBanners(store: any): {};
|
|
|
3923
3986
|
export function overlayIndividualBanners(parsedBanner: any, banners: any): void;
|
|
3924
3987
|
}
|
|
3925
3988
|
|
|
3989
|
+
// @shell/utils/chart
|
|
3990
|
+
|
|
3991
|
+
declare module '@shell/utils/chart' {
|
|
3992
|
+
/**
|
|
3993
|
+
* Get the latest chart version that is compatible with the cluster's OS and user's pre-release preference.
|
|
3994
|
+
* @param {Object} chart - The chart object.
|
|
3995
|
+
* @param {Array<string>} workerOSs - The list of worker OSs for the cluster.
|
|
3996
|
+
* @param {boolean} showPrerelease - Whether to include pre-release versions.
|
|
3997
|
+
* @returns {Object} The latest compatible chart version object.
|
|
3998
|
+
*/
|
|
3999
|
+
export function getLatestCompatibleVersion(chart: any, workerOSs: Array<string>, showPrerelease: boolean): any;
|
|
4000
|
+
}
|
|
4001
|
+
|
|
3926
4002
|
// @shell/utils/clipboard
|
|
3927
4003
|
|
|
3928
4004
|
declare module '@shell/utils/clipboard' {
|
|
@@ -3980,6 +4056,57 @@ export function initSchedulingCustomization(value: any, features: any, store: an
|
|
|
3980
4056
|
schedulingCustomizationOriginallyEnabled: boolean;
|
|
3981
4057
|
errors: any[];
|
|
3982
4058
|
}>;
|
|
4059
|
+
/**
|
|
4060
|
+
* Recursively filters a `diffs` object to only include differences that are relevant to the user.
|
|
4061
|
+
* A difference is considered relevant if the user has provided a custom value for that specific field.
|
|
4062
|
+
*
|
|
4063
|
+
* @param {object} diffs - The object representing the differences between two chart versions' default values.
|
|
4064
|
+
* @param {object} userVals - The object containing the user's custom values.
|
|
4065
|
+
* @returns {object} A new object containing only the relevant differences.
|
|
4066
|
+
*/
|
|
4067
|
+
export function _addonConfigPreserveFilter(diffs: object, userVals: object): object;
|
|
4068
|
+
/**
|
|
4069
|
+
* @typedef {object} AddonPreserveContext
|
|
4070
|
+
* @property {object} addonConfigDiffs - An object that stores the diffs.
|
|
4071
|
+
* @property {string[]} addonNames - An array of addon names to check.
|
|
4072
|
+
* @property {object} $store - The Vuex store.
|
|
4073
|
+
* @property {object} userChartValues - The user's customized chart values.
|
|
4074
|
+
*
|
|
4075
|
+
* When the Kubernetes version is changed, this method is called to handle the add-on configurations
|
|
4076
|
+
* for all enabled addons. It checks if an addon's version has changed and, if so, determines if the
|
|
4077
|
+
* user's custom configurations should be preserved for the new version.
|
|
4078
|
+
*
|
|
4079
|
+
* The goal is to avoid showing a confirmation dialog for changes in default values that the user has not customized.
|
|
4080
|
+
*
|
|
4081
|
+
* @param {AddonPreserveContext} context The context object from the component.
|
|
4082
|
+
* @param {object} oldCharts The charts object from the K8s release object being changed from.
|
|
4083
|
+
* @param {object} newCharts The charts object from the K8s release object being changed to.
|
|
4084
|
+
*/
|
|
4085
|
+
export function addonConfigPreserve(context: AddonPreserveContext, oldCharts: object, newCharts: object): Promise<void>;
|
|
4086
|
+
export type AddonPreserveContext = {
|
|
4087
|
+
/**
|
|
4088
|
+
* - An object that stores the diffs.
|
|
4089
|
+
*/
|
|
4090
|
+
addonConfigDiffs: object;
|
|
4091
|
+
/**
|
|
4092
|
+
* - An array of addon names to check.
|
|
4093
|
+
*/
|
|
4094
|
+
addonNames: string[];
|
|
4095
|
+
/**
|
|
4096
|
+
* - The Vuex store.
|
|
4097
|
+
*/
|
|
4098
|
+
$store: object;
|
|
4099
|
+
/**
|
|
4100
|
+
* - The user's customized chart values.
|
|
4101
|
+
*
|
|
4102
|
+
* When the Kubernetes version is changed, this method is called to handle the add-on configurations
|
|
4103
|
+
* for all enabled addons. It checks if an addon's version has changed and, if so, determines if the
|
|
4104
|
+
* user's custom configurations should be preserved for the new version.
|
|
4105
|
+
*
|
|
4106
|
+
* The goal is to avoid showing a confirmation dialog for changes in default values that the user has not customized.
|
|
4107
|
+
*/
|
|
4108
|
+
userChartValues: object;
|
|
4109
|
+
};
|
|
3983
4110
|
}
|
|
3984
4111
|
|
|
3985
4112
|
// @shell/utils/color
|
|
@@ -3992,7 +4119,7 @@ export function contrastColor(color: any, contrastOptions?: {
|
|
|
3992
4119
|
dark: string;
|
|
3993
4120
|
light: string;
|
|
3994
4121
|
}): string;
|
|
3995
|
-
export function parseColor(str: any):
|
|
4122
|
+
export function parseColor(str: any): import("color").ColorInstance;
|
|
3996
4123
|
export function textColor(color: any): "black" | "white";
|
|
3997
4124
|
export function hexToRgb(hex: any): {
|
|
3998
4125
|
r: number;
|
|
@@ -4436,7 +4563,7 @@ export function isEmpty(obj: any): boolean;
|
|
|
4436
4563
|
export function isSimpleKeyValue(obj: any): boolean;
|
|
4437
4564
|
export function cleanUp(obj: any): any;
|
|
4438
4565
|
export function definedKeys(obj: any): any;
|
|
4439
|
-
export function diff(from: any, to: any): any;
|
|
4566
|
+
export function diff(from: any, to: any, preventNull?: boolean): any;
|
|
4440
4567
|
export function changeset(from: any, to: any, parentPath?: any[]): {};
|
|
4441
4568
|
export function changesetConflicts(a: any, b: any): any[];
|
|
4442
4569
|
export function applyChangeset(obj: any, changeset: any): any;
|
|
@@ -4676,6 +4803,12 @@ export function routeRequiresAuthentication(to: any): boolean;
|
|
|
4676
4803
|
export function routeRequiresInstallRedirect(to: any): boolean;
|
|
4677
4804
|
}
|
|
4678
4805
|
|
|
4806
|
+
// @shell/utils/scroll
|
|
4807
|
+
|
|
4808
|
+
declare module '@shell/utils/scroll' {
|
|
4809
|
+
export function scrollToBottom(): void;
|
|
4810
|
+
}
|
|
4811
|
+
|
|
4679
4812
|
// @shell/utils/select
|
|
4680
4813
|
|
|
4681
4814
|
declare module '@shell/utils/select' {
|
|
@@ -5160,6 +5293,7 @@ export function parse(str: any): any;
|
|
|
5160
5293
|
export function sortable(str: any): any;
|
|
5161
5294
|
export function compare(in1: any, in2: any): any;
|
|
5162
5295
|
export function isPrerelease(version?: string): boolean;
|
|
5296
|
+
export function isUpgradeFromPreToStable(currentVersion: any, targetVersion: any): any;
|
|
5163
5297
|
export function isDevBuild(version: any): boolean;
|
|
5164
5298
|
export function getVersionInfo(store: any): {
|
|
5165
5299
|
displayVersion: any;
|