@necrolab/dashboard 0.5.15 → 0.5.17
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.
- package/backend/api.js +2 -3
- package/eslint.config.js +46 -0
- package/index.html +2 -1
- package/package.json +5 -2
- package/src/App.vue +70 -566
- package/src/assets/css/base/mixins.scss +72 -0
- package/src/assets/css/base/reset.scss +0 -2
- package/src/assets/css/base/scroll.scss +43 -36
- package/src/assets/css/base/typography.scss +9 -10
- package/src/assets/css/base/variables.scss +43 -0
- package/src/assets/css/components/accessibility.scss +37 -0
- package/src/assets/css/components/buttons.scss +61 -74
- package/src/assets/css/components/forms.scss +31 -32
- package/src/assets/css/components/headers.scss +13 -21
- package/src/assets/css/components/modals.scss +2 -2
- package/src/assets/css/components/search-groups.scss +28 -22
- package/src/assets/css/components/tables.scss +5 -7
- package/src/assets/css/components/toasts.scss +7 -7
- package/src/assets/css/components/utilities.scss +295 -0
- package/src/assets/css/main.scss +55 -139
- package/src/components/Auth/LoginForm.vue +7 -86
- package/src/components/Console/ConsoleToolbar.vue +123 -0
- package/src/components/Editors/Account/Account.vue +12 -12
- package/src/components/Editors/Account/AccountView.vue +38 -111
- package/src/components/Editors/Account/CreateAccount.vue +11 -61
- package/src/components/Editors/Account/{AccountCreator.vue → CreateAccountBatch.vue} +28 -59
- package/src/components/Editors/AdminFileEditor.vue +179 -0
- package/src/components/Editors/Profile/CreateProfile.vue +77 -150
- package/src/components/Editors/Profile/Profile.vue +20 -21
- package/src/components/Editors/Profile/ProfileCountryChooser.vue +16 -60
- package/src/components/Editors/Profile/ProfileView.vue +41 -116
- package/src/components/Editors/ProxyFileEditor.vue +86 -0
- package/src/components/Editors/TagLabel.vue +16 -55
- package/src/components/Editors/TagToggle.vue +20 -8
- package/src/components/Filter/Filter.vue +66 -79
- package/src/components/Filter/FilterPreview.vue +153 -135
- package/src/components/Filter/PriceSortToggle.vue +36 -43
- package/src/components/Table/Header.vue +1 -1
- package/src/components/Table/Table.vue +45 -51
- package/src/components/Tasks/CheckStock.vue +7 -16
- package/src/components/Tasks/Controls/DesktopControls.vue +15 -60
- package/src/components/Tasks/Controls/MobileControls.vue +5 -20
- package/src/components/Tasks/CreateTaskAXS.vue +20 -118
- package/src/components/Tasks/CreateTaskTM.vue +33 -189
- package/src/components/Tasks/EventDetailRow.vue +21 -0
- package/src/components/Tasks/MassEdit.vue +6 -16
- package/src/components/Tasks/QuickSettings.vue +140 -216
- package/src/components/Tasks/ScrapeVenue.vue +4 -13
- package/src/components/Tasks/Stats.vue +20 -39
- package/src/components/Tasks/Task.vue +64 -270
- package/src/components/Tasks/TaskLabel.vue +9 -3
- package/src/components/Tasks/TaskView.vue +45 -64
- package/src/components/Tasks/Utilities.vue +10 -44
- package/src/components/Tasks/ViewTask.vue +23 -107
- package/src/components/icons/Close.vue +2 -8
- package/src/components/icons/Gear.vue +8 -8
- package/src/components/icons/Hash.vue +5 -0
- package/src/components/icons/Key.vue +2 -8
- package/src/components/icons/Pencil.vue +2 -8
- package/src/components/icons/Profile.vue +2 -8
- package/src/components/icons/Sell.vue +2 -8
- package/src/components/icons/Spinner.vue +4 -7
- package/src/components/icons/Wildcard.vue +2 -8
- package/src/components/icons/index.js +3 -5
- package/src/components/ui/ActionButtonGroup.vue +113 -52
- package/src/components/ui/BalanceIndicator.vue +60 -0
- package/src/components/ui/EmptyState.vue +24 -0
- package/src/components/ui/EnableDisableToggle.vue +23 -0
- package/src/components/ui/FormField.vue +49 -49
- package/src/components/ui/IconLabel.vue +23 -0
- package/src/components/ui/InfoRow.vue +21 -54
- package/src/components/ui/Modal.vue +161 -54
- package/src/components/ui/Navbar.vue +63 -44
- package/src/components/ui/ReadonlyFieldsSection.vue +31 -0
- package/src/components/ui/ReconnectIndicator.vue +111 -124
- package/src/components/ui/SectionCard.vue +6 -14
- package/src/components/ui/Splash.vue +2 -10
- package/src/components/ui/StatusBadge.vue +26 -28
- package/src/components/ui/TaskToggle.vue +54 -0
- package/src/components/ui/controls/CountryChooser.vue +29 -66
- package/src/components/ui/controls/EyeToggle.vue +1 -1
- package/src/components/ui/controls/atomic/Checkbox.vue +40 -121
- package/src/components/ui/controls/atomic/Dropdown.vue +103 -139
- package/src/components/ui/controls/atomic/MultiDropdown.vue +72 -120
- package/src/components/ui/controls/atomic/Switch.vue +21 -84
- package/src/composables/useCodeEditor.js +117 -0
- package/src/composables/useColorMapping.js +15 -0
- package/src/composables/useCopyToClipboard.js +1 -1
- package/src/composables/useDateFormatting.js +21 -0
- package/src/composables/useDeviceDetection.js +14 -0
- package/src/composables/useDropdownPosition.js +1 -4
- package/src/composables/useDynamicTableHeight.js +31 -0
- package/src/composables/useEnableDisable.js +6 -0
- package/src/composables/useFilterCSS.js +71 -0
- package/src/composables/useFormValidation.js +92 -0
- package/src/composables/useGetAllTags.js +9 -0
- package/src/composables/useIOSViewportHandling.js +76 -0
- package/src/composables/useNotchHandling.js +306 -0
- package/src/composables/useRowSelection.js +0 -3
- package/src/composables/useTableRender.js +23 -0
- package/src/composables/useTicketPricing.js +16 -0
- package/src/composables/useWindowDimensions.js +21 -0
- package/src/composables/useZoomPrevention.js +96 -0
- package/src/constants/tableLayout.js +14 -0
- package/src/libs/Filter.js +14 -20
- package/src/libs/panzoom.js +1 -5
- package/src/libs/utils/array.js +58 -0
- package/src/{stores/utils.js → libs/utils/dataGeneration.js} +2 -250
- package/src/libs/utils/eventUrl.js +40 -0
- package/src/libs/utils/string.js +3 -0
- package/src/libs/utils/time.js +20 -0
- package/src/libs/utils/validation.js +64 -0
- package/src/main.js +0 -2
- package/src/stores/connection.js +1 -29
- package/src/stores/logger.js +6 -12
- package/src/stores/sampleData.js +1 -2
- package/src/stores/ui.js +80 -71
- package/src/utils/tableHelpers.js +1 -0
- package/src/views/Accounts.vue +19 -38
- package/src/views/Console.vue +74 -253
- package/src/views/Editor.vue +47 -1114
- package/src/views/FilterBuilder.vue +190 -461
- package/src/views/Login.vue +3 -28
- package/src/views/Profiles.vue +17 -32
- package/src/views/Tasks.vue +51 -38
- package/tailwind.config.js +82 -71
- package/workbox-config.cjs +47 -5
- package/docs/plans/2026-02-08-tailwind-consolidation.md +0 -2438
- package/exit +0 -209
- package/run +0 -177
- package/src/assets/css/base/color-fallbacks.scss +0 -10
- package/src/assets/img/background.svg.backup +0 -11
- package/src/components/icons/SquareCheck.vue +0 -18
- package/src/components/icons/SquareUncheck.vue +0 -18
- package/src/components/ui/controls/atomic/LoadingButton.vue +0 -45
- package/switch-branch.sh +0 -41
- /package/public/{reconnect-logo.png → img/reconnect-logo.png} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
3
|
<div
|
|
4
|
-
class="dropdown input-default p-
|
|
4
|
+
class="dropdown input-default !rounded-full !p-0 !w-[3em] !h-[3em] flex justify-center items-center !bg-clip-border bg-dark-550"
|
|
5
5
|
ref="dropdownRef"
|
|
6
6
|
@click="toggleOpen"
|
|
7
7
|
>
|
|
@@ -17,42 +17,42 @@
|
|
|
17
17
|
<transition name="fade">
|
|
18
18
|
<div
|
|
19
19
|
v-if="open"
|
|
20
|
-
class="
|
|
20
|
+
class="bg-dark-400 border border-dark-650 rounded-lg shadow-2xl z-50 p-2 !max-h-52 !overflow-y-auto custom-scrollbar-y min-w-20 w-25"
|
|
21
21
|
:style="menuStyle"
|
|
22
22
|
@click.stop
|
|
23
23
|
@wheel.stop
|
|
24
24
|
@touchmove.stop
|
|
25
25
|
>
|
|
26
|
-
<div class="header-item">TM</div>
|
|
26
|
+
<div class="country-header-item">TM</div>
|
|
27
27
|
<div
|
|
28
28
|
v-bind:key="country.id"
|
|
29
29
|
v-for="country in countries.TM"
|
|
30
30
|
class="country-item"
|
|
31
31
|
@click="selectCountry(country, 'TM')"
|
|
32
32
|
>
|
|
33
|
-
<div class="flex items-center justify-center gap-
|
|
34
|
-
<span class="text-xs font-medium">{{
|
|
33
|
+
<div class="flex items-center justify-center gap-1.5 w-full flex-nowrap">
|
|
34
|
+
<span class="text-xs font-medium whitespace-nowrap flex-shrink-0 text-center">{{
|
|
35
35
|
country.siteId.split("_")[1]
|
|
36
36
|
}}</span>
|
|
37
37
|
<img
|
|
38
|
-
class="w-5 h-
|
|
38
|
+
class="w-4.5 h-3.5 flex-shrink-0"
|
|
39
39
|
:src="`/flags/${country.siteId.split('_')[1].toLowerCase()}.svg`"
|
|
40
40
|
/>
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
43
|
-
<div class="header-item">AXS</div>
|
|
43
|
+
<div class="country-header-item">AXS</div>
|
|
44
44
|
<div
|
|
45
45
|
v-bind:key="country.id"
|
|
46
46
|
v-for="country in countries.AXS"
|
|
47
47
|
class="country-item"
|
|
48
48
|
@click="selectCountry(country, 'AXS')"
|
|
49
49
|
>
|
|
50
|
-
<div class="flex items-center justify-center gap-
|
|
51
|
-
<span class="text-xs font-medium">{{
|
|
50
|
+
<div class="flex items-center justify-center gap-1.5 w-full flex-nowrap">
|
|
51
|
+
<span class="text-xs font-medium whitespace-nowrap flex-shrink-0 text-center">{{
|
|
52
52
|
country.siteId.split("_")[1]
|
|
53
53
|
}}</span>
|
|
54
54
|
<img
|
|
55
|
-
class="w-5 h-
|
|
55
|
+
class="w-4.5 h-3.5 flex-shrink-0"
|
|
56
56
|
:src="`/flags/${country.siteId.split('_')[1].toLowerCase()}.svg`"
|
|
57
57
|
/>
|
|
58
58
|
</div>
|
|
@@ -108,74 +108,37 @@ const selectCountry = (country, module) => {
|
|
|
108
108
|
</script>
|
|
109
109
|
|
|
110
110
|
<style scoped>
|
|
111
|
-
.
|
|
112
|
-
@apply min-w-20;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.small-dropdown {
|
|
116
|
-
@apply bg-clip-border rounded-full w-12 h-12 flex justify-center items-center;
|
|
117
|
-
padding: 0;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.dropdown-content-portal {
|
|
121
|
-
@apply bg-dark-400 border border-dark-650 rounded-lg shadow-2xl z-50;
|
|
122
|
-
@apply max-h-52 overflow-y-auto touch-pan-y;
|
|
123
|
-
padding: 0.5rem;
|
|
124
|
-
overscroll-behavior: contain;
|
|
125
|
-
-webkit-overflow-scrolling: touch;
|
|
126
|
-
scrollbar-width: none;
|
|
127
|
-
-ms-overflow-style: none;
|
|
128
|
-
min-width: 100px;
|
|
129
|
-
width: 100px;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.dropdown-content-portal::-webkit-scrollbar {
|
|
133
|
-
display: none;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.header-item {
|
|
111
|
+
.country-header-item {
|
|
137
112
|
@apply text-center text-xs font-bold text-white;
|
|
138
|
-
@apply py-2 px-1 mx-0.5
|
|
113
|
+
@apply py-2 px-1 my-1 mx-0.5;
|
|
114
|
+
@apply cursor-default pointer-events-none;
|
|
115
|
+
@apply border rounded-md tracking-wider;
|
|
139
116
|
@apply flex items-center justify-center;
|
|
140
|
-
@apply pointer-events-none cursor-default;
|
|
141
117
|
@apply relative;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
);
|
|
147
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
148
|
-
letter-spacing: 0.5px;
|
|
149
|
-
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
150
|
-
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
118
|
+
border-color: oklch(0.95 0 0 / 0.1);
|
|
119
|
+
background: linear-gradient(135deg, oklch(0.95 0 0 / 0.08) 0%, oklch(0.95 0 0 / 0.04) 100%);
|
|
120
|
+
text-shadow: 0 1px 2px oklch(0 0 0 / 0.3);
|
|
121
|
+
box-shadow: 0 2px 4px oklch(0 0 0 / 0.1);
|
|
151
122
|
}
|
|
152
123
|
|
|
153
|
-
.header-item:first-
|
|
124
|
+
.country-header-item:first-of-type {
|
|
154
125
|
@apply mt-0.5;
|
|
155
126
|
}
|
|
156
127
|
|
|
157
|
-
.header-item::before {
|
|
158
|
-
content:
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
left: 0;
|
|
162
|
-
right: 0;
|
|
163
|
-
height: 1px;
|
|
164
|
-
background: linear-gradient(
|
|
165
|
-
90deg,
|
|
166
|
-
transparent 0%,
|
|
167
|
-
rgba(255, 255, 255, 0.2) 50%,
|
|
168
|
-
transparent 100%
|
|
169
|
-
);
|
|
170
|
-
border-radius: 6px 6px 0 0;
|
|
128
|
+
.country-header-item::before {
|
|
129
|
+
content: '';
|
|
130
|
+
@apply absolute top-0 left-0 right-0 h-px rounded-t-md;
|
|
131
|
+
background: linear-gradient(90deg, transparent 0%, oklch(0.95 0 0 / 0.2) 50%, transparent 100%);
|
|
171
132
|
}
|
|
172
133
|
|
|
173
134
|
.country-item {
|
|
174
|
-
@apply py-2 px-1 mx-0.5
|
|
175
|
-
@apply cursor-pointer rounded-md
|
|
135
|
+
@apply py-2 px-1 my-px mx-0.5 min-h-8;
|
|
136
|
+
@apply text-sm text-white cursor-pointer rounded-md;
|
|
176
137
|
@apply flex items-center justify-center;
|
|
177
|
-
transition
|
|
138
|
+
@apply transition-all duration-150 ease-in-out;
|
|
178
139
|
}
|
|
179
140
|
|
|
180
|
-
|
|
141
|
+
.country-item:hover {
|
|
142
|
+
@apply bg-dark-650;
|
|
143
|
+
}
|
|
181
144
|
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<button @click="toggle" class="w-22 cursor-pointer">
|
|
2
|
+
<button @click="toggle" class="w-22 cursor-pointer" :aria-label="value ? 'Hide' : 'Show'" :aria-pressed="value">
|
|
3
3
|
<img v-if="value" class="w-5 h-5" src="@/assets/img/eyes/open.svg" alt="Open Eye" />
|
|
4
4
|
<img v-else class="w-5 h-5" src="@/assets/img/eyes/closed.svg" alt="Closed Eye" />
|
|
5
5
|
</button>
|
|
@@ -1,137 +1,56 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
|
-
class="
|
|
3
|
+
class="checkbox-base"
|
|
4
|
+
:class="[
|
|
5
|
+
isHeader ? 'size-4.5 border-dark-550' : 'size-5 border-2 border-dark-700',
|
|
6
|
+
toggled ? 'bg-accent-green border-accent-green hover:bg-accent-green-hover hover:border-accent-green-hover' : 'hover:border-dark-550',
|
|
7
|
+
isHeader && !toggled ? 'hover:border-accent-green hover:bg-accent-green/10' : ''
|
|
8
|
+
]"
|
|
9
|
+
role="checkbox"
|
|
10
|
+
:aria-checked="toggled"
|
|
11
|
+
:aria-label="isHeader ? 'Select all' : 'Select item'"
|
|
4
12
|
@click="
|
|
5
13
|
checked = !checked;
|
|
6
14
|
$emit('valueUpdate', checked);
|
|
7
15
|
"
|
|
8
|
-
:class="{ checked: toggled, 'header-checkbox': isHeader }"
|
|
9
16
|
>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
17
|
+
<!-- Header checkbox indicator -->
|
|
18
|
+
<div
|
|
19
|
+
v-if="isHeader"
|
|
20
|
+
class="size-1.5 rounded-full bg-white transition-all duration-200 ease-out"
|
|
21
|
+
:class="toggled ? 'opacity-100 scale-100' : 'opacity-0 scale-[0.3]'"
|
|
22
|
+
></div>
|
|
23
|
+
|
|
24
|
+
<!-- Row checkbox checkmark -->
|
|
25
|
+
<svg
|
|
26
|
+
v-else
|
|
27
|
+
class="size-2 text-white transition-all duration-200 ease-out hover:[@media(hover:hover)]:scale-110"
|
|
28
|
+
:class="toggled ? 'opacity-100 scale-100' : 'opacity-0 scale-50'"
|
|
29
|
+
viewBox="0 0 24 24"
|
|
30
|
+
fill="none"
|
|
31
|
+
>
|
|
32
|
+
<path
|
|
33
|
+
d="M20 6L9 17L4 12"
|
|
34
|
+
stroke="currentColor"
|
|
35
|
+
stroke-width="3"
|
|
36
|
+
stroke-linecap="round"
|
|
37
|
+
stroke-linejoin="round"
|
|
38
|
+
/>
|
|
39
|
+
</svg>
|
|
32
40
|
</button>
|
|
33
41
|
</template>
|
|
34
|
-
<style lang="scss" scoped>
|
|
35
|
-
.modern-checkbox {
|
|
36
|
-
@apply relative flex items-center justify-center cursor-pointer flex-shrink-0;
|
|
37
|
-
width: 18px;
|
|
38
|
-
height: 18px;
|
|
39
|
-
border-radius: 50%;
|
|
40
|
-
border: 2px solid oklch(0.28 0 0);
|
|
41
|
-
background: transparent;
|
|
42
|
-
transition: all 0.2s ease;
|
|
43
|
-
|
|
44
|
-
&:hover {
|
|
45
|
-
border-color: oklch(0.33 0 0);
|
|
46
|
-
transform: scale(1.05);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&.checked {
|
|
50
|
-
background: oklch(0.72 0.15 145);
|
|
51
|
-
border-color: oklch(0.72 0.15 145);
|
|
52
|
-
|
|
53
|
-
&:hover {
|
|
54
|
-
background: oklch(0.78 0.12 145);
|
|
55
|
-
border-color: oklch(0.78 0.12 145);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
&.header-checkbox {
|
|
60
|
-
width: 16px;
|
|
61
|
-
height: 16px;
|
|
62
|
-
border-color: oklch(0.33 0 0);
|
|
63
|
-
|
|
64
|
-
&:hover {
|
|
65
|
-
border-color: oklch(0.72 0.15 145);
|
|
66
|
-
background: rgba(136, 201, 153, 0.1);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
&.checked {
|
|
70
|
-
background: oklch(0.72 0.15 145);
|
|
71
|
-
border-color: oklch(0.72 0.15 145);
|
|
72
|
-
|
|
73
|
-
&:hover {
|
|
74
|
-
background: oklch(0.78 0.12 145);
|
|
75
|
-
border-color: oklch(0.78 0.12 145);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
&:focus-visible {
|
|
81
|
-
outline: 2px solid oklch(0.72 0.15 145);
|
|
82
|
-
outline-offset: 2px;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.checkbox-inner {
|
|
87
|
-
@apply relative w-full h-full flex items-center justify-center;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.checkmark {
|
|
91
|
-
width: 8px;
|
|
92
|
-
height: 8px;
|
|
93
|
-
color: #ffffff;
|
|
94
|
-
opacity: 0;
|
|
95
|
-
transform: scale(0.5);
|
|
96
|
-
transition: all 0.2s ease;
|
|
97
|
-
|
|
98
|
-
&.visible {
|
|
99
|
-
opacity: 1;
|
|
100
|
-
transform: scale(1);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.header-indicator {
|
|
105
|
-
width: 6px;
|
|
106
|
-
height: 6px;
|
|
107
|
-
background: #ffffff;
|
|
108
|
-
border-radius: 50%;
|
|
109
|
-
opacity: 0;
|
|
110
|
-
transform: scale(0.3);
|
|
111
|
-
transition: all 0.2s ease;
|
|
112
42
|
|
|
113
|
-
&.visible {
|
|
114
|
-
opacity: 1;
|
|
115
|
-
transform: scale(1);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
@media (hover: hover) {
|
|
120
|
-
.modern-checkbox:hover {
|
|
121
|
-
transform: scale(1.05);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.modern-checkbox.checked:hover .checkmark {
|
|
125
|
-
transform: scale(1.1);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
</style>
|
|
129
43
|
<script setup>
|
|
130
|
-
import { CheckmarkIcon } from "@/components/icons";
|
|
131
44
|
import { ref } from "vue";
|
|
132
45
|
const props = defineProps({
|
|
133
|
-
toggled: {
|
|
134
|
-
|
|
46
|
+
toggled: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: false
|
|
49
|
+
},
|
|
50
|
+
isHeader: {
|
|
51
|
+
type: Boolean,
|
|
52
|
+
default: false
|
|
53
|
+
}
|
|
135
54
|
});
|
|
136
55
|
|
|
137
56
|
const checked = ref(props.toggled);
|