|
@@ -1,13 +1,9 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import EventCard from '@/components/NotificationMessageCard/src/components/EventCard.vue'
|
|
|
|
|
import NotificationMessageCard from '@/components/NotificationMessageCard/src/NotificationMessageCard.vue'
|
|
import NotificationMessageCard from '@/components/NotificationMessageCard/src/NotificationMessageCard.vue'
|
|
|
|
|
|
|
|
const collapseVModel = ref<string[]>(['1'])
|
|
const collapseVModel = ref<string[]>(['1'])
|
|
|
|
|
|
|
|
-const unreadCount = ref(33)
|
|
|
|
|
-const readCount = ref(22)
|
|
|
|
|
-const allCount = ref(135)
|
|
|
|
|
-const tabCountList = [2, 1, 99, 0, 23]
|
|
|
|
|
|
|
+const tabCountList = ref([0, 0, 0, 0, 0])
|
|
|
const handleCount = (count: number) => {
|
|
const handleCount = (count: number) => {
|
|
|
if (!count) return 0
|
|
if (!count) return 0
|
|
|
return count > 99 ? '99+' : count
|
|
return count > 99 ? '99+' : count
|
|
@@ -18,304 +14,132 @@ const navList = [
|
|
|
'Departure/Arrival Delay',
|
|
'Departure/Arrival Delay',
|
|
|
'ETD/ETA Change'
|
|
'ETD/ETA Change'
|
|
|
]
|
|
]
|
|
|
-const cardList = [
|
|
|
|
|
- {
|
|
|
|
|
- notificationType: 'event',
|
|
|
|
|
- info: {
|
|
|
|
|
- type: 'milestone',
|
|
|
|
|
- isMultiple: true,
|
|
|
|
|
- numericRecords: 3,
|
|
|
|
|
- isRead: true,
|
|
|
|
|
- title: 'Milestone Update',
|
|
|
|
|
- mode: 'Ocean Freight',
|
|
|
|
|
- no: 'HBOL: SHJN2301234',
|
|
|
|
|
- tag: 'Booking Confirmed',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- time: 'Jan 10, 2025 14:30 UTC+8',
|
|
|
|
|
- info: {
|
|
|
|
|
- route: ['Hong Kong', 'Shanghai', 'Ningbo']
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-]
|
|
|
|
|
-
|
|
|
|
|
-const result = {
|
|
|
|
|
- countList: [2, 1, 99, 0, 33],
|
|
|
|
|
- allCount: 135,
|
|
|
|
|
- unreadCount: 33,
|
|
|
|
|
- readCount: 22,
|
|
|
|
|
- cardList: [
|
|
|
|
|
- {
|
|
|
|
|
- notificationType: 'feature',
|
|
|
|
|
- info: {
|
|
|
|
|
- isRead: true,
|
|
|
|
|
- title: 'Feature Update',
|
|
|
|
|
- header: 'New feature online: Quick search has been released!',
|
|
|
|
|
- content:
|
|
|
|
|
- 'We are pleased to announce that the quick search function is now officially online! You can now quickly find what you need by entering keywords, greatly improving your work efficiency. Go and experience it!'
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- ]
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
const activeItem = ref('Milestone Update')
|
|
const activeItem = ref('Milestone Update')
|
|
|
|
|
+const notificationTypeList = ref({
|
|
|
|
|
+ Milestone_Update: 'Milestone Update',
|
|
|
|
|
+ Container_Status_Update: 'Container Status Update',
|
|
|
|
|
+ Container_Arrival: 'Container Arrival',
|
|
|
|
|
+ 'Departure/Arrival_Delay': 'Departure/Arrival Delay',
|
|
|
|
|
+ 'ETD/ETA_Change': 'ETD/ETA Change',
|
|
|
|
|
+ Feature_Update: 'Feature Update'
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
const setActiveItem = (item: string) => {
|
|
const setActiveItem = (item: string) => {
|
|
|
activeItem.value = item
|
|
activeItem.value = item
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-// const getNotificationList = () => {
|
|
|
|
|
-// $api
|
|
|
|
|
-// .getNotificationList({
|
|
|
|
|
-// rules_type: 'Milestone_Update'
|
|
|
|
|
-// })
|
|
|
|
|
-// .then((res) => {
|
|
|
|
|
-// if (res.code === 200) {
|
|
|
|
|
-// notificationList.value = res.data.info
|
|
|
|
|
-// console.log(res, 'test')
|
|
|
|
|
-// }
|
|
|
|
|
-// })
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ activeName.value = 'All Notifications'
|
|
|
|
|
|
|
|
-const activeName = ref('first')
|
|
|
|
|
|
|
+ getNotificationList()
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-const handleClick = () => {}
|
|
|
|
|
|
|
+const loading = ref(false)
|
|
|
|
|
+const notificationList = ref<any[]>([])
|
|
|
|
|
+const unreadNotificationList = computed(() => {
|
|
|
|
|
+ return notificationList.value.filter((item) => !item.info.isRead)
|
|
|
|
|
+})
|
|
|
|
|
+const readNotificationList = computed(() => {
|
|
|
|
|
+ return notificationList.value.filter((item) => item.info.isRead)
|
|
|
|
|
+})
|
|
|
|
|
+const getNotificationList = () => {
|
|
|
|
|
+ loading.value = true
|
|
|
|
|
+ const rulesType = Object.entries(notificationTypeList.value).find(
|
|
|
|
|
+ (item) => item[1] === activeItem.value
|
|
|
|
|
+ )?.[0]
|
|
|
|
|
+ $api
|
|
|
|
|
+ .getSystemMessageData({
|
|
|
|
|
+ rules_type: rulesType
|
|
|
|
|
+ })
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ const data = res.data
|
|
|
|
|
+ notificationList.value = data.cardList
|
|
|
|
|
+ tabCountList.value = data.countList
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .finally(() => {
|
|
|
|
|
+ loading.value = false
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-// const notificationList = ref<any[]>([])
|
|
|
|
|
-const notificationList = [
|
|
|
|
|
- {
|
|
|
|
|
- type: 'milestone',
|
|
|
|
|
- isMultiple: true,
|
|
|
|
|
- numericRecords: 3,
|
|
|
|
|
- isRead: true,
|
|
|
|
|
- title: 'Milestone Update',
|
|
|
|
|
- mode: 'Ocean Freight',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'Booking Confirmed',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- type: 'container',
|
|
|
|
|
- isRead: false,
|
|
|
|
|
- mode: '',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'Unloaded From Vessel',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- previous: 'Previous: Departure from Shanghai (08:15 UTC+8)'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- type: 'delay',
|
|
|
|
|
- numericRecords: 0,
|
|
|
|
|
- isRead: false,
|
|
|
|
|
- title: 'Delay Daily Summary (Jan 10, 2025)',
|
|
|
|
|
- mode: 'Air Freight',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'Departure Delay',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- info: {
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- departureDelayNum: 10,
|
|
|
|
|
- arrivalDelayNum: 8
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- type: 'container',
|
|
|
|
|
- isRead: false,
|
|
|
|
|
- mode: '',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'Unloaded From Vessel',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- previous: 'Previous: Departure from Shanghai (08:15 UTC+8)'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- type: 'delay',
|
|
|
|
|
- numericRecords: 0,
|
|
|
|
|
- isRead: false,
|
|
|
|
|
- title: 'Delay Daily Summary (Jan 10, 2025)',
|
|
|
|
|
- mode: 'Air Freight',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'Departure Delay',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- info: {
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- departureDelayNum: 10,
|
|
|
|
|
- arrivalDelayNum: 8
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- type: 'container',
|
|
|
|
|
- isRead: false,
|
|
|
|
|
- mode: '',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'Unloaded From Vessel',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- previous: 'Previous: Departure from Shanghai (08:15 UTC+8)'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- type: 'delay',
|
|
|
|
|
- numericRecords: 0,
|
|
|
|
|
- isRead: false,
|
|
|
|
|
- title: 'Delay Daily Summary (Jan 10, 2025)',
|
|
|
|
|
- mode: 'Air Freight',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'Departure Delay',
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- info: {
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai',
|
|
|
|
|
- departureDelayNum: 10,
|
|
|
|
|
- arrivalDelayNum: 8
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- type: 'change',
|
|
|
|
|
- numericRecords: 0,
|
|
|
|
|
- isRead: false,
|
|
|
|
|
- title: 'ETD/ETA Change Weekly Summary (Jan 4- 10, 2025) ',
|
|
|
|
|
- mode: 'Air Freight',
|
|
|
|
|
- no: 'SHJN2301234',
|
|
|
|
|
- tag: 'ETD Change',
|
|
|
|
|
- info: {
|
|
|
|
|
- etdChangeNum: 20,
|
|
|
|
|
- etaChangeNum: 10,
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai'
|
|
|
|
|
- },
|
|
|
|
|
- location: 'Hong Kong',
|
|
|
|
|
- changeTime: 'Updated ETD: Jan 17, 15:00',
|
|
|
|
|
- timeLabel: 'ATA: ',
|
|
|
|
|
- time: '2510-12-1 14:30 UTC+8',
|
|
|
|
|
- timezone: 'Asia/Shanghai'
|
|
|
|
|
- }
|
|
|
|
|
-]
|
|
|
|
|
-// onMounted(() => {
|
|
|
|
|
-// getNotificationList()
|
|
|
|
|
-// })
|
|
|
|
|
|
|
+const activeName = ref('All Notifications')
|
|
|
|
|
|
|
|
-const featureList = [
|
|
|
|
|
- {
|
|
|
|
|
- notificationType: 'feature',
|
|
|
|
|
- info: {
|
|
|
|
|
- isRead: true,
|
|
|
|
|
- title: 'Feature Update',
|
|
|
|
|
- header: 'New feature online: Quick search has been released!',
|
|
|
|
|
- content:
|
|
|
|
|
- 'We are pleased to announce that the quick search function is now officially online! You can now quickly find what you need by entering keywords, greatly improving your work efficiency. Go and experience it!'
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- notificationType: 'feature',
|
|
|
|
|
- info: {
|
|
|
|
|
- isRead: true,
|
|
|
|
|
- title: 'Feature Update',
|
|
|
|
|
- header: 'New feature online: Quick search has been released!',
|
|
|
|
|
- content:
|
|
|
|
|
- 'We are pleased to announce that the quick search function is now officially online! You can now quickly find what you need by entering keywords, greatly improving your work efficiency. Go and experience it!'
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- notificationType: 'feature',
|
|
|
|
|
- info: {
|
|
|
|
|
- isRead: true,
|
|
|
|
|
- title: 'Feature Update',
|
|
|
|
|
- header: 'New feature online: Quick search has been released!',
|
|
|
|
|
- content:
|
|
|
|
|
- 'We are pleased to announce that the quick search function is now officially online! You can now quickly find what you need by entering keywords, greatly improving your work efficiency. Go and experience it!'
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-]
|
|
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ getNotificationList()
|
|
|
|
|
+})
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
<template>
|
|
|
- <div class="Title">System Message</div>
|
|
|
|
|
- <div class="system-message">
|
|
|
|
|
- <div class="left-nav">
|
|
|
|
|
- <el-collapse v-model="collapseVModel">
|
|
|
|
|
- <el-collapse-item title="Event Notifications" name="1">
|
|
|
|
|
- <div
|
|
|
|
|
- @click="setActiveItem(item)"
|
|
|
|
|
- class="collapse-item"
|
|
|
|
|
- :class="{ 'is-active': item === activeItem }"
|
|
|
|
|
- v-for="(item, index) in navList"
|
|
|
|
|
- :key="item"
|
|
|
|
|
- >
|
|
|
|
|
- <div v-if="item === activeItem" class="active-sign"></div>
|
|
|
|
|
- <span>{{ item }}</span>
|
|
|
|
|
- <div class="count">
|
|
|
|
|
- <span>{{ handleCount(tabCountList?.[index]) }}</span>
|
|
|
|
|
|
|
+ <div v-vloading="loading" style="height: 100%; width: 100%">
|
|
|
|
|
+ <div class="Title">System Message</div>
|
|
|
|
|
+ <div class="system-message">
|
|
|
|
|
+ <div class="left-nav">
|
|
|
|
|
+ <el-collapse v-model="collapseVModel">
|
|
|
|
|
+ <el-collapse-item title="Event Notifications" name="1">
|
|
|
|
|
+ <div
|
|
|
|
|
+ @click="setActiveItem(item)"
|
|
|
|
|
+ class="collapse-item"
|
|
|
|
|
+ :class="{ 'is-active': item === activeItem }"
|
|
|
|
|
+ v-for="(item, index) in navList"
|
|
|
|
|
+ :key="item"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div v-if="item === activeItem" class="active-sign"></div>
|
|
|
|
|
+ <span>{{ item }}</span>
|
|
|
|
|
+ <div class="count">
|
|
|
|
|
+ <span>{{ handleCount(tabCountList?.[index]) }}</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ </el-collapse-item>
|
|
|
|
|
+ </el-collapse>
|
|
|
|
|
+ <div
|
|
|
|
|
+ @click="setActiveItem('Feature Update')"
|
|
|
|
|
+ class="collapse-item"
|
|
|
|
|
+ style="margin-top: 4px; font-weight: 700"
|
|
|
|
|
+ :class="{ 'is-active': activeItem === 'Feature Update' }"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div v-if="activeItem === 'Feature Update'" class="active-sign"></div>
|
|
|
|
|
+ <span>Feature Update</span>
|
|
|
|
|
+ <div class="count">
|
|
|
|
|
+ <span>{{ handleCount(tabCountList?.[tabCountList.length - 1]) }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
- </el-collapse-item>
|
|
|
|
|
- </el-collapse>
|
|
|
|
|
- <div
|
|
|
|
|
- @click="setActiveItem('Feature Update')"
|
|
|
|
|
- class="collapse-item"
|
|
|
|
|
- style="margin-top: 4px; font-weight: 700"
|
|
|
|
|
- :class="{ 'is-active': activeItem === 'Feature Update' }"
|
|
|
|
|
- >
|
|
|
|
|
- <div v-if="activeItem === 'Feature Update'" class="active-sign"></div>
|
|
|
|
|
- <span>Feature Update</span>
|
|
|
|
|
- <div class="count">
|
|
|
|
|
- <span>{{ handleCount(tabCountList?.[tabCountList.length - 1]) }}</span>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="right-content">
|
|
|
|
|
- <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
|
|
|
|
- <el-tab-pane label="All Notifications" name="first">
|
|
|
|
|
- <template #label>
|
|
|
|
|
- <span style="margin-right: 4px">All Notifications</span>
|
|
|
|
|
- <div class="count">
|
|
|
|
|
- <span>{{ handleCount(allCount) }}</span>
|
|
|
|
|
|
|
+ <div class="right-content">
|
|
|
|
|
+ <el-tabs v-model="activeName" class="demo-tabs">
|
|
|
|
|
+ <el-tab-pane label="All Notifications" name="All Notifications">
|
|
|
|
|
+ <template #label>
|
|
|
|
|
+ <span style="margin-right: 4px">All Notifications</span>
|
|
|
|
|
+ <div class="count">
|
|
|
|
|
+ <span>{{ handleCount(notificationList.length) }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <div style="padding: 10px 140px 0px 16px">
|
|
|
|
|
+ <NotificationMessageCard :data="notificationList"></NotificationMessageCard>
|
|
|
</div>
|
|
</div>
|
|
|
- </template>
|
|
|
|
|
- <div style="padding: 10px 140px 0px 16px">
|
|
|
|
|
- <NotificationMessageCard :data="cardList"></NotificationMessageCard>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-tab-pane>
|
|
|
|
|
- <el-tab-pane label="Unread" name="second">
|
|
|
|
|
- <template #label>
|
|
|
|
|
- <span style="margin-right: 4px">Unread</span>
|
|
|
|
|
- <div class="count">
|
|
|
|
|
- <span>{{ handleCount(unreadCount) }}</span>
|
|
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
|
+ <el-tab-pane label="Unread" name="Unread">
|
|
|
|
|
+ <template #label>
|
|
|
|
|
+ <span style="margin-right: 4px">Unread</span>
|
|
|
|
|
+ <div class="count">
|
|
|
|
|
+ <span>{{ handleCount(unreadNotificationList.length) }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <div style="padding: 10px 140px 0px 16px">
|
|
|
|
|
+ <NotificationMessageCard :data="unreadNotificationList"></NotificationMessageCard>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
|
+ <el-tab-pane label="Read" name="Read">
|
|
|
|
|
+ <template #label
|
|
|
|
|
+ ><span style="margin-right: 4px">Read</span>
|
|
|
|
|
+ <div class="count">
|
|
|
|
|
+ <span>{{ handleCount(readNotificationList.length) }}</span>
|
|
|
|
|
+ </div></template
|
|
|
|
|
+ >
|
|
|
|
|
+ <div style="padding: 10px 140px 0px 16px">
|
|
|
|
|
+ <NotificationMessageCard :data="readNotificationList"></NotificationMessageCard>
|
|
|
</div>
|
|
</div>
|
|
|
- </template>
|
|
|
|
|
- </el-tab-pane>
|
|
|
|
|
- <el-tab-pane label="Read" name="third">
|
|
|
|
|
- <template #label
|
|
|
|
|
- ><span style="margin-right: 4px">Read</span>
|
|
|
|
|
- <div class="count">
|
|
|
|
|
- <span>{{ handleCount(readCount) }}</span>
|
|
|
|
|
- </div></template
|
|
|
|
|
- >
|
|
|
|
|
- </el-tab-pane>
|
|
|
|
|
- </el-tabs>
|
|
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
|
+ </el-tabs>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -335,11 +159,10 @@ const featureList = [
|
|
|
height: calc(100% - 68px);
|
|
height: calc(100% - 68px);
|
|
|
.count {
|
|
.count {
|
|
|
display: inline-flex;
|
|
display: inline-flex;
|
|
|
- justify-content: center;
|
|
|
|
|
height: 18px;
|
|
height: 18px;
|
|
|
min-width: 18px;
|
|
min-width: 18px;
|
|
|
padding-top: 1px;
|
|
padding-top: 1px;
|
|
|
- padding-left: 4px;
|
|
|
|
|
|
|
+ padding-left: 5px;
|
|
|
padding-right: 5px;
|
|
padding-right: 5px;
|
|
|
background-color: var(--color-theme);
|
|
background-color: var(--color-theme);
|
|
|
border-radius: 9px;
|
|
border-radius: 9px;
|