bfg-common 1.3.205 → 1.3.207

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.
@@ -1,89 +1,95 @@
1
- <template>
2
- <div :class="['alert', status]">
3
- <div class="alert-items">
4
- <slot v-if="$slots.headline" name="headline" :icon="iconName" />
5
-
6
- <slot name="body">
7
- <div v-for="(item, key) in items" :key="key" class="alert-item">
8
- <div v-if="!$slots.headline" class="alert-icon-wrapper">
9
- <atoms-the-icon
10
- :class="['alert-icon', iconName]"
11
- :name="iconName"
12
- />
13
- </div>
14
-
15
- <slot :item="item" :index="key">
16
- <span class="alert-text">{{ item }}</span>
17
- </slot>
18
- </div>
19
- </slot>
20
- </div>
21
- <button
22
- v-if="!hideCloseIcon"
23
- :id="`${props.testId}-close-button`"
24
- class="close"
25
- @click="removeAlert"
26
- >
27
- <atoms-the-icon class="alert-icon" name="close" />
28
- </button>
29
- </div>
30
- </template>
31
-
32
- <script setup lang="ts">
33
- import { UI_E_IconsByStatus } from '~/components/atoms/alert/lib/models/enums'
34
-
35
- const props = withDefaults(
36
- defineProps<{
37
- testId?: string
38
- status: 'alert-danger' | 'alert-warning' | 'alert-info' | 'alert-success'
39
- items: string[] | any
40
- hideCloseIcon?: boolean
41
- }>(),
42
- { testId: 'ui-alert' }
43
- )
44
- const emits = defineEmits<{
45
- (event: 'remove'): void
46
- }>()
47
-
48
- const removeAlert = (): void => {
49
- emits('remove')
50
- }
51
- const iconName = computed<string>(() => UI_E_IconsByStatus[props.status])
52
- </script>
53
-
54
- <style scoped lang="scss">
55
- .alert {
56
- &-info {
57
- fill: #004d8a;
58
- }
59
- &-warning {
60
- background-color: var(--alert-warning-bg-color);
61
- border: 1px solid var(--alert-warning-border-color);
62
- fill: var(--alert-warning-icon-color);
63
- }
64
-
65
- &-icon {
66
- width: 20px;
67
- height: 20px;
68
- }
69
- &-text {
70
- color: var(--global-font-color5);
71
- }
72
-
73
- button.close:focus {
74
- box-shadow: none;
75
- }
76
- }
77
- </style>
78
- <style>
79
- :root {
80
- --alert-warning-icon-color: #d28f00;
81
- --alert-warning-bg-color: #fef3b5;
82
- --alert-warning-border-color: #d28f00;
83
- }
84
- :root.dark-theme {
85
- --alert-warning-icon-color: currentColor;
86
- --alert-warning-bg-color: #816709;
87
- --alert-warning-border-color: transparent;
88
- }
89
- </style>
1
+ <template>
2
+ <div :class="['alert', status]">
3
+ <div class="alert-items">
4
+ <slot v-if="$slots.headline" name="headline" :icon="iconName" />
5
+
6
+ <slot name="body">
7
+ <div v-for="(item, key) in items" :key="key" class="alert-item">
8
+ <div v-if="!$slots.headline" class="alert-icon-wrapper">
9
+ <atoms-the-icon
10
+ :class="['alert-icon', iconName]"
11
+ :name="iconName"
12
+ />
13
+ </div>
14
+
15
+ <slot :item="item" :index="key">
16
+ <span class="alert-text">{{ item }}</span>
17
+ </slot>
18
+ </div>
19
+ </slot>
20
+ </div>
21
+ <button
22
+ v-if="!hideCloseIcon"
23
+ :id="`${props.testId}-close-button`"
24
+ class="close"
25
+ @click="removeAlert"
26
+ >
27
+ <atoms-the-icon class="alert-icon" name="close" />
28
+ </button>
29
+ </div>
30
+ </template>
31
+
32
+ <script setup lang="ts">
33
+ import { UI_E_IconsByStatus } from '~/components/atoms/alert/lib/models/enums'
34
+ import type {
35
+ UI_T_AlertStatus,
36
+ UI_T_AlertIcon,
37
+ } from '~/components/atoms/alert/lib/models/types'
38
+
39
+ const props = withDefaults(
40
+ defineProps<{
41
+ status: UI_T_AlertStatus
42
+ items: string[] | any
43
+ testId?: string
44
+ hideCloseIcon?: boolean
45
+ }>(),
46
+ { testId: 'ui-alert' }
47
+ )
48
+ const emits = defineEmits<{
49
+ (event: 'remove'): void
50
+ }>()
51
+
52
+ const removeAlert = (): void => {
53
+ emits('remove')
54
+ }
55
+ const iconName = computed<UI_T_AlertIcon>(
56
+ () => UI_E_IconsByStatus[props.status as UI_T_AlertStatus]
57
+ )
58
+ </script>
59
+
60
+ <style scoped lang="scss">
61
+ .alert {
62
+ &-info {
63
+ fill: #004d8a;
64
+ }
65
+ &-warning {
66
+ background-color: var(--alert-warning-bg-color);
67
+ border: 1px solid var(--alert-warning-border-color);
68
+ fill: var(--alert-warning-icon-color);
69
+ }
70
+
71
+ &-icon {
72
+ width: 20px;
73
+ height: 20px;
74
+ }
75
+ &-text {
76
+ color: var(--global-font-color5);
77
+ }
78
+
79
+ button.close:focus {
80
+ box-shadow: none;
81
+ }
82
+ }
83
+ </style>
84
+ <style>
85
+ :root {
86
+ --alert-warning-icon-color: #d28f00;
87
+ --alert-warning-bg-color: #fef3b5;
88
+ --alert-warning-border-color: #d28f00;
89
+ }
90
+ :root.dark-theme {
91
+ --alert-warning-icon-color: currentColor;
92
+ --alert-warning-bg-color: #816709;
93
+ --alert-warning-border-color: transparent;
94
+ }
95
+ </style>
@@ -1,167 +1,170 @@
1
- <template>
2
- <div class="notification">
3
- <div
4
- class="notification-container-wrap animation"
5
- :class="{ active: isActive }"
6
- >
7
- <div class="notification-container">
8
- <div v-show="props.show" class="toast">
9
- <atoms-the-icon
10
- class="toast-icon"
11
- :class="iconName !== 'info' && 'with'"
12
- :name="iconName"
13
- />
14
- <div class="toast-content">
15
- <div class="flex-align-center flex-space-between">
16
- <h4>{{ props.title }}</h4>
17
- <button
18
- :id="`${props.testId}-close-button`"
19
- :title="localization.closeNotification"
20
- @click="hide"
21
- >
22
- <atoms-the-icon name="close" />
23
- </button>
24
- </div>
25
- <div class="description">
26
- <slot>
27
- <p class="pre-line">{{ props.description }}</p>
28
- </slot>
29
- </div>
30
- </div>
31
- </div>
32
- </div>
33
- </div>
34
- </div>
35
- </template>
36
-
37
- <script setup lang="ts">
38
- import { UI_I_Localization } from '~/lib/models/interfaces'
39
- import { UI_E_IconsByStatusNotification } from '~/components/atoms/alert/lib/models/enums'
40
- import { UI_T_Status } from '~/components/atoms/alert/lib/models/types'
41
-
42
- const props = withDefaults(
43
- defineProps<{
44
- status: UI_T_Status
45
- id: number
46
- show: boolean
47
- title: string
48
- description: string
49
- testId?: string
50
- }>(),
51
- { testId: 'ui-notification' }
52
- )
53
- const emits = defineEmits<{
54
- (event: 'hide', value: number): void
55
- }>()
56
-
57
- const localization = computed<UI_I_Localization>(() => useLocal())
58
- const hide = (): void => {
59
- isActive.value = false
60
-
61
- setTimeout(() => {
62
- emits('hide', props.id)
63
- }, 200)
64
- }
65
- const isActive = ref<boolean>(false)
66
-
67
- const iconName = computed<string>(
68
- () => UI_E_IconsByStatusNotification[props.status]
69
- )
70
-
71
- setTimeout(() => {
72
- isActive.value = true
73
- }, 1000)
74
- </script>
75
-
76
- <style scoped lang="scss">
77
- @import '~/assets/scss/common/mixins.scss';
78
-
79
- .notification {
80
- .notification-container-wrap {
81
- display: block;
82
- margin-top: 10px;
83
- width: 414px;
84
- position: relative;
85
- right: -600px;
86
- opacity: 0;
87
-
88
- &.active {
89
- right: 0;
90
- opacity: 1;
91
- }
92
-
93
- .notification-container {
94
- @include flex($dir: column, $just: flex-end);
95
- margin-right: 0;
96
-
97
- .toast {
98
- @include flex($dir: row);
99
- background-color: #25333d;
100
- border-radius: 3px;
101
- box-shadow: 0 2px 10px rgb(0 0 0 / 40%);
102
- margin: 0;
103
- padding: 12px;
104
- transform: scale(1);
105
- transform-origin: 100% 0;
106
- width: 100%;
107
-
108
- .toast-icon {
109
- width: 36px;
110
- height: 36px;
111
- &.with {
112
- width: 26px;
113
- height: 26px;
114
- }
115
- }
116
-
117
- .toast-content {
118
- padding-left: 12px;
119
- width: 100%;
120
-
121
- h4 {
122
- color: #e9ecef;
123
- font-size: 14px;
124
- font-weight: 500;
125
- line-height: 24px;
126
- margin-top: 0;
127
- max-width: 240px;
128
- overflow: hidden;
129
- text-overflow: ellipsis;
130
- white-space: nowrap;
131
- }
132
-
133
- button {
134
- background: transparent;
135
- border: none;
136
- border-radius: 100%;
137
- cursor: pointer;
138
- display: inline-block;
139
- height: 30px;
140
- position: absolute;
141
- right: 8px;
142
- top: 8px;
143
- width: 30px;
144
-
145
- svg {
146
- width: 16px;
147
- height: 16px;
148
- fill: #adbbc4;
149
- margin-left: 1px;
150
- margin-top: -8px;
151
- }
152
- }
153
-
154
- .description {
155
- max-height: 60vh;
156
- overflow: auto;
157
-
158
- p {
159
- color: var(--global-font-color6);
160
- }
161
- }
162
- }
163
- }
164
- }
165
- }
166
- }
167
- </style>
1
+ <template>
2
+ <div class="notification">
3
+ <div
4
+ class="notification-container-wrap animation"
5
+ :class="{ active: isActive }"
6
+ >
7
+ <div class="notification-container">
8
+ <div v-show="props.show" class="toast">
9
+ <atoms-the-icon
10
+ class="toast-icon"
11
+ :class="iconName !== 'info' && 'with'"
12
+ :name="iconName"
13
+ />
14
+ <div class="toast-content">
15
+ <div class="flex-align-center flex-space-between">
16
+ <h4>{{ props.title }}</h4>
17
+ <button
18
+ :id="`${props.testId}-close-button`"
19
+ :title="localization.closeNotification"
20
+ @click="hide"
21
+ >
22
+ <atoms-the-icon name="close" />
23
+ </button>
24
+ </div>
25
+ <div class="description">
26
+ <slot>
27
+ <p class="pre-line">{{ props.description }}</p>
28
+ </slot>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </template>
36
+
37
+ <script setup lang="ts">
38
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
39
+ import type {
40
+ UI_T_NotificationStatus,
41
+ UI_T_NotificationIcon,
42
+ } from '~/components/atoms/alert/lib/models/types'
43
+ import { UI_E_IconsByStatusNotification } from '~/components/atoms/alert/lib/models/enums'
44
+
45
+ const props = withDefaults(
46
+ defineProps<{
47
+ status: UI_T_NotificationStatus
48
+ id: number
49
+ show: boolean
50
+ title: string
51
+ description: string
52
+ testId?: string
53
+ }>(),
54
+ { testId: 'ui-notification' }
55
+ )
56
+ const emits = defineEmits<{
57
+ (event: 'hide', value: number): void
58
+ }>()
59
+
60
+ const localization = computed<UI_I_Localization>(() => useLocal())
61
+ const hide = (): void => {
62
+ isActive.value = false
63
+
64
+ setTimeout(() => {
65
+ emits('hide', props.id)
66
+ }, 200)
67
+ }
68
+ const isActive = ref<boolean>(false)
69
+
70
+ const iconName = computed<UI_T_NotificationIcon>(
71
+ () => UI_E_IconsByStatusNotification[props.status as UI_T_NotificationStatus]
72
+ )
73
+
74
+ setTimeout(() => {
75
+ isActive.value = true
76
+ }, 1000)
77
+ </script>
78
+
79
+ <style scoped lang="scss">
80
+ @import '~/assets/scss/common/mixins.scss';
81
+
82
+ .notification {
83
+ .notification-container-wrap {
84
+ display: block;
85
+ margin-top: 10px;
86
+ width: 414px;
87
+ position: relative;
88
+ right: -600px;
89
+ opacity: 0;
90
+
91
+ &.active {
92
+ right: 0;
93
+ opacity: 1;
94
+ }
95
+
96
+ .notification-container {
97
+ @include flex($dir: column, $just: flex-end);
98
+ margin-right: 0;
99
+
100
+ .toast {
101
+ @include flex($dir: row);
102
+ background-color: #25333d;
103
+ border-radius: 3px;
104
+ box-shadow: 0 2px 10px rgb(0 0 0 / 40%);
105
+ margin: 0;
106
+ padding: 12px;
107
+ transform: scale(1);
108
+ transform-origin: 100% 0;
109
+ width: 100%;
110
+
111
+ .toast-icon {
112
+ width: 36px;
113
+ height: 36px;
114
+ &.with {
115
+ width: 26px;
116
+ height: 26px;
117
+ }
118
+ }
119
+
120
+ .toast-content {
121
+ padding-left: 12px;
122
+ width: 100%;
123
+
124
+ h4 {
125
+ color: #e9ecef;
126
+ font-size: 14px;
127
+ font-weight: 500;
128
+ line-height: 24px;
129
+ margin-top: 0;
130
+ max-width: 240px;
131
+ overflow: hidden;
132
+ text-overflow: ellipsis;
133
+ white-space: nowrap;
134
+ }
135
+
136
+ button {
137
+ background: transparent;
138
+ border: none;
139
+ border-radius: 100%;
140
+ cursor: pointer;
141
+ display: inline-block;
142
+ height: 30px;
143
+ position: absolute;
144
+ right: 8px;
145
+ top: 8px;
146
+ width: 30px;
147
+
148
+ svg {
149
+ width: 16px;
150
+ height: 16px;
151
+ fill: #adbbc4;
152
+ margin-left: 1px;
153
+ margin-top: -8px;
154
+ }
155
+ }
156
+
157
+ .description {
158
+ max-height: 60vh;
159
+ overflow: auto;
160
+
161
+ p {
162
+ color: var(--global-font-color6);
163
+ }
164
+ }
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ </style>
@@ -1,4 +1,8 @@
1
- export type UI_T_Status = 'success' | 'error' | 'warning'
1
+ export type UI_T_NotificationStatus = 'success' | 'error' | 'warning'
2
+ export type UI_T_NotificationIcon = 'success-circle' | 'info' | 'warning'
3
+
4
+ export type UI_T_AlertStatus = 'alert-danger' | 'alert-warning' | 'alert-info' | 'alert-success'
5
+ export type UI_T_AlertIcon = 'exclamation-circle' | 'exclamation-triangle' | 'info-circle' | 'success-circle'
2
6
 
3
7
 
4
8
 
@@ -144,14 +144,16 @@ import {
144
144
  adapterViewSettingsFunc,
145
145
  } from '~/components/common/diagramMain/modals/lib/config'
146
146
  import { allAdaptersFunc } from '~/components/common/adapterManager/lib/config'
147
- import { UI_I_Localization } from '~/lib/models/interfaces'
147
+ import {
148
+ UI_I_Localization,
149
+ UI_I_ItemsWithTotalCounts,
150
+ } from '~/lib/models/interfaces'
148
151
  import { UI_T_AdapterStatusNames } from '~/components/common/diagramMain/lib/models/types'
149
152
  import {
150
153
  UI_I_Adapter,
151
154
  UI_I_AdapterStatus,
152
155
  UI_I_ModalsInitialData,
153
156
  UI_I_SwitchAdapterItem,
154
- UI_I_SwitchAdapters,
155
157
  } from '~/components/common/diagramMain/lib/models/interfaces'
156
158
 
157
159
  const props = withDefaults(
@@ -160,7 +162,7 @@ const props = withDefaults(
160
162
  fullMode?: boolean
161
163
  isAddModal?: boolean
162
164
  isDarkMode: boolean
163
- adapters: UI_I_SwitchAdapters
165
+ adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
164
166
  initialData?: UI_I_ModalsInitialData
165
167
  addedAdapters?: string[]
166
168
  coreAdapters?: string[]
@@ -188,8 +190,8 @@ const props = withDefaults(
188
190
  addedAdapters: () => [],
189
191
  coreAdapters: () => [],
190
192
  adapters: () => ({
191
- totalItems: 0,
192
- totalPages: 0,
193
+ total_items: 0,
194
+ total_pages: 0,
193
195
  items: [],
194
196
  }),
195
197
  isShowNoConnectedActiveAdaptersModal: false,
@@ -34,11 +34,10 @@
34
34
  </template>
35
35
 
36
36
  <script setup lang="ts">
37
- import { UI_I_Localization } from '~/lib/models/interfaces'
37
+ import { UI_I_Localization, UI_I_ItemsWithTotalCounts } from '~/lib/models/interfaces'
38
38
  import {
39
39
  UI_I_Adapter,
40
- UI_I_SwitchAdapterItem,
41
- UI_I_SwitchAdapters,
40
+ UI_I_SwitchAdapterItem
42
41
  } from '~/components/common/diagramMain/lib/models/interfaces'
43
42
 
44
43
  // Props from up
@@ -51,15 +50,15 @@ const props = withDefaults(
51
50
  height: string
52
51
  modalName: string
53
52
  viewName: string
54
- adapters: UI_I_SwitchAdapters
53
+ adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
55
54
  existingAdaptersForAdding: (UI_I_Adapter | UI_I_SwitchAdapterItem)[]
56
55
  selectedAddAdapterId: string
57
56
  }>(),
58
57
  {
59
58
  existingAdaptersForAdding: () => [],
60
59
  adapters: () => ({
61
- totalItems: 0,
62
- totalPages: 0,
60
+ total_items: 0,
61
+ total_pages: 0,
63
62
  items: [],
64
63
  }),
65
64
  }
@@ -246,11 +246,12 @@ import {
246
246
  UI_I_ToggleDiagramPortsPayload,
247
247
  UI_I_PortToggleFlag,
248
248
  UI_I_DiagramData,
249
- UI_I_SwitchAdapters,
249
+ UI_I_SwitchAdapterItem,
250
250
  } from '~/components/common/diagramMain/lib/models/interfaces'
251
251
  import {
252
252
  UI_I_ArbitraryObject,
253
253
  UI_I_Localization,
254
+ UI_I_ItemsWithTotalCounts,
254
255
  } from '~/lib/models/interfaces'
255
256
  import {
256
257
  UI_I_AddNetworkingSecondOrThirdSchemeDataSend,
@@ -295,7 +296,7 @@ const props = withDefaults(
295
296
  inPortlet?: boolean
296
297
  standardSwitchesInitial?: UI_I_Switch[]
297
298
  hostName?: string
298
- adapters?: UI_I_SwitchAdapters
299
+ adapters?: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
299
300
  freeAdapters?: UI_I_Adapter[]
300
301
  networksList?: UI_I_Network[]
301
302
  isDarkMode: boolean
@@ -309,8 +310,8 @@ const props = withDefaults(
309
310
  standardSwitchesInitial: () => [],
310
311
  hostName: '',
311
312
  adapters: () => ({
312
- totalItems: 0,
313
- totalPages: 0,
313
+ total_items: 0,
314
+ total_pages: 0,
314
315
  items: [],
315
316
  }),
316
317
  freeAdapters: () => [],