bfg-common 1.5.688 → 1.5.689

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 (133) 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/assets/localization/local_be.json +3800 -3783
  7. package/assets/localization/local_en.json +3804 -3787
  8. package/assets/localization/local_hy.json +18 -1
  9. package/assets/localization/local_kk.json +18 -1
  10. package/assets/localization/local_ru.json +18 -1
  11. package/assets/localization/local_zh.json +18 -1
  12. package/assets/scss/components/auth.scss +15 -5
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/dropdown/tree/Tree.vue +2 -0
  16. package/components/atoms/perPage/PerPage.vue +58 -58
  17. package/components/atoms/switch/Switch.vue +103 -97
  18. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  19. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  20. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  21. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  22. package/components/atoms/wizard/Wizard.vue +1 -1
  23. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  24. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  25. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  26. package/components/common/diagramMain/port/Port.vue +580 -580
  27. package/components/common/layout/theHeader/TheHeaderNew.vue +315 -315
  28. package/components/common/layout/theHeader/TheHeaderOld.vue +262 -262
  29. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  30. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +102 -115
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +144 -144
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +115 -108
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{New.vue → ChangeLanguageNew.vue} +89 -88
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{Old.vue → ChangeLanguageOld.vue} +91 -89
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +42 -43
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{New.vue → DefaultConsoleNew.vue} +53 -53
  38. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{Old.vue → DefaultConsoleOld.vue} +49 -49
  39. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/Inventory.vue +32 -31
  40. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{New.vue → InventoryNew.vue} +35 -36
  41. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{Old.vue → InventoryOld.vue} +31 -31
  42. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  43. package/components/common/layout/theHeader/userMenu/modals/preferences/security/New.vue +17 -34
  44. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +216 -216
  45. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +31 -31
  46. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +54 -54
  47. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{New.vue → TimeFormatNew.vue} +52 -52
  48. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{Old.vue → TimeFormatOld.vue} +45 -45
  49. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +45 -46
  50. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{New.vue → ViewNew.vue} +38 -47
  51. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{Old.vue → ViewOld.vue} +112 -112
  52. package/components/common/pages/backups/DetailView.vue +52 -52
  53. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  54. package/components/common/pages/backups/modals/Modals.vue +243 -243
  55. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  56. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  57. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  58. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  59. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  60. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  61. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  62. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  63. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  64. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  65. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  66. package/components/common/qr/Qr.vue +57 -57
  67. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  68. package/components/common/select/radio/RadioGroup.vue +137 -137
  69. package/components/common/spiceConsole/Drawer.vue +420 -420
  70. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  71. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  72. package/components/common/tools/Actions.vue +207 -207
  73. package/components/common/treeView/TreeView.vue +52 -52
  74. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  75. package/components/common/vm/actions/clone/new/New.vue +438 -438
  76. package/components/common/vm/actions/clone/old/Old.vue +1 -0
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +706 -706
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +489 -489
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +253 -253
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  83. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  84. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  85. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  86. package/components/common/vm/actions/common/select/options/Old.vue +109 -109
  87. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  88. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  89. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  90. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  91. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  92. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  93. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  94. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  95. package/components/common/wizards/common/compatibility/New.vue +1 -1
  96. package/components/common/wizards/common/compatibility/Old.vue +1 -1
  97. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  98. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  99. package/components/common/wizards/common/steps/name/New.vue +221 -221
  100. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  101. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  102. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  103. package/components/common/wizards/datastore/add/Add.vue +228 -228
  104. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  105. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +232 -232
  106. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +231 -231
  107. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +43 -43
  108. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +101 -101
  109. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +101 -101
  110. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  111. package/composables/useAppVersion.ts +21 -21
  112. package/composables/useEnvLanguage.ts +22 -22
  113. package/composables/useLocal.ts +6 -6
  114. package/composables/useLocalCommon.ts +39 -39
  115. package/lib/models/interfaces.ts +1 -0
  116. package/package.json +2 -2
  117. package/plugins/console.ts +21 -21
  118. package/plugins/mouse.ts +21 -21
  119. package/plugins/panelStates.ts +70 -70
  120. package/plugins/text.ts +59 -59
  121. package/public/spice-console/application/clientgui.js +854 -854
  122. package/public/spice-console/application/packetfactory.js +211 -211
  123. package/public/spice-console/application/virtualmouse.js +147 -147
  124. package/public/spice-console/lib/images/bitmap.js +203 -203
  125. package/public/spice-console/network/spicechannel.js +440 -440
  126. package/public/spice-console/process/cursorprocess.js +128 -128
  127. package/public/spice-console/process/inputprocess.js +227 -227
  128. package/public/spice-console/process/mainprocess.js +212 -212
  129. package/public/spice-console/run.js +210 -210
  130. package/store/main/mutations.ts +7 -7
  131. package/store/main/state.ts +7 -7
  132. package/store/tasks/mappers/recentTasks.ts +123 -123
  133. package/store/tasks/mutations.ts +82 -82
@@ -1,216 +1,216 @@
1
- <template>
2
- <form id="security-form" class="compact" @submit.prevent>
3
- <div class="description">
4
- {{ localization.myPreferences.twoFactorAuthentication }}
5
- </div>
6
-
7
- <div class="flex-align-center">
8
- <label for="security">{{
9
- localization.myPreferences.securityLabel
10
- }}</label>
11
- <input id="security" v-model="security" type="checkbox" class="switch" />
12
- </div>
13
-
14
- <div
15
- v-if="
16
- props.recovery && security && !initialSecurity && !otpEnabledSuccess
17
- "
18
- class="recovery-codes-wrap"
19
- >
20
- <p>
21
- {{ localization.myPreferences.enterOtpForEnabled }}
22
- </p>
23
-
24
- <div class="recovery-codes">
25
- <common-qr :qr-code-url="props.recovery.qr_code_url" />
26
-
27
- <span>{{ localization.common.or }}</span>
28
-
29
- <ul class="recovery-codes-list">
30
- <li
31
- v-for="item in props.recovery.recovery_codes"
32
- :key="item"
33
- class="recovery-codes-list-item"
34
- >
35
- {{ item }}
36
- </li>
37
- </ul>
38
- </div>
39
- <section class="form-block">
40
- <div class="form-group">
41
- <label for="otp">{{
42
- localization.myPreferences.enterOtpForEnabled
43
- }}</label>
44
- <input id="otp" v-model="otp" type="text" />
45
- <button class="btn btn-sm btn-primary" @click="onConfirm">
46
- {{ localization.common.confirm }}
47
- </button>
48
- <atoms-loader v-if="isOtpLoading" test-id="2fa-enabled-loader" />
49
- </div>
50
- </section>
51
- </div>
52
-
53
- <div v-if="!security && initialSecurity && !otpDisabledSuccess">
54
- <section class="form-block">
55
- <div class="form-group">
56
- <label for="otp">{{
57
- localization.myPreferences.enterOtpForDisabled
58
- }}</label>
59
- <input id="otp" v-model="otp" type="text" />
60
- <button class="btn btn-sm btn-primary" @click="onDisabled">
61
- {{ localization.common.confirm }}
62
- </button>
63
- <atoms-loader v-if="isOtpLoading" test-id="2fa-disabled-loader" />
64
- </div>
65
- </section>
66
- </div>
67
- </form>
68
- </template>
69
-
70
- <script setup lang="ts">
71
- import type { UI_I_Localization } from '~/lib/models/interfaces'
72
- import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
73
-
74
- const security = defineModel<boolean>('security')
75
-
76
- const props = defineProps<{
77
- recovery?: UI_I_Recovery
78
- }>()
79
- const emits = defineEmits<{
80
- (event: 'confirm', value: boolean): void
81
- }>()
82
-
83
- const localization = computed<UI_I_Localization>(() => useLocal())
84
-
85
- const initialSecurity = ref<boolean>(security.value || false)
86
-
87
- // TODO refactoring and move to Sphere
88
- const otp = ref<string>('')
89
- const isOtpLoading = ref<boolean>(false)
90
-
91
- const otpEnabledSuccess = ref<boolean>(false)
92
- const onConfirm = async (): Promise<void> => {
93
- isOtpLoading.value = true
94
- const { data } = await useMyFetch<any, any>('ui/auth/2fa/confirm', {
95
- method: 'POST',
96
- body: {
97
- otp: otp.value,
98
- },
99
- })
100
- if (data.value) {
101
- otpEnabledSuccess.value = true
102
- otpDisabledSuccess.value = false
103
- initialSecurity.value = true
104
- otp.value = ''
105
- emits('confirm', true)
106
- }
107
- isOtpLoading.value = false
108
- }
109
-
110
- const otpDisabledSuccess = ref<boolean>(false)
111
- const onDisabled = async (): Promise<void> => {
112
- isOtpLoading.value = true
113
- const { data } = await useMyFetch<any, I_ErrorResponse>(
114
- 'ui/auth/2fa/disable',
115
- {
116
- method: 'POST',
117
- body: {
118
- otp: otp.value,
119
- },
120
- }
121
- )
122
- if (data.value) {
123
- otpDisabledSuccess.value = true
124
- otpEnabledSuccess.value = false
125
- initialSecurity.value = false
126
- otp.value = ''
127
- emits('confirm', false)
128
- }
129
- isOtpLoading.value = false
130
- }
131
- </script>
132
-
133
- <style lang="scss" scoped>
134
- .description {
135
- margin-bottom: 10px;
136
- }
137
-
138
- .recovery-codes-wrap {
139
- margin: 10px 0;
140
-
141
- .recovery-codes {
142
- display: flex;
143
- align-items: center;
144
- justify-content: space-evenly;
145
-
146
- .recovery-codes-list-item {
147
- font-size: 12px;
148
- }
149
- }
150
- }
151
-
152
- label {
153
- margin-right: 6px;
154
- }
155
-
156
- // TODO повторяется в ../view, необходимо вынести глобально
157
- input[type='checkbox'] {
158
- --active: var(--checkbox-value-active-color);
159
- --active-inner: var(--checkbox-mark-color);
160
- --border: var(--checkbox-mark-color);
161
- --background: var(--checkbox-mark-background-color);
162
- -webkit-appearance: none;
163
- -moz-appearance: none;
164
- height: 20px;
165
- outline: none;
166
- display: inline-block;
167
- vertical-align: top;
168
- position: relative;
169
- margin: 0;
170
- cursor: pointer;
171
- border: 1px solid var(--bc, var(--border));
172
- background: var(--b, var(--background));
173
- transition: background 0.3s, border-color 0.3s, box-shadow 0.2s;
174
- &:after {
175
- content: '';
176
- display: block;
177
- left: 0;
178
- top: 0;
179
- position: absolute;
180
- transition: transform var(--d-t, 0.3s) var(--d-t-e, ease),
181
- opacity var(--d-o, 0.2s);
182
- }
183
- &:checked {
184
- --b: var(--active);
185
- --bc: var(--active);
186
- --d-o: 0.3s;
187
- --d-t: 0.6s;
188
- --d-t-e: cubic-bezier(0.2, 0.85, 0.32, 1.2);
189
- }
190
- }
191
- input[type='checkbox'] {
192
- &.switch {
193
- width: 35px;
194
- border-radius: 11px;
195
- &:after {
196
- left: 2px;
197
- top: 2px;
198
- bottom: 2px;
199
- border-radius: 50%;
200
- width: 14px;
201
- height: 14px;
202
- border: 1px solid var(--bc, var(--border));
203
- background: var(--ab, var(--border));
204
- transform: translateX(var(--x, 0));
205
- }
206
- &:checked {
207
- --ab: var(--active-inner);
208
- --x: 14px;
209
- }
210
- &:disabled {
211
- cursor: not-allowed;
212
- opacity: 0.5;
213
- }
214
- }
215
- }
216
- </style>
1
+ <template>
2
+ <form id="security-form" class="compact" @submit.prevent>
3
+ <div class="description">
4
+ {{ localization.myPreferences.twoFactorAuthentication }}
5
+ </div>
6
+
7
+ <div class="flex-align-center">
8
+ <label for="security">{{
9
+ localization.myPreferences.securityLabel
10
+ }}</label>
11
+ <input id="security" v-model="security" type="checkbox" class="switch" />
12
+ </div>
13
+
14
+ <div
15
+ v-if="
16
+ props.recovery && security && !initialSecurity && !otpEnabledSuccess
17
+ "
18
+ class="recovery-codes-wrap"
19
+ >
20
+ <p>
21
+ {{ localization.myPreferences.enterOtpForEnabled }}
22
+ </p>
23
+
24
+ <div class="recovery-codes">
25
+ <common-qr :qr-code-url="props.recovery.qr_code_url" />
26
+
27
+ <span>{{ localization.common.or }}</span>
28
+
29
+ <ul class="recovery-codes-list">
30
+ <li
31
+ v-for="item in props.recovery.recovery_codes"
32
+ :key="item"
33
+ class="recovery-codes-list-item"
34
+ >
35
+ {{ item }}
36
+ </li>
37
+ </ul>
38
+ </div>
39
+ <section class="form-block">
40
+ <div class="form-group">
41
+ <label for="otp">{{
42
+ localization.myPreferences.enterOtpForEnabled
43
+ }}</label>
44
+ <input id="otp" v-model="otp" type="text" />
45
+ <button class="btn btn-sm btn-primary" @click="onConfirm">
46
+ {{ localization.common.confirm }}
47
+ </button>
48
+ <atoms-loader v-if="isOtpLoading" test-id="2fa-enabled-loader" />
49
+ </div>
50
+ </section>
51
+ </div>
52
+
53
+ <div v-if="!security && initialSecurity && !otpDisabledSuccess">
54
+ <section class="form-block">
55
+ <div class="form-group">
56
+ <label for="otp">{{
57
+ localization.myPreferences.enterOtpForDisabled
58
+ }}</label>
59
+ <input id="otp" v-model="otp" type="text" />
60
+ <button class="btn btn-sm btn-primary" @click="onDisabled">
61
+ {{ localization.common.confirm }}
62
+ </button>
63
+ <atoms-loader v-if="isOtpLoading" test-id="2fa-disabled-loader" />
64
+ </div>
65
+ </section>
66
+ </div>
67
+ </form>
68
+ </template>
69
+
70
+ <script setup lang="ts">
71
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
72
+ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
73
+
74
+ const security = defineModel<boolean>('security')
75
+
76
+ const props = defineProps<{
77
+ recovery?: UI_I_Recovery
78
+ }>()
79
+ const emits = defineEmits<{
80
+ (event: 'confirm', value: boolean): void
81
+ }>()
82
+
83
+ const localization = computed<UI_I_Localization>(() => useLocal())
84
+
85
+ const initialSecurity = ref<boolean>(security.value || false)
86
+
87
+ // TODO refactoring and move to Sphere
88
+ const otp = ref<string>('')
89
+ const isOtpLoading = ref<boolean>(false)
90
+
91
+ const otpEnabledSuccess = ref<boolean>(false)
92
+ const onConfirm = async (): Promise<void> => {
93
+ isOtpLoading.value = true
94
+ const { data } = await useMyFetch<any, any>('ui/auth/2fa/confirm', {
95
+ method: 'POST',
96
+ body: {
97
+ otp: otp.value,
98
+ },
99
+ })
100
+ if (data.value) {
101
+ otpEnabledSuccess.value = true
102
+ otpDisabledSuccess.value = false
103
+ initialSecurity.value = true
104
+ otp.value = ''
105
+ emits('confirm', true)
106
+ }
107
+ isOtpLoading.value = false
108
+ }
109
+
110
+ const otpDisabledSuccess = ref<boolean>(false)
111
+ const onDisabled = async (): Promise<void> => {
112
+ isOtpLoading.value = true
113
+ const { data } = await useMyFetch<any, I_ErrorResponse>(
114
+ 'ui/auth/2fa/disable',
115
+ {
116
+ method: 'POST',
117
+ body: {
118
+ otp: otp.value,
119
+ },
120
+ }
121
+ )
122
+ if (data.value) {
123
+ otpDisabledSuccess.value = true
124
+ otpEnabledSuccess.value = false
125
+ initialSecurity.value = false
126
+ otp.value = ''
127
+ emits('confirm', false)
128
+ }
129
+ isOtpLoading.value = false
130
+ }
131
+ </script>
132
+
133
+ <style lang="scss" scoped>
134
+ .description {
135
+ margin-bottom: 10px;
136
+ }
137
+
138
+ .recovery-codes-wrap {
139
+ margin: 10px 0;
140
+
141
+ .recovery-codes {
142
+ display: flex;
143
+ align-items: center;
144
+ justify-content: space-evenly;
145
+
146
+ .recovery-codes-list-item {
147
+ font-size: 12px;
148
+ }
149
+ }
150
+ }
151
+
152
+ label {
153
+ margin-right: 6px;
154
+ }
155
+
156
+ // TODO повторяется в ../view, необходимо вынести глобально
157
+ input[type='checkbox'] {
158
+ --active: var(--checkbox-value-active-color);
159
+ --active-inner: var(--checkbox-mark-color);
160
+ --border: var(--checkbox-mark-color);
161
+ --background: var(--checkbox-mark-background-color);
162
+ -webkit-appearance: none;
163
+ -moz-appearance: none;
164
+ height: 20px;
165
+ outline: none;
166
+ display: inline-block;
167
+ vertical-align: top;
168
+ position: relative;
169
+ margin: 0;
170
+ cursor: pointer;
171
+ border: 1px solid var(--bc, var(--border));
172
+ background: var(--b, var(--background));
173
+ transition: background 0.3s, border-color 0.3s, box-shadow 0.2s;
174
+ &:after {
175
+ content: '';
176
+ display: block;
177
+ left: 0;
178
+ top: 0;
179
+ position: absolute;
180
+ transition: transform var(--d-t, 0.3s) var(--d-t-e, ease),
181
+ opacity var(--d-o, 0.2s);
182
+ }
183
+ &:checked {
184
+ --b: var(--active);
185
+ --bc: var(--active);
186
+ --d-o: 0.3s;
187
+ --d-t: 0.6s;
188
+ --d-t-e: cubic-bezier(0.2, 0.85, 0.32, 1.2);
189
+ }
190
+ }
191
+ input[type='checkbox'] {
192
+ &.switch {
193
+ width: 35px;
194
+ border-radius: 11px;
195
+ &:after {
196
+ left: 2px;
197
+ top: 2px;
198
+ bottom: 2px;
199
+ border-radius: 50%;
200
+ width: 14px;
201
+ height: 14px;
202
+ border: 1px solid var(--bc, var(--border));
203
+ background: var(--ab, var(--border));
204
+ transform: translateX(var(--x, 0));
205
+ }
206
+ &:checked {
207
+ --ab: var(--active-inner);
208
+ --x: 14px;
209
+ }
210
+ &:disabled {
211
+ cursor: not-allowed;
212
+ opacity: 0.5;
213
+ }
214
+ }
215
+ }
216
+ </style>
@@ -1,31 +1,31 @@
1
- <template>
2
- <component
3
- v-model:security="security"
4
- :is="currentComponent"
5
- :recovery="props.recovery"
6
- @confirm="emits('confirm', $event)"
7
- />
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import type {
12
- UI_I_Recovery
13
- } from "~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces";
14
-
15
- const props = defineProps<{
16
- recovery: UI_I_Recovery | null
17
- }>()
18
- const emits = defineEmits<{
19
- (event: 'confirm', value: boolean): void
20
- }>()
21
-
22
- const security = defineModel<boolean>('security')
23
-
24
- const { $store }: any = useNuxtApp()
25
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
26
- const currentComponent = computed(() =>
27
- isNewView.value
28
- ? defineAsyncComponent(() => import('./New.vue'))
29
- : defineAsyncComponent(() => import('./Old.vue'))
30
- )
31
- </script>
1
+ <template>
2
+ <component
3
+ v-model:security="security"
4
+ :is="currentComponent"
5
+ :recovery="props.recovery"
6
+ @confirm="emits('confirm', $event)"
7
+ />
8
+ </template>
9
+
10
+ <script setup lang="ts">
11
+ import type {
12
+ UI_I_Recovery
13
+ } from "~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces";
14
+
15
+ const props = defineProps<{
16
+ recovery: UI_I_Recovery | null
17
+ }>()
18
+ const emits = defineEmits<{
19
+ (event: 'confirm', value: boolean): void
20
+ }>()
21
+
22
+ const security = defineModel<boolean>('security')
23
+
24
+ const { $store }: any = useNuxtApp()
25
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
26
+ const currentComponent = computed(() =>
27
+ isNewView.value
28
+ ? defineAsyncComponent(() => import('./New.vue'))
29
+ : defineAsyncComponent(() => import('./Old.vue'))
30
+ )
31
+ </script>
@@ -1,54 +1,54 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model="timeItem"
5
- :description="description"
6
- :format-options="formatOptions"
7
- />
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import type { UI_I_Localization } from '~/lib/models/interfaces'
12
- import type { UI_I_RadioItem } from '~/components/common/layout/theHeader/userMenu/lib/models/interfaces'
13
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
14
- import { formatOptionsFunc } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions'
15
-
16
- const props = defineProps<{
17
- timeFormat: UI_T_TimeValue
18
- newView: boolean
19
- }>()
20
-
21
- const emits = defineEmits<{
22
- (event: 'update-time-format', value: UI_T_TimeValue): void
23
- }>()
24
-
25
- const currentComponent = computed(() =>
26
- props.newView
27
- ? defineAsyncComponent(() => import('./New.vue'))
28
- : defineAsyncComponent(() => import('./Old.vue'))
29
- )
30
-
31
- const localization = computed<UI_I_Localization>(() => useLocal())
32
-
33
- const config = useRuntimeConfig()
34
-
35
- const description = computed<string>(() =>
36
- localization.value.common.timeFormatDesc.replaceAll(
37
- '{trademark}',
38
- String(config.public[`TRADEMARK_${useEnvLanguage()}`])
39
- )
40
- )
41
-
42
- const formatOptions = readonly<UI_I_RadioItem[]>(
43
- formatOptionsFunc(localization.value)
44
- )
45
-
46
- const timeItem = computed<UI_T_TimeValue>({
47
- get() {
48
- return props.timeFormat
49
- },
50
- set(newValue: UI_T_TimeValue) {
51
- emits('update-time-format', newValue)
52
- },
53
- })
54
- </script>
1
+ <template>
2
+ <common-layout-the-header-user-menu-modals-preferences-time-format-new
3
+ v-if="props.newView"
4
+ v-model="timeItem"
5
+ :description="description"
6
+ :format-options="formatOptions"
7
+ />
8
+ <common-layout-the-header-user-menu-modals-preferences-time-format-old
9
+ v-else
10
+ v-model="timeItem"
11
+ :description="description"
12
+ :format-options="formatOptions"
13
+ />
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
18
+ import type { UI_I_RadioItem } from '~/components/common/layout/theHeader/userMenu/lib/models/interfaces'
19
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
20
+ import { formatOptionsFunc } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions'
21
+
22
+ const props = defineProps<{
23
+ timeFormat: UI_T_TimeValue
24
+ newView: boolean
25
+ }>()
26
+
27
+ const emits = defineEmits<{
28
+ (event: 'update-time-format', value: UI_T_TimeValue): void
29
+ }>()
30
+
31
+ const localization = computed<UI_I_Localization>(() => useLocal())
32
+
33
+ const config = useRuntimeConfig()
34
+
35
+ const description = computed<string>(() =>
36
+ localization.value.common.timeFormatDesc.replaceAll(
37
+ '{trademark}',
38
+ String(config.public[`TRADEMARK_${useEnvLanguage()}`])
39
+ )
40
+ )
41
+
42
+ const formatOptions = readonly<UI_I_RadioItem[]>(
43
+ formatOptionsFunc(localization.value)
44
+ )
45
+
46
+ const timeItem = computed<UI_T_TimeValue>({
47
+ get() {
48
+ return props.timeFormat
49
+ },
50
+ set(newValue: UI_T_TimeValue) {
51
+ emits('update-time-format', newValue)
52
+ },
53
+ })
54
+ </script>