@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
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
</template>
|
|
9
9
|
|
|
10
10
|
<!-- Task Form -->
|
|
11
|
-
<div class="grid-
|
|
11
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4 mt-4">
|
|
12
12
|
<!-- Event ID -->
|
|
13
13
|
<FormField label="Event ID" :icon="StadiumIcon" required>
|
|
14
14
|
<input
|
|
@@ -43,30 +43,12 @@
|
|
|
43
43
|
</FormField>
|
|
44
44
|
|
|
45
45
|
<!-- Task Amount -->
|
|
46
|
-
<
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
<span class="ml-2 h-[18px]">#</span>
|
|
50
|
-
</label>
|
|
51
|
-
<div class="input-default">
|
|
52
|
-
<input placeholder="20" min="1" type="number" pattern="\d*" v-model="task.taskQuantity" />
|
|
53
|
-
<div class="input-incrementer">
|
|
54
|
-
<button @click="task.taskQuantity++">
|
|
55
|
-
<UpIcon />
|
|
56
|
-
</button>
|
|
57
|
-
<button @click="if (task.taskQuantity > 1) task.taskQuantity--;">
|
|
58
|
-
<DownIcon />
|
|
59
|
-
</button>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
46
|
+
<FormField label="Amount" :icon="HashIcon" incrementer @increment="task.taskQuantity++" @decrement="task.taskQuantity > 1 && task.taskQuantity--">
|
|
47
|
+
<input placeholder="20" min="1" type="number" pattern="\d*" v-model="task.taskQuantity" />
|
|
48
|
+
</FormField>
|
|
63
49
|
|
|
64
50
|
<!-- Profile Tag(s) -->
|
|
65
|
-
<
|
|
66
|
-
<label class="label-override mb-2">
|
|
67
|
-
Profile Tag(s)
|
|
68
|
-
<TagIcon />
|
|
69
|
-
</label>
|
|
51
|
+
<FormField label="Profile Tag(s)" :icon="TagIcon" noWrapper>
|
|
70
52
|
<MultiDropdown
|
|
71
53
|
class="w-full will-change-auto"
|
|
72
54
|
:onSelect="(v) => (task.profileTags = v)"
|
|
@@ -76,7 +58,7 @@
|
|
|
76
58
|
return { label: opt, value: opt };
|
|
77
59
|
})
|
|
78
60
|
" />
|
|
79
|
-
</
|
|
61
|
+
</FormField>
|
|
80
62
|
|
|
81
63
|
<!-- CL Origin -->
|
|
82
64
|
<FormField v-if="isEU(ui.currentCountry.siteId)" label="CL Origin" :icon="AwardIcon">
|
|
@@ -84,11 +66,7 @@
|
|
|
84
66
|
</FormField>
|
|
85
67
|
|
|
86
68
|
<!-- Account Tag -->
|
|
87
|
-
<
|
|
88
|
-
<label class="label-override mb-2">
|
|
89
|
-
Account Tag
|
|
90
|
-
<ScannerIcon />
|
|
91
|
-
</label>
|
|
69
|
+
<FormField label="Account Tag" :icon="ScannerIcon" noWrapper>
|
|
92
70
|
<Dropdown
|
|
93
71
|
:onClick="(f) => (task.accountTag = f)"
|
|
94
72
|
default="Default tag"
|
|
@@ -97,7 +75,7 @@
|
|
|
97
75
|
:allowDefault="false"
|
|
98
76
|
:capitalize="true"
|
|
99
77
|
class="dropdown w-full" />
|
|
100
|
-
</
|
|
78
|
+
</FormField>
|
|
101
79
|
|
|
102
80
|
<!-- Start Offset -->
|
|
103
81
|
<FormField label="Start Offset (Minutes)" :icon="ShieldIcon" incrementer @increment="task.startOffset = (task.startOffset || 0) + 1" @decrement="task.startOffset > 0 && task.startOffset--">
|
|
@@ -111,150 +89,37 @@
|
|
|
111
89
|
</div>
|
|
112
90
|
<div class="mb-3 border border-dark-650" />
|
|
113
91
|
<!-- Task Switches -->
|
|
114
|
-
<div v-if="!isEU(ui.currentCountry.siteId)" class="
|
|
115
|
-
<
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
<
|
|
124
|
-
<h4>
|
|
125
|
-
Manual
|
|
126
|
-
<HandIcon />
|
|
127
|
-
</h4>
|
|
128
|
-
<Switch class="mx-auto" v-model="task.manual" />
|
|
129
|
-
</div>
|
|
130
|
-
<div class="switch-wrapper flex flex-col">
|
|
131
|
-
<h4>
|
|
132
|
-
<span class="hidden xs:block">Do Not Pay</span>
|
|
133
|
-
<span class="block xs:hidden">DNP</span>
|
|
134
|
-
<SavingsIcon />
|
|
135
|
-
</h4>
|
|
136
|
-
<Switch class="mx-auto" v-model="task.doNotPay" />
|
|
137
|
-
</div>
|
|
138
|
-
<div class="switch-wrapper flex flex-col">
|
|
139
|
-
<h4>
|
|
140
|
-
<span class="hidden xs:block">Quick Queue</span>
|
|
141
|
-
<span class="block xs:hidden">Quick Q.</span>
|
|
142
|
-
<SkiIcon />
|
|
143
|
-
</h4>
|
|
144
|
-
<Switch class="mx-auto" v-model="task.quickQueue" />
|
|
145
|
-
</div>
|
|
146
|
-
<div class="switch-wrapper flex flex-col">
|
|
147
|
-
<h4>
|
|
148
|
-
<span class="hidden xs:block">Login Later</span>
|
|
149
|
-
<span class="block xs:hidden">Login Lat.</span>
|
|
150
|
-
|
|
151
|
-
<GroupIcon />
|
|
152
|
-
</h4>
|
|
153
|
-
<Switch class="mx-auto" v-model="task.loginAfterCart" />
|
|
154
|
-
</div>
|
|
155
|
-
<div class="switch-wrapper flex flex-col">
|
|
156
|
-
<h4>
|
|
157
|
-
<span class="hidden xs:block">Smart Timer</span>
|
|
158
|
-
<span class="block xs:hidden">Timer</span>
|
|
159
|
-
<TimerIcon />
|
|
160
|
-
</h4>
|
|
161
|
-
<Switch class="mx-auto" v-model="task.smartTimer" />
|
|
162
|
-
</div>
|
|
163
|
-
<div class="switch-wrapper flex flex-col">
|
|
164
|
-
<h4>
|
|
165
|
-
<span class="hidden xs:block">Supports</span>
|
|
166
|
-
OTP
|
|
167
|
-
<MailIcon class="h-[17px] scale-90" />
|
|
168
|
-
</h4>
|
|
169
|
-
<Switch class="mx-auto" v-model="task.otpAccount" />
|
|
170
|
-
</div>
|
|
171
|
-
<div class="switch-wrapper flex flex-col">
|
|
172
|
-
<h4>
|
|
173
|
-
Presale
|
|
174
|
-
<span class="hidden xs:block">Queue</span>
|
|
175
|
-
<AwardIcon class="scale-90" />
|
|
176
|
-
</h4>
|
|
177
|
-
<Switch class="mx-auto" v-model="task.presaleMode" />
|
|
178
|
-
</div>
|
|
179
|
-
<div class="switch-wrapper flex flex-col">
|
|
180
|
-
<h4>
|
|
181
|
-
Strict
|
|
182
|
-
<span class="hidden xs:block">Presale</span>
|
|
183
|
-
<AwardIcon class="scale-90" />
|
|
184
|
-
</h4>
|
|
185
|
-
<Switch class="mx-auto" v-model="task.presaleStrict" />
|
|
186
|
-
</div>
|
|
92
|
+
<div v-if="!isEU(ui.currentCountry.siteId)" class="grid grid-cols-3 justify-between gap-y-1">
|
|
93
|
+
<TaskToggle class="mb-2" :icon="SandclockIcon" label="Aged Account" responsive-label="Aged" v-model="task.agedAccount" icon-class="" />
|
|
94
|
+
<TaskToggle :icon="HandIcon" label="Manual" v-model="task.manual" icon-class="" />
|
|
95
|
+
<TaskToggle :icon="SavingsIcon" label="Do Not Pay" responsive-label="DNP" v-model="task.doNotPay" icon-class="" />
|
|
96
|
+
<TaskToggle :icon="SkiIcon" label="Quick Queue" responsive-label="Quick Q." v-model="task.quickQueue" icon-class="" />
|
|
97
|
+
<TaskToggle :icon="GroupIcon" label="Login Later" responsive-label="Login Lat." v-model="task.loginAfterCart" icon-class="" />
|
|
98
|
+
<TaskToggle :icon="TimerIcon" label="Smart Timer" responsive-label="Timer" v-model="task.smartTimer" icon-class="" />
|
|
99
|
+
<TaskToggle :icon="MailIcon" label="Supports OTP" responsive-label="OTP" v-model="task.otpAccount" icon-class="h-4.25 scale-90" />
|
|
100
|
+
<TaskToggle :icon="AwardIcon" label="Presale Queue" responsive-label="Presale" v-model="task.presaleMode" />
|
|
101
|
+
<TaskToggle :icon="AwardIcon" label="Strict Presale" responsive-label="Strict" v-model="task.presaleStrict" />
|
|
187
102
|
</div>
|
|
188
103
|
<div v-if="isEU(ui.currentCountry.siteId)">
|
|
189
|
-
<div class="
|
|
190
|
-
<
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
</h4>
|
|
195
|
-
<Switch class="mx-auto" v-model="task.manual" />
|
|
196
|
-
</div>
|
|
197
|
-
<div class="switch-wrapper flex flex-col">
|
|
198
|
-
<h4>
|
|
199
|
-
<span class="hidden xs:block">Do Not Pay</span>
|
|
200
|
-
<span class="block xs:hidden">DNP</span>
|
|
201
|
-
<SavingsIcon class="scale-90" />
|
|
202
|
-
</h4>
|
|
203
|
-
<Switch class="mx-auto" v-model="task.doNotPay" />
|
|
204
|
-
</div>
|
|
205
|
-
<div class="switch-wrapper flex flex-col">
|
|
206
|
-
<h4>
|
|
207
|
-
<span class="hidden xs:block">Smart Timer</span>
|
|
208
|
-
<span class="block xs:hidden">Timer</span>
|
|
209
|
-
<TimerIcon class="scale-90" />
|
|
210
|
-
</h4>
|
|
211
|
-
<Switch class="mx-auto" v-model="task.smartTimer" />
|
|
212
|
-
</div>
|
|
213
|
-
<div class="switch-wrapper flex flex-col">
|
|
214
|
-
<h4>
|
|
215
|
-
<span class="hidden xs:block">Login Later</span>
|
|
216
|
-
<span class="block xs:hidden">Login Lat.</span>
|
|
217
|
-
<GroupIcon class="scale-90" />
|
|
218
|
-
</h4>
|
|
219
|
-
<Switch class="mx-auto" v-model="task.loginAfterCart" />
|
|
220
|
-
</div>
|
|
104
|
+
<div class="mb-4 grid grid-cols-4 justify-between gap-y-4">
|
|
105
|
+
<TaskToggle :icon="HandIcon" label="Manual" v-model="task.manual" />
|
|
106
|
+
<TaskToggle :icon="SavingsIcon" label="Do Not Pay" responsive-label="DNP" v-model="task.doNotPay" />
|
|
107
|
+
<TaskToggle :icon="TimerIcon" label="Smart Timer" responsive-label="Timer" v-model="task.smartTimer" />
|
|
108
|
+
<TaskToggle :icon="GroupIcon" label="Login Later" responsive-label="Login Lat." v-model="task.loginAfterCart" />
|
|
221
109
|
</div>
|
|
222
110
|
|
|
223
|
-
<div class="
|
|
224
|
-
<
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
<span class="block xs:hidden">Quick Q.</span>
|
|
228
|
-
<SkiIcon class="scale-90" />
|
|
229
|
-
</h4>
|
|
230
|
-
<Switch class="mx-auto" v-model="task.quickQueue" />
|
|
231
|
-
</div>
|
|
232
|
-
|
|
233
|
-
<div class="switch-wrapper flex flex-col">
|
|
234
|
-
<h4>
|
|
235
|
-
Supports OTP
|
|
236
|
-
<MailIcon class="h-[17px] scale-90" />
|
|
237
|
-
</h4>
|
|
238
|
-
<Switch class="mx-auto" v-model="task.otpAccount" />
|
|
239
|
-
</div>
|
|
240
|
-
<div class="switch-wrapper flex flex-col">
|
|
241
|
-
<h4>
|
|
242
|
-
Aged
|
|
243
|
-
<span class="hidden xs:block">Account</span>
|
|
244
|
-
<SandclockIcon />
|
|
245
|
-
</h4>
|
|
246
|
-
<Switch class="mx-auto" v-model="task.agedAccount" />
|
|
247
|
-
</div>
|
|
111
|
+
<div class="grid grid-cols-4 justify-between gap-y-4">
|
|
112
|
+
<TaskToggle :icon="SkiIcon" label="Quick Queue" responsive-label="Quick Q." v-model="task.quickQueue" />
|
|
113
|
+
<TaskToggle :icon="MailIcon" label="Supports OTP" v-model="task.otpAccount" icon-class="h-4.25 scale-90" />
|
|
114
|
+
<TaskToggle :icon="SandclockIcon" label="Aged Account" responsive-label="Aged" v-model="task.agedAccount" icon-class="" />
|
|
248
115
|
</div>
|
|
249
116
|
</div>
|
|
250
117
|
|
|
251
118
|
<!-- Task prefab -->
|
|
252
119
|
<div class="my-3 border border-dark-650" />
|
|
253
|
-
<button
|
|
254
|
-
class="button-default ml-auto mt-4 bg-dark-400"
|
|
255
|
-
@click="createTask">
|
|
120
|
+
<button class="btn-modal ml-auto mt-4 w-36" @click="createTask">
|
|
256
121
|
Create
|
|
257
|
-
<EditIcon />
|
|
122
|
+
<EditIcon class="ml-2" />
|
|
258
123
|
</button>
|
|
259
124
|
</Modal>
|
|
260
125
|
</template>
|
|
@@ -263,7 +128,7 @@
|
|
|
263
128
|
import { ref, watch } from "vue";
|
|
264
129
|
import Modal from "@/components/ui/Modal.vue";
|
|
265
130
|
import FormField from "@/components/ui/FormField.vue";
|
|
266
|
-
import
|
|
131
|
+
import TaskToggle from "@/components/ui/TaskToggle.vue";
|
|
267
132
|
import {
|
|
268
133
|
MailIcon,
|
|
269
134
|
CameraIcon,
|
|
@@ -279,17 +144,16 @@ import {
|
|
|
279
144
|
TimerIcon,
|
|
280
145
|
SavingsIcon,
|
|
281
146
|
EditIcon,
|
|
282
|
-
UpIcon,
|
|
283
|
-
DownIcon,
|
|
284
147
|
SandclockIcon,
|
|
285
|
-
CartIcon,
|
|
286
148
|
PencilIcon
|
|
287
149
|
} from "@/components/icons";
|
|
288
150
|
import { useUIStore } from "@/stores/ui";
|
|
289
151
|
import { countries } from "@/stores/countries";
|
|
290
152
|
import Dropdown from "@/components/ui/controls/atomic/Dropdown.vue";
|
|
291
153
|
import MultiDropdown from "@/components/ui/controls/atomic/MultiDropdown.vue";
|
|
292
|
-
import {
|
|
154
|
+
import { firstUpper } from "@/libs/utils/string";
|
|
155
|
+
import { isEU, parseTmEventUrl } from "@/libs/utils/eventUrl";
|
|
156
|
+
import { removeDuplicates } from "@/libs/utils/array";
|
|
293
157
|
|
|
294
158
|
const ui = useUIStore();
|
|
295
159
|
|
|
@@ -388,23 +252,3 @@ watch(
|
|
|
388
252
|
);
|
|
389
253
|
</script>
|
|
390
254
|
|
|
391
|
-
<style lang="scss" scoped>
|
|
392
|
-
.label-override {
|
|
393
|
-
@apply flex items-center;
|
|
394
|
-
color: #e1e1e4 !important;
|
|
395
|
-
|
|
396
|
-
svg {
|
|
397
|
-
@apply ml-2;
|
|
398
|
-
|
|
399
|
-
path {
|
|
400
|
-
fill: #e1e1e4 !important;
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
.switch-wrapper {
|
|
406
|
-
svg path {
|
|
407
|
-
fill: oklch(0.65 0 0) !important;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
</style>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div v-if="content" class="flex items-start gap-1 text-3xs leading-tight-sm min-h-2.75">
|
|
3
|
+
<svg class="icon-sm" width="10" height="10" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
|
4
|
+
<slot name="icon"></slot>
|
|
5
|
+
</svg>
|
|
6
|
+
<span :class="['text-light-500 text-3xs leading-tight-sm', truncate ? 'truncate' : '']">{{ content }}</span>
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script setup>
|
|
11
|
+
defineProps({
|
|
12
|
+
content: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: true
|
|
15
|
+
},
|
|
16
|
+
truncate: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
default: false
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
</script>
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
<Modal>
|
|
3
3
|
<template #header> Mass Edit Presale Code <i class="fa fa-edit ml-3 mt-1"></i> </template>
|
|
4
4
|
<!-- Event ID -->
|
|
5
|
-
<div class="
|
|
6
|
-
<label class="
|
|
5
|
+
<div class="mt-7 mb-4">
|
|
6
|
+
<label class="flex mb-2 label-override">Event ID <StadiumIcon /></label>
|
|
7
7
|
<div class="input-default required">
|
|
8
8
|
<input
|
|
9
9
|
:placeholder="!isEU(ui.currentCountry.siteId) ? '102PDA9125510GYU' : '529171'"
|
|
@@ -12,33 +12,23 @@
|
|
|
12
12
|
</div>
|
|
13
13
|
</div>
|
|
14
14
|
<!-- Presale Code -->
|
|
15
|
-
<div class="
|
|
16
|
-
<label class="
|
|
15
|
+
<div class="mb-8">
|
|
16
|
+
<label class="flex mb-2 label-override">Presale Code <BagIcon /></label>
|
|
17
17
|
<div class="input-default required">
|
|
18
18
|
<input placeholder="presale code" v-model="code" />
|
|
19
19
|
</div>
|
|
20
20
|
</div>
|
|
21
|
-
<button
|
|
22
|
-
class="button-default bg-dark-400 w-48 text-xs flex items-center justify-center gap-x-2 ml-auto border border-light-300 hover:border-light-400"
|
|
23
|
-
@click="done()"
|
|
24
|
-
>
|
|
21
|
+
<button class="btn-modal ml-auto" @click="done()">
|
|
25
22
|
Edit <EditIcon />
|
|
26
23
|
</button>
|
|
27
24
|
</Modal>
|
|
28
25
|
</template>
|
|
29
|
-
<style lang="scss" scoped>
|
|
30
|
-
.input-wrapper {
|
|
31
|
-
label {
|
|
32
|
-
@apply flex;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
</style>
|
|
36
26
|
<script setup>
|
|
37
27
|
import Modal from "@/components/ui/Modal.vue";
|
|
38
28
|
import { StadiumIcon, BagIcon, EditIcon } from "@/components/icons";
|
|
39
29
|
import { useUIStore } from "@/stores/ui";
|
|
40
30
|
import { ref } from "vue";
|
|
41
|
-
import { isEU } from "@/
|
|
31
|
+
import { isEU } from "@/libs/utils/eventUrl";
|
|
42
32
|
|
|
43
33
|
const ui = useUIStore();
|
|
44
34
|
const code = ref("");
|