@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,13 +1,3 @@
1
- import Vue from 'vue';
2
- import { updatePageTitle } from '@shell/utils/title';
3
- import { getVendor } from '@shell/config/private-label';
4
- import middleware from '@shell/config/middleware.js';
5
- import { withQuery } from 'ufo';
6
- import dynamicPluginLoader from '@shell/pkg/dynamic-plugin-loader';
7
-
8
- // Global variable used on mount, updated on route change and used in the render function
9
- let app;
10
-
11
1
  /**
12
2
  * Add error handler debugging capabilities
13
3
  * @param {*} vueApp Vue instance
@@ -33,7 +23,7 @@ export const loadDebugger = (vueApp) => {
33
23
  const globalApp = Object.keys(window.$globalApp)
34
24
  .find((instance) => vm.$root[instance]);
35
25
 
36
- // Show Nuxt Error Page
26
+ // Show Error Page
37
27
  if (globalApp && vm.$root[globalApp].error && info !== 'render function') {
38
28
  const vueApp = vm.$root[globalApp];
39
29
 
@@ -55,318 +45,24 @@ export const loadDebugger = (vueApp) => {
55
45
  }
56
46
  };
57
47
 
58
- /**
59
- * Handle errors with a redirect
60
- * @param {*} context
61
- * @param {*} message
62
- */
63
- const errorRedirect = (context, message) => {
64
- context.$store.commit('setError', { error: new Error(message) });
65
- context.$router.replace('/fail-whale');
66
- };
67
-
68
- /**
69
- * TODO: Define this logic use case
70
- * @param {*} fn
71
- * @param {*} context
72
- * @returns
73
- */
74
- export const promisify = (fn, context) => {
75
- let promise;
76
-
77
- if (fn.length === 2) {
78
- console.warn('Callback-based fetch or middleware calls are deprecated. Please switch to promises or async/await syntax'); // eslint-disable-line no-console
79
-
80
- // fn(context, callback)
81
- promise = new Promise((resolve) => {
82
- fn(context, (err, data) => {
83
- if (err) {
84
- context.error(err);
85
- }
86
- data = data || {};
87
- resolve(data);
88
- });
89
- });
90
- } else {
91
- promise = fn(context);
92
- }
93
-
94
- if (promise && promise instanceof Promise && typeof promise.then === 'function') {
95
- return promise;
96
- }
97
-
98
- return Promise.resolve(promise);
99
- };
100
-
101
- /**
102
- * TODO: Define this logic use case
103
- * @param {*} promises
104
- * @param {*} appContext
105
- * @returns
106
- */
107
- export const middlewareSeries = (promises, appContext) => {
108
- if (!promises.length || appContext._redirected || appContext._errored) {
109
- return Promise.resolve();
110
- }
111
-
112
- return promisify(promises[0], appContext)
113
- .then(() => {
114
- return middlewareSeries(promises.slice(1), appContext);
115
- });
116
- };
117
-
118
- /**
119
- * Add middleware to the Vue instance
120
- * @param {*} Components List of Vue components
121
- * @param {*} context App context
122
- * @returns
123
- */
124
- function callMiddleware(Components, context) {
125
- let midd = [];
126
- let unknownMiddleware = false;
127
-
128
- Components.forEach((Component) => {
129
- if (Component.options.middleware) {
130
- midd = midd.concat(Component.options.middleware);
131
- }
132
- });
133
-
134
- midd = midd.map((name) => {
135
- if (typeof name === 'function') {
136
- return name;
137
- }
138
- if (typeof middleware[name] !== 'function') {
139
- unknownMiddleware = true;
140
- errorRedirect(this, new Error(`500: Unknown middleware ${ name }`));
141
- }
142
-
143
- return middleware[name];
144
- });
145
-
146
- if (unknownMiddleware) {
147
- return;
148
- }
149
-
150
- return middlewareSeries(midd, context);
151
- }
152
-
153
- export const globalHandleError = (error) => Vue.config.errorHandler && Vue.config.errorHandler(error);
154
-
155
- /**
156
- * Render function used by the router guards
157
- * @param {*} to Route
158
- * @param {*} from Route
159
- * @param {*} next callback
160
- * @param {*} app
161
- * @returns
162
- */
163
- async function render(to, from, next) {
164
- if (this._routeChanged === false && this._paramChanged === false && this._queryChanged === false) {
165
- return next();
166
- }
167
-
168
- // nextCalled is true when redirected
169
- let nextCalled = false;
170
- const _next = (path) => {
171
- if (from.path === path.path && this.$loading.finish) {
172
- this.$loading.finish();
173
- }
174
-
175
- if (from.path !== path.path && this.$loading.pause) {
176
- this.$loading.pause();
177
- }
178
-
179
- if (nextCalled) {
180
- return;
181
- }
182
-
183
- nextCalled = true;
184
- next(path);
185
- };
186
-
187
- // Update context
188
- await setContext(app, {
189
- route: to,
190
- from,
191
- next: _next.bind(this)
192
- });
193
-
194
- // Get route's matched components
195
- const matches = [];
196
- const Components = getMatchedComponents(to, matches);
197
-
198
- // If no Components matched, generate 404
199
- if (!Components.length) {
200
- // Handle the loading of dynamic plugins (Harvester) because we only want to attempt to load those plugins and routes if we first couldn't find a page.
201
- // We should probably get rid of this concept entirely and just load plugins at the start.
202
- await app.context.store.dispatch('loadManagement');
203
- const newLocation = await dynamicPluginLoader.check({ route: { path: window.location.pathname }, store: app.context.store });
204
-
205
- // If we have a new location, double check that it's actually valid
206
- const resolvedRoute = newLocation?.path ? app.context.store.app.router.resolve({ path: newLocation.path.replace(/^\/{0,1}dashboard/, '') }) : null;
207
-
208
- if (resolvedRoute?.route.matched.length) {
209
- // Note - don't use `redirect` or `store.app.route` (breaks feature by failing to run middleware in default layout)
210
- return next(resolvedRoute.resolved.path);
211
- }
212
-
213
- errorRedirect(this, new Error('404: This page could not be found'));
214
-
215
- return next();
216
- }
217
-
218
- try {
219
- // Call middleware
220
- await callMiddleware.call(this, Components, app.context);
221
- if (nextCalled) {
222
- return;
223
- }
224
- if (app.context._errored) {
225
- return next();
226
- }
227
-
228
- // Call middleware for layout
229
- await callMiddleware.call(this, Components, app.context);
230
- if (nextCalled) {
231
- return;
232
- }
233
- if (app.context._errored) {
234
- return next();
235
- }
236
-
237
- // Call .validate()
238
- let isValid = true;
239
-
240
- try {
241
- for (const Component of Components) {
242
- if (typeof Component.options.validate !== 'function') {
243
- continue;
244
- }
245
-
246
- isValid = await Component.options.validate(app.context);
247
-
248
- if (!isValid) {
249
- break;
250
- }
251
- }
252
- } catch (validationError) {
253
- // ...If .validate() threw an error
254
- errorRedirect(this, new Error(`${ validationError.statusCode || '500' }: ${ validationError.message }`));
255
-
256
- return next();
257
- }
258
-
259
- // ...If .validate() returned false
260
- if (!isValid) {
261
- errorRedirect(this, new Error('404: This page could not be found'));
262
-
263
- return next();
264
- }
265
-
266
- // If not redirected
267
- if (!nextCalled) {
268
- if (this.$loading.finish && !this.$loading.manual) {
269
- this.$loading.finish();
270
- }
271
-
272
- next();
273
- }
274
- } catch (err) {
275
- const error = err || {};
276
-
277
- globalHandleError(error);
278
-
279
- next();
280
- }
281
- }
282
-
283
48
  /**
284
49
  * Mounts the Vue app to the DOM element
285
50
  * @param {Object} appPartials - App view partials
286
- * @param {Object} VueClass - Vue instance
51
+ * @param {Object} vueApp- Vue instance
287
52
  */
288
- export async function mountApp(appPartials, VueClass) {
53
+ export async function mountApp(appPartials, vueApp) {
289
54
  // Set global variables
290
- app = appPartials.app;
55
+ const app = appPartials.app;
291
56
  const router = appPartials.router;
292
57
 
293
- // Create Vue instance
294
- const vueApp = new VueClass(app);
295
-
296
- // Mounts Vue app to DOM element
297
- const mount = () => {
298
- vueApp.$mount('#app');
299
- };
300
-
301
- // Initialize error handler
302
- vueApp.$loading = {}; // To avoid error while vueApp.$nuxt does not exist
303
-
304
- // Add beforeEach router hooks
305
- router.beforeEach(render.bind(vueApp));
306
- router.afterEach((from, to) => {
307
- if (from?.name !== to?.name) {
308
- updatePageTitle(getVendor());
309
- }
310
- });
311
-
312
- // First render on client-side
313
- const clientFirstMount = () => {
314
- mount();
315
- };
316
-
317
- // fix: force next tick to avoid having same timestamp when an error happen on spa fallback
318
- await new Promise((resolve) => setTimeout(resolve, 0));
319
- render.call(vueApp, router.currentRoute, router.currentRoute, (path) => {
320
- // If not redirected
321
- if (!path) {
322
- clientFirstMount();
323
-
324
- return;
325
- }
326
-
327
- // Add a one-time afterEach hook to
328
- // mount the app wait for redirect and route gets resolved
329
- const unregisterHook = router.afterEach((to, from) => {
330
- unregisterHook();
331
- clientFirstMount();
332
- });
58
+ vueApp.use(router);
59
+ vueApp.use(app.store);
333
60
 
334
- // Push the path and let route to be resolved
335
- router.push(path, undefined, (err) => {
336
- if (err) {
337
- const errorHandler = vueApp?.config?.errorHandler || console.error; // eslint-disable-line no-console
61
+ vueApp.$loading = {}; // To avoid error while vueApp.$loading does not exist
338
62
 
339
- errorHandler(err);
340
- }
341
- });
342
- });
63
+ vueApp.mount('#app');
343
64
  }
344
65
 
345
- /**
346
- * Extend component properties
347
- * @param {*} Component
348
- * @returns
349
- */
350
- const patchComponent = (Component) => {
351
- // If Component already sanitized
352
- if (Component.options && Component._Ctor === Component) {
353
- return Component;
354
- }
355
- if (!Component.options) {
356
- Component = Vue.extend(Component); // fix issue #6
357
- Component._Ctor = Component;
358
- } else {
359
- Component._Ctor = Component;
360
- Component.extendOptions = Component.options;
361
- }
362
- // If no component name defined, set file path as name, (also fixes #5703)
363
- if (!Component.options.name && Component.options.__file) {
364
- Component.options.name = Component.options.__file;
365
- }
366
-
367
- return Component;
368
- };
369
-
370
66
  export const getMatchedComponents = (route, matches = false, prop = 'components') => {
371
67
  return Array.prototype.concat.apply([], route.matched.map((match, index) => {
372
68
  return Object.keys(match[prop]).map((key) => {
@@ -377,65 +73,6 @@ export const getMatchedComponents = (route, matches = false, prop = 'components'
377
73
  }));
378
74
  };
379
75
 
380
- const getComponent = async(unknownComponent) => {
381
- let componentView;
382
-
383
- // If component is a function, resolve it
384
- if (typeof unknownComponent === 'function' && !unknownComponent.options) {
385
- try {
386
- componentView = await unknownComponent();
387
- } catch (error) {
388
- // Handle webpack chunk loading errors
389
- // This may be due to a new deployment or a network problem
390
- if (
391
- error &&
392
- error.name === 'ChunkLoadError' &&
393
- typeof window !== 'undefined' &&
394
- window.sessionStorage
395
- ) {
396
- const timeNow = Date.now();
397
- const previousReloadTime = parseInt(window.sessionStorage.getItem('nuxt-reload'));
398
-
399
- // check for previous reload time not to reload infinitely
400
- if (!previousReloadTime || previousReloadTime + 60000 < timeNow) {
401
- window.sessionStorage.setItem('nuxt-reload', timeNow);
402
- window.location.reload(true /* skip cache */);
403
- }
404
- }
405
-
406
- throw error;
407
- }
408
- }
409
-
410
- return componentView || unknownComponent;
411
- };
412
-
413
- /**
414
- * Patch all the matched components of a given route
415
- * @param {*} route
416
- * @returns
417
- */
418
- const patchMatchedComponents = (route) => Array.prototype.concat.apply(
419
- [],
420
- route.matched.map(
421
- (match, index) => Object
422
- .keys(match.components)
423
- .reduce(async(acc, key) => {
424
- if (match.components[key]) {
425
- const component = await getComponent(match.components[key], match.instances[key], match, key, index);
426
- const patchedComponent = patchComponent(component);
427
-
428
- match.components[key] = patchedComponent;
429
- acc.push(patchedComponent);
430
- } else {
431
- delete match.components[key];
432
- }
433
-
434
- return acc;
435
- }, [])
436
- )
437
- );
438
-
439
76
  /**
440
77
  * Merge route meta with component meta and update matched components
441
78
  * @param {*} route
@@ -445,15 +82,27 @@ export const getRouteData = async(route) => {
445
82
  if (!route) {
446
83
  return;
447
84
  }
448
- // Make sure the components are resolved (code-splitting)
449
- await Promise.all(patchMatchedComponents(route));
450
- const meta = getMatchedComponents(route).map(
451
- (matchedComponent, index) => ({ ...matchedComponent.options.meta, ...(route.matched[index] || {}).meta })
452
- );
453
85
 
454
- // Send back a copy of route with meta based on Component definition
86
+ // Ensure we're working with the _value property of the route object
87
+ const routeValue = route._value || route;
88
+
89
+ if (!routeValue.matched) {
90
+ // eslint-disable-next-line no-console
91
+ console.warn('Route matched property is undefined:', routeValue);
92
+
93
+ return routeValue;
94
+ }
95
+
96
+ const meta = routeValue.matched.map((record) => {
97
+ // Merge component meta and route record meta
98
+ const componentMeta = record.components?.default?.meta || {};
99
+ const recordMeta = record.meta || {};
100
+
101
+ return { ...componentMeta, ...recordMeta };
102
+ });
103
+
455
104
  return {
456
- ...route,
105
+ ...routeValue,
457
106
  meta
458
107
  };
459
108
  };
@@ -468,59 +117,13 @@ export const setContext = async(app, context) => {
468
117
  if (!app.context) {
469
118
  app.context = {
470
119
  isDev: true,
471
- isHMR: false,
472
120
  app,
473
121
  store: app.store,
474
122
  payload: context.payload,
475
123
  error: context.error,
476
124
  base: app.router.options.base,
477
- env: {
478
- commit: 'head', version: '0.1.2', dev: true, pl: 1, perfTest: false, rancherEnv: 'web', api: 'http://localhost:8989'
479
- }
480
125
  };
481
126
  // Only set once
482
-
483
- if (context.req) {
484
- app.context.req = context.req;
485
- }
486
- if (context.res) {
487
- app.context.res = context.res;
488
- }
489
-
490
- app.context.redirect = (status, path, query) => {
491
- if (!status) {
492
- return;
493
- }
494
- app.context._redirected = true;
495
- // if only 1 or 2 arguments: redirect('/') or redirect('/', { foo: 'bar' })
496
- let pathType = typeof path;
497
-
498
- if (typeof status !== 'number' && (pathType === 'undefined' || pathType === 'object')) {
499
- query = path || {};
500
- path = status;
501
- pathType = typeof path;
502
- status = 302;
503
- }
504
- if (pathType === 'object') {
505
- path = app.router.resolve(path).route.fullPath;
506
- }
507
- // "/absolute/route", "./relative/route" or "../relative/route"
508
- if (/(^[.]{1,2}\/)|(^\/(?!\/))/.test(path)) {
509
- app.context.next({
510
- path,
511
- query,
512
- status
513
- });
514
- } else {
515
- path = withQuery(path, query);
516
-
517
- // https://developer.mozilla.org/en-US/docs/Web/API/Location/replace
518
- window.location.replace(path);
519
-
520
- // Throw a redirect error
521
- throw new Error('ERR_REDIRECT');
522
- }
523
- };
524
127
  }
525
128
 
526
129
  // Dynamic keys
@@ -539,8 +142,6 @@ export const setContext = async(app, context) => {
539
142
 
540
143
  app.context.next = context.next;
541
144
  app.context._redirected = false;
542
- app.context._errored = false;
543
- app.context.isHMR = Boolean(context.isHMR);
544
- app.context.params = app.context.route.params || {};
545
- app.context.query = app.context.route.query || {};
145
+ app.context.params = app.context.route?.params || {};
146
+ app.context.query = app.context.route?.query || {};
546
147
  };
@@ -1,6 +1,3 @@
1
- // Taken from @nuxt/vue-app/template/client.js
2
-
3
- import Vue from 'vue';
4
1
  import fetch from 'unfetch';
5
2
  import { extendApp } from './app-extended.js';
6
3
  import fetchMixin from '@shell/mixins/fetch.client.js';
@@ -8,25 +5,29 @@ import { loadDebugger, mountApp } from '@shell/initialize/entry-helpers';
8
5
  import { installDirectives } from '@shell/initialize/install-directives.js';
9
6
  import { installComponents } from '@shell/initialize/install-components.js';
10
7
  import { installPlugins } from '@shell/initialize/install-plugins.js';
8
+ import App from '@shell/initialize/App.vue';
9
+ import { createApp } from 'vue';
10
+
11
+ const vueApp = createApp(App);
11
12
 
12
13
  // Fetch mixin
13
- Vue.mixin(fetchMixin);
14
+ vueApp.mixin(fetchMixin);
14
15
 
15
16
  // Bulk install components
16
- installComponents(Vue);
17
+ installComponents(vueApp);
17
18
 
18
19
  // Bulk install directives
19
- installDirectives(Vue);
20
+ installDirectives(vueApp);
20
21
 
21
22
  // Bulk install Plugins. Note: Some are added within the App itself
22
- installPlugins(Vue);
23
+ installPlugins(vueApp);
23
24
 
24
25
  if (!global.fetch) {
25
26
  global.fetch = fetch;
26
27
  }
27
28
 
28
- loadDebugger(Vue);
29
- const errorHandler = Vue.config.errorHandler || console.error; // eslint-disable-line no-console
29
+ loadDebugger(vueApp);
30
+ const errorHandler = vueApp.config.errorHandler || console.error; // eslint-disable-line no-console
30
31
 
31
32
  // Create and mount App
32
- extendApp(Vue).then((appPartials) => mountApp(appPartials, Vue)).catch(errorHandler); // eslint-disable-line no-undef
33
+ extendApp(vueApp).then((appPartials) => mountApp(appPartials, vueApp)).catch(errorHandler); // eslint-disable-line no-undef
@@ -1,25 +1,23 @@
1
1
  import PortalVue from 'portal-vue';
2
2
  import VueResize from 'vue-resize';
3
- import ShortKey from 'vue-shortkey';
4
- import VTooltip from 'v-tooltip';
3
+ import FloatingVue from 'floating-vue';
5
4
  import vSelect from 'vue-select';
6
5
  import 'vue-resize/dist/vue-resize.css';
7
6
 
8
- import '@shell/plugins/extend-router';
7
+ // import '@shell/plugins/extend-router';
9
8
  import '@shell/plugins/formatters';
10
- import '@shell/plugins/vue-js-modal';
11
9
  import '@shell/plugins/js-yaml';
12
10
 
13
11
  import i18n from '@shell/plugins/i18n';
14
12
  import globalFormatters from '@shell/plugins/global-formatters';
15
13
 
16
14
  import axios from '@shell/utils/axios';
17
- import cookieUniversalNuxt from '@shell/utils/cookie-universal-nuxt';
15
+ import cookieUniversal from '@shell/utils/cookie-universal';
18
16
  import config from '@shell/utils/config';
19
17
  import axiosShell from '@shell/plugins/axios';
20
18
  import backButton from '@shell/plugins/back-button';
21
19
  import codeMirror from '@shell/plugins/codemirror-loader';
22
- import VueCodemirror from 'vue-codemirror';
20
+ import { InstallCodemirro } from 'codemirror-editor-vue3';
23
21
  import * as intNumber from '@shell/directives/int-number';
24
22
  import nuxtClientInit from '@shell/plugins/nuxt-client-init';
25
23
  import plugin from '@shell/plugins/plugin';
@@ -29,19 +27,23 @@ import replaceAll from '@shell/plugins/replaceall';
29
27
  import steveCreateWorker from '@shell/plugins/steve-create-worker';
30
28
  import version from '@shell/plugins/version';
31
29
  import emberCookie from '@shell/plugins/ember-cookie';
30
+ import ShortKey from '@shell/plugins/shortkey';
31
+
32
+ import 'floating-vue/dist/style.css';
33
+ import { floatingVueOptions } from '@shell/plugins/floating-vue';
32
34
 
33
35
  export async function installPlugins(vueApp) {
34
36
  vueApp.use(globalFormatters);
35
37
  vueApp.use(PortalVue);
36
38
  vueApp.use(VueResize);
37
- vueApp.use(VTooltip);
39
+ vueApp.use(FloatingVue, floatingVueOptions);
38
40
  vueApp.use(ShortKey, { prevent: ['input', 'textarea', 'select'] });
39
- vueApp.use(VueCodemirror);
41
+ vueApp.use(InstallCodemirro);
40
42
  vueApp.component('v-select', vSelect);
41
43
  }
42
44
 
43
45
  export async function installInjectedPlugins(app, vueApp) {
44
- const pluginDefinitions = [config, cookieUniversalNuxt, axios, plugins, pluginsLoader, axiosShell, intNumber, codeMirror, nuxtClientInit, replaceAll, backButton, plugin, version, steveCreateWorker, emberCookie];
46
+ const pluginDefinitions = [config, cookieUniversal, axios, plugins, pluginsLoader, axiosShell, intNumber, codeMirror, nuxtClientInit, replaceAll, backButton, plugin, version, steveCreateWorker, emberCookie];
45
47
 
46
48
  const installations = pluginDefinitions.map(async(pluginDefinition) => {
47
49
  if (typeof pluginDefinition === 'function') {
@@ -101,7 +103,7 @@ function inject(key, value, context, vueApp) {
101
103
  store[key] = app[key];
102
104
 
103
105
  // Check if plugin not already installed
104
- const installKey = `__nuxt_${ key }_installed__`;
106
+ const installKey = `__plugin_${ key }_installed__`;
105
107
 
106
108
  window.installedPlugins = window.installedPlugins || {};
107
109
 
@@ -112,10 +114,10 @@ function inject(key, value, context, vueApp) {
112
114
 
113
115
  // Call vueApp.use() to install the plugin into vm
114
116
  vueApp.use(() => {
115
- if (!Object.prototype.hasOwnProperty.call(vueApp.prototype, key)) {
116
- Object.defineProperty(vueApp.prototype, key, {
117
+ if (!Object.prototype.hasOwnProperty.call(vueApp.config.globalProperties, key)) {
118
+ Object.defineProperty(vueApp.config.globalProperties, key, {
117
119
  get() {
118
- return this.$root.$options[key];
120
+ return app.context[key];
119
121
  }
120
122
  });
121
123
  }
@@ -21,27 +21,29 @@ describe('component: workload', () => {
21
21
  const wrapper = shallowMount(Workload as unknown as ExtendedVue<Vue, {}, {}, {}, DefaultProps>, {
22
22
  components: { ResourceTable },
23
23
  mixins: [ResourceFetch],
24
- mocks: {
25
- $store: {
26
- dispatch: () => jest.fn(),
27
- getters: {
28
- currentStore: () => 'cluster',
29
- namespaces: () => jest.fn(),
30
- 'management/byId': () => jest.fn(),
31
- 'resource-fetch/refreshFlag': () => jest.fn(),
32
- 'type-map/hideBulkActionsFor': () => jest.fn(),
33
- 'type-map/labelFor': () => jest.fn(),
34
- 'type-map/optionsFor': () => jest.fn(),
35
- 'type-map/headersFor': () => jest.fn(),
36
- 'prefs/get': () => resource,
37
- 'cluster/schemaFor': () => {},
38
- 'cluster/all': () => [{}],
39
- }
24
+ global: {
25
+ mocks: {
26
+ $store: {
27
+ dispatch: () => jest.fn(),
28
+ getters: {
29
+ currentStore: () => 'cluster',
30
+ namespaces: () => jest.fn(),
31
+ 'management/byId': () => jest.fn(),
32
+ 'resource-fetch/refreshFlag': () => jest.fn(),
33
+ 'type-map/hideBulkActionsFor': () => jest.fn(),
34
+ 'type-map/labelFor': () => jest.fn(),
35
+ 'type-map/optionsFor': () => jest.fn(),
36
+ 'type-map/headersFor': () => jest.fn(),
37
+ 'prefs/get': () => resource,
38
+ 'cluster/schemaFor': () => {},
39
+ 'cluster/all': () => [{}],
40
+ }
41
+ },
42
+ $fetchState: {
43
+ pending: false, error: true, timestamp: Date.now()
44
+ },
45
+ $route: { params: { resource } },
40
46
  },
41
- $fetchState: {
42
- pending: false, error: true, timestamp: Date.now()
43
- },
44
- $route: { params: { resource } },
45
47
  }
46
48
  });
47
49