@dao-style/biz 0.6.0 → 0.7.0

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 (186) hide show
  1. package/dist/cjs/components/gpu/style/assign-gpu-devices-list.js +1 -0
  2. package/dist/cjs/components/gpu/style/gpu-form.js +1 -0
  3. package/dist/components/form-block/FormBlock.d.ts +27 -1
  4. package/dist/components/form-block/props.d.ts +4 -0
  5. package/dist/components/form-block/props.js +4 -0
  6. package/dist/components/form-block/props.mjs +4 -0
  7. package/dist/components/form-block/src/FormBlock.vue.d.ts +11 -0
  8. package/dist/components/form-block/src/FormBlock.vue.js +4 -4
  9. package/dist/components/form-block/src/FormBlock.vue.mjs +4 -4
  10. package/dist/components/form-block/src/FormBlock.vue2.js +12 -1
  11. package/dist/components/form-block/src/FormBlock.vue2.mjs +12 -1
  12. package/dist/components/gpu/props.d.ts +121 -3
  13. package/dist/components/gpu/props.js +82 -9
  14. package/dist/components/gpu/props.mjs +82 -9
  15. package/dist/components/gpu/src/GpuForm.vue.d.ts +283 -50
  16. package/dist/components/gpu/src/GpuForm.vue.js +25 -24
  17. package/dist/components/gpu/src/GpuForm.vue.mjs +26 -25
  18. package/dist/components/gpu/src/GpuForm.vue2.js +115 -218
  19. package/dist/components/gpu/src/GpuForm.vue2.mjs +116 -219
  20. package/dist/components/gpu/src/components/AssignGpuDevicesList.vue.d.ts +77 -0
  21. package/dist/components/gpu/src/components/AssignGpuDevicesList.vue.js +40 -0
  22. package/dist/components/gpu/src/components/AssignGpuDevicesList.vue.mjs +41 -0
  23. package/dist/components/gpu/src/components/AssignGpuDevicesList.vue2.js +191 -0
  24. package/dist/components/gpu/src/components/AssignGpuDevicesList.vue2.mjs +192 -0
  25. package/dist/components/gpu/src/components/GpuAdvancedForm.vue.d.ts +180 -0
  26. package/dist/components/gpu/src/{GpuAdvancedForm.vue.js → components/GpuAdvancedForm.vue.js} +92 -37
  27. package/dist/components/gpu/src/{GpuAdvancedForm.vue.mjs → components/GpuAdvancedForm.vue.mjs} +93 -38
  28. package/dist/components/gpu/src/components/GpuAdvancedForm.vue2.js +169 -0
  29. package/dist/components/gpu/src/components/GpuAdvancedForm.vue2.mjs +153 -0
  30. package/dist/components/gpu/src/{GpuFormDynamicItem.vue.d.ts → components/GpuFormDynamicItem.vue.d.ts} +4 -4
  31. package/dist/components/gpu/src/{GpuFormDynamicItem.vue.js → components/GpuFormDynamicItem.vue.js} +1 -1
  32. package/dist/components/gpu/src/{GpuFormDynamicItem.vue.mjs → components/GpuFormDynamicItem.vue.mjs} +1 -1
  33. package/dist/components/gpu/src/{GpuFormDynamicItem.vue2.js → components/GpuFormDynamicItem.vue2.js} +1 -1
  34. package/dist/components/gpu/src/{GpuFormDynamicItem.vue2.mjs → components/GpuFormDynamicItem.vue2.mjs} +1 -1
  35. package/dist/components/gpu/src/components/GpuFormItem.vue.d.ts +310 -0
  36. package/dist/components/gpu/src/{GpuFormItem.vue.js → components/GpuFormItem.vue.js} +22 -26
  37. package/dist/components/gpu/src/{GpuFormItem.vue.mjs → components/GpuFormItem.vue.mjs} +23 -27
  38. package/dist/components/gpu/src/components/GpuFormItem.vue2.js +61 -0
  39. package/dist/components/gpu/src/components/GpuFormItem.vue2.mjs +45 -0
  40. package/dist/components/gpu/src/{GpuResources.vue.d.ts → components/GpuResources.vue.d.ts} +38 -18
  41. package/dist/components/gpu/src/components/GpuResources.vue.js +153 -0
  42. package/dist/components/gpu/src/components/GpuResources.vue.mjs +154 -0
  43. package/dist/components/gpu/src/components/GpuResources.vue2.js +278 -0
  44. package/dist/components/gpu/src/components/GpuResources.vue2.mjs +262 -0
  45. package/dist/components/gpu/src/gpuForm.constants.d.ts +3 -0
  46. package/dist/components/gpu/src/gpuForm.constants.js +10 -0
  47. package/dist/components/gpu/src/gpuForm.constants.mjs +10 -0
  48. package/dist/components/gpu/src/gpuForm.internal-types.d.ts +49 -0
  49. package/dist/components/gpu/src/gpuForm.mapper.d.ts +16 -0
  50. package/dist/components/gpu/src/gpuForm.mapper.js +199 -0
  51. package/dist/components/gpu/src/gpuForm.mapper.mjs +199 -0
  52. package/dist/components/gpu/src/gpuFormItem.mapper.d.ts +38 -0
  53. package/dist/components/gpu/src/gpuFormItem.mapper.js +153 -0
  54. package/dist/components/gpu/src/gpuFormItem.mapper.mjs +153 -0
  55. package/dist/components/gpu/src/useGPUOptions.d.ts +2 -2
  56. package/dist/components/gpu/src/useGPUOptions.js +15 -20
  57. package/dist/components/gpu/src/useGPUOptions.mjs +16 -21
  58. package/dist/components/gpu/src/useGpuFormItemState.d.ts +42 -0
  59. package/dist/components/gpu/src/useGpuFormItemState.js +178 -0
  60. package/dist/components/gpu/src/useGpuFormItemState.mjs +178 -0
  61. package/dist/components/gpu/src/useGpuFormSideState.d.ts +52 -0
  62. package/dist/components/gpu/src/useGpuFormSideState.js +71 -0
  63. package/dist/components/gpu/src/useGpuFormSideState.mjs +71 -0
  64. package/dist/components/gpu/src/useGpuFormState.d.ts +560 -0
  65. package/dist/components/gpu/src/useGpuFormState.js +52 -0
  66. package/dist/components/gpu/src/useGpuFormState.mjs +52 -0
  67. package/dist/components/gpu/src/validations/nvidiaVgpuMemoryDecimal.d.ts +5 -1
  68. package/dist/components/gpu/style/assign-gpu-devices-list.d.ts +1 -0
  69. package/dist/components/gpu/style/assign-gpu-devices-list.scss.js +3 -0
  70. package/dist/components/gpu/style/assign-gpu-devices-list.scss.mjs +4 -0
  71. package/dist/components/gpu/style/gpu-form.d.ts +1 -0
  72. package/dist/components/gpu/types.d.ts +6 -0
  73. package/dist/components/gpu/types.js +2 -0
  74. package/dist/components/gpu/types.mjs +2 -0
  75. package/dist/components/gpu/utils.d.ts +4 -0
  76. package/dist/components/gpu/utils.js +14 -0
  77. package/dist/components/gpu/utils.mjs +14 -0
  78. package/dist/components/instance-cluster/src/InstanceCluster.vue.d.ts +1 -1
  79. package/dist/components/instance-namespace/src/InstanceNamespace.vue.d.ts +1 -1
  80. package/dist/components/instance-storage-class/src/InstanceStorageClass.vue.d.ts +1 -1
  81. package/dist/components/network-config/src/NetworkConfig.vue.d.ts +1 -1
  82. package/dist/components/network-config/src/NetworkConfig.vue.js +13 -6
  83. package/dist/components/network-config/src/NetworkConfig.vue.mjs +14 -7
  84. package/dist/dialogs/create-network-config-dialog/src/CreateNetworkConfigDialog.vue.d.ts +1 -1
  85. package/dist/es/components/gpu/style/assign-gpu-devices-list.mjs +1 -0
  86. package/dist/es/components/gpu/style/gpu-form.mjs +1 -0
  87. package/dist/forms/import-parameter-template/props.d.ts +8 -8
  88. package/dist/forms/import-parameter-template/src/ImportParameterTemplate.vue.d.ts +24 -24
  89. package/dist/group-mapping.json +1 -1
  90. package/dist/index.js +34 -23
  91. package/dist/index.mjs +15 -4
  92. package/dist/locales/en-US/components/Gpu.json.js +36 -9
  93. package/dist/locales/en-US/components/Gpu.json.mjs +37 -10
  94. package/dist/locales/en-US/index.js +2 -0
  95. package/dist/locales/en-US/index.mjs +2 -0
  96. package/dist/locales/en-US/uses/UseCancelFormDialog.json.js +11 -0
  97. package/dist/locales/en-US/uses/UseCancelFormDialog.json.mjs +11 -0
  98. package/dist/locales/ja/components/Gpu.json.js +36 -9
  99. package/dist/locales/ja/components/Gpu.json.mjs +37 -10
  100. package/dist/locales/ja/components/InstancePassword.json.js +1 -1
  101. package/dist/locales/ja/components/InstancePassword.json.mjs +1 -1
  102. package/dist/locales/ja/components/MatchExpressionsEditor.json.js +1 -1
  103. package/dist/locales/ja/components/MatchExpressionsEditor.json.mjs +1 -1
  104. package/dist/locales/ja/components/NetworkConfig.json.js +1 -1
  105. package/dist/locales/ja/components/NetworkConfig.json.mjs +1 -1
  106. package/dist/locales/ja/index.js +2 -0
  107. package/dist/locales/ja/index.mjs +2 -0
  108. package/dist/locales/ja/uses/UseCancelFormDialog.json.js +11 -0
  109. package/dist/locales/ja/uses/UseCancelFormDialog.json.mjs +11 -0
  110. package/dist/locales/ja/workloads/DnsConfig.json.js +1 -1
  111. package/dist/locales/ja/workloads/DnsConfig.json.mjs +1 -1
  112. package/dist/locales/ja/workloads/workload-advanced/NetworkConfig.json.js +1 -1
  113. package/dist/locales/ja/workloads/workload-advanced/NetworkConfig.json.mjs +1 -1
  114. package/dist/locales/zh-CN/components/Gpu.json.js +36 -9
  115. package/dist/locales/zh-CN/components/Gpu.json.mjs +37 -10
  116. package/dist/locales/zh-CN/index.js +2 -0
  117. package/dist/locales/zh-CN/index.mjs +2 -0
  118. package/dist/locales/zh-CN/uses/UseCancelFormDialog.json.js +11 -0
  119. package/dist/locales/zh-CN/uses/UseCancelFormDialog.json.mjs +11 -0
  120. package/dist/style.css +692 -664
  121. package/dist/styles/components/gpu/assign-gpu-devices-list.css +10 -0
  122. package/dist/styles/components/gpu/gpu-form-item.css +16 -0
  123. package/dist/styles/components/gpu/gpu-form.css +4 -0
  124. package/dist/styles/components/network-config/network-config.css +3 -0
  125. package/dist/styles/components/resource-config/resource-config.css +0 -8
  126. package/dist/styles/styles/common.css +4 -0
  127. package/dist/uses/index.d.ts +1 -0
  128. package/dist/uses/useCancelFormDialog/index.d.ts +11 -0
  129. package/dist/uses/useCancelFormDialog/index.js +40 -0
  130. package/dist/uses/useCancelFormDialog/index.mjs +40 -0
  131. package/dist/uses/useCancelFormDialog/src/CancelFormDialog.vue.d.ts +8 -0
  132. package/dist/uses/useCancelFormDialog/src/CancelFormDialog.vue.js +25 -0
  133. package/dist/uses/useCancelFormDialog/src/CancelFormDialog.vue.mjs +26 -0
  134. package/dist/uses/useCancelFormDialog/src/CancelFormDialog.vue2.js +3 -0
  135. package/dist/uses/useCancelFormDialog/src/CancelFormDialog.vue2.mjs +4 -0
  136. package/dist/utils/index.d.ts +1 -0
  137. package/dist/utils/injectWithSelf.d.ts +6 -0
  138. package/dist/utils/injectWithSelf.js +8 -0
  139. package/dist/utils/injectWithSelf.mjs +8 -0
  140. package/dist/utils/multiRowEditorValidate.d.ts +5 -5
  141. package/dist/utils/useResetFieldValue.d.ts +13 -0
  142. package/dist/utils/useResetFieldValue.js +28 -0
  143. package/dist/utils/useResetFieldValue.mjs +28 -0
  144. package/dist/utils/useSetFieldValue.d.ts +6 -0
  145. package/dist/utils/useSetFieldValue.js +2 -5
  146. package/dist/utils/useSetFieldValue.mjs +2 -5
  147. package/dist/workloads/container-basic-info/props.d.ts +13 -0
  148. package/dist/workloads/container-basic-info/props.js +4 -0
  149. package/dist/workloads/container-basic-info/props.mjs +4 -0
  150. package/dist/workloads/container-basic-info/src/ContainerBasicInfo.vue.d.ts +10 -0
  151. package/dist/workloads/container-basic-info/src/ContainerBasicInfo.vue.js +54 -29
  152. package/dist/workloads/container-basic-info/src/ContainerBasicInfo.vue.mjs +54 -29
  153. package/dist/workloads/container-basic-info/src/ContainerBasicInfo.vue2.js +18 -8
  154. package/dist/workloads/container-basic-info/src/ContainerBasicInfo.vue2.mjs +19 -9
  155. package/dist/workloads/container-image/src/dialogs/SelectImageDialog.vue.d.ts +1 -1
  156. package/dist/workloads/containers/demo/data.d.ts +8 -1
  157. package/dist/workloads/containers/src/ContainerItem.vue.d.ts +23 -0
  158. package/dist/workloads/containers/src/Containers.vue.d.ts +4 -0
  159. package/dist/workloads/containers/src/Containers.vue2.js +18 -1
  160. package/dist/workloads/containers/src/Containers.vue2.mjs +19 -2
  161. package/dist/workloads/health-check/props.d.ts +4 -0
  162. package/dist/workloads/health-check/props.js +4 -0
  163. package/dist/workloads/health-check/props.mjs +4 -0
  164. package/dist/workloads/health-check/src/HealthCheck.vue.d.ts +9 -0
  165. package/dist/workloads/health-check/src/HealthCheck.vue.js +6 -6
  166. package/dist/workloads/health-check/src/HealthCheck.vue.mjs +6 -6
  167. package/dist/workloads/health-check/src/HealthCheckHandler.vue.js +3 -1
  168. package/dist/workloads/health-check/src/HealthCheckHandler.vue.mjs +3 -1
  169. package/dist/workloads/http-get-action/src/HttpGetAction.vue.js +1 -1
  170. package/dist/workloads/http-get-action/src/HttpGetAction.vue.mjs +1 -1
  171. package/dist/workloads/workload-annotations/props.d.ts +1 -0
  172. package/dist/workloads/workload-annotations/props.js +1 -0
  173. package/dist/workloads/workload-annotations/props.mjs +2 -1
  174. package/package.json +12 -13
  175. package/dist/components/gpu/src/GpuAdvancedForm.vue.d.ts +0 -131
  176. package/dist/components/gpu/src/GpuAdvancedForm.vue2.js +0 -92
  177. package/dist/components/gpu/src/GpuAdvancedForm.vue2.mjs +0 -76
  178. package/dist/components/gpu/src/GpuFormItem.vue.d.ts +0 -232
  179. package/dist/components/gpu/src/GpuFormItem.vue2.js +0 -235
  180. package/dist/components/gpu/src/GpuFormItem.vue2.mjs +0 -219
  181. package/dist/components/gpu/src/GpuResources.vue.js +0 -125
  182. package/dist/components/gpu/src/GpuResources.vue.mjs +0 -126
  183. package/dist/components/gpu/src/GpuResources.vue2.js +0 -197
  184. package/dist/components/gpu/src/GpuResources.vue2.mjs +0 -181
  185. package/dist/components/gpu/src/validations/nvidiaVgpuMemoryDecimal.js +0 -19
  186. package/dist/components/gpu/src/validations/nvidiaVgpuMemoryDecimal.mjs +0 -20
@@ -9,6 +9,8 @@ const _hoisted_2 = {
9
9
  };
10
10
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11
11
  const _component_dao_switch = vue.resolveComponent("dao-switch");
12
+ const _component_dao_history_link = vue.resolveComponent("dao-history-link");
13
+ const _component_dao_message = vue.resolveComponent("dao-message");
12
14
  const _component_gpu_form_item = vue.resolveComponent("gpu-form-item");
13
15
  const _component_dao_action_icon = vue.resolveComponent("dao-action-icon");
14
16
  const _component_dao_text_button = vue.resolveComponent("dao-text-button");
@@ -31,6 +33,27 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
31
33
  class: "dao-gpu-form__item"
32
34
  }, [
33
35
  vue.createElementVNode("div", _hoisted_1, [
36
+ index === 0 && _ctx.gpuUsage === "workload" && _ctx.availableQuotaLink ? (vue.openBlock(), vue.createBlock(_component_dao_message, {
37
+ key: 0,
38
+ class: "dao-gpu-form__available-quota-message",
39
+ type: "info",
40
+ simple: ""
41
+ }, {
42
+ default: vue.withCtx(() => [
43
+ vue.createVNode(_component_dao_history_link, {
44
+ type: "action",
45
+ target: "_blank",
46
+ "icon-right": "icon-new-tab",
47
+ href: _ctx.availableQuotaLink
48
+ }, {
49
+ default: vue.withCtx(() => [
50
+ vue.createTextVNode(vue.toDisplayString(_ctx.$t("biz.components.Gpu.viewNamespaceAvailableQuota")), 1)
51
+ ]),
52
+ _: 1
53
+ }, 8, ["href"])
54
+ ]),
55
+ _: 1
56
+ })) : vue.createCommentVNode("", true),
34
57
  vue.createVNode(_component_gpu_form_item, vue.mergeProps({
35
58
  ref_for: true,
36
59
  ref: ($e) => _ctx.rowsRef[index] = $e,
@@ -38,19 +61,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
38
61
  "exist-types": _ctx.existTypes,
39
62
  "used-quota-item": _ctx.getUsedQuotaItem(index),
40
63
  "available-quota-item": _ctx.getAvailableQuotaItem(index)
41
- }, {
42
- targetType: _ctx.targetType,
43
- enableRemoteCall: _ctx.enableRemoteCall,
44
- enableRangeValidate: _ctx.enableRangeValidate,
45
- enableNvidiaVgpuModel: _ctx.enableNvidiaVgpuModel,
46
- enableNvidiaVgpuPriority: _ctx.enableNvidiaVgpuPriority,
47
- enableNvidiaVgpuSchedulePolicy: _ctx.enableNvidiaVgpuSchedulePolicy,
48
- dynamicLimitOne: _ctx.dynamicLimitOne,
49
- gpuOptionsMap: _ctx.gpuOptionsMap,
50
- getDisplayResource: _ctx.getDisplayResource,
51
- nvidiaGpuModels: _ctx.nvidiaGpuModels,
52
- gpuSettingsAdaptor: _ctx.gpuSettingsAdaptor
53
- }, {
64
+ }, _ctx.gpuFormItemProps, {
54
65
  onChange: ($e) => _ctx.handleRowChange(index, $e),
55
66
  onRefreshGpuOptionsMap: _ctx.fetchGpuOptions
56
67
  }), vue.createSlots({ _: 2 }, [
@@ -77,17 +88,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
77
88
  "quota-item": _ctx.sideRows[index],
78
89
  "exist-types": _ctx.existTypes,
79
90
  "is-side": ""
80
- }, {
81
- targetType: _ctx.targetType,
82
- enableRemoteCall: _ctx.enableRemoteCall,
83
- enableRangeValidate: _ctx.enableRangeValidate,
84
- enableNvidiaVgpuModel: _ctx.enableNvidiaVgpuModel,
85
- enableNvidiaVgpuPriority: _ctx.enableNvidiaVgpuPriority,
86
- gpuOptionsMap: _ctx.gpuOptionsMap,
87
- getDisplayResource: _ctx.getDisplayResource,
88
- nvidiaGpuModels: _ctx.nvidiaGpuModels,
89
- gpuSettingsAdaptor: _ctx.gpuSettingsAdaptor
90
- }), vue.createSlots({ _: 2 }, [
91
+ }, _ctx.sideGpuFormItemProps), vue.createSlots({ _: 2 }, [
91
92
  vue.renderList(_ctx.$slots, (slotValue, slotName) => {
92
93
  return {
93
94
  name: slotName,
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from "./GpuForm.vue2.mjs";
2
- import { resolveComponent, openBlock, createElementBlock, Fragment, createBlock, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, normalizeClass, renderList, createVNode, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString } from "vue";
2
+ import { resolveComponent, openBlock, createElementBlock, Fragment, createBlock, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, normalizeClass, renderList, withCtx, createVNode, createTextVNode, toDisplayString, mergeProps, createSlots } from "vue";
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
4
  const _hoisted_1 = { class: "solid-wrapper dao-gpu-form__item--primary" };
5
5
  const _hoisted_2 = {
@@ -8,6 +8,8 @@ const _hoisted_2 = {
8
8
  };
9
9
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
10
10
  const _component_dao_switch = resolveComponent("dao-switch");
11
+ const _component_dao_history_link = resolveComponent("dao-history-link");
12
+ const _component_dao_message = resolveComponent("dao-message");
11
13
  const _component_gpu_form_item = resolveComponent("gpu-form-item");
12
14
  const _component_dao_action_icon = resolveComponent("dao-action-icon");
13
15
  const _component_dao_text_button = resolveComponent("dao-text-button");
@@ -30,6 +32,27 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
30
32
  class: "dao-gpu-form__item"
31
33
  }, [
32
34
  createElementVNode("div", _hoisted_1, [
35
+ index === 0 && _ctx.gpuUsage === "workload" && _ctx.availableQuotaLink ? (openBlock(), createBlock(_component_dao_message, {
36
+ key: 0,
37
+ class: "dao-gpu-form__available-quota-message",
38
+ type: "info",
39
+ simple: ""
40
+ }, {
41
+ default: withCtx(() => [
42
+ createVNode(_component_dao_history_link, {
43
+ type: "action",
44
+ target: "_blank",
45
+ "icon-right": "icon-new-tab",
46
+ href: _ctx.availableQuotaLink
47
+ }, {
48
+ default: withCtx(() => [
49
+ createTextVNode(toDisplayString(_ctx.$t("biz.components.Gpu.viewNamespaceAvailableQuota")), 1)
50
+ ]),
51
+ _: 1
52
+ }, 8, ["href"])
53
+ ]),
54
+ _: 1
55
+ })) : createCommentVNode("", true),
33
56
  createVNode(_component_gpu_form_item, mergeProps({
34
57
  ref_for: true,
35
58
  ref: ($e) => _ctx.rowsRef[index] = $e,
@@ -37,19 +60,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
37
60
  "exist-types": _ctx.existTypes,
38
61
  "used-quota-item": _ctx.getUsedQuotaItem(index),
39
62
  "available-quota-item": _ctx.getAvailableQuotaItem(index)
40
- }, {
41
- targetType: _ctx.targetType,
42
- enableRemoteCall: _ctx.enableRemoteCall,
43
- enableRangeValidate: _ctx.enableRangeValidate,
44
- enableNvidiaVgpuModel: _ctx.enableNvidiaVgpuModel,
45
- enableNvidiaVgpuPriority: _ctx.enableNvidiaVgpuPriority,
46
- enableNvidiaVgpuSchedulePolicy: _ctx.enableNvidiaVgpuSchedulePolicy,
47
- dynamicLimitOne: _ctx.dynamicLimitOne,
48
- gpuOptionsMap: _ctx.gpuOptionsMap,
49
- getDisplayResource: _ctx.getDisplayResource,
50
- nvidiaGpuModels: _ctx.nvidiaGpuModels,
51
- gpuSettingsAdaptor: _ctx.gpuSettingsAdaptor
52
- }, {
63
+ }, _ctx.gpuFormItemProps, {
53
64
  onChange: ($e) => _ctx.handleRowChange(index, $e),
54
65
  onRefreshGpuOptionsMap: _ctx.fetchGpuOptions
55
66
  }), createSlots({ _: 2 }, [
@@ -76,17 +87,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
76
87
  "quota-item": _ctx.sideRows[index],
77
88
  "exist-types": _ctx.existTypes,
78
89
  "is-side": ""
79
- }, {
80
- targetType: _ctx.targetType,
81
- enableRemoteCall: _ctx.enableRemoteCall,
82
- enableRangeValidate: _ctx.enableRangeValidate,
83
- enableNvidiaVgpuModel: _ctx.enableNvidiaVgpuModel,
84
- enableNvidiaVgpuPriority: _ctx.enableNvidiaVgpuPriority,
85
- gpuOptionsMap: _ctx.gpuOptionsMap,
86
- getDisplayResource: _ctx.getDisplayResource,
87
- nvidiaGpuModels: _ctx.nvidiaGpuModels,
88
- gpuSettingsAdaptor: _ctx.gpuSettingsAdaptor
89
- }), createSlots({ _: 2 }, [
90
+ }, _ctx.sideGpuFormItemProps), createSlots({ _: 2 }, [
90
91
  renderList(_ctx.$slots, (slotValue, slotName) => {
91
92
  return {
92
93
  name: slotName,
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
3
  const lodashEs = require("lodash-es");
4
+ const extend = require("@dao-style/extend");
4
5
  const props = require("../props.js");
5
- const types = require("../types.js");
6
- const GpuFormItem = require("./GpuFormItem.vue.js");
6
+ const GpuFormItem = require("./components/GpuFormItem.vue.js");
7
7
  const useGPUOptions = require("./useGPUOptions.js");
8
- const utils = require("../utils.js");
8
+ const gpuForm_mapper = require("./gpuForm.mapper.js");
9
+ const useGpuFormState = require("./useGpuFormState.js");
10
+ const useGpuFormSideState = require("./useGpuFormSideState.js");
11
+ require("../style/assign-gpu-devices-list.scss.js");
9
12
  require("../style/gpu-form-item.scss.js");
10
13
  require("../style/gpu-form.scss.js");
11
- const randomStr = require("../../../utils/randomStr.js");
12
- const formatNumUnit = require("../../../utils/formatNumUnit.js");
13
14
  const _sfc_main = vue.defineComponent({
14
15
  name: "DaoGpuForm",
15
16
  components: {
17
+ DaoHistoryLink: extend.DaoHistoryLink,
16
18
  GpuFormItem
17
19
  },
18
20
  props: props.gpuFormProps,
@@ -21,11 +23,11 @@ const _sfc_main = vue.defineComponent({
21
23
  "update:nvidiaVgpuModel",
22
24
  "update:nvidiaVgpuPriority",
23
25
  "update:nvidiaVgpuGpuSchedule",
24
- "update:nvidiaVgpuNodeSchedule"
26
+ "update:nvidiaVgpuNodeSchedule",
27
+ "update:nvidiaVgpuDevices"
25
28
  ],
26
29
  setup(props$1, { emit }) {
27
30
  const isLimitOne = vue.computed(() => props$1.limit === 1);
28
- const showSide = vue.computed(() => !!props$1.usedQuota || !!props$1.availableQuota);
29
31
  const {
30
32
  gpuOptionsMap,
31
33
  getDisplayResource,
@@ -45,114 +47,66 @@ const _sfc_main = vue.defineComponent({
45
47
  }, []);
46
48
  nvidiaGpuModels.value = Array.from(new Set(modelsArray));
47
49
  };
48
- const rows = vue.ref([]);
49
- const sideRows = vue.ref([]);
50
- const rowsRef = vue.ref([]);
51
- const existTypes = vue.computed(() => rows.value.reduce((pre, row) => {
52
- if (row.type) {
53
- pre.push(row.type);
54
- }
55
- return pre;
56
- }, []));
50
+ const {
51
+ rows,
52
+ rowsRef,
53
+ existTypes,
54
+ updateRow,
55
+ addRow,
56
+ removeRow,
57
+ filterRows,
58
+ validate
59
+ } = useGpuFormState.useGpuFormState();
60
+ const {
61
+ sideRows,
62
+ showSide,
63
+ sideQuota,
64
+ syncSideRowChange,
65
+ syncSideRowAdd,
66
+ syncSideRowDelete,
67
+ syncFilter,
68
+ initSideRows,
69
+ getUsedQuotaItem,
70
+ getAvailableQuotaItem
71
+ } = useGpuFormSideState.useGpuFormSideState({
72
+ usedQuota: vue.computed(() => props$1.usedQuota),
73
+ availableQuota: vue.computed(() => props$1.availableQuota),
74
+ gpuOptionsMap,
75
+ withPrefixRequest: vue.computed(() => props$1.withPrefixRequest)
76
+ });
57
77
  const formatToUpdate = () => {
58
- let currentNvidiaVgpuModel = "";
59
- let currentNvidiaVgpuPriority = "";
60
- let currentNvidiaVgpuGpuSchedule;
61
- let currentNvidiaVgpuNodeSchedule;
62
- const resources = rows.value.reduce((pre, row) => {
63
- const {
64
- type,
65
- resources: rest,
66
- [types.nvidiaVgpuModelKey]: nvidiaVgpuModel,
67
- [types.nvidiaVgpuPriorityKey]: nvidiaVgpuPriority,
68
- [types.nvidiaVgpuGpuScheduleKey]: nvidiaVgpuGpuSchedule,
69
- [types.nvidiaVgpuNodeScheduleKey]: nvidiaVgpuNodeSchedule
70
- } = row;
71
- const vgpuResource = Object.entries(rest ?? {}).reduce((preRes, [key, val]) => {
72
- const finalResourceKey = utils.deSanitizeGPUKey(key) ?? "";
73
- Object.assign(preRes, {
74
- [props$1.withPrefixRequest ? `requests.${finalResourceKey}` : finalResourceKey]: val
75
- });
76
- return preRes;
77
- }, {});
78
- Object.assign(pre, vgpuResource);
79
- if (type === props.nvidiaVgpuKey) {
80
- currentNvidiaVgpuModel = nvidiaVgpuModel;
81
- currentNvidiaVgpuPriority = nvidiaVgpuPriority;
82
- currentNvidiaVgpuGpuSchedule = nvidiaVgpuGpuSchedule;
83
- currentNvidiaVgpuNodeSchedule = nvidiaVgpuNodeSchedule;
84
- } else {
85
- currentNvidiaVgpuModel = void 0;
86
- currentNvidiaVgpuPriority = void 0;
87
- currentNvidiaVgpuGpuSchedule = void 0;
88
- currentNvidiaVgpuNodeSchedule = void 0;
89
- }
90
- return pre;
91
- }, {});
92
- const res = {
93
- types: existTypes.value,
94
- resources
95
- };
96
- emit("change", res);
78
+ const formattedUpdate = gpuForm_mapper.buildGpuFormFormattedUpdate(
79
+ rows.value,
80
+ existTypes.value,
81
+ props$1.withPrefixRequest
82
+ );
83
+ emit("change", formattedUpdate.change);
97
84
  const vgpuExist = existTypes.value.includes(props.nvidiaVgpuKey);
98
- if (props$1.enableNvidiaVgpuModel && vgpuExist) {
99
- emit("update:nvidiaVgpuModel", currentNvidiaVgpuModel);
100
- } else if (props$1.nvidiaVgpuModel) {
101
- emit("update:nvidiaVgpuModel", void 0);
102
- }
103
- if (props$1.enableNvidiaVgpuPriority && vgpuExist) {
104
- emit("update:nvidiaVgpuPriority", currentNvidiaVgpuPriority);
105
- } else if (props$1.nvidiaVgpuPriority) {
106
- emit("update:nvidiaVgpuPriority", void 0);
107
- }
108
- if (props$1.enableNvidiaVgpuSchedulePolicy && vgpuExist) {
109
- emit("update:nvidiaVgpuGpuSchedule", currentNvidiaVgpuGpuSchedule);
110
- emit("update:nvidiaVgpuNodeSchedule", currentNvidiaVgpuNodeSchedule);
111
- } else if (props$1.nvidiaVgpuGpuSchedule || props$1.nvidiaVgpuNodeSchedule) {
112
- emit("update:nvidiaVgpuGpuSchedule", void 0);
113
- emit("update:nvidiaVgpuNodeSchedule", void 0);
114
- }
85
+ gpuForm_mapper.buildGpuFormVgpuUpdateEmits(
86
+ formattedUpdate.vgpu,
87
+ props$1,
88
+ vgpuExist
89
+ ).forEach(([event, value]) => {
90
+ if (event === "update:nvidiaVgpuDevices") {
91
+ emit(event, value);
92
+ return;
93
+ }
94
+ emit(event, value);
95
+ });
115
96
  };
116
- const sideQuota = vue.computed(() => props$1.usedQuota ?? props$1.availableQuota);
117
97
  const handleRowChange = (idx, newRow) => {
118
- var _a, _b;
119
- rows.value[idx] = newRow;
120
- if (showSide.value) {
121
- const sideNewRow = lodashEs.cloneDeep(newRow);
122
- sideRows.value[idx] = sideNewRow;
123
- const sideRow = sideRows.value[idx];
124
- sideRow.type = (_a = sideNewRow.type) == null ? void 0 : _a.toString();
125
- const currentGpuSettings = gpuOptionsMap.value.get(sideRow.type ?? "");
126
- sideRow.resources = {};
127
- (_b = currentGpuSettings == null ? void 0 : currentGpuSettings.resource) == null ? void 0 : _b.forEach(({ key }) => {
128
- var _a2;
129
- const actualKey = props$1.withPrefixRequest ? `requests.${key}` : key;
130
- const val = (_a2 = sideQuota.value) == null ? void 0 : _a2.resources[actualKey ?? ""];
131
- if (val !== void 0) {
132
- lodashEs.set(sideRow, ["resources", utils.sanitizeGPUKey(key) ?? ""], formatNumUnit.formatNumUnit(val));
133
- }
134
- });
135
- }
98
+ updateRow(idx, newRow);
99
+ syncSideRowChange(idx, newRow);
136
100
  formatToUpdate();
137
101
  };
138
102
  const handleAdd = () => {
139
- rows.value.push({
140
- id: randomStr.randomStr(3),
141
- type: ""
142
- });
143
- if (showSide.value) {
144
- sideRows.value.push({
145
- id: randomStr.randomStr(3),
146
- type: ""
147
- });
148
- }
103
+ addRow();
104
+ syncSideRowAdd();
149
105
  formatToUpdate();
150
106
  };
151
107
  const handleDeleteRow = (idx) => {
152
- rows.value.splice(idx, 1);
153
- if (sideRows.value.length) {
154
- sideRows.value.splice(idx, 1);
155
- }
108
+ removeRow(idx);
109
+ syncSideRowDelete(idx);
156
110
  formatToUpdate();
157
111
  };
158
112
  const enableGpu = vue.computed({
@@ -167,101 +121,32 @@ const _sfc_main = vue.defineComponent({
167
121
  }
168
122
  }
169
123
  });
170
- const getUpdateRows = (items) => {
171
- const diffRows = [];
172
- items.forEach((v) => {
173
- if (v.type && gpuOptionsMap.value.has(v.type)) {
174
- diffRows.push(v);
175
- }
176
- });
177
- if (!diffRows.length) {
178
- return [{
179
- id: randomStr.randomStr(3),
180
- type: ""
181
- }];
182
- }
183
- return diffRows;
184
- };
185
124
  const initValues = () => {
186
125
  if (rows.value.length || sideRows.value.length) {
187
- rows.value = getUpdateRows(rows.value);
188
- sideRows.value = getUpdateRows(sideRows.value);
126
+ filterRows(gpuOptionsMap.value);
127
+ syncFilter();
189
128
  formatToUpdate();
190
129
  return;
191
130
  }
192
- const { types: types$1, resources } = lodashEs.cloneDeep(props$1.quota);
193
- const {
194
- types: availableTypes
195
- } = props$1.availableQuota ?? {};
196
- const newTypes = [.../* @__PURE__ */ new Set([...availableTypes ?? [], ...types$1])];
197
- const tempRows = [];
198
- const tempSideRows = [];
199
- newTypes.forEach((type) => {
200
- if (!gpuOptionsMap.value.has(type)) {
201
- return;
202
- }
203
- const row = {
204
- id: randomStr.randomStr(3),
205
- removable: !(availableTypes == null ? void 0 : availableTypes.includes(type)),
206
- type
207
- };
208
- const tempSideRow = {
209
- type,
210
- id: randomStr.randomStr(3),
211
- resources: {}
212
- };
213
- const displayResource = getDisplayResource(type);
214
- if (displayResource.length) {
215
- displayResource.forEach((rs) => {
216
- var _a;
217
- const key = props$1.withPrefixRequest ? `requests.${rs.key}` : rs.key;
218
- const val = resources[key];
219
- if (val !== void 0) {
220
- lodashEs.set(row, ["resources", utils.sanitizeGPUKey(rs.key) ?? ""], formatNumUnit.formatNumUnit(val));
221
- }
222
- if (showSide.value) {
223
- const sideVal = (_a = sideQuota.value) == null ? void 0 : _a.resources[key];
224
- if (sideVal !== void 0) {
225
- lodashEs.set(tempSideRow, ["resources", utils.sanitizeGPUKey(rs.key) ?? ""], formatNumUnit.formatNumUnit(sideVal));
226
- }
227
- }
228
- });
229
- if (type === props.nvidiaVgpuKey && isLimitOne.value) {
230
- const vgpuModel = props$1.nvidiaVgpuModel;
231
- if (vgpuModel) {
232
- Object.assign(row, {
233
- [types.nvidiaVgpuModelKey]: vgpuModel
234
- });
235
- }
236
- const priority = props$1.nvidiaVgpuPriority;
237
- if (priority) {
238
- Object.assign(row, {
239
- [types.nvidiaVgpuPriorityKey]: priority
240
- });
241
- }
242
- const gpuSchedule = props$1.nvidiaVgpuGpuSchedule;
243
- const nodeSchedule = props$1.nvidiaVgpuNodeSchedule;
244
- if (gpuSchedule) {
245
- Object.assign(row, {
246
- [types.nvidiaVgpuGpuScheduleKey]: gpuSchedule
247
- });
248
- }
249
- if (nodeSchedule) {
250
- Object.assign(row, {
251
- [types.nvidiaVgpuNodeScheduleKey]: nodeSchedule
252
- });
253
- }
254
- }
255
- }
256
- if (showSide.value && !tempSideRows.includes(tempSideRow)) {
257
- tempSideRows.push(tempSideRow);
258
- }
259
- if (!tempRows.includes(row)) {
260
- tempRows.push(row);
131
+ const initialRows = gpuForm_mapper.buildGpuFormInitialRows({
132
+ quota: lodashEs.cloneDeep(props$1.quota),
133
+ availableQuota: props$1.availableQuota,
134
+ sideQuota: sideQuota.value,
135
+ gpuOptionsMap: gpuOptionsMap.value,
136
+ getDisplayResource,
137
+ withPrefixRequest: props$1.withPrefixRequest,
138
+ showSide: showSide.value,
139
+ isLimitOne: isLimitOne.value,
140
+ vgpu: {
141
+ nvidiaVgpuModel: props$1.nvidiaVgpuModel,
142
+ nvidiaVgpuDevices: props$1.nvidiaVgpuDevices,
143
+ nvidiaVgpuPriority: props$1.nvidiaVgpuPriority,
144
+ nvidiaVgpuGpuSchedule: props$1.nvidiaVgpuGpuSchedule,
145
+ nvidiaVgpuNodeSchedule: props$1.nvidiaVgpuNodeSchedule
261
146
  }
262
147
  });
263
- sideRows.value = tempSideRows;
264
- rows.value = tempRows;
148
+ initSideRows(initialRows.sideRows);
149
+ rows.value = initialRows.rows;
265
150
  formatToUpdate();
266
151
  };
267
152
  vue.watch([
@@ -273,35 +158,45 @@ const _sfc_main = vue.defineComponent({
273
158
  if (!fetchingGpuOptions.value) {
274
159
  initValues();
275
160
  }
276
- if (props$1.enableNvidiaVgpuModel && gpuOptionsMap.value.has(props.nvidiaVgpuKey) && !nvidiaGpuModels.value.length) {
277
- fetchNvidiaVgpuModels();
161
+ const selectedModelMissing = Boolean(props$1.nvidiaVgpuModel) && !nvidiaGpuModels.value.includes(props$1.nvidiaVgpuModel);
162
+ const shouldFetchNvidiaVgpuModels = props$1.enableNvidiaVgpuModel && gpuOptionsMap.value.has(props.nvidiaVgpuKey) && (!nvidiaGpuModels.value.length || props$1.assignGpuDisabled && selectedModelMissing);
163
+ if (shouldFetchNvidiaVgpuModels) {
164
+ await fetchNvidiaVgpuModels();
278
165
  }
279
166
  }, {
280
167
  immediate: true
281
168
  });
282
- const validate = async () => {
283
- const validsRes = await Promise.all(
284
- rowsRef.value.map((row) => {
285
- var _a;
286
- return ((_a = row == null ? void 0 : row.validate) == null ? void 0 : _a.call(row)) ?? { valid: true };
287
- })
288
- );
289
- return validsRes.every((v) => v.valid);
290
- };
291
- const getUsedQuotaItem = (index) => {
292
- var _a;
293
- if (props$1.usedQuota) {
294
- return (_a = sideRows.value) == null ? void 0 : _a[index];
295
- }
296
- return void 0;
297
- };
298
- const getAvailableQuotaItem = (index) => {
299
- var _a;
300
- if (props$1.availableQuota) {
301
- return (_a = sideRows.value) == null ? void 0 : _a[index];
302
- }
303
- return void 0;
304
- };
169
+ const gpuFormItemBaseProps = vue.computed(() => ({
170
+ targetType: props$1.targetType,
171
+ enableRangeValidate: props$1.enableRangeValidate,
172
+ gpuOptionsMap: gpuOptionsMap.value,
173
+ getDisplayResource,
174
+ gpuUsage: props$1.gpuUsage,
175
+ gpuSettingsAdaptor: props$1.gpuSettingsAdaptor
176
+ }));
177
+ const sharedGpuFormItemAdvancedProps = vue.computed(() => ({
178
+ enableRemoteCall: props$1.enableRemoteCall,
179
+ enableNvidiaVgpuModel: props$1.enableNvidiaVgpuModel,
180
+ enableNvidiaVgpuDevices: props$1.enableNvidiaVgpuDevices,
181
+ assignGpuDisabled: props$1.assignGpuDisabled,
182
+ enableNvidiaVgpuPriority: props$1.enableNvidiaVgpuPriority,
183
+ nvidiaGpuModels: nvidiaGpuModels.value,
184
+ nvidiaVgpuModelsAdaptor: props$1.nvidiaVgpuModelsAdaptor,
185
+ nvidiaVgpuDevicesAdaptor: props$1.nvidiaVgpuDevicesAdaptor
186
+ }));
187
+ const gpuFormItemAdvancedProps = vue.computed(() => ({
188
+ ...sharedGpuFormItemAdvancedProps.value,
189
+ enableNvidiaVgpuSchedulePolicy: props$1.enableNvidiaVgpuSchedulePolicy
190
+ }));
191
+ const gpuFormItemProps = vue.computed(() => ({
192
+ ...gpuFormItemBaseProps.value,
193
+ ...gpuFormItemAdvancedProps.value,
194
+ dynamicLimitOne: props$1.dynamicLimitOne
195
+ }));
196
+ const sideGpuFormItemProps = vue.computed(() => ({
197
+ ...gpuFormItemBaseProps.value,
198
+ ...sharedGpuFormItemAdvancedProps.value
199
+ }));
305
200
  return {
306
201
  isLimitOne,
307
202
  rows,
@@ -315,6 +210,8 @@ const _sfc_main = vue.defineComponent({
315
210
  fetchGpuOptions,
316
211
  getDisplayResource,
317
212
  nvidiaGpuModels,
213
+ gpuFormItemProps,
214
+ sideGpuFormItemProps,
318
215
  showSide,
319
216
  sideRows,
320
217
  validate,