bfg-common 1.0.83 → 1.0.84
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.
- package/assets/localization/local_be.json +6 -1
- package/assets/localization/local_en.json +9 -1
- package/assets/localization/local_hy.json +9 -1
- package/assets/localization/local_kk.json +9 -1
- package/assets/localization/local_ru.json +9 -1
- package/assets/localization/local_zh.json +9 -1
- package/components/atoms/TheIcon2.vue +50 -0
- package/components/atoms/modal/bySteps/BySteps.vue +236 -234
- package/components/atoms/table/dataGrid/DataGrid.vue +109 -46
- package/components/common/content/navbar/left/models/interfaces.ts +1 -0
- package/package.json +1 -1
|
@@ -2031,5 +2031,10 @@
|
|
|
2031
2031
|
"stormSharedStorage": "Агульны шторм",
|
|
2032
2032
|
"localStorageHelpDesc": "Дадзеныя захоўваюцца на лакальнай файлавай сістэме хаста.",
|
|
2033
2033
|
"stormSharedStorageHelpDesc": "Падзялянае сховішча Шторм павінна быць загадзя разгорнута на выдзеленых серверах. Забяспечваецца падзяляны доступ хастоў да сховішча Шторм.",
|
|
2034
|
-
"nfsHelpDesc": "Сховішча NFS з'яўляецца сеткавай файлавай сістэмай. Падтрымліваюцца версіі NFS 4.1 і 4.2"
|
|
2034
|
+
"nfsHelpDesc": "Сховішча NFS з'яўляецца сеткавай файлавай сістэмай. Падтрымліваюцца версіі NFS 4.1 і 4.2",
|
|
2035
|
+
"storageDrsAutomation": "Аўтаматызацыя DRS захоўвання",
|
|
2036
|
+
"storageDrsRuntimeSettings": "Налады выканання DRS захоўвання",
|
|
2037
|
+
"selectClustersAndHosts": "Выберыце Кластары і хасты",
|
|
2038
|
+
"selectDatastores": "Выберыце Datastores",
|
|
2039
|
+
"nameCannotBeBlank": "Імя не можа быць пустым"
|
|
2035
2040
|
}
|
|
@@ -2031,5 +2031,13 @@
|
|
|
2031
2031
|
"stormSharedStorage": "Shared Storm",
|
|
2032
2032
|
"localStorageHelpDesc": "The data is stored on the local file system of the host.",
|
|
2033
2033
|
"stormSharedStorageHelpDesc": "Storm shared storage must be pre-deployed on dedicated servers. Shared access of hosts to Storm storage is provided.",
|
|
2034
|
-
"nfsHelpDesc": "NFS storage is a network file system. NFS versions 4.1 and 4.2 are supported"
|
|
2034
|
+
"nfsHelpDesc": "NFS storage is a network file system. NFS versions 4.1 and 4.2 are supported",
|
|
2035
|
+
"storageDrsAutomation": "Storage DRS Automation",
|
|
2036
|
+
"storageDrsRuntimeSettings": "Storage DRS Runtime Settings",
|
|
2037
|
+
"selectClustersAndHosts": "Select Clusters and Hosts",
|
|
2038
|
+
"selectDatastores": "Select Datastores",
|
|
2039
|
+
"nameCannotBeBlank": "Name cannot be blank",
|
|
2040
|
+
"turnOnStorageDrs": "Turn ON Storage DRS",
|
|
2041
|
+
"storageDrsEnableDesc1": "{trademark} Storage DRS enables vCenter Server to manage datastores as an aggregate pool of storage resources.",
|
|
2042
|
+
"storageDrsEnableDesc2": "{trademark} Storage DRS also enables vCenter Server to manage the assignment of virtual machines to datastores, suggesting placement when virtual machines are created, migrated or cloned, and migrating running virtual machines to balance load and enforce placement rules."
|
|
2035
2043
|
}
|
|
@@ -2031,5 +2031,13 @@
|
|
|
2031
2031
|
"stormSharedStorage": "Համօգտագործվող փոթորիկ",
|
|
2032
2032
|
"localStorageHelpDesc": "Տվյալները պահվում են տեղական հյուրընկալող ֆայլային համակարգում:",
|
|
2033
2033
|
"stormSharedStorageHelpDesc": "Համօգտագործվող Storm Storage-ը պետք է նախապես տեղակայվի նվիրված սերվերների վրա: Ապահովում է հյուրընկալողների համօգտագործվող մուտքը Storm պահեստ:",
|
|
2034
|
-
"nfsHelpDesc": "NFS պահեստը ցանցային ֆայլային համակարգ է: Աջակցվում են NFS 4.1 և 4.2 տարբերակները"
|
|
2034
|
+
"nfsHelpDesc": "NFS պահեստը ցանցային ֆայլային համակարգ է: Աջակցվում են NFS 4.1 և 4.2 տարբերակները",
|
|
2035
|
+
"storageDrsAutomation": "Պահպանման DRS ավտոմատացում",
|
|
2036
|
+
"storageDrsRuntimeSettings": "Պահպանման DRS Գործարկման ժամանակի կարգավորումներ",
|
|
2037
|
+
"selectClustersAndHosts": "Ընտրեք Կլաստերներ և հյուրընկալողներ",
|
|
2038
|
+
"selectDatastores": "Ընտրեք տվյալների պահեստներ",
|
|
2039
|
+
"nameCannotBeBlank": "Անունը չի կարող դատարկ լինել",
|
|
2040
|
+
"turnOnStorageDrs": "Միացնել Storage DRS-ը",
|
|
2041
|
+
"storageDrsEnableDesc1": "{trademark} Storage DRS-ը vCenter Server-ին հնարավորություն է տալիս կառավարել տվյալների պահեստները որպես պահեստային ռեսուրսների համախառն լողավազան:",
|
|
2042
|
+
"storageDrsEnableDesc2": "{trademark} Storage DRS-ը նաև հնարավորություն է տալիս vCenter Server-ին կառավարել վիրտուալ մեքենաների վերագրումը տվյալների պահեստներին, առաջարկելով տեղադրում, երբ վիրտուալ մեքենաները ստեղծվում են, տեղափոխվում կամ կլոնավորվում են, ինչպես նաև տեղափոխում են գործող վիրտուալ մեքենաներ՝ բեռը հավասարակշռելու և տեղադրման կանոնները կիրառելու համար:"
|
|
2035
2043
|
}
|
|
@@ -2031,5 +2031,13 @@
|
|
|
2031
2031
|
"stormSharedStorage": "Ортақ дауыл",
|
|
2032
2032
|
"localStorageHelpDesc": "Деректер жергілікті хост файлдық жүйесінде сақталады.",
|
|
2033
2033
|
"stormSharedStorageHelpDesc": "Ортақ сақтау дауыл арнайы серверлерде алдын ала орналастырылуы керек. Хосттардың дауыл қоймасына ортақ қол жетімділігі қамтамасыз етіледі.",
|
|
2034
|
-
"nfsHelpDesc": "NFS жады-бұл желілік файлдық жүйе. NFS 4.1 және 4.2 нұсқаларына қолдау көрсетіледі"
|
|
2034
|
+
"nfsHelpDesc": "NFS жады-бұл желілік файлдық жүйе. NFS 4.1 және 4.2 нұсқаларына қолдау көрсетіледі",
|
|
2035
|
+
"storageDrsAutomation": "Storage DRS Automation",
|
|
2036
|
+
"storageDrsRuntimeSettings": "Storage DRS Runtime параметрлері",
|
|
2037
|
+
"selectClustersAndHosts": "Кластерлер мен хосттарды таңдаңыз",
|
|
2038
|
+
"selectDatastores": "Деректер қоймаларын таңдаңыз",
|
|
2039
|
+
"nameCannotBeBlank": "Аты бос болмауы керек",
|
|
2040
|
+
"turnOnStorageDrs": "Storage DRS ҚОСУ",
|
|
2041
|
+
"storageDrsEnableDesc1": "{trademark} Storage DRS vCenter серверіне деректер қоймаларын сақтау ресурстарының жиынтық пулы ретінде басқаруға мүмкіндік береді.",
|
|
2042
|
+
"storageDrsEnableDesc2": "{trademark} Storage DRS сонымен қатар vCenter серверіне виртуалды машиналарды деректер қоймаларына тағайындауды басқаруға мүмкіндік береді, виртуалды машиналар жасалған, тасымалданған немесе клондалған кезде орналастыруды ұсынады және жүктемені теңестіру және орналастыру ережелерін орындау үшін іске қосылған виртуалды машиналарды тасымалдайды."
|
|
2035
2043
|
}
|
|
@@ -2031,5 +2031,13 @@
|
|
|
2031
2031
|
"stormSharedStorage": "Разделяемое хранилище Шторм",
|
|
2032
2032
|
"localStorageHelpDesc": "Данные хранятся на локальной файловой системе хоста.",
|
|
2033
2033
|
"stormSharedStorageHelpDesc": "Разделяемое хранилище Шторм должно быть заранее развернуто на выделенных серверах. Обеспечивается разделяемый доступ хостов к хранилищу Шторм.",
|
|
2034
|
-
"nfsHelpDesc": "Хранилище NFS является сетевой файловой системой. Поддерживаются версии NFS 4.1 и 4.2"
|
|
2034
|
+
"nfsHelpDesc": "Хранилище NFS является сетевой файловой системой. Поддерживаются версии NFS 4.1 и 4.2",
|
|
2035
|
+
"storageDrsAutomation": "Автоматизация хранения данных DRS",
|
|
2036
|
+
"storageDrsRuntimeSettings": "Настройки выполнения Storage DRS",
|
|
2037
|
+
"selectClustersAndHosts": "Выберите кластеры и хосты",
|
|
2038
|
+
"selectDatastores": "Выберите хранилища данных",
|
|
2039
|
+
"nameCannotBeBlank": "Имя не может быть пустым",
|
|
2040
|
+
"turnOnStorageDrs": "ВКЛЮЧИТЬ Storage DRS",
|
|
2041
|
+
"storageDrsEnableDesc1": "{trademark} Storage DRS позволяет vCenter Server управлять хранилищами данных как совокупным пулом ресурсов хранения.",
|
|
2042
|
+
"storageDrsEnableDesc2": "{trademark} Storage DRS также позволяет vCenter Server управлять назначением виртуальных машин хранилищам данных, предлагая размещение при создании, переносе или клонировании виртуальных машин, а также миграцию работающих виртуальных машин для балансировки нагрузки и соблюдения правил размещения."
|
|
2035
2043
|
}
|
|
@@ -2031,5 +2031,13 @@
|
|
|
2031
2031
|
"stormSharedStorage": "共享风暴",
|
|
2032
2032
|
"localStorageHelpDesc": "数据存储在主机的本地文件系统中。",
|
|
2033
2033
|
"stormSharedStorageHelpDesc": "Storm共享存储必须预先部署在专用服务器上。 提供对 Storm 存储的共享主机访问。",
|
|
2034
|
-
"nfsHelpDesc": "NFS 存储是一种网络文件系统。 支持 NFS 版本 4.1 和 4.2"
|
|
2034
|
+
"nfsHelpDesc": "NFS 存储是一种网络文件系统。 支持 NFS 版本 4.1 和 4.2",
|
|
2035
|
+
"storageDrsAutomation": "存储 DRS 自动化",
|
|
2036
|
+
"storageDrsRuntimeSettings": "存储 DRS 运行时设置",
|
|
2037
|
+
"selectClustersAndHosts": "选择集群和主机",
|
|
2038
|
+
"selectDatastores": "选择数据存储",
|
|
2039
|
+
"nameCannotBeBlank": "名称不能为空",
|
|
2040
|
+
"turnOnStorageDrs": "打开存储 DRS",
|
|
2041
|
+
"storageDrsEnableDesc1": "{trademark} Storage DRS 使 vCenter Server 能够将数据存储作为存储资源聚合池进行管理。",
|
|
2042
|
+
"storageDrsEnableDesc2": "{trademark} Storage DRS 还使 vCenter Server 能够管理虚拟机到数据存储的分配,在创建、迁移或克隆虚拟机时提出放置建议,并迁移正在运行的虚拟机以平衡负载并强制执行放置规则。"
|
|
2035
2043
|
}
|
|
@@ -307,6 +307,56 @@
|
|
|
307
307
|
<path opacity="0" d="M0 0h36v36H0z" />
|
|
308
308
|
</svg>
|
|
309
309
|
</template>
|
|
310
|
+
<template v-else-if="props.name === 'vsphere-icon-device'">
|
|
311
|
+
<svg
|
|
312
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
313
|
+
fill="#0091da"
|
|
314
|
+
width="38"
|
|
315
|
+
height="38"
|
|
316
|
+
viewBox="-1 -1 38 38"
|
|
317
|
+
y="380"
|
|
318
|
+
>
|
|
319
|
+
<path fill="none" d="M0 0h36v36H0z" />
|
|
320
|
+
<path d="M8 12h4v8H8zM16 12h4v8h-4zM24 12h4v8h-4z" />
|
|
321
|
+
<path
|
|
322
|
+
d="M8 28H4V16H2v12a2 2 0 002 2h6v-4h2v-2H8zM32 6H4a2 2 0 00-2 2v4h2V8h28v4h2V8a2 2 0 00-2-2zM32 28H12v2h20a2 2 0 002-2V16h-2z"
|
|
323
|
+
/>
|
|
324
|
+
</svg>
|
|
325
|
+
</template>
|
|
326
|
+
<template v-else-if="props.name === 'vsphere-icon-network'">
|
|
327
|
+
<svg
|
|
328
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
329
|
+
fill="#565656"
|
|
330
|
+
width="38"
|
|
331
|
+
height="38"
|
|
332
|
+
viewBox="-1 -1 38 38"
|
|
333
|
+
y="152"
|
|
334
|
+
>
|
|
335
|
+
<path
|
|
336
|
+
d="M27 32H9a1 1 0 000 2h18a1 1 0 000-2zm-9-1.91a14 14 0 10-14-14 14 14 0 0014 14zm0-2a12 12 0 01-6.54-1.95 3 3 0 00.42 0A2.26 2.26 0 0014 24.8a18 18 0 007.67-3.63 2.22 2.22 0 00.82.16 2.26 2.26 0 001.75-.84 17.16 17.16 0 002.29.44 17.92 17.92 0 002.31.15h.1A12 12 0 0118 28.09zm-3.09-18a16.76 16.76 0 017.48-.77 17.27 17.27 0 013.93 1 15.66 15.66 0 01-2.9 6.71 2.23 2.23 0 00-1-.23 2.27 2.27 0 00-1.62.68 16 16 0 01-6.35-6 2.24 2.24 0 00.43-1.32zm14.24 1.59a11.87 11.87 0 01.85 4.41 12 12 0 01-.49 3.35 16.59 16.59 0 01-2.82-.1 18.39 18.39 0 01-2-.37 2.57 2.57 0 00-.16-.75 17.4 17.4 0 003.3-7.22q.68.33 1.32.72zM18 4.09a11.94 11.94 0 018.57 3.61v1a18.38 18.38 0 00-12.22-.07 2.28 2.28 0 00-1.35-.7 14.72 14.72 0 01-.47-2.5A12 12 0 0118 4.09zm-7 2.28a15.48 15.48 0 00.42 1.91 2.25 2.25 0 00-1 1.88 2.21 2.21 0 000 .37 17.92 17.92 0 00-4.3 3.9A12 12 0 0111 6.37zm.25 5.54a2.27 2.27 0 001.41.51 2.63 2.63 0 00.49-.06A17.74 17.74 0 0020.2 19v.1a2.32 2.32 0 00.25 1A16.52 16.52 0 0114 23.15a2.24 2.24 0 00-4.33.43c-.36 0-.71 0-1.07-.07a11.94 11.94 0 01-2.52-6.16 16 16 0 015.16-5.44z"
|
|
337
|
+
/>
|
|
338
|
+
<path fill="none" d="M0 0h36v36H0z" />
|
|
339
|
+
</svg>
|
|
340
|
+
</template>
|
|
341
|
+
<template v-else-if="props.name === 'vsphere-icon-switch'">
|
|
342
|
+
<svg
|
|
343
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
344
|
+
fill="#565656"
|
|
345
|
+
width="38"
|
|
346
|
+
height="38"
|
|
347
|
+
viewBox="-1 -1 38 38"
|
|
348
|
+
y="722"
|
|
349
|
+
>
|
|
350
|
+
<g>
|
|
351
|
+
<path
|
|
352
|
+
d="M12 8h2v2h-2zM16 8h2v2h-2zM20 8h2v2h-2zM24 8h2v2h-2zM16 12h2v2h-2zM16 16h2v2h-2zM16 20h2v2h-2zM16 24h2v2h-2zM12 24h2v2h-2zM26 2H10a2 2 0 00-2 2v2h2V4h16v2h2V4a2 2 0 00-2-2zM8 12h2v10H8z"
|
|
353
|
+
/>
|
|
354
|
+
<path
|
|
355
|
+
d="M26 12v20H10v-4H8v4a2 2 0 002 2h16a2 2 0 002-2V12zM8 8H3a1 1 0 000 2h5zM28 8h4.93a1 1 0 010 2H28zM8 24H3a1 1 0 000 2h5z"
|
|
356
|
+
/>
|
|
357
|
+
</g>
|
|
358
|
+
</svg>
|
|
359
|
+
</template>
|
|
310
360
|
</template>
|
|
311
361
|
|
|
312
362
|
<script setup lang="ts">
|
|
@@ -1,234 +1,236 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div v-if="props.show" class="modal clr-wizard wizard-xl">
|
|
3
|
-
<div class="modal-dialog modal-xl relative">
|
|
4
|
-
<div class="modal-content-wrapper">
|
|
5
|
-
<nav class="modal-nav clr-wizard-stepnav-wrapper">
|
|
6
|
-
<h1 class="clr-wizard-title">
|
|
7
|
-
{{ props.title }}
|
|
8
|
-
</h1>
|
|
9
|
-
<atoms-step-vertical-step
|
|
10
|
-
:test-id="props.testId"
|
|
11
|
-
:items="props.stepItems"
|
|
12
|
-
:step-position="props.stepPosition"
|
|
13
|
-
@change="changeStep"
|
|
14
|
-
/>
|
|
15
|
-
</nav>
|
|
16
|
-
<div class="modal-content">
|
|
17
|
-
<div class="modal-header--accessible">
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
(event: '
|
|
99
|
-
(event: '
|
|
100
|
-
(event: '
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
animation-name: animateTop;
|
|
168
|
-
animation-duration: 0.4s;
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div v-if="props.show" class="modal clr-wizard wizard-xl">
|
|
3
|
+
<div class="modal-dialog modal-xl relative">
|
|
4
|
+
<div class="modal-content-wrapper">
|
|
5
|
+
<nav class="modal-nav clr-wizard-stepnav-wrapper">
|
|
6
|
+
<h1 class="clr-wizard-title">
|
|
7
|
+
{{ props.title }}
|
|
8
|
+
</h1>
|
|
9
|
+
<atoms-step-vertical-step
|
|
10
|
+
:test-id="props.testId"
|
|
11
|
+
:items="props.stepItems"
|
|
12
|
+
:step-position="props.stepPosition"
|
|
13
|
+
@change="changeStep"
|
|
14
|
+
/>
|
|
15
|
+
</nav>
|
|
16
|
+
<div class="modal-content">
|
|
17
|
+
<div class="modal-header--accessible">
|
|
18
|
+
<slot name="contentHeading">
|
|
19
|
+
<div class="modal-title-wrapper">
|
|
20
|
+
<h2 class="modal-title">
|
|
21
|
+
<span class="modal-title-text">{{ heading }}</span>
|
|
22
|
+
</h2>
|
|
23
|
+
</div>
|
|
24
|
+
</slot>
|
|
25
|
+
<button
|
|
26
|
+
:id="`${props.testId}-close-icon`"
|
|
27
|
+
class="close"
|
|
28
|
+
@click="hide"
|
|
29
|
+
>
|
|
30
|
+
<atoms-the-icon class="close-icon" name="close" />
|
|
31
|
+
</button>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="modal-body">
|
|
34
|
+
<slot name="modalBody" :title="heading" />
|
|
35
|
+
</div>
|
|
36
|
+
<div class="modal-footer">
|
|
37
|
+
<slot name="modalFooter">
|
|
38
|
+
<button
|
|
39
|
+
:id="`${props.testId}-cancel-button`"
|
|
40
|
+
class="btn btn-link"
|
|
41
|
+
@click="hide"
|
|
42
|
+
>
|
|
43
|
+
{{ localization.cancel }}
|
|
44
|
+
</button>
|
|
45
|
+
<button
|
|
46
|
+
v-show="props.stepPosition > 0"
|
|
47
|
+
:id="`${props.testId}-back-button`"
|
|
48
|
+
class="btn btn-outline"
|
|
49
|
+
@click="back"
|
|
50
|
+
>
|
|
51
|
+
{{ localization.back }}
|
|
52
|
+
</button>
|
|
53
|
+
<button
|
|
54
|
+
v-if="props.stepPosition === props.stepItems.length - 1"
|
|
55
|
+
:id="`${props.testId}-finish-button`"
|
|
56
|
+
class="btn btn-success"
|
|
57
|
+
@click="finish"
|
|
58
|
+
>
|
|
59
|
+
{{ localization.finish }}
|
|
60
|
+
</button>
|
|
61
|
+
<button
|
|
62
|
+
v-else
|
|
63
|
+
:id="`${props.testId}-next-button`"
|
|
64
|
+
class="btn btn-primary"
|
|
65
|
+
@click="next"
|
|
66
|
+
>
|
|
67
|
+
{{ localization.next }}
|
|
68
|
+
</button>
|
|
69
|
+
</slot>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<div v-show="props.loading" class="loader">
|
|
75
|
+
<i class="fa clr-tree-node-caret-icon spinner spinner" />
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="modal-backdrop" />
|
|
79
|
+
</div>
|
|
80
|
+
</template>
|
|
81
|
+
|
|
82
|
+
<script setup lang="ts">
|
|
83
|
+
import { UI_I_VerticalStepItem } from '~/components/atoms/models/interfaces'
|
|
84
|
+
|
|
85
|
+
const props = withDefaults(
|
|
86
|
+
defineProps<{
|
|
87
|
+
testId?: string
|
|
88
|
+
show: boolean
|
|
89
|
+
title: string
|
|
90
|
+
secondTitle?: string
|
|
91
|
+
stepItems: UI_I_VerticalStepItem[]
|
|
92
|
+
stepPosition: number
|
|
93
|
+
loading?: boolean
|
|
94
|
+
}>(),
|
|
95
|
+
{ testId: 'ui-modal-by-steps' }
|
|
96
|
+
)
|
|
97
|
+
const emits = defineEmits<{
|
|
98
|
+
(event: 'finish'): void
|
|
99
|
+
(event: 'next'): void
|
|
100
|
+
(event: 'back'): void
|
|
101
|
+
(event: 'hide'): void
|
|
102
|
+
(event: 'change-step', num: number): void
|
|
103
|
+
}>()
|
|
104
|
+
|
|
105
|
+
const localization = computed(() => useLocal())
|
|
106
|
+
|
|
107
|
+
const heading = ref<string | null>(null)
|
|
108
|
+
|
|
109
|
+
const hide = (): void => {
|
|
110
|
+
emits('hide')
|
|
111
|
+
}
|
|
112
|
+
const finish = (): void => {
|
|
113
|
+
emits('finish')
|
|
114
|
+
}
|
|
115
|
+
const next = (): void => {
|
|
116
|
+
emits('next')
|
|
117
|
+
}
|
|
118
|
+
const back = (): void => {
|
|
119
|
+
emits('back')
|
|
120
|
+
}
|
|
121
|
+
const changeStep = (key: number): void => {
|
|
122
|
+
emits('change-step', key)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
watch(
|
|
126
|
+
() => props.stepPosition,
|
|
127
|
+
(value) => {
|
|
128
|
+
const { stepItems, secondTitle } = props
|
|
129
|
+
if (secondTitle) {
|
|
130
|
+
heading.value = secondTitle
|
|
131
|
+
return
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
heading.value = stepItems[value].text
|
|
135
|
+
},
|
|
136
|
+
{ immediate: true }
|
|
137
|
+
)
|
|
138
|
+
</script>
|
|
139
|
+
|
|
140
|
+
<style scoped lang="scss">
|
|
141
|
+
.modal {
|
|
142
|
+
position: fixed;
|
|
143
|
+
top: 0;
|
|
144
|
+
bottom: 0;
|
|
145
|
+
right: 0;
|
|
146
|
+
left: 0;
|
|
147
|
+
z-index: 1050;
|
|
148
|
+
display: flex;
|
|
149
|
+
flex-direction: column;
|
|
150
|
+
justify-content: center;
|
|
151
|
+
align-items: center;
|
|
152
|
+
padding: 48px;
|
|
153
|
+
overflow-y: auto;
|
|
154
|
+
|
|
155
|
+
.modal-nav {
|
|
156
|
+
background-color: var(--block-view-bg-color4);
|
|
157
|
+
.clr-wizard-title {
|
|
158
|
+
color: var(--main-color-mode);
|
|
159
|
+
font-size: 22px;
|
|
160
|
+
padding: 24px 12px 24px 24px;
|
|
161
|
+
//line-height: 1.2rem;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.modal-content-wrapper {
|
|
166
|
+
position: relative;
|
|
167
|
+
-webkit-animation-name: animateTop;
|
|
168
|
+
-webkit-animation-duration: 0.4s;
|
|
169
|
+
animation-name: animateTop;
|
|
170
|
+
animation-duration: 0.4s;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.modal-content {
|
|
174
|
+
background-color: var(--modal-bg-color);
|
|
175
|
+
|
|
176
|
+
.modal-header--accessible {
|
|
177
|
+
display: flex;
|
|
178
|
+
justify-content: space-between;
|
|
179
|
+
align-items: flex-start;
|
|
180
|
+
width: 100%;
|
|
181
|
+
padding: 24px 19px 6px 24px;
|
|
182
|
+
|
|
183
|
+
.modal-title-text {
|
|
184
|
+
color: var(--main-color-mode);
|
|
185
|
+
font-size: 22px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.close-icon {
|
|
189
|
+
fill: var(--close-icon);
|
|
190
|
+
width: 24px;
|
|
191
|
+
height: 24px;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.modal-body {
|
|
196
|
+
padding: 0 3px;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.modal-footer {
|
|
200
|
+
display: flex;
|
|
201
|
+
justify-content: flex-end;
|
|
202
|
+
padding: 24px;
|
|
203
|
+
flex: unset;
|
|
204
|
+
min-height: 0;
|
|
205
|
+
height: auto;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.loader {
|
|
210
|
+
position: absolute;
|
|
211
|
+
z-index: 1000;
|
|
212
|
+
left: 0;
|
|
213
|
+
right: 0;
|
|
214
|
+
bottom: 0;
|
|
215
|
+
top: 0;
|
|
216
|
+
display: flex;
|
|
217
|
+
align-items: center;
|
|
218
|
+
justify-content: center;
|
|
219
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
220
|
+
|
|
221
|
+
.spinner {
|
|
222
|
+
left: unset;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.modal-backdrop {
|
|
227
|
+
opacity: 1;
|
|
228
|
+
background-color: rgba(0, 0, 0, 0.6);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
h1,
|
|
232
|
+
h2 {
|
|
233
|
+
// просмотреть если нигде не ломается переместит глобально
|
|
234
|
+
line-height: inherit;
|
|
235
|
+
}
|
|
236
|
+
</style>
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
/>
|
|
99
99
|
</span>
|
|
100
100
|
</button>
|
|
101
|
-
<div
|
|
101
|
+
<div>
|
|
102
102
|
<button
|
|
103
103
|
v-if="item.hasFilter"
|
|
104
104
|
:id="`${props.testId}-filter-icon-${key}`"
|
|
@@ -136,7 +136,13 @@
|
|
|
136
136
|
!isShowHiddenInfo ||
|
|
137
137
|
(isShowHiddenInfo && key === 0)
|
|
138
138
|
"
|
|
139
|
-
class="
|
|
139
|
+
:class="[
|
|
140
|
+
'datagrid-column-separator',
|
|
141
|
+
{
|
|
142
|
+
'double-arrow-separator':
|
|
143
|
+
key === 0 && props.withInfo,
|
|
144
|
+
},
|
|
145
|
+
]"
|
|
140
146
|
@mousedown="setGrab(key, $event)"
|
|
141
147
|
>
|
|
142
148
|
<button
|
|
@@ -160,16 +166,19 @@
|
|
|
160
166
|
:class="[
|
|
161
167
|
'datagrid-body-row datagrid-row animation',
|
|
162
168
|
{
|
|
163
|
-
'datagrid-selected active':
|
|
164
|
-
item[0].id
|
|
165
|
-
|
|
169
|
+
'datagrid-selected active':
|
|
170
|
+
!props.withInfo && checkIsSelectedRow(item[0].id),
|
|
171
|
+
'datagrid-selected-info':
|
|
172
|
+
props.withInfo &&
|
|
173
|
+
isShowHiddenInfo &&
|
|
174
|
+
checkIsSelectedRow(item[0].id),
|
|
166
175
|
},
|
|
167
176
|
]"
|
|
168
177
|
>
|
|
169
178
|
<div>
|
|
170
179
|
<div
|
|
171
180
|
class="datagrid-row-master datagrid-row-flex"
|
|
172
|
-
@click="selectRowById(item[0].id)"
|
|
181
|
+
@click.prevent.stop="selectRowById(item[0].id)"
|
|
173
182
|
>
|
|
174
183
|
<div
|
|
175
184
|
v-if="props.type"
|
|
@@ -244,12 +253,10 @@
|
|
|
244
253
|
}"
|
|
245
254
|
:class="[
|
|
246
255
|
'datagrid-cell datagrid-fixed-width',
|
|
247
|
-
`hidden-text-triangle-${item2.id}`,
|
|
248
256
|
{
|
|
249
257
|
'hidden-text-triangle':
|
|
250
258
|
isShowHiddenInfo &&
|
|
251
|
-
item2.
|
|
252
|
-
item2.data?.iconClassName === 'info',
|
|
259
|
+
item2.data?.name === 'hidden-text-triangle',
|
|
253
260
|
},
|
|
254
261
|
]"
|
|
255
262
|
>
|
|
@@ -270,6 +277,9 @@
|
|
|
270
277
|
isShowHiddenInfo &&
|
|
271
278
|
item2.id === selectedRow,
|
|
272
279
|
}"
|
|
280
|
+
@click.prevent.stop="
|
|
281
|
+
doubleArrowClick(item2, item)
|
|
282
|
+
"
|
|
273
283
|
>
|
|
274
284
|
<atoms-the-icon
|
|
275
285
|
v-if="item2.data?.name === 'doubleArrows'"
|
|
@@ -280,7 +290,6 @@
|
|
|
280
290
|
isShowHiddenInfo &&
|
|
281
291
|
item2.id === selectedRow,
|
|
282
292
|
}"
|
|
283
|
-
@click="doubleArrowClick(item2, item)"
|
|
284
293
|
/>
|
|
285
294
|
</div>
|
|
286
295
|
<span
|
|
@@ -510,22 +519,36 @@ const isShowInfo = computed(
|
|
|
510
519
|
!showedInfoRow.value.data?.text &&
|
|
511
520
|
isShowHiddenInfo.value
|
|
512
521
|
)
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
+
|
|
523
|
+
const setShowedInfoData = (
|
|
524
|
+
item: UI_I_BodyItem | null,
|
|
525
|
+
items: UI_I_BodyItem[] | null,
|
|
526
|
+
reset: boolean
|
|
527
|
+
): void => {
|
|
528
|
+
showedInfoRow.value = item
|
|
529
|
+
showedInfoCol.value = items
|
|
530
|
+
|
|
531
|
+
reset && (isShowHiddenInfo.value = false)
|
|
532
|
+
item && selectRowById(item.id)
|
|
533
|
+
reset && (isShowHiddenInfo.value = true)
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
const doubleArrowClick = (
|
|
537
|
+
item: UI_I_BodyItem,
|
|
538
|
+
items: UI_I_BodyItem[]
|
|
539
|
+
): void => {
|
|
522
540
|
if (!isShowHiddenInfo.value) {
|
|
523
|
-
|
|
524
|
-
showedInfoCol.value = items
|
|
541
|
+
setShowedInfoData(item, items)
|
|
525
542
|
} else {
|
|
526
|
-
showedInfoRow.value
|
|
527
|
-
|
|
543
|
+
if (showedInfoRow.value.id !== item.id) {
|
|
544
|
+
setShowedInfoData(item, items, true)
|
|
545
|
+
|
|
546
|
+
return
|
|
547
|
+
} else {
|
|
548
|
+
setShowedInfoData(null, null)
|
|
549
|
+
}
|
|
528
550
|
}
|
|
551
|
+
|
|
529
552
|
isShowHiddenInfo.value = !isShowHiddenInfo.value
|
|
530
553
|
}
|
|
531
554
|
|
|
@@ -539,7 +562,7 @@ watch(
|
|
|
539
562
|
{ immediate: true }
|
|
540
563
|
)
|
|
541
564
|
const selectRowById = (id: number | string): void => {
|
|
542
|
-
if (props.offSelectByRow) return
|
|
565
|
+
if (props.offSelectByRow || isShowHiddenInfo.value) return
|
|
543
566
|
|
|
544
567
|
if (props.type === 'checkbox' && Array.isArray(selectedRowLocal.value)) {
|
|
545
568
|
const has = selectedRowLocal.value.includes(id)
|
|
@@ -791,6 +814,8 @@ watch(
|
|
|
791
814
|
const grabColumn = ref<number>(-1)
|
|
792
815
|
const grabStartX = ref<number>(0)
|
|
793
816
|
const setGrab = (key: number, e: MouseEvent): void => {
|
|
817
|
+
if (props.withInfo && key === 0) return
|
|
818
|
+
|
|
794
819
|
if (!isShowHiddenInfo.value) {
|
|
795
820
|
grabColumn.value = key
|
|
796
821
|
const currentWidth = parseInt(columnsWidth.value[grabColumn.value][0])
|
|
@@ -939,6 +964,12 @@ onUnmounted(() => {
|
|
|
939
964
|
&::after {
|
|
940
965
|
cursor: col-resize;
|
|
941
966
|
}
|
|
967
|
+
&.double-arrow-separator .datagrid-column-handle {
|
|
968
|
+
cursor: unset;
|
|
969
|
+
}
|
|
970
|
+
&.double-arrow-separator::after {
|
|
971
|
+
cursor: unset;
|
|
972
|
+
}
|
|
942
973
|
}
|
|
943
974
|
}
|
|
944
975
|
|
|
@@ -959,6 +990,7 @@ onUnmounted(() => {
|
|
|
959
990
|
background-color: var(--block-view-bg-color);
|
|
960
991
|
border-bottom: 1px solid var(--global-border-color);
|
|
961
992
|
padding: 6px 12px 5px;
|
|
993
|
+
position: relative;
|
|
962
994
|
//flex: 1 1 auto;
|
|
963
995
|
|
|
964
996
|
&:last-child {
|
|
@@ -1020,6 +1052,9 @@ onUnmounted(() => {
|
|
|
1020
1052
|
|
|
1021
1053
|
.datagrid-filter-toggle {
|
|
1022
1054
|
background: unset;
|
|
1055
|
+
position: absolute;
|
|
1056
|
+
right: 2px;
|
|
1057
|
+
top: calc(50% - 8px);
|
|
1023
1058
|
|
|
1024
1059
|
.filter-icon {
|
|
1025
1060
|
width: 16px;
|
|
@@ -1057,27 +1092,6 @@ onUnmounted(() => {
|
|
|
1057
1092
|
border-bottom: 1px solid var(--global-border-color);
|
|
1058
1093
|
position: relative;
|
|
1059
1094
|
line-height: 1rem;
|
|
1060
|
-
|
|
1061
|
-
&.hidden-text-triangle::after {
|
|
1062
|
-
content: '';
|
|
1063
|
-
position: absolute;
|
|
1064
|
-
transform: rotate(225deg);
|
|
1065
|
-
border-bottom: 15px solid transparent;
|
|
1066
|
-
border-right: 15px solid var(--global-bg-color);
|
|
1067
|
-
bottom: 26%;
|
|
1068
|
-
right: -10px;
|
|
1069
|
-
z-index: 1000;
|
|
1070
|
-
}
|
|
1071
|
-
&.hidden-text-triangle::before {
|
|
1072
|
-
content: '';
|
|
1073
|
-
transform: rotate(-135deg);
|
|
1074
|
-
position: absolute;
|
|
1075
|
-
border-bottom: 16px solid transparent;
|
|
1076
|
-
border-right: 16px solid var(--global-border-color);
|
|
1077
|
-
bottom: 23%;
|
|
1078
|
-
right: -10px;
|
|
1079
|
-
z-index: 999;
|
|
1080
|
-
}
|
|
1081
1095
|
}
|
|
1082
1096
|
|
|
1083
1097
|
.datagrid-row-detail {
|
|
@@ -1090,6 +1104,21 @@ onUnmounted(() => {
|
|
|
1090
1104
|
min-width: 38px;
|
|
1091
1105
|
min-height: 28px;
|
|
1092
1106
|
padding: 2px 12px 3px 12px;
|
|
1107
|
+
position: relative;
|
|
1108
|
+
|
|
1109
|
+
&:has(.double-arrow-wrap) {
|
|
1110
|
+
padding-left: 4px;
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
&:has(.double-arrow-wrap)::after {
|
|
1114
|
+
content: '';
|
|
1115
|
+
width: 0.5px;
|
|
1116
|
+
height: calc(100% - 6px);
|
|
1117
|
+
position: absolute;
|
|
1118
|
+
right: 2px;
|
|
1119
|
+
top: 3px;
|
|
1120
|
+
background-color: var(--global-border-color);
|
|
1121
|
+
}
|
|
1093
1122
|
|
|
1094
1123
|
&:last-child {
|
|
1095
1124
|
flex: 1 1 auto;
|
|
@@ -1128,6 +1157,40 @@ onUnmounted(() => {
|
|
|
1128
1157
|
}
|
|
1129
1158
|
}
|
|
1130
1159
|
}
|
|
1160
|
+
|
|
1161
|
+
&.datagrid-selected-info {
|
|
1162
|
+
width: 100%;
|
|
1163
|
+
min-width: max-content;
|
|
1164
|
+
border-top: none;
|
|
1165
|
+
color: var(--table-color);
|
|
1166
|
+
background-color: var(--block-view-bg-color);
|
|
1167
|
+
|
|
1168
|
+
.datagrid-cell {
|
|
1169
|
+
position: relative;
|
|
1170
|
+
|
|
1171
|
+
&.hidden-text-triangle::after {
|
|
1172
|
+
content: '';
|
|
1173
|
+
position: absolute;
|
|
1174
|
+
transform: rotate(225deg);
|
|
1175
|
+
border-bottom: 15px solid transparent;
|
|
1176
|
+
border-right: 15px solid var(--global-bg-color);
|
|
1177
|
+
bottom: 26%;
|
|
1178
|
+
right: -16px;
|
|
1179
|
+
z-index: 1000;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
&.hidden-text-triangle::before {
|
|
1183
|
+
content: '';
|
|
1184
|
+
transform: rotate(-135deg);
|
|
1185
|
+
position: absolute;
|
|
1186
|
+
border-bottom: 16px solid transparent;
|
|
1187
|
+
border-right: 16px solid var(--global-border-color);
|
|
1188
|
+
bottom: 23%;
|
|
1189
|
+
right: -17px;
|
|
1190
|
+
z-index: 999;
|
|
1191
|
+
}
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1131
1194
|
}
|
|
1132
1195
|
|
|
1133
1196
|
.datagrid-row-sticky {
|
|
@@ -1351,7 +1414,7 @@ onUnmounted(() => {
|
|
|
1351
1414
|
}
|
|
1352
1415
|
}
|
|
1353
1416
|
.double-arrow-width {
|
|
1354
|
-
width:
|
|
1417
|
+
width: 25px;
|
|
1355
1418
|
}
|
|
1356
1419
|
.double-arrow-wrap {
|
|
1357
1420
|
width: 30px;
|