@ozdao/martyrs 0.2.571 → 0.2.572
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/_virtual/dayjs.min.js +1 -1
- package/dist/_virtual/weekOfYear.js +1 -1
- package/dist/builder.js +1194 -45
- package/dist/{main-BFvlam0J.js → main-BfEQkhXS.js} +1173 -1191
- package/dist/martyrs/dist/{main-BFvlam0J.js → main-BfEQkhXS.js} +94 -112
- package/dist/martyrs/dist/main-BfEQkhXS.js.map +1 -0
- package/dist/martyrs/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +3 -3
- package/dist/martyrs/dist/{web-CH5wzMHy.js.map → web-BqTV9va1.js.map} +1 -1
- package/dist/martyrs/node_modules/.pnpm/{@capacitor_core@7.0.1 → @capacitor_core@7.4.4}/node_modules/@capacitor/core/dist/index.js +2 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +1 -0
- package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/index.js +1 -1
- package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/index.js.map +1 -1
- package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/web.js +1 -1
- package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/web.js.map +1 -1
- package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
- package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
- package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
- package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/dayjs.min.js +1 -1
- package/dist/martyrs/node_modules/dayjs/dayjs.min.js.map +1 -0
- package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/plugin/weekOfYear.js +1 -1
- package/dist/martyrs/node_modules/dayjs/plugin/weekOfYear.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
- package/dist/martyrs/src/components/Block/Block.vue.js +2 -2
- package/dist/martyrs/src/components/Block/Block.vue.js.map +1 -1
- package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +1 -1
- package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +6 -6
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +2 -2
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js +2 -2
- package/dist/martyrs/src/components/Countdown/Countdown.vue.js +5 -5
- package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +4 -4
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- 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/EditImages/{EditImages.vue.js → EditImages.vue2.js} +3 -3
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +4 -4
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js +1 -1
- package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +3 -3
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +2 -2
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
- package/dist/martyrs/src/components/Radio/Radio.vue.js +1 -1
- package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
- package/dist/martyrs/src/components/Select/Select.vue.js +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
- package/dist/martyrs/src/components/Table/Table.vue.js +3 -3
- package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
- package/dist/martyrs/src/components/Text/Text.vue.js +1 -1
- package/dist/martyrs/src/components/Text/Text.vue.js.map +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.js → Tooltip.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -0
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +4 -4
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +4 -4
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js.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/EnterPassword.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +8 -8
- 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.js +1 -1
- 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.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +3 -3
- 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.js +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/pages/UserDashboard.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +7 -7
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +4 -4
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +5 -5
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +1 -1
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +2 -2
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/Activity.vue.js +7 -7
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js +4 -4
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +10 -10
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js +2 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +10 -10
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/elements/PhotoStack.vue.js +3 -3
- package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +25 -5
- package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +4 -4
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +11 -11
- package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js +16 -16
- package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +7 -7
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +24 -24
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +3 -3
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +7 -7
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js +3 -3
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/store/core.store.js +29 -47
- package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +21 -2
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +5 -5
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +19 -19
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +8 -8
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +5 -5
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.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.js +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +4 -4
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconSort.vue.js +4 -4
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +7 -7
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +11 -11
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +6 -6
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +5 -5
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +6 -6
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +4 -4
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +8 -8
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +7 -7
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +13 -13
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +24 -24
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +8 -8
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +10 -13
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +9 -9
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +27 -27
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +17 -17
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +27 -27
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +8 -8
- package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.js +6 -6
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +2 -2
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +2 -2
- package/dist/martyrs/src/modules/notifications/store/notifications.store.js +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +9 -9
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +5 -5
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +9 -9
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +5 -5
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +17 -17
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +4 -4
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/store/shopcart.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js +8 -8
- package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +3 -3
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js +5 -5
- 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.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +5 -5
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +5 -5
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +7 -7
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +7 -7
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +12 -12
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +6 -6
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +9 -9
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +6 -6
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/DateLabel.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +8 -8
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js.map +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.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +6 -6
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js +3 -3
- package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js.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/spots/components/blocks/CardSpot.vue.js +5 -5
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +6 -6
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +5 -5
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js +5 -5
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +5 -5
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +4 -4
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js +12 -12
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js +4 -4
- package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +24 -24
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/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.js +1 -1
- package/dist/style.css +194 -202
- package/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +1 -1
- package/package.json +6 -8
- package/src/builder/modes/ssr.prod.js +1 -0
- package/src/builder/modes/ssr.rspack.dev.js +13 -6
- package/src/builder/rspack/rspack.config.base.js +7 -0
- package/src/builder/rspack/rspack.config.ssr.client.js +19 -44
- package/src/builder/templates/page.js +21 -0
- package/src/components/Block/Block.vue +1 -1
- package/src/components/BottomSheet/BottomSheet.vue +1 -1
- package/src/components/Calendar/Calendar.vue +5 -5
- package/src/components/Checkbox/Checkbox.vue +2 -2
- package/src/components/Chips/Chips.vue +2 -2
- package/src/components/Completion/Completion.vue +2 -2
- package/src/components/Countdown/Countdown.vue +5 -5
- package/src/components/DatePicker/DatePicker.vue +4 -4
- package/src/components/EditImages/EditImages.vue +1 -1
- package/src/components/Feed/Feed.old.vue +1 -1
- package/src/components/Feed/Feed.vue +1 -1
- package/src/components/FieldBig/FieldBig.vue +2 -2
- package/src/components/FieldPhone/FieldPhone.vue +1 -1
- package/src/components/FieldTags/BlockTags.vue +1 -1
- package/src/components/Loader/Loader.vue +1 -1
- package/src/components/Menu/MenuItem.vue +2 -2
- package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
- package/src/components/Radio/Radio.vue +1 -1
- package/src/components/Select/Select.vue +1 -1
- package/src/components/Table/Table.vue +2 -2
- package/src/components/Text/Text.vue +1 -1
- package/src/components/UploadImage/UploadImage.vue +2 -2
- package/src/components/UploadImageMultiple/UploadImageMultiple.vue +3 -3
- package/src/configurator/components/layouts/layoutConfigurator.vue +1 -1
- package/src/configurator/components/pages/Styles.vue +2 -2
- package/src/jit/.claude/settings.local.json +10 -0
- package/src/jit/CLAUDE.md +387 -0
- package/src/jit/core.js +274 -0
- package/src/jit/extractor.js +140 -0
- package/src/jit/index.js +19 -0
- package/src/jit/loader.js +46 -0
- package/src/jit/plugin.js +209 -0
- package/src/jit/rules.js +474 -0
- package/src/jit/variants.js +128 -0
- package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
- package/src/modules/auth/views/components/blocks/ProfileCard.vue +4 -4
- package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
- package/src/modules/auth/views/components/pages/EnterPassword.vue +2 -2
- package/src/modules/auth/views/components/pages/Profile.vue +5 -5
- package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +1 -1
- package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +2 -2
- package/src/modules/auth/views/components/pages/ResetPassword.vue +1 -1
- package/src/modules/auth/views/components/pages/SignIn.vue +3 -3
- package/src/modules/auth/views/components/pages/SignUp.vue +1 -1
- package/src/modules/auth/views/components/pages/UserDashboard.vue +3 -3
- package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
- package/src/modules/auth/views/components/sections/ProfileCompletion.vue +2 -2
- package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +7 -7
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +1 -1
- package/src/modules/backoffice/components/admin/Backcalls.vue +1 -1
- package/src/modules/backoffice/components/admin/FastOrders.vue +1 -1
- package/src/modules/backoffice/components/admin/ProductEdit.vue +2 -2
- package/src/modules/backoffice/components/admin/UserEdit.vue +1 -1
- package/src/modules/backoffice/components/admin/Users.vue +2 -2
- package/src/modules/backoffice/components/pages/Dashboard.vue +4 -4
- package/src/modules/backoffice/components/partials/Sidebar.vue +5 -5
- package/src/modules/chats/components/blocks/ChatMessage.vue +1 -1
- package/src/modules/chats/components/sections/ChatWindow.vue +2 -2
- package/src/modules/community/components/blocks/Activity.vue +7 -7
- package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
- package/src/modules/community/components/blocks/FooterBlogpost.vue +4 -4
- package/src/modules/community/components/layouts/Community.vue +10 -10
- package/src/modules/community/components/pages/CreateBlogPost.vue +1 -1
- package/src/modules/community/components/pages/Posts.vue +2 -2
- package/src/modules/community/components/sections/Comment.vue +2 -2
- package/src/modules/constructor/components/elements/Audio.vue +1 -1
- package/src/modules/constructor/components/elements/Caption.vue +1 -1
- package/src/modules/constructor/components/elements/Embed.vue +1 -1
- package/src/modules/constructor/components/elements/Textarea.vue +1 -1
- package/src/modules/constructor/components/elements/Video.vue +1 -1
- package/src/modules/core/views/classes/core.app.js +2 -1
- package/src/modules/core/views/components/blocks/BlockSorting.vue +2 -2
- package/src/modules/core/views/components/blocks/CardFooter.vue +4 -4
- package/src/modules/core/views/components/blocks/CardHeader.vue +7 -7
- package/src/modules/core/views/components/blocks/HelpCard.vue +1 -1
- package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
- package/src/modules/core/views/components/elements/ButtonDate.vue +1 -1
- package/src/modules/core/views/components/elements/PhotoStack.vue +3 -3
- package/src/modules/core/views/components/layouts/App.vue +28 -4
- package/src/modules/core/views/components/layouts/Client.vue +4 -4
- package/src/modules/core/views/components/partials/BottomNavigationBar.vue +15 -15
- package/src/modules/core/views/components/partials/CitySelection.vue +1 -1
- package/src/modules/core/views/components/partials/Footer.centered.vue +17 -17
- package/src/modules/core/views/components/partials/Footer.vue +18 -18
- package/src/modules/core/views/components/partials/Header.vue +10 -11
- package/src/modules/core/views/components/partials/LocationSelection.vue +1 -1
- package/src/modules/core/views/components/partials/Navigation.vue +20 -19
- package/src/modules/core/views/components/partials/NavigationBar.vue +3 -3
- package/src/modules/core/views/components/partials/Sidebar.vue +6 -6
- package/src/modules/core/views/components/sections/SectionPageTitle.vue +2 -2
- package/src/modules/core/views/components/sections/filters/FilterCheckbox.vue +1 -1
- package/src/modules/core/views/components/sections/filters/FilterDateRange.vue +2 -2
- package/src/modules/core/views/components/sections/filters/FilterPrice.vue +2 -2
- package/src/modules/core/views/components/sections/filters/FilterRange.vue +2 -2
- package/src/modules/core/views/store/core.store.js +36 -60
- package/src/modules/core/views/utils/vue-app-renderer.js +31 -1
- package/src/modules/events/components/blocks/CardEvent.vue +6 -6
- package/src/modules/events/components/blocks/CardEventShort.vue +3 -3
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/events/components/pages/EditEventTickets.vue +18 -18
- package/src/modules/events/components/pages/Event.vue +5 -5
- package/src/modules/events/components/pages/Events.vue +2 -2
- package/src/modules/events/components/pages/EventsBackoffice.vue +2 -2
- package/src/modules/events/components/sections/EditTickets.vue +5 -5
- package/src/modules/events/components/sections/EventsHot.vue +2 -2
- package/src/modules/events/components/sections/List.vue +1 -1
- package/src/modules/events/components/sections/SelectDate.vue +1 -1
- package/src/modules/gallery/components/pages/Gallery.vue +1 -1
- package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
- package/src/modules/governance/reactcode/src/components/CreateInitiativeForm.tsx +14 -14
- package/src/modules/governance/reactcode/src/components/CreateMilestoneForm.tsx +13 -13
- package/src/modules/governance/reactcode/src/components/EmptyState.tsx +2 -2
- package/src/modules/governance/reactcode/src/components/InitiativeCard.tsx +1 -1
- package/src/modules/governance/reactcode/src/components/LinkedEntityCard.tsx +1 -1
- package/src/modules/governance/reactcode/src/components/MilestoneCard.tsx +2 -2
- package/src/modules/governance/reactcode/src/components/ProductRepositories.tsx +6 -6
- package/src/modules/governance/reactcode/src/components/ProductSummary.tsx +18 -18
- package/src/modules/governance/reactcode/src/components/ProductTeam.tsx +7 -7
- package/src/modules/governance/reactcode/src/components/ProposeTaskForm.tsx +9 -9
- package/src/modules/governance/reactcode/src/components/TaskAssignForm.tsx +4 -4
- package/src/modules/governance/reactcode/src/components/TaskCard.tsx +1 -1
- package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +1 -1
- package/src/modules/governance/reactcode/src/components/VoteForm.tsx +6 -6
- package/src/modules/governance/reactcode/src/components/VotingCard.tsx +2 -2
- package/src/modules/governance/reactcode/src/components/VotingResults.tsx +15 -15
- package/src/modules/governance/reactcode/src/pages/InitiativeDetailPage.tsx +41 -41
- package/src/modules/governance/reactcode/src/pages/InitiativeMilestonesPage.tsx +8 -8
- package/src/modules/governance/reactcode/src/pages/InitiativesListPage.tsx +6 -6
- package/src/modules/governance/reactcode/src/pages/MilestoneDetailPage.tsx +9 -9
- package/src/modules/governance/reactcode/src/pages/RoadmapPage.tsx +14 -14
- package/src/modules/governance/reactcode/src/pages/TaskDetailPage.tsx +44 -44
- package/src/modules/governance/reactcode/src/pages/VotingDetailPage.tsx +8 -8
- package/src/modules/governance/reactcode/src/pages/VotingsListPage.tsx +3 -3
- package/src/modules/governance/reactcode-2/App.tsx +28 -0
- package/src/modules/governance/reactcode-2/README.md +20 -0
- package/src/modules/governance/reactcode-2/components/Charts.tsx +58 -0
- package/src/modules/governance/reactcode-2/components/Layout.tsx +457 -0
- package/src/modules/governance/reactcode-2/components/TaskPage.tsx +325 -0
- package/src/modules/governance/reactcode-2/components/VoteBadge.tsx +27 -0
- package/src/modules/governance/reactcode-2/components/VotingsFeedPage.tsx +328 -0
- package/src/modules/governance/reactcode-2/constants.ts +154 -0
- package/src/modules/governance/reactcode-2/index.html +70 -0
- package/src/modules/governance/reactcode-2/index.tsx +15 -0
- package/src/modules/governance/reactcode-2/metadata.json +5 -0
- package/src/modules/governance/reactcode-2/package.json +23 -0
- package/src/modules/governance/reactcode-2/pnpm-lock.yaml +1410 -0
- package/src/modules/governance/reactcode-2/tsconfig.json +29 -0
- package/src/modules/governance/reactcode-2/types.ts +48 -0
- package/src/modules/governance/reactcode-2/vite.config.ts +23 -0
- package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +10 -10
- package/src/modules/governance/views/components/blocks/CardMilestoneItem.vue +15 -15
- package/src/modules/governance/views/components/blocks/CardTaskItem.vue +9 -9
- package/src/modules/governance/views/components/blocks/CardVotingItem.vue +11 -11
- package/src/modules/governance/views/components/layouts/Governance.vue +1 -1
- package/src/modules/governance/views/components/pages/Governance.vue +3 -3
- package/src/modules/governance/views/components/pages/Initiative.vue +112 -112
- package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +31 -31
- package/src/modules/governance/views/components/pages/Initiatives.vue +20 -22
- package/src/modules/governance/views/components/pages/Milestone.vue +25 -25
- package/src/modules/governance/views/components/pages/Roadmap.vue +47 -47
- package/src/modules/governance/views/components/pages/Task.vue +106 -106
- package/src/modules/governance/views/components/pages/Tasks.vue +16 -16
- package/src/modules/governance/views/components/pages/Voting.vue +23 -23
- package/src/modules/governance/views/components/pages/Votings.vue +7 -7
- package/src/modules/governance/views/components/partials/EmptyState.vue +3 -3
- package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +11 -11
- package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +4 -4
- package/src/modules/governance/views/components/partials/VoteForm.vue +14 -14
- package/src/modules/governance/views/components/partials/VotingResults.vue +22 -22
- package/src/modules/icons/components/IconSearchPopup.vue +3 -3
- package/src/modules/icons/entities/IconCash.vue +23 -0
- package/src/modules/icons/navigation/IconSort.vue +4 -4
- package/src/modules/icons/pages/IconsPage.vue +7 -7
- package/src/modules/inventory/components/forms/AdjustmentForm.vue +3 -3
- package/src/modules/inventory/components/forms/HistoryView.vue +1 -1
- package/src/modules/inventory/components/forms/StockAlertsForm.vue +1 -1
- package/src/modules/inventory/components/pages/Inventory.vue +10 -10
- package/src/modules/inventory/components/pages/InventoryEdit.vue +6 -6
- package/src/modules/landing/components/blocks/MapBlock.vue +2 -2
- package/src/modules/landing/components/sections/Examples.vue +1 -1
- package/src/modules/landing/components/sections/InstagramSection.vue +1 -1
- package/src/modules/landing/components/sections/SectionEarn.vue +4 -4
- package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
- package/src/modules/landing/components/sections/SectionFocus.vue +2 -2
- package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
- package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
- package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
- package/src/modules/landing/components/sections/SectionJoinUs.vue +2 -2
- package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
- package/src/modules/landing/components/sections/SectionOverview.vue +2 -2
- package/src/modules/landing/components/sections/SectionRoadmap.vue +2 -2
- package/src/modules/marketplace/views/components/layouts/Marketplace.vue +8 -8
- package/src/modules/marketplace/views/components/pages/Marketplace.vue +5 -5
- package/src/modules/marketplace/views/components/sections/SectionMenu.vue +2 -2
- package/src/modules/music/components/SidebarMusic.vue +11 -11
- package/src/modules/music/components/blocks/ActionButtons.vue +2 -2
- package/src/modules/music/components/cards/AlbumCard.vue +4 -4
- package/src/modules/music/components/cards/ArtistCard.vue +3 -8
- package/src/modules/music/components/cards/ArtistCardSmall.vue +2 -2
- package/src/modules/music/components/cards/PlaylistCard.vue +4 -4
- package/src/modules/music/components/cards/TrackListCard.vue +5 -5
- package/src/modules/music/components/forms/AlbumForm.vue +8 -8
- package/src/modules/music/components/forms/ArtistForm.vue +4 -4
- package/src/modules/music/components/forms/PlaylistForm.vue +7 -7
- package/src/modules/music/components/forms/SearchForm.vue +1 -1
- package/src/modules/music/components/forms/TrackForm.vue +13 -13
- package/src/modules/music/components/pages/Album.vue +22 -22
- package/src/modules/music/components/pages/Artist.vue +7 -7
- package/src/modules/music/components/pages/MusicHome.vue +13 -18
- package/src/modules/music/components/pages/MusicLibrary.vue +9 -9
- package/src/modules/music/components/pages/Playlist.vue +25 -25
- package/src/modules/music/components/pages/SearchResults.vue +15 -15
- package/src/modules/music/components/pages/Track.vue +25 -25
- package/src/modules/music/components/player/FullscreenPlayer.vue +5 -5
- package/src/modules/notifications/components/blocks/NotificationItem.vue +1 -1
- package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
- package/src/modules/orders/components/blocks/CardApplication.vue +1 -1
- package/src/modules/orders/components/blocks/CardCustomer.vue +1 -1
- package/src/modules/orders/components/blocks/CardOrder.vue +9 -9
- package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +5 -5
- package/src/modules/orders/components/blocks/CardOrderItem.vue +9 -9
- package/src/modules/orders/components/blocks/CardOrderUser.vue +3 -3
- package/src/modules/orders/components/blocks/CardOrderVar1.vue +4 -4
- package/src/modules/orders/components/blocks/StatusHistory.vue +3 -3
- package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +1 -1
- package/src/modules/orders/components/elements/PriceTotal.vue +3 -3
- package/src/modules/orders/components/forms/FormApplicationDetails.vue +2 -2
- package/src/modules/orders/components/forms/FormCustomerDetails.vue +3 -3
- package/src/modules/orders/components/pages/Favorites.vue +1 -1
- package/src/modules/orders/components/pages/OrderBackoffice.vue +15 -15
- package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +4 -4
- package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
- package/src/modules/orders/components/partials/ShopCart.vue +2 -2
- package/src/modules/orders/components/sections/ApplicationDetails.vue +2 -2
- package/src/modules/orders/components/sections/AskToLogin.vue +1 -1
- package/src/modules/orders/components/sections/CustomerDetails.vue +2 -2
- package/src/modules/orders/components/sections/Succes.vue +4 -4
- package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
- package/src/modules/organizations/components/blocks/CardOrganization.vue +4 -4
- package/src/modules/organizations/components/blocks/Contacts.vue +8 -8
- package/src/modules/organizations/components/blocks/Rating.vue +1 -1
- package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +3 -3
- package/src/modules/organizations/components/forms/DepartmentForm.vue +1 -1
- package/src/modules/organizations/components/forms/InviteForm.vue +1 -1
- package/src/modules/organizations/components/pages/Department.vue +2 -2
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +1 -1
- package/src/modules/organizations/components/pages/Members.vue +1 -1
- package/src/modules/organizations/components/pages/Organization.new.vue +8 -8
- package/src/modules/organizations/components/pages/Organization.vue +6 -6
- package/src/modules/organizations/components/pages/OrganizationDocuments.vue +2 -2
- package/src/modules/organizations/components/pages/Organizations.vue +3 -3
- package/src/modules/organizations/components/sections/Documents.vue +2 -2
- package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
- package/src/modules/organizations/components/sections/Unit.vue +1 -1
- package/src/modules/pages/views/components/blocks/CardPage.vue +2 -2
- package/src/modules/pages/views/components/pages/Page.vue +5 -5
- package/src/modules/products/components/blocks/CardCategory.vue +1 -1
- package/src/modules/products/components/blocks/CardPosition.vue +4 -4
- package/src/modules/products/components/blocks/CardProduct.vue +3 -3
- package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -3
- package/src/modules/products/components/blocks/ProductImages.vue +2 -2
- package/src/modules/products/components/blocks/ProductVariants.vue +2 -2
- package/src/modules/products/components/elements/Image360.vue +2 -2
- package/src/modules/products/components/elements/Price.vue +2 -2
- package/src/modules/products/components/elements/QuantitySelector.vue +3 -3
- package/src/modules/products/components/elements/THC.vue +1 -1
- package/src/modules/products/components/forms/ReorderSettingsForm.vue +1 -1
- package/src/modules/products/components/forms/StockAuditForm.vue +2 -2
- package/src/modules/products/components/forms/StockHistoryView.vue +1 -1
- package/src/modules/products/components/pages/Categories.vue +1 -1
- package/src/modules/products/components/pages/CategoryEdit.vue +2 -2
- package/src/modules/products/components/pages/Product.vue +6 -6
- package/src/modules/products/components/pages/ProductEdit.vue +6 -6
- package/src/modules/products/components/pages/Products.vue +11 -11
- package/src/modules/products/components/sections/EditAttributes.vue +4 -4
- package/src/modules/products/components/sections/EditCategories.vue +1 -1
- package/src/modules/products/components/sections/EditDiscounts.vue +6 -6
- package/src/modules/products/components/sections/EditRecommended.vue +1 -1
- package/src/modules/products/components/sections/EditVariants.vue +8 -8
- package/src/modules/products/components/sections/FilterProducts.vue +3 -3
- package/src/modules/products/components/sections/ProductConfigurator.vue +2 -2
- package/src/modules/products/components/sections/ProductInformationSection.vue +10 -10
- package/src/modules/products/components/sections/ProductsRecommended.vue +2 -2
- package/src/modules/products/components/sections/SectionProduct.vue +7 -7
- package/src/modules/products/experiments/product-recommendation/components/HeroRecommendation.vue +3 -3
- package/src/modules/rents/views/components/blocks/CardRent.vue +1 -1
- package/src/modules/rents/views/components/pages/Gant/DateLabel.vue +1 -1
- package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +2 -2
- package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +8 -8
- package/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue +1 -1
- package/src/modules/rents/views/components/pages/Rents.vue +1 -1
- package/src/modules/rents/views/components/pages/RentsEdit.vue +6 -6
- package/src/modules/reports/components/pages/BackofficeReports.vue +3 -3
- package/src/modules/reports/components/sections/FormReport.vue +1 -1
- package/src/modules/spots/components/blocks/CardSpot.vue +4 -4
- package/src/modules/spots/components/blocks/SpotMemberModify.vue +1 -1
- package/src/modules/spots/components/layouts/Spots.vue +2 -2
- package/src/modules/spots/components/pages/Spot.vue +5 -5
- package/src/modules/spots/components/pages/SpotEdit.vue +2 -2
- package/src/modules/spots/components/pages/Spots.vue +3 -3
- package/src/modules/spots/components/sections/MapSection.vue +1 -1
- package/src/modules/spots/components/sections/WorktimeEdit.vue +4 -4
- package/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue +5 -5
- package/src/modules/wallet/views/components/blocks/CardDeposit.vue +5 -5
- package/src/modules/wallet/views/components/blocks/CashDeposit.vue +2 -2
- package/src/modules/wallet/views/components/blocks/CryptoDeposit.vue +4 -4
- package/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue +11 -11
- package/src/modules/wallet/views/components/elements/ConnectMetamask.vue +4 -4
- package/src/modules/wallet/views/components/pages/Wallet.vue +22 -22
- package/src/styles/config.scss +193 -507
- package/src/styles/layout.scss +81 -1
- package/src/styles/reset.scss +2 -0
- package/src/styles/theme.scss +1 -8
- package/dist/martyrs/dist/main-BFvlam0J.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.0.1/node_modules/@capacitor/core/dist/index.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +0 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
- package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js.map +0 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/weekOfYear.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -20
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
- package/src/modules/LAYOUT.MD +0 -767
- package/src/modules/STYLES.MD +0 -298
- package/src/modules/inventory/inventory.router.js +0 -72
- package/src/modules/products/products.router.js +0 -299
- package/src/styles/base/all.scss +0 -233
- package/src/styles/base/backgrounds.scss +0 -70
- package/src/styles/base/borders.scss +0 -407
- package/src/styles/base/scrolling.scss +0 -137
- package/src/styles/base/shadow_transitions_hover_refactor.scss +0 -158
- package/src/styles/base/transitions.scss +0 -109
- package/src/styles/responsive.scss +0 -152
- package/src/styles/typography.scss +0 -161
- /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.vue.js","sources":["../../../../../../../src/modules/events/components/pages/Events.vue"],"sourcesContent":["<template>\n <section class=\"bg-white\"> \n <div class=\"gap-regular pos-t-0 pos-sticky z-index-3 radius-medium \">\n <DatePicker\n @update:date=\"handleDatePickerChange\"\n :locale=\"$i18n.locale\"\n :options=\"{\n dateStart: 0,\n dateEnd: 30\n }\"\n class=\"bs-black-small br-b
|
|
1
|
+
{"version":3,"file":"Events.vue.js","sources":["../../../../../../../src/modules/events/components/pages/Events.vue"],"sourcesContent":["<template>\n <section class=\"bg-white\"> \n <div class=\"gap-regular pos-t-0 pos-sticky z-index-3 radius-medium \">\n <DatePicker\n @update:date=\"handleDatePickerChange\"\n :locale=\"$i18n.locale\"\n :options=\"{\n dateStart: 0,\n dateEnd: 30\n }\"\n class=\"bs-black-small br-b-1px br-black-transp-10 o-hidden bg-white pd-l-zero pd-r-zero pd-thin\"\n />\n </div>\n\n <section class=\"pd-medium mobile:pd-thin radius-tr-medium radius-tl-medium bg-white\"> \n\n <div class=\"gap-regular radius-medium mn-b-semi\">\n <h2\n class=\"mn-b-small\"\n >\n Events in <p @click=\"openCitySelectionPopup\" class=\"d-inline-block hover:bg-second hover:t-white cursor-pointer ease-elastic duration-150 h2 pd-micro pd-t-thin pd-r-small pd-l-small br-1px br-black-transp-10 radius-extra\">Phuket</p>\n </h2>\n\n <Popup \n @close-popup=\"closeCitySelectionPopup\" \n :isPopupOpen=\"isCitySelectionPopup\"\n class=\"w-m-33r t-left pd-medium bg-white radius-semi\"\n\n >\n <CitySelection/>\n </Popup>\n\n <EventsHot \n :options=\"{\n }\"\n />\n </div>\n\n\n <FeaturedEvents class=\"mn-b-semi\"/>\n <SelectDate \n class=\"mn-b-semi\"\n @date-selected=\"handleDateSelection\" \n />\n\n <div class=\"gap-regular mn-b-semi\">\n\n <h3\n class=\"mn-b-small\"\n >\n Most Happening Organizers\n </h3>\n <Feed\n :showLoadMore=\"false\"\n :LoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Organization Found',\n description: 'Currently, there are no organization available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: organizations.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n sort: 'numberOfMemberships',\n contain: ['blogposts'],\n lookup: ['blogposts'],\n limit: 6\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-2 gap-thin\"\n >\n <CardOrganization \n v-for=\"organization in items\"\n :key=\"organization._id\" \n :organization=\"organization\"\n :user=\"auth.state.user\"\n :showProducts=\"false\"\n :showRating=\"false\"\n :showFeatured=\"false\"\n :showFollowers=\"false\"\n @updateMembership=\"handleMembershipUpdate\"\n class=\"pd-small w-100 pd-0 bg-light p-regular radius-medium o-hidden\"\n />\n </Feed>\n\n </div>\n \n <div class=\"gap-regular radius-medium\">\n\n <h3\n class=\"mn-b-small\"\n >\n All Events\n </h3>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Events Today',\n description: 'Currently, there are no events available.'\n }\n }\"\n :store=\"{\n read: (options) => events.read(options),\n state: events.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n limit: 9\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-3 mobile:cols-1 gap-thin o-x-hidden\"\n >\n <CardEvent \n @click=\"$router.push({name: 'Event', params: {url: event.url}})\" \n v-for=\"(event,index) in items\" \n :key=\"event._id\" \n :event=\"event\" \n :user=\"auth.state.user._id\" \n :type=\"'normal'\"\n class=\"w-100 o-hidden bg-light radius-medium\"\n >\n </CardEvent>\n </Feed>\n\n </div>\n\n </section>\n </section>\n</template>\n\n<script setup=\"props\">\n import { computed, onMounted, watch, ref } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue';\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import Popup from '@martyrs/src/components/Popup/Popup.vue'\n import DatePicker from '@martyrs/src/components/DatePicker/DatePicker.vue'\n\n import CitySelection from '@martyrs/src/modules/core/views/components/partials/CitySelection.vue';\n\n import FeaturedEvents from '@martyrs/src/modules/events/components/sections/FeaturedEvents.vue'; \n import SelectDate from '@martyrs/src/modules/events/components/sections/SelectDate.vue'; \n\n import EventsHot from '@martyrs/src/modules/events/components/sections/EventsHot.vue'; \n import CardEvent from '@martyrs/src/modules/events/components/blocks/CardEvent.vue';\n import CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n // Import state\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n import * as organizations from '@martyrs/src/modules/organizations/store/organizations.js'\n import membershipsStore from '@martyrs/src/modules/organizations/store/memberships.store.js'\n\n\n import * as events from '@martyrs/src/modules/events/store/events.js'; \n\n const handleMembershipUpdate = ({ membership, status, target }, statusName, statusNumber) => {\n membershipsStore.handleMembershipUpdate(organizations.state.current, membership, status, target, statusName, statusNumber)\n };\n // State\n const route = useRoute();\n const router = useRouter();\n\n // let baseDate = new Date();\n // const formattedDate = formatDateForRouter(baseDate);\n \n // function formatDateForRouter(date) {\n // return `${date.getDate().toString().padStart(2, '0')}${(date.getMonth() + 1).toString().padStart(2, '0')}${date.getFullYear()}`;\n // }\n\n // if (route.query) {\n // const query = route.query;\n \n // const newFilterValue = {\n // tags: query.tags ? query.tags.split(',') : null,\n // date: query.date ? query.date : null,\n // };\n\n // events.state.filter = newFilterValue; // <-- Modified\n // } else {\n // const newFilterValue = {\n // date: formattedDate,\n // };\n\n // events.state.filter = newFilterValue;\n // }\n\n // watch(() => events.state.filter, (newFilterValue, oldFilterValue) => { // <-- Modified\n // const query = { ...route.query };\n\n // Object.keys(oldFilterValue).forEach(key => {\n // if (query[key]) {\n // delete query[key];\n // }\n // });\n\n // const newQueryValues = Object.fromEntries(\n // Object.entries(newFilterValue)\n // .filter(([key, value]) => (Array.isArray(value) && value.length > 0) || (typeof value === 'string' && value))\n // .map(([key, value]) => [key, Array.isArray(value) ? value.join(',') : value])\n // );\n // Object.assign(query, newQueryValues);\n\n // router.push({ query });\n // }, { deep: true })\n\n const isCitySelectionPopup = ref(false)\n\n function openCitySelectionPopup() {\n isCitySelectionPopup.value = true;\n }\n function closeCitySelectionPopup() {\n isCitySelectionPopup.value = false;\n }\n \n const handleDatePickerChange = (date) => {\n if (date) {\n // Убедимся, что у нас действительно объект даты\n const selectedDate = new Date(date);\n \n // Создаем начало дня в локальной временной зоне\n const startOfDay = new Date(selectedDate);\n startOfDay.setHours(0, 0, 0, 0);\n \n // Создаем конец дня в локальной временной зоне\n const endOfDay = new Date(selectedDate);\n endOfDay.setHours(23, 59, 59, 999);\n \n router.push({\n name: 'Events Search',\n query: {\n period: 'day',\n periodStart: startOfDay.toISOString(),\n periodEnd: endOfDay.toISOString()\n }\n });\n }\n };\n\n // Update the existing handleDateSelection method\n const handleDateSelection = (dateData) => {\n console.log('Selected date data:', dateData);\n router.push({\n name: 'Events Search',\n query: {\n periodStart: dateData.startDate.toISOString(),\n periodEnd: dateData.endDate.toISOString()\n }\n });\n };\n</script>\n\n<style lang=\"scss\">\n \n</style>\n"],"names":["organizations.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuKE,UAAM,yBAAyB,CAAC,EAAE,YAAY,QAAQ,OAAM,GAAI,YAAY,iBAAiB;AAC3F,uBAAiB,uBAAuBA,QAAoB,SAAS,YAAY,QAAQ,QAAQ,YAAY,YAAY;AAAA,IAC3H;AAEc,aAAQ;AACtB,UAAM,SAAS,UAAS;AA6CxB,UAAM,uBAAuB,IAAI,KAAK;AAEtC,aAAS,yBAAyB;AAChC,2BAAqB,QAAQ;AAAA,IAC/B;AACA,aAAS,0BAA0B;AACjC,2BAAqB,QAAQ;AAAA,IAC/B;AAEA,UAAM,yBAAyB,CAAC,SAAS;AACvC,UAAI,MAAM;AAER,cAAM,eAAe,IAAI,KAAK,IAAI;AAGlC,cAAM,aAAa,IAAI,KAAK,YAAY;AACxC,mBAAW,SAAS,GAAG,GAAG,GAAG,CAAC;AAG9B,cAAM,WAAW,IAAI,KAAK,YAAY;AACtC,iBAAS,SAAS,IAAI,IAAI,IAAI,GAAG;AAEjC,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,OAAO;AAAA,YACL,QAAQ;AAAA,YACR,aAAa,WAAW,YAAW;AAAA,YACnC,WAAW,SAAS,YAAW;AAAA,UACzC;AAAA,QACA,CAAO;AAAA,MACH;AAAA,IACF;AAGA,UAAM,sBAAsB,CAAC,aAAa;AACxC,cAAQ,IAAI,uBAAuB,QAAQ;AAC3C,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,UACL,aAAa,SAAS,UAAU,YAAW;AAAA,UAC3C,WAAW,SAAS,QAAQ,YAAW;AAAA,QAC/C;AAAA,MACA,CAAK;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -73,7 +73,7 @@ const _sfc_main = {
|
|
|
73
73
|
state.user._id === unref(route).params.user || unref(route).params._id ? (openBlock(), createElementBlock("button", {
|
|
74
74
|
key: 0,
|
|
75
75
|
onClick: _cache[0] || (_cache[0] = ($event) => unref(router).push({ name: getRouteName("Create Event") })),
|
|
76
|
-
class: "radius-
|
|
76
|
+
class: "radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second"
|
|
77
77
|
}, " + ")) : createCommentVNode("", true)
|
|
78
78
|
]),
|
|
79
79
|
createElementVNode("section", _hoisted_3, [
|
|
@@ -85,7 +85,7 @@ const _sfc_main = {
|
|
|
85
85
|
{ name: "Organizer", value: "owner" },
|
|
86
86
|
{ name: "Participant", value: "participant" }
|
|
87
87
|
],
|
|
88
|
-
class: "mn-b-thin flex-child-default h-max o-hidden h5 bg-white gap-micro pd-t-thin pd-b-thin br-b
|
|
88
|
+
class: "mn-b-thin flex-child-default h-max o-hidden h5 bg-white gap-micro pd-t-thin pd-b-thin br-b-1px br-black-transp-10",
|
|
89
89
|
classTab: "bg-light pd-small radius-small w-100"
|
|
90
90
|
}, null, 8, ["selected"])) : createCommentVNode("", true),
|
|
91
91
|
createVNode(_sfc_main$2, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsBackoffice.vue.js","sources":["../../../../../../../src/modules/events/components/pages/EventsBackoffice.vue"],"sourcesContent":["<template>\n\t<div \n\t\tclass=\"\"\n\t>\n\t\t<header \n\t\t\tclass=\"mn-b-medium pd-thin flex-v-center flex-nowrap flex\"\n\t\t>\n \t<h2\n \t\tclass=\"mn-r-medium\"\n \t>\n \t\tEvents\n \t</h2>\n \t\n \t<button\n \t\tv-if=\"auth.state.user._id === route.params.user || route.params._id\"\n \t\t@click=\"router.push({name: getRouteName('Create Event')})\"\n \t\tclass=\"radius-
|
|
1
|
+
{"version":3,"file":"EventsBackoffice.vue.js","sources":["../../../../../../../src/modules/events/components/pages/EventsBackoffice.vue"],"sourcesContent":["<template>\n\t<div \n\t\tclass=\"\"\n\t>\n\t\t<header \n\t\t\tclass=\"mn-b-medium pd-thin flex-v-center flex-nowrap flex\"\n\t\t>\n \t<h2\n \t\tclass=\"mn-r-medium\"\n \t>\n \t\tEvents\n \t</h2>\n \t\n \t<button\n \t\tv-if=\"auth.state.user._id === route.params.user || route.params._id\"\n \t\t@click=\"router.push({name: getRouteName('Create Event')})\"\n \t\tclass=\"radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second\"\n \t>\n \t\t+\n \t</button>\n\t\t</header>\n\n\t\t<section class=\"pd-thin rows-1 bg-white\">\n\n\t\t\t<Tab \n\t\t\t\tv-if=\"auth.state.user._id === route.params.user\"\n\t\t\t\tv-model:selected=\"tabEventOwner\"\n\t\t\t\t:tabs=\"[\n\t\t\t\t\t{ name: 'Organizer', \tvalue: 'owner' },\n\t\t\t\t\t{ name: 'Participant', \tvalue: 'participant' },\t\n\t\t\t\t]\"\n\t\t\t\tclass=\"\n\t\t\t\t\tmn-b-thin\n\t\t\t\t\tflex-child-default\n\t\t\t\t\th-max\n\t\t\t\t\to-hidden \n\t\t\t\t\th5 \n\t\t\t\t\tbg-white\n\t\t\t\t\tgap-micro pd-t-thin pd-b-thin\n\t\t\t\t\tbr-b-1px br-black-transp-10\n\t\t\t\t\"\n\t\t\t\tclassTab=\"bg-light pd-small radius-small w-100\"\n\t\t\t/>\n\n\t\t\t<Feed\n\t\t\t\t:search=\"true\"\n\t\t\t\tv-model:sort=\"sort\"\n\t :states=\"{\n\t empty: {\n\t title: 'No Events Found',\n\t description: 'Currently, there are no events available.'\n\t }\n\t }\"\n\t :store=\"{\n\t read: (options) => events.read(options),\n\t }\"\n\t :options=\"{\n\t user: auth.state.user._id,\n\t owner: route.params._id,\n\t creator: route.params.user,\n\t sortParam: 'date.start',\n\t sortOrder: 'desc'\n\t }\"\n\t v-slot=\"{ \n\t items \n\t }\"\n\t class=\"cols-1 gap-thin\"\n\t >\n\t \t<!-- <Table \n\t\t\t\t\t\tclass=\"radius-semi bg-white\"\n\t\t\t\t\t\t:items=\"items\"\n\t\t\t\t\t\t:columns=\"[{ \n\t\t\t\t\t key: '_id', \n\t\t\t\t\t label: 'ID',\n\t\t\t\t\t\t\tformatter: (value) => `#${value.slice(0, 4)}...${value.slice(-4)}` \n\t\t\t\t\t },\n\t\t\t\t\t { \n\t\t\t\t\t key: 'name', \n\t\t\t\t\t label: 'Name',\n\t\t\t\t\t formatter: (value) => `${value}`\n\t\t\t\t\t },\n\t\t\t\t\t { \n\t\t\t\t\t key: 'tickets', \n\t\t\t\t\t label: 'Tickets',\n\t\t\t\t\t formatter: (value) => value?.length || 0\n\t\t\t\t\t },\n\t\t\t\t\t {\n\t\t\t\t\t key: 'status',\n\t\t\t\t\t label: 'Status',\n\t\t\t\t\t component: StatusBadge\n\t\t\t\t\t },\n\t\t\t\t\t {\n\t\t\t\t\t key: 'date.start',\n\t\t\t\t\t label: 'Date',\n\t\t\t\t\t formatter: (value) => new Date(value).toLocaleDateString()\n\t\t\t\t\t }]\" \n\t\t\t\t\t/> -->\n\t <CardEvent\n\t @click=\"router.push({name: getRouteName('Event'), params: {url: event.url}})\"\n\t v-for=\"(event,index) in items\"\n\t :key=\"event._id\"\n\t :event=\"event\"\n\t :user=\"auth.state.user._id\"\n\t :type=\"'normal'\"\n\t :actions=\"auth.state.user._id === event.creator.target._id || hasAccess(event.owner?.target?._id, 'events', 'edit', auth.state.accesses, auth.state.access.roles)\n\t ? [\n\t { label: 'Edit Event', to: { name: getRouteName('Edit Event'), params: { url: event.url } } },\n\t { label: 'Manage Tickets', to: { name: getRouteName('Edit Event Tickets'), params: { url: event.url } } }\n\t ]\n\t : []\"\n\t class=\"bg-light radius-medium\"\n\t />\n\t </Feed>\n\t </section>\n\n <!-- <Feed \n\t\t\tv-if=\"tabEventOwner ==='owner'\"\n\t \t:user=\"auth.state.user._id\"\n\t\t\t:creator=\"route.params.user\"\n\t\t\t:owner=\"route.params._id\"\n\t\t\t:sortOrder=\"'asc'\"\n\t\t/> -->\n\n\n\t\t<!-- <Feed \n\t\t\tv-if=\"tabEventOwner ==='participant'\"\n \t\t:user=\"auth.state.user._id\"\n \t\t:participant=\"route.params.user\"\n \t\t:owner=\"route.params._id\"\n\t\t\t:sortOrder=\"'desc'\"\n\t\t/> -->\n\t</div>\n</template>\n\n<script setup>\n\timport { watch, ref, computed } from 'vue'\n\timport { useRoute, useRouter } from 'vue-router'\n\t// Components\n\timport Tab \t\tfrom '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\nimport Table from '@martyrs/src/components/Table/Table.vue'\n\n import CardEvent from '@martyrs/src/modules/events/components/blocks/CardEvent.vue';\n\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\timport * as events from '@martyrs/src/modules/events/store/events.js';\n\n\timport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\n\n\t// Accessing router\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\tconst { hasAccess } = useGlobalMixins()\n\n\t// Определение контекста и префикса роутов\n\tconst routePrefix = computed(() => {\n\t\tconst context = route.meta?.context\n\t\tif (context === 'backoffice') return 'Backoffice'\n\t\tif (context === 'organization') return 'Organization_'\n\t\treturn ''\n\t})\n\n\tconst getRouteName = (baseName) => `${routePrefix.value}${baseName}`\n\t// State\n\tlet tab = route.query.tab ? route.query.tab : 'owner';\n\n\tconst tabEventOwner = ref(tab)\n\n\troute.query.tab = tabEventOwner.value\n\n\tlet filter = ref({\n active: false,\n class: '',\n selected: {},\n options: [{\n title: 'Delivery',\n value: 'delivery',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' }\n ]\n },{\n title: 'Prices', \n value: 'prices',\n options: [\n { label: 'Under 300฿', value: '<300' },\n { label: '300฿ to 600฿', value: '300-600' },\n { label: '600฿ to 1200฿', value: '600-1200' },\n { label: '$1200 and above', value: '>1200' }\n ]\n }],\n })\n\n let sort = ref({\n param: 'distance',\n order: 'asc',\n options: [{\n label: 'Distance',\n value: 'distance'\n },{\n label: 'Popularity',\n value: 'views'\n },{\n label: 'Products',\n value: 'numberOfProducts'\n }]\n })\n\n\twatch(tabEventOwner, (newValue) => {\n\t router.replace({ query: { ...route.query, tab: newValue } });\n\t});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuJC,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAExB,UAAM,EAAE,UAAS,IAAK,gBAAe;AAGrC,UAAM,cAAc,SAAS,MAAM;AAClC,YAAM,UAAU,MAAM,MAAM;AAC5B,UAAI,YAAY,aAAc,QAAO;AACrC,UAAI,YAAY,eAAgB,QAAO;AACvC,aAAO;AAAA,IACR,CAAC;AAED,UAAM,eAAe,CAAC,aAAa,GAAG,YAAY,KAAK,GAAG,QAAQ;AAElE,QAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AAE9C,UAAM,gBAAgB,IAAI,GAAG;AAE7B,UAAM,MAAM,MAAM,cAAc;AAEnB,QAAI;AAAA,MACd,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU,CAAA;AAAA,MACV,SAAS,CAAC;AAAA,QACR,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,UAAU,OAAO,SAAQ;AAAA,UAClC,EAAE,OAAO,WAAW,OAAO,UAAS;AAAA,UACpC,EAAE,OAAO,QAAQ,OAAO,OAAM;AAAA,QACtC;AAAA,MACA,GAAM;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,cAAqB,OAAO,OAAM;AAAA,UAC3C,EAAE,OAAO,gBAAqB,OAAO,UAAS;AAAA,UAC9C,EAAE,OAAO,iBAAqB,OAAO,WAAU;AAAA,UAC/C,EAAE,OAAO,mBAAqB,OAAO,QAAO;AAAA,QACpD;AAAA,MACA,CAAK;AAAA,IACL,CAAG;AAED,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS,CAAC;AAAA,QACR,OAAO;AAAA,QACP,OAAO;AAAA,MACb,GAAM;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACb,GAAM;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACb,CAAK;AAAA,IACL,CAAG;AAEF,UAAM,eAAe,CAAC,aAAa;AACjC,aAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,KAAK,SAAQ,GAAI;AAAA,IAC7D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -13,8 +13,8 @@ import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
|
|
|
13
13
|
const _hoisted_1 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-hidden" };
|
|
14
14
|
const _hoisted_2 = ["src"];
|
|
15
15
|
const _hoisted_3 = { class: "w-100" };
|
|
16
|
-
const _hoisted_4 = { class: "p-regular mn-b-thin
|
|
17
|
-
const _hoisted_5 = { class: "
|
|
16
|
+
const _hoisted_4 = { class: "p-regular mn-b-thin fw-medium d-block" };
|
|
17
|
+
const _hoisted_5 = { class: "fw-medium t-transp" };
|
|
18
18
|
const _hoisted_6 = { class: "flex gap-thin" };
|
|
19
19
|
const _hoisted_7 = { class: "cols-1 gap-thin o-y-scroll" };
|
|
20
20
|
const _hoisted_8 = { class: "mn-b-thin radius-small w-100 h-10r bg-light flex-center flex-column flex" };
|
|
@@ -150,7 +150,7 @@ const _sfc_main = {
|
|
|
150
150
|
createVNode(_sfc_main$2, {
|
|
151
151
|
showSuccess: false,
|
|
152
152
|
showLoader: false,
|
|
153
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover
|
|
153
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]",
|
|
154
154
|
submit: () => openTicketPopup(ticket, index)
|
|
155
155
|
}, {
|
|
156
156
|
default: withCtx(() => [
|
|
@@ -161,7 +161,7 @@ const _sfc_main = {
|
|
|
161
161
|
createVNode(_sfc_main$2, {
|
|
162
162
|
showSuccess: false,
|
|
163
163
|
showLoader: false,
|
|
164
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover
|
|
164
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]",
|
|
165
165
|
submit: () => deleteTicket(index)
|
|
166
166
|
}, {
|
|
167
167
|
default: withCtx(() => [
|
|
@@ -213,7 +213,7 @@ const _sfc_main = {
|
|
|
213
213
|
placeholder: "Price",
|
|
214
214
|
class: "w-100 bg-light radius-small pd-small"
|
|
215
215
|
}, null, 8, ["field"]),
|
|
216
|
-
_cache[9] || (_cache[9] = createElementVNode("div", { class: "
|
|
216
|
+
_cache[9] || (_cache[9] = createElementVNode("div", { class: "fw-medium mn-t-small" }, "Validity Period", -1)),
|
|
217
217
|
createVNode(_sfc_main$6, {
|
|
218
218
|
radio: currentTicket.validity.always,
|
|
219
219
|
"onUpdate:radio": _cache[4] || (_cache[4] = ($event) => currentTicket.validity.always = $event),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditTickets.vue.js","sources":["../../../../../../../src/modules/events/components/sections/EditTickets.vue"],"sourcesContent":["<template>\n <Block\n title=\"Tickets\"\n placeholder=\"No tickets added yet\"\n :actions=\"[{\n label: '+',\n function: () => openTicketPopup()\n }]\"\n class=\"cols-1 mn-b-thin t-black gap-thin\"\n >\n <div\n v-for=\"(ticket, index) in tickets\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin mn-b-thin\"\n >\n <div class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"ticket.photo\"\n :src=\"(FILE_SERVER_URL || '') + ticket.photo\"\n alt=\"Ticket image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 bg-main-transp-10 radius-small h-100\" />\n </div>\n\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin t-medium d-block\">{{ ticket.name || 'Unnamed ticket' }}</p>\n <p class=\"t-medium t-transp\">{{ returnCurrency() }}{{ ticket.price }}</p>\n </div>\n\n <div class=\"flex gap-thin\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\"\n :submit=\"() => openTicketPopup(ticket, index)\"\n >\n <IconEdit class=\"i-regular\" />\n </Button>\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\"\n :submit=\"() => deleteTicket(index)\"\n >\n <IconDelete class=\"i-regular\" />\n </Button>\n </div>\n </div>\n\n <Popup\n :title=\"editingIndex !== null ? 'Edit Ticket' : 'Create Ticket'\"\n @close-popup=\"closeTicketPopup\"\n :isPopupOpen=\"isTicketPopupOpen\"\n align=\"center right\"\n class=\"bg-white h-min-100 mobile:w-100 w-30r mobile:w-100 pd-medium\"\n >\n <div class=\"cols-1 gap-thin o-y-scroll\">\n <div class=\"mn-b-thin radius-small w-100 h-10r bg-light flex-center flex-column flex\">\n <UploadImage\n v-model:photo=\"currentTicket.photo\"\n :uploadPath=\"'tickets'\"\n class=\"h-4r w-4r aspect-1x1 o-hidden mn-b-thin radius-extra\"\n />\n <h4>Upload Ticket Image</h4>\n </div>\n\n <Field\n v-model:field=\"currentTicket.name\"\n label=\"Name\"\n placeholder=\"Ticket name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentTicket.description\"\n placeholder=\"Enter ticket description\"\n class=\"w-100 bg-light radius-small pd-small\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n\n <Field\n v-model:field=\"currentTicket.price\"\n label=\"Price\"\n type=\"number\"\n placeholder=\"Price\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"t-medium mn-t-small \">Validity Period</div>\n <Checkbox\n v-model:radio=\"currentTicket.validity.always\"\n label=\"Valid Always\"\n mode=\"switch\"\n class=\"w-100 bg-light radius-small pd-small mn-b-thin\"\n />\n\n <div v-if=\"!currentTicket.validity.always\" class=\"flex gap-thin\">\n <FieldDate\n v-model=\"currentTicket.validity.start\"\n :allowRange=\"false\"\n :enableTime=\"true\"\n :showSelected=\"true\"\n label=\"Start\"\n placeholder=\"Validity start\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n <FieldDate\n v-model=\"currentTicket.validity.end\"\n :allowRange=\"false\"\n :enableTime=\"true\"\n :showSelected=\"true\"\n label=\"End\"\n placeholder=\"Validity end\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n :submit=\"closeTicketPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n :submit=\"saveTicket\"\n >\n {{ editingIndex !== null ? 'Update' : 'Add' }}\n </Button>\n </div>\n </div>\n </Popup>\n\n </Block>\n\n \n</template>\n\n<script setup>\nimport { ref, reactive } from 'vue';\n\n// Components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport FieldDate from '@martyrs/src/components/FieldDate/FieldDate.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\n\n// Icons\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n tickets: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['update:tickets']);\n\nconst isTicketPopupOpen = ref(false);\nconst editingIndex = ref(null);\n\nconst currentTicket = reactive({\n name: '',\n description: '',\n price: 0,\n photo: null,\n validity: {\n always: true,\n start: null,\n end: null\n }\n});\n\nfunction openTicketPopup(ticket = null, index = null) {\n editingIndex.value = index;\n\n if (ticket) {\n currentTicket.name = ticket.name || '';\n currentTicket.description = ticket.description || '';\n currentTicket.price = ticket.price || 0;\n currentTicket.photo = ticket.photo || null;\n currentTicket.validity = {\n always: ticket.validity?.always !== undefined ? ticket.validity.always : true,\n start: ticket.validity?.start || null,\n end: ticket.validity?.end || null\n };\n } else {\n currentTicket.name = '';\n currentTicket.description = '';\n currentTicket.price = 0;\n currentTicket.photo = null;\n currentTicket.validity = {\n always: true,\n start: null,\n end: null\n };\n }\n\n isTicketPopupOpen.value = true;\n}\n\nfunction closeTicketPopup() {\n isTicketPopupOpen.value = false;\n editingIndex.value = null;\n\n currentTicket.name = '';\n currentTicket.description = '';\n currentTicket.price = 0;\n currentTicket.photo = null;\n currentTicket.validity = {\n always: true,\n start: null,\n end: null\n };\n}\n\nfunction saveTicket() {\n const ticketToSave = {\n name: currentTicket.name,\n description: currentTicket.description,\n price: parseFloat(currentTicket.price) || 0,\n photo: currentTicket.photo,\n validity: {\n always: currentTicket.validity.always,\n start: currentTicket.validity.start,\n end: currentTicket.validity.end\n }\n };\n\n const updatedTickets = [...props.tickets];\n\n if (editingIndex.value !== null) {\n updatedTickets[editingIndex.value] = ticketToSave;\n } else {\n updatedTickets.push(ticketToSave);\n }\n\n emit('update:tickets', updatedTickets);\n closeTicketPopup();\n}\n\nfunction deleteTicket(index) {\n if (confirm('Are you sure you want to delete this ticket?')) {\n const updatedTickets = [...props.tickets];\n updatedTickets.splice(index, 1);\n emit('update:tickets', updatedTickets);\n }\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAOd,UAAM,OAAO;AAEb,UAAM,oBAAoB,IAAI,KAAK;AACnC,UAAM,eAAe,IAAI,IAAI;AAE7B,UAAM,gBAAgB,SAAS;AAAA,MAC7B,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,QACR,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,KAAK;AAAA,MACT;AAAA,IACA,CAAC;AAED,aAAS,gBAAgB,SAAS,MAAM,QAAQ,MAAM;AACpD,mBAAa,QAAQ;AAErB,UAAI,QAAQ;AACV,sBAAc,OAAO,OAAO,QAAQ;AACpC,sBAAc,cAAc,OAAO,eAAe;AAClD,sBAAc,QAAQ,OAAO,SAAS;AACtC,sBAAc,QAAQ,OAAO,SAAS;AACtC,sBAAc,WAAW;AAAA,UACvB,QAAQ,OAAO,UAAU,WAAW,SAAY,OAAO,SAAS,SAAS;AAAA,UACzE,OAAO,OAAO,UAAU,SAAS;AAAA,UACjC,KAAK,OAAO,UAAU,OAAO;AAAA,QACnC;AAAA,MACE,OAAO;AACL,sBAAc,OAAO;AACrB,sBAAc,cAAc;AAC5B,sBAAc,QAAQ;AACtB,sBAAc,QAAQ;AACtB,sBAAc,WAAW;AAAA,UACvB,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,KAAK;AAAA,QACX;AAAA,MACE;AAEA,wBAAkB,QAAQ;AAAA,IAC5B;AAEA,aAAS,mBAAmB;AAC1B,wBAAkB,QAAQ;AAC1B,mBAAa,QAAQ;AAErB,oBAAc,OAAO;AACrB,oBAAc,cAAc;AAC5B,oBAAc,QAAQ;AACtB,oBAAc,QAAQ;AACtB,oBAAc,WAAW;AAAA,QACvB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,KAAK;AAAA,MACT;AAAA,IACA;AAEA,aAAS,aAAa;AACpB,YAAM,eAAe;AAAA,QACnB,MAAM,cAAc;AAAA,QACpB,aAAa,cAAc;AAAA,QAC3B,OAAO,WAAW,cAAc,KAAK,KAAK;AAAA,QAC1C,OAAO,cAAc;AAAA,QACrB,UAAU;AAAA,UACR,QAAQ,cAAc,SAAS;AAAA,UAC/B,OAAO,cAAc,SAAS;AAAA,UAC9B,KAAK,cAAc,SAAS;AAAA,QAClC;AAAA,MACA;AAEE,YAAM,iBAAiB,CAAC,GAAG,MAAM,OAAO;AAExC,UAAI,aAAa,UAAU,MAAM;AAC/B,uBAAe,aAAa,KAAK,IAAI;AAAA,MACvC,OAAO;AACL,uBAAe,KAAK,YAAY;AAAA,MAClC;AAEA,WAAK,kBAAkB,cAAc;AACrC,uBAAgB;AAAA,IAClB;AAEA,aAAS,aAAa,OAAO;AAC3B,UAAI,QAAQ,8CAA8C,GAAG;AAC3D,cAAM,iBAAiB,CAAC,GAAG,MAAM,OAAO;AACxC,uBAAe,OAAO,OAAO,CAAC;AAC9B,aAAK,kBAAkB,cAAc;AAAA,MACvC;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"EditTickets.vue.js","sources":["../../../../../../../src/modules/events/components/sections/EditTickets.vue"],"sourcesContent":["<template>\n <Block\n title=\"Tickets\"\n placeholder=\"No tickets added yet\"\n :actions=\"[{\n label: '+',\n function: () => openTicketPopup()\n }]\"\n class=\"cols-1 mn-b-thin t-black gap-thin\"\n >\n <div\n v-for=\"(ticket, index) in tickets\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin mn-b-thin\"\n >\n <div class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"ticket.photo\"\n :src=\"(FILE_SERVER_URL || '') + ticket.photo\"\n alt=\"Ticket image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 bg-main-transp-10 radius-small h-100\" />\n </div>\n\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin fw-medium d-block\">{{ ticket.name || 'Unnamed ticket' }}</p>\n <p class=\"fw-medium t-transp\">{{ returnCurrency() }}{{ ticket.price }}</p>\n </div>\n\n <div class=\"flex gap-thin\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]\"\n :submit=\"() => openTicketPopup(ticket, index)\"\n >\n <IconEdit class=\"i-regular\" />\n </Button>\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]\"\n :submit=\"() => deleteTicket(index)\"\n >\n <IconDelete class=\"i-regular\" />\n </Button>\n </div>\n </div>\n\n <Popup\n :title=\"editingIndex !== null ? 'Edit Ticket' : 'Create Ticket'\"\n @close-popup=\"closeTicketPopup\"\n :isPopupOpen=\"isTicketPopupOpen\"\n align=\"center right\"\n class=\"bg-white h-min-100 mobile:w-100 w-30r mobile:w-100 pd-medium\"\n >\n <div class=\"cols-1 gap-thin o-y-scroll\">\n <div class=\"mn-b-thin radius-small w-100 h-10r bg-light flex-center flex-column flex\">\n <UploadImage\n v-model:photo=\"currentTicket.photo\"\n :uploadPath=\"'tickets'\"\n class=\"h-4r w-4r aspect-1x1 o-hidden mn-b-thin radius-extra\"\n />\n <h4>Upload Ticket Image</h4>\n </div>\n\n <Field\n v-model:field=\"currentTicket.name\"\n label=\"Name\"\n placeholder=\"Ticket name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentTicket.description\"\n placeholder=\"Enter ticket description\"\n class=\"w-100 bg-light radius-small pd-small\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n\n <Field\n v-model:field=\"currentTicket.price\"\n label=\"Price\"\n type=\"number\"\n placeholder=\"Price\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"fw-medium mn-t-small \">Validity Period</div>\n <Checkbox\n v-model:radio=\"currentTicket.validity.always\"\n label=\"Valid Always\"\n mode=\"switch\"\n class=\"w-100 bg-light radius-small pd-small mn-b-thin\"\n />\n\n <div v-if=\"!currentTicket.validity.always\" class=\"flex gap-thin\">\n <FieldDate\n v-model=\"currentTicket.validity.start\"\n :allowRange=\"false\"\n :enableTime=\"true\"\n :showSelected=\"true\"\n label=\"Start\"\n placeholder=\"Validity start\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n <FieldDate\n v-model=\"currentTicket.validity.end\"\n :allowRange=\"false\"\n :enableTime=\"true\"\n :showSelected=\"true\"\n label=\"End\"\n placeholder=\"Validity end\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n :submit=\"closeTicketPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n :submit=\"saveTicket\"\n >\n {{ editingIndex !== null ? 'Update' : 'Add' }}\n </Button>\n </div>\n </div>\n </Popup>\n\n </Block>\n\n \n</template>\n\n<script setup>\nimport { ref, reactive } from 'vue';\n\n// Components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport FieldDate from '@martyrs/src/components/FieldDate/FieldDate.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\n\n// Icons\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n tickets: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['update:tickets']);\n\nconst isTicketPopupOpen = ref(false);\nconst editingIndex = ref(null);\n\nconst currentTicket = reactive({\n name: '',\n description: '',\n price: 0,\n photo: null,\n validity: {\n always: true,\n start: null,\n end: null\n }\n});\n\nfunction openTicketPopup(ticket = null, index = null) {\n editingIndex.value = index;\n\n if (ticket) {\n currentTicket.name = ticket.name || '';\n currentTicket.description = ticket.description || '';\n currentTicket.price = ticket.price || 0;\n currentTicket.photo = ticket.photo || null;\n currentTicket.validity = {\n always: ticket.validity?.always !== undefined ? ticket.validity.always : true,\n start: ticket.validity?.start || null,\n end: ticket.validity?.end || null\n };\n } else {\n currentTicket.name = '';\n currentTicket.description = '';\n currentTicket.price = 0;\n currentTicket.photo = null;\n currentTicket.validity = {\n always: true,\n start: null,\n end: null\n };\n }\n\n isTicketPopupOpen.value = true;\n}\n\nfunction closeTicketPopup() {\n isTicketPopupOpen.value = false;\n editingIndex.value = null;\n\n currentTicket.name = '';\n currentTicket.description = '';\n currentTicket.price = 0;\n currentTicket.photo = null;\n currentTicket.validity = {\n always: true,\n start: null,\n end: null\n };\n}\n\nfunction saveTicket() {\n const ticketToSave = {\n name: currentTicket.name,\n description: currentTicket.description,\n price: parseFloat(currentTicket.price) || 0,\n photo: currentTicket.photo,\n validity: {\n always: currentTicket.validity.always,\n start: currentTicket.validity.start,\n end: currentTicket.validity.end\n }\n };\n\n const updatedTickets = [...props.tickets];\n\n if (editingIndex.value !== null) {\n updatedTickets[editingIndex.value] = ticketToSave;\n } else {\n updatedTickets.push(ticketToSave);\n }\n\n emit('update:tickets', updatedTickets);\n closeTicketPopup();\n}\n\nfunction deleteTicket(index) {\n if (confirm('Are you sure you want to delete this ticket?')) {\n const updatedTickets = [...props.tickets];\n updatedTickets.splice(index, 1);\n emit('update:tickets', updatedTickets);\n }\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAOd,UAAM,OAAO;AAEb,UAAM,oBAAoB,IAAI,KAAK;AACnC,UAAM,eAAe,IAAI,IAAI;AAE7B,UAAM,gBAAgB,SAAS;AAAA,MAC7B,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,QACR,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,KAAK;AAAA,MACT;AAAA,IACA,CAAC;AAED,aAAS,gBAAgB,SAAS,MAAM,QAAQ,MAAM;AACpD,mBAAa,QAAQ;AAErB,UAAI,QAAQ;AACV,sBAAc,OAAO,OAAO,QAAQ;AACpC,sBAAc,cAAc,OAAO,eAAe;AAClD,sBAAc,QAAQ,OAAO,SAAS;AACtC,sBAAc,QAAQ,OAAO,SAAS;AACtC,sBAAc,WAAW;AAAA,UACvB,QAAQ,OAAO,UAAU,WAAW,SAAY,OAAO,SAAS,SAAS;AAAA,UACzE,OAAO,OAAO,UAAU,SAAS;AAAA,UACjC,KAAK,OAAO,UAAU,OAAO;AAAA,QACnC;AAAA,MACE,OAAO;AACL,sBAAc,OAAO;AACrB,sBAAc,cAAc;AAC5B,sBAAc,QAAQ;AACtB,sBAAc,QAAQ;AACtB,sBAAc,WAAW;AAAA,UACvB,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,KAAK;AAAA,QACX;AAAA,MACE;AAEA,wBAAkB,QAAQ;AAAA,IAC5B;AAEA,aAAS,mBAAmB;AAC1B,wBAAkB,QAAQ;AAC1B,mBAAa,QAAQ;AAErB,oBAAc,OAAO;AACrB,oBAAc,cAAc;AAC5B,oBAAc,QAAQ;AACtB,oBAAc,QAAQ;AACtB,oBAAc,WAAW;AAAA,QACvB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,KAAK;AAAA,MACT;AAAA,IACA;AAEA,aAAS,aAAa;AACpB,YAAM,eAAe;AAAA,QACnB,MAAM,cAAc;AAAA,QACpB,aAAa,cAAc;AAAA,QAC3B,OAAO,WAAW,cAAc,KAAK,KAAK;AAAA,QAC1C,OAAO,cAAc;AAAA,QACrB,UAAU;AAAA,UACR,QAAQ,cAAc,SAAS;AAAA,UAC/B,OAAO,cAAc,SAAS;AAAA,UAC9B,KAAK,cAAc,SAAS;AAAA,QAClC;AAAA,MACA;AAEE,YAAM,iBAAiB,CAAC,GAAG,MAAM,OAAO;AAExC,UAAI,aAAa,UAAU,MAAM;AAC/B,uBAAe,aAAa,KAAK,IAAI;AAAA,MACvC,OAAO;AACL,uBAAe,KAAK,YAAY;AAAA,MAClC;AAEA,WAAK,kBAAkB,cAAc;AACrC,uBAAgB;AAAA,IAClB;AAEA,aAAS,aAAa,OAAO;AAC3B,UAAI,QAAQ,8CAA8C,GAAG;AAC3D,cAAM,iBAAiB,CAAC,GAAG,MAAM,OAAO;AACxC,uBAAe,OAAO,OAAO,CAAC;AAC9B,aAAK,kBAAkB,cAAc;AAAA,MACvC;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -9,9 +9,9 @@ const _hoisted_1 = { class: "pos-relative z-index-2" };
|
|
|
9
9
|
const _hoisted_2 = { class: "mn-b-small" };
|
|
10
10
|
const _hoisted_3 = {
|
|
11
11
|
key: 0,
|
|
12
|
-
class: "mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small
|
|
12
|
+
class: "mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small fw-medium bg-white"
|
|
13
13
|
};
|
|
14
|
-
const _hoisted_4 = { class: "
|
|
14
|
+
const _hoisted_4 = { class: "fw-semi t-black" };
|
|
15
15
|
const _sfc_main = {
|
|
16
16
|
__name: "EventsHot",
|
|
17
17
|
props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsHot.vue.js","sources":["../../../../../../../src/modules/events/components/sections/EventsHot.vue"],"sourcesContent":["<template>\n <Carousel\n :store=\"{\n read: (options) => events.read({ \n skip, \n limit,\n status \n })\n }\"\n :text=\"{\n en: {\n title: 'No Featured Events Found',\n description: 'Currently, there are no featured events available.'\n }\n }\"\n class=\"slider-hotpost flex-child-default\"\n >\n <template v-slot=\"{ item }\">\n <router-link\n :to=\"getEventPath(item)\"\n class=\"cursor-pointer pos-relative flex flex-justify-end flex-column h-25r bg-semi radius-medium o-hidden pd-medium t-white bg-dark\"\n >\n <Media \n :url=\"(FILE_SERVER_URL || '') + item.cover\"\n class=\"pos-absolute pos-t-0 pos-r-0 z-index-1 w-100 h-100 object-fit-cover bg-light\"\n />\n <div class=\"pos-relative z-index-2\">\n <h3 \n class=\"mn-b-small\"\n >\n {{ item.name }}\n </h3>\n <span v-if=\"item.date?.start\" class=\"mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small
|
|
1
|
+
{"version":3,"file":"EventsHot.vue.js","sources":["../../../../../../../src/modules/events/components/sections/EventsHot.vue"],"sourcesContent":["<template>\n <Carousel\n :store=\"{\n read: (options) => events.read({ \n skip, \n limit,\n status \n })\n }\"\n :text=\"{\n en: {\n title: 'No Featured Events Found',\n description: 'Currently, there are no featured events available.'\n }\n }\"\n class=\"slider-hotpost flex-child-default\"\n >\n <template v-slot=\"{ item }\">\n <router-link\n :to=\"getEventPath(item)\"\n class=\"cursor-pointer pos-relative flex flex-justify-end flex-column h-25r bg-semi radius-medium o-hidden pd-medium t-white bg-dark\"\n >\n <Media \n :url=\"(FILE_SERVER_URL || '') + item.cover\"\n class=\"pos-absolute pos-t-0 pos-r-0 z-index-1 w-100 h-100 object-fit-cover bg-light\"\n />\n <div class=\"pos-relative z-index-2\">\n <h3 \n class=\"mn-b-small\"\n >\n {{ item.name }}\n </h3>\n <span v-if=\"item.date?.start\" class=\"mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small fw-medium bg-white\">\n <span class=\"fw-semi t-black\" > \n {{item.location}} / {{formatDate(item.date.start, { language: $i18n.locale, monthName: true, })}} \n </span>\n </span> \n </div>\n </router-link>\n </template>\n </Carousel>\n</template>\n\n<script setup>\nimport { ref, onMounted, defineProps, computed } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Carousel from '@martyrs/src/components/Feed/Carousel.vue'\nimport Media from '@martyrs/src/components/Media/Media.vue'\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\nconst route = useRoute()\n\nconst props = defineProps({\n skip: {\n type: Number,\n default: 0\n },\n limit: {\n type: Number,\n default: 8\n },\n userId: {\n type: String,\n default: () => auth.state.user._id\n },\n period: {\n type: String,\n default: 'year'\n },\n status: {\n type: String,\n default: 'featured'\n },\n organization: {\n type: String\n }\n})\n\nconst getEventPath = (item) => {\n if (route.meta.context === 'backoffice') {\n return `/backoffice/events/${item.url}`\n }\n if (route.meta.context === 'organization' || props.organization) {\n const orgId = props.organization || route.params._id\n return `/organizations/${orgId}/events/${item.url}`\n }\n return `/events/${item.url}`\n}\n</script>\n\n<style lang=\"scss\">\n.slider-hotpost .embla__slide {\n flex: 0 0 75%;\n}\n@media screen and (max-width: 1025px) {\n .slider-hotpost .embla__slide {\n flex: 0 0 75%;\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,UAAM,QAAQ,SAAQ;AAEtB,UAAM,QAAQ;AA0Bd,UAAM,eAAe,CAAC,SAAS;AAC7B,UAAI,MAAM,KAAK,YAAY,cAAc;AACvC,eAAO,sBAAsB,KAAK,GAAG;AAAA,MACvC;AACA,UAAI,MAAM,KAAK,YAAY,kBAAkB,MAAM,cAAc;AAC/D,cAAM,QAAQ,MAAM,gBAAgB,MAAM,OAAO;AACjD,eAAO,kBAAkB,KAAK,WAAW,KAAK,GAAG;AAAA,MACnD;AACA,aAAO,WAAW,KAAK,GAAG;AAAA,IAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createVNode, TransitionGroup, withCtx, createBlock, createCommentVNode, Transition, Fragment, renderList } from "vue";
|
|
2
|
-
import Loader from "../../../../components/Loader/Loader.
|
|
2
|
+
import Loader from "../../../../components/Loader/Loader.vue2.js";
|
|
3
3
|
import _sfc_main$1 from "../../../../components/EmptyState/EmptyState.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../blocks/CardEvent.vue.js";
|
|
5
5
|
import { read } from "../../store/events.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createVNode, TransitionGroup, withCtx, createBlock, Fragment, renderList, normalizeClass } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
import _sfc_main$1 from "../../../../components/EmptyState/EmptyState.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../blocks/CardEventShort.vue.js";
|
|
5
5
|
import SkeletonEventShort from "../../../icons/skeletons/SkeletonEventShort.vue.js";
|
|
@@ -91,7 +91,7 @@ const _sfc_main = {
|
|
|
91
91
|
event,
|
|
92
92
|
user: __props.user,
|
|
93
93
|
class: normalizeClass(["pd-small mobile:pd-thin", {
|
|
94
|
-
"br-b
|
|
94
|
+
"br-b-1px br-black-transp-10": index !== eventsList.value.length - 1
|
|
95
95
|
}])
|
|
96
96
|
}, null, 8, ["onClick", "event", "user", "class"]);
|
|
97
97
|
}), 128))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.vue.js","sources":["../../../../../../../src/modules/events/components/sections/List.vue"],"sourcesContent":["<template>\n <section \n class=\"today-events\"\n >\n\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"o-hidden bg-light radius-small\">\n <SkeletonEventShort\n v-if=\"isLoading\"\n v-for=\"i in limit\" :key=\"i\"\n />\n \n <EmptyState \n v-else-if=\"eventsList.length < 1\"\n title=\"No Planned Events \"\n description=\"No events available. Please check back later.\"\n class=\"pd-medium h-100 bg-light radius-small\"\n />\n <CardEventShort\n v-else\n @click=\"$router.push({name: 'Event', params: {url: event.url}})\"\n v-for=\"(event,index) in eventsList\"\n :key=\"event._id\"\n :event=\"event\"\n :user=\"user\"\n class=\"pd-small mobile:pd-thin\"\n :class=\"{\n 'br-b
|
|
1
|
+
{"version":3,"file":"List.vue.js","sources":["../../../../../../../src/modules/events/components/sections/List.vue"],"sourcesContent":["<template>\n <section \n class=\"today-events\"\n >\n\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"o-hidden bg-light radius-small\">\n <SkeletonEventShort\n v-if=\"isLoading\"\n v-for=\"i in limit\" :key=\"i\"\n />\n \n <EmptyState \n v-else-if=\"eventsList.length < 1\"\n title=\"No Planned Events \"\n description=\"No events available. Please check back later.\"\n class=\"pd-medium h-100 bg-light radius-small\"\n />\n <CardEventShort\n v-else\n @click=\"$router.push({name: 'Event', params: {url: event.url}})\"\n v-for=\"(event,index) in eventsList\"\n :key=\"event._id\"\n :event=\"event\"\n :user=\"user\"\n class=\"pd-small mobile:pd-thin\"\n :class=\"{\n 'br-b-1px br-black-transp-10': index !== eventsList.length - 1\n }\"\n />\n </TransitionGroup>\n \n </section>\n</template>\n\n<script setup>\n import { ref, onMounted } from 'vue';\n \n\n import Loader from '@martyrs/src/components/Loader/Loader.vue';\n import EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\n\n import CardEventShort from '@martyrs/src/modules/events/components/blocks/CardEventShort.vue';\n\n import SkeletonEvent from '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue'\n import SkeletonEventShort from '@martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue'\n\n import * as events from '@martyrs/src/modules/events/store/events.js';\n\n const props = defineProps({\n category: {\n type: String,\n default: null\n },\n status: {\n type: String,\n default: null\n },\n organization: {\n type: String,\n default: null\n },\n owner: {\n type: String,\n default: null\n },\n user: {\n type: [String, Number],\n default: null\n },\n period: {\n type: String,\n default: null\n },\n phase: {\n type: String,\n default: null\n },\n sortParam: {\n type: String,\n default: null\n },\n sortOrder: {\n type: String,\n default: null\n }\n });\n\n const eventsList = ref([]);\n const isLoading = ref(true);\n\n const skip = ref(0);\n const limit = ref(3);\n\n onMounted(async () => {\n const data = await events.read({\n skip: skip.value,\n limit: limit.value,\n sortOrder: 'desc',\n category: props.category,\n user: props.user,\n owner: props.owner,\n organization: props.organization,\n period: props.period,\n phase: props.phase,\n status: props.status,\n sortParam: props.sortParam,\n sortOrder: props.sortOrder\n });\n\n eventsList.value = data;\n isLoading.value = false;\n });\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["events.read"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDE,UAAM,QAAQ;AAuCd,UAAM,aAAa,IAAI,EAAE;AACzB,UAAM,YAAY,IAAI,IAAI;AAE1B,UAAM,OAAO,IAAI,CAAC;AAClB,UAAM,QAAQ,IAAI,CAAC;AAEnB,cAAU,YAAY;AACpB,YAAM,OAAO,MAAMA,KAAY;AAAA,QAC7B,MAAM,KAAK;AAAA,QACX,OAAO,MAAM;AAAA,QACb,WAAW;AAAA,QACX,UAAU,MAAM;AAAA,QAChB,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,cAAc,MAAM;AAAA,QACpB,QAAQ,MAAM;AAAA,QACd,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,WAAW,MAAM;AAAA,QACjB,WAAW,MAAM;AAAA,MACvB,CAAK;AAED,iBAAW,QAAQ;AACnB,gBAAU,QAAQ;AAAA,IACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ const _hoisted_1 = { class: "gap-regular radius-medium mn-b-semi" };
|
|
|
4
4
|
const _hoisted_2 = { class: "mn-b-small" };
|
|
5
5
|
const _hoisted_3 = { class: "cols-3 mobile:cols-1 mobile:cols-2 gap-thin" };
|
|
6
6
|
const _hoisted_4 = ["onClick"];
|
|
7
|
-
const _hoisted_5 = { class: "mn-b-small p-medium
|
|
7
|
+
const _hoisted_5 = { class: "mn-b-small p-medium fw-medium" };
|
|
8
8
|
const _hoisted_6 = { class: "p-regular t-transp" };
|
|
9
9
|
const _sfc_main = {
|
|
10
10
|
__name: "SelectDate",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectDate.vue.js","sources":["../../../../../../../src/modules/events/components/sections/SelectDate.vue"],"sourcesContent":["<template>\n <div class=\"gap-regular radius-medium mn-b-semi\">\n <h3 class=\"mn-b-small\">\n {{ title }}\n </h3>\n \n <div class=\"cols-3 mobile:cols-1 mobile:cols-2 gap-thin\">\n <div \n v-for=\"(date, index) in computedDateOptions\" \n :key=\"index\"\n class=\"bg-light radius-medium pd-medium cursor-pointer\"\n @click=\"handleDateSelect(date)\"\n >\n <p class=\"mn-b-small p-medium t-medium\">{{ date.label }}</p>\n <div class=\"p-regular t-transp\">{{ date.range }}</div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, defineProps, defineEmits } from 'vue'\n\nconst props = defineProps({\n title: {\n type: String,\n default: 'Explore by Date'\n },\n locale: {\n type: String,\n default: 'en-US'\n },\n labels: {\n type: Object,\n default: () => ({\n today: 'Today',\n tomorrow: 'Tomorrow',\n thisWeekend: 'This Weekend',\n thisWeek: 'This Week',\n nextWeekend: 'Next Weekend',\n nextWeek: 'Next Week',\n thisMonth: 'This Month',\n customDate: 'Custom Date',\n pickRange: 'Pick Range'\n })\n },\n customDateOptions: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['date-selected']);\n\n// Форматирование одиночной даты с месяцем после числа\nconst formatSingleDate = (date) => {\n // Получаем отдельные форматированные части\n const weekday = new Intl.DateTimeFormat(props.locale, { weekday: 'short' }).format(date);\n const day = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(date);\n const month = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(date);\n \n // Собираем в нужном порядке: день недели, число месяца\n return `${weekday}, ${day} ${month}`;\n};\n\n// Форматирование диапазона дат с месяцем после числа\nconst formatDateRange = (startDate, endDate) => {\n const sameMonth = startDate.getMonth() === endDate.getMonth();\n \n // Форматируем начало и конец диапазона\n const startDay = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(startDate);\n const endDay = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(endDate);\n const startMonth = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(startDate);\n const endMonth = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(endDate);\n \n if (sameMonth) {\n // Если один и тот же месяц: \"1 - 2 Jan\"\n return `${startDay} - ${endDay} ${startMonth}`;\n } else {\n // Если разные месяцы: \"30 Dec - 5 Jan\"\n return `${startDay} ${startMonth} - ${endDay} ${endMonth}`;\n }\n};\n\n// Вспомогательная функция для установки времени на начало дня (00:00:00)\nconst setStartOfDay = (date) => {\n const result = new Date(date);\n result.setHours(0, 0, 0, 0);\n return result;\n};\n\n// Вспомогательная функция для установки времени на конец дня (23:59:59.999)\nconst setEndOfDay = (date) => {\n const result = new Date(date);\n result.setHours(23, 59, 59, 999);\n return result;\n};\n\nconst computedDateOptions = computed(() => {\n if (props.customDateOptions.length > 0) {\n return props.customDateOptions;\n }\n \n const today = new Date();\n const tomorrow = new Date(today);\n tomorrow.setDate(tomorrow.getDate() + 1);\n \n // Расчет текущих выходных (следующие суббота и воскресенье)\n const thisWeekendStart = new Date(today);\n const daysUntilWeekend = (6 - today.getDay()); // 6 - суббота\n thisWeekendStart.setDate(today.getDate() + (daysUntilWeekend <= 0 ? daysUntilWeekend + 7 : daysUntilWeekend));\n \n const thisWeekendEnd = new Date(thisWeekendStart);\n thisWeekendEnd.setDate(thisWeekendStart.getDate() + 1);\n \n // Расчет текущей недели (воскресенье - суббота)\n const thisWeekStart = new Date(today);\n thisWeekStart.setDate(today.getDate() - today.getDay());\n \n const thisWeekEnd = new Date(thisWeekStart);\n thisWeekEnd.setDate(thisWeekStart.getDate() + 6);\n \n // Расчет следующих выходных\n const nextWeekendStart = new Date(thisWeekendStart);\n nextWeekendStart.setDate(nextWeekendStart.getDate() + 7);\n \n const nextWeekendEnd = new Date(nextWeekendStart);\n nextWeekendEnd.setDate(nextWeekendStart.getDate() + 1);\n \n // Расчет следующей недели\n const nextWeekStart = new Date(thisWeekStart);\n nextWeekStart.setDate(nextWeekStart.getDate() + 7);\n \n const nextWeekEnd = new Date(nextWeekStart);\n nextWeekEnd.setDate(nextWeekStart.getDate() + 6);\n \n // Расчет текущего месяца\n const thisMonthStart = new Date(today.getFullYear(), today.getMonth(), 1);\n const thisMonthEnd = new Date(today.getFullYear(), today.getMonth() + 1, 0);\n \n return [\n { \n label: props.labels.today, \n range: formatSingleDate(today),\n data: { \n startDate: setStartOfDay(today), \n endDate: setEndOfDay(today) \n }\n },\n { \n label: props.labels.tomorrow, \n range: formatSingleDate(tomorrow),\n data: { \n startDate: setStartOfDay(tomorrow), \n endDate: setEndOfDay(tomorrow) \n }\n },\n { \n label: props.labels.thisWeekend, \n range: formatDateRange(thisWeekendStart, thisWeekendEnd),\n data: { \n startDate: setStartOfDay(thisWeekendStart), \n endDate: setEndOfDay(thisWeekendEnd) \n }\n },\n { \n label: props.labels.thisWeek, \n range: formatDateRange(thisWeekStart, thisWeekEnd),\n data: { \n startDate: setStartOfDay(thisWeekStart), \n endDate: setEndOfDay(thisWeekEnd) \n }\n },\n { \n label: props.labels.nextWeekend, \n range: formatDateRange(nextWeekendStart, nextWeekendEnd),\n data: { \n startDate: setStartOfDay(nextWeekendStart), \n endDate: setEndOfDay(nextWeekendEnd) \n }\n },\n { \n label: props.labels.nextWeek, \n range: formatDateRange(nextWeekStart, nextWeekEnd),\n data: { \n startDate: setStartOfDay(nextWeekStart), \n endDate: setEndOfDay(nextWeekEnd) \n }\n },\n // { \n // label: props.labels.thisMonth, \n // range: formatDateRange(thisMonthStart, thisMonthEnd),\n // data: { \n // startDate: setStartOfDay(thisMonthStart), \n // endDate: setEndOfDay(thisMonthEnd) \n // }\n // },\n // { \n // label: props.labels.customDate, \n // range: props.labels.pickRange,\n // data: { \n // startDate: null, \n // endDate: null,\n // isCustom: true\n // }\n // }\n ];\n});\n\nconst handleDateSelect = (date) => {\n emit('date-selected', date.data);\n};\n</script>\n\n<style lang=\"scss\">\n/* Стили остаются неизменными */\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,UAAM,QAAQ;AA6Bd,UAAM,OAAO;AAGb,UAAM,mBAAmB,CAAC,SAAS;AAEjC,YAAM,UAAU,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,SAAS,QAAO,CAAE,EAAE,OAAO,IAAI;AACvF,YAAM,MAAM,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,KAAK,UAAS,CAAE,EAAE,OAAO,IAAI;AACjF,YAAM,QAAQ,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,OAAO,QAAO,CAAE,EAAE,OAAO,IAAI;AAGnF,aAAO,GAAG,OAAO,KAAK,GAAG,IAAI,KAAK;AAAA,IACpC;AAGA,UAAM,kBAAkB,CAAC,WAAW,YAAY;AAC9C,YAAM,YAAY,UAAU,SAAQ,MAAO,QAAQ,SAAQ;AAG3D,YAAM,WAAW,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,KAAK,UAAS,CAAE,EAAE,OAAO,SAAS;AAC3F,YAAM,SAAS,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,KAAK,UAAS,CAAE,EAAE,OAAO,OAAO;AACvF,YAAM,aAAa,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,OAAO,QAAO,CAAE,EAAE,OAAO,SAAS;AAC7F,YAAM,WAAW,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,OAAO,QAAO,CAAE,EAAE,OAAO,OAAO;AAEzF,UAAI,WAAW;AAEb,eAAO,GAAG,QAAQ,MAAM,MAAM,IAAI,UAAU;AAAA,MAC9C,OAAO;AAEL,eAAO,GAAG,QAAQ,IAAI,UAAU,MAAM,MAAM,IAAI,QAAQ;AAAA,MAC1D;AAAA,IACF;AAGA,UAAM,gBAAgB,CAAC,SAAS;AAC9B,YAAM,SAAS,IAAI,KAAK,IAAI;AAC5B,aAAO,SAAS,GAAG,GAAG,GAAG,CAAC;AAC1B,aAAO;AAAA,IACT;AAGA,UAAM,cAAc,CAAC,SAAS;AAC5B,YAAM,SAAS,IAAI,KAAK,IAAI;AAC5B,aAAO,SAAS,IAAI,IAAI,IAAI,GAAG;AAC/B,aAAO;AAAA,IACT;AAEA,UAAM,sBAAsB,SAAS,MAAM;AACzC,UAAI,MAAM,kBAAkB,SAAS,GAAG;AACtC,eAAO,MAAM;AAAA,MACf;AAEA,YAAM,QAAQ,oBAAI,KAAI;AACtB,YAAM,WAAW,IAAI,KAAK,KAAK;AAC/B,eAAS,QAAQ,SAAS,QAAO,IAAK,CAAC;AAGvC,YAAM,mBAAmB,IAAI,KAAK,KAAK;AACvC,YAAM,mBAAoB,IAAI,MAAM,OAAM;AAC1C,uBAAiB,QAAQ,MAAM,QAAO,KAAM,oBAAoB,IAAI,mBAAmB,IAAI,iBAAiB;AAE5G,YAAM,iBAAiB,IAAI,KAAK,gBAAgB;AAChD,qBAAe,QAAQ,iBAAiB,QAAO,IAAK,CAAC;AAGrD,YAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,oBAAc,QAAQ,MAAM,QAAO,IAAK,MAAM,QAAQ;AAEtD,YAAM,cAAc,IAAI,KAAK,aAAa;AAC1C,kBAAY,QAAQ,cAAc,QAAO,IAAK,CAAC;AAG/C,YAAM,mBAAmB,IAAI,KAAK,gBAAgB;AAClD,uBAAiB,QAAQ,iBAAiB,QAAO,IAAK,CAAC;AAEvD,YAAM,iBAAiB,IAAI,KAAK,gBAAgB;AAChD,qBAAe,QAAQ,iBAAiB,QAAO,IAAK,CAAC;AAGrD,YAAM,gBAAgB,IAAI,KAAK,aAAa;AAC5C,oBAAc,QAAQ,cAAc,QAAO,IAAK,CAAC;AAEjD,YAAM,cAAc,IAAI,KAAK,aAAa;AAC1C,kBAAY,QAAQ,cAAc,QAAO,IAAK,CAAC;AAGxB,UAAI,KAAK,MAAM,YAAW,GAAI,MAAM,SAAQ,GAAI,CAAC;AACnD,UAAI,KAAK,MAAM,YAAW,GAAI,MAAM,SAAQ,IAAK,GAAG,CAAC;AAE1E,aAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,iBAAiB,KAAK;AAAA,UAC7B,MAAM;AAAA,YACJ,WAAW,cAAc,KAAK;AAAA,YAC9B,SAAS,YAAY,KAAK;AAAA,UAClC;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,iBAAiB,QAAQ;AAAA,UAChC,MAAM;AAAA,YACJ,WAAW,cAAc,QAAQ;AAAA,YACjC,SAAS,YAAY,QAAQ;AAAA,UACrC;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,kBAAkB,cAAc;AAAA,UACvD,MAAM;AAAA,YACJ,WAAW,cAAc,gBAAgB;AAAA,YACzC,SAAS,YAAY,cAAc;AAAA,UAC3C;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,eAAe,WAAW;AAAA,UACjD,MAAM;AAAA,YACJ,WAAW,cAAc,aAAa;AAAA,YACtC,SAAS,YAAY,WAAW;AAAA,UACxC;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,kBAAkB,cAAc;AAAA,UACvD,MAAM;AAAA,YACJ,WAAW,cAAc,gBAAgB;AAAA,YACzC,SAAS,YAAY,cAAc;AAAA,UAC3C;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,eAAe,WAAW;AAAA,UACjD,MAAM;AAAA,YACJ,WAAW,cAAc,aAAa;AAAA,YACtC,SAAS,YAAY,WAAW;AAAA,UACxC;AAAA,QACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA;AAAA,IACA,CAAC;AAED,UAAM,mBAAmB,CAAC,SAAS;AACjC,WAAK,iBAAiB,KAAK,IAAI;AAAA,IACjC;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"SelectDate.vue.js","sources":["../../../../../../../src/modules/events/components/sections/SelectDate.vue"],"sourcesContent":["<template>\n <div class=\"gap-regular radius-medium mn-b-semi\">\n <h3 class=\"mn-b-small\">\n {{ title }}\n </h3>\n \n <div class=\"cols-3 mobile:cols-1 mobile:cols-2 gap-thin\">\n <div \n v-for=\"(date, index) in computedDateOptions\" \n :key=\"index\"\n class=\"bg-light radius-medium pd-medium cursor-pointer\"\n @click=\"handleDateSelect(date)\"\n >\n <p class=\"mn-b-small p-medium fw-medium\">{{ date.label }}</p>\n <div class=\"p-regular t-transp\">{{ date.range }}</div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, defineProps, defineEmits } from 'vue'\n\nconst props = defineProps({\n title: {\n type: String,\n default: 'Explore by Date'\n },\n locale: {\n type: String,\n default: 'en-US'\n },\n labels: {\n type: Object,\n default: () => ({\n today: 'Today',\n tomorrow: 'Tomorrow',\n thisWeekend: 'This Weekend',\n thisWeek: 'This Week',\n nextWeekend: 'Next Weekend',\n nextWeek: 'Next Week',\n thisMonth: 'This Month',\n customDate: 'Custom Date',\n pickRange: 'Pick Range'\n })\n },\n customDateOptions: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['date-selected']);\n\n// Форматирование одиночной даты с месяцем после числа\nconst formatSingleDate = (date) => {\n // Получаем отдельные форматированные части\n const weekday = new Intl.DateTimeFormat(props.locale, { weekday: 'short' }).format(date);\n const day = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(date);\n const month = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(date);\n \n // Собираем в нужном порядке: день недели, число месяца\n return `${weekday}, ${day} ${month}`;\n};\n\n// Форматирование диапазона дат с месяцем после числа\nconst formatDateRange = (startDate, endDate) => {\n const sameMonth = startDate.getMonth() === endDate.getMonth();\n \n // Форматируем начало и конец диапазона\n const startDay = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(startDate);\n const endDay = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(endDate);\n const startMonth = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(startDate);\n const endMonth = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(endDate);\n \n if (sameMonth) {\n // Если один и тот же месяц: \"1 - 2 Jan\"\n return `${startDay} - ${endDay} ${startMonth}`;\n } else {\n // Если разные месяцы: \"30 Dec - 5 Jan\"\n return `${startDay} ${startMonth} - ${endDay} ${endMonth}`;\n }\n};\n\n// Вспомогательная функция для установки времени на начало дня (00:00:00)\nconst setStartOfDay = (date) => {\n const result = new Date(date);\n result.setHours(0, 0, 0, 0);\n return result;\n};\n\n// Вспомогательная функция для установки времени на конец дня (23:59:59.999)\nconst setEndOfDay = (date) => {\n const result = new Date(date);\n result.setHours(23, 59, 59, 999);\n return result;\n};\n\nconst computedDateOptions = computed(() => {\n if (props.customDateOptions.length > 0) {\n return props.customDateOptions;\n }\n \n const today = new Date();\n const tomorrow = new Date(today);\n tomorrow.setDate(tomorrow.getDate() + 1);\n \n // Расчет текущих выходных (следующие суббота и воскресенье)\n const thisWeekendStart = new Date(today);\n const daysUntilWeekend = (6 - today.getDay()); // 6 - суббота\n thisWeekendStart.setDate(today.getDate() + (daysUntilWeekend <= 0 ? daysUntilWeekend + 7 : daysUntilWeekend));\n \n const thisWeekendEnd = new Date(thisWeekendStart);\n thisWeekendEnd.setDate(thisWeekendStart.getDate() + 1);\n \n // Расчет текущей недели (воскресенье - суббота)\n const thisWeekStart = new Date(today);\n thisWeekStart.setDate(today.getDate() - today.getDay());\n \n const thisWeekEnd = new Date(thisWeekStart);\n thisWeekEnd.setDate(thisWeekStart.getDate() + 6);\n \n // Расчет следующих выходных\n const nextWeekendStart = new Date(thisWeekendStart);\n nextWeekendStart.setDate(nextWeekendStart.getDate() + 7);\n \n const nextWeekendEnd = new Date(nextWeekendStart);\n nextWeekendEnd.setDate(nextWeekendStart.getDate() + 1);\n \n // Расчет следующей недели\n const nextWeekStart = new Date(thisWeekStart);\n nextWeekStart.setDate(nextWeekStart.getDate() + 7);\n \n const nextWeekEnd = new Date(nextWeekStart);\n nextWeekEnd.setDate(nextWeekStart.getDate() + 6);\n \n // Расчет текущего месяца\n const thisMonthStart = new Date(today.getFullYear(), today.getMonth(), 1);\n const thisMonthEnd = new Date(today.getFullYear(), today.getMonth() + 1, 0);\n \n return [\n { \n label: props.labels.today, \n range: formatSingleDate(today),\n data: { \n startDate: setStartOfDay(today), \n endDate: setEndOfDay(today) \n }\n },\n { \n label: props.labels.tomorrow, \n range: formatSingleDate(tomorrow),\n data: { \n startDate: setStartOfDay(tomorrow), \n endDate: setEndOfDay(tomorrow) \n }\n },\n { \n label: props.labels.thisWeekend, \n range: formatDateRange(thisWeekendStart, thisWeekendEnd),\n data: { \n startDate: setStartOfDay(thisWeekendStart), \n endDate: setEndOfDay(thisWeekendEnd) \n }\n },\n { \n label: props.labels.thisWeek, \n range: formatDateRange(thisWeekStart, thisWeekEnd),\n data: { \n startDate: setStartOfDay(thisWeekStart), \n endDate: setEndOfDay(thisWeekEnd) \n }\n },\n { \n label: props.labels.nextWeekend, \n range: formatDateRange(nextWeekendStart, nextWeekendEnd),\n data: { \n startDate: setStartOfDay(nextWeekendStart), \n endDate: setEndOfDay(nextWeekendEnd) \n }\n },\n { \n label: props.labels.nextWeek, \n range: formatDateRange(nextWeekStart, nextWeekEnd),\n data: { \n startDate: setStartOfDay(nextWeekStart), \n endDate: setEndOfDay(nextWeekEnd) \n }\n },\n // { \n // label: props.labels.thisMonth, \n // range: formatDateRange(thisMonthStart, thisMonthEnd),\n // data: { \n // startDate: setStartOfDay(thisMonthStart), \n // endDate: setEndOfDay(thisMonthEnd) \n // }\n // },\n // { \n // label: props.labels.customDate, \n // range: props.labels.pickRange,\n // data: { \n // startDate: null, \n // endDate: null,\n // isCustom: true\n // }\n // }\n ];\n});\n\nconst handleDateSelect = (date) => {\n emit('date-selected', date.data);\n};\n</script>\n\n<style lang=\"scss\">\n/* Стили остаются неизменными */\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,UAAM,QAAQ;AA6Bd,UAAM,OAAO;AAGb,UAAM,mBAAmB,CAAC,SAAS;AAEjC,YAAM,UAAU,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,SAAS,QAAO,CAAE,EAAE,OAAO,IAAI;AACvF,YAAM,MAAM,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,KAAK,UAAS,CAAE,EAAE,OAAO,IAAI;AACjF,YAAM,QAAQ,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,OAAO,QAAO,CAAE,EAAE,OAAO,IAAI;AAGnF,aAAO,GAAG,OAAO,KAAK,GAAG,IAAI,KAAK;AAAA,IACpC;AAGA,UAAM,kBAAkB,CAAC,WAAW,YAAY;AAC9C,YAAM,YAAY,UAAU,SAAQ,MAAO,QAAQ,SAAQ;AAG3D,YAAM,WAAW,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,KAAK,UAAS,CAAE,EAAE,OAAO,SAAS;AAC3F,YAAM,SAAS,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,KAAK,UAAS,CAAE,EAAE,OAAO,OAAO;AACvF,YAAM,aAAa,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,OAAO,QAAO,CAAE,EAAE,OAAO,SAAS;AAC7F,YAAM,WAAW,IAAI,KAAK,eAAe,MAAM,QAAQ,EAAE,OAAO,QAAO,CAAE,EAAE,OAAO,OAAO;AAEzF,UAAI,WAAW;AAEb,eAAO,GAAG,QAAQ,MAAM,MAAM,IAAI,UAAU;AAAA,MAC9C,OAAO;AAEL,eAAO,GAAG,QAAQ,IAAI,UAAU,MAAM,MAAM,IAAI,QAAQ;AAAA,MAC1D;AAAA,IACF;AAGA,UAAM,gBAAgB,CAAC,SAAS;AAC9B,YAAM,SAAS,IAAI,KAAK,IAAI;AAC5B,aAAO,SAAS,GAAG,GAAG,GAAG,CAAC;AAC1B,aAAO;AAAA,IACT;AAGA,UAAM,cAAc,CAAC,SAAS;AAC5B,YAAM,SAAS,IAAI,KAAK,IAAI;AAC5B,aAAO,SAAS,IAAI,IAAI,IAAI,GAAG;AAC/B,aAAO;AAAA,IACT;AAEA,UAAM,sBAAsB,SAAS,MAAM;AACzC,UAAI,MAAM,kBAAkB,SAAS,GAAG;AACtC,eAAO,MAAM;AAAA,MACf;AAEA,YAAM,QAAQ,oBAAI,KAAI;AACtB,YAAM,WAAW,IAAI,KAAK,KAAK;AAC/B,eAAS,QAAQ,SAAS,QAAO,IAAK,CAAC;AAGvC,YAAM,mBAAmB,IAAI,KAAK,KAAK;AACvC,YAAM,mBAAoB,IAAI,MAAM,OAAM;AAC1C,uBAAiB,QAAQ,MAAM,QAAO,KAAM,oBAAoB,IAAI,mBAAmB,IAAI,iBAAiB;AAE5G,YAAM,iBAAiB,IAAI,KAAK,gBAAgB;AAChD,qBAAe,QAAQ,iBAAiB,QAAO,IAAK,CAAC;AAGrD,YAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,oBAAc,QAAQ,MAAM,QAAO,IAAK,MAAM,QAAQ;AAEtD,YAAM,cAAc,IAAI,KAAK,aAAa;AAC1C,kBAAY,QAAQ,cAAc,QAAO,IAAK,CAAC;AAG/C,YAAM,mBAAmB,IAAI,KAAK,gBAAgB;AAClD,uBAAiB,QAAQ,iBAAiB,QAAO,IAAK,CAAC;AAEvD,YAAM,iBAAiB,IAAI,KAAK,gBAAgB;AAChD,qBAAe,QAAQ,iBAAiB,QAAO,IAAK,CAAC;AAGrD,YAAM,gBAAgB,IAAI,KAAK,aAAa;AAC5C,oBAAc,QAAQ,cAAc,QAAO,IAAK,CAAC;AAEjD,YAAM,cAAc,IAAI,KAAK,aAAa;AAC1C,kBAAY,QAAQ,cAAc,QAAO,IAAK,CAAC;AAGxB,UAAI,KAAK,MAAM,YAAW,GAAI,MAAM,SAAQ,GAAI,CAAC;AACnD,UAAI,KAAK,MAAM,YAAW,GAAI,MAAM,SAAQ,IAAK,GAAG,CAAC;AAE1E,aAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,iBAAiB,KAAK;AAAA,UAC7B,MAAM;AAAA,YACJ,WAAW,cAAc,KAAK;AAAA,YAC9B,SAAS,YAAY,KAAK;AAAA,UAClC;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,iBAAiB,QAAQ;AAAA,UAChC,MAAM;AAAA,YACJ,WAAW,cAAc,QAAQ;AAAA,YACjC,SAAS,YAAY,QAAQ;AAAA,UACrC;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,kBAAkB,cAAc;AAAA,UACvD,MAAM;AAAA,YACJ,WAAW,cAAc,gBAAgB;AAAA,YACzC,SAAS,YAAY,cAAc;AAAA,UAC3C;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,eAAe,WAAW;AAAA,UACjD,MAAM;AAAA,YACJ,WAAW,cAAc,aAAa;AAAA,YACtC,SAAS,YAAY,WAAW;AAAA,UACxC;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,kBAAkB,cAAc;AAAA,UACvD,MAAM;AAAA,YACJ,WAAW,cAAc,gBAAgB;AAAA,YACzC,SAAS,YAAY,cAAc;AAAA,UAC3C;AAAA,QACA;AAAA,QACI;AAAA,UACE,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,gBAAgB,eAAe,WAAW;AAAA,UACjD,MAAM;AAAA,YACJ,WAAW,cAAc,aAAa;AAAA,YACtC,SAAS,YAAY,WAAW;AAAA,UACxC;AAAA,QACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA;AAAA,IACA,CAAC;AAED,UAAM,mBAAmB,CAAC,SAAS;AACjC,WAAK,iBAAiB,KAAK,IAAI;AAAA,IACjC;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gallery.vue.js","sources":["../../../../../../../src/modules/gallery/components/pages/Gallery.vue"],"sourcesContent":["<template>\n\t<div class=\"cols-1 bg-white gap-thin pd-thin\">\n\t\t<SectionPageTitle\n :title=\"$t('gallery.title')\"\n @update:tabs_current=\"(update) => tab = update\"\n :tabs_current=\"tab\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Place', value: 'place' },\n { name: 'Drinks', value: 'drinks' },\n { name: 'People', value: 'people' },\n { name: 'Events', value: 'events' }\n ]\"\n class=\"mn-b-small bg-light bg-light radius-big\"\n />\n <Popup \n @close-popup=\"closePreviewPopup\" \n :isPopupOpen=\"isOpenPreviewPopup\"\n class=\"bg-black o-hidden w-100 h-100 radius-big\"\n >\n <PhotoViewer\n :photoUrl=\"((FILE_SERVER_URL || '') + selectedPhoto.image)\"\n />\n </Popup>\n\n\t\t<Feed\n v-model:items=\"photos\"\n v-model:sort=\"sort\"\n v-model:date=\"date\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Photos Found',\n description: 'Currently, there are no photos in gallery.'\n },\n }\"\n :store=\"{\n read: (options) => gallery.read(options)\n }\"\n :options=\"{\n limit: 15,\n status: 'published',\n ...(tab !== 'all' && { tags: tab })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 gap-thin\"\n >\n <div v-for=\"item in items\" :key=\"item._id\" class=\"bg-light radius-medium o-hidden flex-column pos-relative flex-wrap\">\n <div class=\"w-100 h-100 h-min-10r h-max-20r pos-relative\">\n <img loading=\"lazy\" \n :src=\"((FILE_SERVER_URL || '') + item.cover)\" \n class=\"w-100 h-100 object-fit-cover bg-black \" @click=\"openPreviewPopup(item)\" \n />\n </div>\n \t</div>\n </Feed>\n\t</div>\n</template>\n\n<script setup>\n\timport { ref, onMounted, reactive, computed } from 'vue'\n\n\timport Title from '@martyrs/src/modules/core/views/components/sections/Title.vue';\n\n\timport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue'\n\timport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue'\n\n\timport SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n\n\timport gallery from '@martyrs/src/modules/gallery/store/gallery.js';\n\n\tconst photos = ref([])\n\n\tconst tab = ref('all')\n\n\tlet sort = ref({\n\t param: 'createdAt',\n\t order: 'desc',\n\t options: [{\n\t label: 'Date',\n\t value: 'createdAt'\n\t },{\n\t label: 'Popularity',\n\t value: 'views'\n\t },{\n\t label: 'Creator',\n\t value: 'creator'\n\t }]\n\t})\n\t// Date\n\tlet date = ref({\n\t start: null,\n\t end: null\n\t})\n\n\tconst selectedPhoto = ref(null);\n\n\t// Preview Photo\n\tconst isOpenPreviewPopup = ref(false);\n\tfunction openPreviewPopup(photo) {\n\t isOpenPreviewPopup.value = true;\n\t selectedPhoto.value = photo;\n\t}\n\tfunction closePreviewPopup() {\n\t isOpenPreviewPopup.value = false;\n\t selectedPhoto.value = null;\n\t}\n\n</script>"],"names":[],"mappings":";;;;;;;;;;;;AA0EC,UAAM,SAAS,IAAI,CAAA,CAAE;AAErB,UAAM,MAAM,IAAI,KAAK;AAErB,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS,CAAC;AAAA,QACR,OAAO;AAAA,QACP,OAAO;AAAA,MACZ,GAAK;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACZ,GAAK;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACZ,CAAI;AAAA,IACJ,CAAE;AAED,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,IACR,CAAE;AAED,UAAM,gBAAgB,IAAI,IAAI;AAG9B,UAAM,qBAAqB,IAAI,KAAK;AACpC,aAAS,iBAAiB,OAAO;AAC/B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,oBAAoB;AAC3B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Gallery.vue.js","sources":["../../../../../../../src/modules/gallery/components/pages/Gallery.vue"],"sourcesContent":["<template>\n\t<div class=\"cols-1 bg-white gap-thin pd-thin\">\n\t\t<SectionPageTitle\n :title=\"$t('gallery.title')\"\n @update:tabs_current=\"(update) => tab = update\"\n :tabs_current=\"tab\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Place', value: 'place' },\n { name: 'Drinks', value: 'drinks' },\n { name: 'People', value: 'people' },\n { name: 'Events', value: 'events' }\n ]\"\n class=\"mn-b-small bg-light bg-light radius-big\"\n />\n <Popup \n @close-popup=\"closePreviewPopup\" \n :isPopupOpen=\"isOpenPreviewPopup\"\n class=\"bg-black o-hidden w-100 h-100 radius-big\"\n >\n <PhotoViewer\n :photoUrl=\"((FILE_SERVER_URL || '') + selectedPhoto.image)\"\n />\n </Popup>\n\n\t\t<Feed\n v-model:items=\"photos\"\n v-model:sort=\"sort\"\n v-model:date=\"date\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Photos Found',\n description: 'Currently, there are no photos in gallery.'\n },\n }\"\n :store=\"{\n read: (options) => gallery.read(options)\n }\"\n :options=\"{\n limit: 15,\n status: 'published',\n ...(tab !== 'all' && { tags: tab })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 mobile:cols-2 gap-thin\"\n >\n <div v-for=\"item in items\" :key=\"item._id\" class=\"bg-light radius-medium o-hidden flex-column pos-relative flex-wrap\">\n <div class=\"w-100 h-100 h-min-10r h-max-20r pos-relative\">\n <img loading=\"lazy\" \n :src=\"((FILE_SERVER_URL || '') + item.cover)\" \n class=\"w-100 h-100 object-fit-cover bg-black \" @click=\"openPreviewPopup(item)\" \n />\n </div>\n \t</div>\n </Feed>\n\t</div>\n</template>\n\n<script setup>\n\timport { ref, onMounted, reactive, computed } from 'vue'\n\n\timport Title from '@martyrs/src/modules/core/views/components/sections/Title.vue';\n\n\timport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue'\n\timport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue'\n\n\timport SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n\n\timport gallery from '@martyrs/src/modules/gallery/store/gallery.js';\n\n\tconst photos = ref([])\n\n\tconst tab = ref('all')\n\n\tlet sort = ref({\n\t param: 'createdAt',\n\t order: 'desc',\n\t options: [{\n\t label: 'Date',\n\t value: 'createdAt'\n\t },{\n\t label: 'Popularity',\n\t value: 'views'\n\t },{\n\t label: 'Creator',\n\t value: 'creator'\n\t }]\n\t})\n\t// Date\n\tlet date = ref({\n\t start: null,\n\t end: null\n\t})\n\n\tconst selectedPhoto = ref(null);\n\n\t// Preview Photo\n\tconst isOpenPreviewPopup = ref(false);\n\tfunction openPreviewPopup(photo) {\n\t isOpenPreviewPopup.value = true;\n\t selectedPhoto.value = photo;\n\t}\n\tfunction closePreviewPopup() {\n\t isOpenPreviewPopup.value = false;\n\t selectedPhoto.value = null;\n\t}\n\n</script>"],"names":[],"mappings":";;;;;;;;;;;;AA0EC,UAAM,SAAS,IAAI,CAAA,CAAE;AAErB,UAAM,MAAM,IAAI,KAAK;AAErB,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS,CAAC;AAAA,QACR,OAAO;AAAA,QACP,OAAO;AAAA,MACZ,GAAK;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACZ,GAAK;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACZ,CAAI;AAAA,IACJ,CAAE;AAED,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,IACR,CAAE;AAED,UAAM,gBAAgB,IAAI,IAAI;AAG9B,UAAM,qBAAqB,IAAI,KAAK;AACpC,aAAS,iBAAiB,OAAO;AAC/B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,oBAAoB;AAC3B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -12,12 +12,12 @@ import { state } from "../../../auth/views/store/auth.js";
|
|
|
12
12
|
import gallery from "../../store/gallery.js";
|
|
13
13
|
import _sfc_main$3 from "../../../core/views/components/blocks/CardHeader.vue.js";
|
|
14
14
|
import _sfc_main$1 from "../../../core/views/components/sections/SectionPageTitle.vue.js";
|
|
15
|
-
import _sfc_main$6 from "../../../../components/EditImages/EditImages.
|
|
15
|
+
import _sfc_main$6 from "../../../../components/EditImages/EditImages.vue2.js";
|
|
16
16
|
import _sfc_main$7 from "../../../../components/FieldTags/BlockTags.vue.js";
|
|
17
17
|
const _hoisted_1 = { class: "cols-1 gap-thin pd-thin" };
|
|
18
18
|
const _hoisted_2 = { class: "pos-relative" };
|
|
19
19
|
const _hoisted_3 = ["src", "onClick"];
|
|
20
|
-
const _hoisted_4 = { class: "pos-absolute pos-t-0 pos-r-0 pd-micro t-white uppercase
|
|
20
|
+
const _hoisted_4 = { class: "pos-absolute pos-t-0 pos-r-0 pd-micro t-white uppercase fw-semi p-small flex-center flex pd-r-small pd-l-small mn-r-small mn-t-small w-min bg-second radius-extra" };
|
|
21
21
|
const _hoisted_5 = { class: "pd-small" };
|
|
22
22
|
const _hoisted_6 = ["src"];
|
|
23
23
|
const _hoisted_7 = { class: "flex-nowrap flex gap-thin" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeGallery.vue.js","sources":["../../../../../../../src/modules/gallery/components/sections/BackofficeGallery.vue"],"sourcesContent":["<template>\n <div class=\"cols-1 gap-thin pd-thin\">\n <SectionPageTitle\n title=\"Gallery\"\n @update:tabs_current=\"(update) => tab = update\"\n :tabs_current=\"tab\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Featured', value: 'featured' },\n { name: 'Published', value: 'published' },\n { name: 'Draft', value: 'draft' },\n { name: 'Archived', value: 'archived' }\n ]\"\n :actions=\"[\n ...(hasAccess(route.params._id, 'gallery', 'create', auth.state.accesses, auth.state.access.roles) ? [{ method: () => openPhotoPopup(null), label: 'Add Photo' }] : [])\n ]\"\n class=\"mn-b-small bg-light bg-light radius-big\"\n />\n\n <Feed\n v-model:items=\"photos\"\n v-model:sort=\"sort\"\n v-model:date=\"date\"\n :states=\"{\n empty: {\n title: 'No Photos Found',\n description: 'Currently, there are no photos in gallery.'\n },\n }\"\n :store=\"{\n read: (options) => gallery.read(options)\n }\"\n :options=\"{\n limit: 15,\n owner: route.params._id,\n ...(tab !== 'all' && { status: tab })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-3 mobile:cols-1 gap-thin\"\n >\n <div v-for=\"item in items\" :key=\"item._id\" class=\"bg-light radius-small flex-column pos-relative flex-wrap\">\n\n <CardHeader \n :entity=\"item\"\n :entityType=\"'photo'\"\n :user=\"auth.state.user._id\"\n :owner=\"item.creator\" \n :creator=\"item.creator\"\n :date=\"item.createdAt\"\n :actions=\"[\n ...(hasAccess(route.params._id, 'gallery', 'delete', auth.state.accesses, auth.state.access.roles) ? [{ method: () => deletePhoto(item), label: 'Delete' }] : []),\n ...(hasAccess(route.params._id, 'gallery', 'edit', auth.state.accesses, auth.state.access.roles) ? [\n ...(item.status !== 'archived' ? [{ method: () => changeStatus(item, 'archived'), label: 'Archive' }] : []),\n ...(item.status !== 'published' ? [{ method: () => changeStatus(item, 'published'), label: 'Publish' }] : []),\n ...(item.status !== 'draft' ? [{ method: () => changeStatus(item, 'draft'), label: 'Draft' }] : [])\n ] : [])\n ]\"\n class=\"pd-small mn-b-small\"\n />\n\n <div class=\"pos-relative\">\n <img loading=\"lazy\" \n :src=\"(FILE_SERVER_URL || '') + item.cover\" \n class=\"w-100 h-20r object-fit-contain bg-black \" @click=\"openPreviewPopup(item)\" \n />\n <div \n class=\"pos-absolute pos-t-0 pos-r-0 pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-r-small mn-t-small w-min bg-second radius-extra\"\n >\n {{item.status}}\n </div>\n </div>\n \n <div class=\"pd-small\">\n <Chips \n v-if=\"item.tags?.length > 0\" \n :chips=\"item.tags\"\n />\n </div>\n </div>\n </Feed>\n\n <Popup \n @close-popup=\"closePreviewPopup\" \n :isPopupOpen=\"isOpenPreviewPopup\"\n class=\"bg-black o-hidden w-100 h-100 radius-big\"\n >\n <PhotoViewer\n :photoUrl=\"selectedPhoto.image\"\n />\n </Popup>\n\n <Popup \n title=\"Add Photo\" \n @close-popup=\"closePhotoPopup\" \n :isPopupOpen=\"isOpenPhotoPopup\"\n class=\"bg-white w-max-30r radius-big pd-big\"\n >\n <img loading=\"lazy\" \n v-if=\"selectedImage.cover\" \n :src=\"selectedImage.cover\" \n class=\"radius-small w-100 mn-b-small h-20r object-fit-cover \" \n />\n\n <EditImages \n :images=\"uploadedImages\" \n :uploadPath=\"'/photos'\" \n @update:images=\"onUpdatedImages\" \n class=\"mn-b-semi bg-light radius-medium\"\n />\n\n <BlockTags\n @tags-changed=\"newTags => selectedImage.tags = newTags\"\n :tags=\"selectedImage.tags\"\n :tagsSuggested=\"[\n {text: 'people' },\n {text: 'events' },\n {text: 'place' },\n {text: 'food' },\n {text: 'drinks' },\n {text: 'special' },\n ]\"\n class=\"mn-b-semi\"\n />\n\n <div class=\"flex-nowrap flex gap-thin\">\n <Button \n :submit=\"() => createPhoto('draft')\" \n :callback=\"closePhotoPopup\" \n class=\"t-nowrap bg-second w-100\"\n >\n To drafts\n </Button>\n <Button \n :submit=\"() => createPhoto('published')\" \n :callback=\"closePhotoPopup\" \n class=\"bg-main w-100\"\n >\n Publish\n </Button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, reactive, computed } from 'vue'\nimport { useRoute } from 'vue-router'\n\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Chips from '@martyrs/src/components/Chips/Chips.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport SelectMulti from '@martyrs/src/components/SelectMulti/SelectMulti.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\nimport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue'\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\n \nimport gallery from '@martyrs/src/modules/gallery/store/gallery.js';\n\nimport CardHeader from '@martyrs/src/modules/core/views/components/blocks/CardHeader.vue'\nimport SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue';\n\nconst route = useRoute();\n\n// Tabs\nconst tab = ref('all')\n// Sort\nlet sort = ref({\n param: 'createdAt',\n order: 'desc',\n options: [{\n label: 'Date',\n value: 'createdAt'\n },{\n label: 'Popularity',\n value: 'views'\n },{\n label: 'Creator',\n value: 'creator'\n }]\n})\n// Date\nlet date = ref({\n start: null,\n end: null\n})\n// Popup\n// Preview Photo\nconst isOpenPreviewPopup = ref(false);\nfunction openPreviewPopup(photo) {\n isOpenPreviewPopup.value = true;\n selectedPhoto.value = photo;\n}\nfunction closePreviewPopup() {\n isOpenPreviewPopup.value = false;\n selectedPhoto.value = null;\n}\n// Add Photo\nconst isOpenPhotoPopup = ref(false);\nfunction openPhotoPopup(photo) {\n isOpenPhotoPopup.value = true;\n selectedPhoto.value = photo;\n}\nfunction closePhotoPopup() {\n isOpenPhotoPopup.value = false;\n selectedPhoto.value = null;\n uploadedImages.value = [];\n selectedImage.value = { tags: null, image: null };\n}\n// Selected Photo\nconst selectedPhoto = ref(null);\nconst selectedCategory = ref('all')\nconst selectedImage = ref({\n tags: null,\n image: null\n})\nconst uploadedImages = ref([])\nconst onUpdatedImages = (newImages) => {\n uploadedImages.value = newImages\n}\n// Gallery Grid\nconst photos = ref([])\n\nconst deletePhoto = async (item) => {\n let deletedPhoto = JSON.parse(JSON.stringify(item));\n\n deletedPhoto.owner.target = deletedPhoto.owner.target._id\n deletedPhoto.creator.target = deletedPhoto.creator.target._id\n\n await gallery.delete(deletedPhoto);\n\n gallery.removeItem(deletedPhoto, photos.value)\n};\n\nconst changeStatus = async (item, status) => {\n let updatedPhoto = JSON.parse(JSON.stringify(item));\n\n updatedPhoto.status = status\n\n updatedPhoto.owner.target = updatedPhoto.owner.target._id\n updatedPhoto.creator.target = updatedPhoto.creator.target._id\n\n updatedPhoto = await gallery.update(updatedPhoto)\n gallery.updateItem(updatedPhoto, photos.value)\n}\n\nconst createPhoto = async (status) => {\n if (uploadedImages.length < 1) {\n alert('Upload at least 1 image')\n return\n }\n\n let createdPhotos = await gallery.create({\n images: uploadedImages.value,\n tags: selectedImage.value.tags,\n status: status,\n owner: {\n type: 'Organization',\n target: route.params._id\n },\n creator: {\n type: 'User',\n target: auth.state.user._id\n }\n })\n\n for (let createdPhoto of createdPhotos) {\n gallery.addItem(createdPhoto, photos.value)\n }\n}\n</script>\n\n<style scoped>\n</style>"],"names":["auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2KA,UAAM,QAAQ,SAAQ;AAGtB,UAAM,MAAM,IAAI,KAAK;AAErB,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS,CAAC;AAAA,QACR,OAAO;AAAA,QACP,OAAO;AAAA,MACX,GAAI;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACX,GAAI;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACX,CAAG;AAAA,IACH,CAAC;AAED,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,IACP,CAAC;AAGD,UAAM,qBAAqB,IAAI,KAAK;AACpC,aAAS,iBAAiB,OAAO;AAC/B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,oBAAoB;AAC3B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AAEA,UAAM,mBAAmB,IAAI,KAAK;AAClC,aAAS,eAAe,OAAO;AAC7B,uBAAiB,QAAQ;AACzB,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,kBAAkB;AACzB,uBAAiB,QAAQ;AACzB,oBAAc,QAAQ;AACtB,qBAAe,QAAQ,CAAA;AACvB,oBAAc,QAAQ,EAAE,MAAM,MAAM,OAAO,KAAI;AAAA,IACjD;AAEA,UAAM,gBAAgB,IAAI,IAAI;AACL,QAAI,KAAK;AAClC,UAAM,gBAAgB,IAAI;AAAA,MACxB,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AACD,UAAM,iBAAiB,IAAI,CAAA,CAAE;AAC7B,UAAM,kBAAkB,CAAC,cAAc;AACrC,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,SAAS,IAAI,CAAA,CAAE;AAErB,UAAM,cAAc,OAAO,SAAS;AAClC,UAAI,eAAe,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAElD,mBAAa,MAAM,SAAS,aAAa,MAAM,OAAO;AACtD,mBAAa,QAAQ,SAAS,aAAa,QAAQ,OAAO;AAE1D,YAAM,QAAQ,OAAO,YAAY;AAEjC,cAAQ,WAAW,cAAc,OAAO,KAAK;AAAA,IAC/C;AAEA,UAAM,eAAe,OAAO,MAAM,WAAW;AAC3C,UAAI,eAAe,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAElD,mBAAa,SAAS;AAEtB,mBAAa,MAAM,SAAS,aAAa,MAAM,OAAO;AACtD,mBAAa,QAAQ,SAAS,aAAa,QAAQ,OAAO;AAE1D,qBAAe,MAAM,QAAQ,OAAO,YAAY;AAChD,cAAQ,WAAW,cAAc,OAAO,KAAK;AAAA,IAC/C;AAEA,UAAM,cAAc,OAAO,WAAW;AACpC,UAAI,eAAe,SAAS,GAAG;AAC7B,cAAM,yBAAyB;AAC/B;AAAA,MACF;AAEA,UAAI,gBAAgB,MAAM,QAAQ,OAAO;AAAA,QACvC,QAAQ,eAAe;AAAA,QACvB,MAAM,cAAc,MAAM;AAAA,QAC1B;AAAA,QACA,OAAO;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM,OAAO;AAAA,QAC3B;AAAA,QACI,SAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQA,MAAW,KAAK;AAAA,QAC9B;AAAA,MACA,CAAG;AAED,eAAS,gBAAgB,eAAe;AACtC,gBAAQ,QAAQ,cAAc,OAAO,KAAK;AAAA,MAC5C;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"BackofficeGallery.vue.js","sources":["../../../../../../../src/modules/gallery/components/sections/BackofficeGallery.vue"],"sourcesContent":["<template>\n <div class=\"cols-1 gap-thin pd-thin\">\n <SectionPageTitle\n title=\"Gallery\"\n @update:tabs_current=\"(update) => tab = update\"\n :tabs_current=\"tab\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Featured', value: 'featured' },\n { name: 'Published', value: 'published' },\n { name: 'Draft', value: 'draft' },\n { name: 'Archived', value: 'archived' }\n ]\"\n :actions=\"[\n ...(hasAccess(route.params._id, 'gallery', 'create', auth.state.accesses, auth.state.access.roles) ? [{ method: () => openPhotoPopup(null), label: 'Add Photo' }] : [])\n ]\"\n class=\"mn-b-small bg-light bg-light radius-big\"\n />\n\n <Feed\n v-model:items=\"photos\"\n v-model:sort=\"sort\"\n v-model:date=\"date\"\n :states=\"{\n empty: {\n title: 'No Photos Found',\n description: 'Currently, there are no photos in gallery.'\n },\n }\"\n :store=\"{\n read: (options) => gallery.read(options)\n }\"\n :options=\"{\n limit: 15,\n owner: route.params._id,\n ...(tab !== 'all' && { status: tab })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-3 mobile:cols-1 gap-thin\"\n >\n <div v-for=\"item in items\" :key=\"item._id\" class=\"bg-light radius-small flex-column pos-relative flex-wrap\">\n\n <CardHeader \n :entity=\"item\"\n :entityType=\"'photo'\"\n :user=\"auth.state.user._id\"\n :owner=\"item.creator\" \n :creator=\"item.creator\"\n :date=\"item.createdAt\"\n :actions=\"[\n ...(hasAccess(route.params._id, 'gallery', 'delete', auth.state.accesses, auth.state.access.roles) ? [{ method: () => deletePhoto(item), label: 'Delete' }] : []),\n ...(hasAccess(route.params._id, 'gallery', 'edit', auth.state.accesses, auth.state.access.roles) ? [\n ...(item.status !== 'archived' ? [{ method: () => changeStatus(item, 'archived'), label: 'Archive' }] : []),\n ...(item.status !== 'published' ? [{ method: () => changeStatus(item, 'published'), label: 'Publish' }] : []),\n ...(item.status !== 'draft' ? [{ method: () => changeStatus(item, 'draft'), label: 'Draft' }] : [])\n ] : [])\n ]\"\n class=\"pd-small mn-b-small\"\n />\n\n <div class=\"pos-relative\">\n <img loading=\"lazy\" \n :src=\"(FILE_SERVER_URL || '') + item.cover\" \n class=\"w-100 h-20r object-fit-contain bg-black \" @click=\"openPreviewPopup(item)\" \n />\n <div \n class=\"pos-absolute pos-t-0 pos-r-0 pd-micro t-white uppercase fw-semi p-small flex-center flex pd-r-small pd-l-small mn-r-small mn-t-small w-min bg-second radius-extra\"\n >\n {{item.status}}\n </div>\n </div>\n \n <div class=\"pd-small\">\n <Chips \n v-if=\"item.tags?.length > 0\" \n :chips=\"item.tags\"\n />\n </div>\n </div>\n </Feed>\n\n <Popup \n @close-popup=\"closePreviewPopup\" \n :isPopupOpen=\"isOpenPreviewPopup\"\n class=\"bg-black o-hidden w-100 h-100 radius-big\"\n >\n <PhotoViewer\n :photoUrl=\"selectedPhoto.image\"\n />\n </Popup>\n\n <Popup \n title=\"Add Photo\" \n @close-popup=\"closePhotoPopup\" \n :isPopupOpen=\"isOpenPhotoPopup\"\n class=\"bg-white w-max-30r radius-big pd-big\"\n >\n <img loading=\"lazy\" \n v-if=\"selectedImage.cover\" \n :src=\"selectedImage.cover\" \n class=\"radius-small w-100 mn-b-small h-20r object-fit-cover \" \n />\n\n <EditImages \n :images=\"uploadedImages\" \n :uploadPath=\"'/photos'\" \n @update:images=\"onUpdatedImages\" \n class=\"mn-b-semi bg-light radius-medium\"\n />\n\n <BlockTags\n @tags-changed=\"newTags => selectedImage.tags = newTags\"\n :tags=\"selectedImage.tags\"\n :tagsSuggested=\"[\n {text: 'people' },\n {text: 'events' },\n {text: 'place' },\n {text: 'food' },\n {text: 'drinks' },\n {text: 'special' },\n ]\"\n class=\"mn-b-semi\"\n />\n\n <div class=\"flex-nowrap flex gap-thin\">\n <Button \n :submit=\"() => createPhoto('draft')\" \n :callback=\"closePhotoPopup\" \n class=\"t-nowrap bg-second w-100\"\n >\n To drafts\n </Button>\n <Button \n :submit=\"() => createPhoto('published')\" \n :callback=\"closePhotoPopup\" \n class=\"bg-main w-100\"\n >\n Publish\n </Button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, reactive, computed } from 'vue'\nimport { useRoute } from 'vue-router'\n\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Chips from '@martyrs/src/components/Chips/Chips.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport SelectMulti from '@martyrs/src/components/SelectMulti/SelectMulti.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\nimport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue'\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\n \nimport gallery from '@martyrs/src/modules/gallery/store/gallery.js';\n\nimport CardHeader from '@martyrs/src/modules/core/views/components/blocks/CardHeader.vue'\nimport SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue';\n\nconst route = useRoute();\n\n// Tabs\nconst tab = ref('all')\n// Sort\nlet sort = ref({\n param: 'createdAt',\n order: 'desc',\n options: [{\n label: 'Date',\n value: 'createdAt'\n },{\n label: 'Popularity',\n value: 'views'\n },{\n label: 'Creator',\n value: 'creator'\n }]\n})\n// Date\nlet date = ref({\n start: null,\n end: null\n})\n// Popup\n// Preview Photo\nconst isOpenPreviewPopup = ref(false);\nfunction openPreviewPopup(photo) {\n isOpenPreviewPopup.value = true;\n selectedPhoto.value = photo;\n}\nfunction closePreviewPopup() {\n isOpenPreviewPopup.value = false;\n selectedPhoto.value = null;\n}\n// Add Photo\nconst isOpenPhotoPopup = ref(false);\nfunction openPhotoPopup(photo) {\n isOpenPhotoPopup.value = true;\n selectedPhoto.value = photo;\n}\nfunction closePhotoPopup() {\n isOpenPhotoPopup.value = false;\n selectedPhoto.value = null;\n uploadedImages.value = [];\n selectedImage.value = { tags: null, image: null };\n}\n// Selected Photo\nconst selectedPhoto = ref(null);\nconst selectedCategory = ref('all')\nconst selectedImage = ref({\n tags: null,\n image: null\n})\nconst uploadedImages = ref([])\nconst onUpdatedImages = (newImages) => {\n uploadedImages.value = newImages\n}\n// Gallery Grid\nconst photos = ref([])\n\nconst deletePhoto = async (item) => {\n let deletedPhoto = JSON.parse(JSON.stringify(item));\n\n deletedPhoto.owner.target = deletedPhoto.owner.target._id\n deletedPhoto.creator.target = deletedPhoto.creator.target._id\n\n await gallery.delete(deletedPhoto);\n\n gallery.removeItem(deletedPhoto, photos.value)\n};\n\nconst changeStatus = async (item, status) => {\n let updatedPhoto = JSON.parse(JSON.stringify(item));\n\n updatedPhoto.status = status\n\n updatedPhoto.owner.target = updatedPhoto.owner.target._id\n updatedPhoto.creator.target = updatedPhoto.creator.target._id\n\n updatedPhoto = await gallery.update(updatedPhoto)\n gallery.updateItem(updatedPhoto, photos.value)\n}\n\nconst createPhoto = async (status) => {\n if (uploadedImages.length < 1) {\n alert('Upload at least 1 image')\n return\n }\n\n let createdPhotos = await gallery.create({\n images: uploadedImages.value,\n tags: selectedImage.value.tags,\n status: status,\n owner: {\n type: 'Organization',\n target: route.params._id\n },\n creator: {\n type: 'User',\n target: auth.state.user._id\n }\n })\n\n for (let createdPhoto of createdPhotos) {\n gallery.addItem(createdPhoto, photos.value)\n }\n}\n</script>\n\n<style scoped>\n</style>"],"names":["auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2KA,UAAM,QAAQ,SAAQ;AAGtB,UAAM,MAAM,IAAI,KAAK;AAErB,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS,CAAC;AAAA,QACR,OAAO;AAAA,QACP,OAAO;AAAA,MACX,GAAI;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACX,GAAI;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACX,CAAG;AAAA,IACH,CAAC;AAED,QAAI,OAAO,IAAI;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,IACP,CAAC;AAGD,UAAM,qBAAqB,IAAI,KAAK;AACpC,aAAS,iBAAiB,OAAO;AAC/B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,oBAAoB;AAC3B,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AAEA,UAAM,mBAAmB,IAAI,KAAK;AAClC,aAAS,eAAe,OAAO;AAC7B,uBAAiB,QAAQ;AACzB,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,kBAAkB;AACzB,uBAAiB,QAAQ;AACzB,oBAAc,QAAQ;AACtB,qBAAe,QAAQ,CAAA;AACvB,oBAAc,QAAQ,EAAE,MAAM,MAAM,OAAO,KAAI;AAAA,IACjD;AAEA,UAAM,gBAAgB,IAAI,IAAI;AACL,QAAI,KAAK;AAClC,UAAM,gBAAgB,IAAI;AAAA,MACxB,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AACD,UAAM,iBAAiB,IAAI,CAAA,CAAE;AAC7B,UAAM,kBAAkB,CAAC,cAAc;AACrC,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,SAAS,IAAI,CAAA,CAAE;AAErB,UAAM,cAAc,OAAO,SAAS;AAClC,UAAI,eAAe,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAElD,mBAAa,MAAM,SAAS,aAAa,MAAM,OAAO;AACtD,mBAAa,QAAQ,SAAS,aAAa,QAAQ,OAAO;AAE1D,YAAM,QAAQ,OAAO,YAAY;AAEjC,cAAQ,WAAW,cAAc,OAAO,KAAK;AAAA,IAC/C;AAEA,UAAM,eAAe,OAAO,MAAM,WAAW;AAC3C,UAAI,eAAe,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAElD,mBAAa,SAAS;AAEtB,mBAAa,MAAM,SAAS,aAAa,MAAM,OAAO;AACtD,mBAAa,QAAQ,SAAS,aAAa,QAAQ,OAAO;AAE1D,qBAAe,MAAM,QAAQ,OAAO,YAAY;AAChD,cAAQ,WAAW,cAAc,OAAO,KAAK;AAAA,IAC/C;AAEA,UAAM,cAAc,OAAO,WAAW;AACpC,UAAI,eAAe,SAAS,GAAG;AAC7B,cAAM,yBAAyB;AAC/B;AAAA,MACF;AAEA,UAAI,gBAAgB,MAAM,QAAQ,OAAO;AAAA,QACvC,QAAQ,eAAe;AAAA,QACvB,MAAM,cAAc,MAAM;AAAA,QAC1B;AAAA,QACA,OAAO;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM,OAAO;AAAA,QAC3B;AAAA,QACI,SAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQA,MAAW,KAAK;AAAA,QAC9B;AAAA,MACA,CAAG;AAED,eAAS,gBAAgB,eAAe;AACtC,gBAAQ,QAAQ,cAAc,OAAO,KAAK;AAAA,MAC5C;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -11,7 +11,7 @@ const _hoisted_2 = {
|
|
|
11
11
|
const _hoisted_3 = ["onClick"];
|
|
12
12
|
const _hoisted_4 = { class: "icon-preview w-3r h-3r mn-b-thin flex-center flex-v-center" };
|
|
13
13
|
const _hoisted_5 = ["innerHTML"];
|
|
14
|
-
const _hoisted_6 = { class: "t-small
|
|
14
|
+
const _hoisted_6 = { class: "t-small truncate w-100 t-center" };
|
|
15
15
|
const _hoisted_7 = {
|
|
16
16
|
key: 1,
|
|
17
17
|
class: "mn-t-medium pd-small bg-danger radius-medium t-white"
|
|
@@ -204,14 +204,14 @@ const _sfc_main = {
|
|
|
204
204
|
read: (options) => store.read(options)
|
|
205
205
|
},
|
|
206
206
|
options: { limit: 50 },
|
|
207
|
-
class: "cols-4 gap-small icon-grid"
|
|
207
|
+
class: "cols-4 mobile:cols-2 gap-small icon-grid"
|
|
208
208
|
}, {
|
|
209
209
|
default: withCtx(({ items }) => [
|
|
210
210
|
(openBlock(true), createElementBlock(Fragment, null, renderList(items, (icon) => {
|
|
211
211
|
return openBlock(), createElementBlock("div", {
|
|
212
212
|
key: icon.id,
|
|
213
213
|
onClick: ($event) => selectIcon(icon),
|
|
214
|
-
class: "icon-item aspect-1x1 radius-medium flex-center flex-v-center flex-column cursor-pointer hover
|
|
214
|
+
class: "icon-item aspect-1x1 radius-medium flex-center flex-v-center flex-column cursor-pointer hover:scale-[1.05] pd-small"
|
|
215
215
|
}, [
|
|
216
216
|
createElementVNode("div", _hoisted_4, [
|
|
217
217
|
createElementVNode("div", {
|
|
@@ -233,7 +233,7 @@ const _sfc_main = {
|
|
|
233
233
|
};
|
|
234
234
|
}
|
|
235
235
|
};
|
|
236
|
-
const IconSearchPopup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
236
|
+
const IconSearchPopup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3479d8be"]]);
|
|
237
237
|
export {
|
|
238
238
|
IconSearchPopup as default
|
|
239
239
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconSearchPopup.vue.js","sources":["../../../../../../src/modules/icons/components/IconSearchPopup.vue"],"sourcesContent":["<template>\n <Popup :title=\"mode === 'add' ? 'Add New Icon' : 'Replace Icon'\" :isPopupOpen=\"isOpen\" @close-popup=\"closePopup\" class=\"bg-white pd-big radius-big w-max-60r\">\n <div class=\"icon-search-popup\">\n <div v-if=\"mode === 'add'\" class=\"mn-b-medium cols-2 gap-small\">\n <input \n v-model=\"iconName\" \n type=\"text\" \n placeholder=\"Icon name (e.g., IconCart)\"\n class=\"pd-small radius-medium border-light\"\n />\n <select v-model=\"category\" class=\"pd-small radius-medium border-light\">\n <option value=\"\">Select category</option>\n <option value=\"navigation\">Navigation</option>\n <option value=\"entities\">Entities</option>\n <option value=\"actions\">Actions</option>\n <option value=\"socials\">Socials</option>\n </select>\n </div>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"true\"\n :skeleton=\"{\n hide: false,\n horizontal: false,\n structure: [\n { block: 'image', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No icons found',\n description: 'Try searching for different terms'\n }\n }\"\n :store=\"{\n read: (options) => store.read(options)\n }\"\n :options=\"{ limit: 50 }\"\n v-slot=\"{ items }\"\n class=\"cols-4 gap-small icon-grid\"\n >\n <div \n v-for=\"icon in items\" \n :key=\"icon.id\"\n @click=\"selectIcon(icon)\"\n class=\"icon-item aspect-1x1 radius-medium flex-center flex-v-center flex-column cursor-pointer hover-scale-1 pd-small\"\n >\n <div class=\"icon-preview w-3r h-3r mn-b-thin flex-center flex-v-center\">\n <div \n class=\"icon-svg w-100 h-100\"\n v-html=\"getIconSvg(icon)\"\n ></div>\n </div>\n <div class=\"t-small t-truncate w-100 t-center\">{{ icon.term }}</div>\n </div>\n </Feed>\n\n <div v-if=\"error\" class=\"mn-t-medium pd-small bg-danger radius-medium t-white\">\n {{ error }}\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, watch, computed } from 'vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\nconst props = defineProps({\n isOpen: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n default: 'add', // 'add' or 'replace'\n validator: (value) => ['add', 'replace'].includes(value)\n },\n currentIcon: {\n type: Object,\n default: null\n }\n});\n\nconst emit = defineEmits(['close', 'icon-selected']);\n\nconst error = ref('');\nconst iconName = ref('');\nconst category = ref('');\nconst loading = ref(false);\nconst searchValue = ref('');\n\n// Store configuration for Feed component with pagination support\nconst paginationState = ref({ next_page: null, currentSearch: null });\n\nconst store = {\n async read(params = {}) {\n try {\n if (!params.search) {\n return [];\n }\n\n // Сбросить пагинацию при новом поиске\n if (paginationState.value.currentSearch !== params.search) {\n paginationState.value = { next_page: null, currentSearch: params.search };\n }\n\n const requestBody = {\n search: params.search,\n limit: params.limit || 50\n };\n\n // Feed использует skip-based пагинацию, конвертируем в token-based\n // Если skip > 0, используем сохранённый next_page токен\n if (params.skip && params.skip > 0 && paginationState.value.next_page) {\n requestBody.next_page = paginationState.value.next_page;\n }\n\n const response = await fetch('/api/icons/search', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody)\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new Error(data.error || 'Failed to search icons');\n }\n\n // Сохранить next_page для следующего запроса Load More\n if (data.pagination && data.pagination.next_page) {\n paginationState.value.next_page = data.pagination.next_page;\n } else {\n // Если нет next_page, значит больше страниц нет\n paginationState.value.next_page = null;\n }\n\n // Feed ожидает массив, не объект\n return data.icons || [];\n } catch (err) {\n console.error('Search error:', err);\n error.value = err.message;\n return [];\n }\n }\n};\n\n// Auto-populate fields for replace mode\nwatch(() => props.isOpen, (newVal) => {\n if (newVal && props.mode === 'replace' && props.currentIcon) {\n iconName.value = props.currentIcon.name;\n category.value = props.currentIcon.category;\n // Set initial search term (remove Icon prefix)\n searchValue.value = props.currentIcon.name.replace(/^Icon/, '');\n }\n});\n\n// Function to get icon preview - use PNG with black filter for now\nfunction getIconSvg(icon) {\n // Use the PNG preview from Noun Project but apply CSS filter to make it black\n if (icon.preview_url) {\n return `<img src=\"${icon.preview_url}\" alt=\"${icon.term}\" style=\"width: 100%; height: 100%; object-fit: contain; filter: brightness(0) saturate(100%);\" />`;\n }\n \n // Fallback SVG placeholder\n return `\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"24\" height=\"24\" rx=\"4\" fill=\"rgb(var(--black))\" opacity=\"0.8\"/>\n <text x=\"12\" y=\"16\" text-anchor=\"middle\" fill=\"white\" font-size=\"8\" font-family=\"monospace\">\n ${icon.term.slice(0, 3)}\n </text>\n </svg>\n `;\n}\n\nasync function selectIcon(icon) {\n if (props.mode === 'add' && (!iconName.value || !category.value)) {\n error.value = 'Please enter icon name and select category';\n return;\n }\n\n loading.value = true;\n error.value = '';\n\n try {\n const response = await fetch('/api/icons/save', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n iconId: icon.id,\n category: category.value,\n iconName: iconName.value,\n mode: props.mode,\n currentIconName: props.currentIcon?.name\n })\n });\n\n const data = await response.json();\n \n if (!response.ok) {\n throw new Error(data.error || 'Failed to save icon');\n }\n\n emit('icon-selected', {\n ...data,\n icon: {\n name: iconName.value,\n category: category.value,\n term: icon.term\n }\n });\n \n closePopup();\n } catch (err) {\n console.error('Save error:', err);\n error.value = err.message;\n } finally {\n loading.value = false;\n }\n}\n\nfunction closePopup() {\n error.value = '';\n iconName.value = '';\n category.value = '';\n searchValue.value = '';\n emit('close');\n}\n</script>\n\n<style scoped>\n.icon-search-popup {\n min-height: 500px;\n}\n\n.icon-grid {\n min-height: 400px;\n}\n\n.icon-item {\n transition: all 0.2s ease;\n}\n\n.icon-item:hover {\n background-color: rgb(var(--light-hover));\n transform: scale(1.05);\n}\n\n.icon-preview {\n background: rgb(var(--light));\n border-radius: 8px;\n}\n\n.icon-svg {\n filter: none;\n}\n\n.w-max-800 {\n max-width: 800px;\n width: 90vw;\n}\n\n::v-deep(.feed-enter-active),\n::v-deep(.feed-leave-active) {\n transition: all 0.3s ease;\n}\n\n::v-deep(.feed-enter-from),\n::v-deep(.feed-leave-to) {\n opacity: 0;\n transform: scale(0.9);\n}\n</style>"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IconSearchPopup.vue.js","sources":["../../../../../../src/modules/icons/components/IconSearchPopup.vue"],"sourcesContent":["<template>\n <Popup :title=\"mode === 'add' ? 'Add New Icon' : 'Replace Icon'\" :isPopupOpen=\"isOpen\" @close-popup=\"closePopup\" class=\"bg-white pd-big radius-big w-max-60r\">\n <div class=\"icon-search-popup\">\n <div v-if=\"mode === 'add'\" class=\"mn-b-medium cols-2 gap-small\">\n <input \n v-model=\"iconName\" \n type=\"text\" \n placeholder=\"Icon name (e.g., IconCart)\"\n class=\"pd-small radius-medium border-light\"\n />\n <select v-model=\"category\" class=\"pd-small radius-medium border-light\">\n <option value=\"\">Select category</option>\n <option value=\"navigation\">Navigation</option>\n <option value=\"entities\">Entities</option>\n <option value=\"actions\">Actions</option>\n <option value=\"socials\">Socials</option>\n </select>\n </div>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"true\"\n :skeleton=\"{\n hide: false,\n horizontal: false,\n structure: [\n { block: 'image', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No icons found',\n description: 'Try searching for different terms'\n }\n }\"\n :store=\"{\n read: (options) => store.read(options)\n }\"\n :options=\"{ limit: 50 }\"\n v-slot=\"{ items }\"\n class=\"cols-4 mobile:cols-2 gap-small icon-grid\"\n >\n <div \n v-for=\"icon in items\" \n :key=\"icon.id\"\n @click=\"selectIcon(icon)\"\n class=\"icon-item aspect-1x1 radius-medium flex-center flex-v-center flex-column cursor-pointer hover:scale-[1.05] pd-small\"\n >\n <div class=\"icon-preview w-3r h-3r mn-b-thin flex-center flex-v-center\">\n <div \n class=\"icon-svg w-100 h-100\"\n v-html=\"getIconSvg(icon)\"\n ></div>\n </div>\n <div class=\"t-small truncate w-100 t-center\">{{ icon.term }}</div>\n </div>\n </Feed>\n\n <div v-if=\"error\" class=\"mn-t-medium pd-small bg-danger radius-medium t-white\">\n {{ error }}\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, watch, computed } from 'vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\nconst props = defineProps({\n isOpen: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n default: 'add', // 'add' or 'replace'\n validator: (value) => ['add', 'replace'].includes(value)\n },\n currentIcon: {\n type: Object,\n default: null\n }\n});\n\nconst emit = defineEmits(['close', 'icon-selected']);\n\nconst error = ref('');\nconst iconName = ref('');\nconst category = ref('');\nconst loading = ref(false);\nconst searchValue = ref('');\n\n// Store configuration for Feed component with pagination support\nconst paginationState = ref({ next_page: null, currentSearch: null });\n\nconst store = {\n async read(params = {}) {\n try {\n if (!params.search) {\n return [];\n }\n\n // Сбросить пагинацию при новом поиске\n if (paginationState.value.currentSearch !== params.search) {\n paginationState.value = { next_page: null, currentSearch: params.search };\n }\n\n const requestBody = {\n search: params.search,\n limit: params.limit || 50\n };\n\n // Feed использует skip-based пагинацию, конвертируем в token-based\n // Если skip > 0, используем сохранённый next_page токен\n if (params.skip && params.skip > 0 && paginationState.value.next_page) {\n requestBody.next_page = paginationState.value.next_page;\n }\n\n const response = await fetch('/api/icons/search', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody)\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new Error(data.error || 'Failed to search icons');\n }\n\n // Сохранить next_page для следующего запроса Load More\n if (data.pagination && data.pagination.next_page) {\n paginationState.value.next_page = data.pagination.next_page;\n } else {\n // Если нет next_page, значит больше страниц нет\n paginationState.value.next_page = null;\n }\n\n // Feed ожидает массив, не объект\n return data.icons || [];\n } catch (err) {\n console.error('Search error:', err);\n error.value = err.message;\n return [];\n }\n }\n};\n\n// Auto-populate fields for replace mode\nwatch(() => props.isOpen, (newVal) => {\n if (newVal && props.mode === 'replace' && props.currentIcon) {\n iconName.value = props.currentIcon.name;\n category.value = props.currentIcon.category;\n // Set initial search term (remove Icon prefix)\n searchValue.value = props.currentIcon.name.replace(/^Icon/, '');\n }\n});\n\n// Function to get icon preview - use PNG with black filter for now\nfunction getIconSvg(icon) {\n // Use the PNG preview from Noun Project but apply CSS filter to make it black\n if (icon.preview_url) {\n return `<img src=\"${icon.preview_url}\" alt=\"${icon.term}\" style=\"width: 100%; height: 100%; object-fit: contain; filter: brightness(0) saturate(100%);\" />`;\n }\n \n // Fallback SVG placeholder\n return `\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"24\" height=\"24\" rx=\"4\" fill=\"rgb(var(--black))\" opacity=\"0.8\"/>\n <text x=\"12\" y=\"16\" text-anchor=\"middle\" fill=\"white\" font-size=\"8\" font-family=\"monospace\">\n ${icon.term.slice(0, 3)}\n </text>\n </svg>\n `;\n}\n\nasync function selectIcon(icon) {\n if (props.mode === 'add' && (!iconName.value || !category.value)) {\n error.value = 'Please enter icon name and select category';\n return;\n }\n\n loading.value = true;\n error.value = '';\n\n try {\n const response = await fetch('/api/icons/save', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n iconId: icon.id,\n category: category.value,\n iconName: iconName.value,\n mode: props.mode,\n currentIconName: props.currentIcon?.name\n })\n });\n\n const data = await response.json();\n \n if (!response.ok) {\n throw new Error(data.error || 'Failed to save icon');\n }\n\n emit('icon-selected', {\n ...data,\n icon: {\n name: iconName.value,\n category: category.value,\n term: icon.term\n }\n });\n \n closePopup();\n } catch (err) {\n console.error('Save error:', err);\n error.value = err.message;\n } finally {\n loading.value = false;\n }\n}\n\nfunction closePopup() {\n error.value = '';\n iconName.value = '';\n category.value = '';\n searchValue.value = '';\n emit('close');\n}\n</script>\n\n<style scoped>\n.icon-search-popup {\n min-height: 500px;\n}\n\n.icon-grid {\n min-height: 400px;\n}\n\n.icon-item {\n transition: all 0.2s ease;\n}\n\n.icon-item:hover {\n background-color: rgb(var(--light-hover));\n transform: scale(1.05);\n}\n\n.icon-preview {\n background: rgb(var(--light));\n border-radius: 8px;\n}\n\n.icon-svg {\n filter: none;\n}\n\n.w-max-800 {\n max-width: 800px;\n width: 90vw;\n}\n\n::v-deep(.feed-enter-active),\n::v-deep(.feed-leave-active) {\n transition: all 0.3s ease;\n}\n\n::v-deep(.feed-enter-from),\n::v-deep(.feed-leave-to) {\n opacity: 0;\n transform: scale(0.9);\n}\n</style>"],"names":[],"mappings":"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"}
|