@ozdao/martyrs 0.2.543 → 0.2.544
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builder.cjs +10 -2
- package/dist/builder.js +10 -2
- package/dist/{main-BNdv8Ji-.cjs → main-8f945Ngn.cjs} +6 -6
- package/dist/{main-DUwlesGq.js → main-d9n_ibdE.js} +1065 -1065
- package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -93
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js +1 -94
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +93 -0
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +94 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/{Feed.vue.cjs → Feed.vue2.cjs} +4 -4
- package/dist/martyrs/src/components/Feed/Feed.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Feed/{Feed.vue.js → Feed.vue2.js} +4 -4
- package/dist/martyrs/src/components/Feed/{Feed.vue.cjs.map → Feed.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue.cjs → Field.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Field/{Field.vue.js → Field.vue2.js} +2 -2
- package/dist/martyrs/src/components/Field/{Field.vue.cjs.map → Field.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +2 -2
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
- package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.cjs → BlockTags.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/FieldTags/BlockTags.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.js → BlockTags.vue2.js} +2 -2
- package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.cjs.map → BlockTags.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/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/Tab/{Tab.vue.cjs → Tab.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tab/{Tab.vue.cjs.map → Tab.vue2.js.map} +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +3 -3
- 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.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +2 -2
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +4 -4
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +4 -4
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +5 -5
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +5 -5
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +8 -6
- 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 +8 -6
- 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 +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +5 -5
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +5 -5
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs +38 -30
- 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 +39 -31
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +4 -2
- 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 +4 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue.cjs → Filters.vue2.cjs} +9 -9
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue.js → Filters.vue2.js} +10 -10
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +21 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +21 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs +1 -1
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +3 -3
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +4 -4
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +4 -4
- 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/marketplace/views/components/layouts/Marketplace.vue.cjs +2 -2
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +2 -2
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +3 -3
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +3 -3
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +3 -3
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +7 -5
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +8 -6
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +6 -4
- 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 +6 -4
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +6 -6
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +6 -6
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +9 -7
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +9 -7
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +3 -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 +3 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +4 -4
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +10 -10
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +10 -10
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +4 -4
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +10 -10
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +10 -10
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +10 -10
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +9 -9
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +9 -9
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +4 -4
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -2
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +4 -2
- 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 +5 -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 -2
- 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 +5 -3
- package/dist/martyrs/src/modules/products/components/elements/Price.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/Categories.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +5 -5
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +5 -5
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +4 -4
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +8 -8
- 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 +8 -8
- 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 +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +7 -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 +7 -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 +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +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.js +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.js +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.js +3 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +3 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +3 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +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.js +2 -2
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/style.css +6 -6
- package/dist/{web-C6njYH1C.js → web-BkaOiiSn.js} +1 -1
- package/dist/{web-CVdyxtLD.cjs → web-CROHFHoW.cjs} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.prod.js +2 -0
- package/src/builder/modes/ssr.rspack.dev.js +2 -0
- package/src/builder/templates/page.js +4 -0
- package/src/builder/templates/screen.js +4 -0
- package/src/modules/events/components/pages/Event.vue +2 -0
- package/src/modules/globals/views/classes/globals.app.js +76 -48
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +2 -0
- package/src/modules/globals/views/components/sections/Filters.vue +1 -1
- package/src/modules/globals/views/utils/vue-app-renderer.js +25 -1
- package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
- package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -0
- package/src/modules/orders/components/blocks/CardOrderVar1.vue +12 -1
- package/src/modules/orders/components/pages/OrderBackoffice.vue +2 -0
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +1 -1
- package/src/modules/orders/components/pages/Orders.vue +2 -0
- package/src/modules/orders/components/partials/ShopCart.vue +2 -0
- package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -0
- package/src/modules/products/components/elements/Price.vue +3 -0
- package/src/modules/products/components/pages/Products.vue +1 -1
- package/src/modules/products/components/sections/EditVariants.vue +2 -0
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue.js.map +0 -1
- package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue.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/martyrs.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as e, a as o, b as d, C as r, k as t, c as l, d as i, e as p, f as u, g as n, h as M, i as S, j as c, F as m, l as C, n as F, o as g, p as h, L as b, q as k, M as x, r as B, I, s as T, t as U, u as f, v as w, S as D, w as E, x as L, y as P, z as q, A as y, B as A, D as G, E as j, U as v, G as z, H, m as R } from "./main-
|
|
1
|
+
import { _ as e, a as o, b as d, C as r, k as t, c as l, d as i, e as p, f as u, g as n, h as M, i as S, j as c, F as m, l as C, n as F, o as g, p as h, L as b, q as k, M as x, r as B, I, s as T, t as U, u as f, v as w, S as D, w as E, x as L, y as P, z as q, A as y, B as A, D as G, E as j, U as v, G as z, H, m as R } from "./main-d9n_ibdE.js";
|
|
2
2
|
export {
|
|
3
3
|
e as Address,
|
|
4
4
|
o as Breadcrumbs,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const utils = require("../../../../../../../_virtual/
|
|
3
|
+
const utils = require("../../../../../../../_virtual/utils.cjs");
|
|
4
4
|
var hasRequiredUtils;
|
|
5
5
|
function requireUtils() {
|
|
6
6
|
if (hasRequiredUtils) return utils.__exports;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const utils = require("../../../../../../../_virtual/
|
|
3
|
+
const utils = require("../../../../../../../_virtual/utils2.cjs");
|
|
4
4
|
var hasRequiredUtils;
|
|
5
5
|
function requireUtils() {
|
|
6
6
|
if (hasRequiredUtils) return utils.__exports;
|
package/dist/style.css
CHANGED
|
@@ -795,7 +795,7 @@ button[data-v-2ba40647]:disabled {
|
|
|
795
795
|
background: white;
|
|
796
796
|
}
|
|
797
797
|
|
|
798
|
-
.filters-content[data-v-
|
|
798
|
+
.filters-content[data-v-d582f4fc] {
|
|
799
799
|
max-height: 60vh;
|
|
800
800
|
overflow-y: auto;
|
|
801
801
|
}
|
|
@@ -2537,10 +2537,10 @@ to { opacity: 1; transform: translateY(0);
|
|
|
2537
2537
|
min-width: 0;
|
|
2538
2538
|
}
|
|
2539
2539
|
}
|
|
2540
|
-
.discount-card[data-v-
|
|
2540
|
+
.discount-card[data-v-e985863b] {
|
|
2541
2541
|
transition: all 0.2s ease;
|
|
2542
2542
|
}
|
|
2543
|
-
.discount-card[data-v-
|
|
2543
|
+
.discount-card[data-v-e985863b]:hover {
|
|
2544
2544
|
border-color: rgb(var(--main));
|
|
2545
2545
|
}
|
|
2546
2546
|
|
|
@@ -3464,10 +3464,10 @@ html.barcode-scanner-active-html {
|
|
|
3464
3464
|
.order-card .block {
|
|
3465
3465
|
border-radius: 0;
|
|
3466
3466
|
border: 0;
|
|
3467
|
-
}.blink[data-v-
|
|
3468
|
-
animation: blink-animation-
|
|
3467
|
+
}.blink[data-v-895f54da] {
|
|
3468
|
+
animation: blink-animation-895f54da 1s ease infinite;
|
|
3469
3469
|
}
|
|
3470
|
-
@keyframes blink-animation-
|
|
3470
|
+
@keyframes blink-animation-895f54da {
|
|
3471
3471
|
0%, 100% {
|
|
3472
3472
|
opacity: 1;
|
|
3473
3473
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./main-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./main-8f945Ngn.cjs");class p extends c.WebPlugin{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}exports.PreferencesWeb=p;
|
package/package.json
CHANGED
|
@@ -42,6 +42,7 @@ export default function createSsrProdServer(projectRoot, configs, createServer)
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
const initialState = JSON.stringify(state);
|
|
45
|
+
const loadedModulesJson = JSON.stringify(loadedModules || []);
|
|
45
46
|
|
|
46
47
|
// Используем loadedModules если они есть, иначе usedModules
|
|
47
48
|
const modulesToLoad = loadedModules || usedModules || [];
|
|
@@ -55,6 +56,7 @@ export default function createSsrProdServer(projectRoot, configs, createServer)
|
|
|
55
56
|
head,
|
|
56
57
|
body,
|
|
57
58
|
initialState,
|
|
59
|
+
loadedModulesJson,
|
|
58
60
|
});
|
|
59
61
|
|
|
60
62
|
// Обрабатываем HTML через Beasties для извлечения критического CSS
|
|
@@ -120,6 +120,7 @@ export default function createSsrDevServer(projectRoot, configs, createServer) {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
const initialState = JSON.stringify(state);
|
|
123
|
+
const loadedModulesJson = JSON.stringify(loadedModules || []);
|
|
123
124
|
|
|
124
125
|
let completeHtml = await renderHtml({
|
|
125
126
|
appHtml: html,
|
|
@@ -127,6 +128,7 @@ export default function createSsrDevServer(projectRoot, configs, createServer) {
|
|
|
127
128
|
head,
|
|
128
129
|
body,
|
|
129
130
|
initialState,
|
|
131
|
+
loadedModulesJson,
|
|
130
132
|
});
|
|
131
133
|
|
|
132
134
|
// Обрабатываем HTML через Beasties для извлечения критического CSS
|
|
@@ -31,6 +31,10 @@ export default `
|
|
|
31
31
|
{{{ initialState }}}
|
|
32
32
|
</script>
|
|
33
33
|
|
|
34
|
+
<script type="application/json" data-loaded-modules>
|
|
35
|
+
{{{ loadedModulesJson }}}
|
|
36
|
+
</script>
|
|
37
|
+
|
|
34
38
|
<script>
|
|
35
39
|
window.dataLayer = window.dataLayer || [];
|
|
36
40
|
function gtag(){dataLayer.push(arguments);}
|
|
@@ -143,8 +143,10 @@ import * as tickets from '@martyrs/src/modules/events/store/tickets.js';
|
|
|
143
143
|
import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
144
144
|
|
|
145
145
|
import { useRoute } from 'vue-router';
|
|
146
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';
|
|
146
147
|
|
|
147
148
|
const route = useRoute();
|
|
149
|
+
const { returnCurrency, formatDate } = useGlobalMixins();
|
|
148
150
|
const qrcode = ref(null);
|
|
149
151
|
|
|
150
152
|
const handleTicketUpdate = ({ ticket, hasTicket, targetId }) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// client-factory.js - фабрика для создания клиентского приложения
|
|
2
|
-
import { createApp as createVueApp, createSSRApp as createVueSSRApp } from 'vue';
|
|
2
|
+
import { nextTick, createApp as createVueApp, createSSRApp as createVueSSRApp } from 'vue';
|
|
3
3
|
import { createHead } from '@unhead/vue';
|
|
4
4
|
|
|
5
5
|
export function createUniversalApp({
|
|
@@ -72,7 +72,13 @@ export function createUniversalApp({
|
|
|
72
72
|
|
|
73
73
|
// Загружаем только критические модули синхронно
|
|
74
74
|
const initCriticalModules = async () => {
|
|
75
|
-
//
|
|
75
|
+
// Если это SSR гидратация - модули загрузятся в renderAndMountApp
|
|
76
|
+
const isSSRHydration = typeof window !== 'undefined' && !process.env.MOBILE_APP;
|
|
77
|
+
if (isSSRHydration) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Для SPA и сервера загружаем как обычно
|
|
76
82
|
const criticalModules = ['globals', 'auth', 'organizations', 'backoffice'];
|
|
77
83
|
|
|
78
84
|
for (const moduleName of criticalModules) {
|
|
@@ -87,17 +93,63 @@ export function createUniversalApp({
|
|
|
87
93
|
|
|
88
94
|
// Router guard для загрузки модулей ДО навигации (только на клиенте)
|
|
89
95
|
if (typeof window !== 'undefined') {
|
|
96
|
+
const originalPush = router.push.bind(router);
|
|
97
|
+
const originalReplace = router.replace.bind(router);
|
|
98
|
+
|
|
99
|
+
async function paintNow() {
|
|
100
|
+
await nextTick(); // flush реактивки в DOM
|
|
101
|
+
await new Promise(requestAnimationFrame); // кадр layout/style
|
|
102
|
+
await new Promise(requestAnimationFrame); // кадр отрисовки
|
|
103
|
+
// иногда в WebView помогает ещё макротаск
|
|
104
|
+
await new Promise(r => setTimeout(r, 0));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
router.push = async (...args) => {
|
|
108
|
+
// Включаем лоадер
|
|
109
|
+
store.globals.state.loading = true;
|
|
110
|
+
|
|
111
|
+
// Даем браузеру отрисовать лоадер
|
|
112
|
+
await paintNow();
|
|
113
|
+
|
|
114
|
+
// Запускаем навигацию асинхронно, чтобы не блокировать UI
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
originalPush(...args);
|
|
117
|
+
}, 0);
|
|
118
|
+
|
|
119
|
+
// Возвращаем промис для совместимости
|
|
120
|
+
return Promise.resolve();
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// router.replace = async (...args) => {
|
|
124
|
+
// // Включаем лоадер
|
|
125
|
+
// store.globals.state.loading = true;
|
|
126
|
+
|
|
127
|
+
// // Даем браузеру отрисовать лоадер
|
|
128
|
+
// await paintNow();
|
|
129
|
+
|
|
130
|
+
// // Запускаем навигацию асинхронно
|
|
131
|
+
// setTimeout(() => {
|
|
132
|
+
// originalReplace(...args);
|
|
133
|
+
// }, 0);
|
|
134
|
+
|
|
135
|
+
// return Promise.resolve();
|
|
136
|
+
// };
|
|
137
|
+
|
|
90
138
|
router.beforeEach(async (to, from) => {
|
|
91
|
-
// Получаем
|
|
92
|
-
|
|
139
|
+
// Получаем оригинальный путь ДО fallback редиректа на 404
|
|
140
|
+
// Это критически важно для SSR гидратации вложенных роутов!
|
|
141
|
+
const target = to.redirectedFrom || to;
|
|
142
|
+
|
|
143
|
+
// Используем оригинальный путь для определения нужных модулей
|
|
144
|
+
const requiredModules = moduleRegistry.getModulesForRoute(target.path);
|
|
93
145
|
|
|
94
146
|
// Проверяем, какие модули еще не загружены
|
|
95
147
|
const modulesToLoad = requiredModules.filter(m => !moduleRegistry.initialized.has(m.name));
|
|
96
148
|
|
|
97
149
|
if (modulesToLoad.length > 0) {
|
|
98
|
-
//
|
|
99
|
-
if (
|
|
100
|
-
|
|
150
|
+
// Логируем если это редирект с 404 (для отладки)
|
|
151
|
+
if (to.redirectedFrom) {
|
|
152
|
+
console.log('[Router] Loading modules for redirected path:', target.path, 'modules:', modulesToLoad.map(m => m.name));
|
|
101
153
|
}
|
|
102
154
|
|
|
103
155
|
// Загружаем и инициализируем модули
|
|
@@ -110,14 +162,17 @@ export function createUniversalApp({
|
|
|
110
162
|
}
|
|
111
163
|
}
|
|
112
164
|
|
|
113
|
-
// Лоадер остается включенным - страница сама выключит через globals.state.loading = false
|
|
114
|
-
|
|
115
165
|
// После загрузки модулей и регистрации их роутов,
|
|
116
|
-
// возвращаем
|
|
117
|
-
|
|
166
|
+
// возвращаем объект с оригинальным путем и replace: true
|
|
167
|
+
// Это заставит роутер заново резолвить маршрут с новыми роутами
|
|
168
|
+
return { path: target.fullPath, replace: true };
|
|
118
169
|
}
|
|
119
170
|
});
|
|
120
171
|
}
|
|
172
|
+
|
|
173
|
+
router.beforeResolve(async (to, from) => {
|
|
174
|
+
store.globals.state.loading = false;
|
|
175
|
+
})
|
|
121
176
|
|
|
122
177
|
// Error handler для lazy loaded chunks
|
|
123
178
|
if (typeof window !== 'undefined') {
|
|
@@ -178,6 +233,7 @@ export function createUniversalApp({
|
|
|
178
233
|
i18n,
|
|
179
234
|
meta,
|
|
180
235
|
moduleRegistry,
|
|
236
|
+
config,
|
|
181
237
|
};
|
|
182
238
|
};
|
|
183
239
|
|
|
@@ -201,11 +257,11 @@ export function createUniversalApp({
|
|
|
201
257
|
}
|
|
202
258
|
|
|
203
259
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
260
|
+
if (typeof window === 'undefined') {
|
|
261
|
+
moduleRegistry.initialized.clear();
|
|
262
|
+
moduleRegistry.modules.clear();
|
|
263
|
+
moduleRegistry.loadingPromises.clear();
|
|
264
|
+
}
|
|
209
265
|
// // На сервере загружаем auth для SSR рендеринга (vue-app-renderer требует его)
|
|
210
266
|
// const context = { app, store, router, config };
|
|
211
267
|
// await moduleRegistry.load('globals', context);
|
|
@@ -274,38 +330,10 @@ export function createUniversalApp({
|
|
|
274
330
|
hooks.afterHydration({ app, router, store, moduleRegistry });
|
|
275
331
|
}
|
|
276
332
|
|
|
277
|
-
//
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
moduleRegistry.load('auth', context).then(() => {
|
|
282
|
-
// Загружаем важные модули в следующем тике
|
|
283
|
-
setTimeout(async () => {
|
|
284
|
-
try {
|
|
285
|
-
await Promise.all([
|
|
286
|
-
moduleRegistry.load('organizations', context),
|
|
287
|
-
moduleRegistry.load('backoffice', context),
|
|
288
|
-
]);
|
|
289
|
-
} catch (error) {
|
|
290
|
-
console.error('Error loading core modules:', error);
|
|
291
|
-
}
|
|
292
|
-
}, 0);
|
|
293
|
-
|
|
294
|
-
// Загружаем некритичные модули когда браузер idle
|
|
295
|
-
requestIdleCallback(async () => {
|
|
296
|
-
try {
|
|
297
|
-
await moduleRegistry.load('notifications', context);
|
|
298
|
-
// Маркер для тестов
|
|
299
|
-
if (typeof window !== 'undefined') {
|
|
300
|
-
window.performance.mark('client-ready');
|
|
301
|
-
}
|
|
302
|
-
} catch (error) {
|
|
303
|
-
console.error('Error loading non-critical modules:', error);
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
|
-
}).catch(error => {
|
|
307
|
-
console.error('Error loading auth module:', error);
|
|
308
|
-
});
|
|
333
|
+
// Модули уже загружены в renderAndMountApp, просто ставим маркер
|
|
334
|
+
if (typeof window !== 'undefined') {
|
|
335
|
+
window.performance.mark('client-ready');
|
|
336
|
+
}
|
|
309
337
|
}).catch(error => {
|
|
310
338
|
console.error('Hydration failed:', error);
|
|
311
339
|
});
|
|
@@ -60,6 +60,7 @@ import IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.
|
|
|
60
60
|
import PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue'
|
|
61
61
|
// Import the store actions
|
|
62
62
|
import * as rents from '@martyrs/src/modules/rents/views/store/rents.store.js'
|
|
63
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'
|
|
63
64
|
|
|
64
65
|
const props = defineProps({
|
|
65
66
|
productId: { type: String, required: true },
|
|
@@ -84,6 +85,7 @@ const { t } = useI18n({
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
})
|
|
88
|
+
const { returnCurrency } = useGlobalMixins()
|
|
87
89
|
|
|
88
90
|
const selectedDates = ref({ start: null, end: null })
|
|
89
91
|
const availabilityData = ref([])
|
|
@@ -233,7 +233,7 @@ const selected = defineModel('selected', {
|
|
|
233
233
|
|
|
234
234
|
const emit = defineEmits(['select'])
|
|
235
235
|
|
|
236
|
-
const { formatDate } = useGlobalMixins()
|
|
236
|
+
const { formatDate, returnCurrency } = useGlobalMixins()
|
|
237
237
|
|
|
238
238
|
// State
|
|
239
239
|
const showAllFilters = ref(false)
|
|
@@ -4,7 +4,31 @@ import { renderToString } from '@vue/server-renderer';
|
|
|
4
4
|
|
|
5
5
|
export function renderAndMountApp({ createApp, hooks = {} }) {
|
|
6
6
|
const start = async () => {
|
|
7
|
-
const { app, router, store, moduleRegistry } = await createApp();
|
|
7
|
+
const { app, router, store, moduleRegistry, config } = await createApp();
|
|
8
|
+
|
|
9
|
+
let serverModules = [];
|
|
10
|
+
|
|
11
|
+
// Загружаем модули которые были загружены на сервере
|
|
12
|
+
if (typeof window !== 'undefined') {
|
|
13
|
+
try {
|
|
14
|
+
const modulesElement = document.querySelector('[data-loaded-modules]');
|
|
15
|
+
if (modulesElement) {
|
|
16
|
+
serverModules = JSON.parse(modulesElement.innerHTML);
|
|
17
|
+
}
|
|
18
|
+
} catch (e) {
|
|
19
|
+
console.error('Failed to parse loaded modules', e);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const context = { app, store, router };
|
|
23
|
+
for (const moduleName of serverModules) {
|
|
24
|
+
try {
|
|
25
|
+
await moduleRegistry.load(moduleName, context);
|
|
26
|
+
await moduleRegistry.initialize(moduleName, context);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error(`Failed to load module ${moduleName}:`, error);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
8
32
|
|
|
9
33
|
// Call beforeHydration hook if provided
|
|
10
34
|
if (hooks.beforeHydration) {
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
<p v-if="te('subtitle')" class="t-transp p-semi w-m-60r">{{t('subtitle')}}</p>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="cols-1">
|
|
8
|
-
<Spoiler v-for="item in tm('FAQ')" :key="item.title" class="br-
|
|
8
|
+
<Spoiler v-for="item in tm('FAQ')" :key="item.title" class="br-grey-transp-10 br-solid br-1px radius-small o-hidden pd-big mn-b-thin">
|
|
9
9
|
<template #header="{ isOpen }">
|
|
10
10
|
<div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
|
|
11
11
|
<h3 class="w-100">{{item.title}}</h3>
|
|
12
|
-
<IconChevronBottom :class="{ 'rotate-180': isOpen }" fill="
|
|
12
|
+
<IconChevronBottom :class="{ 'rotate-180': isOpen }" fill="rgba(var(--grey),0.5)" class="i-semi"/>
|
|
13
13
|
</div>
|
|
14
14
|
</template>
|
|
15
15
|
<template #content>
|
|
@@ -95,10 +95,12 @@ import IconMinus from '@martyrs/src/modules/icons/navigation/IconMinus.vue'
|
|
|
95
95
|
import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue'
|
|
96
96
|
import IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'
|
|
97
97
|
import PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'
|
|
98
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'
|
|
98
99
|
|
|
99
100
|
const router = useRouter()
|
|
100
101
|
const { locale } = useI18n()
|
|
101
102
|
const { proxy } = getCurrentInstance()
|
|
103
|
+
const { returnCurrency, formatDate } = useGlobalMixins()
|
|
102
104
|
|
|
103
105
|
const emits = defineEmits(['increase', 'decrease', 'remove', 'updateRentDates'])
|
|
104
106
|
const props = defineProps({
|
|
@@ -94,4 +94,15 @@
|
|
|
94
94
|
<div v-if="order.comment" class="bg-fifth-transp-10 pd-thin">
|
|
95
95
|
<p class="t-truncate">Comment: {{order.comment}}</p>
|
|
96
96
|
</div>
|
|
97
|
-
</router-link>
|
|
97
|
+
</router-link>
|
|
98
|
+
</template>
|
|
99
|
+
|
|
100
|
+
<script setup>
|
|
101
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'
|
|
102
|
+
|
|
103
|
+
const { returnCurrency } = useGlobalMixins()
|
|
104
|
+
|
|
105
|
+
defineProps({
|
|
106
|
+
order: Object
|
|
107
|
+
})
|
|
108
|
+
</script>
|
|
@@ -311,8 +311,10 @@
|
|
|
311
311
|
import * as organizations from '@martyrs/src/modules/organizations/store/organizations.js'
|
|
312
312
|
|
|
313
313
|
import { useI18n } from 'vue-i18n';
|
|
314
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';
|
|
314
315
|
|
|
315
316
|
const { locale } = useI18n();
|
|
317
|
+
const { returnCurrency } = useGlobalMixins();
|
|
316
318
|
|
|
317
319
|
const router = useRouter()
|
|
318
320
|
const route = useRoute()
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
const route = useRoute()
|
|
234
234
|
const router = useRouter()
|
|
235
235
|
const { proxy } = getCurrentInstance()
|
|
236
|
-
const { formatPrice } = useGlobalMixins()
|
|
236
|
+
const { formatPrice, returnCurrency } = useGlobalMixins()
|
|
237
237
|
|
|
238
238
|
orders.mutations.resetOrder(orders.state.current)
|
|
239
239
|
|
|
@@ -116,9 +116,11 @@
|
|
|
116
116
|
import Feed from '@martyrs/src/components/Feed/Feed.vue'
|
|
117
117
|
|
|
118
118
|
import IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'
|
|
119
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'
|
|
119
120
|
|
|
120
121
|
const route = useRoute();
|
|
121
122
|
const router = useRouter();
|
|
123
|
+
const { returnCurrency, formatPrice, formatDate } = useGlobalMixins()
|
|
122
124
|
|
|
123
125
|
const spoiler = ref(false)
|
|
124
126
|
|
|
@@ -90,11 +90,13 @@
|
|
|
90
90
|
import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';
|
|
91
91
|
import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
92
92
|
import * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';
|
|
93
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';
|
|
93
94
|
/////////////////////////////
|
|
94
95
|
// CREATED
|
|
95
96
|
/////////////////////////////
|
|
96
97
|
const route = useRoute()
|
|
97
98
|
const router = useRouter()
|
|
99
|
+
const { returnCurrency } = useGlobalMixins()
|
|
98
100
|
// Accessing state
|
|
99
101
|
const cartTotalPrice = shopcart.getters.cartTotalPrice
|
|
100
102
|
const StoreCartAmount = shopcart.getters.cartTotalAmount
|
|
@@ -36,6 +36,9 @@ import { computed } from 'vue';
|
|
|
36
36
|
import IconDiscount from '@martyrs/src/modules/icons/entities/IconDiscount.vue'
|
|
37
37
|
import Chips from '@martyrs/src/components/Chips/Chips.vue';
|
|
38
38
|
import Tooltip from '@martyrs/src/components/Tooltip/Tooltip.vue';
|
|
39
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';
|
|
40
|
+
|
|
41
|
+
const { returnCurrency } = useGlobalMixins();
|
|
39
42
|
|
|
40
43
|
const props = defineProps({
|
|
41
44
|
discounts: {
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
const emits = defineEmits(['page-loading', 'page-loaded']);
|
|
290
290
|
const route = useRoute()
|
|
291
291
|
const router = useRouter()
|
|
292
|
-
const { generateFilters, formatDate, hasAccess } = useGlobalMixins()
|
|
292
|
+
const { generateFilters, formatDate, hasAccess, returnCurrency } = useGlobalMixins()
|
|
293
293
|
|
|
294
294
|
// Категории и фильтры
|
|
295
295
|
const currentCategories = ref([]);
|
|
@@ -257,8 +257,10 @@ import PlaceholderImage from '@martyrs/src/modules/icons/placeholders/Placeholde
|
|
|
257
257
|
import IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';
|
|
258
258
|
import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';
|
|
259
259
|
import IconDuplicate from '@martyrs/src/modules/icons/actions/IconDuplicate.vue';
|
|
260
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';
|
|
260
261
|
|
|
261
262
|
const route = useRoute();
|
|
263
|
+
const { returnCurrency } = useGlobalMixins();
|
|
262
264
|
|
|
263
265
|
const productId = computed(() => route.params.product);
|
|
264
266
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button.vue2.cjs","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n submit: {\n type: Function,\n default: async () => { console.log('Button click.') }\n },\n text: {\n type: Object,\n default: () => ({\n success: null,\n error: null\n })\n },\n counter: {\n type: Object\n },\n callback: {\n type: Function,\n default: async () => { console.log('Button callback.') }\n },\n callbackDelay: {\n type: Number,\n default: 750\n },\n showSucces: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: true\n },\n validation: {\n type: Boolean,\n default: false\n },\n})\n\nconst emits = defineEmits(['error'])\n\nconst button = ref(null)\nconst error = ref(null)\nconst loading = ref(false)\nconst finished = ref(false)\n\nasync function Submit() {\n console.log('click')\n \n button.value.style['pointer-events'] = 'none'\n error.value = null\n loading.value = true\n\n // Функция для сброса состояния кнопки\n const resetButton = () => {\n if (button.value) {\n button.value.style.pointerEvents = 'auto'\n loading.value = false\n finished.value = false\n error.value = null\n }\n }\n\n try {\n await props.submit()\n\n button.value.classList.replace('bg-main', 'bg-second')\n loading.value = false\n\n // Используем функцию сброса состояния кнопки здесь\n if (props.showSucces) { \n finished.value = true\n setTimeout(() => {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }, 500)\n } else {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }\n\n // Если есть callback, мы также установим таймер для его вызова\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay)\n\n } catch (err) {\n emits('error', err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке\n button.value.classList.replace('bg-main', 'bg-fourth-nano')\n loading.value = false\n error.value = true\n \n // После задержки снова сбрасываем состояние кнопки\n setTimeout(() => {\n resetButton()\n // Так как класс кнопки был изменен, вернем его в исходное состояние\n button.value.classList.replace('bg-fourth-nano', 'bg-main')\n }, 1330)\n }\n}\n</script>\n\n<template>\n <button \n @click.stop=\"Submit\"\n :disabled=\"validation\"\n ref=\"button\"\n\t\tclass=\"button\"\n :class=\"{ 'button--disabled': loading || validation }\"\n >\n <Transition name=\"content\" mode=\"out-in\">\n <!-- Default slot content -->\n <span v-if=\"!loading && !error && !finished || !showLoader\" class=\"button-content\">\n <slot></slot>\n </span>\n <!-- Loading state -->\n <Loader v-else-if=\"loading && !error && showLoader\" class=\"icon button-content pos-relative pos-t-0 pos-l-0 loading\"/>\n <!-- Success state -->\n <span v-else-if=\"finished && showSucces\" class=\"button-content t-semi t-center w-100 loading t-black\">\n <template v-if=\"text.success\">\n {{ text.success }}\n </template>\n <IconCheckmark v-else class=\"icon\" />\n </span>\n <!-- Error state -->\n <span v-else-if=\"error\" class=\"button-content t-center w-100 error\">\n <template v-if=\"text.error\">\n {{ text.error }}\n </template>\n <IconCross v-else class=\"icon\" />\n </span>\n </Transition>\n \n <!-- Counter -->\n <div v-if=\"counter\" class=\"button-counter flex flex-center\">\n <span>{{ counter }}</span>\n </div>\n </button>\n</template>\n\n<style lang=\"scss\">\nbutton[disabled] {\n opacity: 0.75 !important;\n pointer-events: none !important;\n cursor: default !important;\n color: rgba(var(--dark), 0.33) !important;\n background: rgba(var(--light), 1) !important;\n}\n\na.button {\n text-box: trim-both cap alphabetic;\n}\n\n.button {\n display: flex;\n padding: var(--small);\n border-radius: var(--small);\n text-box: trim-both cap alphabetic;\n transform: scale(1);\n opacity: 1;\n align-items: center;\n justify-content: center;\n color: black;\n text-align: center;\n text-transform: uppercase;\n font-size: 1rem;\n letter-spacing: 5%;\n transition: all 0.33s ease;\n\n &:hover {\n cursor: pointer;\n opacity: 0.9;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n &-small {\n padding: 0.75rem;\n border-radius: 0.5rem;\n height: fit-content;\n }\n\n .button-counter {\n position: absolute;\n right: -8px;\n bottom: -8px;\n background: yellow;\n height: 16px;\n border-radius: 16px;\n width: 16px;\n font-weight: 500;\n text-align: center;\n line-height: 16px;\n font-size: 10px;\n }\n}\n\n.button-content {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.icon {\n width: 1rem;\n height: 1rem;\n}\n\n/* Vue Transitions */\n.content-enter-active,\n.content-leave-active {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.content-enter-from {\n opacity: 0;\n transform: translateY(8px) scale(0.95);\n}\n\n.content-leave-to {\n opacity: 0;\n transform: translateY(-8px) scale(0.95);\n}\n\n.content-enter-to,\n.content-leave-from {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n</style>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAM,QAAQ;AAqCd,UAAM,QAAQ;AAEd,UAAM,SAASA,IAAAA,IAAI,IAAI;AACvB,UAAM,QAAQA,IAAAA,IAAI,IAAI;AACtB,UAAM,UAAUA,IAAAA,IAAI,KAAK;AACzB,UAAM,WAAWA,IAAAA,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEnB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACxB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF;AAEA,UAAI;AACF,cAAM,MAAM,OAAM;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AACrD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACpB,mBAAS,QAAQ;AACjB,qBAAW,MAAM;AACf,wBAAW;AACX,mBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,UACvD,GAAG,GAAG;AAAA,QACR,OAAO;AACL,sBAAW;AACX,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,QACvD;AAGA,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAQ,GAAI,MAAM,aAAa;AAAA,MAE5E,SAAS,KAAK;AACZ,cAAM,SAAS,GAAG;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,gBAAQ,QAAQ;AAChB,cAAM,QAAQ;AAGd,mBAAW,MAAM;AACf,sBAAW;AAEX,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC5D,GAAG,IAAI;AAAA,MACT;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.vue2.cjs","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div class=\"dropdown pos-relative\" v-click-outside=\"clickedOutside\" @click.stop=\"isOpen = !isOpen\">\n <div v-if=\"isComponentLabel\" class=\"w-100 h-100 flex-center flex\">\n <component :is=\"label.component\" v-bind=\"label.props\" :class=\"label.class\"></component>\n </div>\n <div v-else>\n {{ label }}\n </div>\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <div \n v-show=\"isOpen\" \n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\" \n class=\"dropdown-content radius-big\" \n >\n <slot></slot>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport clickOutside from '../FieldPhone/click-outside.js';\n\nlet vClickOutside = clickOutside\n\nconst props = defineProps({\n label: {\n type: [String, Object],\n default: 'Open'\n },\n align: {\n type: String,\n default: 'left'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n isOpen.value = false\n}\n</script>\n\n<style >\n.dropdown-content {\n display: block;\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n}\n\n/*.dropdown:hover .dropdown-content {\n display: block;\n}*/\n</style>\n"],"names":["clickOutside","ref","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwBA,QAAI,gBAAgBA,aAAAA;AAEpB,UAAM,QAAQ;AAWd,UAAM,SAASC,IAAAA,IAAI,KAAK;AACxB,UAAM,mBAAmBC,IAAAA,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,aAAO,QAAQ;AAAA,IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.vue.js","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n <div v-if=\"search || date || (sort && !sort.hideButton)\" style=\"transform: scale(1);\" class=\"mn-b-thin pos-relative z-index-2 pos-relative flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n :autofocus=\"search.autofocus\"\n />\n\n <FiltersBar\n v-if=\"filter\"\n v-model=\"filter.selected\"\n :filters=\"filterConfig\"\n :class=\"filter.class || 'mobile-only'\"\n />\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-medium\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-medium w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-medium aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-medium t-white bg-black\"\n />\n </Dropdown> \n\n <!-- Actions -->\n <template\n v-if=\"actions.length\"\n >\n <template v-for=\"action in actions\" :key=\"action.key\">\n <div \n :class=\"action.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-medium aspect-1x1 h-100\"\n >\n <component\n :is=\"action.component\"\n @click=\"action.handler\"\n class=\"w-1r h-auto\"\n >\n </component>\n\n </div>\n </template>\n </template>\n </div>\n\n <TransitionGroup \n v-if=\"isLoading && !keepSlotVisible\"\n tag=\"ul\" \n name=\"scaleTransition\" \n class=\"pos-relative z-index-1\"\n :class=\"$attrs.class\"\n >\n <Skeleton\n v-if=\"isLoading && !skeleton?.hide\"\n v-for=\"i in currentLimit\" \n :structure=\"skeleton.structure\"\n :horizontal=\"skeleton.horizontal\"\n :loading=\"skeleton.apply_to_slot\"\n :key=\"'skeleton-' + i\"\n :class=\"replaceClasses('radius-medium bg-light pd-thin flex-child-default o-hidden d-block', skeleton.class)\"\n />\n <Loader v-if=\"isLoading && skeleton?.hide\"/>\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-else-if=\"itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n :class=\"replaceClasses('pd-medium bg-light radius-medium', states.empty.class)\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n v-else-if=\"!keepSlotVisible || !isLoading\"\n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <!-- Slot visible with overlay loader -->\n <div v-else class=\"pos-relative\">\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n \n <!-- Overlay loader -->\n <div \n v-if=\"isLoading && keepSlotVisible\"\n class=\"pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center bg-white-transp-90 z-index-10\"\n >\n <Loader />\n </div>\n </div>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 t-black bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, watch } from 'vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\n\nimport SkeletonEvent from '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Skeleton from '@martyrs/src/components/Skeleton/Skeleton.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@martyrs/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport BottomSheet from '@martyrs/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@martyrs/src/modules/globals/views/components/blocks/BlockSorting.vue'\n\nimport FiltersBar from '@martyrs/src/modules/globals/views/components/sections/Filters.vue'\n\nimport ButtonSort from '@martyrs/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@martyrs/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue'\n\nconst { replaceClasses } = useGlobalMixins();\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Внутреннее хранилище для случая, когда v-model:items не передан\nconst internalItems = ref([])\n\n// Элегантное решение через computed\nconst itemsList = computed({\n get: () => items.value ?? internalItems.value,\n set: (val) => {\n if (items.value !== undefined) {\n items.value = val\n } else {\n internalItems.value = val\n }\n }\n})\n\nconst filterConfig = computed(() => {\n if (!filter.value?.options) return []\n \n return filter.value.options.map(opt => ({\n key: opt.value,\n title: opt.title,\n type: 'options',\n options: opt.options || [],\n defaultValue: null\n }))\n})\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n LoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: 'Nothing found',\n description: 'Sorry, nothing found',\n },\n }),\n },\n actions: {\n type: Array,\n default: () => []\n },\n skeleton: {\n type: Object,\n default: () => ({\n hide: false,\n horizontal: false,\n structure: [\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'large' },\n { block: 'button', size: 'small' }\n ]\n }),\n \n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 10, \n skip: 0 ,\n owner: null,\n creator: null,\n customer: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n keepSlotVisible: {\n type: Boolean,\n default: false\n },\n});\n \nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\nlet currentSearch = ref('');\nlet isSearching = ref(false);\n\nlet requestId = 0;\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((value) => {\n isSearching.value = true;\n currentSearch.value = value;\n currentSkip.value = 0;\n currentLimit.value = 10;\n fetchItems();\n}, 500);\n\nfunction updateSearch(search) {\n debouncedSearch(search);\n}\n\nconst removeNullValues = (obj) => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value != null)\n );\n};\n\nconst loadMoreItems = async () => {\n if (!hasMoreItems.value || isLoadingExtra.value) {\n return;\n }\n \n isLoadingExtra.value = true;\n \n const currentRequestId = ++requestId;\n\n currentSkip.value += currentLimit.value;\n \n try {\n const allParams = {\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value?.start,\n dateEnd: date.value?.end,\n sortParam: sort.value?.param,\n sortOrder: sort.value?.order,\n ...props.options\n };\n\n const params = removeNullValues(allParams);\n\n const data = await props.store.read(params);\n\n if (currentRequestId !== requestId) {\n return;\n }\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n // Элегантное обновление через computed setter\n itemsList.value = [...itemsList.value, ...data];\n \n } catch (error) {\n console.error('Load more error:', error);\n } finally {\n if (currentRequestId === requestId) {\n isLoadingExtra.value = false;\n }\n }\n};\n\nconst fetchItems = async () => {\n isLoading.value = true;\n \n const currentRequestId = ++requestId;\n \n if (isSearching.value) {\n itemsList.value = [];\n isSearching.value = false;\n }\n \n try {\n const allParams = {\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value?.start,\n dateEnd: date.value?.end,\n sortParam: sort.value?.param,\n sortOrder: sort.value?.order,\n ...props.options\n };\n\n const params = removeNullValues(allParams);\n\n const data = await props.store.read(params);\n\n if (currentRequestId !== requestId) {\n return;\n }\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n // Элегантное обновление через computed setter\n itemsList.value = data;\n \n } catch (error) {\n console.error('Fetch error:', error);\n } finally {\n if (currentRequestId === requestId) {\n isLoading.value = false;\n }\n }\n};\n\nwatch(\n [() => props.external, () => date.value, () => ({...sort.value}), () => ({...props.options})],\n ([newExternal, newDate, newSort, newOptions], [oldExternal, oldDate, oldSort, oldOptions]) => {\n if (\n newExternal !== oldExternal ||\n newDate !== oldDate ||\n newSort?.order !== oldSort?.order ||\n newSort?.param !== oldSort?.param ||\n JSON.stringify(newOptions) !== JSON.stringify(oldOptions)\n ) {\n currentSkip.value = 0;\n fetchItems();\n }\n },\n { deep: true }\n);\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore && props.LoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n<style>\n.feed-move,\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","search"],"mappings":"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"}
|