bfg-common 1.4.791 → 1.4.792

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 (171) 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/modal/bySteps/BySteps.vue +253 -253
  8. package/components/atoms/stack/StackBlock.vue +185 -185
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  10. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/browse/BrowseNew.vue +237 -237
  14. package/components/common/browse/BrowseOld.vue +217 -217
  15. package/components/common/browse/blocks/contents/Files.vue +37 -37
  16. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  17. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  18. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  19. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  20. package/components/common/browse/lib/models/interfaces.ts +5 -5
  21. package/components/common/context/Context.vue +111 -111
  22. package/components/common/context/lib/models/interfaces.ts +30 -30
  23. package/components/common/context/recursion/Recursion.vue +87 -87
  24. package/components/common/context/recursion/RecursionNew.vue +237 -237
  25. package/components/common/context/recursion/RecursionOld.vue +227 -227
  26. package/components/common/details/DetailsItem.vue +109 -109
  27. package/components/common/diagramMain/Header.vue +211 -211
  28. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  29. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  30. package/components/common/diagramMain/lib/models/types.ts +21 -21
  31. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  32. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  33. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  34. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  35. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  36. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  37. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  38. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  39. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  40. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +398 -398
  41. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  42. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  43. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  44. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  45. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  46. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  47. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  48. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  55. package/components/common/diagramMain/port/Ports.vue +47 -47
  56. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  57. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  58. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +151 -151
  59. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +300 -300
  60. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  61. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  62. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +250 -250
  63. package/components/common/pages/home/StatusContent.vue +49 -49
  64. package/components/common/pages/home/headline/Headline.vue +45 -45
  65. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  66. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  67. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  68. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  69. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  70. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  71. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  72. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  73. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  74. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  75. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  76. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  77. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  78. package/components/common/pages/packages/Packages.vue +208 -208
  79. package/components/common/pages/tasks/Tasks.vue +1 -0
  80. package/components/common/pages/tasks/table/Table.vue +326 -293
  81. package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +17 -4
  82. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +12 -0
  83. package/components/common/pages/tasks/table/lib/config/config.ts +5 -5
  84. package/components/common/recursionTree/RecursionTree.vue +223 -223
  85. package/components/common/select/button/ButtonDropdown.vue +108 -108
  86. package/components/common/spiceConsole/Drawer.vue +370 -370
  87. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  88. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  89. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  90. package/components/common/split/vertical/Vertical.vue +160 -160
  91. package/components/common/vm/actions/add/Add.vue +621 -621
  92. package/components/common/vm/actions/clone/Clone.vue +639 -639
  93. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  94. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +271 -271
  95. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +271 -271
  96. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +174 -174
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +357 -357
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  157. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  158. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  159. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  160. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  161. package/components/common/wizards/vm/migrate/Migrate.vue +288 -288
  162. package/composables/productNameLocal.ts +30 -30
  163. package/composables/useAppVersion.ts +21 -21
  164. package/package.json +2 -2
  165. package/plugins/date.ts +233 -233
  166. package/plugins/recursion.ts +311 -311
  167. package/public/spice-console/lib/images/bitmap.js +203 -203
  168. package/public/spice-console/network/spicechannel.js +383 -383
  169. package/store/main/mutations.ts +7 -7
  170. package/store/main/state.ts +7 -7
  171. 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>