@ozdao/martyrs 0.2.603 → 0.2.605
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/_virtual/dayjs.min.js +1 -1
- package/dist/_virtual/weekOfYear.js +1 -1
- package/dist/{abac-Blt8bUTL.js → abac-kz5xI99l.js} +1 -0
- package/dist/auth.server.js +52 -12
- package/dist/builder.js +67 -2
- package/dist/chats.server.js +2 -2
- package/dist/community.server.js +3 -3
- package/dist/core.server.js +2 -2
- package/dist/{core.websocket-Cl76z2wT.js → core.websocket-B2FA8gGl.js} +0 -2
- package/dist/{crud-BT5FIvQC.js → crud-Cwn0frBP.js} +8 -2
- package/dist/events.server.js +4 -4
- package/dist/files.server.js +1 -1
- package/dist/gallery.server.js +2 -2
- package/dist/governance.server.js +10 -10
- package/dist/{index-kvBwwb0w.js → index-CPACC651.js} +1 -1
- package/dist/inventory.server.js +4 -4
- package/dist/{mailing-DT7nbNjZ.js → mailing-BBCidXGr.js} +38 -2
- package/dist/marketplace.server.js +2 -2
- package/dist/martyrs/dist/martyrs.es3.js +1 -1
- package/dist/martyrs/dist/martyrs.es3.js.map +1 -1
- package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/dayjs.min.js +1 -1
- package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/dayjs.min.js.map +1 -1
- package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/plugin/weekOfYear.js +1 -1
- package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/plugin/weekOfYear.js.map +1 -1
- package/dist/{node_modules/.pnpm/vue-draggable-next@2.2.1_sortablejs@1.15.6_vue@3.5.13_typescript@5.8.3_ → martyrs/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.7_vue@3.5.13}/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js +305 -268
- package/dist/martyrs/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.7_vue@3.5.13/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js.map +1 -0
- package/dist/martyrs/src/components/Address/Address.vue2.js +13 -13
- package/dist/martyrs/src/components/Address/Address.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +150 -143
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Chart/Chart.vue.js +296 -0
- package/dist/martyrs/src/components/Chart/Chart.vue.js.map +1 -0
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +1 -1
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js +5 -6
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -1
- 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 +2 -2
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js +4 -4
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +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.vue.js +4 -4
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js +3 -3
- package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js.map +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +27 -21
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Map/Map.vue.js +20 -16
- package/dist/martyrs/src/components/Map/Map.vue.js.map +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
- package/dist/martyrs/src/components/Popup/Popup.vue.js +3 -4
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -1
- package/dist/martyrs/src/components/Radio/Radio.vue.js +12 -10
- package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
- package/dist/martyrs/src/components/Select/Select.vue.js +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
- package/dist/martyrs/src/components/Status/Snack.vue.js +1 -1
- package/dist/martyrs/src/components/Status/Snack.vue.js.map +1 -1
- package/dist/martyrs/src/components/Status/Status.vue.js +1 -1
- package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
- package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Table/Table.vue.js +21 -4
- package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tree/Tree.vue.js +1 -1
- package/dist/martyrs/src/components/Upload/Upload.vue2.js +2 -2
- package/dist/martyrs/src/components/Upload/Upload.vue2.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 +2 -2
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.js +14 -2
- package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/blocks/SidebarUserCard.vue.js +96 -0
- package/dist/martyrs/src/modules/auth/views/components/blocks/SidebarUserCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/BackofficeUsers.vue.js +337 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/BackofficeUsers.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +33 -19
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +76 -40
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js +6 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +5 -5
- 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 +6 -4
- 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 +4 -4
- 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 +28 -16
- 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/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/middlewares/auth.validation.js +6 -2
- package/dist/martyrs/src/modules/auth/views/middlewares/auth.validation.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.backoffice.router.js +53 -0
- package/dist/martyrs/src/modules/auth/views/router/users.backoffice.router.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/store/auth.js +3 -3
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +179 -253
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +105 -44
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js +11 -5
- package/dist/martyrs/src/modules/backoffice/router/backoffice.router.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.map +1 -1
- package/dist/martyrs/src/modules/community/community.client.js +4 -4
- package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
- 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/layouts/Community.vue.js +4 -4
- 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/sections/Comment.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/core.client.js +18 -16
- package/dist/martyrs/src/modules/core/core.client.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js +25 -6
- package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/classes/module.manager.js +4 -2
- package/dist/martyrs/src/modules/core/views/classes/module.manager.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/AlertDialog.vue.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/BlockSearch.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/BlockSlider.vue.js +132 -0
- package/dist/martyrs/src/modules/core/views/components/blocks/BlockSlider.vue.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +3 -3
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js +6 -28
- package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js.map +1 -1
- package/dist/martyrs/src/modules/{auth → core}/views/components/blocks/CardUser.vue.js +29 -11
- package/dist/martyrs/src/modules/{auth → core}/views/components/blocks/CardUser.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/PopupDateSelector.vue.js +42 -27
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/elements/OnlineIndicator.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +4 -3
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +5 -5
- 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 +2 -2
- 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 +2 -2
- 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 +4 -4
- 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 +2 -2
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +5 -5
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +3 -3
- 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 +7 -7
- package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/mixins/mixins.js +14 -1
- package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/plugins/date-picker.plugin.js +8 -5
- package/dist/martyrs/src/modules/core/views/plugins/date-picker.plugin.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/store/core.store.js +5 -1
- 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 +3 -0
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +9 -9
- 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 +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +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/events/events.client.js +4 -4
- package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/router/gallery.router.js +3 -3
- package/dist/martyrs/src/modules/gallery/router/gallery.router.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js +5 -5
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js +6 -6
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js +4 -4
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js +5 -5
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js +5 -5
- package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js +1 -1
- package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js +2 -2
- package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/governance/views/router/governance.router.js +3 -3
- package/dist/martyrs/src/modules/governance/views/router/governance.router.js.map +1 -1
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconApplications.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconApplications.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconCustomers.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconCustomers.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconUsers.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconUsers.vue.js.map +1 -0
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
- 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 +3 -3
- 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 +290 -173
- 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 +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/inventory.client.js +4 -4
- package/dist/martyrs/src/modules/inventory/inventory.client.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/router/inventory.router.js +15 -0
- package/dist/martyrs/src/modules/inventory/router/inventory.router.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +4 -4
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.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/SectionMobileApp.vue.js +2 -2
- 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 +1 -1
- 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 +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +4 -4
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +5 -5
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +3 -3
- 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 +9 -9
- 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 +6 -6
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +12 -12
- 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 +4 -4
- 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 +12 -12
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +163 -69
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +183 -19
- package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/router/notifications.backoffice.router.js +21 -0
- package/dist/martyrs/src/modules/notifications/router/notifications.backoffice.router.js.map +1 -0
- package/dist/martyrs/src/modules/notifications/router/notifications.router.js +13 -42
- package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/store/notifications.store.js +67 -2
- package/dist/martyrs/src/modules/notifications/store/notifications.store.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +9 -7
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +11 -9
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -1
- 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 +66 -19
- 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 +29 -27
- 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 +7 -12
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.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 +4 -4
- 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 +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +46 -25
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +54 -38
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +454 -139
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +2 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +141 -68
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +38 -32
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +1 -1
- 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 +167 -95
- 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/orders.client.js +22 -20
- package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.js +3 -5
- package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/shopcart.js +6 -6
- package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
- package/dist/martyrs/src/modules/orders/utils/rent-price.js +60 -0
- package/dist/martyrs/src/modules/orders/utils/rent-price.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +45 -55
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/EmptyState.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +8 -8
- 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 +216 -83
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +38 -28
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +3 -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 +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +20 -18
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.js +39 -33
- package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js +81 -0
- package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/router/pages.router.js +2 -2
- package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +3 -3
- 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 +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/pages/Categories.vue.js +9 -25
- 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 +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +34 -17
- 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 +98 -98
- 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 +1 -1
- 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 +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +22 -9
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/categories.router.js +2 -2
- package/dist/martyrs/src/modules/products/router/categories.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/products.router.js +17 -3
- package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +11 -10
- 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 +197 -81
- 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 +2 -2
- 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 +3 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +685 -80
- 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 +68 -18
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/router/rents.router.js +3 -3
- package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/store/rents.store.js +1 -1
- package/dist/martyrs/src/modules/rents/views/store/rents.store.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/router/reports.router.js +1 -1
- package/dist/martyrs/src/modules/reports/router/reports.router.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/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +3 -3
- 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 +10 -8
- 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 +29 -37
- 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/spots/router/spots.router.js +3 -3
- package/dist/martyrs/src/modules/spots/router/spots.router.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js.map +1 -1
- package/dist/martyrs.es10.js +59 -57
- package/dist/martyrs.es101.js +39 -0
- package/dist/martyrs.es102.js +24 -32
- package/dist/martyrs.es104.js +27 -0
- package/dist/martyrs.es105.js +6 -25
- package/dist/martyrs.es106.js +6 -5
- package/dist/martyrs.es107.js +76 -6
- package/dist/martyrs.es108.js +5 -77
- package/dist/martyrs.es109.js +119 -5
- package/dist/martyrs.es11.js +31 -30
- package/dist/martyrs.es112.js +2 -119
- package/dist/martyrs.es113.js +25 -0
- package/dist/martyrs.es114.js +7 -0
- package/dist/martyrs.es115.js +8 -2
- package/dist/martyrs.es116.js +166 -22
- package/dist/martyrs.es117.js +457 -4
- package/dist/martyrs.es118.js +40 -8
- package/dist/martyrs.es119.js +9 -166
- package/dist/martyrs.es12.js +8 -9
- package/dist/martyrs.es120.js +43 -451
- package/dist/martyrs.es121.js +10 -38
- package/dist/martyrs.es122.js +44 -9
- package/dist/martyrs.es123.js +4 -49
- package/dist/martyrs.es124.js +127 -10
- package/dist/martyrs.es125.js +98 -42
- package/dist/martyrs.es126.js +86 -4
- package/dist/martyrs.es127.js +29 -120
- package/dist/martyrs.es128.js +10 -99
- package/dist/martyrs.es129.js +24 -71
- package/dist/martyrs.es13.js +22 -19
- package/dist/martyrs.es130.js +8 -37
- package/dist/martyrs.es131.js +115 -10
- package/dist/martyrs.es132.js +16 -38
- package/dist/martyrs.es133.js +15 -8
- package/dist/martyrs.es135.js +28 -112
- package/dist/martyrs.es136.js +9 -17
- package/dist/martyrs.es137.js +19 -14
- package/dist/martyrs.es138.js +8 -32
- package/dist/martyrs.es139.js +9 -9
- package/dist/martyrs.es14.js +2 -2
- package/dist/martyrs.es140.js +43 -19
- package/dist/martyrs.es141.js +480 -9
- package/dist/martyrs.es142.js +5 -8
- package/dist/martyrs.es143.js +2 -45
- package/dist/martyrs.es144.js +11 -480
- package/dist/martyrs.es145.js +30 -5
- package/dist/martyrs.es146.js +17 -2
- package/dist/martyrs.es147.js +19 -11
- package/dist/martyrs.es148.js +27 -29
- package/dist/martyrs.es149.js +20 -16
- package/dist/martyrs.es2.js +31 -30
- package/dist/martyrs.es22.js +16 -16
- package/dist/martyrs.es23.js +8 -8
- package/dist/martyrs.es24.js +9 -9
- package/dist/martyrs.es26.js +9 -11
- package/dist/martyrs.es27.js +9 -9
- package/dist/martyrs.es28.js +1 -1
- package/dist/martyrs.es29.js +5 -5
- package/dist/martyrs.es3.js +1 -1
- package/dist/martyrs.es38.js +1 -1
- package/dist/martyrs.es4.js +12 -12
- package/dist/martyrs.es41.js +34 -224
- package/dist/martyrs.es5.js +251 -238
- package/dist/martyrs.es54.js +2 -2
- package/dist/martyrs.es61.js +33 -26
- package/dist/martyrs.es71.js +2 -2
- package/dist/martyrs.es74.js +8 -8
- package/dist/martyrs.es75.js +1 -1
- package/dist/martyrs.es76.js +18 -18
- package/dist/martyrs.es77.js +1 -1
- package/dist/martyrs.es78.js +1 -1
- package/dist/martyrs.es8.js +31 -31
- package/dist/martyrs.es91.js +1 -1
- package/dist/martyrs.es92.js +33 -5
- package/dist/martyrs.es94.js +41 -0
- package/dist/martyrs.es95.js +46 -28
- package/dist/martyrs.es96.js +116 -52
- package/dist/martyrs.es97.js +33 -113
- package/dist/martyrs.es98.js +76 -33
- package/dist/martyrs.es99.js +24 -77
- package/dist/music.server.js +3 -3
- package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/index.js +1 -1
- package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js +1 -1
- package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@2.0.2/node_modules/@googlemaps/js-api-loader/dist/index.js +90 -0
- package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@2.0.2/node_modules/@googlemaps/js-api-loader/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js +1 -1
- package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js +1 -1
- package/dist/notifications.server.js +255 -23
- package/dist/orders.server.js +674 -136
- package/dist/organizations.server.js +11 -6
- package/dist/products.server.js +68 -7
- package/dist/{queryProcessor-C_5Iipam.js → queryProcessor-B2FCngFP.js} +3 -2
- package/dist/rents.server.js +183 -7
- package/dist/{socials.schema-DxnnaBgO.js → socials.schema-C3RjkqJv.js} +4 -0
- package/dist/spots.server.js +1 -1
- package/dist/style.css +292 -204
- package/dist/{tickets.controller-DdF85W-i.js → tickets.controller-Dpzf4kQx.js} +1 -1
- package/dist/wallet.server.js +2 -2
- package/package.json +5 -3
- package/src/builder/modes/ssr.rspack.dev.js +2 -0
- package/src/builder/rspack/rspack.config.ssr.client.js +58 -1
- package/src/builder/ssr/asset-resolver.js +1 -1
- package/src/builder/templates/page.js +2 -0
- package/src/components/Address/Address.vue +16 -16
- package/src/components/Button/Button.vue +0 -1
- package/src/components/ButtonSegmented/ButtonSegmented.vue +1 -1
- package/src/components/Calendar/Calendar.vue +141 -118
- package/src/components/Chart/Chart.vue +216 -0
- package/src/components/Checkbox/Checkbox.vue +1 -1
- package/src/components/Chips/Chips.vue +4 -5
- package/src/components/Countdown/Countdown.vue +5 -5
- package/src/components/DatePicker/DatePicker.vue +2 -2
- package/src/components/EditImages/EditImages.vue +3 -3
- package/src/components/EmptyState/EmptyState.vue +1 -1
- package/src/components/Feed/Feed.vue +5 -0
- package/src/components/Field/Field.vue +3 -3
- package/src/components/FieldDate/FieldDate.vue +2 -2
- package/src/components/LocationMarker/LocationMarker.vue +28 -21
- package/src/components/Map/Map.vue +20 -15
- package/src/components/Popup/Popup.vue +3 -3
- package/src/components/Radio/Radio.vue +2 -2
- package/src/components/Select/Select.vue +1 -1
- package/src/components/Status/Snack.vue +1 -1
- package/src/components/Status/Status.vue +1 -1
- package/src/components/Table/Table.vue +16 -1
- package/src/components/Upload/Upload.vue +1 -1
- package/src/components/UploadImage/UploadImage.vue +1 -1
- package/src/components/UploadImageMultiple/UploadImageMultiple.vue +1 -1
- package/src/jit/rules.js +4 -0
- package/src/modules/TASKS.MD +16 -3
- package/src/modules/auth/auth.client.js +18 -3
- package/src/modules/auth/controllers/routes/users.routes.js +18 -0
- package/src/modules/auth/controllers/services/auth.service.js +3 -3
- package/src/modules/auth/controllers/services/users.service.js +34 -5
- package/src/modules/auth/views/components/blocks/OtpDialog.vue +4 -4
- package/src/modules/auth/views/components/blocks/PopupAuth.vue +1 -1
- package/src/modules/auth/views/components/blocks/SidebarUserCard.vue +95 -0
- package/src/modules/auth/views/components/pages/BackofficeUsers.vue +337 -0
- package/src/modules/auth/views/components/pages/Invite.vue +1 -1
- package/src/modules/auth/views/components/pages/Profile.vue +1 -1
- package/src/modules/auth/views/components/pages/ProfileEdit.vue +23 -14
- package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +45 -26
- package/src/modules/auth/views/components/pages/ProfileEditSidebar.vue +8 -7
- package/src/modules/auth/views/components/pages/ResetPassword.vue +4 -4
- package/src/modules/auth/views/components/pages/SignUp.vue +3 -3
- package/src/modules/auth/views/components/pages/UserDashboard.vue +8 -5
- package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +1 -1
- package/src/modules/auth/views/middlewares/auth.validation.js +7 -2
- package/src/modules/auth/views/router/users.backoffice.router.js +39 -0
- package/src/modules/auth/views/store/auth.js +2 -2
- package/src/modules/backoffice/components/admin/Backcalls.vue +2 -2
- package/src/modules/backoffice/components/admin/Dashboard.sublime-workspace +1 -1
- package/src/modules/backoffice/components/admin/FastOrders.vue +3 -3
- package/src/modules/backoffice/components/admin/UserEdit.vue +1 -1
- package/src/modules/backoffice/components/pages/Dashboard.vue +102 -139
- package/src/modules/backoffice/configs/navigation.backoffice.config.js +91 -29
- package/src/modules/backoffice/router/backoffice.router.js +7 -1
- package/src/modules/chats/components/blocks/ChatMessage.vue +1 -1
- package/src/modules/chats/components/sections/ChatWindow.vue +1 -1
- package/src/modules/community/community.client.js +4 -4
- package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
- package/src/modules/community/components/layouts/Community.vue +4 -4
- package/src/modules/community/components/sections/Comment.vue +1 -1
- package/src/modules/constructor/components/elements/ImageUpload.vue +1 -1
- package/src/modules/core/TASK.MD +2 -2
- package/src/modules/core/controllers/classes/abac/abac.core.js +1 -0
- package/src/modules/core/controllers/classes/core.websocket.js +0 -2
- package/src/modules/core/controllers/classes/crud/crud.core.js +6 -0
- package/src/modules/core/controllers/classes/crud/crud.service.js +6 -0
- package/src/modules/core/controllers/utils/mailing.js +35 -26
- package/src/modules/core/controllers/utils/queryProcessor.js +4 -2
- package/src/modules/core/core.client.js +1 -0
- package/src/modules/core/models/schemas/embedding.schema.js +8 -0
- package/src/modules/core/models/schemas/socials.schema.js +4 -0
- package/src/modules/core/sw.js +448 -0
- package/src/modules/core/views/classes/core.app.js +37 -13
- package/src/modules/core/views/classes/module.manager.js +3 -1
- package/src/modules/core/views/components/blocks/AlertDialog.vue +1 -1
- package/src/modules/core/views/components/blocks/BlockSearch.vue +1 -1
- package/src/modules/core/views/components/blocks/BlockSlider.vue +96 -0
- package/src/modules/core/views/components/blocks/CardHeader.vue +2 -2
- package/src/modules/core/views/components/blocks/CardStat.vue +4 -18
- package/src/modules/{auth → core}/views/components/blocks/CardUser.vue +45 -20
- 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/blocks/PopupDateSelector.vue +41 -24
- package/src/modules/core/views/components/layouts/Client.vue +1 -1
- package/src/modules/core/views/components/pages/404.vue +5 -5
- package/src/modules/core/views/components/partials/BottomNavigationBar.vue +5 -5
- package/src/modules/core/views/components/partials/CitySelection.vue +2 -2
- package/src/modules/core/views/components/partials/Footer.centered.vue +2 -2
- package/src/modules/core/views/components/partials/Footer.vue +2 -2
- package/src/modules/core/views/components/partials/Header.vue +3 -3
- package/src/modules/core/views/components/partials/LocationSelection.vue +1 -1
- package/src/modules/core/views/components/partials/Navigation.vue +1 -1
- package/src/modules/core/views/components/sections/Filters.vue +2 -2
- package/src/modules/core/views/components/sections/SectionPageTitle.vue +2 -2
- package/src/modules/core/views/components/sections/Walkthrough.vue +6 -6
- package/src/modules/core/views/mixins/mixins.js +17 -0
- package/src/modules/core/views/plugins/date-picker.plugin.js +8 -5
- package/src/modules/core/views/store/core.store.js +5 -0
- package/src/modules/core/views/utils/vue-app-renderer.js +5 -0
- package/src/modules/events/components/pages/EditEventTickets.vue +9 -9
- package/src/modules/events/components/pages/Event.vue +2 -2
- package/src/modules/events/components/sections/EditTickets.vue +1 -1
- package/src/modules/events/components/sections/SelectDate.vue +1 -1
- package/src/modules/events/events.client.js +4 -4
- package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
- package/src/modules/gallery/router/gallery.router.js +3 -3
- package/src/modules/governance/middlewares/sprints.verifier.js +3 -3
- package/src/modules/governance/middlewares/tasks.verifier.js +3 -3
- package/src/modules/governance/models/sprint.model.js +1 -1
- package/src/modules/governance/models/task.model.js +1 -1
- package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +1 -1
- package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +3 -3
- package/src/modules/governance/views/components/blocks/CardSprintItem.vue +4 -4
- package/src/modules/governance/views/components/blocks/CardTaskItem.vue +2 -2
- package/src/modules/governance/views/components/blocks/CardVotingItem.vue +3 -3
- package/src/modules/governance/views/components/pages/Initiatives.vue +3 -3
- package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +1 -1
- package/src/modules/governance/views/components/sections/FormSprintDetails.vue +1 -1
- package/src/modules/governance/views/components/sections/FormTaskDetails.vue +1 -1
- package/src/modules/governance/views/router/governance.router.js +3 -3
- package/src/modules/icons/components/IconSearchPopup.vue +1 -1
- package/src/modules/icons/entities/IconApplications.vue +14 -0
- package/src/modules/icons/entities/IconCustomers.vue +14 -0
- package/src/modules/icons/entities/IconUsers.vue +14 -0
- package/src/modules/inventory/components/forms/AdjustmentForm.vue +2 -2
- package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +2 -2
- package/src/modules/inventory/components/forms/HistoryView.vue +1 -1
- package/src/modules/inventory/components/forms/StockAlertsForm.vue +3 -3
- package/src/modules/inventory/components/pages/Inventory.vue +278 -159
- package/src/modules/inventory/components/pages/InventoryEdit.vue +2 -2
- package/src/modules/inventory/inventory.client.js +4 -4
- package/src/modules/inventory/models/stock.audit.model.js +1 -1
- package/src/modules/inventory/router/inventory.router.js +12 -0
- package/src/modules/landing/components/sections/SectionEarn.vue +3 -3
- package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
- package/src/modules/landing/components/sections/SectionFeatures.vue +1 -1
- package/src/modules/landing/components/sections/SectionFeaturesImages.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 +1 -1
- package/src/modules/landing/components/sections/SectionMobileApp.vue +2 -2
- package/src/modules/landing/components/sections/SectionOverview.vue +1 -1
- package/src/modules/landing/components/sections/SectionRoadmap.vue +1 -1
- package/src/modules/landing/components/sections/SubscribeNewsletter.vue +1 -1
- package/src/modules/marketplace/views/components/sections/SectionMenu.vue +2 -2
- package/src/modules/music/components/SidebarMusic.vue +1 -1
- package/src/modules/music/components/cards/AlbumCard.vue +1 -1
- package/src/modules/music/components/cards/ArtistCard.vue +1 -1
- package/src/modules/music/components/cards/ArtistCardSmall.vue +1 -1
- package/src/modules/music/components/cards/PlaylistCard.vue +1 -1
- package/src/modules/music/components/cards/TrackListCard.vue +6 -6
- package/src/modules/music/components/forms/AlbumForm.vue +2 -2
- package/src/modules/music/components/forms/ArtistForm.vue +1 -1
- package/src/modules/music/components/forms/PlaylistForm.vue +5 -5
- package/src/modules/music/components/forms/TrackForm.vue +3 -3
- package/src/modules/music/components/pages/Album.vue +8 -8
- package/src/modules/music/components/pages/Artist.vue +5 -5
- package/src/modules/music/components/pages/Playlist.vue +11 -11
- package/src/modules/music/components/pages/SearchResults.vue +2 -2
- package/src/modules/music/components/pages/Track.vue +11 -11
- package/src/modules/music/components/player/FullscreenPlayer.vue +3 -3
- package/src/modules/music/components/player/TrackProgress.vue +1 -1
- package/src/modules/notifications/components/sections/NotificationPreferences.vue +182 -52
- package/src/modules/notifications/controllers/notifications.controller.js +242 -17
- package/src/modules/notifications/models/notification-preference.model.js +4 -0
- package/src/modules/notifications/notifications.client.js +213 -20
- package/src/modules/notifications/router/notifications.backoffice.router.js +16 -0
- package/src/modules/notifications/router/notifications.router.js +13 -45
- package/src/modules/notifications/routes/notifications.routes.js +9 -0
- package/src/modules/notifications/services/notification.service.js +33 -9
- package/src/modules/notifications/services/telegram.service.js +2 -2
- package/src/modules/notifications/services/web-push.service.js +6 -2
- package/src/modules/notifications/store/notifications.store.js +69 -0
- package/src/modules/orders/components/blocks/CardApplication.vue +9 -6
- package/src/modules/orders/components/blocks/CardCustomer.vue +10 -7
- package/src/modules/orders/components/blocks/CardOrder.vue +8 -8
- package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +58 -12
- package/src/modules/orders/components/blocks/CardOrderItem.vue +31 -28
- package/src/modules/orders/components/blocks/CardOrderUser.vue +7 -12
- package/src/modules/orders/components/blocks/CardOrderVar1.vue +3 -3
- package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +1 -1
- package/src/modules/orders/components/elements/PriceTotal.vue +4 -4
- package/src/modules/orders/components/forms/FormApplicationDetails.vue +1 -1
- package/src/modules/orders/components/forms/FormSelectCustomer.vue +48 -25
- package/src/modules/orders/components/pages/Applications.vue +2 -2
- package/src/modules/orders/components/pages/Customers.vue +35 -23
- package/src/modules/orders/components/pages/OrderBackoffice.vue +780 -393
- package/src/modules/orders/components/pages/OrderCreate.vue +5 -4
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +112 -42
- package/src/modules/orders/components/pages/Orders.vue +20 -19
- package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
- package/src/modules/orders/components/partials/ShopCart.vue +1 -1
- 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 +130 -64
- package/src/modules/orders/controllers/orders.controller.js +463 -134
- package/src/modules/orders/middlewares/applications.verifier.js +3 -3
- package/src/modules/orders/middlewares/customers.verifier.js +4 -0
- package/src/modules/orders/middlewares/orders.verifier.js +187 -0
- package/src/modules/orders/models/customer.model.js +2 -0
- package/src/modules/orders/models/order.model.js +20 -2
- package/src/modules/orders/orders.client.js +21 -19
- package/src/modules/orders/routes/applications.routes.js +13 -3
- package/src/modules/orders/routes/customers.routes.js +2 -0
- package/src/modules/orders/routes/orders.routes.js +46 -4
- package/src/modules/orders/store/orders.js +4 -7
- package/src/modules/orders/store/shopcart.js +6 -7
- package/src/modules/orders/utils/rent-price.js +90 -0
- package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
- package/src/modules/organizations/components/blocks/CardOrganization.vue +30 -33
- package/src/modules/organizations/components/blocks/EmptyState.vue +1 -1
- package/src/modules/organizations/components/blocks/Rating.vue +1 -1
- package/src/modules/organizations/components/blocks/Socials.vue +2 -2
- package/src/modules/organizations/components/elements/ButtonToggleMembership.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 +8 -8
- package/src/modules/organizations/components/pages/Organization.vue +232 -124
- package/src/modules/organizations/components/pages/OrganizationCreate.vue +3 -3
- package/src/modules/organizations/components/pages/OrganizationDocuments.vue +1 -1
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +15 -6
- package/src/modules/organizations/components/pages/Organizations.vue +3 -2
- package/src/modules/organizations/components/sections/Documents.vue +1 -1
- package/src/modules/organizations/components/sections/MembersAdd.vue +2 -2
- package/src/modules/organizations/configs/navigation.organization.config.js +34 -26
- package/src/modules/organizations/controllers/organizations.controller.js +8 -3
- package/src/modules/organizations/models/organization.model.js +1 -0
- package/src/modules/organizations/organizations.client.js +39 -33
- package/src/modules/organizations/router/organizations.backoffice.router.js +67 -0
- package/src/modules/pages/views/components/pages/Pages.vue +1 -1
- package/src/modules/pages/views/router/pages.router.js +2 -2
- package/src/modules/products/components/blocks/CardPosition.vue +2 -2
- package/src/modules/products/components/blocks/CardProduct.vue +2 -2
- package/src/modules/products/components/blocks/ProductDiscounts.vue +1 -1
- package/src/modules/products/components/blocks/ProductImages.vue +1 -1
- package/src/modules/products/components/blocks/ProductVariants.vue +3 -3
- package/src/modules/products/components/elements/Price.vue +2 -2
- package/src/modules/products/components/forms/ColumnSettingsMenu.vue +2 -2
- package/src/modules/products/components/forms/ReorderSettingsForm.vue +3 -3
- 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 +9 -20
- package/src/modules/products/components/pages/ProductEdit.vue +19 -3
- package/src/modules/products/components/pages/Products.vue +20 -19
- package/src/modules/products/components/sections/EditAttributes.vue +1 -1
- package/src/modules/products/components/sections/EditCategories.vue +1 -1
- package/src/modules/products/components/sections/EditDiscounts.vue +2 -2
- package/src/modules/products/components/sections/EditVariants.vue +14 -2
- package/src/modules/products/components/sections/FilterProducts.vue +1 -1
- package/src/modules/products/components/sections/ProductConfigurator.vue +1 -1
- package/src/modules/products/components/sections/SectionProduct.vue +3 -3
- package/src/modules/products/controllers/products.controller.js +50 -5
- package/src/modules/products/experiments/product-recommendation/components/HeroRecommendation.vue +2 -2
- package/src/modules/products/models/product.model.js +7 -0
- package/src/modules/products/models/variant.model.js +4 -0
- package/src/modules/products/router/categories.router.js +2 -2
- package/src/modules/products/router/products.router.js +14 -3
- package/src/modules/rents/controllers/routes/rents.routes.js +11 -0
- package/src/modules/rents/controllers/services/rents.services.js +193 -2
- package/src/modules/rents/models/rent.model.js +9 -0
- package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +28 -11
- package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +200 -40
- package/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue +2 -2
- package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +2 -2
- package/src/modules/rents/views/components/pages/Rents.vue +641 -142
- package/src/modules/rents/views/components/pages/RentsEdit.vue +44 -4
- package/src/modules/rents/views/router/rents.router.js +3 -3
- package/src/modules/rents/views/store/rents.store.js +1 -1
- package/src/modules/reports/components/pages/BackofficeReports.vue +3 -3
- package/src/modules/reports/router/reports.router.js +1 -1
- package/src/modules/spots/components/blocks/CardSpot.vue +6 -6
- package/src/modules/spots/components/pages/Spot.vue +2 -2
- package/src/modules/spots/components/pages/SpotEdit.vue +8 -6
- package/src/modules/spots/components/pages/Spots.vue +18 -24
- package/src/modules/spots/components/sections/WorktimeEdit.vue +7 -7
- package/src/modules/spots/router/spots.router.js +3 -3
- package/src/modules/wallet/views/components/blocks/CashDeposit.vue +1 -1
- package/src/modules/wallet/views/components/elements/ConnectMetamask.vue +3 -3
- package/src/modules/wallet/views/components/pages/Payments.vue +1 -1
- package/src/modules/wallet/views/components/pages/Wallet.vue +4 -4
- package/src/modules/wallet/views/router/wallet.router.js +1 -1
- package/src/styles/layout.scss +1 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js +0 -487
- package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/index.js +0 -8
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/index.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/web.js +0 -73
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/web.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
- package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js +0 -70
- package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js.map +0 -1
- package/dist/martyrs.es100.js +0 -33
- package/dist/martyrs.es103.js +0 -31
- package/dist/martyrs.es110.js +0 -54
- package/dist/martyrs.es111.js +0 -327
- package/dist/martyrs.es150.js +0 -22
- package/dist/martyrs.es151.js +0 -31
- package/dist/martyrs.es152.js +0 -23
- package/dist/martyrs.es93.js +0 -35
- package/dist/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js +0 -487
- package/dist/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js +0 -336
- package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/vue-draggable-next@2.2.1_sortablejs@1.15.6_vue@3.5.13_typescript@5.8.3_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js.map +0 -1
|
@@ -8,44 +8,26 @@ const _hoisted_2 = {
|
|
|
8
8
|
};
|
|
9
9
|
const _hoisted_3 = { class: "pd-thin flex flex-nowrap flex-v-center flex-justify-between" };
|
|
10
10
|
const _hoisted_4 = ["disabled"];
|
|
11
|
-
const _hoisted_5 = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
fill: "none"
|
|
18
|
-
};
|
|
19
|
-
const _hoisted_6 = ["fill"];
|
|
20
|
-
const _hoisted_7 = { class: "fw-semi" };
|
|
21
|
-
const _hoisted_8 = {
|
|
22
|
-
class: "i-regular",
|
|
23
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
24
|
-
width: "11",
|
|
25
|
-
height: "20",
|
|
26
|
-
viewBox: "0 0 11 20",
|
|
27
|
-
fill: "none"
|
|
28
|
-
};
|
|
29
|
-
const _hoisted_9 = ["fill"];
|
|
30
|
-
const _hoisted_10 = { class: "pd-thin calendar__body" };
|
|
31
|
-
const _hoisted_11 = { class: "calendar__week" };
|
|
32
|
-
const _hoisted_12 = { class: "gap-micro calendar__dates" };
|
|
33
|
-
const _hoisted_13 = ["onClick"];
|
|
34
|
-
const _hoisted_14 = {
|
|
11
|
+
const _hoisted_5 = { class: "fw-semi" };
|
|
12
|
+
const _hoisted_6 = { class: "pd-thin calendar__body" };
|
|
13
|
+
const _hoisted_7 = { class: "calendar__week" };
|
|
14
|
+
const _hoisted_8 = { class: "gap-micro calendar__dates" };
|
|
15
|
+
const _hoisted_9 = ["onClick"];
|
|
16
|
+
const _hoisted_10 = {
|
|
35
17
|
key: 0,
|
|
36
18
|
class: "availability-indicator"
|
|
37
19
|
};
|
|
38
|
-
const
|
|
20
|
+
const _hoisted_11 = {
|
|
39
21
|
key: 1,
|
|
40
|
-
class: "pd-thin br-t-1px br-grey-transp-25 flex gap-thin"
|
|
22
|
+
class: "pd-thin br-t-1px br-grey-transp-25 flex gap-thin flex-v-center"
|
|
41
23
|
};
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
24
|
+
const _hoisted_12 = ["value"];
|
|
25
|
+
const _hoisted_13 = ["value"];
|
|
26
|
+
const _hoisted_14 = {
|
|
45
27
|
key: 2,
|
|
46
28
|
class: "pd-thin br-t-1px br-grey-transp-25 flex flex-v-center gap-thin"
|
|
47
29
|
};
|
|
48
|
-
const
|
|
30
|
+
const _hoisted_15 = { class: "flex-child-1" };
|
|
49
31
|
const _sfc_main = {
|
|
50
32
|
__name: "Calendar",
|
|
51
33
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -265,7 +247,11 @@ const _sfc_main = {
|
|
|
265
247
|
}
|
|
266
248
|
}
|
|
267
249
|
selectedDate.value = formattedDate;
|
|
268
|
-
|
|
250
|
+
if (props.enableTime) {
|
|
251
|
+
emitTimeRange();
|
|
252
|
+
} else {
|
|
253
|
+
dateCalendar.value = formattedDate;
|
|
254
|
+
}
|
|
269
255
|
} else if (!startDate.value && !endDate.value) {
|
|
270
256
|
startDate.value = formattedDate;
|
|
271
257
|
dateCalendar.value = { start: formattedDate, end: null };
|
|
@@ -325,9 +311,9 @@ const _sfc_main = {
|
|
|
325
311
|
));
|
|
326
312
|
};
|
|
327
313
|
const selectToday = () => {
|
|
328
|
-
const
|
|
329
|
-
const todayStart =
|
|
330
|
-
const todayEnd =
|
|
314
|
+
const now = /* @__PURE__ */ new Date();
|
|
315
|
+
const todayStart = toUTC(now);
|
|
316
|
+
const todayEnd = toEndOfDayUTC(now);
|
|
331
317
|
if (props.disablePastDates || isAvailable(todayStart)) {
|
|
332
318
|
startDate.value = todayStart.toISOString();
|
|
333
319
|
endDate.value = todayEnd.toISOString();
|
|
@@ -335,29 +321,23 @@ const _sfc_main = {
|
|
|
335
321
|
}
|
|
336
322
|
};
|
|
337
323
|
const selectLastWeek = () => {
|
|
338
|
-
const today2 = /* @__PURE__ */ new Date();
|
|
339
|
-
const lastWeek = new Date(today2);
|
|
340
|
-
lastWeek.setUTCDate(today2.getUTCDate() - 7);
|
|
341
|
-
lastWeek.setUTCHours(0, 0, 0, 0);
|
|
342
324
|
if (props.disablePastDates) return;
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
const
|
|
347
|
-
|
|
325
|
+
const now = /* @__PURE__ */ new Date();
|
|
326
|
+
const weekAgo = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 6);
|
|
327
|
+
const start = toUTC(weekAgo).toISOString();
|
|
328
|
+
const end = toEndOfDayUTC(now).toISOString();
|
|
329
|
+
startDate.value = start;
|
|
330
|
+
endDate.value = end;
|
|
348
331
|
dateCalendar.value = { start, end };
|
|
349
332
|
};
|
|
350
333
|
const selectLastMonth = () => {
|
|
351
|
-
const today2 = /* @__PURE__ */ new Date();
|
|
352
334
|
if (props.disablePastDates) return;
|
|
353
|
-
const
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
const start = lastMonth.toISOString();
|
|
360
|
-
const end = today2.toISOString();
|
|
335
|
+
const now = /* @__PURE__ */ new Date();
|
|
336
|
+
const monthAgo = new Date(now.getFullYear(), now.getMonth() - 1, now.getDate());
|
|
337
|
+
const start = toUTC(monthAgo).toISOString();
|
|
338
|
+
const end = toEndOfDayUTC(now).toISOString();
|
|
339
|
+
startDate.value = start;
|
|
340
|
+
endDate.value = end;
|
|
361
341
|
dateCalendar.value = { start, end };
|
|
362
342
|
};
|
|
363
343
|
const selectLastYear = () => {
|
|
@@ -366,62 +346,80 @@ const _sfc_main = {
|
|
|
366
346
|
endDate.value = null;
|
|
367
347
|
dateCalendar.value = { start: null, end: null };
|
|
368
348
|
};
|
|
369
|
-
const
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
return
|
|
375
|
-
}
|
|
376
|
-
const
|
|
377
|
-
if (!props.
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
}
|
|
381
|
-
return
|
|
382
|
-
}
|
|
383
|
-
const
|
|
384
|
-
if (!props.disablePastDates) return 0;
|
|
385
|
-
if (selectedDate.value && isToday(selectedDate.value)) {
|
|
386
|
-
return (/* @__PURE__ */ new Date()).getHours();
|
|
387
|
-
}
|
|
388
|
-
return 0;
|
|
389
|
-
});
|
|
390
|
-
const minMinutes = computed(() => {
|
|
391
|
-
if (!props.disablePastDates) return 0;
|
|
392
|
-
if (selectedDate.value && isToday(selectedDate.value)) {
|
|
393
|
-
const currentHour = (/* @__PURE__ */ new Date()).getHours();
|
|
394
|
-
if (displayHours.value === currentHour) {
|
|
395
|
-
return (/* @__PURE__ */ new Date()).getMinutes();
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
return 0;
|
|
399
|
-
});
|
|
400
|
-
const updateTime = (hours, minutes) => {
|
|
349
|
+
const timeStart = ref({ h: 0, m: 0 });
|
|
350
|
+
const timeEnd = ref({ h: 23, m: 59 });
|
|
351
|
+
const clampTime = (h, m) => {
|
|
352
|
+
h = Math.max(0, Math.min(23, parseInt(h) || 0));
|
|
353
|
+
m = Math.max(0, Math.min(59, parseInt(m) || 0));
|
|
354
|
+
return { h, m };
|
|
355
|
+
};
|
|
356
|
+
const enforceMinTime = (h, m) => {
|
|
357
|
+
if (!props.disablePastDates || !selectedDate.value || !isToday(selectedDate.value)) return { h, m };
|
|
358
|
+
const now = /* @__PURE__ */ new Date();
|
|
359
|
+
const ch = now.getHours(), cm = now.getMinutes();
|
|
360
|
+
if (h < ch || h === ch && m < cm) return { h: ch, m: cm };
|
|
361
|
+
return { h, m };
|
|
362
|
+
};
|
|
363
|
+
const updateTimeStart = (h, m) => {
|
|
401
364
|
if (!props.enableTime || !selectedDate.value) return;
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
if (
|
|
406
|
-
|
|
407
|
-
if (minutes > 59) minutes = 59;
|
|
408
|
-
if (props.disablePastDates && isToday(selectedDate.value)) {
|
|
409
|
-
const now = /* @__PURE__ */ new Date();
|
|
410
|
-
const currentHour = now.getHours();
|
|
411
|
-
const currentMinute = now.getMinutes();
|
|
412
|
-
if (hours < currentHour || hours === currentHour && minutes < currentMinute) {
|
|
413
|
-
hours = currentHour;
|
|
414
|
-
minutes = currentMinute;
|
|
415
|
-
}
|
|
365
|
+
const clamped = clampTime(h, m);
|
|
366
|
+
const safe = enforceMinTime(clamped.h, clamped.m);
|
|
367
|
+
timeStart.value = safe;
|
|
368
|
+
if (timeEnd.value.h < safe.h || timeEnd.value.h === safe.h && timeEnd.value.m < safe.m) {
|
|
369
|
+
timeEnd.value = { h: safe.h, m: safe.m };
|
|
416
370
|
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
371
|
+
emitTimeRange();
|
|
372
|
+
};
|
|
373
|
+
const updateTimeEnd = (h, m) => {
|
|
374
|
+
if (!props.enableTime || !selectedDate.value) return;
|
|
375
|
+
const clamped = clampTime(h, m);
|
|
376
|
+
if (clamped.h < timeStart.value.h || clamped.h === timeStart.value.h && clamped.m < timeStart.value.m) {
|
|
377
|
+
timeEnd.value = { h: timeStart.value.h, m: timeStart.value.m };
|
|
378
|
+
} else {
|
|
379
|
+
timeEnd.value = clamped;
|
|
421
380
|
}
|
|
422
|
-
|
|
423
|
-
|
|
381
|
+
emitTimeRange();
|
|
382
|
+
};
|
|
383
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
384
|
+
const timeFormatted = computed(() => ({
|
|
385
|
+
start: `${pad(timeStart.value.h)}:${pad(timeStart.value.m)}`,
|
|
386
|
+
end: `${pad(timeEnd.value.h)}:${pad(timeEnd.value.m)}`
|
|
387
|
+
}));
|
|
388
|
+
const onTimeInput = (which, value) => {
|
|
389
|
+
if (!value) return;
|
|
390
|
+
const [h, m] = value.split(":").map(Number);
|
|
391
|
+
if (which === "start") updateTimeStart(h, m);
|
|
392
|
+
else updateTimeEnd(h, m);
|
|
424
393
|
};
|
|
394
|
+
const emitTimeRange = () => {
|
|
395
|
+
if (!selectedDate.value) return;
|
|
396
|
+
const base = new Date(selectedDate.value);
|
|
397
|
+
const s = new Date(base);
|
|
398
|
+
s.setHours(timeStart.value.h, timeStart.value.m, 0, 0);
|
|
399
|
+
const e = new Date(base);
|
|
400
|
+
e.setHours(timeEnd.value.h, timeEnd.value.m, 0, 0);
|
|
401
|
+
dateCalendar.value = { start: s, end: e };
|
|
402
|
+
};
|
|
403
|
+
if (dateCalendar.value) {
|
|
404
|
+
const val = dateCalendar.value;
|
|
405
|
+
if (val instanceof Date) {
|
|
406
|
+
selectedDate.value = val;
|
|
407
|
+
currentDate.value = new Date(Date.UTC(val.getFullYear(), val.getMonth(), 1));
|
|
408
|
+
} else if (val && val.start) {
|
|
409
|
+
const s = new Date(val.start);
|
|
410
|
+
startDate.value = s;
|
|
411
|
+
endDate.value = val.end ? new Date(val.end) : null;
|
|
412
|
+
if (props.enableTime) {
|
|
413
|
+
selectedDate.value = toUTC(s);
|
|
414
|
+
timeStart.value = { h: s.getHours(), m: s.getMinutes() };
|
|
415
|
+
if (val.end) {
|
|
416
|
+
const e = new Date(val.end);
|
|
417
|
+
timeEnd.value = { h: e.getHours(), m: e.getMinutes() };
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
currentDate.value = new Date(Date.UTC(s.getFullYear(), s.getMonth(), 1));
|
|
421
|
+
}
|
|
422
|
+
}
|
|
425
423
|
const formattedSelectedDate = computed(() => {
|
|
426
424
|
const date = selectedDate.value || (props.allowRange ? startDate.value : null);
|
|
427
425
|
if (!date) return "";
|
|
@@ -471,29 +469,43 @@ const _sfc_main = {
|
|
|
471
469
|
onClick: withModifiers(prevMonth, ["stop"]),
|
|
472
470
|
class: "aspect-1x1 pd-thin bg-white radius-extra",
|
|
473
471
|
disabled: isPrevMonthDisabled.value
|
|
474
|
-
}, [
|
|
475
|
-
(
|
|
472
|
+
}, _cache[2] || (_cache[2] = [
|
|
473
|
+
createElementVNode("svg", {
|
|
474
|
+
class: "i-regular",
|
|
475
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
476
|
+
width: "12",
|
|
477
|
+
height: "20",
|
|
478
|
+
viewBox: "0 0 12 20",
|
|
479
|
+
fill: "none"
|
|
480
|
+
}, [
|
|
476
481
|
createElementVNode("path", {
|
|
477
482
|
d: "M0.610352 10.0068C0.615885 9.81315 0.654622 9.63607 0.726562 9.47559C0.798503 9.3151 0.90918 9.16016 1.05859 9.01074L9.37598 0.958984C9.61393 0.721029 9.90723 0.602051 10.2559 0.602051C10.4883 0.602051 10.6986 0.657389 10.8867 0.768066C11.0804 0.878743 11.2326 1.02816 11.3433 1.21631C11.4595 1.40446 11.5176 1.61475 11.5176 1.84717C11.5176 2.19027 11.3875 2.49186 11.1274 2.75195L3.60693 9.99854L11.1274 17.2534C11.3875 17.519 11.5176 17.8206 11.5176 18.1582C11.5176 18.3962 11.4595 18.6092 11.3433 18.7974C11.2326 18.9855 11.0804 19.1349 10.8867 19.2456C10.6986 19.3618 10.4883 19.4199 10.2559 19.4199C9.90723 19.4199 9.61393 19.2982 9.37598 19.0547L1.05859 11.0029C0.903646 10.8535 0.790202 10.6986 0.718262 10.5381C0.646322 10.3721 0.610352 10.195 0.610352 10.0068Z",
|
|
478
|
-
fill:
|
|
479
|
-
}
|
|
480
|
-
])
|
|
481
|
-
], 8, _hoisted_4),
|
|
482
|
-
createElementVNode("span",
|
|
483
|
+
fill: "currentColor"
|
|
484
|
+
})
|
|
485
|
+
], -1)
|
|
486
|
+
]), 8, _hoisted_4),
|
|
487
|
+
createElementVNode("span", _hoisted_5, toDisplayString(monthYear.value), 1),
|
|
483
488
|
createElementVNode("button", {
|
|
484
489
|
onClick: withModifiers(nextMonth, ["stop"]),
|
|
485
490
|
class: "aspect-1x1 pd-thin bg-white radius-extra"
|
|
486
|
-
}, [
|
|
487
|
-
(
|
|
491
|
+
}, _cache[3] || (_cache[3] = [
|
|
492
|
+
createElementVNode("svg", {
|
|
493
|
+
class: "i-regular",
|
|
494
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
495
|
+
width: "11",
|
|
496
|
+
height: "20",
|
|
497
|
+
viewBox: "0 0 11 20",
|
|
498
|
+
fill: "none"
|
|
499
|
+
}, [
|
|
488
500
|
createElementVNode("path", {
|
|
489
501
|
d: "M10.9072 10.0151C10.9017 10.2088 10.863 10.3859 10.791 10.5464C10.7191 10.7069 10.6084 10.8618 10.459 11.0112L2.1416 19.063C1.90365 19.3009 1.61035 19.4199 1.26172 19.4199C1.0293 19.4199 0.81901 19.3646 0.630859 19.2539C0.437175 19.1432 0.284994 18.9938 0.174316 18.8057C0.0581055 18.6175 8.85326e-08 18.4072 1.08852e-07 18.1748C1.38846e-07 17.8317 0.130046 17.5301 0.390137 17.27L7.91065 10.0234L0.390138 2.76855C0.130047 2.50293 1.5053e-06 2.20133 1.53481e-06 1.86377C1.55561e-06 1.62581 0.058107 1.41276 0.174318 1.22461C0.284995 1.03646 0.437176 0.887043 0.630861 0.776366C0.819012 0.660155 1.0293 0.60205 1.26172 0.60205C1.61035 0.60205 1.90365 0.723795 2.1416 0.967284L10.459 9.01904C10.6139 9.16846 10.7274 9.3234 10.7993 9.48389C10.8713 9.6499 10.9072 9.82699 10.9072 10.0151Z",
|
|
490
|
-
fill:
|
|
491
|
-
}
|
|
492
|
-
])
|
|
493
|
-
])
|
|
502
|
+
fill: "currentColor"
|
|
503
|
+
})
|
|
504
|
+
], -1)
|
|
505
|
+
]))
|
|
494
506
|
]),
|
|
495
|
-
createElementVNode("div",
|
|
496
|
-
createElementVNode("div",
|
|
507
|
+
createElementVNode("div", _hoisted_6, [
|
|
508
|
+
createElementVNode("div", _hoisted_7, [
|
|
497
509
|
(openBlock(), createElementBlock(Fragment, null, renderList(daysOfWeek, (day, index) => {
|
|
498
510
|
return createElementVNode("div", {
|
|
499
511
|
key: index,
|
|
@@ -501,7 +513,7 @@ const _sfc_main = {
|
|
|
501
513
|
}, toDisplayString(day), 1);
|
|
502
514
|
}), 64))
|
|
503
515
|
]),
|
|
504
|
-
createElementVNode("div",
|
|
516
|
+
createElementVNode("div", _hoisted_8, [
|
|
505
517
|
(openBlock(true), createElementBlock(Fragment, null, renderList(daysInMonth.value, (day) => {
|
|
506
518
|
return openBlock(), createElementBlock("div", {
|
|
507
519
|
key: day.date,
|
|
@@ -518,34 +530,29 @@ const _sfc_main = {
|
|
|
518
530
|
onClick: withModifiers(($event) => selectDate(day.date, $event), ["stop"])
|
|
519
531
|
}, [
|
|
520
532
|
createTextVNode(toDisplayString(day.day) + " ", 1),
|
|
521
|
-
__props.showAvailability && getAvailability(day.date) ? (openBlock(), createElementBlock("span",
|
|
522
|
-
], 10,
|
|
533
|
+
__props.showAvailability && getAvailability(day.date) ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(getAvailability(day.date)), 1)) : createCommentVNode("", true)
|
|
534
|
+
], 10, _hoisted_9);
|
|
523
535
|
}), 128))
|
|
524
536
|
])
|
|
525
537
|
]),
|
|
526
|
-
__props.enableTime ? (openBlock(), createElementBlock("div",
|
|
538
|
+
__props.enableTime ? (openBlock(), createElementBlock("div", _hoisted_11, [
|
|
527
539
|
createElementVNode("input", {
|
|
528
|
-
type: "
|
|
529
|
-
value:
|
|
530
|
-
onInput: _cache[0] || (_cache[0] = ($event) =>
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
placeholder: "HH"
|
|
535
|
-
}, null, 40, _hoisted_16),
|
|
540
|
+
type: "time",
|
|
541
|
+
value: timeFormatted.value.start,
|
|
542
|
+
onInput: _cache[0] || (_cache[0] = ($event) => onTimeInput("start", $event.target.value)),
|
|
543
|
+
class: "flex-child-1 pd-small radius-small bg-white calendar__time-input"
|
|
544
|
+
}, null, 40, _hoisted_12),
|
|
545
|
+
_cache[4] || (_cache[4] = createElementVNode("span", { class: "opacity-50" }, "—", -1)),
|
|
536
546
|
createElementVNode("input", {
|
|
537
|
-
type: "
|
|
538
|
-
value:
|
|
539
|
-
onInput: _cache[1] || (_cache[1] = ($event) =>
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
class: "w-50 pd-small radius-small",
|
|
543
|
-
placeholder: "MM"
|
|
544
|
-
}, null, 40, _hoisted_17)
|
|
547
|
+
type: "time",
|
|
548
|
+
value: timeFormatted.value.end,
|
|
549
|
+
onInput: _cache[1] || (_cache[1] = ($event) => onTimeInput("end", $event.target.value)),
|
|
550
|
+
class: "flex-child-1 pd-small radius-small bg-white calendar__time-input"
|
|
551
|
+
}, null, 40, _hoisted_13)
|
|
545
552
|
])) : createCommentVNode("", true),
|
|
546
|
-
__props.showSelected ? (openBlock(), createElementBlock("div",
|
|
547
|
-
_cache[
|
|
548
|
-
createElementVNode("span",
|
|
553
|
+
__props.showSelected ? (openBlock(), createElementBlock("div", _hoisted_14, [
|
|
554
|
+
_cache[5] || (_cache[5] = createElementVNode("span", { class: "opacity-50" }, "selected:", -1)),
|
|
555
|
+
createElementVNode("span", _hoisted_15, toDisplayString(formattedSelectedDate.value || "---"), 1),
|
|
549
556
|
createElementVNode("button", {
|
|
550
557
|
onClick: onCancel,
|
|
551
558
|
class: "pd-small radius-small bg-white"
|
|
@@ -564,7 +571,7 @@ const _sfc_main = {
|
|
|
564
571
|
};
|
|
565
572
|
}
|
|
566
573
|
};
|
|
567
|
-
const Calendar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
574
|
+
const Calendar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e4120a5c"]]);
|
|
568
575
|
export {
|
|
569
576
|
Calendar as default
|
|
570
577
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.vue2.js","sources":["../../../../../src/components/Calendar/Calendar.vue"],"sourcesContent":["<script setup>\n import { computed, ref, watch } from 'vue'\n\n const props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n disabled: Boolean,\n enableTime: {\n type: Boolean,\n default: false\n },\n disablePastDates: {\n type: Boolean,\n default: false\n },\n disabledRanges: {\n type: Array,\n default: () => []\n },\n availabilityData: {\n type: Array,\n default: () => []\n },\n showAvailability: {\n type: Boolean,\n default: false\n },\n lowAvailabilityThreshold: {\n type: Number,\n default: 3\n },\n requiredQuantity: {\n type: Number,\n default: 1\n },\n locale: {\n type: String,\n default: 'en'\n },\n showSelected: {\n type: Boolean,\n default: false\n }\n })\n\n const emit = defineEmits(['update:modelValue', 'select', 'cancel'])\n\n const dateCalendar = defineModel('date')\n\n const today = new Date()\n const currentDate = ref(today)\n const selectedDate = ref(null)\n const startDate = ref(null)\n const endDate = ref(null)\n const tooltip = ref({ show: false, message: '', x: 0, y: 0 })\n\n const daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\n // Watch for availability data updates\n watch(() => props.availabilityData, (newData) => {\n // You could perform additional processing when availability data changes\n }, { deep: true })\n\n const toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n }\n\n const toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n }\n\n const dateToString = (date) => {\n return date.toISOString().split('T')[0];\n }\n\n const monthYear = computed(() => {\n const month = currentDate.value.toLocaleString(props.locale, { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n })\n\n const isPrevMonthDisabled = computed(() => {\n if (!props.disablePastDates) return false;\n \n // Check if current view month is the current month\n return currentDate.value.getUTCMonth() === today.getUTCMonth() && \n currentDate.value.getUTCFullYear() === today.getUTCFullYear();\n })\n\n const daysInMonth = computed(() => {\n const days = []\n const firstDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth(),\n 1\n ))\n const lastDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 0\n ))\n\n const firstDayOfWeek = firstDay.getUTCDay()\n\n let date = new Date(firstDay)\n\n date.setUTCDate(date.getUTCDate() - firstDayOfWeek)\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n let day = 1\n\n for (date = firstDay; date <= lastDay; date.setUTCDate(date.getUTCDate() + 1)) {\n days.push({\n date: new Date(date),\n day,\n isToday: isToday(date),\n })\n day++\n }\n\n const lastDayOfWeek = days[days.length - 1].date.getUTCDay()\n\n for (let i = lastDayOfWeek + 1; i <= 6; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n return days\n })\n\n const isToday = (date) => {\n const today = new Date()\n return (\n date.getUTCDate() === today.getUTCDate() &&\n date.getUTCMonth() === today.getUTCMonth() &&\n date.getUTCFullYear() === today.getUTCFullYear()\n )\n }\n\n const isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n }\n\n const isPastDate = (date) => {\n if (!props.disablePastDates) return false;\n\n const now = new Date();\n // Compare only dates without time\n const todayDate = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));\n const compareDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n\n return compareDate < todayDate;\n }\n\n const isDateTimeInDisabledRange = (date) => {\n if (!props.disabledRanges || props.disabledRanges.length === 0) return false;\n\n const checkDate = new Date(date);\n\n for (const range of props.disabledRanges) {\n if (!range.start || !range.end) continue;\n\n const rangeStart = new Date(range.start);\n const rangeEnd = new Date(range.end);\n\n if (checkDate >= rangeStart && checkDate <= rangeEnd) {\n return true;\n }\n }\n\n return false;\n }\n\n const isDisabledDate = (date) => {\n return isDateTimeInDisabledRange(date);\n }\n\n const getAvailabilityInfo = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return null;\n \n const dateStr = dateToString(date);\n return props.availabilityData.find(item => item.date === dateStr);\n }\n\n const isAvailable = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return true;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return !availabilityInfo || availabilityInfo.availableQuantity > 0;\n }\n\n const isLowAvailability = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return false;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo && \n availabilityInfo.availableQuantity > 0 && \n availabilityInfo.availableQuantity <= props.lowAvailabilityThreshold;\n }\n\n const getAvailability = (date) => {\n if (!props.showAvailability) return null;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo ? availabilityInfo.availableQuantity : null;\n }\n\n const isSelected = (date) => {\n if (props.allowRange) {\n if (startDate.value && endDate.value) {\n return date >= new Date(startDate.value) && toEndOfDayUTC(date) <= new Date(endDate.value);\n } else if (startDate.value) {\n return date.getTime() === new Date(startDate.value).getTime();\n }\n } else {\n return selectedDate.value && date.getTime() === new Date(selectedDate.value).getTime();\n }\n }\n\n const isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n }\n\n const selectDate = (date, event) => {\n // Don't allow selection of past dates, disabled dates or unavailable dates\n if (props.disablePastDates && isPastDate(date)) return;\n if (isDisabledDate(date)) return;\n if (!isAvailable(date)) return;\n \n // Check if date has sufficient quantity for required amount\n const availabilityInfo = getAvailabilityInfo(date);\n if (availabilityInfo && availabilityInfo.availableQuantity < props.requiredQuantity) {\n // Show tooltip with insufficient quantity message\n if (event) {\n tooltip.value = {\n show: true,\n message: `Insufficient quantity. Available: ${availabilityInfo.availableQuantity}, needed: ${props.requiredQuantity}`,\n x: event.clientX,\n y: event.clientY\n };\n setTimeout(() => {\n tooltip.value.show = false;\n }, 3000);\n }\n return;\n }\n \n // Hide tooltip if it was showing\n tooltip.value.show = false;\n \n // If selecting a date from another month, switch to that month\n if (!isSameMonth(date)) {\n // currentDate.value = new Date(Date.UTC(\n // date.getUTCFullYear(),\n // date.getUTCMonth(),\n // 1\n // ));\n }\n \n const formattedDate = toUTC(date)\n\n if (!props.allowRange) {\n // If same date is clicked and time is enabled, don't change anything\n // This allows user to modify only time without reselecting date\n if (props.enableTime && selectedDate.value) {\n const existingDate = new Date(selectedDate.value);\n if (existingDate.getFullYear() === date.getFullYear() &&\n existingDate.getMonth() === date.getMonth() &&\n existingDate.getDate() === date.getDate()) {\n return;\n }\n }\n selectedDate.value = formattedDate\n dateCalendar.value = formattedDate\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value = { start: formattedDate, end: null }\n } else if (!endDate.value) {\n endDate.value = toEndOfDayUTC(date)\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n startDate.value = formattedDate\n endDate.value = temp\n }\n // Verify all dates in the range are available\n if (props.availabilityData && props.availabilityData.length > 0) {\n let allDatesAvailable = true;\n let currentDate = new Date(startDate.value);\n \n while (currentDate <= endDate.value) {\n if (!isAvailable(currentDate)) {\n allDatesAvailable = false;\n break;\n }\n currentDate.setUTCDate(currentDate.getUTCDate() + 1);\n }\n if (!allDatesAvailable) {\n // Instead of resetting the end date, start a new range\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n return;\n }\n }\n dateCalendar.value = { start: startDate.value, end: endDate.value }\n } else {\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n }\n }\n\n const prevMonth = () => {\n // Prevent navigating to past months if disablePastDates is true\n if (props.disablePastDates) {\n const newDate = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n \n if (newDate.getUTCFullYear() < today.getUTCFullYear() || \n (newDate.getUTCFullYear() === today.getUTCFullYear() && \n newDate.getUTCMonth() < today.getUTCMonth())) {\n return;\n }\n }\n \n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n }\n\n const nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n }\n\n const selectToday = () => {\n const today = new Date(); \n const todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0, 0)); \n const todayEnd = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 23, 59, 59, 999)); \n\n // Check if today is available\n if (props.disablePastDates || isAvailable(todayStart)) {\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n }\n }\n\n const selectLastWeek = () => {\n const today = new Date();\n const lastWeek = new Date(today);\n lastWeek.setUTCDate(today.getUTCDate() - 7);\n lastWeek.setUTCHours(0, 0, 0, 0);\n\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n startDate.value = lastWeek;\n endDate.value = toEndOfDayUTC(today);\n \n today.setUTCHours(23, 59, 59, 999);\n\n const start = lastWeek.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n }\n\n const selectLastMonth = () => {\n const today = new Date();\n \n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n \n // Create date for last month\n const lastMonth = new Date(today);\n lastMonth.setUTCMonth(today.getUTCMonth() - 1);\n lastMonth.setUTCHours(0, 0, 0, 0);\n \n startDate.value = lastMonth;\n endDate.value = toEndOfDayUTC(today);\n\n today.setUTCHours(23, 59, 59, 999);\n \n const start = lastMonth.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n }\n\n const selectLastYear = () => {\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n }\n\n // Time selection computed properties\n const displayHours = computed(() => {\n if (!props.enableTime) return 0;\n if (selectedDate.value) {\n return selectedDate.value.getHours();\n }\n return new Date().getHours();\n })\n\n const displayMinutes = computed(() => {\n if (!props.enableTime) return 0;\n if (selectedDate.value) {\n return selectedDate.value.getMinutes();\n }\n return new Date().getMinutes();\n })\n\n const minHours = computed(() => {\n if (!props.disablePastDates) return 0;\n if (selectedDate.value && isToday(selectedDate.value)) {\n return new Date().getHours();\n }\n return 0;\n })\n\n const minMinutes = computed(() => {\n if (!props.disablePastDates) return 0;\n if (selectedDate.value && isToday(selectedDate.value)) {\n const currentHour = new Date().getHours();\n if (displayHours.value === currentHour) {\n return new Date().getMinutes();\n }\n }\n return 0;\n })\n\n const updateTime = (hours, minutes) => {\n if (!props.enableTime || !selectedDate.value) return;\n\n hours = parseInt(hours) || 0;\n minutes = parseInt(minutes) || 0;\n\n // Validate hours and minutes\n if (hours < 0) hours = 0;\n if (hours > 23) hours = 23;\n if (minutes < 0) minutes = 0;\n if (minutes > 59) minutes = 59;\n\n // Check if time is in the past for today\n if (props.disablePastDates && isToday(selectedDate.value)) {\n const now = new Date();\n const currentHour = now.getHours();\n const currentMinute = now.getMinutes();\n\n if (hours < currentHour || (hours === currentHour && minutes < currentMinute)) {\n hours = currentHour;\n minutes = currentMinute;\n }\n }\n\n const newDate = new Date(selectedDate.value);\n newDate.setHours(hours, minutes, 0, 0);\n\n // Check if the new date+time falls into disabled range\n if (isDateTimeInDisabledRange(newDate)) {\n return;\n }\n\n selectedDate.value = newDate;\n dateCalendar.value = newDate;\n }\n\n const formattedSelectedDate = computed(() => {\n const date = selectedDate.value || (props.allowRange ? startDate.value : null);\n if (!date) return '';\n\n const d = new Date(date);\n const day = String(d.getDate()).padStart(2, '0');\n const month = String(d.getMonth() + 1).padStart(2, '0');\n const year = d.getFullYear();\n let result = `${day}.${month}.${year}`;\n\n if (props.enableTime) {\n const hours = String(d.getHours()).padStart(2, '0');\n const minutes = String(d.getMinutes()).padStart(2, '0');\n result += ` ${hours}:${minutes}`;\n }\n\n return result;\n })\n\n const onCancel = () => {\n emit('cancel');\n }\n\n const onSelect = () => {\n emit('select');\n }\n</script>\n\n\n<template>\n <div class=\"t-noselect calendar\" :aria-disabled=\"disabled\"> \n <div v-if=\"allowRange && !disablePastDates\" class=\"br-b-1px br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">All time</button>\n </div>\n <div class=\"pd-thin flex flex-nowrap flex-v-center flex-justify-between\">\n <button @click.stop=\"prevMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\" :disabled=\"isPrevMonthDisabled\">\n <svg class=\"i-regular\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"20\" viewBox=\"0 0 12 20\" fill=\"none\">\n <path d=\"M0.610352 10.0068C0.615885 9.81315 0.654622 9.63607 0.726562 9.47559C0.798503 9.3151 0.90918 9.16016 1.05859 9.01074L9.37598 0.958984C9.61393 0.721029 9.90723 0.602051 10.2559 0.602051C10.4883 0.602051 10.6986 0.657389 10.8867 0.768066C11.0804 0.878743 11.2326 1.02816 11.3433 1.21631C11.4595 1.40446 11.5176 1.61475 11.5176 1.84717C11.5176 2.19027 11.3875 2.49186 11.1274 2.75195L3.60693 9.99854L11.1274 17.2534C11.3875 17.519 11.5176 17.8206 11.5176 18.1582C11.5176 18.3962 11.4595 18.6092 11.3433 18.7974C11.2326 18.9855 11.0804 19.1349 10.8867 19.2456C10.6986 19.3618 10.4883 19.4199 10.2559 19.4199C9.90723 19.4199 9.61393 19.2982 9.37598 19.0547L1.05859 11.0029C0.903646 10.8535 0.790202 10.6986 0.718262 10.5381C0.646322 10.3721 0.610352 10.195 0.610352 10.0068Z\" :fill=\"isPrevMonthDisabled ? '#303030' : '#007AFF'\"/>\n </svg>\n </button>\n <span class=\"fw-semi\">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\">\n <svg class=\"i-regular \" xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\">\n <path d=\"M10.9072 10.0151C10.9017 10.2088 10.863 10.3859 10.791 10.5464C10.7191 10.7069 10.6084 10.8618 10.459 11.0112L2.1416 19.063C1.90365 19.3009 1.61035 19.4199 1.26172 19.4199C1.0293 19.4199 0.81901 19.3646 0.630859 19.2539C0.437175 19.1432 0.284994 18.9938 0.174316 18.8057C0.0581055 18.6175 8.85326e-08 18.4072 1.08852e-07 18.1748C1.38846e-07 17.8317 0.130046 17.5301 0.390137 17.27L7.91065 10.0234L0.390138 2.76855C0.130047 2.50293 1.5053e-06 2.20133 1.53481e-06 1.86377C1.55561e-06 1.62581 0.058107 1.41276 0.174318 1.22461C0.284995 1.03646 0.437176 0.887043 0.630861 0.776366C0.819012 0.660155 1.0293 0.60205 1.26172 0.60205C1.61035 0.60205 1.90365 0.723795 2.1416 0.967284L10.459 9.01904C10.6139 9.16846 10.7274 9.3234 10.7993 9.48389C10.8713 9.6499 10.9072 9.82699 10.9072 10.0151Z\" :fill=\"isPrevMonthDisabled ? '#303030' : '#007AFF'\"/>\n </svg>\n </button>\n </div>\n\n <div class=\"pd-thin calendar__body\">\n <div class=\"calendar__week\">\n <div v-for=\"(day, index) in daysOfWeek\" :key=\"index\" class=\"calendar__weekday\">\n {{ day }}\n </div>\n </div>\n <div class=\"gap-micro calendar__dates\">\n <div\n v-for=\"day in daysInMonth\"\n :key=\"day.date\"\n :class=\"[\n 'flex flex-center cursor-pointer aspect-1x1 radius-small',\n { 'calendar__date--today': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--in-other-month': !isSameMonth(day.date) },\n { 'calendar__date--disabled': isPastDate(day.date) || isDisabledDate(day.date) },\n { 'calendar__date--low-availability': isLowAvailability(day.date) },\n { 'calendar__date--unavailable': !isAvailable(day.date) && !isPastDate(day.date) && !isDisabledDate(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date, $event)\"\n >\n {{ day.day }}\n <span v-if=\"showAvailability && getAvailability(day.date)\" class=\"availability-indicator\">\n {{ getAvailability(day.date) }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Time selection -->\n <div v-if=\"enableTime\" class=\"pd-thin br-t-1px br-grey-transp-25 flex gap-thin\">\n <input\n type=\"number\"\n :value=\"displayHours\"\n @input=\"updateTime($event.target.value, displayMinutes)\"\n :min=\"minHours\"\n max=\"23\"\n class=\"w-50 pd-small radius-small\"\n placeholder=\"HH\"\n />\n <input\n type=\"number\"\n :value=\"displayMinutes\"\n @input=\"updateTime(displayHours, $event.target.value)\"\n :min=\"minMinutes\"\n max=\"59\"\n class=\"w-50 pd-small radius-small\"\n placeholder=\"MM\"\n />\n </div>\n\n <!-- Selected date and actions -->\n <div v-if=\"showSelected\" class=\"pd-thin br-t-1px br-grey-transp-25 flex flex-v-center gap-thin\">\n <span class=\"t-transp\">selected:</span>\n <span class=\"flex-child-1\">{{ formattedSelectedDate || '---' }}</span>\n <button @click=\"onCancel\" class=\"pd-small radius-small bg-white\">cancel</button>\n <button @click=\"onSelect\" class=\"pd-small radius-small bg-black t-white\">select</button>\n </div>\n\n <!-- Tooltip for insufficient quantity -->\n <div \n v-if=\"tooltip.show\" \n class=\"calendar-tooltip\"\n :style=\"{ left: tooltip.x + 'px', top: tooltip.y + 'px' }\"\n >\n {{ tooltip.message }}\n </div>\n \n </div>\n</template>\n\n<style lang='scss' scoped>\n.calendar[aria-disabled=\"true\"] {\n cursor: not-allowed;\n\n * {\n pointer-events: none;\n }\n}\n.calendar__week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 5px;\n margin-bottom: 10px;\n}\n\n.calendar__weekday {\n text-align: center;\n}\n\n.calendar__dates {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n grid-auto-rows: 1fr;\n}\n\n.calendar__dates::before {\n content: '';\n width: 0;\n padding-bottom: 100%;\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__dates > *:first-child {\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__date--today {\n background-color: rgb(var(--main)) !important;\n font-weight: bold;\n}\n\n.calendar__date--in-other-month {\n color: #aaaaaa; /* Grey text color for dates from adjacent months */\n}\n\n.calendar__date--selected {\n background-color: #007bff !important;\n color: #fff;\n}\n\n.calendar__date--range {\n background-color: #1c6ab8 !important;\n}\n\n.calendar__date--disabled, .calendar__date--unavailable {\n color: #ccc;\n cursor: not-allowed;\n text-decoration: line-through;\n opacity: 0.5;\n}\n\n.calendar__date--low-availability {\n position: relative;\n background-color: #f0f0f0;\n/* border: 1px solid #fff3cd;*/\n/* background-color: #fff3cd;*/\n}\n\n.availability-indicator {\n position: absolute;\n bottom: 2px;\n right: 2px;\n font-size: 8px;\n color: #6c757d;\n}\n\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.calendar-tooltip {\n position: fixed;\n background-color: #333;\n color: white;\n padding: 8px 12px;\n border-radius: 4px;\n font-size: 12px;\n z-index: 1000;\n max-width: 200px;\n word-wrap: break-word;\n pointer-events: none;\n transform: translate(-50%, -100%);\n margin-top: -8px;\n}\n</style>"],"names":["_useModel","today","currentDate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Calendar.vue2.js","sources":["../../../../../src/components/Calendar/Calendar.vue"],"sourcesContent":["<script setup>\n import { computed, ref, watch } from 'vue'\n\n const props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n disabled: Boolean,\n enableTime: {\n type: Boolean,\n default: false\n },\n disablePastDates: {\n type: Boolean,\n default: false\n },\n disabledRanges: {\n type: Array,\n default: () => []\n },\n availabilityData: {\n type: Array,\n default: () => []\n },\n showAvailability: {\n type: Boolean,\n default: false\n },\n lowAvailabilityThreshold: {\n type: Number,\n default: 3\n },\n requiredQuantity: {\n type: Number,\n default: 1\n },\n locale: {\n type: String,\n default: 'en'\n },\n showSelected: {\n type: Boolean,\n default: false\n }\n })\n\n const emit = defineEmits(['update:modelValue', 'select', 'cancel'])\n\n const dateCalendar = defineModel('date')\n\n const today = new Date()\n const currentDate = ref(today)\n const selectedDate = ref(null)\n const startDate = ref(null)\n const endDate = ref(null)\n const tooltip = ref({ show: false, message: '', x: 0, y: 0 })\n\n const daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\n // Watch for availability data updates\n watch(() => props.availabilityData, (newData) => {\n // You could perform additional processing when availability data changes\n }, { deep: true })\n\n const toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n }\n\n const toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n }\n\n const dateToString = (date) => {\n return date.toISOString().split('T')[0];\n }\n\n const monthYear = computed(() => {\n const month = currentDate.value.toLocaleString(props.locale, { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n })\n\n const isPrevMonthDisabled = computed(() => {\n if (!props.disablePastDates) return false;\n \n // Check if current view month is the current month\n return currentDate.value.getUTCMonth() === today.getUTCMonth() && \n currentDate.value.getUTCFullYear() === today.getUTCFullYear();\n })\n\n const daysInMonth = computed(() => {\n const days = []\n const firstDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth(),\n 1\n ))\n const lastDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 0\n ))\n\n const firstDayOfWeek = firstDay.getUTCDay()\n\n let date = new Date(firstDay)\n\n date.setUTCDate(date.getUTCDate() - firstDayOfWeek)\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n let day = 1\n\n for (date = firstDay; date <= lastDay; date.setUTCDate(date.getUTCDate() + 1)) {\n days.push({\n date: new Date(date),\n day,\n isToday: isToday(date),\n })\n day++\n }\n\n const lastDayOfWeek = days[days.length - 1].date.getUTCDay()\n\n for (let i = lastDayOfWeek + 1; i <= 6; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n return days\n })\n\n const isToday = (date) => {\n const today = new Date()\n return (\n date.getUTCDate() === today.getUTCDate() &&\n date.getUTCMonth() === today.getUTCMonth() &&\n date.getUTCFullYear() === today.getUTCFullYear()\n )\n }\n\n const isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n }\n\n const isPastDate = (date) => {\n if (!props.disablePastDates) return false;\n\n const now = new Date();\n // Compare only dates without time\n const todayDate = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));\n const compareDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n\n return compareDate < todayDate;\n }\n\n const isDateTimeInDisabledRange = (date) => {\n if (!props.disabledRanges || props.disabledRanges.length === 0) return false;\n\n const checkDate = new Date(date);\n\n for (const range of props.disabledRanges) {\n if (!range.start || !range.end) continue;\n\n const rangeStart = new Date(range.start);\n const rangeEnd = new Date(range.end);\n\n if (checkDate >= rangeStart && checkDate <= rangeEnd) {\n return true;\n }\n }\n\n return false;\n }\n\n const isDisabledDate = (date) => {\n return isDateTimeInDisabledRange(date);\n }\n\n const getAvailabilityInfo = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return null;\n \n const dateStr = dateToString(date);\n return props.availabilityData.find(item => item.date === dateStr);\n }\n\n const isAvailable = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return true;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return !availabilityInfo || availabilityInfo.availableQuantity > 0;\n }\n\n const isLowAvailability = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return false;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo && \n availabilityInfo.availableQuantity > 0 && \n availabilityInfo.availableQuantity <= props.lowAvailabilityThreshold;\n }\n\n const getAvailability = (date) => {\n if (!props.showAvailability) return null;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo ? availabilityInfo.availableQuantity : null;\n }\n\n const isSelected = (date) => {\n if (props.allowRange) {\n if (startDate.value && endDate.value) {\n return date >= new Date(startDate.value) && toEndOfDayUTC(date) <= new Date(endDate.value);\n } else if (startDate.value) {\n return date.getTime() === new Date(startDate.value).getTime();\n }\n } else {\n return selectedDate.value && date.getTime() === new Date(selectedDate.value).getTime();\n }\n }\n\n const isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n }\n\n const selectDate = (date, event) => {\n // Don't allow selection of past dates, disabled dates or unavailable dates\n if (props.disablePastDates && isPastDate(date)) return;\n if (isDisabledDate(date)) return;\n if (!isAvailable(date)) return;\n \n // Check if date has sufficient quantity for required amount\n const availabilityInfo = getAvailabilityInfo(date);\n if (availabilityInfo && availabilityInfo.availableQuantity < props.requiredQuantity) {\n // Show tooltip with insufficient quantity message\n if (event) {\n tooltip.value = {\n show: true,\n message: `Insufficient quantity. Available: ${availabilityInfo.availableQuantity}, needed: ${props.requiredQuantity}`,\n x: event.clientX,\n y: event.clientY\n };\n setTimeout(() => {\n tooltip.value.show = false;\n }, 3000);\n }\n return;\n }\n \n // Hide tooltip if it was showing\n tooltip.value.show = false;\n \n // If selecting a date from another month, switch to that month\n if (!isSameMonth(date)) {\n // currentDate.value = new Date(Date.UTC(\n // date.getUTCFullYear(),\n // date.getUTCMonth(),\n // 1\n // ));\n }\n \n const formattedDate = toUTC(date)\n\n if (!props.allowRange) {\n // If same date is clicked and time is enabled, don't change anything\n // This allows user to modify only time without reselecting date\n if (props.enableTime && selectedDate.value) {\n const existingDate = new Date(selectedDate.value);\n if (existingDate.getFullYear() === date.getFullYear() &&\n existingDate.getMonth() === date.getMonth() &&\n existingDate.getDate() === date.getDate()) {\n return;\n }\n }\n selectedDate.value = formattedDate\n if (props.enableTime) {\n emitTimeRange()\n } else {\n dateCalendar.value = formattedDate\n }\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value = { start: formattedDate, end: null }\n } else if (!endDate.value) {\n endDate.value = toEndOfDayUTC(date)\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n startDate.value = formattedDate\n endDate.value = temp\n }\n // Verify all dates in the range are available\n if (props.availabilityData && props.availabilityData.length > 0) {\n let allDatesAvailable = true;\n let currentDate = new Date(startDate.value);\n \n while (currentDate <= endDate.value) {\n if (!isAvailable(currentDate)) {\n allDatesAvailable = false;\n break;\n }\n currentDate.setUTCDate(currentDate.getUTCDate() + 1);\n }\n if (!allDatesAvailable) {\n // Instead of resetting the end date, start a new range\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n return;\n }\n }\n dateCalendar.value = { start: startDate.value, end: endDate.value }\n } else {\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n }\n }\n\n const prevMonth = () => {\n // Prevent navigating to past months if disablePastDates is true\n if (props.disablePastDates) {\n const newDate = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n \n if (newDate.getUTCFullYear() < today.getUTCFullYear() || \n (newDate.getUTCFullYear() === today.getUTCFullYear() && \n newDate.getUTCMonth() < today.getUTCMonth())) {\n return;\n }\n }\n \n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n }\n\n const nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n }\n\n const selectToday = () => {\n const now = new Date();\n const todayStart = toUTC(now);\n const todayEnd = toEndOfDayUTC(now);\n\n // Check if today is available\n if (props.disablePastDates || isAvailable(todayStart)) {\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n }\n }\n\n const selectLastWeek = () => {\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n const now = new Date();\n const weekAgo = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 6);\n\n const start = toUTC(weekAgo).toISOString();\n const end = toEndOfDayUTC(now).toISOString();\n\n startDate.value = start;\n endDate.value = end;\n dateCalendar.value = { start, end };\n }\n\n const selectLastMonth = () => {\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n const now = new Date();\n const monthAgo = new Date(now.getFullYear(), now.getMonth() - 1, now.getDate());\n\n const start = toUTC(monthAgo).toISOString();\n const end = toEndOfDayUTC(now).toISOString();\n\n startDate.value = start;\n endDate.value = end;\n dateCalendar.value = { start, end };\n }\n\n const selectLastYear = () => {\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n }\n\n // Time selection\n const timeStart = ref({ h: 0, m: 0 })\n const timeEnd = ref({ h: 23, m: 59 })\n\n const clampTime = (h, m) => {\n h = Math.max(0, Math.min(23, parseInt(h) || 0))\n m = Math.max(0, Math.min(59, parseInt(m) || 0))\n return { h, m }\n }\n\n const enforceMinTime = (h, m) => {\n if (!props.disablePastDates || !selectedDate.value || !isToday(selectedDate.value)) return { h, m }\n const now = new Date()\n const ch = now.getHours(), cm = now.getMinutes()\n if (h < ch || (h === ch && m < cm)) return { h: ch, m: cm }\n return { h, m }\n }\n\n const updateTimeStart = (h, m) => {\n if (!props.enableTime || !selectedDate.value) return\n const clamped = clampTime(h, m)\n const safe = enforceMinTime(clamped.h, clamped.m)\n timeStart.value = safe\n // If start is now later than end, push end forward\n if (timeEnd.value.h < safe.h || (timeEnd.value.h === safe.h && timeEnd.value.m < safe.m)) {\n timeEnd.value = { h: safe.h, m: safe.m }\n }\n emitTimeRange()\n }\n\n const updateTimeEnd = (h, m) => {\n if (!props.enableTime || !selectedDate.value) return\n const clamped = clampTime(h, m)\n // End time must not be earlier than start time\n if (clamped.h < timeStart.value.h || (clamped.h === timeStart.value.h && clamped.m < timeStart.value.m)) {\n timeEnd.value = { h: timeStart.value.h, m: timeStart.value.m }\n } else {\n timeEnd.value = clamped\n }\n emitTimeRange()\n }\n\n const pad = (n) => String(n).padStart(2, '0')\n\n const timeFormatted = computed(() => ({\n start: `${pad(timeStart.value.h)}:${pad(timeStart.value.m)}`,\n end: `${pad(timeEnd.value.h)}:${pad(timeEnd.value.m)}`\n }))\n\n const onTimeInput = (which, value) => {\n if (!value) return\n const [h, m] = value.split(':').map(Number)\n if (which === 'start') updateTimeStart(h, m)\n else updateTimeEnd(h, m)\n }\n\n const emitTimeRange = () => {\n if (!selectedDate.value) return\n const base = new Date(selectedDate.value)\n const s = new Date(base)\n s.setHours(timeStart.value.h, timeStart.value.m, 0, 0)\n const e = new Date(base)\n e.setHours(timeEnd.value.h, timeEnd.value.m, 0, 0)\n dateCalendar.value = { start: s, end: e }\n }\n\n // Initialize internal state from v-model:date (initial value)\n if (dateCalendar.value) {\n const val = dateCalendar.value\n if (val instanceof Date) {\n selectedDate.value = val\n currentDate.value = new Date(Date.UTC(val.getFullYear(), val.getMonth(), 1))\n } else if (val && val.start) {\n const s = new Date(val.start)\n startDate.value = s\n endDate.value = val.end ? new Date(val.end) : null\n if (props.enableTime) {\n selectedDate.value = toUTC(s)\n timeStart.value = { h: s.getHours(), m: s.getMinutes() }\n if (val.end) {\n const e = new Date(val.end)\n timeEnd.value = { h: e.getHours(), m: e.getMinutes() }\n }\n }\n currentDate.value = new Date(Date.UTC(s.getFullYear(), s.getMonth(), 1))\n }\n }\n\n const formattedSelectedDate = computed(() => {\n const date = selectedDate.value || (props.allowRange ? startDate.value : null);\n if (!date) return '';\n\n const d = new Date(date);\n const day = String(d.getDate()).padStart(2, '0');\n const month = String(d.getMonth() + 1).padStart(2, '0');\n const year = d.getFullYear();\n let result = `${day}.${month}.${year}`;\n\n if (props.enableTime) {\n const hours = String(d.getHours()).padStart(2, '0');\n const minutes = String(d.getMinutes()).padStart(2, '0');\n result += ` ${hours}:${minutes}`;\n }\n\n return result;\n })\n\n const onCancel = () => {\n emit('cancel');\n }\n\n const onSelect = () => {\n emit('select');\n }\n</script>\n\n\n<template>\n <div class=\"t-noselect calendar\" :aria-disabled=\"disabled\"> \n <div v-if=\"allowRange && !disablePastDates\" class=\"br-b-1px br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second ws-nowrap pd-thin bg-white radius-small\">All time</button>\n </div>\n <div class=\"pd-thin flex flex-nowrap flex-v-center flex-justify-between\">\n <button @click.stop=\"prevMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\" :disabled=\"isPrevMonthDisabled\">\n <svg class=\"i-regular\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"20\" viewBox=\"0 0 12 20\" fill=\"none\">\n <path d=\"M0.610352 10.0068C0.615885 9.81315 0.654622 9.63607 0.726562 9.47559C0.798503 9.3151 0.90918 9.16016 1.05859 9.01074L9.37598 0.958984C9.61393 0.721029 9.90723 0.602051 10.2559 0.602051C10.4883 0.602051 10.6986 0.657389 10.8867 0.768066C11.0804 0.878743 11.2326 1.02816 11.3433 1.21631C11.4595 1.40446 11.5176 1.61475 11.5176 1.84717C11.5176 2.19027 11.3875 2.49186 11.1274 2.75195L3.60693 9.99854L11.1274 17.2534C11.3875 17.519 11.5176 17.8206 11.5176 18.1582C11.5176 18.3962 11.4595 18.6092 11.3433 18.7974C11.2326 18.9855 11.0804 19.1349 10.8867 19.2456C10.6986 19.3618 10.4883 19.4199 10.2559 19.4199C9.90723 19.4199 9.61393 19.2982 9.37598 19.0547L1.05859 11.0029C0.903646 10.8535 0.790202 10.6986 0.718262 10.5381C0.646322 10.3721 0.610352 10.195 0.610352 10.0068Z\" fill=\"currentColor\"/>\n </svg>\n </button>\n <span class=\"fw-semi\">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\">\n <svg class=\"i-regular \" xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\">\n <path d=\"M10.9072 10.0151C10.9017 10.2088 10.863 10.3859 10.791 10.5464C10.7191 10.7069 10.6084 10.8618 10.459 11.0112L2.1416 19.063C1.90365 19.3009 1.61035 19.4199 1.26172 19.4199C1.0293 19.4199 0.81901 19.3646 0.630859 19.2539C0.437175 19.1432 0.284994 18.9938 0.174316 18.8057C0.0581055 18.6175 8.85326e-08 18.4072 1.08852e-07 18.1748C1.38846e-07 17.8317 0.130046 17.5301 0.390137 17.27L7.91065 10.0234L0.390138 2.76855C0.130047 2.50293 1.5053e-06 2.20133 1.53481e-06 1.86377C1.55561e-06 1.62581 0.058107 1.41276 0.174318 1.22461C0.284995 1.03646 0.437176 0.887043 0.630861 0.776366C0.819012 0.660155 1.0293 0.60205 1.26172 0.60205C1.61035 0.60205 1.90365 0.723795 2.1416 0.967284L10.459 9.01904C10.6139 9.16846 10.7274 9.3234 10.7993 9.48389C10.8713 9.6499 10.9072 9.82699 10.9072 10.0151Z\" fill=\"currentColor\"/>\n </svg>\n </button>\n </div>\n\n <div class=\"pd-thin calendar__body\">\n <div class=\"calendar__week\">\n <div v-for=\"(day, index) in daysOfWeek\" :key=\"index\" class=\"calendar__weekday\">\n {{ day }}\n </div>\n </div>\n <div class=\"gap-micro calendar__dates\">\n <div\n v-for=\"day in daysInMonth\"\n :key=\"day.date\"\n :class=\"[\n 'flex flex-center cursor-pointer aspect-1x1 radius-small',\n { 'calendar__date--today': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--in-other-month': !isSameMonth(day.date) },\n { 'calendar__date--disabled': isPastDate(day.date) || isDisabledDate(day.date) },\n { 'calendar__date--low-availability': isLowAvailability(day.date) },\n { 'calendar__date--unavailable': !isAvailable(day.date) && !isPastDate(day.date) && !isDisabledDate(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date, $event)\"\n >\n {{ day.day }}\n <span v-if=\"showAvailability && getAvailability(day.date)\" class=\"availability-indicator\">\n {{ getAvailability(day.date) }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Time selection: start / end -->\n <div v-if=\"enableTime\" class=\"pd-thin br-t-1px br-grey-transp-25 flex gap-thin flex-v-center\">\n <input\n type=\"time\"\n :value=\"timeFormatted.start\"\n @input=\"onTimeInput('start', $event.target.value)\"\n class=\"flex-child-1 pd-small radius-small bg-white calendar__time-input\"\n />\n <span class=\"opacity-50\">—</span>\n <input\n type=\"time\"\n :value=\"timeFormatted.end\"\n @input=\"onTimeInput('end', $event.target.value)\"\n class=\"flex-child-1 pd-small radius-small bg-white calendar__time-input\"\n />\n </div>\n\n <!-- Selected date and actions -->\n <div v-if=\"showSelected\" class=\"pd-thin br-t-1px br-grey-transp-25 flex flex-v-center gap-thin\">\n <span class=\"opacity-50\">selected:</span>\n <span class=\"flex-child-1\">{{ formattedSelectedDate || '---' }}</span>\n <button @click=\"onCancel\" class=\"pd-small radius-small bg-white\">cancel</button>\n <button @click=\"onSelect\" class=\"pd-small radius-small bg-black t-white\">select</button>\n </div>\n\n <!-- Tooltip for insufficient quantity -->\n <div \n v-if=\"tooltip.show\" \n class=\"calendar-tooltip\"\n :style=\"{ left: tooltip.x + 'px', top: tooltip.y + 'px' }\"\n >\n {{ tooltip.message }}\n </div>\n \n </div>\n</template>\n\n<style lang='scss' scoped>\n.calendar[aria-disabled=\"true\"] {\n cursor: not-allowed;\n\n .calendar__body {\n pointer-events: none;\n }\n}\n.calendar__week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 5px;\n margin-bottom: 10px;\n}\n\n.calendar__weekday {\n text-align: center;\n}\n\n.calendar__dates {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n grid-auto-rows: 1fr;\n}\n\n.calendar__dates::before {\n content: '';\n width: 0;\n padding-bottom: 100%;\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__dates > *:first-child {\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__date--today {\n background-color: rgb(var(--main)) !important;\n font-weight: bold;\n}\n\n.calendar__date--in-other-month {\n color: rgba(var(--black), 0.25); /* Grey text color for dates from adjacent months */\n}\n\n.calendar__date--selected {\n background-color: rgb(var(--second)) !important;\n color: rgb(var(--white));\n}\n\n.calendar__date--range {\n background-color: rgba(var(--second), 0.7) !important;\n}\n\n.calendar__date--disabled, .calendar__date--unavailable {\n color: rgba(var(--black), 0.2);\n cursor: not-allowed;\n text-decoration: line-through;\n opacity: 0.5;\n}\n\n.calendar__date--low-availability {\n position: relative;\n background-color: rgb(var(--white));\n/* border: 1px solid #fff3cd;*/\n/* background-color: #fff3cd;*/\n}\n\n.availability-indicator {\n position: absolute;\n bottom: 2px;\n right: 2px;\n font-size: 8px;\n color: rgba(var(--black), 0.4);\n}\n\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.calendar__time-input {\n font-size: 16px;\n font-weight: 500;\n text-align: center;\n border: none;\n outline: none;\n\n &::-webkit-calendar-picker-indicator {\n background: rgb(var(--grey));\n -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E\");\n mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E\");\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n cursor: pointer;\n opacity: 0.5;\n }\n}\n\n.calendar-tooltip {\n position: fixed;\n background-color: #333;\n color: white;\n padding: 8px 12px;\n border-radius: 4px;\n font-size: 12px;\n z-index: 1000;\n max-width: 200px;\n word-wrap: break-word;\n pointer-events: none;\n transform: translate(-50%, -100%);\n margin-top: -8px;\n}\n</style>"],"names":["_useModel","today","currentDate"],"mappings":"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"}
|