dashboard-shell-shell 3.0.5-test.6 → 3.0.5-test.8

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 (215) hide show
  1. package/assets/brand/harvester/favicon.png +0 -0
  2. package/assets/brand/suse/favicon.png +0 -0
  3. package/assets/icons/demo.css +539 -0
  4. package/assets/icons/demo.css:Zone.Identifier +0 -0
  5. package/assets/icons/demo_index.html +1131 -0
  6. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  7. package/assets/icons/iconfont.css +216 -0
  8. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  9. package/assets/icons/iconfont.js +1 -0
  10. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  11. package/assets/icons/iconfont.json +324 -0
  12. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  13. package/assets/icons/iconfont.ttf +0 -0
  14. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  15. package/assets/icons/iconfont.woff +0 -0
  16. package/assets/icons/iconfont.woff2 +0 -0
  17. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  18. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  19. package/assets/images/API.svg +3 -0
  20. package/assets/images/action.svg +6 -0
  21. package/assets/images/login/password.svg +20 -0
  22. package/assets/images/login/user.svg +6 -0
  23. package/assets/images/login-bg.png +0 -0
  24. package/assets/images/login-left.png +0 -0
  25. package/assets/images/login-logo.svg +19 -0
  26. package/assets/images/logo.png +0 -0
  27. package/assets/images/pl/half-logo.svg +2 -23
  28. package/assets/images/pl/harvester.png +0 -0
  29. package/assets/images/pl/logo.png +0 -0
  30. package/assets/images/promp-yellow.svg +5 -0
  31. package/assets/images/user.png +0 -0
  32. package/assets/styles/all.scss +63 -0
  33. package/assets/styles/app.scss +4 -0
  34. package/assets/styles/base/_basic.scss +2 -2
  35. package/assets/styles/base/_mixins.scss +1 -1
  36. package/assets/styles/base/_typography.scss +2 -1
  37. package/assets/styles/base/_variables.scss +14 -7
  38. package/assets/styles/global/_button.scss +43 -25
  39. package/assets/styles/global/_columns.scss +3 -1
  40. package/assets/styles/global/_form.scss +45 -13
  41. package/assets/styles/global/_labeled-input.scss +54 -26
  42. package/assets/styles/global/_layout.scss +8 -3
  43. package/assets/styles/global/_select.scss +25 -17
  44. package/assets/styles/global/_table.scss +7 -1
  45. package/assets/styles/global/_tooltip.scss +56 -8
  46. package/assets/styles/themes/_dark.scss +3 -0
  47. package/assets/styles/themes/_light.scss +66 -43
  48. package/assets/styles/vendor/vue-select.scss +22 -9
  49. package/assets/translations/en-us.yaml +28 -4
  50. package/assets/translations/zh-hans.yaml +452 -189
  51. package/components/ActionDropdown.vue +2 -1
  52. package/components/ActionMenu.vue +2 -2
  53. package/components/ActionMenuShell.vue +2 -0
  54. package/components/AppModal.vue +46 -5
  55. package/components/BrandImage.vue +1 -0
  56. package/components/ButtonDropdown.vue +26 -4
  57. package/components/ButtonMultiAction.vue +1 -0
  58. package/components/ClusterIconMenu.vue +1 -1
  59. package/components/CodeMirror.vue +20 -6
  60. package/components/ConsumptionGauge.vue +24 -5
  61. package/components/CopyToClipboard.vue +15 -0
  62. package/components/CruResource.vue +9 -8
  63. package/components/CruResourceFooter.vue +2 -2
  64. package/components/DashboardOptions.vue +29 -17
  65. package/components/DotState.vue +84 -0
  66. package/components/Drawer/Chrome.vue +2 -2
  67. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -22
  68. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  69. package/components/Drawer/ResourceDetailDrawer/index.vue +2 -1
  70. package/components/ExplorerMembers.vue +18 -3
  71. package/components/ExplorerProjectsNamespaces.vue +19 -5
  72. package/components/GlobalRoleBindings.vue +112 -48
  73. package/components/GrafanaDashboard.vue +4 -4
  74. package/components/GrowlManager.vue +3 -1
  75. package/components/HardwareResourceGauge.vue +39 -3
  76. package/components/IndentedPanel.vue +4 -10
  77. package/components/InfoBox.vue +3 -3
  78. package/components/InputOrDisplay.vue +28 -2
  79. package/components/LabelValue.vue +20 -1
  80. package/components/ModalWithCard.vue +12 -3
  81. package/components/PodSecurityAdmission.vue +1 -1
  82. package/components/PromptModal.vue +1 -1
  83. package/components/PromptRemove.vue +30 -11
  84. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  85. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  86. package/components/Resource/Detail/Metadata/index.vue +3 -1
  87. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  88. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  89. package/components/Resource/Detail/TitleBar/index.vue +109 -24
  90. package/components/ResourceDetail/Masthead/legacy.vue +181 -38
  91. package/components/ResourceDetail/legacy.vue +32 -14
  92. package/components/ResourceList/Masthead.vue +226 -54
  93. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  94. package/components/ResourceTable.vue +24 -2
  95. package/components/SideNav.vue +74 -20
  96. package/components/SortableTable/THead.vue +33 -3
  97. package/components/SortableTable/index.vue +1016 -463
  98. package/components/SortableTable/paging.js +26 -16
  99. package/components/SortableTable/selection.js +2 -2
  100. package/components/Tabbed/Tab.vue +3 -3
  101. package/components/Tabbed/index.vue +47 -29
  102. package/components/YamlEditor.vue +0 -1
  103. package/components/auth/Principal.vue +37 -13
  104. package/components/auth/RoleDetailEdit.vue +58 -7
  105. package/components/auth/SelectPrincipal.vue +1 -0
  106. package/components/breadcrumb/index.vue +316 -0
  107. package/components/form/ArrayList.vue +41 -33
  108. package/components/form/ArrayListGrouped.vue +10 -2
  109. package/components/form/ArrayListSelect.vue +1 -1
  110. package/components/form/BannerSettings.vue +64 -59
  111. package/components/form/ChangePassword.vue +4 -4
  112. package/components/form/ColorInput.vue +32 -8
  113. package/components/form/Footer.vue +11 -8
  114. package/components/form/InputWithSelect.vue +8 -5
  115. package/components/form/KeyValue.vue +47 -7
  116. package/components/form/LabeledSelect.vue +214 -242
  117. package/components/form/Labels.vue +3 -3
  118. package/components/form/MatchExpressions.vue +24 -7
  119. package/components/form/Members/ClusterPermissionsEditor.vue +1 -2
  120. package/components/form/Members/MembershipEditor.vue +1 -1
  121. package/components/form/NameNsDescription.vue +59 -20
  122. package/components/form/Password.vue +16 -7
  123. package/components/form/PodAffinity.vue +4 -5
  124. package/components/form/ResourceQuota/Namespace.vue +4 -4
  125. package/components/form/ResourceQuota/NamespaceRow.vue +18 -17
  126. package/components/form/ResourceQuota/Project.vue +4 -4
  127. package/components/form/ResourceQuota/ProjectRow.vue +3 -6
  128. package/components/form/Select.vue +5 -2
  129. package/components/form/SimpleSecretSelector.vue +29 -9
  130. package/components/form/Taints.vue +2 -1
  131. package/components/form/UnitInput.vue +8 -3
  132. package/components/form/WorkloadPorts.vue +143 -123
  133. package/components/formatter/BadgeStateFormatter.vue +8 -5
  134. package/components/formatter/LiveDate.vue +3 -3
  135. package/components/nav/Favorite.vue +5 -1
  136. package/components/nav/Group.vue +132 -99
  137. package/components/nav/Header.vue +124 -27
  138. package/components/nav/HeaderPageActionMenu.vue +1 -0
  139. package/components/nav/NamespaceFilter.vue +20 -17
  140. package/components/nav/TopLevelMenu.vue +182 -119
  141. package/components/nav/Type.vue +63 -41
  142. package/composables/useClickOutside.ts +1 -1
  143. package/config/private-label.js +15 -11
  144. package/config/product/auth.js +17 -7
  145. package/config/product/settings.js +19 -9
  146. package/config/settings.ts +28 -0
  147. package/config/table-headers.js +3 -2
  148. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  149. package/dialog/ScalePoolDownDialog.vue +2 -2
  150. package/edit/management.cattle.io.user.vue +17 -4
  151. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  152. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  153. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  154. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  155. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  156. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  157. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  158. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  159. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  160. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  161. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  162. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  163. package/edit/namespace.vue +1 -2
  164. package/edit/token.vue +31 -12
  165. package/edit/workload/index.vue +4 -4
  166. package/list/management.cattle.io.setting.vue +22 -13
  167. package/list/management.cattle.io.user.vue +7 -3
  168. package/list/namespace.vue +3 -0
  169. package/list/provisioning.cattle.io.cluster.vue +6 -7
  170. package/mixins/brand.js +17 -0
  171. package/package.json +1 -1
  172. package/pages/account/pri.vue +229 -0
  173. package/pages/auth/login.vue +220 -52
  174. package/pages/auth/setup.vue +142 -19
  175. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  176. package/pages/c/_cluster/auth/roles/index.vue +56 -5
  177. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  178. package/pages/c/_cluster/settings/banners.vue +174 -102
  179. package/pages/c/_cluster/settings/brand.vue +350 -302
  180. package/pages/c/_cluster/settings/performance.vue +61 -38
  181. package/pages/home.vue +70 -30
  182. package/pages/prefs.vue +27 -25
  183. package/plugins/dashboard-store/resource-class.js +28 -27
  184. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  185. package/public/index.html +4 -4
  186. package/rancher-components/BadgeState/BadgeState.vue +38 -55
  187. package/rancher-components/Banner/Banner.vue +12 -8
  188. package/rancher-components/Card/Card.vue +7 -8
  189. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  190. package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
  191. package/rancher-components/Form/Radio/RadioButton.vue +35 -11
  192. package/rancher-components/Form/Radio/RadioGroup.vue +13 -5
  193. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  194. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
  195. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +12 -4
  196. package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
  197. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  198. package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
  199. package/rancher-components/RcDropdown/types.ts +1 -0
  200. package/rancher-components/StringList/StringList.vue +1 -1
  201. package/scripts/publish-shell.sh +1 -1
  202. package/static/favicon.ico +0 -0
  203. package/static/favicon.png +0 -0
  204. package/static/loading-indicator.html +3 -3
  205. package/store/i18n.js +5 -2
  206. package/store/modal.ts +3 -3
  207. package/store/prefs.js +11 -4
  208. package/store/type-map.js +32 -2
  209. package/types/shell/index.d.ts +78 -97
  210. package/utils/error.js +89 -8
  211. package/utils/errorTranslate.json +1351 -0
  212. package/utils/router.js +21 -0
  213. package/utils/select.js +26 -3
  214. package/utils/string.js +8 -5
  215. package/utils/title.ts +1 -1
@@ -11,6 +11,8 @@ import IconOrSvg from '@shell/components/IconOrSvg';
11
11
  withDefaults(defineProps<RcDropdownMenuComponentProps>(), {
12
12
  buttonRole: 'primary',
13
13
  buttonSize: undefined,
14
+ isDetail: false,
15
+ showIcon: false
14
16
  });
15
17
 
16
18
  const emit = defineEmits(['update:open', 'select']);
@@ -31,7 +33,10 @@ const hasOptions = (options: DropdownOption[]) => {
31
33
  :data-testid="dataTestid"
32
34
  :aria-label="buttonAriaLabel"
33
35
  >
34
- <i class="icon icon-actions" />
36
+ <div v-if="showIcon">
37
+ <i data-v-5db2c2c7="" class="icon icon-actions" alt="More actions icon"></i>
38
+ </div>
39
+ <a v-else href="javascript:;">操作</a>
35
40
  </rc-dropdown-trigger>
36
41
  <template #dropdownCollection>
37
42
  <template
@@ -42,7 +47,7 @@ const hasOptions = (options: DropdownOption[]) => {
42
47
  v-if="!a.divider"
43
48
  @click="(e: MouseEvent) => emit('select', e, a)"
44
49
  >
45
- <template #before>
50
+ <!-- <template #before>
46
51
  <IconOrSvg
47
52
  v-if="a.icon || a.svg"
48
53
  :icon="a.icon"
@@ -50,18 +55,19 @@ const hasOptions = (options: DropdownOption[]) => {
50
55
  class="icon"
51
56
  color="header"
52
57
  />
53
- </template>
58
+ </template> -->
54
59
  {{ a.label }}
55
60
  </rc-dropdown-item>
56
- <rc-dropdown-separator
61
+ <!-- <rc-dropdown-separator
57
62
  v-else
58
- />
63
+ /> -->
59
64
  </template>
60
65
  <rc-dropdown-item
61
66
  v-if="!hasOptions(options)"
62
67
  disabled
63
68
  >
64
- No actions available
69
+ <!-- No actions available -->
70
+ 暂无可执行的操作。
65
71
  </rc-dropdown-item>
66
72
  </template>
67
73
  </rc-dropdown>
@@ -46,4 +46,5 @@ export type RcDropdownMenuComponentProps = {
46
46
  buttonAriaLabel?: string;
47
47
  dropdownAriaLabel?: string;
48
48
  dataTestid?: string;
49
+ showIcon?: Boolean;
49
50
  }
@@ -633,7 +633,7 @@ export default defineComponent({
633
633
  }
634
634
 
635
635
  :deep() {
636
- .labeled-input INPUT.no-label,
636
+ // .labeled-input INPUT.no-label,
637
637
  .labeled-input INPUT:hover.no-label,
638
638
  .labeled-input INPUT:focus.no-label {
639
639
  padding: 1px 0px 0px 0px;
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  # 执行命令示例:
4
- # TAG=shell-pkg-v3.0.2-rc.105 ./shell/scripts/publish-shell.sh
4
+ # TAG=shell-pkg-v3.0.5-test.8 ./shell/scripts/publish-shell.sh
5
5
 
6
6
  set -euo pipefail
7
7
 
Binary file
Binary file
@@ -15,14 +15,14 @@
15
15
  animation: initial-load-animate 1s infinite linear;
16
16
  background-color: transparent;
17
17
  box-sizing: border-box;
18
- border: 5px solid #008ACF;
18
+ border: 5px solid #1890FF;
19
19
  border-radius: 50%;
20
- border-top-color: #00B2E2;
20
+ border-top-color: transparent;
21
21
  display: inline-block;
22
22
  height: 80px;
23
23
  margin: 0 auto;
24
24
  width: 80px;
25
- }
25
+ }}
26
26
 
27
27
  @keyframes initial-load-animate {
28
28
  0% {
package/store/i18n.js CHANGED
@@ -18,7 +18,7 @@ export const state = function() {
18
18
  // const available = translationContext.keys().map(path => path.replace(/^.*\/([^\/]+)\.[^.]+$/, '$1'));
19
19
  // Using require.context() forces them to all be in the same webpack chunk name... just hardcode the list for now so zh-hans
20
20
  // gets generated as it's own chunk instead of being loaded all the time.
21
- const available = [DEFAULT_LOCALE, 'zh-hans'];
21
+ const available = ['zh-hans', DEFAULT_LOCALE];
22
22
 
23
23
  const out = {
24
24
  default: DEFAULT_LOCALE,
@@ -229,8 +229,11 @@ export const actions = {
229
229
  const exists = !!state.available.find((loc) => loc === selected);
230
230
 
231
231
  if ( !selected || !exists) {
232
- selected = state.default;
232
+ selected = 'zh-hans';
233
233
  }
234
+
235
+ // selected = 'none'
236
+ selected = 'zh-hans'
234
237
 
235
238
  return dispatch('switchTo', selected);
236
239
  },
package/store/modal.ts CHANGED
@@ -17,7 +17,7 @@ const state = (): ModalState => ({
17
17
  componentProps: {},
18
18
  resources: [],
19
19
  closeOnClickOutside: false,
20
- modalWidth: '600px',
20
+ modalWidth: '610px',
21
21
  modalSticky: false
22
22
  });
23
23
 
@@ -45,7 +45,7 @@ const mutations: MutationTree<ModalState> = {
45
45
  state.componentProps = payload.componentProps || {};
46
46
  state.resources = Array.isArray(payload.resources) ? payload.resources : (payload.resources ? [payload.resources] : []);
47
47
  state.closeOnClickOutside = payload.closeOnClickOutside ?? false;
48
- state.modalWidth = payload.modalWidth || '600px';
48
+ state.modalWidth = payload.modalWidth || '610px';
49
49
  state.modalSticky = payload.modalSticky ?? false;
50
50
  },
51
51
 
@@ -55,7 +55,7 @@ const mutations: MutationTree<ModalState> = {
55
55
  state.componentProps = {};
56
56
  state.resources = [];
57
57
  state.closeOnClickOutside = false;
58
- state.modalWidth = '600px';
58
+ state.modalWidth = '610px';
59
59
  state.modalSticky = false;
60
60
  }
61
61
  };
package/store/prefs.js CHANGED
@@ -57,14 +57,14 @@ export const PINNED_CLUSTERS = create('pinned-clusters', [], { parseJSON });
57
57
  export const GROUP_RESOURCES = create('group-by', 'namespace');
58
58
  export const DIFF = create('diff', 'unified', { options: ['unified', 'split'] });
59
59
  export const THEME = create('theme', 'auto', {
60
- options: ['light', 'auto', 'dark'],
60
+ options: ['light'],
61
61
  asCookie,
62
62
  parseJSON,
63
63
  mangleRead: (x) => x.replace(/^ui-/, ''),
64
- mangleWrite: (x) => `ui-${ x }`,
64
+ mangleWrite: (x) => `ui-light`, // 接口同时修改为 白色
65
65
  });
66
66
  export const PREFERS_SCHEME = create('pcs', '', { asCookie, asUserPreference: false });
67
- export const LOCALE = create('locale', 'en-us', { asCookie });
67
+ export const LOCALE = create('locale', 'zh-hans', { asCookie });
68
68
  export const KEYMAP = create('keymap', 'sublime', { options: ['sublime', 'emacs', 'vim'] });
69
69
  export const ROWS_PER_PAGE = create('per-page', 100, { options: [10, 25, 50, 100], parseJSON });
70
70
  export const LOGS_WRAP = create('logs-wrap', true, { parseJSON });
@@ -149,6 +149,11 @@ export const getters = {
149
149
 
150
150
  const def = clone(definition.def);
151
151
 
152
+ if (key === THEME) {
153
+ // 无论 state 里存的是什么,都强制返回 light
154
+ return 'light';
155
+ }
156
+
152
157
  return def;
153
158
  },
154
159
 
@@ -470,7 +475,9 @@ export const actions = {
470
475
  try {
471
476
  value = JSON.parse(value);
472
477
  } catch (err) {
473
- console.error('Error parsing server pref', key, value, err); // eslint-disable-line no-console
478
+ // 容错处理:如果后端返回 map[...] 这样的字符串,直接忽略或重置为空
479
+ console.warn(`Pref ${ key } has invalid JSON, resetting`, value);
480
+ value = definition.defaultValue || null;
474
481
  continue;
475
482
  }
476
483
  }
package/store/type-map.js CHANGED
@@ -395,6 +395,7 @@ export function productsLoaded() {
395
395
 
396
396
  export const state = function() {
397
397
  return {
398
+ actionsWidth: 0,
398
399
  products: [],
399
400
  virtualTypes: {},
400
401
  spoofedTypes: {},
@@ -464,6 +465,8 @@ export const getters = {
464
465
  };
465
466
  },
466
467
 
468
+ actionsWidth: (state) => state.actionsWidth,
469
+
467
470
  // Turns a group name into a display label (e.g. management.cattle.io.v3.cluster -> Cluster)
468
471
  groupLabelFor(state) {
469
472
  return (schemaOrName) => {
@@ -509,6 +512,12 @@ export const getters = {
509
512
  return state.basicTypes?.[product]?.[schemaId];
510
513
  };
511
514
  },
515
+
516
+ groupsForVirTypes(state) {
517
+ return (product, name) => {
518
+ return state?.virtualTypes?.[product]?.find(item => item.name === name)?.icon;
519
+ };
520
+ },
512
521
 
513
522
  optionsFor(state, getters, rootState, rootGetters) {
514
523
  const def = {
@@ -661,7 +670,18 @@ export const getters = {
661
670
 
662
671
  const label = typeObj.labelKey ? rootGetters['i18n/t'](typeObj.labelKey) || typeObj.label : typeObj.label;
663
672
 
664
- let labelDisplay = highlightLabel(label, count, typeObj.schema);
673
+ const virtual = !!typeObj.virtual;
674
+ let icon = typeObj.icon;
675
+
676
+ if ( (!virtual || typeObj.isSpoofed ) && !icon ) {
677
+ if ( namespaced ) {
678
+ icon = 'folder';
679
+ } else {
680
+ icon = 'globe';
681
+ }
682
+ }
683
+
684
+ let labelDisplay = highlightLabel(label, icon, count, typeObj.schema);
665
685
 
666
686
  // If we did not match on just the label, add the schema name and see if that matches
667
687
  if (!labelDisplay && typeObj.schema?.attributes) {
@@ -778,7 +798,7 @@ export const getters = {
778
798
  return group;
779
799
  }
780
800
 
781
- function highlightLabel(original, count, schema) {
801
+ function highlightLabel(original, icon, count, schema) {
782
802
  let label = escapeHtml(original);
783
803
 
784
804
  if ( searchRegex ) {
@@ -802,6 +822,12 @@ export const getters = {
802
822
  }
803
823
  }
804
824
 
825
+ if ( icon ) {
826
+ console.log(icon)
827
+ label = `<i class="icon icon-fw icon-${ icon }"></i>${ label }`;
828
+ console.log(label)
829
+ }
830
+
805
831
  return label;
806
832
  }
807
833
  };
@@ -1471,6 +1497,10 @@ export const getters = {
1471
1497
  };
1472
1498
 
1473
1499
  export const mutations = {
1500
+ setActionsWidth(state, width) {
1501
+ state.actionsWidth = width
1502
+ },
1503
+
1474
1504
  schemaChanged(state) {
1475
1505
  state.schemaGeneration = state.schemaGeneration + 1;
1476
1506
  },