dashboard-shell-shell 1.0.10000011122 → 1.6.0-alpha.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 (756) hide show
  1. package/assets/brand/csp/favicon.png +0 -0
  2. package/assets/data/aws-regions.json +3 -0
  3. package/assets/icons/demo.css:Zone.Identifier +0 -0
  4. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  5. package/assets/icons/iconfont.css +4 -1
  6. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  7. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  8. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  9. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  10. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  11. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  12. package/assets/images/action.svg +6 -0
  13. package/assets/images/icons/document.svg +3 -0
  14. package/assets/images/key.svg +17 -0
  15. package/assets/images/pl/dark/logo.png +0 -0
  16. package/assets/images/pl/logo.png +0 -0
  17. package/assets/images/providers/sks.svg +1 -0
  18. package/assets/images/vendor/cognito.svg +1 -0
  19. package/assets/styles/all.scss +23 -3
  20. package/assets/styles/app.scss +3 -0
  21. package/assets/styles/base/_basic.scss +10 -0
  22. package/assets/styles/base/_functions.scss +0 -0
  23. package/assets/styles/base/_mixins.scss +1 -1
  24. package/assets/styles/base/_spacing.scss +29 -0
  25. package/assets/styles/base/_variables.scss +21 -15
  26. package/assets/styles/fonts/_icons.scss +3 -2
  27. package/assets/styles/global/_button.scss +23 -16
  28. package/assets/styles/global/_form.scss +3 -2
  29. package/assets/styles/global/_labeled-input.scss +7 -3
  30. package/assets/styles/global/_layout.scss +1 -1
  31. package/assets/styles/global/_select.scss +7 -8
  32. package/assets/styles/global/_table.scss +3 -2
  33. package/assets/styles/global/_tooltip.scss +15 -4
  34. package/assets/styles/themes/_dark.scss +32 -0
  35. package/assets/styles/themes/_light.scss +90 -7
  36. package/assets/styles/vendor/vue-select.scss +4 -2
  37. package/assets/translations/en-us.yaml +881 -107
  38. package/assets/translations/zh-hans.yaml +232 -46
  39. package/chart/__tests__/S3.test.ts +2 -1
  40. package/chart/monitoring/index.vue +1 -1
  41. package/cloud-credential/gcp.vue +9 -1
  42. package/components/ActionDropdown.vue +1 -0
  43. package/components/ActionMenuShell.vue +2 -3
  44. package/components/AppModal.vue +9 -28
  45. package/components/AsyncButton.vue +2 -0
  46. package/components/BrandImage.vue +1 -0
  47. package/components/ButtonDropdown.vue +3 -1
  48. package/components/Certificates.vue +5 -0
  49. package/components/ClusterIconMenu.vue +1 -1
  50. package/components/CodeMirror.vue +10 -7
  51. package/components/CommunityLinks.vue +3 -58
  52. package/components/ConfigMapSettings/Settings.vue +377 -0
  53. package/components/ConfigMapSettings/index.vue +354 -0
  54. package/components/ContainerResourceLimit.vue +2 -2
  55. package/components/CopyToClipboard.vue +15 -0
  56. package/components/CruResource.vue +104 -17
  57. package/components/CruResourceFooter.vue +1 -1
  58. package/components/DetailText.vue +61 -11
  59. package/components/Drawer/Chrome.vue +115 -0
  60. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +64 -0
  61. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +48 -0
  62. package/components/Drawer/ResourceDetailDrawer/__tests__/ConfigTab.test.ts +54 -0
  63. package/components/Drawer/ResourceDetailDrawer/__tests__/YamlTab.test.ts +80 -0
  64. package/components/Drawer/ResourceDetailDrawer/__tests__/composables.test.ts +106 -0
  65. package/components/Drawer/ResourceDetailDrawer/__tests__/helpers.test.ts +42 -0
  66. package/components/Drawer/ResourceDetailDrawer/composables.ts +53 -0
  67. package/components/Drawer/ResourceDetailDrawer/helpers.ts +10 -0
  68. package/components/Drawer/ResourceDetailDrawer/index.vue +124 -0
  69. package/components/ExplorerMembers.vue +28 -4
  70. package/components/ExplorerProjectsNamespaces.vue +30 -33
  71. package/components/FilterPanel.vue +156 -0
  72. package/components/FixedBanner.vue +19 -5
  73. package/components/{fleet/ForceDirectedTreeChart/index.vue → ForceDirectedTreeChart.vue} +47 -41
  74. package/components/GlobalRoleBindings.vue +3 -0
  75. package/components/GrowlManager.vue +16 -15
  76. package/components/IconOrSvg.vue +19 -35
  77. package/components/IndentedPanel.vue +4 -10
  78. package/components/KeyValueView.vue +1 -1
  79. package/components/LandingPagePreference.vue +2 -0
  80. package/components/Loading.vue +1 -1
  81. package/components/LocaleSelector.vue +10 -2
  82. package/components/PaginatedResourceTable.vue +53 -1
  83. package/components/PodSecurityAdmission.vue +2 -2
  84. package/components/ProgressBarMulti.vue +1 -0
  85. package/components/PromptModal.vue +38 -7
  86. package/components/PromptRemove.vue +8 -4
  87. package/components/PromptRestore.vue +22 -44
  88. package/components/RelatedResources.vue +7 -12
  89. package/components/Resource/Detail/Additional.vue +46 -0
  90. package/components/Resource/Detail/Card/PodsCard/Bubble.vue +13 -0
  91. package/components/Resource/Detail/Card/PodsCard/composable.ts +30 -0
  92. package/components/Resource/Detail/Card/PodsCard/index.vue +118 -0
  93. package/components/Resource/Detail/Card/ResourceUsageCard/composable.ts +51 -0
  94. package/components/Resource/Detail/Card/ResourceUsageCard/index.vue +79 -0
  95. package/components/Resource/Detail/Card/Scaler.vue +89 -0
  96. package/components/Resource/Detail/Card/StateCard/composables.ts +112 -0
  97. package/components/Resource/Detail/Card/StateCard/index.vue +39 -0
  98. package/components/Resource/Detail/Card/VerticalGap.vue +11 -0
  99. package/components/Resource/Detail/Card/__tests__/Card.test.ts +36 -0
  100. package/components/Resource/Detail/Card/__tests__/PodsCard.test.ts +84 -0
  101. package/components/Resource/Detail/Card/__tests__/ResourceUsageCard.test.ts +72 -0
  102. package/components/Resource/Detail/Card/__tests__/Scaler.test.ts +87 -0
  103. package/components/Resource/Detail/Card/__tests__/StateCard.test.ts +53 -0
  104. package/components/Resource/Detail/Card/__tests__/VerticalGap.test.ts +14 -0
  105. package/components/Resource/Detail/Card/__tests__/index.test.ts +36 -0
  106. package/components/Resource/Detail/Card/index.vue +56 -0
  107. package/components/Resource/Detail/Metadata/Annotations/__tests__/index.test.ts +19 -0
  108. package/components/Resource/Detail/Metadata/Annotations/composable.ts +12 -0
  109. package/components/Resource/Detail/Metadata/Annotations/index.vue +31 -0
  110. package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +223 -0
  111. package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/index.test.ts +103 -0
  112. package/components/Resource/Detail/Metadata/IdentifyingInformation/composable.ts +72 -0
  113. package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +317 -0
  114. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +138 -0
  115. package/components/Resource/Detail/Metadata/KeyValue.vue +144 -0
  116. package/components/Resource/Detail/Metadata/Labels/__tests__/index.test.ts +18 -0
  117. package/components/Resource/Detail/Metadata/Labels/composable.ts +12 -0
  118. package/components/Resource/Detail/Metadata/Labels/index.vue +31 -0
  119. package/components/Resource/Detail/Metadata/Rectangle.vue +34 -0
  120. package/components/Resource/Detail/Metadata/__tests__/KeyValue.test.ts +107 -0
  121. package/components/Resource/Detail/Metadata/__tests__/Rectangle.test.ts +24 -0
  122. package/components/Resource/Detail/Metadata/__tests__/composables.test.ts +75 -0
  123. package/components/Resource/Detail/Metadata/__tests__/index.test.ts +91 -0
  124. package/components/Resource/Detail/Metadata/composables.ts +81 -0
  125. package/components/Resource/Detail/Metadata/index.vue +90 -0
  126. package/components/Resource/Detail/Page.vue +37 -0
  127. package/components/Resource/Detail/PercentageBar.vue +40 -0
  128. package/components/Resource/Detail/ResourceRow.vue +138 -0
  129. package/components/Resource/Detail/ResourceTabs/ConfigMapDataTab/__tests__/composables.test.ts +29 -0
  130. package/components/Resource/Detail/ResourceTabs/ConfigMapDataTab/__tests__/index.test.ts +48 -0
  131. package/components/Resource/Detail/ResourceTabs/ConfigMapDataTab/composables.ts +31 -0
  132. package/components/Resource/Detail/ResourceTabs/ConfigMapDataTab/index.vue +50 -0
  133. package/components/Resource/Detail/ResourceTabs/KnownHostsTab/__tests__/composables.test.ts +66 -0
  134. package/components/Resource/Detail/ResourceTabs/KnownHostsTab/composables.ts +21 -0
  135. package/components/Resource/Detail/ResourceTabs/KnownHostsTab/index.vue +31 -0
  136. package/components/Resource/Detail/ResourceTabs/SecretDataTab/Basic.vue +45 -0
  137. package/components/Resource/Detail/ResourceTabs/SecretDataTab/BasicAuth.vue +31 -0
  138. package/components/Resource/Detail/ResourceTabs/SecretDataTab/Certificate.vue +31 -0
  139. package/components/Resource/Detail/ResourceTabs/SecretDataTab/Registry.vue +22 -0
  140. package/components/Resource/Detail/ResourceTabs/SecretDataTab/ServiceAccountToken.vue +31 -0
  141. package/components/Resource/Detail/ResourceTabs/SecretDataTab/Ssh.vue +32 -0
  142. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/Basic.test.ts +40 -0
  143. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/BasicAuth.test.ts +33 -0
  144. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/Certificate.test.ts +33 -0
  145. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/Registry.test.ts +27 -0
  146. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/ServiceAccountToken.test.ts +33 -0
  147. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/Ssh.test.ts +33 -0
  148. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/auth-types.test.ts +186 -0
  149. package/components/Resource/Detail/ResourceTabs/SecretDataTab/__tests__/composables.test.ts +102 -0
  150. package/components/Resource/Detail/ResourceTabs/SecretDataTab/auth-types.ts +109 -0
  151. package/components/Resource/Detail/ResourceTabs/SecretDataTab/composeables.ts +52 -0
  152. package/components/Resource/Detail/ResourceTabs/SecretDataTab/index.vue +71 -0
  153. package/components/Resource/Detail/SpacedRow.vue +14 -0
  154. package/components/Resource/Detail/StatusBar.vue +59 -0
  155. package/components/Resource/Detail/StatusRow.vue +61 -0
  156. package/components/Resource/Detail/TitleBar/Title.vue +15 -0
  157. package/components/Resource/Detail/TitleBar/Top.vue +16 -0
  158. package/components/Resource/Detail/TitleBar/__tests__/Title.test.ts +17 -0
  159. package/components/Resource/Detail/TitleBar/__tests__/Top.test.ts +17 -0
  160. package/components/Resource/Detail/TitleBar/__tests__/composables.test.ts +63 -0
  161. package/components/Resource/Detail/TitleBar/__tests__/index.test.ts +142 -0
  162. package/components/Resource/Detail/TitleBar/composables.ts +61 -0
  163. package/components/Resource/Detail/TitleBar/index.vue +302 -0
  164. package/components/Resource/Detail/Top/index.vue +34 -0
  165. package/components/Resource/Detail/__tests__/Page.test.ts +32 -0
  166. package/components/Resource/Detail/composables.ts +45 -0
  167. package/components/ResourceDetail/Masthead/__tests__/index.test.ts +70 -0
  168. package/components/ResourceDetail/{__tests__/Masthead.test.ts → Masthead/__tests__/legacy.test.ts} +3 -3
  169. package/components/ResourceDetail/Masthead/index.vue +65 -0
  170. package/components/ResourceDetail/Masthead/latest.vue +44 -0
  171. package/components/ResourceDetail/{Masthead.vue → Masthead/legacy.vue} +34 -15
  172. package/components/ResourceDetail/__tests__/index.test.ts +135 -0
  173. package/components/ResourceDetail/index.vue +75 -560
  174. package/components/{rancherResourceDetail/index.vue → ResourceDetail/legacy.vue} +31 -42
  175. package/components/ResourceList/Masthead.vue +189 -82
  176. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  177. package/components/ResourceList/index.vue +3 -2
  178. package/components/ResourceTable.vue +75 -16
  179. package/components/ResourceYaml.vue +15 -2
  180. package/components/RichTranslation.vue +106 -0
  181. package/components/SideNav.vue +66 -29
  182. package/components/SlideInPanelManager.vue +116 -14
  183. package/components/SortableTable/THead.vue +52 -1
  184. package/components/SortableTable/index.vue +515 -394
  185. package/components/SortableTable/paging.js +15 -16
  186. package/components/SortableTable/selection.js +22 -10
  187. package/components/StateDot/index.vue +28 -0
  188. package/components/StatusBadge.vue +6 -4
  189. package/components/SubtleLink.vue +25 -0
  190. package/components/Tabbed/index.vue +39 -19
  191. package/components/Wizard.vue +16 -3
  192. package/components/YamlEditor.vue +1 -2
  193. package/components/__tests__/AsyncButton.test.ts +39 -0
  194. package/components/__tests__/ConfigMapSettings.test.ts +376 -0
  195. package/components/__tests__/CruResource.test.ts +63 -0
  196. package/components/__tests__/FilterPanel.test.ts +81 -0
  197. package/components/__tests__/GrowlManager.test.ts +0 -25
  198. package/components/__tests__/PromptModal.test.ts +146 -0
  199. package/components/__tests__/PromptRestore.test.ts +1 -65
  200. package/components/__tests__/RichTranslation.test.ts +115 -0
  201. package/components/auth/AuthBanner.vue +15 -14
  202. package/components/auth/Principal.vue +44 -15
  203. package/components/auth/RoleDetailEdit.vue +112 -15
  204. package/components/auth/SelectPrincipal.vue +1 -0
  205. package/components/auth/login/ldap.vue +2 -2
  206. package/components/auth/login/oidc.vue +6 -1
  207. package/components/breadcrumb/index.vue +119 -0
  208. package/components/fleet/FleetApplications.vue +174 -0
  209. package/components/fleet/FleetClusterTargets/TargetsList.vue +66 -0
  210. package/components/fleet/FleetClusterTargets/index.vue +455 -0
  211. package/components/fleet/FleetClusters.vue +25 -6
  212. package/components/fleet/FleetGitRepoPaths.vue +476 -0
  213. package/components/fleet/FleetHelmOps.vue +123 -0
  214. package/components/fleet/FleetIntro.vue +58 -28
  215. package/components/fleet/FleetNoWorkspaces.vue +5 -1
  216. package/components/fleet/FleetOCIStorageSecret.vue +171 -0
  217. package/components/fleet/FleetRepos.vue +37 -80
  218. package/components/fleet/FleetResources.vue +69 -27
  219. package/components/fleet/FleetSummary.vue +26 -51
  220. package/components/fleet/FleetValuesFrom.vue +295 -0
  221. package/components/fleet/__tests__/FleetClusterTargets.test.ts +1224 -0
  222. package/components/fleet/__tests__/FleetGitRepoPaths.test.ts +265 -0
  223. package/components/fleet/__tests__/FleetOCIStorageSecret.test.ts +213 -0
  224. package/components/fleet/__tests__/FleetSummary.test.ts +39 -39
  225. package/components/fleet/__tests__/FleetValuesFrom.test.ts +300 -0
  226. package/components/fleet/dashboard/Empty.vue +73 -0
  227. package/components/fleet/dashboard/ResourceCard.vue +184 -0
  228. package/components/fleet/dashboard/ResourceCardSummary.vue +195 -0
  229. package/components/fleet/dashboard/ResourceDetails.vue +194 -0
  230. package/components/fleet/dashboard/ResourcePanel.vue +384 -0
  231. package/components/form/ArrayList.vue +187 -142
  232. package/components/form/ArrayListGrouped.vue +5 -3
  233. package/components/form/BannerSettings.vue +130 -61
  234. package/components/form/ChangePassword.vue +8 -6
  235. package/components/form/ColorInput.vue +67 -14
  236. package/components/form/Command.vue +4 -5
  237. package/components/form/Conditions.vue +15 -1
  238. package/components/form/FileImageSelector.vue +1 -1
  239. package/components/form/Footer.vue +12 -5
  240. package/components/form/HealthCheck.vue +0 -2
  241. package/components/form/HookOption.vue +87 -58
  242. package/components/form/InputWithSelect.vue +10 -7
  243. package/components/form/KeyValue.vue +138 -55
  244. package/components/form/LabeledSelect.vue +222 -201
  245. package/components/form/Labels.vue +92 -22
  246. package/components/form/MatchExpressions.vue +59 -12
  247. package/components/form/Members/ClusterMembershipEditor.vue +1 -1
  248. package/components/form/Members/ClusterPermissionsEditor.vue +32 -30
  249. package/components/form/Members/MembershipEditor.vue +2 -2
  250. package/components/form/NameNsDescription.vue +27 -10
  251. package/components/form/Networking.vue +30 -28
  252. package/components/form/NodeAffinity.vue +29 -28
  253. package/components/form/NotificationSettings.vue +15 -1
  254. package/components/form/Password.vue +6 -2
  255. package/components/form/PodAffinity.vue +23 -23
  256. package/components/form/Probe.vue +15 -11
  257. package/components/form/ProjectMemberEditor.vue +28 -25
  258. package/components/form/ResourceLabeledSelect.vue +22 -8
  259. package/components/form/ResourceQuota/Namespace.vue +4 -4
  260. package/components/form/ResourceQuota/NamespaceRow.vue +23 -18
  261. package/components/form/ResourceQuota/Project.vue +4 -4
  262. package/components/form/ResourceQuota/ProjectRow.vue +36 -31
  263. package/components/form/ResourceSelector.vue +28 -24
  264. package/components/form/ResourceTabs/index.vue +7 -1
  265. package/components/form/SSHKnownHosts/index.vue +14 -11
  266. package/components/form/SecretSelector.vue +18 -2
  267. package/components/form/Security.vue +1 -3
  268. package/components/form/Select.vue +66 -29
  269. package/components/form/SelectOrCreateAuthSecret.vue +6 -3
  270. package/components/form/ServiceNameSelect.vue +2 -5
  271. package/components/form/ServicePorts.vue +149 -75
  272. package/components/form/SimpleSecretSelector.vue +17 -4
  273. package/components/form/Taints.vue +23 -3
  274. package/components/form/Tolerations.vue +13 -9
  275. package/components/form/UnitInput.vue +21 -0
  276. package/components/form/ValueFromResource.vue +136 -110
  277. package/components/form/WorkloadPorts.vue +143 -123
  278. package/components/form/__tests__/ArrayList.test.ts +32 -0
  279. package/components/form/__tests__/ColorInput.test.ts +35 -0
  280. package/components/form/__tests__/KeyValue.test.ts +36 -0
  281. package/components/form/__tests__/LabeledSelect.test.ts +79 -2
  282. package/components/form/__tests__/Labels.test.ts +360 -0
  283. package/components/form/__tests__/MatchExpressions.test.ts +16 -13
  284. package/components/form/__tests__/Networking.test.ts +116 -0
  285. package/components/form/__tests__/SSHKnownHosts.test.ts +11 -2
  286. package/components/form/__tests__/Select.test.ts +37 -1
  287. package/components/form/__tests__/UnitInput.test.ts +23 -1
  288. package/components/form/labeled-select-utils/labeled-select-pagination.ts +3 -38
  289. package/components/formatter/ClusterLink.vue +5 -8
  290. package/components/formatter/Description.vue +30 -0
  291. package/components/formatter/FleetApplicationClustersReady.vue +77 -0
  292. package/components/formatter/FleetApplicationSource.vue +79 -0
  293. package/components/formatter/FleetSummaryGraph.vue +7 -0
  294. package/components/formatter/PodImages.vue +1 -1
  295. package/components/formatter/WorkloadHealthScale.vue +5 -4
  296. package/components/formatter/__tests__/ClusterLink.test.ts +2 -32
  297. package/components/formatter/__tests__/LiveDate.test.ts +10 -2
  298. package/components/google/AccountAccess.vue +209 -0
  299. package/components/google/types/gcp.d.ts +136 -0
  300. package/components/google/types/index.d.ts +101 -0
  301. package/components/google/util/__mocks__/gcp.ts +465 -0
  302. package/components/google/util/formatter.ts +82 -0
  303. package/components/google/util/gcp.ts +134 -0
  304. package/components/google/util/index.d.ts +11 -0
  305. package/components/nav/Favorite.vue +6 -2
  306. package/components/nav/Group.vue +80 -23
  307. package/components/nav/Header.vue +108 -55
  308. package/components/nav/HeaderPageActionMenu.vue +1 -0
  309. package/components/nav/NamespaceFilter.vue +126 -78
  310. package/components/nav/NotificationCenter/Notification.vue +484 -0
  311. package/components/nav/NotificationCenter/NotificationHeader.vue +112 -0
  312. package/components/nav/NotificationCenter/index.vue +148 -0
  313. package/components/nav/TopLevelMenu.helper.ts +55 -34
  314. package/components/nav/TopLevelMenu.vue +73 -25
  315. package/components/nav/Type.vue +62 -14
  316. package/components/nav/WindowManager/ContainerLogs.vue +87 -61
  317. package/components/nav/WindowManager/ContainerLogsActions.vue +76 -0
  318. package/components/nav/WindowManager/index.vue +3 -2
  319. package/components/templates/default.vue +0 -3
  320. package/components/templates/plain.vue +0 -3
  321. package/composables/drawer.ts +26 -0
  322. package/composables/focusTrap.ts +3 -3
  323. package/composables/resources.test.ts +63 -0
  324. package/composables/resources.ts +38 -0
  325. package/composables/useClickOutside.ts +1 -1
  326. package/composables/useI18n.ts +12 -11
  327. package/composables/useIsNewDetailPageEnabled.ts +17 -0
  328. package/config/labels-annotations.js +22 -11
  329. package/config/menuRouteMap.js +10 -0
  330. package/config/pagination-table-headers.js +8 -1
  331. package/config/private-label.js +0 -1
  332. package/config/product/auth.js +33 -7
  333. package/config/product/{cis.js → compliance.js} +23 -26
  334. package/config/product/explorer.js +79 -25
  335. package/config/product/fleet.js +77 -17
  336. package/config/product/manager.js +1 -29
  337. package/config/product/settings.js +39 -18
  338. package/config/query-params.js +16 -1
  339. package/config/roles.ts +2 -1
  340. package/config/router/navigation-guards/authentication.js +51 -2
  341. package/config/router/navigation-guards/index.js +16 -20
  342. package/config/router/routes.js +65 -31
  343. package/config/secret.ts +15 -0
  344. package/config/settings.ts +61 -16
  345. package/config/store.js +2 -0
  346. package/config/system-namespaces.js +1 -1
  347. package/config/table-headers.js +91 -30
  348. package/config/types.js +18 -7
  349. package/config/version.js +1 -1
  350. package/core/plugin-helpers.ts +3 -2
  351. package/core/plugin.ts +32 -7
  352. package/core/types.ts +25 -7
  353. package/detail/catalog.cattle.io.app.vue +5 -1
  354. package/detail/{cis.cattle.io.clusterscan.vue → compliance.cattle.io.clusterscan.vue} +22 -18
  355. package/detail/fleet.cattle.io.bundle.vue +70 -6
  356. package/detail/fleet.cattle.io.cluster.vue +28 -15
  357. package/detail/fleet.cattle.io.gitrepo.vue +11 -2
  358. package/detail/fleet.cattle.io.helmop.vue +157 -0
  359. package/detail/management.cattle.io.fleetworkspace.vue +18 -27
  360. package/detail/management.cattle.io.oidcclient.vue +369 -0
  361. package/detail/namespace.vue +0 -3
  362. package/detail/node.vue +48 -39
  363. package/detail/pod.vue +2 -2
  364. package/detail/provisioning.cattle.io.cluster.vue +16 -50
  365. package/detail/service.vue +10 -2
  366. package/detail/workload/index.vue +48 -39
  367. package/dialog/AddCustomBadgeDialog.vue +17 -10
  368. package/{pages/c/_cluster/uiplugins/AddExtensionRepos.vue → dialog/AddExtensionReposDialog.vue} +72 -42
  369. package/dialog/AddonConfigConfirmationDialog.vue +1 -1
  370. package/dialog/AssignToDialog.vue +176 -0
  371. package/dialog/ChangePasswordDialog.vue +106 -0
  372. package/{pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue → dialog/DeveloperLoadExtensionDialog.vue} +74 -71
  373. package/dialog/DisableAuthProviderDialog.vue +101 -0
  374. package/dialog/DrainNode.vue +1 -1
  375. package/{pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue → dialog/ExtensionCatalogInstallDialog.vue} +100 -88
  376. package/{pages/c/_cluster/uiplugins/CatalogList/CatalogUninstallDialog.vue → dialog/ExtensionCatalogUninstallDialog.vue} +87 -66
  377. package/dialog/FeatureFlagListDialog.vue +288 -0
  378. package/dialog/ForceMachineRemoveDialog.vue +1 -1
  379. package/dialog/GenericPrompt.vue +1 -1
  380. package/dialog/HelmOpForceUpdateDialog.vue +132 -0
  381. package/{components/Import.vue → dialog/ImportDialog.vue} +8 -13
  382. package/{pages/c/_cluster/uiplugins/InstallDialog.vue → dialog/InstallExtensionDialog.vue} +124 -106
  383. package/{components/form/SSHKnownHosts → dialog}/KnownHostsEditDialog.vue +52 -62
  384. package/dialog/MoveNamespaceDialog.vue +157 -0
  385. package/dialog/OidcClientSecretDialog.vue +117 -0
  386. package/dialog/RedeployWorkloadDialog.vue +164 -0
  387. package/dialog/RotateEncryptionKeyDialog.vue +10 -30
  388. package/dialog/ScalePoolDownDialog.vue +1 -1
  389. package/{components/nav/Jump.vue → dialog/SearchDialog.vue} +34 -14
  390. package/{pages/c/_cluster/uiplugins/UninstallDialog.vue → dialog/UninstallExtensionDialog.vue} +67 -58
  391. package/dialog/WechatDialog.vue +57 -0
  392. package/{components/form/SSHKnownHosts → dialog}/__tests__/KnownHostsEditDialog.test.ts +15 -34
  393. package/edit/__tests__/cis.cattle.io.clusterscan.test.ts +3 -3
  394. package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +60 -68
  395. package/edit/__tests__/fleet.cattle.io.helmop.test.ts +224 -0
  396. package/edit/__tests__/service.test.ts +2 -1
  397. package/edit/auth/ldap/__tests__/config.test.ts +14 -0
  398. package/edit/auth/ldap/config.vue +24 -0
  399. package/edit/auth/oidc.vue +159 -93
  400. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  401. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
  402. package/edit/autoscaling.horizontalpodautoscaler/index.vue +7 -2
  403. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  404. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  405. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  406. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  407. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  408. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  409. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  410. package/edit/{cis.cattle.io.clusterscan.vue → compliance.cattle.io.clusterscan.vue} +30 -31
  411. package/edit/{cis.cattle.io.clusterscanbenchmark.vue → compliance.cattle.io.clusterscanbenchmark.vue} +4 -4
  412. package/edit/{cis.cattle.io.clusterscanprofile.vue → compliance.cattle.io.clusterscanprofile.vue} +5 -5
  413. package/edit/configmap.vue +12 -2
  414. package/edit/constraints.gatekeeper.sh.constraint/index.vue +1 -0
  415. package/edit/fleet.cattle.io.gitrepo.vue +70 -256
  416. package/edit/fleet.cattle.io.helmop.vue +786 -0
  417. package/edit/helm.cattle.io.projecthelmchart.vue +1 -0
  418. package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +1 -0
  419. package/edit/logging-flow/index.vue +1 -0
  420. package/edit/logging.banzaicloud.io.output/index.vue +2 -1
  421. package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +5 -6
  422. package/edit/management.cattle.io.fleetworkspace.vue +44 -10
  423. package/edit/management.cattle.io.oidcclient.vue +162 -0
  424. package/edit/management.cattle.io.project.vue +4 -1
  425. package/edit/management.cattle.io.user.vue +17 -4
  426. package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +1 -1
  427. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +5 -0
  428. package/edit/monitoring.coreos.com.prometheusrule/index.vue +1 -0
  429. package/edit/monitoring.coreos.com.receiver/auth.vue +3 -3
  430. package/edit/monitoring.coreos.com.receiver/index.vue +1 -0
  431. package/edit/monitoring.coreos.com.receiver/types/email.vue +1 -1
  432. package/edit/monitoring.coreos.com.route.vue +1 -0
  433. package/edit/namespace.vue +2 -4
  434. package/edit/networking.istio.io.destinationrule/index.vue +4 -1
  435. package/edit/networking.k8s.io.ingress/Certificate.vue +25 -8
  436. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  437. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  438. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  439. package/edit/networking.k8s.io.ingress/__tests__/Certificate.test.ts +37 -0
  440. package/edit/networking.k8s.io.ingress/index.vue +4 -1
  441. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +6 -17
  442. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  443. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +69 -73
  444. package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +10 -16
  445. package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.test.ts +72 -41
  446. package/edit/networking.k8s.io.networkpolicy/__tests__/utils/mock.json +17 -1
  447. package/edit/networking.k8s.io.networkpolicy/index.vue +24 -32
  448. package/edit/node.vue +1 -0
  449. package/edit/persistentvolume/index.vue +7 -2
  450. package/edit/persistentvolumeclaim.vue +2 -0
  451. package/edit/provisioning.cattle.io.cluster/__tests__/DirectoryConfig.test.ts +26 -12
  452. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +69 -2
  453. package/edit/provisioning.cattle.io.cluster/__tests__/utils/rke2-test-data.ts +58 -0
  454. package/edit/provisioning.cattle.io.cluster/index.vue +21 -73
  455. package/edit/provisioning.cattle.io.cluster/rke2.vue +535 -428
  456. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +48 -39
  457. package/edit/provisioning.cattle.io.cluster/tabs/DirectoryConfig.vue +5 -3
  458. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +5 -0
  459. package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +2 -2
  460. package/edit/resources.cattle.io.restore.vue +1 -1
  461. package/edit/secret/basic.vue +1 -0
  462. package/edit/secret/index.vue +129 -17
  463. package/edit/service.vue +21 -30
  464. package/edit/serviceaccount.vue +4 -1
  465. package/edit/storage.k8s.io.storageclass/index.vue +14 -9
  466. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  467. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  468. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  469. package/edit/token.vue +1 -1
  470. package/edit/workload/Job.vue +31 -34
  471. package/edit/workload/Upgrading.vue +5 -5
  472. package/edit/workload/index.vue +32 -32
  473. package/edit/workload/mixins/workload.js +0 -2
  474. package/edit/workload/storage/Mount.vue +1 -0
  475. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  476. package/edit/workload/storage/azureDisk.vue +14 -10
  477. package/edit/workload/storage/azureFile.vue +9 -7
  478. package/edit/workload/storage/csi/index.vue +6 -9
  479. package/edit/workload/storage/emptyDir.vue +7 -5
  480. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  481. package/edit/workload/storage/hostPath.vue +7 -5
  482. package/edit/workload/storage/nfs.vue +8 -6
  483. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  484. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
  485. package/edit/workload/storage/secret.vue +9 -6
  486. package/edit/workload/storage/vsphereVolume.vue +11 -7
  487. package/initialize/app-extended.js +7 -1
  488. package/list/{cis.cattle.io.clusterscan.vue → compliance.cattle.io.clusterscan.vue} +2 -2
  489. package/list/fleet.cattle.io.gitrepo.vue +1 -1
  490. package/list/fleet.cattle.io.helmop.vue +108 -0
  491. package/list/management.cattle.io.feature.vue +4 -288
  492. package/list/management.cattle.io.oidcclient.vue +108 -0
  493. package/list/management.cattle.io.setting.vue +22 -13
  494. package/list/management.cattle.io.user.vue +7 -3
  495. package/list/namespace.vue +6 -2
  496. package/list/node.vue +2 -0
  497. package/list/projectsecret.vue +345 -0
  498. package/list/provisioning.cattle.io.cluster.vue +6 -7
  499. package/list/secret.vue +109 -0
  500. package/list/workload.vue +6 -2
  501. package/machine-config/__tests__/vmwarevsphere.test.ts +5 -7
  502. package/machine-config/amazonec2.vue +3 -24
  503. package/machine-config/components/GCEImage.vue +374 -0
  504. package/machine-config/google.vue +617 -0
  505. package/machine-config/vmwarevsphere.vue +7 -17
  506. package/mixins/__tests__/brand.spec.ts +170 -0
  507. package/mixins/auth-config.js +8 -1
  508. package/mixins/brand.js +33 -17
  509. package/mixins/create-edit-view/impl.js +10 -1
  510. package/mixins/create-edit-view/index.js +5 -0
  511. package/mixins/preset.js +100 -0
  512. package/mixins/resource-fetch-api-pagination.js +73 -44
  513. package/mixins/resource-fetch.js +18 -8
  514. package/mixins/resource-table-watch.js +45 -0
  515. package/mixins/vue-select-overrides.js +1 -4
  516. package/models/__tests__/chart.test.ts +296 -0
  517. package/models/__tests__/fleet.cattle.io.gitrepo.test.ts +1 -1
  518. package/models/__tests__/fleet.cattle.io.helmop.test.ts +224 -0
  519. package/models/__tests__/node.test.ts +7 -63
  520. package/models/__tests__/workload.test.ts +1 -0
  521. package/models/chart.js +157 -2
  522. package/models/cluster/node.js +2 -1
  523. package/models/cluster.js +32 -2
  524. package/models/cluster.x-k8s.io.machinedeployment.js +11 -2
  525. package/models/{cis.cattle.io.clusterscan.js → compliance.cattle.io.clusterscan.js} +8 -8
  526. package/models/{cis.cattle.io.clusterscanbenchmark.js → compliance.cattle.io.clusterscanbenchmark.js} +1 -1
  527. package/models/{cis.cattle.io.clusterscanprofile.js → compliance.cattle.io.clusterscanprofile.js} +5 -5
  528. package/models/{cis.cattle.io.clusterscanreport.js → compliance.cattle.io.clusterscanreport.js} +1 -1
  529. package/models/fleet-application.js +297 -0
  530. package/models/fleet.cattle.io.bundle.js +9 -8
  531. package/models/fleet.cattle.io.cluster.js +21 -4
  532. package/models/fleet.cattle.io.gitrepo.js +46 -382
  533. package/models/fleet.cattle.io.helmop.js +202 -0
  534. package/models/management.cattle.io.authconfig.js +1 -0
  535. package/models/management.cattle.io.cluster.js +0 -20
  536. package/models/management.cattle.io.feature.js +7 -1
  537. package/models/management.cattle.io.fleetworkspace.js +14 -1
  538. package/models/management.cattle.io.node.js +7 -22
  539. package/models/management.cattle.io.nodepool.js +12 -0
  540. package/models/management.cattle.io.oidcclient.js +18 -0
  541. package/models/management.cattle.io.registration.js +3 -0
  542. package/models/management.cattle.io.setting.js +0 -1
  543. package/models/namespace.js +12 -1
  544. package/models/provisioning.cattle.io.cluster.js +79 -115
  545. package/models/secret.js +157 -2
  546. package/models/service.js +28 -9
  547. package/models/storage.k8s.io.storageclass.js +2 -2
  548. package/models/workload.js +91 -51
  549. package/package.json +6 -5
  550. package/pages/about.vue +17 -61
  551. package/pages/account/index.vue +104 -116
  552. package/pages/auth/login.vue +50 -30
  553. package/pages/auth/setup.vue +36 -17
  554. package/pages/auth/verify.vue +13 -1
  555. package/pages/c/_cluster/apps/charts/AddRepoLink.vue +36 -0
  556. package/pages/c/_cluster/apps/charts/AppChartCardFooter.vue +80 -0
  557. package/pages/c/_cluster/apps/charts/AppChartCardSubHeader.vue +57 -0
  558. package/pages/c/_cluster/apps/charts/StatusLabel.vue +33 -0
  559. package/pages/c/_cluster/apps/charts/index.vue +501 -468
  560. package/pages/c/_cluster/apps/charts/install.vue +0 -1
  561. package/pages/c/_cluster/auth/roles/index.vue +56 -5
  562. package/pages/c/_cluster/auth/user.retention/index.vue +87 -78
  563. package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
  564. package/pages/c/_cluster/explorer/EventsTable.vue +1 -1
  565. package/pages/c/_cluster/explorer/index.vue +14 -3
  566. package/pages/c/_cluster/explorer/projectsecret.vue +34 -0
  567. package/pages/c/_cluster/explorer/tools/index.vue +6 -6
  568. package/pages/c/_cluster/explorer/tools/pages/_page.vue +0 -1
  569. package/pages/c/_cluster/fleet/__tests__/index.test.ts +720 -0
  570. package/pages/c/_cluster/fleet/application/_resource/_id.vue +14 -0
  571. package/pages/c/_cluster/fleet/application/_resource/create.vue +14 -0
  572. package/pages/c/_cluster/fleet/application/create.vue +341 -0
  573. package/pages/c/_cluster/fleet/application/index.vue +139 -0
  574. package/pages/c/_cluster/fleet/graph/config.js +277 -0
  575. package/pages/c/_cluster/fleet/index.vue +866 -328
  576. package/pages/c/_cluster/fleet/settings/index.vue +229 -0
  577. package/pages/c/_cluster/longhorn/index.vue +5 -2
  578. package/pages/c/_cluster/settings/banners.vue +230 -103
  579. package/pages/c/_cluster/settings/brand.vue +349 -301
  580. package/pages/c/_cluster/settings/performance.vue +68 -64
  581. package/pages/c/_cluster/uiplugins/CatalogList/index.vue +16 -1
  582. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +2 -2
  583. package/pages/c/_cluster/uiplugins/__tests__/AddExtensionRepos.test.ts +4 -7
  584. package/pages/c/_cluster/uiplugins/index.vue +98 -55
  585. package/pages/explorer/resource/detail/configmap.vue +42 -0
  586. package/pages/explorer/resource/detail/projectsecret.vue +9 -0
  587. package/pages/explorer/resource/detail/secret.vue +63 -0
  588. package/pages/home.vue +61 -109
  589. package/pages/prefs.vue +25 -24
  590. package/pages/support/index.vue +4 -6
  591. package/plugins/clean-html.js +2 -0
  592. package/plugins/dashboard-store/__tests__/actions.test.ts +4 -1
  593. package/plugins/dashboard-store/__tests__/normalize.test.ts +223 -0
  594. package/plugins/dashboard-store/__tests__/resource-class.test.ts +191 -0
  595. package/plugins/dashboard-store/__tests__/utils/normalize-usecases.ts +1526 -0
  596. package/plugins/dashboard-store/actions.js +212 -55
  597. package/plugins/dashboard-store/getters.js +112 -24
  598. package/plugins/dashboard-store/mutations.js +61 -12
  599. package/plugins/dashboard-store/normalize.js +29 -19
  600. package/plugins/dashboard-store/resource-class.js +105 -21
  601. package/plugins/steve/__tests__/getters.test.ts +19 -12
  602. package/plugins/steve/__tests__/steve-class.test.ts +1 -0
  603. package/plugins/steve/__tests__/subscribe.spec.ts +324 -1
  604. package/plugins/steve/actions.js +37 -24
  605. package/plugins/steve/getters.js +47 -12
  606. package/plugins/steve/resourceWatcher.js +10 -3
  607. package/plugins/steve/steve-class.js +5 -0
  608. package/plugins/steve/steve-pagination-utils.ts +225 -43
  609. package/plugins/steve/subscribe.js +418 -53
  610. package/plugins/steve/worker/web-worker.advanced.js +5 -1
  611. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  612. package/rancher-components/BadgeState/BadgeState.vue +33 -52
  613. package/rancher-components/Banner/Banner.test.ts +51 -3
  614. package/rancher-components/Banner/Banner.vue +43 -9
  615. package/rancher-components/Form/Checkbox/Checkbox.test.ts +59 -1
  616. package/rancher-components/Form/Checkbox/Checkbox.vue +27 -9
  617. package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +51 -0
  618. package/rancher-components/Form/LabeledInput/LabeledInput.vue +21 -3
  619. package/rancher-components/Form/Radio/RadioButton.test.ts +36 -1
  620. package/rancher-components/Form/Radio/RadioButton.vue +21 -5
  621. package/rancher-components/Form/Radio/RadioGroup.test.ts +60 -0
  622. package/rancher-components/Form/Radio/RadioGroup.vue +90 -39
  623. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +4 -0
  624. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +22 -1
  625. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +32 -2
  626. package/rancher-components/RcButton/RcButton.vue +1 -1
  627. package/rancher-components/RcDropdown/RcDropdown.test.ts +98 -0
  628. package/rancher-components/RcDropdown/RcDropdown.vue +6 -0
  629. package/rancher-components/RcDropdown/RcDropdownItem.vue +8 -55
  630. package/rancher-components/RcDropdown/RcDropdownItemCheckbox.vue +69 -0
  631. package/rancher-components/RcDropdown/RcDropdownItemSelect.vue +93 -0
  632. package/rancher-components/RcDropdown/index.ts +2 -0
  633. package/rancher-components/RcDropdown/useDropdownContext.ts +21 -0
  634. package/rancher-components/RcDropdown/useDropdownItem.ts +92 -0
  635. package/rancher-components/RcItemCard/RcItemCard.test.ts +189 -0
  636. package/rancher-components/RcItemCard/RcItemCard.vue +430 -0
  637. package/rancher-components/RcItemCard/RcItemCardAction.vue +24 -0
  638. package/rancher-components/RcItemCard/index.ts +2 -0
  639. package/rancher-components/StringList/StringList.vue +1 -1
  640. package/scripts/clean +0 -0
  641. package/scripts/extension/bundle +0 -0
  642. package/scripts/extension/helm/scripts/package +0 -0
  643. package/scripts/extension/helm/scripts/patch +0 -0
  644. package/scripts/extension/helm/scripts/version +0 -0
  645. package/scripts/extension/helmpatch +0 -0
  646. package/scripts/extension/parse-tag-name +0 -0
  647. package/scripts/extension/publish +1 -1
  648. package/scripts/publish-shell.sh +86 -60
  649. package/scripts/serve-pkgs +0 -0
  650. package/scripts/sync-shell-deps +0 -0
  651. package/scripts/typegen.sh +44 -28
  652. package/static/loading-indicator.html +1 -1
  653. package/store/action-menu.js +26 -56
  654. package/store/auth.js +3 -0
  655. package/store/catalog.js +85 -25
  656. package/store/features.js +0 -1
  657. package/store/growl.js +97 -8
  658. package/store/i18n.js +9 -5
  659. package/store/index.js +44 -14
  660. package/store/notifications.ts +426 -0
  661. package/store/prefs.js +11 -5
  662. package/store/slideInPanel.ts +6 -0
  663. package/store/type-map.js +35 -18
  664. package/store/type-map.utils.ts +49 -6
  665. package/store/uiplugins.ts +15 -1
  666. package/types/fleet.d.ts +60 -1
  667. package/types/kube/kube-api.ts +34 -0
  668. package/types/notifications/index.ts +74 -0
  669. package/types/resources/fleet.d.ts +43 -0
  670. package/types/resources/pod-security-admission.ts +36 -0
  671. package/types/resources/settings.d.ts +107 -0
  672. package/types/resources/userPreferences.d.ts +13 -0
  673. package/types/shell/index.d.ts +944 -744
  674. package/types/store/dashboard-store.types.ts +57 -4
  675. package/types/store/pagination.types.ts +41 -9
  676. package/types/store/subscribe.types.ts +50 -0
  677. package/utils/__mocks__/tabbable.js +13 -0
  678. package/utils/__tests__/back-off.test.ts +354 -0
  679. package/utils/__tests__/create-yaml.test.ts +235 -0
  680. package/utils/__tests__/fleet.test.ts +148 -0
  681. package/utils/__tests__/kontainer.test.ts +19 -0
  682. package/utils/__tests__/object.test.ts +54 -1
  683. package/utils/__tests__/string.test.ts +273 -1
  684. package/utils/__tests__/time.test.ts +31 -0
  685. package/utils/auth.js +41 -6
  686. package/utils/back-off.ts +176 -0
  687. package/utils/cluster.js +24 -20
  688. package/utils/create-yaml.js +103 -9
  689. package/utils/crypto/encryption.ts +103 -0
  690. package/utils/cspAdaptor.ts +51 -0
  691. package/utils/error.js +7 -6
  692. package/utils/errorTranslate.json +366 -2
  693. package/utils/fleet-types.ts +0 -0
  694. package/utils/fleet.ts +204 -74
  695. package/utils/grafana.js +1 -0
  696. package/utils/kontainer.ts +3 -5
  697. package/utils/object.js +36 -12
  698. package/utils/pagination-utils.ts +50 -3
  699. package/utils/pagination-wrapper.ts +132 -50
  700. package/utils/perf-setting.utils.ts +28 -0
  701. package/utils/release-notes.ts +48 -0
  702. package/utils/selector-typed.ts +210 -0
  703. package/utils/selector.js +29 -6
  704. package/utils/settings.ts +4 -1
  705. package/utils/string.js +24 -0
  706. package/utils/style.ts +39 -0
  707. package/utils/{time.js → time.ts} +25 -6
  708. package/utils/uiplugins.ts +41 -8
  709. package/utils/v-sphere.ts +5 -1
  710. package/utils/validators/formRules/__tests__/index.test.ts +76 -6
  711. package/utils/validators/formRules/index.ts +99 -4
  712. package/utils/window.js +11 -7
  713. package/vue.config.js +0 -5
  714. package/.DS_Store +0 -0
  715. package/components/AssignTo.vue +0 -199
  716. package/components/DisableAuthProviderModal.vue +0 -115
  717. package/components/MoveModal.vue +0 -167
  718. package/components/PromptChangePassword.vue +0 -123
  719. package/components/__tests__/ApplicationCard.test.ts +0 -27
  720. package/components/cards/ApplicationCard.vue +0 -145
  721. package/components/fleet/FleetBundleResources.vue +0 -86
  722. package/components/fleet/ForceDirectedTreeChart/chartIcons.js +0 -17
  723. package/components/formatter/RKETemplateName.vue +0 -37
  724. package/components/rancherResourceDetail/Masthead.vue +0 -769
  725. package/components/rancherResourceDetail/__tests__/Masthead.test.ts +0 -65
  726. package/components/rancherResourceList/Masthead-btn.vue +0 -225
  727. package/components/rancherResourceList/Masthead.vue +0 -375
  728. package/components/rancherResourceList/ResourceLoadingIndicator.vue +0 -140
  729. package/components/rancherResourceList/index.vue +0 -307
  730. package/components/rancherResourceList/resource-list.config.js +0 -7
  731. package/components/rancherResourceTable.vue +0 -783
  732. package/components/rancherSortableTable/THead.vue +0 -561
  733. package/components/rancherSortableTable/actions.js +0 -153
  734. package/components/rancherSortableTable/advanced-filtering.js +0 -272
  735. package/components/rancherSortableTable/debug.js +0 -117
  736. package/components/rancherSortableTable/filtering.js +0 -290
  737. package/components/rancherSortableTable/grouping.js +0 -48
  738. package/components/rancherSortableTable/index.vue +0 -2712
  739. package/components/rancherSortableTable/paging.js +0 -155
  740. package/components/rancherSortableTable/selection.js +0 -629
  741. package/components/rancherSortableTable/sortable-config.ts +0 -4
  742. package/components/rancherSortableTable/sorting.js +0 -129
  743. package/config/product/legacy.js +0 -62
  744. package/config/secret.js +0 -14
  745. package/dialog/SaveAsRKETemplateDialog.vue +0 -139
  746. package/models/etcdbackup.js +0 -45
  747. package/pages/auth copy/login.vue +0 -595
  748. package/pages/auth copy/logout.vue +0 -47
  749. package/pages/auth copy/setup.vue +0 -523
  750. package/pages/auth copy/verify.vue +0 -203
  751. package/pages/c/_cluster/fleet/GitRepoGraphConfig.js +0 -249
  752. package/pages/c/_cluster/legacy/pages/_page.vue +0 -29
  753. package/pages/c/_cluster/legacy/project/_page.vue +0 -57
  754. package/pages/c/_cluster/legacy/project/index.vue +0 -32
  755. package/pages/c/_cluster/legacy/project/pipelines.vue +0 -96
  756. package/types/cloud-shell/index.d.ts +0 -11014
@@ -1,783 +0,0 @@
1
- <script>
2
- import { mapGetters } from 'vuex';
3
- import { get } from '@shell/utils/object';
4
- import { mapPref, GROUP_RESOURCES } from '@shell/store/prefs';
5
- import ButtonGroup from '@shell/components/ButtonGroup';
6
- import SortableTable from '@shell/components/rancherSortableTable';
7
- import MastheadBtn from '@shell/components/rancherResourceList/Masthead-btn.vue';
8
- import { NAMESPACE, AGE } from '@shell/config/table-headers';
9
- import { findBy } from '@shell/utils/array';
10
- import { ExtensionPoint, TableColumnLocation } from '@shell/core/types';
11
- import { getApplicableExtensionEnhancements } from '@shell/core/plugin-helpers';
12
-
13
- // Default group-by in the case the group stored in the preference does not apply
14
- const DEFAULT_GROUP = 'namespace';
15
-
16
- export const defaultTableSortGenerationFn = (schema, $store) => {
17
- if ( !schema ) {
18
- return null;
19
- }
20
-
21
- const resource = schema.id;
22
- let sortKey = resource;
23
-
24
- const inStore = $store.getters['currentStore'](resource);
25
- const generation = $store.getters[`${ inStore }/currentGeneration`]?.(resource);
26
-
27
- if ( generation ) {
28
- sortKey += `/${ generation }`;
29
- }
30
-
31
- const nsFilterKey = $store.getters['activeNamespaceCacheKey'];
32
-
33
- if ( nsFilterKey ) {
34
- return `${ sortKey }/${ nsFilterKey }`;
35
- }
36
-
37
- // covers case where we have no current cluster's ns cache
38
- return sortKey;
39
- };
40
-
41
- export default {
42
-
43
- name: 'ResourceTable',
44
-
45
- emits: ['clickedActionButton'],
46
-
47
- components: { ButtonGroup, SortableTable, MastheadBtn },
48
-
49
- props: {
50
- schema: {
51
- type: Object,
52
- default: null,
53
- },
54
-
55
- schemaBtn: {
56
- type: Object,
57
- default: null,
58
- },
59
-
60
- rows: {
61
- type: Array,
62
- required: true
63
- },
64
-
65
- loading: {
66
- type: Boolean,
67
- required: false
68
- },
69
-
70
- altLoading: {
71
- type: Boolean,
72
- required: false
73
- },
74
-
75
- keyField: {
76
- // Field that is unique for each row.
77
- type: String,
78
- default: '_key',
79
- },
80
-
81
- headers: {
82
- type: Array,
83
- default: null,
84
- },
85
-
86
- namespaced: {
87
- type: Boolean,
88
- default: null, // Automatic from schema
89
- },
90
-
91
- search: {
92
- // Show search input to filter rows
93
- type: Boolean,
94
- default: true
95
- },
96
-
97
- tableActions: {
98
- // Show bulk table actions
99
- type: [Boolean, null],
100
- default: null
101
- },
102
-
103
- pagingLabel: {
104
- type: String,
105
- default: 'sortableTable.paging.resource',
106
- },
107
-
108
- /**
109
- * Additional params to pass to the pagingLabel translation
110
- */
111
- pagingParams: {
112
- type: Object,
113
- default: null,
114
- },
115
-
116
- rowActions: {
117
- type: Boolean,
118
- default: true,
119
- },
120
-
121
- /**
122
- * Field to group rows by, row[groupBy] must be something that can be a map key
123
- */
124
- groupBy: {
125
- type: String,
126
- default: null
127
- },
128
-
129
- /**
130
- * Override any product based group options
131
- */
132
- groupOptions: {
133
- type: Array,
134
- default: null
135
- },
136
-
137
- groupable: {
138
- type: Boolean,
139
- default: null, // Null: auto based on namespaced and type custom groupings
140
- },
141
-
142
- /**
143
- * If the current preference for group isn't applicable, or not set, use this instead
144
- */
145
- groupDefault: {
146
- type: String,
147
- default: DEFAULT_GROUP,
148
- },
149
-
150
- groupTooltip: {
151
- type: String,
152
- default: 'resourceTable.groupBy.namespace',
153
- },
154
-
155
- overflowX: {
156
- type: Boolean,
157
- default: false
158
- },
159
- overflowY: {
160
- type: Boolean,
161
- default: false
162
- },
163
- sortGenerationFn: {
164
- type: Function,
165
- default: null,
166
- },
167
- getCustomDetailLink: {
168
- type: Function,
169
- default: null
170
- },
171
- ignoreFilter: {
172
- type: Boolean,
173
- default: false
174
- },
175
- hasAdvancedFiltering: {
176
- type: Boolean,
177
- default: false
178
- },
179
- advFilterHideLabelsAsCols: {
180
- type: Boolean,
181
- default: false
182
- },
183
- advFilterPreventFilteringLabels: {
184
- type: Boolean,
185
- default: false
186
- },
187
- /**
188
- * Allows for the usage of a query param to work for simple filtering (q)
189
- */
190
- useQueryParamsForSimpleFiltering: {
191
- type: Boolean,
192
- default: false
193
- },
194
- /**
195
- * Manual force the update of live and delayed cells. Change this number to kick off the update
196
- */
197
- forceUpdateLiveAndDelayed: {
198
- type: Number,
199
- default: 0
200
- },
201
-
202
- externalPaginationEnabled: {
203
- type: Boolean,
204
- default: false
205
- },
206
-
207
- externalPaginationResult: {
208
- type: Object,
209
- default: null
210
- },
211
-
212
- rowsPerPage: {
213
- type: Number,
214
- default: null, // Default comes from the user preference
215
- },
216
- searchPlaceholder: {
217
- // search框内的输入提示
218
- type: String,
219
- default: '名称'
220
- },
221
-
222
- resource: {
223
- type: String,
224
- required: true,
225
- },
226
-
227
- typeDisplay: {
228
- type: String,
229
- default: null,
230
- },
231
- isCreatable: {
232
- type: Boolean,
233
- default: null,
234
- },
235
- isYamlCreatable: {
236
- type: Boolean,
237
- default: null,
238
- },
239
- createLocation: {
240
- type: Object,
241
- default: null,
242
- },
243
- yamlCreateLocation: {
244
- type: Object,
245
- default: null,
246
- },
247
- createButtonLabel: {
248
- type: String,
249
- default: null
250
- },
251
- /**
252
- * Inherited global identifier prefix for tests
253
- * Define a term based on the parent component to avoid conflicts on multiple components
254
- */
255
- componentTestid: {
256
- type: String,
257
- default: 'masthead'
258
- },
259
-
260
- mainButtonVisible: {
261
- type: Boolean,
262
- default: false
263
- },
264
- },
265
-
266
- data() {
267
- // Confirm which store we're in, if schema isn't available we're probably showing a list with different types
268
- const inStore = this.schema?.id ? this.$store.getters['currentStore'](this.schema.id) : undefined;
269
-
270
- return {
271
- inStore,
272
- /**
273
- * Override the sortGenerationFn given changes in the rows we pass through to sortable table
274
- *
275
- * Primary purpose is to directly connect an iteration of `rows` with a sortGeneration string. This avoids
276
- * reactivity issues where `rows` hasn't yet changed but something like workspaces has (stale values stored against fresh key)
277
- */
278
- sortGeneration: undefined
279
- };
280
- },
281
-
282
- watch: {
283
- filteredRows: {
284
- handler() {
285
- // This is only prevalent in fleet world and the workspace switcher
286
- // - it's singular (a --> b --> c) instead of namespace switchers additive (a --> a+b --> a)
287
- // - this means it's much more likely to switch between resource sets containing the same mount of rows
288
- //
289
- if (this.currentProduct.showWorkspaceSwitcher) {
290
- this.sortGeneration = this.safeSortGenerationFn(this.schema, this.$store);
291
- }
292
- },
293
- immediate: true
294
- }
295
- },
296
-
297
- computed: {
298
- options() {
299
- return this.$store.getters[`type-map/optionsFor`](this.schema, this.externalPaginationEnabled);
300
- },
301
-
302
- _listGroupMapped() {
303
- return this.options?.listGroups?.reduce((acc, grp) => {
304
- acc[grp.value] = grp;
305
-
306
- return acc;
307
- }, {});
308
- },
309
-
310
- _mandatorySort() {
311
- return this.options?.listMandatorySort;
312
- },
313
-
314
- ...mapGetters(['currentProduct']),
315
-
316
- isNamespaced() {
317
- if ( this.namespaced !== null ) {
318
- return this.namespaced;
319
- }
320
-
321
- return !!get( this.schema, 'attributes.namespaced');
322
- },
323
-
324
- showNamespaceColumn() {
325
- const groupNamespaces = this.group === 'namespace';
326
- const out = !this.showGrouping || !groupNamespaces;
327
-
328
- return out;
329
- },
330
-
331
- _showBulkActions() {
332
- if (this.tableActions !== null) {
333
- return this.tableActions;
334
- } else if (this.schema) {
335
- const hideTableActions = this.$store.getters['type-map/hideBulkActionsFor'](this.schema);
336
-
337
- return !hideTableActions;
338
- }
339
-
340
- return false;
341
- },
342
-
343
- _headers() {
344
- let headers;
345
- const showNamespace = this.showNamespaceColumn;
346
-
347
- if ( this.headers ) {
348
- headers = this.headers.slice();
349
- } else {
350
- headers = this.$store.getters['type-map/headersFor'](this.schema, this.externalPaginationEnabled);
351
- }
352
-
353
- // add custom table columns provided by the extensions ExtensionPoint.TABLE_COL hook
354
- // gate it so that we prevent errors on older versions of dashboard
355
- if (this.$store.$plugin?.getUIConfig) {
356
- const extensionCols = getApplicableExtensionEnhancements(this, ExtensionPoint.TABLE_COL, TableColumnLocation.RESOURCE, this.$route);
357
-
358
- // Try and insert the columns before the Age column
359
- let insertPosition = headers.length;
360
-
361
- if (headers.length > 0) {
362
- const ageColIndex = headers.findIndex((h) => h.name === AGE.name);
363
-
364
- if (ageColIndex >= 0) {
365
- insertPosition = ageColIndex;
366
- } else {
367
- // we've found some labels with ' ', which isn't necessarily empty (explore action/button)
368
- // if we are to add cols, let's push them before these so that the UI doesn't look weird
369
- const lastViableColIndex = headers.findIndex((h) => (!h.label || !h.label?.trim()) && (!h.labelKey || !h.labelKey?.trim()));
370
-
371
- if (lastViableColIndex >= 0) {
372
- insertPosition = lastViableColIndex;
373
- }
374
- }
375
- }
376
-
377
- // adding extension defined cols to the correct header config
378
- extensionCols.forEach((col) => {
379
- // we need the 'value' prop to be populated in order for the rows to show the values
380
- if (!col.value && col.getValue) {
381
- col.value = col.getValue;
382
- }
383
- headers.splice(insertPosition, 0, col);
384
- });
385
- }
386
-
387
- // If only one namespace is selected, hide the namespace column
388
- if ( !showNamespace ) {
389
- const idx = headers.findIndex((header) => header.name === NAMESPACE.name);
390
-
391
- if ( idx >= 0 ) {
392
- headers.splice(idx, 1);
393
- }
394
- }
395
-
396
- // If we are grouping by a custom group, it may specify that we hide a specific column
397
- const custom = this._listGroupMapped?.[this.group];
398
-
399
- let hideColumn;
400
-
401
- if (custom?.hideColumn) {
402
- hideColumn = custom.hideColumn;
403
- } else {
404
- const componentCustom = this.groupOptions?.find((go) => go.value === this.group);
405
-
406
- hideColumn = componentCustom?.hideColumn;
407
- }
408
-
409
- if (hideColumn) {
410
- const idx = headers.findIndex((header) => header.name === hideColumn);
411
-
412
- if ( idx >= 0 ) {
413
- headers.splice(idx, 1);
414
- }
415
- }
416
-
417
- return headers;
418
- },
419
-
420
- /**
421
- * Take rows and filter out entries given the namespace filter
422
- */
423
- filteredRows() {
424
- const isAll = this.$store.getters['isAllNamespaces'];
425
-
426
- // Do we need to filter by namespace like things?
427
- if (
428
- !this.isNamespaced || // Resource type isn't namespaced
429
- this.ignoreFilter || // Component owner strictly states no filtering
430
- this.externalPaginationEnabled ||
431
- (isAll && !this.currentProduct?.hideSystemResources) || // Need all
432
- (this.inStore ? this.$store.getters[`${ this.inStore }/haveNamespace`](this.schema.id)?.length : false)// Store reports type has namespace filter, so rows already contain the correctly filtered resources
433
- ) {
434
- return this.rows || [];
435
- }
436
-
437
- const includedNamespaces = this.$store.getters['namespaces']();
438
-
439
- // Shouldn't happen, but does for resources like management.cattle.io.preference
440
- if (!this.rows) {
441
- return [];
442
- }
443
-
444
- const haveAllNamespace = this.$store.getters['haveAllNamespace'];
445
-
446
- return this.rows.filter((row) => {
447
- if (this.currentProduct?.hideSystemResources && this.isNamespaced) {
448
- return !!includedNamespaces[row.metadata.namespace] && !row.isSystemResource;
449
- } else if (!this.isNamespaced) {
450
- return true;
451
- } else if (haveAllNamespace) {
452
- // `rows` only contains resource from a single namespace
453
- return true;
454
- } else {
455
- return !!includedNamespaces[row.metadata.namespace];
456
- }
457
- });
458
- },
459
-
460
- _group: mapPref(GROUP_RESOURCES),
461
-
462
- // The group stored in the preference (above) might not be valid for this resource table - so ensure we
463
- // choose a group that is applicable (the default)
464
- // This saves us from having to store a group preference per resource type - given that custom groupings aer not used much
465
- // and it feels like a good UX to be able to keep the namespace/flat grouping across tables
466
- group: {
467
- get() {
468
- // Check group is valid
469
- const exists = this._groupOptions.find((g) => g.value === this._group);
470
-
471
- if (!exists) {
472
- // Attempt to find the default option in available options...
473
- // if not use the first value in the options collection...
474
- // and if not that just fall back to the default
475
- if (this._groupOptions.find((g) => g.value === this.groupDefault)) {
476
- return this.groupDefault;
477
- }
478
-
479
- return this._groupOptions[0]?.value || this.groupDefault || DEFAULT_GROUP;
480
- }
481
-
482
- return this._group;
483
- },
484
- set(value) {
485
- console.log('_group:===='+value);
486
-
487
- this._group = value;
488
- }
489
- },
490
-
491
- showGrouping() {
492
- if ( this.groupable === null ) {
493
- const namespaceGroupable = this.$store.getters['isMultipleNamespaces'] && this.isNamespaced;
494
- const customGroupable = !!this.options?.listGroups?.length;
495
-
496
- // sshkey去掉分组按钮
497
- if(this.parsedPagingParams.singularLabel === 'SSH Key' || this.parsedPagingParams.singularLabel === '负载均衡器'){
498
- return false
499
- }
500
-
501
- return namespaceGroupable || customGroupable || this.groupOptions?.length;
502
- }
503
- return this.groupable || false;
504
- },
505
-
506
- computedGroupBy() {
507
- // If we're not showing grouping options we shouldn't have a group by property
508
- if (!this.showGrouping) {
509
- return null;
510
- }
511
-
512
- if ( this.groupBy ) {
513
- // This probably comes from the type-map config for the resource (see ResourceList)
514
- return this.groupBy;
515
- }
516
-
517
- if ( this.group === 'namespace' ) {
518
- // This switches to group rows by a key which is the label for the group (??)
519
- return 'groupByLabel';
520
- }
521
-
522
- const custom = this._listGroupMapped?.[this.group];
523
-
524
- if (custom?.field) {
525
- // Override the normal filtering
526
- return custom.field;
527
- }
528
-
529
- const componentCustom = this.groupOptions?.find((go) => go.value === this.group);
530
-
531
- if (componentCustom?.field) {
532
- return componentCustom.field;
533
- }
534
-
535
- return null;
536
- },
537
-
538
- _groupOptions() {
539
- if (this.groupOptions) {
540
- return this.groupOptions;
541
- }
542
-
543
- // Ignore the defaults below, we have an override set of groups
544
- // REPLACE (instead of SUPPLEMENT) defaults with listGroups (given listGroupsWillOverride is true)
545
- if (this.options?.listGroupsWillOverride && !!this.options?.listGroups?.length) {
546
- return this.options?.listGroups;
547
- }
548
-
549
- const standard = [
550
- {
551
- tooltipKey: 'resourceTable.groupBy.none',
552
- icon: 'icon-list-flat',
553
- value: 'none',
554
- }
555
- ];
556
-
557
- if (!this.options?.hiddenNamespaceGroupButton) {
558
- standard.push( {
559
- tooltipKey: this.groupTooltip,
560
- icon: 'icon-folder',
561
- value: 'namespace',
562
- });
563
- }
564
-
565
- // SUPPLEMENT (instead of REPLACE) defaults with listGroups (given listGroupsWillOverride is false)
566
- if (!!this.options?.listGroups?.length) {
567
- return standard.concat(this.options.listGroups);
568
- }
569
-
570
- return standard;
571
- },
572
-
573
- parsedPagingParams() {
574
- if (this.pagingParams) {
575
- return this.pagingParams;
576
- }
577
-
578
- if ( !this.schema ) {
579
- return {
580
- singularLabel: '',
581
- pluralLabel: ''
582
- };
583
- }
584
-
585
- return {
586
- singularLabel: this.$store.getters['type-map/labelFor'](this.schema),
587
- pluralLabel: this.$store.getters['type-map/labelFor'](this.schema, 99),
588
- };
589
- },
590
-
591
- },
592
-
593
- methods: {
594
- keyAction(action) {
595
- const table = this.$refs.table;
596
-
597
- if ( !table ) {
598
- return;
599
- }
600
-
601
- const selection = table.selectedRows;
602
-
603
- if ( action === 'remove' ) {
604
- const act = findBy(table.availableActions, 'action', 'promptRemove');
605
-
606
- if ( act ) {
607
- table.setBulkActionOfInterest(act);
608
- table.applyTableAction(act);
609
- }
610
-
611
- return;
612
- }
613
-
614
- if ( selection.length !== 1 ) {
615
- return;
616
- }
617
-
618
- switch ( action ) {
619
- case 'detail':
620
- selection[0].goToDetail();
621
- break;
622
- case 'edit':
623
- selection[0].goToEdit();
624
- break;
625
- case 'yaml':
626
- selection[0].goToViewYaml();
627
- break;
628
- }
629
- },
630
-
631
- clearSelection() {
632
- this.$refs.table.clearSelection();
633
- },
634
-
635
- safeSortGenerationFn() {
636
- if (this.sortGenerationFn) {
637
- return this.sortGenerationFn(this.schema, this.$store);
638
- }
639
-
640
- return defaultTableSortGenerationFn(this.schema, this.$store);
641
- },
642
-
643
- handleActionButtonClick(event) {
644
- this.$emit('clickedActionButton', event);
645
- },
646
-
647
- handleEnterKeyPress(event) {
648
- if (event.key === 'Enter') {
649
- this.keyAction('detail');
650
- }
651
- }
652
- },
653
- };
654
- </script>
655
-
656
- <template>
657
- <SortableTable
658
- ref="table"
659
- v-bind="$attrs"
660
- :headers="_headers"
661
- :rows="filteredRows"
662
- :loading="loading"
663
- :search-placeholder="searchPlaceholder"
664
- :alt-loading="altLoading"
665
- :group-by="computedGroupBy"
666
- :group="group"
667
- :group-options="_groupOptions"
668
- :search="search"
669
- :paging="true"
670
- :paging-params="parsedPagingParams"
671
- :paging-label="pagingLabel"
672
- :rows-per-page="rowsPerPage"
673
- :row-actions="rowActions"
674
- :table-actions="_showBulkActions"
675
- :overflow-x="overflowX"
676
- :overflow-y="overflowY"
677
- :get-custom-detail-link="getCustomDetailLink"
678
- :has-advanced-filtering="hasAdvancedFiltering"
679
- :adv-filter-hide-labels-as-cols="advFilterHideLabelsAsCols"
680
- :adv-filter-prevent-filtering-labels="advFilterPreventFilteringLabels"
681
- :key-field="keyField"
682
- :sortGeneration="sortGeneration"
683
- :sort-generation-fn="safeSortGenerationFn"
684
- :use-query-params-for-simple-filtering="useQueryParamsForSimpleFiltering"
685
- :force-update-live-and-delayed="forceUpdateLiveAndDelayed"
686
- :external-pagination-enabled="externalPaginationEnabled"
687
- :external-pagination-result="externalPaginationResult"
688
- :mandatory-sort="_mandatorySort"
689
- @clickedActionButton="handleActionButtonClick"
690
- @group-value-change="group = $event"
691
- @enter="handleEnterKeyPress"
692
- >
693
-
694
- <template #search-main-button>
695
- <MastheadBtn
696
- v-if="mainButtonVisible"
697
- :schema="schemaBtn"
698
- :resource="resource"
699
- :create-button-label="createButtonLabel"
700
- :yaml-create-button-label="yamlCreateLocation"
701
- :create-location="createLocation"
702
- :is-yaml-creatable="isYamlCreatable"
703
- :is-creatable="isCreatable"
704
- :type-display="typeDisplay"
705
- :component-testid="componentTestid"
706
- >
707
-
708
- <template #extraActions>
709
- <slot name="extraActions" />
710
- </template>
711
-
712
- <template #createButton>
713
- <slot name="createButton" />
714
- </template>
715
-
716
- </ MastheadBtn>
717
- </template>
718
-
719
- <template
720
- v-if="showGrouping && _groupOptions.length > 1"
721
- #header-middle
722
- >
723
- <slot name="more-header-middle" />
724
-
725
- <ButtonGroup
726
- v-model:value="group"
727
- :options="_groupOptions"
728
- v-if="parsedPagingParams.singularLabel !== 'PCI设备'"
729
- />
730
- </template>
731
-
732
- <template
733
- v-if="showGrouping"
734
- #header-right
735
- >
736
- <slot name="header-right" />
737
- </template>
738
-
739
- <template #group-by="{group: thisGroup}">
740
- <div
741
- v-clean-html="thisGroup.ref"
742
- class="group-tab"
743
- />
744
- </template>
745
-
746
- <!-- Pass down templates provided by the caller -->
747
- <template
748
- v-for="(_, slot) of $slots"
749
- :key="slot"
750
- v-slot:[slot]="scope"
751
- >
752
- <slot
753
- :name="slot"
754
- v-bind="scope"
755
- />
756
- </template>
757
-
758
- <template #shortkeys>
759
- <button
760
- v-shortkey.once="['e']"
761
- class="hide"
762
- @shortkey="keyAction('edit')"
763
- />
764
- <!-- <button
765
- v-shortkey.once="['y']"
766
- class="hide"
767
- @shortkey="keyAction('yaml')"
768
- /> -->
769
- <button
770
- v-if="_showBulkActions"
771
- v-shortkey.once="['del']"
772
- class="hide"
773
- @shortkey="keyAction('remove')"
774
- />
775
- <button
776
- v-if="_showBulkActions"
777
- v-shortkey.once="['backspace']"
778
- class="hide"
779
- @shortkey="keyAction('remove')"
780
- />
781
- </template>
782
- </SortableTable>
783
- </template>