@rancher/shell 3.0.0-rc.2 → 3.0.0-rc.4

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 (323) hide show
  1. package/assets/styles/base/_variables.scss +12 -4
  2. package/assets/styles/global/_layout.scss +10 -1
  3. package/assets/styles/global/_tooltip.scss +13 -1
  4. package/assets/translations/en-us.yaml +62 -26
  5. package/assets/translations/zh-hans.yaml +6 -5
  6. package/chart/istio.vue +2 -0
  7. package/chart/monitoring/ClusterSelector.vue +2 -0
  8. package/chart/monitoring/StorageClassSelector.vue +4 -1
  9. package/chart/monitoring/index.vue +2 -0
  10. package/chart/rancher-backup/S3.vue +2 -0
  11. package/chart/rancher-backup/index.vue +2 -0
  12. package/cloud-credential/aws.vue +2 -0
  13. package/cloud-credential/azure.vue +2 -0
  14. package/cloud-credential/digitalocean.vue +2 -0
  15. package/cloud-credential/gcp.vue +2 -0
  16. package/cloud-credential/generic.vue +2 -0
  17. package/cloud-credential/harvester.vue +2 -0
  18. package/cloud-credential/linode.vue +2 -0
  19. package/cloud-credential/pnap.vue +2 -0
  20. package/cloud-credential/s3.vue +2 -0
  21. package/cloud-credential/vmwarevsphere.vue +2 -0
  22. package/components/ActionDropdown.vue +1 -1
  23. package/components/ActionMenu.vue +4 -1
  24. package/components/AppModal.vue +4 -1
  25. package/components/ButtonDropdown.vue +3 -0
  26. package/components/ButtonGroup.vue +2 -0
  27. package/components/ButtonMultiAction.vue +41 -0
  28. package/components/Carousel.vue +3 -0
  29. package/components/CodeMirror.vue +88 -71
  30. package/components/Collapse.vue +4 -1
  31. package/components/CollapsibleCard.vue +4 -1
  32. package/components/ContainerResourceLimit.vue +2 -0
  33. package/components/CopyCode.vue +8 -4
  34. package/components/CopyToClipboardText.vue +2 -0
  35. package/components/CruResource.vue +61 -61
  36. package/components/CruResourceFooter.vue +2 -0
  37. package/components/Dialog.vue +2 -0
  38. package/components/DisableAuthProviderModal.vue +4 -1
  39. package/components/EmberPage.vue +2 -0
  40. package/components/ExplorerProjectsNamespaces.vue +11 -8
  41. package/components/GlobalRoleBindings.vue +2 -0
  42. package/components/Import.vue +2 -1
  43. package/components/InputOrDisplay.vue +23 -18
  44. package/components/Loading.vue +4 -1
  45. package/components/LocaleSelector.vue +4 -2
  46. package/components/Markdown.vue +2 -0
  47. package/components/ModalWithCard.vue +2 -0
  48. package/components/MoveModal.vue +2 -0
  49. package/components/PodSecurityAdmission.vue +2 -0
  50. package/components/Questions/Array.vue +2 -0
  51. package/components/Questions/Boolean.vue +2 -0
  52. package/components/Questions/CloudCredential.vue +2 -0
  53. package/components/Questions/Enum.vue +2 -0
  54. package/components/Questions/Float.vue +2 -0
  55. package/components/Questions/Int.vue +2 -0
  56. package/components/Questions/QuestionMap.vue +4 -1
  57. package/components/Questions/Radio.vue +2 -0
  58. package/components/Questions/Reference.vue +2 -0
  59. package/components/Questions/String.vue +2 -0
  60. package/components/Questions/Yaml.vue +2 -0
  61. package/components/Questions/index.vue +2 -0
  62. package/components/ResourceCancelModal.vue +2 -0
  63. package/components/ResourceDetail/Masthead.vue +4 -3
  64. package/components/ResourceDetail/index.vue +17 -15
  65. package/components/ResourceTable.vue +2 -0
  66. package/components/ResourceYaml.vue +2 -0
  67. package/components/SelectIconGrid.vue +2 -0
  68. package/components/SimpleBox.vue +2 -0
  69. package/components/SortableTable/THead.vue +2 -0
  70. package/components/SortableTable/index.vue +17 -20
  71. package/components/StatusTable.vue +2 -0
  72. package/components/Tabbed/Tab.vue +2 -0
  73. package/components/Tabbed/index.vue +2 -0
  74. package/components/Wizard.vue +4 -0
  75. package/components/YamlEditor.vue +3 -1
  76. package/components/__tests__/ButtonMultiAction.test.ts +31 -0
  77. package/components/__tests__/ContainerResourceLimit.test.ts +35 -0
  78. package/components/auth/RoleDetailEdit.vue +2 -0
  79. package/components/auth/SelectPrincipal.vue +3 -1
  80. package/components/auth/login/ldap.vue +2 -0
  81. package/components/fleet/FleetStatus.vue +2 -2
  82. package/components/form/ArrayList.vue +16 -1
  83. package/components/form/ArrayListSelect.vue +2 -0
  84. package/components/form/ChangePassword.vue +2 -0
  85. package/components/form/ColorInput.vue +2 -0
  86. package/components/form/Command.vue +2 -0
  87. package/components/form/FileImageSelector.vue +2 -0
  88. package/components/form/FileSelector.vue +2 -0
  89. package/components/form/Footer.vue +2 -0
  90. package/components/form/GitPicker.vue +1 -0
  91. package/components/form/HealthCheck.vue +5 -3
  92. package/components/form/HookOption.vue +22 -18
  93. package/components/form/InputWithSelect.vue +3 -1
  94. package/components/form/KeyValue.vue +2 -0
  95. package/components/form/LabeledSelect.vue +13 -3
  96. package/components/form/Labels.vue +11 -13
  97. package/components/form/LifecycleHooks.vue +2 -0
  98. package/components/form/MatchExpressions.vue +2 -0
  99. package/components/form/Members/ClusterPermissionsEditor.vue +2 -0
  100. package/components/form/Members/MembershipEditor.vue +2 -0
  101. package/components/form/NameNsDescription.vue +4 -1
  102. package/components/form/Networking.vue +2 -0
  103. package/components/form/NodeAffinity.vue +4 -1
  104. package/components/form/Password.vue +2 -0
  105. package/components/form/PlusMinus.vue +2 -0
  106. package/components/form/PodAffinity.vue +4 -1
  107. package/components/form/Ports.vue +2 -0
  108. package/components/form/Probe.vue +8 -4
  109. package/components/form/ResourceQuota/NamespaceRow.vue +2 -0
  110. package/components/form/ResourceQuota/Project.vue +2 -0
  111. package/components/form/ResourceQuota/ProjectRow.vue +2 -0
  112. package/components/form/RuleSelector.vue +2 -0
  113. package/components/form/SecretSelector.vue +1 -0
  114. package/components/form/Security.vue +5 -2
  115. package/components/form/Select.vue +2 -1
  116. package/components/form/SelectOrCreateAuthSecret.vue +2 -0
  117. package/components/form/ServiceNameSelect.vue +2 -0
  118. package/components/form/ServicePorts.vue +2 -0
  119. package/components/form/ShellInput.vue +2 -0
  120. package/components/form/SimpleSecretSelector.vue +2 -0
  121. package/components/form/Taints.vue +2 -0
  122. package/components/form/Tolerations.vue +2 -0
  123. package/components/form/UnitInput.vue +2 -0
  124. package/components/form/ValueFromResource.vue +2 -0
  125. package/components/form/WorkloadPorts.vue +5 -3
  126. package/components/form/__tests__/HookOption.test.ts +28 -0
  127. package/components/form/__tests__/LabeledSelect.test.ts +42 -0
  128. package/components/form/__tests__/Probe.test.ts +12 -0
  129. package/components/form/__tests__/UnitInput.test.ts +68 -0
  130. package/components/formatter/AppSummaryGraph.vue +2 -2
  131. package/components/formatter/FleetSummaryGraph.vue +2 -2
  132. package/components/formatter/InternalExternalIP.vue +13 -15
  133. package/components/formatter/MachineSummaryGraph.vue +2 -2
  134. package/components/formatter/Scale.vue +2 -2
  135. package/components/nav/Header.vue +17 -141
  136. package/components/nav/HeaderPageActionMenu.vue +173 -0
  137. package/components/nav/Jump.vue +2 -0
  138. package/components/nav/NamespaceFilter.vue +7 -2
  139. package/components/nav/TopLevelMenu.vue +4 -4
  140. package/components/nav/Type.vue +28 -2
  141. package/components/nav/WindowManager/ContainerLogs.vue +2 -1
  142. package/components/nav/WindowManager/ContainerShell.vue +6 -12
  143. package/components/nav/WindowManager/index.vue +2 -0
  144. package/components/nav/__tests__/Type.test.ts +68 -24
  145. package/composables/useClickOutside.ts +81 -0
  146. package/composables/useUserRetentionValidation.test.ts +1 -1
  147. package/composables/useUserRetentionValidation.ts +1 -1
  148. package/config/product/cis.js +4 -3
  149. package/config/product/manager.js +1 -0
  150. package/config/router/routes.js +1 -1
  151. package/config/table-headers.js +0 -10
  152. package/config/uiplugins.js +186 -143
  153. package/config/version.js +10 -0
  154. package/core/{plugin-helpers.js → plugin-helpers.ts} +25 -7
  155. package/core/plugin-routes.ts +5 -6
  156. package/core/plugin.ts +30 -3
  157. package/detail/autoscaling.horizontalpodautoscaler/index.vue +2 -0
  158. package/detail/configmap.vue +2 -0
  159. package/detail/fleet.cattle.io.cluster.vue +2 -0
  160. package/detail/fleet.cattle.io.clustergroup.vue +2 -0
  161. package/detail/fleet.cattle.io.gitrepo.vue +2 -0
  162. package/detail/harvesterhci.io.management.cluster.vue +2 -0
  163. package/detail/helm.cattle.io.projecthelmchart.vue +6 -8
  164. package/detail/management.cattle.io.roletemplate.vue +4 -4
  165. package/detail/management.cattle.io.user.vue +2 -0
  166. package/detail/namespace.vue +2 -0
  167. package/detail/networking.k8s.io.ingress.vue +1 -0
  168. package/detail/node.vue +2 -0
  169. package/detail/provisioning.cattle.io.cluster.vue +2 -0
  170. package/detail/secret.vue +2 -0
  171. package/detail/service.vue +2 -0
  172. package/detail/workload/index.vue +1 -1
  173. package/dialog/AddClusterMemberDialog.vue +2 -0
  174. package/dialog/AddCustomBadgeDialog.vue +3 -1
  175. package/dialog/AddProjectMemberDialog.vue +2 -0
  176. package/dialog/AddonConfigConfirmationDialog.vue +2 -0
  177. package/dialog/DeactivateDriverDialog.vue +2 -0
  178. package/dialog/DiagnosticTimingsDialog.vue +2 -0
  179. package/dialog/DrainNode.vue +2 -0
  180. package/dialog/ForceMachineRemoveDialog.vue +2 -0
  181. package/dialog/GenericPrompt.vue +2 -0
  182. package/dialog/RollbackWorkloadDialog.vue +2 -0
  183. package/dialog/RotateCertificatesDialog.vue +2 -0
  184. package/dialog/RotateEncryptionKeyDialog.vue +2 -0
  185. package/dialog/SaveAsRKETemplateDialog.vue +2 -0
  186. package/dialog/ScaleMachineDownDialog.vue +2 -0
  187. package/dialog/ScalePoolDownDialog.vue +2 -0
  188. package/dialog/SloDialog.vue +2 -0
  189. package/edit/auth/ldap/config.vue +282 -280
  190. package/edit/auth/saml.vue +1 -4
  191. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +3 -3
  192. package/edit/autoscaling.horizontalpodautoscaler/index.vue +4 -2
  193. package/edit/catalog.cattle.io.clusterrepo.vue +2 -0
  194. package/edit/cis.cattle.io.clusterscan.vue +115 -97
  195. package/edit/cis.cattle.io.clusterscanprofile.vue +29 -31
  196. package/edit/cloudcredential.vue +2 -0
  197. package/edit/constraints.gatekeeper.sh.constraint/MatchKinds.vue +2 -0
  198. package/edit/constraints.gatekeeper.sh.constraint/NamespaceList.vue +2 -0
  199. package/edit/constraints.gatekeeper.sh.constraint/Scope.vue +2 -0
  200. package/edit/constraints.gatekeeper.sh.constraint/index.vue +2 -0
  201. package/edit/fleet.cattle.io.cluster.vue +2 -0
  202. package/edit/fleet.cattle.io.clustergroup.vue +4 -1
  203. package/edit/fleet.cattle.io.gitrepo.vue +2 -0
  204. package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +2 -0
  205. package/edit/logging-flow/Match.vue +2 -0
  206. package/edit/logging-flow/index.vue +10 -8
  207. package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +1 -1
  208. package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +1 -1
  209. package/edit/logging.banzaicloud.io.output/providers/redis.vue +3 -3
  210. package/edit/management.cattle.io.clusterroletemplatebinding.vue +1 -0
  211. package/edit/management.cattle.io.fleetworkspace.vue +4 -1
  212. package/edit/management.cattle.io.project.vue +2 -0
  213. package/edit/management.cattle.io.roletemplate.vue +1 -1
  214. package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +1 -0
  215. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +2 -0
  216. package/edit/monitoring.coreos.com.receiver/types/email.vue +1 -0
  217. package/edit/namespace.vue +1 -0
  218. package/edit/networking.k8s.io.ingress/Certificate.vue +2 -0
  219. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -1
  220. package/edit/networking.k8s.io.ingress/Rule.vue +1 -0
  221. package/edit/networking.k8s.io.ingress/RulePath.vue +20 -23
  222. package/edit/networking.k8s.io.ingress/index.vue +1 -0
  223. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +1 -1
  224. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -0
  225. package/edit/node.vue +2 -0
  226. package/edit/persistentvolumeclaim.vue +1 -0
  227. package/edit/policy.poddisruptionbudget.vue +3 -1
  228. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +2 -0
  229. package/edit/provisioning.cattle.io.cluster/Labels.vue +2 -0
  230. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +2 -0
  231. package/edit/provisioning.cattle.io.cluster/import.vue +2 -0
  232. package/edit/provisioning.cattle.io.cluster/index.vue +2 -2
  233. package/edit/provisioning.cattle.io.cluster/rke2.vue +38 -13
  234. package/edit/provisioning.cattle.io.cluster/tabs/AddOnAdditionalManifest.vue +49 -0
  235. package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +32 -65
  236. package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +2 -0
  237. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +2 -0
  238. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +2 -0
  239. package/edit/provisioning.cattle.io.cluster/tabs/etcd/S3Config.vue +2 -0
  240. package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +2 -0
  241. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +2 -0
  242. package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +2 -0
  243. package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +31 -32
  244. package/edit/provisioning.cattle.io.cluster/tabs/upgrade/DrainOptions.vue +2 -0
  245. package/edit/resources.cattle.io.backup.vue +97 -99
  246. package/edit/resources.cattle.io.restore.vue +96 -98
  247. package/edit/secret/index.vue +2 -0
  248. package/edit/service.vue +12 -3
  249. package/edit/ui.cattle.io.navlink.vue +1 -0
  250. package/edit/workload/Job.vue +3 -2
  251. package/edit/workload/Upgrading.vue +1 -0
  252. package/edit/workload/__tests__/index.test.ts +9 -7
  253. package/edit/workload/index.vue +33 -16
  254. package/edit/workload/storage/ContainerMountPaths.vue +37 -97
  255. package/edit/workload/storage/awsElasticBlockStore.vue +1 -1
  256. package/edit/workload/storage/azureDisk.vue +1 -1
  257. package/edit/workload/storage/csi/driver.longhorn.io.vue +2 -0
  258. package/edit/workload/storage/ephemeralVolume/index.vue +2 -0
  259. package/edit/workload/storage/gcePersistentDisk.vue +1 -1
  260. package/edit/workload/storage/index.vue +38 -22
  261. package/edit/workload/storage/persistentVolumeClaim/index.vue +2 -0
  262. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +1 -0
  263. package/edit/workload/storage/vsphereVolume.vue +1 -1
  264. package/initialize/install-components.js +0 -12
  265. package/initialize/install-plugins.js +6 -7
  266. package/machine-config/azure.vue +2 -0
  267. package/machine-config/generic.vue +2 -0
  268. package/machine-config/vmwarevsphere.vue +2 -0
  269. package/mixins/fetch.client.js +2 -1
  270. package/mixins/resource-manager.js +1 -1
  271. package/models/cis.cattle.io.clusterscan.js +17 -16
  272. package/models/cis.cattle.io.clusterscanprofile.js +17 -0
  273. package/models/management.cattle.io.user.js +3 -3
  274. package/models/provisioning.cattle.io.cluster.js +2 -1
  275. package/models/steve-schema.ts +1 -1
  276. package/models/workload.js +2 -1
  277. package/package.json +6 -8
  278. package/pages/auth/login.vue +2 -1
  279. package/pages/c/_cluster/apps/charts/chart.vue +3 -1
  280. package/pages/c/_cluster/apps/charts/install.vue +5 -56
  281. package/pages/c/_cluster/auth/user.retention/index.vue +1 -1
  282. package/pages/c/_cluster/fleet/index.vue +0 -1
  283. package/pages/c/_cluster/monitoring/alertmanagerconfig/_alertmanagerconfigid/receiver.vue +1 -0
  284. package/pages/c/_cluster/settings/DefaultLinksEditor.vue +2 -0
  285. package/pages/c/_cluster/settings/performance.vue +2 -2
  286. package/pages/c/_cluster/uiplugins/AddExtensionRepos.vue +45 -52
  287. package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +2 -0
  288. package/pages/c/_cluster/uiplugins/CatalogList/CatalogUninstallDialog.vue +2 -0
  289. package/pages/c/_cluster/uiplugins/CatalogList/index.vue +2 -0
  290. package/pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue +6 -3
  291. package/pages/c/_cluster/uiplugins/InstallDialog.vue +2 -0
  292. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +7 -17
  293. package/pages/c/_cluster/uiplugins/UninstallDialog.vue +2 -0
  294. package/pages/c/_cluster/uiplugins/__tests__/AddExtensionRepos.test.ts +3 -6
  295. package/pages/c/_cluster/uiplugins/index.vue +93 -92
  296. package/pages/index.vue +10 -2
  297. package/pkg/vue.config.js +2 -0
  298. package/plugins/i18n.js +1 -1
  299. package/plugins/plugin.js +27 -19
  300. package/plugins/version.js +3 -13
  301. package/promptRemove/management.cattle.io.roletemplate.vue +3 -5
  302. package/promptRemove/pod.vue +2 -0
  303. package/rancher-components/Form/LabeledInput/LabeledInput.vue +14 -8
  304. package/rancher-components/Form/Radio/RadioButton.vue +0 -1
  305. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +17 -9
  306. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +4 -33
  307. package/rancher-components/StringList/StringList.vue +6 -15
  308. package/scripts/extension/bundle +1 -1
  309. package/scripts/extension/publish +174 -99
  310. package/store/catalog.js +0 -26
  311. package/store/growl.js +8 -5
  312. package/store/type-map.js +3 -2
  313. package/utils/cluster.js +9 -0
  314. package/utils/versions.ts +39 -0
  315. package/vue.config.js +5 -0
  316. package/components/form/PodSecurity.vue +0 -168
  317. package/components/formatter/Weight.vue +0 -147
  318. package/components/nuxt/nuxt-build-indicator.vue +0 -170
  319. package/components/nuxt/nuxt-child.js +0 -52
  320. package/components/nuxt/nuxt-error.vue +0 -128
  321. package/components/nuxt/nuxt-link.client.js +0 -17
  322. package/components/nuxt/nuxt-loading.vue +0 -165
  323. package/composables/useStore.ts +0 -16
@@ -25,11 +25,20 @@ $z-indexes: (
25
25
  overContent: 2,
26
26
  hoverOverContent: 3,
27
27
 
28
- mainHeader: 12,
29
-
30
28
  tableGroup: 10,
31
29
  fixedTableHeader: 11,
32
30
 
31
+ // ---- Boundary for central content (in `<main>`)
32
+
33
+ // This covers both relative and content modes of the loading indicator
34
+ loading: 12,
35
+
36
+ // Users can click on shell in header and show shell even with most loading indicators showing,
37
+ // so add it above them
38
+ windowsManager: 13,
39
+
40
+ mainHeader: 14,
41
+
33
42
  modalOverlay: 20,
34
43
  modalContent: 21,
35
44
 
@@ -38,8 +47,7 @@ $z-indexes: (
38
47
  dropdownOverlay: 40,
39
48
  dropdownContent: 41,
40
49
 
41
- loadingOverlay: 50,
42
- loadingContent: 51
50
+ loadingMain: 51
43
51
  );
44
52
 
45
53
  // Usage Example:
@@ -115,7 +115,7 @@ HEADER {
115
115
  .wm {
116
116
  grid-area: wm;
117
117
  overflow-y: hidden;
118
- z-index: 1;
118
+ z-index: z-index('windowsManager');
119
119
  }
120
120
 
121
121
  .localeSelector {
@@ -131,6 +131,15 @@ HEADER {
131
131
  outline: 0;
132
132
  }
133
133
 
134
+ &[data-popper-placement^="top"] {
135
+ .v-popper__arrow-container {
136
+ .v-popper__arrow-inner {
137
+ top: 0;
138
+ border-color: var(--tooltip-bg);
139
+ }
140
+ }
141
+ }
142
+
134
143
  li {
135
144
  padding: 8px 20px;
136
145
 
@@ -123,7 +123,6 @@
123
123
  color: var(--popover-text);
124
124
  padding: 10px;
125
125
  border-radius: var(--border-radius);
126
- box-shadow: 0 5px 20px var(--shadow);
127
126
  border: none;
128
127
 
129
128
  a {
@@ -133,6 +132,19 @@
133
132
 
134
133
  .v-popper__arrow-container {
135
134
  border-color: transparent;
135
+ .v-popper__arrow-outer {
136
+ border-color: transparent;
137
+ }
138
+ }
139
+ }
140
+
141
+ .v-popper__popper.v-popper--theme-dropdown {
142
+ z-index: z-index('tooltip');
143
+
144
+ &.containerLogsDropdown {
145
+ .v-popper__arrow-container {
146
+ display: none;
147
+ }
136
148
  }
137
149
  }
138
150
 
@@ -438,7 +438,7 @@ authConfig:
438
438
  5: 'Upload the downloaded JSON file in the OAuth credentials box.'
439
439
  3:
440
440
  title: 'Create Service Account credentials'
441
- introduction: 'Follow <a href="{docsBase}/admin-settings/authentication/google/#3-creating-service-account-credentials" target="_blank" rel="noopener noreferrer nofollow">this</a> guide to:'
441
+ introduction: 'Follow <a href="{docsBase}/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-google-oauth#3-creating-service-account-credentials" target="_blank" rel="noopener noreferrer nofollow">this</a> guide to:'
442
442
  body:
443
443
  1: Create a service account.
444
444
  2: Generate a key for the service account.
@@ -1134,7 +1134,7 @@ cis:
1134
1134
  alertNeeded: |-
1135
1135
  Alerting must be enabled within the CIS chart values.yaml.
1136
1136
  This requires that the <a tabindex="0" href="{link}">{vendor} Monitoring and Alerting app</a> is installed
1137
- and the Receivers and Routes are <a target="_blank" rel='noopener noreferrer nofollow' href='{docsBase}/monitoring-alerting/configuration/#alertmanager-configuration/'> configured to send out alerts.</a>
1137
+ and the Receivers and Routes are <a target="_blank" rel='noopener noreferrer nofollow' href='{docsBase}/how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/alertmanager'> configured to send out alerts.</a>
1138
1138
  alertOnComplete: Alert on scan completion
1139
1139
  alertOnFailure: Alert on scan failure
1140
1140
  benchmarkVersion: Benchmark Version
@@ -1177,6 +1177,7 @@ cis:
1177
1177
  total: Total
1178
1178
  warn: Warn
1179
1179
  scheduling:
1180
+ title: Scheduling
1180
1181
  disable: Run scan once
1181
1182
  enable: Run scan on a schedule
1182
1183
  scoreWarning:
@@ -1185,23 +1186,46 @@ cis:
1185
1186
  testID: Test ID
1186
1187
  testsSkipped: Tests Skipped
1187
1188
  testsToSkip: Tests to Skip
1189
+ alerting: Alerting
1188
1190
 
1189
1191
  cluster:
1190
1192
  jwtAuthentication:
1191
1193
  banner: "Service Account access with JWT authentication can be configured after cluster creation from <br>
1192
1194
  <code>Cluster Management > Advanced > JWT Authentication</code>"
1193
1195
  addonChart:
1194
- rancher-vsphere-cpi: vSphere CPI Configuration
1195
- rancher-vsphere-csi: vSphere CSI Configuration
1196
- rke2-calico: Calico Configuration
1197
- rke2-calico-crd: Calico Configuration
1198
- rke2-canal: Canal Configuration
1199
- rke2-cilium: Cilium Configuration
1200
- rke2-coredns: CoreDNS Configuration
1201
- rke2-ingress-nginx: NGINX Ingress Configuration
1202
- rke2-kube-proxy: Kube Proxy Configuration
1203
- rke2-metrics-server: Metrics Server Configuration
1204
- rke2-multus: Multus Configuration
1196
+ rancher-vsphere-cpi:
1197
+ label: vSphere CPI
1198
+ configuration: vSphere CPI Configuration
1199
+ rancher-vsphere-csi:
1200
+ label: vSphere CSI
1201
+ configuration: vSphere CSI Configuration
1202
+ rke2-calico:
1203
+ label: Calico
1204
+ configuration: Calico Configuration
1205
+ rke2-calico-crd:
1206
+ label: Calico
1207
+ configuration: Calico Configuration
1208
+ rke2-canal:
1209
+ label: Canal
1210
+ configuration: Canal Configuration
1211
+ rke2-cilium:
1212
+ label: Cilium
1213
+ configuration: Cilium Configuration
1214
+ rke2-coredns:
1215
+ label: CoreDNS
1216
+ configuration: CoreDNS Configuration
1217
+ rke2-ingress-nginx:
1218
+ label: NGINX
1219
+ configuration: NGINX Ingress Configuration
1220
+ rke2-kube-proxy:
1221
+ label: Kube Proxy
1222
+ configuration: Kube Proxy Configuration
1223
+ rke2-metrics-server:
1224
+ label: Metrics Server
1225
+ configuration: Metrics Server Configuration
1226
+ rke2-multus:
1227
+ label: Multus
1228
+ configuration: Multus Configuration
1205
1229
  agentEnvVars:
1206
1230
  label: Agent Environment
1207
1231
  detail: Add additional environment variables to the agent container. This is most commonly useful for configuring a HTTP proxy.
@@ -1217,7 +1241,7 @@ cluster:
1217
1241
  label: Google
1218
1242
  rancher-vsphere:
1219
1243
  label: vSphere
1220
- note: '<b>Important:</b> Configure the vSphere Cloud Provider and Storage Provider options in the Add-On Config tab.'
1244
+ note: '<b>Important:</b> Configure the vSphere Cloud Provider and Storage Provider options in the tabs on the left.'
1221
1245
  harvester:
1222
1246
  label: Harvester
1223
1247
  copyConfig: Copy KubeConfig to Clipboard
@@ -1363,8 +1387,10 @@ cluster:
1363
1387
  macAddress: Mac Address
1364
1388
  macFormat: 'Invalid MAC address format.'
1365
1389
  vGpus:
1390
+ warnings:
1391
+ minimumAllocatable: It's highly recommended to select a vGPU with a number of allocatable devices greater than the number of nodes (Machine Count) to avoid "un-schedulable" errors after cluster updates.
1366
1392
  errors:
1367
- notAllocatable: '"VGPUs" not allocatable. There are not enough [{vGpus}] devices to be allocated to each node in machine pool [{pool}]'
1393
+ notAllocatable: '[{vGpu}] vGPU device is not allocatable; required: {allocated}, allocatable: {allocatable}'
1368
1394
  volume:
1369
1395
  title: Volumes
1370
1396
  volume: Volume
@@ -1883,7 +1909,7 @@ cluster:
1883
1909
  header: Registry for Rancher System Container Images
1884
1910
  label: Enable cluster scoped container registry for Rancher system container images
1885
1911
  description: "If enabled, Rancher will pull container images from this registry during cluster provisioning. By default, Rancher will also use this registry when installing Rancher's official Helm chart apps. If the cluster scoped registry is disabled, system images are pulled from the System Default Registry in the global settings."
1886
- docsLinkRke2: "For help configuring private registry mirrors, see the RKE2 <a href=\"https://docs.rke2.io/install/containerd_registry_configuration/\" target=\"_blank\">documentation.</a>"
1912
+ docsLinkRke2: "For help configuring private registry mirrors, see the RKE2 <a href=\"https://docs.rke2.io/install/containerd_registry_configuration\" target=\"_blank\">documentation.</a>"
1887
1913
  docsLinkK3s: "For help configuring private registry mirrors, see the K3s <a href=\"https://docs.k3s.io/installation/private-registry\" target=\"_blank\">documentation.</a>"
1888
1914
  provider:
1889
1915
  aliyunecs: Aliyun ECS
@@ -1927,6 +1953,7 @@ cluster:
1927
1953
  oracleoke: Oracle OKE
1928
1954
  otc: Open Telekom Cloud
1929
1955
  other: Other
1956
+ ovhcloudmks: OVHcloud MKS
1930
1957
  packet: Equinix Metal
1931
1958
  pinganyunecs: Pinganyun ECS
1932
1959
  pnap: phoenixNAP
@@ -2089,7 +2116,7 @@ cluster:
2089
2116
  s3: s3
2090
2117
  tabs:
2091
2118
  ace: Authorized Endpoint
2092
- addons: Add-On Config
2119
+ addOnAdditionalManifest: Additional Manifest
2093
2120
  advanced: Advanced
2094
2121
  agentEnv: Agent Environment Vars
2095
2122
  basic: Basics
@@ -3482,7 +3509,7 @@ monitoring:
3482
3509
  keyFilePath:
3483
3510
  label: Key File Path
3484
3511
  placeholder: e.g. ./key-file.pfx
3485
- secretsBanner: The file paths below must be referenced in <pre class="inline-block m-0 p-0 vertical-middle">alertmanager.alertmanagerSpec.secrets</pre> when deploying the Monitoring chart. For more information see our <a href="{docsBase}/monitoring-alerting/" target="_blank" rel="noopener noreferrer nofollow">documentation</a>.
3512
+ secretsBanner: The file paths below must be referenced in <pre class="inline-block m-0 p-0 vertical-middle">alertmanager.alertmanagerSpec.secrets</pre> when deploying the Monitoring chart. For more information see our <a href="{docsBase}/how-to-guides/advanced-user-guides/monitoring-alerting-guides" target="_blank" rel="noopener noreferrer nofollow">documentation</a>.
3486
3513
  projectMonitoring:
3487
3514
  detail:
3488
3515
  error: "Unable to fetch Dashboard values with status: "
@@ -4262,8 +4289,11 @@ inactivity:
4262
4289
 
4263
4290
  # Rancher Extensions
4264
4291
  plugins:
4265
- incompatibleRancherVersion: "The latest version of this extension ({ version }) is not compatible with the current Rancher version ({ rancherVersion })."
4266
- incompatibleKubeVersion: "The latest version of this extension ({ version }) is not compatible with the current Kube version ({ kubeVersion })."
4292
+ incompatibleRancherVersion: "The latest version of this extension ({ version }) is not compatible with the current Rancher version ({ required })."
4293
+ incompatibleKubeVersion: "The latest version of this extension ({ version }) is not compatible with the current Kube version ({ required })."
4294
+ incompatibleUiExtensionsApiVersionMissing: 'The latest version of this extension ({ version }) is missing the mandatory annotation catalog.cattle.io/ui-extensions-version from Rancher 2.10 and onwards.'
4295
+ incompatibleUiExtensionsApiVersion: "The latest version of this extension ({ version }) is not compatible with the current Extensions API version ({ required })."
4296
+ incompatibleHost: 'The latest version of this extension ({ version }) has a host of "{ required }" which is not compatible with this application "{ mainHost }".'
4267
4297
  currentInstalledVersionBlockedByKubeVersion: "This version is not compatible with the current Kubernetes version ({ kubeVersion } Vs { kubeVersionToCheck })."
4268
4298
  labels:
4269
4299
  builtin: Built-in
@@ -4281,9 +4311,11 @@ plugins:
4281
4311
  title: Error loading extension
4282
4312
  message: Could not load extension code
4283
4313
  generic: Extension error
4284
- api: This Extension is not compatible with the current Extensions API version
4285
- host: This Extension is not compatible with this application
4286
- version: This Extension is not compatible with this version of Rancher
4314
+ apiAnnotationMissing: 'Unable to load Extension. The version installed is not compatible with the current Extensions API Version (Extension is missing the annotation catalog.cattle.io/ui-extensions-version which implies incompatibility with Rancher 2.10 and onwards)'
4315
+ api: Unable to load Extension. The version installed is not compatible with the current Extensions API version
4316
+ host: Unable to load Extension. The version installed is not compatible with this application host
4317
+ version: Unable to load Extension. The version installed is not compatible with the current version of Rancher
4318
+ kubeVersion: Unable to load Extension. The version installed is not compatible with the current Rancher kubernetes version
4287
4319
  load: An error occurred loading the code for this Extension
4288
4320
  developerPkg: This Extension has been loaded internally, so we won't load the external version
4289
4321
  success:
@@ -4301,8 +4333,11 @@ plugins:
4301
4333
  detail: Detail
4302
4334
  versions: Versions
4303
4335
  versionError: Could not load version information
4304
- requiresRancherVersion: "Requires Rancher {version}"
4305
- requiresKubeVersion: "Requires Kube version {version}"
4336
+ requiresRancherVersion: "Requires Rancher {required}"
4337
+ requiresKubeVersion: "Requires Kube version {required}"
4338
+ requiresExtensionApiVersionMissing: 'Missing the annotation catalog.cattle.io/ui-extensions-version which implies incompatibility with Rancher 2.10 and onwards'
4339
+ requiresExtensionApiVersion: "Requires Extensions API version {required}"
4340
+ requiresHost: 'Requires a host that matches "{mainHost}"'
4306
4341
  empty:
4307
4342
  all: Extensions are neither installed nor available
4308
4343
  available: No Extensions available
@@ -5243,7 +5278,7 @@ setup:
5243
5278
  skip: Skip
5244
5279
  tip: What URL should be used for this {vendor} installation? All the nodes in your clusters will need to be able to reach this.
5245
5280
  setPassword: The first order of business is to set a strong password for the default <code>{username}</code> user. We suggest using this random one generated just for you, but enter your own if you like.
5246
- telemetry: Allow collection of <a href="{docsBase}/faq/telemetry/" target="_blank" rel="noopener noreferrer nofollow">anonymous statistics</a> to help us improve {name}
5281
+ telemetry: Allow collection of <a href="{docsBase}/faq/telemetry" target="_blank" rel="noopener noreferrer nofollow">anonymous statistics</a> to help us improve {name}
5247
5282
  useManual: Set a specific password to use
5248
5283
  useRandom: Use a randomly generated password
5249
5284
  welcome: Welcome to {vendor}!
@@ -6287,6 +6322,7 @@ workload:
6287
6322
  workload: Workload
6288
6323
  pods: Pods by State
6289
6324
  runs: Runs
6325
+ error: Pod { name } Security Policy Violation { policy }
6290
6326
  gaugeStates:
6291
6327
  succeeded: Successful
6292
6328
  running: Running
@@ -429,7 +429,7 @@ authConfig:
429
429
  5: '在 OAuth 凭证框中,上传下载的 JSON 文件。'
430
430
  3:
431
431
  title: '创建 Service Account 凭证'
432
- introduction: '参照本<a href="{docsBase}/admin-settings/authentication/google/#3-creating-service-account-credentials" target="_blank" rel="noopener noreferrer nofollow">指南</a>:'
432
+ introduction: '参照本<a href="{docsBase}/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-google-oauth#3-creating-service-account-credentials" target="_blank" rel="noopener noreferrer nofollow">指南</a>:'
433
433
  body:
434
434
  1: 创建一个 Service Account。
435
435
  2: 为这个 Service Account 生成密钥。
@@ -1049,7 +1049,7 @@ cis:
1049
1049
  alertNeeded: |-
1050
1050
  必须在 CIS Chart values.yaml 中开启告警。
1051
1051
  这要求<a tabindex="0" href="{link}"> {vendor} 的 Monitoring 与 Alerting 应用</a>已经安装
1052
- ,而且接收器和路由<a target="_blank" rel='noopener noreferrer nofollow' href='{docsBase}/monitoring-alerting/configuration/#alertmanager-configuration/'>已配置告警发送</a>。
1052
+ ,而且接收器和路由<a target="_blank" rel='noopener noreferrer nofollow' href='{docsBase}/how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/alertmanager'>已配置告警发送</a>。
1053
1053
  alertOnComplete: 扫描完成告警
1054
1054
  alertOnFailure: 扫描失败告警
1055
1055
  benchmarkVersion: Benchmark 版本
@@ -1752,7 +1752,7 @@ cluster:
1752
1752
  privateRegistry:
1753
1753
  label: 为 Rancher 系统容器镜像启用集群级别的容器镜像仓库
1754
1754
  description: "如果启用,Rancher 将在集群配置期间从该镜像仓库中拉取容器镜像。默认情况下,Rancher 在安装 Rancher 的官方 Helm Chart 应用程序时也会使用此镜像仓库。如果集群级别的镜像仓库被禁用,将从全局设置中的系统默认镜像仓库中拉取系统镜像。"
1755
- docsLinkRke2: "如需配置私有镜像仓库 mirror 的帮助,请参阅 RKE2 <a href=\"https://docs.rke2.io/install/containerd_registry_configuration/\" target=\"_blank\">文档</a>。"
1755
+ docsLinkRke2: "如需配置私有镜像仓库 mirror 的帮助,请参阅 RKE2 <a href=\"https://docs.rke2.io/install/containerd_registry_configuration\" target=\"_blank\">文档</a>。"
1756
1756
  docsLinkK3s: "如需配置私有镜像仓库 mirror 的帮助,请参阅 K3s <a href=\"https://docs.k3s.io/installation/private-registry\" target=\"_blank\">文档</a>。"
1757
1757
  provider:
1758
1758
  aliyunecs: Aliyun ECS
@@ -1796,6 +1796,7 @@ cluster:
1796
1796
  oracleoke: Oracle OKE
1797
1797
  otc: Open Telekom Cloud
1798
1798
  other: 其他
1799
+ ovhcloudmks: OVHcloud MKS
1799
1800
  packet: Equinix Metal
1800
1801
  pinganyunecs: 平安云 ECS
1801
1802
  pnap: phoenixNAP
@@ -3235,7 +3236,7 @@ monitoring:
3235
3236
  keyFilePath:
3236
3237
  label: 密钥文件路径
3237
3238
  placeholder: 例如:./key-file.pfx
3238
- secretsBanner: 部署 Monitoring Chart 时,必须在<<pre class="inline-block m-0 p-0 vertical-middle">alertmanager.alertmanagerSpec.secrets</pre>中引用以下文件路径。详情请查看<a href="{docsBase}/monitoring-alerting/" target="_blank" rel="noopener noreferrer nofollow">官方文档</a>。
3239
+ secretsBanner: 部署 Monitoring Chart 时,必须在<<pre class="inline-block m-0 p-0 vertical-middle">alertmanager.alertmanagerSpec.secrets</pre>中引用以下文件路径。详情请查看<a href="{docsBase}/how-to-guides/advanced-user-guides/monitoring-alerting-guides" target="_blank" rel="noopener noreferrer nofollow">官方文档</a>。
3239
3240
  projectMonitoring:
3240
3241
  detail:
3241
3242
  error: "无法获取具有状态的仪表板值: "
@@ -4967,7 +4968,7 @@ setup:
4967
4968
  skip: 跳过
4968
4969
  tip: 此 {vendor} 安装应使用什么 URL?集群中的所有节点都需要能访问该 URL。
4969
4970
  setPassword: 请为默认用户 <code>{username}</code>设置强密码。建议使用生成的随机密码。你也可以自行设置。
4970
- telemetry: 允许收集<a href="{docsBase}/faq/telemetry/" target="_blank" rel="noopener noreferrer nofollow">匿名统计数据</a>,以帮我们改进 {name}。
4971
+ telemetry: 允许收集<a href="{docsBase}/faq/telemetry" target="_blank" rel="noopener noreferrer nofollow">匿名统计数据</a>,以帮我们改进 {name}。
4971
4972
  useManual: 设置密码
4972
4973
  useRandom: 使用随机生成的密码
4973
4974
  welcome: 欢迎使用 {vendor}!
package/chart/istio.vue CHANGED
@@ -49,6 +49,8 @@ const defaultOverlayFile = `#apiVersion: install.istio.io/v1alpha1
49
49
  `;
50
50
 
51
51
  export default {
52
+ emits: ['update:value'],
53
+
52
54
  components: {
53
55
  Checkbox,
54
56
  FileSelector,
@@ -87,6 +87,8 @@ const CLUSTER_TYPES = [
87
87
  ];
88
88
 
89
89
  export default {
90
+ emits: ['onClusterTypeChanged'],
91
+
90
92
  components: { LabeledSelect },
91
93
  props: {
92
94
  value: {
@@ -2,7 +2,10 @@
2
2
  import LabeledSelect from '@shell/components/form/LabeledSelect';
3
3
 
4
4
  export default {
5
- name: 'StorageClassSelector',
5
+ name: 'StorageClassSelector',
6
+
7
+ emits: ['updateName'],
8
+
6
9
  components: { LabeledSelect },
7
10
  props: {
8
11
  options: {
@@ -19,6 +19,8 @@ import { STORAGE_CLASS, PVC, SECRET, WORKLOAD_TYPES } from '@shell/config/types'
19
19
  import { CATTLE_MONITORING_NAMESPACE } from '@shell/utils/monitoring';
20
20
 
21
21
  export default {
22
+ emits: ['register-before-hook', 'input'],
23
+
22
24
  components: {
23
25
  Alerting,
24
26
  Checkbox,
@@ -7,6 +7,8 @@ import { mapGetters } from 'vuex';
7
7
  import { SECRET } from '@shell/config/types';
8
8
 
9
9
  export default {
10
+ emits: ['valid'],
11
+
10
12
  components: {
11
13
  LabeledInput,
12
14
  Checkbox,
@@ -13,6 +13,8 @@ import { mapGetters } from 'vuex';
13
13
  import { STORAGE } from '@shell/config/labels-annotations';
14
14
 
15
15
  export default {
16
+ emits: ['valid'],
17
+
16
18
  components: {
17
19
  Tab,
18
20
  Tabbed,
@@ -5,6 +5,8 @@ import { LabeledInput } from '@components/Form/LabeledInput';
5
5
  import LabeledSelect from '@shell/components/form/LabeledSelect';
6
6
 
7
7
  export default {
8
+ emits: ['validationChanged'],
9
+
8
10
  components: {
9
11
  Loading, LabeledInput, LabeledSelect
10
12
  },
@@ -6,6 +6,8 @@ import { parseAzureError } from '@shell/utils/azure';
6
6
  import LabeledSelect from '@shell/components/form/LabeledSelect';
7
7
 
8
8
  export default {
9
+ emits: ['validationChanged'],
10
+
9
11
  components: { LabeledInput, LabeledSelect },
10
12
  mixins: [CreateEditView],
11
13
 
@@ -3,6 +3,8 @@ import CreateEditView from '@shell/mixins/create-edit-view';
3
3
  import { LabeledInput } from '@components/Form/LabeledInput';
4
4
 
5
5
  export default {
6
+ emits: ['validationChanged'],
7
+
6
8
  components: { LabeledInput },
7
9
  mixins: [CreateEditView],
8
10
 
@@ -4,6 +4,8 @@ import { LabeledInput } from '@components/Form/LabeledInput';
4
4
  import FileSelector from '@shell/components/form/FileSelector';
5
5
 
6
6
  export default {
7
+ emits: ['validationChanged'],
8
+
7
9
  components: { LabeledInput, FileSelector },
8
10
  mixins: [CreateEditView],
9
11
 
@@ -6,6 +6,8 @@ import { simplify, iffyFields, likelyFields } from '@shell/store/plugins';
6
6
  import Loading from '@shell/components/Loading';
7
7
 
8
8
  export default {
9
+ emits: ['validationChanged'],
10
+
9
11
  components: {
10
12
  KeyValue, Banner, Loading
11
13
  },
@@ -7,6 +7,8 @@ import { get, set } from '@shell/utils/object';
7
7
  import { MANAGEMENT, VIRTUAL_HARVESTER_PROVIDER } from '@shell/config/types';
8
8
 
9
9
  export default {
10
+ emits: ['validationChanged'],
11
+
10
12
  components: { LabeledSelect, Banner },
11
13
  mixins: [CreateEditView],
12
14
 
@@ -3,6 +3,8 @@ import CreateEditView from '@shell/mixins/create-edit-view';
3
3
  import { LabeledInput } from '@components/Form/LabeledInput';
4
4
 
5
5
  export default {
6
+ emits: ['validationChanged'],
7
+
6
8
  components: { LabeledInput },
7
9
  mixins: [CreateEditView],
8
10
 
@@ -4,6 +4,8 @@ import { LabeledInput } from '@components/Form/LabeledInput';
4
4
  import { base64Encode } from '@shell/utils/crypto';
5
5
 
6
6
  export default {
7
+ emits: ['validationChanged'],
8
+
7
9
  components: { LabeledInput },
8
10
  mixins: [CreateEditView],
9
11
 
@@ -6,6 +6,8 @@ import { LabeledInput } from '@components/Form/LabeledInput';
6
6
  import LabeledSelect from '@shell/components/form/LabeledSelect';
7
7
 
8
8
  export default {
9
+ emits: ['validationChanged'],
10
+
9
11
  components: {
10
12
  Loading, Checkbox, LabeledInput, LabeledSelect
11
13
  },
@@ -4,6 +4,8 @@ import { LabeledInput } from '@components/Form/LabeledInput';
4
4
  import { NORMAN } from '@shell/config/types';
5
5
 
6
6
  export default {
7
+ emits: ['validationChanged'],
8
+
7
9
  components: { LabeledInput },
8
10
  mixins: [CreateEditView],
9
11
 
@@ -66,7 +66,7 @@ export default {
66
66
  placement="bottom"
67
67
  :container="false"
68
68
  :disabled="disableButton"
69
- :popper-options="{modifiers: { flip: { enabled: false } } }"
69
+ :flip="false"
70
70
  >
71
71
  <slot
72
72
  name="button-content"
@@ -9,7 +9,10 @@ const CALC = 'calculate';
9
9
  const SHOW = 'show';
10
10
 
11
11
  export default {
12
- name: 'ActionMenu',
12
+ name: 'ActionMenu',
13
+
14
+ emits: ['close'],
15
+
13
16
  components: { IconOrSvg },
14
17
  props: {
15
18
  customActions: {
@@ -2,7 +2,10 @@
2
2
  import { defineComponent } from 'vue';
3
3
 
4
4
  export default defineComponent({
5
- name: 'AppModal',
5
+ name: 'AppModal',
6
+
7
+ emits: ['close'],
8
+
6
9
  inheritAttrs: false,
7
10
  props: {
8
11
  /**
@@ -5,6 +5,8 @@ import isString from 'lodash/isString';
5
5
  import VueSelectOverrides from '@shell/mixins/vue-select-overrides';
6
6
 
7
7
  export default {
8
+ emits: ['dd-button-action', 'click-action'],
9
+
8
10
  mixins: [VueSelectOverrides],
9
11
  props: {
10
12
  buttonLabel: {
@@ -202,6 +204,7 @@ export default {
202
204
  tabindex="-1"
203
205
  type="button"
204
206
  class="dropdown-button-two btn"
207
+ data-testid="dropdown-button"
205
208
  @click="ddButtonAction(option)"
206
209
  @focus="focusSearch"
207
210
  >
@@ -1,5 +1,7 @@
1
1
  <script>
2
2
  export default {
3
+ emits: ['update:value'],
4
+
3
5
  props: {
4
6
  value: {
5
7
  type: [String, Number, Boolean, Object],
@@ -0,0 +1,41 @@
1
+ <script setup lang="ts">
2
+ import { computed, defineEmits } from 'vue';
3
+
4
+ defineEmits(['click']);
5
+
6
+ type Props = {
7
+ borderless?: boolean;
8
+ invisible?: boolean;
9
+ }
10
+
11
+ const props = defineProps<Props>();
12
+
13
+ const buttonClass = computed(() => {
14
+ return {
15
+ borderless: props?.borderless,
16
+ invisible: props?.invisible,
17
+ };
18
+ });
19
+ </script>
20
+
21
+ <template>
22
+ <button
23
+ type="button"
24
+ class="btn btn-sm role-multi-action actions"
25
+ :class="buttonClass"
26
+ @click="(e: Event) => $emit('click', e)"
27
+ >
28
+ <i class="icon icon-actions" />
29
+ </button>
30
+ </template>
31
+
32
+ <style lang="scss" scoped>
33
+ .borderless {
34
+ background-color: transparent;
35
+ border: none;
36
+ &:hover, &:focus {
37
+ background-color: var(--accent-btn);
38
+ box-shadow: none;
39
+ }
40
+ }
41
+ </style>
@@ -6,6 +6,8 @@ import { mapGetters } from 'vuex';
6
6
  const carouselSeenStorageKey = `carousel-seen`;
7
7
 
8
8
  export default {
9
+ emits: ['clicked'],
10
+
9
11
  components: { BadgeState },
10
12
  name: 'Carousel',
11
13
  props: {
@@ -291,6 +293,7 @@ export default {
291
293
  height: 100%;
292
294
 
293
295
  .slide-img {
296
+ align-self: flex-start;
294
297
  width: 150px;
295
298
  background: var(--card-badge-text);
296
299
  border-radius: calc(2 * var(--border-radius));