bfg-common 1.2.45 → 1.2.47

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 (203) 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/BadBrowser.vue +114 -114
  17. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  18. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  19. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  20. package/components/common/browse/Browse.vue +182 -182
  21. package/components/common/browse/blocks/Title.vue +66 -66
  22. package/components/common/diagramMain/Diagram.vue +186 -186
  23. package/components/common/diagramMain/DiagramMain.vue +986 -986
  24. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  25. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  26. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  27. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  28. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  29. package/components/common/diagramMain/network/Contents.vue +238 -238
  30. package/components/common/feedback/Buttons.vue +232 -232
  31. package/components/common/feedback/Message.vue +468 -468
  32. package/components/common/feedback/VisitPortal.vue +54 -54
  33. package/components/common/help/navbar/left/Left.vue +159 -159
  34. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  35. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  36. package/components/common/modals/Rename.vue +165 -165
  37. package/components/common/perPage/PerPage.vue +51 -51
  38. package/components/common/recursionTree/RecursionTree.vue +201 -201
  39. package/components/common/vm/actions/add/Add.vue +14 -14
  40. package/components/common/vm/actions/add/utils.ts +2 -2
  41. package/components/common/vm/actions/clone/Clone.vue +544 -545
  42. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  43. package/components/common/vm/actions/clone/utils.ts +43 -43
  44. package/components/common/vm/actions/{add → common}/config/capabilities.ts +338 -338
  45. package/components/common/vm/actions/{add → common}/customizeHardware/CustomizeHardware.vue +7 -7
  46. package/components/common/vm/actions/{add → common}/customizeHardware/models/interfaces.ts +2 -2
  47. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/VirtualHardware.vue +657 -657
  48. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/browseView/BrowseView.vue +1 -1
  49. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/bus/Bus.vue +1 -1
  50. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +8 -8
  51. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  52. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Cpu.vue +383 -383
  53. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/shares/Shares.vue +1 -1
  54. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  55. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  56. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  57. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  58. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/Location.vue +1 -1
  59. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  60. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +1 -1
  61. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +1 -1
  62. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +1 -1
  63. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +1 -1
  64. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +1 -1
  65. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  66. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +1 -1
  67. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +1 -1
  68. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +8 -8
  69. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +1 -1
  70. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +1 -1
  71. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/other/Other.vue +1 -1
  72. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  73. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  74. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/model/Model.vue +1 -1
  75. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +1 -1
  76. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/Vmoptions.vue +6 -6
  77. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/BootOptions.vue +7 -7
  78. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +1 -1
  79. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +1 -1
  80. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  81. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +181 -181
  82. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  83. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  84. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +1 -1
  85. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +1 -1
  86. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  87. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +1 -1
  88. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +2 -2
  89. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +1 -1
  90. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +1 -1
  91. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +1 -1
  92. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +1 -1
  93. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +1 -1
  94. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/tools/Tools.vue +1 -1
  95. package/components/common/vm/actions/{add → common}/models/interfaces.ts +2 -2
  96. package/components/common/vm/actions/{add → common}/models/types.ts +3 -3
  97. package/components/common/vm/actions/{add → common}/select/computeResource/ComputeResource.vue +1 -1
  98. package/components/common/vm/actions/{add → common}/select/createType/CreateType.vue +1 -1
  99. package/components/common/vm/actions/{add → common}/select/models/types.ts +2 -0
  100. package/components/common/vm/actions/{add → common}/select/os/os.vue +1 -1
  101. package/components/common/vm/actions/{add → common}/select/storage/Storage.vue +1 -1
  102. package/components/common/vm/actions/{add → common}/select/storage/config/config.ts +154 -154
  103. package/components/common/vm/actions/editSettings/EditSettings.vue +4 -4
  104. package/components/common/vm/actions/editSettings/models/types.ts +2 -2
  105. package/components/common/vm/actions/editSettings/utils.ts +2 -5
  106. package/components/common/vm/actions/models/interfaces.ts +1 -1
  107. package/components/common/vm/actions/models/types.ts +1 -1
  108. package/components/common/vm/actions/utils.ts +5 -5
  109. package/components/common/wizards/datastore/add/nfs/Nfs.vue +94 -94
  110. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +377 -377
  111. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  112. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  113. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  114. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  115. package/composables/useLocal.ts +38 -38
  116. package/minify.js +146 -146
  117. package/models/store/interfaces.ts +37 -37
  118. package/models/store/storage/interfaces.ts +32 -32
  119. package/models/store/types.ts +32 -32
  120. package/models/store/vm/interfaces.ts +2 -2
  121. package/modules/fixContentBuild/utils/methods.ts +114 -114
  122. package/package.json +1 -1
  123. package/public/spice-console/application/codec.js +257 -257
  124. package/public/spice-console/lib/rasterEngine.js +907 -907
  125. package/public/spice-console/network/spicechannel.js +369 -369
  126. package/utils/contentBuild.ts +34 -34
  127. package/components/common/vm/actions/clone/readyToComplete/ReadyToComplete.vue +0 -15
  128. /package/components/common/vm/actions/{add → common}/customizeHardware/config/navItems.ts +0 -0
  129. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/browseView/models/interfaces.ts +0 -0
  130. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/bus/config/options.ts +0 -0
  131. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +0 -0
  132. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +0 -0
  133. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +0 -0
  134. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +0 -0
  135. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/config/binaryOptions.ts +0 -0
  136. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/config/dropdownItems.ts +0 -0
  137. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +0 -0
  138. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/CpuModel.vue +0 -0
  139. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Hv.vue +0 -0
  140. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Iommu.vue +0 -0
  141. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/MaxCpu.vue +0 -0
  142. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Pc.vue +0 -0
  143. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Sa.vue +0 -0
  144. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +0 -0
  145. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/shares/config/options.ts +0 -0
  146. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +0 -0
  147. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +0 -0
  148. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/models/interfaces.ts +0 -0
  149. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/models/types.ts +0 -0
  150. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +0 -0
  151. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +0 -0
  152. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +0 -0
  153. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +0 -0
  154. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +0 -0
  155. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +0 -0
  156. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +0 -0
  157. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/Location.vue +0 -0
  158. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +0 -0
  159. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +0 -0
  160. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/config/options.ts +0 -0
  161. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +0 -0
  162. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +0 -0
  163. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +0 -0
  164. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +0 -0
  165. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +0 -0
  166. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newUsbController/config/options.ts +0 -0
  167. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/other/InputDevices.vue +0 -0
  168. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/reservation/config/options.ts +0 -0
  169. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/Graphics.vue +0 -0
  170. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +0 -0
  171. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/config/options.ts +0 -0
  172. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/model/config/options.ts +0 -0
  173. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +0 -0
  174. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/Menu.vue +0 -0
  175. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/Secure.vue +0 -0
  176. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +0 -0
  177. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +0 -0
  178. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +0 -0
  179. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/models/interfaces.ts +0 -0
  180. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +0 -0
  181. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +0 -0
  182. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +0 -0
  183. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +0 -0
  184. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +0 -0
  185. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +0 -0
  186. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +0 -0
  187. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +0 -0
  188. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +0 -0
  189. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +0 -0
  190. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +0 -0
  191. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +0 -0
  192. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +0 -0
  193. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +0 -0
  194. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +0 -0
  195. /package/components/common/vm/actions/{add → common}/models/enums.ts +0 -0
  196. /package/components/common/vm/actions/{add → common}/readyToComplete/ReadyToComplete.vue +0 -0
  197. /package/components/common/vm/actions/{add → common}/select/compatibility/Compatibility.vue +0 -0
  198. /package/components/common/vm/actions/{add → common}/select/computeResource/ComputeResource.spec.ts +0 -0
  199. /package/components/common/vm/actions/{add → common}/select/computeResource/TreeView.vue +0 -0
  200. /package/components/common/vm/actions/{add → common}/select/createType/config/items.ts +0 -0
  201. /package/components/common/vm/actions/{add → common}/select/models/interfaces.ts +0 -0
  202. /package/components/common/vm/actions/{add → common}/select/name/Name.vue +0 -0
  203. /package/components/common/vm/actions/{add → common}/select/storage/models/types.ts +0 -0
@@ -1,224 +1,224 @@
1
- <template>
2
- <div
3
- id="signpost"
4
- :class="['signpost', signpostClass]"
5
- :style="signpostStyles"
6
- @click.stop
7
- @mouseenter="hovered = true"
8
- @mouseleave="hovered = false"
9
- >
10
- <div class="signpost-wrap">
11
- <div class="popover-pointer" />
12
- <div class="signpost-content-header">
13
- <button
14
- :id="`${props.testId}-close-icon`"
15
- class="signpost-action close"
16
- @click="hide"
17
- >
18
- <atoms-the-icon class="close-icon" name="close" />
19
- </button>
20
- </div>
21
- <div class="signpost-content-body">
22
- <slot />
23
- </div>
24
- </div>
25
- </div>
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import { UI_I_ElPosition } from '~/components/atoms/tooltip/Models/interfaces'
30
- const props = withDefaults(
31
- defineProps<{
32
- elemId: string
33
- testId?: string
34
- }>(),
35
- { testId: 'ui-signpost' }
36
- )
37
- const emits = defineEmits<{
38
- (event: 'hide'): void
39
- }>()
40
- const hide = (): void => {
41
- emits('hide')
42
- }
43
-
44
- const signpostStyles = ref<UI_I_ElPosition | null>(null)
45
- watch(
46
- () => props.elemId,
47
- (id: string) => {
48
- const elem = (document.getElementById(id) as HTMLDivElement) || null
49
- const { width, x, y } = elem.getBoundingClientRect()
50
-
51
- signpostStyles.value = {
52
- top: `${y}px`,
53
- left: `${x + width / 2}px`,
54
- }
55
- setTimeout(() => {
56
- setSignpostPosition()
57
- }, 0)
58
- },
59
- { immediate: true }
60
- )
61
- const signpostClass = ref<string[]>([])
62
- const setSignpostPosition = (): void => {
63
- const signpost =
64
- (document.getElementById('signpost') as HTMLDivElement) || null
65
- const signpostRect = (signpost?.getBoundingClientRect() as DOMRect) || null
66
-
67
- type PositionX = 'right' | 'left'
68
- let positionX: PositionX = 'right'
69
-
70
- type PositionY = 'top' | 'middle'
71
- let positionY: PositionY = 'middle'
72
-
73
- const isOutRight = signpostRect.left + signpostRect.width > window.innerWidth
74
- const isOutTop = signpostRect.top < 0
75
-
76
- if (isOutTop) {
77
- positionY = 'top'
78
- }
79
- if (isOutRight) {
80
- positionX = 'left'
81
- }
82
-
83
- signpostClass.value.push(positionY)
84
- signpostClass.value.push(positionX)
85
- signpostClass.value.push('show')
86
- }
87
-
88
- const hovered = ref(false)
89
- const windowClick = (): void => {
90
- hide()
91
- }
92
- const windowScroll = (): void => {
93
- if (hovered.value) {
94
- return
95
- }
96
- hide()
97
- }
98
- onMounted(() => {
99
- setTimeout(() => {
100
- window.addEventListener('click', windowClick)
101
- window.addEventListener('scroll', windowScroll, true)
102
- })
103
- })
104
- onUnmounted(() => {
105
- window.removeEventListener('click', windowClick)
106
- window.removeEventListener('scroll', windowScroll, true)
107
- })
108
- </script>
109
-
110
- <style scoped lang="scss">
111
- .signpost {
112
- opacity: 0;
113
- position: fixed;
114
- cursor: default;
115
- transform: translateY(calc(-50% + 14px)) translateX(20px);
116
- z-index: 1000000000;
117
-
118
- &.show {
119
- opacity: 1;
120
- }
121
- &.left {
122
- transform: translateY(calc(-50% + 14px)) translateX(calc(-100% - 20px));
123
-
124
- .signpost-wrap {
125
- .popover-pointer {
126
- left: 100%;
127
- border-right: unset;
128
- border-left: 12px solid var(--signpost-border-color);
129
-
130
- &::before {
131
- border-right: unset;
132
- border-left: 12px solid var(--signpost-bgcolor);
133
- left: unset;
134
- right: 2px;
135
- }
136
- }
137
- }
138
- }
139
- &.top {
140
- transform: translateY(calc(0% + 10px)) translateX(20px);
141
-
142
- &.left {
143
- transform: translateY(calc(0% + 10px)) translateX(calc(-100% - 20px));
144
-
145
- .popover-pointer {
146
- top: 5px;
147
- }
148
- }
149
-
150
- .signpost-wrap {
151
- .popover-pointer {
152
- top: 5px;
153
- }
154
- }
155
- }
156
-
157
- .signpost-wrap {
158
- border-radius: 3px;
159
- border: 1px solid var(--signpost-border-color);
160
- background-color: var(--signpost-bgcolor);
161
- position: relative;
162
-
163
- .popover-pointer {
164
- border-bottom: 12px solid transparent;
165
- top: 50%;
166
- transform: translateY(-50%);
167
- border-right: 12px solid var(--signpost-border-color);
168
- left: -12px;
169
- height: 0;
170
- width: 0;
171
- position: absolute;
172
-
173
- &::before {
174
- border-bottom: 12px solid transparent;
175
- top: 1px;
176
- border-right: 12px solid var(--signpost-bgcolor);
177
- left: 2px;
178
- content: '';
179
- height: 0;
180
- width: 0;
181
- position: absolute;
182
- }
183
- }
184
-
185
- .signpost-content-header {
186
- display: flex;
187
- justify-content: flex-end;
188
- position: absolute;
189
- width: 100%;
190
- background-color: inherit;
191
- top: 0;
192
-
193
- button {
194
- line-height: 24px;
195
-
196
- .close-icon {
197
- width: 16px;
198
- height: 16px;
199
- }
200
- }
201
- }
202
-
203
- .signpost-content-body {
204
- padding: 24px;
205
- max-height: 480px;
206
- overflow-y: auto;
207
- text-transform: none;
208
- }
209
- }
210
- }
211
- </style>
212
-
213
- <style>
214
- :root {
215
- --signpost-bgcolor: #fff;
216
- --signpost-border-color: #b3b3b3;
217
- --signpost-color: #acbac3;
218
- }
219
- :root.dark-theme {
220
- --signpost-bgcolor: #21333b;
221
- --signpost-border-color: #000;
222
- --signpost-color: #acbac3;
223
- }
224
- </style>
1
+ <template>
2
+ <div
3
+ id="signpost"
4
+ :class="['signpost', signpostClass]"
5
+ :style="signpostStyles"
6
+ @click.stop
7
+ @mouseenter="hovered = true"
8
+ @mouseleave="hovered = false"
9
+ >
10
+ <div class="signpost-wrap">
11
+ <div class="popover-pointer" />
12
+ <div class="signpost-content-header">
13
+ <button
14
+ :id="`${props.testId}-close-icon`"
15
+ class="signpost-action close"
16
+ @click="hide"
17
+ >
18
+ <atoms-the-icon class="close-icon" name="close" />
19
+ </button>
20
+ </div>
21
+ <div class="signpost-content-body">
22
+ <slot />
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </template>
27
+
28
+ <script setup lang="ts">
29
+ import { UI_I_ElPosition } from '~/components/atoms/tooltip/Models/interfaces'
30
+ const props = withDefaults(
31
+ defineProps<{
32
+ elemId: string
33
+ testId?: string
34
+ }>(),
35
+ { testId: 'ui-signpost' }
36
+ )
37
+ const emits = defineEmits<{
38
+ (event: 'hide'): void
39
+ }>()
40
+ const hide = (): void => {
41
+ emits('hide')
42
+ }
43
+
44
+ const signpostStyles = ref<UI_I_ElPosition | null>(null)
45
+ watch(
46
+ () => props.elemId,
47
+ (id: string) => {
48
+ const elem = (document.getElementById(id) as HTMLDivElement) || null
49
+ const { width, x, y } = elem.getBoundingClientRect()
50
+
51
+ signpostStyles.value = {
52
+ top: `${y}px`,
53
+ left: `${x + width / 2}px`,
54
+ }
55
+ setTimeout(() => {
56
+ setSignpostPosition()
57
+ }, 0)
58
+ },
59
+ { immediate: true }
60
+ )
61
+ const signpostClass = ref<string[]>([])
62
+ const setSignpostPosition = (): void => {
63
+ const signpost =
64
+ (document.getElementById('signpost') as HTMLDivElement) || null
65
+ const signpostRect = (signpost?.getBoundingClientRect() as DOMRect) || null
66
+
67
+ type PositionX = 'right' | 'left'
68
+ let positionX: PositionX = 'right'
69
+
70
+ type PositionY = 'top' | 'middle'
71
+ let positionY: PositionY = 'middle'
72
+
73
+ const isOutRight = signpostRect.left + signpostRect.width > window.innerWidth
74
+ const isOutTop = signpostRect.top < 0
75
+
76
+ if (isOutTop) {
77
+ positionY = 'top'
78
+ }
79
+ if (isOutRight) {
80
+ positionX = 'left'
81
+ }
82
+
83
+ signpostClass.value.push(positionY)
84
+ signpostClass.value.push(positionX)
85
+ signpostClass.value.push('show')
86
+ }
87
+
88
+ const hovered = ref(false)
89
+ const windowClick = (): void => {
90
+ hide()
91
+ }
92
+ const windowScroll = (): void => {
93
+ if (hovered.value) {
94
+ return
95
+ }
96
+ hide()
97
+ }
98
+ onMounted(() => {
99
+ setTimeout(() => {
100
+ window.addEventListener('click', windowClick)
101
+ window.addEventListener('scroll', windowScroll, true)
102
+ })
103
+ })
104
+ onUnmounted(() => {
105
+ window.removeEventListener('click', windowClick)
106
+ window.removeEventListener('scroll', windowScroll, true)
107
+ })
108
+ </script>
109
+
110
+ <style scoped lang="scss">
111
+ .signpost {
112
+ opacity: 0;
113
+ position: fixed;
114
+ cursor: default;
115
+ transform: translateY(calc(-50% + 14px)) translateX(20px);
116
+ z-index: 1000000000;
117
+
118
+ &.show {
119
+ opacity: 1;
120
+ }
121
+ &.left {
122
+ transform: translateY(calc(-50% + 14px)) translateX(calc(-100% - 20px));
123
+
124
+ .signpost-wrap {
125
+ .popover-pointer {
126
+ left: 100%;
127
+ border-right: unset;
128
+ border-left: 12px solid var(--signpost-border-color);
129
+
130
+ &::before {
131
+ border-right: unset;
132
+ border-left: 12px solid var(--signpost-bgcolor);
133
+ left: unset;
134
+ right: 2px;
135
+ }
136
+ }
137
+ }
138
+ }
139
+ &.top {
140
+ transform: translateY(calc(0% + 10px)) translateX(20px);
141
+
142
+ &.left {
143
+ transform: translateY(calc(0% + 10px)) translateX(calc(-100% - 20px));
144
+
145
+ .popover-pointer {
146
+ top: 5px;
147
+ }
148
+ }
149
+
150
+ .signpost-wrap {
151
+ .popover-pointer {
152
+ top: 5px;
153
+ }
154
+ }
155
+ }
156
+
157
+ .signpost-wrap {
158
+ border-radius: 3px;
159
+ border: 1px solid var(--signpost-border-color);
160
+ background-color: var(--signpost-bgcolor);
161
+ position: relative;
162
+
163
+ .popover-pointer {
164
+ border-bottom: 12px solid transparent;
165
+ top: 50%;
166
+ transform: translateY(-50%);
167
+ border-right: 12px solid var(--signpost-border-color);
168
+ left: -12px;
169
+ height: 0;
170
+ width: 0;
171
+ position: absolute;
172
+
173
+ &::before {
174
+ border-bottom: 12px solid transparent;
175
+ top: 1px;
176
+ border-right: 12px solid var(--signpost-bgcolor);
177
+ left: 2px;
178
+ content: '';
179
+ height: 0;
180
+ width: 0;
181
+ position: absolute;
182
+ }
183
+ }
184
+
185
+ .signpost-content-header {
186
+ display: flex;
187
+ justify-content: flex-end;
188
+ position: absolute;
189
+ width: 100%;
190
+ background-color: inherit;
191
+ top: 0;
192
+
193
+ button {
194
+ line-height: 24px;
195
+
196
+ .close-icon {
197
+ width: 16px;
198
+ height: 16px;
199
+ }
200
+ }
201
+ }
202
+
203
+ .signpost-content-body {
204
+ padding: 24px;
205
+ max-height: 480px;
206
+ overflow-y: auto;
207
+ text-transform: none;
208
+ }
209
+ }
210
+ }
211
+ </style>
212
+
213
+ <style>
214
+ :root {
215
+ --signpost-bgcolor: #fff;
216
+ --signpost-border-color: #b3b3b3;
217
+ --signpost-color: #acbac3;
218
+ }
219
+ :root.dark-theme {
220
+ --signpost-bgcolor: #21333b;
221
+ --signpost-border-color: #000;
222
+ --signpost-color: #acbac3;
223
+ }
224
+ </style>
@@ -1,114 +1,114 @@
1
- <template>
2
- <div class="bad-browser">
3
- <div class="main-block">
4
- <h1 class="title-block">
5
- {{ localization.browserOutDate }}
6
- </h1>
7
- <p class="first description-text">
8
- {{ firstDescriptionText }}
9
- </p>
10
- <div class="browsers-block">
11
- <a
12
- href="https://www.google.com/chrome/"
13
- target="_blank"
14
- class="browser-link"
15
- >
16
- <div class="browser-item">
17
- <atoms-the-icon2 name="chrome" class="browser-icon" />
18
- <p class="browser-name">Chrome</p>
19
- </div>
20
- </a>
21
- <a
22
- href="https://www.mozilla.org/en-US/"
23
- target="_blank"
24
- class="browser-link"
25
- >
26
- <div class="browser-item">
27
- <atoms-the-icon2 name="firefox" class="browser-icon" />
28
- <p class="browser-name">Firefox</p>
29
- </div>
30
- </a>
31
- <a
32
- href="https://support.apple.com/downloads/safari"
33
- target="_blank"
34
- class="browser-link"
35
- >
36
- <div class="browser-item">
37
- <atoms-the-icon2 name="safari" class="browser-icon" />
38
- <p class="browser-name">Safari</p>
39
- </div>
40
- </a>
41
- <a
42
- href="https://www.microsoft.com/en-us/edge/download?form=MA13FJ"
43
- target="_blank"
44
- class="browser-link last"
45
- >
46
- <div class="browser-item">
47
- <atoms-the-icon2 name="edge" class="browser-icon" />
48
- <p class="browser-name">Edge</p>
49
- </div>
50
- </a>
51
- </div>
52
- <p>
53
- {{ localization.browserOutDateDesc2 }}
54
- <a href="#">{{ localization.browserOutDateDesc3 }}</a>
55
- </p>
56
- </div>
57
- </div>
58
- </template>
59
-
60
- <script setup lang="ts">
61
- import { UI_I_Localization } from '~/models/interfaces'
62
-
63
- const props = defineProps<{
64
- projectName: string
65
- }>()
66
-
67
- const localization = computed<UI_I_Localization>(() => useLocal())
68
-
69
- const firstDescriptionText = computed<string>(() =>
70
- localization.value.browserOutDateDesc.replace('{0}', props.projectName)
71
- )
72
- </script>
73
-
74
- <style scoped lang="scss">
75
- .bad-browser {
76
- height: inherit;
77
- display: flex;
78
- justify-content: center;
79
- align-items: center;
80
-
81
- .main-block {
82
- width: max-content;
83
- padding: 20px 40px;
84
- text-align: center;
85
-
86
- .title-block {
87
- font-size: 32px;
88
- font-weight: 400;
89
- }
90
- .description-text {
91
- &.first {
92
- margin: 0 auto;
93
- max-width: 400px;
94
- }
95
- }
96
- .browsers-block {
97
- margin: 20px 0;
98
- display: flex;
99
- align-items: center;
100
- justify-content: center;
101
-
102
- .browser-link:not(.last) {
103
- margin-right: 40px;
104
- }
105
-
106
- .browser-item {
107
- .browser-icon {
108
- width: 60px;
109
- }
110
- }
111
- }
112
- }
113
- }
114
- </style>
1
+ <template>
2
+ <div class="bad-browser">
3
+ <div class="main-block">
4
+ <h1 class="title-block">
5
+ {{ localization.browserOutDate }}
6
+ </h1>
7
+ <p class="first description-text">
8
+ {{ firstDescriptionText }}
9
+ </p>
10
+ <div class="browsers-block">
11
+ <a
12
+ href="https://www.google.com/chrome/"
13
+ target="_blank"
14
+ class="browser-link"
15
+ >
16
+ <div class="browser-item">
17
+ <atoms-the-icon2 name="chrome" class="browser-icon" />
18
+ <p class="browser-name">Chrome</p>
19
+ </div>
20
+ </a>
21
+ <a
22
+ href="https://www.mozilla.org/en-US/"
23
+ target="_blank"
24
+ class="browser-link"
25
+ >
26
+ <div class="browser-item">
27
+ <atoms-the-icon2 name="firefox" class="browser-icon" />
28
+ <p class="browser-name">Firefox</p>
29
+ </div>
30
+ </a>
31
+ <a
32
+ href="https://support.apple.com/downloads/safari"
33
+ target="_blank"
34
+ class="browser-link"
35
+ >
36
+ <div class="browser-item">
37
+ <atoms-the-icon2 name="safari" class="browser-icon" />
38
+ <p class="browser-name">Safari</p>
39
+ </div>
40
+ </a>
41
+ <a
42
+ href="https://www.microsoft.com/en-us/edge/download?form=MA13FJ"
43
+ target="_blank"
44
+ class="browser-link last"
45
+ >
46
+ <div class="browser-item">
47
+ <atoms-the-icon2 name="edge" class="browser-icon" />
48
+ <p class="browser-name">Edge</p>
49
+ </div>
50
+ </a>
51
+ </div>
52
+ <p>
53
+ {{ localization.browserOutDateDesc2 }}
54
+ <a href="#">{{ localization.browserOutDateDesc3 }}</a>
55
+ </p>
56
+ </div>
57
+ </div>
58
+ </template>
59
+
60
+ <script setup lang="ts">
61
+ import { UI_I_Localization } from '~/models/interfaces'
62
+
63
+ const props = defineProps<{
64
+ projectName: string
65
+ }>()
66
+
67
+ const localization = computed<UI_I_Localization>(() => useLocal())
68
+
69
+ const firstDescriptionText = computed<string>(() =>
70
+ localization.value.browserOutDateDesc.replace('{0}', props.projectName)
71
+ )
72
+ </script>
73
+
74
+ <style scoped lang="scss">
75
+ .bad-browser {
76
+ height: inherit;
77
+ display: flex;
78
+ justify-content: center;
79
+ align-items: center;
80
+
81
+ .main-block {
82
+ width: max-content;
83
+ padding: 20px 40px;
84
+ text-align: center;
85
+
86
+ .title-block {
87
+ font-size: 32px;
88
+ font-weight: 400;
89
+ }
90
+ .description-text {
91
+ &.first {
92
+ margin: 0 auto;
93
+ max-width: 400px;
94
+ }
95
+ }
96
+ .browsers-block {
97
+ margin: 20px 0;
98
+ display: flex;
99
+ align-items: center;
100
+ justify-content: center;
101
+
102
+ .browser-link:not(.last) {
103
+ margin-right: 40px;
104
+ }
105
+
106
+ .browser-item {
107
+ .browser-icon {
108
+ width: 60px;
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ </style>