adata-ui 0.1.50 → 0.1.53

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,85 +1,184 @@
1
1
  <template>
2
- <header class="a-header" :class="[{'bordered': isBordered}, {'fixed': isFixed}]">
3
- <div class="container">
4
- <div class="a-header__left">
5
- <a class="logo" :href="main[mode]">
6
- <svg class="adata-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 166 48">
7
- <path d="M62.926 38.22v-28h10.316c10.342 0 15.511 4.55 15.508 13.652 0 4.36-1.41 7.843-4.232 10.448-2.822 2.605-6.58 3.907-11.276 3.904l-10.316-.004zm6.56-22.868v17.752h3.248c2.839 0 5.069-.82 6.69-2.46 1.622-1.64 2.43-3.873 2.424-6.7 0-2.667-.8-4.767-2.403-6.3-1.602-1.533-3.853-2.297-6.752-2.292h-3.206zM118.5 38.22h-7.131l-2.079-6.228H98.958l-2.079 6.228h-7.093l10.598-28h7.775l10.341 28zm-10.723-11.072l-3.127-9.416a11.94 11.94 0 01-.486-2.516h-.162c-.07.83-.24 1.649-.508 2.44l-3.168 9.492h7.451zm31.833-11.796h-8.316V38.22h-6.557V15.352h-8.274v-5.136h23.147v5.136zM166 38.22h-7.143l-2.079-6.228h-10.349l-2.05 6.228h-7.106l10.598-28h7.776l10.353 28zm-10.719-11.072l-3.127-9.416a11.94 11.94 0 01-.486-2.516h-.163c-.069.83-.239 1.649-.507 2.44l-3.168 9.492h7.451zM24.553 15.252h-.163c-.069.83-.24 1.649-.507 2.44L20.715 27.2h7.45l-3.126-9.412a12.02 12.02 0 01-.486-2.536z"></path>
8
- <path d="M44.905 0H4.99a5.091 5.091 0 00-3.528 1.406A4.71 4.71 0 000 4.8v38.4a4.71 4.71 0 001.461 3.394A5.091 5.091 0 004.99 48h39.916a5.091 5.091 0 003.528-1.406 4.71 4.71 0 001.462-3.394V4.8a4.71 4.71 0 00-1.462-3.394A5.091 5.091 0 0044.905 0zM31.737 38.26l-2.079-6.232H19.305l-2.05 6.232h-7.097l10.598-28h7.776l10.353 28h-7.148z"></path>
9
- </svg>
10
- </a>
11
- <div class="menu" v-if="subheaderItems.length > 0">
12
- <a v-for="(item, index) in subheaderItems"
13
- :key="index"
14
- class="menu__wrapper menu__items"
15
- :class="{active: item.key === activeTabKey}"
16
- :href="item[mode]"
17
- >
18
- {{ item.name }}
2
+ <header :class="{ sticky: isSticky }">
3
+ <InfoHeader
4
+ :weather="weather"
5
+ :currencies="currencies"
6
+ :system-message="systemMessage"
7
+ :requestCount="requestCount"
8
+ :daysRemaining="daysRemaining"
9
+ :is-open-notification="isOpenNotification"
10
+ :is-authenticated="isAuthenticated"
11
+ @closeNotification="closeNotification"
12
+ />
13
+ <div class="header" :class="{ bordered: isBordered }">
14
+ <div class="container">
15
+ <div class="header__left">
16
+ <a class="logo" :href="main[mode]">
17
+ <svg
18
+ class="adata-logo"
19
+ xmlns="http://www.w3.org/2000/svg"
20
+ viewBox="0 0 166 48"
21
+ >
22
+ <path
23
+ d="M62.926 38.22v-28h10.316c10.342 0 15.511 4.55 15.508 13.652 0 4.36-1.41 7.843-4.232 10.448-2.822 2.605-6.58 3.907-11.276 3.904l-10.316-.004zm6.56-22.868v17.752h3.248c2.839 0 5.069-.82 6.69-2.46 1.622-1.64 2.43-3.873 2.424-6.7 0-2.667-.8-4.767-2.403-6.3-1.602-1.533-3.853-2.297-6.752-2.292h-3.206zM118.5 38.22h-7.131l-2.079-6.228H98.958l-2.079 6.228h-7.093l10.598-28h7.775l10.341 28zm-10.723-11.072l-3.127-9.416a11.94 11.94 0 01-.486-2.516h-.162c-.07.83-.24 1.649-.508 2.44l-3.168 9.492h7.451zm31.833-11.796h-8.316V38.22h-6.557V15.352h-8.274v-5.136h23.147v5.136zM166 38.22h-7.143l-2.079-6.228h-10.349l-2.05 6.228h-7.106l10.598-28h7.776l10.353 28zm-10.719-11.072l-3.127-9.416a11.94 11.94 0 01-.486-2.516h-.163c-.069.83-.239 1.649-.507 2.44l-3.168 9.492h7.451zM24.553 15.252h-.163c-.069.83-.24 1.649-.507 2.44L20.715 27.2h7.45l-3.126-9.412a12.02 12.02 0 01-.486-2.536z"
24
+ ></path>
25
+ <path
26
+ d="M44.905 0H4.99a5.091 5.091 0 00-3.528 1.406A4.71 4.71 0 000 4.8v38.4a4.71 4.71 0 001.461 3.394A5.091 5.091 0 004.99 48h39.916a5.091 5.091 0 003.528-1.406 4.71 4.71 0 001.462-3.394V4.8a4.71 4.71 0 00-1.462-3.394A5.091 5.091 0 0044.905 0zM31.737 38.26l-2.079-6.232H19.305l-2.05 6.232h-7.097l10.598-28h7.776l10.353 28h-7.148z"
27
+ ></path>
28
+ </svg>
19
29
  </a>
30
+ <div class="menu" v-if="headerItems.length > 0">
31
+ <a
32
+ v-for="(item, index) in headerItems"
33
+ :key="index"
34
+ class="menu__wrapper menu__items"
35
+ :class="{ active: item.key === activeTabKey }"
36
+ :href="item[mode]"
37
+ >
38
+ {{ item.name }}
39
+ </a>
40
+ </div>
20
41
  </div>
21
- </div>
22
- <div class="a-header__right">
23
- <slot name="chooseCountry"></slot>
24
- <Profile
25
- v-bind:profileDropDown="profileDropDown"
42
+ <div class="header__right">
43
+ <slot name="chooseCountry"></slot>
44
+ <Profile
45
+ :profileDropDown="profileDropDown"
26
46
  :mode="mode"
27
47
  :isAuthenticated="isAuthenticated"
28
- :requestCount="requestCount"
29
- :daysRemaining="daysRemaining"
30
48
  :email="email"
31
49
  :loginUrl="loginUrl"
32
50
  :activeTabKey="activeTabKey"
33
- @showBalanceModal="(val) => { $emit('showBalanceModal', val) }"
34
- @setShowModal="(val) => { $emit('setShowModal', val) }"
51
+ @showBalanceModal="
52
+ (val) => {
53
+ $emit('showBalanceModal', val);
54
+ }
55
+ "
56
+ @setShowModal="
57
+ (val) => {
58
+ $emit('setShowModal', val);
59
+ }
60
+ "
35
61
  @logout="$emit('logout')"
36
- @setIsReplenishModal="(val) => { $emit('setIsReplenishModal', val) }"
37
- />
38
- <div class="menu_mobile--switcher" @click="changeValue">
39
- <!-- icon_hamburger -->
40
- <svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
41
- <path fill-rule="evenodd" clip-rule="evenodd" d="M2 4h20v2H2V4zm0 14h20v2H2v-2zm0-7h20v2H2v-2z"
42
- fill="#2C3E50"></path>
43
- </svg>
62
+ @setIsReplenishModal="
63
+ (val) => {
64
+ $emit('setIsReplenishModal', val);
65
+ }
66
+ "
67
+ />
68
+ <div class="menu_mobile--switcher" @click="changeValue">
69
+ <!-- icon_hamburger -->
70
+ <svg
71
+ width="24"
72
+ height="24"
73
+ fill="none"
74
+ xmlns="http://www.w3.org/2000/svg"
75
+ viewBox="0 0 24 24"
76
+ >
77
+ <path
78
+ fill-rule="evenodd"
79
+ clip-rule="evenodd"
80
+ d="M2 4h20v2H2V4zm0 14h20v2H2v-2zm0-7h20v2H2v-2z"
81
+ fill="#2C3E50"
82
+ ></path>
83
+ </svg>
84
+ </div>
44
85
  </div>
45
86
  </div>
46
- </div>
47
- <MobileToggle v-slot="{ animationClass }">
48
- <div
87
+ <MobileToggle v-slot="{ animationClass }">
88
+ <div
49
89
  class="menu_mobile"
50
90
  :class="animationClass"
51
- v-show="subheaderItems.length > 0 && isOpen"
52
- >
53
- <div @click.stop="changeValue" class="mobile-table-head">
54
- <!-- close_hamburger -->
55
- <svg width="18" height="18" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
56
- <path fill-rule="evenodd" clip-rule="evenodd" d="M4.414 18.142L18.556 4l1.415 1.414L5.828 19.556l-1.414-1.414z"
57
- fill="#2C3E50"></path>
58
- <path fill-rule="evenodd" clip-rule="evenodd" d="M5.414 4l14.142 14.142-1.414 1.414L4 5.414 5.414 4z"
59
- fill="#2C3E50"></path>
60
- </svg>
61
- </div>
62
- <a
63
- v-for="(item, index) in subheaderItems"
64
- :key="index"
65
- class="menu_mobile-wrapper"
66
- :class="{'active-burger-tab': item.key === activeTabKey}"
67
- :href="item[mode]"
91
+ v-show="headerItems.length > 0 && isOpen"
68
92
  >
69
- {{ item.name }}
70
- </a>
71
- </div>
72
- </MobileToggle>
93
+ <div class="menu-wrapper">
94
+ <div @click.stop="changeValue" class="mobile-table-head">
95
+ <!-- close_hamburger -->
96
+ <svg
97
+ width="18"
98
+ height="18"
99
+ fill="none"
100
+ xmlns="http://www.w3.org/2000/svg"
101
+ viewBox="0 0 24 24"
102
+ >
103
+ <path
104
+ fill-rule="evenodd"
105
+ clip-rule="evenodd"
106
+ d="M4.414 18.142L18.556 4l1.415 1.414L5.828 19.556l-1.414-1.414z"
107
+ fill="#2C3E50"
108
+ ></path>
109
+ <path
110
+ fill-rule="evenodd"
111
+ clip-rule="evenodd"
112
+ d="M5.414 4l14.142 14.142-1.414 1.414L4 5.414 5.414 4z"
113
+ fill="#2C3E50"
114
+ ></path>
115
+ </svg>
116
+ </div>
117
+ <div class="menu__link">
118
+ <a
119
+ v-for="(item, index) in headerItems"
120
+ :key="index"
121
+ class="menu_mobile-wrapper"
122
+ :class="{ 'active-burger-tab': item.key === activeTabKey }"
123
+ :href="item[mode]"
124
+ >
125
+ {{ item.name }}
126
+ </a>
127
+ </div>
128
+ </div>
129
+ <div class="menu-mobile__info">
130
+ <div class="menu-mobile__info-header">
131
+ <span>Валюта</span>
132
+ <span>Покупка</span>
133
+ <span>Продажа</span>
134
+ </div>
135
+ <div class="menu-mobile__info-body">
136
+ <div v-for="(currency, index) in currencies" :key="index" class="menu-mobile__info-row">
137
+ <div class="menu-mobile__info-column">
138
+ <img v-if="currency.currency === 'USD'" src="@/assets/icons/dollor.svg" alt=""/>
139
+ <img v-if="currency.currency === 'EUR'" src="@/assets/icons/euro.svg" alt=""/>
140
+ <img v-if="currency.currency === 'RUB'" src="@/assets/icons/ruble.svg" alt=""/>
141
+ <span>{{ currency.currency }}</span>
142
+ </div>
143
+ <div class="menu-mobile__info-column">
144
+ <span>{{ currency.buy }}</span>
145
+ <img v-if="currency.buy_state === 'DOWN'" src="@/assets/icons/arrow-down.svg" alt=""/>
146
+ <img v-else src="@/assets/icons/arrow-up.svg" alt=""/>
147
+ </div>
148
+ <div class="menu-mobile__info-column">
149
+ <span>{{ currency.sell }}</span>
150
+ <img v-if="currency.sell_state === 'DOWN'" src="@/assets/icons/arrow-down.svg" alt=""/>
151
+ <img v-else src="@/assets/icons/arrow-up.svg" alt=""/>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ <div class="menu-mobile__info-footer">
156
+ <div class="menu-mobile__info-footer-item">
157
+ <span class="menu-mobile__info-footer-title">Cуточный лимит запросов:</span>
158
+ <span class="menu-mobile__info-footer-circle">{{ requestCount }}</span>
159
+ </div>
160
+ <div class="menu-mobile__info-footer-item">
161
+ <span class="menu-mobile__info-footer-title">Остаток дней:</span>
162
+ <span class="menu-mobile__info-footer-circle">{{ daysRemaining }}</span>
163
+ </div>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </MobileToggle>
168
+ </div>
73
169
  </header>
74
170
  </template>
75
171
 
76
172
  <script>
173
+ import { profileDropDown } from "../../configs/profileDropDown";
174
+
77
175
  import Profile from "./Profile";
78
- import { profileDropDown } from "../../configs/profileDropDown"
79
176
  import MobileToggle from "../transitions/VerticalMobileToggle";
177
+ import InfoHeader from "./InfoHeader";
80
178
 
81
179
  export default {
82
180
  components: {
181
+ InfoHeader,
83
182
  Profile,
84
183
  MobileToggle,
85
184
  },
@@ -88,123 +187,196 @@ export default {
88
187
  type: String,
89
188
  required: true,
90
189
  validator: function (value) {
91
- return ['prod', 'dev', 'staging'].indexOf(value) !== -1
92
- }
190
+ return ["prod", "dev", "staging"].indexOf(value) !== -1;
191
+ },
93
192
  },
94
193
  isAuthenticated: {
95
194
  type: Boolean,
96
- default: false
195
+ default: false,
97
196
  },
98
197
  isBordered: {
99
198
  type: Boolean,
100
- default: false
199
+ default: false,
101
200
  },
102
- isFixed: {
201
+ isSticky: {
103
202
  type: Boolean,
104
- default: false
203
+ default: false,
105
204
  },
106
205
  requestCount: {
107
- type: Number,
108
- default: null
206
+ type: [String, Number],
207
+ default: null,
109
208
  },
110
209
  daysRemaining: {
111
- type: String,
112
- default: null
210
+ type: [String, Number],
211
+ default: null,
113
212
  },
114
213
  email: {
115
214
  type: String,
116
- default: ""
215
+ default: "",
117
216
  },
118
217
  loginUrl: {
119
218
  type: String,
120
219
  default: "",
121
- required: true
220
+ required: true,
122
221
  },
123
222
  activeTabKey: {
124
223
  type: String,
125
224
  default: "",
126
- required: true
225
+ required: true,
127
226
  },
128
227
  balance: {
129
228
  type: Number,
130
- default: 0
131
- }
229
+ default: 0,
230
+ },
132
231
  },
133
232
  data() {
134
233
  return {
135
234
  profileDropDown,
136
235
  main: {
137
- dev: 'https://adtdev.kz',
138
- prod: 'https://adata.kz',
139
- staging: 'https://adada.kz'
236
+ dev: "https://adtdev.kz",
237
+ prod: "https://adata.kz",
238
+ staging: "https://adada.kz",
140
239
  },
141
- subheaderItems: [
240
+ headerItems: [
142
241
  {
143
242
  id: 1,
144
243
  name: "Контрагенты",
145
- dev: 'https://pk.adtdev.kz',
146
- prod: 'https://pk.adata.kz',
147
- staging: 'https://pk.adada.kz',
148
- key: 'counterparty'
244
+ dev: "https://pk.adtdev.kz",
245
+ prod: "https://pk.adata.kz",
246
+ staging: "https://pk.adada.kz",
247
+ key: "counterparty",
149
248
  },
150
249
  {
151
250
  id: 2,
152
251
  name: "Тендеры",
153
- dev: 'https://tender.adtdev.kz',
154
- prod: 'https://tender.adata.kz',
155
- staging: 'https://tender.adada.kz',
156
- key: 'tenders'
252
+ dev: "https://tender.adtdev.kz",
253
+ prod: "https://tender.adata.kz",
254
+ staging: "https://tender.adada.kz",
255
+ key: "tenders",
157
256
  },
158
257
  {
159
258
  id: 3,
160
259
  name: "Работа",
161
- dev: 'https://work.adtdev.kz',
162
- prod: 'https://work.adata.kz',
163
- staging: 'https://work.adada.kz',
164
- key: 'work'
260
+ dev: "https://work.adtdev.kz",
261
+ prod: "https://work.adata.kz",
262
+ staging: "https://work.adada.kz",
263
+ key: "work",
165
264
  },
166
265
  {
167
266
  id: 4,
168
267
  name: "Штрафы",
169
- dev: 'https://avto.adtdev.kz',
170
- prod: 'https://avto.adata.kz',
171
- staging: 'https://avto.adada.kz',
172
- key: 'fines'
268
+ dev: "https://avto.adtdev.kz",
269
+ prod: "https://avto.adata.kz",
270
+ staging: "https://avto.adada.kz",
271
+ key: "fines",
173
272
  },
174
273
  {
175
274
  id: 5,
176
275
  name: "Маркетинг",
177
- dev: 'https://marketing.adtdev.kz',
178
- prod: 'https://marketing.adata.kz',
179
- staging: 'https://marketing.adada.kz',
180
- key: 'marketing'
181
- }
276
+ dev: "https://marketing.adtdev.kz",
277
+ prod: "https://marketing.adata.kz",
278
+ staging: "https://marketing.adada.kz",
279
+ key: "marketing",
280
+ },
182
281
  ],
183
- isOpen: false
282
+ isOpen: false,
283
+ weather: null,
284
+ currencies: null,
285
+ systemMessage: null,
286
+ timer: null,
287
+ isOpenNotification: false,
184
288
  };
185
289
  },
290
+
291
+ created() {
292
+ this.fetchCurrencies();
293
+ this.fetchWeather()
294
+ },
186
295
  mounted() {
187
296
  this.setBalance(this.balance);
297
+ this.timer = setTimeout(this.fetchNotification, 3000);
298
+ },
299
+ watch: {
300
+ balance(newBalance) {
301
+ this.setBalance(newBalance);
302
+ },
303
+ isOpenNotification() {
304
+ if(!this.isOpenNotification) {
305
+ clearTimeout(this.timer);
306
+ }
307
+ }
188
308
  },
189
309
  methods: {
310
+ async fetchNotification() {
311
+ try {
312
+ const response = await fetch('https://users.adtdev.kz/api/v1/system-messages/active-list/?module_name=counterparty');
313
+ const { data } = await response.json();
314
+
315
+ if (data.details.length) {
316
+ this.systemMessage = data.details[0].message;
317
+ this.isOpenNotification = true;
318
+ }
319
+
320
+ } catch(e) {
321
+ console.log(e.message)
322
+ }
323
+ },
324
+ async fetchCurrencies() {
325
+ try {
326
+ const response = await fetch('https://users.adata.kz/api/v1/information/currency');
327
+ const { data } = await response.json();
328
+
329
+ if(data.currencies) {
330
+ this.currencies = data.currencies;
331
+ }
332
+
333
+ } catch(e) {
334
+ console.log(e.message)
335
+ }
336
+ },
337
+ async fetchWeather() {
338
+ try {
339
+ const response = await fetch('https://users.adata.kz/api/v1/information/weather');
340
+ const { data } = await response.json();
341
+
342
+ if(data.cities) {
343
+ this.weather = data.cities;
344
+ }
345
+
346
+ } catch(e) {
347
+ console.log(e.message)
348
+ }
349
+ },
350
+ closeNotification(option) {
351
+ this.isOpenNotification = !option
352
+ },
190
353
  changeValue() {
191
- this.isOpen = !this.isOpen
192
- this.$emit('menuOpen', this.isOpen)
354
+ this.isOpen = !this.isOpen;
355
+ this.$emit("menuOpen", this.isOpen);
193
356
  },
194
357
  setBalance(balance) {
195
358
  if (balance !== 0) {
196
- this.profileDropDown[2].name = 'Текущий баланс: ' + this.thousandSeparator(balance) + ' ₸';
359
+ this.profileDropDown[2].name =
360
+ "Текущий баланс: " + this.thousandSeparator(balance) + " ₸";
197
361
  }
198
362
  },
199
363
  thousandSeparator(val) {
200
- return val ? val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " "): '';
364
+ return val ? val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") : "";
365
+ },
366
+ defineIconState(name) {
367
+ return name === "DOWN" ? "@/assets/icons/arrow-down.svg" : "@/assets/icons/arrow-up.svg";
368
+ },
369
+ defineIconEntity(name) {
370
+ switch (name) {
371
+ case 'USD':
372
+ return "@/assets/icons/dollor.svg";
373
+ case 'EUR':
374
+ return "@/assets/icons/euro.svg";
375
+ case 'RUB':
376
+ return "@/assets/icons/ruble.svg";
377
+ }
201
378
  },
202
379
  },
203
- watch: {
204
- balance(newBalance) {
205
- this.setBalance(newBalance);
206
- }
207
- }
208
380
  };
209
381
  </script>
210
382
 
@@ -216,27 +388,25 @@ export default {
216
388
  padding: 0;
217
389
  }
218
390
 
219
- .a-header {
220
- width: 100vw;
391
+ .sticky {
392
+ position: sticky;
393
+ z-index: 1000;
394
+ top: 0;
395
+ }
396
+
397
+ .header {
221
398
  background: #ffffff;
222
399
  max-height: 62px;
223
400
  height: 62px;
224
401
  display: flex;
225
402
  align-items: center;
226
403
  @media (max-width: 1025px) {
227
- border-bottom: 1px solid #2C3E5026;
404
+ border-bottom: 1px solid #2c3e5026;
228
405
  height: 40px;
229
406
  }
230
407
 
231
408
  &.bordered {
232
- border-bottom: 1px solid #2C3E5026;
233
- }
234
-
235
- &.fixed {
236
- position: fixed;
237
- z-index: 1000;
238
- top: 0;
239
- left: 0;
409
+ border-bottom: 1px solid #2c3e5026;
240
410
  }
241
411
 
242
412
  & > .container {
@@ -295,7 +465,7 @@ export default {
295
465
  }
296
466
 
297
467
  &:hover {
298
- color: #9DA3AC;
468
+ color: #9da3ac;
299
469
  cursor: pointer;
300
470
  }
301
471
  }
@@ -310,7 +480,7 @@ export default {
310
480
  height: 26px;
311
481
  display: block;
312
482
  fill: #2c3e50;
313
- @media(max-width: 1025px) {
483
+ @media (max-width: 1025px) {
314
484
  width: 77px;
315
485
  height: 24px;
316
486
  }
@@ -330,7 +500,9 @@ export default {
330
500
  }
331
501
 
332
502
  @media (max-width: 1025px) {
333
- display: block;
503
+ display: flex;
504
+ flex-direction: column;
505
+ justify-content: space-between;
334
506
  .mobile-table-head {
335
507
  padding: 11px 16px;
336
508
  display: flex;
@@ -338,7 +510,7 @@ export default {
338
510
  background: #2c3e500d;
339
511
  }
340
512
  &-wrapper {
341
- border-top: 1px solid #9DA3AC4C;
513
+ border-top: 1px solid #9da3ac4c;
342
514
  padding: 14px 16px;
343
515
  font-weight: 600;
344
516
  font-size: 16px;
@@ -347,7 +519,7 @@ export default {
347
519
  display: block;
348
520
 
349
521
  &:last-child {
350
- border-bottom: 1px solid #9DA3AC4C;
522
+ border-bottom: 1px solid #9da3ac4c;
351
523
  }
352
524
 
353
525
  &.active-burger-tab {
@@ -361,6 +533,72 @@ export default {
361
533
  }
362
534
  }
363
535
  }
536
+
537
+ .menu-mobile__info {
538
+ &-header {
539
+ background: rgba(189, 199, 206, 0.2);
540
+ padding: 4px 16px;
541
+ display: flex;
542
+ justify-content: space-between;
543
+ align-items: center;
544
+ span {
545
+ font-weight: 500;
546
+ font-size: 12px;
547
+ line-height: 20px;
548
+ color: #666C72;
549
+ }
550
+ }
551
+ &-body {
552
+ padding: 8px 16px 16px;
553
+ display: flex;
554
+ flex-direction: column;
555
+ justify-content: space-between;
556
+ gap: 12px;
557
+ }
558
+ &-row {
559
+ display: flex;
560
+ justify-content: space-between;
561
+ align-items: center;
562
+ }
563
+ &-column {
564
+ display: flex;
565
+ align-items: center;
566
+ gap: 8px;
567
+ span {
568
+ font-weight: 500;
569
+ font-size: 14px;
570
+ line-height: 20px;
571
+ color: #2C3E50;
572
+ }
573
+ }
574
+ &-footer {
575
+ background: rgba(189, 199, 206, 0.2);
576
+ padding: 8px 16px;
577
+ display: flex;
578
+ flex-direction: column;
579
+ gap: 10px;
580
+ &-item {
581
+ display: flex;
582
+ justify-content: space-between;
583
+ align-items: center;
584
+ }
585
+ &-title {
586
+ font-weight: 500;
587
+ font-size: 14px;
588
+ line-height: 20px;
589
+ color: #2C3E50;
590
+ }
591
+ &-circle {
592
+ color: #ffffff;
593
+ padding: 4px 12px;
594
+ background: #007AFF;
595
+ border-radius: 100px;
596
+ font-weight: 500;
597
+ font-size: 14px;
598
+ line-height: 20px;
599
+ }
600
+ }
601
+ }
364
602
  }
365
603
 
366
604
  </style>