@ozdao/martyrs 0.2.527 → 0.2.528
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builder.cjs +4 -4
- package/dist/builder.js +4 -4
- package/dist/{main-DFvn9trs.js → main-40cyU_8J.js} +361 -355
- package/dist/{main-BNqX4N59.cjs → main-sq8skoQM.cjs} +4 -4
- 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.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Feed/{Feed.vue2.cjs → Feed.vue.cjs} +3 -3
- package/dist/martyrs/src/components/Feed/{Feed.vue2.js.map → Feed.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Feed/{Feed.vue2.js → Feed.vue.js} +3 -3
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -0
- package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/FieldTags/{BlockTags.vue2.cjs → BlockTags.vue.cjs} +2 -2
- package/dist/martyrs/src/components/FieldTags/{BlockTags.vue2.js.map → BlockTags.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/FieldTags/{BlockTags.vue2.js → BlockTags.vue.js} +2 -2
- package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +1 -0
- package/dist/martyrs/src/components/Media/Media.vue.cjs +20 -3
- package/dist/martyrs/src/components/Media/Media.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +20 -3
- package/dist/martyrs/src/components/Media/Media.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +11 -7
- 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 +14 -10
- 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 +12 -9
- 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 +17 -14
- 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 +12 -8
- 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 +15 -11
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/globals.client.cjs +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs +220 -0
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.js +220 -0
- package/dist/martyrs/src/modules/globals/views/classes/globals.app.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/classes/store.cjs +47 -49
- package/dist/martyrs/src/modules/globals/views/classes/store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/store.js +48 -50
- package/dist/martyrs/src/modules/globals/views/classes/store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +1 -6
- 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 +1 -6
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs +1 -1
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +11 -8
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +12 -9
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +4 -4
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +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/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue2.cjs → THC.vue.cjs} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue2.js → THC.vue.js} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +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.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/node_modules/.pnpm/@unhead_dom@1.11.20/node_modules/@unhead/dom/dist/index.cjs +198 -0
- package/dist/node_modules/.pnpm/@unhead_dom@1.11.20/node_modules/@unhead/dom/dist/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/@unhead_dom@1.11.20/node_modules/@unhead/dom/dist/index.js +198 -0
- package/dist/node_modules/.pnpm/@unhead_dom@1.11.20/node_modules/@unhead/dom/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@unhead_shared@1.11.20/node_modules/@unhead/shared/dist/index.cjs +304 -0
- package/dist/node_modules/.pnpm/@unhead_shared@1.11.20/node_modules/@unhead/shared/dist/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@unhead_shared@1.11.20/node_modules/@unhead/shared/dist/index.js +305 -1
- package/dist/node_modules/.pnpm/@unhead_shared@1.11.20/node_modules/@unhead/shared/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/@unhead_vue@1.11.20_vue@3.5.21_typescript@5.9.2_/node_modules/@unhead/vue/dist/shared/vue.ziyDaVMR.cjs +31 -1
- package/dist/node_modules/.pnpm/@unhead_vue@1.11.20_vue@3.5.21_typescript@5.9.2_/node_modules/@unhead/vue/dist/shared/vue.ziyDaVMR.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@unhead_vue@1.11.20_vue@3.5.21_typescript@5.9.2_/node_modules/@unhead/vue/dist/shared/vue.ziyDaVMR.js +33 -3
- package/dist/node_modules/.pnpm/@unhead_vue@1.11.20_vue@3.5.21_typescript@5.9.2_/node_modules/@unhead/vue/dist/shared/vue.ziyDaVMR.js.map +1 -1
- package/dist/node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.cjs +209 -0
- package/dist/node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.js +209 -0
- package/dist/node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/unhead@1.11.20/node_modules/unhead/dist/index.cjs +415 -0
- package/dist/node_modules/.pnpm/unhead@1.11.20/node_modules/unhead/dist/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/unhead@1.11.20/node_modules/unhead/dist/index.js +415 -0
- package/dist/node_modules/.pnpm/unhead@1.11.20/node_modules/unhead/dist/index.js.map +1 -1
- package/dist/style.css +5 -5
- package/dist/{web-xomD1Wpp.cjs → web-C68B9mpp.cjs} +1 -1
- package/dist/{web-cWW0_Tbe.js → web-HreCVhdf.js} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.prod.js +2 -2
- package/src/builder/modes/ssr.rspack.dev.js +1 -1
- package/src/builder/modes/ssr.vite.dev.js +1 -1
- package/src/components/Media/Media.vue +22 -1
- package/src/modules/auth/views/components/pages/ResetPassword.vue +10 -5
- package/src/modules/auth/views/components/pages/SignIn.vue +10 -4
- package/src/modules/auth/views/components/pages/SignUp.vue +10 -6
- package/src/modules/globals/TASK.MD +1 -0
- package/src/modules/globals/globals.client.js +3 -0
- package/src/modules/globals/views/classes/globals.app.js +320 -0
- package/src/modules/globals/views/classes/store.js +52 -55
- package/src/modules/globals/views/utils/vue-app-renderer.js +1 -7
- package/src/modules/landing/components/sections/SectionMobileApp.vue +6 -6
- package/src/modules/landing/components/sections/SubscribeNewsletter.vue +1 -1
- package/src/styles/typography.scss +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Feed/Feed.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/FieldTags/BlockTags.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +0 -1
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { createApp, createSSRApp } from "vue";
|
|
2
|
+
import { c as createHead } from "../../../../../../node_modules/.pnpm/@unhead_vue@1.11.20_vue@3.5.21_typescript@5.9.2_/node_modules/@unhead/vue/dist/shared/vue.ziyDaVMR.js";
|
|
3
|
+
function createUniversalApp({
|
|
4
|
+
getConfig,
|
|
5
|
+
getRouter,
|
|
6
|
+
getLocales,
|
|
7
|
+
getStore,
|
|
8
|
+
getHooks = {}
|
|
9
|
+
}) {
|
|
10
|
+
const getLayoutApp = () => import("../components/layouts/App.vue.js").then((m) => m.default);
|
|
11
|
+
const getModuleRegistry = () => import("./module-registry.js").then((m) => m.moduleRegistry);
|
|
12
|
+
const getWebsockets = () => import("./globals.websocket.js").then((m) => m.default);
|
|
13
|
+
const getAppRenderer = () => import("../utils/vue-app-renderer.js");
|
|
14
|
+
async function initializeApp() {
|
|
15
|
+
const config = await getConfig();
|
|
16
|
+
const hooks = getHooks;
|
|
17
|
+
const [layoutApp, moduleRegistry, globalWebSocket, appRenderer] = await Promise.all([
|
|
18
|
+
getLayoutApp(),
|
|
19
|
+
getModuleRegistry(),
|
|
20
|
+
getWebsockets(),
|
|
21
|
+
getAppRenderer()
|
|
22
|
+
]);
|
|
23
|
+
moduleRegistry.register("globals", {
|
|
24
|
+
loader: () => import("../../globals.client.js"),
|
|
25
|
+
critical: true,
|
|
26
|
+
priority: "critical"
|
|
27
|
+
});
|
|
28
|
+
Object.entries(config.modules).forEach(([name, module]) => {
|
|
29
|
+
if (module.loader) {
|
|
30
|
+
moduleRegistry.register(name, {
|
|
31
|
+
loader: module.loader,
|
|
32
|
+
routes: module.routes || [],
|
|
33
|
+
priority: module.priority || "normal",
|
|
34
|
+
critical: module.critical || false,
|
|
35
|
+
dependencies: module.dependencies || [],
|
|
36
|
+
preload: module.preload || false
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
function createApp$1() {
|
|
41
|
+
const store = getStore();
|
|
42
|
+
const app = process.env.MOBILE_APP ? createApp(layoutApp, config) : createSSRApp(layoutApp, config);
|
|
43
|
+
const meta = createHead();
|
|
44
|
+
const i18n = getLocales();
|
|
45
|
+
const context = {
|
|
46
|
+
app,
|
|
47
|
+
store,
|
|
48
|
+
router: null,
|
|
49
|
+
config
|
|
50
|
+
};
|
|
51
|
+
const router = getRouter(context);
|
|
52
|
+
context.router = router;
|
|
53
|
+
const initCriticalModules = async () => {
|
|
54
|
+
const criticalModules = ["globals", "auth", "organizations", "backoffice"];
|
|
55
|
+
for (const moduleName of criticalModules) {
|
|
56
|
+
try {
|
|
57
|
+
await moduleRegistry.load(moduleName, context);
|
|
58
|
+
await moduleRegistry.initialize(moduleName, context);
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error(`Failed to load critical module ${moduleName}:`, error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
if (typeof window !== "undefined") {
|
|
65
|
+
router.beforeEach(async (to, from) => {
|
|
66
|
+
const requiredModules = moduleRegistry.getModulesForRoute(to.path);
|
|
67
|
+
const modulesToLoad = requiredModules.filter((m) => !moduleRegistry.initialized.has(m.name));
|
|
68
|
+
if (modulesToLoad.length > 0) {
|
|
69
|
+
if (store.globals && store.globals.state) {
|
|
70
|
+
store.globals.state.loading = true;
|
|
71
|
+
}
|
|
72
|
+
for (const module of modulesToLoad) {
|
|
73
|
+
try {
|
|
74
|
+
await moduleRegistry.load(module.name, context);
|
|
75
|
+
await moduleRegistry.initialize(module.name, context);
|
|
76
|
+
} catch (error) {
|
|
77
|
+
console.error(`Failed to load module ${module.name}:`, error);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return to.fullPath;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (typeof window !== "undefined") {
|
|
85
|
+
window.addEventListener("error", (e) => {
|
|
86
|
+
if (e.message && e.message.includes("Loading chunk")) {
|
|
87
|
+
console.error("Chunk loading failed:", e);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const initialize = async () => {
|
|
92
|
+
if (hooks.beforeInitialize) {
|
|
93
|
+
await hooks.beforeInitialize(context);
|
|
94
|
+
}
|
|
95
|
+
await initCriticalModules();
|
|
96
|
+
if (typeof window !== "undefined") {
|
|
97
|
+
requestIdleCallback(() => {
|
|
98
|
+
globalWebSocket.initialize({
|
|
99
|
+
wsUrl: process.env.WSS_URL || void 0,
|
|
100
|
+
maxReconnectAttempts: 5,
|
|
101
|
+
reconnectDelay: 3e3,
|
|
102
|
+
pingInterval: 3e4
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
requestIdleCallback(() => {
|
|
106
|
+
moduleRegistry.preloadModules(context);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
app.use(router).use(i18n).use(meta);
|
|
110
|
+
if (process.env.MOBILE_APP) {
|
|
111
|
+
app.mount("#app");
|
|
112
|
+
}
|
|
113
|
+
if (hooks.afterInitialize) {
|
|
114
|
+
await hooks.afterInitialize(context);
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
app,
|
|
118
|
+
router,
|
|
119
|
+
store,
|
|
120
|
+
i18n,
|
|
121
|
+
meta,
|
|
122
|
+
moduleRegistry
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
if (!process.env.MOBILE_APP) {
|
|
126
|
+
return initialize();
|
|
127
|
+
}
|
|
128
|
+
initialize();
|
|
129
|
+
}
|
|
130
|
+
async function renderApp({ url, cookies, languages, ssrContext }) {
|
|
131
|
+
const { app, router, store, i18n, meta, moduleRegistry: moduleRegistry2 } = await createApp$1();
|
|
132
|
+
if (typeof window === "undefined") {
|
|
133
|
+
moduleRegistry2.initialized.clear();
|
|
134
|
+
moduleRegistry2.modules.clear();
|
|
135
|
+
moduleRegistry2.loadingPromises.clear();
|
|
136
|
+
const context2 = { app, store, router, config };
|
|
137
|
+
await moduleRegistry2.load("auth", context2);
|
|
138
|
+
await moduleRegistry2.initialize("auth", context2);
|
|
139
|
+
}
|
|
140
|
+
const context = {
|
|
141
|
+
app,
|
|
142
|
+
store,
|
|
143
|
+
router,
|
|
144
|
+
config,
|
|
145
|
+
ssr: true
|
|
146
|
+
};
|
|
147
|
+
const requiredModules = moduleRegistry2.getModulesForRoute(url);
|
|
148
|
+
const currentRouteModules = [];
|
|
149
|
+
for (const module of requiredModules) {
|
|
150
|
+
await moduleRegistry2.load(module.name, context);
|
|
151
|
+
await moduleRegistry2.initialize(module.name, context);
|
|
152
|
+
currentRouteModules.push(module.name);
|
|
153
|
+
}
|
|
154
|
+
await router.push(url);
|
|
155
|
+
await router.isReady();
|
|
156
|
+
const result = await appRenderer.render({
|
|
157
|
+
url,
|
|
158
|
+
cookies,
|
|
159
|
+
createApp: () => ({ app, router, store, i18n, meta }),
|
|
160
|
+
ssrContext
|
|
161
|
+
});
|
|
162
|
+
if (ssrContext?.modules) {
|
|
163
|
+
result.usedModules = Array.from(ssrContext.modules);
|
|
164
|
+
}
|
|
165
|
+
const criticalModules = ["globals", "auth", "organizations", "backoffice"];
|
|
166
|
+
const allModulesForRoute = [.../* @__PURE__ */ new Set([...criticalModules, ...currentRouteModules])];
|
|
167
|
+
result.loadedModules = allModulesForRoute;
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
if (typeof window !== "undefined" && process.env.MOBILE_APP) {
|
|
171
|
+
createApp$1();
|
|
172
|
+
}
|
|
173
|
+
if (typeof window !== "undefined" && !process.env.MOBILE_APP) {
|
|
174
|
+
createApp$1().then(({ app, router, store, moduleRegistry: moduleRegistry2 }) => {
|
|
175
|
+
router.isReady().then(() => {
|
|
176
|
+
if (hooks.beforeHydration) {
|
|
177
|
+
hooks.beforeHydration({ app, router, store, moduleRegistry: moduleRegistry2 });
|
|
178
|
+
}
|
|
179
|
+
app.mount("#app");
|
|
180
|
+
if (hooks.afterHydration) {
|
|
181
|
+
hooks.afterHydration({ app, router, store, moduleRegistry: moduleRegistry2 });
|
|
182
|
+
}
|
|
183
|
+
const context = { app, store, router, config };
|
|
184
|
+
moduleRegistry2.load("auth", context).then(() => {
|
|
185
|
+
setTimeout(async () => {
|
|
186
|
+
try {
|
|
187
|
+
await Promise.all([
|
|
188
|
+
moduleRegistry2.load("organizations", context),
|
|
189
|
+
moduleRegistry2.load("backoffice", context)
|
|
190
|
+
]);
|
|
191
|
+
} catch (error) {
|
|
192
|
+
console.error("Error loading core modules:", error);
|
|
193
|
+
}
|
|
194
|
+
}, 0);
|
|
195
|
+
requestIdleCallback(async () => {
|
|
196
|
+
try {
|
|
197
|
+
await moduleRegistry2.load("notifications", context);
|
|
198
|
+
if (typeof window !== "undefined") {
|
|
199
|
+
window.performance.mark("client-ready");
|
|
200
|
+
}
|
|
201
|
+
} catch (error) {
|
|
202
|
+
console.error("Error loading non-critical modules:", error);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}).catch((error) => {
|
|
206
|
+
console.error("Error loading auth module:", error);
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
}).catch((error) => {
|
|
210
|
+
console.error("Hydration failed:", error);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return { createApp: createApp$1, renderApp };
|
|
214
|
+
}
|
|
215
|
+
return initializeApp();
|
|
216
|
+
}
|
|
217
|
+
export {
|
|
218
|
+
createUniversalApp
|
|
219
|
+
};
|
|
220
|
+
//# sourceMappingURL=globals.app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.app.js","sources":["../../../../../../../src/modules/globals/views/classes/globals.app.js"],"sourcesContent":["// client-factory.js - фабрика для создания клиентского приложения\nimport { createApp as createVueApp, createSSRApp as createVueSSRApp } from 'vue';\nimport { createHead } from '@unhead/vue';\n\nexport function createUniversalApp({\n getConfig,\n getRouter,\n getLocales,\n getStore,\n getHooks = {}\n}) {\n // Lazy imports to avoid circular dependencies\n const getLayoutApp = () => import('../components/layouts/App.vue').then(m => m.default);\n const getModuleRegistry = () => import('./module-registry.js').then(m => m.moduleRegistry);\n const getWebsockets = () => import('./globals.websocket.js').then(m => m.default);\n const getAppRenderer = () => import('../utils/vue-app-renderer.js');\n \n // Асинхронная инициализация для избежания циклических зависимостей\n async function initializeApp() {\n // Создаем конфигурацию\n const config = await getConfig();\n const hooks = getHooks;\n \n const [layoutApp, moduleRegistry, globalWebSocket, appRenderer] = await Promise.all([\n getLayoutApp(),\n getModuleRegistry(),\n getWebsockets(),\n getAppRenderer()\n ]);\n \n // Регистрация модуля globals первым\n moduleRegistry.register('globals', {\n loader: () => import('../../globals.client.js'),\n critical: true,\n priority: 'critical'\n });\n \n // Регистрация модулей из config\n Object.entries(config.modules).forEach(([name, module]) => {\n if (module.loader) {\n moduleRegistry.register(name, {\n loader: module.loader,\n routes: module.routes || [],\n priority: module.priority || 'normal',\n critical: module.critical || false,\n dependencies: module.dependencies || [],\n preload: module.preload || false\n });\n }\n });\n \n // Основная функция создания приложения\n function createApp() {\n const store = getStore();\n const app = process.env.MOBILE_APP \n ? createVueApp(layoutApp, config) \n : createVueSSRApp(layoutApp, config);\n \n const meta = createHead();\n const i18n = getLocales();\n \n const context = {\n app,\n store,\n router: null,\n config,\n };\n \n // Создаем роутер с контекстом\n const router = getRouter(context);\n context.router = router;\n \n // Загружаем только критические модули синхронно\n const initCriticalModules = async () => {\n // Критические модули одинаковые для всех проектов\n const criticalModules = ['globals', 'auth', 'organizations', 'backoffice'];\n \n for (const moduleName of criticalModules) {\n try {\n await moduleRegistry.load(moduleName, context);\n await moduleRegistry.initialize(moduleName, context);\n } catch (error) {\n console.error(`Failed to load critical module ${moduleName}:`, error);\n }\n }\n };\n \n // Router guard для загрузки модулей ДО навигации (только на клиенте)\n if (typeof window !== 'undefined') {\n router.beforeEach(async (to, from) => {\n // Получаем модули для маршрута\n const requiredModules = moduleRegistry.getModulesForRoute(to.path);\n \n // Проверяем, какие модули еще не загружены\n const modulesToLoad = requiredModules.filter(m => !moduleRegistry.initialized.has(m.name));\n \n if (modulesToLoad.length > 0) {\n // Показываем глобальный лоадер\n if (store.globals && store.globals.state) {\n store.globals.state.loading = true;\n }\n \n // Загружаем и инициализируем модули\n for (const module of modulesToLoad) {\n try {\n await moduleRegistry.load(module.name, context);\n await moduleRegistry.initialize(module.name, context);\n } catch (error) {\n console.error(`Failed to load module ${module.name}:`, error);\n }\n }\n \n // Лоадер остается включенным - страница сама выключит через globals.state.loading = false\n \n // После загрузки модулей и регистрации их роутов,\n // возвращаем тот же путь для повторной навигации с новыми роутами\n return to.fullPath;\n }\n });\n }\n \n // Error handler для lazy loaded chunks\n if (typeof window !== 'undefined') {\n window.addEventListener('error', (e) => {\n if (e.message && e.message.includes('Loading chunk')) {\n console.error('Chunk loading failed:', e);\n // Можно показать уведомление пользователю\n // или попытаться перезагрузить\n }\n });\n }\n \n // Инициализация в правильном порядке\n const initialize = async () => {\n // Хук ДО инициализации\n if (hooks.beforeInitialize) {\n await hooks.beforeInitialize(context);\n }\n \n // 1. Критические модули\n await initCriticalModules();\n \n // 2. WebSocket (отложим после гидратации)\n if (typeof window !== 'undefined') {\n // Откладываем инициализацию WebSocket после гидратации\n requestIdleCallback(() => {\n globalWebSocket.initialize({\n wsUrl: process.env.WSS_URL || undefined,\n maxReconnectAttempts: 5,\n reconnectDelay: 3000,\n pingInterval: 30000,\n });\n });\n \n // 3. Предзагрузка важных модулей в фоне\n requestIdleCallback(() => {\n moduleRegistry.preloadModules(context);\n });\n }\n \n // 5. Подключаем Vue плагины\n app.use(router).use(i18n).use(meta);\n \n // 6. Монтируем приложение\n if (process.env.MOBILE_APP) {\n app.mount('#app');\n }\n\n // Хук ПОСЛЕ инициализации\n if (hooks.afterInitialize) {\n await hooks.afterInitialize(context);\n }\n \n return {\n app,\n router,\n store,\n i18n,\n meta,\n moduleRegistry,\n };\n };\n \n // Возвращаем промис для SSR\n if (!process.env.MOBILE_APP) {\n return initialize();\n }\n \n // Для SPA инициализируем сразу\n initialize();\n }\n \n // FOR SSR / SERVER ENTRY\n async function renderApp({ url, cookies, languages, ssrContext }) {\n const { app, router, store, i18n, meta, moduleRegistry } = await createApp();\n \n // ВАЖНО: Очищаем состояние moduleRegistry на сервере перед каждым запросом\n // чтобы избежать загрязнения между запросами\n if (typeof window === 'undefined') {\n moduleRegistry.initialized.clear();\n moduleRegistry.modules.clear();\n moduleRegistry.loadingPromises.clear();\n \n // На сервере загружаем auth для SSR рендеринга (vue-app-renderer требует его)\n const context = { app, store, router, config };\n await moduleRegistry.load('auth', context);\n await moduleRegistry.initialize('auth', context);\n }\n \n const context = {\n app,\n store,\n router,\n config,\n ssr: true,\n };\n \n // Для SSR загружаем модули для текущего маршрута\n const requiredModules = moduleRegistry.getModulesForRoute(url);\n \n // Собираем имена модулей которые нужны для текущего роута\n const currentRouteModules = [];\n \n // Загружаем необходимые модули для SSR\n for (const module of requiredModules) {\n await moduleRegistry.load(module.name, context);\n await moduleRegistry.initialize(module.name, context);\n currentRouteModules.push(module.name);\n }\n \n // После загрузки модулей и регистрации роутов, выполняем навигацию\n await router.push(url);\n await router.isReady();\n \n const result = await appRenderer.render({\n url,\n cookies,\n createApp: () => ({ app, router, store, i18n, meta }),\n ssrContext\n });\n \n if (ssrContext?.modules) {\n result.usedModules = Array.from(ssrContext.modules);\n }\n \n // Передаем только модули текущего роута + критические модули\n const criticalModules = ['globals', 'auth', 'organizations', 'backoffice'];\n const allModulesForRoute = [...new Set([...criticalModules, ...currentRouteModules])];\n \n result.loadedModules = allModulesForRoute;\n \n return result;\n }\n \n // FOR SPA\n if (typeof window !== 'undefined' && process.env.MOBILE_APP) {\n createApp();\n }\n \n // FOR SSR / CLIENT ENTRY\n if (typeof window !== 'undefined' && !process.env.MOBILE_APP) {\n createApp().then(({ app, router, store, moduleRegistry }) => {\n // Ждем когда роутер будет готов\n router.isReady().then(() => {\n // Хук ДО гидратации\n if (hooks.beforeHydration) {\n hooks.beforeHydration({ app, router, store, moduleRegistry });\n }\n \n app.mount('#app');\n \n // Хук ПОСЛЕ гидратации\n if (hooks.afterHydration) {\n hooks.afterHydration({ app, router, store, moduleRegistry });\n }\n \n // Создаем context для загрузки модулей\n const context = { app, store, router, config };\n \n // Загружаем auth модуль сразу - он критичен\n moduleRegistry.load('auth', context).then(() => {\n // Загружаем важные модули в следующем тике\n setTimeout(async () => {\n try {\n await Promise.all([\n moduleRegistry.load('organizations', context),\n moduleRegistry.load('backoffice', context),\n ]);\n } catch (error) {\n console.error('Error loading core modules:', error);\n }\n }, 0);\n \n // Загружаем некритичные модули когда браузер idle\n requestIdleCallback(async () => {\n try {\n await moduleRegistry.load('notifications', context);\n // Маркер для тестов\n if (typeof window !== 'undefined') {\n window.performance.mark('client-ready');\n }\n } catch (error) {\n console.error('Error loading non-critical modules:', error);\n }\n });\n }).catch(error => {\n console.error('Error loading auth module:', error);\n });\n });\n }).catch(error => {\n console.error('Hydration failed:', error);\n });\n }\n \n return { createApp, renderApp };\n }\n \n // Возвращаем промис, который резолвится с функциями\n return initializeApp();\n}"],"names":["createApp","createVueApp","createVueSSRApp","moduleRegistry","context"],"mappings":"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"}
|
|
@@ -1,63 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
return Store.instance;
|
|
20
|
-
}
|
|
21
|
-
addStore(name, storage) {
|
|
22
|
-
this.store[name] = storage;
|
|
23
|
-
this.store.modules.push(name);
|
|
24
|
-
}
|
|
25
|
-
async getInitialState() {
|
|
26
|
-
const initialState = {};
|
|
27
|
-
for (const [moduleName, moduleStore] of Object.entries(this.store)) {
|
|
28
|
-
if (moduleName !== "modules" && moduleName !== "addStore" && moduleName !== "getInitialState" && moduleName !== "setInitialState") {
|
|
29
|
-
if (moduleStore.state) {
|
|
30
|
-
initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));
|
|
4
|
+
function createStore() {
|
|
5
|
+
const store2 = vue.reactive({
|
|
6
|
+
modules: [],
|
|
7
|
+
addStore(name, storage) {
|
|
8
|
+
this[name] = storage;
|
|
9
|
+
this.modules.push(name);
|
|
10
|
+
},
|
|
11
|
+
async getInitialState() {
|
|
12
|
+
const initialState = {};
|
|
13
|
+
for (const [moduleName, moduleStore] of Object.entries(this)) {
|
|
14
|
+
if (moduleName !== "modules" && moduleName !== "addStore" && moduleName !== "getInitialState" && moduleName !== "setInitialState") {
|
|
15
|
+
if (moduleStore.state) {
|
|
16
|
+
initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));
|
|
17
|
+
}
|
|
31
18
|
}
|
|
32
19
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
20
|
+
return initialState;
|
|
21
|
+
},
|
|
22
|
+
async setInitialState(initialState, isHydration = false) {
|
|
23
|
+
console.time("[PERF] Store.setInitialState");
|
|
24
|
+
const modules = Object.entries(initialState);
|
|
25
|
+
console.log(`[PERF] Setting initial state for ${modules.length} modules (hydration: ${isHydration})`);
|
|
26
|
+
for (const [moduleName, moduleState] of modules) {
|
|
27
|
+
if (this[moduleName] && this[moduleName].state) {
|
|
28
|
+
console.time(`[PERF] Merge state: ${moduleName}`);
|
|
29
|
+
if (isHydration) {
|
|
30
|
+
Object.assign(this[moduleName].state, moduleState);
|
|
31
|
+
} else {
|
|
32
|
+
mergeReactive(this[moduleName].state, moduleState);
|
|
33
|
+
}
|
|
34
|
+
console.timeEnd(`[PERF] Merge state: ${moduleName}`);
|
|
47
35
|
}
|
|
48
|
-
console.timeEnd(`[PERF] Merge state: ${moduleName}`);
|
|
49
36
|
}
|
|
37
|
+
console.timeEnd("[PERF] Store.setInitialState");
|
|
50
38
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
mergeReactive(target, source) {
|
|
39
|
+
});
|
|
40
|
+
function mergeReactive(target, source) {
|
|
54
41
|
const keys = Object.keys(source);
|
|
55
42
|
for (let i = 0; i < keys.length; i++) {
|
|
56
43
|
const key = keys[i];
|
|
57
44
|
const sourceValue = source[key];
|
|
58
45
|
if (sourceValue !== null && typeof sourceValue === "object" && !Array.isArray(sourceValue)) {
|
|
59
46
|
if (vue.isReactive(target[key])) {
|
|
60
|
-
|
|
47
|
+
mergeReactive(target[key], sourceValue);
|
|
61
48
|
} else {
|
|
62
49
|
target[key] = sourceValue;
|
|
63
50
|
}
|
|
@@ -66,9 +53,20 @@ class Store {
|
|
|
66
53
|
}
|
|
67
54
|
}
|
|
68
55
|
}
|
|
56
|
+
return store2;
|
|
57
|
+
}
|
|
58
|
+
let clientStore = null;
|
|
59
|
+
function useStore() {
|
|
60
|
+
if (typeof window === "undefined") {
|
|
61
|
+
return createStore();
|
|
62
|
+
}
|
|
63
|
+
if (!clientStore) {
|
|
64
|
+
clientStore = createStore();
|
|
65
|
+
}
|
|
66
|
+
return clientStore;
|
|
69
67
|
}
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
const store = instance.store;
|
|
68
|
+
const store = useStore();
|
|
69
|
+
exports.createStore = createStore;
|
|
73
70
|
exports.default = store;
|
|
71
|
+
exports.useStore = useStore;
|
|
74
72
|
//# sourceMappingURL=store.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.cjs","sources":["../../../../../../../src/modules/globals/views/classes/store.js"],"sourcesContent":["import { isReactive, reactive } from 'vue';\n\
|
|
1
|
+
{"version":3,"file":"store.cjs","sources":["../../../../../../../src/modules/globals/views/classes/store.js"],"sourcesContent":["import { isReactive, reactive } from 'vue';\n\n// Фабрика для создания store\nexport function createStore() {\n const store = reactive({\n modules: [],\n addStore(name, storage) {\n this[name] = storage;\n this.modules.push(name);\n },\n async getInitialState() {\n const initialState = {};\n for (const [moduleName, moduleStore] of Object.entries(this)) {\n if (moduleName !== 'modules' && moduleName !== 'addStore' && moduleName !== 'getInitialState' && moduleName !== 'setInitialState') {\n if (moduleStore.state) {\n initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));\n }\n }\n }\n return initialState;\n },\n async setInitialState(initialState, isHydration = false) {\n console.time('[PERF] Store.setInitialState');\n const modules = Object.entries(initialState);\n console.log(`[PERF] Setting initial state for ${modules.length} modules (hydration: ${isHydration})`);\n \n for (const [moduleName, moduleState] of modules) {\n if (this[moduleName] && this[moduleName].state) {\n console.time(`[PERF] Merge state: ${moduleName}`);\n \n // При гидратации просто заменяем state целиком для скорости\n if (isHydration) {\n Object.assign(this[moduleName].state, moduleState);\n } else {\n mergeReactive(this[moduleName].state, moduleState);\n }\n \n console.timeEnd(`[PERF] Merge state: ${moduleName}`);\n }\n }\n console.timeEnd('[PERF] Store.setInitialState');\n }\n });\n\n function mergeReactive(target, source) {\n // Оптимизированная версия слияния\n const keys = Object.keys(source);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const sourceValue = source[key];\n \n if (sourceValue !== null && typeof sourceValue === 'object' && !Array.isArray(sourceValue)) {\n if (isReactive(target[key])) {\n mergeReactive(target[key], sourceValue);\n } else {\n target[key] = sourceValue;\n }\n } else {\n target[key] = sourceValue;\n }\n }\n }\n\n return store;\n}\n\n// Синглтон для клиента\nlet clientStore = null;\n\nexport function useStore() {\n if (typeof window === 'undefined') {\n // SSR: новый store каждый раз\n return createStore();\n }\n // Client: синглтон\n if (!clientStore) {\n clientStore = createStore();\n }\n return clientStore;\n}\n\nexport default useStore();\n"],"names":["store","reactive","isReactive"],"mappings":";;;AAGO,SAAS,cAAc;AAC5B,QAAMA,SAAQC,IAAAA,SAAS;AAAA,IACrB,SAAS,CAAA;AAAA,IACT,SAAS,MAAM,SAAS;AACtB,WAAK,IAAI,IAAI;AACb,WAAK,QAAQ,KAAK,IAAI;AAAA,IACxB;AAAA,IACA,MAAM,kBAAkB;AACtB,YAAM,eAAe,CAAA;AACrB,iBAAW,CAAC,YAAY,WAAW,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC5D,YAAI,eAAe,aAAa,eAAe,cAAc,eAAe,qBAAqB,eAAe,mBAAmB;AACjI,cAAI,YAAY,OAAO;AACrB,yBAAa,UAAU,IAAI,KAAK,MAAM,KAAK,UAAU,YAAY,KAAK,CAAC;AAAA,UACzE;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,MAAM,gBAAgB,cAAc,cAAc,OAAO;AACvD,cAAQ,KAAK,8BAA8B;AAC3C,YAAM,UAAU,OAAO,QAAQ,YAAY;AAC3C,cAAQ,IAAI,oCAAoC,QAAQ,MAAM,wBAAwB,WAAW,GAAG;AAEpG,iBAAW,CAAC,YAAY,WAAW,KAAK,SAAS;AAC/C,YAAI,KAAK,UAAU,KAAK,KAAK,UAAU,EAAE,OAAO;AAC9C,kBAAQ,KAAK,uBAAuB,UAAU,EAAE;AAGhD,cAAI,aAAa;AACf,mBAAO,OAAO,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,UACnD,OAAO;AACL,0BAAc,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,UACnD;AAEA,kBAAQ,QAAQ,uBAAuB,UAAU,EAAE;AAAA,QACrD;AAAA,MACF;AACA,cAAQ,QAAQ,8BAA8B;AAAA,IAChD;AAAA,EACJ,CAAG;AAED,WAAS,cAAc,QAAQ,QAAQ;AAErC,UAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,cAAc,OAAO,GAAG;AAE9B,UAAI,gBAAgB,QAAQ,OAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,WAAW,GAAG;AAC1F,YAAIC,eAAW,OAAO,GAAG,CAAC,GAAG;AAC3B,wBAAc,OAAO,GAAG,GAAG,WAAW;AAAA,QACxC,OAAO;AACL,iBAAO,GAAG,IAAI;AAAA,QAChB;AAAA,MACF,OAAO;AACL,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,SAAOF;AACT;AAGA,IAAI,cAAc;AAEX,SAAS,WAAW;AACzB,MAAI,OAAO,WAAW,aAAa;AAEjC,WAAO,YAAW;AAAA,EACpB;AAEA,MAAI,CAAC,aAAa;AAChB,kBAAc,YAAW;AAAA,EAC3B;AACA,SAAO;AACT;AAEA,MAAA,QAAe,SAAQ;;;;"}
|
|
@@ -1,61 +1,48 @@
|
|
|
1
1
|
import { reactive, isReactive } from "vue";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
return Store.instance;
|
|
18
|
-
}
|
|
19
|
-
addStore(name, storage) {
|
|
20
|
-
this.store[name] = storage;
|
|
21
|
-
this.store.modules.push(name);
|
|
22
|
-
}
|
|
23
|
-
async getInitialState() {
|
|
24
|
-
const initialState = {};
|
|
25
|
-
for (const [moduleName, moduleStore] of Object.entries(this.store)) {
|
|
26
|
-
if (moduleName !== "modules" && moduleName !== "addStore" && moduleName !== "getInitialState" && moduleName !== "setInitialState") {
|
|
27
|
-
if (moduleStore.state) {
|
|
28
|
-
initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));
|
|
2
|
+
function createStore() {
|
|
3
|
+
const store2 = reactive({
|
|
4
|
+
modules: [],
|
|
5
|
+
addStore(name, storage) {
|
|
6
|
+
this[name] = storage;
|
|
7
|
+
this.modules.push(name);
|
|
8
|
+
},
|
|
9
|
+
async getInitialState() {
|
|
10
|
+
const initialState = {};
|
|
11
|
+
for (const [moduleName, moduleStore] of Object.entries(this)) {
|
|
12
|
+
if (moduleName !== "modules" && moduleName !== "addStore" && moduleName !== "getInitialState" && moduleName !== "setInitialState") {
|
|
13
|
+
if (moduleStore.state) {
|
|
14
|
+
initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));
|
|
15
|
+
}
|
|
29
16
|
}
|
|
30
17
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
18
|
+
return initialState;
|
|
19
|
+
},
|
|
20
|
+
async setInitialState(initialState, isHydration = false) {
|
|
21
|
+
console.time("[PERF] Store.setInitialState");
|
|
22
|
+
const modules = Object.entries(initialState);
|
|
23
|
+
console.log(`[PERF] Setting initial state for ${modules.length} modules (hydration: ${isHydration})`);
|
|
24
|
+
for (const [moduleName, moduleState] of modules) {
|
|
25
|
+
if (this[moduleName] && this[moduleName].state) {
|
|
26
|
+
console.time(`[PERF] Merge state: ${moduleName}`);
|
|
27
|
+
if (isHydration) {
|
|
28
|
+
Object.assign(this[moduleName].state, moduleState);
|
|
29
|
+
} else {
|
|
30
|
+
mergeReactive(this[moduleName].state, moduleState);
|
|
31
|
+
}
|
|
32
|
+
console.timeEnd(`[PERF] Merge state: ${moduleName}`);
|
|
45
33
|
}
|
|
46
|
-
console.timeEnd(`[PERF] Merge state: ${moduleName}`);
|
|
47
34
|
}
|
|
35
|
+
console.timeEnd("[PERF] Store.setInitialState");
|
|
48
36
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
mergeReactive(target, source) {
|
|
37
|
+
});
|
|
38
|
+
function mergeReactive(target, source) {
|
|
52
39
|
const keys = Object.keys(source);
|
|
53
40
|
for (let i = 0; i < keys.length; i++) {
|
|
54
41
|
const key = keys[i];
|
|
55
42
|
const sourceValue = source[key];
|
|
56
43
|
if (sourceValue !== null && typeof sourceValue === "object" && !Array.isArray(sourceValue)) {
|
|
57
44
|
if (isReactive(target[key])) {
|
|
58
|
-
|
|
45
|
+
mergeReactive(target[key], sourceValue);
|
|
59
46
|
} else {
|
|
60
47
|
target[key] = sourceValue;
|
|
61
48
|
}
|
|
@@ -64,11 +51,22 @@ class Store {
|
|
|
64
51
|
}
|
|
65
52
|
}
|
|
66
53
|
}
|
|
54
|
+
return store2;
|
|
55
|
+
}
|
|
56
|
+
let clientStore = null;
|
|
57
|
+
function useStore() {
|
|
58
|
+
if (typeof window === "undefined") {
|
|
59
|
+
return createStore();
|
|
60
|
+
}
|
|
61
|
+
if (!clientStore) {
|
|
62
|
+
clientStore = createStore();
|
|
63
|
+
}
|
|
64
|
+
return clientStore;
|
|
67
65
|
}
|
|
68
|
-
const
|
|
69
|
-
Object.freeze(instance);
|
|
70
|
-
const store = instance.store;
|
|
66
|
+
const store = useStore();
|
|
71
67
|
export {
|
|
72
|
-
|
|
68
|
+
createStore,
|
|
69
|
+
store as default,
|
|
70
|
+
useStore
|
|
73
71
|
};
|
|
74
72
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sources":["../../../../../../../src/modules/globals/views/classes/store.js"],"sourcesContent":["import { isReactive, reactive } from 'vue';\n\
|
|
1
|
+
{"version":3,"file":"store.js","sources":["../../../../../../../src/modules/globals/views/classes/store.js"],"sourcesContent":["import { isReactive, reactive } from 'vue';\n\n// Фабрика для создания store\nexport function createStore() {\n const store = reactive({\n modules: [],\n addStore(name, storage) {\n this[name] = storage;\n this.modules.push(name);\n },\n async getInitialState() {\n const initialState = {};\n for (const [moduleName, moduleStore] of Object.entries(this)) {\n if (moduleName !== 'modules' && moduleName !== 'addStore' && moduleName !== 'getInitialState' && moduleName !== 'setInitialState') {\n if (moduleStore.state) {\n initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));\n }\n }\n }\n return initialState;\n },\n async setInitialState(initialState, isHydration = false) {\n console.time('[PERF] Store.setInitialState');\n const modules = Object.entries(initialState);\n console.log(`[PERF] Setting initial state for ${modules.length} modules (hydration: ${isHydration})`);\n \n for (const [moduleName, moduleState] of modules) {\n if (this[moduleName] && this[moduleName].state) {\n console.time(`[PERF] Merge state: ${moduleName}`);\n \n // При гидратации просто заменяем state целиком для скорости\n if (isHydration) {\n Object.assign(this[moduleName].state, moduleState);\n } else {\n mergeReactive(this[moduleName].state, moduleState);\n }\n \n console.timeEnd(`[PERF] Merge state: ${moduleName}`);\n }\n }\n console.timeEnd('[PERF] Store.setInitialState');\n }\n });\n\n function mergeReactive(target, source) {\n // Оптимизированная версия слияния\n const keys = Object.keys(source);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const sourceValue = source[key];\n \n if (sourceValue !== null && typeof sourceValue === 'object' && !Array.isArray(sourceValue)) {\n if (isReactive(target[key])) {\n mergeReactive(target[key], sourceValue);\n } else {\n target[key] = sourceValue;\n }\n } else {\n target[key] = sourceValue;\n }\n }\n }\n\n return store;\n}\n\n// Синглтон для клиента\nlet clientStore = null;\n\nexport function useStore() {\n if (typeof window === 'undefined') {\n // SSR: новый store каждый раз\n return createStore();\n }\n // Client: синглтон\n if (!clientStore) {\n clientStore = createStore();\n }\n return clientStore;\n}\n\nexport default useStore();\n"],"names":["store"],"mappings":";AAGO,SAAS,cAAc;AAC5B,QAAMA,SAAQ,SAAS;AAAA,IACrB,SAAS,CAAA;AAAA,IACT,SAAS,MAAM,SAAS;AACtB,WAAK,IAAI,IAAI;AACb,WAAK,QAAQ,KAAK,IAAI;AAAA,IACxB;AAAA,IACA,MAAM,kBAAkB;AACtB,YAAM,eAAe,CAAA;AACrB,iBAAW,CAAC,YAAY,WAAW,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC5D,YAAI,eAAe,aAAa,eAAe,cAAc,eAAe,qBAAqB,eAAe,mBAAmB;AACjI,cAAI,YAAY,OAAO;AACrB,yBAAa,UAAU,IAAI,KAAK,MAAM,KAAK,UAAU,YAAY,KAAK,CAAC;AAAA,UACzE;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,MAAM,gBAAgB,cAAc,cAAc,OAAO;AACvD,cAAQ,KAAK,8BAA8B;AAC3C,YAAM,UAAU,OAAO,QAAQ,YAAY;AAC3C,cAAQ,IAAI,oCAAoC,QAAQ,MAAM,wBAAwB,WAAW,GAAG;AAEpG,iBAAW,CAAC,YAAY,WAAW,KAAK,SAAS;AAC/C,YAAI,KAAK,UAAU,KAAK,KAAK,UAAU,EAAE,OAAO;AAC9C,kBAAQ,KAAK,uBAAuB,UAAU,EAAE;AAGhD,cAAI,aAAa;AACf,mBAAO,OAAO,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,UACnD,OAAO;AACL,0BAAc,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,UACnD;AAEA,kBAAQ,QAAQ,uBAAuB,UAAU,EAAE;AAAA,QACrD;AAAA,MACF;AACA,cAAQ,QAAQ,8BAA8B;AAAA,IAChD;AAAA,EACJ,CAAG;AAED,WAAS,cAAc,QAAQ,QAAQ;AAErC,UAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,cAAc,OAAO,GAAG;AAE9B,UAAI,gBAAgB,QAAQ,OAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,WAAW,GAAG;AAC1F,YAAI,WAAW,OAAO,GAAG,CAAC,GAAG;AAC3B,wBAAc,OAAO,GAAG,GAAG,WAAW;AAAA,QACxC,OAAO;AACL,iBAAO,GAAG,IAAI;AAAA,QAChB;AAAA,MACF,OAAO;AACL,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,SAAOA;AACT;AAGA,IAAI,cAAc;AAEX,SAAS,WAAW;AACzB,MAAI,OAAO,WAAW,aAAa;AAEjC,WAAO,YAAW;AAAA,EACpB;AAEA,MAAI,CAAC,aAAa;AAChB,kBAAc,YAAW;AAAA,EAC3B;AACA,SAAO;AACT;AAEA,MAAA,QAAe,SAAQ;"}
|
|
@@ -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 Feed = require("../../../../../components/Feed/Feed.
|
|
4
|
+
const Feed = require("../../../../../components/Feed/Feed.vue.cjs");
|
|
5
5
|
const BlockSearch = require("./BlockSearch.vue.cjs");
|
|
6
6
|
const Card = require("./Card.vue.cjs");
|
|
7
7
|
const clickOutside = require("../../../../../components/FieldPhone/click-outside.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, computed, watch, createElementBlock, openBlock, createCommentVNode, withDirectives, createElementVNode, normalizeClass, renderSlot, createTextVNode, toDisplayString, Fragment, renderList, createVNode, unref, withCtx } from "vue";
|
|
2
|
-
import _sfc_main$2 from "../../../../../components/Feed/Feed.
|
|
2
|
+
import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
|
|
3
3
|
import _sfc_main$1 from "./BlockSearch.vue.js";
|
|
4
4
|
import _sfc_main$3 from "./Card.vue.js";
|
|
5
5
|
import clickOutside from "../../../../../components/FieldPhone/click-outside.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const IconSearch = require("../../../../icons/navigation/IconSearch.vue.cjs");
|
|
5
|
-
const Field = require("../../../../../components/Field/Field.
|
|
5
|
+
const Field = require("../../../../../components/Field/Field.vue.cjs");
|
|
6
6
|
const _sfc_main = {
|
|
7
7
|
__name: "BlockSearch",
|
|
8
8
|
props: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, watch, createBlock, openBlock, withCtx, createVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../icons/navigation/IconSearch.vue.js";
|
|
3
|
-
import Field from "../../../../../components/Field/Field.
|
|
3
|
+
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
4
|
const _sfc_main = {
|
|
5
5
|
__name: "BlockSearch",
|
|
6
6
|
props: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Tooltip = require("../../../../../components/Tooltip/Tooltip.vue2.cjs");
|
|
6
|
-
const Dropdown = require("../../../../../components/Dropdown/Dropdown.
|
|
6
|
+
const Dropdown = require("../../../../../components/Dropdown/Dropdown.vue2.cjs");
|
|
7
7
|
const PlaceholderUserpic = require("../../../../icons/placeholders/PlaceholderUserpic.vue.cjs");
|
|
8
8
|
const PlaceholderOrganizationPic = require("../../../../icons/placeholders/PlaceholderOrganizationPic.vue.cjs");
|
|
9
9
|
const IconEllipsis = require("../../../../icons/navigation/IconEllipsis.vue.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createBlock, withModifiers, resolveDynamicComponent, toDisplayString, withCtx, createTextVNode, Fragment, renderList, normalizeClass } from "vue";
|
|
2
2
|
import { useRouter } from "vue-router";
|
|
3
3
|
import _sfc_main$1 from "../../../../../components/Tooltip/Tooltip.vue2.js";
|
|
4
|
-
import _sfc_main$3 from "../../../../../components/Dropdown/Dropdown.
|
|
4
|
+
import _sfc_main$3 from "../../../../../components/Dropdown/Dropdown.vue2.js";
|
|
5
5
|
import PlaceholderUserpic from "../../../../icons/placeholders/PlaceholderUserpic.vue.js";
|
|
6
6
|
import PlaceholderOrganizationPic from "../../../../icons/placeholders/PlaceholderOrganizationPic.vue.js";
|
|
7
7
|
import _sfc_main$4 from "../../../../icons/navigation/IconEllipsis.vue.js";
|
|
@@ -5,7 +5,7 @@ const vueRouter = require("vue-router");
|
|
|
5
5
|
const IconChevronBottom = require("../../../../icons/navigation/IconChevronBottom.vue.cjs");
|
|
6
6
|
const globals = require("../../store/globals.cjs");
|
|
7
7
|
const auth = require("../../../../auth/views/store/auth.cjs");
|
|
8
|
-
;/* empty css
|
|
8
|
+
;/* empty css */
|
|
9
9
|
;/* empty css */
|
|
10
10
|
;/* empty css */
|
|
11
11
|
const _pluginVue_exportHelper = require("../../../../../../../_virtual/_plugin-vue_export-helper.cjs");
|