@ozdao/martyrs 0.2.546 → 0.2.548
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/auth.server.cjs +9 -9
- package/dist/auth.server.js +9 -9
- package/dist/builder.cjs +12 -751
- package/dist/builder.js +21 -721
- package/dist/chats.server.cjs +61 -59
- package/dist/chats.server.js +61 -59
- package/dist/{common.schema-BzFEVNn3.cjs → common.schema-BtXLULba.cjs} +2 -2
- package/dist/{common.schema-Bw1O5_2Q.js → common.schema-GFSlNJo7.js} +2 -2
- package/dist/community.server.cjs +10 -10
- package/dist/community.server.js +10 -10
- package/dist/{credentials.schema-C9FB2EyY.js → credentials.schema--2vvcu8c.js} +2 -2
- package/dist/{credentials.schema-DwhGdrwC.cjs → credentials.schema-DVXaFnXl.cjs} +2 -2
- package/dist/{crud-Ed3dcRsC.js → crud-D_snnl2K.js} +78 -2
- package/dist/{crud-DGM6Xa1R.cjs → crud-pedHI2by.cjs} +78 -2
- package/dist/{engagement.schema-JADHu8pj.cjs → engagement.schema-DHw4iY_W.cjs} +2 -2
- package/dist/{engagement.schema-Dh1adRsn.js → engagement.schema-fh6W1fb_.js} +2 -2
- package/dist/events.server.cjs +452 -11
- package/dist/events.server.js +433 -9
- package/dist/files.server.cjs +2 -2
- package/dist/files.server.js +2 -2
- package/dist/gallery.server.cjs +5 -5
- package/dist/gallery.server.js +5 -5
- package/dist/globals.server.cjs +11 -373
- package/dist/globals.server.js +11 -356
- package/dist/globals.websocket-C2FxNmZ1.js +357 -0
- package/dist/globals.websocket-Cm72lPCs.cjs +374 -0
- package/dist/inventory.server.cjs +4 -5
- package/dist/inventory.server.js +2 -3
- package/dist/main-DvjCsGb1.cjs +11 -0
- package/dist/{main-d9n_ibdE.js → main-q-y0Lhcy.js} +28 -28
- package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.cjs +8 -8
- package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.cjs.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.js +8 -8
- package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.js.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.cjs +2 -2
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.cjs.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.js +2 -2
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.js.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.cjs +2 -2
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.cjs.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.js +2 -2
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.js.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.cjs +8 -8
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.cjs.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.js +8 -8
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.js.map +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +3 -3
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +3 -3
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs +1 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.js +1 -1
- package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs +4 -4
- package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Countdown/Countdown.vue.js +4 -4
- package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.cjs +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.js +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.cjs +2 -2
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +2 -2
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs → Spoiler.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs.map → Spoiler.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Status/Snack.vue.cjs +1 -1
- package/dist/martyrs/src/components/Status/Snack.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Status/Snack.vue.js +1 -1
- package/dist/martyrs/src/components/Status/Snack.vue.js.map +1 -1
- package/dist/martyrs/src/components/Status/Status.vue.cjs +1 -1
- package/dist/martyrs/src/components/Status/Status.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Status/Status.vue.js +1 -1
- package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
- package/dist/martyrs/src/components/UploadImage/{UploadImage.vue.cjs → UploadImage.vue2.cjs} +5 -5
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/UploadImage/{UploadImage.vue.js → UploadImage.vue2.js} +5 -5
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +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/EnterPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +4 -4
- 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.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.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/ProfileEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs +3 -3
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +3 -3
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +2 -2
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +2 -2
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +2 -2
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +2 -2
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +2 -2
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +2 -2
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +4 -4
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +4 -4
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +4 -4
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +4 -4
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.cjs +0 -6
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +0 -6
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs +4 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.js +4 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +4 -4
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +4 -4
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/elements/PhotoStack.vue.cjs +4 -4
- package/dist/martyrs/src/modules/globals/views/components/elements/PhotoStack.vue.js +4 -4
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs +31 -123
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js +31 -123
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +3 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +3 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +10 -10
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +10 -10
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +4 -4
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +4 -4
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +3 -3
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +5 -5
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +7 -7
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +7 -7
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +5 -5
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +8 -8
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +8 -8
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +10 -10
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +10 -10
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +4 -4
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +5 -5
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +9 -9
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +9 -9
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs +2 -2
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +2 -2
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +2 -2
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +2 -2
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs +8 -8
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +8 -8
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +4 -4
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +4 -4
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +8 -8
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +8 -8
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/EmptyState.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/EmptyState.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +4 -4
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +7 -7
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +8 -8
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +8 -8
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +4 -4
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +4 -4
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue.cjs → THC.vue2.cjs} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue.js → THC.vue2.js} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +5 -5
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +5 -5
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs.map +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.cjs +5 -5
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +5 -5
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +4 -4
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +6 -6
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +6 -6
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +4 -4
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +4 -4
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +4 -4
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +4 -4
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/{metadata.schema-RlxNv46L.cjs → metadata.schema-BGykn-_r.cjs} +2 -2
- package/dist/{metadata.schema-CWmcDJN7.js → metadata.schema-CIRR_WQ-.js} +2 -2
- package/dist/music.server.cjs +30 -33
- package/dist/music.server.js +30 -33
- package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.cjs +2 -2
- package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.js +2 -2
- package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.cjs +13 -13
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.cjs.map +1 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.js +13 -13
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.js.map +1 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.cjs +3 -3
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.cjs.map +1 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.js +3 -3
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.js.map +1 -1
- package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.cjs +10 -10
- package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js +10 -10
- package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js.map +1 -1
- package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.cjs +2 -2
- package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.cjs.map +1 -1
- package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js +2 -2
- package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js.map +1 -1
- package/dist/notifications.server.cjs +22 -18
- package/dist/notifications.server.js +22 -18
- package/dist/orders.server.cjs +10 -10
- package/dist/orders.server.js +10 -10
- package/dist/organizations.server.cjs +13 -13
- package/dist/organizations.server.js +13 -13
- package/dist/{ownership.schema-D1p5XSpt.cjs → ownership.schema-CRYdbemm.cjs} +2 -2
- package/dist/{ownership.schema-BqH4v5vH.js → ownership.schema-fwwDf_e5.js} +2 -2
- package/dist/pages.server.cjs +2 -2
- package/dist/pages.server.js +2 -2
- package/dist/products.server.cjs +13 -13
- package/dist/products.server.js +13 -13
- package/dist/{profile.schema-BGAe5VN5.js → profile.schema-CjLOfG7b.js} +2 -2
- package/dist/{profile.schema-pidHrksV.cjs → profile.schema-l0Dk4Ptu.cjs} +2 -2
- package/dist/rents.server.cjs +2 -2
- package/dist/rents.server.js +2 -2
- package/dist/reports.server.cjs +2 -2
- package/dist/reports.server.js +2 -2
- package/dist/{socials.schema-CtpSF9dE.cjs → socials.schema-CqEHax2w.cjs} +2 -2
- package/dist/{socials.schema-BOZV82Mp.js → socials.schema-DxnnaBgO.js} +2 -2
- package/dist/spots.server.cjs +4 -4
- package/dist/spots.server.js +4 -4
- package/dist/style.css +75 -76
- package/dist/{web-BkaOiiSn.js → web-8cpb2Zat.js} +1 -1
- package/dist/{web-CROHFHoW.cjs → web-B0k809Uc.cjs} +1 -1
- package/package.json +8 -12
- package/src/builder/builder.js +0 -6
- package/src/components/Button/Button.vue +0 -1
- package/src/components/Calendar/Calendar.vue +2 -2
- package/src/components/Chips/Chips.vue +1 -1
- package/src/components/Countdown/Countdown.vue +4 -4
- package/src/components/EmptyState/EmptyState.vue +1 -1
- package/src/components/FieldBig/FieldBig.vue +1 -1
- package/src/components/FieldPhone/FieldPhone.vue +1 -1
- package/src/components/LocationMarker/LocationMarker.vue +2 -2
- package/src/components/Menu/MenuItem.vue +1 -1
- package/src/components/Status/Snack.vue +1 -1
- package/src/components/Status/Status.vue +1 -1
- package/src/components/UploadImage/UploadImage.vue +2 -2
- package/src/configurator/components/layouts/layoutConfigurator.vue +1 -1
- package/src/modules/STYLES.MD +59 -77
- package/src/modules/TASK-CORE-TRANSFER.MD +62 -0
- package/src/modules/auth/views/components/pages/EnterPassword.vue +1 -1
- package/src/modules/auth/views/components/pages/Profile.vue +3 -3
- package/src/modules/auth/views/components/pages/ProfileEdit.vue +1 -1
- package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
- package/src/modules/backoffice/components/admin/Users.vue +1 -1
- package/src/modules/backoffice/components/pages/Dashboard.vue +3 -3
- package/src/modules/backoffice/components/partials/Sidebar.vue +2 -2
- package/src/modules/chats/components/sections/ChatWindow.vue +1 -1
- package/src/modules/chats/routes/chats.routes.js +6 -4
- package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
- package/src/modules/community/components/layouts/Community.vue +2 -2
- package/src/modules/community/components/sections/Comment.vue +1 -1
- package/src/modules/community/components/sections/Comments.vue +1 -1
- package/src/modules/constructor/components/elements/Card.vue +1 -1
- package/src/modules/constructor/components/sections/Constructor.vue +2 -2
- package/src/modules/constructor/components/sections/Viewer.vue +1 -1
- package/src/modules/events/TASKS.MD +0 -0
- package/src/modules/events/components/blocks/CardEvent.vue +4 -4
- package/src/modules/events/components/pages/Event.vue +3 -3
- package/src/modules/events/components/pages/Events.vue +4 -4
- package/src/modules/events/components/sections/SelectDate.vue +2 -2
- package/src/modules/globals/TASK.MD +9 -102
- package/src/modules/globals/globals.client.js +0 -7
- package/src/modules/globals/globals.server.js +14 -1
- package/src/modules/globals/views/classes/globals.app.js +8 -4
- package/src/modules/globals/views/components/blocks/CardHeader.vue +4 -4
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
- package/src/modules/globals/views/components/elements/PhotoStack.vue +4 -4
- package/src/modules/globals/views/components/partials/CitySelection.vue +2 -2
- package/src/modules/globals/views/components/partials/Footer.centered.vue +6 -6
- package/src/modules/globals/views/components/partials/Footer.vue +31 -131
- package/src/modules/globals/views/components/partials/Header.vue +3 -3
- package/src/modules/globals/views/components/partials/LocationSelection.vue +1 -1
- package/src/modules/globals/views/components/partials/Navigation.vue +1 -1
- package/src/modules/globals/views/components/sections/SectionPageTitle.vue +2 -2
- package/src/modules/globals/views/components/sections/Walkthrough.vue +10 -10
- package/src/modules/governance/TASK-TRACKER.MD +192 -0
- package/src/modules/governance/controllers/routes/initiatives.routes.js +106 -11
- package/src/modules/governance/controllers/routes/milestones.routes.js +111 -0
- package/src/modules/governance/controllers/routes/tasks.routes.js +164 -11
- package/src/modules/governance/controllers/routes/votes.routes.js +50 -9
- package/src/modules/governance/controllers/routes/votings.routes.js +209 -12
- package/src/modules/governance/data/mockData.js +654 -0
- package/src/modules/governance/governance.server.js +6 -11
- package/src/modules/governance/middlewares/initiatives.verifier.js +197 -0
- package/src/modules/governance/middlewares/milestones.verifier.js +243 -0
- package/src/modules/governance/middlewares/tasks.verifier.js +224 -0
- package/src/modules/governance/middlewares/votes.verifier.js +115 -0
- package/src/modules/governance/middlewares/votings.verifier.js +237 -0
- package/src/modules/governance/models/initiative.model.js +14 -8
- package/src/modules/governance/models/task.model.js +13 -1
- package/src/modules/governance/models/voting.model.js +68 -2
- package/src/modules/governance/reactcode/.bolt/config.json +3 -0
- package/src/modules/governance/reactcode/.bolt/prompt +5 -0
- package/src/modules/governance/reactcode/eslint.config.js +28 -0
- package/src/modules/governance/reactcode/index.html +13 -0
- package/src/modules/governance/reactcode/package-lock.json +4229 -0
- package/src/modules/governance/reactcode/package.json +36 -0
- package/src/modules/governance/reactcode/postcss.config.js +6 -0
- package/src/modules/governance/reactcode/src/App.tsx +29 -0
- package/src/modules/governance/reactcode/src/components/CreateInitiativeForm.tsx +258 -0
- package/src/modules/governance/reactcode/src/components/CreateMilestoneForm.tsx +257 -0
- package/src/modules/governance/reactcode/src/components/EmptyState.tsx +29 -0
- package/src/modules/governance/reactcode/src/components/InitiativeCard.tsx +59 -0
- package/src/modules/governance/reactcode/src/components/LinkedEntityCard.tsx +58 -0
- package/src/modules/governance/reactcode/src/components/MilestoneCard.tsx +82 -0
- package/src/modules/governance/reactcode/src/components/ProductRepositories.tsx +70 -0
- package/src/modules/governance/reactcode/src/components/ProductSummary.tsx +183 -0
- package/src/modules/governance/reactcode/src/components/ProductTeam.tsx +100 -0
- package/src/modules/governance/reactcode/src/components/ProposeTaskForm.tsx +184 -0
- package/src/modules/governance/reactcode/src/components/TaskAssignForm.tsx +74 -0
- package/src/modules/governance/reactcode/src/components/TaskCard.tsx +88 -0
- package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +27 -0
- package/src/modules/governance/reactcode/src/components/VoteForm.tsx +96 -0
- package/src/modules/governance/reactcode/src/components/VotingCard.tsx +78 -0
- package/src/modules/governance/reactcode/src/components/VotingResults.tsx +155 -0
- package/src/modules/governance/reactcode/src/data/mockData.ts +1465 -0
- package/src/modules/governance/reactcode/src/index.css +3 -0
- package/src/modules/governance/reactcode/src/main.tsx +10 -0
- package/src/modules/governance/reactcode/src/pages/InitiativeDetailPage.tsx +569 -0
- package/src/modules/governance/reactcode/src/pages/InitiativeMilestonesPage.tsx +171 -0
- package/src/modules/governance/reactcode/src/pages/InitiativesListPage.tsx +182 -0
- package/src/modules/governance/reactcode/src/pages/MilestoneDetailPage.tsx +178 -0
- package/src/modules/governance/reactcode/src/pages/RoadmapPage.tsx +256 -0
- package/src/modules/governance/reactcode/src/pages/TaskDetailPage.tsx +529 -0
- package/src/modules/governance/reactcode/src/pages/VotingDetailPage.tsx +191 -0
- package/src/modules/governance/reactcode/src/pages/VotingsListPage.tsx +86 -0
- package/src/modules/governance/reactcode/src/vite-env.d.ts +1 -0
- package/src/modules/governance/reactcode/tailwind.config.js +8 -0
- package/src/modules/governance/reactcode/tsconfig.app.json +24 -0
- package/src/modules/governance/reactcode/tsconfig.json +7 -0
- package/src/modules/governance/reactcode/tsconfig.node.json +22 -0
- package/src/modules/governance/reactcode/vite.config.ts +10 -0
- package/src/modules/governance/seed-governance.js +348 -0
- package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +58 -7
- package/src/modules/governance/views/components/blocks/CardMilestoneItem.vue +70 -0
- package/src/modules/governance/views/components/blocks/CardTaskItem.vue +58 -7
- package/src/modules/governance/views/components/blocks/CardVotingItem.vue +65 -7
- package/src/modules/governance/views/components/layouts/Governance.vue +23 -0
- package/src/modules/governance/views/components/pages/Governance.vue +44 -0
- package/src/modules/governance/views/components/pages/Initiative.vue +413 -8
- package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +159 -0
- package/src/modules/governance/views/components/pages/Initiatives.vue +164 -6
- package/src/modules/governance/views/components/pages/Milestone.vue +170 -0
- package/src/modules/governance/views/components/pages/Roadmap.vue +238 -0
- package/src/modules/governance/views/components/pages/Task.vue +393 -14
- package/src/modules/governance/views/components/pages/Tasks.vue +164 -10
- package/src/modules/governance/views/components/pages/Voting.vue +167 -20
- package/src/modules/governance/views/components/pages/Votings.vue +86 -9
- package/src/modules/governance/views/components/partials/EmptyState.vue +41 -0
- package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +73 -0
- package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +35 -0
- package/src/modules/governance/views/components/partials/VoteForm.vue +100 -0
- package/src/modules/governance/views/components/partials/VotingResults.vue +127 -0
- package/src/modules/governance/views/router/goverance.router.js +52 -1
- package/src/modules/governance/views/store/initiatives.js +10 -7
- package/src/modules/governance/views/store/tasks.js +10 -7
- package/src/modules/governance/views/store/votes.js +10 -7
- package/src/modules/governance/views/store/votings.js +9 -6
- package/src/modules/inventory/components/forms/AdjustmentForm.vue +1 -1
- package/src/modules/landing/components/sections/Examples.vue +1 -1
- package/src/modules/landing/components/sections/SectionEarn.vue +2 -2
- package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
- package/src/modules/landing/components/sections/SectionFeaturesImages.vue +1 -1
- package/src/modules/landing/components/sections/SectionFocus.vue +1 -1
- package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
- package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
- package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
- package/src/modules/landing/components/sections/SectionJoinUs.vue +1 -1
- package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
- package/src/modules/landing/components/sections/SubscribeNewsletter.vue +1 -1
- package/src/modules/marketplace/views/components/layouts/Marketplace.vue +3 -3
- package/src/modules/marketplace/views/components/sections/SectionMenu.vue +1 -1
- package/src/modules/music/components/forms/AlbumForm.vue +2 -2
- package/src/modules/music/components/forms/ArtistForm.vue +4 -4
- package/src/modules/music/components/forms/PlaylistForm.vue +6 -6
- package/src/modules/music/components/forms/TrackForm.vue +4 -4
- package/src/modules/music/components/pages/Album.vue +8 -8
- package/src/modules/music/components/pages/Artist.vue +10 -10
- package/src/modules/music/components/pages/MusicLibrary.vue +4 -4
- package/src/modules/music/components/pages/Playlist.vue +5 -5
- package/src/modules/music/components/pages/Track.vue +9 -9
- package/src/modules/music/music.server.js +0 -1
- package/src/modules/notifications/components/blocks/NotificationItem.vue +1 -1
- package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
- package/src/modules/notifications/notifications.server.js +26 -20
- package/src/modules/orders/components/blocks/CardOrder.vue +7 -7
- package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +1 -1
- package/src/modules/orders/components/blocks/CardOrderUser.vue +3 -3
- package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +2 -2
- package/src/modules/orders/components/elements/PriceTotal.vue +1 -1
- package/src/modules/orders/components/pages/Favorites.vue +1 -1
- package/src/modules/orders/components/pages/OrderBackoffice.vue +7 -7
- package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
- package/src/modules/orders/components/partials/ShopCart.vue +1 -1
- package/src/modules/orders/components/sections/AskToLogin.vue +1 -1
- package/src/modules/orders/components/sections/Succes.vue +1 -1
- package/src/modules/organizations/components/blocks/CardOrganization.vue +3 -3
- package/src/modules/organizations/components/blocks/EmptyState.vue +1 -1
- package/src/modules/organizations/components/blocks/Rating.vue +2 -2
- package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +1 -1
- package/src/modules/organizations/components/forms/DepartmentForm.vue +2 -2
- package/src/modules/organizations/components/forms/InviteForm.vue +1 -1
- package/src/modules/organizations/components/pages/Department.vue +2 -2
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +2 -2
- package/src/modules/organizations/components/pages/Organization.new.vue +7 -7
- package/src/modules/organizations/components/pages/Organization.vue +6 -6
- package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +8 -8
- package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
- package/src/modules/products/components/blocks/CardCategory.vue +2 -2
- package/src/modules/products/components/blocks/CardPosition.vue +1 -1
- package/src/modules/products/components/blocks/CardProduct.vue +3 -3
- package/src/modules/products/components/blocks/ProductDiscounts.vue +2 -2
- package/src/modules/products/components/elements/Price.vue +4 -4
- package/src/modules/products/components/elements/QuantitySelector.vue +2 -2
- package/src/modules/products/components/forms/StockAuditForm.vue +1 -1
- package/src/modules/products/components/pages/Product.vue +2 -2
- package/src/modules/products/components/pages/Products.vue +4 -4
- package/src/modules/products/components/sections/EditAttributes.vue +3 -3
- package/src/modules/products/components/sections/EditDiscounts.vue +3 -3
- package/src/modules/products/components/sections/EditVariants.vue +5 -5
- package/src/modules/products/components/sections/FilterProducts.vue +3 -3
- package/src/modules/products/components/sections/HeroRecommendation.vue +2 -2
- package/src/modules/products/components/sections/ProductConfigurator.vue +1 -1
- package/src/modules/products/components/sections/ProductsRecommended.vue +1 -1
- package/src/modules/products/components/sections/SectionProduct.vue +2 -2
- package/src/modules/reports/components/sections/FormReport.vue +2 -2
- package/src/modules/spots/components/blocks/CardSpot.vue +5 -5
- package/src/modules/spots/components/pages/Spot.vue +2 -2
- package/src/modules/spots/components/pages/SpotEdit.vue +3 -3
- package/src/modules/wallet/views/components/pages/Wallet.vue +4 -4
- package/src/styles/base/all.scss +20 -0
- package/src/styles/config.scss +10 -9
- package/src/styles/typography.scss +13 -13
- package/dist/globals.observer-C_FYclgV.cjs +0 -78
- package/dist/globals.observer-MZsqaE6F.js +0 -79
- package/dist/main-8f945Ngn.cjs +0 -11
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -2
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js +0 -2
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.cjs +0 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.js +0 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +0 -1
- package/dist/tickets.controller-9zoaVPcx.cjs +0 -444
- package/dist/tickets.controller-C8sWVqbB.js +0 -428
- package/dist/wallet.server.cjs +0 -528
- package/dist/wallet.server.js +0 -511
- package/src/builder/modes/ssr.vite.dev.js +0 -180
- package/src/builder/ssr/ssr-render-html.vite.js +0 -35
- package/src/builder/vite/index.js +0 -13
- package/src/builder/vite/vite.config.api.js +0 -52
- package/src/builder/vite/vite.config.base.js +0 -110
- package/src/builder/vite/vite.config.spa.client.js +0 -81
- package/src/builder/vite/vite.config.ssr.client.js +0 -244
- package/src/builder/vite/vite.config.ssr.server.js +0 -74
- package/src/modules/governance/controllers/factories/initiatives.controller.js +0 -90
- package/src/modules/governance/controllers/factories/tasks.controller.js +0 -88
- package/src/modules/governance/controllers/factories/votes.controller.js +0 -64
- package/src/modules/governance/controllers/factories/votings.controller.js +0 -105
- package/src/modules/governance/views/store/projects.js +0 -148
- /package/src/modules/governance/{DESCRIPTION.MD → IGNORE-ITS FOR FUTURE-DESCRIPTION.MD} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/partials/Navigation.vue"],"sourcesContent":["<script setup>\nimport { ref, watch, computed } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\n\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\nconst router = useRouter()\nconst route = useRoute()\n\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'\nimport Spoiler from '@martyrs/src/components/Spoiler/Spoiler.vue'\n\nconst props = defineProps({\n navigationItems: Array,\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n horizontal: {\n type: Boolean,\n default: false\n }\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst expandedSections = ref([])\n\nconst toggleSection = (title) => {\n if (!props.stateSidebar) {\n if (menuItems.value.flatMap(section => section.items).find(item => item.title === title && item.subItems)) {\n emits('closeSidebar')\n setTimeout(() => {\n expandedSections.value.push(title)\n }, 50)\n }\n return\n }\n \n const index = expandedSections.value.indexOf(title)\n\n if (index === -1) {\n expandedSections.value.push(title)\n } else {\n expandedSections.value.splice(index, 1)\n }\n}\n\nconst isSectionExpanded = (title) => {\n return expandedSections.value.includes(title)\n}\n\n// Process route functions with auth data and route\nconst processRoute = (routeFn) => {\n if (typeof routeFn === 'function') {\n return routeFn(auth.state, route)\n }\n return routeFn\n}\n</script>\n\n<template>\n <nav\n class=\"transition-quint-out o-x-hidden h-100\"\n :class=\"[\n stateSidebar ? 'pd-small' : 'pd-micro',\n horizontal ? 'w-100 desktop-only flex flex-center flex-nowrap o-y-hidden' : 'o-y-scroll rows-1',\n ]\"\n >\n <div \n v-for=\"section in props.navigationItems\" \n v-show=\"!section.visible || (typeof section.visible === 'function' ? section.visible(auth.state, route) : true)\"\n :key=\"section.category\" \n class=\"transition-quint-out\"\n :class=\"[\n horizontal ? 'w-max flex-child-default flex flex-nowrap' : '',\n stateSidebar && !horizontal ? 'mn-t-medium' : '',\n ]\"\n >\n <div \n class=\"uppercase t-medium t-transp p-small\"\n :class=\"{ \n 'hidden': !stateSidebar || horizontal, \n 'visible': stateSidebar && !horizontal,\n 't-black': theme === 'light',\n 't-white': theme === 'dark'\n }\"\n >\n {{ section.category }}\n </div>\n\n <ul \n :class=\"[\n horizontal ? 'w-100 gap-micro flex flex-nowrap' : 'flex flex-column gap-micro',\n ]\"\n >\n <li \n v-for=\"item in section.items\" \n v-show=\"!item.visible || (typeof item.visible === 'function' ? item.visible(auth.state, route) : true)\"\n class=\"w-100 pos-relative\"\n :key=\"item.title\"\n \n >\n <button\n class=\"transition-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center\"\n @click=\"item.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(item.route) ? router.push(processRoute(item.route)) : null) : null\"\n :class=\"[\n horizontal ? 'pd-thin' : '',\n item.route && route.path === processRoute(item.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <div v-if=\"!horizontal\" class=\"w-100 flex-child-default w-max-big flex flex-center aspect-1x1\">\n <component \n v-if=\"item.iconComponent\" \n :is=\"item.iconComponent\" \n class=\"i-medium flex-child-default\" \n :fill=\"globals.state.theme.darkmode || theme === 'dark' ? 'rgba(255,255,255,0.7)' : 'rgba(0,0,0,0.25)'\"\n />\n <span \n v-if=\"!item.iconComponent \" \n class=\"p-
|
|
1
|
+
{"version":3,"file":"Navigation.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/partials/Navigation.vue"],"sourcesContent":["<script setup>\nimport { ref, watch, computed } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\n\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\nconst router = useRouter()\nconst route = useRoute()\n\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'\nimport Spoiler from '@martyrs/src/components/Spoiler/Spoiler.vue'\n\nconst props = defineProps({\n navigationItems: Array,\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n horizontal: {\n type: Boolean,\n default: false\n }\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst expandedSections = ref([])\n\nconst toggleSection = (title) => {\n if (!props.stateSidebar) {\n if (menuItems.value.flatMap(section => section.items).find(item => item.title === title && item.subItems)) {\n emits('closeSidebar')\n setTimeout(() => {\n expandedSections.value.push(title)\n }, 50)\n }\n return\n }\n \n const index = expandedSections.value.indexOf(title)\n\n if (index === -1) {\n expandedSections.value.push(title)\n } else {\n expandedSections.value.splice(index, 1)\n }\n}\n\nconst isSectionExpanded = (title) => {\n return expandedSections.value.includes(title)\n}\n\n// Process route functions with auth data and route\nconst processRoute = (routeFn) => {\n if (typeof routeFn === 'function') {\n return routeFn(auth.state, route)\n }\n return routeFn\n}\n</script>\n\n<template>\n <nav\n class=\"transition-quint-out o-x-hidden h-100\"\n :class=\"[\n stateSidebar ? 'pd-small' : 'pd-micro',\n horizontal ? 'w-100 desktop-only flex flex-center flex-nowrap o-y-hidden' : 'o-y-scroll rows-1',\n ]\"\n >\n <div \n v-for=\"section in props.navigationItems\" \n v-show=\"!section.visible || (typeof section.visible === 'function' ? section.visible(auth.state, route) : true)\"\n :key=\"section.category\" \n class=\"transition-quint-out\"\n :class=\"[\n horizontal ? 'w-max flex-child-default flex flex-nowrap' : '',\n stateSidebar && !horizontal ? 'mn-t-medium' : '',\n ]\"\n >\n <div \n class=\"uppercase t-medium t-transp p-small\"\n :class=\"{ \n 'hidden': !stateSidebar || horizontal, \n 'visible': stateSidebar && !horizontal,\n 't-black': theme === 'light',\n 't-white': theme === 'dark'\n }\"\n >\n {{ section.category }}\n </div>\n\n <ul \n :class=\"[\n horizontal ? 'w-100 gap-micro flex flex-nowrap' : 'flex flex-column gap-micro',\n ]\"\n >\n <li \n v-for=\"item in section.items\" \n v-show=\"!item.visible || (typeof item.visible === 'function' ? item.visible(auth.state, route) : true)\"\n class=\"w-100 pos-relative\"\n :key=\"item.title\"\n \n >\n <button\n class=\"transition-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center\"\n @click=\"item.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(item.route) ? router.push(processRoute(item.route)) : null) : null\"\n :class=\"[\n horizontal ? 'pd-thin' : '',\n item.route && route.path === processRoute(item.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <div v-if=\"!horizontal\" class=\"w-100 flex-child-default w-max-big flex flex-center aspect-1x1\">\n <component \n v-if=\"item.iconComponent\" \n :is=\"item.iconComponent\" \n class=\"i-medium flex-child-default\" \n :fill=\"globals.state.theme.darkmode || theme === 'dark' ? 'rgba(255,255,255,0.7)' : 'rgba(0,0,0,0.25)'\"\n />\n <span \n v-if=\"!item.iconComponent \" \n class=\"p-regular\"\n >\n {{ item.icon }}\n </span>\n </div>\n \n <span\n class=\"transition-quint-out w-100 t-left t-medium\"\n :class=\"{ 'hidden': !stateSidebar && !horizontal, 'visible': stateSidebar || horizontal }\"\n >\n {{ item.title }}\n </span>\n \n <span\n v-if=\"item.subItems && stateSidebar && !horizontal\"\n class=\"mn-l-auto mn-r-small sidebar-dropdown-icon\"\n :class=\"{ 'rotate-180': isSectionExpanded(item.title) }\"\n @click.stop=\"toggleSection(item.title)\" \n >\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" :fill=\" theme === 'dark' ? 'rgb(var(--white))': 'rgb(var(--black))'\" class=\"i-small\"/>\n </span>\n </button>\n <transition\n enter-active-class=\"dropdown-enter\"\n leave-active-class=\"dropdown-leave\"\n enter-from-class=\"dropdown-enter-from\"\n enter-to-class=\"dropdown-enter-to\"\n leave-from-class=\"dropdown-leave-from\"\n leave-to-class=\"dropdown-leave-to\"\n >\n <ul\n v-if=\"item.subItems && isSectionExpanded(item.title) && stateSidebar && !horizontal\"\n class=\"mn-l-small mn-t-thin\"\n >\n <li v-for=\"subItem in item.subItems\" :key=\"subItem.title\">\n \n <a \n @click=\"subItem.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(subItem.route) ? router.push(processRoute(subItem.route)) : null) : null\"\n href=\"#\" \n class=\"transition-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small\"\n :class=\"[\n subItem.route && route.path === processRoute(subItem.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <component \n v-if=\"subItem.iconComponent\" \n :is=\"subItem.iconComponent\" \n class=\"i-medium\" \n :fill=\"globals.state.theme.darkmode || theme === 'dark' ? 'rgba(255,255,255,0.7)' : 'rgba(0,0,0,0.25)'\"\n />\n <span v-else class=\"\">{{ subItem.icon }}</span>\n <span class=\"w-100\">{{ subItem.title }}</span>\n </a>\n </li>\n </ul>\n </transition> \n </li>\n </ul>\n </div>\n </nav>\n</template>\n\n<style scoped>\n\n.rotate-180 {\n transform: rotate(180deg);\n}\n\n.hidden {\n/* opacity: 0;*/\n width: 0;\n display: none;\n}\n\n.visible {\n/* opacity: 1;*/\n display: block;\n}\n\n/* Dropdown animations */\n.dropdown-enter, .dropdown-leave {\n transition: all 0.3s ease-in-out;\n}\n\n.dropdown-enter-from, .dropdown-leave-to {\n opacity: 0;\n transform: translateY(-0.5rem);\n}\n\n.dropdown-enter-to, .dropdown-leave-from {\n opacity: 1;\n transform: translateY(0);\n}\n</style>"],"names":["useRouter","useRoute","ref","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAM,SAASA,UAAAA,UAAS;AACxB,UAAM,QAAQC,UAAAA,SAAQ;AAKtB,UAAM,QAAQ;AAgBd,UAAM,QAAQ;AAId,UAAM,mBAAmBC,IAAAA,IAAI,CAAA,CAAE;AAE/B,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UAAI,CAAC,MAAM,cAAc;AACvB,YAAI,UAAU,MAAM,QAAQ,aAAW,QAAQ,KAAK,EAAE,KAAK,UAAQ,KAAK,UAAU,SAAS,KAAK,QAAQ,GAAG;AACzG,gBAAM,cAAc;AACpB,qBAAW,MAAM;AACf,6BAAiB,MAAM,KAAK,KAAK;AAAA,UACnC,GAAG,EAAE;AAAA,QACP;AACA;AAAA,MACF;AAEA,YAAM,QAAQ,iBAAiB,MAAM,QAAQ,KAAK;AAElD,UAAI,UAAU,IAAI;AAChB,yBAAiB,MAAM,KAAK,KAAK;AAAA,MACnC,OAAO;AACL,yBAAiB,MAAM,OAAO,OAAO,CAAC;AAAA,MACxC;AAAA,IACF;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,aAAO,iBAAiB,MAAM,SAAS,KAAK;AAAA,IAC9C;AAGA,UAAM,eAAe,CAAC,YAAY;AAChC,UAAI,OAAO,YAAY,YAAY;AACjC,eAAO,QAAQC,KAAAA,OAAY,KAAK;AAAA,MAClC;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ import IconChevronBottom from "../../../../icons/navigation/IconChevronBottom.vu
|
|
|
4
4
|
import { state } from "../../store/globals.js";
|
|
5
5
|
import { state as state$1 } from "../../../../auth/views/store/auth.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
/* empty css
|
|
7
|
+
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
9
|
import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
10
10
|
const _hoisted_1 = ["onClick"];
|
|
@@ -14,7 +14,7 @@ const _hoisted_2 = {
|
|
|
14
14
|
};
|
|
15
15
|
const _hoisted_3 = {
|
|
16
16
|
key: 1,
|
|
17
|
-
class: "p-
|
|
17
|
+
class: "p-regular"
|
|
18
18
|
};
|
|
19
19
|
const _hoisted_4 = ["onClick"];
|
|
20
20
|
const _hoisted_5 = {
|
|
@@ -190,7 +190,7 @@ const _sfc_main = {
|
|
|
190
190
|
};
|
|
191
191
|
}
|
|
192
192
|
};
|
|
193
|
-
const Navigation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
193
|
+
const Navigation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-63703355"]]);
|
|
194
194
|
export {
|
|
195
195
|
Navigation as default
|
|
196
196
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/partials/Navigation.vue"],"sourcesContent":["<script setup>\nimport { ref, watch, computed } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\n\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\nconst router = useRouter()\nconst route = useRoute()\n\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'\nimport Spoiler from '@martyrs/src/components/Spoiler/Spoiler.vue'\n\nconst props = defineProps({\n navigationItems: Array,\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n horizontal: {\n type: Boolean,\n default: false\n }\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst expandedSections = ref([])\n\nconst toggleSection = (title) => {\n if (!props.stateSidebar) {\n if (menuItems.value.flatMap(section => section.items).find(item => item.title === title && item.subItems)) {\n emits('closeSidebar')\n setTimeout(() => {\n expandedSections.value.push(title)\n }, 50)\n }\n return\n }\n \n const index = expandedSections.value.indexOf(title)\n\n if (index === -1) {\n expandedSections.value.push(title)\n } else {\n expandedSections.value.splice(index, 1)\n }\n}\n\nconst isSectionExpanded = (title) => {\n return expandedSections.value.includes(title)\n}\n\n// Process route functions with auth data and route\nconst processRoute = (routeFn) => {\n if (typeof routeFn === 'function') {\n return routeFn(auth.state, route)\n }\n return routeFn\n}\n</script>\n\n<template>\n <nav\n class=\"transition-quint-out o-x-hidden h-100\"\n :class=\"[\n stateSidebar ? 'pd-small' : 'pd-micro',\n horizontal ? 'w-100 desktop-only flex flex-center flex-nowrap o-y-hidden' : 'o-y-scroll rows-1',\n ]\"\n >\n <div \n v-for=\"section in props.navigationItems\" \n v-show=\"!section.visible || (typeof section.visible === 'function' ? section.visible(auth.state, route) : true)\"\n :key=\"section.category\" \n class=\"transition-quint-out\"\n :class=\"[\n horizontal ? 'w-max flex-child-default flex flex-nowrap' : '',\n stateSidebar && !horizontal ? 'mn-t-medium' : '',\n ]\"\n >\n <div \n class=\"uppercase t-medium t-transp p-small\"\n :class=\"{ \n 'hidden': !stateSidebar || horizontal, \n 'visible': stateSidebar && !horizontal,\n 't-black': theme === 'light',\n 't-white': theme === 'dark'\n }\"\n >\n {{ section.category }}\n </div>\n\n <ul \n :class=\"[\n horizontal ? 'w-100 gap-micro flex flex-nowrap' : 'flex flex-column gap-micro',\n ]\"\n >\n <li \n v-for=\"item in section.items\" \n v-show=\"!item.visible || (typeof item.visible === 'function' ? item.visible(auth.state, route) : true)\"\n class=\"w-100 pos-relative\"\n :key=\"item.title\"\n \n >\n <button\n class=\"transition-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center\"\n @click=\"item.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(item.route) ? router.push(processRoute(item.route)) : null) : null\"\n :class=\"[\n horizontal ? 'pd-thin' : '',\n item.route && route.path === processRoute(item.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <div v-if=\"!horizontal\" class=\"w-100 flex-child-default w-max-big flex flex-center aspect-1x1\">\n <component \n v-if=\"item.iconComponent\" \n :is=\"item.iconComponent\" \n class=\"i-medium flex-child-default\" \n :fill=\"globals.state.theme.darkmode || theme === 'dark' ? 'rgba(255,255,255,0.7)' : 'rgba(0,0,0,0.25)'\"\n />\n <span \n v-if=\"!item.iconComponent \" \n class=\"p-
|
|
1
|
+
{"version":3,"file":"Navigation.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/partials/Navigation.vue"],"sourcesContent":["<script setup>\nimport { ref, watch, computed } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\n\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\nconst router = useRouter()\nconst route = useRoute()\n\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'\nimport Spoiler from '@martyrs/src/components/Spoiler/Spoiler.vue'\n\nconst props = defineProps({\n navigationItems: Array,\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n horizontal: {\n type: Boolean,\n default: false\n }\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst expandedSections = ref([])\n\nconst toggleSection = (title) => {\n if (!props.stateSidebar) {\n if (menuItems.value.flatMap(section => section.items).find(item => item.title === title && item.subItems)) {\n emits('closeSidebar')\n setTimeout(() => {\n expandedSections.value.push(title)\n }, 50)\n }\n return\n }\n \n const index = expandedSections.value.indexOf(title)\n\n if (index === -1) {\n expandedSections.value.push(title)\n } else {\n expandedSections.value.splice(index, 1)\n }\n}\n\nconst isSectionExpanded = (title) => {\n return expandedSections.value.includes(title)\n}\n\n// Process route functions with auth data and route\nconst processRoute = (routeFn) => {\n if (typeof routeFn === 'function') {\n return routeFn(auth.state, route)\n }\n return routeFn\n}\n</script>\n\n<template>\n <nav\n class=\"transition-quint-out o-x-hidden h-100\"\n :class=\"[\n stateSidebar ? 'pd-small' : 'pd-micro',\n horizontal ? 'w-100 desktop-only flex flex-center flex-nowrap o-y-hidden' : 'o-y-scroll rows-1',\n ]\"\n >\n <div \n v-for=\"section in props.navigationItems\" \n v-show=\"!section.visible || (typeof section.visible === 'function' ? section.visible(auth.state, route) : true)\"\n :key=\"section.category\" \n class=\"transition-quint-out\"\n :class=\"[\n horizontal ? 'w-max flex-child-default flex flex-nowrap' : '',\n stateSidebar && !horizontal ? 'mn-t-medium' : '',\n ]\"\n >\n <div \n class=\"uppercase t-medium t-transp p-small\"\n :class=\"{ \n 'hidden': !stateSidebar || horizontal, \n 'visible': stateSidebar && !horizontal,\n 't-black': theme === 'light',\n 't-white': theme === 'dark'\n }\"\n >\n {{ section.category }}\n </div>\n\n <ul \n :class=\"[\n horizontal ? 'w-100 gap-micro flex flex-nowrap' : 'flex flex-column gap-micro',\n ]\"\n >\n <li \n v-for=\"item in section.items\" \n v-show=\"!item.visible || (typeof item.visible === 'function' ? item.visible(auth.state, route) : true)\"\n class=\"w-100 pos-relative\"\n :key=\"item.title\"\n \n >\n <button\n class=\"transition-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center\"\n @click=\"item.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(item.route) ? router.push(processRoute(item.route)) : null) : null\"\n :class=\"[\n horizontal ? 'pd-thin' : '',\n item.route && route.path === processRoute(item.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <div v-if=\"!horizontal\" class=\"w-100 flex-child-default w-max-big flex flex-center aspect-1x1\">\n <component \n v-if=\"item.iconComponent\" \n :is=\"item.iconComponent\" \n class=\"i-medium flex-child-default\" \n :fill=\"globals.state.theme.darkmode || theme === 'dark' ? 'rgba(255,255,255,0.7)' : 'rgba(0,0,0,0.25)'\"\n />\n <span \n v-if=\"!item.iconComponent \" \n class=\"p-regular\"\n >\n {{ item.icon }}\n </span>\n </div>\n \n <span\n class=\"transition-quint-out w-100 t-left t-medium\"\n :class=\"{ 'hidden': !stateSidebar && !horizontal, 'visible': stateSidebar || horizontal }\"\n >\n {{ item.title }}\n </span>\n \n <span\n v-if=\"item.subItems && stateSidebar && !horizontal\"\n class=\"mn-l-auto mn-r-small sidebar-dropdown-icon\"\n :class=\"{ 'rotate-180': isSectionExpanded(item.title) }\"\n @click.stop=\"toggleSection(item.title)\" \n >\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" :fill=\" theme === 'dark' ? 'rgb(var(--white))': 'rgb(var(--black))'\" class=\"i-small\"/>\n </span>\n </button>\n <transition\n enter-active-class=\"dropdown-enter\"\n leave-active-class=\"dropdown-leave\"\n enter-from-class=\"dropdown-enter-from\"\n enter-to-class=\"dropdown-enter-to\"\n leave-from-class=\"dropdown-leave-from\"\n leave-to-class=\"dropdown-leave-to\"\n >\n <ul\n v-if=\"item.subItems && isSectionExpanded(item.title) && stateSidebar && !horizontal\"\n class=\"mn-l-small mn-t-thin\"\n >\n <li v-for=\"subItem in item.subItems\" :key=\"subItem.title\">\n \n <a \n @click=\"subItem.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(subItem.route) ? router.push(processRoute(subItem.route)) : null) : null\"\n href=\"#\" \n class=\"transition-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small\"\n :class=\"[\n subItem.route && route.path === processRoute(subItem.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <component \n v-if=\"subItem.iconComponent\" \n :is=\"subItem.iconComponent\" \n class=\"i-medium\" \n :fill=\"globals.state.theme.darkmode || theme === 'dark' ? 'rgba(255,255,255,0.7)' : 'rgba(0,0,0,0.25)'\"\n />\n <span v-else class=\"\">{{ subItem.icon }}</span>\n <span class=\"w-100\">{{ subItem.title }}</span>\n </a>\n </li>\n </ul>\n </transition> \n </li>\n </ul>\n </div>\n </nav>\n</template>\n\n<style scoped>\n\n.rotate-180 {\n transform: rotate(180deg);\n}\n\n.hidden {\n/* opacity: 0;*/\n width: 0;\n display: none;\n}\n\n.visible {\n/* opacity: 1;*/\n display: block;\n}\n\n/* Dropdown animations */\n.dropdown-enter, .dropdown-leave {\n transition: all 0.3s ease-in-out;\n}\n\n.dropdown-enter-from, .dropdown-leave-to {\n opacity: 0;\n transform: translateY(-0.5rem);\n}\n\n.dropdown-enter-to, .dropdown-leave-from {\n opacity: 1;\n transform: translateY(0);\n}\n</style>"],"names":["auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AAKtB,UAAM,QAAQ;AAgBd,UAAM,QAAQ;AAId,UAAM,mBAAmB,IAAI,CAAA,CAAE;AAE/B,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UAAI,CAAC,MAAM,cAAc;AACvB,YAAI,UAAU,MAAM,QAAQ,aAAW,QAAQ,KAAK,EAAE,KAAK,UAAQ,KAAK,UAAU,SAAS,KAAK,QAAQ,GAAG;AACzG,gBAAM,cAAc;AACpB,qBAAW,MAAM;AACf,6BAAiB,MAAM,KAAK,KAAK;AAAA,UACnC,GAAG,EAAE;AAAA,QACP;AACA;AAAA,MACF;AAEA,YAAM,QAAQ,iBAAiB,MAAM,QAAQ,KAAK;AAElD,UAAI,UAAU,IAAI;AAChB,yBAAiB,MAAM,KAAK,KAAK;AAAA,MACnC,OAAO;AACL,yBAAiB,MAAM,OAAO,OAAO,CAAC;AAAA,MACxC;AAAA,IACF;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,aAAO,iBAAiB,MAAM,SAAS,KAAK;AAAA,IAC9C;AAGA,UAAM,eAAe,CAAC,YAAY;AAChC,UAAI,OAAO,YAAY,YAAY;AACjC,eAAO,QAAQA,SAAY,KAAK;AAAA,MAClC;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -31,7 +31,7 @@ const _sfc_main = {
|
|
|
31
31
|
action.to ? (vue.openBlock(), vue.createBlock(_component_router_link, {
|
|
32
32
|
key: action.to,
|
|
33
33
|
to: action.to,
|
|
34
|
-
class: vue.normalizeClass(action.class || "radius-extra pd-small pd-r-medium pd-l-medium p-
|
|
34
|
+
class: vue.normalizeClass(action.class || "radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex")
|
|
35
35
|
}, {
|
|
36
36
|
default: vue.withCtx(() => [
|
|
37
37
|
vue.createTextVNode(vue.toDisplayString(action.label), 1)
|
|
@@ -51,7 +51,7 @@ const _sfc_main = {
|
|
|
51
51
|
selected: __props.tabs_current,
|
|
52
52
|
"onUpdate:selected": updateTabsCurrent,
|
|
53
53
|
tabs: __props.tabs,
|
|
54
|
-
class: "mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-
|
|
54
|
+
class: "mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular"
|
|
55
55
|
}, null, 8, ["selected", "tabs"])) : vue.createCommentVNode("", true)
|
|
56
56
|
]);
|
|
57
57
|
};
|
package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionPageTitle.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div>\n <header class=\"flex-v-center flex-nowrap flex\">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template \n v-for=\"action in actions\" \n v-if=\"actions && actions.length > 0\"\n >\n <router-link\n v-if=\"action.to\"\n :key=\"action.to\"\n :to=\"action.to\"\n :class=\"action.class || 'radius-extra pd-small pd-r-medium pd-l-medium p-
|
|
1
|
+
{"version":3,"file":"SectionPageTitle.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div>\n <header class=\"flex-v-center flex-nowrap flex\">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template \n v-for=\"action in actions\" \n v-if=\"actions && actions.length > 0\"\n >\n <router-link\n v-if=\"action.to\"\n :key=\"action.to\"\n :to=\"action.to\"\n :class=\"action.class || 'radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </router-link>\n\n <button\n v-if=\"action.method\"\n @click=\"action.method\"\n :class=\"action.class || 'radius-extra pd-thin uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </button>\n </template>\n </header>\n\n <Tab\n v-if=\"tabs\"\n :selected=\"tabs_current\"\n @update:selected=\"updateTabsCurrent\"\n :tabs=\"tabs\"\n class=\"mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular\"\n />\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\n\nconst emits = defineEmits([\n 'update:tabs_current'\n])\n\nconst props = defineProps({\n title: String,\n actions: Array,\n tabs: Array,\n tabs_current: [Object, String]\n});\n\nconst updateTabsCurrent = (newValue) => {\n emits('update:tabs_current', newValue); // Emitting to parent component\n}\n</script>\n\n<style scoped>\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA2CA,UAAM,QAAQ;AAWd,UAAM,oBAAoB,CAAC,aAAa;AACtC,YAAM,uBAAuB,QAAQ;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -29,7 +29,7 @@ const _sfc_main = {
|
|
|
29
29
|
action.to ? (openBlock(), createBlock(_component_router_link, {
|
|
30
30
|
key: action.to,
|
|
31
31
|
to: action.to,
|
|
32
|
-
class: normalizeClass(action.class || "radius-extra pd-small pd-r-medium pd-l-medium p-
|
|
32
|
+
class: normalizeClass(action.class || "radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex")
|
|
33
33
|
}, {
|
|
34
34
|
default: withCtx(() => [
|
|
35
35
|
createTextVNode(toDisplayString(action.label), 1)
|
|
@@ -49,7 +49,7 @@ const _sfc_main = {
|
|
|
49
49
|
selected: __props.tabs_current,
|
|
50
50
|
"onUpdate:selected": updateTabsCurrent,
|
|
51
51
|
tabs: __props.tabs,
|
|
52
|
-
class: "mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-
|
|
52
|
+
class: "mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular"
|
|
53
53
|
}, null, 8, ["selected", "tabs"])) : createCommentVNode("", true)
|
|
54
54
|
]);
|
|
55
55
|
};
|
package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionPageTitle.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div>\n <header class=\"flex-v-center flex-nowrap flex\">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template \n v-for=\"action in actions\" \n v-if=\"actions && actions.length > 0\"\n >\n <router-link\n v-if=\"action.to\"\n :key=\"action.to\"\n :to=\"action.to\"\n :class=\"action.class || 'radius-extra pd-small pd-r-medium pd-l-medium p-
|
|
1
|
+
{"version":3,"file":"SectionPageTitle.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div>\n <header class=\"flex-v-center flex-nowrap flex\">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template \n v-for=\"action in actions\" \n v-if=\"actions && actions.length > 0\"\n >\n <router-link\n v-if=\"action.to\"\n :key=\"action.to\"\n :to=\"action.to\"\n :class=\"action.class || 'radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </router-link>\n\n <button\n v-if=\"action.method\"\n @click=\"action.method\"\n :class=\"action.class || 'radius-extra pd-thin uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </button>\n </template>\n </header>\n\n <Tab\n v-if=\"tabs\"\n :selected=\"tabs_current\"\n @update:selected=\"updateTabsCurrent\"\n :tabs=\"tabs\"\n class=\"mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular\"\n />\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\n\nconst emits = defineEmits([\n 'update:tabs_current'\n])\n\nconst props = defineProps({\n title: String,\n actions: Array,\n tabs: Array,\n tabs_current: [Object, String]\n});\n\nconst updateTabsCurrent = (newValue) => {\n emits('update:tabs_current', newValue); // Emitting to parent component\n}\n</script>\n\n<style scoped>\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA2CA,UAAM,QAAQ;AAWd,UAAM,oBAAoB,CAAC,aAAa;AACtC,YAAM,uBAAuB,QAAQ;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -194,7 +194,7 @@ const _sfc_main = {
|
|
|
194
194
|
_cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "p-regular t-transp mn-b-big" }, " Access premium cameras, lenses, lighting, and audio gear through our app designed for filmmakers and content creators. ", -1)),
|
|
195
195
|
vue.createElementVNode("button", {
|
|
196
196
|
onClick: nextSlide,
|
|
197
|
-
class: "bg-main p-
|
|
197
|
+
class: "bg-main p-semi w-max button"
|
|
198
198
|
}, " Get Started ")
|
|
199
199
|
], 4)
|
|
200
200
|
]),
|
|
@@ -208,11 +208,11 @@ const _sfc_main = {
|
|
|
208
208
|
vue.createElementVNode("div", { class: "flex flex-column flex-center gap-small" }, [
|
|
209
209
|
vue.createElementVNode("button", {
|
|
210
210
|
onClick: requestNotificationPermission,
|
|
211
|
-
class: "bg-main p-
|
|
211
|
+
class: "bg-main p-semi w-max button"
|
|
212
212
|
}, " Enable Notifications "),
|
|
213
213
|
vue.createElementVNode("button", {
|
|
214
214
|
onClick: nextSlide,
|
|
215
|
-
class: "bg-light p-
|
|
215
|
+
class: "bg-light p-semi w-max button"
|
|
216
216
|
}, " Maybe Later ")
|
|
217
217
|
])
|
|
218
218
|
])
|
|
@@ -227,11 +227,11 @@ const _sfc_main = {
|
|
|
227
227
|
vue.createElementVNode("div", { class: "flex flex-column flex-center gap-small" }, [
|
|
228
228
|
vue.createElementVNode("button", {
|
|
229
229
|
onClick: requestLocationPermission,
|
|
230
|
-
class: "bg-main p-
|
|
230
|
+
class: "bg-main p-semi w-max button"
|
|
231
231
|
}, " Enable Location "),
|
|
232
232
|
vue.createElementVNode("button", {
|
|
233
233
|
onClick: nextSlide,
|
|
234
|
-
class: "bg-light p-
|
|
234
|
+
class: "bg-light p-semi w-max button"
|
|
235
235
|
}, " Skip for Now ")
|
|
236
236
|
])
|
|
237
237
|
])
|
|
@@ -246,11 +246,11 @@ const _sfc_main = {
|
|
|
246
246
|
vue.createElementVNode("div", { class: "flex flex-column flex-center gap-small" }, [
|
|
247
247
|
vue.createElementVNode("button", {
|
|
248
248
|
onClick: requestTrackingPermission,
|
|
249
|
-
class: "bg-main p-
|
|
249
|
+
class: "bg-main p-semi w-max button"
|
|
250
250
|
}, " Allow Tracking "),
|
|
251
251
|
vue.createElementVNode("button", {
|
|
252
252
|
onClick: nextSlide,
|
|
253
|
-
class: "bg-light p-
|
|
253
|
+
class: "bg-light p-semi w-max button"
|
|
254
254
|
}, " Ask App Not to Track ")
|
|
255
255
|
])
|
|
256
256
|
])
|
|
@@ -266,16 +266,16 @@ const _sfc_main = {
|
|
|
266
266
|
_cache[15] || (_cache[15] = vue.createElementVNode("p", { class: "p-regular t-transp mn-b-big" }, "Join thousands of creators who trust 3SR for their professional video equipment needs. Choose how you'd like to get started.", -1)),
|
|
267
267
|
vue.createElementVNode("button", {
|
|
268
268
|
onClick: _cache[0] || (_cache[0] = ($event) => openFirstRoute("Sign Up")),
|
|
269
|
-
class: "bg-main p-
|
|
269
|
+
class: "bg-main p-semi w-100 button mn-b-thin"
|
|
270
270
|
}, "Create Account"),
|
|
271
271
|
vue.createElementVNode("button", {
|
|
272
272
|
onClick: _cache[1] || (_cache[1] = ($event) => openFirstRoute("Sign In")),
|
|
273
|
-
class: "bg-light t-black p-
|
|
273
|
+
class: "bg-light t-black p-semi w-100 button mn-b-semi"
|
|
274
274
|
}, "Sign In"),
|
|
275
275
|
_cache[16] || (_cache[16] = vue.createElementVNode("p", { class: "p-small mn-b-medium t-transp" }, "Or explore as a guest:", -1)),
|
|
276
276
|
vue.createElementVNode("button", {
|
|
277
277
|
onClick: _cache[2] || (_cache[2] = ($event) => setFirstUseFalse()),
|
|
278
|
-
class: "bg-light p-
|
|
278
|
+
class: "bg-light p-semi w-max button"
|
|
279
279
|
}, "Continue as Guest")
|
|
280
280
|
])
|
|
281
281
|
])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Walkthrough.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/sections/Walkthrough.vue"],"sourcesContent":["<template>\n\t<div class=\"pos-fixed pos-t-0 pos-l-0 w-100 h-100vh z-index-6 bg-white flex embla\" ref=\"emblaNode\">\n \n\n <div class=\"embla__container w-100 z-index-1\">\n\t \n\n\t\t <!-- SLIDE 1 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t \t\t<!-- <div class=\"pos-absolute w-100 h-100 z-index-0 pos-t-0 pos-r-0\">\n\t \t\t\t<div class=\"pos-absolute z-index-1 pos-t-0 pos-r-0 w-100 h-100 bg-black-grad\"></div>\n\t \t\t\t<img class=\"pos-absolute z-index-0 pos-t-0 pos-r-0 object-fit-cover h-100 w-100\" src=\"/assets/walkthrough/1.png\">\n\t \t\t</div> -->\n \t\t<div \n \t\t\tclass=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\"\n \t\t\t :style=\"{ opacity: tweenSlides.length ? tweenSlides[0] : undefined, transform: tweenSlides[0] ? `scale(${tweenSlides[0]})` : '' }\"\n \t\t>\n \t\t\t<img \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\n\t <h3 class=\"h3 mn-b-medium\">Welcome to 3SR</h3>\n\t \n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Access premium cameras, lenses, lighting, and audio gear through our app designed for filmmakers and content creators.\n\t </p>\n\n\n\t <button @click=\"nextSlide\" class=\"bg-main p-big w-max button\">\n\t Get Started\n\t </button>\n\t </div>\n \t</div>\n\n \t<!-- SLIDE 2 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t\t\t\t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconBell/>\n </div>\n\n\t <h3 class=\"h3 mn-b-medium\">Stay in the Loop</h3>\n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Get instant notifications about equipment availability, booking confirmations, and exclusive deals from our rental platform.\n\t </p>\n\n\t <div class=\"flex flex-column flex-center gap-small\">\n\t <button @click=\"requestNotificationPermission\" class=\"bg-main p-big w-max button\">\n\t\t\t\t\t\t \t Enable Notifications\n\t\t\t\t\t\t </button>\n\t <button @click=\"nextSlide\" class=\"bg-light p-big w-max button\">\n\t Maybe Later\n\t </button>\n\t </div>\n\t </div>\n\t\t\t</div>\n\n\t\t\t<!-- SLIDE 3 -->\n\t\t <!-- ------------------------------- -->\n\t\t\t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconAddress/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Find Nearby Equipment</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Discover rental locations and equipment availability near you. We'll show you the closest pickup points and delivery options.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestLocationPermission\" class=\"bg-main p-big w-max button\">\n Enable Location\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-big w-max button\">\n Skip for Now\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 4 - App Tracking Transparency -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconShield/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Personalized Experience</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Allow us to provide you with personalized recommendations and improve your app experience based on your preferences.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestTrackingPermission\" class=\"bg-main p-big w-max button\">\n Allow Tracking\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-big w-max button\">\n Ask App Not to Track\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 5 - Final -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n \t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n\t \t<img loading=\"lazy\" \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\t \t<h3 class=\"h3 mn-b-medium\">Ready to Rent?</h3>\n\t \t<p class=\"p-regular t-transp mn-b-big\">Join thousands of creators who trust 3SR for their professional video equipment needs. Choose how you'd like to get started.</p>\n\t \n\t \t<button @click=\"openFirstRoute('Sign Up')\" class=\"bg-main p-big w-100 button mn-b-thin\">Create Account</button> \n\t \t<button @click=\"openFirstRoute('Sign In')\" class=\"bg-light t-black p-big w-100 button mn-b-semi\">Sign In</button>\n\n\t\t <p class=\"p-small mn-b-medium t-transp\">Or explore as a guest:</p> \n\t \t<button @click=\"setFirstUseFalse()\" class=\"bg-light p-big w-max button\">Continue as Guest</button>\n \t</div>\n\t </div>\n\n </div>\n\n <div class=\"\n\t embla__dots\n \tz-index-5 \n \th-4r \n \tpos-absolute \n \tpos-t-1r \n \tflex-nowrap \n \tflex \n \tflex-center \n \tgap-thin \n \tw-100\"\n >\n\t <button\n\t v-for=\"(snap, index) in scrollSnaps\"\n\t :key=\"index\"\n\t @click=\"scrollTo(index)\"\n\t :class=\"[\n\t 'embla__dot bg- i-small radius-extra',\n\t\t\t\t\t{ 'bg-light': index !== selectedIndex },\n\t { 'bg-main': index === selectedIndex }\n\t ]\"\n\t >\n\t\t </button>\n\n\t\t <button \n\t\t \t@click.native=\"setFirstUseFalse()\" \n\t\t \tclass=\"\n\t\t \t\tpd-small\n\t\t \t\tbg-white\n\t\t \t\tt-black\n\t\t \t\tw-6r \n\t\t \t\tpos-b-0r \n\t\t \t\tflex-nowrap \n\t\t \t\tflex \n\t\t \t\tflex-center \n\t\t \t\tpos-r-1r \n\t\t \t\tpos-relative \n\t\t \t\tradius-small \n\t\t \t\tuppercase \n\t\t \t\tpos-absolute\n\t\t \t\"> \n\t\t \t<span>Skip</span>\n\t\t </button>\n\t </div>\n\t</div>\n\n</template>\n\n<script setup>\n\timport { ref, onMounted, reactive, inject } from 'vue';\n\timport { useRoute, useRouter } from 'vue-router'\n\n\timport emblaCarouselVue from 'embla-carousel-vue'; \n\n\timport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\n\timport IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\timport IconShield from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\n\timport { AppTrackingTransparency } from 'capacitor-plugin-app-tracking-transparency';\n\n\tconst props = defineProps(['slides', 'options']);\n\tconst emits = defineEmits(['updateFirstUse'])\n\tconst router = useRouter()\n\t\n\t// Get notification manager directly\n\timport ModuleNotifications from '@martyrs/src/modules/notifications/notifications.client.js'\n\n\t// Set firstUse\n\timport { Preferences } from '@capacitor/preferences';\n\n\tconst permissions = reactive({\n\t notifications: false,\n\t location: false,\n\t tracking: false\n\t})\n\n\tasync function setFirstUseFalse() {\n await Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n emits('updateFirstUse', false);\n }\n\n async function openFirstRoute(routeName) {\n\t\tawait router.push({name: routeName})\n\n\t\tawait Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n\t\temits('updateFirstUse', false);\n\t}\n\n\tconst [emblaNode, emblaApi] = emblaCarouselVue({ loop: false })\n\n\tconst selectedIndex = ref(0);\n\tconst scrollSnaps = ref([]);\n\tconst TWEEN_FACTOR = 3\n\tconst tweenValues = ref([])\n\tconst tweenSlides = ref([])\n\n\tconst scrollTo = (index) => emblaApi.value && emblaApi.value.scrollTo(index);\n\n\tconst nextSlide = () => {\n\t\tif (emblaApi.value) {\n\t\t\temblaApi.value.scrollNext();\n\t\t}\n\t};\n\n\tconst onInit = (embla) => {\n\t scrollSnaps.value = emblaApi.value.scrollSnapList();\n\t};\n\n\tconst onSelect = (embla) => {\n\t selectedIndex.value = emblaApi.value.selectedScrollSnap();\n\t};\n\n\tlet scrollRAF = null;\n\tconst onScroll = (embla) => {\n\t\t// Cancel previous frame if exists\n\t\tif (scrollRAF) cancelAnimationFrame(scrollRAF);\n\t\t\n\t\tscrollRAF = requestAnimationFrame(() => {\n\t\t\tconst engine = emblaApi.value.internalEngine()\n\t\t\tconst scrollProgress = emblaApi.value.scrollProgress()\n\t\t\t// Cache snapList to avoid calling it twice\n\t\t\tconst snapList = emblaApi.value.scrollSnapList()\n\n\t\t\tconst stylesOpacity = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst tweenValue = 1 - Math.abs(diffToTarget * TWEEN_FACTOR)\n\t\t\t\treturn Math.min(Math.max(tweenValue, 0), 1)\n\t\t\t})\n\n\t\t\tconst styles = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn diffToTarget * (1 / TWEEN_FACTOR) * 100\n\t\t\t})\n\n\t\t\t// Batch updates together\n\t\t\ttweenSlides.value = stylesOpacity\n\t\t\ttweenValues.value = styles\n\t\t});\n\t}\n\n\n\tonMounted(() => {\n\t emblaApi.value.on('init', onInit)\n\t emblaApi.value.on('select', onSelect)\n\t emblaApi.value.on('scroll', onScroll)\n\t});\n\n\tconst requestNotificationPermission = async () => {\n\t try {\n\t // Use notification manager from global store if available\n\t const notificationManager = window.$store?.notificationManager;\n\t \n\t if (notificationManager) {\n\t await notificationManager.pushHandler.requestPermissions();\n\t await notificationManager.registerWebPush(window.$store);\n\t permissions.notifications = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t } catch (error) {\n\t console.error('Notification permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestLocationPermission = async () => {\n\t try {\n\t if (!('geolocation' in navigator)) {\n\t nextSlide()\n\t return\n\t }\n\n\t navigator.geolocation.getCurrentPosition(\n\t () => {\n\t permissions.location = true\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t () => {\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t { timeout: 8000 }\n\t )\n\t } catch (error) {\n\t console.error('Location permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestTrackingPermission = async () => {\n\t try {\n\t const { status } = await AppTrackingTransparency.requestPermission();\n\t \n\t if (status === 'authorized') {\n\t permissions.tracking = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide();\n\t }, 1000);\n\t } catch (error) {\n\t console.error('Tracking permission error:', error);\n\t nextSlide();\n\t }\n\t};\n\n</script>\n\n<style lang=\"scss\">\n\t.embla {\n overflow: hidden;\n }\n .embla__container {\n display: flex;\n }\n .embla__slide {\n flex: 0 0 100%;\n min-width: 0;\n }\n</style>\n"],"names":["useRouter","reactive","Preferences","emblaCarouselVue","ref","index","onMounted","AppTrackingTransparency"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuOC,MAAM,eAAe;;;;;;AAvCrB,UAAM,QAAQ;AACd,UAAM,SAASA,UAAAA,UAAS;AAQxB,UAAM,cAAcC,IAAAA,SAAS;AAAA,MAC3B,eAAe;AAAA,MACf,UAAU;AAAA,MACV,UAAU;AAAA,IACb,CAAE;AAED,mBAAe,mBAAmB;AAC/B,YAAMC,QAAAA,YAAY,IAAI;AAAA,QACpB,KAAK;AAAA,QACL,OAAO,KAAK,UAAU,KAAK;AAAA,MACjC,CAAK;AAED,YAAM,kBAAkB,KAAK;AAAA,IAC/B;AAEA,mBAAe,eAAe,WAAW;AACzC,YAAM,OAAO,KAAK,EAAC,MAAM,UAAS,CAAC;AAEnC,YAAMA,QAAAA,YAAY,IAAI;AAAA,QAClB,KAAK;AAAA,QACL,OAAO,KAAK,UAAU,KAAK;AAAA,MACjC,CAAK;AAEH,YAAM,kBAAkB,KAAK;AAAA,IAC9B;AAEA,UAAM,CAAC,WAAW,QAAQ,IAAIC,qBAAAA,QAAiB,EAAE,MAAM,MAAK,CAAE;AAE9D,UAAM,gBAAgBC,IAAAA,IAAI,CAAC;AAC3B,UAAM,cAAcA,IAAAA,IAAI,EAAE;AAE1B,UAAM,cAAcA,IAAAA,IAAI,CAAA,CAAE;AAC1B,UAAM,cAAcA,IAAAA,IAAI,CAAA,CAAE;AAE1B,UAAM,WAAW,CAACC,WAAU,SAAS,SAAS,SAAS,MAAM,SAASA,MAAK;AAE3E,UAAM,YAAY,MAAM;AACvB,UAAI,SAAS,OAAO;AACnB,iBAAS,MAAM,WAAU;AAAA,MAC1B;AAAA,IACD;AAEA,UAAM,SAAS,CAAC,UAAU;AACxB,kBAAY,QAAQ,SAAS,MAAM,eAAc;AAAA,IACnD;AAEA,UAAM,WAAW,CAAC,UAAU;AAC1B,oBAAc,QAAQ,SAAS,MAAM,mBAAkB;AAAA,IACzD;AAEA,QAAI,YAAY;AAChB,UAAM,WAAW,CAAC,UAAU;AAE3B,UAAI,UAAW,sBAAqB,SAAS;AAE7C,kBAAY,sBAAsB,MAAM;AACvC,cAAM,SAAS,SAAS,MAAM,eAAc;AAC5C,cAAM,iBAAiB,SAAS,MAAM,eAAc;AAEpD,cAAM,WAAW,SAAS,MAAM,eAAc;AAE9C,cAAM,gBAAgB,SAAS,IAAI,CAAC,YAAYA,WAAU;AACzD,cAAI,eAAe,aAAa;AAEhC,cAAI,OAAO,QAAQ,MAAM;AACxB,mBAAO,YAAY,WAAW,QAAQ,CAAC,aAAa;AACnD,oBAAM,SAAS,SAAS,OAAM;AAC9B,kBAAIA,WAAU,SAAS,SAAS,WAAW,GAAG;AAC7C,sBAAM,OAAO,KAAK,KAAK,MAAM;AAC7B,oBAAI,SAAS,GAAI,gBAAe,cAAc,IAAI;AAClD,oBAAI,SAAS,EAAG,gBAAe,cAAc,IAAI;AAAA,cAClD;AAAA,YACD,CAAC;AAAA,UACF;AACA,gBAAM,aAAa,IAAI,KAAK,IAAI,eAAe,YAAY;AAC3D,iBAAQ,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,CAAC;AAAA,QAC5C,CAAC;AAED,cAAM,SAAS,SAAS,IAAI,CAAC,YAAYA,WAAU;AAClD,cAAI,eAAe,aAAa;AAEhC,cAAI,OAAO,QAAQ,MAAM;AACxB,mBAAO,YAAY,WAAW,QAAQ,CAAC,aAAa;AACnD,oBAAM,SAAS,SAAS,OAAM;AAC9B,kBAAIA,WAAU,SAAS,SAAS,WAAW,GAAG;AAC7C,sBAAM,OAAO,KAAK,KAAK,MAAM;AAC7B,oBAAI,SAAS,GAAI,gBAAe,cAAc,IAAI;AAClD,oBAAI,SAAS,EAAG,gBAAe,cAAc,IAAI;AAAA,cAClD;AAAA,YACD,CAAC;AAAA,UACF;AACA,iBAAO,gBAAgB,IAAI,gBAAgB;AAAA,QAC5C,CAAC;AAGD,oBAAY,QAAQ;AACpB,oBAAY,QAAQ;AAAA,MACrB,CAAC;AAAA,IACF;AAGAC,QAAAA,UAAU,MAAM;AACd,eAAS,MAAM,GAAG,QAAQ,MAAM;AAChC,eAAS,MAAM,GAAG,UAAU,QAAQ;AACpC,eAAS,MAAM,GAAG,UAAU,QAAQ;AAAA,IACtC,CAAC;AAED,UAAM,gCAAgC,YAAY;AAChD,UAAI;AAEF,cAAM,sBAAsB,OAAO,QAAQ;AAE3C,YAAI,qBAAqB;AACvB,gBAAM,oBAAoB,YAAY,mBAAkB;AACxD,gBAAM,oBAAoB,gBAAgB,OAAO,MAAM;AACvD,sBAAY,gBAAgB;AAAA,QAC9B;AAEA,mBAAW,MAAM;AACf,oBAAS;AAAA,QACX,GAAG,GAAI;AAAA,MACT,SAAS,OAAO;AACd,gBAAQ,MAAM,kCAAkC,KAAK;AACrD,kBAAS;AAAA,MACX;AAAA,IACF;AAEA,UAAM,4BAA4B,YAAY;AAC5C,UAAI;AACF,YAAI,EAAE,iBAAiB,YAAY;AACjC,oBAAS;AACT;AAAA,QACF;AAEA,kBAAU,YAAY;AAAA,UACpB,MAAM;AACJ,wBAAY,WAAW;AACvB,uBAAW,MAAM;AACf,wBAAS;AAAA,YACX,GAAG,GAAI;AAAA,UACT;AAAA,UACA,MAAM;AACJ,uBAAW,MAAM;AACf,wBAAS;AAAA,YACX,GAAG,GAAI;AAAA,UACT;AAAA,UACA,EAAE,SAAS,IAAI;AAAA,QACtB;AAAA,MACG,SAAS,OAAO;AACd,gBAAQ,MAAM,8BAA8B,KAAK;AACjD,kBAAS;AAAA,MACX;AAAA,IACF;AAEA,UAAM,4BAA4B,YAAY;AAC5C,UAAI;AACF,cAAM,EAAE,OAAM,IAAK,MAAMC,MAAAA,wBAAwB,kBAAiB;AAElE,YAAI,WAAW,cAAc;AAC3B,sBAAY,WAAW;AAAA,QACzB;AAEA,mBAAW,MAAM;AACf,oBAAS;AAAA,QACX,GAAG,GAAI;AAAA,MACT,SAAS,OAAO;AACd,gBAAQ,MAAM,8BAA8B,KAAK;AACjD,kBAAS;AAAA,MACX;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Walkthrough.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/sections/Walkthrough.vue"],"sourcesContent":["<template>\n\t<div class=\"pos-fixed pos-t-0 pos-l-0 w-100 h-100vh z-index-6 bg-white flex embla\" ref=\"emblaNode\">\n \n\n <div class=\"embla__container w-100 z-index-1\">\n\t \n\n\t\t <!-- SLIDE 1 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t \t\t<!-- <div class=\"pos-absolute w-100 h-100 z-index-0 pos-t-0 pos-r-0\">\n\t \t\t\t<div class=\"pos-absolute z-index-1 pos-t-0 pos-r-0 w-100 h-100 bg-black-grad\"></div>\n\t \t\t\t<img class=\"pos-absolute z-index-0 pos-t-0 pos-r-0 object-fit-cover h-100 w-100\" src=\"/assets/walkthrough/1.png\">\n\t \t\t</div> -->\n \t\t<div \n \t\t\tclass=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\"\n \t\t\t :style=\"{ opacity: tweenSlides.length ? tweenSlides[0] : undefined, transform: tweenSlides[0] ? `scale(${tweenSlides[0]})` : '' }\"\n \t\t>\n \t\t\t<img \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\n\t <h3 class=\"h3 mn-b-medium\">Welcome to 3SR</h3>\n\t \n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Access premium cameras, lenses, lighting, and audio gear through our app designed for filmmakers and content creators.\n\t </p>\n\n\n\t <button @click=\"nextSlide\" class=\"bg-main p-semi w-max button\">\n\t Get Started\n\t </button>\n\t </div>\n \t</div>\n\n \t<!-- SLIDE 2 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t\t\t\t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconBell/>\n </div>\n\n\t <h3 class=\"h3 mn-b-medium\">Stay in the Loop</h3>\n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Get instant notifications about equipment availability, booking confirmations, and exclusive deals from our rental platform.\n\t </p>\n\n\t <div class=\"flex flex-column flex-center gap-small\">\n\t <button @click=\"requestNotificationPermission\" class=\"bg-main p-semi w-max button\">\n\t\t\t\t\t\t \t Enable Notifications\n\t\t\t\t\t\t </button>\n\t <button @click=\"nextSlide\" class=\"bg-light p-semi w-max button\">\n\t Maybe Later\n\t </button>\n\t </div>\n\t </div>\n\t\t\t</div>\n\n\t\t\t<!-- SLIDE 3 -->\n\t\t <!-- ------------------------------- -->\n\t\t\t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconAddress/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Find Nearby Equipment</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Discover rental locations and equipment availability near you. We'll show you the closest pickup points and delivery options.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestLocationPermission\" class=\"bg-main p-semi w-max button\">\n Enable Location\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-semi w-max button\">\n Skip for Now\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 4 - App Tracking Transparency -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconShield/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Personalized Experience</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Allow us to provide you with personalized recommendations and improve your app experience based on your preferences.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestTrackingPermission\" class=\"bg-main p-semi w-max button\">\n Allow Tracking\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-semi w-max button\">\n Ask App Not to Track\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 5 - Final -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n \t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n\t \t<img loading=\"lazy\" \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\t \t<h3 class=\"h3 mn-b-medium\">Ready to Rent?</h3>\n\t \t<p class=\"p-regular t-transp mn-b-big\">Join thousands of creators who trust 3SR for their professional video equipment needs. Choose how you'd like to get started.</p>\n\t \n\t \t<button @click=\"openFirstRoute('Sign Up')\" class=\"bg-main p-semi w-100 button mn-b-thin\">Create Account</button> \n\t \t<button @click=\"openFirstRoute('Sign In')\" class=\"bg-light t-black p-semi w-100 button mn-b-semi\">Sign In</button>\n\n\t\t <p class=\"p-small mn-b-medium t-transp\">Or explore as a guest:</p> \n\t \t<button @click=\"setFirstUseFalse()\" class=\"bg-light p-semi w-max button\">Continue as Guest</button>\n \t</div>\n\t </div>\n\n </div>\n\n <div class=\"\n\t embla__dots\n \tz-index-5 \n \th-4r \n \tpos-absolute \n \tpos-t-1r \n \tflex-nowrap \n \tflex \n \tflex-center \n \tgap-thin \n \tw-100\"\n >\n\t <button\n\t v-for=\"(snap, index) in scrollSnaps\"\n\t :key=\"index\"\n\t @click=\"scrollTo(index)\"\n\t :class=\"[\n\t 'embla__dot bg- i-small radius-extra',\n\t\t\t\t\t{ 'bg-light': index !== selectedIndex },\n\t { 'bg-main': index === selectedIndex }\n\t ]\"\n\t >\n\t\t </button>\n\n\t\t <button \n\t\t \t@click.native=\"setFirstUseFalse()\" \n\t\t \tclass=\"\n\t\t \t\tpd-small\n\t\t \t\tbg-white\n\t\t \t\tt-black\n\t\t \t\tw-6r \n\t\t \t\tpos-b-0r \n\t\t \t\tflex-nowrap \n\t\t \t\tflex \n\t\t \t\tflex-center \n\t\t \t\tpos-r-1r \n\t\t \t\tpos-relative \n\t\t \t\tradius-small \n\t\t \t\tuppercase \n\t\t \t\tpos-absolute\n\t\t \t\"> \n\t\t \t<span>Skip</span>\n\t\t </button>\n\t </div>\n\t</div>\n\n</template>\n\n<script setup>\n\timport { ref, onMounted, reactive, inject } from 'vue';\n\timport { useRoute, useRouter } from 'vue-router'\n\n\timport emblaCarouselVue from 'embla-carousel-vue'; \n\n\timport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\n\timport IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\timport IconShield from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\n\timport { AppTrackingTransparency } from 'capacitor-plugin-app-tracking-transparency';\n\n\tconst props = defineProps(['slides', 'options']);\n\tconst emits = defineEmits(['updateFirstUse'])\n\tconst router = useRouter()\n\t\n\t// Get notification manager directly\n\timport ModuleNotifications from '@martyrs/src/modules/notifications/notifications.client.js'\n\n\t// Set firstUse\n\timport { Preferences } from '@capacitor/preferences';\n\n\tconst permissions = reactive({\n\t notifications: false,\n\t location: false,\n\t tracking: false\n\t})\n\n\tasync function setFirstUseFalse() {\n await Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n emits('updateFirstUse', false);\n }\n\n async function openFirstRoute(routeName) {\n\t\tawait router.push({name: routeName})\n\n\t\tawait Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n\t\temits('updateFirstUse', false);\n\t}\n\n\tconst [emblaNode, emblaApi] = emblaCarouselVue({ loop: false })\n\n\tconst selectedIndex = ref(0);\n\tconst scrollSnaps = ref([]);\n\tconst TWEEN_FACTOR = 3\n\tconst tweenValues = ref([])\n\tconst tweenSlides = ref([])\n\n\tconst scrollTo = (index) => emblaApi.value && emblaApi.value.scrollTo(index);\n\n\tconst nextSlide = () => {\n\t\tif (emblaApi.value) {\n\t\t\temblaApi.value.scrollNext();\n\t\t}\n\t};\n\n\tconst onInit = (embla) => {\n\t scrollSnaps.value = emblaApi.value.scrollSnapList();\n\t};\n\n\tconst onSelect = (embla) => {\n\t selectedIndex.value = emblaApi.value.selectedScrollSnap();\n\t};\n\n\tlet scrollRAF = null;\n\tconst onScroll = (embla) => {\n\t\t// Cancel previous frame if exists\n\t\tif (scrollRAF) cancelAnimationFrame(scrollRAF);\n\t\t\n\t\tscrollRAF = requestAnimationFrame(() => {\n\t\t\tconst engine = emblaApi.value.internalEngine()\n\t\t\tconst scrollProgress = emblaApi.value.scrollProgress()\n\t\t\t// Cache snapList to avoid calling it twice\n\t\t\tconst snapList = emblaApi.value.scrollSnapList()\n\n\t\t\tconst stylesOpacity = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst tweenValue = 1 - Math.abs(diffToTarget * TWEEN_FACTOR)\n\t\t\t\treturn Math.min(Math.max(tweenValue, 0), 1)\n\t\t\t})\n\n\t\t\tconst styles = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn diffToTarget * (1 / TWEEN_FACTOR) * 100\n\t\t\t})\n\n\t\t\t// Batch updates together\n\t\t\ttweenSlides.value = stylesOpacity\n\t\t\ttweenValues.value = styles\n\t\t});\n\t}\n\n\n\tonMounted(() => {\n\t emblaApi.value.on('init', onInit)\n\t emblaApi.value.on('select', onSelect)\n\t emblaApi.value.on('scroll', onScroll)\n\t});\n\n\tconst requestNotificationPermission = async () => {\n\t try {\n\t // Use notification manager from global store if available\n\t const notificationManager = window.$store?.notificationManager;\n\t \n\t if (notificationManager) {\n\t await notificationManager.pushHandler.requestPermissions();\n\t await notificationManager.registerWebPush(window.$store);\n\t permissions.notifications = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t } catch (error) {\n\t console.error('Notification permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestLocationPermission = async () => {\n\t try {\n\t if (!('geolocation' in navigator)) {\n\t nextSlide()\n\t return\n\t }\n\n\t navigator.geolocation.getCurrentPosition(\n\t () => {\n\t permissions.location = true\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t () => {\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t { timeout: 8000 }\n\t )\n\t } catch (error) {\n\t console.error('Location permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestTrackingPermission = async () => {\n\t try {\n\t const { status } = await AppTrackingTransparency.requestPermission();\n\t \n\t if (status === 'authorized') {\n\t permissions.tracking = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide();\n\t }, 1000);\n\t } catch (error) {\n\t console.error('Tracking permission error:', error);\n\t nextSlide();\n\t }\n\t};\n\n</script>\n\n<style lang=\"scss\">\n\t.embla {\n overflow: hidden;\n }\n .embla__container {\n display: flex;\n }\n .embla__slide {\n flex: 0 0 100%;\n min-width: 0;\n }\n</style>\n"],"names":["useRouter","reactive","Preferences","emblaCarouselVue","ref","index","onMounted","AppTrackingTransparency"],"mappings":"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"}
|
|
@@ -192,7 +192,7 @@ const _sfc_main = {
|
|
|
192
192
|
_cache[6] || (_cache[6] = createElementVNode("p", { class: "p-regular t-transp mn-b-big" }, " Access premium cameras, lenses, lighting, and audio gear through our app designed for filmmakers and content creators. ", -1)),
|
|
193
193
|
createElementVNode("button", {
|
|
194
194
|
onClick: nextSlide,
|
|
195
|
-
class: "bg-main p-
|
|
195
|
+
class: "bg-main p-semi w-max button"
|
|
196
196
|
}, " Get Started ")
|
|
197
197
|
], 4)
|
|
198
198
|
]),
|
|
@@ -206,11 +206,11 @@ const _sfc_main = {
|
|
|
206
206
|
createElementVNode("div", { class: "flex flex-column flex-center gap-small" }, [
|
|
207
207
|
createElementVNode("button", {
|
|
208
208
|
onClick: requestNotificationPermission,
|
|
209
|
-
class: "bg-main p-
|
|
209
|
+
class: "bg-main p-semi w-max button"
|
|
210
210
|
}, " Enable Notifications "),
|
|
211
211
|
createElementVNode("button", {
|
|
212
212
|
onClick: nextSlide,
|
|
213
|
-
class: "bg-light p-
|
|
213
|
+
class: "bg-light p-semi w-max button"
|
|
214
214
|
}, " Maybe Later ")
|
|
215
215
|
])
|
|
216
216
|
])
|
|
@@ -225,11 +225,11 @@ const _sfc_main = {
|
|
|
225
225
|
createElementVNode("div", { class: "flex flex-column flex-center gap-small" }, [
|
|
226
226
|
createElementVNode("button", {
|
|
227
227
|
onClick: requestLocationPermission,
|
|
228
|
-
class: "bg-main p-
|
|
228
|
+
class: "bg-main p-semi w-max button"
|
|
229
229
|
}, " Enable Location "),
|
|
230
230
|
createElementVNode("button", {
|
|
231
231
|
onClick: nextSlide,
|
|
232
|
-
class: "bg-light p-
|
|
232
|
+
class: "bg-light p-semi w-max button"
|
|
233
233
|
}, " Skip for Now ")
|
|
234
234
|
])
|
|
235
235
|
])
|
|
@@ -244,11 +244,11 @@ const _sfc_main = {
|
|
|
244
244
|
createElementVNode("div", { class: "flex flex-column flex-center gap-small" }, [
|
|
245
245
|
createElementVNode("button", {
|
|
246
246
|
onClick: requestTrackingPermission,
|
|
247
|
-
class: "bg-main p-
|
|
247
|
+
class: "bg-main p-semi w-max button"
|
|
248
248
|
}, " Allow Tracking "),
|
|
249
249
|
createElementVNode("button", {
|
|
250
250
|
onClick: nextSlide,
|
|
251
|
-
class: "bg-light p-
|
|
251
|
+
class: "bg-light p-semi w-max button"
|
|
252
252
|
}, " Ask App Not to Track ")
|
|
253
253
|
])
|
|
254
254
|
])
|
|
@@ -264,16 +264,16 @@ const _sfc_main = {
|
|
|
264
264
|
_cache[15] || (_cache[15] = createElementVNode("p", { class: "p-regular t-transp mn-b-big" }, "Join thousands of creators who trust 3SR for their professional video equipment needs. Choose how you'd like to get started.", -1)),
|
|
265
265
|
createElementVNode("button", {
|
|
266
266
|
onClick: _cache[0] || (_cache[0] = ($event) => openFirstRoute("Sign Up")),
|
|
267
|
-
class: "bg-main p-
|
|
267
|
+
class: "bg-main p-semi w-100 button mn-b-thin"
|
|
268
268
|
}, "Create Account"),
|
|
269
269
|
createElementVNode("button", {
|
|
270
270
|
onClick: _cache[1] || (_cache[1] = ($event) => openFirstRoute("Sign In")),
|
|
271
|
-
class: "bg-light t-black p-
|
|
271
|
+
class: "bg-light t-black p-semi w-100 button mn-b-semi"
|
|
272
272
|
}, "Sign In"),
|
|
273
273
|
_cache[16] || (_cache[16] = createElementVNode("p", { class: "p-small mn-b-medium t-transp" }, "Or explore as a guest:", -1)),
|
|
274
274
|
createElementVNode("button", {
|
|
275
275
|
onClick: _cache[2] || (_cache[2] = ($event) => setFirstUseFalse()),
|
|
276
|
-
class: "bg-light p-
|
|
276
|
+
class: "bg-light p-semi w-max button"
|
|
277
277
|
}, "Continue as Guest")
|
|
278
278
|
])
|
|
279
279
|
])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Walkthrough.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/sections/Walkthrough.vue"],"sourcesContent":["<template>\n\t<div class=\"pos-fixed pos-t-0 pos-l-0 w-100 h-100vh z-index-6 bg-white flex embla\" ref=\"emblaNode\">\n \n\n <div class=\"embla__container w-100 z-index-1\">\n\t \n\n\t\t <!-- SLIDE 1 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t \t\t<!-- <div class=\"pos-absolute w-100 h-100 z-index-0 pos-t-0 pos-r-0\">\n\t \t\t\t<div class=\"pos-absolute z-index-1 pos-t-0 pos-r-0 w-100 h-100 bg-black-grad\"></div>\n\t \t\t\t<img class=\"pos-absolute z-index-0 pos-t-0 pos-r-0 object-fit-cover h-100 w-100\" src=\"/assets/walkthrough/1.png\">\n\t \t\t</div> -->\n \t\t<div \n \t\t\tclass=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\"\n \t\t\t :style=\"{ opacity: tweenSlides.length ? tweenSlides[0] : undefined, transform: tweenSlides[0] ? `scale(${tweenSlides[0]})` : '' }\"\n \t\t>\n \t\t\t<img \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\n\t <h3 class=\"h3 mn-b-medium\">Welcome to 3SR</h3>\n\t \n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Access premium cameras, lenses, lighting, and audio gear through our app designed for filmmakers and content creators.\n\t </p>\n\n\n\t <button @click=\"nextSlide\" class=\"bg-main p-big w-max button\">\n\t Get Started\n\t </button>\n\t </div>\n \t</div>\n\n \t<!-- SLIDE 2 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t\t\t\t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconBell/>\n </div>\n\n\t <h3 class=\"h3 mn-b-medium\">Stay in the Loop</h3>\n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Get instant notifications about equipment availability, booking confirmations, and exclusive deals from our rental platform.\n\t </p>\n\n\t <div class=\"flex flex-column flex-center gap-small\">\n\t <button @click=\"requestNotificationPermission\" class=\"bg-main p-big w-max button\">\n\t\t\t\t\t\t \t Enable Notifications\n\t\t\t\t\t\t </button>\n\t <button @click=\"nextSlide\" class=\"bg-light p-big w-max button\">\n\t Maybe Later\n\t </button>\n\t </div>\n\t </div>\n\t\t\t</div>\n\n\t\t\t<!-- SLIDE 3 -->\n\t\t <!-- ------------------------------- -->\n\t\t\t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconAddress/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Find Nearby Equipment</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Discover rental locations and equipment availability near you. We'll show you the closest pickup points and delivery options.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestLocationPermission\" class=\"bg-main p-big w-max button\">\n Enable Location\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-big w-max button\">\n Skip for Now\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 4 - App Tracking Transparency -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconShield/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Personalized Experience</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Allow us to provide you with personalized recommendations and improve your app experience based on your preferences.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestTrackingPermission\" class=\"bg-main p-big w-max button\">\n Allow Tracking\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-big w-max button\">\n Ask App Not to Track\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 5 - Final -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n \t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n\t \t<img loading=\"lazy\" \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\t \t<h3 class=\"h3 mn-b-medium\">Ready to Rent?</h3>\n\t \t<p class=\"p-regular t-transp mn-b-big\">Join thousands of creators who trust 3SR for their professional video equipment needs. Choose how you'd like to get started.</p>\n\t \n\t \t<button @click=\"openFirstRoute('Sign Up')\" class=\"bg-main p-big w-100 button mn-b-thin\">Create Account</button> \n\t \t<button @click=\"openFirstRoute('Sign In')\" class=\"bg-light t-black p-big w-100 button mn-b-semi\">Sign In</button>\n\n\t\t <p class=\"p-small mn-b-medium t-transp\">Or explore as a guest:</p> \n\t \t<button @click=\"setFirstUseFalse()\" class=\"bg-light p-big w-max button\">Continue as Guest</button>\n \t</div>\n\t </div>\n\n </div>\n\n <div class=\"\n\t embla__dots\n \tz-index-5 \n \th-4r \n \tpos-absolute \n \tpos-t-1r \n \tflex-nowrap \n \tflex \n \tflex-center \n \tgap-thin \n \tw-100\"\n >\n\t <button\n\t v-for=\"(snap, index) in scrollSnaps\"\n\t :key=\"index\"\n\t @click=\"scrollTo(index)\"\n\t :class=\"[\n\t 'embla__dot bg- i-small radius-extra',\n\t\t\t\t\t{ 'bg-light': index !== selectedIndex },\n\t { 'bg-main': index === selectedIndex }\n\t ]\"\n\t >\n\t\t </button>\n\n\t\t <button \n\t\t \t@click.native=\"setFirstUseFalse()\" \n\t\t \tclass=\"\n\t\t \t\tpd-small\n\t\t \t\tbg-white\n\t\t \t\tt-black\n\t\t \t\tw-6r \n\t\t \t\tpos-b-0r \n\t\t \t\tflex-nowrap \n\t\t \t\tflex \n\t\t \t\tflex-center \n\t\t \t\tpos-r-1r \n\t\t \t\tpos-relative \n\t\t \t\tradius-small \n\t\t \t\tuppercase \n\t\t \t\tpos-absolute\n\t\t \t\"> \n\t\t \t<span>Skip</span>\n\t\t </button>\n\t </div>\n\t</div>\n\n</template>\n\n<script setup>\n\timport { ref, onMounted, reactive, inject } from 'vue';\n\timport { useRoute, useRouter } from 'vue-router'\n\n\timport emblaCarouselVue from 'embla-carousel-vue'; \n\n\timport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\n\timport IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\timport IconShield from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\n\timport { AppTrackingTransparency } from 'capacitor-plugin-app-tracking-transparency';\n\n\tconst props = defineProps(['slides', 'options']);\n\tconst emits = defineEmits(['updateFirstUse'])\n\tconst router = useRouter()\n\t\n\t// Get notification manager directly\n\timport ModuleNotifications from '@martyrs/src/modules/notifications/notifications.client.js'\n\n\t// Set firstUse\n\timport { Preferences } from '@capacitor/preferences';\n\n\tconst permissions = reactive({\n\t notifications: false,\n\t location: false,\n\t tracking: false\n\t})\n\n\tasync function setFirstUseFalse() {\n await Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n emits('updateFirstUse', false);\n }\n\n async function openFirstRoute(routeName) {\n\t\tawait router.push({name: routeName})\n\n\t\tawait Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n\t\temits('updateFirstUse', false);\n\t}\n\n\tconst [emblaNode, emblaApi] = emblaCarouselVue({ loop: false })\n\n\tconst selectedIndex = ref(0);\n\tconst scrollSnaps = ref([]);\n\tconst TWEEN_FACTOR = 3\n\tconst tweenValues = ref([])\n\tconst tweenSlides = ref([])\n\n\tconst scrollTo = (index) => emblaApi.value && emblaApi.value.scrollTo(index);\n\n\tconst nextSlide = () => {\n\t\tif (emblaApi.value) {\n\t\t\temblaApi.value.scrollNext();\n\t\t}\n\t};\n\n\tconst onInit = (embla) => {\n\t scrollSnaps.value = emblaApi.value.scrollSnapList();\n\t};\n\n\tconst onSelect = (embla) => {\n\t selectedIndex.value = emblaApi.value.selectedScrollSnap();\n\t};\n\n\tlet scrollRAF = null;\n\tconst onScroll = (embla) => {\n\t\t// Cancel previous frame if exists\n\t\tif (scrollRAF) cancelAnimationFrame(scrollRAF);\n\t\t\n\t\tscrollRAF = requestAnimationFrame(() => {\n\t\t\tconst engine = emblaApi.value.internalEngine()\n\t\t\tconst scrollProgress = emblaApi.value.scrollProgress()\n\t\t\t// Cache snapList to avoid calling it twice\n\t\t\tconst snapList = emblaApi.value.scrollSnapList()\n\n\t\t\tconst stylesOpacity = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst tweenValue = 1 - Math.abs(diffToTarget * TWEEN_FACTOR)\n\t\t\t\treturn Math.min(Math.max(tweenValue, 0), 1)\n\t\t\t})\n\n\t\t\tconst styles = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn diffToTarget * (1 / TWEEN_FACTOR) * 100\n\t\t\t})\n\n\t\t\t// Batch updates together\n\t\t\ttweenSlides.value = stylesOpacity\n\t\t\ttweenValues.value = styles\n\t\t});\n\t}\n\n\n\tonMounted(() => {\n\t emblaApi.value.on('init', onInit)\n\t emblaApi.value.on('select', onSelect)\n\t emblaApi.value.on('scroll', onScroll)\n\t});\n\n\tconst requestNotificationPermission = async () => {\n\t try {\n\t // Use notification manager from global store if available\n\t const notificationManager = window.$store?.notificationManager;\n\t \n\t if (notificationManager) {\n\t await notificationManager.pushHandler.requestPermissions();\n\t await notificationManager.registerWebPush(window.$store);\n\t permissions.notifications = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t } catch (error) {\n\t console.error('Notification permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestLocationPermission = async () => {\n\t try {\n\t if (!('geolocation' in navigator)) {\n\t nextSlide()\n\t return\n\t }\n\n\t navigator.geolocation.getCurrentPosition(\n\t () => {\n\t permissions.location = true\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t () => {\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t { timeout: 8000 }\n\t )\n\t } catch (error) {\n\t console.error('Location permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestTrackingPermission = async () => {\n\t try {\n\t const { status } = await AppTrackingTransparency.requestPermission();\n\t \n\t if (status === 'authorized') {\n\t permissions.tracking = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide();\n\t }, 1000);\n\t } catch (error) {\n\t console.error('Tracking permission error:', error);\n\t nextSlide();\n\t }\n\t};\n\n</script>\n\n<style lang=\"scss\">\n\t.embla {\n overflow: hidden;\n }\n .embla__container {\n display: flex;\n }\n .embla__slide {\n flex: 0 0 100%;\n min-width: 0;\n }\n</style>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Walkthrough.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/sections/Walkthrough.vue"],"sourcesContent":["<template>\n\t<div class=\"pos-fixed pos-t-0 pos-l-0 w-100 h-100vh z-index-6 bg-white flex embla\" ref=\"emblaNode\">\n \n\n <div class=\"embla__container w-100 z-index-1\">\n\t \n\n\t\t <!-- SLIDE 1 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t \t\t<!-- <div class=\"pos-absolute w-100 h-100 z-index-0 pos-t-0 pos-r-0\">\n\t \t\t\t<div class=\"pos-absolute z-index-1 pos-t-0 pos-r-0 w-100 h-100 bg-black-grad\"></div>\n\t \t\t\t<img class=\"pos-absolute z-index-0 pos-t-0 pos-r-0 object-fit-cover h-100 w-100\" src=\"/assets/walkthrough/1.png\">\n\t \t\t</div> -->\n \t\t<div \n \t\t\tclass=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\"\n \t\t\t :style=\"{ opacity: tweenSlides.length ? tweenSlides[0] : undefined, transform: tweenSlides[0] ? `scale(${tweenSlides[0]})` : '' }\"\n \t\t>\n \t\t\t<img \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\n\t <h3 class=\"h3 mn-b-medium\">Welcome to 3SR</h3>\n\t \n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Access premium cameras, lenses, lighting, and audio gear through our app designed for filmmakers and content creators.\n\t </p>\n\n\n\t <button @click=\"nextSlide\" class=\"bg-main p-semi w-max button\">\n\t Get Started\n\t </button>\n\t </div>\n \t</div>\n\n \t<!-- SLIDE 2 -->\n\t\t <!-- ------------------------------- -->\n \t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n\t\t\t\t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconBell/>\n </div>\n\n\t <h3 class=\"h3 mn-b-medium\">Stay in the Loop</h3>\n\t <p class=\"p-regular t-transp mn-b-big\">\n\t Get instant notifications about equipment availability, booking confirmations, and exclusive deals from our rental platform.\n\t </p>\n\n\t <div class=\"flex flex-column flex-center gap-small\">\n\t <button @click=\"requestNotificationPermission\" class=\"bg-main p-semi w-max button\">\n\t\t\t\t\t\t \t Enable Notifications\n\t\t\t\t\t\t </button>\n\t <button @click=\"nextSlide\" class=\"bg-light p-semi w-max button\">\n\t Maybe Later\n\t </button>\n\t </div>\n\t </div>\n\t\t\t</div>\n\n\t\t\t<!-- SLIDE 3 -->\n\t\t <!-- ------------------------------- -->\n\t\t\t<div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n \n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconAddress/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Find Nearby Equipment</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Discover rental locations and equipment availability near you. We'll show you the closest pickup points and delivery options.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestLocationPermission\" class=\"bg-main p-semi w-max button\">\n Enable Location\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-semi w-max button\">\n Skip for Now\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 4 - App Tracking Transparency -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n <div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n <div class=\"mn-b-small w-4r h-4r mn-auto pd-regular bg-main radius-regular t-white flex flex-center\">\n <IconShield/>\n </div>\n\n <h3 class=\"h3 mn-b-medium\">Personalized Experience</h3>\n <p class=\"p-regular t-transp mn-b-big\">\n Allow us to provide you with personalized recommendations and improve your app experience based on your preferences.\n </p>\n\n <div class=\"flex flex-column flex-center gap-small\">\n <button @click=\"requestTrackingPermission\" class=\"bg-main p-semi w-max button\">\n Allow Tracking\n </button>\n <button @click=\"nextSlide\" class=\"bg-light p-semi w-max button\">\n Ask App Not to Track\n </button>\n </div>\n </div>\n </div>\n\n <!-- SLIDE 5 - Final -->\n\t\t <!-- ------------------------------- -->\n <div class=\"pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide\">\n \t<div class=\"flex flex-column flex-center pd-semi o-hidden pos-relative pos-b-0 z-index-1\">\n\t \t<img loading=\"lazy\" \n\t \t\t:src=\"'/logo/logo_square.svg'\" \n\t \t\tclass=\"i-extra radius-medium mn-b-small\"\n\t \t>\n\t \t<h3 class=\"h3 mn-b-medium\">Ready to Rent?</h3>\n\t \t<p class=\"p-regular t-transp mn-b-big\">Join thousands of creators who trust 3SR for their professional video equipment needs. Choose how you'd like to get started.</p>\n\t \n\t \t<button @click=\"openFirstRoute('Sign Up')\" class=\"bg-main p-semi w-100 button mn-b-thin\">Create Account</button> \n\t \t<button @click=\"openFirstRoute('Sign In')\" class=\"bg-light t-black p-semi w-100 button mn-b-semi\">Sign In</button>\n\n\t\t <p class=\"p-small mn-b-medium t-transp\">Or explore as a guest:</p> \n\t \t<button @click=\"setFirstUseFalse()\" class=\"bg-light p-semi w-max button\">Continue as Guest</button>\n \t</div>\n\t </div>\n\n </div>\n\n <div class=\"\n\t embla__dots\n \tz-index-5 \n \th-4r \n \tpos-absolute \n \tpos-t-1r \n \tflex-nowrap \n \tflex \n \tflex-center \n \tgap-thin \n \tw-100\"\n >\n\t <button\n\t v-for=\"(snap, index) in scrollSnaps\"\n\t :key=\"index\"\n\t @click=\"scrollTo(index)\"\n\t :class=\"[\n\t 'embla__dot bg- i-small radius-extra',\n\t\t\t\t\t{ 'bg-light': index !== selectedIndex },\n\t { 'bg-main': index === selectedIndex }\n\t ]\"\n\t >\n\t\t </button>\n\n\t\t <button \n\t\t \t@click.native=\"setFirstUseFalse()\" \n\t\t \tclass=\"\n\t\t \t\tpd-small\n\t\t \t\tbg-white\n\t\t \t\tt-black\n\t\t \t\tw-6r \n\t\t \t\tpos-b-0r \n\t\t \t\tflex-nowrap \n\t\t \t\tflex \n\t\t \t\tflex-center \n\t\t \t\tpos-r-1r \n\t\t \t\tpos-relative \n\t\t \t\tradius-small \n\t\t \t\tuppercase \n\t\t \t\tpos-absolute\n\t\t \t\"> \n\t\t \t<span>Skip</span>\n\t\t </button>\n\t </div>\n\t</div>\n\n</template>\n\n<script setup>\n\timport { ref, onMounted, reactive, inject } from 'vue';\n\timport { useRoute, useRouter } from 'vue-router'\n\n\timport emblaCarouselVue from 'embla-carousel-vue'; \n\n\timport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\n\timport IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\timport IconShield from '@martyrs/src/modules/icons/entities/IconAddress.vue';\n\n\timport { AppTrackingTransparency } from 'capacitor-plugin-app-tracking-transparency';\n\n\tconst props = defineProps(['slides', 'options']);\n\tconst emits = defineEmits(['updateFirstUse'])\n\tconst router = useRouter()\n\t\n\t// Get notification manager directly\n\timport ModuleNotifications from '@martyrs/src/modules/notifications/notifications.client.js'\n\n\t// Set firstUse\n\timport { Preferences } from '@capacitor/preferences';\n\n\tconst permissions = reactive({\n\t notifications: false,\n\t location: false,\n\t tracking: false\n\t})\n\n\tasync function setFirstUseFalse() {\n await Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n emits('updateFirstUse', false);\n }\n\n async function openFirstRoute(routeName) {\n\t\tawait router.push({name: routeName})\n\n\t\tawait Preferences.set({\n key: 'first-use',\n value: JSON.stringify(false),\n });\n\n\t\temits('updateFirstUse', false);\n\t}\n\n\tconst [emblaNode, emblaApi] = emblaCarouselVue({ loop: false })\n\n\tconst selectedIndex = ref(0);\n\tconst scrollSnaps = ref([]);\n\tconst TWEEN_FACTOR = 3\n\tconst tweenValues = ref([])\n\tconst tweenSlides = ref([])\n\n\tconst scrollTo = (index) => emblaApi.value && emblaApi.value.scrollTo(index);\n\n\tconst nextSlide = () => {\n\t\tif (emblaApi.value) {\n\t\t\temblaApi.value.scrollNext();\n\t\t}\n\t};\n\n\tconst onInit = (embla) => {\n\t scrollSnaps.value = emblaApi.value.scrollSnapList();\n\t};\n\n\tconst onSelect = (embla) => {\n\t selectedIndex.value = emblaApi.value.selectedScrollSnap();\n\t};\n\n\tlet scrollRAF = null;\n\tconst onScroll = (embla) => {\n\t\t// Cancel previous frame if exists\n\t\tif (scrollRAF) cancelAnimationFrame(scrollRAF);\n\t\t\n\t\tscrollRAF = requestAnimationFrame(() => {\n\t\t\tconst engine = emblaApi.value.internalEngine()\n\t\t\tconst scrollProgress = emblaApi.value.scrollProgress()\n\t\t\t// Cache snapList to avoid calling it twice\n\t\t\tconst snapList = emblaApi.value.scrollSnapList()\n\n\t\t\tconst stylesOpacity = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst tweenValue = 1 - Math.abs(diffToTarget * TWEEN_FACTOR)\n\t\t\t\treturn Math.min(Math.max(tweenValue, 0), 1)\n\t\t\t})\n\n\t\t\tconst styles = snapList.map((scrollSnap, index) => {\n\t\t\t\tlet diffToTarget = scrollSnap - scrollProgress\n\n\t\t\t\tif (engine.options.loop) {\n\t\t\t\t\tengine.slideLooper.loopPoints.forEach((loopItem) => {\n\t\t\t\t\t\tconst target = loopItem.target()\n\t\t\t\t\t\tif (index === loopItem.index && target !== 0) {\n\t\t\t\t\t\t\tconst sign = Math.sign(target)\n\t\t\t\t\t\t\tif (sign === -1) diffToTarget = scrollSnap - (1 + scrollProgress)\n\t\t\t\t\t\t\tif (sign === 1) diffToTarget = scrollSnap + (1 - scrollProgress)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn diffToTarget * (1 / TWEEN_FACTOR) * 100\n\t\t\t})\n\n\t\t\t// Batch updates together\n\t\t\ttweenSlides.value = stylesOpacity\n\t\t\ttweenValues.value = styles\n\t\t});\n\t}\n\n\n\tonMounted(() => {\n\t emblaApi.value.on('init', onInit)\n\t emblaApi.value.on('select', onSelect)\n\t emblaApi.value.on('scroll', onScroll)\n\t});\n\n\tconst requestNotificationPermission = async () => {\n\t try {\n\t // Use notification manager from global store if available\n\t const notificationManager = window.$store?.notificationManager;\n\t \n\t if (notificationManager) {\n\t await notificationManager.pushHandler.requestPermissions();\n\t await notificationManager.registerWebPush(window.$store);\n\t permissions.notifications = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t } catch (error) {\n\t console.error('Notification permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestLocationPermission = async () => {\n\t try {\n\t if (!('geolocation' in navigator)) {\n\t nextSlide()\n\t return\n\t }\n\n\t navigator.geolocation.getCurrentPosition(\n\t () => {\n\t permissions.location = true\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t () => {\n\t setTimeout(() => {\n\t nextSlide()\n\t }, 1000)\n\t },\n\t { timeout: 8000 }\n\t )\n\t } catch (error) {\n\t console.error('Location permission error:', error)\n\t nextSlide()\n\t }\n\t}\n\n\tconst requestTrackingPermission = async () => {\n\t try {\n\t const { status } = await AppTrackingTransparency.requestPermission();\n\t \n\t if (status === 'authorized') {\n\t permissions.tracking = true;\n\t }\n\t \n\t setTimeout(() => {\n\t nextSlide();\n\t }, 1000);\n\t } catch (error) {\n\t console.error('Tracking permission error:', error);\n\t nextSlide();\n\t }\n\t};\n\n</script>\n\n<style lang=\"scss\">\n\t.embla {\n overflow: hidden;\n }\n .embla__container {\n display: flex;\n }\n .embla__slide {\n flex: 0 0 100%;\n min-width: 0;\n }\n</style>\n"],"names":[],"mappings":"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"}
|
|
@@ -179,7 +179,7 @@ const _sfc_main = {
|
|
|
179
179
|
onClick: ($event) => selectedReason.value = reason.value,
|
|
180
180
|
class: vue.normalizeClass([{ "bg-main t-black": selectedReason.value === reason.value, "bg-light": selectedReason.value !== reason.value }, "pd-small radius-small flex-column flex-center flex cursor-pointer"])
|
|
181
181
|
}, [
|
|
182
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(reason.icon), { class: "i-
|
|
182
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(reason.icon), { class: "i-medium mn-b-nano" })),
|
|
183
183
|
vue.createElementVNode("span", null, vue.toDisplayString(reason.label), 1)
|
|
184
184
|
], 10, _hoisted_8);
|
|
185
185
|
}), 64))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdjustmentForm.vue.cjs","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small t-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-regular mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAdjustment\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close', 'adjustment-created'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('restock')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Other', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nasync function saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n throw new Error('Please select a variant')\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n throw new Error('Please select a storage')\n }\n\n try {\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value,\n comment: note.value || '',\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n const createdAdjustment = await inventory.actions.createAdjustment(adjustmentData)\n \n // Emit the adjustment data for parent component to update the product\n emit('adjustment-created', {\n product: props.product._id,\n storage: selectedStorage.value,\n quantity: parseInt(quantity.value || 0),\n storageName: storageOptions.value.find(s => s._id === selectedStorage.value)?.name\n })\n \n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["useRoute","ref","IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","onMounted","variants","spots.actions","auth.state","inventory.actions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AdjustmentForm.vue.cjs","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small t-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-medium mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAdjustment\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close', 'adjustment-created'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('restock')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Other', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nasync function saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n throw new Error('Please select a variant')\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n throw new Error('Please select a storage')\n }\n\n try {\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value,\n comment: note.value || '',\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n const createdAdjustment = await inventory.actions.createAdjustment(adjustmentData)\n \n // Emit the adjustment data for parent component to update the product\n emit('adjustment-created', {\n product: props.product._id,\n storage: selectedStorage.value,\n quantity: parseInt(quantity.value || 0),\n storageName: storageOptions.value.find(s => s._id === selectedStorage.value)?.name\n })\n \n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["useRoute","ref","IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","onMounted","variants","spots.actions","auth.state","inventory.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgHA,UAAM,QAAQA,UAAAA,SAAQ;AAUtB,UAAM,QAAQ;AAOd,UAAM,OAAO;AAGb,UAAM,WAAWC,IAAAA,IAAI,CAAC;AACtB,UAAM,iBAAiBA,IAAAA,IAAI,SAAS;AACpC,UAAM,OAAOA,IAAAA,IAAI,EAAE;AACnB,UAAM,kBAAkBA,IAAAA,IAAI,IAAI;AAChC,UAAM,kBAAkBA,IAAAA,IAAI,IAAI;AAChC,UAAM,kBAAkBA,IAAAA,IAAI,CAAA,CAAE;AAC9B,UAAM,iBAAiBA,IAAAA,IAAI,CAAA,CAAE;AAG7B,UAAM,oBAAoB;AAAA,MACxB,EAAE,OAAO,WAAW,OAAO,WAAW,MAAMC,SAAAA,QAAU;AAAA,MACtD,EAAE,OAAO,QAAQ,OAAO,QAAQ,MAAMC,SAAAA,QAAU;AAAA,MAChD,EAAE,OAAO,UAAU,OAAO,UAAU,MAAMC,SAAAA,QAAgB;AAAA,MAC1D,EAAE,OAAO,UAAU,OAAO,UAAU,MAAMC,SAAAA,QAAS;AAAA,MACnD,EAAE,OAAO,YAAY,OAAO,YAAY,MAAMC,SAAAA,QAAa;AAAA,MAC3D,EAAE,OAAO,SAAS,OAAO,UAAU,MAAMC,SAAAA,QAAU;AAAA,IACrD;AAOAC,QAAAA,UAAU,YAAY;AACpB,cAAQ,IAAI,wCAAwC,MAAM,OAAO;AAGjE,UAAI;AACF,cAAM,eAAe,MAAMC,eAAAA,QAAS,KAAK;AAAA,UACvC,SAAS,MAAM,QAAQ;AAAA,UACvB,OAAO;AAAA,QACb,CAAK;AACD,wBAAgB,QAAQ;AAExB,YAAI,aAAa,SAAS,GAAG;AAC3B,0BAAgB,QAAQ,aAAa,CAAC,EAAE;AAAA,QAC1C;AAAA,MACF,SAAS,KAAK;AACZ,gBAAQ,MAAM,4BAA4B,GAAG;AAAA,MAC/C;AAGA,UAAI;AACF,cAAM,YAAY,MAAMC,MAAAA,QAAc,KAAK;AAAA,UACzC,MAAMC,KAAAA,MAAW,KAAK;AAAA,UACtB,cAAc,MAAM,OAAO;AAAA,UAC3B,OAAO;AAAA,QACb,CAAK;AACD,uBAAe,QAAQ,UAAU,IAAI,WAAS;AAAA,UAC5C,KAAK,KAAK;AAAA,UACV,MAAM,KAAK,SAAS,QAAQ;AAAA,QAClC,EAAM;AAEF,YAAI,eAAe,MAAM,SAAS,GAAG;AACnC,0BAAgB,QAAQ,eAAe,MAAM,CAAC,EAAE;AAAA,QAClD;AAAA,MACF,SAAS,KAAK;AACZ,gBAAQ,MAAM,yBAAyB,GAAG;AAAA,MAC5C;AAAA,IACF,CAAC;AAED,mBAAe,iBAAiB;AAC9B,UAAI,CAAC,gBAAgB,OAAO;AAC1B,cAAM,yBAAyB;AAC/B,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAC3C;AACA,UAAI,CAAC,gBAAgB,OAAO;AAC1B,cAAM,yBAAyB;AAC/B,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAC3C;AAEA,UAAI;AACF,cAAM,iBAAiB;AAAA,UACrB,SAAS,MAAM,QAAQ;AAAA,UACvB,SAAS,gBAAgB;AAAA,UACzB,SAAS,gBAAgB;AAAA,UACzB,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,QAAQA,KAAAA,MAAW,KAAK;AAAA,UAChC;AAAA,UACM,UAAU,SAAS,SAAS,SAAS,CAAC;AAAA,UACtC,QAAQ,eAAe;AAAA,UACvB,SAAS,KAAK,SAAS;AAAA,UACvB,OAAO;AAAA,YACL,MAAM;AAAA,YACN,QAAQ,MAAM,OAAO;AAAA,UAC7B;AAAA,UACM,SAAS;AAAA,YACP,MAAM;AAAA,YACN,QAAQA,KAAAA,MAAW,KAAK;AAAA,UAChC;AAAA,QACA;AAEI,cAAM,oBAAoB,MAAMC,wBAAkB,iBAAiB,cAAc;AAGjF,aAAK,sBAAsB;AAAA,UACzB,SAAS,MAAM,QAAQ;AAAA,UACvB,SAAS,gBAAgB;AAAA,UACzB,UAAU,SAAS,SAAS,SAAS,CAAC;AAAA,UACtC,aAAa,eAAe,MAAM,KAAK,OAAK,EAAE,QAAQ,gBAAgB,KAAK,GAAG;AAAA,QACpF,CAAK;AAED,aAAK,OAAO;AAAA,MACd,SAAS,KAAK;AACZ,gBAAQ,MAAM,GAAG;AACjB,cAAM;AAAA,MACR;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -177,7 +177,7 @@ const _sfc_main = {
|
|
|
177
177
|
onClick: ($event) => selectedReason.value = reason.value,
|
|
178
178
|
class: normalizeClass([{ "bg-main t-black": selectedReason.value === reason.value, "bg-light": selectedReason.value !== reason.value }, "pd-small radius-small flex-column flex-center flex cursor-pointer"])
|
|
179
179
|
}, [
|
|
180
|
-
(openBlock(), createBlock(resolveDynamicComponent(reason.icon), { class: "i-
|
|
180
|
+
(openBlock(), createBlock(resolveDynamicComponent(reason.icon), { class: "i-medium mn-b-nano" })),
|
|
181
181
|
createElementVNode("span", null, toDisplayString(reason.label), 1)
|
|
182
182
|
], 10, _hoisted_8);
|
|
183
183
|
}), 64))
|