bfg-common 1.1.80 → 1.1.82

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 (84) hide show
  1. package/components/atoms/alert/Notification.vue +167 -167
  2. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  3. package/components/atoms/datepicker/Datepicker.vue +612 -612
  4. package/components/atoms/list/SelectList.vue +62 -62
  5. package/components/atoms/nav/NavBar.vue +116 -116
  6. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  7. package/components/atoms/notificationBar/NotificationBar.vue +175 -175
  8. package/components/atoms/perPage/PerPage.vue +52 -52
  9. package/components/atoms/popup/SimplePopup.vue +90 -90
  10. package/components/atoms/step/VerticalStep.vue +104 -104
  11. package/components/atoms/switch/Switch.vue +107 -107
  12. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +206 -206
  13. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  14. package/components/atoms/tabs/Tabs.vue +189 -189
  15. package/components/atoms/tooltip/Signpost.vue +224 -224
  16. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  17. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  18. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  19. package/components/common/browse/Browse.vue +182 -182
  20. package/components/common/browse/blocks/Title.vue +66 -66
  21. package/components/common/diagramMain/Diagram.vue +186 -186
  22. package/components/common/diagramMain/DiagramMain.vue +986 -986
  23. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  24. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  25. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  26. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  27. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  28. package/components/common/diagramMain/network/Contents.vue +238 -238
  29. package/components/common/feedback/Buttons.vue +232 -232
  30. package/components/common/feedback/Message.vue +468 -468
  31. package/components/common/feedback/VisitPortal.vue +54 -54
  32. package/components/common/help/navbar/left/Left.vue +159 -159
  33. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  34. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  35. package/components/common/modals/Rename.vue +165 -165
  36. package/components/common/monitor/advanced/Advanced.vue +234 -221
  37. package/components/common/monitor/advanced/tools/Tools.vue +428 -441
  38. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +484 -424
  39. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +8 -0
  40. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +9 -0
  41. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +3 -2
  42. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +79 -73
  43. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +66 -19
  44. package/components/common/monitor/advanced/tools/chartOptionsModal/models/models.ts +19 -0
  45. package/components/common/monitor/models/interfaces.ts +1 -0
  46. package/components/common/perPage/PerPage.vue +51 -51
  47. package/components/common/recursionTree/RecursionTree.vue +201 -201
  48. package/components/common/vm/actions/add/config/capabilities.ts +777 -777
  49. package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +646 -646
  50. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +246 -246
  51. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +108 -108
  52. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +382 -375
  53. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  54. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  55. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  56. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  57. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  58. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  59. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  60. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  61. package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +180 -180
  62. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  63. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  64. package/components/common/vm/actions/add/select/storage/config/config.ts +154 -154
  65. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -373
  66. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  67. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  68. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  69. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  70. package/models/store/interfaces.ts +37 -37
  71. package/models/store/storage/interfaces.ts +32 -32
  72. package/models/store/types.ts +32 -32
  73. package/modules/fixContentBuild/utils/methods.ts +114 -114
  74. package/package.json +1 -1
  75. package/public/spice-console/application/codec.js +257 -257
  76. package/public/spice-console/lib/rasterEngine.js +907 -907
  77. package/public/spice-console/network/spicechannel.js +369 -369
  78. package/public/spice-console-minify/lib/decoder/dixie.min.js +4 -4
  79. package/public/spice-console-minify/lib/jgestures.min.js +24 -24
  80. package/public/spice-console-minify/lib/jquery-2.0.3.min.js +24 -24
  81. package/public/spice-console-minify/lib/jquery-mousewheel.min.js +11 -11
  82. package/public/spice-console-minify/lib/jquery-visibility.min.js +1 -1
  83. package/public/spice-console-minify/lib/lodash.4.0.0.min.js +5 -5
  84. package/utils/contentBuild.ts +34 -34
@@ -5,6 +5,7 @@
5
5
  :type="props.type"
6
6
  :selected-keys="props.selectedKeys"
7
7
  @select-row="emits('select-row', $event)"
8
+ @total-items="totalMetricItems = $event"
8
9
  />
9
10
  <common-monitor-advanced-tools-chart-options-modal-counters-timespan
10
11
  :type="props.type"
@@ -21,6 +22,9 @@
21
22
  :custom-time-to="props.customTimeTo"
22
23
  :total-cores="props.totalCores"
23
24
  :host-id="props.hostId"
25
+ :selected-metrics-keys="props.selectedMetricsKeys"
26
+ :total-metric-items="totalMetricItems"
27
+ :selected-objects="props.selectedObjects"
24
28
  @update-chart-type="emits('update-chart-type', $event)"
25
29
  @update-custom-time="emits('update-custom-time', $event)"
26
30
  @update-timespan-type="emits('update-timespan-type', $event)"
@@ -59,6 +63,8 @@ const props = defineProps<{
59
63
  customTimeTo: string
60
64
  totalCores: number
61
65
  hostId: string
66
+ selectedMetricsKeys: number[]
67
+ selectedObjects: string
62
68
  }>()
63
69
 
64
70
  const emits = defineEmits<{
@@ -74,6 +80,8 @@ const emits = defineEmits<{
74
80
  (event: 'update-custom-time-to', value: string): void
75
81
  (event: 'select-objects', value: string): void
76
82
  }>()
83
+
84
+ const totalMetricItems = ref<number>(0)
77
85
  </script>
78
86
 
79
87
  <style scoped lang="scss">
@@ -46,6 +46,7 @@ const props = defineProps<{
46
46
 
47
47
  const emits = defineEmits<{
48
48
  (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
49
+ (event: 'total-items', value: number): void
49
50
  }>()
50
51
 
51
52
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -57,6 +58,14 @@ const counters = computed<UI_I_AdvancedCounterItem[]>(() =>
57
58
  const totalItems = computed<number>(() => counters.value.length)
58
59
  const totalPages = computed<number>(() => 1)
59
60
 
61
+ watch(
62
+ totalItems,
63
+ (newValue) => {
64
+ emits('total-items', newValue)
65
+ },
66
+ { immediate: true }
67
+ )
68
+
60
69
  const selectedCounters = ref<number[]>([])
61
70
  watch(
62
71
  () => props.selectedKeys,
@@ -654,8 +654,9 @@ export const getDefaultCounters = (
654
654
  case 'cpuUsageInPercent':
655
655
  return hostItemsFunc('cpu', {}).splice(0, 2)
656
656
  case 'disk':
657
- const allItems = hostItemsFunc('disk', {})
658
- return allItems.filter((_, key) => [0, 14].includes(key))
657
+ return hostItemsFunc('disk', {}).filter((_, key) =>
658
+ [0, 14].includes(key)
659
+ )
659
660
  case 'memory':
660
661
  return hostItemsFunc('memory', {})
661
662
  case 'network':
@@ -1,73 +1,79 @@
1
- <template>
2
- <div class="timespan-objects-section-direction flex horizontal">
3
- <common-monitor-advanced-tools-chart-options-modal-counters-timespan-form
4
- :language="props.language"
5
- :selected-chart-type="props.selectedChartType"
6
- :selected-timespan-type="props.selectedTimespanType"
7
- :units-count="props.unitsCount"
8
- :period-type="props.periodType"
9
- :selected-custom-time="props.selectedCustomTime"
10
- :custom-date-from="props.customDateFrom"
11
- :custom-date-to="props.customDateTo"
12
- :custom-time-from="props.customTimeFrom"
13
- :custom-time-to="props.customTimeTo"
14
- @update-chart-type="emits('update-chart-type', $event)"
15
- @update-custom-time="emits('update-custom-time', $event)"
16
- @update-timespan-type="emits('update-timespan-type', $event)"
17
- @update-unit-count="emits('update-unit-count', $event)"
18
- @update-period-type="emits('update-period-type', $event)"
19
- @update-custom-date-from="emits('update-custom-date-from', $event)"
20
- @update-custom-date-to="emits('update-custom-date-to', $event)"
21
- @update-custom-time-from="emits('update-custom-time-from', $event)"
22
- @update-custom-time-to="emits('update-custom-time-to', $event)"
23
- />
24
- <common-monitor-advanced-tools-chart-options-modal-counters-timespan-object
25
- :type="props.type"
26
- :chart="props.chart"
27
- :total-cores="props.totalCores"
28
- :host-id="props.hostId"
29
- @select-objects="emits('select-objects', $event)"
30
- />
31
- </div>
32
- </template>
33
-
34
- <script setup lang="ts">
35
- import { UI_T_AdvancedType } from '~/components/common/monitor/advanced/models/types'
36
- import {
37
- T_ChartHost,
38
- T_ChartVm,
39
- } from '~/components/common/monitor/advanced/tools/chartOptionsModal/models/types'
40
-
41
- const props = defineProps<{
42
- type: UI_T_AdvancedType
43
- chart: T_ChartHost | T_ChartVm
44
- language: string
45
- selectedChartType: string
46
- selectedTimespanType: string
47
- unitsCount: number
48
- periodType: string
49
- selectedCustomTime: string
50
- customDateFrom: string
51
- customDateTo: string
52
- customTimeFrom: string
53
- customTimeTo: string
54
- totalCores: number
55
- hostId: string
56
- }>()
57
-
58
- const emits = defineEmits<{
59
- (event: 'update-chart-type', value: string): void
60
- (event: 'update-custom-time', value: string): void
61
- (event: 'update-timespan-type', value: string): void
62
- (event: 'update-unit-count', value: number): void
63
- (event: 'update-period-type', value: string): void
64
- (event: 'update-period-type', value: string): void
65
- (event: 'update-custom-date-from', value: string): void
66
- (event: 'update-custom-date-to', value: string): void
67
- (event: 'update-custom-time-from', value: string): void
68
- (event: 'update-custom-time-to', value: string): void
69
- (event: 'select-objects', value: string): void
70
- }>()
71
- </script>
72
-
73
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="timespan-objects-section-direction flex horizontal">
3
+ <common-monitor-advanced-tools-chart-options-modal-counters-timespan-form
4
+ :language="props.language"
5
+ :selected-chart-type="props.selectedChartType"
6
+ :selected-timespan-type="props.selectedTimespanType"
7
+ :units-count="props.unitsCount"
8
+ :period-type="props.periodType"
9
+ :selected-custom-time="props.selectedCustomTime"
10
+ :custom-date-from="props.customDateFrom"
11
+ :custom-date-to="props.customDateTo"
12
+ :custom-time-from="props.customTimeFrom"
13
+ :custom-time-to="props.customTimeTo"
14
+ @update-chart-type="emits('update-chart-type', $event)"
15
+ @update-custom-time="emits('update-custom-time', $event)"
16
+ @update-timespan-type="emits('update-timespan-type', $event)"
17
+ @update-unit-count="emits('update-unit-count', $event)"
18
+ @update-period-type="emits('update-period-type', $event)"
19
+ @update-custom-date-from="emits('update-custom-date-from', $event)"
20
+ @update-custom-date-to="emits('update-custom-date-to', $event)"
21
+ @update-custom-time-from="emits('update-custom-time-from', $event)"
22
+ @update-custom-time-to="emits('update-custom-time-to', $event)"
23
+ />
24
+ <common-monitor-advanced-tools-chart-options-modal-counters-timespan-object
25
+ :type="props.type"
26
+ :chart="props.chart"
27
+ :total-cores="props.totalCores"
28
+ :host-id="props.hostId"
29
+ :selected-metrics-keys="props.selectedMetricsKeys"
30
+ :total-metric-items="props.totalMetricItems"
31
+ :selected-objects="props.selectedObjects"
32
+ @select-objects="emits('select-objects', $event)"
33
+ />
34
+ </div>
35
+ </template>
36
+
37
+ <script setup lang="ts">
38
+ import { UI_T_AdvancedType } from '~/components/common/monitor/advanced/models/types'
39
+ import {
40
+ T_ChartHost,
41
+ T_ChartVm,
42
+ } from '~/components/common/monitor/advanced/tools/chartOptionsModal/models/types'
43
+
44
+ const props = defineProps<{
45
+ type: UI_T_AdvancedType
46
+ chart: T_ChartHost | T_ChartVm
47
+ language: string
48
+ selectedChartType: string
49
+ selectedTimespanType: string
50
+ unitsCount: number
51
+ periodType: string
52
+ selectedCustomTime: string
53
+ customDateFrom: string
54
+ customDateTo: string
55
+ customTimeFrom: string
56
+ customTimeTo: string
57
+ totalCores: number
58
+ hostId: string
59
+ selectedMetricsKeys: number[]
60
+ totalMetricItems: number
61
+ selectedObjects: string
62
+ }>()
63
+
64
+ const emits = defineEmits<{
65
+ (event: 'update-chart-type', value: string): void
66
+ (event: 'update-custom-time', value: string): void
67
+ (event: 'update-timespan-type', value: string): void
68
+ (event: 'update-unit-count', value: number): void
69
+ (event: 'update-period-type', value: string): void
70
+ (event: 'update-period-type', value: string): void
71
+ (event: 'update-custom-date-from', value: string): void
72
+ (event: 'update-custom-date-to', value: string): void
73
+ (event: 'update-custom-time-from', value: string): void
74
+ (event: 'update-custom-time-to', value: string): void
75
+ (event: 'select-objects', value: string): void
76
+ }>()
77
+ </script>
78
+
79
+ <style scoped lang="scss"></style>
@@ -45,6 +45,9 @@ const props = defineProps<{
45
45
  chart: T_ChartHost | T_ChartVm
46
46
  totalCores: number
47
47
  hostId: string
48
+ selectedMetricsKeys: number[]
49
+ totalMetricItems: number
50
+ selectedObjects: string
48
51
  }>()
49
52
 
50
53
  const emits = defineEmits<{
@@ -68,38 +71,82 @@ const columnItems = computed<UI_I_ColumnKey[]>(() =>
68
71
 
69
72
  const bodyItems = ref<UI_I_BodyItem[][]>([])
70
73
 
71
- const items: UI_I_AdvancedTargetObject[] = []
74
+ let items: UI_I_AdvancedTargetObject[] = []
72
75
  watch(
73
- () => [props.type, props.chart, props.totalCores, props.hostId],
76
+ () => [
77
+ props.type,
78
+ props.chart,
79
+ props.totalCores,
80
+ props.hostId,
81
+ props.selectedMetricsKeys,
82
+ ],
74
83
  (newValue) => {
84
+ items = []
85
+ selectedRow.value = []
86
+
75
87
  if (newValue[0] === 'host' && newValue[1] === 'cpu') {
76
- items.push({
77
- id: 'total',
78
- target_object: newValue[3],
79
- })
80
- for (let i = 0; i < newValue[2]; i++) {
88
+ if (newValue[4].includes(0)) {
81
89
  items.push({
82
- id: 'core' + i,
83
- target_object: '' + i,
90
+ id: 'total',
91
+ target_object: newValue[3],
84
92
  })
85
93
  }
94
+ if (newValue[4].includes(1)) {
95
+ for (let i = 0; i < newValue[2]; i++) {
96
+ items.push({
97
+ id: 'core' + i,
98
+ target_object: '' + i,
99
+ })
100
+ }
101
+ }
86
102
  bodyItems.value = table.bodyItems(items)
87
- }
103
+ } else bodyItems.value = []
88
104
  },
89
105
  { immediate: true }
90
106
  )
91
107
 
92
- watch(selectedRow, (newValue) => {
93
- const selectedItems: number[] = []
108
+ watch(
109
+ selectedRow,
110
+ (newValue) => {
111
+ const selectedItems: string[] = []
112
+
113
+ newValue.forEach((key) => {
114
+ selectedItems.push(items[key].id)
115
+ })
94
116
 
95
- newValue.forEach((key) => {
96
- selectedItems.push(+items[key].id)
97
- })
117
+ const selectedNames =
118
+ items.length === newValue.length &&
119
+ props.selectedMetricsKeys.length === props.totalMetricItems
120
+ ? '*'
121
+ : selectedItems.join(', ')
98
122
 
99
- const selectedNames =
100
- items.length === newValue.length ? '*' : selectedItems.join(', ')
101
- emits('select-objects', selectedNames)
102
- })
123
+ emits('select-objects', selectedNames)
124
+ },
125
+ { deep: true }
126
+ )
127
+
128
+ watch(
129
+ () => [props.selectedObjects, bodyItems.value],
130
+ ([selected, all]) => {
131
+ if (!all.length) return
132
+
133
+ if (props.type === 'host' && props.chart === 'cpu') {
134
+ if (selected === '*') {
135
+ selectedRow.value = all.map((item) => item[0].id)
136
+ } else {
137
+ const selectedNames = selected.split(', ')
138
+ const selectedKeys: number[] = []
139
+ all.forEach((item) => {
140
+ if (selectedNames.includes('total')) selectedKeys.push(0)
141
+ if (selectedNames.includes(`core${item[0].text}`))
142
+ selectedKeys.push(item[0].id)
143
+ })
144
+ selectedRow.value = selectedKeys
145
+ }
146
+ }
147
+ },
148
+ { immediate: true }
149
+ )
103
150
  </script>
104
151
 
105
152
  <style scoped lang="scss">
@@ -0,0 +1,19 @@
1
+ import { UI_I_AdvancedCounterItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces'
2
+
3
+ export interface UI_I_OptionsForm {
4
+ fields: string
5
+ optionName: string
6
+ metric: string
7
+ counters: UI_I_AdvancedCounterItem[]
8
+ timespanType: string
9
+ periodType: string
10
+ unitCount: number
11
+ localTimespanType: string
12
+ dateFrom: string
13
+ timeFrom: string
14
+ dateTo: string
15
+ timeTo: string
16
+ chartType: string
17
+ objects: string
18
+ periodValue: number[]
19
+ }
@@ -16,4 +16,5 @@ export interface UI_I_MonitorGraphPayload {
16
16
  storageId?: string
17
17
  hostName?: string
18
18
  fields?: string
19
+ metricType?: string
19
20
  }
@@ -1,51 +1,51 @@
1
- <template>
2
- <div class="page-size">
3
- {{ selectLabel }}
4
-
5
- <div class="clr-select-wrapper">
6
- <select
7
- :id="`${props.testId}-page-size-select`"
8
- :value="props.pageSize"
9
- class="clr-page-size-select"
10
- @change="change"
11
- >
12
- <option
13
- v-for="(item, key) in props.options"
14
- :key="key"
15
- :value="item.value"
16
- >
17
- {{ item.text }}
18
- </option>
19
- </select>
20
- </div>
21
- </div>
22
- </template>
23
-
24
- <script setup lang="ts">
25
- import { UI_I_Localization } from '~/models/interfaces'
26
- import { UI_I_OptionItem } from '~/components/atoms/models/interfaces'
27
-
28
- const props = withDefaults(
29
- defineProps<{
30
- testId: string
31
- pageSize: number
32
- options: UI_I_OptionItem[]
33
- label?: string
34
- }>(),
35
- {
36
- label: 'itemsPerPage',
37
- }
38
- )
39
- const emits = defineEmits<{
40
- (event: 'change', num: number): void
41
- }>()
42
-
43
- const localization = computed<UI_I_Localization>(() => useLocal())
44
- const selectLabel = computed<string>(() => localization.value[props.label])
45
-
46
- const change = (e: InputEvent): void => {
47
- emits('change', +(e.target as HTMLInputElement).value)
48
- }
49
- </script>
50
-
51
- <style scoped></style>
1
+ <template>
2
+ <div class="page-size">
3
+ {{ selectLabel }}
4
+
5
+ <div class="clr-select-wrapper">
6
+ <select
7
+ :id="`${props.testId}-page-size-select`"
8
+ :value="props.pageSize"
9
+ class="clr-page-size-select"
10
+ @change="change"
11
+ >
12
+ <option
13
+ v-for="(item, key) in props.options"
14
+ :key="key"
15
+ :value="item.value"
16
+ >
17
+ {{ item.text }}
18
+ </option>
19
+ </select>
20
+ </div>
21
+ </div>
22
+ </template>
23
+
24
+ <script setup lang="ts">
25
+ import { UI_I_Localization } from '~/models/interfaces'
26
+ import { UI_I_OptionItem } from '~/components/atoms/models/interfaces'
27
+
28
+ const props = withDefaults(
29
+ defineProps<{
30
+ testId: string
31
+ pageSize: number
32
+ options: UI_I_OptionItem[]
33
+ label?: string
34
+ }>(),
35
+ {
36
+ label: 'itemsPerPage',
37
+ }
38
+ )
39
+ const emits = defineEmits<{
40
+ (event: 'change', num: number): void
41
+ }>()
42
+
43
+ const localization = computed<UI_I_Localization>(() => useLocal())
44
+ const selectLabel = computed<string>(() => localization.value[props.label])
45
+
46
+ const change = (e: InputEvent): void => {
47
+ emits('change', +(e.target as HTMLInputElement).value)
48
+ }
49
+ </script>
50
+
51
+ <style scoped></style>