bfg-common 1.2.19 → 1.2.21

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 (75) hide show
  1. package/components/atoms/alert/Notification.vue +167 -167
  2. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  3. package/components/atoms/datepicker/Datepicker.vue +612 -612
  4. package/components/atoms/list/SelectList.vue +62 -62
  5. package/components/atoms/nav/NavBar.vue +116 -116
  6. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  7. package/components/atoms/notificationBar/NotificationBar.vue +175 -175
  8. package/components/atoms/perPage/PerPage.vue +52 -52
  9. package/components/atoms/popup/SimplePopup.vue +90 -90
  10. package/components/atoms/step/VerticalStep.vue +104 -104
  11. package/components/atoms/switch/Switch.vue +107 -107
  12. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +206 -206
  13. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  14. package/components/atoms/tabs/Tabs.vue +189 -189
  15. package/components/atoms/tooltip/Signpost.vue +224 -224
  16. package/components/common/BadBrowser.vue +58 -0
  17. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  18. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  19. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  20. package/components/common/browse/Browse.vue +182 -182
  21. package/components/common/browse/blocks/Title.vue +66 -66
  22. package/components/common/diagramMain/Diagram.vue +186 -186
  23. package/components/common/diagramMain/DiagramMain.vue +986 -986
  24. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  25. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  26. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  27. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  28. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  29. package/components/common/diagramMain/network/Contents.vue +238 -238
  30. package/components/common/feedback/Buttons.vue +232 -232
  31. package/components/common/feedback/Message.vue +468 -468
  32. package/components/common/feedback/VisitPortal.vue +54 -54
  33. package/components/common/help/navbar/left/Left.vue +159 -159
  34. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  35. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  36. package/components/common/modals/Rename.vue +165 -165
  37. package/components/common/perPage/PerPage.vue +51 -51
  38. package/components/common/recursionTree/RecursionTree.vue +201 -201
  39. package/components/common/vm/actions/add/config/capabilities.ts +338 -338
  40. package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +657 -657
  41. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  42. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +383 -383
  43. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  44. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  45. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  46. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  47. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  48. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  49. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  50. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  51. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  52. package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +181 -181
  53. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  54. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  55. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  56. package/components/common/vm/actions/add/select/storage/config/config.ts +154 -154
  57. package/components/common/vm/actions/clone/Clone.vue +544 -544
  58. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  59. package/components/common/vm/actions/clone/utils.ts +43 -43
  60. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -373
  61. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  62. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  63. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  64. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  65. package/composables/useLocal.ts +38 -38
  66. package/minify.js +146 -146
  67. package/models/store/interfaces.ts +37 -37
  68. package/models/store/storage/interfaces.ts +32 -32
  69. package/models/store/types.ts +32 -32
  70. package/modules/fixContentBuild/utils/methods.ts +114 -114
  71. package/package.json +1 -1
  72. package/public/spice-console/application/codec.js +257 -257
  73. package/public/spice-console/lib/rasterEngine.js +907 -907
  74. package/public/spice-console/network/spicechannel.js +369 -369
  75. package/utils/contentBuild.ts +34 -34
@@ -1,227 +1,227 @@
1
- <template>
2
- <g data-title="adapter-item-group">
3
- <common-diagram-main-highlights
4
- data-title="adapter-item"
5
- type="main-orange"
6
- width="276"
7
- height="18"
8
- x="430.5"
9
- :y="adapterSelectionPosition"
10
- :hide="!isConnectedAdapterToPortOrNetwork"
11
- />
12
-
13
- <common-diagram-main-highlights
14
- data-title="adapter-item"
15
- type="main-blue"
16
- width="276"
17
- height="18"
18
- x="430.5"
19
- :y="adapterSelectionPosition"
20
- :hide="!isSelectedAdapter"
21
- />
22
-
23
- <a
24
- :id="`${props.testId}-adapter-name`"
25
- data-title="adapter-name"
26
- cursor="pointer"
27
- @click="onSelectAdapter(props.adapter.id)"
28
- >
29
- <text
30
- dy="11px"
31
- font-size="12"
32
- font-weight="400"
33
- x="482"
34
- :y="props.adapter.adapterPosition"
35
- class="diagram__values"
36
- >
37
- {{ adapterName }}
38
- </text>
39
- </a>
40
-
41
- <foreignObject
42
- v-if="!props.adapter.carrier"
43
- data-title="adapter-connection-icon"
44
- width="18"
45
- height="18"
46
- x="446"
47
- :y="adapterSelectionPosition"
48
- >
49
- <atoms-diagram-icon name="adapter-carrier" />
50
- </foreignObject>
51
-
52
- <common-diagram-main-highlights
53
- data-title="adapter-item-line"
54
- type="line-orange"
55
- x="391.5"
56
- :y="adapterLinePosition"
57
- x2="362.5"
58
- :y2="adapterLinePosition"
59
- :hide="!isVisibleAdapterLine"
60
- />
61
-
62
- <foreignObject
63
- data-title="adapter-item-icon"
64
- width="18"
65
- height="18"
66
- x="462"
67
- :y="adapterIconPosition"
68
- >
69
- <div>
70
- <atoms-diagram-icon name="adapter-item-icon" />
71
- </div>
72
- </foreignObject>
73
-
74
- <foreignObject
75
- data-title="adapter-action-icon"
76
- width="18"
77
- height="18"
78
- x="682"
79
- :y="adapterActionIconPosition"
80
- cursor="pointer"
81
- >
82
- <div class="diagram-actions">
83
- <atoms-collapse-nav
84
- class="diagram-actions__icon"
85
- value="-1"
86
- popup-class="diagram-actions__popup"
87
- :close-after-click="true"
88
- :items="adapterPopupFields"
89
- @change="(value) => onShowModal(value, adapterProperties)"
90
- />
91
- </div>
92
- </foreignObject>
93
-
94
- <foreignObject
95
- v-if="props.adapter.carrier"
96
- data-title="adapter-second-connected-icon"
97
- width="18"
98
- height="18"
99
- x="396"
100
- :y="props.adapter.adapterPosition"
101
- >
102
- <div>
103
- <atoms-diagram-icon name="fill-adapter" />
104
- </div>
105
- </foreignObject>
106
-
107
- <foreignObject
108
- v-else
109
- data-title="adapter-second-not-connected-icon"
110
- width="18"
111
- height="18"
112
- x="396"
113
- :y="props.adapter.adapterPosition"
114
- >
115
- <div>
116
- <atoms-diagram-icon name="outline-adapter" />
117
- </div>
118
- </foreignObject>
119
- </g>
120
- </template>
121
-
122
- <script setup lang="ts">
123
- import {
124
- UI_I_Adapter,
125
- UI_I_ModalsInitialData,
126
- UI_I_SelectedAdapter,
127
- UI_I_SelectedPort,
128
- } from '~/components/common/diagramMain/models/interfaces'
129
- import { UI_I_Localization } from '~/models/interfaces'
130
- import { adapterPopupFieldsFunc } from '~/components/common/diagramMain/modals/config'
131
- import { dataForSelectedAdapterFunc } from '~/components/common/diagramMain/config'
132
-
133
- const props = defineProps<{
134
- adapter: UI_I_Adapter & { adapterPosition: number }
135
- selectedPort: UI_I_SelectedPort
136
- selectedAdapter: UI_I_SelectedAdapter
137
- networksCount: number
138
- testId: string
139
- }>()
140
-
141
- const emits = defineEmits<{
142
- (event: 'select-adapter', adapterId: string): void
143
- (
144
- event: 'show-modal',
145
- value: string,
146
- properties?: UI_I_ModalsInitialData
147
- ): void
148
- }>()
149
-
150
- const localization = computed<UI_I_Localization>(() => useLocal())
151
-
152
- const adapterPopupFields = adapterPopupFieldsFunc(localization.value)
153
-
154
- const adapterProperties = dataForSelectedAdapterFunc(props.adapter)
155
-
156
- const adapterSelectionPosition = computed<number>(
157
- () => props.adapter.adapterPosition - 1.5
158
- )
159
-
160
- const isConnectedAdapterToPortOrNetwork = computed<boolean>(() =>
161
- props.selectedPort.activeAdapters.includes(props.adapter.id)
162
- )
163
-
164
- const isSelectedAdapter = computed<boolean>(
165
- () => props.selectedAdapter.adapterId === props.adapter.id
166
- )
167
-
168
- const adapterLinePosition = computed<number>(
169
- () => props.adapter.adapterPosition + 7.5
170
- )
171
-
172
- const adapterIconPosition = computed<number>(
173
- () => props.adapter.adapterPosition - 3
174
- )
175
-
176
- const adapterActionIconPosition = computed<number>(
177
- () => props.adapter.adapterPosition - 2
178
- )
179
-
180
- const isVisibleAdapterLine = computed<boolean>(
181
- () =>
182
- (props.selectedPort.activeAdapters.includes(props.adapter.id) ||
183
- props.selectedAdapter.adapterId === props.adapter.id) &&
184
- props.adapter.status === 'active' &&
185
- !!props.networksCount
186
- )
187
-
188
- const adapterName = computed<string>(() =>
189
- props.adapter.status === 'active'
190
- ? props.adapter.fullName
191
- : props.adapter.name
192
- )
193
-
194
- const onSelectAdapter = (adapterId: string): void => {
195
- emits('select-adapter', adapterId)
196
- }
197
-
198
- const onShowModal = (
199
- value: string,
200
- properties?: UI_I_ModalsInitialData
201
- ): void => {
202
- emits('show-modal', value, properties)
203
- }
204
- </script>
205
-
206
- <style scoped lang="scss">
207
- @import '~/assets/scss/common/mixins.scss';
208
- .diagram {
209
- &__values {
210
- @include text($fs: 12px, $fw: 400);
211
- }
212
-
213
- &-actions {
214
- :deep(.diagram-actions__icon) {
215
- &.tabs-overflow {
216
- top: -12px;
217
- right: -13px;
218
- }
219
- .navbar-dropdown-menu {
220
- .navbar-dropdown-menu-item {
221
- background: red;
222
- }
223
- }
224
- }
225
- }
226
- }
227
- </style>
1
+ <template>
2
+ <g data-title="adapter-item-group">
3
+ <common-diagram-main-highlights
4
+ data-title="adapter-item"
5
+ type="main-orange"
6
+ width="276"
7
+ height="18"
8
+ x="430.5"
9
+ :y="adapterSelectionPosition"
10
+ :hide="!isConnectedAdapterToPortOrNetwork"
11
+ />
12
+
13
+ <common-diagram-main-highlights
14
+ data-title="adapter-item"
15
+ type="main-blue"
16
+ width="276"
17
+ height="18"
18
+ x="430.5"
19
+ :y="adapterSelectionPosition"
20
+ :hide="!isSelectedAdapter"
21
+ />
22
+
23
+ <a
24
+ :id="`${props.testId}-adapter-name`"
25
+ data-title="adapter-name"
26
+ cursor="pointer"
27
+ @click="onSelectAdapter(props.adapter.id)"
28
+ >
29
+ <text
30
+ dy="11px"
31
+ font-size="12"
32
+ font-weight="400"
33
+ x="482"
34
+ :y="props.adapter.adapterPosition"
35
+ class="diagram__values"
36
+ >
37
+ {{ adapterName }}
38
+ </text>
39
+ </a>
40
+
41
+ <foreignObject
42
+ v-if="!props.adapter.carrier"
43
+ data-title="adapter-connection-icon"
44
+ width="18"
45
+ height="18"
46
+ x="446"
47
+ :y="adapterSelectionPosition"
48
+ >
49
+ <atoms-diagram-icon name="adapter-carrier" />
50
+ </foreignObject>
51
+
52
+ <common-diagram-main-highlights
53
+ data-title="adapter-item-line"
54
+ type="line-orange"
55
+ x="391.5"
56
+ :y="adapterLinePosition"
57
+ x2="362.5"
58
+ :y2="adapterLinePosition"
59
+ :hide="!isVisibleAdapterLine"
60
+ />
61
+
62
+ <foreignObject
63
+ data-title="adapter-item-icon"
64
+ width="18"
65
+ height="18"
66
+ x="462"
67
+ :y="adapterIconPosition"
68
+ >
69
+ <div>
70
+ <atoms-diagram-icon name="adapter-item-icon" />
71
+ </div>
72
+ </foreignObject>
73
+
74
+ <foreignObject
75
+ data-title="adapter-action-icon"
76
+ width="18"
77
+ height="18"
78
+ x="682"
79
+ :y="adapterActionIconPosition"
80
+ cursor="pointer"
81
+ >
82
+ <div class="diagram-actions">
83
+ <atoms-collapse-nav
84
+ class="diagram-actions__icon"
85
+ value="-1"
86
+ popup-class="diagram-actions__popup"
87
+ :close-after-click="true"
88
+ :items="adapterPopupFields"
89
+ @change="(value) => onShowModal(value, adapterProperties)"
90
+ />
91
+ </div>
92
+ </foreignObject>
93
+
94
+ <foreignObject
95
+ v-if="props.adapter.carrier"
96
+ data-title="adapter-second-connected-icon"
97
+ width="18"
98
+ height="18"
99
+ x="396"
100
+ :y="props.adapter.adapterPosition"
101
+ >
102
+ <div>
103
+ <atoms-diagram-icon name="fill-adapter" />
104
+ </div>
105
+ </foreignObject>
106
+
107
+ <foreignObject
108
+ v-else
109
+ data-title="adapter-second-not-connected-icon"
110
+ width="18"
111
+ height="18"
112
+ x="396"
113
+ :y="props.adapter.adapterPosition"
114
+ >
115
+ <div>
116
+ <atoms-diagram-icon name="outline-adapter" />
117
+ </div>
118
+ </foreignObject>
119
+ </g>
120
+ </template>
121
+
122
+ <script setup lang="ts">
123
+ import {
124
+ UI_I_Adapter,
125
+ UI_I_ModalsInitialData,
126
+ UI_I_SelectedAdapter,
127
+ UI_I_SelectedPort,
128
+ } from '~/components/common/diagramMain/models/interfaces'
129
+ import { UI_I_Localization } from '~/models/interfaces'
130
+ import { adapterPopupFieldsFunc } from '~/components/common/diagramMain/modals/config'
131
+ import { dataForSelectedAdapterFunc } from '~/components/common/diagramMain/config'
132
+
133
+ const props = defineProps<{
134
+ adapter: UI_I_Adapter & { adapterPosition: number }
135
+ selectedPort: UI_I_SelectedPort
136
+ selectedAdapter: UI_I_SelectedAdapter
137
+ networksCount: number
138
+ testId: string
139
+ }>()
140
+
141
+ const emits = defineEmits<{
142
+ (event: 'select-adapter', adapterId: string): void
143
+ (
144
+ event: 'show-modal',
145
+ value: string,
146
+ properties?: UI_I_ModalsInitialData
147
+ ): void
148
+ }>()
149
+
150
+ const localization = computed<UI_I_Localization>(() => useLocal())
151
+
152
+ const adapterPopupFields = adapterPopupFieldsFunc(localization.value)
153
+
154
+ const adapterProperties = dataForSelectedAdapterFunc(props.adapter)
155
+
156
+ const adapterSelectionPosition = computed<number>(
157
+ () => props.adapter.adapterPosition - 1.5
158
+ )
159
+
160
+ const isConnectedAdapterToPortOrNetwork = computed<boolean>(() =>
161
+ props.selectedPort.activeAdapters.includes(props.adapter.id)
162
+ )
163
+
164
+ const isSelectedAdapter = computed<boolean>(
165
+ () => props.selectedAdapter.adapterId === props.adapter.id
166
+ )
167
+
168
+ const adapterLinePosition = computed<number>(
169
+ () => props.adapter.adapterPosition + 7.5
170
+ )
171
+
172
+ const adapterIconPosition = computed<number>(
173
+ () => props.adapter.adapterPosition - 3
174
+ )
175
+
176
+ const adapterActionIconPosition = computed<number>(
177
+ () => props.adapter.adapterPosition - 2
178
+ )
179
+
180
+ const isVisibleAdapterLine = computed<boolean>(
181
+ () =>
182
+ (props.selectedPort.activeAdapters.includes(props.adapter.id) ||
183
+ props.selectedAdapter.adapterId === props.adapter.id) &&
184
+ props.adapter.status === 'active' &&
185
+ !!props.networksCount
186
+ )
187
+
188
+ const adapterName = computed<string>(() =>
189
+ props.adapter.status === 'active'
190
+ ? props.adapter.fullName
191
+ : props.adapter.name
192
+ )
193
+
194
+ const onSelectAdapter = (adapterId: string): void => {
195
+ emits('select-adapter', adapterId)
196
+ }
197
+
198
+ const onShowModal = (
199
+ value: string,
200
+ properties?: UI_I_ModalsInitialData
201
+ ): void => {
202
+ emits('show-modal', value, properties)
203
+ }
204
+ </script>
205
+
206
+ <style scoped lang="scss">
207
+ @import '~/assets/scss/common/mixins.scss';
208
+ .diagram {
209
+ &__values {
210
+ @include text($fs: 12px, $fw: 400);
211
+ }
212
+
213
+ &-actions {
214
+ :deep(.diagram-actions__icon) {
215
+ &.tabs-overflow {
216
+ top: -12px;
217
+ right: -13px;
218
+ }
219
+ .navbar-dropdown-menu {
220
+ .navbar-dropdown-menu-item {
221
+ background: red;
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+ </style>
@@ -1,57 +1,57 @@
1
- <template>
2
- <g data-title="adapter-items-group">
3
- <template v-if="props.adaptersWithPositions.toggle">
4
- <template
5
- v-for="(adapter, key) in props.adaptersWithPositions.adapters"
6
- :key="adapter.id"
7
- >
8
- <common-diagram-main-adapter-item
9
- :test-id="`adapter-item-${key}`"
10
- :adapter="adapter"
11
- :selected-port="props.selectedPort"
12
- :selected-adapter="props.selectedAdapter"
13
- :networks-count="props.networksCount"
14
- @select-adapter="onSelectAdapter"
15
- @show-modal="onShowModal"
16
- />
17
- </template>
18
- </template>
19
- </g>
20
- </template>
21
-
22
- <script setup lang="ts">
23
- import {
24
- UI_I_AdaptersWithPositions,
25
- UI_I_ModalsInitialData,
26
- UI_I_SelectedAdapter,
27
- UI_I_SelectedPort,
28
- } from '~/components/common/diagramMain/models/interfaces'
29
-
30
- const props = defineProps<{
31
- adaptersWithPositions: UI_I_AdaptersWithPositions
32
- selectedPort: UI_I_SelectedPort
33
- selectedAdapter: UI_I_SelectedAdapter
34
- networksCount: number
35
- }>()
36
-
37
- const emits = defineEmits<{
38
- (event: 'select-adapter', adapterId: string): void
39
- (
40
- event: 'show-modal',
41
- value: string,
42
- properties?: UI_I_ModalsInitialData
43
- ): void
44
- }>()
45
-
46
- const onSelectAdapter = (adapterId: string): void => {
47
- emits('select-adapter', adapterId)
48
- }
49
- const onShowModal = (
50
- value: string,
51
- properties?: UI_I_ModalsInitialData
52
- ): void => {
53
- emits('show-modal', value, properties)
54
- }
55
- </script>
56
-
57
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <g data-title="adapter-items-group">
3
+ <template v-if="props.adaptersWithPositions.toggle">
4
+ <template
5
+ v-for="(adapter, key) in props.adaptersWithPositions.adapters"
6
+ :key="adapter.id"
7
+ >
8
+ <common-diagram-main-adapter-item
9
+ :test-id="`adapter-item-${key}`"
10
+ :adapter="adapter"
11
+ :selected-port="props.selectedPort"
12
+ :selected-adapter="props.selectedAdapter"
13
+ :networks-count="props.networksCount"
14
+ @select-adapter="onSelectAdapter"
15
+ @show-modal="onShowModal"
16
+ />
17
+ </template>
18
+ </template>
19
+ </g>
20
+ </template>
21
+
22
+ <script setup lang="ts">
23
+ import {
24
+ UI_I_AdaptersWithPositions,
25
+ UI_I_ModalsInitialData,
26
+ UI_I_SelectedAdapter,
27
+ UI_I_SelectedPort,
28
+ } from '~/components/common/diagramMain/models/interfaces'
29
+
30
+ const props = defineProps<{
31
+ adaptersWithPositions: UI_I_AdaptersWithPositions
32
+ selectedPort: UI_I_SelectedPort
33
+ selectedAdapter: UI_I_SelectedAdapter
34
+ networksCount: number
35
+ }>()
36
+
37
+ const emits = defineEmits<{
38
+ (event: 'select-adapter', adapterId: string): void
39
+ (
40
+ event: 'show-modal',
41
+ value: string,
42
+ properties?: UI_I_ModalsInitialData
43
+ ): void
44
+ }>()
45
+
46
+ const onSelectAdapter = (adapterId: string): void => {
47
+ emits('select-adapter', adapterId)
48
+ }
49
+ const onShowModal = (
50
+ value: string,
51
+ properties?: UI_I_ModalsInitialData
52
+ ): void => {
53
+ emits('show-modal', value, properties)
54
+ }
55
+ </script>
56
+
57
+ <style scoped lang="scss"></style>