bfg-common 1.5.75 → 1.5.76

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.
@@ -54,7 +54,7 @@
54
54
  <template #content>
55
55
  <common-wizards-datastore-add-steps-name-and-device
56
56
  v-if="selectedStep.id === dynamicSteps.nameAndDevice"
57
- v-model="form"
57
+ v-model="formModelLocal"
58
58
  :project="props.project"
59
59
  :alert-messages="alertMessages[selectedStep.id]"
60
60
  :messages-fields="selectedStep.fields"
@@ -179,7 +179,6 @@ import type { UI_T_DatastoreTypeCode } from '~/components/common/wizards/datasto
179
179
  import type { UI_I_CreateDatastoreForm } from '~/components/common/wizards/datastore/add/lib/models/interfaces'
180
180
  import type { UI_I_DetailsItem } from '~/components/common/details/lib/models/interfaces'
181
181
  import type { UI_I_CreateDatastoreHosts } from '~/components/common/wizards/datastore/add/nfs/accessibility/tablesView/lib/models/interfaces'
182
- import { E_DatastoreTypeKode } from '~/components/common/wizards/datastore/add/lib/models/enums'
183
182
  import { constructDataReadyViewFunc } from '~/components/common/wizards/datastore/add/readyComplete/lib/config/propertiesDetails'
184
183
  import { dynamicSteps } from '~/components/common/wizards/datastore/add/lib/config/steps'
185
184
 
@@ -198,7 +197,7 @@ const emits = defineEmits<{
198
197
  (event: 'change-steps', value: UI_I_WizardStep[]): void
199
198
  (event: 'hide-alert', value: number): void
200
199
  (event: 'hide'): void
201
- (event: 'finish', value: any): void
200
+ (event: 'submit', value: any): void
202
201
  (event: 'main-filter', value: string): void
203
202
  }>()
204
203
 
@@ -231,9 +230,7 @@ const { height: height3 } = useElementSize(subTitleBlock3)
231
230
  const subTitleBlock4 = ref<HTMLElement | null>(null)
232
231
  const { height: height4 } = useElementSize(subTitleBlock4)
233
232
 
234
- // const datastoreType = ref<UI_T_DatastoreTypeCode>(
235
- // props.project === 'procurator' ? 'local' : 'shared-storm'
236
- // )
233
+
237
234
  const datastoreType = ref<UI_T_DatastoreTypeCode>(2)
238
235
  const form = ref<UI_I_CreateDatastoreForm>({
239
236
  name: 'Datastore',
@@ -264,7 +261,7 @@ const onHideModal = (): void => {
264
261
  emits('hide')
265
262
  }
266
263
  const onFinish = (): void => {
267
- emits('finish', form.value)
264
+ emits('submit')
268
265
  }
269
266
  </script>
270
267
 
@@ -20,7 +20,7 @@
20
20
 
21
21
  <common-wizards-datastore-add-steps-name-and-device
22
22
  v-if="selectedStep.id === dynamicSteps.nameAndDevice"
23
- v-model="form"
23
+ v-model="formModelLocal"
24
24
  :project="props.project"
25
25
  :alert-messages="alertMessages[selectedStep.id]"
26
26
  :messages-fields="selectedStep.fields"
@@ -33,7 +33,7 @@
33
33
 
34
34
  <common-wizards-datastore-add-shared-storm
35
35
  v-show="datastoreType === 'shared-storm'"
36
- v-model="form"
36
+ v-model="formModelLocal"
37
37
  :project="props.project"
38
38
  :step-id="selectedStep.id"
39
39
  :datastore-type="datastoreType"
@@ -48,7 +48,7 @@
48
48
 
49
49
  <common-wizards-datastore-add-nfs
50
50
  v-show="datastoreType === 'nfs'"
51
- v-model="form"
51
+ v-model="formModelLocal"
52
52
  :project="props.project"
53
53
  :step-id="selectedStep.id"
54
54
  :alert-messages="alertMessages[selectedStep.id]"
@@ -92,34 +92,20 @@ const emits = defineEmits<{
92
92
  (event: 'change-steps', value: UI_I_WizardStep[]): void
93
93
  (event: 'hide-alert', value: number): void
94
94
  (event: 'hide'): void
95
- (event: 'finish', value: any): void
95
+ (event: 'submit'): void
96
96
  (event: 'main-filter', value: string): void
97
97
  }>()
98
98
 
99
99
  const localization = computed<UI_I_Localization>(() => useLocal())
100
100
 
101
- // const datastoreType = ref<UI_T_DatastoreTypeCode>(
102
- // props.project === 'procurator' ? 'local' : 'shared-storm'
103
- // )
104
101
  const datastoreType = ref<UI_T_DatastoreTypeCode>(2)
105
- const form = ref<UI_I_CreateDatastoreForm>({
106
- name: 'Datastore',
107
- lunDisk: [],
108
- hosts: props.hostId ? [props?.hostId] : [],
109
- type_code: 2,
110
- nfsVersion: 'nfs-4.1',
111
- readonly: false,
112
- server: '',
113
- folder: '',
114
- })
115
-
116
102
  const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
117
103
  emits('change-steps', value)
118
104
 
119
105
  const dataReadyView = computed<UI_I_DetailsItem>(() =>
120
106
  constructDataReadyViewFunc(
121
107
  localization.value,
122
- form.value,
108
+ formModelLocal.value,
123
109
  props.project,
124
110
  props.nfsHosts
125
111
  )
@@ -132,7 +118,7 @@ const onHideModal = (): void => {
132
118
  emits('hide')
133
119
  }
134
120
  const onFinish = (): void => {
135
- emits('finish', form.value)
121
+ emits('submit')
136
122
  }
137
123
  </script>
138
124
 
@@ -4,6 +4,7 @@ import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/inter
4
4
  import { UI_E_WIZARD_STATUS } from '~/components/atoms/wizard/lib/models/enums'
5
5
  import type { UI_I_ChangeStepsSchemes } from '~/components/common/wizards/datastore/add/lib/models/interfaces'
6
6
  import type { UI_T_DatastoreTypeCode } from '~/components/common/wizards/datastore/add/lib/models/types'
7
+
7
8
  export const dynamicSteps = {
8
9
  type: 0,
9
10
  nameAndDevice: 1,
@@ -59,18 +60,19 @@ export const stepsFunc = (
59
60
  testId: 'create-datastore-name-and-device-selection',
60
61
  },
61
62
 
62
- {
63
- id: 3,
64
- title: localization.common.partitionConfiguration,
65
- subTitle: localization.common.partitionConfigurationDesc,
66
- status: UI_E_WIZARD_STATUS.INACTIVE,
67
- fields: {},
68
- isValid: true,
69
- testId: 'create-datastore-partition-configuration',
70
- },
63
+ // { // TODO Этот шаг использовался раньше, сейчас не используется
64
+ // id: dynamicSteps.partitionConfiguration,
65
+ // title: localization.common.partitionConfiguration,
66
+ // subTitle: localization.common.partitionConfigurationDesc,
67
+ // status: UI_E_WIZARD_STATUS.INACTIVE,
68
+ // fields: {},
69
+ // isValid: true,
70
+ // testId: 'create-datastore-partition-configuration',
71
+ // },
71
72
 
72
73
  // {
73
- // id: 4,
74
+ // // TODO Этот шаг использовался раньше, сейчас не используется
75
+ // id: dynamicSteps.nfsVersion,
74
76
  // title: localization.common.nfsVersion,
75
77
  // subTitle: localization.common.selectNfsVersion,
76
78
  // status: UI_E_WIZARD_STATUS.INACTIVE,
@@ -1,7 +1,7 @@
1
1
  export type UI_T_DatastoreTypeCode = 2 | 4
2
2
  export type UI_T_NfsType = 'nfs-3' | 'nfs-4.1'
3
- export type UI_T_VmfsType = 'vmfs-6' | 'vmfs-5'
3
+ export type UI_T_VmfsType = 'vmfs-6' | 'vmfs-5' // сейчас этот тип не используется
4
4
  export type UI_T_KerberosAuthentication =
5
5
  | 'dont-use'
6
6
  | 'use-only-krb5'
7
- | 'use-integrity'
7
+ | 'use-integrity' // сейчас этот тип не используется
@@ -14,12 +14,6 @@
14
14
  @hide-alert="(e) => emits('hide-alert', e)"
15
15
  @main-filter="emits('main-filter', $event)"
16
16
  />
17
-
18
- <common-wizards-datastore-add-shared-storm-partition-configuration
19
- v-show="props.project === 'procurator' && props.stepId === 3"
20
- :vmfs-version="vmfsVersion"
21
- :selected-lun-disk-size="lunDiskTotalCapacity"
22
- />
23
17
  </div>
24
18
  </template>
25
19
 
@@ -57,14 +51,6 @@ const emits = defineEmits<{
57
51
  const localization = computed<UI_I_Localization>(() => useLocal())
58
52
 
59
53
  const vmfsVersion = ref<UI_T_VmfsType>('vmfs-6')
60
-
61
- const lunDiskTotalCapacity = computed<number>(() => {
62
- if (!model.value.lunDisk.length) return 0
63
-
64
- return +model.value.lunDisk
65
- .map((disk: UI_I_CreateStorageLunDiskItem) => disk.capacity_mb)
66
- .reduce((acc, cur) => acc + cur)
67
- })
68
54
  </script>
69
55
 
70
56
  <style lang="scss" scoped>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- TODO: если использовать этот компонент, нужно отрефакторить весь код — сейчас всё по-старому -->
2
3
  <div class="kerberos-auth">
3
4
  <atoms-alert
4
5
  v-show="isShowAlert"
@@ -1,6 +1,7 @@
1
1
  <template>
2
+ <!-- TODO: если использовать этот компонент, нужно отрефакторить весь код — сейчас всё по-старому -->
2
3
  <div class="local-step">
3
- <common-wizards-datastore-add-local-create-name
4
+ <common-wizards-datastore-add-steps-local-create-name
4
5
  v-if="isShowCreateLocalNameBlock"
5
6
  v-model="model.name"
6
7
  :alert-messages="props.alertMessages"
@@ -0,0 +1,245 @@
1
+ <template>
2
+ <!-- TODO: если использовать этот компонент, нужно отрефакторить весь код — сейчас всё по-старому -->
3
+ <div class="partition">
4
+ <div class="clr-form-control clr-row">
5
+ <label class="clr-col-md-4 clr-control-label">
6
+ {{ localization.common.partitionConfiguration }}
7
+ </label>
8
+
9
+ <div class="clr-col-md-8 p-0">
10
+ <div class="clr-select-wrapper">
11
+ <select
12
+ id="host-select"
13
+ v-model="selectedHost"
14
+ data-id="select-partition-configuration"
15
+ class="dropdown-toggle"
16
+ @change="onSelectHost"
17
+ >
18
+ <option
19
+ v-for="(item, index) in partitionConfiguration"
20
+ :key="index"
21
+ :value="item.value"
22
+ :disabled="item.disabled"
23
+ >
24
+ {{ item.text }}
25
+ </option>
26
+ </select>
27
+ </div>
28
+ </div>
29
+ </div>
30
+
31
+ <div class="datastore-size-container clr-flex-row clr-flex">
32
+ <label class="clr-col-md-4 clr-control-label" for="datastore-size">
33
+ {{ localization.common.datastoreSize }}
34
+ </label>
35
+
36
+ <div class="datastore-size-slider-container clr-col-md-8 p-0">
37
+ <div class="clr-col-xl-6 clr-col-md-8 p-0">
38
+ <div
39
+ class="partition__range-input clr-control-container clr-col-md-10 clr-col-12"
40
+ >
41
+ <div class="clr-range-wrapper">
42
+ <input
43
+ id="datastore-size-input-0"
44
+ v-model="datastoreSize"
45
+ data-id="select-storm-storage-size-range-field"
46
+ type="range"
47
+ min="0"
48
+ :max="countDatastoreSizeToGb"
49
+ step="0.01"
50
+ class="ng-valid clr-range ng-dirty ng-touched"
51
+ />
52
+ </div>
53
+ </div>
54
+ </div>
55
+
56
+ <input
57
+ id="datastore-size-input-1"
58
+ v-model="datastoreSize"
59
+ data-id="select-storm-storage-size-input-field"
60
+ type="number"
61
+ min="0"
62
+ :max="countDatastoreSizeToGb"
63
+ step="0.01"
64
+ class="show-arrow"
65
+ />
66
+ <span>{{ localization.common.gb }}</span>
67
+ </div>
68
+ </div>
69
+
70
+ <template v-if="props.vmfsVersion === 'vmfs-6'">
71
+ <div class="clr-form-control clr-row">
72
+ <label class="clr-col-md-4 clr-control-label">
73
+ {{ localization.common.blockSize }}
74
+ </label>
75
+
76
+ <div>
77
+ <div class="clr-select-wrapper">
78
+ <select
79
+ id="storm-configuration-block-size"
80
+ v-model="selectedSize"
81
+ data-id="storm-configuration-block-size"
82
+ class="dropdown-toggle"
83
+ @change="onSelectHost"
84
+ >
85
+ <option
86
+ v-for="(item, index) in blockSize"
87
+ :key="index"
88
+ :value="item.value"
89
+ :disabled="item.disabled"
90
+ >
91
+ {{ item.text }}
92
+ </option>
93
+ </select>
94
+ </div>
95
+ </div>
96
+ </div>
97
+
98
+ <div class="clr-form-control clr-row">
99
+ <label class="clr-col-md-4 clr-control-label">
100
+ {{ localization.common.spaceReclamationGranularity }}
101
+ </label>
102
+
103
+ <div>
104
+ <div class="clr-select-wrapper">
105
+ <select
106
+ id="granularity-select"
107
+ v-model="selectedGranularity"
108
+ data-id="storm-configuration-space-granularity"
109
+ class="dropdown-toggle"
110
+ @change="onSelectHost"
111
+ >
112
+ <option
113
+ v-for="(item, index) in spaceGranularity"
114
+ :key="index"
115
+ :value="item.value"
116
+ :disabled="item.disabled"
117
+ >
118
+ {{ item.text }}
119
+ </option>
120
+ </select>
121
+ </div>
122
+ </div>
123
+ </div>
124
+
125
+ <div class="clr-form-control clr-row">
126
+ <label class="clr-col-md-4 clr-control-label">
127
+ {{ localization.common.spaceReclamationPriority }}
128
+ </label>
129
+
130
+ <div>
131
+ <div class="clr-select-wrapper">
132
+ <select
133
+ id="priority-select"
134
+ v-model="selectedPriority"
135
+ data-id="storm-configuration-space-priority"
136
+ class="dropdown-toggle"
137
+ @change="onSelectHost"
138
+ >
139
+ <option
140
+ v-for="(item, index) in spacePriority"
141
+ :key="index"
142
+ :value="item.value"
143
+ :disabled="item.disabled"
144
+ >
145
+ {{ item.text }}
146
+ </option>
147
+ </select>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ </template>
152
+
153
+ <common-wizards-datastore-add-shared-storm-partition-configuration-size-graphic
154
+ :selected-size="+datastoreSize"
155
+ :capacity="countDatastoreSizeToGb"
156
+ />
157
+ </div>
158
+ </template>
159
+
160
+ <script lang="ts" setup>
161
+ import { UI_I_Localization } from '~/lib/models/interfaces'
162
+ import { UI_T_VmfsType } from '~/components/common/wizards/datastore/add/lib/models/types'
163
+ import { UI_I_SelectHostOptions } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/interfaces'
164
+ import {
165
+ partitionConfigurationFunc,
166
+ spacePriorityFunc,
167
+ spaceGranularityFunc,
168
+ blockSizeFunc,
169
+ } from '~/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/lib/config/selectOptions'
170
+
171
+ const props = withDefaults(
172
+ defineProps<{
173
+ vmfsVersion: UI_T_VmfsType
174
+ selectedLunDiskSize: number
175
+ }>(),
176
+ {
177
+ selectedLunDiskSize: 0,
178
+ }
179
+ )
180
+ const localization = computed<UI_I_Localization>(() => useLocal())
181
+ const { $binary } = useNuxtApp()
182
+
183
+ const selectedHost = ref<string>('all-partitions')
184
+ const partitionConfiguration = computed<UI_I_SelectHostOptions[]>(() =>
185
+ partitionConfigurationFunc(localization.value)
186
+ )
187
+
188
+ const selectedSize = ref<string>('1')
189
+ const blockSize = computed<UI_I_SelectHostOptions[]>(() =>
190
+ blockSizeFunc(localization.value)
191
+ )
192
+
193
+ const selectedGranularity = ref<string>('1')
194
+ const spaceGranularity = computed<UI_I_SelectHostOptions[]>(() =>
195
+ spaceGranularityFunc(localization.value)
196
+ )
197
+
198
+ const selectedPriority = ref<string>('low')
199
+ const spacePriority = computed<UI_I_SelectHostOptions[]>(() =>
200
+ spacePriorityFunc(localization.value)
201
+ )
202
+
203
+ const countDatastoreSizeToGb = computed<number>(() => {
204
+ return $binary.mbToGb(props.selectedLunDiskSize)
205
+ })
206
+
207
+ const datastoreSize = ref<number | null>(null)
208
+ watch(
209
+ () => props.selectedLunDiskSize,
210
+ (_val) => {
211
+ datastoreSize.value = countDatastoreSizeToGb.value
212
+ }
213
+ )
214
+
215
+ const onSelectHost = (): void => {}
216
+
217
+ // const lunDiskTotalCapacity = computed<number>(() => { TODO: нужно будет сделать на родительском компоненте
218
+ // if (!model.value.lunDisk.length) return 0
219
+ //
220
+ // return +model.value.lunDisk
221
+ // .map((disk: UI_I_CreateStorageLunDiskItem) => disk.capacity_mb)
222
+ // .reduce((acc, cur) => acc + cur)
223
+ // })
224
+ </script>
225
+
226
+ <style lang="scss" scoped>
227
+ .partition {
228
+ .datastore-size-container {
229
+ display: flex;
230
+ margin-left: -1em;
231
+ margin-top: 1.2rem;
232
+ margin-bottom: 1.2rem;
233
+ }
234
+ .clr-form-control {
235
+ display: flex;
236
+ flex-direction: row;
237
+ }
238
+ &__range-input {
239
+ margin-left: -10px;
240
+ }
241
+ }
242
+ .datastore-size-slider-container {
243
+ display: flex;
244
+ }
245
+ </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: var(--z-popover);
63
+ }
64
+ </style>
@@ -0,0 +1,46 @@
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { 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.common.selectConfiguration, value: '', disabled: true },
9
+ { text: localization.common.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.common.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.common.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.common.low,
39
+ value: 'low',
40
+ },
41
+ {
42
+ text: localization.common.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.common
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>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.5.75",
4
+ "version": "1.5.76",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",