@necrolab/dashboard 0.4.61 → 0.4.208
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/.prettierrc +1 -27
- package/.vscode/extensions.json +1 -1
- package/README.md +79 -43
- package/backend/api.js +48 -40
- package/backend/auth.js +3 -3
- package/backend/batching.js +1 -1
- package/backend/endpoints.js +77 -13
- package/backend/index.js +2 -2
- package/backend/mock-data.js +38 -29
- package/backend/mock-src/classes/logger.js +8 -8
- package/backend/mock-src/classes/utils.js +3 -7
- package/backend/mock-src/database.js +0 -0
- package/backend/mock-src/ticketmaster.js +79 -79
- package/backend/validator.js +2 -2
- package/config/configs.json +3 -2
- package/config/filter.json +3 -2
- package/index.html +10 -81
- package/index.js +1 -1
- package/package.json +25 -40
- package/postcss.config.js +1 -1
- package/postinstall.js +17 -98
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/manifest.json +7 -12
- package/public/sw.js +2 -0
- package/public/workbox-49fdaf31.js +2 -0
- package/public/workbox-49fdaf31.js.map +1 -0
- package/public/workbox-88575b92.js +2 -0
- package/public/workbox-88575b92.js.map +1 -0
- package/public/workbox-a67a7b11.js +2 -0
- package/public/workbox-a67a7b11.js.map +1 -0
- package/public/workbox-d4314735.js +2 -0
- package/public/workbox-d4314735.js.map +1 -0
- package/public/workbox-e0f89ef3.js +2 -0
- package/public/workbox-e0f89ef3.js.map +1 -0
- package/run +9 -176
- package/src/App.vue +85 -498
- package/src/assets/css/_input.scss +99 -144
- package/src/assets/css/main.scss +99 -450
- package/src/assets/img/background.svg +2 -2
- package/src/assets/img/logo_icon.png +0 -0
- package/src/components/Auth/LoginForm.vue +11 -62
- package/src/components/Editors/Account/Account.vue +40 -116
- package/src/components/Editors/Account/AccountCreator.vue +39 -88
- package/src/components/Editors/Account/AccountView.vue +34 -102
- package/src/components/Editors/Account/CreateAccount.vue +32 -80
- package/src/components/Editors/Profile/CreateProfile.vue +83 -269
- package/src/components/Editors/Profile/Profile.vue +47 -132
- package/src/components/Editors/Profile/ProfileCountryChooser.vue +20 -82
- package/src/components/Editors/Profile/ProfileView.vue +34 -91
- package/src/components/Editors/TagLabel.vue +6 -67
- package/src/components/Filter/Filter.vue +72 -289
- package/src/components/Filter/FilterPreview.vue +30 -171
- package/src/components/Filter/PriceSortToggle.vue +4 -74
- package/src/components/Table/Header.vue +1 -1
- package/src/components/Table/Row.vue +1 -1
- package/src/components/Table/Table.vue +2 -19
- package/src/components/Tasks/CheckStock.vue +13 -28
- package/src/components/Tasks/Controls/DesktopControls.vue +17 -17
- package/src/components/Tasks/Controls/MobileControls.vue +45 -8
- package/src/components/Tasks/CreateTaskAXS.vue +73 -79
- package/src/components/Tasks/CreateTaskTM.vue +142 -94
- package/src/components/Tasks/MassEdit.vue +7 -9
- package/src/components/Tasks/QuickSettings.vue +55 -169
- package/src/components/Tasks/ScrapeVenue.vue +4 -7
- package/src/components/Tasks/Stats.vue +23 -52
- package/src/components/Tasks/Task.vue +136 -378
- package/src/components/Tasks/TaskView.vue +47 -107
- package/src/components/Tasks/Utilities.vue +6 -5
- package/src/components/icons/Bag.vue +1 -1
- package/src/components/icons/Loyalty.vue +1 -1
- package/src/components/icons/Mail.vue +2 -2
- package/src/components/icons/Play.vue +2 -2
- package/src/components/icons/Reload.vue +5 -4
- package/src/components/icons/Sandclock.vue +2 -2
- package/src/components/icons/Stadium.vue +1 -1
- package/src/components/icons/index.js +1 -24
- package/src/components/ui/Modal.vue +13 -105
- package/src/components/ui/Navbar.vue +38 -171
- package/src/components/ui/ReconnectIndicator.vue +55 -351
- package/src/components/ui/Splash.vue +35 -5
- package/src/components/ui/controls/CountryChooser.vue +62 -200
- package/src/components/ui/controls/atomic/Checkbox.vue +10 -119
- package/src/components/ui/controls/atomic/Dropdown.vue +39 -208
- package/src/components/ui/controls/atomic/MultiDropdown.vue +37 -300
- package/src/libs/Filter.js +170 -200
- package/src/registerServiceWorker.js +1 -1
- package/src/stores/connection.js +53 -51
- package/src/stores/logger.js +3 -11
- package/src/stores/sampleData.js +235 -207
- package/src/stores/ui.js +44 -112
- package/src/stores/utils.js +6 -90
- package/src/views/Accounts.vue +35 -44
- package/src/views/Console.vue +90 -341
- package/src/views/Editor.vue +123 -1176
- package/src/views/FilterBuilder.vue +251 -607
- package/src/views/Login.vue +14 -76
- package/src/views/Profiles.vue +25 -44
- package/src/views/Tasks.vue +100 -187
- package/static/offline.html +50 -192
- package/tailwind.config.js +26 -104
- package/vite.config.js +16 -73
- package/vue.config.js +32 -0
- package/workbox-config.js +11 -0
- package/artwork/image.png +0 -0
- package/dev-server.js +0 -136
- package/exit +0 -209
- package/jsconfig.json +0 -16
- package/src/assets/css/_utilities.scss +0 -388
- package/src/assets/img/background.svg.backup +0 -11
- package/src/components/icons/Check.vue +0 -5
- package/src/components/icons/Close.vue +0 -21
- package/src/components/icons/CloseX.vue +0 -5
- package/src/components/icons/Key.vue +0 -21
- package/src/components/icons/Pencil.vue +0 -21
- package/src/components/icons/Profile.vue +0 -18
- package/src/components/icons/Sell.vue +0 -21
- package/src/components/icons/Spinner.vue +0 -42
- package/src/components/icons/SquareCheck.vue +0 -18
- package/src/components/icons/SquareUncheck.vue +0 -18
- package/src/components/icons/Wildcard.vue +0 -18
- package/src/components/ui/controls/atomic/LoadingButton.vue +0 -45
- package/src/composables/useClickOutside.js +0 -21
- package/src/composables/useDropdownPosition.js +0 -174
- package/src/types/index.js +0 -41
- package/src/utils/debug.js +0 -1
- package/switch-branch.sh +0 -41
- package/workbox-config.cjs +0 -63
- /package/src/assets/img/{logo_icon-old.png → logo_icon_2.png} +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="navbar" :class="{ 'force-z': menuOpen }">
|
|
3
|
-
<div :class="
|
|
3
|
+
<div :class="`component-container ios-wrapper flex items-center relative ${landscapeIos ? 'ios-wrapper' : ''}`">
|
|
4
4
|
<!-- Brand -->
|
|
5
|
-
<
|
|
5
|
+
<!-- <h3 class="font-bold text-white mr-4 z-30">Russonoro Labs</h3> -->
|
|
6
|
+
<img src="@/assets/img/logo_trans.png" class="h-6 lg:h-8 mr-4 z-30 object-cover" alt="Logo: Russonoro" />
|
|
6
7
|
<!-- Navlinks -->
|
|
7
8
|
<ul class="hidden lg:flex">
|
|
8
9
|
<li>
|
|
@@ -15,16 +16,18 @@
|
|
|
15
16
|
<router-link to="/console"><ConsoleIcon /><span class="hidden xl:block">Console</span></router-link>
|
|
16
17
|
</li>
|
|
17
18
|
<li>
|
|
18
|
-
<router-link to="/profiles"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
<router-link to="/profiles"
|
|
20
|
+
><img src="/img/groups.svg" class="xl:mr-2" /><span class="hidden xl:block"
|
|
21
|
+
>Profiles</span
|
|
22
|
+
></router-link
|
|
23
|
+
>
|
|
22
24
|
</li>
|
|
23
25
|
<li>
|
|
24
|
-
<router-link to="/accounts"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
<router-link to="/accounts"
|
|
27
|
+
><img src="/img/mail.svg" class="xl:mr-2" /><span class="hidden xl:block"
|
|
28
|
+
>Accounts</span
|
|
29
|
+
></router-link
|
|
30
|
+
>
|
|
28
31
|
</li>
|
|
29
32
|
<li>
|
|
30
33
|
<router-link to="/filter"><FilterIcon /><span class="hidden xl:block">Filter</span></router-link>
|
|
@@ -42,6 +45,7 @@
|
|
|
42
45
|
<h4 v-else class="hidden lg:block text-white text-sm font-medium">
|
|
43
46
|
<span class="text-lightgray">Loading </span>
|
|
44
47
|
</h4>
|
|
48
|
+
<!-- <div class="hidden lg:block w-10 h-10 rounded-full bg-dark-400"></div> -->
|
|
45
49
|
<img
|
|
46
50
|
v-if="ui.profile?.profilePicture"
|
|
47
51
|
:src="ui.profile?.profilePicture"
|
|
@@ -72,16 +76,10 @@
|
|
|
72
76
|
<router-link to="/console"><ConsoleIcon />Console</router-link>
|
|
73
77
|
</li>
|
|
74
78
|
<li @click="toggleMenu">
|
|
75
|
-
<router-link to="/profiles">
|
|
76
|
-
<GroupIcon class="mr-2" />
|
|
77
|
-
Profiles
|
|
78
|
-
</router-link>
|
|
79
|
+
<router-link to="/profiles"><img src="/img/groups.svg" class="mr-2" />Profiles</router-link>
|
|
79
80
|
</li>
|
|
80
81
|
<li @click="toggleMenu">
|
|
81
|
-
<router-link to="/accounts">
|
|
82
|
-
<MailIcon class="mr-2" />
|
|
83
|
-
Accounts
|
|
84
|
-
</router-link>
|
|
82
|
+
<router-link to="/accounts"><img src="/img/mail.svg" class="mr-2" />Accounts</router-link>
|
|
85
83
|
</li>
|
|
86
84
|
<li @click="toggleMenu">
|
|
87
85
|
<router-link to="/filter"><FilterIcon />Filter</router-link>
|
|
@@ -97,21 +95,12 @@
|
|
|
97
95
|
<span class="text-lightgray">Logged in as </span>
|
|
98
96
|
<span class="font-black"> {{ ui.profile?.name }}</span>
|
|
99
97
|
</h4>
|
|
98
|
+
<!-- <div class="w-10 h-10 rounded-full bg-light-300"></div> -->
|
|
100
99
|
<img :src="ui.profile?.profilePicture" alt="" class="h-10 w-10 rounded-full" />
|
|
101
100
|
</div>
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
class="bg-gradient-to-r from-dark-400 to-dark-500 rounded-full text-sm shadow-lg p-2 px-4 text-white font-medium border border-light-300"
|
|
106
|
-
>
|
|
107
|
-
Dashboard v{{ dashVersion }}
|
|
108
|
-
</div>
|
|
109
|
-
<div
|
|
110
|
-
class="bg-gradient-to-r from-dark-400 to-dark-500 rounded-full text-sm shadow-lg p-2 px-4 text-white font-medium border border-light-300"
|
|
111
|
-
>
|
|
112
|
-
Bot v{{ ui.botVersion }}
|
|
113
|
-
</div>
|
|
114
|
-
</div>
|
|
101
|
+
<span class="bg-dark-500 rounded-full text-sm shadow-lg p-2 px-3 text-light-400 mx-auto mt-6 mb-14"
|
|
102
|
+
>v{{ version }}</span
|
|
103
|
+
>
|
|
115
104
|
</div>
|
|
116
105
|
</transition>
|
|
117
106
|
</div>
|
|
@@ -120,152 +109,39 @@
|
|
|
120
109
|
.navbar {
|
|
121
110
|
@apply border-b py-5 fixed w-full;
|
|
122
111
|
top: 0;
|
|
123
|
-
|
|
124
|
-
z-index: 1000;
|
|
125
|
-
background: rgba(26, 27, 30, 0.95);
|
|
112
|
+
z-index: 1;
|
|
126
113
|
backdrop-filter: blur(23px);
|
|
127
|
-
-
|
|
128
|
-
border-color: #3d3e44;
|
|
129
|
-
|
|
130
|
-
// Consistent padding base
|
|
131
|
-
padding-top: 1.25rem;
|
|
132
|
-
padding-bottom: 1.25rem;
|
|
133
|
-
|
|
134
|
-
// Only add safe area top padding for portrait notch devices
|
|
135
|
-
@supports (padding-top: env(safe-area-inset-top)) {
|
|
136
|
-
@media (max-device-width: 430px) and (orientation: portrait) {
|
|
137
|
-
padding-top: max(1.25rem, env(safe-area-inset-top));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Extend background above viewport for notch area with theme gradient
|
|
142
|
-
&::before {
|
|
143
|
-
content: "";
|
|
144
|
-
position: absolute;
|
|
145
|
-
top: -100px;
|
|
146
|
-
left: 0;
|
|
147
|
-
right: 0;
|
|
148
|
-
height: 100px;
|
|
149
|
-
background: #1a1b1e;
|
|
150
|
-
backdrop-filter: blur(8px);
|
|
151
|
-
-webkit-backdrop-filter: blur(8px);
|
|
152
|
-
z-index: -1;
|
|
153
|
-
}
|
|
154
|
-
|
|
114
|
+
border-color: #323340;
|
|
155
115
|
ul {
|
|
156
116
|
@apply gap-x-4;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
width: 20px !important;
|
|
161
|
-
height: 20px !important;
|
|
162
|
-
display: block !important;
|
|
163
|
-
flex-shrink: 0 !important;
|
|
164
|
-
box-sizing: border-box !important;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
li a {
|
|
168
|
-
@apply flex text-white text-sm items-center rounded-lg;
|
|
169
|
-
height: 40px;
|
|
170
|
-
border: 1px solid transparent;
|
|
171
|
-
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
172
|
-
position: relative;
|
|
173
|
-
|
|
174
|
-
svg {
|
|
175
|
-
@apply mr-2;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
&.router-link-exact-active {
|
|
179
|
-
border-color: #e2e2e5;
|
|
180
|
-
border-top: 2px solid #e2e2e5;
|
|
181
|
-
transform: translateY(0px);
|
|
182
|
-
box-shadow: 0 2px 4px rgba(226, 226, 229, 0.1);
|
|
183
|
-
margin-top: -2px;
|
|
184
|
-
|
|
185
|
-
// Mobile styling
|
|
186
|
-
@media (max-width: 1023px) {
|
|
187
|
-
border: 1px solid #e2e2e5;
|
|
188
|
-
transform: translateY(0px);
|
|
189
|
-
box-shadow: 0 2px 4px rgba(226, 226, 229, 0.1);
|
|
190
|
-
margin-top: 0;
|
|
191
|
-
padding: 0.5rem 0.75rem;
|
|
192
|
-
border-radius: 0.5rem;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// Desktop mode (lg to xl): icon-only view with perfect centering
|
|
198
|
-
@media (min-width: 1024px) and (max-width: 1279px) {
|
|
199
|
-
li a {
|
|
200
|
-
width: 40px;
|
|
201
|
-
height: 40px;
|
|
202
|
-
padding: 0 !important;
|
|
203
|
-
display: flex !important;
|
|
204
|
-
align-items: center !important;
|
|
205
|
-
justify-content: center !important;
|
|
206
|
-
position: relative;
|
|
207
|
-
|
|
208
|
-
// Hide text completely in icon-only mode
|
|
209
|
-
span {
|
|
210
|
-
display: none !important;
|
|
211
|
-
}
|
|
212
|
-
|
|
117
|
+
li {
|
|
118
|
+
a {
|
|
119
|
+
@apply flex text-white text-sm border-none h-10 items-center px-4 rounded-lg;
|
|
213
120
|
svg {
|
|
214
|
-
|
|
215
|
-
padding: 0 !important;
|
|
216
|
-
position: absolute;
|
|
217
|
-
top: 50%;
|
|
218
|
-
left: 50%;
|
|
219
|
-
transform: translate(-50%, -50%);
|
|
121
|
+
@apply mr-2;
|
|
220
122
|
}
|
|
221
|
-
|
|
222
123
|
&.router-link-exact-active {
|
|
223
|
-
border
|
|
224
|
-
border-radius: 0.5rem !important;
|
|
225
|
-
width: 40px !important;
|
|
226
|
-
height: 40px !important;
|
|
227
|
-
background: rgba(226, 226, 229, 0.05) !important;
|
|
228
|
-
transform: translateY(-1px) !important;
|
|
229
|
-
box-shadow: 0 2px 4px rgba(226, 226, 229, 0.1) !important;
|
|
230
|
-
margin-top: 0 !important;
|
|
231
|
-
|
|
232
|
-
svg {
|
|
233
|
-
transform: translate(-50%, calc(-50% - 1px));
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// XL and above: full width with text
|
|
240
|
-
@media (min-width: 1280px) {
|
|
241
|
-
li a {
|
|
242
|
-
@apply px-4;
|
|
243
|
-
height: 40px;
|
|
244
|
-
|
|
245
|
-
svg {
|
|
246
|
-
@apply mr-2;
|
|
124
|
+
@apply border-solid border border-light-300;
|
|
247
125
|
}
|
|
248
126
|
}
|
|
249
127
|
}
|
|
250
128
|
}
|
|
251
129
|
}
|
|
252
|
-
|
|
253
130
|
.force-z {
|
|
254
131
|
z-index: 20000;
|
|
255
132
|
}
|
|
256
|
-
|
|
257
133
|
.mobile-menu {
|
|
258
|
-
margin-top:
|
|
259
|
-
height: 100vh;
|
|
260
|
-
height: 100dvh; // Dynamic viewport height for mobile
|
|
134
|
+
margin-top: -81px; // Tuck under Nav
|
|
135
|
+
height: calc(100vh + 40px);
|
|
261
136
|
will-change: transform, opacity, filter;
|
|
262
|
-
@apply bg-dark-400 fixed inset-0 pt-20 pb-8 w-full z-10;
|
|
263
|
-
|
|
264
|
-
ul li {
|
|
265
|
-
@apply mb-4 mx-auto;
|
|
266
137
|
|
|
267
|
-
|
|
268
|
-
|
|
138
|
+
@apply bg-dark-400 absolute pt-16 pb-8 w-full z-10;
|
|
139
|
+
ul {
|
|
140
|
+
li {
|
|
141
|
+
@apply mb-4 mx-auto;
|
|
142
|
+
a {
|
|
143
|
+
font-size: 20px !important;
|
|
144
|
+
}
|
|
269
145
|
}
|
|
270
146
|
}
|
|
271
147
|
}
|
|
@@ -274,16 +150,7 @@
|
|
|
274
150
|
<script setup>
|
|
275
151
|
import { storeToRefs } from "pinia";
|
|
276
152
|
import { ref } from "vue";
|
|
277
|
-
import {
|
|
278
|
-
EditIcon,
|
|
279
|
-
ConsoleIcon,
|
|
280
|
-
TasksIcon,
|
|
281
|
-
LogoutIcon,
|
|
282
|
-
MenuIcon,
|
|
283
|
-
FilterIcon,
|
|
284
|
-
GroupIcon,
|
|
285
|
-
MailIcon
|
|
286
|
-
} from "@/components/icons";
|
|
153
|
+
import { EditIcon, ConsoleIcon, TasksIcon, LogoutIcon, MenuIcon, FilterIcon } from "@/components/icons";
|
|
287
154
|
import { useUIStore } from "@/stores/ui";
|
|
288
155
|
import router from "@/router/index";
|
|
289
156
|
import CountryChooser from "@/components/ui/controls/CountryChooser.vue";
|
|
@@ -308,7 +175,7 @@ window.matchMedia("(orientation: portrait)").addEventListener("change", (e) => {
|
|
|
308
175
|
else landscapeIos.value = false;
|
|
309
176
|
});
|
|
310
177
|
|
|
311
|
-
const
|
|
178
|
+
const version = __APP_VERSION__;
|
|
312
179
|
const ui = useUIStore();
|
|
313
180
|
const menuOpen = storeToRefs(ui).menuOpen;
|
|
314
181
|
const toggleMenu = () => {
|