@rancher/shell 2.0.1 → 3.0.0-rc.1

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 (773) hide show
  1. package/assets/styles/global/_labeled-input.scss +22 -11
  2. package/assets/styles/global/_layout.scss +4 -4
  3. package/assets/styles/global/_tooltip.scss +4 -3
  4. package/assets/translations/en-us.yaml +26 -5
  5. package/chart/__tests__/S3.test.ts +21 -14
  6. package/chart/example.vue +1 -1
  7. package/chart/gatekeeper.vue +4 -4
  8. package/chart/istio.vue +11 -11
  9. package/chart/logging/index.vue +8 -8
  10. package/chart/monitoring/ClusterSelector.vue +13 -13
  11. package/chart/monitoring/alerting/index.vue +6 -6
  12. package/chart/monitoring/grafana/index.vue +14 -14
  13. package/chart/monitoring/index.vue +122 -108
  14. package/chart/monitoring/prometheus/index.vue +18 -18
  15. package/chart/rancher-backup/S3.vue +11 -11
  16. package/chart/rancher-backup/index.vue +68 -60
  17. package/cloud-credential/__tests__/azure.test.ts +7 -17
  18. package/cloud-credential/__tests__/harvester.test.ts +2 -2
  19. package/cloud-credential/aws.vue +3 -3
  20. package/cloud-credential/azure.vue +4 -4
  21. package/cloud-credential/digitalocean.vue +1 -1
  22. package/cloud-credential/gcp.vue +1 -1
  23. package/cloud-credential/generic.vue +1 -1
  24. package/cloud-credential/harvester.vue +1 -1
  25. package/cloud-credential/linode.vue +1 -1
  26. package/cloud-credential/pnap.vue +2 -2
  27. package/cloud-credential/s3.vue +8 -8
  28. package/cloud-credential/vmwarevsphere.vue +4 -4
  29. package/components/ActionDropdown.vue +3 -3
  30. package/components/ActionMenu.vue +1 -1
  31. package/components/AlertTable.vue +1 -1
  32. package/components/AppModal.vue +20 -9
  33. package/components/AssignTo.vue +38 -37
  34. package/components/AsyncButton.vue +4 -7
  35. package/components/ButtonDropdown.vue +14 -13
  36. package/components/ButtonGroup.vue +1 -1
  37. package/components/Carousel.vue +1 -1
  38. package/components/Certificates.vue +1 -1
  39. package/components/ChartReadme.vue +7 -7
  40. package/components/CodeMirror.vue +2 -2
  41. package/components/CommunityLinks.vue +2 -2
  42. package/components/ConsumptionGauge.vue +1 -1
  43. package/components/ContainerResourceLimit.vue +11 -11
  44. package/components/CountGauge.vue +1 -1
  45. package/components/CreateDriver.vue +4 -4
  46. package/components/CruResource.vue +34 -20
  47. package/components/DashboardMetrics.vue +3 -3
  48. package/components/DashboardOptions.vue +3 -3
  49. package/components/DetailTop.vue +3 -3
  50. package/components/DisableAuthProviderModal.vue +7 -8
  51. package/components/EmberPage.vue +1 -1
  52. package/components/EtcdInfoBanner.vue +1 -1
  53. package/components/ExplorerMembers.vue +8 -9
  54. package/components/ExplorerProjectsNamespaces.vue +6 -7
  55. package/components/FileDiff.vue +1 -1
  56. package/components/FixedBanner.vue +1 -0
  57. package/components/GlobalRoleBindings.vue +5 -6
  58. package/components/GradientBox.vue +1 -2
  59. package/components/GrafanaDashboard.vue +7 -7
  60. package/components/GrowlManager.vue +1 -1
  61. package/components/HarvesterServiceAddOnConfig.vue +2 -2
  62. package/components/IconOrSvg.vue +1 -2
  63. package/components/Import.vue +4 -3
  64. package/components/Inactivity.vue +2 -2
  65. package/components/IndentedPanel.vue +0 -1
  66. package/components/InputOrDisplay.vue +3 -2
  67. package/components/KeyValueView.vue +4 -3
  68. package/components/LandingPagePreference.vue +3 -2
  69. package/components/LazyImage.vue +1 -1
  70. package/components/Loading.vue +1 -1
  71. package/components/LocaleSelector.vue +4 -4
  72. package/components/Markdown.vue +1 -1
  73. package/components/ModalWithCard.vue +1 -4
  74. package/components/MoveModal.vue +10 -11
  75. package/components/PercentageBar.vue +7 -7
  76. package/components/PodSecurityAdmission.vue +13 -13
  77. package/components/PromptChangePassword.vue +9 -9
  78. package/components/PromptModal.vue +1 -1
  79. package/components/PromptRemove.vue +35 -38
  80. package/components/PromptRestore.vue +68 -69
  81. package/components/Questions/Array.vue +3 -4
  82. package/components/Questions/Boolean.vue +1 -1
  83. package/components/Questions/CloudCredential.vue +1 -1
  84. package/components/Questions/Enum.vue +1 -1
  85. package/components/Questions/Float.vue +1 -1
  86. package/components/Questions/Int.vue +1 -1
  87. package/components/Questions/Question.js +1 -1
  88. package/components/Questions/QuestionMap.vue +3 -4
  89. package/components/Questions/Radio.vue +1 -1
  90. package/components/Questions/Reference.vue +2 -2
  91. package/components/Questions/String.vue +1 -1
  92. package/components/Questions/Yaml.vue +1 -1
  93. package/components/Questions/__tests__/Boolean.test.ts +26 -13
  94. package/components/Questions/__tests__/Float.test.ts +26 -13
  95. package/components/Questions/__tests__/Int.test.ts +26 -13
  96. package/components/Questions/__tests__/String.test.ts +26 -13
  97. package/components/Questions/__tests__/Yaml.test.ts +26 -14
  98. package/components/Questions/index.vue +10 -10
  99. package/components/Random.vue +1 -1
  100. package/components/ResourceDetail/Masthead.vue +7 -2
  101. package/components/ResourceDetail/index.vue +6 -3
  102. package/components/ResourceList/Masthead.vue +4 -0
  103. package/components/ResourceList/index.vue +10 -4
  104. package/components/ResourceSummary.vue +1 -1
  105. package/components/ResourceTable.vue +4 -5
  106. package/components/ResourceYaml.vue +1 -2
  107. package/components/RoleBindings.vue +3 -3
  108. package/components/SideNav.vue +8 -6
  109. package/components/SimpleBox.vue +0 -1
  110. package/components/SortableTable/THead.vue +5 -5
  111. package/components/SortableTable/index.vue +21 -20
  112. package/components/SortableTable/sortable-config.ts +4 -0
  113. package/components/StatusTable.vue +1 -1
  114. package/components/TabTitle.vue +3 -9
  115. package/components/Tabbed/Tab.vue +1 -1
  116. package/components/Tabbed/index.vue +2 -4
  117. package/components/Wizard.vue +8 -3
  118. package/components/YamlEditor.vue +4 -4
  119. package/components/__tests__/AppModal.test.ts +33 -25
  120. package/components/__tests__/ApplicationCard.test.ts +1 -1
  121. package/components/__tests__/AsyncButton.test.ts +42 -34
  122. package/components/__tests__/BackLink.test.ts +3 -3
  123. package/components/__tests__/ButtonGroup.test.ts +5 -5
  124. package/components/__tests__/Carousel.test.ts +2 -2
  125. package/components/__tests__/Certificates.test.ts +10 -8
  126. package/components/__tests__/ClusterBadge.test.ts +2 -2
  127. package/components/__tests__/CodeMirror.test.ts +94 -85
  128. package/components/__tests__/Collapse.test.ts +3 -3
  129. package/components/__tests__/CollapsibleCard.test.ts +6 -6
  130. package/components/__tests__/ConsumptionGauge.test.ts +6 -6
  131. package/components/__tests__/CruResource.test.ts +67 -56
  132. package/components/__tests__/EtcdInfoBanner.test.ts +11 -9
  133. package/components/__tests__/FixedBanner.test.ts +8 -8
  134. package/components/__tests__/GrowlManager.test.ts +24 -25
  135. package/components/__tests__/NamespaceFilter.test.ts +48 -34
  136. package/components/__tests__/PercentageBar.test.ts +10 -10
  137. package/components/__tests__/PodSecurityAdmission.test.ts +80 -38
  138. package/components/__tests__/ProjectRow.test.ts +1 -5
  139. package/components/__tests__/PromptRestore.test.ts +15 -18
  140. package/components/__tests__/TabTitle.test.ts +21 -14
  141. package/components/auth/AllowedPrincipals.vue +4 -5
  142. package/components/auth/RoleDetailEdit.vue +31 -29
  143. package/components/auth/SelectPrincipal.vue +2 -4
  144. package/components/auth/__tests__/RoleDetailEdit.test.ts +18 -14
  145. package/components/auth/login/ldap.vue +2 -2
  146. package/components/fleet/FleetClusters.vue +0 -1
  147. package/components/fleet/FleetRepos.vue +0 -1
  148. package/components/fleet/FleetStatus.vue +3 -3
  149. package/components/fleet/__tests__/FleetSummary.test.ts +8 -2
  150. package/components/form/ArrayList.vue +5 -6
  151. package/components/form/ArrayListGrouped.vue +2 -2
  152. package/components/form/ArrayListSelect.vue +4 -4
  153. package/components/form/BannerSettings.vue +10 -10
  154. package/components/form/ChangePassword.vue +9 -9
  155. package/components/form/ColorInput.vue +2 -2
  156. package/components/form/Command.vue +13 -15
  157. package/components/form/EnvVars.vue +7 -7
  158. package/components/form/FileImageSelector.vue +1 -1
  159. package/components/form/GitPicker.vue +7 -7
  160. package/components/form/HealthCheck.vue +4 -4
  161. package/components/form/HookOption.vue +13 -13
  162. package/components/form/InputWithSelect.vue +19 -13
  163. package/components/form/KeyValue.vue +13 -14
  164. package/components/form/LabeledSelect.vue +45 -35
  165. package/components/form/Labels.vue +3 -3
  166. package/components/form/LifecycleHooks.vue +5 -7
  167. package/components/form/MatchExpressions.vue +7 -7
  168. package/components/form/Members/ClusterMembershipEditor.vue +1 -2
  169. package/components/form/Members/ClusterPermissionsEditor.vue +9 -9
  170. package/components/form/Members/MembershipEditor.vue +4 -5
  171. package/components/form/Members/ProjectMembershipEditor.vue +1 -2
  172. package/components/form/NameNsDescription.vue +12 -13
  173. package/components/form/Networking.vue +17 -17
  174. package/components/form/NodeAffinity.vue +9 -10
  175. package/components/form/NodeScheduling.vue +7 -7
  176. package/components/form/NotificationSettings.vue +2 -2
  177. package/components/form/Password.vue +2 -2
  178. package/components/form/PodAffinity.vue +21 -23
  179. package/components/form/PodSecurity.vue +6 -6
  180. package/components/form/Ports.vue +5 -5
  181. package/components/form/Probe.vue +20 -20
  182. package/components/form/ProjectMemberEditor.vue +9 -9
  183. package/components/form/ResourceLabeledSelect.vue +11 -4
  184. package/components/form/ResourceQuota/Namespace.vue +3 -3
  185. package/components/form/ResourceQuota/NamespaceRow.vue +3 -3
  186. package/components/form/ResourceQuota/Project.vue +7 -6
  187. package/components/form/ResourceQuota/ProjectRow.vue +113 -114
  188. package/components/form/ResourceSelector.vue +3 -3
  189. package/components/form/ResourceTabs/index.vue +1 -1
  190. package/components/form/RuleSelector.vue +7 -6
  191. package/components/form/SecretSelector.vue +5 -6
  192. package/components/form/Security.vue +14 -14
  193. package/components/form/Select.vue +21 -11
  194. package/components/form/SelectOrCreateAuthSecret.vue +30 -27
  195. package/components/form/ServiceNameSelect.vue +8 -5
  196. package/components/form/ServicePorts.vue +4 -4
  197. package/components/form/ShellInput.vue +3 -3
  198. package/components/form/SimpleSecretSelector.vue +2 -2
  199. package/components/form/Taints.vue +5 -4
  200. package/components/form/Tolerations.vue +12 -12
  201. package/components/form/UnitInput.vue +1 -1
  202. package/components/form/ValueFromResource.vue +17 -17
  203. package/components/form/WorkloadPorts.vue +21 -21
  204. package/components/form/__tests__/ArrayList.test.ts +14 -11
  205. package/components/form/__tests__/ArrayListGrouped.test.ts +4 -4
  206. package/components/form/__tests__/BannerSettings.test.ts +6 -5
  207. package/components/form/__tests__/Command.test.ts +12 -12
  208. package/components/form/__tests__/Error.test.ts +5 -5
  209. package/components/form/__tests__/FileImageSelector.test.ts +5 -5
  210. package/components/form/__tests__/FileSelector.test.ts +9 -9
  211. package/components/form/__tests__/InputWithSelect.test.ts +42 -0
  212. package/components/form/__tests__/KeyValue.test.ts +28 -18
  213. package/components/form/__tests__/LabeledSelect.test.ts +9 -9
  214. package/components/form/__tests__/MatchExpressions.test.ts +10 -10
  215. package/components/form/__tests__/NameNsDescription.test.ts +28 -25
  216. package/components/form/__tests__/NodeAffinity.test.ts +4 -3
  217. package/components/form/__tests__/PodAffinity.test.ts +4 -3
  218. package/components/form/__tests__/Probe.test.ts +6 -6
  219. package/components/form/__tests__/Security.test.ts +6 -6
  220. package/components/form/__tests__/Select.test.ts +30 -0
  221. package/components/form/__tests__/ServiceNameSelect.test.ts +42 -0
  222. package/components/form/__tests__/Taints.test.ts +15 -14
  223. package/components/form/__tests__/UnitInput.test.ts +20 -24
  224. package/components/form/labeled-select-utils/labeled-select.utils.ts +1 -1
  225. package/components/formatter/AppSummaryGraph.vue +4 -4
  226. package/components/formatter/ClusterLink.vue +1 -1
  227. package/components/formatter/Endpoints.vue +4 -1
  228. package/components/formatter/FleetSummaryGraph.vue +4 -4
  229. package/components/formatter/ListLink.vue +1 -1
  230. package/components/formatter/ListLinkDetail.vue +2 -2
  231. package/components/formatter/LiveExpiryBadgeState.vue +18 -5
  232. package/components/formatter/LiveExpiryDate.vue +1 -1
  233. package/components/formatter/MachineSummaryGraph.vue +4 -4
  234. package/components/formatter/PercentageBar.vue +1 -1
  235. package/components/formatter/Principal.vue +0 -1
  236. package/components/formatter/PrincipalGroupBindings.vue +5 -5
  237. package/components/formatter/ReceiverIcons.vue +5 -3
  238. package/components/formatter/Scale.vue +4 -4
  239. package/components/formatter/ServiceTargets.vue +1 -1
  240. package/components/formatter/VirtualServiceGateways.vue +1 -1
  241. package/components/formatter/Weight.vue +2 -2
  242. package/components/formatter/WorkloadDetailEndpoints.vue +4 -1
  243. package/components/formatter/WorkloadHealthScale.vue +5 -6
  244. package/components/formatter/__tests__/Checked.test.ts +2 -2
  245. package/components/formatter/__tests__/ClusterLink.test.ts +3 -3
  246. package/components/formatter/__tests__/Date.test.ts +8 -8
  247. package/components/formatter/__tests__/LinkDetail.test.ts +10 -10
  248. package/components/formatter/__tests__/LiveDate.test.ts +21 -15
  249. package/components/formatter/__tests__/PodsUsage.test.ts +5 -5
  250. package/components/formatter/__tests__/Si.test.ts +3 -3
  251. package/components/formatter/__tests__/WorkloadDetailEndpoints.test.ts +5 -5
  252. package/components/graph/LinePlot.vue +1 -2
  253. package/components/nav/Group.vue +11 -6
  254. package/components/nav/Header.vue +161 -127
  255. package/components/nav/Jump.vue +1 -1
  256. package/components/nav/NamespaceFilter.vue +1 -1
  257. package/components/nav/TopLevelMenu.vue +14 -14
  258. package/components/nav/Type.vue +7 -7
  259. package/components/nav/WindowManager/ContainerLogs.vue +53 -38
  260. package/components/nav/WindowManager/ContainerShell.vue +38 -37
  261. package/components/nav/WindowManager/Window.vue +1 -1
  262. package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +192 -184
  263. package/components/nav/WindowManager/__tests__/ContainerShell.test.ts +21 -17
  264. package/components/nav/WindowManager/index.vue +4 -4
  265. package/components/nav/WorkspaceSwitcher.vue +16 -16
  266. package/components/nav/__tests__/TopLevelMenu.test.ts +354 -308
  267. package/components/nav/__tests__/Type.test.ts +194 -111
  268. package/components/nuxt/nuxt-build-indicator.vue +79 -52
  269. package/components/nuxt/nuxt-child.js +24 -25
  270. package/components/nuxt/nuxt-error.vue +48 -18
  271. package/components/nuxt/nuxt-link.client.js +4 -3
  272. package/components/nuxt/nuxt-loading.vue +96 -85
  273. package/components/templates/blank.vue +0 -1
  274. package/components/templates/default.vue +0 -4
  275. package/components/templates/home.vue +4 -4
  276. package/components/templates/plain.vue +3 -2
  277. package/composables/useI18n.ts +1 -1
  278. package/composables/useLabeledFormElement.ts +12 -1
  279. package/composables/useUserRetentionValidation.test.ts +178 -0
  280. package/composables/useUserRetentionValidation.ts +201 -0
  281. package/config/__test__/home-links.test.ts +2 -7
  282. package/config/pagination-table-headers.js +5 -4
  283. package/config/query-params.js +1 -0
  284. package/config/roles.ts +34 -19
  285. package/config/router/index.js +10 -7
  286. package/config/router/navigation-guards/attempt-first-login.js +1 -1
  287. package/config/router/navigation-guards/authentication.js +2 -1
  288. package/{middleware/authenticated.js → config/router/navigation-guards/clusters.js} +28 -67
  289. package/config/router/navigation-guards/history.js +13 -0
  290. package/config/router/navigation-guards/i18n.js +1 -1
  291. package/config/router/navigation-guards/index.js +8 -1
  292. package/config/router/navigation-guards/install-redirect.js +95 -0
  293. package/config/router/navigation-guards/load-initial-settings.js +1 -1
  294. package/config/router/navigation-guards/page-title.js +12 -0
  295. package/config/router/navigation-guards/products.js +15 -0
  296. package/config/router/navigation-guards/runtime-extension-route.js +31 -0
  297. package/config/router/navigation-guards/server-upgrade-growl.js +19 -0
  298. package/config/router/routes.js +49 -23
  299. package/config/settings.ts +1 -1
  300. package/config/store.js +2 -5
  301. package/config/types.js +18 -0
  302. package/config/uiplugins.js +2 -2
  303. package/core/plugin-routes.ts +11 -14
  304. package/core/plugin.ts +10 -10
  305. package/core/plugins-loader.js +1 -3
  306. package/core/plugins.js +7 -1
  307. package/core/types.ts +7 -7
  308. package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +3 -3
  309. package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +8 -8
  310. package/detail/__tests__/service.test.ts +6 -6
  311. package/detail/autoscaling.horizontalpodautoscaler/index.vue +6 -5
  312. package/detail/catalog.cattle.io.app.vue +2 -2
  313. package/detail/cis.cattle.io.clusterscan.vue +3 -3
  314. package/detail/configmap.vue +4 -1
  315. package/detail/fleet.cattle.io.cluster.vue +2 -1
  316. package/detail/fleet.cattle.io.clustergroup.vue +2 -1
  317. package/detail/fleet.cattle.io.gitrepo.vue +2 -1
  318. package/detail/harvesterhci.io.management.cluster.vue +2 -1
  319. package/detail/helm.cattle.io.projecthelmchart.vue +3 -3
  320. package/detail/management.cattle.io.user.vue +2 -1
  321. package/detail/namespace.vue +2 -1
  322. package/detail/networking.k8s.io.ingress.vue +4 -2
  323. package/detail/node.vue +2 -1
  324. package/detail/provisioning.cattle.io.cluster.vue +6 -7
  325. package/detail/secret.vue +3 -2
  326. package/detail/service.vue +2 -1
  327. package/detail/workload/index.vue +1 -19
  328. package/dialog/AddClusterMemberDialog.vue +30 -31
  329. package/dialog/AddCustomBadgeDialog.vue +101 -104
  330. package/dialog/AddProjectMemberDialog.vue +45 -46
  331. package/dialog/AddonConfigConfirmationDialog.vue +22 -24
  332. package/dialog/DeactivateDriverDialog.vue +5 -6
  333. package/dialog/DiagnosticTimingsDialog.vue +29 -29
  334. package/dialog/DrainNode.vue +245 -249
  335. package/dialog/ForceMachineRemoveDialog.vue +32 -34
  336. package/dialog/GenericPrompt.vue +23 -25
  337. package/dialog/RollbackWorkloadDialog.vue +68 -71
  338. package/dialog/RotateCertificatesDialog.vue +17 -18
  339. package/dialog/RotateEncryptionKeyDialog.vue +46 -47
  340. package/dialog/SaveAsRKETemplateDialog.vue +46 -47
  341. package/dialog/ScaleMachineDownDialog.vue +3 -3
  342. package/dialog/ScalePoolDownDialog.vue +22 -24
  343. package/dialog/SloDialog.vue +95 -0
  344. package/directives/clean-html.js +3 -3
  345. package/directives/clean-tooltip.js +1 -1
  346. package/directives/focus.js +17 -11
  347. package/directives/int-number.js +2 -2
  348. package/directives/positive-int-number.js +2 -2
  349. package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +7 -13
  350. package/edit/__tests__/kontainerDriver.test.ts +23 -20
  351. package/edit/__tests__/management.cattle.io.clusterroletemplatebinding.test.ts +31 -29
  352. package/edit/__tests__/management.cattle.io.setting.test.ts +20 -18
  353. package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +17 -15
  354. package/edit/__tests__/namespace.test.ts +29 -26
  355. package/edit/__tests__/nodeDriver.test.ts +35 -53
  356. package/edit/__tests__/service.test.ts +20 -17
  357. package/edit/__tests__/ui.cattle.io.navlink.test.ts +22 -20
  358. package/edit/auth/__tests__/AuthProviderWarningBanners.test.ts +2 -2
  359. package/edit/auth/__tests__/azuread.test.ts +43 -45
  360. package/edit/auth/__tests__/oidc.test.ts +36 -39
  361. package/edit/auth/azuread.vue +16 -23
  362. package/edit/auth/github.vue +6 -6
  363. package/edit/auth/googleoauth.vue +7 -7
  364. package/edit/auth/ldap/config.vue +29 -29
  365. package/edit/auth/ldap/index.vue +5 -5
  366. package/edit/auth/oidc.vue +18 -18
  367. package/edit/auth/saml.vue +94 -24
  368. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +2 -2
  369. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +7 -7
  370. package/edit/autoscaling.horizontalpodautoscaler/index.vue +18 -16
  371. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +3 -3
  372. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +3 -3
  373. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +12 -12
  374. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +5 -5
  375. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +3 -3
  376. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +2 -2
  377. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  378. package/edit/catalog.cattle.io.clusterrepo.vue +31 -32
  379. package/edit/cis.cattle.io.clusterscan.vue +9 -9
  380. package/edit/cis.cattle.io.clusterscanbenchmark.vue +7 -7
  381. package/edit/cis.cattle.io.clusterscanprofile.vue +3 -3
  382. package/edit/cloudcredential.vue +13 -8
  383. package/edit/configmap.vue +7 -7
  384. package/edit/constraints.gatekeeper.sh.constraint/MatchKinds.vue +3 -3
  385. package/edit/constraints.gatekeeper.sh.constraint/NamespaceList.vue +1 -1
  386. package/edit/constraints.gatekeeper.sh.constraint/Scope.vue +1 -1
  387. package/edit/constraints.gatekeeper.sh.constraint/index.vue +21 -22
  388. package/edit/fleet.cattle.io.cluster.vue +2 -1
  389. package/edit/fleet.cattle.io.clustergroup.vue +3 -2
  390. package/edit/fleet.cattle.io.gitrepo.vue +18 -18
  391. package/edit/helm.cattle.io.projecthelmchart.vue +4 -4
  392. package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +3 -2
  393. package/edit/logging-flow/Match.vue +4 -4
  394. package/edit/logging-flow/index.vue +11 -10
  395. package/edit/logging.banzaicloud.io.output/__tests__/logging.banzaicloud.io.output.test.ts +79 -73
  396. package/edit/logging.banzaicloud.io.output/index.vue +4 -4
  397. package/edit/logging.banzaicloud.io.output/providers/__tests__/loki.test.ts +1 -1
  398. package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
  399. package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +5 -5
  400. package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +6 -6
  401. package/edit/logging.banzaicloud.io.output/providers/datadog.vue +4 -4
  402. package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +16 -16
  403. package/edit/logging.banzaicloud.io.output/providers/file.vue +1 -1
  404. package/edit/logging.banzaicloud.io.output/providers/forward.vue +9 -9
  405. package/edit/logging.banzaicloud.io.output/providers/gcs.vue +5 -5
  406. package/edit/logging.banzaicloud.io.output/providers/gelf.vue +14 -14
  407. package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
  408. package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +3 -3
  409. package/edit/logging.banzaicloud.io.output/providers/logdna.vue +3 -3
  410. package/edit/logging.banzaicloud.io.output/providers/logz.vue +5 -5
  411. package/edit/logging.banzaicloud.io.output/providers/loki.vue +10 -10
  412. package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
  413. package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +15 -15
  414. package/edit/logging.banzaicloud.io.output/providers/redis.vue +5 -5
  415. package/edit/logging.banzaicloud.io.output/providers/s3.vue +7 -7
  416. package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +12 -12
  417. package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
  418. package/edit/logging.banzaicloud.io.output/providers/syslog.vue +19 -19
  419. package/edit/management.cattle.io.clusterroletemplatebinding.vue +1 -1
  420. package/edit/management.cattle.io.fleetworkspace.vue +6 -4
  421. package/edit/management.cattle.io.node.vue +1 -1
  422. package/edit/management.cattle.io.project.vue +13 -10
  423. package/edit/management.cattle.io.projectroletemplatebinding.vue +3 -3
  424. package/edit/management.cattle.io.setting.vue +6 -6
  425. package/edit/management.cattle.io.user.vue +4 -4
  426. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +4 -4
  427. package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +2 -1
  428. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +5 -5
  429. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +11 -11
  430. package/edit/monitoring.coreos.com.alertmanagerconfig/tls.vue +2 -2
  431. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +10 -9
  432. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  433. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +5 -5
  434. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +5 -5
  435. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +9 -9
  436. package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +36 -36
  437. package/edit/monitoring.coreos.com.prometheusrule/RecordingRule.vue +4 -4
  438. package/edit/monitoring.coreos.com.prometheusrule/index.vue +9 -9
  439. package/edit/monitoring.coreos.com.receiver/auth.vue +9 -9
  440. package/edit/monitoring.coreos.com.receiver/index.vue +8 -8
  441. package/edit/monitoring.coreos.com.receiver/tls.vue +4 -4
  442. package/edit/monitoring.coreos.com.receiver/types/__tests__/email.test.ts +20 -16
  443. package/edit/monitoring.coreos.com.receiver/types/email.vue +12 -11
  444. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +11 -11
  445. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +6 -6
  446. package/edit/monitoring.coreos.com.receiver/types/slack.vue +6 -6
  447. package/edit/monitoring.coreos.com.receiver/types/webhook.vue +7 -7
  448. package/edit/monitoring.coreos.com.route.vue +10 -10
  449. package/edit/namespace.vue +7 -7
  450. package/edit/networking.istio.io.destinationrule/LoadBalancer.vue +12 -12
  451. package/edit/networking.istio.io.destinationrule/index.vue +15 -15
  452. package/edit/networking.k8s.io.ingress/Certificate.vue +5 -5
  453. package/edit/networking.k8s.io.ingress/Certificates.vue +2 -2
  454. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +18 -18
  455. package/edit/networking.k8s.io.ingress/IngressClass.vue +1 -1
  456. package/edit/networking.k8s.io.ingress/Rule.vue +9 -7
  457. package/edit/networking.k8s.io.ingress/RulePath.vue +10 -10
  458. package/edit/networking.k8s.io.ingress/Rules.vue +3 -3
  459. package/edit/networking.k8s.io.ingress/index.vue +12 -8
  460. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +4 -4
  461. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +1 -1
  462. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +47 -32
  463. package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +3 -3
  464. package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.test.ts +27 -26
  465. package/edit/networking.k8s.io.networkpolicy/index.vue +16 -14
  466. package/edit/node.vue +3 -2
  467. package/edit/nodeDriver.vue +6 -1
  468. package/edit/persistentvolume/__tests__/persistentvolume.test.ts +56 -50
  469. package/edit/persistentvolume/index.vue +23 -23
  470. package/edit/persistentvolume/plugins/awsElasticBlockStore.vue +8 -8
  471. package/edit/persistentvolume/plugins/azureDisk.vue +10 -10
  472. package/edit/persistentvolume/plugins/azureFile.vue +6 -6
  473. package/edit/persistentvolume/plugins/cephfs.vue +10 -10
  474. package/edit/persistentvolume/plugins/cinder.vue +8 -8
  475. package/edit/persistentvolume/plugins/csi.vue +18 -18
  476. package/edit/persistentvolume/plugins/fc.vue +9 -9
  477. package/edit/persistentvolume/plugins/flexVolume.vue +9 -9
  478. package/edit/persistentvolume/plugins/flocker.vue +3 -3
  479. package/edit/persistentvolume/plugins/gcePersistentDisk.vue +8 -8
  480. package/edit/persistentvolume/plugins/glusterfs.vue +5 -5
  481. package/edit/persistentvolume/plugins/hostPath.vue +4 -4
  482. package/edit/persistentvolume/plugins/iscsi.vue +18 -18
  483. package/edit/persistentvolume/plugins/local.vue +2 -2
  484. package/edit/persistentvolume/plugins/longhorn.vue +8 -8
  485. package/edit/persistentvolume/plugins/nfs.vue +5 -5
  486. package/edit/persistentvolume/plugins/photonPersistentDisk.vue +5 -5
  487. package/edit/persistentvolume/plugins/portworxVolume.vue +6 -6
  488. package/edit/persistentvolume/plugins/quobyte.vue +7 -7
  489. package/edit/persistentvolume/plugins/rbd.vue +12 -12
  490. package/edit/persistentvolume/plugins/scaleIO.vue +15 -15
  491. package/edit/persistentvolume/plugins/storageos.vue +9 -9
  492. package/edit/persistentvolume/plugins/vsphereVolume.vue +5 -5
  493. package/edit/persistentvolumeclaim.vue +26 -25
  494. package/edit/policy.poddisruptionbudget.vue +12 -11
  495. package/edit/provisioning.cattle.io.cluster/AgentEnv.vue +1 -1
  496. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +10 -10
  497. package/edit/provisioning.cattle.io.cluster/Labels.vue +12 -1
  498. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +5 -5
  499. package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +40 -36
  500. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +170 -78
  501. package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.test.ts +16 -14
  502. package/edit/provisioning.cattle.io.cluster/__tests__/DirectoryConfig.test.ts +38 -8
  503. package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +14 -12
  504. package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +18 -19
  505. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +285 -84
  506. package/edit/provisioning.cattle.io.cluster/import.vue +7 -4
  507. package/edit/provisioning.cattle.io.cluster/index.vue +32 -13
  508. package/edit/provisioning.cattle.io.cluster/rke2.vue +149 -78
  509. package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +5 -5
  510. package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +10 -11
  511. package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +12 -11
  512. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +62 -24
  513. package/edit/provisioning.cattle.io.cluster/tabs/DirectoryConfig.vue +9 -9
  514. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +12 -12
  515. package/edit/provisioning.cattle.io.cluster/tabs/etcd/S3Config.vue +15 -15
  516. package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +6 -6
  517. package/edit/provisioning.cattle.io.cluster/tabs/networking/ACE.vue +3 -3
  518. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +18 -9
  519. package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +16 -12
  520. package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryMirrors.vue +4 -4
  521. package/edit/provisioning.cattle.io.cluster/tabs/registries/__tests__/RegistryConfigs.test.ts +64 -0
  522. package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +8 -6
  523. package/edit/provisioning.cattle.io.cluster/tabs/upgrade/DrainOptions.vue +15 -15
  524. package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +4 -4
  525. package/edit/resources.cattle.io.backup.vue +9 -9
  526. package/edit/resources.cattle.io.restore.vue +11 -11
  527. package/edit/secret/basic.vue +2 -2
  528. package/edit/secret/generic.vue +1 -1
  529. package/edit/secret/index.vue +12 -10
  530. package/edit/secret/registry.vue +4 -4
  531. package/edit/secret/ssh.vue +2 -2
  532. package/edit/secret/tls.vue +2 -2
  533. package/edit/service.vue +23 -23
  534. package/edit/serviceaccount.vue +4 -4
  535. package/edit/storage.k8s.io.storageclass/index.vue +13 -13
  536. package/edit/storage.k8s.io.storageclass/provisioners/custom.vue +1 -1
  537. package/edit/storage.k8s.io.storageclass/provisioners/driver.harvesterhci.io.vue +2 -2
  538. package/edit/storage.k8s.io.storageclass/provisioners/driver.longhorn.io.vue +4 -4
  539. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +12 -12
  540. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/azure-disk.vue +3 -3
  541. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/azure-file.vue +3 -3
  542. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/cinder.vue +4 -4
  543. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +6 -6
  544. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/glusterfs.vue +9 -9
  545. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/portworx-volume.vue +7 -7
  546. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/quobyte.vue +8 -8
  547. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/rbd.vue +11 -11
  548. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/scaleio.vue +8 -8
  549. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/storageos.vue +5 -5
  550. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +7 -7
  551. package/edit/token.vue +4 -4
  552. package/edit/ui.cattle.io.navlink.vue +28 -27
  553. package/edit/workload/Job.vue +16 -16
  554. package/edit/workload/Upgrading.vue +16 -16
  555. package/edit/workload/VolumeClaimTemplate.vue +3 -3
  556. package/edit/workload/__tests__/Job.test.ts +8 -8
  557. package/edit/workload/__tests__/index.test.ts +32 -29
  558. package/edit/workload/index.vue +29 -28
  559. package/edit/workload/mixins/workload.js +30 -30
  560. package/edit/workload/storage/ContainerMountPaths.vue +3 -4
  561. package/edit/workload/storage/Mount.vue +3 -3
  562. package/edit/workload/storage/__tests__/Mount.test.ts +13 -13
  563. package/edit/workload/storage/__tests__/Storage.test.ts +26 -20
  564. package/edit/workload/storage/awsElasticBlockStore.vue +4 -4
  565. package/edit/workload/storage/azureDisk.vue +7 -7
  566. package/edit/workload/storage/azureFile.vue +5 -5
  567. package/edit/workload/storage/csi/driver.longhorn.io.vue +3 -3
  568. package/edit/workload/storage/csi/index.vue +4 -4
  569. package/edit/workload/storage/emptyDir.vue +4 -4
  570. package/edit/workload/storage/ephemeralVolume/index.vue +3 -3
  571. package/edit/workload/storage/gcePersistentDisk.vue +4 -4
  572. package/edit/workload/storage/hostPath.vue +4 -4
  573. package/edit/workload/storage/index.vue +3 -4
  574. package/edit/workload/storage/nfs.vue +4 -4
  575. package/edit/workload/storage/persistentVolumeClaim/__tests__/persistentvolumeclaim.test.ts +18 -16
  576. package/edit/workload/storage/persistentVolumeClaim/index.vue +5 -5
  577. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +15 -15
  578. package/edit/workload/storage/secret.vue +9 -9
  579. package/edit/workload/storage/vsphereVolume.vue +4 -4
  580. package/initialize/App.vue +10 -8
  581. package/initialize/app-extended.js +14 -30
  582. package/initialize/entry-helpers.js +32 -426
  583. package/initialize/entry.js +11 -10
  584. package/initialize/install-plugins.js +15 -13
  585. package/list/__tests__/workload.test.ts +22 -20
  586. package/list/catalog.cattle.io.app.vue +1 -1
  587. package/list/cis.cattle.io.clusterscan.vue +1 -2
  588. package/list/fleet.cattle.io.clustergroup.vue +0 -1
  589. package/list/group.principal.vue +1 -1
  590. package/list/management.cattle.io.feature.vue +23 -29
  591. package/list/management.cattle.io.fleetworkspace.vue +0 -1
  592. package/list/management.cattle.io.setting.vue +2 -2
  593. package/list/management.cattle.io.user.vue +1 -1
  594. package/list/namespace.vue +0 -1
  595. package/list/node.vue +4 -5
  596. package/list/provisioning.cattle.io.cluster.vue +1 -1
  597. package/list/rbac.authorization.k8s.io.clusterrolebinding.vue +0 -1
  598. package/machine-config/__tests__/vmwarevsphere.test.ts +10 -7
  599. package/machine-config/amazonec2.vue +26 -26
  600. package/machine-config/azure.vue +31 -31
  601. package/machine-config/digitalocean.vue +8 -8
  602. package/machine-config/generic.vue +2 -1
  603. package/machine-config/linode.vue +4 -4
  604. package/machine-config/pnap.vue +11 -11
  605. package/machine-config/vmwarevsphere-config.ts +17 -0
  606. package/machine-config/vmwarevsphere.vue +400 -410
  607. package/mixins/__tests__/chart.test.ts +45 -24
  608. package/mixins/auth-config.js +37 -11
  609. package/mixins/chart.js +31 -15
  610. package/mixins/compact-input.ts +2 -3
  611. package/mixins/labeled-form-element.ts +8 -3
  612. package/mixins/resource-fetch.js +4 -3
  613. package/models/__tests__/apps.deployment.test.ts +93 -0
  614. package/models/apps.deployment.js +18 -4
  615. package/models/apps.statefulset.js +1 -2
  616. package/models/batch.cronjob.js +1 -2
  617. package/models/catalog.cattle.io.clusterrepo.js +1 -2
  618. package/models/fleet.cattle.io.gitrepo.js +1 -2
  619. package/models/helm.cattle.io.projecthelmchart.js +2 -3
  620. package/models/management.cattle.io.cluster.js +2 -2
  621. package/models/management.cattle.io.roletemplate.js +2 -3
  622. package/models/namespace.js +1 -2
  623. package/models/networking.istio.io.destinationrule.js +2 -3
  624. package/models/persistentvolumeclaim.js +2 -3
  625. package/models/provisioning.cattle.io.cluster.js +4 -0
  626. package/models/workload.js +2 -2
  627. package/package.json +44 -43
  628. package/pages/404.vue +15 -0
  629. package/pages/__tests__/prefs.test.ts +44 -44
  630. package/pages/about.vue +4 -4
  631. package/pages/account/index.vue +1 -2
  632. package/pages/auth/login.vue +29 -9
  633. package/pages/auth/logout.vue +23 -1
  634. package/pages/auth/setup.vue +35 -31
  635. package/pages/auth/verify.vue +38 -5
  636. package/pages/c/_cluster/_product/namespaces.vue +1 -2
  637. package/pages/c/_cluster/apps/charts/chart.vue +4 -4
  638. package/pages/c/_cluster/apps/charts/index.vue +16 -16
  639. package/pages/c/_cluster/apps/charts/install.vue +46 -80
  640. package/pages/c/_cluster/auth/config/index.vue +2 -2
  641. package/pages/c/_cluster/auth/roles/index.vue +2 -2
  642. package/pages/c/_cluster/auth/user.retention/index.vue +34 -95
  643. package/pages/c/_cluster/explorer/EventsTable.vue +1 -1
  644. package/pages/c/_cluster/explorer/__tests__/index.test.ts +32 -34
  645. package/pages/c/_cluster/explorer/index.vue +9 -6
  646. package/pages/c/_cluster/explorer/tools/__tests__/index.test.ts +22 -20
  647. package/pages/c/_cluster/fleet/index.vue +5 -6
  648. package/pages/c/_cluster/gatekeeper/index.vue +4 -5
  649. package/pages/c/_cluster/istio/index.vue +4 -6
  650. package/pages/c/_cluster/logging/index.vue +9 -5
  651. package/pages/c/_cluster/longhorn/__tests__/longhorn.index.test.ts +7 -5
  652. package/pages/c/_cluster/longhorn/index.vue +2 -9
  653. package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +1 -1
  654. package/pages/c/_cluster/manager/jwt.authentication/index.vue +14 -5
  655. package/pages/c/_cluster/monitoring/alertmanagerconfig/_alertmanagerconfigid/receiver.vue +1 -1
  656. package/pages/c/_cluster/monitoring/index.vue +7 -9
  657. package/pages/c/_cluster/neuvector/index.vue +7 -10
  658. package/pages/c/_cluster/settings/DefaultLinksEditor.vue +7 -9
  659. package/pages/c/_cluster/settings/banners.vue +82 -84
  660. package/pages/c/_cluster/settings/brand.vue +21 -19
  661. package/pages/c/_cluster/settings/links.vue +6 -4
  662. package/pages/c/_cluster/settings/performance.vue +25 -21
  663. package/pages/c/_cluster/uiplugins/AddExtensionRepos.vue +2 -2
  664. package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +43 -45
  665. package/pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue +5 -5
  666. package/pages/c/_cluster/uiplugins/InstallDialog.vue +1 -1
  667. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +3 -3
  668. package/pages/c/_cluster/uiplugins/__tests__/AddExtensionRepos.test.ts +20 -15
  669. package/pages/c/_cluster/uiplugins/__tests__/SetupUIPlugins.test.ts +12 -9
  670. package/pages/c/_cluster/uiplugins/index.vue +173 -176
  671. package/pages/diagnostic.vue +6 -9
  672. package/pages/fail-whale.vue +3 -1
  673. package/pages/home.vue +8 -17
  674. package/pages/index.vue +17 -16
  675. package/pages/prefs.vue +12 -12
  676. package/pages/support/index.vue +3 -3
  677. package/pkg/tsconfig.json +0 -1
  678. package/plugins/clean-html-directive.js +4 -3
  679. package/plugins/clean-tooltip-directive.js +4 -3
  680. package/plugins/dashboard-store/actions.js +1 -1
  681. package/plugins/dashboard-store/getters.js +1 -1
  682. package/plugins/dashboard-store/index.js +2 -0
  683. package/plugins/dashboard-store/mutations.js +5 -5
  684. package/plugins/dashboard-store/resource-class.js +5 -5
  685. package/plugins/extend-router.js +62 -42
  686. package/plugins/floating-vue.js +1 -0
  687. package/plugins/formatters.js +1 -1
  688. package/plugins/global-formatters.js +3 -14
  689. package/plugins/i18n.js +17 -22
  690. package/plugins/int-number.js +4 -3
  691. package/plugins/positive-int-number.js +4 -3
  692. package/plugins/shortkey.js +273 -0
  693. package/plugins/steve/__tests__/getters.test.ts +6 -3
  694. package/plugins/steve/getters.js +6 -4
  695. package/plugins/steve/hybrid-class.js +7 -12
  696. package/plugins/steve/mutations.js +1 -2
  697. package/plugins/steve/norman-class.js +10 -11
  698. package/plugins/steve/subscribe.js +3 -1
  699. package/plugins/trim-whitespace.js +4 -3
  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/StringList/StringList.test.ts +22 -22
  718. package/rancher-components/StringList/StringList.vue +10 -9
  719. package/scripts/extension/helm/charts/ui-plugin-server/Chart.yaml +1 -1
  720. package/scripts/publish-shell.sh +52 -58
  721. package/scripts/test-plugins-build.sh +44 -38
  722. package/scripts/vue-migrate.js +7 -4
  723. package/shell/types/shell/index.d.ts +2 -0
  724. package/store/__tests__/catalog.test.ts +4 -21
  725. package/store/auth.js +28 -10
  726. package/store/index.js +16 -8
  727. package/store/prefs.js +3 -4
  728. package/types/resources/settings.d.ts +54 -0
  729. package/types/store/pagination.types.ts +1 -1
  730. package/utils/auth.js +21 -6
  731. package/utils/axios.js +1 -1
  732. package/utils/download.js +1 -1
  733. package/utils/dynamic-importer.js +14 -12
  734. package/utils/error.js +4 -4
  735. package/utils/object.js +4 -5
  736. package/utils/router.js +7 -1
  737. package/utils/select.js +1 -1
  738. package/utils/settings.ts +3 -1
  739. package/utils/unit-tests/ChildRenderingRouterLinkStub.ts +4 -4
  740. package/vue.config.js +404 -396
  741. package/config/middleware.js +0 -6
  742. package/config/nuxt-paths.js +0 -7
  743. package/creators/app/app.package.json +0 -14
  744. package/creators/app/files/.eslintignore +0 -16
  745. package/creators/app/files/.eslintrc.js +0 -173
  746. package/creators/app/files/.gitignore +0 -70
  747. package/creators/app/files/.gitlab-ci.yml +0 -14
  748. package/creators/app/files/.vscode/settings.json +0 -21
  749. package/creators/app/files/babel.config.js +0 -1
  750. package/creators/app/files/tsconfig.json +0 -42
  751. package/creators/app/files/vue.config.js +0 -6
  752. package/creators/app/init +0 -120
  753. package/creators/app/package.json +0 -25
  754. package/creators/pkg/files/.github/workflows/build-extension-catalog.yml +0 -24
  755. package/creators/pkg/files/.github/workflows/build-extension-charts.yml +0 -22
  756. package/creators/pkg/files/babel.config.js +0 -1
  757. package/creators/pkg/files/index.ts +0 -14
  758. package/creators/pkg/files/tsconfig.json +0 -53
  759. package/creators/pkg/files/vue.config.js +0 -1
  760. package/creators/pkg/init +0 -286
  761. package/creators/pkg/package.json +0 -19
  762. package/creators/pkg/pkg.package.json +0 -21
  763. package/creators/pkg/vue-shim.ts +0 -4
  764. package/creators/update/init +0 -56
  765. package/creators/update/package.json +0 -20
  766. package/creators/update/upgrade +0 -56
  767. package/pages/c/_cluster/backup/index.vue +0 -11
  768. package/pages/c/_cluster/cis/index.vue +0 -11
  769. package/plugins/directives.js +0 -8
  770. package/plugins/vue-js-modal.js +0 -4
  771. package/types/shell/index.d.ts +0 -4585
  772. package/utils/install-redirect.js +0 -55
  773. /package/utils/{cookie-universal-nuxt.js → cookie-universal.js} +0 -0
@@ -1,12 +1,5 @@
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;
1
+ import { createApp } from 'vue';
2
+ const vueApp = createApp({});
10
3
 
11
4
  /**
12
5
  * Add error handler debugging capabilities
@@ -33,7 +26,7 @@ export const loadDebugger = (vueApp) => {
33
26
  const globalApp = Object.keys(window.$globalApp)
34
27
  .find((instance) => vm.$root[instance]);
35
28
 
36
- // Show Nuxt Error Page
29
+ // Show Error Page
37
30
  if (globalApp && vm.$root[globalApp].error && info !== 'render function') {
38
31
  const vueApp = vm.$root[globalApp];
39
32
 
@@ -55,318 +48,26 @@ export const loadDebugger = (vueApp) => {
55
48
  }
56
49
  };
57
50
 
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
- }
51
+ export const globalHandleError = (error) => vueApp.config.errorHandler && vueApp.config.errorHandler(error);
282
52
 
283
53
  /**
284
54
  * Mounts the Vue app to the DOM element
285
55
  * @param {Object} appPartials - App view partials
286
- * @param {Object} VueClass - Vue instance
56
+ * @param {Object} vueApp- Vue instance
287
57
  */
288
- export async function mountApp(appPartials, VueClass) {
58
+ export async function mountApp(appPartials, vueApp) {
289
59
  // Set global variables
290
- app = appPartials.app;
60
+ const app = appPartials.app;
291
61
  const router = appPartials.router;
292
62
 
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
- };
63
+ vueApp.use(router);
64
+ vueApp.use(app.store);
316
65
 
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();
66
+ vueApp.$loading = {}; // To avoid error while vueApp.$loading does not exist
323
67
 
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
- });
333
-
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
338
-
339
- errorHandler(err);
340
- }
341
- });
342
- });
68
+ vueApp.mount('#app');
343
69
  }
344
70
 
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
71
  export const getMatchedComponents = (route, matches = false, prop = 'components') => {
371
72
  return Array.prototype.concat.apply([], route.matched.map((match, index) => {
372
73
  return Object.keys(match[prop]).map((key) => {
@@ -377,65 +78,6 @@ export const getMatchedComponents = (route, matches = false, prop = 'components'
377
78
  }));
378
79
  };
379
80
 
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
81
  /**
440
82
  * Merge route meta with component meta and update matched components
441
83
  * @param {*} route
@@ -445,15 +87,27 @@ export const getRouteData = async(route) => {
445
87
  if (!route) {
446
88
  return;
447
89
  }
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
90
 
454
- // Send back a copy of route with meta based on Component definition
91
+ // Ensure we're working with the _value property of the route object
92
+ const routeValue = route._value || route;
93
+
94
+ if (!routeValue.matched) {
95
+ // eslint-disable-next-line no-console
96
+ console.warn('Route matched property is undefined:', routeValue);
97
+
98
+ return routeValue;
99
+ }
100
+
101
+ const meta = routeValue.matched.map((record) => {
102
+ // Merge component meta and route record meta
103
+ const componentMeta = record.components?.default?.meta || {};
104
+ const recordMeta = record.meta || {};
105
+
106
+ return { ...componentMeta, ...recordMeta };
107
+ });
108
+
455
109
  return {
456
- ...route,
110
+ ...routeValue,
457
111
  meta
458
112
  };
459
113
  };
@@ -468,59 +122,13 @@ export const setContext = async(app, context) => {
468
122
  if (!app.context) {
469
123
  app.context = {
470
124
  isDev: true,
471
- isHMR: false,
472
125
  app,
473
126
  store: app.store,
474
127
  payload: context.payload,
475
128
  error: context.error,
476
129
  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
130
  };
481
131
  // 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
132
  }
525
133
 
526
134
  // Dynamic keys
@@ -539,8 +147,6 @@ export const setContext = async(app, context) => {
539
147
 
540
148
  app.context.next = context.next;
541
149
  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 || {};
150
+ app.context.params = app.context.route?.params || {};
151
+ app.context.query = app.context.route?.query || {};
546
152
  };
@@ -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