bfg-common 1.4.46 → 1.4.48

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 (52) hide show
  1. package/components/common/wizards/datastore/add/nfs/accessibility/lib/models/interfaces.ts +4 -0
  2. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/config/selectOptions.ts +15 -6
  3. package/components/common/wizards/datastoreNew/add/Add.vue +464 -0
  4. package/components/common/wizards/datastoreNew/add/lib/config/steps.ts +135 -0
  5. package/components/common/wizards/datastoreNew/add/lib/models/enums.ts +5 -0
  6. package/components/common/wizards/datastoreNew/add/lib/models/interfaces.ts +12 -0
  7. package/components/common/wizards/datastoreNew/add/lib/models/types.ts +7 -0
  8. package/components/common/wizards/datastoreNew/add/lib/utils.ts +31 -0
  9. package/components/common/wizards/datastoreNew/add/local/Local.vue +44 -0
  10. package/components/common/wizards/datastoreNew/add/local/createName/CreateName.vue +116 -0
  11. package/components/common/wizards/datastoreNew/add/nfs/Nfs.vue +62 -0
  12. package/components/common/wizards/datastoreNew/add/nfs/_kerberosAuthentication/KerberosAuthentication.vue +55 -0
  13. package/components/common/wizards/datastoreNew/add/nfs/_kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  14. package/components/common/wizards/datastoreNew/add/nfs/accessibility/Accessibility.vue +63 -0
  15. package/components/common/wizards/datastoreNew/add/nfs/accessibility/lib/config/tabsPannel.ts +24 -0
  16. package/components/common/wizards/datastoreNew/add/nfs/accessibility/lib/models/interfaces.ts +9 -0
  17. package/components/common/wizards/datastoreNew/add/nfs/accessibility/lib/models/types.ts +5 -0
  18. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/TablesView.vue +85 -0
  19. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  20. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  21. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  22. package/components/common/wizards/datastoreNew/add/nfs/accessibility/tablesView/lib/models/interfaces.ts +11 -0
  23. package/components/common/wizards/datastoreNew/add/nfs/configuration/Configuration.vue +236 -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 +123 -0
  26. package/components/common/wizards/datastoreNew/add/nfs/configuration/_serversList/lib/config/serversListConfig.ts +40 -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 +3 -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/configuration/lib/models/interfaces.ts +5 -0
  31. package/components/common/wizards/datastoreNew/add/nfs/version/Version.vue +26 -0
  32. package/components/common/wizards/datastoreNew/add/nfs/version/lib/config/versionOptions.ts +22 -0
  33. package/components/common/wizards/datastoreNew/add/readyComplete/ReadyComplete.vue +88 -0
  34. package/components/common/wizards/datastoreNew/add/readyComplete/lib/config/propertiesDetails.ts +140 -0
  35. package/components/common/wizards/datastoreNew/add/sharedStorm/SharedStorm.vue +83 -0
  36. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/DeviceSelection.vue +262 -0
  37. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/lib/config/selectOptions.ts +23 -0
  38. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/lib/models/interfaces.ts +48 -0
  39. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/lib/models/types.ts +8 -0
  40. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/table/Table.vue +134 -0
  41. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/table/lib/config/hostsTable.ts +87 -0
  42. package/components/common/wizards/datastoreNew/add/sharedStorm/deviceSelection/table/lib/config/tableKeys.ts +11 -0
  43. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +236 -0
  44. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -0
  45. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/lib/config/selectOptions.ts +46 -0
  46. package/components/common/wizards/datastoreNew/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -0
  47. package/components/common/wizards/datastoreNew/add/sharedStorm/version/Version.vue +39 -0
  48. package/components/common/wizards/datastoreNew/add/sharedStorm/version/lib/config/versionOptions.ts +21 -0
  49. package/components/common/wizards/datastoreNew/add/types/Types.vue +78 -0
  50. package/components/common/wizards/datastoreNew/add/types/lib/config/typeOptions.ts +49 -0
  51. package/lib/models/interfaces.ts +1 -0
  52. 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.common.name, true, '180px', hostTableItemsKeys[0]],
19
+ [localization.common.identifier, false, '96px', hostTableItemsKeys[1]],
20
+ [localization.common.lun, true, '96px', hostTableItemsKeys[2]],
21
+ [localization.common.capacity, true, '96px', hostTableItemsKeys[3]],
22
+ [localization.common.hardwareAcceleration, true, '96px', hostTableItemsKeys[4]],
23
+ [localization.common.driveType, true, '96px', hostTableItemsKeys[5]],
24
+ [localization.common.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() as any
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/datastoreNew/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,236 @@
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="select-partition-configuration"
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="select-storm-storage-size-range-field"
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
+ data-id="select-storm-storage-size-input-field"
59
+ type="number"
60
+ min="0"
61
+ :max="countDatastoreSizeToGb"
62
+ step="0.01"
63
+ class="show-arrow"
64
+ />
65
+ <span>{{ localization.gb }}</span>
66
+ </div>
67
+ </div>
68
+
69
+ <template v-if="props.vmfsVersion === 'vmfs-6'">
70
+ <div class="clr-form-control clr-row">
71
+ <label class="clr-col-md-4 clr-control-label">
72
+ {{ localization.blockSize }}
73
+ </label>
74
+
75
+ <div>
76
+ <div class="clr-select-wrapper">
77
+ <select
78
+ id="storm-configuration-block-size"
79
+ v-model="selectedSize"
80
+ data-id="storm-configuration-block-size"
81
+ class="dropdown-toggle"
82
+ @change="onSelectHost"
83
+ >
84
+ <option
85
+ v-for="(item, index) in blockSize"
86
+ :key="index"
87
+ :value="item.value"
88
+ :disabled="item.disabled"
89
+ >
90
+ {{ item.text }}
91
+ </option>
92
+ </select>
93
+ </div>
94
+ </div>
95
+ </div>
96
+
97
+ <div class="clr-form-control clr-row">
98
+ <label class="clr-col-md-4 clr-control-label">
99
+ {{ localization.spaceReclamationGranularity }}
100
+ </label>
101
+
102
+ <div>
103
+ <div class="clr-select-wrapper">
104
+ <select
105
+ id="granularity-select"
106
+ v-model="selectedGranularity"
107
+ data-id="storm-configuration-space-granularity"
108
+ class="dropdown-toggle"
109
+ @change="onSelectHost"
110
+ >
111
+ <option
112
+ v-for="(item, index) in spaceGranularity"
113
+ :key="index"
114
+ :value="item.value"
115
+ :disabled="item.disabled"
116
+ >
117
+ {{ item.text }}
118
+ </option>
119
+ </select>
120
+ </div>
121
+ </div>
122
+ </div>
123
+
124
+ <div class="clr-form-control clr-row">
125
+ <label class="clr-col-md-4 clr-control-label">
126
+ {{ localization.spaceReclamationPriority }}
127
+ </label>
128
+
129
+ <div>
130
+ <div class="clr-select-wrapper">
131
+ <select
132
+ id="priority-select"
133
+ v-model="selectedPriority"
134
+ data-id="storm-configuration-space-priority"
135
+ class="dropdown-toggle"
136
+ @change="onSelectHost"
137
+ >
138
+ <option
139
+ v-for="(item, index) in spacePriority"
140
+ :key="index"
141
+ :value="item.value"
142
+ :disabled="item.disabled"
143
+ >
144
+ {{ item.text }}
145
+ </option>
146
+ </select>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </template>
151
+
152
+ <common-wizards-datastore-add-shared-storm-partition-configuration-size-graphic
153
+ :selected-size="+datastoreSize"
154
+ :capacity="countDatastoreSizeToGb"
155
+ />
156
+ </div>
157
+ </template>
158
+
159
+ <script lang="ts" setup>
160
+ import { UI_I_Localization } from '~/lib/models/interfaces'
161
+ import { UI_T_VmfsType } from '~/components/common/wizards/datastore/add/lib/models/types'
162
+ import { UI_I_SelectHostOptions } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/interfaces'
163
+ import {
164
+ partitionConfigurationFunc,
165
+ spacePriorityFunc,
166
+ spaceGranularityFunc,
167
+ blockSizeFunc,
168
+ } from '~/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/lib/config/selectOptions'
169
+
170
+ const props = withDefaults(
171
+ defineProps<{
172
+ vmfsVersion: UI_T_VmfsType
173
+ selectedLunDiskSize: number
174
+ }>(),
175
+ {
176
+ selectedLunDiskSize: 0,
177
+ }
178
+ )
179
+ const localization = computed<UI_I_Localization>(() => useLocal())
180
+ const { $binary } = useNuxtApp()
181
+
182
+ const selectedHost = ref<string>('all-partitions')
183
+ const partitionConfiguration = computed<UI_I_SelectHostOptions[]>(() =>
184
+ partitionConfigurationFunc(localization.value)
185
+ )
186
+
187
+ const selectedSize = ref<string>('1')
188
+ const blockSize = computed<UI_I_SelectHostOptions[]>(() =>
189
+ blockSizeFunc(localization.value)
190
+ )
191
+
192
+ const selectedGranularity = ref<string>('1')
193
+ const spaceGranularity = computed<UI_I_SelectHostOptions[]>(() =>
194
+ spaceGranularityFunc(localization.value)
195
+ )
196
+
197
+ const selectedPriority = ref<string>('low')
198
+ const spacePriority = computed<UI_I_SelectHostOptions[]>(() =>
199
+ spacePriorityFunc(localization.value)
200
+ )
201
+
202
+ const countDatastoreSizeToGb = computed<number>(() => {
203
+ return $binary.mbToGb(props.selectedLunDiskSize)
204
+ })
205
+
206
+ const datastoreSize = ref<number | null>(null)
207
+ watch(
208
+ () => props.selectedLunDiskSize,
209
+ (_val) => {
210
+ datastoreSize.value = countDatastoreSizeToGb.value
211
+ }
212
+ )
213
+
214
+ const onSelectHost = (): void => {}
215
+ </script>
216
+
217
+ <style lang="scss" scoped>
218
+ .partition {
219
+ .datastore-size-container {
220
+ display: flex;
221
+ margin-left: -1em;
222
+ margin-top: 1.2rem;
223
+ margin-bottom: 1.2rem;
224
+ }
225
+ .clr-form-control {
226
+ display: flex;
227
+ flex-direction: row;
228
+ }
229
+ &__range-input {
230
+ margin-left: -10px;
231
+ }
232
+ }
233
+ .datastore-size-slider-container {
234
+ display: flex;
235
+ }
236
+ </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>