@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GanttChart.vue.js","sources":["../../../../../../../../../src/modules/rents/views/components/pages/Gant/GanttChart.vue"],"sourcesContent":["<template>\n <div class=\"w-100\" :style=\"{ '--cell-width': cellWidth + 'px' }\">\n <GanttToolbar\n :view=\"view\"\n :views=\"views\"\n :date=\"date\"\n @update:view=\"$emit('update:view', $event)\"\n @update:date=\"$emit('update:date', $event)\"\n @today=\"$emit('today')\"\n @load-more=\"$emit('load-more', $event)\"\n />\n \n <div \n class=\"gantt-container scroller o-scroll bg-white radius-small br-solid br-1px br-black-transp-10\"\n ref=\"container\"\n @scroll=\"handleScroll\"\n >\n <div class=\"gantt-content\">\n <!-- Header -->\n <div class=\"gantt-header pos-sticky top-0 z-index-2 bg-white br-b br-solid br-black-transp-10\">\n <div class=\"flex\">\n <div class=\"gantt-product-col pos-sticky left-0 z-index-3 bg-light pd-small br-r br-solid br-black-transp-10\">\n Product\n </div>\n \n <div class=\"gantt-timeline flex\">\n <div\n v-for=\"(cell, i) in visibleCells\"\n :key=\"cell.key\"\n class=\"gantt-cell br-r br-solid br-black-transp-10 t-center pd-small\"\n :class=\"getCellClass(cell)\"\n :style=\"{ width: cellWidth + 'px' }\"\n >\n <GanttHeaderCell :cell=\"cell\" :view=\"view\" :index=\"i\" />\n </div>\n </div>\n </div>\n </div>\n\n <!-- Body -->\n <div class=\"gantt-body\">\n <div \n v-for=\"(group, i) in groups\" \n :key=\"group.key\" \n class=\"gantt-row flex br-b br-solid br-black-transp-10\"\n :class=\"i % 2 === 0 ? 'bg-light-transp' : ''\"\n :style=\"{ height: rowHeight + 'px' }\"\n >\n <div class=\"gantt-product-col pos-sticky left-0 z-index-1 bg-white pd-small br-r br-solid br-black-transp-10\">\n <div class=\"t-medium mn-b-micro\">{{ group.title }}</div>\n <div class=\"t-micro\" :class=\"statusClass(group)\">{{ group.status }}</div>\n </div>\n \n <div class=\"gantt-timeline pos-relative\">\n <!-- Background cells -->\n <div class=\"gantt-cells flex pos-absolute h-100\">\n <div\n v-for=\"cell in visibleCells\"\n :key=\"cell.key + '-bg'\"\n class=\"gantt-cell h-100 br-r br-solid br-black-transp-10\"\n :class=\"getCellClass(cell)\"\n :style=\"{ width: cellWidth + 'px' }\"\n />\n </div>\n \n <!-- Bars -->\n <div class=\"gantt-bars pos-absolute h-100\">\n <GanttBar\n v-for=\"bar in getBars(group)\"\n :key=\"bar.key\"\n :bar=\"bar\"\n :view=\"view\"\n @click=\"$emit('item-click', bar.item)\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onUnmounted, watch, nextTick, shallowRef, onMounted } from 'vue'\nimport dayjs from 'dayjs'\n// import utc from 'dayjs/plugin/utc'\n// import timezone from 'dayjs/plugin/timezone'\n\n// dayjs.extend(utc)\n// dayjs.extend(timezone)\n\nimport GanttToolbar from './GanttToolbar.vue'\nimport GanttHeaderCell from './GanttHeaderCell.vue'\nimport GanttBar from './GanttBar.vue'\n\nconst props = defineProps({\n items: { type: Array, required: true },\n view: { type: String, default: 'days' },\n date: { type: Date, required: true },\n dateRange: { type: Object, required: true },\n views: {\n type: Array,\n default: () => [\n { name: 'Hours', value: 'hours', width: 60 },\n { name: 'Days', value: 'days', width: 60 },\n { name: 'Weeks', value: 'weeks', width: 120 }\n ]\n },\n titleKey: { type: String, default: 'title' },\n startKey: { type: String, default: 'startDate' },\n endKey: { type: String, default: 'endDate' },\n statusKey: { type: String, default: 'status' },\n idKey: { type: String, default: 'id' },\n groupBy: { type: String, default: 'title' },\n loading: { type: Boolean, default: false },\n rowHeight: { type: Number, default: 60 }\n})\n\nconst emit = defineEmits([\n 'update:view',\n 'update:date', \n 'update:dateRange',\n 'load-more',\n 'item-click',\n 'today'\n])\n\n// State\nconst container = ref(null)\nconst scrollLeft = ref(0)\n\n// Cell width\nconst cellWidth = computed(() => {\n const view = props.views.find(v => v.value === props.view)\n return view?.width || 60\n})\n\n// Visible cells\nconst visibleCells = computed(() => {\n if (!props.dateRange) return []\n \n const { start, end } = props.dateRange\n const cells = []\n \n switch (props.view) {\n case 'hours':\n // Start from beginning of the day (use only first day)\n const startDay = new Date(start)\n startDay.setHours(0, 0, 0, 0)\n \n // Generate hour cells for 24 hours (one day)\n for (let h = 0; h < 24; h++) {\n const cellDate = new Date(startDay)\n cellDate.setHours(h, 0, 0, 0)\n cells.push({\n type: 'hour',\n date: cellDate,\n hour: h,\n key: `${startDay.getTime()}-${h}`\n })\n }\n \n break\n \n case 'days':\n for (let d = new Date(start); d <= end; d.setDate(d.getDate() + 1)) {\n cells.push({\n type: 'day',\n date: new Date(d),\n key: d.getTime()\n })\n }\n break\n \n case 'weeks':\n const weekStart = new Date(start)\n weekStart.setDate(start.getDate() - start.getDay())\n \n const currentWeek = new Date(weekStart)\n while (currentWeek <= end) {\n const weekEnd = new Date(currentWeek)\n weekEnd.setDate(currentWeek.getDate() + 6)\n \n cells.push({\n type: 'week',\n start: new Date(currentWeek),\n end: new Date(weekEnd),\n key: currentWeek.getTime()\n })\n \n currentWeek.setDate(currentWeek.getDate() + 7)\n }\n break\n }\n \n return cells\n})\n\n// Cache for bars calculation\nconst barsCache = new WeakMap()\n\n// Helper function to get nested property value\nconst getNestedValue = (obj, path) => {\n return path.split('.').reduce((current, key) => current?.[key], obj)\n}\n\n// Groups\nconst groups = computed(() => {\n const map = new Map()\n \n props.items.forEach(item => {\n const key = getNestedValue(item, props.groupBy) || 'Ungrouped'\n \n if (!map.has(key)) {\n map.set(key, {\n key,\n title: key,\n items: [],\n status: getNestedValue(item, props.statusKey)\n })\n }\n \n map.get(key).items.push(item)\n })\n \n return Array.from(map.values())\n})\n\n// Cell class\nconst getCellClass = (cell) => {\n const classes = []\n const now = dayjs()\n \n switch (cell.type) {\n case 'hour':\n if (dayjs(cell.date).isSame(now, 'day') && cell.hour === now.hour()) {\n classes.push('bg-blue-transp')\n } else if (dayjs(cell.date).isSame(now, 'day')) {\n classes.push('bg-light')\n }\n break\n \n case 'day':\n const day = dayjs(cell.date).day()\n if (day === 0 || day === 6) classes.push('bg-light')\n if (dayjs(cell.date).isSame(now, 'day')) classes.push('bg-blue-transp')\n break\n \n case 'week':\n if (now.isAfter(cell.start) && now.isBefore(cell.end)) {\n classes.push('bg-blue-transp')\n }\n break\n }\n \n return classes.join(' ')\n}\n\n// Status class\nconst statusClass = (group) => {\n const s = group.status || 'default'\n const map = {\n active: 't-green',\n completed: 't-blue',\n canceled: 't-red',\n default: 't-transp'\n }\n return map[s] || map.default\n}\n\n// Get bars\nconst getBars = (group) => {\n const result = []\n const rows = []\n \n group.items.forEach(item => {\n try {\n const start = getNestedValue(item, props.startKey)\n const end = getNestedValue(item, props.endKey)\n \n if (!start || !end) return\n \n const s = start instanceof Date ? new Date(start) : dayjs(start).toDate()\n const e = end instanceof Date ? new Date(end) : dayjs(end).toDate()\n \n if (isNaN(s.getTime()) || isNaN(e.getTime())) {\n console.warn(`Invalid dates for item ${getNestedValue(item, props.idKey)}:`, { start, end })\n return\n }\n \n console.log('Processing item:', {\n id: getNestedValue(item, props.idKey),\n start: s,\n end: e,\n dateRange: props.dateRange\n })\n \n // Skip if completely outside visible range\n if (e < props.dateRange.start || s > props.dateRange.end) {\n console.log('Item skipped - outside visible range')\n return\n }\n \n // Calculate position\n let left = 0\n let width = 0\n \n // Minimum width for very short intervals\n const minWidth = cellWidth.value * 0.1\n \n switch (props.view) {\n case 'hours':\n if (!visibleCells.value.length) return\n \n // Get the first cell's time as base reference\n const firstCell = visibleCells.value[0]\n const baseTime = new Date(firstCell.date)\n baseTime.setHours(0, 0, 0, 0)\n \n // Calculate exact minute positions from base time\n const minuteMs = 60 * 1000\n const hourMs = 60 * 60 * 1000\n \n // For long bars (>1 day), limit to visible day range\n const dayStart = new Date(baseTime)\n dayStart.setHours(0, 0, 0, 0)\n const dayEnd = new Date(baseTime)\n dayEnd.setHours(23, 59, 59, 999)\n \n const visibleStart = s < dayStart ? dayStart : s\n const visibleEnd = e > dayEnd ? dayEnd : e\n \n // Calculate hour positions with minute precision\n const startHours = (visibleStart - baseTime) / hourMs\n const endHours = (visibleEnd - baseTime) / hourMs\n \n // Clip to visible range (0-24 hours)\n const clippedStart = Math.max(0, startHours)\n const clippedEnd = Math.min(24, endHours)\n \n // Skip if completely outside visible range\n if (clippedEnd <= clippedStart) {\n return\n }\n \n // Calculate pixel position\n left = clippedStart * cellWidth.value\n width = (clippedEnd - clippedStart) * cellWidth.value\n \n // Apply minimum width for very short intervals (3-7 minutes should be visible)\n width = Math.max(width, minWidth)\n \n break\n \n case 'days':\n const firstDay = visibleCells.value[0]?.date\n if (!firstDay) return\n \n const firstDayStart = new Date(firstDay)\n firstDayStart.setHours(0, 0, 0, 0)\n \n // Calculate exact positions with minute precision\n const dayMs = 24 * 60 * 60 * 1000\n const startDayFloat = (s - firstDayStart) / dayMs\n const endDayFloat = (e - firstDayStart) / dayMs\n \n // Clip to visible range\n const visibleDays = visibleCells.value.length\n const clippedStartDay = Math.max(0, startDayFloat)\n const clippedEndDay = Math.min(visibleDays, endDayFloat)\n \n // Skip if completely outside visible range\n if (clippedEndDay <= clippedStartDay) return\n \n left = clippedStartDay * cellWidth.value\n width = (clippedEndDay - clippedStartDay) * cellWidth.value\n \n // Apply minimum width for very short intervals\n width = Math.max(width, minWidth)\n break\n \n case 'weeks':\n const firstWeek = visibleCells.value[0]?.start\n if (!firstWeek) return\n \n // Calculate exact positions with minute precision\n const weekMs = 7 * 24 * 60 * 60 * 1000\n const startWeekFloat = (s - firstWeek) / weekMs\n const endWeekFloat = (e - firstWeek) / weekMs\n \n // Clip to visible range\n const visibleWeeks = visibleCells.value.length\n const clippedStartWeek = Math.max(0, startWeekFloat)\n const clippedEndWeek = Math.min(visibleWeeks, endWeekFloat)\n \n // Skip if completely outside visible range\n if (clippedEndWeek <= clippedStartWeek) return\n \n left = clippedStartWeek * cellWidth.value\n width = (clippedEndWeek - clippedStartWeek) * cellWidth.value\n \n // Apply minimum width for very short intervals\n width = Math.max(width, minWidth)\n break\n }\n \n // Find row\n let row = 0\n let placed = false\n \n while (!placed) {\n if (!rows[row]) rows[row] = []\n \n const overlap = rows[row].some(b => \n (s <= b.end && e >= b.start)\n )\n \n if (!overlap) {\n rows[row].push({ start: s, end: e })\n placed = true\n } else {\n row++\n }\n }\n \n result.push({\n key: `${getNestedValue(item, props.idKey)}-${s.getTime()}`,\n item,\n left,\n width,\n row,\n status: getNestedValue(item, props.statusKey) || 'default'\n })\n } catch (error) {\n console.error(`Error processing item ${getNestedValue(item, props.idKey)}:`, error)\n }\n })\n \n console.log('Final bars result:', result)\n return result\n}\n\n// Throttle\nconst throttle = (fn, delay) => {\n let lastCall = 0\n let timeout = null\n \n const throttled = (...args) => {\n const now = Date.now()\n const remaining = delay - (now - lastCall)\n \n if (remaining <= 0) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n lastCall = now\n return fn(...args)\n }\n \n if (!timeout) {\n timeout = setTimeout(() => {\n lastCall = Date.now()\n timeout = null\n fn(...args)\n }, remaining)\n }\n }\n \n throttled.cancel = () => {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n }\n \n return throttled\n}\n\n// Scroll handling\nconst handleScroll = (event) => {\n if (!container.value) return\n \n const el = event.target\n scrollLeft.value = el.scrollLeft\n}\n\n// Cleanup\nonUnmounted(() => {\n // No cleanup needed\n})\n\n// Center view on specific date\nconst centerOnDate = (targetDate) => {\n if (!container.value) return\n \n nextTick(() => {\n const cells = visibleCells.value\n if (!cells.length) return\n \n let cellIndex = -1\n \n switch (props.view) {\n case 'hours':\n cellIndex = cells.findIndex(c => \n c.type === 'hour' &&\n dayjs(c.date).isSame(targetDate, 'day') &&\n c.hour === targetDate.getHours()\n )\n break\n \n case 'days':\n cellIndex = cells.findIndex(c =>\n c.type === 'day' &&\n dayjs(c.date).isSame(targetDate, 'day')\n )\n break\n \n case 'weeks':\n cellIndex = cells.findIndex(c =>\n c.type === 'week' &&\n targetDate >= c.start &&\n targetDate <= c.end\n )\n break\n }\n \n if (cellIndex >= 0) {\n const scrollPos = cellIndex * cellWidth.value - container.value.clientWidth / 2\n container.value.scrollLeft = Math.max(0, scrollPos)\n }\n })\n}\n\n// Watch for view or date range changes\nwatch(() => props.view, () => {\n // Center on current date when view changes\n centerOnDate(props.date)\n})\n\n// Watch for date changes (e.g., when Today button is clicked)\nwatch(() => props.date, (newDate) => {\n // Center on the new date, especially important for hours view\n centerOnDate(newDate)\n})\n\nwatch(() => props.dateRange, () => {\n // Reset scroll position when date range changes significantly\n if (container.value) {\n container.value.scrollLeft = 0\n }\n}, { deep: true })\n</script>\n\n<style>\n.gantt-container {\n --cell-width: 60px;\n height: 500px;\n position: relative;\n}\n\n.gantt-content {\n width: fit-content;\n min-width: 100%;\n}\n\n.gantt-header {\n height: 60px;\n}\n\n.gantt-product-col {\n width: 200px;\n min-width: 200px;\n flex-shrink: 0;\n}\n\n.gantt-timeline {\n position: relative;\n min-width: fit-content;\n}\n\n.gantt-cell {\n min-width: var(--cell-width);\n flex-shrink: 0;\n}\n\n.gantt-row {\n position: relative;\n}\n\n.gantt-cells,\n.gantt-bars {\n width: fit-content;\n left: 0;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGA,UAAM,QAAQ;AAiCd,UAAM,YAAY,IAAI,IAAI;AAC1B,UAAM,aAAa,IAAI,CAAC;AAGxB,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,OAAO,MAAM,MAAM,KAAK,OAAK,EAAE,UAAU,MAAM,IAAI;AACzD,aAAO,MAAM,SAAS;AAAA,IACxB,CAAC;AAGD,UAAM,eAAe,SAAS,MAAM;AAClC,UAAI,CAAC,MAAM,UAAW,QAAO,CAAA;AAE7B,YAAM,EAAE,OAAO,IAAG,IAAK,MAAM;AAC7B,YAAM,QAAQ,CAAA;AAEd,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AAEH,gBAAM,WAAW,IAAI,KAAK,KAAK;AAC/B,mBAAS,SAAS,GAAG,GAAG,GAAG,CAAC;AAG5B,mBAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,kBAAM,WAAW,IAAI,KAAK,QAAQ;AAClC,qBAAS,SAAS,GAAG,GAAG,GAAG,CAAC;AAC5B,kBAAM,KAAK;AAAA,cACT,MAAM;AAAA,cACN,MAAM;AAAA,cACN,MAAM;AAAA,cACN,KAAK,GAAG,SAAS,QAAO,CAAE,IAAI,CAAC;AAAA,YACzC,CAAS;AAAA,UACH;AAEA;AAAA,QAEF,KAAK;AACH,mBAAS,IAAI,IAAI,KAAK,KAAK,GAAG,KAAK,KAAK,EAAE,QAAQ,EAAE,QAAO,IAAK,CAAC,GAAG;AAClE,kBAAM,KAAK;AAAA,cACT,MAAM;AAAA,cACN,MAAM,IAAI,KAAK,CAAC;AAAA,cAChB,KAAK,EAAE,QAAO;AAAA,YACxB,CAAS;AAAA,UACH;AACA;AAAA,QAEF,KAAK;AACH,gBAAM,YAAY,IAAI,KAAK,KAAK;AAChC,oBAAU,QAAQ,MAAM,QAAO,IAAK,MAAM,OAAM,CAAE;AAElD,gBAAM,cAAc,IAAI,KAAK,SAAS;AACtC,iBAAO,eAAe,KAAK;AACzB,kBAAM,UAAU,IAAI,KAAK,WAAW;AACpC,oBAAQ,QAAQ,YAAY,QAAO,IAAK,CAAC;AAEzC,kBAAM,KAAK;AAAA,cACT,MAAM;AAAA,cACN,OAAO,IAAI,KAAK,WAAW;AAAA,cAC3B,KAAK,IAAI,KAAK,OAAO;AAAA,cACrB,KAAK,YAAY,QAAO;AAAA,YAClC,CAAS;AAED,wBAAY,QAAQ,YAAY,QAAO,IAAK,CAAC;AAAA,UAC/C;AACA;AAAA,MACN;AAEE,aAAO;AAAA,IACT,CAAC;AAMD,UAAM,iBAAiB,CAAC,KAAK,SAAS;AACpC,aAAO,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,SAAS,QAAQ,UAAU,GAAG,GAAG,GAAG;AAAA,IACrE;AAGA,UAAM,SAAS,SAAS,MAAM;AAC5B,YAAM,MAAM,oBAAI,IAAG;AAEnB,YAAM,MAAM,QAAQ,UAAQ;AAC1B,cAAM,MAAM,eAAe,MAAM,MAAM,OAAO,KAAK;AAEnD,YAAI,CAAC,IAAI,IAAI,GAAG,GAAG;AACjB,cAAI,IAAI,KAAK;AAAA,YACX;AAAA,YACA,OAAO;AAAA,YACP,OAAO,CAAA;AAAA,YACP,QAAQ,eAAe,MAAM,MAAM,SAAS;AAAA,UACpD,CAAO;AAAA,QACH;AAEA,YAAI,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI;AAAA,MAC9B,CAAC;AAED,aAAO,MAAM,KAAK,IAAI,OAAM,CAAE;AAAA,IAChC,CAAC;AAGD,UAAM,eAAe,CAAC,SAAS;AAC7B,YAAM,UAAU,CAAA;AAChB,YAAM,MAAM,MAAK;AAEjB,cAAQ,KAAK,MAAI;AAAA,QACf,KAAK;AACH,cAAI,MAAM,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,SAAS,IAAI,KAAI,GAAI;AACnE,oBAAQ,KAAK,gBAAgB;AAAA,UAC/B,WAAW,MAAM,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,GAAG;AAC9C,oBAAQ,KAAK,UAAU;AAAA,UACzB;AACA;AAAA,QAEF,KAAK;AACH,gBAAM,MAAM,MAAM,KAAK,IAAI,EAAE,IAAG;AAChC,cAAI,QAAQ,KAAK,QAAQ,EAAG,SAAQ,KAAK,UAAU;AACnD,cAAI,MAAM,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAG,SAAQ,KAAK,gBAAgB;AACtE;AAAA,QAEF,KAAK;AACH,cAAI,IAAI,QAAQ,KAAK,KAAK,KAAK,IAAI,SAAS,KAAK,GAAG,GAAG;AACrD,oBAAQ,KAAK,gBAAgB;AAAA,UAC/B;AACA;AAAA,MACN;AAEE,aAAO,QAAQ,KAAK,GAAG;AAAA,IACzB;AAGA,UAAM,cAAc,CAAC,UAAU;AAC7B,YAAM,IAAI,MAAM,UAAU;AAC1B,YAAM,MAAM;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,QACV,SAAS;AAAA,MACb;AACE,aAAO,IAAI,CAAC,KAAK,IAAI;AAAA,IACvB;AAGA,UAAM,UAAU,CAAC,UAAU;AACzB,YAAM,SAAS,CAAA;AACf,YAAM,OAAO,CAAA;AAEb,YAAM,MAAM,QAAQ,UAAQ;AAC1B,YAAI;AACF,gBAAM,QAAQ,eAAe,MAAM,MAAM,QAAQ;AACjD,gBAAM,MAAM,eAAe,MAAM,MAAM,MAAM;AAE7C,cAAI,CAAC,SAAS,CAAC,IAAK;AAEpB,gBAAM,IAAI,iBAAiB,OAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAK,EAAE,OAAM;AACvE,gBAAM,IAAI,eAAe,OAAO,IAAI,KAAK,GAAG,IAAI,MAAM,GAAG,EAAE,OAAM;AAEjE,cAAI,MAAM,EAAE,QAAO,CAAE,KAAK,MAAM,EAAE,QAAO,CAAE,GAAG;AAC5C,oBAAQ,KAAK,0BAA0B,eAAe,MAAM,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,IAAG,CAAE;AAC3F;AAAA,UACF;AAEF,kBAAQ,IAAI,oBAAoB;AAAA,YAC9B,IAAI,eAAe,MAAM,MAAM,KAAK;AAAA,YACpC,OAAO;AAAA,YACP,KAAK;AAAA,YACL,WAAW,MAAM;AAAA,UACvB,CAAK;AAGD,cAAI,IAAI,MAAM,UAAU,SAAS,IAAI,MAAM,UAAU,KAAK;AACxD,oBAAQ,IAAI,sCAAsC;AAClD;AAAA,UACF;AAGA,cAAI,OAAO;AACX,cAAI,QAAQ;AAGZ,gBAAM,WAAW,UAAU,QAAQ;AAEnC,kBAAQ,MAAM,MAAI;AAAA,YAChB,KAAK;AACH,kBAAI,CAAC,aAAa,MAAM,OAAQ;AAGhC,oBAAM,YAAY,aAAa,MAAM,CAAC;AACtC,oBAAM,WAAW,IAAI,KAAK,UAAU,IAAI;AACxC,uBAAS,SAAS,GAAG,GAAG,GAAG,CAAC;AAG5B,oBAAM,WAAW,KAAK;AACtB,oBAAM,SAAS,KAAK,KAAK;AAGzB,oBAAM,WAAW,IAAI,KAAK,QAAQ;AAClC,uBAAS,SAAS,GAAG,GAAG,GAAG,CAAC;AAC5B,oBAAM,SAAS,IAAI,KAAK,QAAQ;AAChC,qBAAO,SAAS,IAAI,IAAI,IAAI,GAAG;AAE/B,oBAAM,eAAe,IAAI,WAAW,WAAW;AAC/C,oBAAM,aAAa,IAAI,SAAS,SAAS;AAGzC,oBAAM,cAAc,eAAe,YAAY;AAC/C,oBAAM,YAAY,aAAa,YAAY;AAG3C,oBAAM,eAAe,KAAK,IAAI,GAAG,UAAU;AAC3C,oBAAM,aAAa,KAAK,IAAI,IAAI,QAAQ;AAGxC,kBAAI,cAAc,cAAc;AAC9B;AAAA,cACF;AAGA,qBAAO,eAAe,UAAU;AAChC,uBAAS,aAAa,gBAAgB,UAAU;AAGhD,sBAAQ,KAAK,IAAI,OAAO,QAAQ;AAEhC;AAAA,YAEF,KAAK;AACH,oBAAM,WAAW,aAAa,MAAM,CAAC,GAAG;AACxC,kBAAI,CAAC,SAAU;AAEf,oBAAM,gBAAgB,IAAI,KAAK,QAAQ;AACvC,4BAAc,SAAS,GAAG,GAAG,GAAG,CAAC;AAGjC,oBAAM,QAAQ,KAAK,KAAK,KAAK;AAC7B,oBAAM,iBAAiB,IAAI,iBAAiB;AAC5C,oBAAM,eAAe,IAAI,iBAAiB;AAG1C,oBAAM,cAAc,aAAa,MAAM;AACvC,oBAAM,kBAAkB,KAAK,IAAI,GAAG,aAAa;AACjD,oBAAM,gBAAgB,KAAK,IAAI,aAAa,WAAW;AAGvD,kBAAI,iBAAiB,gBAAiB;AAEtC,qBAAO,kBAAkB,UAAU;AACnC,uBAAS,gBAAgB,mBAAmB,UAAU;AAGtD,sBAAQ,KAAK,IAAI,OAAO,QAAQ;AAChC;AAAA,YAEF,KAAK;AACH,oBAAM,YAAY,aAAa,MAAM,CAAC,GAAG;AACzC,kBAAI,CAAC,UAAW;AAGhB,oBAAM,SAAS,IAAI,KAAK,KAAK,KAAK;AAClC,oBAAM,kBAAkB,IAAI,aAAa;AACzC,oBAAM,gBAAgB,IAAI,aAAa;AAGvC,oBAAM,eAAe,aAAa,MAAM;AACxC,oBAAM,mBAAmB,KAAK,IAAI,GAAG,cAAc;AACnD,oBAAM,iBAAiB,KAAK,IAAI,cAAc,YAAY;AAG1D,kBAAI,kBAAkB,iBAAkB;AAExC,qBAAO,mBAAmB,UAAU;AACpC,uBAAS,iBAAiB,oBAAoB,UAAU;AAGxD,sBAAQ,KAAK,IAAI,OAAO,QAAQ;AAChC;AAAA,UACR;AAGI,cAAI,MAAM;AACV,cAAI,SAAS;AAEb,iBAAO,CAAC,QAAQ;AACd,gBAAI,CAAC,KAAK,GAAG,EAAG,MAAK,GAAG,IAAI,CAAA;AAE5B,kBAAM,UAAU,KAAK,GAAG,EAAE;AAAA,cAAK,OAC5B,KAAK,EAAE,OAAO,KAAK,EAAE;AAAA,YAC9B;AAEM,gBAAI,CAAC,SAAS;AACZ,mBAAK,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAC,CAAE;AACnC,uBAAS;AAAA,YACX,OAAO;AACL;AAAA,YACF;AAAA,UACF;AAEE,iBAAO,KAAK;AAAA,YACV,KAAK,GAAG,eAAe,MAAM,MAAM,KAAK,CAAC,IAAI,EAAE,QAAO,CAAE;AAAA,YACxD;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,QAAQ,eAAe,MAAM,MAAM,SAAS,KAAK;AAAA,UACzD,CAAO;AAAA,QACH,SAAS,OAAO;AACd,kBAAQ,MAAM,yBAAyB,eAAe,MAAM,MAAM,KAAK,CAAC,KAAK,KAAK;AAAA,QACpF;AAAA,MACF,CAAC;AAED,cAAQ,IAAI,sBAAsB,MAAM;AACxC,aAAO;AAAA,IACT;AAwCA,UAAM,eAAe,CAAC,UAAU;AAC9B,UAAI,CAAC,UAAU,MAAO;AAEtB,YAAM,KAAK,MAAM;AACjB,iBAAW,QAAQ,GAAG;AAAA,IACxB;AAGA,gBAAY,MAAM;AAAA,IAElB,CAAC;AAGD,UAAM,eAAe,CAAC,eAAe;AACnC,UAAI,CAAC,UAAU,MAAO;AAEtB,eAAS,MAAM;AACb,cAAM,QAAQ,aAAa;AAC3B,YAAI,CAAC,MAAM,OAAQ;AAEnB,YAAI,YAAY;AAEhB,gBAAQ,MAAM,MAAI;AAAA,UAChB,KAAK;AACH,wBAAY,MAAM;AAAA,cAAU,OAC1B,EAAE,SAAS,UACX,MAAM,EAAE,IAAI,EAAE,OAAO,YAAY,KAAK,KACtC,EAAE,SAAS,WAAW,SAAQ;AAAA,YACxC;AACQ;AAAA,UAEF,KAAK;AACH,wBAAY,MAAM;AAAA,cAAU,OAC1B,EAAE,SAAS,SACX,MAAM,EAAE,IAAI,EAAE,OAAO,YAAY,KAAK;AAAA,YAChD;AACQ;AAAA,UAEF,KAAK;AACH,wBAAY,MAAM;AAAA,cAAU,OAC1B,EAAE,SAAS,UACX,cAAc,EAAE,SAChB,cAAc,EAAE;AAAA,YAC1B;AACQ;AAAA,QACR;AAEI,YAAI,aAAa,GAAG;AAClB,gBAAM,YAAY,YAAY,UAAU,QAAQ,UAAU,MAAM,cAAc;AAC9E,oBAAU,MAAM,aAAa,KAAK,IAAI,GAAG,SAAS;AAAA,QACpD;AAAA,MACF,CAAC;AAAA,IACH;AAGA,UAAM,MAAM,MAAM,MAAM,MAAM;AAE5B,mBAAa,MAAM,IAAI;AAAA,IACzB,CAAC;AAGD,UAAM,MAAM,MAAM,MAAM,CAAC,YAAY;AAEnC,mBAAa,OAAO;AAAA,IACtB,CAAC;AAED,UAAM,MAAM,MAAM,WAAW,MAAM;AAEjC,UAAI,UAAU,OAAO;AACnB,kBAAU,MAAM,aAAa;AAAA,MAC/B;AAAA,IACF,GAAG,EAAE,MAAM,KAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"GanttChart.vue.js","sources":["../../../../../../../../../src/modules/rents/views/components/pages/Gant/GanttChart.vue"],"sourcesContent":["<template>\n <div class=\"w-100\" :style=\"{ '--cell-width': cellWidth + 'px' }\">\n <GanttToolbar\n :view=\"view\"\n :views=\"views\"\n :date=\"date\"\n @update:view=\"$emit('update:view', $event)\"\n @update:date=\"$emit('update:date', $event)\"\n @today=\"$emit('today')\"\n @load-more=\"$emit('load-more', $event)\"\n />\n \n <div \n class=\"gantt-container scroller o-scroll bg-white radius-small br-1px br-black-transp-10\"\n ref=\"container\"\n @scroll=\"handleScroll\"\n >\n <div class=\"gantt-content\">\n <!-- Header -->\n <div class=\"gantt-header pos-sticky top-0 z-index-2 bg-white br-b-1px br-black-transp-10\">\n <div class=\"flex\">\n <div class=\"gantt-product-col pos-sticky left-0 z-index-3 bg-light pd-small br-r-1px br-black-transp-10\">\n Product\n </div>\n \n <div class=\"gantt-timeline flex\">\n <div\n v-for=\"(cell, i) in visibleCells\"\n :key=\"cell.key\"\n class=\"gantt-cell br-r-1px br-black-transp-10 t-center pd-small\"\n :class=\"getCellClass(cell)\"\n :style=\"{ width: cellWidth + 'px' }\"\n >\n <GanttHeaderCell :cell=\"cell\" :view=\"view\" :index=\"i\" />\n </div>\n </div>\n </div>\n </div>\n\n <!-- Body -->\n <div class=\"gantt-body\">\n <div \n v-for=\"(group, i) in groups\" \n :key=\"group.key\" \n class=\"gantt-row flex br-b-1px br-black-transp-10\"\n :class=\"i % 2 === 0 ? 'bg-light-transp' : ''\"\n :style=\"{ height: rowHeight + 'px' }\"\n >\n <div class=\"gantt-product-col pos-sticky left-0 z-index-1 bg-white pd-small br-r-1px br-black-transp-10\">\n <div class=\"fw-medium mn-b-micro\">{{ group.title }}</div>\n <div class=\"t-micro\" :class=\"statusClass(group)\">{{ group.status }}</div>\n </div>\n \n <div class=\"gantt-timeline pos-relative\">\n <!-- Background cells -->\n <div class=\"gantt-cells flex pos-absolute h-100\">\n <div\n v-for=\"cell in visibleCells\"\n :key=\"cell.key + '-bg'\"\n class=\"gantt-cell h-100 br-r-1px br-black-transp-10\"\n :class=\"getCellClass(cell)\"\n :style=\"{ width: cellWidth + 'px' }\"\n />\n </div>\n \n <!-- Bars -->\n <div class=\"gantt-bars pos-absolute h-100\">\n <GanttBar\n v-for=\"bar in getBars(group)\"\n :key=\"bar.key\"\n :bar=\"bar\"\n :view=\"view\"\n @click=\"$emit('item-click', bar.item)\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onUnmounted, watch, nextTick, shallowRef, onMounted } from 'vue'\nimport dayjs from 'dayjs'\n// import utc from 'dayjs/plugin/utc'\n// import timezone from 'dayjs/plugin/timezone'\n\n// dayjs.extend(utc)\n// dayjs.extend(timezone)\n\nimport GanttToolbar from './GanttToolbar.vue'\nimport GanttHeaderCell from './GanttHeaderCell.vue'\nimport GanttBar from './GanttBar.vue'\n\nconst props = defineProps({\n items: { type: Array, required: true },\n view: { type: String, default: 'days' },\n date: { type: Date, required: true },\n dateRange: { type: Object, required: true },\n views: {\n type: Array,\n default: () => [\n { name: 'Hours', value: 'hours', width: 60 },\n { name: 'Days', value: 'days', width: 60 },\n { name: 'Weeks', value: 'weeks', width: 120 }\n ]\n },\n titleKey: { type: String, default: 'title' },\n startKey: { type: String, default: 'startDate' },\n endKey: { type: String, default: 'endDate' },\n statusKey: { type: String, default: 'status' },\n idKey: { type: String, default: 'id' },\n groupBy: { type: String, default: 'title' },\n loading: { type: Boolean, default: false },\n rowHeight: { type: Number, default: 60 }\n})\n\nconst emit = defineEmits([\n 'update:view',\n 'update:date', \n 'update:dateRange',\n 'load-more',\n 'item-click',\n 'today'\n])\n\n// State\nconst container = ref(null)\nconst scrollLeft = ref(0)\n\n// Cell width\nconst cellWidth = computed(() => {\n const view = props.views.find(v => v.value === props.view)\n return view?.width || 60\n})\n\n// Visible cells\nconst visibleCells = computed(() => {\n if (!props.dateRange) return []\n \n const { start, end } = props.dateRange\n const cells = []\n \n switch (props.view) {\n case 'hours':\n // Start from beginning of the day (use only first day)\n const startDay = new Date(start)\n startDay.setHours(0, 0, 0, 0)\n \n // Generate hour cells for 24 hours (one day)\n for (let h = 0; h < 24; h++) {\n const cellDate = new Date(startDay)\n cellDate.setHours(h, 0, 0, 0)\n cells.push({\n type: 'hour',\n date: cellDate,\n hour: h,\n key: `${startDay.getTime()}-${h}`\n })\n }\n \n break\n \n case 'days':\n for (let d = new Date(start); d <= end; d.setDate(d.getDate() + 1)) {\n cells.push({\n type: 'day',\n date: new Date(d),\n key: d.getTime()\n })\n }\n break\n \n case 'weeks':\n const weekStart = new Date(start)\n weekStart.setDate(start.getDate() - start.getDay())\n \n const currentWeek = new Date(weekStart)\n while (currentWeek <= end) {\n const weekEnd = new Date(currentWeek)\n weekEnd.setDate(currentWeek.getDate() + 6)\n \n cells.push({\n type: 'week',\n start: new Date(currentWeek),\n end: new Date(weekEnd),\n key: currentWeek.getTime()\n })\n \n currentWeek.setDate(currentWeek.getDate() + 7)\n }\n break\n }\n \n return cells\n})\n\n// Cache for bars calculation\nconst barsCache = new WeakMap()\n\n// Helper function to get nested property value\nconst getNestedValue = (obj, path) => {\n return path.split('.').reduce((current, key) => current?.[key], obj)\n}\n\n// Groups\nconst groups = computed(() => {\n const map = new Map()\n \n props.items.forEach(item => {\n const key = getNestedValue(item, props.groupBy) || 'Ungrouped'\n \n if (!map.has(key)) {\n map.set(key, {\n key,\n title: key,\n items: [],\n status: getNestedValue(item, props.statusKey)\n })\n }\n \n map.get(key).items.push(item)\n })\n \n return Array.from(map.values())\n})\n\n// Cell class\nconst getCellClass = (cell) => {\n const classes = []\n const now = dayjs()\n \n switch (cell.type) {\n case 'hour':\n if (dayjs(cell.date).isSame(now, 'day') && cell.hour === now.hour()) {\n classes.push('bg-blue-transp')\n } else if (dayjs(cell.date).isSame(now, 'day')) {\n classes.push('bg-light')\n }\n break\n \n case 'day':\n const day = dayjs(cell.date).day()\n if (day === 0 || day === 6) classes.push('bg-light')\n if (dayjs(cell.date).isSame(now, 'day')) classes.push('bg-blue-transp')\n break\n \n case 'week':\n if (now.isAfter(cell.start) && now.isBefore(cell.end)) {\n classes.push('bg-blue-transp')\n }\n break\n }\n \n return classes.join(' ')\n}\n\n// Status class\nconst statusClass = (group) => {\n const s = group.status || 'default'\n const map = {\n active: 't-green',\n completed: 't-blue',\n canceled: 't-red',\n default: 't-transp'\n }\n return map[s] || map.default\n}\n\n// Get bars\nconst getBars = (group) => {\n const result = []\n const rows = []\n \n group.items.forEach(item => {\n try {\n const start = getNestedValue(item, props.startKey)\n const end = getNestedValue(item, props.endKey)\n \n if (!start || !end) return\n \n const s = start instanceof Date ? new Date(start) : dayjs(start).toDate()\n const e = end instanceof Date ? new Date(end) : dayjs(end).toDate()\n \n if (isNaN(s.getTime()) || isNaN(e.getTime())) {\n console.warn(`Invalid dates for item ${getNestedValue(item, props.idKey)}:`, { start, end })\n return\n }\n \n console.log('Processing item:', {\n id: getNestedValue(item, props.idKey),\n start: s,\n end: e,\n dateRange: props.dateRange\n })\n \n // Skip if completely outside visible range\n if (e < props.dateRange.start || s > props.dateRange.end) {\n console.log('Item skipped - outside visible range')\n return\n }\n \n // Calculate position\n let left = 0\n let width = 0\n \n // Minimum width for very short intervals\n const minWidth = cellWidth.value * 0.1\n \n switch (props.view) {\n case 'hours':\n if (!visibleCells.value.length) return\n \n // Get the first cell's time as base reference\n const firstCell = visibleCells.value[0]\n const baseTime = new Date(firstCell.date)\n baseTime.setHours(0, 0, 0, 0)\n \n // Calculate exact minute positions from base time\n const minuteMs = 60 * 1000\n const hourMs = 60 * 60 * 1000\n \n // For long bars (>1 day), limit to visible day range\n const dayStart = new Date(baseTime)\n dayStart.setHours(0, 0, 0, 0)\n const dayEnd = new Date(baseTime)\n dayEnd.setHours(23, 59, 59, 999)\n \n const visibleStart = s < dayStart ? dayStart : s\n const visibleEnd = e > dayEnd ? dayEnd : e\n \n // Calculate hour positions with minute precision\n const startHours = (visibleStart - baseTime) / hourMs\n const endHours = (visibleEnd - baseTime) / hourMs\n \n // Clip to visible range (0-24 hours)\n const clippedStart = Math.max(0, startHours)\n const clippedEnd = Math.min(24, endHours)\n \n // Skip if completely outside visible range\n if (clippedEnd <= clippedStart) {\n return\n }\n \n // Calculate pixel position\n left = clippedStart * cellWidth.value\n width = (clippedEnd - clippedStart) * cellWidth.value\n \n // Apply minimum width for very short intervals (3-7 minutes should be visible)\n width = Math.max(width, minWidth)\n \n break\n \n case 'days':\n const firstDay = visibleCells.value[0]?.date\n if (!firstDay) return\n \n const firstDayStart = new Date(firstDay)\n firstDayStart.setHours(0, 0, 0, 0)\n \n // Calculate exact positions with minute precision\n const dayMs = 24 * 60 * 60 * 1000\n const startDayFloat = (s - firstDayStart) / dayMs\n const endDayFloat = (e - firstDayStart) / dayMs\n \n // Clip to visible range\n const visibleDays = visibleCells.value.length\n const clippedStartDay = Math.max(0, startDayFloat)\n const clippedEndDay = Math.min(visibleDays, endDayFloat)\n \n // Skip if completely outside visible range\n if (clippedEndDay <= clippedStartDay) return\n \n left = clippedStartDay * cellWidth.value\n width = (clippedEndDay - clippedStartDay) * cellWidth.value\n \n // Apply minimum width for very short intervals\n width = Math.max(width, minWidth)\n break\n \n case 'weeks':\n const firstWeek = visibleCells.value[0]?.start\n if (!firstWeek) return\n \n // Calculate exact positions with minute precision\n const weekMs = 7 * 24 * 60 * 60 * 1000\n const startWeekFloat = (s - firstWeek) / weekMs\n const endWeekFloat = (e - firstWeek) / weekMs\n \n // Clip to visible range\n const visibleWeeks = visibleCells.value.length\n const clippedStartWeek = Math.max(0, startWeekFloat)\n const clippedEndWeek = Math.min(visibleWeeks, endWeekFloat)\n \n // Skip if completely outside visible range\n if (clippedEndWeek <= clippedStartWeek) return\n \n left = clippedStartWeek * cellWidth.value\n width = (clippedEndWeek - clippedStartWeek) * cellWidth.value\n \n // Apply minimum width for very short intervals\n width = Math.max(width, minWidth)\n break\n }\n \n // Find row\n let row = 0\n let placed = false\n \n while (!placed) {\n if (!rows[row]) rows[row] = []\n \n const overlap = rows[row].some(b => \n (s <= b.end && e >= b.start)\n )\n \n if (!overlap) {\n rows[row].push({ start: s, end: e })\n placed = true\n } else {\n row++\n }\n }\n \n result.push({\n key: `${getNestedValue(item, props.idKey)}-${s.getTime()}`,\n item,\n left,\n width,\n row,\n status: getNestedValue(item, props.statusKey) || 'default'\n })\n } catch (error) {\n console.error(`Error processing item ${getNestedValue(item, props.idKey)}:`, error)\n }\n })\n \n console.log('Final bars result:', result)\n return result\n}\n\n// Throttle\nconst throttle = (fn, delay) => {\n let lastCall = 0\n let timeout = null\n \n const throttled = (...args) => {\n const now = Date.now()\n const remaining = delay - (now - lastCall)\n \n if (remaining <= 0) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n lastCall = now\n return fn(...args)\n }\n \n if (!timeout) {\n timeout = setTimeout(() => {\n lastCall = Date.now()\n timeout = null\n fn(...args)\n }, remaining)\n }\n }\n \n throttled.cancel = () => {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n }\n \n return throttled\n}\n\n// Scroll handling\nconst handleScroll = (event) => {\n if (!container.value) return\n \n const el = event.target\n scrollLeft.value = el.scrollLeft\n}\n\n// Cleanup\nonUnmounted(() => {\n // No cleanup needed\n})\n\n// Center view on specific date\nconst centerOnDate = (targetDate) => {\n if (!container.value) return\n \n nextTick(() => {\n const cells = visibleCells.value\n if (!cells.length) return\n \n let cellIndex = -1\n \n switch (props.view) {\n case 'hours':\n cellIndex = cells.findIndex(c => \n c.type === 'hour' &&\n dayjs(c.date).isSame(targetDate, 'day') &&\n c.hour === targetDate.getHours()\n )\n break\n \n case 'days':\n cellIndex = cells.findIndex(c =>\n c.type === 'day' &&\n dayjs(c.date).isSame(targetDate, 'day')\n )\n break\n \n case 'weeks':\n cellIndex = cells.findIndex(c =>\n c.type === 'week' &&\n targetDate >= c.start &&\n targetDate <= c.end\n )\n break\n }\n \n if (cellIndex >= 0) {\n const scrollPos = cellIndex * cellWidth.value - container.value.clientWidth / 2\n container.value.scrollLeft = Math.max(0, scrollPos)\n }\n })\n}\n\n// Watch for view or date range changes\nwatch(() => props.view, () => {\n // Center on current date when view changes\n centerOnDate(props.date)\n})\n\n// Watch for date changes (e.g., when Today button is clicked)\nwatch(() => props.date, (newDate) => {\n // Center on the new date, especially important for hours view\n centerOnDate(newDate)\n})\n\nwatch(() => props.dateRange, () => {\n // Reset scroll position when date range changes significantly\n if (container.value) {\n container.value.scrollLeft = 0\n }\n}, { deep: true })\n</script>\n\n<style>\n.gantt-container {\n --cell-width: 60px;\n height: 500px;\n position: relative;\n}\n\n.gantt-content {\n width: fit-content;\n min-width: 100%;\n}\n\n.gantt-header {\n height: 60px;\n}\n\n.gantt-product-col {\n width: 200px;\n min-width: 200px;\n flex-shrink: 0;\n}\n\n.gantt-timeline {\n position: relative;\n min-width: fit-content;\n}\n\n.gantt-cell {\n min-width: var(--cell-width);\n flex-shrink: 0;\n}\n\n.gantt-row {\n position: relative;\n}\n\n.gantt-cells,\n.gantt-bars {\n width: fit-content;\n left: 0;\n}\n</style>"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const _hoisted_2 = {
|
|
|
7
7
|
class: "t-micro"
|
|
8
8
|
};
|
|
9
9
|
const _hoisted_3 = { class: "t-small" };
|
|
10
|
-
const _hoisted_4 = { class: "
|
|
10
|
+
const _hoisted_4 = { class: "fw-medium" };
|
|
11
11
|
const _hoisted_5 = { class: "t-micro t-transp" };
|
|
12
12
|
const _hoisted_6 = { class: "t-small" };
|
|
13
13
|
const _hoisted_7 = { class: "t-micro t-transp" };
|
package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GanttHeaderCell.vue.js","sources":["../../../../../../../../../src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue"],"sourcesContent":["<template>\n <div class=\"gantt-header-content\">\n <!-- Hour view -->\n <template v-if=\"cell.type === 'hour'\">\n <div v-if=\"isFirst || cell.hour === 0\" class=\"t-micro\">\n {{ dayjs(cell.date).format('DD/MM') }}\n </div>\n <div class=\"t-small\">{{ cell.hour }}:00</div>\n </template>\n \n <!-- Day view -->\n <template v-else-if=\"cell.type === 'day'\">\n <!-- <div v-if=\"isFirst || cell.date.getDate() === 1\" class=\"t-micro\">\n {{ dayjs(cell.date).format('MMM YYYY') }}\n </div> -->\n <div class=\"
|
|
1
|
+
{"version":3,"file":"GanttHeaderCell.vue.js","sources":["../../../../../../../../../src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue"],"sourcesContent":["<template>\n <div class=\"gantt-header-content\">\n <!-- Hour view -->\n <template v-if=\"cell.type === 'hour'\">\n <div v-if=\"isFirst || cell.hour === 0\" class=\"t-micro\">\n {{ dayjs(cell.date).format('DD/MM') }}\n </div>\n <div class=\"t-small\">{{ cell.hour }}:00</div>\n </template>\n \n <!-- Day view -->\n <template v-else-if=\"cell.type === 'day'\">\n <!-- <div v-if=\"isFirst || cell.date.getDate() === 1\" class=\"t-micro\">\n {{ dayjs(cell.date).format('MMM YYYY') }}\n </div> -->\n <div class=\"fw-medium\">{{ cell.date.getDate() }}</div>\n <div class=\"t-micro t-transp\">{{ dayjs(cell.date).format('ddd') }}</div>\n </template>\n \n <!-- Week view -->\n <template v-else-if=\"cell.type === 'week'\">\n <!-- <div v-if=\"isFirst || isMonthStart\" class=\"t-micro\">\n {{ dayjs(cell.start).format('MMM YYYY') }}\n </div> -->\n <div class=\"t-small\">{{ dayjs(cell.start).format('D') }}-{{ dayjs(cell.end).format('D') }}</div>\n <div class=\"t-micro t-transp\">W{{ weekNumber }}</div>\n </template>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue'\nimport dayjs from 'dayjs'\nimport weekOfYear from 'dayjs/plugin/weekOfYear.js'\n\ndayjs.extend(weekOfYear)\n\nconst props = defineProps({\n cell: { type: Object, required: true },\n view: { type: String, required: true },\n index: { type: Number, default: 0 }\n})\n\nconst isFirst = computed(() => props.index === 0)\n\nconst isMonthStart = computed(() => {\n if (props.cell.type !== 'week') return false\n return props.cell.start.getDate() <= 7 && props.cell.start.getDay() === 0\n})\n\nconst weekNumber = computed(() => {\n if (props.cell.type !== 'week') return null\n return dayjs(props.cell.start).week()\n})\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,OAAO,UAAU;AAEvB,UAAM,QAAQ;AAMd,UAAM,UAAU,SAAS,MAAM,MAAM,UAAU,CAAC;AAE3B,aAAS,MAAM;AAClC,UAAI,MAAM,KAAK,SAAS,OAAQ,QAAO;AACvC,aAAO,MAAM,KAAK,MAAM,QAAO,KAAM,KAAK,MAAM,KAAK,MAAM,aAAa;AAAA,IAC1E,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,KAAK,SAAS,OAAQ,QAAO;AACvC,aAAO,MAAM,MAAM,KAAK,KAAK,EAAE,KAAI;AAAA,IACrC,CAAC;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { computed, ref, watch, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import dayjs from "../../../../../../../../_virtual/dayjs.min.js";
|
|
3
3
|
import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue2.js";
|
|
4
|
-
import _sfc_main$3 from "../../../../../../components/Button/Button.
|
|
5
|
-
import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.
|
|
4
|
+
import _sfc_main$3 from "../../../../../../components/Button/Button.vue2.js";
|
|
5
|
+
import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.vue2.js";
|
|
6
6
|
import Calendar from "../../../../../../components/Calendar/Calendar.vue2.js";
|
|
7
7
|
import _sfc_main$1 from "./DateLabel.vue.js";
|
|
8
8
|
import IconNext from "../../../../../icons/navigation/IconChevronRight.vue.js";
|
|
@@ -98,7 +98,7 @@ const _sfc_main = {
|
|
|
98
98
|
_cache[4] || (_cache[4] = createElementVNode("h2", { class: "mn-r-medium" }, "Rents", -1)),
|
|
99
99
|
createElementVNode("button", {
|
|
100
100
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({ name: "Organization_Create Rent", params: { _id: unref(route).params._id } })),
|
|
101
|
-
class: "radius-
|
|
101
|
+
class: "radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second"
|
|
102
102
|
}, " + "),
|
|
103
103
|
createElementVNode("div", _hoisted_3, [
|
|
104
104
|
createElementVNode("button", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rents.vue.js","sources":["../../../../../../../../src/modules/rents/views/components/pages/Rents.vue"],"sourcesContent":["<template>\n <div class=\"pd-medium mobile:pd-thin bg-white\">\n <header class=\"mn-b-medium flex-v-center flex-nowrap flex\">\n <h2 class=\"mn-r-medium\">Rents</h2>\n <button \n @click=\"$router.push({ name: 'Organization_Create Rent', params: {_id: route.params._id}})\" \n class=\"radius-
|
|
1
|
+
{"version":3,"file":"Rents.vue.js","sources":["../../../../../../../../src/modules/rents/views/components/pages/Rents.vue"],"sourcesContent":["<template>\n <div class=\"pd-medium mobile:pd-thin bg-white\">\n <header class=\"mn-b-medium flex-v-center flex-nowrap flex\">\n <h2 class=\"mn-r-medium\">Rents</h2>\n <button \n @click=\"$router.push({ name: 'Organization_Create Rent', params: {_id: route.params._id}})\" \n class=\"radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second\"\n >\n +\n </button>\n <div class=\"mn-l-auto flex-v-center\">\n <button \n @click=\"toggleView\" \n class=\"pd-small radius-small bg-light mn-r-small\"\n >\n {{ isCalendarView ? 'List View' : 'Calendar View' }}\n </button>\n </div>\n </header>\n\n <Feed\n :search=\"true\"\n :keepSlotVisible=\"true\"\n :states=\"{\n empty: {\n title: 'No Rents Found',\n description: 'Currently, there are no rents available.'\n }\n }\"\n :store=\"{ read: (options) => rents.actions.read(options) }\"\n :options=\"{\n owner: route.params._id,\n startDate: dateRange.start.toISOString(),\n endDate: dateRange.end.toISOString()\n }\"\n v-slot=\"{ items }\"\n > \n <GanttChart\n v-model:view=\"view\"\n v-model:date=\"date\"\n v-model:dateRange=\"dateRange\"\n :items=\"items\"\n :loading=\"loading\"\n :title-key=\"'productDetails.name'\"\n :start-key=\"'startDate'\"\n :end-key=\"'endDate'\"\n :status-key=\"'status'\"\n :id-key=\"'_id'\"\n :group-by=\"'productDetails.name'\"\n @load-more=\"handleLoadMore\"\n @item-click=\"handleItemClick\"\n @today=\"handleToday\"\n />\n\n <!-- <CardRent\n v-else\n v-for=\"rent in items\"\n :key=\"rent._id\"\n :rent=\"rent\"\n class=\"bg-light pd-small mn-b-thin radius-small\"\n /> -->\n </Feed>\n </div>\n</template>\n\n<script setup>\nimport dayjs from 'dayjs'\n\nimport Tab from '@martyrs/src/components/Tab/Tab.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\nimport CardRent from '@martyrs/src/modules/rents/views/components/blocks/CardRent.vue';\n\nimport GanttChart from '@martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue';\n\nimport { computed, onMounted, ref, watch } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport * as rents from '@martyrs/src/modules/rents/views/store/rents.store';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst isCalendarView = ref(true);\n\n\n// Set initial date range - current month plus 15 days before and 45 days after\nconst view = ref('days')\nconst date = ref(new Date())\nconst loading = ref(false)\n\nconst dateRange = computed(() => {\n const d = dayjs(date.value)\n \n switch (view.value) {\n case 'hours':\n // Show only the current day in hours view\n return {\n start: d.startOf('day').toDate(),\n end: d.endOf('day').toDate()\n }\n \n case 'days':\n return {\n start: d.startOf('month').toDate(),\n end: d.endOf('month').toDate()\n }\n \n case 'weeks':\n return {\n start: d.subtract(1, 'month').startOf('week').toDate(),\n end: d.add(2, 'months').endOf('week').toDate()\n }\n \n default:\n return {\n start: d.startOf('month').toDate(),\n end: d.endOf('month').toDate()\n }\n }\n})\n\n// Handle load more\nconst handleLoadMore = async (direction) => {\n console.log('Loading more:', direction)\n \n loading.value = true\n \n try {\n // Only update date if it's navigation (not refresh)\n if (direction !== 'refresh') {\n const d = dayjs(date.value)\n let newDate\n \n switch (view.value) {\n case 'hours':\n newDate = direction === 'forward' \n ? d.add(1, 'day').toDate()\n : d.subtract(1, 'day').toDate()\n break\n case 'days':\n newDate = direction === 'forward'\n ? d.add(1, 'month').toDate()\n : d.subtract(1, 'month').toDate()\n break\n case 'weeks':\n newDate = direction === 'forward'\n ? d.add(1, 'month').toDate()\n : d.subtract(1, 'month').toDate()\n break\n }\n \n date.value = newDate\n }\n \n // Load data for the current date range\n await rents.actions.read({\n owner: route.params._id,\n startDate: dateRange.value.start.toISOString(),\n endDate: dateRange.value.end.toISOString()\n })\n } catch (error) {\n console.error('Error loading more data:', error)\n } finally {\n loading.value = false\n }\n}\n\n// Handle item click\nconst handleItemClick = (item) => {\n console.log('Item clicked:', item)\n}\n\n// Handle today\nconst handleToday = () => {\n const now = new Date()\n date.value = now\n \n // For hours view, ensure we're showing the current hour\n if (view.value === 'hours') {\n // Update date to current time to trigger proper centering\n date.value = new Date()\n }\n}\n\nconst today = new Date();\nconst calendarStartDate = ref(new Date(today));\ncalendarStartDate.value.setDate(today.getDate() - 30);\n\nconst calendarEndDate = ref(new Date(today));\ncalendarEndDate.value.setDate(today.getDate() + 30);\n\n// Toggle between calendar and list view\nconst toggleView = () => {\n isCalendarView.value = !isCalendarView.value;\n};\n\n// Navigate to rent details page\nconst viewRentDetails = (rent) => {\n router.push({ name: 'Rent Details', params: { _id: rent._id } });\n};\n\n// Load more data when scrolling the Gantt chart\nconst loadMoreData = async ({ direction, date }) => {\n // alert(direction)\n console.log('scroll direction is', direction)\n console.log('current date is', date)\n // Update the visible range\n if (direction === 'forward') {\n calendarEndDate.value = date;\n } else {\n calendarStartDate.value = date;\n }\n // Here you can add logic to fetch more rents if they fall within the new date range\n try {\n // You might need to adjust this depending on your API and data structure\n const startDateParam = new Date(calendarStartDate.value);\n startDateParam.setDate(startDateParam.getDate() - 30); // Fetch a bit more to cover edge cases\n \n const endDateParam = new Date(calendarEndDate.value);\n endDateParam.setDate(endDateParam.getDate() + 30);\n \n await rents.actions.read({\n owner: route.params._id,\n startDate: startDateParam.toISOString(),\n endDate: endDateParam.toISOString()\n });\n } catch (error) {\n console.error('Error loading additional rent data:', error);\n }\n};\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["rents.actions"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, Fragment, renderList, createBlock, createCommentVNode, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$4 from "../../../../../components/Block/Block.vue.js";
|
|
3
|
-
import _sfc_main$5 from "../../../../../components/Button/Button.
|
|
4
|
-
import Field from "../../../../../components/Field/Field.
|
|
3
|
+
import _sfc_main$5 from "../../../../../components/Button/Button.vue2.js";
|
|
4
|
+
import Field from "../../../../../components/Field/Field.vue.js";
|
|
5
5
|
import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
|
|
6
6
|
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
|
|
7
7
|
import { useGlobalMixins } from "../../../../core/views/mixins/mixins.js";
|
|
@@ -21,14 +21,14 @@ const _hoisted_5 = {
|
|
|
21
21
|
class: "aspect-1x1 h-3r radius-small o-hidden"
|
|
22
22
|
};
|
|
23
23
|
const _hoisted_6 = ["src"];
|
|
24
|
-
const _hoisted_7 = { class: "
|
|
24
|
+
const _hoisted_7 = { class: "fw-medium" };
|
|
25
25
|
const _hoisted_8 = {
|
|
26
26
|
key: 0,
|
|
27
27
|
class: "t-small t-transp"
|
|
28
28
|
};
|
|
29
29
|
const _hoisted_9 = { class: "mn-l-auto" };
|
|
30
30
|
const _hoisted_10 = { class: "flex gap-small" };
|
|
31
|
-
const _hoisted_11 = { class: "gap-thin flex-v-center flex-
|
|
31
|
+
const _hoisted_11 = { class: "gap-thin flex-v-center flex-justify-start flex" };
|
|
32
32
|
const _hoisted_12 = { class: "mn-r-auto" };
|
|
33
33
|
const _sfc_main = {
|
|
34
34
|
__name: "RentsEdit",
|
|
@@ -239,7 +239,7 @@ const _sfc_main = {
|
|
|
239
239
|
return openBlock(), createElementBlock("div", {
|
|
240
240
|
key: index,
|
|
241
241
|
onClick: ($event) => addVariantToRent(variant),
|
|
242
|
-
class: "w-100 cursor-pointer hover
|
|
242
|
+
class: "w-100 cursor-pointer hover:scale-[1.05] bg-light pd-small radius-small flex-v-center flex-nowrap flex gap-thin"
|
|
243
243
|
}, [
|
|
244
244
|
variant.images && variant.images.length ? (openBlock(), createElementBlock("div", _hoisted_5, [
|
|
245
245
|
createElementVNode("img", {
|
|
@@ -334,7 +334,7 @@ const _sfc_main = {
|
|
|
334
334
|
createElementVNode("h3", _hoisted_12, "Total Days: " + toDisplayString(totalDays.value), 1),
|
|
335
335
|
createVNode(_sfc_main$5, {
|
|
336
336
|
submit: onSubmit,
|
|
337
|
-
class: "pd-small radius-medium bg-main t-black uppercase
|
|
337
|
+
class: "pd-small radius-medium bg-main t-black uppercase fw-medium"
|
|
338
338
|
}, {
|
|
339
339
|
default: withCtx(() => _cache[4] || (_cache[4] = [
|
|
340
340
|
createTextVNode(" Save ")
|
|
@@ -343,7 +343,7 @@ const _sfc_main = {
|
|
|
343
343
|
}),
|
|
344
344
|
createVNode(_sfc_main$5, {
|
|
345
345
|
submit: onReset,
|
|
346
|
-
class: "pd-small radius-medium t-white bg-second uppercase
|
|
346
|
+
class: "pd-small radius-medium t-white bg-second uppercase fw-medium"
|
|
347
347
|
}, {
|
|
348
348
|
default: withCtx(() => _cache[5] || (_cache[5] = [
|
|
349
349
|
createTextVNode(" Reset ")
|
|
@@ -353,7 +353,7 @@ const _sfc_main = {
|
|
|
353
353
|
unref(route).params._id ? (openBlock(), createBlock(_sfc_main$5, {
|
|
354
354
|
key: 0,
|
|
355
355
|
submit: onDelete,
|
|
356
|
-
class: "pd-small radius-medium t-white bg-red uppercase
|
|
356
|
+
class: "pd-small radius-medium t-white bg-red uppercase fw-medium"
|
|
357
357
|
}, {
|
|
358
358
|
default: withCtx(() => _cache[6] || (_cache[6] = [
|
|
359
359
|
createTextVNode(" Delete ")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RentsEdit.vue.js","sources":["../../../../../../../../src/modules/rents/views/components/pages/RentsEdit.vue"],"sourcesContent":["<template>\n <div class=\"pd-thin\">\n <header class=\"mn-b-medium gap-small flex-v-center flex-nowrap flex\">\n <h2>{{ route.params._id ? 'Edit' : 'Add' }} Rent</h2>\n </header>\n\n <Popup\n title=\"Add Product to Rent\"\n @close-popup=\"closeProductsPopup\"\n :isPopupOpen=\"isOpenProductsPopup\"\n class=\"bg-white w-100 w-max-30r radius-medium pd-medium\"\n >\n <Feed\n :search=\"{\n class: 'bg-light radius-small'\n }\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'No products available for rent.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: null\n }\"\n :options=\"{\n owner: route.params._id,\n listing: 'rent'\n }\"\n v-slot=\"{ items }\"\n class=\"flex-column flex gap-thin h-max-20r o-scroll\"\n >\n <CardOrderItem\n v-for=\"(product, index) in items\"\n :key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n :editable=\"false\"\n :productId=\"product._id\"\n :variantId=\"product.variant\"\n :images=\"product.images\"\n :name=\"product.name\"\n :quantity=\"product.quantity || 1\"\n :unit=\"product.unit\"\n :dates=\"product.date\"\n :listing=\"product.listing\"\n :price=\"product.price\"\n @click=\"() => selectProduct(product)\"\n class=\"bg-light pd-small radius-small w-100\"\n />\n </Feed>\n </Popup>\n\n <!-- Popup for selecting variant of the product -->\n <Popup\n title=\"Select variant\"\n @close-popup=\"closeVariantsPopup\"\n :isPopupOpen=\"isVariantsPopupOpen\"\n class=\"bg-white w-100 w-max-30r radius-medium pd-medium\"\n >\n <Feed\n :store=\"variants\"\n :options=\"{\n product: selectedProduct._id,\n }\"\n :skeleton=\"{\n structure: [\n { block: 'text', size: 'small' },\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No variants',\n description: 'Create your first variant'\n }\n }\"\n v-slot=\"{ items }\"\n >\n <div class=\"gap-thin flex flex-column\">\n <div\n v-for=\"(variant, index) in items\"\n :key=\"index\"\n @click=\"addVariantToRent(variant)\"\n class=\"w-100 cursor-pointer hover-scale-1 bg-light pd-small radius-small flex-v-center flex-nowrap flex gap-thin\"\n >\n <div v-if=\"variant.images && variant.images.length\" class=\"aspect-1x1 h-3r radius-small o-hidden\">\n <img\n :src=\"(FILE_SERVER_URL || '') + variant.images[0]\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n </div>\n <div>\n <p class=\"t-medium\">{{ variant.name || 'Default variant' }}</p>\n <p v-if=\"variant.attributes && variant.attributes.length\" class=\"t-small t-transp\">\n {{ variant.attributes.map(attr => `${attr.name}: ${attr.value}`).join(', ') }}\n </p>\n </div>\n <p class=\"mn-l-auto\">{{ formatPrice(variant.price || variant.cost) }}</p>\n </div>\n </div>\n </Feed>\n </Popup>\n\n <Block title=\"Rent Period\" class=\"mn-b-semi\">\n <div class=\"flex gap-small\">\n <Field v-model:field=\"rents.state.current.startDate\" label=\"Start Date\" type=\"date\" class=\"w-100 bg-white radius-small pd-medium\" />\n <Field v-model:field=\"rents.state.current.endDate\" label=\"End Date\" type=\"date\" class=\"w-100 bg-white radius-small pd-medium\" />\n </div>\n </Block>\n\n <Block\n title=\"Rented Product\"\n :actions=\"rents.state.current.product ? [] : [{ label: '+', function: openProductsPopup }]\"\n placeholder=\"No products added yet\"\n class=\"mn-b-semi\"\n >\n <CardOrderItem\n v-if=\"rents.state.current.product\"\n :key=\"rents.state.current.product._id\"\n :productId=\"rents.state.current.product._id\"\n :variantId=\"rents.state.current.product.variant\"\n :images=\"rents.state.current.product.images\"\n :name=\"rents.state.current.product.name\"\n :quantity=\"rents.state.current.product.quantity || 1\"\n :unit=\"rents.state.current.product.unit\"\n :dates=\"{\n start: rents.state.current.startDate,\n end: rents.state.current.endDate\n }\"\n :listing=\"rents.state.current.product.listing\"\n :price=\"rents.state.current.product.price\"\n :editable=\"false\"\n @click=\"() => rents.state.current.product = null\"\n class=\"mn-b-small radius-medium bg-white pd-small\"\n />\n </Block>\n\n <Block title=\"Comment\" class=\"mn-b-semi\">\n <Field v-model:field=\"rents.state.current.comment\" label=\"Comment\" type=\"textarea\" class=\"w-100 bg-white radius-small pd-medium\" /> \n </Block>\n\n <Block>\n <section class=\"gap-thin flex-v-center flex-nojustify flex\">\n <h3 class=\"mn-r-auto\">Total Days: {{ totalDays }}</h3>\n\n <Button\n :submit=\"onSubmit\"\n class=\"pd-small radius-medium bg-main t-black uppercase t-medium\"\n >\n Save\n </Button>\n\n <Button\n :submit=\"onReset\"\n class=\"pd-small radius-medium t-white bg-second uppercase t-medium\"\n >\n Reset\n </Button>\n\n <Button\n v-if=\"route.params._id\"\n :submit=\"onDelete\"\n class=\"pd-small radius-medium t-white bg-red uppercase t-medium\"\n >\n Delete\n </Button>\n </section>\n </Block>\n </div>\n</template>\n\n<script setup>\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport CardPosition from '@martyrs/src/modules/products/components/blocks/CardPosition.vue';\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue';\n\nimport { computed, onMounted, ref } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as rents from '@martyrs/src/modules/rents/views/store/rents.store';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\nimport variants from '@martyrs/src/modules/products/store/variants.store.js';\n\nconst route = useRoute();\nconst router = useRouter();\nconst { formatPrice } = useGlobalMixins();\n\nconst Products = ref(products.state.all);\nconst isOpenProductsPopup = ref(false);\nconst isVariantsPopupOpen = ref(false);\nconst selectedProduct = ref({});\n\nconst totalDays = computed(() => {\n const start = new Date(rents.state.current.startDate);\n const end = new Date(rents.state.current.endDate);\n if (!start || !end) return 0;\n const diffTime = Math.abs(end - start);\n return Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n});\n\nfunction openProductsPopup() {\n isOpenProductsPopup.value = true;\n}\n\nfunction closeProductsPopup() {\n isOpenProductsPopup.value = false;\n}\n\nfunction closeVariantsPopup() {\n isVariantsPopupOpen.value = false;\n selectedProduct.value = {};\n}\n\nfunction selectProduct(product) {\n selectedProduct.value = product;\n closeProductsPopup();\n\n // If product has only one variant, add it directly without showing popup\n if (product.variants && product.variants.length === 1) {\n addVariantToRent(product.variants[0]);\n return;\n }\n\n // If product has multiple variants or no variants defined, show popup\n isVariantsPopupOpen.value = true;\n}\n\nfunction formatProductName(product, variant) {\n if (!variant || product.variants?.length === 1 && !(variant.attributes?.length))\n return product.name;\n\n const attrs = variant.attributes?.map(a => a.value).filter(Boolean);\n if (attrs?.length) {\n return `${product.name} / ${attrs.join(' / ')}`;\n }\n\n // Если variant.name уже содержит product.name, не дублируем\n return variant.name || product.name;\n}\n\nfunction addVariantToRent(variant) {\n // Create product object with variant information\n rents.state.current.product = {\n _id: selectedProduct.value._id,\n variant: variant._id,\n name: formatProductName(selectedProduct.value, variant),\n images: variant.images || selectedProduct.value.images || [],\n price: variant.price || variant.cost || 0,\n unit: variant.unit || 'pcs',\n quantity: 1,\n listing: 'rent'\n };\n\n closeVariantsPopup();\n}\n\nfunction updateItem(index, updatedItem) {\n rents.state.current.items[index] = { product: updatedItem.product._id || updatedItem.product, quantity: updatedItem.quantity || 1 };\n}\n\nfunction deleteItem(index) {\n try {\n rents.state.current.items.splice(index, 1);\n } catch (error) {\n console.error('Ошибка при удалении элемента:', error);\n }\n}\n\nonMounted(async () => {\n try {\n if (route.params.rent) {\n await rents.actions.read({ _id: route.params.rent });\n } else {\n rents.mutations.clean();\n }\n\n await products.actions.read({ owner: route.params._id, listing: 'rent', limit: 100 });\n Products.value = products.state.all;\n } catch (error) {\n console.error('Ошибка при загрузке данных:', error);\n }\n});\n\nasync function onSubmit() {\n try {\n if (route.params.rent) {\n // Update existing rent\n const rentData = {\n _id: rents.state.current._id,\n product: rents.state.current.product._id,\n variant: rents.state.current.product.variant,\n startDate: new Date(rents.state.current.startDate),\n endDate: new Date(rents.state.current.endDate),\n comment: rents.state.current.comment,\n status: rents.state.current.status\n };\n await rents.actions.update(rentData);\n } else {\n // Create new rent - БЕЗ _id!\n const rentData = {\n product: rents.state.current.product._id,\n variant: rents.state.current.product.variant,\n startDate: new Date(rents.state.current.startDate),\n endDate: new Date(rents.state.current.endDate),\n comment: rents.state.current.comment || '',\n status: rents.state.current.status || 'active',\n creator: { type: 'user', target: auth.state.user._id },\n owner: { type: 'organization', target: route.params._id }\n };\n await rents.actions.create(rentData);\n }\n router.push({ name: 'Rents', params: { _id: route.params._id } });\n } catch (error) {\n console.error('Ошибка при отправке данных:', error);\n }\n}\n\nasync function onReset() {\n try {\n if (route.params._id) {\n await rents.actions.read({ _id: route.params._id });\n } else {\n rents.mutations.clean();\n }\n } catch (error) {\n console.error('Ошибка при сбросе данных:', error);\n }\n}\n\nasync function onDelete() {\n try {\n await rents.actions.delete(route.params._id);\n router.push({ name: 'Rents', params: { _id: route.params._id } });\n } catch (error) {\n console.error('Ошибка при удалении:', error);\n }\n}\n\n</script>\n\n<style lang=\"scss\">\n.round-stat {\n padding: 1rem;\n border-radius: 5rem;\n width: 3rem;\n height: 3rem;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(0,0,0,0.1);\n}\n</style>"],"names":["products.state","rents.state","rents.actions","rents.mutations","products.actions","auth.state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RentsEdit.vue.js","sources":["../../../../../../../../src/modules/rents/views/components/pages/RentsEdit.vue"],"sourcesContent":["<template>\n <div class=\"pd-thin\">\n <header class=\"mn-b-medium gap-small flex-v-center flex-nowrap flex\">\n <h2>{{ route.params._id ? 'Edit' : 'Add' }} Rent</h2>\n </header>\n\n <Popup\n title=\"Add Product to Rent\"\n @close-popup=\"closeProductsPopup\"\n :isPopupOpen=\"isOpenProductsPopup\"\n class=\"bg-white w-100 w-max-30r radius-medium pd-medium\"\n >\n <Feed\n :search=\"{\n class: 'bg-light radius-small'\n }\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'No products available for rent.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: null\n }\"\n :options=\"{\n owner: route.params._id,\n listing: 'rent'\n }\"\n v-slot=\"{ items }\"\n class=\"flex-column flex gap-thin h-max-20r o-scroll\"\n >\n <CardOrderItem\n v-for=\"(product, index) in items\"\n :key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n :editable=\"false\"\n :productId=\"product._id\"\n :variantId=\"product.variant\"\n :images=\"product.images\"\n :name=\"product.name\"\n :quantity=\"product.quantity || 1\"\n :unit=\"product.unit\"\n :dates=\"product.date\"\n :listing=\"product.listing\"\n :price=\"product.price\"\n @click=\"() => selectProduct(product)\"\n class=\"bg-light pd-small radius-small w-100\"\n />\n </Feed>\n </Popup>\n\n <!-- Popup for selecting variant of the product -->\n <Popup\n title=\"Select variant\"\n @close-popup=\"closeVariantsPopup\"\n :isPopupOpen=\"isVariantsPopupOpen\"\n class=\"bg-white w-100 w-max-30r radius-medium pd-medium\"\n >\n <Feed\n :store=\"variants\"\n :options=\"{\n product: selectedProduct._id,\n }\"\n :skeleton=\"{\n structure: [\n { block: 'text', size: 'small' },\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No variants',\n description: 'Create your first variant'\n }\n }\"\n v-slot=\"{ items }\"\n >\n <div class=\"gap-thin flex flex-column\">\n <div\n v-for=\"(variant, index) in items\"\n :key=\"index\"\n @click=\"addVariantToRent(variant)\"\n class=\"w-100 cursor-pointer hover:scale-[1.05] bg-light pd-small radius-small flex-v-center flex-nowrap flex gap-thin\"\n >\n <div v-if=\"variant.images && variant.images.length\" class=\"aspect-1x1 h-3r radius-small o-hidden\">\n <img\n :src=\"(FILE_SERVER_URL || '') + variant.images[0]\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n </div>\n <div>\n <p class=\"fw-medium\">{{ variant.name || 'Default variant' }}</p>\n <p v-if=\"variant.attributes && variant.attributes.length\" class=\"t-small t-transp\">\n {{ variant.attributes.map(attr => `${attr.name}: ${attr.value}`).join(', ') }}\n </p>\n </div>\n <p class=\"mn-l-auto\">{{ formatPrice(variant.price || variant.cost) }}</p>\n </div>\n </div>\n </Feed>\n </Popup>\n\n <Block title=\"Rent Period\" class=\"mn-b-semi\">\n <div class=\"flex gap-small\">\n <Field v-model:field=\"rents.state.current.startDate\" label=\"Start Date\" type=\"date\" class=\"w-100 bg-white radius-small pd-medium\" />\n <Field v-model:field=\"rents.state.current.endDate\" label=\"End Date\" type=\"date\" class=\"w-100 bg-white radius-small pd-medium\" />\n </div>\n </Block>\n\n <Block\n title=\"Rented Product\"\n :actions=\"rents.state.current.product ? [] : [{ label: '+', function: openProductsPopup }]\"\n placeholder=\"No products added yet\"\n class=\"mn-b-semi\"\n >\n <CardOrderItem\n v-if=\"rents.state.current.product\"\n :key=\"rents.state.current.product._id\"\n :productId=\"rents.state.current.product._id\"\n :variantId=\"rents.state.current.product.variant\"\n :images=\"rents.state.current.product.images\"\n :name=\"rents.state.current.product.name\"\n :quantity=\"rents.state.current.product.quantity || 1\"\n :unit=\"rents.state.current.product.unit\"\n :dates=\"{\n start: rents.state.current.startDate,\n end: rents.state.current.endDate\n }\"\n :listing=\"rents.state.current.product.listing\"\n :price=\"rents.state.current.product.price\"\n :editable=\"false\"\n @click=\"() => rents.state.current.product = null\"\n class=\"mn-b-small radius-medium bg-white pd-small\"\n />\n </Block>\n\n <Block title=\"Comment\" class=\"mn-b-semi\">\n <Field v-model:field=\"rents.state.current.comment\" label=\"Comment\" type=\"textarea\" class=\"w-100 bg-white radius-small pd-medium\" /> \n </Block>\n\n <Block>\n <section class=\"gap-thin flex-v-center flex-justify-start flex\">\n <h3 class=\"mn-r-auto\">Total Days: {{ totalDays }}</h3>\n\n <Button\n :submit=\"onSubmit\"\n class=\"pd-small radius-medium bg-main t-black uppercase fw-medium\"\n >\n Save\n </Button>\n\n <Button\n :submit=\"onReset\"\n class=\"pd-small radius-medium t-white bg-second uppercase fw-medium\"\n >\n Reset\n </Button>\n\n <Button\n v-if=\"route.params._id\"\n :submit=\"onDelete\"\n class=\"pd-small radius-medium t-white bg-red uppercase fw-medium\"\n >\n Delete\n </Button>\n </section>\n </Block>\n </div>\n</template>\n\n<script setup>\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport CardPosition from '@martyrs/src/modules/products/components/blocks/CardPosition.vue';\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue';\n\nimport { computed, onMounted, ref } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as rents from '@martyrs/src/modules/rents/views/store/rents.store';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\nimport variants from '@martyrs/src/modules/products/store/variants.store.js';\n\nconst route = useRoute();\nconst router = useRouter();\nconst { formatPrice } = useGlobalMixins();\n\nconst Products = ref(products.state.all);\nconst isOpenProductsPopup = ref(false);\nconst isVariantsPopupOpen = ref(false);\nconst selectedProduct = ref({});\n\nconst totalDays = computed(() => {\n const start = new Date(rents.state.current.startDate);\n const end = new Date(rents.state.current.endDate);\n if (!start || !end) return 0;\n const diffTime = Math.abs(end - start);\n return Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n});\n\nfunction openProductsPopup() {\n isOpenProductsPopup.value = true;\n}\n\nfunction closeProductsPopup() {\n isOpenProductsPopup.value = false;\n}\n\nfunction closeVariantsPopup() {\n isVariantsPopupOpen.value = false;\n selectedProduct.value = {};\n}\n\nfunction selectProduct(product) {\n selectedProduct.value = product;\n closeProductsPopup();\n\n // If product has only one variant, add it directly without showing popup\n if (product.variants && product.variants.length === 1) {\n addVariantToRent(product.variants[0]);\n return;\n }\n\n // If product has multiple variants or no variants defined, show popup\n isVariantsPopupOpen.value = true;\n}\n\nfunction formatProductName(product, variant) {\n if (!variant || product.variants?.length === 1 && !(variant.attributes?.length))\n return product.name;\n\n const attrs = variant.attributes?.map(a => a.value).filter(Boolean);\n if (attrs?.length) {\n return `${product.name} / ${attrs.join(' / ')}`;\n }\n\n // Если variant.name уже содержит product.name, не дублируем\n return variant.name || product.name;\n}\n\nfunction addVariantToRent(variant) {\n // Create product object with variant information\n rents.state.current.product = {\n _id: selectedProduct.value._id,\n variant: variant._id,\n name: formatProductName(selectedProduct.value, variant),\n images: variant.images || selectedProduct.value.images || [],\n price: variant.price || variant.cost || 0,\n unit: variant.unit || 'pcs',\n quantity: 1,\n listing: 'rent'\n };\n\n closeVariantsPopup();\n}\n\nfunction updateItem(index, updatedItem) {\n rents.state.current.items[index] = { product: updatedItem.product._id || updatedItem.product, quantity: updatedItem.quantity || 1 };\n}\n\nfunction deleteItem(index) {\n try {\n rents.state.current.items.splice(index, 1);\n } catch (error) {\n console.error('Ошибка при удалении элемента:', error);\n }\n}\n\nonMounted(async () => {\n try {\n if (route.params.rent) {\n await rents.actions.read({ _id: route.params.rent });\n } else {\n rents.mutations.clean();\n }\n\n await products.actions.read({ owner: route.params._id, listing: 'rent', limit: 100 });\n Products.value = products.state.all;\n } catch (error) {\n console.error('Ошибка при загрузке данных:', error);\n }\n});\n\nasync function onSubmit() {\n try {\n if (route.params.rent) {\n // Update existing rent\n const rentData = {\n _id: rents.state.current._id,\n product: rents.state.current.product._id,\n variant: rents.state.current.product.variant,\n startDate: new Date(rents.state.current.startDate),\n endDate: new Date(rents.state.current.endDate),\n comment: rents.state.current.comment,\n status: rents.state.current.status\n };\n await rents.actions.update(rentData);\n } else {\n // Create new rent - БЕЗ _id!\n const rentData = {\n product: rents.state.current.product._id,\n variant: rents.state.current.product.variant,\n startDate: new Date(rents.state.current.startDate),\n endDate: new Date(rents.state.current.endDate),\n comment: rents.state.current.comment || '',\n status: rents.state.current.status || 'active',\n creator: { type: 'user', target: auth.state.user._id },\n owner: { type: 'organization', target: route.params._id }\n };\n await rents.actions.create(rentData);\n }\n router.push({ name: 'Rents', params: { _id: route.params._id } });\n } catch (error) {\n console.error('Ошибка при отправке данных:', error);\n }\n}\n\nasync function onReset() {\n try {\n if (route.params._id) {\n await rents.actions.read({ _id: route.params._id });\n } else {\n rents.mutations.clean();\n }\n } catch (error) {\n console.error('Ошибка при сбросе данных:', error);\n }\n}\n\nasync function onDelete() {\n try {\n await rents.actions.delete(route.params._id);\n router.push({ name: 'Rents', params: { _id: route.params._id } });\n } catch (error) {\n console.error('Ошибка при удалении:', error);\n }\n}\n\n</script>\n\n<style lang=\"scss\">\n.round-stat {\n padding: 1rem;\n border-radius: 5rem;\n width: 3rem;\n height: 3rem;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(0,0,0,0.1);\n}\n</style>"],"names":["products.state","rents.state","rents.actions","rents.mutations","products.actions","auth.state"],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@ import { createElementBlock, openBlock, createElementVNode, Fragment, renderList
|
|
|
2
2
|
import { actions, state } from "../../store/reports.js";
|
|
3
3
|
const _hoisted_1 = { class: "cols-3 mobile:cols-1 gap-thin" };
|
|
4
4
|
const _hoisted_2 = { class: "t-black p-small mn-b-small" };
|
|
5
|
-
const _hoisted_3 = { class: "pd-2px radius-big d-inline-block bg-light
|
|
5
|
+
const _hoisted_3 = { class: "pd-2px radius-big d-inline-block bg-light fw-semi" };
|
|
6
6
|
const _hoisted_4 = { class: "t-black p-small mn-b-small" };
|
|
7
|
-
const _hoisted_5 = { class: "pd-2px radius-big d-inline-block bg-light
|
|
7
|
+
const _hoisted_5 = { class: "pd-2px radius-big d-inline-block bg-light fw-semi" };
|
|
8
8
|
const _hoisted_6 = { class: "t-black p-small mn-b-small" };
|
|
9
|
-
const _hoisted_7 = { class: "pd-2px radius-big d-inline-block bg-light
|
|
9
|
+
const _hoisted_7 = { class: "pd-2px radius-big d-inline-block bg-light fw-semi" };
|
|
10
10
|
const _sfc_main = {
|
|
11
11
|
__name: "BackofficeReports",
|
|
12
12
|
setup(__props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeReports.vue.js","sources":["../../../../../../../src/modules/reports/components/pages/BackofficeReports.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"flex-v-center flex-nowrap flex mn-b-medium\">\n <h3 class=\"mn-r-medium\">Reports</h3> <!-- Updated this line -->\n </div>\n\n <div class=\"cols-3 mobile:cols-1 gap-thin\">\n <div \n v-for=\"report in state.all\"\n :key=\"report._id\"\n class=\"radius-medium pd-small bg-light\"\n >\n <!-- Here, you should update the properties of the report object to reflect the actual structure of a report -->\n <!-- For example, I'm using 'user', 'type', and 'reason'. You should replace them with actual report properties -->\n\n <p class=\"t-black p-small mn-b-small\">\n <span class=\"uppercase t-transp\">User</span>\n <br> \n <span class=\"pd-2px radius-big d-inline-block bg-light
|
|
1
|
+
{"version":3,"file":"BackofficeReports.vue.js","sources":["../../../../../../../src/modules/reports/components/pages/BackofficeReports.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"flex-v-center flex-nowrap flex mn-b-medium\">\n <h3 class=\"mn-r-medium\">Reports</h3> <!-- Updated this line -->\n </div>\n\n <div class=\"cols-3 mobile:cols-1 gap-thin\">\n <div \n v-for=\"report in state.all\"\n :key=\"report._id\"\n class=\"radius-medium pd-small bg-light\"\n >\n <!-- Here, you should update the properties of the report object to reflect the actual structure of a report -->\n <!-- For example, I'm using 'user', 'type', and 'reason'. You should replace them with actual report properties -->\n\n <p class=\"t-black p-small mn-b-small\">\n <span class=\"uppercase t-transp\">User</span>\n <br> \n <span class=\"pd-2px radius-big d-inline-block bg-light fw-semi\">{{report.user}}</span> <!-- Updated this line -->\n </p>\n\n <p class=\"t-black p-small mn-b-small\">\n <span class=\"uppercase t-transp\">Type</span>\n <br> \n <span class=\"pd-2px radius-big d-inline-block bg-light fw-semi\">{{report.type}}</span> <!-- Updated this line -->\n </p>\n\n <p class=\"t-black p-small mn-b-small\">\n <span class=\"uppercase t-transp\">Reason</span>\n <br> \n <span class=\"pd-2px radius-big d-inline-block bg-light fw-semi\">{{report.reason}}</span> <!-- Updated this line -->\n </p>\n\n <div class=\"gap-thin flex-nowrap flex\">\n <!-- Update buttons and actions as needed -->\n <button class=\"button-small w-100 bg-black t-white button\">\n Close Report\n </button>\n <button class=\"button-small w-100 bg-black t-white button\">\n Hide Content\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { actions as reportActions, state } from '../../store/reports'; // Update the import path\n\n// You might want to handle other lifecycle hooks or methods depending on your needs.\n// Here, I'll demonstrate using the 'deleteReport' method as an example.\n\nconst deleteReport = async (id) => {\n try {\n await reportActions.remove({ _id: id }); // Updated method name and parameter\n // Optionally, add a notification about successful deletion here\n } catch (error) {\n console.error(error);\n // Optionally, add a notification about the error here\n }\n};\n\n// Fetch all reports on component mount. This part depends on how your store is structured.\nreportActions.read(); // Updated method name\n</script>\n"],"names":["reportActions"],"mappings":";;;;;;;;;;;;AAiEAA,YAAc,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { reactive, ref, createElementBlock, openBlock, renderSlot, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
|
|
3
|
-
import _sfc_main$2 from "../../../../components/Button/Button.
|
|
4
|
-
import Select from "../../../../components/Select/Select.
|
|
3
|
+
import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
|
|
4
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
5
5
|
import { actions } from "../../store/reports.js";
|
|
6
6
|
const _sfc_main = {
|
|
7
7
|
__name: "FormReport",
|
|
@@ -78,7 +78,7 @@ const _sfc_main = {
|
|
|
78
78
|
"other"
|
|
79
79
|
],
|
|
80
80
|
placeholder: "Select reason",
|
|
81
|
-
class: "mn-b-small bg-white br-
|
|
81
|
+
class: "mn-b-small bg-white br-black-transp-10 br-1px uppercase pd-medium fw-semi bg-white t-black radius-medium"
|
|
82
82
|
}, null, 8, ["select"]),
|
|
83
83
|
_cache[5] || (_cache[5] = createElementVNode("p", { class: "p-regular mn-b-small" }, "Our moderators will review your report within 24 hours and take action if it violates our policies.", -1)),
|
|
84
84
|
createVNode(_sfc_main$2, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReport.vue.js","sources":["../../../../../../../src/modules/reports/components/sections/FormReport.vue"],"sourcesContent":["<template>\n\n\t<div \n\t\t@click.native=\"openReportPopup()\"\n\t>\n\t\t<slot></slot>\n\n\t\t<Popup \n\t\t @close-popup=\"closeReportPopup\" \n\t\t :isPopupOpen=\"isReportPopup\"\n\t\t class=\"w-m-33r t-left pd-big bg-white radius-big\"\n\t\t>\n\t\t <h3 \n\t\t \tclass=\"mn-b-small\"\n\t\t >\n\t\t\t\tReport Content\n\t\t\t</h3>\n\t\t \n\t\t <p \n\t\t \tclass=\"p-regular mn-b-small\"\n\t\t >\n\t\t \tWe strive to maintain a safe and comfortable environment for all users. If you encounter content that you believe violates our guidelines, please report it:\n\t\t </p>\n\t\t <Select \n\t\t\t\tv-model:select=\"form.reason\" \n\t\t :options=\"[\n\t\t \t'harassment',\n\t\t \t'spam',\n\t\t \t'inappropriate',\n\t\t \t'misinformation',\n\t\t \t'copyright',\n\t\t \t'other'\n\t\t ]\"\n\t\t :placeholder=\"'Select reason'\"\n\t\t\t\tclass=\"mn-b-small bg-white br-
|
|
1
|
+
{"version":3,"file":"FormReport.vue.js","sources":["../../../../../../../src/modules/reports/components/sections/FormReport.vue"],"sourcesContent":["<template>\n\n\t<div \n\t\t@click.native=\"openReportPopup()\"\n\t>\n\t\t<slot></slot>\n\n\t\t<Popup \n\t\t @close-popup=\"closeReportPopup\" \n\t\t :isPopupOpen=\"isReportPopup\"\n\t\t class=\"w-m-33r t-left pd-big bg-white radius-big\"\n\t\t>\n\t\t <h3 \n\t\t \tclass=\"mn-b-small\"\n\t\t >\n\t\t\t\tReport Content\n\t\t\t</h3>\n\t\t \n\t\t <p \n\t\t \tclass=\"p-regular mn-b-small\"\n\t\t >\n\t\t \tWe strive to maintain a safe and comfortable environment for all users. If you encounter content that you believe violates our guidelines, please report it:\n\t\t </p>\n\t\t <Select \n\t\t\t\tv-model:select=\"form.reason\" \n\t\t :options=\"[\n\t\t \t'harassment',\n\t\t \t'spam',\n\t\t \t'inappropriate',\n\t\t \t'misinformation',\n\t\t \t'copyright',\n\t\t \t'other'\n\t\t ]\"\n\t\t :placeholder=\"'Select reason'\"\n\t\t\t\tclass=\"mn-b-small bg-white br-black-transp-10 br-1px uppercase pd-medium fw-semi bg-white t-black radius-medium\"\n\t\t />\n\t\t \n\t\t <p class=\"p-regular mn-b-small\">Our moderators will review your report within 24 hours and take action if it violates our policies.</p>\n\t\t \n\t\t <Button \n\t\t \t:submit=\"onSubmit\" \n\t\t \t:callback=\"closeReportPopup\" \n\t\t \tclass=\"w-100 bg-black t-white\">\n\t\t \tReport\n\t\t </Button>\n\t\t</Popup>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Dependencies\n\timport { computed,ref,reactive } from 'vue'\n\t// Elements Import\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Button from '@martyrs/src/components/Button/Button.vue';\n\timport Select from '@martyrs/src/components/Select/Select.vue';\n\t// Store Import\n\timport * as reports from '@martyrs/src/modules/reports/store/reports.js'\n\t// ///////////////////////////////////////\n \t// Components Props\n \t// ///////////////////////////////////////\n \tconst props = defineProps({\n \t\tuser: {\n type: String,\n required: false\n },\n type: {\n type: String,\n required: false\n },\n reason: {\n type: String,\n required: false\n },\n target: {\n type: String,\n required: true\n },\n\t text: {\n\t\t\ttype: String,\n\t\t\tdefault: '!'\n\t\t},\n status: {\n type: String,\n default: 'new'\n }\n \t})\n \t// ///////////////////////////////////////\n \t// Form Logic\n \t// ///////////////////////////////////////\n \tconst form = reactive({\n\t\tuser: props.user,\n\t\ttype: props.type,\n\t\treason: props.reason, \n\t\ttarget: props.target,\n\t\tstatus: props.status,\n\t})\n\n\tfunction onSubmit () {\n\t if (form.user === null) {\n\t \tdelete form.user\n\t }\n\t \treports.actions.create(form)\n\t}\n \t// ///////////////////////////////////////\n\t// Popup logic\n\t// ///////////////////////////////////////\n\tconst isReportPopup = ref(false)\n\n\tfunction openReportPopup() {\n\t isReportPopup.value = true;\n\t}\n\tfunction closeReportPopup() {\n\t isReportPopup.value = false;\n\t}\n</script>"],"names":["reports.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DE,UAAM,QAAQ;AA6Bd,UAAM,OAAO,SAAS;AAAA,MACtB,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,IAChB,CAAE;AAED,aAAS,WAAY;AACjB,UAAI,KAAK,SAAS,MAAM;AACvB,eAAO,KAAK;AAAA,MACb;AACDA,cAAgB,OAAO,IAAI;AAAA,IAC9B;AAIA,UAAM,gBAAgB,IAAI,KAAK;AAE/B,aAAS,kBAAkB;AACzB,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -20,14 +20,14 @@ const _hoisted_5 = {
|
|
|
20
20
|
key: 3,
|
|
21
21
|
class: "bg-light mn-t-thin pd-thin radius-thin"
|
|
22
22
|
};
|
|
23
|
-
const _hoisted_6 = { class: "text-box-trim-end p-small w-100
|
|
23
|
+
const _hoisted_6 = { class: "text-box-trim-end p-small w-100 truncate" };
|
|
24
24
|
const _hoisted_7 = {
|
|
25
25
|
key: 4,
|
|
26
|
-
class: "uppercase
|
|
26
|
+
class: "uppercase fw-medium mn-t-small mn-t-thin"
|
|
27
27
|
};
|
|
28
28
|
const _hoisted_8 = {
|
|
29
29
|
key: 6,
|
|
30
|
-
class: "uppercase
|
|
30
|
+
class: "uppercase fw-medium mn-t-small mn-t-thin"
|
|
31
31
|
};
|
|
32
32
|
const _sfc_main = {
|
|
33
33
|
__name: "CardSpot",
|
|
@@ -88,7 +88,7 @@ const _sfc_main = {
|
|
|
88
88
|
class: "z-index-2 pos-absolute pos-t-thin pos-r-thin radius-extra bg-second pd-thin i-medium"
|
|
89
89
|
})) : createCommentVNode("", true),
|
|
90
90
|
createElementVNode("p", {
|
|
91
|
-
class: "p-regular
|
|
91
|
+
class: "p-regular fw-medium d-inline-block w-100",
|
|
92
92
|
innerHTML: __props.spot.profile.name
|
|
93
93
|
}, null, 8, _hoisted_3),
|
|
94
94
|
__props.spot.profile.description ? (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString(__props.spot.profile.description), 1)) : createCommentVNode("", true),
|
|
@@ -112,7 +112,7 @@ const _sfc_main = {
|
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
|
-
const CardSpot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
115
|
+
const CardSpot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4d062e09"]]);
|
|
116
116
|
export {
|
|
117
117
|
CardSpot as default
|
|
118
118
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardSpot.vue.js","sources":["../../../../../../../src/modules/spots/components/blocks/CardSpot.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative pd-small rows-1\" :class=\"{'selected': selected }\">\n <div class=\"w-100 flex-nowrap flex gap-thin\">\n <div\n v-if=\"spot.address\"\n class=\"aspect-1x1 h-100\"\n >\n <Map\n :apiKey=\"GOOGLE_MAPS_API_KEY\"\n :location=\"{\n lat: spot.location?.coordinates?.[1] || 0,\n lng: spot.location?.coordinates?.[0] || 0\n }\"\n :locale=\"$i18n.locale\"\n class=\"radius-small o-hidden\"\n\n />\n </div>\n\n <div>\n <!-- Edit Button -->\n <router-link\n v-if=\"editAccess\"\n :to=\"{\n name: getRouteName('Edit Spot'),\n params: {\n _id: props.organization?._id || props.organization,\n spot: spot._id\n }\n }\"\n @click.stop\n class=\"\n z-index-2\n cursor-pointer\n pos-absolute pos-t-thin pos-r-thin\n radius-extra pd-thin bg-second\n i-medium\n flex\n flex-center\n \"\n >\n <IconEdit\n class=\"i-medium\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <IconCheckmark\n v-if=\"selected\"\n :fill=\"'rgb(var(--white))'\"\n class=\"z-index-2 pos-absolute pos-t-thin pos-r-thin radius-extra bg-second pd-thin i-medium\"\n />\n \n <p\n class=\"p-regular
|
|
1
|
+
{"version":3,"file":"CardSpot.vue.js","sources":["../../../../../../../src/modules/spots/components/blocks/CardSpot.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative pd-small rows-1\" :class=\"{'selected': selected }\">\n <div class=\"w-100 flex-nowrap flex gap-thin\">\n <div\n v-if=\"spot.address\"\n class=\"aspect-1x1 h-100\"\n >\n <Map\n :apiKey=\"GOOGLE_MAPS_API_KEY\"\n :location=\"{\n lat: spot.location?.coordinates?.[1] || 0,\n lng: spot.location?.coordinates?.[0] || 0\n }\"\n :locale=\"$i18n.locale\"\n class=\"radius-small o-hidden\"\n\n />\n </div>\n\n <div>\n <!-- Edit Button -->\n <router-link\n v-if=\"editAccess\"\n :to=\"{\n name: getRouteName('Edit Spot'),\n params: {\n _id: props.organization?._id || props.organization,\n spot: spot._id\n }\n }\"\n @click.stop\n class=\"\n z-index-2\n cursor-pointer\n pos-absolute pos-t-thin pos-r-thin\n radius-extra pd-thin bg-second\n i-medium\n flex\n flex-center\n \"\n >\n <IconEdit\n class=\"i-medium\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <IconCheckmark\n v-if=\"selected\"\n :fill=\"'rgb(var(--white))'\"\n class=\"z-index-2 pos-absolute pos-t-thin pos-r-thin radius-extra bg-second pd-thin i-medium\"\n />\n \n <p\n class=\"p-regular fw-medium d-inline-block w-100\"\n v-html=\"spot.profile.name\"\n />\n \n <p v-if=\"spot.profile.description\" class=\"d-block p-medium mn-t-thin\">\n {{spot.profile.description}}\n </p>\n\n <div v-if=\"spot.address\" class=\"bg-light mn-t-thin pd-thin radius-thin\">\n <p class=\"text-box-trim-end p-small w-100 truncate\">\n {{spot.address}}\n </p>\n </div>\n\n <p class=\"uppercase fw-medium mn-t-small mn-t-thin\" v-if=\"showDeliveryOptions && spot.delivery.length > 0\">Delivery</p>\n <Chips \n v-if=\"showDeliveryOptions && spot.delivery.length > 0\" \n :chips=\"spot.delivery\"\n />\n\n <p class=\"uppercase fw-medium mn-t-small mn-t-thin\" v-if=\"showPaymentOptions && spot.payment.length > 0\">Accepted Payment</p>\n <Chips \n v-if=\"showPaymentOptions && spot.payment.length > 0\" \n :chips=\"spot.payment\"\n class=\"mn-t-thin\"\n />\n </div>\n\n\n </div>\n </div>\n\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\n\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport Map from '@martyrs/src/components/Map/Map.vue';\n\nconst route = useRoute();\nconst getRouteName = (baseName) => `${route.meta?.context || ''}${baseName}`\n\nconst props = defineProps({\n spot: Object,\n organization: Object,\n editAccess: Boolean,\n showDeliveryOptions: Boolean,\n showPaymentOptions: Boolean,\n selected: Boolean\n});\n</script>\n<style scoped>\n.subspotsartment {\n border: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 1rem;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoGA,UAAM,QAAQ,SAAQ;AACtB,UAAM,eAAe,CAAC,aAAa,GAAG,MAAM,MAAM,WAAW,EAAE,GAAG,QAAQ;AAE1E,UAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createBlock, toDisplayString } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
/* empty css
|
|
4
|
+
/* empty css */
|
|
5
5
|
/* empty css */
|
|
6
6
|
const _hoisted_1 = { class: "br-grey-transp-25 radius-small mn-b-small" };
|
|
7
7
|
const _hoisted_2 = {
|
|
8
8
|
key: 1,
|
|
9
|
-
class: "pd-small br-grey-transp-25 br-1px
|
|
9
|
+
class: "pd-small br-grey-transp-25 br-1px"
|
|
10
10
|
};
|
|
11
11
|
const _hoisted_3 = ["disabled"];
|
|
12
12
|
const _sfc_main = {
|
|
@@ -78,7 +78,7 @@ const _sfc_main = {
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
};
|
|
81
|
-
const SpotMemberModify = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
81
|
+
const SpotMemberModify = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2ff9ae98"]]);
|
|
82
82
|
export {
|
|
83
83
|
SpotMemberModify as default
|
|
84
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpotMemberModify.vue.js","sources":["../../../../../../../src/modules/spots/components/blocks/SpotMemberModify.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"br-grey-transp-25 radius-small mn-b-small\">\n <VueSelect \n v-if=\"props.spot === null\"\n v-model=\"spotForm.subspot\"\n :options=\"filteredSpots\"\n :get-option-label='option => option.name' \n class=\"w-100 mn-b-small\"\n /> \n <div v-else class=\"pd-small br-grey-transp-25 br-1px
|
|
1
|
+
{"version":3,"file":"SpotMemberModify.vue.js","sources":["../../../../../../../src/modules/spots/components/blocks/SpotMemberModify.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"br-grey-transp-25 radius-small mn-b-small\">\n <VueSelect \n v-if=\"props.spot === null\"\n v-model=\"spotForm.subspot\"\n :options=\"filteredSpots\"\n :get-option-label='option => option.name' \n class=\"w-100 mn-b-small\"\n /> \n <div v-else class=\"pd-small br-grey-transp-25 br-1px\">\n {{ spotForm.name ? spotForm.name : 'Безымянный' }}\n </div>\n </div>\n\n <button :disabled=\"!spotForm.subspot\" v-if=\"props.spot === null\" @click=\"submitForm\" class=\"w-100 button bg-second t-white\">\n Добавить отдел\n </button>\n\n <button v-if=\"props.spot !== null\" @click=\"removeMember\" class=\"w-100 button bg-fourth t-white\">\n Удалить отдел\n </button> \n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from \"vue\";\n\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from \"@martyrs/src/components/Select/Select.vue\";\nconst props = defineProps({\n isPopupOpen: Boolean,\n spot: Number,\n spots: Array,\n mainspot: Object,\n allspots: Array,\n});\n\nconst emits = defineEmits(['callback', 'remove']);\n\nconst spotForm = ref({\n subspot: null,\n});\n\nif (props.spot !== null) {\n spotForm.value = props.spots[props.spot];\n}\n\nfunction filterSpots(allSpots, spots, editingSpot) {\n return allSpots.filter((spot) => {\n if (spots.some((dept) => dept._id === spot._id)) {\n return false;\n }\n if (editingSpot._id === spot._id) {\n return false;\n }\n return true;\n });\n}\n\nconst filteredSpots = computed(() => {\n return filterSpots(props.allspots, props.spots, props.mainspot);\n});\n\nasync function submitForm() {\n props.spots.push(spotForm.value.subspot);\n emits(\"callback\");\n}\n\nasync function removeMember() {\n props.spots.splice(props.spot, 1);\n emits(\"callback\");\n}\n</script>\n\n<style scoped>\n.form-group {\n margin-bottom: 1rem;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.5rem;\n}\n\ninput {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #ccc;\n border-radius: 5px;\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA8BA,UAAM,QAAQ;AAQd,UAAM,QAAQ;AAEd,UAAM,WAAW,IAAI;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAED,QAAI,MAAM,SAAS,MAAM;AACvB,eAAS,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,IACzC;AAEA,aAAS,YAAY,UAAU,OAAO,aAAa;AACjD,aAAO,SAAS,OAAO,CAAC,SAAS;AAC/B,YAAI,MAAM,KAAK,CAAC,SAAS,KAAK,QAAQ,KAAK,GAAG,GAAG;AAC/C,iBAAO;AAAA,QACT;AACA,YAAI,YAAY,QAAQ,KAAK,KAAK;AAChC,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAEA,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,YAAY,MAAM,UAAU,MAAM,OAAO,MAAM,QAAQ;AAAA,IAChE,CAAC;AAED,mBAAe,aAAa;AAC1B,YAAM,MAAM,KAAK,SAAS,MAAM,OAAO;AACvC,YAAM,UAAU;AAAA,IAClB;AAEA,mBAAe,eAAe;AAC5B,YAAM,MAAM,OAAO,MAAM,MAAM,CAAC;AAChC,YAAM,UAAU;AAAA,IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,9 +2,9 @@ import { ref, onMounted, watch, resolveComponent, createElementBlock, openBlock,
|
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import { useI18n } from "vue-i18n";
|
|
4
4
|
/* empty css */
|
|
5
|
-
/* empty css
|
|
5
|
+
/* empty css */
|
|
6
6
|
/* empty css */
|
|
7
|
-
/* empty css
|
|
7
|
+
/* empty css */
|
|
8
8
|
import { useStore } from "../../../core/views/store/core.store.js";
|
|
9
9
|
import { actions, state as state$1 } from "../../../products/store/categories.js";
|
|
10
10
|
import { state } from "../../../marketplace/views/store/marketplace.js";
|
|
@@ -153,7 +153,7 @@ const _sfc_main = {
|
|
|
153
153
|
onClick: _cache[0] || (_cache[0] = (a) => {
|
|
154
154
|
unref(store).core.state.isOpenLocationPopup = true;
|
|
155
155
|
}),
|
|
156
|
-
class: "
|
|
156
|
+
class: "fw-semi t-main"
|
|
157
157
|
}, [
|
|
158
158
|
localPosition.value.city ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(localPosition.value.city) + ", ", 1)) : createCommentVNode("", true),
|
|
159
159
|
localPosition.value.state ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(localPosition.value.state) + ", ", 1)) : createCommentVNode("", true),
|
|
@@ -163,7 +163,7 @@ const _sfc_main = {
|
|
|
163
163
|
onClick: _cache[1] || (_cache[1] = (a) => {
|
|
164
164
|
unref(store).core.state.isOpenLocationPopup = true;
|
|
165
165
|
}),
|
|
166
|
-
class: "
|
|
166
|
+
class: "fw-semi t-main"
|
|
167
167
|
}, " The World "))
|
|
168
168
|
])
|
|
169
169
|
]),
|