@rancher/shell 2.0.1 → 3.0.0-rc.2

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.
Files changed (779) hide show
  1. package/assets/styles/base/_variables.scss +1 -0
  2. package/assets/styles/global/_labeled-input.scss +22 -11
  3. package/assets/styles/global/_layout.scss +4 -4
  4. package/assets/styles/global/_select.scss +1 -1
  5. package/assets/styles/global/_tooltip.scss +39 -72
  6. package/assets/translations/en-us.yaml +26 -5
  7. package/chart/__tests__/S3.test.ts +21 -14
  8. package/chart/example.vue +1 -1
  9. package/chart/gatekeeper.vue +4 -4
  10. package/chart/istio.vue +11 -11
  11. package/chart/logging/index.vue +8 -8
  12. package/chart/monitoring/ClusterSelector.vue +13 -13
  13. package/chart/monitoring/alerting/index.vue +6 -6
  14. package/chart/monitoring/grafana/index.vue +14 -14
  15. package/chart/monitoring/index.vue +122 -108
  16. package/chart/monitoring/prometheus/index.vue +18 -18
  17. package/chart/rancher-backup/S3.vue +11 -11
  18. package/chart/rancher-backup/index.vue +68 -60
  19. package/cloud-credential/__tests__/azure.test.ts +7 -17
  20. package/cloud-credential/__tests__/harvester.test.ts +2 -2
  21. package/cloud-credential/aws.vue +3 -3
  22. package/cloud-credential/azure.vue +4 -4
  23. package/cloud-credential/digitalocean.vue +1 -1
  24. package/cloud-credential/gcp.vue +1 -1
  25. package/cloud-credential/generic.vue +1 -1
  26. package/cloud-credential/harvester.vue +1 -1
  27. package/cloud-credential/linode.vue +1 -1
  28. package/cloud-credential/pnap.vue +2 -2
  29. package/cloud-credential/s3.vue +8 -8
  30. package/cloud-credential/vmwarevsphere.vue +4 -4
  31. package/components/ActionDropdown.vue +12 -16
  32. package/components/ActionMenu.vue +2 -2
  33. package/components/AlertTable.vue +1 -1
  34. package/components/AppModal.vue +20 -9
  35. package/components/AssignTo.vue +38 -37
  36. package/components/AsyncButton.vue +4 -7
  37. package/components/ButtonDropdown.vue +22 -20
  38. package/components/ButtonGroup.vue +1 -1
  39. package/components/Carousel.vue +1 -1
  40. package/components/Certificates.vue +1 -1
  41. package/components/ChartReadme.vue +7 -7
  42. package/components/CodeMirror.vue +2 -2
  43. package/components/CommunityLinks.vue +2 -2
  44. package/components/ConsumptionGauge.vue +1 -1
  45. package/components/ContainerResourceLimit.vue +11 -11
  46. package/components/CountGauge.vue +1 -1
  47. package/components/CreateDriver.vue +4 -4
  48. package/components/CruResource.vue +36 -20
  49. package/components/DashboardMetrics.vue +3 -3
  50. package/components/DashboardOptions.vue +3 -3
  51. package/components/DetailTop.vue +3 -3
  52. package/components/DisableAuthProviderModal.vue +7 -8
  53. package/components/EmberPage.vue +1 -1
  54. package/components/EtcdInfoBanner.vue +1 -1
  55. package/components/ExplorerMembers.vue +8 -9
  56. package/components/ExplorerProjectsNamespaces.vue +6 -7
  57. package/components/FileDiff.vue +1 -1
  58. package/components/FixedBanner.vue +1 -0
  59. package/components/GlobalRoleBindings.vue +5 -6
  60. package/components/GradientBox.vue +1 -2
  61. package/components/GrafanaDashboard.vue +7 -7
  62. package/components/GrowlManager.vue +1 -1
  63. package/components/HarvesterServiceAddOnConfig.vue +2 -2
  64. package/components/IconOrSvg.vue +1 -2
  65. package/components/Import.vue +4 -3
  66. package/components/Inactivity.vue +2 -2
  67. package/components/IndentedPanel.vue +0 -1
  68. package/components/InputOrDisplay.vue +21 -32
  69. package/components/KeyValueView.vue +4 -3
  70. package/components/LandingPagePreference.vue +3 -2
  71. package/components/LazyImage.vue +1 -1
  72. package/components/Loading.vue +1 -1
  73. package/components/LocaleSelector.vue +4 -4
  74. package/components/Markdown.vue +1 -1
  75. package/components/ModalWithCard.vue +1 -4
  76. package/components/MoveModal.vue +10 -11
  77. package/components/PercentageBar.vue +7 -7
  78. package/components/PodSecurityAdmission.vue +13 -13
  79. package/components/PromptChangePassword.vue +9 -9
  80. package/components/PromptModal.vue +1 -1
  81. package/components/PromptRemove.vue +35 -38
  82. package/components/PromptRestore.vue +68 -69
  83. package/components/Questions/Array.vue +3 -4
  84. package/components/Questions/Boolean.vue +1 -1
  85. package/components/Questions/CloudCredential.vue +1 -1
  86. package/components/Questions/Enum.vue +1 -1
  87. package/components/Questions/Float.vue +1 -1
  88. package/components/Questions/Int.vue +1 -1
  89. package/components/Questions/Question.js +1 -1
  90. package/components/Questions/QuestionMap.vue +3 -4
  91. package/components/Questions/Radio.vue +1 -1
  92. package/components/Questions/Reference.vue +2 -2
  93. package/components/Questions/String.vue +1 -1
  94. package/components/Questions/Yaml.vue +1 -1
  95. package/components/Questions/__tests__/Boolean.test.ts +24 -12
  96. package/components/Questions/__tests__/Float.test.ts +24 -12
  97. package/components/Questions/__tests__/Int.test.ts +24 -12
  98. package/components/Questions/__tests__/String.test.ts +24 -12
  99. package/components/Questions/__tests__/Yaml.test.ts +25 -13
  100. package/components/Questions/__tests__/utils/questions-defaults.ts +2 -2
  101. package/components/Questions/index.vue +10 -10
  102. package/components/Random.vue +1 -1
  103. package/components/ResourceDetail/Masthead.vue +7 -2
  104. package/components/ResourceDetail/index.vue +6 -3
  105. package/components/ResourceList/Masthead.vue +4 -0
  106. package/components/ResourceList/index.vue +10 -4
  107. package/components/ResourceSummary.vue +1 -1
  108. package/components/ResourceTable.vue +4 -5
  109. package/components/ResourceYaml.vue +1 -2
  110. package/components/RoleBindings.vue +3 -3
  111. package/components/SideNav.vue +10 -8
  112. package/components/SimpleBox.vue +0 -1
  113. package/components/SortableTable/THead.vue +5 -5
  114. package/components/SortableTable/index.vue +21 -20
  115. package/components/SortableTable/sortable-config.ts +4 -0
  116. package/components/StatusTable.vue +1 -1
  117. package/components/TabTitle.vue +3 -9
  118. package/components/Tabbed/Tab.vue +1 -1
  119. package/components/Tabbed/index.vue +2 -4
  120. package/components/Wizard.vue +8 -3
  121. package/components/YamlEditor.vue +4 -4
  122. package/components/__tests__/AppModal.test.ts +33 -25
  123. package/components/__tests__/ApplicationCard.test.ts +1 -1
  124. package/components/__tests__/AsyncButton.test.ts +42 -34
  125. package/components/__tests__/BackLink.test.ts +3 -3
  126. package/components/__tests__/ButtonGroup.test.ts +5 -5
  127. package/components/__tests__/Carousel.test.ts +2 -2
  128. package/components/__tests__/Certificates.test.ts +10 -8
  129. package/components/__tests__/ClusterBadge.test.ts +2 -2
  130. package/components/__tests__/CodeMirror.test.ts +29 -23
  131. package/components/__tests__/Collapse.test.ts +3 -3
  132. package/components/__tests__/CollapsibleCard.test.ts +6 -6
  133. package/components/__tests__/ConsumptionGauge.test.ts +5 -5
  134. package/components/__tests__/CruResource.test.ts +67 -56
  135. package/components/__tests__/EtcdInfoBanner.test.ts +11 -9
  136. package/components/__tests__/FixedBanner.test.ts +8 -8
  137. package/components/__tests__/GrowlManager.test.ts +24 -25
  138. package/components/__tests__/NamespaceFilter.test.ts +49 -32
  139. package/components/__tests__/PercentageBar.test.ts +10 -10
  140. package/components/__tests__/PodSecurityAdmission.test.ts +80 -38
  141. package/components/__tests__/ProjectRow.test.ts +1 -5
  142. package/components/__tests__/PromptRestore.test.ts +15 -18
  143. package/components/__tests__/TabTitle.test.ts +21 -14
  144. package/components/auth/AllowedPrincipals.vue +6 -7
  145. package/components/auth/RoleDetailEdit.vue +44 -46
  146. package/components/auth/SelectPrincipal.vue +3 -5
  147. package/components/auth/__tests__/RoleDetailEdit.test.ts +18 -14
  148. package/components/auth/login/ldap.vue +2 -2
  149. package/components/fleet/FleetClusters.vue +0 -1
  150. package/components/fleet/FleetRepos.vue +0 -1
  151. package/components/fleet/FleetStatus.vue +15 -16
  152. package/components/fleet/__tests__/FleetSummary.test.ts +8 -2
  153. package/components/form/ArrayList.vue +6 -7
  154. package/components/form/ArrayListGrouped.vue +20 -7
  155. package/components/form/ArrayListSelect.vue +4 -4
  156. package/components/form/BannerSettings.vue +10 -10
  157. package/components/form/ChangePassword.vue +9 -9
  158. package/components/form/ColorInput.vue +2 -2
  159. package/components/form/Command.vue +13 -15
  160. package/components/form/EnvVars.vue +7 -7
  161. package/components/form/FileImageSelector.vue +1 -1
  162. package/components/form/GitPicker.vue +7 -7
  163. package/components/form/HealthCheck.vue +4 -4
  164. package/components/form/HookOption.vue +13 -13
  165. package/components/form/InputWithSelect.vue +19 -13
  166. package/components/form/KeyValue.vue +13 -14
  167. package/components/form/LabeledSelect.vue +61 -46
  168. package/components/form/Labels.vue +3 -3
  169. package/components/form/LifecycleHooks.vue +5 -7
  170. package/components/form/MatchExpressions.vue +7 -7
  171. package/components/form/Members/ClusterMembershipEditor.vue +1 -2
  172. package/components/form/Members/ClusterPermissionsEditor.vue +9 -9
  173. package/components/form/Members/MembershipEditor.vue +4 -5
  174. package/components/form/Members/ProjectMembershipEditor.vue +1 -2
  175. package/components/form/NameNsDescription.vue +12 -13
  176. package/components/form/Networking.vue +17 -17
  177. package/components/form/NodeAffinity.vue +9 -10
  178. package/components/form/NodeScheduling.vue +7 -7
  179. package/components/form/NotificationSettings.vue +2 -2
  180. package/components/form/Password.vue +2 -2
  181. package/components/form/PodAffinity.vue +21 -23
  182. package/components/form/PodSecurity.vue +6 -6
  183. package/components/form/Ports.vue +5 -5
  184. package/components/form/Probe.vue +20 -20
  185. package/components/form/ProjectMemberEditor.vue +9 -9
  186. package/components/form/ResourceLabeledSelect.vue +11 -4
  187. package/components/form/ResourceQuota/Namespace.vue +3 -3
  188. package/components/form/ResourceQuota/NamespaceRow.vue +3 -3
  189. package/components/form/ResourceQuota/Project.vue +7 -6
  190. package/components/form/ResourceQuota/ProjectRow.vue +113 -114
  191. package/components/form/ResourceSelector.vue +3 -3
  192. package/components/form/ResourceTabs/index.vue +1 -1
  193. package/components/form/RuleSelector.vue +7 -6
  194. package/components/form/SecretSelector.vue +5 -6
  195. package/components/form/Security.vue +14 -14
  196. package/components/form/Select.vue +38 -12
  197. package/components/form/SelectOrCreateAuthSecret.vue +30 -27
  198. package/components/form/ServiceNameSelect.vue +8 -5
  199. package/components/form/ServicePorts.vue +4 -4
  200. package/components/form/ShellInput.vue +3 -3
  201. package/components/form/SimpleSecretSelector.vue +2 -2
  202. package/components/form/Taints.vue +5 -4
  203. package/components/form/Tolerations.vue +12 -12
  204. package/components/form/UnitInput.vue +1 -1
  205. package/components/form/ValueFromResource.vue +17 -17
  206. package/components/form/WorkloadPorts.vue +21 -21
  207. package/components/form/__tests__/ArrayList.test.ts +14 -11
  208. package/components/form/__tests__/ArrayListGrouped.test.ts +4 -4
  209. package/components/form/__tests__/BannerSettings.test.ts +6 -5
  210. package/components/form/__tests__/Command.test.ts +14 -13
  211. package/components/form/__tests__/Error.test.ts +5 -5
  212. package/components/form/__tests__/FileImageSelector.test.ts +5 -5
  213. package/components/form/__tests__/FileSelector.test.ts +9 -9
  214. package/components/form/__tests__/InputWithSelect.test.ts +42 -0
  215. package/components/form/__tests__/KeyValue.test.ts +28 -18
  216. package/components/form/__tests__/LabeledSelect.test.ts +9 -9
  217. package/components/form/__tests__/MatchExpressions.test.ts +10 -10
  218. package/components/form/__tests__/NameNsDescription.test.ts +28 -25
  219. package/components/form/__tests__/NodeAffinity.test.ts +4 -3
  220. package/components/form/__tests__/PodAffinity.test.ts +4 -3
  221. package/components/form/__tests__/Probe.test.ts +6 -6
  222. package/components/form/__tests__/Security.test.ts +6 -6
  223. package/components/form/__tests__/Select.test.ts +30 -0
  224. package/components/form/__tests__/ServiceNameSelect.test.ts +42 -0
  225. package/components/form/__tests__/Taints.test.ts +18 -17
  226. package/components/form/__tests__/UnitInput.test.ts +20 -24
  227. package/components/form/labeled-select-utils/labeled-select.utils.ts +1 -1
  228. package/components/formatter/AppSummaryGraph.vue +5 -5
  229. package/components/formatter/ClusterLink.vue +1 -1
  230. package/components/formatter/Endpoints.vue +4 -1
  231. package/components/formatter/FleetSummaryGraph.vue +5 -5
  232. package/components/formatter/ListLink.vue +1 -1
  233. package/components/formatter/ListLinkDetail.vue +2 -2
  234. package/components/formatter/LiveExpiryBadgeState.vue +18 -5
  235. package/components/formatter/LiveExpiryDate.vue +1 -1
  236. package/components/formatter/MachineSummaryGraph.vue +5 -5
  237. package/components/formatter/PercentageBar.vue +1 -1
  238. package/components/formatter/Principal.vue +0 -1
  239. package/components/formatter/PrincipalGroupBindings.vue +5 -5
  240. package/components/formatter/ReceiverIcons.vue +5 -3
  241. package/components/formatter/Scale.vue +5 -5
  242. package/components/formatter/ServiceTargets.vue +1 -1
  243. package/components/formatter/VirtualServiceGateways.vue +1 -1
  244. package/components/formatter/Weight.vue +3 -3
  245. package/components/formatter/WorkloadDetailEndpoints.vue +4 -1
  246. package/components/formatter/WorkloadHealthScale.vue +5 -6
  247. package/components/formatter/__tests__/Checked.test.ts +2 -2
  248. package/components/formatter/__tests__/ClusterLink.test.ts +3 -3
  249. package/components/formatter/__tests__/Date.test.ts +8 -8
  250. package/components/formatter/__tests__/LinkDetail.test.ts +10 -10
  251. package/components/formatter/__tests__/LiveDate.test.ts +21 -15
  252. package/components/formatter/__tests__/PodsUsage.test.ts +5 -5
  253. package/components/formatter/__tests__/Si.test.ts +3 -3
  254. package/components/formatter/__tests__/WorkloadDetailEndpoints.test.ts +5 -5
  255. package/components/graph/LinePlot.vue +1 -2
  256. package/components/nav/Group.vue +11 -6
  257. package/components/nav/Header.vue +182 -131
  258. package/components/nav/Jump.vue +1 -1
  259. package/components/nav/NamespaceFilter.vue +2 -2
  260. package/components/nav/TopLevelMenu.vue +18 -17
  261. package/components/nav/Type.vue +7 -7
  262. package/components/nav/WindowManager/ContainerLogs.vue +53 -38
  263. package/components/nav/WindowManager/ContainerShell.vue +45 -39
  264. package/components/nav/WindowManager/Window.vue +1 -1
  265. package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +34 -23
  266. package/components/nav/WindowManager/__tests__/ContainerShell.test.ts +41 -33
  267. package/components/nav/WindowManager/index.vue +4 -4
  268. package/components/nav/WorkspaceSwitcher.vue +16 -16
  269. package/components/nav/__tests__/TopLevelMenu.test.ts +354 -308
  270. package/components/nav/__tests__/Type.test.ts +194 -111
  271. package/components/nuxt/nuxt-build-indicator.vue +79 -52
  272. package/components/nuxt/nuxt-child.js +24 -25
  273. package/components/nuxt/nuxt-error.vue +48 -18
  274. package/components/nuxt/nuxt-link.client.js +4 -3
  275. package/components/nuxt/nuxt-loading.vue +96 -85
  276. package/components/templates/blank.vue +0 -1
  277. package/components/templates/default.vue +0 -4
  278. package/components/templates/home.vue +4 -4
  279. package/components/templates/plain.vue +3 -2
  280. package/composables/useI18n.ts +1 -1
  281. package/composables/useLabeledFormElement.ts +12 -1
  282. package/composables/useUserRetentionValidation.test.ts +178 -0
  283. package/composables/useUserRetentionValidation.ts +201 -0
  284. package/config/__test__/home-links.test.ts +2 -7
  285. package/config/pagination-table-headers.js +5 -4
  286. package/config/query-params.js +1 -0
  287. package/config/roles.ts +34 -19
  288. package/config/router/index.js +10 -7
  289. package/config/router/navigation-guards/attempt-first-login.js +1 -1
  290. package/config/router/navigation-guards/authentication.js +2 -1
  291. package/{middleware/authenticated.js → config/router/navigation-guards/clusters.js} +28 -67
  292. package/config/router/navigation-guards/history.js +13 -0
  293. package/config/router/navigation-guards/i18n.js +1 -1
  294. package/config/router/navigation-guards/index.js +8 -1
  295. package/config/router/navigation-guards/install-redirect.js +95 -0
  296. package/config/router/navigation-guards/load-initial-settings.js +1 -1
  297. package/config/router/navigation-guards/page-title.js +12 -0
  298. package/config/router/navigation-guards/products.js +15 -0
  299. package/config/router/navigation-guards/runtime-extension-route.js +31 -0
  300. package/config/router/navigation-guards/server-upgrade-growl.js +19 -0
  301. package/config/router/routes.js +49 -23
  302. package/config/settings.ts +1 -1
  303. package/config/store.js +2 -5
  304. package/config/types.js +18 -0
  305. package/config/uiplugins.js +2 -2
  306. package/core/plugin-routes.ts +40 -30
  307. package/core/plugin.ts +10 -10
  308. package/core/plugins-loader.js +3 -3
  309. package/core/plugins.js +7 -1
  310. package/core/types.ts +7 -7
  311. package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +16 -8
  312. package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +8 -8
  313. package/detail/__tests__/service.test.ts +6 -6
  314. package/detail/autoscaling.horizontalpodautoscaler/index.vue +6 -5
  315. package/detail/catalog.cattle.io.app.vue +2 -2
  316. package/detail/cis.cattle.io.clusterscan.vue +3 -3
  317. package/detail/configmap.vue +4 -1
  318. package/detail/fleet.cattle.io.cluster.vue +2 -1
  319. package/detail/fleet.cattle.io.clustergroup.vue +2 -1
  320. package/detail/fleet.cattle.io.gitrepo.vue +2 -1
  321. package/detail/harvesterhci.io.management.cluster.vue +2 -1
  322. package/detail/helm.cattle.io.projecthelmchart.vue +28 -29
  323. package/detail/management.cattle.io.user.vue +2 -1
  324. package/detail/namespace.vue +2 -1
  325. package/detail/networking.k8s.io.ingress.vue +4 -2
  326. package/detail/node.vue +2 -1
  327. package/detail/provisioning.cattle.io.cluster.vue +6 -7
  328. package/detail/secret.vue +3 -2
  329. package/detail/service.vue +2 -1
  330. package/detail/workload/index.vue +1 -19
  331. package/dialog/AddClusterMemberDialog.vue +30 -31
  332. package/dialog/AddCustomBadgeDialog.vue +101 -104
  333. package/dialog/AddProjectMemberDialog.vue +45 -46
  334. package/dialog/AddonConfigConfirmationDialog.vue +22 -24
  335. package/dialog/DeactivateDriverDialog.vue +5 -6
  336. package/dialog/DiagnosticTimingsDialog.vue +29 -29
  337. package/dialog/DrainNode.vue +245 -249
  338. package/dialog/ForceMachineRemoveDialog.vue +32 -34
  339. package/dialog/GenericPrompt.vue +23 -25
  340. package/dialog/RollbackWorkloadDialog.vue +68 -71
  341. package/dialog/RotateCertificatesDialog.vue +17 -18
  342. package/dialog/RotateEncryptionKeyDialog.vue +46 -47
  343. package/dialog/SaveAsRKETemplateDialog.vue +46 -47
  344. package/dialog/ScaleMachineDownDialog.vue +3 -3
  345. package/dialog/ScalePoolDownDialog.vue +22 -24
  346. package/dialog/SloDialog.vue +95 -0
  347. package/directives/clean-html.js +3 -3
  348. package/directives/clean-tooltip.js +1 -1
  349. package/directives/focus.js +17 -11
  350. package/directives/int-number.js +2 -2
  351. package/directives/positive-int-number.js +2 -2
  352. package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +7 -13
  353. package/edit/__tests__/kontainerDriver.test.ts +23 -20
  354. package/edit/__tests__/management.cattle.io.clusterroletemplatebinding.test.ts +31 -29
  355. package/edit/__tests__/management.cattle.io.setting.test.ts +20 -18
  356. package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +17 -15
  357. package/edit/__tests__/namespace.test.ts +28 -27
  358. package/edit/__tests__/nodeDriver.test.ts +35 -53
  359. package/edit/__tests__/service.test.ts +32 -17
  360. package/edit/__tests__/ui.cattle.io.navlink.test.ts +22 -20
  361. package/edit/auth/__tests__/AuthProviderWarningBanners.test.ts +2 -2
  362. package/edit/auth/__tests__/azuread.test.ts +43 -46
  363. package/edit/auth/__tests__/oidc.test.ts +36 -39
  364. package/edit/auth/azuread.vue +16 -23
  365. package/edit/auth/github.vue +6 -6
  366. package/edit/auth/googleoauth.vue +7 -7
  367. package/edit/auth/ldap/config.vue +29 -29
  368. package/edit/auth/ldap/index.vue +5 -5
  369. package/edit/auth/oidc.vue +18 -18
  370. package/edit/auth/saml.vue +94 -24
  371. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +2 -2
  372. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +7 -7
  373. package/edit/autoscaling.horizontalpodautoscaler/index.vue +18 -16
  374. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +3 -3
  375. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +3 -3
  376. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +12 -12
  377. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +5 -5
  378. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +3 -3
  379. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +2 -2
  380. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  381. package/edit/catalog.cattle.io.clusterrepo.vue +31 -32
  382. package/edit/cis.cattle.io.clusterscan.vue +9 -9
  383. package/edit/cis.cattle.io.clusterscanbenchmark.vue +7 -7
  384. package/edit/cis.cattle.io.clusterscanprofile.vue +3 -3
  385. package/edit/cloudcredential.vue +13 -8
  386. package/edit/configmap.vue +7 -7
  387. package/edit/constraints.gatekeeper.sh.constraint/MatchKinds.vue +3 -3
  388. package/edit/constraints.gatekeeper.sh.constraint/NamespaceList.vue +1 -1
  389. package/edit/constraints.gatekeeper.sh.constraint/Scope.vue +1 -1
  390. package/edit/constraints.gatekeeper.sh.constraint/index.vue +21 -22
  391. package/edit/fleet.cattle.io.cluster.vue +2 -1
  392. package/edit/fleet.cattle.io.clustergroup.vue +6 -5
  393. package/edit/fleet.cattle.io.gitrepo.vue +18 -18
  394. package/edit/helm.cattle.io.projecthelmchart.vue +4 -4
  395. package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +3 -2
  396. package/edit/logging-flow/Match.vue +4 -4
  397. package/edit/logging-flow/index.vue +11 -10
  398. package/edit/logging.banzaicloud.io.output/__tests__/logging.banzaicloud.io.output.test.ts +79 -73
  399. package/edit/logging.banzaicloud.io.output/index.vue +4 -4
  400. package/edit/logging.banzaicloud.io.output/providers/__tests__/loki.test.ts +1 -1
  401. package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
  402. package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +5 -5
  403. package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +6 -6
  404. package/edit/logging.banzaicloud.io.output/providers/datadog.vue +4 -4
  405. package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +16 -16
  406. package/edit/logging.banzaicloud.io.output/providers/file.vue +1 -1
  407. package/edit/logging.banzaicloud.io.output/providers/forward.vue +9 -9
  408. package/edit/logging.banzaicloud.io.output/providers/gcs.vue +5 -5
  409. package/edit/logging.banzaicloud.io.output/providers/gelf.vue +14 -14
  410. package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
  411. package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +3 -3
  412. package/edit/logging.banzaicloud.io.output/providers/logdna.vue +3 -3
  413. package/edit/logging.banzaicloud.io.output/providers/logz.vue +5 -5
  414. package/edit/logging.banzaicloud.io.output/providers/loki.vue +10 -10
  415. package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
  416. package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +15 -15
  417. package/edit/logging.banzaicloud.io.output/providers/redis.vue +5 -5
  418. package/edit/logging.banzaicloud.io.output/providers/s3.vue +7 -7
  419. package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +12 -12
  420. package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
  421. package/edit/logging.banzaicloud.io.output/providers/syslog.vue +19 -19
  422. package/edit/management.cattle.io.clusterroletemplatebinding.vue +1 -1
  423. package/edit/management.cattle.io.fleetworkspace.vue +9 -7
  424. package/edit/management.cattle.io.node.vue +4 -3
  425. package/edit/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +3 -2
  426. package/edit/management.cattle.io.project.vue +13 -10
  427. package/edit/management.cattle.io.projectroletemplatebinding.vue +3 -3
  428. package/edit/management.cattle.io.setting.vue +6 -6
  429. package/edit/management.cattle.io.user.vue +4 -4
  430. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +4 -4
  431. package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +2 -1
  432. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +5 -5
  433. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +11 -11
  434. package/edit/monitoring.coreos.com.alertmanagerconfig/tls.vue +2 -2
  435. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +10 -9
  436. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  437. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +5 -5
  438. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +5 -5
  439. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +9 -9
  440. package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +36 -36
  441. package/edit/monitoring.coreos.com.prometheusrule/RecordingRule.vue +4 -4
  442. package/edit/monitoring.coreos.com.prometheusrule/index.vue +9 -9
  443. package/edit/monitoring.coreos.com.receiver/auth.vue +9 -9
  444. package/edit/monitoring.coreos.com.receiver/index.vue +8 -8
  445. package/edit/monitoring.coreos.com.receiver/tls.vue +4 -4
  446. package/edit/monitoring.coreos.com.receiver/types/__tests__/email.test.ts +20 -16
  447. package/edit/monitoring.coreos.com.receiver/types/email.vue +12 -11
  448. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +11 -11
  449. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +6 -6
  450. package/edit/monitoring.coreos.com.receiver/types/slack.vue +6 -6
  451. package/edit/monitoring.coreos.com.receiver/types/webhook.vue +7 -7
  452. package/edit/monitoring.coreos.com.route.vue +10 -10
  453. package/edit/namespace.vue +10 -8
  454. package/edit/networking.istio.io.destinationrule/LoadBalancer.vue +12 -12
  455. package/edit/networking.istio.io.destinationrule/index.vue +15 -15
  456. package/edit/networking.k8s.io.ingress/Certificate.vue +5 -5
  457. package/edit/networking.k8s.io.ingress/Certificates.vue +2 -2
  458. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +18 -18
  459. package/edit/networking.k8s.io.ingress/IngressClass.vue +1 -1
  460. package/edit/networking.k8s.io.ingress/Rule.vue +9 -7
  461. package/edit/networking.k8s.io.ingress/RulePath.vue +10 -10
  462. package/edit/networking.k8s.io.ingress/Rules.vue +3 -3
  463. package/edit/networking.k8s.io.ingress/index.vue +15 -10
  464. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +4 -4
  465. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +1 -1
  466. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +47 -32
  467. package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +3 -3
  468. package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.test.ts +27 -26
  469. package/edit/networking.k8s.io.networkpolicy/index.vue +18 -16
  470. package/edit/node.vue +6 -5
  471. package/edit/nodeDriver.vue +6 -1
  472. package/edit/persistentvolume/__tests__/persistentvolume.test.ts +60 -49
  473. package/edit/persistentvolume/index.vue +26 -26
  474. package/edit/persistentvolume/plugins/awsElasticBlockStore.vue +8 -8
  475. package/edit/persistentvolume/plugins/azureDisk.vue +10 -10
  476. package/edit/persistentvolume/plugins/azureFile.vue +6 -6
  477. package/edit/persistentvolume/plugins/cephfs.vue +10 -10
  478. package/edit/persistentvolume/plugins/cinder.vue +8 -8
  479. package/edit/persistentvolume/plugins/csi.vue +18 -18
  480. package/edit/persistentvolume/plugins/fc.vue +9 -9
  481. package/edit/persistentvolume/plugins/flexVolume.vue +9 -9
  482. package/edit/persistentvolume/plugins/flocker.vue +3 -3
  483. package/edit/persistentvolume/plugins/gcePersistentDisk.vue +8 -8
  484. package/edit/persistentvolume/plugins/glusterfs.vue +5 -5
  485. package/edit/persistentvolume/plugins/hostPath.vue +4 -4
  486. package/edit/persistentvolume/plugins/iscsi.vue +18 -18
  487. package/edit/persistentvolume/plugins/local.vue +2 -2
  488. package/edit/persistentvolume/plugins/longhorn.vue +8 -8
  489. package/edit/persistentvolume/plugins/nfs.vue +5 -5
  490. package/edit/persistentvolume/plugins/photonPersistentDisk.vue +5 -5
  491. package/edit/persistentvolume/plugins/portworxVolume.vue +6 -6
  492. package/edit/persistentvolume/plugins/quobyte.vue +7 -7
  493. package/edit/persistentvolume/plugins/rbd.vue +12 -12
  494. package/edit/persistentvolume/plugins/scaleIO.vue +15 -15
  495. package/edit/persistentvolume/plugins/storageos.vue +9 -9
  496. package/edit/persistentvolume/plugins/vsphereVolume.vue +5 -5
  497. package/edit/persistentvolumeclaim.vue +29 -28
  498. package/edit/policy.poddisruptionbudget.vue +15 -14
  499. package/edit/provisioning.cattle.io.cluster/AgentEnv.vue +1 -1
  500. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +10 -10
  501. package/edit/provisioning.cattle.io.cluster/Labels.vue +12 -1
  502. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +5 -5
  503. package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +40 -36
  504. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +170 -79
  505. package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.test.ts +16 -14
  506. package/edit/provisioning.cattle.io.cluster/__tests__/DirectoryConfig.test.ts +38 -8
  507. package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +14 -12
  508. package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +18 -19
  509. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +292 -84
  510. package/edit/provisioning.cattle.io.cluster/import.vue +7 -4
  511. package/edit/provisioning.cattle.io.cluster/index.vue +32 -13
  512. package/edit/provisioning.cattle.io.cluster/rke2.vue +155 -78
  513. package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +5 -5
  514. package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +10 -11
  515. package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +12 -11
  516. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +62 -24
  517. package/edit/provisioning.cattle.io.cluster/tabs/DirectoryConfig.vue +9 -9
  518. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +12 -12
  519. package/edit/provisioning.cattle.io.cluster/tabs/etcd/S3Config.vue +15 -15
  520. package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +6 -6
  521. package/edit/provisioning.cattle.io.cluster/tabs/networking/ACE.vue +3 -3
  522. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +18 -9
  523. package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +16 -12
  524. package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryMirrors.vue +4 -4
  525. package/edit/provisioning.cattle.io.cluster/tabs/registries/__tests__/RegistryConfigs.test.ts +63 -0
  526. package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +8 -6
  527. package/edit/provisioning.cattle.io.cluster/tabs/upgrade/DrainOptions.vue +15 -15
  528. package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +4 -4
  529. package/edit/resources.cattle.io.backup.vue +9 -9
  530. package/edit/resources.cattle.io.restore.vue +11 -11
  531. package/edit/secret/basic.vue +2 -2
  532. package/edit/secret/generic.vue +1 -1
  533. package/edit/secret/index.vue +12 -10
  534. package/edit/secret/registry.vue +4 -4
  535. package/edit/secret/ssh.vue +2 -2
  536. package/edit/secret/tls.vue +2 -2
  537. package/edit/service.vue +25 -25
  538. package/edit/serviceaccount.vue +7 -7
  539. package/edit/storage.k8s.io.storageclass/index.vue +16 -16
  540. package/edit/storage.k8s.io.storageclass/provisioners/custom.vue +1 -1
  541. package/edit/storage.k8s.io.storageclass/provisioners/driver.harvesterhci.io.vue +2 -2
  542. package/edit/storage.k8s.io.storageclass/provisioners/driver.longhorn.io.vue +4 -4
  543. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +12 -12
  544. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/azure-disk.vue +3 -3
  545. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/azure-file.vue +3 -3
  546. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/cinder.vue +4 -4
  547. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +6 -6
  548. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/glusterfs.vue +9 -9
  549. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/portworx-volume.vue +7 -7
  550. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/quobyte.vue +8 -8
  551. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/rbd.vue +11 -11
  552. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/scaleio.vue +8 -8
  553. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/storageos.vue +5 -5
  554. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +7 -7
  555. package/edit/token.vue +4 -4
  556. package/edit/ui.cattle.io.navlink.vue +28 -27
  557. package/edit/workload/Job.vue +18 -18
  558. package/edit/workload/Upgrading.vue +16 -16
  559. package/edit/workload/VolumeClaimTemplate.vue +3 -3
  560. package/edit/workload/__tests__/Job.test.ts +10 -10
  561. package/edit/workload/__tests__/index.test.ts +32 -29
  562. package/edit/workload/index.vue +31 -30
  563. package/edit/workload/mixins/workload.js +30 -30
  564. package/edit/workload/storage/ContainerMountPaths.vue +3 -4
  565. package/edit/workload/storage/Mount.vue +10 -7
  566. package/edit/workload/storage/__tests__/Mount.test.ts +17 -13
  567. package/edit/workload/storage/__tests__/Storage.test.ts +26 -20
  568. package/edit/workload/storage/awsElasticBlockStore.vue +4 -4
  569. package/edit/workload/storage/azureDisk.vue +7 -7
  570. package/edit/workload/storage/azureFile.vue +5 -5
  571. package/edit/workload/storage/csi/driver.longhorn.io.vue +3 -3
  572. package/edit/workload/storage/csi/index.vue +4 -4
  573. package/edit/workload/storage/emptyDir.vue +4 -4
  574. package/edit/workload/storage/ephemeralVolume/index.vue +3 -3
  575. package/edit/workload/storage/gcePersistentDisk.vue +4 -4
  576. package/edit/workload/storage/hostPath.vue +4 -4
  577. package/edit/workload/storage/index.vue +13 -27
  578. package/edit/workload/storage/nfs.vue +4 -4
  579. package/edit/workload/storage/persistentVolumeClaim/__tests__/persistentvolumeclaim.test.ts +18 -16
  580. package/edit/workload/storage/persistentVolumeClaim/index.vue +5 -5
  581. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +15 -15
  582. package/edit/workload/storage/secret.vue +9 -9
  583. package/edit/workload/storage/vsphereVolume.vue +4 -4
  584. package/initialize/App.vue +10 -8
  585. package/initialize/app-extended.js +14 -30
  586. package/initialize/entry-helpers.js +29 -428
  587. package/initialize/entry.js +11 -10
  588. package/initialize/install-plugins.js +15 -13
  589. package/list/__tests__/workload.test.ts +22 -20
  590. package/list/catalog.cattle.io.app.vue +1 -1
  591. package/list/cis.cattle.io.clusterscan.vue +1 -2
  592. package/list/fleet.cattle.io.clustergroup.vue +0 -1
  593. package/list/group.principal.vue +1 -1
  594. package/list/management.cattle.io.feature.vue +23 -29
  595. package/list/management.cattle.io.fleetworkspace.vue +0 -1
  596. package/list/management.cattle.io.setting.vue +2 -2
  597. package/list/management.cattle.io.user.vue +1 -1
  598. package/list/namespace.vue +0 -1
  599. package/list/node.vue +4 -5
  600. package/list/provisioning.cattle.io.cluster.vue +1 -1
  601. package/list/rbac.authorization.k8s.io.clusterrolebinding.vue +0 -1
  602. package/machine-config/__tests__/vmwarevsphere.test.ts +10 -7
  603. package/machine-config/amazonec2.vue +26 -26
  604. package/machine-config/azure.vue +31 -31
  605. package/machine-config/digitalocean.vue +8 -8
  606. package/machine-config/generic.vue +2 -1
  607. package/machine-config/linode.vue +4 -4
  608. package/machine-config/pnap.vue +11 -11
  609. package/machine-config/vmwarevsphere-config.ts +17 -0
  610. package/machine-config/vmwarevsphere.vue +400 -410
  611. package/mixins/__tests__/chart.test.ts +45 -24
  612. package/mixins/auth-config.js +37 -11
  613. package/mixins/chart.js +31 -15
  614. package/mixins/compact-input.ts +2 -3
  615. package/mixins/labeled-form-element.ts +8 -3
  616. package/mixins/page-actions.js +1 -1
  617. package/mixins/resource-fetch.js +4 -3
  618. package/models/__tests__/apps.deployment.test.ts +93 -0
  619. package/models/apps.deployment.js +18 -4
  620. package/models/apps.statefulset.js +1 -2
  621. package/models/batch.cronjob.js +1 -2
  622. package/models/catalog.cattle.io.clusterrepo.js +1 -2
  623. package/models/fleet.cattle.io.gitrepo.js +1 -2
  624. package/models/helm.cattle.io.projecthelmchart.js +2 -3
  625. package/models/management.cattle.io.cluster.js +2 -2
  626. package/models/management.cattle.io.roletemplate.js +2 -3
  627. package/models/namespace.js +1 -2
  628. package/models/networking.istio.io.destinationrule.js +2 -3
  629. package/models/persistentvolumeclaim.js +2 -3
  630. package/models/provisioning.cattle.io.cluster.js +4 -0
  631. package/models/workload.js +2 -2
  632. package/package.json +44 -43
  633. package/pages/404.vue +15 -0
  634. package/pages/__tests__/prefs.test.ts +44 -44
  635. package/pages/about.vue +4 -4
  636. package/pages/account/index.vue +1 -2
  637. package/pages/auth/login.vue +29 -9
  638. package/pages/auth/logout.vue +23 -1
  639. package/pages/auth/setup.vue +35 -31
  640. package/pages/auth/verify.vue +38 -5
  641. package/pages/c/_cluster/_product/namespaces.vue +1 -2
  642. package/pages/c/_cluster/apps/charts/chart.vue +4 -4
  643. package/pages/c/_cluster/apps/charts/index.vue +16 -16
  644. package/pages/c/_cluster/apps/charts/install.vue +46 -80
  645. package/pages/c/_cluster/auth/config/index.vue +2 -2
  646. package/pages/c/_cluster/auth/roles/index.vue +2 -2
  647. package/pages/c/_cluster/auth/user.retention/index.vue +34 -95
  648. package/pages/c/_cluster/explorer/EventsTable.vue +1 -1
  649. package/pages/c/_cluster/explorer/__tests__/index.test.ts +32 -34
  650. package/pages/c/_cluster/explorer/index.vue +9 -6
  651. package/pages/c/_cluster/explorer/tools/__tests__/index.test.ts +22 -20
  652. package/pages/c/_cluster/fleet/index.vue +5 -6
  653. package/pages/c/_cluster/gatekeeper/index.vue +4 -5
  654. package/pages/c/_cluster/istio/index.vue +6 -8
  655. package/pages/c/_cluster/logging/index.vue +9 -5
  656. package/pages/c/_cluster/longhorn/__tests__/longhorn.index.test.ts +7 -4
  657. package/pages/c/_cluster/longhorn/index.vue +2 -9
  658. package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +1 -1
  659. package/pages/c/_cluster/manager/jwt.authentication/index.vue +14 -5
  660. package/pages/c/_cluster/monitoring/alertmanagerconfig/_alertmanagerconfigid/receiver.vue +1 -1
  661. package/pages/c/_cluster/monitoring/index.vue +8 -10
  662. package/pages/c/_cluster/neuvector/index.vue +7 -10
  663. package/pages/c/_cluster/settings/DefaultLinksEditor.vue +7 -9
  664. package/pages/c/_cluster/settings/banners.vue +82 -84
  665. package/pages/c/_cluster/settings/brand.vue +21 -19
  666. package/pages/c/_cluster/settings/links.vue +6 -4
  667. package/pages/c/_cluster/settings/performance.vue +25 -21
  668. package/pages/c/_cluster/uiplugins/AddExtensionRepos.vue +2 -2
  669. package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +43 -45
  670. package/pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue +5 -5
  671. package/pages/c/_cluster/uiplugins/InstallDialog.vue +1 -1
  672. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +3 -3
  673. package/pages/c/_cluster/uiplugins/__tests__/AddExtensionRepos.test.ts +17 -34
  674. package/pages/c/_cluster/uiplugins/__tests__/SetupUIPlugins.test.ts +12 -9
  675. package/pages/c/_cluster/uiplugins/index.vue +173 -176
  676. package/pages/diagnostic.vue +6 -9
  677. package/pages/fail-whale.vue +3 -1
  678. package/pages/home.vue +8 -17
  679. package/pages/index.vue +17 -16
  680. package/pages/prefs.vue +12 -12
  681. package/pages/support/index.vue +3 -3
  682. package/pkg/tsconfig.json +0 -1
  683. package/plugins/dashboard-store/actions.js +1 -1
  684. package/plugins/dashboard-store/getters.js +1 -1
  685. package/plugins/dashboard-store/index.js +2 -0
  686. package/plugins/dashboard-store/mutations.js +5 -5
  687. package/plugins/dashboard-store/resource-class.js +5 -5
  688. package/plugins/extend-router.js +62 -42
  689. package/plugins/floating-vue.js +1 -0
  690. package/plugins/formatters.js +1 -1
  691. package/plugins/global-formatters.js +3 -14
  692. package/plugins/i18n.js +17 -22
  693. package/plugins/shortkey.js +273 -0
  694. package/plugins/steve/__tests__/getters.test.ts +6 -3
  695. package/plugins/steve/getters.js +6 -4
  696. package/plugins/steve/hybrid-class.js +7 -12
  697. package/plugins/steve/mutations.js +1 -2
  698. package/plugins/steve/norman-class.js +10 -11
  699. package/plugins/steve/subscribe.js +3 -1
  700. package/promptRemove/management.cattle.io.globalrole.vue +1 -5
  701. package/promptRemove/management.cattle.io.project.vue +1 -1
  702. package/promptRemove/pod.vue +1 -1
  703. package/public/index.html +53 -52
  704. package/rancher-components/BadgeState/BadgeState.test.ts +1 -1
  705. package/rancher-components/BadgeState/BadgeState.vue +1 -1
  706. package/rancher-components/Banner/Banner.test.ts +2 -2
  707. package/rancher-components/Form/Checkbox/Checkbox.test.ts +5 -5
  708. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -4
  709. package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +5 -5
  710. package/rancher-components/Form/LabeledInput/LabeledInput.vue +15 -4
  711. package/rancher-components/Form/Radio/RadioButton.vue +3 -2
  712. package/rancher-components/Form/Radio/RadioGroup.test.ts +6 -9
  713. package/rancher-components/Form/Radio/RadioGroup.vue +4 -5
  714. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +18 -1
  715. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.test.ts +13 -13
  716. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -1
  717. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +1 -0
  718. package/rancher-components/StringList/StringList.test.ts +22 -22
  719. package/rancher-components/StringList/StringList.vue +10 -9
  720. package/scripts/extension/helm/charts/ui-plugin-server/Chart.yaml +1 -1
  721. package/scripts/publish-shell.sh +52 -58
  722. package/scripts/test-plugins-build.sh +44 -38
  723. package/scripts/vue-migrate.js +7 -4
  724. package/shell/types/shell/index.d.ts +2 -0
  725. package/store/__tests__/catalog.test.ts +4 -21
  726. package/store/auth.js +28 -10
  727. package/store/index.js +16 -8
  728. package/store/prefs.js +3 -4
  729. package/types/resources/settings.d.ts +54 -0
  730. package/types/store/pagination.types.ts +1 -1
  731. package/utils/auth.js +21 -6
  732. package/utils/axios.js +1 -1
  733. package/utils/download.js +1 -1
  734. package/utils/dynamic-importer.js +14 -12
  735. package/utils/error.js +4 -4
  736. package/utils/object.js +4 -5
  737. package/utils/router.js +7 -1
  738. package/utils/select.js +1 -1
  739. package/utils/settings.ts +3 -1
  740. package/utils/unit-tests/ChildRenderingRouterLinkStub.ts +4 -4
  741. package/vue.config.js +171 -145
  742. package/config/middleware.js +0 -6
  743. package/config/nuxt-paths.js +0 -7
  744. package/creators/app/app.package.json +0 -14
  745. package/creators/app/files/.eslintignore +0 -16
  746. package/creators/app/files/.eslintrc.js +0 -173
  747. package/creators/app/files/.gitignore +0 -70
  748. package/creators/app/files/.gitlab-ci.yml +0 -14
  749. package/creators/app/files/.vscode/settings.json +0 -21
  750. package/creators/app/files/babel.config.js +0 -1
  751. package/creators/app/files/tsconfig.json +0 -42
  752. package/creators/app/files/vue.config.js +0 -6
  753. package/creators/app/init +0 -120
  754. package/creators/app/package.json +0 -25
  755. package/creators/pkg/files/.github/workflows/build-extension-catalog.yml +0 -24
  756. package/creators/pkg/files/.github/workflows/build-extension-charts.yml +0 -22
  757. package/creators/pkg/files/babel.config.js +0 -1
  758. package/creators/pkg/files/index.ts +0 -14
  759. package/creators/pkg/files/tsconfig.json +0 -53
  760. package/creators/pkg/files/vue.config.js +0 -1
  761. package/creators/pkg/init +0 -286
  762. package/creators/pkg/package.json +0 -19
  763. package/creators/pkg/pkg.package.json +0 -21
  764. package/creators/pkg/vue-shim.ts +0 -4
  765. package/creators/update/init +0 -56
  766. package/creators/update/package.json +0 -20
  767. package/creators/update/upgrade +0 -56
  768. package/pages/c/_cluster/backup/index.vue +0 -11
  769. package/pages/c/_cluster/cis/index.vue +0 -11
  770. package/plugins/clean-html-directive.js +0 -9
  771. package/plugins/clean-tooltip-directive.js +0 -8
  772. package/plugins/directives.js +0 -8
  773. package/plugins/int-number.js +0 -8
  774. package/plugins/positive-int-number.js +0 -8
  775. package/plugins/trim-whitespace.js +0 -9
  776. package/plugins/vue-js-modal.js +0 -4
  777. package/types/shell/index.d.ts +0 -4585
  778. package/utils/install-redirect.js +0 -55
  779. /package/utils/{cookie-universal-nuxt.js → cookie-universal.js} +0 -0
@@ -1,9 +1,9 @@
1
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
- import Router, { RouteConfig } from 'vue-router';
1
+ import { RouteRecordRaw, Router } from 'vue-router';
3
2
 
3
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
4
4
  interface RouteInfo {
5
5
  parent?: string;
6
- route: RouteConfig;
6
+ route: RouteRecordRaw;
7
7
  }
8
8
 
9
9
  export class PluginRoutes {
@@ -13,12 +13,12 @@ export class PluginRoutes {
13
13
  this.router = router;
14
14
  }
15
15
 
16
- public logRoutes(r: any, indent = 0) {
16
+ public logRoutes(routes: RouteRecordRaw[], indent = 0) {
17
17
  const spaces = Array(indent).join(' ');
18
18
 
19
- r.forEach((s: any) => {
20
- console.log(`${ spaces }${ s.name } -> ${ s.path }`); // eslint-disable-line no-console
21
- this.logRoutes(s.children || [], indent + 2);
19
+ routes.forEach((route: RouteRecordRaw) => {
20
+ console.log(`${ spaces }${ route.name?.toString() } -> ${ route.path }`); // eslint-disable-line no-console
21
+ this.logRoutes(route.children || [], indent + 2);
22
22
  });
23
23
  }
24
24
 
@@ -32,15 +32,15 @@ export class PluginRoutes {
32
32
  // Remove all routes that are being replaced
33
33
  const newRoutes = newRouteInfos.map((ri) => ri.route);
34
34
 
35
- this.forEachNestedRoutes(newRoutes, (r: RouteConfig) => {
35
+ this.forEachNestedRoutes(newRoutes, (route: RouteRecordRaw) => {
36
36
  // Patch colliding legacy routes that start /:product
37
- if (r.path?.startsWith('/:product')) {
37
+ if (route.path?.startsWith('/:product')) {
38
38
  // Legacy pattern used by extensions - routes may collide, so modify them not to
39
39
  let productName;
40
40
 
41
41
  // If the route has a name (which is always the case for the extensions we have written), use it to get the product name
42
- if (r.name) {
43
- const nameParts = r.name.split('-');
42
+ if (route.name && typeof route.name === 'string') {
43
+ const nameParts = route.name.split('-');
44
44
 
45
45
  // First part of the route name is the product name
46
46
  productName = nameParts[0];
@@ -50,48 +50,52 @@ export class PluginRoutes {
50
50
  productName = productName || plugin.name;
51
51
 
52
52
  // Replace the path - removing :product and using the actual product name instead - this avoids route collisions
53
- r.path = `/${ productName }${ r.path.substr(9) }`;
54
- r.meta = r.meta || {};
53
+ route.path = `/${ productName }${ route.path.substr(9) }`;
54
+ route.meta = route.meta || {};
55
55
 
56
- r.meta.product = r.meta.product || productName;
56
+ route.meta.product = route.meta.product || productName;
57
57
  }
58
58
  });
59
59
 
60
60
  this.updateMatcher(newRouteInfos, allRoutes);
61
61
  }
62
62
 
63
- private updateMatcher(newRoutes: RouteInfo[], allRoutes: RouteConfig[]) {
63
+ private updateMatcher(newRoutes: RouteInfo[], allRoutes: RouteRecordRaw[]) {
64
64
  // Note - Always use a new router and replace the existing router's matching
65
65
  // Using the existing router and adding routes to it will force nuxt middleware to
66
- // execute many times (nuxt middleware boils down to router.beforeEach). This issue was seen refreshing in a harvester cluster with a
66
+ // execute many times (nuxt middleware boils down to route.beforeEach). This issue was seen refreshing in a harvester cluster with a
67
67
  // dynamically loaded cluster
68
68
 
69
- const orderedPluginRoutes: any[] = [];
69
+ const orderedPluginRoutes: RouteRecordRaw[] = [];
70
70
 
71
71
  // separate plugin routes that have parent and not, you want to push the new routes in REVERSE order to the front of the existing list so that the order of routes specified by the extension is preserved
72
- newRoutes.reverse().forEach((r: any) => {
72
+ newRoutes.reverse().forEach((routeInfo: RouteInfo) => {
73
73
  let foundParentRoute;
74
74
 
75
- if (r.parent) {
76
- foundParentRoute = this.findInNestedRoutes(allRoutes, (route: RouteConfig) => route.name === r.parent);
75
+ if (routeInfo.parent) {
76
+ foundParentRoute = this.findInNestedRoutes(allRoutes, (route: RouteRecordRaw) => route.name === routeInfo.parent);
77
77
 
78
78
  if (foundParentRoute) {
79
79
  foundParentRoute.children = foundParentRoute?.children || [];
80
- foundParentRoute.children.unshift(r.route);
80
+ foundParentRoute.children.unshift(routeInfo.route);
81
81
  }
82
82
  }
83
83
 
84
84
  if (!foundParentRoute) {
85
- orderedPluginRoutes.unshift(r.route);
85
+ orderedPluginRoutes.unshift(routeInfo.route);
86
86
  }
87
87
  });
88
88
 
89
- const newRouter: Router = new Router({
90
- mode: 'history',
91
- routes: [...orderedPluginRoutes, ...allRoutes]
92
- });
89
+ if ( orderedPluginRoutes.length === 0) {
90
+ return;
91
+ }
92
+
93
+ // Remove all existing routes. Once we upgrade our router version we'll have access to clearRoutes() https://router.vuejs.org/api/interfaces/Router.html#clearRoutes
94
+ this.router.getRoutes().forEach((route: any) => this.router.removeRoute(route));
95
+
96
+ const allRoutesToAdd = [...orderedPluginRoutes, ...allRoutes];
93
97
 
94
- (this.router as any).matcher = (newRouter as any).matcher;
98
+ allRoutesToAdd.forEach((route) => this.router.addRoute(route));
95
99
  }
96
100
 
97
101
  /**
@@ -101,7 +105,10 @@ export class PluginRoutes {
101
105
  * @param fn -> Return true if you'd like to break the loop early (small)
102
106
  * @returns {@boolean} -> Returns true if breaking early
103
107
  */
104
- private forEachNestedRoutes(routes: RouteConfig[] = [], fn: (route: RouteConfig) => boolean | undefined | void) {
108
+ private forEachNestedRoutes(
109
+ routes: RouteRecordRaw[] = [],
110
+ fn: (route: RouteRecordRaw) => boolean | undefined | void
111
+ ) {
105
112
  for (let i = 0; i < routes.length; ++i) {
106
113
  const route = routes[i];
107
114
  const result = fn(route);
@@ -119,8 +126,11 @@ export class PluginRoutes {
119
126
  * @param fn -> Returns true if the passed in route matches the expected criteria
120
127
  * @returns The found route or undefined
121
128
  */
122
- private findInNestedRoutes(routes: RouteConfig[] = [], fn: (route: RouteConfig) => boolean): RouteConfig | undefined {
123
- let found: any;
129
+ private findInNestedRoutes(
130
+ routes: RouteRecordRaw[] = [],
131
+ fn: (route: RouteRecordRaw) => boolean
132
+ ): RouteRecordRaw | undefined {
133
+ let found: RouteRecordRaw | undefined;
124
134
 
125
135
  this.forEachNestedRoutes(routes, (route) => {
126
136
  if (fn(route)) {
package/core/plugin.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
- import { RouteConfig } from 'vue-router';
2
+ import { RouteRecordRaw } from 'vue-router';
3
3
  import { DSL as STORE_DSL } from '@shell/store/type-map';
4
4
  import {
5
5
  CoreStoreInit,
@@ -12,7 +12,7 @@ import {
12
12
  LocationConfig,
13
13
  ExtensionPoint,
14
14
 
15
- PluginRouteConfig, RegisterStore, UnregisterStore, CoreStoreSpecifics, CoreStoreConfig, OnNavToPackage, OnNavAwayFromPackage, OnLogOut
15
+ PluginRouteRecordRaw, RegisterStore, UnregisterStore, CoreStoreSpecifics, CoreStoreConfig, OnNavToPackage, OnNavAwayFromPackage, OnLogOut
16
16
  } from './types';
17
17
  import coreStore, { coreStoreModule, coreStoreState } from '@shell/plugins/dashboard-store';
18
18
 
@@ -26,7 +26,7 @@ export class Plugin implements IPlugin {
26
26
  public locales: { locale: string, label: string}[] = [];
27
27
  public products: ProductFunction[] = [];
28
28
  public productNames: string[] = [];
29
- public routes: { parent?: string, route: RouteConfig }[] = [];
29
+ public routes: { parent?: string, route: RouteRecordRaw }[] = [];
30
30
  public stores: { storeName: string, register: RegisterStore, unregister: UnregisterStore }[] = [];
31
31
  public onEnter: OnNavToPackage = () => Promise.resolve();
32
32
  public onLeave: OnNavAwayFromPackage = () => Promise.resolve();
@@ -97,10 +97,10 @@ export class Plugin implements IPlugin {
97
97
  this.register('l10n', locale, fn);
98
98
  }
99
99
 
100
- addRoutes(routes: PluginRouteConfig[] | RouteConfig[]) {
101
- routes.forEach((r: PluginRouteConfig | RouteConfig) => {
100
+ addRoutes(routes: PluginRouteRecordRaw[] | RouteRecordRaw[]) {
101
+ routes.forEach((r: PluginRouteRecordRaw | RouteRecordRaw) => {
102
102
  if (Object.keys(r).includes('parent')) {
103
- const pConfig = r as PluginRouteConfig;
103
+ const pConfig = r as PluginRouteRecordRaw;
104
104
 
105
105
  if (pConfig.parent) {
106
106
  this.addRoute(pConfig.parent, pConfig.route);
@@ -108,21 +108,21 @@ export class Plugin implements IPlugin {
108
108
  this.addRoute(pConfig.route);
109
109
  }
110
110
  } else {
111
- this.addRoute(r as RouteConfig);
111
+ this.addRoute(r as RouteRecordRaw);
112
112
  }
113
113
  });
114
114
  }
115
115
 
116
- addRoute(parentOrRoute: RouteConfig | string, optionalRoute?: RouteConfig): void {
116
+ addRoute(parentOrRoute: RouteRecordRaw | string, optionalRoute?: RouteRecordRaw): void {
117
117
  // Always add the pkg name to the route metadata
118
118
  const hasParent = typeof (parentOrRoute) === 'string';
119
119
  const parent: string | undefined = hasParent ? parentOrRoute as string : undefined;
120
- const route: RouteConfig = hasParent ? optionalRoute as RouteConfig : parentOrRoute as RouteConfig;
120
+ const route: RouteRecordRaw = hasParent ? optionalRoute as RouteRecordRaw : parentOrRoute as RouteRecordRaw;
121
121
 
122
122
  let parentOverride;
123
123
 
124
124
  if (!parent) {
125
- // TODO: Inspecting the route object in the browser clearly indicates it's not a RouteConfig. The type needs to be changed or at least extended.
125
+ // TODO: Inspecting the route object in the browser clearly indicates it's not a RouteRecordRaw. The type needs to be changed or at least extended.
126
126
  const typelessRoute: any = route;
127
127
 
128
128
  if (typelessRoute.component?.layout) {
@@ -1,4 +1,4 @@
1
- import Vue from 'vue';
1
+ import * as vue3 from 'vue';
2
2
  import $ from 'jquery';
3
3
  import JSZip from 'jszip';
4
4
  import jsyaml from 'js-yaml';
@@ -14,7 +14,6 @@ export default function({
14
14
  $axios,
15
15
  redirect,
16
16
  $plugin,
17
- nuxt
18
17
  }, inject) {
19
18
  if (dynamicLoader) {
20
19
  dynamicLoader.default($plugin);
@@ -22,9 +21,10 @@ export default function({
22
21
 
23
22
  // The libraries we build have Vue externalised, so we need to expose Vue as a global for
24
23
  // them to pick up - see: https://cli.vuejs.org/guide/build-targets.html#library
25
- window.Vue = Vue;
24
+ // window.Vue = Vue;
26
25
 
27
26
  // Global libraries - allows us to externalise these to reduce package bundle size
27
+ window.Vue = vue3;
28
28
  window.$ = $;
29
29
  window.__jszip = JSZip;
30
30
  window.__jsyaml = jsyaml;
package/core/plugins.js CHANGED
@@ -90,6 +90,10 @@ export default function(context, inject, vueApp) {
90
90
  delete window[oldPlugin.id];
91
91
 
92
92
  delete plugins[oldPlugin.id];
93
+
94
+ const oldElement = document.getElementById(oldPlugin.id);
95
+
96
+ oldElement.parentElement.removeChild(oldElement);
93
97
  });
94
98
  }
95
99
 
@@ -124,7 +128,9 @@ export default function(context, inject, vueApp) {
124
128
  };
125
129
 
126
130
  element.onerror = (e) => {
127
- // Massage the error into something useful
131
+ element.parentElement.removeChild(element);
132
+
133
+ // Massage the error into something useful
128
134
  const errorMessage = `Failed to load script from '${ e.target.src }'`;
129
135
 
130
136
  console.error(errorMessage, e); // eslint-disable-line no-console
package/core/types.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ProductFunction } from './plugin';
2
- import { RouteConfig, Location } from 'vue-router';
2
+ import { RouteRecordRaw } from 'vue-router';
3
3
 
4
4
  // Cluster Provisioning types
5
5
  export * from './types-provisioning';
@@ -26,7 +26,7 @@ export type CoreStoreInit = (store: any, ctx: any) => void;
26
26
  export type RegisterStore = () => (store: any) => void
27
27
  export type UnregisterStore = (store: any) => void
28
28
 
29
- export type PluginRouteConfig = {parent?: string, route: RouteConfig}
29
+ export type PluginRouteRecordRaw = {parent?: string, route: RouteRecordRaw}
30
30
 
31
31
  export type OnEnterLeavePackageConfig = {
32
32
  clusterId: string,
@@ -384,9 +384,9 @@ export interface ConfigureVirtualTypeOptions extends ConfigureTypeOptions {
384
384
  name: string;
385
385
 
386
386
  /**
387
- * The route that this type should correspond to {@link PluginRouteConfig} {@link RouteConfig}
387
+ * The route that this type should correspond to {@link PluginRouteRecordRaw} {@link RouteRecordRaw}
388
388
  */
389
- route: PluginRouteConfig | RouteConfig | Object;
389
+ route: PluginRouteRecordRaw | RouteRecordRaw | Object;
390
390
  }
391
391
 
392
392
  export interface DSLReturnType {
@@ -488,8 +488,8 @@ export interface IPlugin {
488
488
  /**
489
489
  * Add a route to the Vue Router
490
490
  */
491
- addRoute(route: RouteConfig): void;
492
- addRoute(parent: string, route: RouteConfig): void;
491
+ addRoute(route: RouteRecordRaw): void;
492
+ addRoute(parent: string, route: RouteRecordRaw): void;
493
493
 
494
494
  /**
495
495
  * Adds an action/button to the UI
@@ -525,7 +525,7 @@ export interface IPlugin {
525
525
  /**
526
526
  * Add routes to the Vue Router
527
527
  */
528
- addRoutes(routes: PluginRouteConfig[] | RouteConfig[]): void;
528
+ addRoutes(routes: PluginRouteRecordRaw[] | RouteRecordRaw[]): void;
529
529
 
530
530
  /**
531
531
  * Add a hook to be called when the plugin is uninstalled
@@ -1,4 +1,4 @@
1
- import { shallowMount } from '@vue/test-utils';
1
+ import { mount } from '@vue/test-utils';
2
2
  import HorizontalPodAutoScaler from '@shell/detail/autoscaling.horizontalpodautoscaler/index.vue';
3
3
 
4
4
  describe('view: autoscaling.horizontalpodautoscaler', () => {
@@ -23,9 +23,17 @@ describe('view: autoscaling.horizontalpodautoscaler', () => {
23
23
  return false;
24
24
  },
25
25
  },
26
+ hash: ''
26
27
  },
27
28
  };
28
29
 
30
+ const stubs = {
31
+ ResourceTable: true,
32
+ Tab: { template: '<span><slot/></span>' },
33
+ ResoruceTabs: { template: '<span><slot/></span>' },
34
+
35
+ };
36
+
29
37
  const value = {
30
38
  status: {
31
39
  currentMetrics: [
@@ -87,9 +95,9 @@ describe('view: autoscaling.horizontalpodautoscaler', () => {
87
95
  const metricsValue = Object.values(value.spec.metrics);
88
96
  const currentMetrics = Object.values(value.status.currentMetrics);
89
97
 
90
- const wrapper = shallowMount(HorizontalPodAutoScaler, {
91
- mocks,
92
- propsData: { value },
98
+ const wrapper = mount(HorizontalPodAutoScaler, {
99
+ props: { value },
100
+ global: { mocks, stubs },
93
101
  });
94
102
 
95
103
  describe.each(value.spec.metrics)('should display metrics for each resource:', (metric) => {
@@ -97,13 +105,13 @@ describe('view: autoscaling.horizontalpodautoscaler', () => {
97
105
 
98
106
  it(`${ name }:`, () => {
99
107
  // Resource metrics
100
- const resourceValue = wrapper.find(`[data-testid="resource-metrics-value-${ name }"]`);
101
- const resourceName = wrapper.find(`[data-testid="resource-metrics-name-${ name }"]`);
108
+ const resourceValue = wrapper.get(`[data-testid="resource-metrics-value-${ name }"]`);
109
+ const resourceName = wrapper.get(`[data-testid="resource-metrics-name-${ name }"]`);
102
110
  const metricValue = metricsValue.find((f) => f.resource.name === name)?.resource;
103
111
 
104
112
  // Current Metrics
105
- const averageUtilization = wrapper.find(`[data-testid="current-metrics-Average Utilization-${ name }"]`);
106
- const averageValue = wrapper.find(`[data-testid="current-metrics-Average Value-${ name }"]`);
113
+ const averageUtilization = wrapper.get(`[data-testid="current-metrics-Average Utilization-${ name }"]`);
114
+ const averageValue = wrapper.get(`[data-testid="current-metrics-Average Value-${ name }"]`);
107
115
  const currentResource = currentMetrics.find((f) => f.resource.name === name)?.resource.current;
108
116
 
109
117
  // Resource metrics
@@ -45,8 +45,8 @@ describe('view: provisioning.cattle.io.cluster', () => {
45
45
  };
46
46
 
47
47
  const wrapper = shallowMount(ProvisioningCattleIoCluster, {
48
- mocks,
49
- propsData: { value },
48
+ props: { value },
49
+ global: { mocks },
50
50
  });
51
51
 
52
52
  await wrapper.setData({ clusterToken: {} });
@@ -65,8 +65,8 @@ describe('view: provisioning.cattle.io.cluster', () => {
65
65
  };
66
66
 
67
67
  const wrapper = shallowMount(ProvisioningCattleIoCluster, {
68
- mocks,
69
- propsData: { value },
68
+ props: { value },
69
+ global: { mocks },
70
70
  });
71
71
 
72
72
  await wrapper.setData({ clusterToken: {} });
@@ -86,8 +86,8 @@ describe('view: provisioning.cattle.io.cluster', () => {
86
86
  };
87
87
 
88
88
  const wrapper = shallowMount(ProvisioningCattleIoCluster, {
89
- mocks,
90
- propsData: { value },
89
+ props: { value },
90
+ global: { mocks },
91
91
  });
92
92
 
93
93
  await wrapper.setData({ clusterToken: {} });
@@ -107,8 +107,8 @@ describe('view: provisioning.cattle.io.cluster', () => {
107
107
  };
108
108
 
109
109
  const wrapper = shallowMount(ProvisioningCattleIoCluster, {
110
- mocks,
111
- propsData: { value },
110
+ props: { value },
111
+ global: { mocks },
112
112
  });
113
113
 
114
114
  await wrapper.setData({ clusterToken: {} });
@@ -14,12 +14,12 @@ describe('view: service', () => {
14
14
 
15
15
  it('should return default empty array of ports if the ports are not configured', () => {
16
16
  const wrapper = shallowMount(service, {
17
- mocks,
18
- propsData: {
17
+ props: {
19
18
  value: {
20
19
  spec: {}, metadata: {}, pods: []
21
20
  }
22
21
  },
22
+ global: { mocks },
23
23
  });
24
24
 
25
25
  expect(wrapper.vm.ports).toStrictEqual([]);
@@ -27,12 +27,12 @@ describe('view: service', () => {
27
27
 
28
28
  it('should return empty array of ports if ports are set to empty array', () => {
29
29
  const wrapper = shallowMount(service, {
30
- mocks,
31
- propsData: {
30
+ props: {
32
31
  value: {
33
32
  spec: { ports: [] }, metadata: {}, pods: []
34
33
  }
35
34
  },
35
+ global: { mocks },
36
36
  });
37
37
 
38
38
  expect(wrapper.vm.ports).toStrictEqual([]);
@@ -49,12 +49,12 @@ describe('view: service', () => {
49
49
  ];
50
50
 
51
51
  const wrapper = shallowMount(service, {
52
- mocks,
53
- propsData: {
52
+ props: {
54
53
  value: {
55
54
  spec: { ports }, metadata: {}, pods: []
56
55
  }
57
56
  },
57
+ global: { mocks },
58
58
  });
59
59
 
60
60
  expect(wrapper.vm.ports).toStrictEqual(ports.map((p) => ({ ...p, publicPorts: [] })));
@@ -87,8 +87,9 @@ export default {
87
87
 
88
88
  <template>
89
89
  <ResourceTabs
90
- v-model="value"
90
+ :value="value"
91
91
  :mode="mode"
92
+ @update:value="$emit('input', $event)"
92
93
  >
93
94
  <Tab
94
95
  name="metrics"
@@ -98,7 +99,7 @@ export default {
98
99
  >
99
100
  <div
100
101
  v-for="(metric, index) in mappedMetrics"
101
- :key="`${index}${metric.metricName}`"
102
+ :key="index"
102
103
  >
103
104
  <InfoBox>
104
105
  <div class="row info-row">
@@ -194,7 +195,7 @@ export default {
194
195
  >
195
196
  <div
196
197
  v-for="(type, i) in ['scaleDown', 'scaleUp']"
197
- :key="`${i}`"
198
+ :key="i"
198
199
  >
199
200
  <InfoBox v-if="!!value.spec.behavior[type]">
200
201
  <div class="row info-row">
@@ -211,7 +212,7 @@ export default {
211
212
  <label class="text-label"><t k="hpa.scalingRule.policyHeader" /></label>
212
213
  <ul
213
214
  v-for="(current, currentIndex) in value.spec.behavior[type].policies"
214
- :key="`${currentIndex}`"
215
+ :key="currentIndex"
215
216
  >
216
217
  <li>
217
218
  <span>{{ current.value }}</span>
@@ -239,7 +240,7 @@ export default {
239
240
 
240
241
  <style lang="scss" scoped>
241
242
  .hpa-metrics-table {
242
- .info-box ::v-deep {
243
+ .info-box :deep() {
243
244
  background-color: var(--simple-box-bg);
244
245
  }
245
246
  .row {
@@ -147,7 +147,7 @@ export default {
147
147
  :label="t('catalog.app.section.readme')"
148
148
  :weight="2"
149
149
  >
150
- <Markdown v-model="value.spec.info.readme" />
150
+ <Markdown v-model:value="value.spec.info.readme" />
151
151
  </Tab>
152
152
  <Tab
153
153
  v-if="hasNotes"
@@ -155,7 +155,7 @@ export default {
155
155
  :label="t('catalog.app.section.notes')"
156
156
  :weight="1"
157
157
  >
158
- <Markdown v-model="value.spec.info.notes" />
158
+ <Markdown v-model:value="value.spec.info.notes" />
159
159
  </Tab>
160
160
  </Tabbed>
161
161
  </div>
@@ -263,8 +263,8 @@ export default {
263
263
  <div v-else>
264
264
  <div class="detail mb-20">
265
265
  <div
266
- v-for="item in details"
267
- :key="item.label"
266
+ v-for="(item, i) in details"
267
+ :key="i"
268
268
  >
269
269
  <span class="text-label">{{ item.label }}</span>:
270
270
  <component
@@ -292,7 +292,7 @@ export default {
292
292
  </div>
293
293
  <div class="col span-4">
294
294
  <LabeledSelect
295
- v-model="clusterReport"
295
+ v-model:value="clusterReport"
296
296
  :label="t('cis.reports')"
297
297
  :options="clusterReports"
298
298
  :get-option-label="reportLabel"
@@ -49,7 +49,10 @@ export default {
49
49
  </script>
50
50
 
51
51
  <template>
52
- <ResourceTabs v-model="value">
52
+ <ResourceTabs
53
+ :value="value"
54
+ @update:value="$emit('input', $event)"
55
+ >
53
56
  <Tab
54
57
  name="data"
55
58
  label-key="secret.data"
@@ -75,9 +75,10 @@ export default {
75
75
  <ResourcesSummary :value="value.status.resourceCounts" />
76
76
 
77
77
  <ResourceTabs
78
- v-model="value"
78
+ :value="value"
79
79
  mode="view"
80
80
  class="mt-20"
81
+ @update:value="$emit('input', $event)"
81
82
  >
82
83
  <Tab
83
84
  label="Git Repos"
@@ -51,9 +51,10 @@ export default {
51
51
  <ResourcesSummary :value="value.status.resourceCounts" />
52
52
 
53
53
  <ResourceTabs
54
- v-model="value"
54
+ :value="value"
55
55
  mode="view"
56
56
  class="mt-20"
57
+ @input="$emit('input', $event)"
57
58
  >
58
59
  <Tab
59
60
  label="Clusters"
@@ -126,10 +126,11 @@ export default {
126
126
  {{ t('fleet.fleetSummary.noClustersGitRepo') }}
127
127
  </Banner>
128
128
  <ResourceTabs
129
- v-model="value"
129
+ :value="value"
130
130
  mode="view"
131
131
  class="mt-20"
132
132
  :need-related="false"
133
+ @update:value="$emit('input', $event)"
133
134
  >
134
135
  <Tab
135
136
  v-if="!!allBundles.length"
@@ -70,8 +70,9 @@ export default {
70
70
  <Loading v-if="$fetchState.pending" />
71
71
  <ResourceTabs
72
72
  v-else
73
- v-model="value"
73
+ :value="value"
74
74
  :default-tab="defaultTab"
75
+ @input="$emit('input', $event)"
75
76
  >
76
77
  <Tab
77
78
  v-if="showRegistration"