@ozdao/martyrs 0.2.477 → 0.2.478
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/README.md +17 -10
- package/dist/Media-B1ZP3D7B.cjs +1 -0
- package/dist/{Media-CecrG6g6.mjs → Media-CKk33U4A.js} +1 -1
- package/dist/abac-BuL5pUZ4.js +949 -0
- package/dist/abac-XF1JVCLI.cjs +948 -0
- package/dist/addUserStatusFields-B8g3DAuZ.js +88 -0
- package/dist/addUserStatusFields-DP_0f12s.cjs +104 -0
- package/dist/auth.server.cjs +600 -0
- package/dist/auth.server.js +546 -709
- package/dist/authJwt-DBB51Iql.cjs +73 -0
- package/dist/authJwt-DcYNNwcr.js +74 -0
- package/dist/builder.cjs +1356 -0
- package/dist/builder.js +1193 -1377
- package/dist/chats.server.cjs +106 -0
- package/dist/chats.server.js +99 -129
- package/dist/common.schema-Bw1O5_2Q.js +13 -0
- package/dist/common.schema-BzFEVNn3.cjs +12 -0
- package/dist/community.server.cjs +840 -0
- package/dist/community.server.js +722 -949
- package/dist/credentials.schema-C9FB2EyY.js +10 -0
- package/dist/credentials.schema-DwhGdrwC.cjs +9 -0
- package/dist/engagement.schema-Dh1adRsn.js +24 -0
- package/dist/engagement.schema-JADHu8pj.cjs +23 -0
- package/dist/events.server.cjs +856 -0
- package/dist/events.server.js +713 -916
- package/dist/files.server.cjs +275 -0
- package/dist/files.server.js +233 -315
- package/dist/gallery.server.cjs +270 -0
- package/dist/gallery.server.js +245 -311
- package/dist/globals.abac-Cm9e8Jdk.cjs +297 -0
- package/dist/globals.abac-DBV_kaOq.js +298 -0
- package/dist/globals.logger-Bf6rRU7j.js +156 -0
- package/dist/globals.logger-CZMgIMlM.cjs +155 -0
- package/dist/globals.observer-CDqUjVU5.js +44 -0
- package/dist/globals.observer-CV2wCzzh.cjs +43 -0
- package/dist/globals.server.cjs +446 -0
- package/dist/globals.server.js +376 -399
- package/dist/globals.verifier-CWFz5Gh2.js +614 -0
- package/dist/globals.verifier-D68mHEBl.cjs +613 -0
- package/dist/index-CsJwdsBW.js +170 -0
- package/dist/index-YNOkL1mu.cjs +186 -0
- package/dist/mailing-C11EYWm-.js +85 -0
- package/dist/mailing-q7sR8gCV.cjs +101 -0
- package/dist/{main-DmznvhMM.mjs → main-BhAiwmnI.js} +4270 -4674
- package/dist/main-C75EcBpE.cjs +11 -0
- package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.cjs +1 -2
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.js +1 -2
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +3 -3
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +3 -3
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +128 -75
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +137 -84
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs +20 -22
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.js +21 -23
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/all-countries.cjs +245 -1
- package/dist/martyrs/src/components/FieldPhone/all-countries.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/all-countries.js +245 -1
- package/dist/martyrs/src/components/FieldPhone/all-countries.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/click-outside.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/click-outside.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js +2 -2
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +451 -176
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +451 -176
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/create-tags.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldTags/create-tags.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.cjs +1 -4
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.js +1 -4
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.js.map +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue2.cjs → Loader.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js.map → Loader.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +29 -7
- package/dist/martyrs/src/components/Popup/Popup.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +30 -8
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/Select.vue.cjs +2 -4
- package/dist/martyrs/src/components/Select/Select.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Select/Select.vue.js +2 -4
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs +639 -0
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js +639 -0
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs +1 -1
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js +1 -1
- package/dist/martyrs/src/components/Table/Table.vue.cjs +23 -38
- package/dist/martyrs/src/components/Table/Table.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Table/Table.vue.js +24 -39
- package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.cjs → Tooltip.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.js → Tooltip.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.cjs.map → Tooltip.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +5 -5
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +5 -5
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.cjs +5 -5
- package/dist/martyrs/src/modules/auth/auth.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.js +5 -5
- package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +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.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
- 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 +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- 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.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +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.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +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.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/middlewares/auth.validation.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/middlewares/auth.validation.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/middlewares/ownership.validation.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/middlewares/ownership.validation.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/auth.cjs +87 -98
- package/dist/martyrs/src/modules/auth/views/router/auth.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/auth.js +87 -98
- package/dist/martyrs/src/modules/auth/views/router/auth.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.cjs +105 -106
- package/dist/martyrs/src/modules/auth/views/router/users.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.js +105 -106
- package/dist/martyrs/src/modules/auth/views/router/users.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs +7 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +7 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/twofa.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/twofa.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/users.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/store/users.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/users.js +1 -1
- package/dist/martyrs/src/modules/auth/views/store/users.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/validations/inputs.validation.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/validations/inputs.validation.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/backoffice.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/backoffice/backoffice.client.js.map +1 -1
- 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.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/router/backoffice.cjs +1 -4
- package/dist/martyrs/src/modules/backoffice/router/backoffice.cjs.map +1 -1
- package/dist/martyrs/src/modules/backoffice/router/backoffice.js +1 -4
- package/dist/martyrs/src/modules/backoffice/router/backoffice.js.map +1 -1
- package/dist/martyrs/src/modules/chats/chats.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/chats.client.js.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs +10 -6
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js +10 -6
- package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
- package/dist/martyrs/src/modules/community/community.client.cjs +14 -14
- package/dist/martyrs/src/modules/community/community.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/community.client.js +3 -3
- package/dist/martyrs/src/modules/community/community.client.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.js +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
- 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.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +17 -11
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +17 -11
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.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/HotPosts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +2 -2
- package/dist/martyrs/src/modules/community/router/blogposts.cjs +61 -59
- package/dist/martyrs/src/modules/community/router/blogposts.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/router/blogposts.js +61 -59
- package/dist/martyrs/src/modules/community/router/blogposts.js.map +1 -1
- package/dist/martyrs/src/modules/community/store/blogposts.cjs +14 -10
- package/dist/martyrs/src/modules/community/store/blogposts.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/store/blogposts.js +14 -10
- package/dist/martyrs/src/modules/community/store/blogposts.js.map +1 -1
- package/dist/martyrs/src/modules/community/store/reactions.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/store/reactions.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +5 -3
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +5 -3
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js.map +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.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +14 -8
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +14 -8
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +4 -5
- 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 +4 -5
- 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.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/martyrs/src/modules/events/events.client.cjs +17 -17
- package/dist/martyrs/src/modules/events/events.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/events.client.js +4 -4
- package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.cjs +11 -21
- package/dist/martyrs/src/modules/events/router/events.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.js +11 -21
- package/dist/martyrs/src/modules/events/router/events.js.map +1 -1
- package/dist/martyrs/src/modules/events/store/events.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/store/events.js.map +1 -1
- package/dist/martyrs/src/modules/events/store/tickets.cjs +3 -1
- package/dist/martyrs/src/modules/events/store/tickets.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/store/tickets.js +3 -1
- package/dist/martyrs/src/modules/events/store/tickets.js.map +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.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/gallery.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/gallery.client.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.cjs +17 -17
- package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.js +17 -17
- package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/router/gallery.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/router/gallery.router.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/store/gallery.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/store/gallery.js.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.cjs +24 -8
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +22 -6
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +9 -7
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +9 -7
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/store.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/classes/store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/store.js +2 -2
- package/dist/martyrs/src/modules/globals/views/classes/store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/{plugins → components/blocks}/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/{plugins → components/blocks}/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs +308 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js +308 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs +61 -49
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js +62 -50
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +3 -3
- 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 +3 -3
- 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 +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +3 -3
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/BottomNavigationBar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
- 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.map +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.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +9 -10
- 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 +9 -10
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/localization/get-browser-locale.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/localization/get-browser-locale.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +24 -5
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +24 -5
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs +74 -0
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js +74 -0
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.cjs +200 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.js +200 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.cjs +21 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js +21 -0
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs +1 -4
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.js +1 -4
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs +4 -14
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.js +4 -14
- package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.cjs +39 -0
- package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.js +39 -0
- package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.cjs +57 -0
- package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.js +57 -0
- package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconFile.vue.cjs +33 -0
- package/dist/martyrs/src/modules/icons/entities/IconFile.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconFile.vue.js +33 -0
- package/dist/martyrs/src/modules/icons/entities/IconFile.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs +33 -0
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js +33 -0
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.cjs +35 -0
- package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.js +35 -0
- package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/icons.client.cjs +97 -79
- package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/icons.client.js +140 -122
- package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
- package/dist/martyrs/src/modules/icons/logos/Logotype.vue.cjs +25 -0
- package/dist/martyrs/src/modules/icons/logos/Logotype.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/logos/Logotype.vue.js +25 -0
- package/dist/martyrs/src/modules/icons/logos/Logotype.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.cjs +35 -0
- package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.js +35 -0
- package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs +31 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js +31 -0
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.cjs +31 -0
- package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.js +31 -0
- package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js +39 -0
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +278 -0
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +278 -0
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/router/icons.router.cjs +33 -0
- package/dist/martyrs/src/modules/icons/router/icons.router.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/router/icons.router.js +33 -0
- package/dist/martyrs/src/modules/icons/router/icons.router.js.map +1 -0
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/line.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/line.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/vk.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/vk.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/landing.client.cjs +12 -12
- package/dist/martyrs/src/modules/landing/landing.client.js +22 -22
- package/dist/martyrs/src/modules/marketplace/marketplace.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/marketplace.client.js.map +1 -1
- 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.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.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/marketplace/views/router/marketplace.router.cjs +0 -1
- package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.js +0 -1
- package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/store/marketplace.cjs +25 -19
- package/dist/martyrs/src/modules/marketplace/views/store/marketplace.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js +25 -19
- package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs +18 -27
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +16 -25
- package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/router/notifications.router.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/router/notifications.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/router/notifications.router.js +1 -1
- package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/store/notifications.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/store/notifications.store.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +3 -3
- 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 +3 -3
- 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.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -4
- 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 +2 -4
- 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.map +1 -1
- 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.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.cjs +5 -5
- package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.js +5 -5
- package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/router/orders.router.cjs +2 -3
- package/dist/martyrs/src/modules/orders/router/orders.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/router/orders.router.js +2 -3
- package/dist/martyrs/src/modules/orders/router/orders.router.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/applications.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/applications.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/customers.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/customers.store.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/models/order.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/models/order.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.cjs +23 -26
- package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.js +23 -26
- package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/shopcart.cjs +94 -47
- package/dist/martyrs/src/modules/orders/store/shopcart.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/shopcart.js +94 -47
- package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/testimonials.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/testimonials.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +16 -16
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
- 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.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.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.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +5 -5
- 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 +5 -5
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +9 -9
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js.map +1 -1
- 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.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +6 -6
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +225 -0
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +225 -0
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs +28 -28
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.js +10 -10
- package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/backoffice.router.cjs +26 -23
- package/dist/martyrs/src/modules/organizations/router/backoffice.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/backoffice.router.js +26 -23
- package/dist/martyrs/src/modules/organizations/router/backoffice.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +27 -23
- package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/departments.router.js +27 -23
- package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/members.router.cjs +17 -15
- package/dist/martyrs/src/modules/organizations/router/members.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/members.router.js +17 -15
- package/dist/martyrs/src/modules/organizations/router/members.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +73 -60
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +73 -60
- package/dist/martyrs/src/modules/organizations/router/organizations.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/departments.cjs +3 -1
- package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/departments.js +3 -1
- package/dist/martyrs/src/modules/organizations/store/departments.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/invites.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/memberships.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/organizations.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/organizations.js.map +1 -1
- package/dist/martyrs/src/modules/pages/pages.client.cjs +2 -2
- package/dist/martyrs/src/modules/pages/pages.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/pages.client.js +2 -2
- package/dist/martyrs/src/modules/pages/pages.client.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.js.map +1 -1
- 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.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.cjs +35 -31
- package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.js +35 -31
- package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/router/pages.router.cjs +16 -14
- package/dist/martyrs/src/modules/pages/views/router/pages.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/router/pages.router.js +16 -14
- package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/store/pages.cjs +5 -2
- package/dist/martyrs/src/modules/pages/views/store/pages.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/store/pages.js +5 -2
- package/dist/martyrs/src/modules/pages/views/store/pages.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +76 -135
- 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 +77 -136
- 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 +128 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +128 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/{ImagesThumbnails.vue.cjs → ProductImages.vue.cjs} +8 -8
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/{ImagesThumbnails.vue.js → ProductImages.vue.js} +8 -8
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs +141 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +141 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.cjs → elements/Image360.vue.cjs} +6 -6
- package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.cjs.map → elements/Image360.vue.cjs.map} +1 -1
- package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.js → elements/Image360.vue.js} +6 -6
- package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.js.map → elements/Image360.vue.js.map} +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +19 -20
- 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 +20 -21
- 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 +71 -0
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +71 -0
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs +6 -6
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.js +6 -6
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs +73 -0
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js +73 -0
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs +101 -0
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js +101 -0
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs +135 -0
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js +135 -0
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs +148 -0
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js +148 -0
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +7 -7
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +7 -7
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +345 -0
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +345 -0
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +279 -55
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +282 -58
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +108 -117
- 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 +117 -126
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +257 -312
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +262 -317
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +2 -2
- 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 +2 -2
- 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 +168 -0
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +168 -0
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +319 -0
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +319 -0
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +140 -0
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +140 -0
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +468 -0
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +468 -0
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +2 -2
- 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 +2 -2
- 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.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +134 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +134 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +13 -13
- 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 +13 -13
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/products.client.cjs +20 -29
- package/dist/martyrs/src/modules/products/products.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/products.client.js +37 -46
- package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/categories.router.cjs +34 -30
- package/dist/martyrs/src/modules/products/router/categories.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/router/categories.router.js +34 -30
- package/dist/martyrs/src/modules/products/router/categories.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/leftovers.router.cjs +42 -39
- package/dist/martyrs/src/modules/products/router/leftovers.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/router/leftovers.router.js +42 -39
- package/dist/martyrs/src/modules/products/router/leftovers.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/products.router.cjs +0 -1
- package/dist/martyrs/src/modules/products/router/products.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/router/products.router.js +0 -1
- package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/categories.cjs +7 -3
- package/dist/martyrs/src/modules/products/store/categories.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/categories.js +7 -3
- package/dist/martyrs/src/modules/products/store/categories.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/leftovers.cjs +42 -3
- package/dist/martyrs/src/modules/products/store/leftovers.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/leftovers.js +42 -3
- package/dist/martyrs/src/modules/products/store/leftovers.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.cjs +32 -60
- package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.js +32 -60
- package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/variants.store.cjs +6 -0
- package/dist/martyrs/src/modules/products/store/variants.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/store/variants.store.js +6 -0
- package/dist/martyrs/src/modules/products/store/variants.store.js.map +1 -0
- package/dist/martyrs/src/modules/rents/rents.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/rents.client.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/router/rents.router.cjs +3 -11
- package/dist/martyrs/src/modules/rents/views/router/rents.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/router/rents.router.js +3 -11
- package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/store/rents.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/store/rents.store.js.map +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
- package/dist/martyrs/src/modules/reports/reports.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/reports/reports.client.js.map +1 -1
- package/dist/martyrs/src/modules/reports/store/reports.cjs +1 -1
- package/dist/martyrs/src/modules/reports/store/reports.cjs.map +1 -1
- package/dist/martyrs/src/modules/reports/store/reports.js +1 -1
- package/dist/martyrs/src/modules/reports/store/reports.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +74 -51
- 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 +75 -52
- 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.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/router/spots.cjs +3 -9
- package/dist/martyrs/src/modules/spots/router/spots.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/router/spots.js +3 -9
- package/dist/martyrs/src/modules/spots/router/spots.js.map +1 -1
- package/dist/martyrs/src/modules/spots/spots.client.cjs +1 -1
- package/dist/martyrs/src/modules/spots/spots.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/spots.client.js +1 -1
- package/dist/martyrs/src/modules/spots/spots.client.js.map +1 -1
- package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
- package/dist/martyrs/src/modules/wallet/views/router/payments.router.cjs +26 -23
- package/dist/martyrs/src/modules/wallet/views/router/payments.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/router/payments.router.js +26 -23
- package/dist/martyrs/src/modules/wallet/views/router/payments.router.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/store/payments.store.cjs +2 -2
- package/dist/martyrs/src/modules/wallet/views/store/payments.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/store/payments.store.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/store/payments.store.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/store/wallet.store.cjs +11 -12
- package/dist/martyrs/src/modules/wallet/views/store/wallet.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/store/wallet.store.js +11 -12
- package/dist/martyrs/src/modules/wallet/views/store/wallet.store.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-CWmcDJN7.js +268 -0
- package/dist/metadata.schema-RlxNv46L.cjs +267 -0
- 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/node_modules/date-fns/_lib/addLeadingZeros.cjs +9 -0
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +9 -0
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/defaultOptions.cjs +8 -0
- package/dist/node_modules/date-fns/_lib/defaultOptions.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/defaultOptions.js +8 -0
- package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.cjs +653 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.js +653 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.cjs +63 -0
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +63 -0
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/longFormatters.cjs +59 -0
- package/dist/node_modules/date-fns/_lib/format/longFormatters.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js +59 -0
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.cjs +21 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +21 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.cjs +12 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.js +12 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/protectedTokens.cjs +24 -0
- package/dist/node_modules/date-fns/_lib/protectedTokens.cjs.map +1 -0
- package/dist/node_modules/date-fns/_lib/protectedTokens.js +24 -0
- package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -0
- package/dist/node_modules/date-fns/constants.cjs +9 -0
- package/dist/node_modules/date-fns/constants.cjs.map +1 -0
- package/dist/node_modules/date-fns/constants.js +9 -0
- package/dist/node_modules/date-fns/constants.js.map +1 -0
- package/dist/node_modules/date-fns/constructFrom.cjs +13 -0
- package/dist/node_modules/date-fns/constructFrom.cjs.map +1 -0
- package/dist/node_modules/date-fns/constructFrom.js +13 -0
- package/dist/node_modules/date-fns/constructFrom.js.map +1 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.cjs +21 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.cjs.map +1 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +21 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -0
- package/dist/node_modules/date-fns/format.cjs +80 -0
- package/dist/node_modules/date-fns/format.cjs.map +1 -0
- package/dist/node_modules/date-fns/format.js +80 -0
- package/dist/node_modules/date-fns/format.js.map +1 -0
- package/dist/node_modules/date-fns/getDayOfYear.cjs +14 -0
- package/dist/node_modules/date-fns/getDayOfYear.cjs.map +1 -0
- package/dist/node_modules/date-fns/getDayOfYear.js +14 -0
- package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -0
- package/dist/node_modules/date-fns/getISOWeek.cjs +14 -0
- package/dist/node_modules/date-fns/getISOWeek.cjs.map +1 -0
- package/dist/node_modules/date-fns/getISOWeek.js +14 -0
- package/dist/node_modules/date-fns/getISOWeek.js.map +1 -0
- package/dist/node_modules/date-fns/getISOWeekYear.cjs +27 -0
- package/dist/node_modules/date-fns/getISOWeekYear.cjs.map +1 -0
- package/dist/node_modules/date-fns/getISOWeekYear.js +27 -0
- package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/getWeek.cjs +14 -0
- package/dist/node_modules/date-fns/getWeek.cjs.map +1 -0
- package/dist/node_modules/date-fns/getWeek.js +14 -0
- package/dist/node_modules/date-fns/getWeek.js.map +1 -0
- package/dist/node_modules/date-fns/getWeekYear.cjs +31 -0
- package/dist/node_modules/date-fns/getWeekYear.cjs.map +1 -0
- package/dist/node_modules/date-fns/getWeekYear.js +31 -0
- package/dist/node_modules/date-fns/getWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/isDate.cjs +8 -0
- package/dist/node_modules/date-fns/isDate.cjs.map +1 -0
- package/dist/node_modules/date-fns/isDate.js +8 -0
- package/dist/node_modules/date-fns/isDate.js.map +1 -0
- package/dist/node_modules/date-fns/isValid.cjs +10 -0
- package/dist/node_modules/date-fns/isValid.cjs.map +1 -0
- package/dist/node_modules/date-fns/isValid.js +10 -0
- package/dist/node_modules/date-fns/isValid.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.cjs +11 -0
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +11 -0
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.cjs +21 -0
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +21 -0
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.cjs +44 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +44 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.cjs +17 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +17 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.cjs +86 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +86 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.cjs +37 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +37 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.cjs +13 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.cjs +165 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +165 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.cjs +123 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +123 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US.cjs +22 -0
- package/dist/node_modules/date-fns/locale/en-US.cjs.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US.js +22 -0
- package/dist/node_modules/date-fns/locale/en-US.js.map +1 -0
- package/dist/node_modules/date-fns/startOfDay.cjs +11 -0
- package/dist/node_modules/date-fns/startOfDay.cjs.map +1 -0
- package/dist/node_modules/date-fns/startOfDay.js +11 -0
- package/dist/node_modules/date-fns/startOfDay.js.map +1 -0
- package/dist/node_modules/date-fns/startOfISOWeek.cjs +9 -0
- package/dist/node_modules/date-fns/startOfISOWeek.cjs.map +1 -0
- package/dist/node_modules/date-fns/startOfISOWeek.js +9 -0
- package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -0
- package/dist/node_modules/date-fns/startOfISOWeekYear.cjs +15 -0
- package/dist/node_modules/date-fns/startOfISOWeekYear.cjs.map +1 -0
- package/dist/node_modules/date-fns/startOfISOWeekYear.js +15 -0
- package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/startOfWeek.cjs +18 -0
- package/dist/node_modules/date-fns/startOfWeek.cjs.map +1 -0
- package/dist/node_modules/date-fns/startOfWeek.js +18 -0
- package/dist/node_modules/date-fns/startOfWeek.js.map +1 -0
- package/dist/node_modules/date-fns/startOfWeekYear.cjs +20 -0
- package/dist/node_modules/date-fns/startOfWeekYear.cjs.map +1 -0
- package/dist/node_modules/date-fns/startOfWeekYear.js +20 -0
- package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/startOfYear.cjs +12 -0
- package/dist/node_modules/date-fns/startOfYear.cjs.map +1 -0
- package/dist/node_modules/date-fns/startOfYear.js +12 -0
- package/dist/node_modules/date-fns/startOfYear.js.map +1 -0
- package/dist/node_modules/date-fns/toDate.cjs +9 -0
- package/dist/node_modules/date-fns/toDate.cjs.map +1 -0
- package/dist/node_modules/date-fns/toDate.js +9 -0
- package/dist/node_modules/date-fns/toDate.js.map +1 -0
- package/dist/notifications.server.cjs +552 -0
- package/dist/notifications.server.js +511 -621
- package/dist/orders.server.cjs +820 -0
- package/dist/orders.server.js +733 -838
- package/dist/organizations.server.cjs +1493 -0
- package/dist/organizations.server.js +1301 -1414
- package/dist/ownership.schema-CCZX5vfw.js +43 -0
- package/dist/ownership.schema-DCosqOc1.cjs +42 -0
- package/dist/pages.server.cjs +142 -0
- package/dist/pages.server.js +125 -160
- package/dist/products.server.cjs +2635 -0
- package/dist/products.server.js +2528 -1273
- package/dist/profile.schema-DchVS-Jr.js +21 -0
- package/dist/profile.schema-yQuIzngl.cjs +20 -0
- package/dist/queryProcessor-B_X680wC.cjs +332 -0
- package/dist/queryProcessor-CVcLPEnv.js +333 -0
- package/dist/rents.server.cjs +487 -0
- package/dist/rents.server.js +462 -480
- package/dist/reports.server.cjs +133 -0
- package/dist/reports.server.js +97 -150
- package/dist/spots.server.cjs +331 -0
- package/dist/spots.server.js +301 -349
- package/dist/style.css +854 -724
- package/dist/{tickets.controller-zEHIAe_B.js → tickets.controller-D0V0gJCA.cjs} +239 -263
- package/dist/{tickets.controller-BIhfgjNb.mjs → tickets.controller-DQQcjyui.js} +222 -263
- package/dist/wallet.server.cjs +528 -0
- package/dist/wallet.server.js +473 -666
- package/package.json +3 -2
- package/src/builder/builder.js +19 -14
- package/src/builder/modes/spa.dev.js +16 -39
- package/src/builder/modes/spa.prod.js +15 -26
- package/src/builder/modes/ssr.dev.js +123 -107
- package/src/builder/modes/ssr.prod.js +19 -38
- package/src/builder/modes/ssr.rspack.dev.js +70 -66
- package/src/builder/modes/ssr.vite.dev.js +45 -71
- package/src/builder/rspack/index.js +10 -8
- package/src/builder/rspack/rspack.config.api.js +59 -0
- package/src/builder/rspack/rspack.config.base.js +28 -11
- package/src/builder/rspack/{rspack.config.spa.js → rspack.config.spa.client.js} +21 -26
- package/src/builder/rspack/{rspack.config.client.js → rspack.config.ssr.client.js} +9 -13
- package/src/builder/rspack/{rspack.config.ssr.js → rspack.config.ssr.server.js} +22 -10
- package/src/builder/ssr/ssr-render-html.js +13 -12
- package/src/builder/ssr/ssr-transform-webpack-stats.js +37 -25
- package/src/builder/ssr/utils.js +7 -14
- package/src/builder/templates/page.js +2 -2
- package/src/builder/templates/screen.js +2 -2
- package/src/builder/utils/hot-reload.js +1 -1
- package/src/builder/vite/index.js +8 -8
- package/src/builder/vite/vite.config.base.js +37 -47
- package/src/builder/vite/vite.config.client.js +42 -64
- package/src/builder/vite/vite.config.server.js +14 -24
- package/src/builder/vite/vite.config.spa.js +37 -46
- package/src/builder/vite/vite.config.ssr.js +44 -60
- package/src/builder/webpack/index.js +7 -7
- package/src/builder/webpack/webpack.config.base.js +54 -39
- package/src/builder/webpack/webpack.config.client.js +36 -47
- package/src/builder/webpack/webpack.config.server.js +23 -17
- package/src/builder/webpack/webpack.config.spa.js +22 -28
- package/src/builder/webpack/webpack.config.ssr.js +33 -30
- package/src/components/Button/Button.vue +8 -3
- package/src/components/Chips/Chips.vue +1 -1
- package/src/components/Dropdown/Dropdown.vue +1 -1
- package/src/components/Feed/Feed.vue +156 -63
- package/src/components/Field/Field.vue +82 -75
- package/src/components/FieldPhone/FieldPhone.vue +2 -2
- package/src/components/FieldPhone/all-countries.js +247 -3
- package/src/components/FieldPhone/click-outside.js +1 -1
- package/src/components/FieldPhone/utils.js +263 -262
- package/src/components/FieldTags/FieldTags.vue +375 -25
- package/src/components/FieldTags/create-tags.js +15 -15
- package/src/components/FieldTags/vue-tags-input.props.js +2 -9
- package/src/components/Map/LoaderGMaps.js +4 -4
- package/src/components/Popup/Popup.vue +142 -89
- package/src/components/Select/Select.vue +2 -4
- package/src/components/SelectMulti/SelectMulti.vue +911 -656
- package/src/components/Table/Table.vue +21 -64
- package/src/components/UploadImageMultiple/UploadImageMultiple.vue +4 -4
- package/src/components/index.js +10 -10
- package/src/configurator/router/configurator.router.js +10 -8
- package/src/main.js +79 -80
- package/src/modules/auth/auth.client.js +17 -18
- package/src/modules/auth/auth.server.js +32 -42
- package/src/modules/auth/controllers/middlewares/authJwt.js +16 -34
- package/src/modules/auth/controllers/middlewares/authSecret.js +2 -8
- package/src/modules/auth/controllers/middlewares/index.js +15 -10
- package/src/modules/auth/controllers/middlewares/verifyInvites.js +13 -21
- package/src/modules/auth/controllers/middlewares/verifySignUp.js +7 -16
- package/src/modules/auth/controllers/middlewares/verifyUser.js +20 -31
- package/src/modules/auth/controllers/middlewares/visitor.logger.js +10 -23
- package/src/modules/auth/controllers/routes/auth.routes.js +9 -29
- package/src/modules/auth/controllers/routes/twofa.routes.js +6 -23
- package/src/modules/auth/controllers/routes/users.routes.js +8 -39
- package/src/modules/auth/controllers/services/auth.service.js +49 -82
- package/src/modules/auth/controllers/services/twofa.service.js +6 -13
- package/src/modules/auth/controllers/services/users.service.js +31 -70
- package/src/modules/auth/controllers/utils/verifyAppleIdToken.js +47 -54
- package/src/modules/auth/models/request.model.js +5 -9
- package/src/modules/auth/models/role.model.js +3 -7
- package/src/modules/auth/models/user.model.js +39 -41
- package/src/modules/auth/models/visitor.model.js +3 -6
- package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
- package/src/modules/auth/views/components/pages/EnterCode.vue +3 -3
- package/src/modules/auth/views/components/pages/EnterPassword.vue +1 -1
- package/src/modules/auth/views/components/pages/Invite.vue +2 -2
- package/src/modules/auth/views/components/pages/Profile.vue +3 -3
- package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +3 -3
- package/src/modules/auth/views/components/pages/ProfileEdit.vue +3 -3
- package/src/modules/auth/views/components/pages/ResetPassword.vue +3 -3
- package/src/modules/auth/views/components/pages/SignIn.vue +2 -2
- package/src/modules/auth/views/components/pages/SignUp.vue +3 -3
- package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
- package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +2 -2
- package/src/modules/auth/views/localization/EnterCode.json +1 -1
- package/src/modules/auth/views/localization/EnterPassword.json +1 -1
- package/src/modules/auth/views/localization/ResetPassword.json +1 -1
- package/src/modules/auth/views/localization/SignUp.json +1 -1
- package/src/modules/auth/views/middlewares/auth.validation.js +16 -29
- package/src/modules/auth/views/middlewares/ownership.validation.js +9 -14
- package/src/modules/auth/views/router/auth.js +66 -77
- package/src/modules/auth/views/router/users.js +87 -89
- package/src/modules/auth/views/store/auth.js +41 -39
- package/src/modules/auth/views/store/twofa.js +44 -42
- package/src/modules/auth/views/store/users.js +22 -26
- package/src/modules/auth/views/validations/inputs.validation.js +53 -59
- package/src/modules/backoffice/backoffice.client.js +8 -8
- package/src/modules/backoffice/components/pages/Dashboard.vue +3 -3
- package/src/modules/backoffice/components/partials/Sidebar.vue +2 -2
- package/src/modules/backoffice/router/backoffice.js +49 -49
- package/src/modules/chats/chats.client.js +9 -9
- package/src/modules/chats/chats.server.js +18 -23
- package/src/modules/chats/controllers/chats.controller.js +8 -15
- package/src/modules/chats/models/chat.model.js +6 -9
- package/src/modules/chats/routes/chats.routes.js +12 -20
- package/src/modules/chats/store/chat.store.js +14 -11
- package/src/modules/community/community.client.js +13 -26
- package/src/modules/community/community.server.js +30 -35
- package/src/modules/community/components/blocks/FooterBlogpost.vue +1 -1
- package/src/modules/community/components/layouts/Community.vue +6 -4
- package/src/modules/community/components/pages/Blog.vue +1 -1
- package/src/modules/community/components/pages/BlogPost.vue +1 -1
- package/src/modules/community/components/pages/CreateBlogPost.vue +5 -5
- package/src/modules/community/components/sections/Comment.vue +2 -2
- package/src/modules/community/components/sections/HotPosts.vue +1 -1
- package/src/modules/community/controllers/blog.controller.js +103 -139
- package/src/modules/community/controllers/comments.controller.js +79 -124
- package/src/modules/community/controllers/reactions.controller.js +32 -59
- package/src/modules/community/controllers/utils/queryProcessor.js +13 -17
- package/src/modules/community/controllers/utils/queryProcessorReactions.js +28 -34
- package/src/modules/community/middlewares/server/index.js +7 -5
- package/src/modules/community/middlewares/server/verifyBlogpost.js +9 -14
- package/src/modules/community/models/blogpost.model.js +33 -34
- package/src/modules/community/models/comment.model.js +48 -50
- package/src/modules/community/models/reaction.model.js +48 -46
- package/src/modules/community/router/blogposts.js +52 -50
- package/src/modules/community/routes/blog.routes.js +15 -49
- package/src/modules/community/routes/comments.routes.js +14 -44
- package/src/modules/community/routes/reactions.routes.js +10 -43
- package/src/modules/community/store/blogposts.js +54 -59
- package/src/modules/community/store/reactions.js +9 -13
- package/src/modules/constructor/components/elements/Embed.vue +3 -3
- package/src/modules/constructor/components/elements/ImageUpload.vue +3 -3
- package/src/modules/core/classes/event.js +48 -0
- package/src/modules/core/classes/memory-tracker.js +1063 -0
- package/src/modules/{globals/views/core → core/classes}/module-manager.js +43 -46
- package/src/modules/{globals/views/core → core/classes}/module.js +52 -53
- package/src/modules/core/model/Adapter.js +17 -0
- package/src/modules/core/model/Adapter.mogodb.js +65 -0
- package/src/modules/core/model/Adapter.postgre.js +127 -0
- package/src/modules/core/model/Model.js +99 -0
- package/src/modules/core/model/Schema.js +70 -0
- package/src/modules/core/model/Validation.js +97 -0
- package/src/modules/events/components/elements/ButtonCheck.vue +1 -1
- package/src/modules/events/components/elements/ButtonJoin.vue +2 -2
- package/src/modules/events/components/pages/EditEvent.vue +5 -5
- package/src/modules/events/components/pages/EditEventTickets.vue +3 -3
- package/src/modules/events/components/pages/Event.vue +1 -2
- package/src/modules/events/components/pages/Events.vue +3 -3
- package/src/modules/events/components/pages/EventsBackoffice.vue +1 -1
- package/src/modules/events/components/pages/EventsSearch.vue +1 -1
- package/src/modules/events/components/sections/EventsHot.vue +1 -1
- package/src/modules/events/components/sections/FeaturedEvents.vue +1 -1
- package/src/modules/events/controllers/events.controller.js +90 -155
- package/src/modules/events/controllers/tickets.controller.js +157 -220
- package/src/modules/events/controllers/utils/queryProcessor.js +117 -123
- package/src/modules/events/controllers/utils/templateEmail.js +6 -7
- package/src/modules/events/controllers/utils/templateTicket.js +6 -7
- package/src/modules/events/events.client.js +22 -28
- package/src/modules/events/events.server.js +25 -32
- package/src/modules/events/middlewares/server/index.js +6 -5
- package/src/modules/events/middlewares/server/verifyEvent.js +29 -31
- package/src/modules/events/models/event.model.js +68 -70
- package/src/modules/events/models/ticket.model.js +55 -55
- package/src/modules/events/router/events.js +28 -38
- package/src/modules/events/routes/events.routes.js +15 -49
- package/src/modules/events/routes/tickets.routes.js +7 -21
- package/src/modules/events/store/events.js +41 -50
- package/src/modules/events/store/tickets.js +11 -14
- package/src/modules/files/controllers/files.controller.js +5 -17
- package/src/modules/files/files.server.js +13 -16
- package/src/modules/files/middlewares/server/index.js +7 -5
- package/src/modules/files/middlewares/server/middlewareBusboy.js +62 -123
- package/src/modules/files/routes/files.routes.js +11 -40
- package/src/modules/gallery/components/pages/Gallery.vue +1 -1
- package/src/modules/gallery/components/sections/BackofficeGallery.vue +3 -3
- package/src/modules/gallery/controllers/gallery.controller.js +27 -58
- package/src/modules/gallery/gallery.client.js +11 -11
- package/src/modules/gallery/gallery.server.js +18 -23
- package/src/modules/gallery/models/photo.model.js +27 -29
- package/src/modules/gallery/router/gallery.backoffice.router.js +14 -14
- package/src/modules/gallery/router/gallery.router.js +2 -2
- package/src/modules/gallery/routes/gallery.routes.js +12 -44
- package/src/modules/gallery/store/gallery.js +3 -3
- package/src/modules/globals/controllers/classes/abac/abac.adapter.express.js +194 -0
- package/src/modules/globals/controllers/classes/abac/abac.adapter.ws.js +84 -0
- package/src/modules/globals/controllers/classes/abac/abac.core.js +220 -0
- package/src/modules/globals/controllers/classes/abac/abac.fields.js +376 -0
- package/src/modules/globals/controllers/classes/abac/abac.js +104 -0
- package/src/modules/globals/controllers/classes/abac/abac.policies.js +226 -0
- package/src/modules/globals/controllers/classes/crud/crud.controller.js +314 -0
- package/src/modules/globals/controllers/classes/crud/crud.core.js +230 -0
- package/src/modules/globals/controllers/classes/crud/crud.events.js +209 -0
- package/src/modules/globals/controllers/classes/crud/crud.js +169 -0
- package/src/modules/globals/controllers/classes/crud/crud.policies.js +256 -0
- package/src/modules/globals/controllers/classes/crud/crud.service.js +285 -0
- package/src/modules/globals/controllers/classes/globals.abac.js +69 -120
- package/src/modules/globals/controllers/classes/globals.cache.js +2 -15
- package/src/modules/globals/controllers/classes/globals.crud.js +15 -43
- package/src/modules/globals/controllers/classes/globals.logger.js +2 -6
- package/src/modules/globals/controllers/classes/globals.observer.js +36 -43
- package/src/modules/globals/controllers/classes/globals.validator.js +62 -88
- package/src/modules/globals/controllers/classes/globals.verifier.js +144 -128
- package/src/modules/globals/controllers/classes/globals.webhook.js +1 -3
- package/src/modules/globals/controllers/classes/globals.websocket.js +29 -89
- package/src/modules/globals/controllers/classes/globals.websocket.ws.js +6 -28
- package/src/modules/globals/controllers/policies/globals.policies.js +33 -50
- package/src/modules/globals/controllers/utils/mailing.js +26 -34
- package/src/modules/globals/controllers/utils/parseCookie.js +2 -5
- package/src/modules/globals/controllers/utils/queryProcessor.js +188 -127
- package/src/modules/globals/controllers/utils/seo-friendly-url.js +195 -48
- package/src/modules/globals/controllers/utils/sitemap.js +14 -20
- package/src/modules/globals/globals.client.js +55 -53
- package/src/modules/globals/globals.server.js +22 -14
- package/src/modules/globals/models/schemas/common.schema.js +4 -4
- package/src/modules/globals/models/schemas/credentials.schema.js +3 -3
- package/src/modules/globals/models/schemas/engagement.schema.js +6 -16
- package/src/modules/globals/models/schemas/metadata.schema.js +16 -20
- package/src/modules/globals/models/schemas/ownership.schema.js +16 -13
- package/src/modules/globals/models/schemas/profile.schema.js +6 -7
- package/src/modules/globals/models/schemas/socials.schema.js +9 -9
- package/src/modules/globals/views/classes/globals.store.js +25 -22
- package/src/modules/globals/views/classes/globals.websocket.js +16 -16
- package/src/modules/globals/views/classes/globals.websocket.ws.js +1 -1
- package/src/modules/globals/views/classes/store.js +18 -19
- package/src/modules/globals/views/components/blocks/BlockMultiselect.vue +364 -0
- package/src/modules/globals/views/components/blocks/Card.vue +75 -46
- package/src/modules/globals/views/components/blocks/CardFooter.vue +1 -1
- package/src/modules/globals/views/components/blocks/CardHeader.vue +0 -1
- package/src/modules/globals/views/components/elements/ButtonDate.vue +2 -2
- package/src/modules/globals/views/components/layouts/App.vue +2 -2
- package/src/modules/globals/views/components/layouts/Client.vue +2 -2
- package/src/modules/globals/views/components/partials/BottomNavigationBar.vue +1 -1
- package/src/modules/globals/views/components/partials/Footer.vue +1 -1
- 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 +11 -19
- package/src/modules/globals/views/components/partials/NavigationBar.vue +3 -3
- package/src/modules/globals/views/components/partials/Sidebar.vue +1 -1
- package/src/modules/globals/views/localization/get-browser-locale.js +7 -12
- package/src/modules/globals/views/middlewares/localization.js +3 -6
- package/src/modules/globals/views/mixins/mixins.js +152 -134
- package/src/modules/globals/views/plugins/alert.plugin.js +28 -28
- package/src/modules/globals/views/plugins/date-picker.plugin.js +85 -0
- package/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue +284 -0
- package/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js +24 -0
- package/src/modules/globals/views/router/addRoutes.js +15 -17
- package/src/modules/globals/views/router/scrollBehavior.js +17 -13
- package/src/modules/globals/views/store/globals.js +64 -78
- package/src/modules/globals/views/utils/axios-instance.js +1 -1
- package/src/modules/globals/views/utils/vue-app-renderer.js +23 -26
- package/src/modules/governance/controllers/factories/initiatives.controller.js +23 -29
- package/src/modules/governance/controllers/factories/tasks.controller.js +21 -27
- package/src/modules/governance/controllers/factories/votes.controller.js +17 -21
- package/src/modules/governance/controllers/factories/votings.controller.js +25 -32
- package/src/modules/governance/controllers/routes/initiatives.routes.js +10 -12
- package/src/modules/governance/controllers/routes/tasks.routes.js +10 -12
- package/src/modules/governance/controllers/routes/votes.routes.js +8 -10
- package/src/modules/governance/controllers/routes/votings.routes.js +11 -13
- package/src/modules/governance/governance.client.js +7 -7
- package/src/modules/governance/governance.server.js +36 -39
- package/src/modules/governance/models/initiative.model.js +26 -22
- package/src/modules/governance/models/milestone.model.js +86 -82
- package/src/modules/governance/models/task.model.js +48 -45
- package/src/modules/governance/models/vote.model.js +18 -16
- package/src/modules/governance/models/voting.model.js +23 -19
- package/src/modules/governance/views/router/goverance.router.js +56 -80
- package/src/modules/governance/views/store/initiatives.js +8 -11
- package/src/modules/governance/views/store/projects.js +57 -66
- package/src/modules/governance/views/store/tasks.js +9 -14
- package/src/modules/governance/views/store/votes.js +8 -13
- package/src/modules/governance/views/store/votings.js +7 -11
- package/src/modules/icons/actions/IconDuplicate.vue +17 -0
- package/src/modules/icons/entities/IconDiscount.vue +23 -0
- package/src/modules/icons/entities/IconSettings.vue +32 -0
- package/src/modules/icons/icons.client.js +118 -96
- package/src/modules/icons/pages/IconsPage.vue +300 -0
- package/src/modules/icons/router/icons.router.js +34 -0
- package/src/modules/integrations/integrations.service.js +34 -91
- package/src/modules/integrations/openai/openai.globals.js +116 -0
- package/src/modules/integrations/paypal/controllers/webhooks/paypal.webhook.js +15 -19
- package/src/modules/integrations/stripe/controllers/services/stripe.service.js +241 -285
- package/src/modules/integrations/stripe/controllers/webhooks/stripe.webhook.js +8 -17
- package/src/modules/integrations/tinkoff/controllers/services/tinkoff.service.js +111 -119
- package/src/modules/integrations/tinkoff/models/tinkoff.payment.model.js +12 -13
- package/src/modules/inventory/inventory.server.js +23 -0
- package/src/modules/inventory/models/stock.adjustment.model.js +63 -0
- package/src/modules/inventory/models/stock.availability.model.js +56 -0
- package/src/modules/inventory/models/stock.balance.model.js +43 -0
- package/src/modules/inventory/models/stock.inventory.model.js +38 -0
- package/src/modules/inventory/policies/inventory.policies.js +47 -0
- package/src/modules/inventory/routes/inventory.routes.js +61 -0
- package/src/modules/inventory/services/inventory.crud.js +527 -0
- package/src/modules/inventory/services/inventory.verifier.js +81 -0
- package/src/modules/inventory/store/ inventory.store.js +131 -0
- package/src/modules/inventory/workers/inventory.availability.worker.js +300 -0
- package/src/modules/landing/landing.client.js +16 -16
- package/src/modules/marketplace/marketplace.client.js +12 -13
- package/src/modules/marketplace/views/components/layouts/Marketplace.vue +2 -2
- package/src/modules/marketplace/views/components/pages/Catalog.vue +2 -2
- package/src/modules/marketplace/views/components/sections/SectionMenu.vue +2 -2
- package/src/modules/marketplace/views/router/marketplace.router.js +9 -11
- package/src/modules/marketplace/views/store/marketplace.js +33 -29
- package/src/modules/music/components/cards/ArtistCard.vue +62 -15
- package/src/modules/music/components/lists/ArtistList.vue +267 -12
- package/src/modules/music/components/pages/ArtistDetail.vue +375 -189
- package/src/modules/music/components/pages/ArtistForm.vue +426 -0
- package/src/modules/music/components/pages/ArtistManager.vue +277 -0
- package/src/modules/music/components/pages/MusicLibrary.vue +5 -8
- package/src/modules/music/controllers/album.controller.js +15 -31
- package/src/modules/music/controllers/artist.controller.js +29 -41
- package/src/modules/music/controllers/genre.controller.js +23 -31
- package/src/modules/music/controllers/music.controller.js +28 -57
- package/src/modules/music/controllers/playlist.controller.js +20 -56
- package/src/modules/music/controllers/search.controller.js +37 -62
- package/src/modules/music/controllers/stream.controller.js +16 -32
- package/src/modules/music/models/album.model.js +54 -51
- package/src/modules/music/models/artist.model.js +50 -52
- package/src/modules/music/models/genre.model.js +27 -31
- package/src/modules/music/models/play-history.model.js +41 -42
- package/src/modules/music/models/playlist.model.js +54 -54
- package/src/modules/music/models/track.model.js +65 -69
- package/src/modules/music/music.client.js +55 -52
- package/src/modules/music/music.server.js +62 -77
- package/src/modules/music/policies/music.policies.js +9 -29
- package/src/modules/music/router/music.js +38 -19
- package/src/modules/music/routes/album.routes.js +21 -55
- package/src/modules/music/routes/artist.routes.js +22 -59
- package/src/modules/music/routes/genre.routes.js +21 -53
- package/src/modules/music/routes/music.routes.js +74 -113
- package/src/modules/music/routes/playlist.routes.js +36 -88
- package/src/modules/music/routes/search.routes.js +5 -9
- package/src/modules/music/routes/stream.routes.js +23 -34
- package/src/modules/music/store/albums.js +34 -34
- package/src/modules/music/store/artists.js +31 -28
- package/src/modules/music/store/player.js +71 -73
- package/src/modules/music/store/playlists.js +37 -37
- package/src/modules/music/store/search.js +25 -25
- package/src/modules/music/store/tracks.js +40 -45
- package/src/modules/music/websocket/streaming.handler.js +58 -76
- package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
- package/src/modules/notifications/components/sections/NotificationsList.vue +1 -1
- package/src/modules/notifications/controllers/notifications.controller.js +32 -62
- package/src/modules/notifications/middlewares/notifications.abac.js +1 -5
- package/src/modules/notifications/models/notification-log.model.js +8 -5
- package/src/modules/notifications/models/notification-preference.model.js +8 -6
- package/src/modules/notifications/models/notification.model.js +2 -3
- package/src/modules/notifications/models/user-device.model.js +3 -5
- package/src/modules/notifications/notifications.client.js +65 -75
- package/src/modules/notifications/notifications.server.js +31 -44
- package/src/modules/notifications/router/notifications.router.js +8 -8
- package/src/modules/notifications/routes/notifications.routes.js +4 -11
- package/src/modules/notifications/services/apns.service.js +4 -13
- package/src/modules/notifications/services/email.service.js +4 -8
- package/src/modules/notifications/services/fcm.service.js +4 -11
- package/src/modules/notifications/services/notification.service.js +49 -84
- package/src/modules/notifications/services/sms.service.js +4 -7
- package/src/modules/notifications/services/telegram.service.js +4 -7
- package/src/modules/notifications/services/web-push.service.js +14 -23
- package/src/modules/notifications/services/whatsapp.service.js +4 -11
- package/src/modules/notifications/store/notifications.store.js +50 -55
- package/src/modules/orders/components/pages/OrderBackoffice.vue +5 -5
- package/src/modules/orders/components/pages/OrderCreate.vue +6 -6
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +5 -5
- package/src/modules/orders/components/pages/Orders.vue +2 -2
- package/src/modules/orders/components/partials/ShopCart.vue +3 -3
- package/src/modules/orders/components/sections/FormAddCustomer.vue +5 -5
- package/src/modules/orders/components/sections/FormDelivery.vue +2 -2
- package/src/modules/orders/controllers/applications.controller.js +37 -67
- package/src/modules/orders/controllers/orders.controller.js +96 -155
- package/src/modules/orders/controllers/testimonials.controller.js +22 -31
- package/src/modules/orders/models/application.model.js +25 -24
- package/src/modules/orders/models/customer.model.js +61 -55
- package/src/modules/orders/models/order.model.js +80 -81
- package/src/modules/orders/models/testimonial.model.js +7 -9
- package/src/modules/orders/orders.client.js +24 -26
- package/src/modules/orders/orders.server.js +27 -32
- package/src/modules/orders/router/orders.router.js +21 -22
- package/src/modules/orders/routes/applications.routes.js +10 -40
- package/src/modules/orders/routes/orders.routes.js +8 -19
- package/src/modules/orders/routes/testimonials.routes.js +9 -29
- package/src/modules/orders/store/applications.js +34 -39
- package/src/modules/orders/store/customers.store.js +3 -3
- package/src/modules/orders/store/models/customer.js +5 -5
- package/src/modules/orders/store/models/order.js +4 -4
- package/src/modules/orders/store/orders.js +61 -76
- package/src/modules/orders/store/shopcart.js +150 -98
- package/src/modules/orders/store/testimonials.js +7 -10
- package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +2 -2
- package/src/modules/organizations/components/pages/Department.vue +1 -1
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +3 -3
- package/src/modules/organizations/components/pages/Members.vue +6 -6
- package/src/modules/organizations/components/pages/Organization.vue +9 -9
- package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +2 -2
- package/src/modules/organizations/components/pages/OrganizationCreate.vue +2 -2
- package/src/modules/organizations/components/pages/OrganizationDetails.vue +2 -2
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +3 -3
- package/src/modules/organizations/components/pages/OrganizationPeople.vue +1 -1
- package/src/modules/organizations/components/pages/Organizations.vue +2 -2
- package/src/modules/organizations/components/sections/DetailsTabSection.vue +2 -2
- package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
- package/src/modules/organizations/components/sections/Organizations.vue +3 -3
- package/src/modules/organizations/components/sections/Publics.vue +3 -3
- package/src/modules/organizations/configs/navigation.organization.config.js +227 -0
- package/src/modules/organizations/controllers/departments.controller.js +11 -22
- package/src/modules/organizations/controllers/invites.controller.js +14 -30
- package/src/modules/organizations/controllers/memberships.controller.js +21 -54
- package/src/modules/organizations/controllers/organizations.controller.js +32 -83
- package/src/modules/organizations/controllers/utils/addMembersQuantity.js +11 -12
- package/src/modules/organizations/controllers/utils/addUserStatusFields.js +31 -41
- package/src/modules/organizations/controllers/utils/lookupConfigs.js +31 -31
- package/src/modules/organizations/controllers/utils/queryProcessor.js +40 -51
- package/src/modules/organizations/controllers/utils/queryProcessorOrganizations.js +124 -147
- package/src/modules/organizations/middlewares/verifyAccesses.js +7 -25
- package/src/modules/organizations/middlewares/verifyAccessesRefactored.js +26 -51
- package/src/modules/organizations/models/department.model.js +58 -59
- package/src/modules/organizations/models/invite.model.js +45 -42
- package/src/modules/organizations/models/membership.model.js +35 -35
- package/src/modules/organizations/models/organization.model.js +65 -80
- package/src/modules/organizations/models/schemas/accesses.schema.js +1 -2
- package/src/modules/organizations/organizations.client.js +45 -46
- package/src/modules/organizations/organizations.server.js +40 -41
- package/src/modules/organizations/policies/organizations.policies.js +193 -85
- package/src/modules/organizations/router/backoffice.router.js +22 -20
- package/src/modules/organizations/router/departments.router.js +27 -23
- package/src/modules/organizations/router/members.router.js +18 -18
- package/src/modules/organizations/router/organizations.js +74 -66
- package/src/modules/organizations/routes/departments.routes.js +9 -20
- package/src/modules/organizations/routes/invites.routes.js +9 -31
- package/src/modules/organizations/routes/memberships.routes.js +7 -23
- package/src/modules/organizations/routes/organizations.routes.js +15 -40
- package/src/modules/organizations/store/departments.js +13 -14
- package/src/modules/organizations/store/invites.js +38 -41
- package/src/modules/organizations/store/memberships.js +21 -26
- package/src/modules/organizations/store/organizations.js +40 -46
- package/src/modules/pages/controllers/factories/pages.factory.js +6 -27
- package/src/modules/pages/controllers/routes/pages.routes.js +7 -23
- package/src/modules/pages/models/page.model.js +22 -20
- package/src/modules/pages/pages.client.js +12 -12
- package/src/modules/pages/pages.server.js +18 -21
- package/src/modules/pages/views/components/pages/Page.vue +1 -1
- package/src/modules/pages/views/components/pages/Pages.vue +1 -1
- package/src/modules/pages/views/components/partials/SidebarPages.vue +1 -1
- package/src/modules/pages/views/router/pages.backoffice.router.js +29 -29
- package/src/modules/pages/views/router/pages.router.js +16 -14
- package/src/modules/pages/views/store/pages.js +12 -11
- package/src/modules/pages/views/store/pages.store.js +3 -3
- package/src/modules/products/components/blocks/CardLeftover.vue +1 -1
- package/src/modules/products/components/blocks/CardPosition.vue +94 -157
- package/src/modules/products/components/blocks/CardProduct.vue +5 -5
- package/src/modules/products/components/blocks/ProductDiscounts.vue +141 -0
- package/src/modules/products/components/blocks/{ImagesThumbnails.vue → ProductImages.vue} +3 -4
- package/src/modules/products/components/blocks/ProductVariants.vue +125 -0
- package/src/modules/products/components/elements/Price.vue +34 -37
- package/src/modules/products/components/elements/QuantitySelector.vue +52 -0
- package/src/modules/products/components/elements/THC.vue +6 -6
- package/src/modules/products/components/forms/ColumnSettingsMenu.vue +80 -0
- package/src/modules/products/components/forms/ReorderSettingsForm.vue +107 -0
- package/src/modules/products/components/forms/StockAuditForm.vue +154 -0
- package/src/modules/products/components/forms/StockHistoryView.vue +134 -0
- package/src/modules/products/components/pages/Categories.vue +5 -5
- package/src/modules/products/components/pages/CategoryEdit.vue +8 -44
- package/src/modules/products/components/pages/LeftoverEdit.vue +360 -0
- package/src/modules/products/components/pages/Leftovers.vue +288 -131
- package/src/modules/products/components/pages/Product.vue +171 -100
- package/src/modules/products/components/pages/ProductEdit.vue +329 -461
- package/src/modules/products/components/pages/ProductRecommmendation.vue +2 -2
- package/src/modules/products/components/pages/Products.vue +7 -7
- package/src/modules/products/components/sections/EditAttributes.vue +154 -0
- package/src/modules/products/components/sections/EditCategories.vue +149 -0
- package/src/modules/products/components/sections/EditDiscounts.vue +308 -0
- package/src/modules/products/components/sections/EditIngredients.vue +130 -0
- package/src/modules/products/components/sections/EditVariants.vue +453 -0
- package/src/modules/products/components/sections/FilterProducts.vue +4 -4
- package/src/modules/products/components/sections/HeroRecommendation.vue +1 -1
- package/src/modules/products/components/sections/PopularProducts.vue +2 -2
- package/src/modules/products/components/sections/ProductConfigurator.vue +131 -0
- package/src/modules/products/components/sections/SectionProduct.vue +17 -17
- package/src/modules/products/controllers/categories.controller.js +45 -143
- package/src/modules/products/controllers/configs/products.lookup.config.js +135 -0
- package/src/modules/products/controllers/leftovers.controller.js +38 -62
- package/src/modules/products/controllers/products.controller.js +103 -364
- package/src/modules/products/controllers/queries/products.queries.js +112 -0
- package/src/modules/products/middlewares/categories.verifier.js +94 -72
- package/src/modules/products/middlewares/variants.verifier.js +226 -0
- package/src/modules/products/models/category.model.js +26 -22
- package/src/modules/products/models/leftover.model.js +61 -44
- package/src/modules/products/models/product.model.js +54 -119
- package/src/modules/products/models/schemas/discount.schema.js +33 -0
- package/src/modules/products/models/schemas/ingredient.schema.js +46 -0
- package/src/modules/products/models/variant.model.js +66 -0
- package/src/modules/products/products.client.js +31 -41
- package/src/modules/products/products.server.js +34 -35
- package/src/modules/products/router/categories.router.js +34 -30
- package/src/modules/products/router/leftovers.router.js +32 -30
- package/src/modules/products/router/products.router.js +18 -21
- package/src/modules/products/routes/categories.routes.js +13 -52
- package/src/modules/products/routes/leftovers.routes.js +9 -27
- package/src/modules/products/routes/products.routes.js +8 -27
- package/src/modules/products/routes/variants.routes.js +102 -0
- package/src/modules/products/store/categories.js +24 -23
- package/src/modules/products/store/leftovers.js +53 -17
- package/src/modules/products/store/products.js +73 -125
- package/src/modules/products/store/variants.store.js +5 -0
- package/src/modules/rents/controllers/routes/rents.routes.js +12 -21
- package/src/modules/rents/controllers/services/rents.services.js +183 -239
- package/src/modules/rents/models/rent.model.js +27 -17
- package/src/modules/rents/rents.client.js +5 -10
- package/src/modules/rents/rents.server.js +15 -21
- package/src/modules/rents/views/components/pages/RentsEdit.vue +2 -2
- package/src/modules/rents/views/router/rents.router.js +11 -20
- package/src/modules/rents/views/store/rents.store.js +33 -33
- package/src/modules/reports/components/sections/FormReport.vue +1 -1
- package/src/modules/reports/controllers/reports.controller.js +17 -26
- package/src/modules/reports/models/report.model.js +39 -56
- package/src/modules/reports/reports.client.js +8 -8
- package/src/modules/reports/reports.server.js +17 -22
- package/src/modules/reports/routes/reports.routes.js +7 -28
- package/src/modules/reports/store/reports.js +15 -17
- package/src/modules/spots/components/blocks/CardSpot.vue +73 -58
- package/src/modules/spots/components/layouts/Spots.vue +3 -3
- package/src/modules/spots/components/pages/Map.vue +3 -3
- package/src/modules/spots/components/pages/SpotEdit.vue +1 -1
- package/src/modules/spots/controllers/queries/getIsOpenNowStage.js +49 -65
- package/src/modules/spots/controllers/spots.controller.js +25 -43
- package/src/modules/spots/models/spot.model.js +45 -52
- package/src/modules/spots/router/spots.js +22 -26
- package/src/modules/spots/routes/spots.routes.js +8 -16
- package/src/modules/spots/spots.client.js +6 -6
- package/src/modules/spots/spots.server.js +17 -20
- package/src/modules/spots/store/spots.js +11 -14
- package/src/modules/wallet/controllers/factories/payments.factory.js +15 -42
- package/src/modules/wallet/controllers/factories/rewards.factory.js +56 -134
- package/src/modules/wallet/controllers/routes/payments.routes.js +45 -80
- package/src/modules/wallet/controllers/routes/rewards.routes.js +10 -50
- package/src/modules/wallet/models/payment.model.js +26 -27
- package/src/modules/wallet/models/reward.model.js +3 -4
- package/src/modules/wallet/models/wallet.model.js +10 -9
- package/src/modules/wallet/views/router/payments.router.js +24 -23
- package/src/modules/wallet/views/store/payments.store.js +6 -6
- package/src/modules/wallet/views/store/wallet.store.js +28 -35
- package/src/modules/wallet/wallet.server.js +25 -27
- package/src/styles/typography.scss +24 -0
- package/dist/Media-DmnrxIEI.js +0 -1
- package/dist/_commonjsHelpers-CUmg6egw.mjs +0 -6
- package/dist/_commonjsHelpers-DHfMLFPC.js +0 -5
- package/dist/addMembersQuantity-DBfuUEx_.mjs +0 -113
- package/dist/addMembersQuantity-DxWjHK1K.js +0 -112
- package/dist/auth.server.mjs +0 -764
- package/dist/authJwt-CELQKF2s.js +0 -82
- package/dist/authJwt-DnXu3BFq.mjs +0 -83
- package/dist/builder.mjs +0 -1502
- package/dist/chats.server.mjs +0 -137
- package/dist/common.schema-C2m3O1XY.mjs +0 -20
- package/dist/common.schema-O0w_rDyC.js +0 -19
- package/dist/community.server.mjs +0 -1068
- package/dist/credentials.schema-BmOPv6FD.js +0 -16
- package/dist/credentials.schema-oOC8B5KL.mjs +0 -17
- package/dist/engagement.schema-DAiXsvh1.js +0 -33
- package/dist/engagement.schema-DnDD7Bn3.mjs +0 -34
- package/dist/events.server.mjs +0 -1060
- package/dist/files.server.mjs +0 -339
- package/dist/gallery.server.mjs +0 -337
- package/dist/globals.abac-Bn-4tbX8.js +0 -303
- package/dist/globals.abac-DZpTRxKR.mjs +0 -304
- package/dist/globals.cache-BT6q3vOf.mjs +0 -140
- package/dist/globals.cache-CwWvNGFQ.js +0 -139
- package/dist/globals.logger-BdjooLaD.js +0 -34
- package/dist/globals.logger-DusiFsxN.mjs +0 -35
- package/dist/globals.server.mjs +0 -453
- package/dist/globals.verifier-BdJxc8-8.mjs +0 -609
- package/dist/globals.verifier-CKYpYfQl.js +0 -608
- package/dist/index-BOmxJQ5W.js +0 -205
- package/dist/index-C_Fw0Umg.mjs +0 -206
- package/dist/mailing-D4kWlk3_.js +0 -93
- package/dist/mailing-DvCT5ijo.mjs +0 -94
- package/dist/main-DxWqDgs1.js +0 -11
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.cjs +0 -292
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.cjs.map +0 -1
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.js +0 -292
- package/dist/martyrs/src/components/FieldTags/vue-tags-input.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.js.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.cjs +0 -450
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js +0 -450
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/multiselectMixin.cjs +0 -633
- package/dist/martyrs/src/components/SelectMulti/multiselectMixin.cjs.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/multiselectMixin.js +0 -633
- package/dist/martyrs/src/components/SelectMulti/multiselectMixin.js.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/pointerMixin.cjs +0 -117
- package/dist/martyrs/src/components/SelectMulti/pointerMixin.cjs.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/pointerMixin.js +0 -117
- package/dist/martyrs/src/components/SelectMulti/pointerMixin.js.map +0 -1
- package/dist/martyrs/src/components/Table/TableCell.vue.cjs +0 -59
- package/dist/martyrs/src/components/Table/TableCell.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Table/TableCell.vue.js +0 -59
- package/dist/martyrs/src/components/Table/TableCell.vue.js.map +0 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.cjs +0 -65
- package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.js +0 -65
- package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.cjs +0 -49
- package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.js +0 -49
- package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +0 -237
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +0 -237
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.cjs +0 -152
- package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.js +0 -152
- package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.cjs +0 -120
- package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.js +0 -120
- package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.js.map +0 -1
- package/dist/metadata.schema--tle-GU8.mjs +0 -282
- package/dist/metadata.schema-CUkLXZ2f.js +0 -281
- package/dist/notifications.server.mjs +0 -663
- package/dist/orders.server.mjs +0 -926
- package/dist/organizations.server.mjs +0 -1590
- package/dist/ownership.schema-CNCotD3D.mjs +0 -50
- package/dist/ownership.schema-MxfJlPtq.js +0 -49
- package/dist/pages.server.mjs +0 -178
- package/dist/products.server.mjs +0 -1381
- package/dist/profile.schema-BLSuV_VC.js +0 -27
- package/dist/profile.schema-BRuvQ7QV.mjs +0 -28
- package/dist/queryProcessor-CVKI651_.mjs +0 -314
- package/dist/queryProcessor-DSUqSk3I.js +0 -313
- package/dist/rents.server.mjs +0 -506
- package/dist/reports.server.mjs +0 -187
- package/dist/spots.server.mjs +0 -380
- package/dist/wallet.server.mjs +0 -705
- package/src/builder/rspack/rspack.config.server.js +0 -30
- package/src/components/FieldTags/vue-tags-input.js +0 -424
- package/src/components/SelectMulti/index.js +0 -7
- package/src/components/SelectMulti/multiselectMixin.js +0 -725
- package/src/components/SelectMulti/pointerMixin.js +0 -143
- package/src/modules/globals/views/core/event.js +0 -48
- package/src/modules/icons/logos/LogotypeNunito.vue +0 -12
- package/src/modules/integrations/openai/controllers/openai.controller.js +0 -89
- package/src/modules/products/components/blocks/EditFilters.vue +0 -56
- package/src/modules/products/components/blocks/LeftoverPositions.vue +0 -99
- package/src/modules/products/components/blocks/ListPositions.vue +0 -74
- package/src/modules/products/components/pages/EditLeftover.vue +0 -288
- package/src/modules/products/components/pages/Product.old.vue +0 -201
- package/src/modules/products/components/sections/EditModifications.vue +0 -92
- package/src/modules/products/components/sections/EditProductInfo.vue +0 -106
- package/src/modules/products/controllers/modifications.controller.js +0 -66
- /package/src/modules/globals/views/{plugins → components/blocks}/AlertDialog.vue +0 -0
- /package/src/modules/products/components/{blocks/Images360.vue → elements/Image360.vue} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.client.cjs","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { watch, toRefs } from \"vue\";\n// Router import \nimport routerNotifications from './router/notifications.router.js'; \n// Store \nimport * as storeNotifications from './store/notifications.store.js'; \n// Auth store import\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts \nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue'; \n// Sections \nimport NotificationsList from './components/sections/NotificationsList.vue'; \nimport NotificationPreferences from './components/sections/NotificationPreferences.vue'; \n// Pages \nimport Notifications from './components/pages/Notifications.vue'; \n// Components \nimport NotificationBadge from './components/elements/NotificationBadge.vue'; \nimport NotificationItem from './components/blocks/NotificationItem.vue'; \n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n \n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n \n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n \n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n \n // Set up event listeners\n this._setupListeners();\n \n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', \n this._handleRegistration.bind(this)\n );\n \n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived',\n this._handleNotificationReceived.bind(this)\n );\n \n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed',\n this._handleNotificationAction.bind(this)\n );\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n \n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value\n };\n \n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {}\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(\n actionData.notification.data\n );\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n \n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg'\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web'\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications')\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n (data) => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store)\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n }\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n \n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n \n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000\n });\n \n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n \n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n \n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n \n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n \n // Watch for user login/logout using auth store\n watch(() => store.auth.state.access.status, (isAuthenticated) => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n });\n }\n \n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer\n };\n });\n \n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout\n }\n }\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // SSR Utilities\n SSRUtils\n};\n\nexport default ModuleNotifications;\n"],"names":["globalWebSocket","routerNotifications","storeNotifications","watch","isAuthenticated","toRefs","NotificationBadge","NotificationItem","NotificationsList","NotificationPreferences","Notifications","NotificationsLayout"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notifications.client.cjs","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { toRefs, watch } from 'vue';\n// Router import\nimport routerNotifications from './router/notifications.router.js';\n// Store\nimport * as storeNotifications from './store/notifications.store.js';\n// Auth store import\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts\nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue';\n// Sections\nimport NotificationPreferences from './components/sections/NotificationPreferences.vue';\nimport NotificationsList from './components/sections/NotificationsList.vue';\n// Pages\nimport Notifications from './components/pages/Notifications.vue';\n// Components\nimport NotificationItem from './components/blocks/NotificationItem.vue';\nimport NotificationBadge from './components/elements/NotificationBadge.vue';\n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n\n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n\n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n\n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n\n // Set up event listeners\n this._setupListeners();\n\n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', this._handleRegistration.bind(this));\n\n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived', this._handleNotificationReceived.bind(this));\n\n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed', this._handleNotificationAction.bind(this));\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n\n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value,\n };\n\n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {},\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(actionData.notification.data);\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg',\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web',\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications');\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n data => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store);\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n },\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n\n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n\n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000,\n });\n\n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n\n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n\n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n\n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n\n // Watch for user login/logout using auth store\n watch(\n () => store.auth.state.access.status,\n isAuthenticated => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n }\n );\n }\n\n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer,\n };\n });\n\n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications,\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n },\n },\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // Sections\n NotificationsList,\n // SSR Utilities\n SSRUtils,\n};\n\nexport default ModuleNotifications;\n"],"names":["globalWebSocket","routerNotifications","storeNotifications","watch","isAuthenticated","toRefs","NotificationBadge","NotificationItem","NotificationsList","NotificationPreferences","Notifications","NotificationsLayout"],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { watch, toRefs } from "vue";
|
|
2
2
|
import nofitications from "./router/notifications.router.js";
|
|
3
3
|
import * as notifications_store from "./store/notifications.store.js";
|
|
4
|
-
import "../auth/views/store/auth.js";
|
|
5
4
|
import globalWebSocket from "../globals/views/classes/globals.websocket.js";
|
|
6
5
|
import NotificationsLayout from "./components/layouts/NotificationsLayout.vue.js";
|
|
7
|
-
import NotificationsList from "./components/sections/NotificationsList.vue.js";
|
|
8
6
|
import NotificationPreferences from "./components/sections/NotificationPreferences.vue.js";
|
|
7
|
+
import NotificationsList from "./components/sections/NotificationsList.vue.js";
|
|
9
8
|
import Notifications from "./components/pages/Notifications.vue.js";
|
|
10
|
-
import NotificationBadge from "./components/elements/NotificationBadge.vue.js";
|
|
11
9
|
import NotificationItem from "./components/blocks/NotificationItem.vue.js";
|
|
10
|
+
import NotificationBadge from "./components/elements/NotificationBadge.vue.js";
|
|
12
11
|
class CapacitorPushHandler {
|
|
13
12
|
constructor(store) {
|
|
14
13
|
this.store = store;
|
|
@@ -69,18 +68,9 @@ class CapacitorPushHandler {
|
|
|
69
68
|
* Setup push notification event listeners
|
|
70
69
|
*/
|
|
71
70
|
_setupListeners() {
|
|
72
|
-
this.pushNotifications.addListener(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
);
|
|
76
|
-
this.pushNotifications.addListener(
|
|
77
|
-
"pushNotificationReceived",
|
|
78
|
-
this._handleNotificationReceived.bind(this)
|
|
79
|
-
);
|
|
80
|
-
this.pushNotifications.addListener(
|
|
81
|
-
"pushNotificationActionPerformed",
|
|
82
|
-
this._handleNotificationAction.bind(this)
|
|
83
|
-
);
|
|
71
|
+
this.pushNotifications.addListener("registration", this._handleRegistration.bind(this));
|
|
72
|
+
this.pushNotifications.addListener("pushNotificationReceived", this._handleNotificationReceived.bind(this));
|
|
73
|
+
this.pushNotifications.addListener("pushNotificationActionPerformed", this._handleNotificationAction.bind(this));
|
|
84
74
|
}
|
|
85
75
|
/**
|
|
86
76
|
* Handle registration token received
|
|
@@ -114,9 +104,7 @@ class CapacitorPushHandler {
|
|
|
114
104
|
*/
|
|
115
105
|
_handleNotificationAction(actionData) {
|
|
116
106
|
if (actionData.notification && actionData.notification.data) {
|
|
117
|
-
this.store.notifications.actions.handleNotificationAction(
|
|
118
|
-
actionData.notification.data
|
|
119
|
-
);
|
|
107
|
+
this.store.notifications.actions.handleNotificationAction(actionData.notification.data);
|
|
120
108
|
}
|
|
121
109
|
}
|
|
122
110
|
/**
|
|
@@ -234,14 +222,17 @@ function initializeNotifications(app, store, router, options = {}) {
|
|
|
234
222
|
if (isAuthenticated && userId) {
|
|
235
223
|
notificationManager.initialize();
|
|
236
224
|
}
|
|
237
|
-
watch(
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
225
|
+
watch(
|
|
226
|
+
() => store.auth.state.access.status,
|
|
227
|
+
(isAuthenticated2) => {
|
|
228
|
+
if (isAuthenticated2) {
|
|
229
|
+
notificationManager.initialize();
|
|
230
|
+
} else {
|
|
231
|
+
notificationManager.disconnect();
|
|
232
|
+
store.notifications.mutations.resetNotifications();
|
|
233
|
+
}
|
|
243
234
|
}
|
|
244
|
-
|
|
235
|
+
);
|
|
245
236
|
}
|
|
246
237
|
app.provide("useNotifications", () => {
|
|
247
238
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.client.js","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { watch, toRefs } from \"vue\";\n// Router import \nimport routerNotifications from './router/notifications.router.js'; \n// Store \nimport * as storeNotifications from './store/notifications.store.js'; \n// Auth store import\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts \nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue'; \n// Sections \nimport NotificationsList from './components/sections/NotificationsList.vue'; \nimport NotificationPreferences from './components/sections/NotificationPreferences.vue'; \n// Pages \nimport Notifications from './components/pages/Notifications.vue'; \n// Components \nimport NotificationBadge from './components/elements/NotificationBadge.vue'; \nimport NotificationItem from './components/blocks/NotificationItem.vue'; \n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n \n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n \n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n \n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n \n // Set up event listeners\n this._setupListeners();\n \n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', \n this._handleRegistration.bind(this)\n );\n \n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived',\n this._handleNotificationReceived.bind(this)\n );\n \n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed',\n this._handleNotificationAction.bind(this)\n );\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n \n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value\n };\n \n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {}\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(\n actionData.notification.data\n );\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n \n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg'\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web'\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications')\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n (data) => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store)\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n }\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n \n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n \n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000\n });\n \n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n \n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n \n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n \n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n \n // Watch for user login/logout using auth store\n watch(() => store.auth.state.access.status, (isAuthenticated) => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n });\n }\n \n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer\n };\n });\n \n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout\n }\n }\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // SSR Utilities\n SSRUtils\n};\n\nexport default ModuleNotifications;\n"],"names":["routerNotifications","storeNotifications","isAuthenticated"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notifications.client.js","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { toRefs, watch } from 'vue';\n// Router import\nimport routerNotifications from './router/notifications.router.js';\n// Store\nimport * as storeNotifications from './store/notifications.store.js';\n// Auth store import\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts\nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue';\n// Sections\nimport NotificationPreferences from './components/sections/NotificationPreferences.vue';\nimport NotificationsList from './components/sections/NotificationsList.vue';\n// Pages\nimport Notifications from './components/pages/Notifications.vue';\n// Components\nimport NotificationItem from './components/blocks/NotificationItem.vue';\nimport NotificationBadge from './components/elements/NotificationBadge.vue';\n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n\n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n\n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n\n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n\n // Set up event listeners\n this._setupListeners();\n\n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', this._handleRegistration.bind(this));\n\n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived', this._handleNotificationReceived.bind(this));\n\n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed', this._handleNotificationAction.bind(this));\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n\n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value,\n };\n\n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {},\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(actionData.notification.data);\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg',\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web',\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications');\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n data => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store);\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n },\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n\n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n\n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000,\n });\n\n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n\n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n\n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n\n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n\n // Watch for user login/logout using auth store\n watch(\n () => store.auth.state.access.status,\n isAuthenticated => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n }\n );\n }\n\n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer,\n };\n });\n\n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications,\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n },\n },\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // Sections\n NotificationsList,\n // SSR Utilities\n SSRUtils,\n};\n\nexport default ModuleNotifications;\n"],"names":["routerNotifications","storeNotifications","isAuthenticated"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const NotificationsLayout = require("../components/layouts/NotificationsLayout.vue.cjs");
|
|
3
4
|
const Notifications = require("../components/pages/Notifications.vue.cjs");
|
|
4
5
|
const NotificationPreferences = require("../components/sections/NotificationPreferences.vue.cjs");
|
|
5
|
-
const NotificationsLayout = require("../components/layouts/NotificationsLayout.vue.cjs");
|
|
6
6
|
const nofitications = {
|
|
7
7
|
path: "/notifications",
|
|
8
8
|
component: NotificationsLayout.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.router.cjs","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"notifications.router.cjs","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import NotificationsLayout from '../components/layouts/NotificationsLayout.vue';\nimport Notifications from '../components/pages/Notifications.vue';\nimport NotificationPreferences from '../components/sections/NotificationPreferences.vue';\n\nconst nofitications = {\n path: '/notifications',\n component: NotificationsLayout,\n children: [\n {\n path: '',\n name: 'Notifications',\n component: Notifications,\n meta: {\n // requiresAuth: true,\n title: 'Notifications',\n },\n },\n {\n path: 'preferences',\n name: 'NotificationPreferences',\n component: NotificationPreferences,\n meta: {\n // requiresAuth: true,\n title: 'Notification Preferences',\n },\n },\n ],\n};\n\nexport default nofitications;\n"],"names":["NotificationsLayout","Notifications","NotificationPreferences"],"mappings":";;;;;AAIK,MAAC,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,WAAWA,oBAAmB;AAAA,EAC9B,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAWC,cAAa;AAAA,MACxB,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAWC,wBAAuB;AAAA,MAClC,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import NotificationsLayout from "../components/layouts/NotificationsLayout.vue.js";
|
|
1
2
|
import Notifications from "../components/pages/Notifications.vue.js";
|
|
2
3
|
import NotificationPreferences from "../components/sections/NotificationPreferences.vue.js";
|
|
3
|
-
import NotificationsLayout from "../components/layouts/NotificationsLayout.vue.js";
|
|
4
4
|
const nofitications = {
|
|
5
5
|
path: "/notifications",
|
|
6
6
|
component: NotificationsLayout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.router.js","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"notifications.router.js","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import NotificationsLayout from '../components/layouts/NotificationsLayout.vue';\nimport Notifications from '../components/pages/Notifications.vue';\nimport NotificationPreferences from '../components/sections/NotificationPreferences.vue';\n\nconst nofitications = {\n path: '/notifications',\n component: NotificationsLayout,\n children: [\n {\n path: '',\n name: 'Notifications',\n component: Notifications,\n meta: {\n // requiresAuth: true,\n title: 'Notifications',\n },\n },\n {\n path: 'preferences',\n name: 'NotificationPreferences',\n component: NotificationPreferences,\n meta: {\n // requiresAuth: true,\n title: 'Notification Preferences',\n },\n },\n ],\n};\n\nexport default nofitications;\n"],"names":[],"mappings":";;;AAIK,MAAC,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.store.cjs","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { reactive, ref, computed, toRefs, watch } from \"vue\";\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: {...notificationInitState},\n preferences: {...preferencesInitState},\n deviceRegistered: false,\n loading: false,\n lastSync: null\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n \n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n \n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n \n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n \n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n \n deviceData.userId = userId;\n \n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n \n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled\n };\n });\n \n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray\n });\n \n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n \n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n \n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = {...preferencesInitState};\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString()\n };\n updateUnreadCount();\n return;\n }\n }\n \n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString()\n };\n \n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n \n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1')\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2')\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3')\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4')\n }\n },\n \n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n \n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n \n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n \n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n }\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n \n resetCurrent() {\n state.current = {...notificationInitState};\n },\n \n resetPreferences() {\n state.preferences = {...preferencesInitState};\n }\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, (newState) => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n \n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n \n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n })\n};\n\nexport {\n state,\n actions,\n mutations,\n getters\n};"],"names":["reactive","auth.state","$axios","setError","watch","computed"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notifications.store.cjs","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { computed, reactive, watch } from 'vue';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null,\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false,\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: { ...notificationInitState },\n preferences: { ...preferencesInitState },\n deviceRegistered: false,\n loading: false,\n lastSync: null,\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n\n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n\n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n\n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n\n deviceData.userId = userId;\n\n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n\n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled,\n };\n });\n\n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray,\n });\n\n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n\n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n\n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = { ...preferencesInitState };\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString(),\n };\n updateUnreadCount();\n return;\n }\n }\n\n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString(),\n };\n\n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n\n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1');\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2');\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3');\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4');\n }\n },\n\n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n\n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n\n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n\n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n\n resetCurrent() {\n state.current = { ...notificationInitState };\n },\n\n resetPreferences() {\n state.preferences = { ...preferencesInitState };\n },\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, newState => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n\n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n\n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n }),\n};\n\nexport { actions, getters, mutations, state };\n"],"names":["reactive","auth.state","$axios","setError","watch","computed"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.store.js","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { reactive, ref, computed, toRefs, watch } from \"vue\";\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: {...notificationInitState},\n preferences: {...preferencesInitState},\n deviceRegistered: false,\n loading: false,\n lastSync: null\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n \n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n \n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n \n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n \n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n \n deviceData.userId = userId;\n \n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n \n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled\n };\n });\n \n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray\n });\n \n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n \n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n \n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = {...preferencesInitState};\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString()\n };\n updateUnreadCount();\n return;\n }\n }\n \n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString()\n };\n \n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n \n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1')\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2')\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3')\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4')\n }\n },\n \n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n \n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n \n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n \n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n }\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n \n resetCurrent() {\n state.current = {...notificationInitState};\n },\n \n resetPreferences() {\n state.preferences = {...preferencesInitState};\n }\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, (newState) => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n \n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n \n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n })\n};\n\nexport {\n state,\n actions,\n mutations,\n getters\n};"],"names":["auth.state"],"mappings":";;;;AAUA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU,CAAE;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAW;AACb;AAGA,MAAM,uBAAuB;AAAA,EAC3B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,UAAU;AAAA,EACV,UAAU;AACZ;AAGK,MAAC,QAAQ,SAAS;AAAA,EACrB,eAAe,CAAE;AAAA,EACjB,aAAa;AAAA,EACb,SAAS,EAAC,GAAG,sBAAqB;AAAA,EAClC,aAAa,EAAC,GAAG,qBAAoB;AAAA,EACrC,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,UAAU;AACZ,CAAC;AAEI,MAAC,UAAU;AAAA;AAAA;AAAA;AAAA,EAId,MAAM,iBAAiB,SAAS,MAAM;AACpC,QAAI;AAEF,YAAM,cAAc,UAAUA,QAAW,KAAK;AAE9C,UAAI,CAAC,aAAa;AAChB,gBAAQ,KAAK,4CAA4C;AACzD,eAAO,CAAE;AAAA,MACjB;AAEM,YAAM,UAAU;AAChB,YAAM,WAAW,MAAM,OAAO,IAAI,2BAA2B,WAAW,EAAE;AAC1E,YAAM,gBAAgB,SAAS;AAC/B,YAAM,YAAW,oBAAI,KAAI,GAAG,YAAa;AACzC,wBAAmB;AACnB,YAAM,UAAU;AAChB,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,YAAM,UAAU;AAChB,eAAS,KAAK;AACd,YAAM;AAAA,IACZ;AAAA,EACG;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM,WAAW,gBAAgB;AAC/B,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,IAAI,sBAAsB,cAAc,OAAO;AAG7E,YAAM,QAAQ,MAAM,cAAc,UAAU,OAAK,EAAE,QAAQ,cAAc;AACzE,UAAI,UAAU,IAAI;AAChB,cAAM,cAAc,KAAK,IAAI,SAAS;AACtC,0BAAmB;AAAA,MAC3B;AAEM,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,eAAS,KAAK;AACd,YAAM;AAAA,IACZ;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,uBAAuB,gBAAgB,QAAQ;AAC7C,UAAM,QAAQ,MAAM,cAAc,UAAU,OAAK,EAAE,QAAQ,cAAc;AACzE,QAAI,UAAU,IAAI;AAChB,YAAM,cAAc,KAAK,EAAE,SAAS;AACpC,YAAM,cAAc,KAAK,EAAE,aAAY,oBAAI,KAAM,GAAC,YAAa;AAC/D,wBAAmB;AAAA,IACzB;AAAA,EACG;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM,eAAe,YAAY;AAC/B,QAAI;AAEF,YAAM,SAASA,QAAW,KAAK;AAC/B,UAAI,CAAC,QAAQ;AACX,gBAAQ,KAAK,0CAA0C;AACvD;AAAA,MACR;AAEM,iBAAW,SAAS;AAEpB,YAAM,WAAW,MAAM,OAAO,KAAK,uCAAuC,UAAU;AACpF,YAAM,mBAAmB;AACzB,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,eAAS,KAAK;AACd,YAAM;AAAA,IACZ;AAAA,EACG;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM,kBAAkB,aAAa;AACnC,QAAI;AACF,YAAM,SAASA,QAAW,KAAK;AAC/B,UAAI,CAAC,QAAQ;AACX,gBAAQ,KAAK,6CAA6C;AAC1D;AAAA,MACR;AAGM,YAAM,mBAAmB,OAAO,QAAQ,WAAW,EAAE,IAAI,CAAC,CAAC,aAAa,SAAS,MAAM;AACrF,eAAO;AAAA,UACL;AAAA,UACA,kBAAkB;AAAA;AAAA,UAClB;AAAA,QACD;AAAA,MACT,CAAO;AAED,YAAM,WAAW,MAAM,OAAO,IAAI,kCAAkC;AAAA,QAClE;AAAA,QACA,aAAa;AAAA,MACrB,CAAO;AAGD,YAAM,iBAAiB,CAAE;AACzB,eAAS,KAAK,QAAQ,UAAQ;AAC5B,uBAAe,KAAK,WAAW,IAAI,KAAK;AAAA,MAChD,CAAO;AAED,YAAM,cAAc,EAAC,GAAG,sBAAsB,GAAG,eAAc;AAC/D,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,eAAS,KAAK;AACd,YAAM;AAAA,IACZ;AAAA,EACG;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM,iBAAiB;AACrB,QAAI;AACF,YAAM,SAASA,QAAW,KAAK;AAC/B,UAAI,CAAC,QAAQ;AACX,gBAAQ,KAAK,0CAA0C;AACvD;AAAA,MACR;AAGM,YAAM,WAAW,MAAM,OAAO,IAAI,kCAAkC,MAAM,EAAE;AAG5E,YAAM,iBAAiB,CAAE;AACzB,eAAS,KAAK,QAAQ,UAAQ;AAC5B,uBAAe,KAAK,WAAW,IAAI,KAAK;AAAA,MAChD,CAAO;AAED,YAAM,cAAc,EAAC,GAAG,sBAAsB,GAAG,eAAc;AAC/D,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,eAAS,KAAK;AAEd,YAAM,cAAc,EAAC,GAAG,qBAAoB;AAC5C,YAAM;AAAA,IACZ;AAAA,EACG;AAAA;AAAA;AAAA;AAAA,EAKD,qBAAqB,cAAc;;AAEjC,QAAI,aAAa,KAAK;AACpB,YAAM,gBAAgB,MAAM,cAAc,UAAU,OAAK,EAAE,QAAQ,aAAa,GAAG;AACnF,UAAI,kBAAkB,IAAI;AAExB,cAAM,cAAc,aAAa,IAAI;AAAA,UACnC,GAAG,MAAM,cAAc,aAAa;AAAA,UACpC,GAAG;AAAA,UACH,YAAW,oBAAI,KAAI,GAAG,YAAW;AAAA,QAClC;AACD,0BAAmB;AACnB;AAAA,MACR;AAAA,IACA;AAGI,UAAM,kBAAkB;AAAA,MACtB,KAAK,aAAa,OAAO,KAAK,IAAG,EAAG,SAAU;AAAA;AAAA,MAC9C,OAAO,aAAa;AAAA,MACpB,MAAM,aAAa;AAAA,MACnB,MAAM,aAAa,UAAQ,kBAAa,SAAb,mBAAmB,SAAQ;AAAA,MACtD,UAAU,aAAa,QAAQ,aAAa,YAAY,CAAE;AAAA,MAC1D,QAAQ,aAAa,UAAU;AAAA,MAC/B,WAAW,aAAa,cAAa,oBAAI,KAAI,GAAG,YAAa;AAAA,MAC7D,WAAW,aAAa,cAAa,oBAAI,KAAM,GAAC,YAAW;AAAA,IAC5D;AAGD,UAAM,cAAc,QAAQ,eAAe;AAC3C,sBAAmB;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKD,yBAAyB,MAAM;AAE7B,QAAI,KAAK,gBAAgB;AACvB,WAAK,WAAW,KAAK,cAAc;AAAA,IACzC;AAGI,QAAI,KAAK,OAAO;AAEd,YAAM,GAAG;AAAA,IACf,WAAe,KAAK,SAAS,SAAS;AAEhC,YAAM,GAAG;AAAA,IACf,WAAe,KAAK,SAAS,WAAW;AAElC,YAAM,GAAG;AAAA,IACf,OAAW;AAGL,YAAM,GAAG;AAAA,IACf;AAAA,EACG;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM,gBAAgB;AACpB,QAAI;AACF,YAAM,SAASA,QAAW,KAAK;AAC/B,UAAI,CAAC,QAAQ;AACX,gBAAQ,KAAK,2CAA2C;AACxD;AAAA,MACR;AAEM,YAAM,WAAW,MAAM,OAAO,IAAI,2BAA2B,MAAM,WAAW;AAG9E,YAAM,cAAc,QAAQ,kBAAgB;AAC1C,qBAAa,SAAS;AACtB,qBAAa,aAAY,oBAAI,KAAI,GAAG,YAAa;AAAA,MACzD,CAAO;AAED,wBAAmB;AACnB,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,eAAS,KAAK;AACd,YAAM;AAAA,IACZ;AAAA,EACA;AACA;AAEK,MAAC,YAAY;AAAA,EAChB,qBAAqB;AACnB,UAAM,gBAAgB,CAAE;AACxB,UAAM,cAAc;AACpB,UAAM,WAAW;AAAA,EAClB;AAAA,EAED,eAAe;AACb,UAAM,UAAU,EAAC,GAAG,sBAAqB;AAAA,EAC1C;AAAA,EAED,mBAAmB;AACjB,UAAM,cAAc,EAAC,GAAG,qBAAoB;AAAA,EAChD;AACA;AAGA,SAAS,oBAAoB;AAC3B,QAAM,cAAc,MAAM,cAAc,OAAO,OAAK,EAAE,WAAW,MAAM,EAAE;AAC3E;AAMA,MAAM,OAAO,CAAC,aAAa;AAE3B,CAAC;AAGI,MAAC,UAAU;AAAA,EACd,qBAAqB,SAAS,MAAM;AAClC,WAAO,MAAM,cAAc,OAAO,OAAK,EAAE,WAAW,MAAM;AAAA,EAC9D,CAAG;AAAA,EAED,mBAAmB,SAAS,MAAM;AAChC,WAAO,MAAM,cAAc,OAAO,OAAK,EAAE,WAAW,MAAM;AAAA,EAC9D,CAAG;AAAA,EAED,qBAAqB,SAAS,MAAM;AAClC,UAAM,SAAS,CAAE;AACjB,UAAM,cAAc,QAAQ,kBAAgB;AAC1C,UAAI,CAAC,OAAO,aAAa,IAAI,GAAG;AAC9B,eAAO,aAAa,IAAI,IAAI,CAAE;AAAA,MACtC;AACM,aAAO,aAAa,IAAI,EAAE,KAAK,YAAY;AAAA,IACjD,CAAK;AACD,WAAO;AAAA,EACR,CAAA;AACH;"}
|
|
1
|
+
{"version":3,"file":"notifications.store.js","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { computed, reactive, watch } from 'vue';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null,\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false,\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: { ...notificationInitState },\n preferences: { ...preferencesInitState },\n deviceRegistered: false,\n loading: false,\n lastSync: null,\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n\n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n\n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n\n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n\n deviceData.userId = userId;\n\n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n\n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled,\n };\n });\n\n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray,\n });\n\n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n\n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n\n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = { ...preferencesInitState };\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString(),\n };\n updateUnreadCount();\n return;\n }\n }\n\n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString(),\n };\n\n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n\n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1');\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2');\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3');\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4');\n }\n },\n\n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n\n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n\n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n\n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n\n resetCurrent() {\n state.current = { ...notificationInitState };\n },\n\n resetPreferences() {\n state.preferences = { ...preferencesInitState };\n },\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, newState => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n\n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n\n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n }),\n};\n\nexport { actions, getters, mutations, state };\n"],"names":["auth.state"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const Tooltip = require("../../../../components/Tooltip/Tooltip.
|
|
4
|
+
const Tooltip = require("../../../../components/Tooltip/Tooltip.vue2.cjs");
|
|
5
5
|
const IconStatusCreated = require("../icons/IconStatusCreated.vue.cjs");
|
|
6
6
|
const IconStatusConfirmed = require("../icons/IconStatusConfirmed.vue.cjs");
|
|
7
7
|
const IconStatusInUse = require("../icons/IconStatusInUse.vue.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, Fragment, renderList, toDisplayString, createVNode, withCtx, createBlock, resolveDynamicComponent } from "vue";
|
|
2
|
-
import _sfc_main$7 from "../../../../components/Tooltip/Tooltip.
|
|
2
|
+
import _sfc_main$7 from "../../../../components/Tooltip/Tooltip.vue2.js";
|
|
3
3
|
import _sfc_main$6 from "../icons/IconStatusCreated.vue.js";
|
|
4
4
|
import _sfc_main$5 from "../icons/IconStatusConfirmed.vue.js";
|
|
5
5
|
import _sfc_main$2 from "../icons/IconStatusInUse.vue.js";
|
|
@@ -4,13 +4,13 @@ const vue = require("vue");
|
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
6
6
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
7
|
-
const Popup = require("../../../../components/Popup/Popup.
|
|
7
|
+
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
8
8
|
const IconTime = require("../../../icons/entities/IconTime.vue.cjs");
|
|
9
9
|
const CardOrderItem = require("../blocks/CardOrderItem.vue.cjs");
|
|
10
10
|
const CardOrganization = require("../../../organizations/components/blocks/CardOrganization.vue.cjs");
|
|
11
11
|
const ChatPage = require("../../../chats/components/pages/ChatPage.vue.cjs");
|
|
12
12
|
const PriceTotal = require("../elements/PriceTotal.vue.cjs");
|
|
13
|
-
;/* empty css
|
|
13
|
+
;/* empty css */
|
|
14
14
|
const globals = require("../../../globals/views/store/globals.cjs");
|
|
15
15
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
16
16
|
const orders = require("../../store/orders.cjs");
|
|
@@ -385,6 +385,6 @@ const _sfc_main = {
|
|
|
385
385
|
};
|
|
386
386
|
}
|
|
387
387
|
};
|
|
388
|
-
const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
388
|
+
const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-3da4557c"]]);
|
|
389
389
|
exports.default = OrderBackoffice;
|
|
390
390
|
//# sourceMappingURL=OrderBackoffice.vue.cjs.map
|