bfg-common 1.5.723 → 1.5.725

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 (119) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  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/backup/storage/actions/add/lib/utils.ts +51 -51
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  16. package/components/common/diagramMain/port/Port.vue +580 -580
  17. package/components/common/layout/console/Console.vue +70 -70
  18. package/components/common/layout/theHeader/{TheHeaderNew.vue → New.vue} +2 -5
  19. package/components/common/layout/theHeader/TheHeader.vue +10 -33
  20. package/components/common/layout/theHeader/ThemeSwitch.vue +8 -18
  21. package/components/common/layout/theHeader/helpMenu/HelpMenu.vue +6 -8
  22. package/components/common/layout/theHeader/helpMenu/{About.vue → about/About.vue} +69 -79
  23. package/components/common/layout/theHeader/helpMenu/{aboutNew/AboutNew.vue → about/New.vue} +97 -96
  24. package/components/common/layout/theHeader/helpMenu/about/Old.vue +78 -0
  25. package/components/common/layout/theHeader/helpMenu/{helpMenuNew/HelpMenuNew.vue → new/New.vue} +1 -1
  26. package/components/common/layout/theHeader/helpMenu/{helpMenuNew → new}/lib/config/dropMenu.ts +1 -1
  27. package/components/common/layout/theHeader/helpMenu/{helpMenuOld/HelpMenuOld.vue → old/Old.vue} +2 -2
  28. package/components/common/layout/theHeader/helpMenu/{helpMenuOld → old}/lib/config/dropMenu.ts +1 -1
  29. package/components/common/layout/theHeader/modals/reconnect/Reconnect.vue +8 -10
  30. package/components/common/layout/theHeader/userMenu/UserMenu.vue +8 -7
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/{PreferencesNew.vue → New.vue} +1 -0
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/{PreferencesOld.vue → Old.vue} +0 -2
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +9 -21
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  35. package/components/common/layout/theHeader/userMenu/{userMenuNew/UserMenuNew.vue → new/New.vue} +1 -1
  36. package/components/common/layout/theHeader/userMenu/{userMenuOld/UserMenuOld.vue → old/Old.vue} +2 -2
  37. package/components/common/layout/theHeader/userMenu/{userMenuOld → old}/lib/config/dropMenu.ts +1 -1
  38. package/components/common/pages/backups/DetailView.vue +52 -52
  39. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  40. package/components/common/pages/backups/modals/Modals.vue +243 -243
  41. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  42. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  43. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  44. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  45. package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +84 -84
  46. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +113 -113
  47. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  48. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  49. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  50. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  51. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  52. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  53. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  54. package/components/common/pages/tasks/Tasks.vue +125 -125
  55. package/components/common/pages/tasks/table/Table.vue +373 -373
  56. package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
  57. package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
  58. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  59. package/components/common/select/radio/RadioGroup.vue +137 -137
  60. package/components/common/spiceConsole/Drawer.vue +420 -420
  61. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  62. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  63. package/components/common/tools/Actions.vue +207 -207
  64. package/components/common/treeView/TreeView.vue +52 -52
  65. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  66. package/components/common/vm/actions/clone/new/New.vue +438 -438
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  69. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  70. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  71. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  72. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  73. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  74. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  75. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  76. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  77. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  78. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  79. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  80. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  81. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  82. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  83. package/components/common/wizards/common/steps/name/New.vue +221 -221
  84. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  85. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  86. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  87. package/components/common/wizards/datastore/add/Add.vue +228 -228
  88. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  89. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  90. package/composables/useAppVersion.ts +21 -21
  91. package/composables/useBrowse.ts +24 -24
  92. package/composables/useLocal.ts +6 -6
  93. package/composables/useLocalCommon.ts +39 -39
  94. package/lib/models/types.ts +59 -59
  95. package/package.json +1 -1
  96. package/plugins/console.ts +21 -21
  97. package/plugins/mouse.ts +21 -21
  98. package/plugins/panelStates.ts +70 -70
  99. package/plugins/text.ts +59 -59
  100. package/public/spice-console/application/clientgui.js +854 -854
  101. package/public/spice-console/application/packetfactory.js +211 -211
  102. package/public/spice-console/application/virtualmouse.js +147 -147
  103. package/public/spice-console/lib/images/bitmap.js +203 -203
  104. package/public/spice-console/network/spicechannel.js +440 -440
  105. package/public/spice-console/process/cursorprocess.js +128 -128
  106. package/public/spice-console/process/inputprocess.js +227 -227
  107. package/public/spice-console/process/mainprocess.js +212 -212
  108. package/public/spice-console/run.js +210 -210
  109. package/store/main/mutations.ts +7 -7
  110. package/store/main/state.ts +7 -7
  111. package/store/tasks/mappers/recentTasks.ts +123 -123
  112. package/store/tasks/mutations.ts +82 -82
  113. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +0 -79
  114. /package/components/common/layout/theHeader/{TheHeaderOld.vue → Old.vue} +0 -0
  115. /package/components/common/layout/theHeader/helpMenu/{helpMenuOld → old}/lib/models/types.ts +0 -0
  116. /package/components/common/layout/theHeader/modals/reconnect/{ReconnectNew.vue → New.vue} +0 -0
  117. /package/components/common/layout/theHeader/modals/reconnect/{ReconnectOld.vue → Old.vue} +0 -0
  118. /package/components/common/layout/theHeader/userMenu/{userMenuNew → new}/lib/config/dropMenu.ts +0 -0
  119. /package/components/common/layout/theHeader/userMenu/{userMenuOld → old}/lib/models/types.ts +0 -0
@@ -1,70 +1,70 @@
1
- <template>
2
- <atoms-window
3
- v-if="consoleInWindow?.isShow"
4
- :top="consoleInWindow.top"
5
- :left="consoleInWindow.left"
6
- :width="consoleInWindow.width"
7
- :height="consoleInWindow.height"
8
- :title="consoleInWindow.name"
9
- :loading="consoleInWindow.isLoading"
10
- @hide="onHide"
11
- >
12
- <template #header>
13
- <div class="flex-align-center gap-2 overflow-hidden">
14
- <ui-icon name="monitor" width="16" height="16" class="monitor-icon" />
15
- <span class="text-ellipsis">{{ consoleInWindow.name }}</span>
16
- </div>
17
- </template>
18
- <embed
19
- id="embed"
20
- type="text/html"
21
- width="100%"
22
- height="100%"
23
- :src="consoleInWindow.url"
24
- @load="onLoad"
25
- />
26
- </atoms-window>
27
- </template>
28
-
29
- <script setup lang="ts">
30
- import type { UI_I_ConsoleInWindow } from '~/components/common/layout/console/lib/models/interfaces'
31
-
32
- const { $store }: any = useNuxtApp()
33
-
34
- const onLoad = (): void => {
35
- $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
36
- }
37
-
38
- const consoleInWindow = computed<UI_I_ConsoleInWindow | null>(() => {
39
- return $store.getters['main/getConsoleInWindow']
40
- })
41
- watch(
42
- consoleInWindow,
43
- (newValue, oldValue) => {
44
- if (newValue?.url === oldValue?.url) {
45
- $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
46
- }
47
- },
48
- { deep: true }
49
- )
50
-
51
- const onHide = (): void => {
52
- $store.dispatch('main/A_SHOW_CONSOLE_IN_WINDOW', {
53
- width: -1,
54
- height: -1,
55
- top: -1,
56
- left: -1,
57
- name: '',
58
- isShow: false,
59
- isLoading: false,
60
- url: '',
61
- })
62
- }
63
- </script>
64
-
65
- <style scoped lang="scss">
66
- .monitor-icon {
67
- min-width: 16px;
68
- min-height: 16px;
69
- }
70
- </style>
1
+ <template>
2
+ <atoms-window
3
+ v-if="consoleInWindow?.isShow"
4
+ :top="consoleInWindow.top"
5
+ :left="consoleInWindow.left"
6
+ :width="consoleInWindow.width"
7
+ :height="consoleInWindow.height"
8
+ :title="consoleInWindow.name"
9
+ :loading="consoleInWindow.isLoading"
10
+ @hide="onHide"
11
+ >
12
+ <template #header>
13
+ <div class="flex-align-center gap-2 overflow-hidden">
14
+ <ui-icon name="monitor" width="16" height="16" class="monitor-icon" />
15
+ <span class="text-ellipsis">{{ consoleInWindow.name }}</span>
16
+ </div>
17
+ </template>
18
+ <embed
19
+ id="embed"
20
+ type="text/html"
21
+ width="100%"
22
+ height="100%"
23
+ :src="consoleInWindow.url"
24
+ @load="onLoad"
25
+ />
26
+ </atoms-window>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import type { UI_I_ConsoleInWindow } from '~/components/common/layout/console/lib/models/interfaces'
31
+
32
+ const { $store }: any = useNuxtApp()
33
+
34
+ const onLoad = (): void => {
35
+ $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
36
+ }
37
+
38
+ const consoleInWindow = computed<UI_I_ConsoleInWindow | null>(() => {
39
+ return $store.getters['main/getConsoleInWindow']
40
+ })
41
+ watch(
42
+ consoleInWindow,
43
+ (newValue, oldValue) => {
44
+ if (newValue?.url === oldValue?.url) {
45
+ $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
46
+ }
47
+ },
48
+ { deep: true }
49
+ )
50
+
51
+ const onHide = (): void => {
52
+ $store.dispatch('main/A_SHOW_CONSOLE_IN_WINDOW', {
53
+ width: -1,
54
+ height: -1,
55
+ top: -1,
56
+ left: -1,
57
+ name: '',
58
+ isShow: false,
59
+ isLoading: false,
60
+ url: '',
61
+ })
62
+ }
63
+ </script>
64
+
65
+ <style scoped lang="scss">
66
+ .monitor-icon {
67
+ min-width: 16px;
68
+ min-height: 16px;
69
+ }
70
+ </style>
@@ -87,10 +87,7 @@
87
87
  </ui-tooltip>
88
88
  <div class="divider right-divider-global-refresh" />
89
89
  <div class="container-content">
90
- <common-layout-the-header-theme-switch
91
- :is-dark-theme="props.isDarkTheme"
92
- @change-theme-mode="emits('change-theme-mode')"
93
- />
90
+ <common-layout-the-header-theme-switch v-model="isDarkTheme" />
94
91
  </div>
95
92
  <div class="divider" />
96
93
  <div class="container-content">
@@ -141,6 +138,7 @@ const newViewLocal = defineModel<boolean>('newViewLocal')
141
138
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
142
139
  const consoleValue = defineModel<string>('consoleValue')
143
140
  const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
141
+ const isDarkTheme = defineModel<boolean>('isDarkTheme')
144
142
 
145
143
  const props = defineProps<{
146
144
  isShowMainMenu: boolean
@@ -154,7 +152,6 @@ const props = defineProps<{
154
152
  selectedLanguageType: string
155
153
  selectedLang: UI_I_Dropdown
156
154
  newView: boolean
157
- isDarkTheme: boolean
158
155
  securityLoader: boolean // для Сферы
159
156
  recovery: UI_I_Recovery | null // для Сферы
160
157
  }>()
@@ -1,11 +1,12 @@
1
1
  <template>
2
- <common-layout-the-header-new
3
- v-if="props.newView"
2
+ <component
3
+ :is="currentComponent"
4
4
  v-model:security="security"
5
5
  v-model:new-view-local="newViewLocal"
6
6
  v-model:time-format="timeFormat"
7
7
  v-model:console-value="consoleValue"
8
8
  v-model:vm-in-hosts-clusters="vmInHostsClusters"
9
+ v-model:is-dark-theme="isDarkTheme"
9
10
  :is-show-main-menu="props.isShowMainMenu"
10
11
  :company-name="props.companyName"
11
12
  :beta-text="props.betaText"
@@ -17,7 +18,6 @@
17
18
  :selected-lang="props.selectedLang"
18
19
  :new-view="props.newView"
19
20
  :project="props.project"
20
- :is-dark-theme="props.isDarkTheme"
21
21
  :security-loader="props.securityLoader"
22
22
  :recovery="props.recovery"
23
23
  @toggle-main-menu="emits('toggle-main-menu')"
@@ -31,35 +31,6 @@
31
31
  @security-confirm="emits('security-confirm', $event)"
32
32
  @submit-preferences="emits('submit-preferences')"
33
33
  />
34
- <common-layout-the-header-old
35
- v-else
36
- v-model:security="security"
37
- v-model:new-view-local="newViewLocal"
38
- v-model:time-format="timeFormat"
39
- v-model:console-value="consoleValue"
40
- v-model:vm-in-hosts-clusters="vmInHostsClusters"
41
- :company-name="props.companyName"
42
- :beta-text="props.betaText"
43
- :global-refresh-loading="props.globalRefreshLoading"
44
- :hostname="props.hostname"
45
- :project-name="props.projectName"
46
- :is-preference="props.isPreference"
47
- :selected-language-type="props.selectedLanguageType"
48
- :selected-lang="props.selectedLang"
49
- :new-view="props.newView"
50
- :project="props.project"
51
- :security-loader="props.securityLoader"
52
- :recovery="props.recovery"
53
- @toggle-main-menu="emits('toggle-main-menu')"
54
- @show-preference="emits('show-preference')"
55
- @hide-preference="emits('hide-preference')"
56
- @global-refresh="emits('global-refresh')"
57
- @change-theme-mode="emits('change-theme-mode')"
58
- @update-language="emits('update-language', $event)"
59
- @update-is-browser="emits('update-is-browser', $event)"
60
- @security-confirm="emits('security-confirm', $event)"
61
- @submit-preferences="emits('submit-preferences')"
62
- />
63
34
 
64
35
  <common-layout-the-header-modals-reconnect />
65
36
  <common-layout-the-header-modals-redirect-login />
@@ -77,6 +48,7 @@ const newViewLocal = defineModel<boolean>('newViewLocal')
77
48
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
78
49
  const consoleValue = defineModel<string>('consoleValue')
79
50
  const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
51
+ const isDarkTheme = defineModel<boolean>('isDarkTheme')
80
52
 
81
53
  const props = withDefaults(
82
54
  defineProps<{
@@ -91,7 +63,6 @@ const props = withDefaults(
91
63
  selectedLanguageType: string
92
64
  selectedLang: UI_I_Dropdown
93
65
  newView: boolean
94
- isDarkTheme: boolean
95
66
  isPauseReconnect: boolean
96
67
  expireTimeFromState: number
97
68
  isShowReconnectModal: boolean
@@ -120,6 +91,12 @@ const emits = defineEmits<{
120
91
  (event: 'show-reconnect-modal', value: boolean): void
121
92
  }>()
122
93
 
94
+ const currentComponent = computed(() =>
95
+ props.newView
96
+ ? defineAsyncComponent(() => import('./New.vue'))
97
+ : defineAsyncComponent(() => import('./Old.vue'))
98
+ )
99
+
123
100
  const inactivityTimer = ref<NodeJS.Timeout | undefined>(undefined)
124
101
  const inactivityTimeout = ref<number>(10 * 60 * 1000)
125
102
 
@@ -11,7 +11,12 @@
11
11
  id="tooltip-theme-mode-toggle-button"
12
12
  class="popped tooltip inline-block"
13
13
  >
14
- <ui-switch v-model="model" test-id="switch-theme-mode" size="md" dark>
14
+ <ui-switch
15
+ v-model="isDarkTheme"
16
+ test-id="switch-theme-mode"
17
+ size="md"
18
+ dark
19
+ >
15
20
  <template #rightIcon>
16
21
  <ui-icon name="light-theme" width="14" height="14" />
17
22
  </template>
@@ -32,27 +37,12 @@
32
37
  <script setup lang="ts">
33
38
  import type { UI_I_Localization } from '~/lib/models/interfaces'
34
39
 
35
- const props = defineProps<{
36
- isDarkTheme: boolean
37
- }>()
38
-
39
- const emits = defineEmits<{
40
- (event: 'change-theme-mode'): void
41
- }>()
40
+ const isDarkTheme = defineModel<boolean>()
42
41
 
43
42
  const localization = computed<UI_I_Localization>(() => useLocal())
44
43
 
45
- const model = computed<boolean>({
46
- get() {
47
- return props.isDarkTheme
48
- },
49
- set() {
50
- emits('change-theme-mode')
51
- },
52
- })
53
-
54
44
  const tooltipText = computed<string>(() =>
55
- model.value
45
+ isDarkTheme.value
56
46
  ? localization.value.layout.darkMode
57
47
  : localization.value.layout.lightMode
58
48
  )
@@ -1,12 +1,5 @@
1
1
  <template>
2
- <common-layout-the-header-help-menu-help-menu-new
3
- v-if="isNewView"
4
- @select-dropdown="onSelectDropdown"
5
- />
6
- <common-layout-the-header-help-menu-help-menu-old
7
- v-else
8
- @select-dropdown="onSelectDropdown"
9
- />
2
+ <component :is="currentComponent" @select-dropdown="onSelectDropdown" />
10
3
 
11
4
  <common-layout-the-header-help-menu-about
12
5
  v-if="isShowAbout"
@@ -25,6 +18,11 @@ const { $store }: any = useNuxtApp()
25
18
  const { version } = useAppVersion()
26
19
 
27
20
  const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
21
+ const currentComponent = computed(() =>
22
+ isNewView.value
23
+ ? defineAsyncComponent(() => import('./new/New.vue'))
24
+ : defineAsyncComponent(() => import('./old/Old.vue'))
25
+ )
28
26
 
29
27
  const isShowAbout = ref<boolean>(false)
30
28
 
@@ -1,79 +1,69 @@
1
- <template>
2
- <Teleport to="body">
3
- <common-layout-the-header-help-menu-about-new
4
- v-if="isNewView"
5
- :title="title"
6
- :subtitle="subtitle"
7
- :about-heading-text="aboutHeadingText"
8
- :about-desc-one="aboutDesc1"
9
- :about-desc-second="aboutDesc2"
10
- :project-name="props.projectName"
11
- :url="companyWebSitePath"
12
- @hide="emits('hide')"
13
- />
14
-
15
- <common-layout-the-header-help-menu-about-old
16
- v-else
17
- :title="title"
18
- :subtitle="subtitle"
19
- :about-heading-text="aboutHeadingText"
20
- :about-desc-one="aboutDesc1"
21
- :about-desc-second="aboutDesc2"
22
- :project-name="props.projectName"
23
- :url="companyWebSitePath"
24
- @hide="emits('hide')"
25
- />
26
- </Teleport>
27
- </template>
28
-
29
- <script lang="ts" setup>
30
- import type { UI_I_Localization } from '~/lib/models/interfaces'
31
-
32
- const props = defineProps<{
33
- version: string
34
- projectName: string
35
- }>()
36
- const emits = defineEmits<{
37
- (event: 'hide'): void
38
- }>()
39
-
40
- const localization = computed<UI_I_Localization>(() => useLocal())
41
- const { $store }: any = useNuxtApp()
42
- const config = useRuntimeConfig()
43
-
44
- const companyName = computed<string>(
45
- () => config.public[`COMPANY_NAME_${useEnvLanguage()}`]
46
- )
47
- const brandName = computed<string>(
48
- () => config.public[`TRADEMARK_${useEnvLanguage()}`]
49
- )
50
-
51
- const companyWebSitePath = ref<string>(config.public.SUPPORT_SITE)
52
-
53
- const title = computed<string>(() => `${brandName.value}® ${props.projectName}`)
54
- const subtitle = computed<string>(() =>
55
- localization.value.layout.aboutWebClientVersion
56
- .replace('{0}', props.projectName)
57
- .replace('{1}', props.version)
58
- )
59
-
60
- const aboutHeadingText = computed<string>(() =>
61
- localization.value.layout.aboutHeading.replace(
62
- '{companyName}',
63
- companyName.value
64
- ).replace(
65
- '{year}',
66
- new Date().getFullYear() + ''
67
- )
68
- )
69
-
70
- const aboutDesc = computed<string[]>(() =>
71
- localization.value.layout.aboutDesc
72
- .replaceAll('{companyName}', companyName.value)
73
- .replaceAll('{trademark}', brandName.value).split('{url}')
74
- )
75
- const aboutDesc1 = computed<string>(() => aboutDesc.value[0])
76
- const aboutDesc2 = computed<string>(() => aboutDesc.value[1])
77
-
78
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
79
- </script>
1
+ <template>
2
+ <Teleport to="body">
3
+ <component
4
+ :is="currentComponent"
5
+ :title="title"
6
+ :subtitle="subtitle"
7
+ :about-heading-text="aboutHeadingText"
8
+ :about-desc-one="aboutDesc1"
9
+ :about-desc-second="aboutDesc2"
10
+ :project-name="props.projectName"
11
+ :url="companyWebSitePath"
12
+ @hide="emits('hide')"
13
+ />
14
+ </Teleport>
15
+ </template>
16
+
17
+ <script lang="ts" setup>
18
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
19
+
20
+ const props = defineProps<{
21
+ version: string
22
+ projectName: string
23
+ }>()
24
+ const emits = defineEmits<{
25
+ (event: 'hide'): void
26
+ }>()
27
+
28
+ const localization = computed<UI_I_Localization>(() => useLocal())
29
+ const { $store }: any = useNuxtApp()
30
+ const config = useRuntimeConfig()
31
+
32
+ const companyName = computed<string>(
33
+ () => config.public[`COMPANY_NAME_${useEnvLanguage()}`]
34
+ )
35
+ const brandName = computed<string>(
36
+ () => config.public[`TRADEMARK_${useEnvLanguage()}`]
37
+ )
38
+
39
+ const companyWebSitePath = ref<string>(config.public.SUPPORT_SITE)
40
+
41
+ const title = computed<string>(() => `${brandName.value}® ${props.projectName}`)
42
+ const subtitle = computed<string>(() =>
43
+ localization.value.layout.aboutWebClientVersion
44
+ .replace('{0}', props.projectName)
45
+ .replace('{1}', props.version)
46
+ )
47
+
48
+ const aboutHeadingText = computed<string>(() =>
49
+ localization.value.layout.aboutHeading
50
+ .replace('{companyName}', companyName.value)
51
+ .replace('{year}', new Date().getFullYear() + '')
52
+ )
53
+
54
+ const aboutDesc = computed<string[]>(() =>
55
+ localization.value.layout.aboutDesc
56
+ .replaceAll('{companyName}', companyName.value)
57
+ .replaceAll('{trademark}', brandName.value)
58
+ .split('{url}')
59
+ )
60
+ const aboutDesc1 = computed<string>(() => aboutDesc.value[0])
61
+ const aboutDesc2 = computed<string>(() => aboutDesc.value[1])
62
+
63
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
64
+ const currentComponent = computed(() =>
65
+ isNewView.value
66
+ ? defineAsyncComponent(() => import('./New.vue'))
67
+ : defineAsyncComponent(() => import('./Old.vue'))
68
+ )
69
+ </script>
@@ -1,96 +1,97 @@
1
- <template>
2
- <ui-modal
3
- :title="props.title"
4
- :subtitle="props.subtitle"
5
- :texts="{}"
6
- test-id="about-modal"
7
- width="720px"
8
- show
9
- @hide="onHideModal"
10
- >
11
- <template #content>
12
- <ui-modal-block-standard>
13
- <div class="about-modal__text">
14
- <p>{{ aboutHeadingText }}</p>
15
-
16
- <p>{{ localization.layout.aboutSubtitle }}</p>
17
- </div>
18
-
19
- <div class="about-modal__description">
20
- {{ props.aboutDescOne }}<a
21
- id="about-description-link"
22
- :href="url"
23
- data-id="about-description-link"
24
- target="_blank"
25
- class="about-modal__description-link"
26
- >
27
- {{ props.url }}
28
- </a>{{ props.aboutDescSecond }}
29
- </div>
30
- </ui-modal-block-standard>
31
- </template>
32
- <template #footer><div class="modal-footer-block"></div></template>
33
- </ui-modal>
34
- </template>
35
-
36
- <script lang="ts" setup>
37
- import type { UI_I_Localization } from '~/lib/models/interfaces'
38
-
39
- const props = defineProps<{
40
- title: string
41
- subtitle: string
42
- aboutHeadingText: string
43
- aboutDescOne: string
44
- aboutDescSecond: string
45
- projectName: string
46
- url: string
47
- }>()
48
- const emits = defineEmits<{
49
- (event: 'hide'): void
50
- }>()
51
-
52
- const localization = computed<UI_I_Localization>(() => useLocal())
53
-
54
- const onHideModal = (): void => {
55
- emits('hide')
56
- }
57
- </script>
58
-
59
- <style lang="scss" scoped>
60
- .modal-container-standard {
61
- padding-top: 12px;
62
- padding-bottom: 12px;
63
-
64
- .about-modal {
65
- &__text {
66
- color: var(--about-text-color);
67
- font-size: 13px;
68
- font-weight: 400;
69
- line-height: 15.73px;
70
-
71
- p:last-child {
72
- margin: 16px 0;
73
- }
74
- }
75
- &__description {
76
- color: var(--about-text-color);
77
- font-size: 13px;
78
- font-weight: 400;
79
- line-height: 15.73px;
80
-
81
- &-link {
82
- color: var(--about-text-link-color);
83
- &:hover {
84
- color: var(--about-text-link-hover-color);
85
- }
86
- }
87
- }
88
- }
89
- }
90
- .modal-footer-block {
91
- height: 32px;
92
- }
93
- :deep(.title-wrapper__subtitle) {
94
- max-width: 400px;
95
- }
96
- </style>
1
+ <template>
2
+ <ui-modal
3
+ :title="props.title"
4
+ :subtitle="props.subtitle"
5
+ :texts="{}"
6
+ test-id="about-modal"
7
+ width="720px"
8
+ show
9
+ @hide="onHideModal"
10
+ >
11
+ <template #content>
12
+ <ui-modal-block-standard>
13
+ <div class="about-modal__text">
14
+ <p>{{ aboutHeadingText }}</p>
15
+
16
+ <p>{{ localization.layout.aboutSubtitle }}</p>
17
+ </div>
18
+
19
+ <div class="about-modal__description">
20
+ {{ props.aboutDescOne
21
+ }}<a
22
+ id="about-description-link"
23
+ :href="url"
24
+ data-id="about-description-link"
25
+ target="_blank"
26
+ class="about-modal__description-link"
27
+ >
28
+ {{ props.url }} </a
29
+ >{{ props.aboutDescSecond }}
30
+ </div>
31
+ </ui-modal-block-standard>
32
+ </template>
33
+ <template #footer><div class="modal-footer-block"></div></template>
34
+ </ui-modal>
35
+ </template>
36
+
37
+ <script lang="ts" setup>
38
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
39
+
40
+ const props = defineProps<{
41
+ title: string
42
+ subtitle: string
43
+ aboutHeadingText: string
44
+ aboutDescOne: string
45
+ aboutDescSecond: string
46
+ url: string
47
+ projectName: string // для warning console
48
+ }>()
49
+ const emits = defineEmits<{
50
+ (event: 'hide'): void
51
+ }>()
52
+
53
+ const localization = computed<UI_I_Localization>(() => useLocal())
54
+
55
+ const onHideModal = (): void => {
56
+ emits('hide')
57
+ }
58
+ </script>
59
+
60
+ <style lang="scss" scoped>
61
+ .modal-container-standard {
62
+ padding-top: 12px;
63
+ padding-bottom: 12px;
64
+
65
+ .about-modal {
66
+ &__text {
67
+ color: var(--about-text-color);
68
+ font-size: 13px;
69
+ font-weight: 400;
70
+ line-height: 15.73px;
71
+
72
+ p:last-child {
73
+ margin: 16px 0;
74
+ }
75
+ }
76
+ &__description {
77
+ color: var(--about-text-color);
78
+ font-size: 13px;
79
+ font-weight: 400;
80
+ line-height: 15.73px;
81
+
82
+ &-link {
83
+ color: var(--about-text-link-color);
84
+ &:hover {
85
+ color: var(--about-text-link-hover-color);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ .modal-footer-block {
92
+ height: 32px;
93
+ }
94
+ :deep(.title-wrapper__subtitle) {
95
+ max-width: 400px;
96
+ }
97
+ </style>