@ozdao/martyrs 0.2.570 → 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 +1248 -106
- 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 +1 -1
- 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.vue.js → Button.vue2.js} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
- 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.vue2.js +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +4 -4
- 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.vue2.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +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.vue2.js → Select.vue.js} +4 -4
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue.js → SelectMulti.vue2.js} +2 -2
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +1 -0
- 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/UploadImage/UploadImage.vue.js +3 -3
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +3 -3
- 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/EnterCode.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +9 -9
- 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/ProfileEditAccount.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
- 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 +5 -5
- 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 +3 -3
- 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 +9 -9
- 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 +6 -6
- 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 +11 -11
- 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 +3 -3
- 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/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +2 -2
- 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/BlockSearch.vue.js +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 +9 -9
- 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 +2 -2
- 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 +9 -9
- 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 +4 -4
- 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/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 +3 -3
- 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/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +4 -4
- 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 +21 -21
- 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 +7 -7
- 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 +7 -7
- 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/List.vue.js +1 -1
- 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 +5 -5
- 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 +6 -6
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +3 -3
- 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 +4 -4
- 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 +9 -9
- 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/marketplace.client.js +3 -3
- package/dist/martyrs/src/modules/marketplace/marketplace.client.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 +5 -3
- 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 +4 -4
- 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 +6 -6
- 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 +4 -4
- 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 +6 -6
- 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 +6 -6
- 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 +11 -11
- 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 +7 -7
- 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 +9 -9
- 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 +3 -3
- 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 +16 -16
- 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 +10 -10
- 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/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +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 +4 -4
- 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 +5 -5
- 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 +6 -6
- 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 +18 -18
- 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 +3 -3
- 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 +6 -6
- 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 +4 -4
- 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 +4 -4
- 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 +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- 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/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +4 -4
- 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 +3 -3
- 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 +3 -3
- 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 +6 -6
- 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 +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -4
- 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 +5 -5
- 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 +4 -4
- 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 +2 -2
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +4 -4
- 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 +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.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 +4 -4
- 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 +4 -4
- 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 +5 -5
- 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 +10 -10
- 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 +6 -6
- 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 +9 -9
- 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 +11 -11
- 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 +3 -3
- 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 +3 -3
- 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 +7 -7
- 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 +2 -2
- 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 +8 -8
- 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 +3 -3
- 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 +4 -4
- 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 +4 -4
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.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 +5 -5
- 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 +8 -8
- 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 +6 -6
- 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 +6 -6
- 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 +25 -25
- 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 +82 -84
- 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 +3 -3
- 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/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.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
|
@@ -8,7 +8,7 @@ import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
|
8
8
|
import "vue-i18n";
|
|
9
9
|
import { actions as actions$1 } from "../../store/categories.js";
|
|
10
10
|
/* empty css */
|
|
11
|
-
import Field from "../../../../components/Field/Field.
|
|
11
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
12
12
|
import Filters from "../../../core/views/components/sections/Filters.vue2.js";
|
|
13
13
|
import Calendar from "../../../../components/Calendar/Calendar.vue2.js";
|
|
14
14
|
import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
|
|
@@ -25,8 +25,8 @@ const _hoisted_2 = {
|
|
|
25
25
|
class: "pd-medium flex-v-center flex-nowrap flex"
|
|
26
26
|
};
|
|
27
27
|
const _hoisted_3 = { class: "mn-r-medium" };
|
|
28
|
-
const _hoisted_4 = { class: "cols-
|
|
29
|
-
const _hoisted_5 = { class: "o-y-scroll br-r
|
|
28
|
+
const _hoisted_4 = { class: "cols-[1fr_3fr] mobile:cols-1 br-1px br-light z-index-3 pos-relative" };
|
|
29
|
+
const _hoisted_5 = { class: "o-y-scroll br-r-1px br-light pd-medium z-index-2 desktop-only h-100 pos-relative" };
|
|
30
30
|
const _hoisted_6 = { class: "w-100 o-y-scroll h-100" };
|
|
31
31
|
const _hoisted_7 = {
|
|
32
32
|
key: 0,
|
|
@@ -47,11 +47,11 @@ const _hoisted_19 = { class: "h-2r w-2r flex-child-auto aspect-1x1 flex-center f
|
|
|
47
47
|
const _hoisted_20 = { class: "mn-t-small" };
|
|
48
48
|
const _hoisted_21 = { class: "h-1r" };
|
|
49
49
|
const _hoisted_22 = { class: "w-100 rows-1 pd-thin pos-relative o-hidden" };
|
|
50
|
-
const _hoisted_23 = { class: "mn-b-thin mobile-only w-100 o-y-scroll scroll-hide scroll-snap-
|
|
50
|
+
const _hoisted_23 = { class: "mn-b-thin mobile-only w-100 o-y-scroll scroll-hide scroll-snap-x-mandatory scroll-pd-regular" };
|
|
51
51
|
const _hoisted_24 = { class: "gap-thin flex-nowrap flex" };
|
|
52
52
|
const _hoisted_25 = ["onClick"];
|
|
53
53
|
const _hoisted_26 = { class: "mn-b-thin mobile-only" };
|
|
54
|
-
const _hoisted_27 = { class: "cols-4 z-index-1 pos-relative w-100 rows-1 gap-thin" };
|
|
54
|
+
const _hoisted_27 = { class: "cols-4 mobile:cols-2 z-index-1 pos-relative w-100 rows-1 gap-thin" };
|
|
55
55
|
const _hoisted_28 = { class: "flex gap-small" };
|
|
56
56
|
const _sfc_main = {
|
|
57
57
|
__name: "Products",
|
|
@@ -206,7 +206,7 @@ const _sfc_main = {
|
|
|
206
206
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({
|
|
207
207
|
name: unref(route).params?._id ? "Organization_ProductAdd" : "ProductAdd"
|
|
208
208
|
})),
|
|
209
|
-
class: "radius-
|
|
209
|
+
class: "radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second"
|
|
210
210
|
}, " + ")) : createCommentVNode("", true)
|
|
211
211
|
])) : createCommentVNode("", true),
|
|
212
212
|
createElementVNode("div", _hoisted_4, [
|
|
@@ -219,7 +219,7 @@ const _sfc_main = {
|
|
|
219
219
|
return openBlock(), createElementBlock("div", {
|
|
220
220
|
key: category._id,
|
|
221
221
|
onClick: ($event) => selectCategory(category),
|
|
222
|
-
class: "cursor-pointer hover
|
|
222
|
+
class: "cursor-pointer hover:underline mn-b-regular ease"
|
|
223
223
|
}, [
|
|
224
224
|
createTextVNode(toDisplayString(category.name) + " ", 1),
|
|
225
225
|
_cache[10] || (_cache[10] = createElementVNode("br", null, null, -1)),
|
|
@@ -241,7 +241,7 @@ const _sfc_main = {
|
|
|
241
241
|
createElementVNode("h4", _hoisted_12, toDisplayString(filter.name), 1),
|
|
242
242
|
createElementVNode("div", _hoisted_13, [
|
|
243
243
|
createVNode(IconChevronBottom, {
|
|
244
|
-
class: normalizeClass([{ "rotate-
|
|
244
|
+
class: normalizeClass([{ "rotate-180deg mn-t-micro-negative": isOpen }, "i-medium"]),
|
|
245
245
|
fill: "rgb(var(--black))"
|
|
246
246
|
}, null, 8, ["class"])
|
|
247
247
|
])
|
|
@@ -274,7 +274,7 @@ const _sfc_main = {
|
|
|
274
274
|
_cache[11] || (_cache[11] = createElementVNode("h4", { class: "w-100" }, " Price", -1)),
|
|
275
275
|
createElementVNode("div", _hoisted_16, [
|
|
276
276
|
createVNode(IconChevronBottom, {
|
|
277
|
-
class: normalizeClass([{ "rotate-
|
|
277
|
+
class: normalizeClass([{ "rotate-180deg mn-t-micro-negative": isOpen }, "i-medium"]),
|
|
278
278
|
fill: "rgb(var(--black))"
|
|
279
279
|
}, null, 8, ["class"])
|
|
280
280
|
])
|
|
@@ -311,7 +311,7 @@ const _sfc_main = {
|
|
|
311
311
|
_cache[12] || (_cache[12] = createElementVNode("h4", { class: "w-100" }, "Availability", -1)),
|
|
312
312
|
createElementVNode("div", _hoisted_19, [
|
|
313
313
|
createVNode(IconChevronBottom, {
|
|
314
|
-
class: normalizeClass([{ "rotate-
|
|
314
|
+
class: normalizeClass([{ "rotate-180deg mn-t-micro-negative": isOpen }, "i-medium"]),
|
|
315
315
|
fill: "rgb(var(--black))"
|
|
316
316
|
}, null, 8, ["class"])
|
|
317
317
|
])
|
|
@@ -324,7 +324,7 @@ const _sfc_main = {
|
|
|
324
324
|
tempSelectedDates.value = selectedFilters.value.availability;
|
|
325
325
|
showDatePickerPopup.value = true;
|
|
326
326
|
}),
|
|
327
|
-
class: normalizeClass([{ "bg-light": selectedFilters.value?.availability }, "pd-small field-wrapper radius-small bg-light cursor-pointer hover
|
|
327
|
+
class: normalizeClass([{ "bg-light": selectedFilters.value?.availability }, "pd-small field-wrapper radius-small bg-light cursor-pointer hover:bg-light ease flex-v-center flex gap-thin"])
|
|
328
328
|
}, [
|
|
329
329
|
createVNode(_sfc_main$4, { class: "i-medium" }),
|
|
330
330
|
createElementVNode("span", _hoisted_21, toDisplayString(selectedFilters.value.availability ? `${unref(formatDate)(selectedFilters.value.availability.start, { dayMonth: true, language: "en" })} - ${unref(formatDate)(selectedFilters.value.availability.end, { dayMonth: true, language: "en" })}` : "Select dates"), 1)
|
|
@@ -347,7 +347,7 @@ const _sfc_main = {
|
|
|
347
347
|
return openBlock(), createElementBlock("div", {
|
|
348
348
|
key: category._id,
|
|
349
349
|
onClick: ($event) => selectCategory(category),
|
|
350
|
-
class: "flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover
|
|
350
|
+
class: "flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease"
|
|
351
351
|
}, toDisplayString(category.name), 9, _hoisted_25);
|
|
352
352
|
}), 128))
|
|
353
353
|
])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">{{ currentCategory ? currentCategory.name : 'All Products' }}</h2>\n <button \n v-if=\"route.params._id && hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light z-index-3 pos-relative\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <div class=\"w-100 o-y-scroll h-100\">\n <!-- Категории -->\n <div class=\"mn-b-medium\" v-if=\"currentCategories.length > 0\">\n <h4 class=\"mn-b-medium\">\n {{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}\n </h4>\n <div class=\"gap-micro\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\"cursor-pointer hover-t-underline mn-b-regular transition-all\"\n >\n {{ category.name }}\n <br>\n <span v-for=\"subcategory in category.children\">{{subcategory.name}}</span>\n </div>\n </div>\n </div>\n\n <!-- Фильтры категории -->\n <Spoiler \n v-for=\"filter in categoryFilters\"\n :key=\"filter.name\"\n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">{{ filter.name }}</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <Checkbox \n v-for=\"option in filter.options\"\n :key=\"option.text || option\"\n v-model:radio=\"selectedFilters[filter.name]\"\n :label=\"option.text || option\"\n :value=\"option.text || option\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n </template>\n </Spoiler>\n \n <!-- Цена за сутки -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\"> Price</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small flex gap-thin\">\n <Field\n v-model:field=\"selectedFilters.price.min\"\n placeholder=\"From\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"selectedFilters.price.max\"\n placeholder=\"To\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n </template>\n </Spoiler>\n\n <!-- Доступность -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">Availability</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <div \n @click=\"() => { tempSelectedDates = selectedFilters.availability; showDatePickerPopup = true; }\"\n :class=\"{ 'bg-light': selectedFilters?.availability }\"\n class=\"pd-small field-wrapper radius-small bg-light cursor-pointer hover-bg-light transition-all flex-v-center flex gap-thin\"\n >\n <IconCalendar class=\"i-medium\" />\n <span class=\"h-1r\">{{ selectedFilters.availability ? `${formatDate(selectedFilters.availability.start, { dayMonth: true, language: 'en' })} - ${formatDate(selectedFilters.availability.end, { dayMonth: true, language: 'en' })}` : 'Select dates'}}</span>\n </div>\n </div>\n </template>\n </Spoiler>\n\n <!-- Кнопка очистки фильтров -->\n <button \n @click=\"clearAllFilters\"\n class=\"bg-main w-100 button mn-t-medium\"\n >\n Clear Filters\n </button>\n </div>\n </div>\n\n <div class=\"w-100 rows-1 pd-thin pos-relative o-hidden\">\n \n <slot></slot>\n\n <div class=\"mn-b-thin mobile-only w-100 o-y-scroll scroll-hide scroll-snap-type-x-mandatory scroll-pd-regular\">\n <div class=\"gap-thin flex-nowrap flex\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\" flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover-bg-light transition-all\"\n >\n {{ category.name }}\n </div>\n </div>\n </div>\n\n <Feed\n :search=\"true\"\n v-model:sort=\"products.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.name?.includes('Organization') ? route.params._id : null,\n lookup: ['variants','rents','inventory'],\n categories: route.params.categoryPath ? `/${route.params.categoryPath}` : null,\n filters: processedFilters,\n priceMin: selectedFilters.price?.min,\n priceMax: selectedFilters.price?.max,\n dateStart: selectedFilters.availability?.start,\n dateEnd: selectedFilters.availability?.end\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"\"\n \n >\n <div class=\"mn-b-thin mobile-only\">\n <Filters\n v-model:filters=\"availableFilters\"\n v-model:selected=\"selectedFilters\"\n class=\"\"\n />\n </div>\n <div class=\"cols-4 z-index-1 pos-relative w-100 rows-1 gap-thin\">\n <router-link\n v-for=\"product in items\"\n :to=\"route.params._id ? `/organizations/${route.params._id}/products/${product._id}` : `/products/${product._id}`\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </div>\n </Feed>\n\n </div>\n </div>\n \n <!-- Date Picker Popup -->\n <Popup\n :isPopupOpen=\"showDatePickerPopup\"\n @close-popup=\"showDatePickerPopup = false\"\n class=\"pd-medium bg-white radius-medium\"\n style=\"min-width: 350px;\"\n >\n <h3 class=\"mn-b-medium\">Select Date Range</h3>\n \n <Calendar\n v-model:date=\"tempSelectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"mn-b-medium radius-small bg-light\"\n />\n \n <div class=\"flex gap-small\">\n <button \n @click=\"showDatePickerPopup = false\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button \n @click=\"applyDateFilter\"\n class=\"bg-main button w-100 flex-child-full\"\n >\n Apply\n </button>\n \n </div>\n </Popup>\n</div>\n\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/core/views/components/blocks/BlockSearch.vue'\n import Filters from '@martyrs/src/modules/core/views/components/sections/Filters.vue'\n import Spoiler from \"@martyrs/src/components/Spoiler/Spoiler.vue\"\n import Field from \"@martyrs/src/components/Field/Field.vue\"\n import Calendar from \"@martyrs/src/components/Calendar/Calendar.vue\"\n import Popup from \"@martyrs/src/components/Popup/Popup.vue\"\n import Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\"\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n import IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n const route = useRoute()\n const router = useRouter()\n const store = useStore()\n const { generateFilters, formatDate, hasAccess, returnCurrency } = useGlobalMixins()\n\n // Категории и фильтры\n const currentCategories = ref([]);\n const currentCategory = ref(null);\n const categoryFilters = ref([]);\n // const selectedFilters = ref({});\n\n const availableFilters = ref([\n {\n title: 'Price',\n value: 'price',\n type: 'range',\n minPlaceholder: 'From',\n maxPlaceholder: 'To'\n },\n {\n title: 'Availability',\n value: 'availability',\n type: 'date'\n }\n ])\n\n const selectedFilters = ref({\n price: { min: '', max: '' },\n availability: null\n })\n\n const showDatePickerPopup = ref(false);\n const tempSelectedDates = ref(null);\n\n // Computed property for processed filters\n const processedFilters = computed(() => {\n const filters = [];\n \n // Обрабатываем фильтры категорий\n Object.entries(selectedFilters.value).forEach(([key, value]) => {\n if (key === 'price' || key === 'availability') return; // эти обрабатываются отдельно\n \n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n parameter: key,\n values: value,\n caseSensitive: false\n });\n } else if (value && typeof value === 'string' && value.trim() !== '') {\n filters.push({\n parameter: key,\n values: [value],\n caseSensitive: false\n });\n }\n });\n \n return filters.length > 0 ? JSON.stringify(filters) : '';\n });\n\n\n\n\n const processedLookups = computed(() => {\n const lookups = ['variants'];\n if (selectedFilters.value.availability) {\n lookups.push('rents');\n }\n return lookups;\n });\n\n const loadCategoryData = async () => {\n const categoryPath = route.params.categoryPath;\n \n // Очищаем фильтры категории из предыдущей загрузки\n availableFilters.value = availableFilters.value.filter(f => f.value === 'price' || f.value === 'availability');\n \n try {\n if (categoryPath) {\n // Загружаем категорию и её прямых детей\n const result = await categories.actions.read({ \n url: `/${categoryPath}`,\n depth: 1,\n tree: false\n });\n \n if (result.length > 0) {\n currentCategory.value = result[0];\n currentCategories.value = result[0].children || [];\n categoryFilters.value = result[0].filters || [];\n \n // Добавляем фильтры категории в availableFilters\n (result[0].filters || []).forEach(filter => {\n availableFilters.value.push({\n title: filter.name,\n value: filter.name,\n type: 'checkbox',\n options: (filter.options || []).map(option => ({\n label: typeof option === 'string' ? option : option.text,\n value: typeof option === 'string' ? option : option.text\n }))\n });\n // Инициализируем массив для фильтра\n if (!selectedFilters.value[filter.name]) {\n selectedFilters.value[filter.name] = [];\n }\n });\n }\n } else {\n // Загружаем только корневые категории\n const result = await categories.actions.read({ \n root: true,\n tree: false\n });\n \n currentCategories.value = result;\n categoryFilters.value = [];\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n currentCategories.value = [];\n categoryFilters.value = [];\n }\n };\n\n // Функция для выбора категории\n const selectCategory = (category) => {\n const categoryPath = category.url ? category.url.substring(1) : '';\n \n if (!categoryPath) {\n console.warn('No URL found for category:', category);\n return;\n }\n \n // Переходим к странице категории используя wildcard роут\n if (route.params._id) {\n router.push(`/organizations/${route.params._id}/products/categories/${categoryPath}`);\n } else {\n router.push(`/products/categories/${categoryPath}`);\n }\n };\n\n\n // Функция применения фильтра дат\n const applyDateFilter = () => {\n selectedFilters.value.availability = tempSelectedDates.value;\n showDatePickerPopup.value = false;\n };\n \n // Функция очистки всех фильтров\n const clearAllFilters = () => {\n selectedFilters.value.price = { min: '', max: '' };\n selectedFilters.value.availability = null;\n \n // Очищаем фильтры категорий\n categoryFilters.value.forEach(filter => {\n selectedFilters.value[filter.name] = [];\n });\n };\n\n if (route.params?._id) {\n store.core.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\"\n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }];\n }\n\n onMounted(async () => {\n emits('page-loading');\n await loadCategoryData();\n emits('page-loaded');\n });\n\n onUnmounted(() => {\n store.core.state.navigation_bar.actions = [];\n });\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["categories.actions","IconPlus","auth.state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">{{ currentCategory ? currentCategory.name : 'All Products' }}</h2>\n <button \n v-if=\"route.params._id && hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <div class=\"cols-[1fr_3fr] mobile:cols-1 br-1px br-light z-index-3 pos-relative\">\n\n <div class=\"o-y-scroll br-r-1px br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <div class=\"w-100 o-y-scroll h-100\">\n <!-- Категории -->\n <div class=\"mn-b-medium\" v-if=\"currentCategories.length > 0\">\n <h4 class=\"mn-b-medium\">\n {{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}\n </h4>\n <div class=\"gap-micro\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\"cursor-pointer hover:underline mn-b-regular ease\"\n >\n {{ category.name }}\n <br>\n <span v-for=\"subcategory in category.children\">{{subcategory.name}}</span>\n </div>\n </div>\n </div>\n\n <!-- Фильтры категории -->\n <Spoiler \n v-for=\"filter in categoryFilters\"\n :key=\"filter.name\"\n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">{{ filter.name }}</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <Checkbox \n v-for=\"option in filter.options\"\n :key=\"option.text || option\"\n v-model:radio=\"selectedFilters[filter.name]\"\n :label=\"option.text || option\"\n :value=\"option.text || option\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n </template>\n </Spoiler>\n \n <!-- Цена за сутки -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\"> Price</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small flex gap-thin\">\n <Field\n v-model:field=\"selectedFilters.price.min\"\n placeholder=\"From\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"selectedFilters.price.max\"\n placeholder=\"To\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n </template>\n </Spoiler>\n\n <!-- Доступность -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">Availability</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <div \n @click=\"() => { tempSelectedDates = selectedFilters.availability; showDatePickerPopup = true; }\"\n :class=\"{ 'bg-light': selectedFilters?.availability }\"\n class=\"pd-small field-wrapper radius-small bg-light cursor-pointer hover:bg-light ease flex-v-center flex gap-thin\"\n >\n <IconCalendar class=\"i-medium\" />\n <span class=\"h-1r\">{{ selectedFilters.availability ? `${formatDate(selectedFilters.availability.start, { dayMonth: true, language: 'en' })} - ${formatDate(selectedFilters.availability.end, { dayMonth: true, language: 'en' })}` : 'Select dates'}}</span>\n </div>\n </div>\n </template>\n </Spoiler>\n\n <!-- Кнопка очистки фильтров -->\n <button \n @click=\"clearAllFilters\"\n class=\"bg-main w-100 button mn-t-medium\"\n >\n Clear Filters\n </button>\n </div>\n </div>\n\n <div class=\"w-100 rows-1 pd-thin pos-relative o-hidden\">\n \n <slot></slot>\n\n <div class=\"mn-b-thin mobile-only w-100 o-y-scroll scroll-hide scroll-snap-x-mandatory scroll-pd-regular\">\n <div class=\"gap-thin flex-nowrap flex\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\" flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease\"\n >\n {{ category.name }}\n </div>\n </div>\n </div>\n\n <Feed\n :search=\"true\"\n v-model:sort=\"products.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.name?.includes('Organization') ? route.params._id : null,\n lookup: ['variants','rents','inventory'],\n categories: route.params.categoryPath ? `/${route.params.categoryPath}` : null,\n filters: processedFilters,\n priceMin: selectedFilters.price?.min,\n priceMax: selectedFilters.price?.max,\n dateStart: selectedFilters.availability?.start,\n dateEnd: selectedFilters.availability?.end\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"\"\n \n >\n <div class=\"mn-b-thin mobile-only\">\n <Filters\n v-model:filters=\"availableFilters\"\n v-model:selected=\"selectedFilters\"\n class=\"\"\n />\n </div>\n <div class=\"cols-4 mobile:cols-2 z-index-1 pos-relative w-100 rows-1 gap-thin\">\n <router-link\n v-for=\"product in items\"\n :to=\"route.params._id ? `/organizations/${route.params._id}/products/${product._id}` : `/products/${product._id}`\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </div>\n </Feed>\n\n </div>\n </div>\n \n <!-- Date Picker Popup -->\n <Popup\n :isPopupOpen=\"showDatePickerPopup\"\n @close-popup=\"showDatePickerPopup = false\"\n class=\"pd-medium bg-white radius-medium\"\n style=\"min-width: 350px;\"\n >\n <h3 class=\"mn-b-medium\">Select Date Range</h3>\n \n <Calendar\n v-model:date=\"tempSelectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"mn-b-medium radius-small bg-light\"\n />\n \n <div class=\"flex gap-small\">\n <button \n @click=\"showDatePickerPopup = false\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button \n @click=\"applyDateFilter\"\n class=\"bg-main button w-100 flex-child-full\"\n >\n Apply\n </button>\n \n </div>\n </Popup>\n</div>\n\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/core/views/components/blocks/BlockSearch.vue'\n import Filters from '@martyrs/src/modules/core/views/components/sections/Filters.vue'\n import Spoiler from \"@martyrs/src/components/Spoiler/Spoiler.vue\"\n import Field from \"@martyrs/src/components/Field/Field.vue\"\n import Calendar from \"@martyrs/src/components/Calendar/Calendar.vue\"\n import Popup from \"@martyrs/src/components/Popup/Popup.vue\"\n import Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\"\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n import IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n const route = useRoute()\n const router = useRouter()\n const store = useStore()\n const { generateFilters, formatDate, hasAccess, returnCurrency } = useGlobalMixins()\n\n // Категории и фильтры\n const currentCategories = ref([]);\n const currentCategory = ref(null);\n const categoryFilters = ref([]);\n // const selectedFilters = ref({});\n\n const availableFilters = ref([\n {\n title: 'Price',\n value: 'price',\n type: 'range',\n minPlaceholder: 'From',\n maxPlaceholder: 'To'\n },\n {\n title: 'Availability',\n value: 'availability',\n type: 'date'\n }\n ])\n\n const selectedFilters = ref({\n price: { min: '', max: '' },\n availability: null\n })\n\n const showDatePickerPopup = ref(false);\n const tempSelectedDates = ref(null);\n\n // Computed property for processed filters\n const processedFilters = computed(() => {\n const filters = [];\n \n // Обрабатываем фильтры категорий\n Object.entries(selectedFilters.value).forEach(([key, value]) => {\n if (key === 'price' || key === 'availability') return; // эти обрабатываются отдельно\n \n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n parameter: key,\n values: value,\n caseSensitive: false\n });\n } else if (value && typeof value === 'string' && value.trim() !== '') {\n filters.push({\n parameter: key,\n values: [value],\n caseSensitive: false\n });\n }\n });\n \n return filters.length > 0 ? JSON.stringify(filters) : '';\n });\n\n\n\n\n const processedLookups = computed(() => {\n const lookups = ['variants'];\n if (selectedFilters.value.availability) {\n lookups.push('rents');\n }\n return lookups;\n });\n\n const loadCategoryData = async () => {\n const categoryPath = route.params.categoryPath;\n \n // Очищаем фильтры категории из предыдущей загрузки\n availableFilters.value = availableFilters.value.filter(f => f.value === 'price' || f.value === 'availability');\n \n try {\n if (categoryPath) {\n // Загружаем категорию и её прямых детей\n const result = await categories.actions.read({ \n url: `/${categoryPath}`,\n depth: 1,\n tree: false\n });\n \n if (result.length > 0) {\n currentCategory.value = result[0];\n currentCategories.value = result[0].children || [];\n categoryFilters.value = result[0].filters || [];\n \n // Добавляем фильтры категории в availableFilters\n (result[0].filters || []).forEach(filter => {\n availableFilters.value.push({\n title: filter.name,\n value: filter.name,\n type: 'checkbox',\n options: (filter.options || []).map(option => ({\n label: typeof option === 'string' ? option : option.text,\n value: typeof option === 'string' ? option : option.text\n }))\n });\n // Инициализируем массив для фильтра\n if (!selectedFilters.value[filter.name]) {\n selectedFilters.value[filter.name] = [];\n }\n });\n }\n } else {\n // Загружаем только корневые категории\n const result = await categories.actions.read({ \n root: true,\n tree: false\n });\n \n currentCategories.value = result;\n categoryFilters.value = [];\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n currentCategories.value = [];\n categoryFilters.value = [];\n }\n };\n\n // Функция для выбора категории\n const selectCategory = (category) => {\n const categoryPath = category.url ? category.url.substring(1) : '';\n \n if (!categoryPath) {\n console.warn('No URL found for category:', category);\n return;\n }\n \n // Переходим к странице категории используя wildcard роут\n if (route.params._id) {\n router.push(`/organizations/${route.params._id}/products/categories/${categoryPath}`);\n } else {\n router.push(`/products/categories/${categoryPath}`);\n }\n };\n\n\n // Функция применения фильтра дат\n const applyDateFilter = () => {\n selectedFilters.value.availability = tempSelectedDates.value;\n showDatePickerPopup.value = false;\n };\n \n // Функция очистки всех фильтров\n const clearAllFilters = () => {\n selectedFilters.value.price = { min: '', max: '' };\n selectedFilters.value.availability = null;\n \n // Очищаем фильтры категорий\n categoryFilters.value.forEach(filter => {\n selectedFilters.value[filter.name] = [];\n });\n };\n\n if (route.params?._id) {\n store.core.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\"\n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }];\n }\n\n onMounted(async () => {\n emits('page-loading');\n await loadCategoryData();\n emits('page-loaded');\n });\n\n onUnmounted(() => {\n store.core.state.navigation_bar.actions = [];\n });\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["categories.actions","IconPlus","auth.state"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
3
|
-
import Field from "../../../../components/Field/Field.
|
|
4
|
-
import _sfc_main$5 from "../../../../components/Button/Button.
|
|
3
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
4
|
+
import _sfc_main$5 from "../../../../components/Button/Button.vue2.js";
|
|
5
5
|
import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
|
|
6
6
|
import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
|
|
7
7
|
import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
|
|
@@ -10,8 +10,8 @@ const _hoisted_1 = {
|
|
|
10
10
|
class: "cols-1 gap-thin"
|
|
11
11
|
};
|
|
12
12
|
const _hoisted_2 = { class: "w-100" };
|
|
13
|
-
const _hoisted_3 = { class: "p-regular mn-b-thin
|
|
14
|
-
const _hoisted_4 = { class: "
|
|
13
|
+
const _hoisted_3 = { class: "p-regular mn-b-thin fw-medium d-block" };
|
|
14
|
+
const _hoisted_4 = { class: "fw-medium t-transp" };
|
|
15
15
|
const _hoisted_5 = { class: "flex gap-thin" };
|
|
16
16
|
const _hoisted_6 = ["onClick"];
|
|
17
17
|
const _hoisted_7 = ["onClick"];
|
|
@@ -93,13 +93,13 @@ const _sfc_main = {
|
|
|
93
93
|
createElementVNode("div", _hoisted_5, [
|
|
94
94
|
createElementVNode("div", {
|
|
95
95
|
onClick: () => openAttributePopup(index),
|
|
96
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover
|
|
96
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]"
|
|
97
97
|
}, [
|
|
98
98
|
createVNode(_sfc_main$2, { class: "i-medium" })
|
|
99
99
|
], 8, _hoisted_6),
|
|
100
100
|
createElementVNode("div", {
|
|
101
101
|
onClick: () => attributes.value.splice(index, 1),
|
|
102
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover
|
|
102
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]"
|
|
103
103
|
}, [
|
|
104
104
|
createVNode(_sfc_main$3, { class: "i-medium" })
|
|
105
105
|
], 8, _hoisted_7)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditAttributes.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditAttributes.vue"],"sourcesContent":["<template>\n <Block\n title=\"Parameters\"\n placeholder=\"No parameters added yet\"\n :actions=\"[{\n label: '+',\n function: () => openAttributePopup()\n }]\"\n >\n <div v-if=\"attributes.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(attribute, index) in attributes\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin
|
|
1
|
+
{"version":3,"file":"EditAttributes.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditAttributes.vue"],"sourcesContent":["<template>\n <Block\n title=\"Parameters\"\n placeholder=\"No parameters added yet\"\n :actions=\"[{\n label: '+',\n function: () => openAttributePopup()\n }]\"\n >\n <div v-if=\"attributes.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(attribute, index) in attributes\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin fw-medium d-block\">{{ attribute.name || 'Unnamed parameter' }}</p>\n <p class=\"fw-medium t-transp\">{{ attribute.value || 'No value' }}</p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openAttributePopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]\">\n <IconEdit\n class=\"i-medium\"\n />\n </div>\n <div @click=\"() => attributes.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]\">\n <IconDelete\n class=\"i-medium\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Parameter\"\n @close-popup=\"closeAttributePopup\"\n :isPopupOpen=\"isAttributePopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentAttribute.name\"\n label=\"Name\"\n placeholder=\"Parameter Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentAttribute.value\"\n label=\"Value\"\n placeholder=\"Parameter Value\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\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 @click=\"closeAttributePopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveAttribute\"\n >\n Save\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel } from 'vue';\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 IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для работы с v-model в родительском компоненте\nconst attributes = defineModel('attributes');\n\n// Локальное состояние\nconst isAttributePopupOpen = ref(false);\nconst editingAttributeIndex = ref(null);\nconst currentAttribute = reactive({\n name: '',\n value: ''\n});\n\n// Функция открытия попапа добавления/редактирования\nfunction openAttributePopup(index) {\n // Если передан индекс, это редактирование существующего атрибута\n if (index !== undefined) {\n editingAttributeIndex.value = index;\n const attribute = attributes.value[index];\n \n // Копируем данные в currentAttribute\n Object.assign(currentAttribute, {\n name: attribute.name || '',\n value: attribute.value || ''\n });\n } else {\n // Сброс данных при создании нового атрибута\n editingAttributeIndex.value = null;\n Object.assign(currentAttribute, {\n name: '',\n value: ''\n });\n }\n \n isAttributePopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeAttributePopup() {\n isAttributePopupOpen.value = false;\n editingAttributeIndex.value = null;\n}\n\n// Сохранение атрибута\nfunction saveAttribute() {\n // Проверка на основные поля\n if (!currentAttribute.name) {\n alert('Parameter name is required');\n return;\n }\n\n // Создаем копию текущего атрибута для сохранения\n const attributeToSave = {\n name: currentAttribute.name,\n value: currentAttribute.value\n };\n\n // Если редактируем существующий атрибут\n if (editingAttributeIndex.value !== null) {\n // Обновляем существующий атрибут\n attributes.value.splice(editingAttributeIndex.value, 1, attributeToSave);\n } else {\n // Добавляем новый атрибут\n attributes.value.push(attributeToSave);\n }\n\n // Закрываем попап\n closeAttributePopup();\n}\n</script>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,aAAaA,SAAW,SAAC,YAAY;AAG3C,UAAM,uBAAuB,IAAI,KAAK;AACtC,UAAM,wBAAwB,IAAI,IAAI;AACtC,UAAM,mBAAmB,SAAS;AAAA,MAChC,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAGD,aAAS,mBAAmB,OAAO;AAEjC,UAAI,UAAU,QAAW;AACvB,8BAAsB,QAAQ;AAC9B,cAAM,YAAY,WAAW,MAAM,KAAK;AAGxC,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM,UAAU,QAAQ;AAAA,UACxB,OAAO,UAAU,SAAS;AAAA,QAChC,CAAK;AAAA,MACH,OAAO;AAEL,8BAAsB,QAAQ;AAC9B,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM;AAAA,UACN,OAAO;AAAA,QACb,CAAK;AAAA,MACH;AAEA,2BAAqB,QAAQ;AAAA,IAC/B;AAGA,aAAS,sBAAsB;AAC7B,2BAAqB,QAAQ;AAC7B,4BAAsB,QAAQ;AAAA,IAChC;AAGA,aAAS,gBAAgB;AAEvB,UAAI,CAAC,iBAAiB,MAAM;AAC1B,cAAM,4BAA4B;AAClC;AAAA,MACF;AAGA,YAAM,kBAAkB;AAAA,QACtB,MAAM,iBAAiB;AAAA,QACvB,OAAO,iBAAiB;AAAA,MAC5B;AAGE,UAAI,sBAAsB,UAAU,MAAM;AAExC,mBAAW,MAAM,OAAO,sBAAsB,OAAO,GAAG,eAAe;AAAA,MACzE,OAAO;AAEL,mBAAW,MAAM,KAAK,eAAe;AAAA,MACvC;AAGA,0BAAmB;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
3
|
-
import Field from "../../../../components/Field/Field.
|
|
4
|
-
import _sfc_main$5 from "../../../../components/Button/Button.
|
|
3
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
4
|
+
import _sfc_main$5 from "../../../../components/Button/Button.vue2.js";
|
|
5
5
|
import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
|
|
6
|
-
import Select from "../../../../components/Select/Select.
|
|
6
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
7
7
|
import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
|
|
8
8
|
import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
|
|
9
9
|
const _hoisted_1 = {
|
|
@@ -11,8 +11,8 @@ const _hoisted_1 = {
|
|
|
11
11
|
class: "cols-1 gap-thin"
|
|
12
12
|
};
|
|
13
13
|
const _hoisted_2 = { class: "w-100" };
|
|
14
|
-
const _hoisted_3 = { class: "p-regular mn-b-thin
|
|
15
|
-
const _hoisted_4 = { class: "
|
|
14
|
+
const _hoisted_3 = { class: "p-regular mn-b-thin fw-medium d-block" };
|
|
15
|
+
const _hoisted_4 = { class: "fw-medium t-transp" };
|
|
16
16
|
const _hoisted_5 = {
|
|
17
17
|
key: 0,
|
|
18
18
|
class: "t-small t-transp"
|
|
@@ -177,13 +177,13 @@ const _sfc_main = {
|
|
|
177
177
|
createElementVNode("div", _hoisted_6, [
|
|
178
178
|
createElementVNode("div", {
|
|
179
179
|
onClick: () => openDiscountPopup(index),
|
|
180
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover
|
|
180
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]"
|
|
181
181
|
}, [
|
|
182
182
|
createVNode(_sfc_main$2, { class: "i-medium" })
|
|
183
183
|
], 8, _hoisted_7),
|
|
184
184
|
createElementVNode("div", {
|
|
185
185
|
onClick: () => discounts.value.splice(index, 1),
|
|
186
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover
|
|
186
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]"
|
|
187
187
|
}, [
|
|
188
188
|
createVNode(_sfc_main$3, { class: "i-medium" })
|
|
189
189
|
], 8, _hoisted_8)
|
|
@@ -248,7 +248,7 @@ const _sfc_main = {
|
|
|
248
248
|
placeholder: "Quantity to get discount",
|
|
249
249
|
class: "w-100 bg-light radius-small pd-small"
|
|
250
250
|
}, null, 8, ["field"]),
|
|
251
|
-
_cache[11] || (_cache[11] = createElementVNode("div", { class: "
|
|
251
|
+
_cache[11] || (_cache[11] = createElementVNode("div", { class: "fw-medium mn-t-micro mn-b-micro" }, "Date Range", -1)),
|
|
252
252
|
createElementVNode("div", _hoisted_10, [
|
|
253
253
|
createVNode(Field, {
|
|
254
254
|
field: currentDiscount.date.start,
|
|
@@ -265,7 +265,7 @@ const _sfc_main = {
|
|
|
265
265
|
class: "w-100 bg-light radius-small pd-small"
|
|
266
266
|
}, null, 8, ["field"])
|
|
267
267
|
]),
|
|
268
|
-
_cache[12] || (_cache[12] = createElementVNode("div", { class: "
|
|
268
|
+
_cache[12] || (_cache[12] = createElementVNode("div", { class: "fw-medium mn-t-micro mn-b-micro" }, "Time Range", -1)),
|
|
269
269
|
createElementVNode("div", _hoisted_11, [
|
|
270
270
|
createVNode(Field, {
|
|
271
271
|
field: currentDiscount.time.start,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditDiscounts.vue"],"sourcesContent":["<template>\n <Block\n title=\"Discounts\"\n placeholder=\"No discounts added yet\"\n :actions=\"[{\n label: '+',\n function: () => openDiscountPopup()\n }]\"\n >\n <div v-if=\"discounts.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(discount, index) in discounts\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin t-medium d-block\">{{ discount.name || 'Unnamed discount' }}</p>\n <p class=\"t-medium t-transp\">\n <template v-if=\"discount.type === 'special_price'\">\n Special price: {{ formatPrice(discount.value) }}\n </template>\n <template v-else>\n {{ discount.value }}% off\n </template>\n </p>\n <p v-if=\"discount.date && (discount.date.start || discount.date.end)\" class=\"t-small t-transp\">\n {{ formatDateRange(discount.date) }}\n </p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openDiscountPopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-medium\"\n />\n </div>\n <div @click=\"() => discounts.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-medium\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Discount\"\n @close-popup=\"closeDiscountPopup\"\n :isPopupOpen=\"isDiscountPopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.name\"\n label=\"Name\"\n placeholder=\"Discount Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Discount Description\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.value\"\n :label=\"currentDiscount.type === 'special_price' ? 'Special Price' : 'Discount'\"\n :placeholder=\"currentDiscount.type === 'special_price' ? 'New price' : 'Discount percentage'\"\n class=\"w-100 bg-light radius-small pd-small\"\n >\n <Select \n v-model:select=\"currentDiscount.type\" \n placeholder=\"Select type\"\n value=\"label\"\n property=\"value\"\n :options=\"[\n { value: 'discount', label: 'Discount (%)' },\n { value: 'special_price', label: 'Special Price' },\n ]\"\n class=\"pos-relative t-nowrap bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n\n <Field\n v-model:field=\"currentDiscount.quantity\"\n label=\"Quantity\"\n type=\"number\"\n placeholder=\"Quantity to get discount\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Date Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.date.start\"\n label=\"Start Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.date.end\"\n label=\"End Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Time Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.time.start\"\n label=\"Start Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.time.end\"\n label=\"End Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n \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 @click=\"closeDiscountPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveDiscount\"\n >\n Save Discount\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel, computed } from 'vue';\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 Select from '@martyrs/src/components/Select/Select.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для более простой работы с v-model в родительском компоненте\nconst discounts = defineModel('discounts', { default: () => [] });\n\n// Локальное состояние\nconst isDiscountPopupOpen = ref(false);\nconst editingDiscountIndex = ref(null);\nconst currentDiscount = reactive({\n name: '',\n description: '',\n type: 'discount', // discount или special_price\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n});\n\n// Используется для форматирования диапазона дат\nfunction formatDateRange(dateRange) {\n if (!dateRange) return '';\n \n let result = '';\n \n if (dateRange.start) {\n const startDate = new Date(dateRange.start);\n result += startDate.toLocaleDateString();\n }\n \n result += ' - ';\n \n if (dateRange.end) {\n const endDate = new Date(dateRange.end);\n result += endDate.toLocaleDateString();\n }\n \n return result;\n}\n\n// Функция открытия попапа добавления/редактирования\nfunction openDiscountPopup(index) {\n // Если передан индекс, это редактирование существующей скидки\n if (index !== undefined) {\n editingDiscountIndex.value = index;\n const discount = discounts.value[index];\n \n // Копируем данные в currentDiscount\n Object.assign(currentDiscount, {\n name: discount.name || '',\n description: discount.description || '',\n type: discount.type || 'discount',\n value: discount.value || 0,\n quantity: discount.quantity || 1,\n date: {\n start: discount.date?.start || null,\n end: discount.date?.end || null\n },\n time: {\n start: discount.time?.start || '',\n end: discount.time?.end || ''\n },\n users: Array.isArray(discount.users) ? [...discount.users] : []\n });\n } else {\n // Сброс данных при создании новой скидки\n editingDiscountIndex.value = null;\n Object.assign(currentDiscount, {\n name: '',\n description: '',\n type: 'discount',\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n });\n }\n \n isDiscountPopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeDiscountPopup() {\n isDiscountPopupOpen.value = false;\n editingDiscountIndex.value = null;\n}\n\n\n\n// Сохранение скидки\nfunction saveDiscount() {\n // Проверка на основные поля\n if (currentDiscount.type === 'discount' && (currentDiscount.value < 0 || currentDiscount.value > 100)) {\n alert('Discount value must be between 0 and 100');\n return;\n }\n\n if (currentDiscount.type === 'special_price' && currentDiscount.value < 0) {\n alert('Special price must be greater than or equal to 0');\n return;\n }\n\n // Создаем копию текущей скидки для сохранения\n const discountToSave = {\n name: currentDiscount.name,\n description: currentDiscount.description,\n type: currentDiscount.type || 'discount',\n value: parseFloat(currentDiscount.value) || 0,\n quantity: parseInt(currentDiscount.quantity) || 1,\n date: {\n start: currentDiscount.date.start,\n end: currentDiscount.date.end\n },\n time: {\n start: currentDiscount.time.start,\n end: currentDiscount.time.end\n },\n users: [...currentDiscount.users]\n };\n\n // Если редактируем существующую скидку\n if (editingDiscountIndex.value !== null) {\n // Обновляем существующую скидку\n discounts.value.splice(editingDiscountIndex.value, 1, discountToSave);\n } else {\n // Добавляем новую скидку\n if (!discounts.value) {\n discounts.value = [];\n }\n discounts.value.push(discountToSave);\n }\n\n // Закрываем попап\n closeDiscountPopup();\n}\n</script>"],"names":["_useModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditDiscounts.vue"],"sourcesContent":["<template>\n <Block\n title=\"Discounts\"\n placeholder=\"No discounts added yet\"\n :actions=\"[{\n label: '+',\n function: () => openDiscountPopup()\n }]\"\n >\n <div v-if=\"discounts.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(discount, index) in discounts\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin fw-medium d-block\">{{ discount.name || 'Unnamed discount' }}</p>\n <p class=\"fw-medium t-transp\">\n <template v-if=\"discount.type === 'special_price'\">\n Special price: {{ formatPrice(discount.value) }}\n </template>\n <template v-else>\n {{ discount.value }}% off\n </template>\n </p>\n <p v-if=\"discount.date && (discount.date.start || discount.date.end)\" class=\"t-small t-transp\">\n {{ formatDateRange(discount.date) }}\n </p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openDiscountPopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]\">\n <IconEdit\n class=\"i-medium\"\n />\n </div>\n <div @click=\"() => discounts.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]\">\n <IconDelete\n class=\"i-medium\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Discount\"\n @close-popup=\"closeDiscountPopup\"\n :isPopupOpen=\"isDiscountPopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.name\"\n label=\"Name\"\n placeholder=\"Discount Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Discount Description\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.value\"\n :label=\"currentDiscount.type === 'special_price' ? 'Special Price' : 'Discount'\"\n :placeholder=\"currentDiscount.type === 'special_price' ? 'New price' : 'Discount percentage'\"\n class=\"w-100 bg-light radius-small pd-small\"\n >\n <Select \n v-model:select=\"currentDiscount.type\" \n placeholder=\"Select type\"\n value=\"label\"\n property=\"value\"\n :options=\"[\n { value: 'discount', label: 'Discount (%)' },\n { value: 'special_price', label: 'Special Price' },\n ]\"\n class=\"pos-relative t-nowrap bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n\n <Field\n v-model:field=\"currentDiscount.quantity\"\n label=\"Quantity\"\n type=\"number\"\n placeholder=\"Quantity to get discount\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"fw-medium mn-t-micro mn-b-micro\">Date Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.date.start\"\n label=\"Start Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.date.end\"\n label=\"End Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"fw-medium mn-t-micro mn-b-micro\">Time Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.time.start\"\n label=\"Start Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.time.end\"\n label=\"End Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n \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 @click=\"closeDiscountPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveDiscount\"\n >\n Save Discount\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel, computed } from 'vue';\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 Select from '@martyrs/src/components/Select/Select.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для более простой работы с v-model в родительском компоненте\nconst discounts = defineModel('discounts', { default: () => [] });\n\n// Локальное состояние\nconst isDiscountPopupOpen = ref(false);\nconst editingDiscountIndex = ref(null);\nconst currentDiscount = reactive({\n name: '',\n description: '',\n type: 'discount', // discount или special_price\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n});\n\n// Используется для форматирования диапазона дат\nfunction formatDateRange(dateRange) {\n if (!dateRange) return '';\n \n let result = '';\n \n if (dateRange.start) {\n const startDate = new Date(dateRange.start);\n result += startDate.toLocaleDateString();\n }\n \n result += ' - ';\n \n if (dateRange.end) {\n const endDate = new Date(dateRange.end);\n result += endDate.toLocaleDateString();\n }\n \n return result;\n}\n\n// Функция открытия попапа добавления/редактирования\nfunction openDiscountPopup(index) {\n // Если передан индекс, это редактирование существующей скидки\n if (index !== undefined) {\n editingDiscountIndex.value = index;\n const discount = discounts.value[index];\n \n // Копируем данные в currentDiscount\n Object.assign(currentDiscount, {\n name: discount.name || '',\n description: discount.description || '',\n type: discount.type || 'discount',\n value: discount.value || 0,\n quantity: discount.quantity || 1,\n date: {\n start: discount.date?.start || null,\n end: discount.date?.end || null\n },\n time: {\n start: discount.time?.start || '',\n end: discount.time?.end || ''\n },\n users: Array.isArray(discount.users) ? [...discount.users] : []\n });\n } else {\n // Сброс данных при создании новой скидки\n editingDiscountIndex.value = null;\n Object.assign(currentDiscount, {\n name: '',\n description: '',\n type: 'discount',\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n });\n }\n \n isDiscountPopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeDiscountPopup() {\n isDiscountPopupOpen.value = false;\n editingDiscountIndex.value = null;\n}\n\n\n\n// Сохранение скидки\nfunction saveDiscount() {\n // Проверка на основные поля\n if (currentDiscount.type === 'discount' && (currentDiscount.value < 0 || currentDiscount.value > 100)) {\n alert('Discount value must be between 0 and 100');\n return;\n }\n\n if (currentDiscount.type === 'special_price' && currentDiscount.value < 0) {\n alert('Special price must be greater than or equal to 0');\n return;\n }\n\n // Создаем копию текущей скидки для сохранения\n const discountToSave = {\n name: currentDiscount.name,\n description: currentDiscount.description,\n type: currentDiscount.type || 'discount',\n value: parseFloat(currentDiscount.value) || 0,\n quantity: parseInt(currentDiscount.quantity) || 1,\n date: {\n start: currentDiscount.date.start,\n end: currentDiscount.date.end\n },\n time: {\n start: currentDiscount.time.start,\n end: currentDiscount.time.end\n },\n users: [...currentDiscount.users]\n };\n\n // Если редактируем существующую скидку\n if (editingDiscountIndex.value !== null) {\n // Обновляем существующую скидку\n discounts.value.splice(editingDiscountIndex.value, 1, discountToSave);\n } else {\n // Добавляем новую скидку\n if (!discounts.value) {\n discounts.value = [];\n }\n discounts.value.push(discountToSave);\n }\n\n // Закрываем попап\n closeDiscountPopup();\n}\n</script>"],"names":["_useModel"],"mappings":"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"}
|
|
@@ -110,7 +110,7 @@ const _sfc_main = {
|
|
|
110
110
|
unref(store).core.actions.add(recommended.value, product);
|
|
111
111
|
closeRecommendedPopup();
|
|
112
112
|
},
|
|
113
|
-
class: "bg-white pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover
|
|
113
|
+
class: "bg-white pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover:scale-[1.05]"
|
|
114
114
|
}, null, 8, ["image", "name", "onClick"]);
|
|
115
115
|
}), 128))
|
|
116
116
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditRecommended.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditRecommended.vue"],"sourcesContent":["<template>\n <Block\n title=\"Recommended Products\"\n placeholder=\"No recommended products added yet. Add products that are frequently bought together.\"\n :actions=\"[{\n label: '+',\n function: () => openRecommendedPopup()\n }]\"\n >\n <div v-if=\"recommended?.length > 0\" class=\"rows-1 gap-thin\">\n <CardPosition \n v-for=\"(product, index) in recommended\" \n :key=\"product._id\" \n :image=\"product.images?.[0] ? (FILE_SERVER_URL || '') + product.images[0] : ''\"\n :name=\"product.name\"\n :showThumbnail=\"true\"\n :actions=\"[\n {\n component: IconDelete,\n class: 'bg-red',\n handler: () => {\n store.core.actions.delete(recommended, product, index);\n }\n }\n ]\"\n class=\"bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </div>\n </Block>\n\n <Popup \n title=\"Add Recommended Product\" \n @close-popup=\"closeRecommendedPopup\" \n :isPopupOpen=\"isRecommendedPopupOpen\"\n class=\"bg-white w-min-30r w-max-30r radius-medium pd-medium\"\n >\n <div class=\"bg-light mn-b-thin h-min-20r h-max-20r o-scroll pd-medium radius-medium\">\n <Feed\n :search=\"{\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no such products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: null\n }\"\n :options=\"{\n owner: route.params._id,\n }\"\n v-slot=\"{ items }\"\n class=\"\"\n >\n <CardPosition\n v-for=\"(product, index) in items\" :key=\"product._id\"\n :image=\"product.images?.[0] ? (FILE_SERVER_URL || '') + product.images[0] : ''\"\n :name=\"product.name\"\n :showThumbnail=\"true\"\n @click=\"store.core.actions.add(recommended, product); closeRecommendedPopup();\"\n class=\"bg-white pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover
|
|
1
|
+
{"version":3,"file":"EditRecommended.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditRecommended.vue"],"sourcesContent":["<template>\n <Block\n title=\"Recommended Products\"\n placeholder=\"No recommended products added yet. Add products that are frequently bought together.\"\n :actions=\"[{\n label: '+',\n function: () => openRecommendedPopup()\n }]\"\n >\n <div v-if=\"recommended?.length > 0\" class=\"rows-1 gap-thin\">\n <CardPosition \n v-for=\"(product, index) in recommended\" \n :key=\"product._id\" \n :image=\"product.images?.[0] ? (FILE_SERVER_URL || '') + product.images[0] : ''\"\n :name=\"product.name\"\n :showThumbnail=\"true\"\n :actions=\"[\n {\n component: IconDelete,\n class: 'bg-red',\n handler: () => {\n store.core.actions.delete(recommended, product, index);\n }\n }\n ]\"\n class=\"bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </div>\n </Block>\n\n <Popup \n title=\"Add Recommended Product\" \n @close-popup=\"closeRecommendedPopup\" \n :isPopupOpen=\"isRecommendedPopupOpen\"\n class=\"bg-white w-min-30r w-max-30r radius-medium pd-medium\"\n >\n <div class=\"bg-light mn-b-thin h-min-20r h-max-20r o-scroll pd-medium radius-medium\">\n <Feed\n :search=\"{\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no such products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: null\n }\"\n :options=\"{\n owner: route.params._id,\n }\"\n v-slot=\"{ items }\"\n class=\"\"\n >\n <CardPosition\n v-for=\"(product, index) in items\" :key=\"product._id\"\n :image=\"product.images?.[0] ? (FILE_SERVER_URL || '') + product.images[0] : ''\"\n :name=\"product.name\"\n :showThumbnail=\"true\"\n @click=\"store.core.actions.add(recommended, product); closeRecommendedPopup();\"\n class=\"bg-white pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover:scale-[1.05]\"\n />\n </Feed>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, defineModel } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { useGlobalMixins } from \"@martyrs/src/modules/core/views/mixins/mixins.js\"\n\n// Импорт компонентов\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\n// Импорт модулей и глобальных хранилищ\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\n\n// Импорт карточек\nimport CardPosition from '@martyrs/src/modules/products/components/blocks/CardPosition.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Получение route и router\nconst route = useRoute();\nconst router = useRouter();\nconst store = useStore();\nconst { returnCurrency } = useGlobalMixins();\n\n// Используем defineModel для работы с v-model в родительском компоненте\nconst recommended = defineModel('recommended');\n\n// Локальное состояние\nconst isRecommendedPopupOpen = ref(false);\n\n// При монтировании компонента инициализируем recommended\nonMounted(async () => {\n // Инициализируем recommended как пустой массив, если не определено или не массив\n if (!recommended.value || !Array.isArray(recommended.value)) {\n recommended.value = [];\n }\n});\n\n// Открытие попапа для добавления рекомендованного товара\nfunction openRecommendedPopup() {\n isRecommendedPopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeRecommendedPopup() {\n isRecommendedPopupOpen.value = false;\n}\n</script>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0FA,UAAM,QAAQ,SAAQ;AACP,cAAS;AACxB,UAAM,QAAQ,SAAQ;AACtB,UAAM,EAAE,eAAc,IAAK,gBAAe;AAG1C,UAAM,cAAcA,SAAW,SAAC,aAAa;AAG7C,UAAM,yBAAyB,IAAI,KAAK;AAGxC,cAAU,YAAY;AAEpB,UAAI,CAAC,YAAY,SAAS,CAAC,MAAM,QAAQ,YAAY,KAAK,GAAG;AAC3D,oBAAY,QAAQ,CAAA;AAAA,MACtB;AAAA,IACF,CAAC;AAGD,aAAS,uBAAuB;AAC9B,6BAAuB,QAAQ;AAAA,IACjC;AAGA,aAAS,wBAAwB;AAC/B,6BAAuB,QAAQ;AAAA,IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,10 +4,10 @@ import { state as state$1 } from "../../../auth/views/store/auth.js";
|
|
|
4
4
|
import variantsStore from "../../store/variants.store.js";
|
|
5
5
|
import { state } from "../../store/products.js";
|
|
6
6
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
7
|
-
import Field from "../../../../components/Field/Field.
|
|
8
|
-
import _sfc_main$3 from "../../../../components/Button/Button.
|
|
7
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
8
|
+
import _sfc_main$3 from "../../../../components/Button/Button.vue2.js";
|
|
9
9
|
import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
|
|
10
|
-
import Select from "../../../../components/Select/Select.
|
|
10
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
11
11
|
import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
|
|
12
12
|
import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue2.js";
|
|
13
13
|
import _sfc_main$8 from "./EditIngredients.vue.js";
|
|
@@ -20,12 +20,12 @@ const _hoisted_1 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-h
|
|
|
20
20
|
const _hoisted_2 = ["src"];
|
|
21
21
|
const _hoisted_3 = { class: "w-100" };
|
|
22
22
|
const _hoisted_4 = { class: "flex-nowrap mn-b-nano flex-v-center flex" };
|
|
23
|
-
const _hoisted_5 = { class: "p-regular
|
|
23
|
+
const _hoisted_5 = { class: "p-regular fw-medium d-block" };
|
|
24
24
|
const _hoisted_6 = {
|
|
25
25
|
key: 0,
|
|
26
26
|
class: "t-small pd-thin mn-l-thin radius-thin bg-light"
|
|
27
27
|
};
|
|
28
|
-
const _hoisted_7 = { class: "
|
|
28
|
+
const _hoisted_7 = { class: "fw-medium t-transp" };
|
|
29
29
|
const _hoisted_8 = {
|
|
30
30
|
key: 0,
|
|
31
31
|
class: "t-small t-transp"
|
|
@@ -34,7 +34,7 @@ const _hoisted_9 = { class: "flex gap-thin" };
|
|
|
34
34
|
const _hoisted_10 = { class: "cols-1 gap-thin o-y-scroll" };
|
|
35
35
|
const _hoisted_11 = { class: "flex gap-thin" };
|
|
36
36
|
const _hoisted_12 = { class: "flex gap-thin" };
|
|
37
|
-
const _hoisted_13 = { class: "radius-small h-100 flex-center flex-child-default flex aspect-1x1 bg-red cursor-pointer hover
|
|
37
|
+
const _hoisted_13 = { class: "radius-small h-100 flex-center flex-child-default flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]" };
|
|
38
38
|
const _hoisted_14 = { class: "mn-t-medium" };
|
|
39
39
|
const _hoisted_15 = { class: "flex gap-thin mn-t-medium" };
|
|
40
40
|
const _sfc_main = {
|
|
@@ -294,7 +294,7 @@ const _sfc_main = {
|
|
|
294
294
|
createVNode(_sfc_main$3, {
|
|
295
295
|
showSuccess: false,
|
|
296
296
|
showLoader: true,
|
|
297
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover
|
|
297
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]",
|
|
298
298
|
submit: () => copyVariant(variant)
|
|
299
299
|
}, {
|
|
300
300
|
default: withCtx(() => [
|
|
@@ -305,7 +305,7 @@ const _sfc_main = {
|
|
|
305
305
|
createVNode(_sfc_main$3, {
|
|
306
306
|
showSuccess: false,
|
|
307
307
|
showLoader: false,
|
|
308
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover
|
|
308
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]",
|
|
309
309
|
submit: () => openVariantPopup(variant)
|
|
310
310
|
}, {
|
|
311
311
|
default: withCtx(() => [
|
|
@@ -316,7 +316,7 @@ const _sfc_main = {
|
|
|
316
316
|
createVNode(_sfc_main$3, {
|
|
317
317
|
showSuccess: false,
|
|
318
318
|
showLoader: true,
|
|
319
|
-
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover
|
|
319
|
+
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]",
|
|
320
320
|
submit: () => deleteVariant(variant)
|
|
321
321
|
}, {
|
|
322
322
|
default: withCtx(() => [
|
|
@@ -389,7 +389,7 @@ const _sfc_main = {
|
|
|
389
389
|
class: "w-100 bg-light radius-small pd-small"
|
|
390
390
|
}, null, 8, ["field"])
|
|
391
391
|
]),
|
|
392
|
-
_cache[13] || (_cache[13] = createElementVNode("div", { class: "
|
|
392
|
+
_cache[13] || (_cache[13] = createElementVNode("div", { class: "fw-medium mn-t-small mn-b-small" }, "Attributes", -1)),
|
|
393
393
|
(openBlock(true), createElementBlock(Fragment, null, renderList(currentVariant.attributes, (attr, attrIndex) => {
|
|
394
394
|
return openBlock(), createElementBlock("div", {
|
|
395
395
|
class: "gap-micro flex-nowrap flex mn-b-small",
|
|
@@ -455,7 +455,7 @@ const _sfc_main = {
|
|
|
455
455
|
"onUpdate:ingredients": _cache[9] || (_cache[9] = ($event) => currentVariant.ingredients = $event)
|
|
456
456
|
}, null, 8, ["ingredients"])
|
|
457
457
|
]),
|
|
458
|
-
_cache[14] || (_cache[14] = createElementVNode("div", { class: "
|
|
458
|
+
_cache[14] || (_cache[14] = createElementVNode("div", { class: "fw-medium mn-t-small mn-b-small" }, "Images", -1)),
|
|
459
459
|
createVNode(_sfc_main$9, {
|
|
460
460
|
images: currentVariant.images || [],
|
|
461
461
|
uploadPath: "variants",
|