bfg-common 1.3.440 → 1.3.442

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 (56) hide show
  1. package/components/common/vm/actions/editSettings/EditSettings.vue +30 -30
  2. package/components/common/wizards/datastoreNew/add/Add.vue +611 -0
  3. package/components/common/wizards/datastoreNew/add/lib/config/stepItems.ts +191 -0
  4. package/components/common/wizards/datastoreNew/add/lib/config/steps.ts +202 -0
  5. package/components/common/wizards/datastoreNew/add/lib/models/interfaces.ts +38 -0
  6. package/components/common/wizards/datastoreNew/add/lib/models/types.ts +14 -0
  7. package/components/common/wizards/datastoreNew/add/lib/utils.ts +72 -0
  8. package/components/common/wizards/datastoreNew/add/local/Local.vue +44 -0
  9. package/components/common/wizards/datastoreNew/add/local/createName/CreateName.vue +129 -0
  10. package/components/common/wizards/datastoreNew/add/local/createName/lib/config/defaultForm.ts +15 -0
  11. package/components/common/wizards/datastoreNew/add/nfs/Nfs.vue +99 -0
  12. package/components/common/wizards/datastoreNew/add/nfs/accessibility/Accessibility.vue +104 -0
  13. package/components/common/wizards/datastoreNew/add/nfs/accessibility/lib/config/tabsPannel.ts +24 -0
  14. package/components/common/wizards/datastoreNew/add/nfs/accessibility/lib/models/interfaces.ts +9 -0
  15. package/components/common/wizards/datastoreNew/add/nfs/accessibility/lib/models/types.ts +5 -0
  16. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/TablesView.vue +142 -0
  17. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  18. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -0
  19. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  20. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  21. package/components/common/wizards/datastoreNew/add/nfs/configuration/Configuration.vue +385 -0
  22. package/components/common/wizards/datastoreNew/add/nfs/configuration/lib/config/defaultForm.ts +33 -0
  23. package/components/common/wizards/datastoreNew/add/nfs/configuration/lib/models/interfaces.ts +12 -0
  24. package/components/common/wizards/datastoreNew/add/nfs/configuration/serversList/DeletePopover.vue +100 -0
  25. package/components/common/wizards/datastoreNew/add/nfs/configuration/serversList/ServersList.vue +124 -0
  26. package/components/common/wizards/datastoreNew/add/nfs/configuration/serversList/lib/config/serversListConfig.ts +41 -0
  27. package/components/common/wizards/datastoreNew/add/nfs/configuration/serversList/lib/config/tableKeys.ts +3 -0
  28. package/components/common/wizards/datastoreNew/add/nfs/configuration/serversList/lib/models/interfaces.ts +11 -0
  29. package/components/common/wizards/datastoreNew/add/nfs/configuration/serversList/lib/models/types.ts +1 -0
  30. package/components/common/wizards/datastoreNew/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +55 -0
  31. package/components/common/wizards/datastoreNew/add/nfs/kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  32. package/components/common/wizards/datastoreNew/add/nfs/version/Version.vue +42 -0
  33. package/components/common/wizards/datastoreNew/add/nfs/version/lib/config/versionOptions.ts +20 -0
  34. package/components/common/wizards/datastoreNew/add/readyComplete/ReadyComplete.vue +88 -0
  35. package/components/common/wizards/datastoreNew/add/readyComplete/lib/config/propertiesDetails.ts +175 -0
  36. package/components/common/wizards/datastoreNew/add/readyComplete/lib/models/interfaces.ts +4 -0
  37. package/components/common/wizards/datastoreNew/add/sharedStorm/SharedStorm.vue +90 -0
  38. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/DeviceSelection.vue +424 -0
  39. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/lib/config/defaultForm.ts +18 -0
  40. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/lib/config/selectOptions.ts +14 -0
  41. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/lib/models/interfaces.ts +58 -0
  42. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/lib/models/types.ts +14 -0
  43. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/table/Table.vue +134 -0
  44. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/table/lib/config/hostsTable.ts +87 -0
  45. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/table/lib/config/tableKeys.ts +11 -0
  46. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +232 -0
  47. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -0
  48. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/lib/config/selectOptions.ts +46 -0
  49. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -0
  50. package/components/common/wizards/datastoreNew/add/sharedStorm/version/Version.vue +39 -0
  51. package/components/common/wizards/datastoreNew/add/sharedStorm/version/lib/config/versionOptions.ts +21 -0
  52. package/components/common/wizards/datastoreNew/add/types/Types.vue +71 -0
  53. package/components/common/wizards/datastoreNew/add/types/lib/config/typeOptions.ts +49 -0
  54. package/lib/models/interfaces.ts +1 -0
  55. package/lib/utils/sendTask.ts +2 -1
  56. package/package.json +1 -1
@@ -0,0 +1,87 @@
1
+ import {
2
+ UI_I_HeadItem,
3
+ UI_I_ColumnKey,
4
+ UI_I_BodyItem,
5
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
6
+ import { UI_I_Localization } from '~/lib/models/interfaces'
7
+ import {
8
+ constructHeadItem,
9
+ constructColumnKey,
10
+ } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
11
+ import { UI_I_CreateStorageLunDiskItem } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/interfaces'
12
+ import { hostTableItemsKeys } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/lib/config/tableKeys'
13
+
14
+ const getItems = (
15
+ localization: UI_I_Localization
16
+ ): [string, boolean, string, string][] => {
17
+ return [
18
+ [localization.name, true, '180px', hostTableItemsKeys[0]],
19
+ [localization.identifier, false, '96px', hostTableItemsKeys[1]],
20
+ [localization.lun, true, '96px', hostTableItemsKeys[2]],
21
+ [localization.capacity, true, '96px', hostTableItemsKeys[3]],
22
+ [localization.hardwareAcceleration, true, '96px', hostTableItemsKeys[4]],
23
+ [localization.driveType, true, '96px', hostTableItemsKeys[5]],
24
+ [localization.sectorFormat, true, '96px', hostTableItemsKeys[6]],
25
+ ]
26
+ }
27
+ export const columnKeys = (localization: UI_I_Localization): UI_I_ColumnKey[] => {
28
+ const result: UI_I_ColumnKey[] = []
29
+ getItems(localization).forEach((item, i) => {
30
+ const col = `col${i}`
31
+ result.push(constructColumnKey(col, item[0], item[1]))
32
+ })
33
+ return result
34
+ }
35
+ export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
36
+ const result: UI_I_HeadItem[] = []
37
+ getItems(localization).forEach((item, i) => {
38
+ const col = `col${i}`
39
+ result.push(constructHeadItem(col, item[0], item[3], false, item[2]))
40
+ })
41
+ return result
42
+ }
43
+
44
+ export const bodyItems = (data: UI_I_CreateStorageLunDiskItem[]): UI_I_BodyItem[][] => {
45
+ const bodyItems: UI_I_BodyItem[][] = []
46
+ const { $binary } = useNuxtApp()
47
+ data.forEach((host: UI_I_CreateStorageLunDiskItem, key) => {
48
+ bodyItems.push([
49
+ {
50
+ key: 'col0',
51
+ text: host[hostTableItemsKeys[0]],
52
+ id: key,
53
+ },
54
+ {
55
+ key: 'col1',
56
+ text: host[hostTableItemsKeys[1]],
57
+ id: key,
58
+ },
59
+ {
60
+ key: 'col2',
61
+ text: host[hostTableItemsKeys[2]],
62
+ id: key,
63
+ },
64
+ {
65
+ key: 'col3',
66
+ text: $binary.round(host[hostTableItemsKeys[3]]),
67
+ id: key,
68
+ },
69
+ {
70
+ key: 'col4',
71
+ text: host[hostTableItemsKeys[4]],
72
+ id: key,
73
+ },
74
+ {
75
+ key: 'col5',
76
+ text: host[hostTableItemsKeys[5]],
77
+ id: key,
78
+ },
79
+ {
80
+ key: 'col6',
81
+ text: host[hostTableItemsKeys[6]],
82
+ id: key,
83
+ },
84
+ ])
85
+ })
86
+ return bodyItems
87
+ }
@@ -0,0 +1,11 @@
1
+ import { UI_T_HostTableItemsKey } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/types'
2
+
3
+ export const hostTableItemsKeys: UI_T_HostTableItemsKey[] = [
4
+ 'name',
5
+ 'identifier',
6
+ 'lun',
7
+ 'capacity_mb',
8
+ 'hardware_acceleration',
9
+ 'drive_type',
10
+ 'sector_format',
11
+ ]
@@ -0,0 +1,232 @@
1
+ <template>
2
+ <div class="partition">
3
+ <div class="clr-form-control clr-row">
4
+ <label class="clr-col-md-4 clr-control-label">
5
+ {{ localization.partitionConfiguration }}
6
+ </label>
7
+
8
+ <div class="clr-col-md-8 p-0">
9
+ <div class="clr-select-wrapper">
10
+ <select
11
+ id="host-select"
12
+ v-model="selectedHost"
13
+ data-id="host-select"
14
+ class="dropdown-toggle"
15
+ @change="onSelectHost"
16
+ >
17
+ <option
18
+ v-for="(item, index) in partitionConfiguration"
19
+ :key="index"
20
+ :value="item.value"
21
+ :disabled="item.disabled"
22
+ >
23
+ {{ item.text }}
24
+ </option>
25
+ </select>
26
+ </div>
27
+ </div>
28
+ </div>
29
+
30
+ <div class="datastore-size-container clr-flex-row clr-flex">
31
+ <label class="clr-col-md-4 clr-control-label" for="datastore-size">
32
+ {{ localization.datastoreSize }}
33
+ </label>
34
+
35
+ <div class="datastore-size-slider-container clr-col-md-8 p-0">
36
+ <div class="clr-col-xl-6 clr-col-md-8 p-0">
37
+ <div
38
+ class="partition__range-input clr-control-container clr-col-md-10 clr-col-12"
39
+ >
40
+ <div class="clr-range-wrapper">
41
+ <input
42
+ id="datastore-size-input-0"
43
+ v-model="datastoreSize"
44
+ data-id="datastore-size-input-0"
45
+ type="range"
46
+ min="0"
47
+ :max="countDatastoreSizeToGb"
48
+ step="0.01"
49
+ class="ng-valid clr-range ng-dirty ng-touched"
50
+ />
51
+ </div>
52
+ </div>
53
+ </div>
54
+
55
+ <input
56
+ id="datastore-size-input-1"
57
+ v-model="datastoreSize"
58
+ type="number"
59
+ min="0"
60
+ :max="countDatastoreSizeToGb"
61
+ step="0.01"
62
+ class="show-arrow"
63
+ />
64
+ <span>{{ localization.gb }}</span>
65
+ </div>
66
+ </div>
67
+
68
+ <template v-if="props.vmfsVersion === 'vmfs-6'">
69
+ <div class="clr-form-control clr-row">
70
+ <label class="clr-col-md-4 clr-control-label">
71
+ {{ localization.blockSize }}
72
+ </label>
73
+
74
+ <div>
75
+ <div class="clr-select-wrapper">
76
+ <select
77
+ id="datastore-size-select"
78
+ v-model="selectedSize"
79
+ class="dropdown-toggle"
80
+ @change="onSelectHost"
81
+ >
82
+ <option
83
+ v-for="(item, index) in blockSize"
84
+ :key="index"
85
+ :value="item.value"
86
+ :disabled="item.disabled"
87
+ >
88
+ {{ item.text }}
89
+ </option>
90
+ </select>
91
+ </div>
92
+ </div>
93
+ </div>
94
+
95
+ <div class="clr-form-control clr-row">
96
+ <label class="clr-col-md-4 clr-control-label">{{
97
+ localization.spaceReclamationGranularity
98
+ }}</label>
99
+
100
+ <div>
101
+ <div class="clr-select-wrapper">
102
+ <select
103
+ id="granularity-select"
104
+ v-model="selectedGranularity"
105
+ class="dropdown-toggle"
106
+ @change="onSelectHost"
107
+ >
108
+ <option
109
+ v-for="(item, index) in spaceGranularity"
110
+ :key="index"
111
+ :value="item.value"
112
+ :disabled="item.disabled"
113
+ >
114
+ {{ item.text }}
115
+ </option>
116
+ </select>
117
+ </div>
118
+ </div>
119
+ </div>
120
+
121
+ <div class="clr-form-control clr-row">
122
+ <label class="clr-col-md-4 clr-control-label">{{
123
+ localization.spaceReclamationPriority
124
+ }}</label>
125
+
126
+ <div>
127
+ <div class="clr-select-wrapper">
128
+ <select
129
+ id="priority-select"
130
+ v-model="selectedPriority"
131
+ class="dropdown-toggle"
132
+ @change="onSelectHost"
133
+ >
134
+ <option
135
+ v-for="(item, index) in spacePriority"
136
+ :key="index"
137
+ :value="item.value"
138
+ :disabled="item.disabled"
139
+ >
140
+ {{ item.text }}
141
+ </option>
142
+ </select>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ </template>
147
+
148
+ <common-wizards-datastore-add-shared-storm-partition-configuration-size-graphic
149
+ :selected-size="+datastoreSize"
150
+ :capacity="countDatastoreSizeToGb"
151
+ />
152
+ </div>
153
+ </template>
154
+
155
+ <script lang="ts" setup>
156
+ import { UI_I_Localization } from '~/lib/models/interfaces'
157
+ import { UI_T_VmfsType } from '~/components/common/wizards/datastore/add/lib/models/types'
158
+ import { UI_I_SelectHostOptions } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/interfaces'
159
+ import {
160
+ partitionConfigurationFunc,
161
+ spacePriorityFunc,
162
+ spaceGranularityFunc,
163
+ blockSizeFunc,
164
+ } from '~/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/lib/config/selectOptions'
165
+
166
+ const props = withDefaults(
167
+ defineProps<{
168
+ vmfsVersion: UI_T_VmfsType
169
+ selectedLunDiskSize: number
170
+ }>(),
171
+ {
172
+ selectedLunDiskSize: 0,
173
+ }
174
+ )
175
+ const localization = computed<UI_I_Localization>(() => useLocal())
176
+ const { $binary } = useNuxtApp()
177
+
178
+ const selectedHost = ref<string>('all-partitions')
179
+ const partitionConfiguration = computed<UI_I_SelectHostOptions[]>(() =>
180
+ partitionConfigurationFunc(localization.value)
181
+ )
182
+
183
+ const selectedSize = ref<string>('1')
184
+ const blockSize = computed<UI_I_SelectHostOptions[]>(() =>
185
+ blockSizeFunc(localization.value)
186
+ )
187
+
188
+ const selectedGranularity = ref<string>('1')
189
+ const spaceGranularity = computed<UI_I_SelectHostOptions[]>(() =>
190
+ spaceGranularityFunc(localization.value)
191
+ )
192
+
193
+ const selectedPriority = ref<string>('low')
194
+ const spacePriority = computed<UI_I_SelectHostOptions[]>(() =>
195
+ spacePriorityFunc(localization.value)
196
+ )
197
+
198
+ const countDatastoreSizeToGb = computed<number>(() => {
199
+ return $binary.mbToGb(props.selectedLunDiskSize)
200
+ })
201
+
202
+ const datastoreSize = ref<number | null>(null)
203
+ watch(
204
+ () => props.selectedLunDiskSize,
205
+ (_val) => {
206
+ datastoreSize.value = countDatastoreSizeToGb.value
207
+ }
208
+ )
209
+
210
+ const onSelectHost = (): void => {}
211
+ </script>
212
+
213
+ <style lang="scss" scoped>
214
+ .partition {
215
+ .datastore-size-container {
216
+ display: flex;
217
+ margin-left: -1em;
218
+ margin-top: 1.2rem;
219
+ margin-bottom: 1.2rem;
220
+ }
221
+ .clr-form-control {
222
+ display: flex;
223
+ flex-direction: row;
224
+ }
225
+ &__range-input {
226
+ margin-left: -10px;
227
+ }
228
+ }
229
+ .datastore-size-slider-container {
230
+ display: flex;
231
+ }
232
+ </style>
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <g class="graphic-tooltip">
3
+ <path
4
+ fill="none"
5
+ class="highcharts-label-box highcharts-tooltip-box highcharts-shadow"
6
+ d="M 3.5 0.5 L 53.5 0.5 L 59.5 -5.5 L 65.5 0.5 L 118 0.5 C 121.5 0.5 121.5 0.5 121.5 3.5 L 121.5 27.5 C 121.5 30.5 121.5 30.5 118.5 30.5 L 3.5 30.5 C 0.5 30.5 0.5 30.5 0.5 27.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5"
7
+ stroke="#000000"
8
+ stroke-opacity="0.049999999999999996"
9
+ stroke-width="5"
10
+ transform="translate(1, 1)"
11
+ ></path>
12
+ <path
13
+ fill="none"
14
+ class="highcharts-label-box highcharts-tooltip-box highcharts-shadow"
15
+ d="M 3.5 0.5 L 53.5 0.5 L 59.5 -5.5 L 65.5 0.5 L 118 0.5 C 121.5 0.5 121.5 0.5 121.5 3.5 L 121.5 27.5 C 121.5 30.5 121.5 30.5 118.5 30.5 L 3.5 30.5 C 0.5 30.5 0.5 30.5 0.5 27.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5"
16
+ stroke="#000000"
17
+ stroke-opacity="0.09999999999999999"
18
+ stroke-width="3"
19
+ transform="translate(1, 1)"
20
+ ></path>
21
+ <path
22
+ fill="none"
23
+ class="highcharts-label-box highcharts-tooltip-box highcharts-shadow"
24
+ d="M 3.5 0.5 L 53.5 0.5 L 59.5 -5.5 L 65.5 0.5 L 118 0.5 C 121.5 0.5 121.5 0.5 121.5 3.5 L 121.5 27.5 C 121.5 30.5 121.5 30.5 118.5 30.5 L 3.5 30.5 C 0.5 30.5 0.5 30.5 0.5 27.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5"
25
+ stroke="#000000"
26
+ stroke-opacity="0.15"
27
+ stroke-width="1"
28
+ transform="translate(1, 1)"
29
+ ></path>
30
+ <path
31
+ fill="rgba(247,247,247,0.85)"
32
+ class="highcharts-label-box highcharts-tooltip-box"
33
+ d="M 3.5 0.5 L 53.5 0.5 L 59.5 -5.5 L 65.5 0.5 L 118 0.5 C 121.5 0.5 121.5 0.5 121.5 3.5 L 121.5 27.5 C 121.5 30.5 121.5 30.5 118.5 30.5 L 3.5 30.5 C 0.5 30.5 0.5 30.5 0.5 27.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5"
34
+ stroke="rgb(218, 218, 218)"
35
+ stroke-width="1"
36
+ ></path>
37
+ <text
38
+ x="9"
39
+ data-z-index="1"
40
+ y="20"
41
+ style="color: #333333; font-size: 12px; fill: #333333;"
42
+ >
43
+ {{ props.size }}
44
+ </text>
45
+ </g>
46
+ </template>
47
+
48
+ <script lang="ts" setup>
49
+ const props = defineProps<{
50
+ size: string
51
+ }>()
52
+ </script>
53
+
54
+ <style lang="scss" scoped>
55
+ .graphic-tooltip {
56
+ cursor: default;
57
+ white-space: nowrap;
58
+ pointer-events: none;
59
+ opacity: 0;
60
+ visibility: hidden;
61
+ transform: translate(331, -9999);
62
+ z-index: 8;
63
+ }
64
+ </style>
@@ -0,0 +1,46 @@
1
+ import { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import { UI_I_SelectHostOptions } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/interfaces'
3
+
4
+ export const partitionConfigurationFunc = (
5
+ localization: UI_I_Localization
6
+ ): UI_I_SelectHostOptions[] => {
7
+ return [
8
+ { text: localization.selectConfiguration, value: '', disabled: true },
9
+ { text: localization.useAllAvailablePartitions, value: 'all-partitions' },
10
+ ]
11
+ }
12
+ export const blockSizeFunc = (
13
+ localization: UI_I_Localization
14
+ ): UI_I_SelectHostOptions[] => {
15
+ return [
16
+ {
17
+ text: `1 ${localization.mb}`,
18
+ value: '1',
19
+ },
20
+ ]
21
+ }
22
+
23
+ export const spaceGranularityFunc = (
24
+ localization: UI_I_Localization
25
+ ): UI_I_SelectHostOptions[] => {
26
+ return [
27
+ {
28
+ text: `1 ${localization.mb}`,
29
+ value: '1',
30
+ },
31
+ ]
32
+ }
33
+ export const spacePriorityFunc = (
34
+ localization: UI_I_Localization
35
+ ): UI_I_SelectHostOptions[] => {
36
+ return [
37
+ {
38
+ text: localization.low,
39
+ value: 'low',
40
+ },
41
+ {
42
+ text: localization.none,
43
+ value: 'none',
44
+ },
45
+ ]
46
+ }
@@ -0,0 +1,225 @@
1
+ <template>
2
+ <div class="graphic-size">
3
+ <svg
4
+ class="graphic-size__svg"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ width="100%"
7
+ height="100"
8
+ viewBox="0 0 782 100"
9
+ >
10
+ <defs aria-hidden="true">
11
+ <clipPath id="highcharts-zdne8nn-42-">
12
+ <rect x="0" y="0" width="802" height="80" fill="none"></rect>
13
+ </clipPath>
14
+ </defs>
15
+ <rect
16
+ fill="#ffffff"
17
+ class="highcharts-background"
18
+ x="0"
19
+ y="0"
20
+ width="782"
21
+ height="100"
22
+ rx="0"
23
+ ry="0"
24
+ aria-hidden="true"
25
+ ></rect>
26
+ <rect
27
+ fill="none"
28
+ class="highcharts-plot-background"
29
+ x="-10"
30
+ y="10"
31
+ width="802"
32
+ height="80"
33
+ aria-hidden="true"
34
+ ></rect>
35
+ <rect
36
+ fill="none"
37
+ class="highcharts-plot-border"
38
+ data-z-index="1"
39
+ x="-10"
40
+ y="10"
41
+ width="802"
42
+ height="80"
43
+ aria-hidden="true"
44
+ ></rect>
45
+ <g class="highcharts-series-group" data-z-index="3" aria-hidden="false">
46
+ <g
47
+ class="highcharts-series highcharts-series-0 highcharts-area-series"
48
+ data-z-index="0.1"
49
+ opacity="1"
50
+ transform="translate(-10,10) scale(1 1)"
51
+ clip-path="url(#highcharts-zdne8nn-42-)"
52
+ aria-hidden="false"
53
+ >
54
+ <path
55
+ fill="rgb(218,218,218)"
56
+ d="M 7.8627450980392 80 L 7.8627450980392 0 L 401 0 L 794.13725490196 0 L 794.13725490196 80 L 794.13725490196 80 L 794.13725490196 80 L 401 80 L 7.8627450980392 80 L 7.8627450980392 80 Z"
57
+ class="highcharts-area"
58
+ data-z-index="0"
59
+ aria-hidden="true"
60
+ ></path>
61
+ <path
62
+ fill="none"
63
+ d="M 7.8627450980392 80 L 7.8627450980392 0 L 401 0 L 794.13725490196 0 L 794.13725490196 80"
64
+ class="highcharts-graph"
65
+ data-z-index="1"
66
+ stroke-linejoin="round"
67
+ stroke-linecap="round"
68
+ aria-hidden="false"
69
+ role="region"
70
+ tabindex="-1"
71
+ aria-label="Empty, series 1 of 1 with 5 data points."
72
+ style="outline: 0"
73
+ ></path>
74
+ <path
75
+ fill="none"
76
+ d="M 7.8627450980392 80 L 7.8627450980392 0 L 401 0 L 794.13725490196 0 L 794.13725490196 80"
77
+ visibility="visible"
78
+ data-z-index="2"
79
+ class="highcharts-tracker-line"
80
+ stroke-linecap="round"
81
+ stroke-linejoin="round"
82
+ stroke="rgba(192,192,192,0.0001)"
83
+ stroke-width="20"
84
+ aria-hidden="true"
85
+ ></path>
86
+ </g>
87
+ <g
88
+ class="highcharts-markers highcharts-series-0 highcharts-area-series highcharts-tracker"
89
+ data-z-index="0.1"
90
+ opacity="1"
91
+ transform="translate(-10,10) scale(1 1)"
92
+ clip-path="none"
93
+ aria-hidden="true"
94
+ ></g>
95
+ </g>
96
+ <rect
97
+ x="0"
98
+ y="10"
99
+ width="782"
100
+ height="80"
101
+ fill="rgba(255,255,255,0)"
102
+ stroke="rgb(15,172,201)"
103
+ stroke-width="6"
104
+ data-z-index="3"
105
+ class="storage-partition-layout-selection-mask"
106
+ ></rect>
107
+ <rect
108
+ x="0"
109
+ y="10"
110
+ :width="setProgress"
111
+ height="80"
112
+ fill="rgba(15,172,201, 0.6)"
113
+ data-z-index="3"
114
+ class="storage-partition-layout-selection-mask"
115
+ ></rect>
116
+ <text
117
+ x="391"
118
+ text-anchor="middle"
119
+ class="highcharts-title"
120
+ data-z-index="4"
121
+ style="color: #333333; font-size: 18px; fill: #333333"
122
+ y="14"
123
+ aria-hidden="true"
124
+ ></text>
125
+ <text
126
+ x="391"
127
+ text-anchor="middle"
128
+ class="highcharts-subtitle"
129
+ data-z-index="4"
130
+ style="color: #666666; fill: #666666"
131
+ y="14"
132
+ aria-hidden="true"
133
+ ></text>
134
+ <text
135
+ x="0"
136
+ text-anchor="start"
137
+ class="highcharts-caption"
138
+ data-z-index="4"
139
+ style="color: #666666; fill: #666666"
140
+ y="112"
141
+ aria-hidden="true"
142
+ ></text>
143
+ <g
144
+ class="highcharts-data-labels highcharts-series-0 highcharts-area-series highcharts-tracker"
145
+ data-z-index="6"
146
+ opacity="1"
147
+ transform="translate(-10,10) scale(1 1)"
148
+ aria-hidden="true"
149
+ >
150
+ <g
151
+ class="highcharts-label highcharts-data-label highcharts-data-label-color-undefined"
152
+ data-z-index="1"
153
+ style="cursor: default; pointer-events: none; white-space: nowrap"
154
+ transform="translate(354,26)"
155
+ >
156
+ <text
157
+ x="5"
158
+ data-z-index="1"
159
+ y="17"
160
+ style="
161
+ color: #333;
162
+ font-family: 'ProximaNova', 'Avenir Next', 'Helvetica Neue', Arial,
163
+ sans-serif, 'Avenir Next', 'Helvetica Neue', Arial, sans-serif;
164
+ font-size: 12px;
165
+ font-weight: bold;
166
+ fill: #333;
167
+ "
168
+ >
169
+ <tspan
170
+ class="highcharts-text-outline"
171
+ fill="#FFFFFF"
172
+ stroke="#FFFFFF"
173
+ stroke-width="2px"
174
+ stroke-linejoin="round"
175
+ style=""
176
+ >
177
+ {{ emptySizeText }}
178
+ </tspan>
179
+ <tspan x="5" y="17">{{ emptySizeText }}</tspan>
180
+ </text>
181
+ </g>
182
+ </g>
183
+
184
+ <common-wizards-datastore-add-shared-storm-partition-configuration-graphic-tooltip
185
+ :size="emptySizeText"
186
+ />
187
+ </svg>
188
+ </div>
189
+ </template>
190
+
191
+ <script lang="ts" setup>
192
+ import { UI_I_Localization } from '~/lib/models/interfaces'
193
+
194
+ const props = defineProps<{
195
+ selectedSize: number | null
196
+ capacity: number
197
+ }>()
198
+ const localization = computed<UI_I_Localization>(() => useLocal())
199
+
200
+ const width = ref<number>(782)
201
+
202
+ const setProgress = computed<number>(() => {
203
+ if (!props.selectedSize) return 0
204
+ return (width.value * props.selectedSize) / props.capacity
205
+ })
206
+
207
+ const emptySizeText = computed<string>(() => {
208
+ const { empty, gb } = localization.value
209
+
210
+ return `${empty}: ${props.capacity} ${gb}`
211
+ })
212
+ </script>
213
+
214
+ <style lang="scss" scoped>
215
+ .graphic-size {
216
+ margin-top: 24px;
217
+ &:hover {
218
+ .graphic-tooltip {
219
+ visibility: visible;
220
+ opacity: 1;
221
+ transform: translate(331px, 25px);
222
+ }
223
+ }
224
+ }
225
+ </style>