bfg-common 1.4.873 → 1.4.874

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 (183) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/scss/common/normalize.scss +361 -361
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  8. package/components/atoms/collapse/CollapseNav.vue +164 -164
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  10. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  15. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  16. package/components/common/browse/BrowseNew.vue +237 -237
  17. package/components/common/browse/BrowseOld.vue +217 -217
  18. package/components/common/browse/blocks/contents/Files.vue +37 -37
  19. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  20. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  23. package/components/common/browse/lib/models/interfaces.ts +5 -5
  24. package/components/common/context/Context.vue +111 -111
  25. package/components/common/context/lib/models/interfaces.ts +30 -30
  26. package/components/common/context/recursion/Recursion.vue +87 -87
  27. package/components/common/context/recursion/RecursionOld.vue +227 -227
  28. package/components/common/details/DetailsItem.vue +109 -109
  29. package/components/common/diagramMain/Header.vue +211 -211
  30. package/components/common/diagramMain/adapter/AdapterItem.vue +7 -2
  31. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  32. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  33. package/components/common/diagramMain/lib/models/interfaces.ts +8 -8
  34. package/components/common/diagramMain/lib/models/types.ts +21 -21
  35. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  36. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  37. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  38. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  39. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  40. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  41. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  42. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  43. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  44. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  45. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  46. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  47. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  48. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  49. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  50. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  56. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  57. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  58. package/components/common/diagramMain/port/Ports.vue +47 -47
  59. package/components/common/graph/Graph.vue +104 -104
  60. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  61. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  62. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  63. package/components/common/monitor/overview/OverviewNew.vue +142 -142
  64. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  65. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  66. package/components/common/monitor/overview/filters/FiltersNew.vue +172 -172
  67. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  68. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -175
  69. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -161
  70. package/components/common/pages/home/StatusContent.vue +49 -49
  71. package/components/common/pages/home/headline/Headline.vue +45 -45
  72. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  73. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  74. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  75. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  76. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  77. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  78. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  79. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  80. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  81. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  82. package/components/common/pages/packages/Packages.vue +208 -208
  83. package/components/common/recursionTree/RecursionTree.vue +223 -223
  84. package/components/common/select/button/ButtonDropdown.vue +108 -108
  85. package/components/common/spiceConsole/Drawer.vue +370 -370
  86. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  87. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  88. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  89. package/components/common/split/vertical/Vertical.vue +160 -160
  90. package/components/common/vm/actions/add/Add.vue +622 -622
  91. package/components/common/vm/actions/clone/Clone.vue +639 -639
  92. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  93. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  94. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  95. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  96. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  97. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  162. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  163. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  164. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  165. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  166. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  167. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  168. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  169. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  170. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  171. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  172. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  173. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  174. package/composables/productNameLocal.ts +30 -30
  175. package/composables/useAppVersion.ts +21 -21
  176. package/package.json +1 -1
  177. package/plugins/date.ts +233 -233
  178. package/plugins/recursion.ts +311 -311
  179. package/public/spice-console/lib/images/bitmap.js +203 -203
  180. package/public/spice-console/network/spicechannel.js +383 -383
  181. package/store/main/mutations.ts +7 -7
  182. package/store/main/state.ts +7 -7
  183. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,163 +1,163 @@
1
- <template>
2
- <div class="wizard-content__container">
3
- <div class="wizard-content">
4
- <atoms-alert
5
- v-if="isShowErrorMessage"
6
- status="alert-danger"
7
- :items="validationMessagesArray"
8
- test-id="switch-properties-alert"
9
- @remove="onHideErrorMessageAlert"
10
- />
11
- <form id="switch-properties-form">
12
- <div class="horizontal-flex-container">
13
- <label class="property-label-group" for="network-label">
14
- {{ localization.common.numberOfPorts }}
15
- </label>
16
- <div class="margin-left-property-value-group">
17
- <div class="property-value-group">
18
- <fieldset>
19
- {{ props.initialData.num_ports }}
20
- </fieldset>
21
- </div>
22
- </div>
23
- </div>
24
- <div class="horizontal-flex-container">
25
- <label class="property-label-group">
26
- {{ localization.common.mtuBytes }}
27
- </label>
28
- <div class="margin-left-property-value-group">
29
- <div class="property-value-group tooltip-field-container">
30
- <fieldset>
31
- <atoms-tooltip-error :has-error="!!props.errorMessages.mtu">
32
- <template #elem>
33
- <input
34
- id="mtu"
35
- v-model="fieldsValues.mtu"
36
- data-id="mtu-input"
37
- type="number"
38
- name="mtu"
39
- :class="[
40
- 'tooltip-field',
41
- {
42
- 'danger-not-valid': props.errorMessages.mtu,
43
- },
44
- ]"
45
- @click.stop
46
- />
47
- </template>
48
- <template #content>
49
- {{ props.errorMessages.mtu }}
50
- </template>
51
- </atoms-tooltip-error>
52
- </fieldset>
53
- </div>
54
- </div>
55
- </div>
56
- </form>
57
- </div>
58
- </div>
59
- </template>
60
-
61
- <script setup lang="ts">
62
- import type { UI_I_Localization } from '~/lib/models/interfaces'
63
- import type {
64
- UI_I_SwitchPropertiesFields,
65
- UI_I_EditSettingsErrorMessage,
66
- UI_I_ModalsInitialData,
67
- } from '~/components/common/diagramMain/lib/models/interfaces'
68
- import type { UI_T_PortPropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
69
- import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
70
-
71
- // Props from up
72
- const props = withDefaults(
73
- defineProps<{
74
- isShowErrorMessageAlert: boolean
75
- initialData?: UI_I_ModalsInitialData
76
- errorMessages: UI_I_EditSettingsErrorMessage
77
- hasErrorMessages?: boolean
78
- }>(),
79
- {
80
- initialData: () => ({}),
81
- }
82
- )
83
-
84
- const validationMessagesArray = computed(() =>
85
- validationMessagesArrayFunc(['mtu'], props.errorMessages)
86
- )
87
-
88
- // UI_I_Localization
89
- const localization = computed<UI_I_Localization>(() => useLocal())
90
-
91
- // For showing component validation errors on the top of modal
92
- const isShowErrorMessage = computed<boolean>(
93
- () => props.isShowErrorMessageAlert && props.hasErrorMessages
94
- )
95
-
96
- const fieldsValues = ref<UI_I_SwitchPropertiesFields>({
97
- mtu: props.initialData.mtu || 0,
98
- num_ports: props.initialData.num_ports || '',
99
- })
100
-
101
- // Validation
102
- const emits = defineEmits<{
103
- (
104
- event: 'change-error-messages',
105
- errorMessage: string,
106
- fieldName: keyof UI_I_EditSettingsErrorMessage
107
- ): void
108
- (event: 'hide-error-message-alert'): void
109
- (
110
- event: 'change-edit-properties-data',
111
- switchPropertiesData: UI_I_SwitchPropertiesFields
112
- ): void
113
- }>()
114
-
115
- const onHideErrorMessageAlert = () => emits('hide-error-message-alert')
116
- const onChangeData = (data: UI_I_SwitchPropertiesFields) =>
117
- emits('change-edit-properties-data', data)
118
-
119
- const changeErrorMessage = (
120
- errorMessage: string,
121
- fieldName: keyof UI_I_EditSettingsErrorMessage
122
- ) => emits('change-error-messages', errorMessage, fieldName)
123
-
124
- const messageTexts = (local: UI_I_Localization) => ({
125
- mtu: local.common.mtuInvalidMessage,
126
- })
127
-
128
- const setMessageOnChangedField = (
129
- values: number,
130
- name: UI_T_PortPropertiesFieldName,
131
- text: string
132
- ) => {
133
- if (values < 1280 || values > 65535) {
134
- changeErrorMessage(text, name)
135
- return
136
- }
137
- changeErrorMessage('', name)
138
- }
139
-
140
- watch(
141
- fieldsValues,
142
- (newValues: UI_I_SwitchPropertiesFields) => {
143
- setMessageOnChangedField(
144
- newValues.mtu,
145
- 'mtu',
146
- messageTexts(localization.value).mtu
147
- )
148
- onChangeData(newValues)
149
- !props.hasErrorMessages && onHideErrorMessageAlert()
150
- },
151
- {
152
- deep: true,
153
- }
154
- )
155
-
156
- onMounted(() => {
157
- onChangeData(fieldsValues.value)
158
- })
159
-
160
- onUnmounted(() => {
161
- onHideErrorMessageAlert()
162
- })
163
- </script>
1
+ <template>
2
+ <div class="wizard-content__container">
3
+ <div class="wizard-content">
4
+ <atoms-alert
5
+ v-if="isShowErrorMessage"
6
+ status="alert-danger"
7
+ :items="validationMessagesArray"
8
+ test-id="switch-properties-alert"
9
+ @remove="onHideErrorMessageAlert"
10
+ />
11
+ <form id="switch-properties-form">
12
+ <div class="horizontal-flex-container">
13
+ <label class="property-label-group" for="network-label">
14
+ {{ localization.common.numberOfPorts }}
15
+ </label>
16
+ <div class="margin-left-property-value-group">
17
+ <div class="property-value-group">
18
+ <fieldset>
19
+ {{ props.initialData.num_ports }}
20
+ </fieldset>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <div class="horizontal-flex-container">
25
+ <label class="property-label-group">
26
+ {{ localization.common.mtuBytes }}
27
+ </label>
28
+ <div class="margin-left-property-value-group">
29
+ <div class="property-value-group tooltip-field-container">
30
+ <fieldset>
31
+ <atoms-tooltip-error :has-error="!!props.errorMessages.mtu">
32
+ <template #elem>
33
+ <input
34
+ id="mtu"
35
+ v-model="fieldsValues.mtu"
36
+ data-id="mtu-input"
37
+ type="number"
38
+ name="mtu"
39
+ :class="[
40
+ 'tooltip-field',
41
+ {
42
+ 'danger-not-valid': props.errorMessages.mtu,
43
+ },
44
+ ]"
45
+ @click.stop
46
+ />
47
+ </template>
48
+ <template #content>
49
+ {{ props.errorMessages.mtu }}
50
+ </template>
51
+ </atoms-tooltip-error>
52
+ </fieldset>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </form>
57
+ </div>
58
+ </div>
59
+ </template>
60
+
61
+ <script setup lang="ts">
62
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
63
+ import type {
64
+ UI_I_SwitchPropertiesFields,
65
+ UI_I_EditSettingsErrorMessage,
66
+ UI_I_ModalsInitialData,
67
+ } from '~/components/common/diagramMain/lib/models/interfaces'
68
+ import type { UI_T_PortPropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
69
+ import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
70
+
71
+ // Props from up
72
+ const props = withDefaults(
73
+ defineProps<{
74
+ isShowErrorMessageAlert: boolean
75
+ initialData?: UI_I_ModalsInitialData
76
+ errorMessages: UI_I_EditSettingsErrorMessage
77
+ hasErrorMessages?: boolean
78
+ }>(),
79
+ {
80
+ initialData: () => ({}),
81
+ }
82
+ )
83
+
84
+ const validationMessagesArray = computed(() =>
85
+ validationMessagesArrayFunc(['mtu'], props.errorMessages)
86
+ )
87
+
88
+ // UI_I_Localization
89
+ const localization = computed<UI_I_Localization>(() => useLocal())
90
+
91
+ // For showing component validation errors on the top of modal
92
+ const isShowErrorMessage = computed<boolean>(
93
+ () => props.isShowErrorMessageAlert && props.hasErrorMessages
94
+ )
95
+
96
+ const fieldsValues = ref<UI_I_SwitchPropertiesFields>({
97
+ mtu: props.initialData.mtu || 0,
98
+ num_ports: props.initialData.num_ports || '',
99
+ })
100
+
101
+ // Validation
102
+ const emits = defineEmits<{
103
+ (
104
+ event: 'change-error-messages',
105
+ errorMessage: string,
106
+ fieldName: keyof UI_I_EditSettingsErrorMessage
107
+ ): void
108
+ (event: 'hide-error-message-alert'): void
109
+ (
110
+ event: 'change-edit-properties-data',
111
+ switchPropertiesData: UI_I_SwitchPropertiesFields
112
+ ): void
113
+ }>()
114
+
115
+ const onHideErrorMessageAlert = () => emits('hide-error-message-alert')
116
+ const onChangeData = (data: UI_I_SwitchPropertiesFields) =>
117
+ emits('change-edit-properties-data', data)
118
+
119
+ const changeErrorMessage = (
120
+ errorMessage: string,
121
+ fieldName: keyof UI_I_EditSettingsErrorMessage
122
+ ) => emits('change-error-messages', errorMessage, fieldName)
123
+
124
+ const messageTexts = (local: UI_I_Localization) => ({
125
+ mtu: local.common.mtuInvalidMessage,
126
+ })
127
+
128
+ const setMessageOnChangedField = (
129
+ values: number,
130
+ name: UI_T_PortPropertiesFieldName,
131
+ text: string
132
+ ) => {
133
+ if (values < 1280 || values > 65535) {
134
+ changeErrorMessage(text, name)
135
+ return
136
+ }
137
+ changeErrorMessage('', name)
138
+ }
139
+
140
+ watch(
141
+ fieldsValues,
142
+ (newValues: UI_I_SwitchPropertiesFields) => {
143
+ setMessageOnChangedField(
144
+ newValues.mtu,
145
+ 'mtu',
146
+ messageTexts(localization.value).mtu
147
+ )
148
+ onChangeData(newValues)
149
+ !props.hasErrorMessages && onHideErrorMessageAlert()
150
+ },
151
+ {
152
+ deep: true,
153
+ }
154
+ )
155
+
156
+ onMounted(() => {
157
+ onChangeData(fieldsValues.value)
158
+ })
159
+
160
+ onUnmounted(() => {
161
+ onHideErrorMessageAlert()
162
+ })
163
+ </script>