@ozdao/martyrs 0.2.583 → 0.2.585
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/dist/builder.js +2 -0
- package/dist/{main-vq1_XpmQ.js → main-xL-jtBkT.js} +12 -11
- package/dist/martyrs/dist/{main-vq1_XpmQ.js → main-xL-jtBkT.js} +3 -2
- package/dist/martyrs/dist/main-xL-jtBkT.js.map +1 -0
- package/dist/martyrs/dist/{web-BNJDRie_.js → web-BA6h6Z8P.js} +2 -2
- package/dist/martyrs/dist/{web-BNJDRie_.js.map → web-BA6h6Z8P.js.map} +1 -1
- package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +5 -5
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.js +2 -2
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js +2 -2
- package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js.map +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +61 -42
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/backoffice/backoffice.client.js +3 -15
- package/dist/martyrs/src/modules/backoffice/backoffice.client.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +99 -0
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -0
- package/dist/martyrs/src/modules/backoffice/{backoffice.router.js → router/backoffice.router.js} +9 -7
- package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -0
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +8 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/core/core.client.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js +5 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +22 -28
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js +76 -7
- package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +3 -3
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js +3 -3
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/store/core.store.js +1 -0
- package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +2 -1
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +4 -4
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +7 -7
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/router/orders.router.js +23 -0
- package/dist/martyrs/src/modules/orders/router/orders.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/pages.router.js +7 -5
- package/dist/martyrs/src/modules/pages/pages.router.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/style.css +38 -33
- package/dist/{web-BNJDRie_.js → web-BA6h6Z8P.js} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.rspack.dev.js +2 -0
- package/src/components/Calendar/Calendar.vue +4 -4
- package/src/components/Completion/Completion.vue +3 -3
- package/src/components/Field/Field.vue +1 -1
- package/src/components/FieldBig/FieldBig.vue +1 -1
- package/src/components/FieldDate/FieldDate.vue +1 -1
- package/src/modules/auth/views/components/pages/Profile.vue +33 -5
- package/src/modules/backoffice/backoffice.client.js +1 -25
- package/src/modules/backoffice/configs/navigation.backoffice.config.js +99 -0
- package/src/modules/backoffice/router/backoffice.router.js +8 -7
- package/src/modules/community/components/layouts/Community.vue +2 -2
- package/src/modules/community/components/pages/BlogPost.vue +9 -1
- package/src/modules/core/core.client.js +1 -0
- package/src/modules/core/views/classes/core.app.js +8 -3
- package/src/modules/core/views/components/blocks/CardHeader.vue +1 -1
- package/src/modules/core/views/components/layouts/Client.vue +41 -42
- package/src/modules/core/views/components/pages/404.vue +55 -3
- package/src/modules/core/views/components/partials/Header.vue +1 -1
- package/src/modules/core/views/components/partials/Sidebar.vue +1 -1
- package/src/modules/core/views/components/sections/Filters.vue +2 -2
- package/src/modules/core/views/components/sections/SectionPageTitle.vue +1 -1
- package/src/modules/core/views/store/core.store.js +1 -0
- package/src/modules/core/views/utils/vue-app-renderer.js +9 -1
- package/src/modules/events/components/pages/EditEventTickets.vue +2 -2
- package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
- package/src/modules/inventory/components/pages/Inventory.vue +4 -4
- package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
- package/src/modules/music/components/pages/Playlist.vue +5 -5
- package/src/modules/orders/router/orders.router.js +33 -0
- package/src/modules/organizations/components/blocks/CardOrganization.vue +1 -1
- package/src/modules/pages/pages.router.js +4 -2
- package/src/modules/pages/views/components/pages/PageEdit.vue +2 -2
- package/src/modules/pages/views/components/partials/SidebarPages.vue +1 -1
- package/src/modules/pages/views/router/pages.backoffice.router.js +4 -3
- package/src/modules/products/components/pages/Products.vue +1 -1
- package/src/modules/products/components/sections/EditDiscounts.vue +1 -1
- package/src/modules/products/components/sections/ProductConfigurator.vue +1 -1
- package/src/modules/spots/components/pages/Spots.vue +1 -1
- package/src/modules/wallet/views/components/blocks/CryptoDeposit.vue +1 -1
- package/src/modules/wallet/views/components/pages/Wallet.vue +1 -1
- package/dist/martyrs/dist/main-vq1_XpmQ.js.map +0 -1
- package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/backoffice/backoffice.router.js.map +0 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +0 -150
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +0 -1
- package/src/modules/backoffice/backoffice.router.js +0 -69
- package/src/modules/backoffice/components/partials/Sidebar.vue +0 -165
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
}"
|
|
14
14
|
>
|
|
15
15
|
<transition name="moveFromTop" appear>
|
|
16
|
-
<Loader v-if="!page || store.core.state.loading" :centered="true" class="pos-fixed"/>
|
|
16
|
+
<Loader v-if="!page || store.core.state.loading" :centered="true" class="pos-fixed z-index-10"/>
|
|
17
17
|
</transition>
|
|
18
18
|
|
|
19
19
|
<transition
|
|
@@ -129,21 +129,22 @@
|
|
|
129
129
|
</component>
|
|
130
130
|
<!-- rows-[minmax(0,1fr)] z-index-1 pos-relative w-100 h-100 -->
|
|
131
131
|
<div class="rows-[minmax(0,1fr)] z-index-1 pos-relative w-100 h-100">
|
|
132
|
-
|
|
132
|
+
|
|
133
|
+
<div id="scrollview" ref="scrollview" @scroll="handleScroll" class="o-y-scroll o-x-hidden h-100">
|
|
133
134
|
<Status
|
|
134
135
|
v-if="store.core.state.error.show"
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
136
|
+
:data="store.core.state.error"
|
|
137
|
+
@close="store.core.state.error.show = false"
|
|
138
|
+
class="z-index-7"
|
|
139
|
+
/>
|
|
140
|
+
<Snack
|
|
141
|
+
v-if="store.core.state.snack.show"
|
|
142
|
+
:type="store.core.state.snack.type"
|
|
143
|
+
:message="store.core.state.snack.message"
|
|
144
|
+
:show="store.core.state.snack.show"
|
|
145
|
+
@close="store.core.state.snack.show = false"
|
|
146
|
+
class="z-index-7"
|
|
147
|
+
/>
|
|
147
148
|
<div class="h-min-100 pos-relative w-100">
|
|
148
149
|
<!-- <section v-if="!route.meta?.breadcrumbs?.hide" class="pd-thin pd-b-zero">
|
|
149
150
|
<Breadcrumbs
|
|
@@ -152,41 +153,38 @@
|
|
|
152
153
|
/>
|
|
153
154
|
</section> -->
|
|
154
155
|
|
|
155
|
-
|
|
156
|
-
<router-view
|
|
156
|
+
<Suspense @resolve="onSuspenseResolved">
|
|
157
|
+
<router-view
|
|
157
158
|
id="view"
|
|
158
|
-
v-slot="{ Component, route }"
|
|
159
|
+
v-slot="{ Component, route }"
|
|
159
160
|
:class="{
|
|
160
161
|
'scroll-hide': MOBILE_APP,
|
|
161
162
|
}"
|
|
162
163
|
class="h-min-100 pos-relative w-100"
|
|
163
164
|
>
|
|
164
165
|
<transition @before-enter="scrollTop" name="scaleTransition" mode="out-in" appear>
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
166
|
+
|
|
167
|
+
<div :key="componentKey" class="w-100 h-min-100">
|
|
168
|
+
<component
|
|
169
|
+
ref="page"
|
|
170
|
+
:is="Component"
|
|
171
|
+
class="w-100 h-min-100"
|
|
172
|
+
@page-loading="handlePageLoading"
|
|
173
|
+
@page-loaded="handlePageLoaded"
|
|
174
|
+
/>
|
|
175
|
+
<component
|
|
176
|
+
v-if="!MOBILE_APP && route.meta.footer && !route.meta.hideFooter"
|
|
177
|
+
ref="footer"
|
|
178
|
+
:is="route.meta.footer"
|
|
179
|
+
:theme="route.meta.footer_theme || 'light'"
|
|
180
|
+
:logotype="route.meta.logotype"
|
|
181
|
+
:location="route.meta.location"
|
|
182
|
+
/>
|
|
183
|
+
</div>
|
|
184
|
+
</transition>
|
|
185
|
+
</router-view>
|
|
177
186
|
</Suspense>
|
|
178
187
|
</div>
|
|
179
|
-
|
|
180
|
-
<transition @before-enter="scrollTop" name="scaleTransition" mode="out-in" appear>
|
|
181
|
-
<component
|
|
182
|
-
v-if="!MOBILE_APP && route.meta.footer && !route.meta.hideFooter && page && !store.core.state.loading"
|
|
183
|
-
ref="footer"
|
|
184
|
-
:is="route.meta.footer"
|
|
185
|
-
:theme="route.meta.footer_theme || 'light'"
|
|
186
|
-
:logotype="route.meta.logotype"
|
|
187
|
-
:location="route.meta.location"
|
|
188
|
-
/>
|
|
189
|
-
</transition>
|
|
190
188
|
|
|
191
189
|
<component
|
|
192
190
|
v-if="route.meta.player"
|
|
@@ -221,7 +219,7 @@
|
|
|
221
219
|
|
|
222
220
|
|
|
223
221
|
<script setup>
|
|
224
|
-
import { computed, ref, onMounted
|
|
222
|
+
import { computed, ref, onMounted } from 'vue';
|
|
225
223
|
// Router
|
|
226
224
|
import { useRoute } from 'vue-router';
|
|
227
225
|
// Store
|
|
@@ -233,7 +231,7 @@
|
|
|
233
231
|
import Popup from '@martyrs/src/components/Popup/Popup.vue';
|
|
234
232
|
import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'
|
|
235
233
|
import Loader from '@martyrs/src/components/Loader/Loader.vue';
|
|
236
|
-
|
|
234
|
+
|
|
237
235
|
import NavigationBar from '@martyrs/src/modules/core/views/components/partials/NavigationBar.vue';
|
|
238
236
|
import LocationSelection from '@martyrs/src/modules/core/views/components/partials/LocationSelection.vue';
|
|
239
237
|
|
|
@@ -256,6 +254,7 @@
|
|
|
256
254
|
|
|
257
255
|
const store = useStore()
|
|
258
256
|
|
|
257
|
+
|
|
259
258
|
/////////////////////////////
|
|
260
259
|
// LOADING
|
|
261
260
|
/////////////////////////////
|
|
@@ -1,5 +1,57 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useRouter } from 'vue-router'
|
|
3
|
+
import IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue'
|
|
4
|
+
import IconArrow from '@martyrs/src/modules/icons/navigation/IconArrow.vue'
|
|
5
|
+
import IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue'
|
|
6
|
+
import IconInfo from '@martyrs/src/modules/icons/entities/IconInfo.vue'
|
|
7
|
+
|
|
8
|
+
const router = useRouter()
|
|
9
|
+
const goBack = () => window.history.length > 1 ? router.back() : router.push('/')
|
|
10
|
+
</script>
|
|
11
|
+
|
|
1
12
|
<template>
|
|
2
|
-
<div class="">
|
|
3
|
-
|
|
13
|
+
<div class="pd-thin flex flex-v-center w-100 h-100 ">
|
|
14
|
+
<div class="bg-light w-100 h-100 flex flex-h-center flex-column radius-big pd-medium">
|
|
15
|
+
|
|
16
|
+
<div class="flex flex-v-center gap-thin pd-thin radius-big bg-main w-fit mn-b-medium">
|
|
17
|
+
<span class="i-medium radius-big bg-grey"></span>
|
|
18
|
+
<span class="p-small">Error 404</span>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<h1 class="mn-b-semi">Page not found</h1>
|
|
22
|
+
|
|
23
|
+
<p class="p-medium t-transp w-max-35r mn-b-big" style="line-height: 1.6;">
|
|
24
|
+
The page you are looking for doesn't exist or has been moved. Please check the URL or navigate back to the home page.
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
<div class="flex gap-small mn-b-extra">
|
|
28
|
+
<router-link to="/" class="button bg-black t-white pd-regular radius-small flex flex-v-center gap-thin">
|
|
29
|
+
<IconHome class="i-regular" :fill="'rgb(var(--white))'" />
|
|
30
|
+
<span>Go home</span>
|
|
31
|
+
</router-link>
|
|
32
|
+
<button @click="goBack" class="button bg-white t-black pd-regular radius-small flex flex-v-center gap-thin">
|
|
33
|
+
<IconArrow class="i-regular rotate-180" />
|
|
34
|
+
<span>Go back</span>
|
|
35
|
+
</button>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<div class="pd-t-medium w-max-25r">
|
|
39
|
+
<span class="p-micro t-transp t-upper t-500 ls-wide d-block mn-b-small">Search Documentation</span>
|
|
40
|
+
<div class="field-wrapper bg-white flex flex-v-center radius-small pd-small gap-small">
|
|
41
|
+
<IconSearch class="i-small t-transp" />
|
|
42
|
+
<input type="text" placeholder="e.g. Installation guide..." class="w-100 bd-none" />
|
|
43
|
+
</div>
|
|
44
|
+
<div class="flex gap-medium mn-t-small">
|
|
45
|
+
<a href="#" class="flex flex-v-center gap-micro p-small t-transp"><IconInfo class="i-small" /> Help Center</a>
|
|
46
|
+
<a href="#" class="p-small t-transp">API Status</a>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
</div>
|
|
4
51
|
</div>
|
|
5
|
-
</template>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
<style scoped>
|
|
55
|
+
input { border: none; outline: none; }
|
|
56
|
+
input::placeholder { color: rgba(var(--dark), 0.4); }
|
|
57
|
+
</style>
|
|
@@ -139,7 +139,7 @@ router.beforeEach((to, from) => {
|
|
|
139
139
|
]"
|
|
140
140
|
>
|
|
141
141
|
<span
|
|
142
|
-
class="w-100
|
|
142
|
+
class="w-100 ws-nowrap ease-quint-out t-left fw-medium mn-r-thin"
|
|
143
143
|
:class="{ 'hidden': !stateSidebar, 'visible': stateSidebar }"
|
|
144
144
|
>
|
|
145
145
|
Dark Mode
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="flex o-x-scroll scroll-hide
|
|
2
|
+
<div class="flex o-x-scroll scroll-hide ws-nowrap gap-thin">
|
|
3
3
|
<!-- All Filters Button -->
|
|
4
4
|
<button
|
|
5
5
|
@click="showAllFilters = true"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
:class="{ 'selected bg-main': isFilterActive(filter) }"
|
|
21
21
|
>
|
|
22
22
|
<IconCalendar v-if="filter.type === 'date'" class="mn-r-micro i-regular" />
|
|
23
|
-
<span class="
|
|
23
|
+
<span class="ws-nowrap">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>
|
|
24
24
|
<span v-if="getFilterValue(filter) && filter.type !== 'date'" class="mn-l-micro">
|
|
25
25
|
{{ formatFilterValue(filter) }}
|
|
26
26
|
</span>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
:selected="tabs_current"
|
|
32
32
|
@update:selected="updateTabsCurrent"
|
|
33
33
|
:tabs="tabs"
|
|
34
|
-
class="mn-t-small pd-thin bg-light radius-small w-max
|
|
34
|
+
class="mn-t-small pd-thin bg-light radius-small w-max ws-nowrap o-scroll p-regular"
|
|
35
35
|
/>
|
|
36
36
|
</div>
|
|
37
37
|
</template>
|
|
@@ -269,11 +269,19 @@ export async function render({ url, cookies, headers, ssrContext, createApp }) {
|
|
|
269
269
|
const measure26Total = performance.getEntriesByName('loading-26-total')[0];
|
|
270
270
|
console.log(`[LOADING 26] Total SSR render completed in ${measure26Total?.duration?.toFixed(2)}ms`);
|
|
271
271
|
|
|
272
|
+
// Определяем HTTP статус код:
|
|
273
|
+
// 1. Если store.core.state.notFound === true - 404
|
|
274
|
+
// 2. Если роут называется 'notfound' - 404
|
|
275
|
+
// 3. Иначе - 200
|
|
276
|
+
const statusCode = store.core.state.notFound
|
|
277
|
+
? 404
|
|
278
|
+
: (router.currentRoute?.value?.name?.toLowerCase() === 'notfound' ? 404 : 200);
|
|
279
|
+
|
|
272
280
|
return {
|
|
273
281
|
html,
|
|
274
282
|
meta: payload,
|
|
275
283
|
state: initialState,
|
|
276
|
-
statusCode
|
|
284
|
+
statusCode,
|
|
277
285
|
usedModules: Array.from(ctx.modules || new Set()), // Return used modules
|
|
278
286
|
};
|
|
279
287
|
}
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
v-else
|
|
70
70
|
class="bg-light radius-micro w-2r h-thin"
|
|
71
71
|
></div>
|
|
72
|
-
<p class="p-nano fw-medium
|
|
72
|
+
<p class="p-nano fw-medium ws-nowrap">{{ slot.time }}</p>
|
|
73
73
|
</div>
|
|
74
74
|
</div>
|
|
75
75
|
</div>
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
<section class="bg-black flex-column flex gap-thin pd-thin radius-small">
|
|
196
196
|
<button
|
|
197
197
|
@click="sendTicketEmail(ticket._id)"
|
|
198
|
-
class="w-100
|
|
198
|
+
class="w-100 ws-nowrap bg-black br-1px br-white-transp-20 t-white button-small button"
|
|
199
199
|
>
|
|
200
200
|
Send Email
|
|
201
201
|
</button>
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
class="w-3r h-3r radius-small bg-light object-fit-cover"
|
|
52
52
|
/>
|
|
53
53
|
<PlaceholderImage v-else class="w-3r h-3r radius-small" />
|
|
54
|
-
<p class="truncate
|
|
54
|
+
<p class="truncate ws-nowrap">{{ row.name || 'Unknown Product' }}</p>
|
|
55
55
|
</div>
|
|
56
56
|
</template>
|
|
57
57
|
|
|
@@ -127,13 +127,13 @@
|
|
|
127
127
|
align="right"
|
|
128
128
|
>
|
|
129
129
|
<div class="bg-white radius-small">
|
|
130
|
-
<button @click="openStockAudit(row)" class="cursor-pointer t-left
|
|
130
|
+
<button @click="openStockAudit(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
|
|
131
131
|
Audit Stock
|
|
132
132
|
</button>
|
|
133
|
-
<button @click="openStockHistory(row)" class="cursor-pointer t-left
|
|
133
|
+
<button @click="openStockHistory(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
|
|
134
134
|
Stock History
|
|
135
135
|
</button>
|
|
136
|
-
<button @click="openReorderSettings(row)" class="cursor-pointer t-left
|
|
136
|
+
<button @click="openReorderSettings(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
|
|
137
137
|
Set Alerts
|
|
138
138
|
</button>
|
|
139
139
|
</div>
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
align="right"
|
|
176
176
|
>
|
|
177
177
|
<div class="bg-white radius-small">
|
|
178
|
-
<button @click="leftovers.state.current.positions.splice(index, 1)" class="cursor-pointer t-left
|
|
178
|
+
<button @click="leftovers.state.current.positions.splice(index, 1)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
|
|
179
179
|
Delete
|
|
180
180
|
</button>
|
|
181
181
|
</div>
|
|
@@ -374,8 +374,8 @@ const actionButtons = computed(() => {
|
|
|
374
374
|
{
|
|
375
375
|
type: 'dropdown',
|
|
376
376
|
items: [
|
|
377
|
-
{ text: 'Add to Queue', action: addToQueue, class: '
|
|
378
|
-
{ text: 'Copy Link', action: copyLink, class: '
|
|
377
|
+
{ text: 'Add to Queue', action: addToQueue, class: 'ws-nowrap' },
|
|
378
|
+
{ text: 'Copy Link', action: copyLink, class: 'ws-nowrap' }
|
|
379
379
|
]
|
|
380
380
|
}
|
|
381
381
|
];
|
|
@@ -383,19 +383,19 @@ const actionButtons = computed(() => {
|
|
|
383
383
|
if (isOwner.value || isCollaborator.value) {
|
|
384
384
|
const items = buttons[3].items;
|
|
385
385
|
items.push({ separator: true });
|
|
386
|
-
items.push({ text: 'Edit Playlist', action: editPlaylist, class: '
|
|
386
|
+
items.push({ text: 'Edit Playlist', action: editPlaylist, class: 'ws-nowrap' });
|
|
387
387
|
|
|
388
388
|
if (isOwner.value) {
|
|
389
389
|
items.push({
|
|
390
390
|
text: playlist.value?.isCollaborative ? 'Make Private' : 'Make Collaborative',
|
|
391
391
|
action: toggleCollaborative,
|
|
392
|
-
class: '
|
|
392
|
+
class: 'ws-nowrap'
|
|
393
393
|
});
|
|
394
394
|
items.push({
|
|
395
395
|
text: 'Delete Playlist',
|
|
396
396
|
action: deletePlaylist,
|
|
397
397
|
color: 'danger',
|
|
398
|
-
class: '
|
|
398
|
+
class: 'ws-nowrap'
|
|
399
399
|
});
|
|
400
400
|
}
|
|
401
401
|
}
|
|
@@ -1,9 +1,41 @@
|
|
|
1
1
|
// Use dynamic imports for better code splitting
|
|
2
|
+
import { requiresAuth } from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';
|
|
3
|
+
import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
4
|
+
import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';
|
|
5
|
+
|
|
6
|
+
const { isAdmin } = useGlobalMixins();
|
|
7
|
+
|
|
8
|
+
// Проверка доступа к заказам пользователя
|
|
9
|
+
const checkOrdersAccess = (to) => {
|
|
10
|
+
const context = to.matched[0]?.meta?.context;
|
|
11
|
+
|
|
12
|
+
// User контекст: владелец, модератор или админ
|
|
13
|
+
if (context === 'user') {
|
|
14
|
+
const isOwner = to.params._id === auth.state.user?._id;
|
|
15
|
+
const roles = auth.state.access?.roles || [];
|
|
16
|
+
const isAdminOrMod = isAdmin(roles) || roles.includes('ROLE_MODERATOR');
|
|
17
|
+
if (!isOwner && !isAdminOrMod) {
|
|
18
|
+
return '/401';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Backoffice контекст: только админы
|
|
23
|
+
if (context === 'backoffice') {
|
|
24
|
+
const roles = auth.state.access?.roles || [];
|
|
25
|
+
if (!isAdmin(roles)) {
|
|
26
|
+
return '/401';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Organization контекст - пока пропускаем (там ABAC на бэкенде)
|
|
31
|
+
// Root контекст - публичный
|
|
32
|
+
};
|
|
2
33
|
|
|
3
34
|
const ordersRoutes = [
|
|
4
35
|
{
|
|
5
36
|
path: '',
|
|
6
37
|
name: 'OrdersList',
|
|
38
|
+
beforeEnter: [requiresAuth, checkOrdersAccess],
|
|
7
39
|
component: () => import(/* webpackChunkName: "orders" */ '@martyrs/src/modules/orders/components/pages/Orders.vue'),
|
|
8
40
|
meta: {
|
|
9
41
|
title: {
|
|
@@ -37,6 +69,7 @@ const ordersRoutes = [
|
|
|
37
69
|
{
|
|
38
70
|
path: ':order',
|
|
39
71
|
name: 'Order',
|
|
72
|
+
beforeEnter: [requiresAuth, checkOrdersAccess],
|
|
40
73
|
component: () => import(/* webpackChunkName: "orders" */ '@martyrs/src/modules/orders/components/pages/OrderBackoffice.vue'),
|
|
41
74
|
props: route => ({
|
|
42
75
|
mode: route.matched[0].meta.context === 'backoffice' ? 'edit' : 'view',
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
<div
|
|
71
71
|
v-if="showProducts && organization.products"
|
|
72
|
-
class="mn-b-small
|
|
72
|
+
class="mn-b-small ws-nowrap mn-t-small w-100 flex-nowrap flex flex-v-center pd-small bg-white radius-medium"
|
|
73
73
|
>
|
|
74
74
|
<IconTime class="i-medium t-transp mn-r-micro"/>
|
|
75
75
|
<span class="mn-r-micro">
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import layoutEmpty from '@martyrs/src/modules/core/views/components/layouts/Empty.vue';
|
|
2
|
-
import
|
|
2
|
+
import Navigation from '@martyrs/src/modules/core/views/components/partials/Navigation.vue';
|
|
3
|
+
import { navigationItems } from '@martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js';
|
|
3
4
|
import SidebarPages from './views/components/partials/SidebarPages.vue';
|
|
4
5
|
|
|
5
6
|
function createPublicRoutes(options = {}) {
|
|
@@ -92,7 +93,8 @@ export function getRoutes(options = {}) {
|
|
|
92
93
|
title: {
|
|
93
94
|
en: 'Pages',
|
|
94
95
|
},
|
|
95
|
-
|
|
96
|
+
sidebar_navigation: Navigation,
|
|
97
|
+
sidebar_navigation_items: navigationItems,
|
|
96
98
|
},
|
|
97
99
|
routes: createBackofficeRoutes(options),
|
|
98
100
|
},
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
v-if="route.params.url"
|
|
16
16
|
:submit="() => onDelete()"
|
|
17
17
|
:callback="() => deletePageCallback()"
|
|
18
|
-
class="
|
|
18
|
+
class="ws-nowrap bg-second w-max"
|
|
19
19
|
>
|
|
20
20
|
Delete
|
|
21
21
|
</Button>
|
|
22
22
|
|
|
23
23
|
<Button
|
|
24
24
|
:submit="() => onSubmit()"
|
|
25
|
-
class="mn-l-auto
|
|
25
|
+
class="mn-l-auto ws-nowrap t-white bg-black w-max"
|
|
26
26
|
>
|
|
27
27
|
Save
|
|
28
28
|
</Button>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import Navigation from '@martyrs/src/modules/core/views/components/partials/Navigation.vue';
|
|
2
|
+
import { navigationItems } from '@martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js';
|
|
3
3
|
import SidebarPages from '../components/partials/SidebarPages.vue';
|
|
4
4
|
|
|
5
5
|
const pages = {
|
|
@@ -8,7 +8,8 @@ const pages = {
|
|
|
8
8
|
title: {
|
|
9
9
|
en: 'Pages',
|
|
10
10
|
},
|
|
11
|
-
|
|
11
|
+
sidebar_navigation: Navigation,
|
|
12
|
+
sidebar_navigation_items: navigationItems,
|
|
12
13
|
},
|
|
13
14
|
children: [
|
|
14
15
|
{
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
v-for="category in currentCategories"
|
|
152
152
|
:key="category._id"
|
|
153
153
|
@click="selectCategory(category)"
|
|
154
|
-
class=" flex-child-default bg-light flex
|
|
154
|
+
class=" flex-child-default bg-light flex ws-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease"
|
|
155
155
|
>
|
|
156
156
|
{{ category.name }}
|
|
157
157
|
</div>
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
{ value: 'discount', label: 'Discount (%)' },
|
|
82
82
|
{ value: 'special_price', label: 'Special Price' },
|
|
83
83
|
]"
|
|
84
|
-
class="pos-relative
|
|
84
|
+
class="pos-relative ws-nowrap bg-white gap-small flex flex-column pd-thin radius-thin"
|
|
85
85
|
/>
|
|
86
86
|
</Field>
|
|
87
87
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
>
|
|
62
62
|
<div v-if="isVariantAvailable" class="gap-micro flex flex-center flex-nowrap">
|
|
63
63
|
<IconShopcartAdd class="i-medium"/>
|
|
64
|
-
<span class="
|
|
64
|
+
<span class="ws-nowrap">{{ t('addtoorder') }}</span>
|
|
65
65
|
</div>
|
|
66
66
|
<template v-else>
|
|
67
67
|
<span v-if="!selectedVariant && productVariants.length > 1">Select variant</span>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
v-for="category in currentCategories"
|
|
25
25
|
:key="category._id"
|
|
26
26
|
@click="selectCategory(category)"
|
|
27
|
-
class="flex-child-default bg-light flex
|
|
27
|
+
class="flex-child-default bg-light flex ws-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease"
|
|
28
28
|
>
|
|
29
29
|
{{ category.name }}
|
|
30
30
|
</div>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<Select
|
|
11
11
|
:options="depositOptions"
|
|
12
12
|
v-model:select="state.chosenNetwork"
|
|
13
|
-
class="bg-light
|
|
13
|
+
class="bg-light ws-nowrap pd-r-thin pd-l-thin pd-t-nano pd-b-nano radius-thin"
|
|
14
14
|
/>
|
|
15
15
|
</Field>
|
|
16
16
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<h2>{{state.tokenBalance}} {{ t('wallet.token') }}</h2>
|
|
17
17
|
</div>
|
|
18
18
|
|
|
19
|
-
<button @click="openGetMorePopup" class="
|
|
19
|
+
<button @click="openGetMorePopup" class="ws-nowrap w-max bg-main fw-medium button">Get More</button>
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
<Button
|