bfg-common 1.4.355 → 1.4.357

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 (33) hide show
  1. package/assets/localization/local_be.json +2823 -2796
  2. package/assets/localization/local_en.json +2827 -2800
  3. package/assets/localization/local_hy.json +28 -1
  4. package/assets/localization/local_kk.json +28 -1
  5. package/assets/localization/local_ru.json +28 -1
  6. package/assets/localization/local_zh.json +28 -1
  7. package/components/common/layout/theHeader/feedback/Feedback.vue +12 -7
  8. package/components/common/layout/theHeader/feedback/lib/config/sendFeedback.ts +9 -0
  9. package/components/common/layout/theHeader/feedback/new/New.vue +131 -0
  10. package/components/common/layout/theHeader/feedback/new/additionalDetails/AdditionalDetails.vue +14 -0
  11. package/components/common/layout/theHeader/feedback/new/description/Description.vue +58 -0
  12. package/components/common/layout/theHeader/feedback/new/email/Email.vue +43 -0
  13. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +83 -0
  14. package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +79 -0
  15. package/components/common/layout/theHeader/feedback/new/tabs/lib/config/tabs.ts +25 -0
  16. package/components/common/layout/theHeader/feedback/new/tabs/lib/models/interfaces.ts +17 -0
  17. package/components/common/layout/theHeader/feedback/new/tabs/lib/models/types.ts +1 -0
  18. package/components/common/layout/theHeader/helpMenu/About.vue +45 -72
  19. package/components/common/layout/theHeader/helpMenu/HelpMenu.vue +1 -1
  20. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +92 -0
  21. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +95 -0
  22. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +136 -64
  23. package/components/common/portlets/tag/CreateCategory.vue +276 -276
  24. package/components/common/portlets/tag/{TagsNew.vue → Portlet.vue} +450 -450
  25. package/components/common/portlets/tag/TagAddNew.vue +578 -578
  26. package/components/common/portlets/tag/lib/config/config.ts +199 -199
  27. package/components/common/portlets/tag/lib/models/interfaces.ts +27 -27
  28. package/components/common/portlets/tag/lib/models/types.ts +15 -15
  29. package/components/common/spiceConsole/Drawer.vue +28 -0
  30. package/lib/models/interfaces.ts +1 -0
  31. package/package.json +2 -2
  32. package/store/tasks/mappers/recentTasks.ts +8 -1
  33. package/components/common/layout/theHeader/feedback/FeedbackNew.vue +0 -63
@@ -1,276 +1,276 @@
1
- <template>
2
- <ui-modal
3
- v-if="props.isShowModal"
4
- :title="localization.common.createCategory"
5
- test-id="modal-create-category"
6
- width="656px"
7
- :texts="createCategoryTexts"
8
- @hide="emits('cancel')"
9
- @submit="onCreate"
10
- >
11
- <template #header></template>
12
- <template #content>
13
- <div class="create-category">
14
- <div class="create-category-name">
15
- <ui-input
16
- v-model="data.categoryName"
17
- test-id="category-name-input"
18
- :label="localization.common.categoryName"
19
- size="lg"
20
- :error="errorText"
21
- />
22
- </div>
23
- <div class="create-category-description">
24
- <ui-textarea
25
- v-model="data.description"
26
- test-id="description-textarea"
27
- :label="localization.common.description"
28
- />
29
- </div>
30
- <div class="create-category-tpo">
31
- <span class="create-category-tpo-title sub-title">{{
32
- localization.common.tagsPerObject
33
- }}</span>
34
- <div class="create-category-tpo-radio">
35
- <div class="create-category-tpo-radio-item">
36
- <ui-radio
37
- v-model="data.tagsPerObject"
38
- test-id="tags-per-object-one"
39
- size="lg"
40
- :label="localization.common.oneTag"
41
- value="0"
42
- />
43
- </div>
44
- <div class="create-category-tpo-radio-item">
45
- <ui-radio
46
- v-model="data.tagsPerObject"
47
- test-id="tags-per-object-many"
48
- size="lg"
49
- :label="localization.common.manyTag"
50
- value="1"
51
- />
52
- </div>
53
- </div>
54
- </div>
55
- <div class="create-category-types">
56
- <div class="create-category-types-header">
57
- <span class="create-category-types-header-title sub-title">
58
- {{ localization.common.associableObjectTypes }}
59
- </span>
60
- <span class="create-category-types-header-selection">
61
- <ui-button
62
- variant="text"
63
- is-without-height
64
- is-without-sizes
65
- :test-id="
66
- isAllSelected ? 'deselect-all-tags' : 'select-all-tags'
67
- "
68
- @click="onSelectAllTypes"
69
- >
70
- {{ selectAllText }}
71
- </ui-button>
72
- </span>
73
- </div>
74
- <div class="create-category-types-body">
75
- <div class="create-category-types-body-col">
76
- <template
77
- v-for="(type, index) in createCategoryTypes"
78
- :key="type"
79
- >
80
- <div v-if="index % 2 === 0">
81
- <ui-checkbox
82
- v-model="data.types[type]"
83
- :label-text="localization.common[type]"
84
- :test-id="`checkbox-type-${type}`"
85
- />
86
- </div>
87
- </template>
88
- </div>
89
- <div class="create-category-types-body-col">
90
- <template
91
- v-for="(type, index) in createCategoryTypes"
92
- :key="type"
93
- >
94
- <div v-if="index % 2 === 1">
95
- <ui-checkbox
96
- v-model="data.types[type]"
97
- :label-text="localization.common[type]"
98
- :test-id="`checkbox-type-${type}`"
99
- />
100
- </div>
101
- </template>
102
- </div>
103
- </div>
104
- </div>
105
- </div>
106
- </template>
107
- <template #footerLeftContent>
108
- <span></span>
109
- </template>
110
- </ui-modal>
111
- </template>
112
-
113
- <script setup lang="ts">
114
- import type {
115
- UI_I_ArbitraryObject,
116
- UI_I_Localization,
117
- } from '~/lib/models/interfaces'
118
- import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/modal/models/interfaces'
119
- import type { I_CreateCategoryData } from '~/components/common/portlets/tag/lib/models/interfaces'
120
- import {
121
- createCategoryData,
122
- createCategoryTypes,
123
- } from '~/components/common/portlets/tag/lib/config/config'
124
-
125
- const props = defineProps<{
126
- isShowModal: boolean
127
- }>()
128
-
129
- const emits = defineEmits<{
130
- (event: 'cancel'): void
131
- (event: 'create', value: I_CreateCategoryData): void
132
- }>()
133
-
134
- const localization = computed<UI_I_Localization>(() => useLocal())
135
-
136
- const createCategoryTexts = computed<UI_I_ModalTexts>(() => ({
137
- button1: localization.value.common.cancel,
138
- button2: localization.value.common.create,
139
- }))
140
-
141
- const data = ref<I_CreateCategoryData>(useDeepCopy(createCategoryData))
142
-
143
- const isAllSelected = computed<boolean>(() => {
144
- let result = true
145
-
146
- createCategoryTypes.forEach((key) => {
147
- if (!data.value.types[key]) {
148
- result = false
149
- }
150
- })
151
-
152
- return result
153
- })
154
-
155
- const selectAllText = computed<string>(() =>
156
- isAllSelected.value
157
- ? localization.value.common.deselectAll
158
- : localization.value.common.selectAll
159
- )
160
-
161
- const isShowValidation = ref<boolean>(false)
162
- const validationData = computed<boolean>(() => !data.value.categoryName.trim())
163
- const errorText = computed<string>(() =>
164
- validationData.value && isShowValidation.value
165
- ? localization.value.common.fieldRequired
166
- : ''
167
- )
168
-
169
- const onCreate = (): void => {
170
- if (validationData.value) {
171
- isShowValidation.value = true
172
- return
173
- }
174
- emits('create', data.value)
175
- }
176
-
177
- watch(
178
- () => data.value.categoryName,
179
- () => {
180
- isShowValidation.value = false
181
- }
182
- )
183
-
184
- const onSelectAllTypes = (): void => {
185
- const newData: UI_I_ArbitraryObject<boolean> = {}
186
- for (const key in data.value.types) {
187
- newData[key] = !isAllSelected.value
188
- }
189
- data.value.types = newData
190
- }
191
- </script>
192
-
193
- <style>
194
- :root {
195
- --sub-title-color: #4d5d69;
196
- --separator-color: #e9ebed;
197
- }
198
- :root.dark-theme {
199
- --sub-title-color: #e9eaec;
200
- --separator-color: #e9ebed1f;
201
- }
202
- </style>
203
-
204
- <style scoped lang="scss">
205
- .create-category {
206
- padding: 16px 32px;
207
- &-name {
208
- margin-bottom: 16px;
209
- }
210
- &-description {
211
- margin-bottom: 24px;
212
- :deep(textarea) {
213
- height: 68px;
214
- resize: none;
215
- }
216
- }
217
- &-tpo {
218
- padding-bottom: 32px;
219
- border-bottom: 1px solid var(--separator-color);
220
-
221
- &-title {
222
- margin-bottom: 16px;
223
- font-size: 16px;
224
- font-weight: 500;
225
- line-height: 20px;
226
- color: var(--sub-title-color);
227
- display: inline-block;
228
- }
229
- &-radio {
230
- display: flex;
231
- column-gap: 16px;
232
-
233
- &-item {
234
- width: calc(50% - 8px);
235
- }
236
- }
237
- }
238
- &-types {
239
- margin-top: 24px;
240
-
241
- &-header {
242
- display: flex;
243
- justify-content: space-between;
244
- align-items: center;
245
- margin-bottom: 16px;
246
-
247
- &-title {
248
- font-size: 16px;
249
- font-weight: 500;
250
- line-height: 20px;
251
- color: var(--sub-title-color);
252
- }
253
-
254
- &-selection {
255
- :deep(button.ui-btn) {
256
- line-height: 16px;
257
- width: fit-content;
258
- }
259
- }
260
- }
261
- &-body {
262
- display: flex;
263
- justify-content: space-between;
264
- column-gap: 16px;
265
-
266
- &-col {
267
- width: calc(50% - 8px);
268
-
269
- div:not(:last-of-type) {
270
- margin-bottom: 12px;
271
- }
272
- }
273
- }
274
- }
275
- }
276
- </style>
1
+ <template>
2
+ <ui-modal
3
+ v-if="props.isShowModal"
4
+ :title="localization.common.createCategory"
5
+ test-id="modal-create-category"
6
+ width="656px"
7
+ :texts="createCategoryTexts"
8
+ @hide="emits('cancel')"
9
+ @submit="onCreate"
10
+ >
11
+ <template #header></template>
12
+ <template #content>
13
+ <div class="create-category">
14
+ <div class="create-category-name">
15
+ <ui-input
16
+ v-model="data.categoryName"
17
+ test-id="category-name-input"
18
+ :label="localization.common.categoryName"
19
+ size="lg"
20
+ :error="errorText"
21
+ />
22
+ </div>
23
+ <div class="create-category-description">
24
+ <ui-textarea
25
+ v-model="data.description"
26
+ test-id="description-textarea"
27
+ :label="localization.common.description"
28
+ />
29
+ </div>
30
+ <div class="create-category-tpo">
31
+ <span class="create-category-tpo-title sub-title">{{
32
+ localization.common.tagsPerObject
33
+ }}</span>
34
+ <div class="create-category-tpo-radio">
35
+ <div class="create-category-tpo-radio-item">
36
+ <ui-radio
37
+ v-model="data.tagsPerObject"
38
+ test-id="tags-per-object-one"
39
+ size="lg"
40
+ :label="localization.common.oneTag"
41
+ value="0"
42
+ />
43
+ </div>
44
+ <div class="create-category-tpo-radio-item">
45
+ <ui-radio
46
+ v-model="data.tagsPerObject"
47
+ test-id="tags-per-object-many"
48
+ size="lg"
49
+ :label="localization.common.manyTag"
50
+ value="1"
51
+ />
52
+ </div>
53
+ </div>
54
+ </div>
55
+ <div class="create-category-types">
56
+ <div class="create-category-types-header">
57
+ <span class="create-category-types-header-title sub-title">
58
+ {{ localization.common.associableObjectTypes }}
59
+ </span>
60
+ <span class="create-category-types-header-selection">
61
+ <ui-button
62
+ variant="text"
63
+ is-without-height
64
+ is-without-sizes
65
+ :test-id="
66
+ isAllSelected ? 'deselect-all-tags' : 'select-all-tags'
67
+ "
68
+ @click="onSelectAllTypes"
69
+ >
70
+ {{ selectAllText }}
71
+ </ui-button>
72
+ </span>
73
+ </div>
74
+ <div class="create-category-types-body">
75
+ <div class="create-category-types-body-col">
76
+ <template
77
+ v-for="(type, index) in createCategoryTypes"
78
+ :key="type"
79
+ >
80
+ <div v-if="index % 2 === 0">
81
+ <ui-checkbox
82
+ v-model="data.types[type]"
83
+ :label-text="localization.common[type]"
84
+ :test-id="`checkbox-type-${type}`"
85
+ />
86
+ </div>
87
+ </template>
88
+ </div>
89
+ <div class="create-category-types-body-col">
90
+ <template
91
+ v-for="(type, index) in createCategoryTypes"
92
+ :key="type"
93
+ >
94
+ <div v-if="index % 2 === 1">
95
+ <ui-checkbox
96
+ v-model="data.types[type]"
97
+ :label-text="localization.common[type]"
98
+ :test-id="`checkbox-type-${type}`"
99
+ />
100
+ </div>
101
+ </template>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </template>
107
+ <template #footerLeftContent>
108
+ <span></span>
109
+ </template>
110
+ </ui-modal>
111
+ </template>
112
+
113
+ <script setup lang="ts">
114
+ import type {
115
+ UI_I_ArbitraryObject,
116
+ UI_I_Localization,
117
+ } from '~/lib/models/interfaces'
118
+ import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/modal/models/interfaces'
119
+ import type { I_CreateCategoryData } from '~/components/common/portlets/tag/lib/models/interfaces'
120
+ import {
121
+ createCategoryData,
122
+ createCategoryTypes,
123
+ } from '~/components/common/portlets/tag/lib/config/config'
124
+
125
+ const props = defineProps<{
126
+ isShowModal: boolean
127
+ }>()
128
+
129
+ const emits = defineEmits<{
130
+ (event: 'cancel'): void
131
+ (event: 'create', value: I_CreateCategoryData): void
132
+ }>()
133
+
134
+ const localization = computed<UI_I_Localization>(() => useLocal())
135
+
136
+ const createCategoryTexts = computed<UI_I_ModalTexts>(() => ({
137
+ button1: localization.value.common.cancel,
138
+ button2: localization.value.common.create,
139
+ }))
140
+
141
+ const data = ref<I_CreateCategoryData>(useDeepCopy(createCategoryData))
142
+
143
+ const isAllSelected = computed<boolean>(() => {
144
+ let result = true
145
+
146
+ createCategoryTypes.forEach((key) => {
147
+ if (!data.value.types[key]) {
148
+ result = false
149
+ }
150
+ })
151
+
152
+ return result
153
+ })
154
+
155
+ const selectAllText = computed<string>(() =>
156
+ isAllSelected.value
157
+ ? localization.value.common.deselectAll
158
+ : localization.value.common.selectAll
159
+ )
160
+
161
+ const isShowValidation = ref<boolean>(false)
162
+ const validationData = computed<boolean>(() => !data.value.categoryName.trim())
163
+ const errorText = computed<string>(() =>
164
+ validationData.value && isShowValidation.value
165
+ ? localization.value.common.fieldRequired
166
+ : ''
167
+ )
168
+
169
+ const onCreate = (): void => {
170
+ if (validationData.value) {
171
+ isShowValidation.value = true
172
+ return
173
+ }
174
+ emits('create', data.value)
175
+ }
176
+
177
+ watch(
178
+ () => data.value.categoryName,
179
+ () => {
180
+ isShowValidation.value = false
181
+ }
182
+ )
183
+
184
+ const onSelectAllTypes = (): void => {
185
+ const newData: UI_I_ArbitraryObject<boolean> = {}
186
+ for (const key in data.value.types) {
187
+ newData[key] = !isAllSelected.value
188
+ }
189
+ data.value.types = newData
190
+ }
191
+ </script>
192
+
193
+ <style>
194
+ :root {
195
+ --sub-title-color: #4d5d69;
196
+ --separator-color: #e9ebed;
197
+ }
198
+ :root.dark-theme {
199
+ --sub-title-color: #e9eaec;
200
+ --separator-color: #e9ebed1f;
201
+ }
202
+ </style>
203
+
204
+ <style scoped lang="scss">
205
+ .create-category {
206
+ padding: 16px 32px;
207
+ &-name {
208
+ margin-bottom: 16px;
209
+ }
210
+ &-description {
211
+ margin-bottom: 24px;
212
+ :deep(textarea) {
213
+ height: 68px;
214
+ resize: none;
215
+ }
216
+ }
217
+ &-tpo {
218
+ padding-bottom: 32px;
219
+ border-bottom: 1px solid var(--separator-color);
220
+
221
+ &-title {
222
+ margin-bottom: 16px;
223
+ font-size: 16px;
224
+ font-weight: 500;
225
+ line-height: 20px;
226
+ color: var(--sub-title-color);
227
+ display: inline-block;
228
+ }
229
+ &-radio {
230
+ display: flex;
231
+ column-gap: 16px;
232
+
233
+ &-item {
234
+ width: calc(50% - 8px);
235
+ }
236
+ }
237
+ }
238
+ &-types {
239
+ margin-top: 24px;
240
+
241
+ &-header {
242
+ display: flex;
243
+ justify-content: space-between;
244
+ align-items: center;
245
+ margin-bottom: 16px;
246
+
247
+ &-title {
248
+ font-size: 16px;
249
+ font-weight: 500;
250
+ line-height: 20px;
251
+ color: var(--sub-title-color);
252
+ }
253
+
254
+ &-selection {
255
+ :deep(button.ui-btn) {
256
+ line-height: 16px;
257
+ width: fit-content;
258
+ }
259
+ }
260
+ }
261
+ &-body {
262
+ display: flex;
263
+ justify-content: space-between;
264
+ column-gap: 16px;
265
+
266
+ &-col {
267
+ width: calc(50% - 8px);
268
+
269
+ div:not(:last-of-type) {
270
+ margin-bottom: 12px;
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ </style>